pub trait ExecuteXcm<Call> {
type Prepared: PreparedMessage;
// Required methods
fn prepare(message: Xcm<Call>) -> Result<Self::Prepared, Xcm<Call>>;
fn execute(
origin: impl Into<MultiLocation>,
pre: Self::Prepared,
id: &mut [u8; 32],
weight_credit: Weight,
) -> Outcome;
fn charge_fees(
location: impl Into<MultiLocation>,
fees: MultiAssets,
) -> Result<(), Error>;
// Provided methods
fn prepare_and_execute(
origin: impl Into<MultiLocation>,
message: Xcm<Call>,
id: &mut [u8; 32],
weight_limit: Weight,
weight_credit: Weight,
) -> Outcome { ... }
fn execute_xcm(
origin: impl Into<MultiLocation>,
message: Xcm<Call>,
hash: [u8; 32],
weight_limit: Weight,
) -> Outcome { ... }
fn execute_xcm_in_credit(
origin: impl Into<MultiLocation>,
message: Xcm<Call>,
hash: [u8; 32],
weight_limit: Weight,
weight_credit: Weight,
) -> Outcome { ... }
}
Expand description
Type of XCM message executor.
Required Associated Types§
Required Methods§
fn prepare(message: Xcm<Call>) -> Result<Self::Prepared, Xcm<Call>>
fn execute( origin: impl Into<MultiLocation>, pre: Self::Prepared, id: &mut [u8; 32], weight_credit: Weight, ) -> Outcome
Sourcefn charge_fees(
location: impl Into<MultiLocation>,
fees: MultiAssets,
) -> Result<(), Error>
fn charge_fees( location: impl Into<MultiLocation>, fees: MultiAssets, ) -> Result<(), Error>
Deduct some fees
to the sovereign account of the given location
and place them as per
the convention for fees.
Provided Methods§
fn prepare_and_execute( origin: impl Into<MultiLocation>, message: Xcm<Call>, id: &mut [u8; 32], weight_limit: Weight, weight_credit: Weight, ) -> Outcome
Sourcefn execute_xcm(
origin: impl Into<MultiLocation>,
message: Xcm<Call>,
hash: [u8; 32],
weight_limit: Weight,
) -> Outcome
fn execute_xcm( origin: impl Into<MultiLocation>, message: Xcm<Call>, hash: [u8; 32], weight_limit: Weight, ) -> Outcome
Execute some XCM message
with the message hash
from origin
using no more than
weight_limit
weight.
The weight limit is a basic hard-limit and the implementation may place further restrictions or requirements on weight and other aspects.
Sourcefn execute_xcm_in_credit(
origin: impl Into<MultiLocation>,
message: Xcm<Call>,
hash: [u8; 32],
weight_limit: Weight,
weight_credit: Weight,
) -> Outcome
fn execute_xcm_in_credit( origin: impl Into<MultiLocation>, message: Xcm<Call>, hash: [u8; 32], weight_limit: Weight, weight_credit: Weight, ) -> Outcome
Execute some XCM message
with the message hash
from origin
using no more than
weight_limit
weight.
Some amount of weight_credit
may be provided which, depending on the implementation, may
allow execution without associated payment.
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.