pub fn transfer_assets<T: Config>(
    dest: Box<VersionedLocation>,
    beneficiary: Box<VersionedLocation>,
    assets: Box<VersionedAssets>,
    fee_asset_item: u32,
    weight_limit: WeightLimit
)
Expand description

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

Fee payment on the destination side is made from the asset in the assets vector of index fee_asset_item (hence referred to as fees), up to enough to pay for weight_limit of weight. If more weight is needed than weight_limit, then the operation will fail and the sent assets may be at risk.

assets (excluding fees) must have same reserve location or otherwise be teleportable to dest, no limitations imposed on fees.

  • for 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.

  • for 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.

  • for 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.

  • for teleports: burn local assets and forward XCM to dest chain to mint/teleport assets and deposit them to beneficiary.

  • origin: Must be capable of withdrawing the assets and executing XCM.

  • dest: Destination context for the assets. Will typically be X2(Parent, Parachain(..)) to send from parachain to parachain, or X1(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.

  • weight_limit: The remote-side weight limit, if any, for the XCM fee purchase.

§Warning: Doc-Only

This function is an automatically generated, and is doc-only, uncallable stub. See the real version in Pallet::transfer_assets.