Gavin Wood
533cdb6e7c
Dispatchable XCMs should translate to v0 ( #4062 )
...
* Dispatchable XCMs should translate to v0
* Formatting
* Update Westend's XCM WrapVersion
2021-10-12 15:35:10 +02:00
Keith Yeung
819849f097
Make most XCM APIs accept an Into<MultiLocation> where MultiLocation is accepted ( #3627 )
...
* Change send_xcm MultiLocation argument to be generic
* Change pallet_xcm::send_xcm MultiLocation and Junctions argument to be generic
* Change convert_origin MultiLocation argument to be generic
* Change OnResponse MultiLocation arguments to be generic
* Change UniversalWeigher MultiLocation argumente to be generic
* Change ExecuteXcm MultiLocation argument to be generic
* Remove usages of into for the MultiLocation argument in execute_xcm
* Make use of generic MultiLocation arguments in rustdocs
* Cargo fmt
* Remove unused import in tests
* Resolve conflicts
* cargo fmt
* Appease spellcheck
* impl Into<MultiLocation> in more places
2021-09-29 23:24:49 +00:00
Andrew Jones
4c7539cab5
Companion for #8615 : enrich metadata with type information ( #3336 )
...
* Use beefy branch with scale-info
* Add patches
* Sprinkle some TypeInfo derives
* Add some TypeInfo deriv
* Cargo.lock
* Derive TypeInfo and skip type params for Xcm types
* Cargo.lock
* Fix up scale_info bounds attributes
* Fix up dependencies
* Use my own beefy-primitives branch
* Bump BEEFY
* Update patches
* Add some scale-info dependencies and TypeInfo derives
* More TypeInfo decoration
* Update scale-info
* Some TypeInfos and remove more Event pallet::metadata
* Moar TypeInfos
* TypeInfos galore, fix up metadata runtime API
* TypeInfo
* TypeInfos, update other runtime metadata APIs
* Fix up Kusama, comment out some `usize` QueueSize parameter types
* Remove local diener patches
* Cargo.lock
* Cargo.lock
* Update to scale-info crates.io release
* Update primitive-types branch
* Update pallet-beefy to use custom branch
* Update other parity-common deps
* Update parity-common patches
* bump a bunch of deps in parity-common
* Remove parity-common patches
* Bump finality-grandpa version
* Cargo.lock
* Update scale-info to 0.9.1
* Add recursion_limit for runtime-parachains
* Add some scale_info attributes
* Cargo.lock
* Revert finality-grandpa bump
* Cargo.lock, scale-info update
* cargo update
* Make sure using patched version of finality-grandpa
* Use patched scale-info
* Update to scale-info 0.10.0
* Update finality-grandpa
* Cargo.lock
* Update beefy deps
* Update beefy deps again
* Add scale-info dependency
* Remove deprecated pallet::metadata attributes.
* Add some missing scale-info deps and derives
* Use some variant struct call syntax
* Add missing TypeInfo impl
* Add some more TypeInfo impls
* Convert some call enum struct variant constructors
* More scale-info deps and derives
* Call enum struct variants
* TypeInfo derives
* Call enum variant structs
* scale-info deps and derives
* Call enum variant struct constructors
* Use beefy-primitives scale-info feature
* Use grandpa-bridge-gadget master branch
* Remove finality-grandpa patch
* Add missing scale_info dependency and derive
* Fix up some call variant constructors
* Add missing scale_info dependency
* Fix some test errors
* More TypeInfo derives
* More call variant structs
* Call variant structs in tests
* Cargo.lock
* Fmt
* Fix more call struct variants
* Another call struct variant
* add scale-info/std features explicitly
* More call struct variants
* Add missing scale-info dependency
* Fmt
* review: activate scale-info/std where missing
* Remove some duplicate std feature activation
* review: add scale_info bounds() attr
* More call variant structs
* Remove recursion limit
* Update beefy-primitives
* Update beefy-primitives
* Fix simnet call variant struct errors
* Fmt
* cargo update -p beefy-primitives
* Add some missing TypeInfo derives
* Fix some call variants
* Fix some call variant underscores
* Cargo.lock
* Cargo.lock
* Add missing TypeInfo derive
* Add some more missing TypeInfo derives
* Even more missing TypeInfo derives
* Add TypeInfo derives to new xcm types
* Fmt
* Cargo.lock
* Add missing TypeInfo impls
* Cargo.lock
* More missing TypeInfos
* Fixes
* Cargo.lock
* Cargo.lock
* Add TypeInfo impls to xcm v2
* Update to scale-info 1.0
* Update finality-grandpa 0.14.4, patch for now
* Update beefy
* Remove patched finality-grandpa
* Add TypeInfo impl to Outcome
* Fixes
* Call variant struct
* Call variant struct
* Fix test
* Add TypeInfo impl
* Cargo.lock
* Cargo.lock
* Cargo.lock
* git checkout master Cargo.lock
* update Substrate
* Add missing scale-info features for beefy-primitives
* Fmt
* Remove check for now
* Update beefy-primitives, removes scale-info feature
* Update beefy-primitives again
Co-authored-by: adoerr <0xad@gmx.net >
Co-authored-by: Andronik Ordian <write@reusable.software >
Co-authored-by: thiolliere <gui.thiolliere@gmail.com >
Co-authored-by: parity-processbot <>
Co-authored-by: Bastian Köcher <info@kchr.de >
2021-09-15 15:38:45 -05:00
Gavin Wood
82ffe7dd17
XCM: Automatic Version Negotiation ( #3736 )
...
* XCM: Automatic Version Negotiation
* Introduce the version instructions and subscription trait
* Notification and subscription data migration
* Version change subscriptions
* Fixes
* Formatting
* Spelling
* Fixes
* Fixes
* Automatic unsubscription
* Formatting
* Expose remote origin in VM and ensure it is unchanged from actual origin in subscription instructions.
* Barrier
* Unsubscription extrinsic
* Remove top_level param
* Formatting
* Fixes
* Automatic subscription
* Formatting
* Spelling
* Unit tests for XCM executor
* Formatting
* Spellin
* Unit test for XCM pallet subscriber side
* Formatting
* More tests
* Formatting
* Fixes
* Subscription-side tests
* Formatting
* Unit tests for XCM pallet
* Formatting
* Update roadmap/implementers-guide/src/types/overseer-protocol.md
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Remove commented code
* Grumbles
* Multi-stage XCM version migration
* Formatting
* v1 subscriptions backport
* Warning
* Spelling
* Fix grumbles
* Formatting
* Avoid running through old notifications
* Formatting
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-09-02 18:47:38 +02:00
Gavin Wood
636d0b030f
XCM: Allow reclaim of assets dropped from holding ( #3727 )
...
* XCM: Introduce AssetTrap
* Revert reversions
* Remove attempts at weighing and add test
* Less storage use for asset trapping
* Add missing file
* Fixes
* Fixes
* Formatting
* Fixes
* Docs
* Filter types to allow runtimes to dictate which assets/origins should be trapped
* Formatting
* Tests
* Formatting
* Fixes
* Docs
2021-08-28 02:09:36 +02:00
Gavin Wood
8b80b283d4
XCM v2: Scripting, Query responses, Exception handling and Error reporting ( #3629 )
...
* Intoduce XCM v2
Also some minor fix for v0/v1
* Minor version cleanup
* Minor version cleanup
* Introduce SendError for XcmSend trait to avoid cycles with having Outcome in Xcm
* comment
* Corrent type
* Docs
* Fix build
* Fixes
* Introduce the basic impl
* Docs
* Add function
* Basic implementation
* Weighed responses and on_report
* Make XCM more script-like
* Remove BuyExecution::orders
* Fixes
* Fixes
* Fixes
* Formatting
* Initial draft and make pallet-xcm build
* fix XCM tests
* Formatting
* Fixes
* Formatting
* spelling
* Fixes
* Fixes
* spelling
* tests for translation
* extra fields to XCM pallet
* Formatting
* Fixes
* spelling
* first integration test
* Another integration test
* Formatting
* fix tests
* all tests
* Fixes
* Fixes
* Formatting
* Fixes
* Fixes
* Formatting
* Bump
* Remove unneeded structuring
* add instruction
* Fixes
* spelling
* Fixes
* Fixes
* Formatting
* Fixes
* Fixes
* Formatting
* Introduce and use VersionedResponse
* Introduce versioning to dispatchables' params
* Fixes
* Formatting
* Rest of merge
* more work
* Formatting
* Basic logic
* Fixes
* Fixes
* Add test
* Fixes
* Formatting
* Fixes
* Fixes
* Fixes
* Nits
* Simplify
* Spelling
* Formatting
* Return weight of unexecuted instructions in case of error as surplus
* Formatting
* Fixes
* Test for instruction count limiting
* Formatting
* Docs
2021-08-26 12:41:16 +02:00
Alexander Popiak
7b054850fb
add integration tests to xcm-builder ( #3537 )
...
* add integration tests to xcm-builder
* add an integration test for reserve_transfer_assets
* add query holding and teleport tests
* formatting
* add to barrier doc comments and fix doc tests warnings
* use more realistic barrier for integration tests
* improve imports
* adjust base xcm weight and existential deposit to be in line with Kusama
* remove AnyNetwork
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* add more comments and remove unnecessary code
* move mock into separate file
* reduce imports
* update cargo.lock
* remove reserve transfer test from xcm builder integration tests
* reword barrier doc comment
* elaborate on QueryHolding test scenario
* add an integration test for reserve based transfers from parachain to parachain
* add teleport tests
* fix failing teleport filter tests
* Update xcm/xcm-builder/src/integration_tests.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update xcm/xcm-builder/src/integration_tests.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update xcm/xcm-builder/src/integration_tests.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Move integration tests to tests/ directory
* Fix merge
* Replace All wildcard with a concrete seed amount
* Rename SEED_AMOUNT to REGISTER_AMOUNT
* Fix compilation error
* Check for teleport destination first before checking out assets
* Fix unit test
* Do not run tests in integration mock
* Add a permissive assets filter for teleportation
* Remove check for teleport location in InitiateTeleport XCM
* Remove defunct test
* Apply suggestions from code review
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Reword comment
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
2021-08-17 21:39:47 +00:00
Gavin Wood
e16c8d9902
Remove BuyExecution::orders ( #3640 )
...
* Remove BuyExecution::orders
* Fixes
* Fixes
* Fixes
* Formatting
2021-08-16 12:51:56 +02:00
Keith Yeung
1556873060
Ensure MultiLocation always has a canonical representation ( #3404 )
...
* MultiAsset TWO
* Ensure MultiLocation always has a canonical representation
* Remove v1 module
* Draft next MultiAsset API.
* Implement custom encoding/decoding scheme for MultiLocation
* Properly implement IntoIterator for Junctions
* Implement TryFrom<MultiLocation> for Junctions
* Fix spelling mistakes
* Fix tests in xcm-executor
* XCM core builds
* XCM Executor builds
* XCM Builder builds
* Fix xcm-builder tests and compilation
* Make pallet-xcm compile
* Use MultiLocation::default()
* Make polkadot-runtime-common compile
* Make rococo-runtime compile
* Change return type of parent_count to u8
* Change MAX_MULTILOCATION_LENGTH to 255
* Make kusama-runtime compile
* Fix logic in pallet-xcm
* Use MultiLocation::empty()
* Fix logic in location_conversion
* Fix logic in origin_conversion.rs
* Make westend-runtime compile
* Rename prefixes and suffixes variables
* Rename non_parent to interior
* Rename non_parent to interior
* Add test for encode/decode roundtrip and fix decode algorithm
* API changes making their way throughout
* Some TODOs
* Further build fixes
* Rename non_parent/junctions to interior
* Basic compile builds
* First test fixed
* All executor tests fixed
* Typo
* Optimize subsume_assets and add test
* Optimize checked_sub
* XCM Builder first test fixed
* Fix builder tests
* Fix doc test
* Make xcm-simulator compile
* Make xcm-simulator-example compile
* Make spellcheck happy
* cargo fmt
* fix some doc tests
* spelling
* named fields for AllOf
* Fix subtle bug where Null is treated as an identifier
* Add FIXME comment awaiting for const generics eval stabilization
* Update xcm/src/v0/multiasset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/src/v0/multiasset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/src/v0/multiasset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/src/v0/multiasset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Reformat
* Move to XCM version 1
* Spelling
* warnings
* Replace some more v0->v1s
* warnings
* format
* Add max_assets param
* building
* test fixes
* tests
* another test
* final test
* Update rustdocs and add debug_assert where sensible
* Revert debug_assert in const fn len()
* tests
* Rename Null -> Here
* Introduce
* More ergonomics
* More ergonomics
* test fix
* test fixes
* docs
* BuyExecution includes
* Fix XCM extrinsics
* fmt
* Make Vec<MultiAsset>/MultiAssets conversions safe
* More MultiAssets conversion safety
* spelling
* fix doc test
* Apply suggestions from code review
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* Apply suggestions from code review
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* fmt
* Add v0, remove VersionedMultiAsset
* Remove VersionedMultiLocation
* Update xcm/src/v1/order.rs
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* Update xcm/src/v1/mod.rs
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* XCM v0 backwards compatibility
* Full compatibility
* fmt
* Update xcm/pallet-xcm/src/lib.rs
* Update xcm/src/v0/order.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Tweaks to versioning system
* Fixes
* fmt
* Fix pallet-xcm tests
* fix
* Substitute with_parent with with_parents_const
* Rename argument name from a to m
* Rename split_last to split_last_interior
* Allow adding multiple parents in MultiLocation
* Rename pop_parent to dec_parent
* Ensure relay chain XCM sender receives a MultiLocation without any parents
* Block only when MultiLocation destination length is 8
* Cargo fmt
* Remove reverse iterators, implement DoubleEndedIterator and add tests
* Fix iter_rev lifetime requirements
* Cargo fmt
* Add an into() method for Junctions for conciseness in const context
* Ensure parent count is 0 while executing who in RelayedFrom
* Appease spellchecker
* Use and_then instead of repeated map_err
* Remove custom codec indices for v1 Junctions
* Add convenience 'contains_parents_only' method to MultiLocation
* Fix merge conflict
* Use more convenience methods
* Remove with_parachain_interior
* Prefer matching against tuple instead of using match guards
* Match against tuple instead of using more match guards
* Update encode/decode test for MultiLocation
* Minor tweaks
* Fixes
* Fixes
* Fixes
* Fix MultiLocation
* Add deprecation note for iter_rev and into_iter_rev
* Update some rustdocs
* cargo fmt
* Fix xcm-executor unit tests
* Fix compilation and unit tests in xcm-builder
* cargo fmt
* Fix tests in xcm-simulator-example
* Publicize MultiLocation fields
* Match on the MultiLocation struct directly in xcm-builder
* Do not dereference undereferenceable types
* Add convenience MultiLocation conversions for tuples
* Use clearer import paths
* Remove unused dependency
* fix junction + response
* Import from latest opaque xcm module
* Update xcm/src/v1/mod.rs
* better comment
* Fix ownership transfer
* Fix merge
* Fix merge
* cargo fmt
* Fix merge
* Fix merge
* Fix integration test
* More readable Parent syntax
* cleanup
* cleanup
* cleanup
* cleanup
* cleanup
* cleanup
* cleanup
* cleanup
* cargo fmt
* Fixes
* Fix doc test
Co-authored-by: Gav Wood <gavin@parity.io >
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-08-09 18:55:40 +00:00
Gavin Wood
9800d22b1d
Companion to #9514 (Remove Filter and use Contains instead) ( #3591 )
...
* Remove Filter and use Contains instead
* Fixes
* Remove patch
* Formatting
* update Substrate
Co-authored-by: parity-processbot <>
2021-08-07 22:19:28 +02:00
Gavin Wood
ce80bc2d4c
XCM v1 ( #2815 )
...
* MultiAsset TWO
* Draft next MultiAsset API.
* XCM core builds
* XCM Executor builds
* XCM Builder builds
* API changes making their way throughout
* Some TODOs
* Further build fixes
* Basic compile builds
* First test fixed
* All executor tests fixed
* Typo
* Optimize subsume_assets and add test
* Optimize checked_sub
* XCM Builder first test fixed
* Fix builder tests
* Fix doc test
* fix some doc tests
* spelling
* named fields for AllOf
* Update xcm/src/v0/multiasset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/src/v0/multiasset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/src/v0/multiasset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/src/v0/multiasset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Reformat
* Move to XCM version 1
* Spelling
* warnings
* Replace some more v0->v1s
* warnings
* format
* Add max_assets param
* building
* test fixes
* tests
* another test
* final test
* tests
* Rename Null -> Here
* Introduce
* More ergonomics
* More ergonomics
* test fix
* test fixes
* docs
* BuyExecution includes
* Fix XCM extrinsics
* fmt
* Make Vec<MultiAsset>/MultiAssets conversions safe
* More MultiAssets conversion safety
* spelling
* fix doc test
* Apply suggestions from code review
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* Apply suggestions from code review
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* fmt
* Add v0, remove VersionedMultiAsset
* Remove VersionedMultiLocation
* Update xcm/src/v1/order.rs
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* Update xcm/src/v1/mod.rs
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
* XCM v0 backwards compatibility
* Full compatibility
* fmt
* Update xcm/pallet-xcm/src/lib.rs
* Update xcm/src/v0/order.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Tweaks to versioning system
* Fixes
* fmt
* Update xcm/xcm-executor/src/assets.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Update xcm/xcm-executor/src/assets.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Grumbles
* Update xcm/src/v1/multiasset.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* fmt
* Update xcm/src/v1/multiasset.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Update xcm/src/v1/multiasset.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Fixes
* Formatting
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
Co-authored-by: Amar Singh <asinghchrony@protonmail.com >
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-08-06 18:25:01 +02:00
Gavin Wood
00d6fc5af0
Avoid bad pattern of wildcard fees ( #3578 )
...
* Avoid bad pattern of wildcard fees
* spelling
* fmt
* Fix runtimes
* spelling
2021-08-05 17:44:34 +02:00
Amar Singh
90e6d318c7
Add unit tests to pallet-xcm ( #3539 )
...
* init
* reserve transfer asset unit test
* happy path tests for all dispatchables and can teleport assets to self surprisingly enough
* better tests
* minimize mock
* clean
* test send xcm failure when router blocks
* rm numbers to prefer variables
* clean
* test execute with local effects
* rm local env stuff
* copyrights
* fix merge conflict
* appease spellcheck
* fmt
* address review comments
* clean constants
* fmt
2021-08-03 11:07:30 +00:00