/// local runtime framework. For Cumulus/Frame chains this is the `Parachain` or `Relay` origin
/// if coming from a chain, though there may be others if the `MultiLocation` XCM origin has a
/// Consensus systems that may send and receive messages include blockchains and smart contracts.
/// This is the inner XCM format and is version-sensitive. Messages are typically passed using the
/// Withdraw asset(s) (`assets`) from the ownership of `origin` and place them into the Holding
/// Asset(s) (`assets`) have been received into the ownership of this system on the `origin`
/// Asset(s) (`assets`) have been destroyed on the `origin` system and equivalent assets should
/// Withdraw asset(s) (`assets`) from the ownership of `origin` and place equivalent assets
/// Withdraw asset(s) (`assets`) from the ownership of `origin` and place equivalent assets
/// Apply the encoded transaction `call`, whose dispatch-origin should be `origin` as expressed
Transact { origin_kind: OriginKind, require_weight_at_most: Weight, call: DoubleEncoded<Call> },
/// A message to notify about a new incoming HRMP channel. This message is meant to be sent by
/// A message to notify about that a previously sent open channel request has been accepted by
/// This may be used by the XCM author to ensure that later instructions cannot command the
/// authority of the origin (e.g. if they are being relayed from an untrusted source, as often
/// Immediately report the contents of the Error Register to the given destination via XCM.
/// Remove the asset(s) (`assets`) from the Holding Register and place equivalent assets under
/// Remove the asset(s) (`assets`) from the Holding Register and place equivalent assets under
/// Remove the asset(s) (`want`) from the Holding Register and replace them with alternative
/// Remove the asset(s) (`assets`) from holding and send a `WithdrawAsset` XCM message to a
InitiateReserveWithdraw { assets: MultiAssetFilter, reserve: MultiLocation, xcm: Xcm<()> },
/// Remove the asset(s) (`assets`) from holding and send a `ReceiveTeleportedAsset` XCM message
/// Set the Error Handler Register. This is code that should be called in the case of an error
/// Send a `QueryResponse` message containing the value of the Transact Status Register to some
/// Remove the lock over `asset` on this chain and (if nothing else is preventing it) allow the
/// Asset (`asset`) has been locked on the `origin` system and may not be transferred. It may
/// However, at the barrier stage messages starting with this instruction can be disregarded if