approve_transfer: TxDescriptor<{
    amount: bigint;
    delegate: MultiAddress;
    id: {
        interior: Enum<{
            Here: undefined;
            X1: Enum<{
                AccountId32: {
                    id: FixedSizeBinary<32>;
                    network?: Enum<(...)>;
                };
                AccountIndex64: {
                    index: bigint;
                    network?: Enum<(...)>;
                };
                AccountKey20: {
                    key: FixedSizeBinary<20>;
                    network?: Enum<(...)>;
                };
                GeneralIndex: bigint;
                GeneralKey: {
                    data: FixedSizeBinary<32>;
                    length: number;
                };
                GlobalConsensus: Enum<{
                    BitcoinCash: undefined;
                    BitcoinCore: undefined;
                    ByFork: {
                        block_hash: FixedSizeBinary<(...)>;
                        block_number: bigint;
                    };
                    ByGenesis: FixedSizeBinary<32>;
                    Ethereum: {
                        chain_id: bigint;
                    };
                    Kusama: undefined;
                    Polkadot: undefined;
                    PolkadotBulletin: undefined;
                }>;
                OnlyChild: undefined;
                PalletInstance: number;
                Parachain: number;
                Plurality: {
                    id: XcmV3JunctionBodyId;
                    part: XcmV2JunctionBodyPart;
                };
            }>;
            X2: FixedSizeArray<2, Enum<{
                AccountId32: {
                    id: FixedSizeBinary<32>;
                    network?: ...;
                };
                AccountIndex64: {
                    index: bigint;
                    network?: ...;
                };
                AccountKey20: {
                    key: FixedSizeBinary<20>;
                    network?: ...;
                };
                GeneralIndex: bigint;
                GeneralKey: {
                    data: FixedSizeBinary<32>;
                    length: number;
                };
                GlobalConsensus: Enum<{
                    BitcoinCash: undefined;
                    BitcoinCore: undefined;
                    ByFork: {
                        block_hash: ...;
                        block_number: ...;
                    };
                    ByGenesis: FixedSizeBinary<(...)>;
                    Ethereum: {
                        chain_id: ...;
                    };
                    Kusama: undefined;
                    Polkadot: undefined;
                    PolkadotBulletin: undefined;
                }>;
                OnlyChild: undefined;
                PalletInstance: number;
                Parachain: number;
                Plurality: {
                    id: XcmV3JunctionBodyId;
                    part: XcmV2JunctionBodyPart;
                };
            }>>;
            X3: FixedSizeArray<3, Enum<{
                AccountId32: {
                    id: FixedSizeBinary<32>;
                    network?: ...;
                };
                AccountIndex64: {
                    index: bigint;
                    network?: ...;
                };
                AccountKey20: {
                    key: FixedSizeBinary<20>;
                    network?: ...;
                };
                GeneralIndex: bigint;
                GeneralKey: {
                    data: FixedSizeBinary<32>;
                    length: number;
                };
                GlobalConsensus: Enum<{
                    BitcoinCash: undefined;
                    BitcoinCore: undefined;
                    ByFork: {
                        block_hash: ...;
                        block_number: ...;
                    };
                    ByGenesis: FixedSizeBinary<(...)>;
                    Ethereum: {
                        chain_id: ...;
                    };
                    Kusama: undefined;
                    Polkadot: undefined;
                    PolkadotBulletin: undefined;
                }>;
                OnlyChild: undefined;
                PalletInstance: number;
                Parachain: number;
                Plurality: {
                    id: XcmV3JunctionBodyId;
                    part: XcmV2JunctionBodyPart;
                };
            }>>;
            X4: FixedSizeArray<4, Enum<{
                AccountId32: {
                    id: FixedSizeBinary<32>;
                    network?: ...;
                };
                AccountIndex64: {
                    index: bigint;
                    network?: ...;
                };
                AccountKey20: {
                    key: FixedSizeBinary<20>;
                    network?: ...;
                };
                GeneralIndex: bigint;
                GeneralKey: {
                    data: FixedSizeBinary<32>;
                    length: number;
                };
                GlobalConsensus: Enum<{
                    BitcoinCash: undefined;
                    BitcoinCore: undefined;
                    ByFork: {
                        block_hash: ...;
                        block_number: ...;
                    };
                    ByGenesis: FixedSizeBinary<(...)>;
                    Ethereum: {
                        chain_id: ...;
                    };
                    Kusama: undefined;
                    Polkadot: undefined;
                    PolkadotBulletin: undefined;
                }>;
                OnlyChild: undefined;
                PalletInstance: number;
                Parachain: number;
                Plurality: {
                    id: XcmV3JunctionBodyId;
                    part: XcmV2JunctionBodyPart;
                };
            }>>;
            X5: FixedSizeArray<5, Enum<{
                AccountId32: {
                    id: FixedSizeBinary<32>;
                    network?: ...;
                };
                AccountIndex64: {
                    index: bigint;
                    network?: ...;
                };
                AccountKey20: {
                    key: FixedSizeBinary<20>;
                    network?: ...;
                };
                GeneralIndex: bigint;
                GeneralKey: {
                    data: FixedSizeBinary<32>;
                    length: number;
                };
                GlobalConsensus: Enum<{
                    BitcoinCash: undefined;
                    BitcoinCore: undefined;
                    ByFork: {
                        block_hash: ...;
                        block_number: ...;
                    };
                    ByGenesis: FixedSizeBinary<(...)>;
                    Ethereum: {
                        chain_id: ...;
                    };
                    Kusama: undefined;
                    Polkadot: undefined;
                    PolkadotBulletin: undefined;
                }>;
                OnlyChild: undefined;
                PalletInstance: number;
                Parachain: number;
                Plurality: {
                    id: XcmV3JunctionBodyId;
                    part: XcmV2JunctionBodyPart;
                };
            }>>;
            X6: FixedSizeArray<6, Enum<{
                AccountId32: {
                    id: FixedSizeBinary<32>;
                    network?: ...;
                };
                AccountIndex64: {
                    index: bigint;
                    network?: ...;
                };
                AccountKey20: {
                    key: FixedSizeBinary<20>;
                    network?: ...;
                };
                GeneralIndex: bigint;
                GeneralKey: {
                    data: FixedSizeBinary<32>;
                    length: number;
                };
                GlobalConsensus: Enum<{
                    BitcoinCash: undefined;
                    BitcoinCore: undefined;
                    ByFork: {
                        block_hash: ...;
                        block_number: ...;
                    };
                    ByGenesis: FixedSizeBinary<(...)>;
                    Ethereum: {
                        chain_id: ...;
                    };
                    Kusama: undefined;
                    Polkadot: undefined;
                    PolkadotBulletin: undefined;
                }>;
                OnlyChild: undefined;
                PalletInstance: number;
                Parachain: number;
                Plurality: {
                    id: XcmV3JunctionBodyId;
                    part: XcmV2JunctionBodyPart;
                };
            }>>;
            X7: FixedSizeArray<7, Enum<{
                AccountId32: {
                    id: FixedSizeBinary<32>;
                    network?: ...;
                };
                AccountIndex64: {
                    index: bigint;
                    network?: ...;
                };
                AccountKey20: {
                    key: FixedSizeBinary<20>;
                    network?: ...;
                };
                GeneralIndex: bigint;
                GeneralKey: {
                    data: FixedSizeBinary<32>;
                    length: number;
                };
                GlobalConsensus: Enum<{
                    BitcoinCash: undefined;
                    BitcoinCore: undefined;
                    ByFork: {
                        block_hash: ...;
                        block_number: ...;
                    };
                    ByGenesis: FixedSizeBinary<(...)>;
                    Ethereum: {
                        chain_id: ...;
                    };
                    Kusama: undefined;
                    Polkadot: undefined;
                    PolkadotBulletin: undefined;
                }>;
                OnlyChild: undefined;
                PalletInstance: number;
                Parachain: number;
                Plurality: {
                    id: XcmV3JunctionBodyId;
                    part: XcmV2JunctionBodyPart;
                };
            }>>;
            X8: FixedSizeArray<8, Enum<{
                AccountId32: {
                    id: FixedSizeBinary<32>;
                    network?: ...;
                };
                AccountIndex64: {
                    index: bigint;
                    network?: ...;
                };
                AccountKey20: {
                    key: FixedSizeBinary<20>;
                    network?: ...;
                };
                GeneralIndex: bigint;
                GeneralKey: {
                    data: FixedSizeBinary<32>;
                    length: number;
                };
                GlobalConsensus: Enum<{
                    BitcoinCash: undefined;
                    BitcoinCore: undefined;
                    ByFork: {
                        block_hash: ...;
                        block_number: ...;
                    };
                    ByGenesis: FixedSizeBinary<(...)>;
                    Ethereum: {
                        chain_id: ...;
                    };
                    Kusama: undefined;
                    Polkadot: undefined;
                    PolkadotBulletin: undefined;
                }>;
                OnlyChild: undefined;
                PalletInstance: number;
                Parachain: number;
                Plurality: {
                    id: XcmV3JunctionBodyId;
                    part: XcmV2JunctionBodyPart;
                };
            }>>;
        }>;
        parents: number;
    };
}>

Approve an amount of asset for transfer by a delegated third-party account.

Origin must be Signed.

Ensures that ApprovalDeposit worth of Currency is reserved from signing account for the purpose of holding the approval. If some non-zero amount of assets is already approved from signing account to delegate, then it is topped up or unreserved to meet the right value.

NOTE: The signing account does not need to own amount of assets at the point of making this call.

  • id: The identifier of the asset.
  • delegate: The account to delegate permission to transfer asset.
  • amount: The amount of asset that may be transferred by delegate. If there is already an approval in place, then this acts additively.

Emits ApprovedTransfer on success.

Weight: O(1)