* Add the ability to suspend or resume XCM execution on the XCMP queue
* Rename QueueActive to QueueSuspended
* Add the ability to suspend the DMP queue
* Rename XCMP to DMP in comments where appropriate
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Add a bypass for XCMP queue suspension
* Revert "Add the ability to suspend the DMP queue"
This reverts commit 363ca09b41e40fce3f2740e7ab78f5c54781ca5c.
* Change controller origin to either root or council-issued origin
* Rename to ControllerOriginConverter
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* xcmp-queue: Fix handling of encoded blobs
With #701 we tried to fix some infinite loop related to encoded blobs, however that lead actually to
not being able to process encoded blobs at all. The reason for this is that `decode_all` doesn't
consume the given input. The point of this function is that it returns an error if the data couldn't
be decoded or there is still data left. However, this means that the check
`remaining_fragments.len() < last_remaining_fragments.len()` would always fail.
We remove the while loop, because we decode the entire fragment anyway or it fails. Aka, we don't
need to loop here. Next we remove the broken check and we directly reset the
`remaining_fragments` (because `decode_all` doesn't consume anything).
* Restore correct behavior
We need to use a while loop, because there can be multiple `Vec<u8>`s. We also need to use `decode`,
because `decode_all` would otherwise return an error if the input is not empty afterwards.
* Remove unused import
* Support overweight messages in XCMP queue
* Add storage migration logic to XCMP queue pallet
* Check whether required weight is larger than max individual weight first
* cargo fmt
* Add some unit tests
* Remove review question comment
* Rename InboundXcmpStatus and its related types
* Rename OutboundXcmpStatus and its relevant types
* Add documentation to the newly created types
* Ensure storage prefixes are kept the same
* Add code comments
* Revert storage name changes
* typo fix
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Use DecodeLimit for decoding XCM messages
* Use decode_all_with_depth_limit in appropriate places
* Use decode_all while decoding byte vector
* cargo fmt
* Upgrade parachain info pallet to FRAMEv2
* Upgrade parachain system pallet to FRAMEv2
* Use Pallet<T> instead of Module<T>
* Upgrade XCMP queue pallet to FRAMEv2
* Correctly specify the metadata for events in xcmp-queue pallet
* Apply suggestions from code review
* Update pallets/parachain-system/src/tests.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>