spend: TxDescriptor<{
    amount: bigint;
    asset_kind: Enum<{
        V3: {
            asset_id: XcmV3MultiassetAssetId;
            location: {
                interior: XcmV3Junctions;
                parents: number;
            };
        };
        V4: {
            asset_id: {
                interior: XcmV3Junctions;
                parents: number;
            };
            location: {
                interior: XcmV3Junctions;
                parents: number;
            };
        };
        V5: {
            asset_id: {
                interior: Enum<{
                    Here: undefined;
                    X1: Enum<{
                        AccountId32: {
                            id: ...;
                            network?: ...;
                        };
                        AccountIndex64: {
                            index: ...;
                            network?: ...;
                        };
                        AccountKey20: {
                            key: ...;
                            network?: ...;
                        };
                        GeneralIndex: bigint;
                        GeneralKey: {
                            data: ...;
                            length: ...;
                        };
                        GlobalConsensus: Enum<(...)>;
                        OnlyChild: undefined;
                        PalletInstance: number;
                        Parachain: number;
                        Plurality: {
                            id: ...;
                            part: ...;
                        };
                    }>;
                    X2: FixedSizeArray<2, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X3: FixedSizeArray<3, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X4: FixedSizeArray<4, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X5: FixedSizeArray<5, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X6: FixedSizeArray<6, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X7: FixedSizeArray<7, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X8: FixedSizeArray<8, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                }>;
                parents: number;
            };
            location: {
                interior: Enum<{
                    Here: undefined;
                    X1: Enum<{
                        AccountId32: {
                            id: ...;
                            network?: ...;
                        };
                        AccountIndex64: {
                            index: ...;
                            network?: ...;
                        };
                        AccountKey20: {
                            key: ...;
                            network?: ...;
                        };
                        GeneralIndex: bigint;
                        GeneralKey: {
                            data: ...;
                            length: ...;
                        };
                        GlobalConsensus: Enum<(...)>;
                        OnlyChild: undefined;
                        PalletInstance: number;
                        Parachain: number;
                        Plurality: {
                            id: ...;
                            part: ...;
                        };
                    }>;
                    X2: FixedSizeArray<2, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X3: FixedSizeArray<3, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X4: FixedSizeArray<4, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X5: FixedSizeArray<5, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X6: FixedSizeArray<6, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X7: FixedSizeArray<7, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                    X8: FixedSizeArray<8, Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>>;
                }>;
                parents: number;
            };
        };
    }>;
    beneficiary: Enum<{
        V3: {
            interior: XcmV3Junctions;
            parents: number;
        };
        V4: {
            interior: XcmV3Junctions;
            parents: number;
        };
        V5: {
            interior: Enum<{
                Here: undefined;
                X1: Enum<{
                    AccountId32: {
                        id: FixedSizeBinary<(...)>;
                        network?: (...) | (...);
                    };
                    AccountIndex64: {
                        index: bigint;
                        network?: (...) | (...);
                    };
                    AccountKey20: {
                        key: FixedSizeBinary<(...)>;
                        network?: (...) | (...);
                    };
                    GeneralIndex: bigint;
                    GeneralKey: {
                        data: FixedSizeBinary<(...)>;
                        length: number;
                    };
                    GlobalConsensus: Enum<{
                        BitcoinCash: ...;
                        BitcoinCore: ...;
                        ByFork: ...;
                        ByGenesis: ...;
                        Ethereum: ...;
                        Kusama: ...;
                        Polkadot: ...;
                        PolkadotBulletin: ...;
                    }>;
                    OnlyChild: undefined;
                    PalletInstance: number;
                    Parachain: number;
                    Plurality: {
                        id: XcmV3JunctionBodyId;
                        part: XcmV2JunctionBodyPart;
                    };
                }>;
                X2: FixedSizeArray<2, Enum<{
                    AccountId32: {
                        id: ...;
                        network?: ...;
                    };
                    AccountIndex64: {
                        index: ...;
                        network?: ...;
                    };
                    AccountKey20: {
                        key: ...;
                        network?: ...;
                    };
                    GeneralIndex: bigint;
                    GeneralKey: {
                        data: ...;
                        length: ...;
                    };
                    GlobalConsensus: Enum<(...)>;
                    OnlyChild: undefined;
                    PalletInstance: number;
                    Parachain: number;
                    Plurality: {
                        id: ...;
                        part: ...;
                    };
                }>>;
                X3: FixedSizeArray<3, Enum<{
                    AccountId32: {
                        id: ...;
                        network?: ...;
                    };
                    AccountIndex64: {
                        index: ...;
                        network?: ...;
                    };
                    AccountKey20: {
                        key: ...;
                        network?: ...;
                    };
                    GeneralIndex: bigint;
                    GeneralKey: {
                        data: ...;
                        length: ...;
                    };
                    GlobalConsensus: Enum<(...)>;
                    OnlyChild: undefined;
                    PalletInstance: number;
                    Parachain: number;
                    Plurality: {
                        id: ...;
                        part: ...;
                    };
                }>>;
                X4: FixedSizeArray<4, Enum<{
                    AccountId32: {
                        id: ...;
                        network?: ...;
                    };
                    AccountIndex64: {
                        index: ...;
                        network?: ...;
                    };
                    AccountKey20: {
                        key: ...;
                        network?: ...;
                    };
                    GeneralIndex: bigint;
                    GeneralKey: {
                        data: ...;
                        length: ...;
                    };
                    GlobalConsensus: Enum<(...)>;
                    OnlyChild: undefined;
                    PalletInstance: number;
                    Parachain: number;
                    Plurality: {
                        id: ...;
                        part: ...;
                    };
                }>>;
                X5: FixedSizeArray<5, Enum<{
                    AccountId32: {
                        id: ...;
                        network?: ...;
                    };
                    AccountIndex64: {
                        index: ...;
                        network?: ...;
                    };
                    AccountKey20: {
                        key: ...;
                        network?: ...;
                    };
                    GeneralIndex: bigint;
                    GeneralKey: {
                        data: ...;
                        length: ...;
                    };
                    GlobalConsensus: Enum<(...)>;
                    OnlyChild: undefined;
                    PalletInstance: number;
                    Parachain: number;
                    Plurality: {
                        id: ...;
                        part: ...;
                    };
                }>>;
                X6: FixedSizeArray<6, Enum<{
                    AccountId32: {
                        id: ...;
                        network?: ...;
                    };
                    AccountIndex64: {
                        index: ...;
                        network?: ...;
                    };
                    AccountKey20: {
                        key: ...;
                        network?: ...;
                    };
                    GeneralIndex: bigint;
                    GeneralKey: {
                        data: ...;
                        length: ...;
                    };
                    GlobalConsensus: Enum<(...)>;
                    OnlyChild: undefined;
                    PalletInstance: number;
                    Parachain: number;
                    Plurality: {
                        id: ...;
                        part: ...;
                    };
                }>>;
                X7: FixedSizeArray<7, Enum<{
                    AccountId32: {
                        id: ...;
                        network?: ...;
                    };
                    AccountIndex64: {
                        index: ...;
                        network?: ...;
                    };
                    AccountKey20: {
                        key: ...;
                        network?: ...;
                    };
                    GeneralIndex: bigint;
                    GeneralKey: {
                        data: ...;
                        length: ...;
                    };
                    GlobalConsensus: Enum<(...)>;
                    OnlyChild: undefined;
                    PalletInstance: number;
                    Parachain: number;
                    Plurality: {
                        id: ...;
                        part: ...;
                    };
                }>>;
                X8: FixedSizeArray<8, Enum<{
                    AccountId32: {
                        id: ...;
                        network?: ...;
                    };
                    AccountIndex64: {
                        index: ...;
                        network?: ...;
                    };
                    AccountKey20: {
                        key: ...;
                        network?: ...;
                    };
                    GeneralIndex: bigint;
                    GeneralKey: {
                        data: ...;
                        length: ...;
                    };
                    GlobalConsensus: Enum<(...)>;
                    OnlyChild: undefined;
                    PalletInstance: number;
                    Parachain: number;
                    Plurality: {
                        id: ...;
                        part: ...;
                    };
                }>>;
            }>;
            parents: number;
        };
    }>;
    valid_from?: number;
}>

Propose and approve a spend of treasury funds.

Must be [Config::SpendOrigin] with the Success value being at least amount of asset_kind in the native asset. The amount of asset_kind is converted for assertion using the [Config::BalanceConverter].

Create an approved spend for transferring a specific amount of asset_kind to a designated beneficiary. The spend must be claimed using the payout dispatchable within the [Config::PayoutPeriod].

  • asset_kind: An indicator of the specific asset class to be spent.
  • amount: The amount to be transferred from the treasury to the beneficiary.
  • beneficiary: The beneficiary of the spend.
  • valid_from: The block number from which the spend can be claimed. It can refer to the past if the resulting spend has not yet expired according to the [Config::PayoutPeriod]. If None, the spend can be claimed immediately after approval.

Emits [Event::AssetSpendApproved] if successful.