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 ; } > Defined in Transactions/Treasury.ts:106
Propose and approve a spend of treasury funds.
Dispatch Origin
Must be [
Config::SpendOrigin
] with theSuccess
value being at leastamount
ofasset_kind
in the native asset. The amount ofasset_kind
is converted for assertion using the [Config::BalanceConverter
].Details
Create an approved spend for transferring a specific
amount
ofasset_kind
to a designated beneficiary. The spend must be claimed using thepayout
dispatchable within the [Config::PayoutPeriod
].Parameters
asset_kind
: An indicator of the specific asset class to be spent.amount
: The amount to be transferred from the treasury to thebeneficiary
.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
]. IfNone
, the spend can be claimed immediately after approval.Events
Emits [
Event::AssetSpendApproved
] if successful.