pub trait TransactAsset {
    // Provided methods
    fn can_check_in(
        _origin: &Location,
        _what: &Asset,
        _context: &XcmContext
    ) -> Result<(), Error> { ... }
    fn check_in(_origin: &Location, _what: &Asset, _context: &XcmContext) { ... }
    fn can_check_out(
        _dest: &Location,
        _what: &Asset,
        _context: &XcmContext
    ) -> Result<(), Error> { ... }
    fn check_out(_dest: &Location, _what: &Asset, _context: &XcmContext) { ... }
    fn deposit_asset(
        _what: &Asset,
        _who: &Location,
        _context: Option<&XcmContext>
    ) -> Result<(), Error> { ... }
    fn withdraw_asset(
        _what: &Asset,
        _who: &Location,
        _maybe_context: Option<&XcmContext>
    ) -> Result<AssetsInHolding, Error> { ... }
    fn internal_transfer_asset(
        _asset: &Asset,
        _from: &Location,
        _to: &Location,
        _context: &XcmContext
    ) -> Result<AssetsInHolding, Error> { ... }
    fn transfer_asset(
        asset: &Asset,
        from: &Location,
        to: &Location,
        context: &XcmContext
    ) -> Result<AssetsInHolding, Error> { ... }
}
Expand description

Facility for asset transacting.

This should work with as many asset/location combinations as possible. Locations to support may include non-account locations such as a [Junction::Parachain]. Different chains may handle them in different ways.

Can be amalgamated as a tuple of items that implement this trait. In such executions, if any of the transactors returns Ok(()), then it will short circuit. Else, execution is passed to the next transactor.

Provided Methods§

fn can_check_in( _origin: &Location, _what: &Asset, _context: &XcmContext ) -> Result<(), Error>

Ensure that check_in will do as expected.

When composed as a tuple, all type-items are called and at least one must result in Ok.

fn check_in(_origin: &Location, _what: &Asset, _context: &XcmContext)

An asset has been teleported in from the given origin. This should do whatever housekeeping is needed.

NOTE: This will make only a best-effort at bookkeeping. The caller should ensure that can_check_in has returned with Ok in order to guarantee that this operation proceeds properly.

Implementation note: In general this will do one of two things: On chains where the asset is native, it will reduce the assets from a special “teleported” account so that a) total-issuance is preserved; and b) to ensure that no more assets can be teleported in than were teleported out overall (this should not be needed if the teleporting chains are to be trusted, but better to be safe than sorry). On chains where the asset is not native then it will generally just be a no-op.

When composed as a tuple, all type-items are called. It is up to the implementer that there exists no value for _what which can cause side-effects for more than one of the type-items.

fn can_check_out( _dest: &Location, _what: &Asset, _context: &XcmContext ) -> Result<(), Error>

Ensure that check_out will do as expected.

When composed as a tuple, all type-items are called and at least one must result in Ok.

fn check_out(_dest: &Location, _what: &Asset, _context: &XcmContext)

An asset has been teleported out to the given destination. This should do whatever housekeeping is needed.

Implementation note: In general this will do one of two things: On chains where the asset is native, it will increase the assets in a special “teleported” account so that a) total-issuance is preserved; and b) to ensure that no more assets can be teleported in than were teleported out overall (this should not be needed if the teleporting chains are to be trusted, but better to be safe than sorry). On chains where the asset is not native then it will generally just be a no-op.

When composed as a tuple, all type-items are called. It is up to the implementer that there exists no value for _what which can cause side-effects for more than one of the type-items.

fn deposit_asset( _what: &Asset, _who: &Location, _context: Option<&XcmContext> ) -> Result<(), Error>

Deposit the what asset into the account of who.

Implementations should return XcmError::FailedToTransactAsset if deposit failed.

fn withdraw_asset( _what: &Asset, _who: &Location, _maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

Withdraw the given asset from the consensus system. Return the actual asset(s) withdrawn, which should always be equal to _what.

The XCM _maybe_context parameter may be None when the caller of withdraw_asset is outside of the context of a currently-executing XCM. An example will be the charge_fees method in the XCM executor.

Implementations should return XcmError::FailedToTransactAsset if withdraw failed.

fn internal_transfer_asset( _asset: &Asset, _from: &Location, _to: &Location, _context: &XcmContext ) -> Result<AssetsInHolding, Error>

Move an asset from one location in to another location.

Returns XcmError::FailedToTransactAsset if transfer failed.

§Notes

This function is meant to only be implemented by the type implementing TransactAsset, and not be called directly. Most common API usages will instead call transfer_asset, which in turn has a default implementation that calls internal_transfer_asset. As such, please do not call this method directly unless you know what you’re doing.

fn transfer_asset( asset: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

Move an asset from one location in to another location.

Attempts to use internal_transfer_asset and if not available then falls back to using a two-part withdraw/deposit.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl TransactAsset for ()

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0> TransactAsset for (TupleElement0,)
where TupleElement0: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1> TransactAsset for (TupleElement0, TupleElement1)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2> TransactAsset for (TupleElement0, TupleElement1, TupleElement2)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset, TupleElement22: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset, TupleElement22: TransactAsset, TupleElement23: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset, TupleElement22: TransactAsset, TupleElement23: TransactAsset, TupleElement24: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset, TupleElement22: TransactAsset, TupleElement23: TransactAsset, TupleElement24: TransactAsset, TupleElement25: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset, TupleElement22: TransactAsset, TupleElement23: TransactAsset, TupleElement24: TransactAsset, TupleElement25: TransactAsset, TupleElement26: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset, TupleElement22: TransactAsset, TupleElement23: TransactAsset, TupleElement24: TransactAsset, TupleElement25: TransactAsset, TupleElement26: TransactAsset, TupleElement27: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset, TupleElement22: TransactAsset, TupleElement23: TransactAsset, TupleElement24: TransactAsset, TupleElement25: TransactAsset, TupleElement26: TransactAsset, TupleElement27: TransactAsset, TupleElement28: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29> TransactAsset for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29)
where TupleElement0: TransactAsset, TupleElement1: TransactAsset, TupleElement2: TransactAsset, TupleElement3: TransactAsset, TupleElement4: TransactAsset, TupleElement5: TransactAsset, TupleElement6: TransactAsset, TupleElement7: TransactAsset, TupleElement8: TransactAsset, TupleElement9: TransactAsset, TupleElement10: TransactAsset, TupleElement11: TransactAsset, TupleElement12: TransactAsset, TupleElement13: TransactAsset, TupleElement14: TransactAsset, TupleElement15: TransactAsset, TupleElement16: TransactAsset, TupleElement17: TransactAsset, TupleElement18: TransactAsset, TupleElement19: TransactAsset, TupleElement20: TransactAsset, TupleElement21: TransactAsset, TupleElement22: TransactAsset, TupleElement23: TransactAsset, TupleElement24: TransactAsset, TupleElement25: TransactAsset, TupleElement26: TransactAsset, TupleElement27: TransactAsset, TupleElement28: TransactAsset, TupleElement29: TransactAsset,

§

fn can_check_in( origin: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_in(origin: &Location, what: &Asset, context: &XcmContext)

§

fn can_check_out( dest: &Location, what: &Asset, context: &XcmContext ) -> Result<(), Error>

§

fn check_out(dest: &Location, what: &Asset, context: &XcmContext)

§

fn deposit_asset( what: &Asset, who: &Location, context: Option<&XcmContext> ) -> Result<(), Error>

§

fn withdraw_asset( what: &Asset, who: &Location, maybe_context: Option<&XcmContext> ) -> Result<AssetsInHolding, Error>

§

fn internal_transfer_asset( what: &Asset, from: &Location, to: &Location, context: &XcmContext ) -> Result<AssetsInHolding, Error>

Implementors§

source§

impl<Assets: Mutate<AccountId> + Transfer<AccountId>, Matcher: MatchesNonFungibles<Assets::CollectionId, Assets::ItemId>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Clone + Eq, CheckAsset: AssetChecking<Assets::CollectionId>, CheckingAccount: Get<Option<AccountId>>> TransactAsset for NonFungiblesAdapter<Assets, Matcher, AccountIdConverter, AccountId, CheckAsset, CheckingAccount>

source§

impl<Assets: Mutate<AccountId>, Matcher: MatchesFungibles<Assets::AssetId, Assets::Balance>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Eq + Clone> TransactAsset for FungiblesTransferAdapter<Assets, Matcher, AccountIdConverter, AccountId>

source§

impl<Assets: Mutate<AccountId>, Matcher: MatchesFungibles<Assets::AssetId, Assets::Balance>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Eq + Clone, CheckAsset: AssetChecking<Assets::AssetId>, CheckingAccount: Get<AccountId>> TransactAsset for FungiblesAdapter<Assets, Matcher, AccountIdConverter, AccountId, CheckAsset, CheckingAccount>

source§

impl<Assets: Mutate<AccountId>, Matcher: MatchesFungibles<Assets::AssetId, Assets::Balance>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Eq + Clone, CheckAsset: AssetChecking<Assets::AssetId>, CheckingAccount: Get<AccountId>> TransactAsset for FungiblesMutateAdapter<Assets, Matcher, AccountIdConverter, AccountId, CheckAsset, CheckingAccount>

source§

impl<Assets: Mutate<AccountId>, Matcher: MatchesNonFungibles<Assets::CollectionId, Assets::ItemId>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Clone + Eq, CheckAsset: AssetChecking<Assets::CollectionId>, CheckingAccount: Get<Option<AccountId>>> TransactAsset for NonFungiblesMutateAdapter<Assets, Matcher, AccountIdConverter, AccountId, CheckAsset, CheckingAccount>

source§

impl<Assets: Transfer<AccountId>, Matcher: MatchesNonFungibles<Assets::CollectionId, Assets::ItemId>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Clone> TransactAsset for NonFungiblesTransferAdapter<Assets, Matcher, AccountIdConverter, AccountId>

source§

impl<Currency: Currency<AccountId>, Matcher: MatchesFungible<Currency::Balance>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Clone, CheckedAccount: Get<Option<(AccountId, MintLocation)>>> TransactAsset for CurrencyAdapter<Currency, Matcher, AccountIdConverter, AccountId, CheckedAccount>

source§

impl<Fungible: Mutate<AccountId>, Matcher: MatchesFungible<Fungible::Balance>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Eq + Clone> TransactAsset for FungibleTransferAdapter<Fungible, Matcher, AccountIdConverter, AccountId>

source§

impl<Fungible: Mutate<AccountId>, Matcher: MatchesFungible<Fungible::Balance>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Eq + Clone, CheckingAccount: Get<Option<(AccountId, MintLocation)>>> TransactAsset for FungibleAdapter<Fungible, Matcher, AccountIdConverter, AccountId, CheckingAccount>

source§

impl<Fungible: Mutate<AccountId>, Matcher: MatchesFungible<Fungible::Balance>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Eq + Clone, CheckingAccount: Get<Option<(AccountId, MintLocation)>>> TransactAsset for FungibleMutateAdapter<Fungible, Matcher, AccountIdConverter, AccountId, CheckingAccount>

source§

impl<NonFungible: Mutate<AccountId> + Transfer<AccountId>, Matcher: MatchesNonFungible<NonFungible::ItemId>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Clone + Eq, CheckingAccount: Get<Option<(AccountId, MintLocation)>>> TransactAsset for NonFungibleAdapter<NonFungible, Matcher, AccountIdConverter, AccountId, CheckingAccount>

source§

impl<NonFungible: Mutate<AccountId>, Matcher: MatchesNonFungible<NonFungible::ItemId>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Clone + Eq, CheckingAccount: Get<Option<(AccountId, MintLocation)>>> TransactAsset for NonFungibleMutateAdapter<NonFungible, Matcher, AccountIdConverter, AccountId, CheckingAccount>

source§

impl<NonFungible: Transfer<AccountId>, Matcher: MatchesNonFungible<NonFungible::ItemId>, AccountIdConverter: ConvertLocation<AccountId>, AccountId: Clone> TransactAsset for NonFungibleTransferAdapter<NonFungible, Matcher, AccountIdConverter, AccountId>