pub fn limited_reserve_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.

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.

Fee payment on the destination side is made from the asset in the assets vector of index fee_asset_item, 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.

  • 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.
  • 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::limited_reserve_transfer_assets.