Commit Graph

29 Commits

Author SHA1 Message Date
girazoki 1579a8a3a4 Add event with XCM executor outcome, which includes weight fee (#1286)
* Add event with XCM executor outcome, which includes weight fee

* Show weight used in processed messages

* remove added event

* named events

* message_id for message_hash

* Update pallets/xcmp-queue/src/lib.rs

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
2022-06-20 13:49:28 +00:00
Doordashcon 3eaf47bbaa Log XCMP Queue Errors (#1147)
* test invalid xcmp data

* proper messaging

* cargo fmt

* Use `error` instead of `info`

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2022-04-12 22:39:17 +02:00
Squirrel 4497c1f686 xcmp-queue / less indexing (#1100)
* less indexing

* removed unneeded clone

Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
2022-03-22 20:56:58 +00:00
Squirrel 585089e687 express intent better (#1099) 2022-03-21 14:47:47 +00:00
Doordashcon 8d96b8673f Add benchmarks for Xcmp QueueConfigData setters (#982)
* add benchmarks for xcmp queue config data setters

* add new benchmarks

* cargo fmt

* added newline

* Additional weights for dmp queue for westmint

* include new weights

* Adding WeightInfo trait and friends

* WeightInfo should be on xcmp rather than dmp pallet

* cargo fmt

* update scripts

* mock weightinfo

* cargo fmt

* canvas kusama is substrate weight

* weights from bm2

* expanding to other similar config functions

* updated weights from bm2

* Revert "updated weights from bm2"

This reverts commit b1702780982c278b44f572c2089b1d7ddc564d76.

* Consolidation to one benchmark

* reran weights

* Update pallets/xcmp-queue/src/lib.rs

Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>

* integrating review feedback

* rerun weights

* Add DispatchClass::Operational

Co-authored-by: Squirrel <gilescope@gmail.com>
Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>
2022-03-07 11:47:24 +00:00
wigy a59f02bc3f Companion to "Updating scale to v3" (#1013)
* Updating dependencies

* Adapting code to scale v3

* cargo fmt

* Fix compilation

* Update Cargo.lock

* TIL  exists

Co-authored-by: Bastian Köcher <info@kchr.de>
2022-02-25 13:40:24 +00:00
Doordashcon 5956c70a58 Add Setter for XCMP QueueConfigData (#931)
* add QueueConfigData setter

* update weights

* syntax change

* add test case

* fix Result error

* cargo fmt

* Apply suggestions from code review

Co-authored-by: Alexander Popiak <alexander.popiak@gmail.com>

* update

* one call per set

* cargo fmt

* cargo fmt

* mutate method

* cargo fmt

Co-authored-by: Alexander Popiak <alexander.popiak@gmail.com>
2022-02-05 11:47:31 +00:00
Keith Yeung d793334bbd Add the ability to suspend or resume XCM execution on the XCMP queue (#896)
* 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>
2022-01-31 12:12:09 +00:00
Oliver Tale-Yazdi 7b2b99eefe co #4746: Require MaxEncodedLen per default (#917)
* Add `without_storage_info`

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add `without_storage_info`

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add `without_storage_info`

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add `without_storage_info`

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* update lockfile for {"polkadot"}

* Run `cargo update -p sp-io`

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Co-authored-by: parity-processbot <>
2022-01-20 13:51:37 +00:00
Bastian Köcher d988e383dd xcmp-queue: Fix handling of encoded blobs (#889)
* 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
2022-01-19 16:57:03 +01:00
Keith Yeung b5135277f4 Support overweight messages in XCMP queue (#799)
* 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
2021-12-08 18:07:08 -08:00
Keith Yeung ad8fa5fc07 Refactor some types in XCMP queue (#813)
* 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>
2021-12-02 00:24:04 +00:00
Chevdor 0e48d6c504 CI: Release start (#788)
* Initial version

* Fix branch pattern

* Fix template

* Update .github/ISSUE_TEMPLATE/release.md

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>

* Update .github/ISSUE_TEMPLATE/release.md

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>

* Rebase master and fmt

* Swap out Polkadot JS section for integration tests + remove tags

* remove tags

Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
2021-11-24 18:15:43 +01:00
Gavin Wood e8669aeff8 Fix use of weight limit errors (#791) 2021-11-24 13:26:45 +01:00
Gavin Wood 47c2bcf55f Ensure a bad datastream cannot cause problems (#701)
* Ensure a bad datastream cannot cause problems

* Formatting

* Formatting
2021-10-27 13:40:24 +02:00
Bastian Köcher a8d84dba8e Same procedure as not every day (#636)
* Same procedure as not every day

* Remove warning

* Update
2021-10-01 13:23:56 +02:00
Keith Yeung eeca16388c Use DecodeLimit for decoding XCM messages (#605)
* Use DecodeLimit for decoding XCM messages

* Use decode_all_with_depth_limit in appropriate places

* Use decode_all while decoding byte vector

* cargo fmt
2021-09-19 15:29:34 +03:00
Chevdor 6b20f7a2c5 ci: add quick-check with rustfmt (#615)
* ci: add quick-check with clippy and rustfmt

* chore: rustfmt round

* chore: set the same rustfmt config than substrate

* chore: fix formatting

* cI: remove clippy

* ci: switch to nightly for the checks

* ci: fix toolchains and naming

* ci: Limit the check to formatting

* chore: fix formatting

* Update .rustfmt.toml

* Update .rustfmt.toml

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2021-09-16 16:57:52 +02:00
Andrew Jones e3eb3a0a12 Metadata v14 (companion to #3336) (#564)
* Remove event pallet::metadata attributes

* Add scale-info deps, TypeInfo derives, update call variants

* Update metadata runtime APIs

* Add missing scale_info dependency, update rococo runtime API

* Add missing scale_info dependency

* Remove pushed diener patches

* Cargo.lock

* Add missing scale-info dependencies

* Fixes

* Statemint runtime fixes

* Call struct variant empty matches

* Add missing scale-info dependency

* Fixes

* scale-info 1.0

* cargo update -p xcm

* update lock

* Update Cargo.lock

* update to latest polkadot

* remove rpc_http_threads

https://github.com/paritytech/substrate/pull/9737

* replace task executor with tokio handler

https://github.com/paritytech/substrate/pull/9737

* fix test compilation?

* Update Cargo.lock

* cargo update

* remove unused

* Update substrate and polkadot

* Update test/client/src/lib.rs

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2021-09-16 12:11:05 +02:00
Gavin Wood 9cc277834c Companion for #3629 (XCM v2) (#571)
* Update .gitignore and bring into line with XCM v2's SendError

* type

* Some work

* Weighed responses

* extra fields to xcm pallet

* Fixes

* Bump
2021-08-28 15:51:49 +02:00
Keith Yeung da5634a712 Use new MultiLocation syntax everywhere (#570)
* Use new MultiLocation syntax everywhere

* Make tests compile
2021-08-12 11:26:49 +02:00
Gavin Wood e8dfb9b571 Support XCM v1 (Companion to #2815) (#561)
* support for XCM v1

* Fixes

* Fix.

* Use `xcm::latest`

* Bump Polkadot

Co-authored-by: Bastian Köcher <info@kchr.de>
2021-08-06 19:13:33 +00:00
Shaun Wang 5e86294e4e Polkadot companion (XCM-simulator) (#560)
* Use definitions from polkadot.

* Remove unused imports.

* Rerun CI.
2021-08-05 08:43:51 +02:00
Shaun Wang 0966c8a4c3 Fix xcmp message processing condition. (#510)
* Fix xcmp message processing condition.

* add a very simple test

* Update Cargo.lock

* remove comment

* remove comment

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Alexander Popiak <alexander.popiak@gmail.com>
2021-07-06 16:35:59 +02:00
Keith Yeung 647a9e6df9 Upgrade pallets to FRAMEv2 (#404)
* 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>
2021-05-08 22:18:01 +02:00
Gavin Wood cdf8fd94d3 Fix condition (#424)
Closes #419
2021-04-30 15:17:21 +02:00
Guillaume Thiolliere b03d11b8e0 Bump polkadot + fix parachain unnamed field (#412)
* parachain unnamed field

* bump polkadot: cargo udpate -p xcm

* Update lock

* Fixes

* Fixes

Co-authored-by: Gav Wood <gavin@parity.io>
2021-04-27 18:56:08 +02:00
Gavin Wood 09cd8a8976 Docs (#401) 2021-04-14 10:54:35 +02:00
Gavin Wood 86f9a99184 XCM revamp & Ping pallet (#391)
* Add spambot

* Fixes

* Add some extra functions to spambot, bump version

* Lock..

* Aggregate HRMP (XCMP/HMP) messages. Payloads for spambot.

* Fix tests, bump Polkadot.

* Fix HMP tests

* Rename Hrmp -> Xcmp for handler/sender

* Use master branch

* Test Xcm message passing & rename away from HMP

* Docs

* Introduce fee payment mechanics into XCM.

* Rename spambot -> ping

* Lock

* XCMP message dispatch system reimagining

- Moved most of the logic into xcm-handler pallet
- Altered the outgoing XCMP API from push to pull
- Changed underlying outgoing queue data structures to avoid multi-page read/writes
- Introduced queuing for incoming messages
- Introduced signal messages as a flow-control sub-stream
- Introduced flow-control with basic threshold back-pressure
- Introduced overall weight limitation on messages executed
- Additonal alterations to XCM APIs for the new system

* Should process any remaining XCM messages when we're not doing anything else.

* Update API usage and preparation for the big build.

* Some build fixes

* Build fixes

* xcm-handler builds

* Fix warnings

* Docs

* Parachains system builds

* Parachain runtime building

* Fix build

* Introduce transfer_asset specialisation.

* Fixes

* Two-stage upgrade for parachains.

* Fixes

* Fixes

* Updates for message sending.

* Repotting/renaming. Add primitives/utility.

* Remove real-overseer and bump refs

* Configure & document Rococo XCM runtime.

* Add shell runtime, some companion changes for #8589

* Bumps & fixes

* Fix test

* Build fix

* Update pallets/xcmp-queue/src/lib.rs

Co-authored-by: Amar Singh <asinghchrony@protonmail.com>

* Make tests compile

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* remove unused

* remove unused event stuff

* Adds proper validation-worker to make integration tests work

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* import saturating

* remove panic test

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Amar Singh <asinghchrony@protonmail.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Bastian Köcher <info@kchr.de>
2021-04-14 09:36:59 +02:00