To prevent Out of Memory errors on the DownwardMessageQueue, an
exponential fee factor (DeliveryFeeFactor) is set. The fee factor
increments exponentially after the number of messages in the
DownwardMessageQueue passes a threshold. This threshold is set as:
A type that uniquely identifies an HRMP channel. An HRMP channel is established between two
paras. In text, we use the notation (A, B) to specify a channel between A and B. The channels
are unidirectional, meaning that (A, B) and (B, A) refer to different channels. The
convention is that we use the first item tuple for the sender and the second for the recipient.
Only one channel is allowed between two participants in one direction, i.e. there cannot be 2
different channels identified by (A, B). A channel with the same para id in sender and
recipient is invalid. That is, however, not enforced.
Non-parent junctions that can be constructed, up to the length of 8. This specific Junctions
implementation uses a Rust enum in order to make pattern matching easier.
Error codes used in XCM. The first errors codes have explicit indices and are part of the XCM
format. Those trailing are merely part of the XCM implementation; there is no expectation that
they will retain the same index over time.