-
Notifications
You must be signed in to change notification settings - Fork 7
XCM Status
MK edited this page Aug 23, 2022
·
1 revision
A simple xcm msg usually go through the following phases:
- xcm initiated by extrinsic [status:unknown]
- xcm sent by origination chain [status: sent]
- xcm relayed by relaychain [status: relayed]
- xcm received by destination chain [status: delivered]
- xcm executed at destination [status: success/failure] .
The default status of a XCM. Sometimes the XCM status can't be determined because we are either missing the traces/events at Origination and Destination. The "unknown" case will get picked up by backfilling process and eventually turned into either sucess/failure
The XCM is delivered and received by Destination Chain, pending for execution
The XCM completed without any error or warning
The XCM encountered potential error during execution. A list of possible xcm execution failures at step 5 can be found on Polkadot's Official Doc here:
-
Overflow = 0
: An arithmetic overflow happened. -
Unimplemented = 1
: The instruction is intentionally unsupported. -
UntrustedReserveLocation = 2
: Origin Register does not contain a value value for a reserve transfer notification. -
UntrustedTeleportLocation = 3
: Origin Register does not contain a value value for a teleport notification. -
MultiLocationFull = 4
:MultiLocation
value too large to descend further. -
MultiLocationNotInvertible = 5
:MultiLocation
value ascend more parents than known ancestors of local location. -
BadOrigin = 6
: The Origin Register does not contain a valid value for instruction. -
InvalidLocation = 7
: The location parameter is not a valid value for the instruction. -
AssetNotFound = 8
: The given asset is not handled. -
FailedToTransactAsset = 9
: An asset transaction (like withdraw or deposit) failed (typically due to type conversions). -
NotWithdrawable = 10
: An asset cannot be withdrawn, potentially due to lack of ownership, availability or rights. -
LocationCannotHold = 11
: An asset cannot be deposited under the ownership of a particular location. -
ExceedsMaxMessageSize = 12
: Attempt to send a message greater than the maximum supported by the transport protocol. -
DestinationUnsupported = 13
: The given message cannot be translated into a format supported by the destination. -
Transport = 14
: Destination is routable, but there is some issue with the transport mechanism. -
Unroutable = 15
: Destination is known to be unroutable. -
UnknownClaim = 16
: Used byClaimAsset
when the given claim could not be recognized/found. -
FailedToDecode = 17
: Used byTransact
when the functor cannot be decoded. -
TooMuchWeightRequired = 18
: Used byTransact
to indicate that the given weight limit could be breached by the functor. -
NotHoldingFees = 19
: Used byBuyExecution
when the Holding Register does not contain payable fees. -
TooExpensive = 20
: Used byBuyExecution
when the fees declared to purchase weight are insufficient. -
Trap(u64) = 21
: Used by theTrap
instruction to force an error intentionally. Its code is included. -
ExpectationFalse = 22
: Used byExpectAsset
,ExpectError
andExpectOrigin
when the expectation was not true.