Type Alias reserve_transfer_assets

reserve_transfer_assets: TxDescriptor<{
    assets: Enum<{
        V3: {
            fun: XcmV3MultiassetFungibility;
            id: XcmV3MultiassetAssetId;
        }[];
        V4: {
            fun: XcmV3MultiassetFungibility;
            id: {
                interior: XcmV3Junctions;
                parents: number;
            };
        }[];
        V5: {
            fun: XcmV3MultiassetFungibility;
            id: {
                interior: Enum<{
                    Here: undefined;
                    X1: Enum<{
                        AccountId32: ...;
                        AccountIndex64: ...;
                        AccountKey20: ...;
                        GeneralIndex: ...;
                        GeneralKey: ...;
                        GlobalConsensus: ...;
                        OnlyChild: ...;
                        PalletInstance: ...;
                        Parachain: ...;
                        Plurality: ...;
                    }>;
                    X2: FixedSizeArray<2, Enum<(...)>>;
                    X3: FixedSizeArray<3, Enum<(...)>>;
                    X4: FixedSizeArray<4, Enum<(...)>>;
                    X5: FixedSizeArray<5, Enum<(...)>>;
                    X6: FixedSizeArray<6, Enum<(...)>>;
                    X7: FixedSizeArray<7, Enum<(...)>>;
                    X8: FixedSizeArray<8, Enum<(...)>>;
                }>;
                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;
        };
    }>;
    dest: 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;
        };
    }>;
    fee_asset_item: number;
}>

Transfer some assets from the local chain to the destination chain through their local, destination or remote reserve.

assets must have same reserve location and may not be teleportable to dest.

  • assets have local reserve: transfer assets to sovereign account of destination chain and forward a notification XCM to dest to mint and deposit reserve-based assets to beneficiary.
  • assets have destination reserve: burn local assets and forward a notification to dest chain to withdraw the reserve assets from this chain's sovereign account and deposit them to beneficiary.
  • assets have remote reserve: burn local assets, forward XCM to reserve chain to move reserves from this chain's SA to dest chain's SA, and forward another XCM to dest to mint and deposit reserve-based assets to beneficiary.

This function is deprecated: Use limited_reserve_transfer_assets instead.

Fee payment on the destination side is made from the asset in the assets vector of index fee_asset_item. The weight limit for fees is not provided and thus is unlimited, with all fees taken as needed from the asset.

  • origin: Must be capable of withdrawing the assets and executing XCM.
  • dest: Destination context for the assets. Will typically be [Parent, Parachain(..)] to send from parachain to parachain, or [Parachain(..)] to send from relay to parachain.
  • beneficiary: A beneficiary location for the assets in the context of dest. Will generally be an AccountId32 value.
  • assets: The assets to be withdrawn. This should include the assets used to pay the fee on the dest (and possibly reserve) chains.
  • fee_asset_item: The index into assets of the item which should be used to pay fees.