XcmpQueue¶
Events¶
BadFormat¶
Bad XCM format used.
Attributes¶
Name | Type | Composition |
---|---|---|
message_hash | XcmHash |
[u8; 32] |
BadVersion¶
Bad XCM version used.
Attributes¶
Name | Type | Composition |
---|---|---|
message_hash | XcmHash |
[u8; 32] |
DeferredBucketDiscarded¶
The deferred bucket was discarded.
Attributes¶
Name | Type | Composition |
---|---|---|
sender | ParaId |
u32 |
index | DeferredIndex |
('u32', 'u16') |
DeferredXcmDiscarded¶
The deferred message was successfully discarded.
Attributes¶
Name | Type | Composition |
---|---|---|
sender | ParaId |
u32 |
sent_at | RelayBlockNumber |
u32 |
deferred_to | RelayBlockNumber |
u32 |
index | DeferredIndex |
('u32', 'u16') |
position | u32 |
u32 |
message_hash | Option<XcmHash> |
(None, '[u8; 32]') |
Fail¶
Some XCM failed.
Attributes¶
Name | Type | Composition |
---|---|---|
message_hash | XcmHash |
[u8; 32] |
message_id | XcmHash |
[u8; 32] |
error | XcmError |
{'Overflow': None, 'Unimplemented': None, 'UntrustedReserveLocation': None, 'UntrustedTeleportLocation': None, 'LocationFull': None, 'LocationNotInvertible': None, 'BadOrigin': None, 'InvalidLocation': None, 'AssetNotFound': None, 'FailedToTransactAsset': None, 'NotWithdrawable': None, 'LocationCannotHold': None, 'ExceedsMaxMessageSize': None, 'DestinationUnsupported': None, 'Transport': None, 'Unroutable': None, 'UnknownClaim': None, 'FailedToDecode': None, 'MaxWeightInvalid': None, 'NotHoldingFees': None, 'TooExpensive': None, 'Trap': 'u64', 'ExpectationFalse': None, 'PalletNotFound': None, 'NameMismatch': None, 'VersionIncompatible': None, 'HoldingWouldOverflow': None, 'ExportError': None, 'ReanchorFailed': None, 'NoDeal': None, 'FeesNotMet': None, 'LockError': None, 'NoPermission': None, 'Unanchored': None, 'NotDepositable': None, 'UnhandledXcmVersion': None, 'WeightLimitReached': {'ref_time': 'u64', 'proof_size': 'u64'}, 'Barrier': None, 'WeightNotComputable': None, 'ExceedsStackLimit': None} |
weight | Weight |
{'ref_time': 'u64', 'proof_size': 'u64'} |
OverweightEnqueued¶
An XCM exceeded the individual message weight budget.
Attributes¶
Name | Type | Composition |
---|---|---|
sender | ParaId |
u32 |
sent_at | RelayBlockNumber |
u32 |
index | OverweightIndex |
u64 |
required | Weight |
{'ref_time': 'u64', 'proof_size': 'u64'} |
OverweightServiced¶
An XCM from the overweight queue was executed with the given actual weight used.
Attributes¶
Name | Type | Composition |
---|---|---|
index | OverweightIndex |
u64 |
used | Weight |
{'ref_time': 'u64', 'proof_size': 'u64'} |
Success¶
Some XCM was executed ok.
Attributes¶
Name | Type | Composition |
---|---|---|
message_hash | XcmHash |
[u8; 32] |
message_id | XcmHash |
[u8; 32] |
weight | Weight |
{'ref_time': 'u64', 'proof_size': 'u64'} |
XcmDeferred¶
Some XCM was deferred for later execution
Attributes¶
Name | Type | Composition |
---|---|---|
sender | ParaId |
u32 |
sent_at | RelayBlockNumber |
u32 |
deferred_to | RelayBlockNumber |
u32 |
index | DeferredIndex |
('u32', 'u16') |
position | u32 |
u32 |
message_hash | Option<XcmHash> |
(None, '[u8; 32]') |
XcmDeferredQueueFull¶
The deferred queue is full with xcm messages
Attributes¶
Name | Type | Composition |
---|---|---|
sender | ParaId |
u32 |
sent_at | RelayBlockNumber |
u32 |
message_hash | Option<XcmHash> |
(None, '[u8; 32]') |
XcmpMessageSent¶
An HRMP message was sent to a sibling parachain.
Attributes¶
Name | Type | Composition |
---|---|---|
message_hash | XcmHash |
[u8; 32] |
Storage functions¶
CounterForOverweight¶
Counter for the related counted storage map
Python¶
result = substrate.query(
'XcmpQueue', 'CounterForOverweight', []
)
Return value¶
'u32'
DeferAllBy¶
Whether or not and if so by how much to defer all incoming XCMs.
Python¶
result = substrate.query(
'XcmpQueue', 'DeferAllBy', []
)
Return value¶
'u32'
DeferredIndices¶
Index of deferred message buckets to process.
Python¶
result = substrate.query(
'XcmpQueue', 'DeferredIndices', ['u32']
)
Return value¶
'scale_info::647'
DeferredMessageBuckets¶
Storage for deferred messages, indexed by para id, block and counter.
Python¶
result = substrate.query(
'XcmpQueue', 'DeferredMessageBuckets', ['u32', ('u32', 'u16')]
)
Return value¶
[
(
None,
{
'deferred_to': 'u32',
'sender': 'u32',
'sent_at': 'u32',
'xcm': {
None: None,
'V2': ['scale_info::387'],
'V3': ['scale_info::391'],
},
},
),
]
DeferredQueueSuspended¶
Whether or not the Deferred queue is suspended from executing XCMs or not.
Python¶
result = substrate.query(
'XcmpQueue', 'DeferredQueueSuspended', []
)
Return value¶
'bool'
InboundXcmpMessages¶
Inbound aggregate XCMP messages. It can only be one per ParaId/block.
Python¶
result = substrate.query(
'XcmpQueue', 'InboundXcmpMessages', ['u32', 'u32']
)
Return value¶
'Bytes'
InboundXcmpStatus¶
Status of the inbound XCMP channels.
Python¶
result = substrate.query(
'XcmpQueue', 'InboundXcmpStatus', []
)
Return value¶
[
{
'message_metadata': [
(
'u32',
(
'ConcatenatedVersionedXcm',
'ConcatenatedEncodedBlob',
'Signals',
),
),
],
'sender': 'u32',
'state': ('Ok', 'Suspended'),
},
]
OutboundXcmpMessages¶
The messages outbound in a given XCMP channel.
Python¶
result = substrate.query(
'XcmpQueue', 'OutboundXcmpMessages', ['u32', 'u16']
)
Return value¶
'Bytes'
OutboundXcmpStatus¶
The non-empty XCMP channels in order of becoming non-empty, and the index of the first
and last outbound message. If the two indices are equal, then it indicates an empty
queue and there must be a non-Ok
OutboundStatus
. We assume queues grow no greater
than 65535 items. Queue indices for normal messages begin at one; zero is reserved in
case of the need to send a high-priority signal message this block.
The bool is true if there is a signal message waiting to be sent.
Python¶
result = substrate.query(
'XcmpQueue', 'OutboundXcmpStatus', []
)
Return value¶
[
{
'first_index': 'u16',
'last_index': 'u16',
'recipient': 'u32',
'signals_exist': 'bool',
'state': ('Ok', 'Suspended'),
},
]
Overweight¶
The messages that exceeded max individual message weight budget.
These message stay in this storage map until they are manually dispatched via
service_overweight
.
Python¶
result = substrate.query(
'XcmpQueue', 'Overweight', ['u64']
)
Return value¶
('u32', 'u32', 'Bytes')
OverweightCount¶
The number of overweight messages ever recorded in Overweight
. Also doubles as the next
available free overweight index.
Python¶
result = substrate.query(
'XcmpQueue', 'OverweightCount', []
)
Return value¶
'u64'
QueueConfig¶
The configuration which controls the dynamics of the outbound queue.
Python¶
result = substrate.query(
'XcmpQueue', 'QueueConfig', []
)
Return value¶
{
'drop_threshold': 'u32',
'resume_threshold': 'u32',
'suspend_threshold': 'u32',
'threshold_weight': {'proof_size': 'u64', 'ref_time': 'u64'},
'weight_restrict_decay': {'proof_size': 'u64', 'ref_time': 'u64'},
'xcmp_max_individual_weight': {'proof_size': 'u64', 'ref_time': 'u64'},
}
QueueSuspended¶
Whether or not the XCMP queue is suspended from executing incoming XCMs or not.
Python¶
result = substrate.query(
'XcmpQueue', 'QueueSuspended', []
)
Return value¶
'bool'
SignalMessages¶
Any signal messages waiting to be sent.
Python¶
result = substrate.query(
'XcmpQueue', 'SignalMessages', ['u32']
)
Return value¶
'Bytes'
Errors¶
BadOverweightIndex¶
Bad overweight index.
BadXcm¶
Bad XCM data.
BadXcmOrigin¶
Bad XCM origin.
FailedToSend¶
Failed to send XCM message.
MessageNotFound¶
Indicated message is not present.
WeightOverLimit¶
Provided weight is possibly not enough to execute the message.