referrerpolicy=no-referrer-when-downgrade

Trait XcmPaymentApiV1

Source
pub trait XcmPaymentApiV1<Block>
where Block: Block,
{ // Required methods fn query_acceptable_payment_assets( xcm_version: u32, ) -> Result<Vec<VersionedAssetId>, Error>; fn query_xcm_weight(message: VersionedXcm<()>) -> Result<Weight, Error>; fn query_weight_to_asset_fee( weight: Weight, asset: VersionedAssetId, ) -> Result<u128, Error>; fn query_delivery_fees( destination: VersionedLocation, message: VersionedXcm<()>, ) -> Result<VersionedAssets, Error>; }
Expand description

A trait of XCM payment API.

API provides functionality for obtaining:

  • the weight required to execute an XCM message,
  • a list of acceptable AssetIds for message execution payment,
  • the cost of the weight in the specified acceptable AssetId.
  • the fees for an XCM message delivery.

To determine the execution weight of the calls required for [xcm::latest::Instruction::Transact] instruction, TransactionPaymentCallApi can be used.

Required Methods§

Source

fn query_acceptable_payment_assets( xcm_version: u32, ) -> Result<Vec<VersionedAssetId>, Error>

Returns a list of acceptable payment assets.

§Arguments
  • xcm_version: Version.
Source

fn query_xcm_weight(message: VersionedXcm<()>) -> Result<Weight, Error>

Returns a weight needed to execute a XCM.

§Arguments
  • message: VersionedXcm.
Source

fn query_weight_to_asset_fee( weight: Weight, asset: VersionedAssetId, ) -> Result<u128, Error>

Converts a weight into a fee for the specified AssetId.

§Arguments
  • weight: convertible Weight.
  • asset: VersionedAssetId.
Source

fn query_delivery_fees( destination: VersionedLocation, message: VersionedXcm<()>, ) -> Result<VersionedAssets, Error>

Get delivery fees for sending a specific message to a destination. These always come in a specific asset, defined by the chain.

§Arguments
  • message: The message that’ll be sent, necessary because most delivery fees are based on the size of the message.
  • destination: The destination to send the message to. Different destinations may use different senders that charge different fees.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§