Bastian Köcher
7070b65d76
xcm: Improve debuggability ( #2799 )
...
Adds more logging to the XCM execution for better debugging.
2023-12-26 23:28:29 +01:00
Adrian Catangiu
18257373b3
pallet-xcm: enhance reserve_transfer_assets to support remote reserves ( #1672 )
...
## Motivation
`pallet-xcm` is the main user-facing interface for XCM functionality,
including assets manipulation functions like `teleportAssets()` and
`reserve_transfer_assets()` calls.
While `teleportAsset()` works both ways, `reserve_transfer_assets()`
works only for sending reserve-based assets to a remote destination and
beneficiary when the reserve is the _local chain_.
## Solution
This PR enhances `pallet_xcm::(limited_)reserve_withdraw_assets` to
support transfers when reserves are other chains.
This will allow complete, **bi-directional** reserve-based asset
transfers user stories using `pallet-xcm`.
Enables following scenarios:
- transferring assets with local reserve (was previously supported iff
asset used as fee also had local reserve - now it works in all cases),
- transferring assets with reserve on destination,
- transferring assets with reserve on remote/third-party chain (iff
assets and fees have same remote reserve),
- transferring assets with reserve different than the reserve of the
asset to be used as fees - meaning can be used to transfer random asset
with local/dest reserve while using DOT for fees on all involved chains,
even if DOT local/dest reserve doesn't match asset reserve,
- transferring assets with any type of local/dest reserve while using
fees which can be teleported between involved chains.
All of the above is done by pallet inner logic without the user having
to specify which scenario/reserves/teleports/etc. The correct scenario
and corresponding XCM programs are identified, and respectively, built
automatically based on runtime configuration of trusted teleporters and
trusted reserves.
#### Current limitations:
- while `fees` and "non-fee" `assets` CAN have different reserves (or
fees CAN be teleported), the remaining "non-fee" `assets` CANNOT, among
themselves, have different reserve locations (this is also implicitly
enforced by `MAX_ASSETS_FOR_TRANSFER=2`, but this can be safely
increased in the future).
- `fees` and "non-fee" `assets` CANNOT have **different remote**
reserves (this could also be supported in the future, but adds even more
complexity while possibly not being worth it - we'll see what the future
holds).
Fixes https://github.com/paritytech/polkadot-sdk/issues/1584
Fixes https://github.com/paritytech/polkadot-sdk/issues/2055
---------
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com >
Co-authored-by: Branislav Kontur <bkontur@gmail.com >
2023-11-13 17:16:55 +02:00
Serban Iorga
dce5a8da66
Direct XCM ExportMessage fees for different bridges to different receiver accounts ( #2021 )
2023-11-01 17:11:07 +02:00
Keith Yeung
3dece311be
Introduce XcmFeesToAccount fee manager ( #1234 )
...
Combination of paritytech/polkadot#7005 , its addon PR
paritytech/polkadot#7585 and its companion paritytech/cumulus#2433 .
This PR introduces a new XcmFeesToAccount struct which implements the
`FeeManager` trait, and assigns this struct as the `FeeManager` in the
XCM config for all runtimes.
The struct simply deposits all fees handled by the XCM executor to a
specified account. In all runtimes, the specified account is configured
as the treasury account.
XCM __delivery__ fees are now being introduced (unless the root origin
is sending a message to a system parachain on behalf of the originating
chain).
# Note for reviewers
Most file changes are tests that had to be modified to account for the
new fees.
Main changes are in:
- cumulus/pallets/xcmp-queue/src/lib.rs <- To make it track the delivery
fees exponential factor
- polkadot/xcm/xcm-builder/src/fee_handling.rs <- Added. Has the
FeeManager implementation
- All runtime xcm_config files <- To add the FeeManager to the XCM
configuration
# Important note
After this change, instructions that create and send a new XCM (Query*,
Report*, ExportMessage, InitiateReserveWithdraw, InitiateTeleport,
DepositReserveAsset, TransferReserveAsset, LockAsset and RequestUnlock)
will require the corresponding origin account in the origin register to
pay for transport delivery fees, and the onward message will fail to be
sent if the origin account does not have the required amount. This
delivery fee is on top of what we already collect as tx fees in
pallet-xcm and XCM BuyExecution fees!
Wallet UIs that want to expose the new delivery fee can do so using the
formula:
```
delivery_fee_factor * (base_fee + encoded_msg_len * per_byte_fee)
```
where the delivery fee factor can be obtained from the corresponding
pallet based on which transport you are using (UMP, HRMP or bridges),
the base fee is a constant, the encoded message length from the message
itself and the per byte fee is the same as the configured per byte fee
for txs (i.e. `TransactionByteFee`).
---------
Co-authored-by: Branislav Kontur <bkontur@gmail.com >
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
Co-authored-by: Giles Cope <gilescope@gmail.com >
Co-authored-by: command-bot <>
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com >
Co-authored-by: Liam Aharon <liam.aharon@hotmail.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
2023-10-18 17:22:25 +02:00
Oliver Tale-Yazdi
342d720573
Use same fmt and clippy configs as in Substrate ( #7611 )
...
* Use same rustfmt.toml as Substrate
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* format format file
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Format with new config
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Add Substrate Clippy config
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Print Clippy version in CI
Otherwise its difficult to reproduce locally.
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Make fmt happy
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update node/core/pvf/src/error.rs
Co-authored-by: Tsvetomir Dimitrov <tsvetomir@parity.io >
* Update node/core/pvf/src/error.rs
Co-authored-by: Tsvetomir Dimitrov <tsvetomir@parity.io >
---------
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: Tsvetomir Dimitrov <tsvetomir@parity.io >
2023-08-14 14:29:29 +00:00
Branislav Kontur
4980b64497
XcmContext to buy_weight / refund_weight (#7563 )
...
* added XcmContext to WeightTrader trait
* cargo fmt
* make xcm context optional
* make compile
* fix compile
* `XcmContext` to `buy_weight / refund_weight`
---------
Co-authored-by: Patricio Napoli <hi@patricionapoli.dev >
Co-authored-by: Giles Cope <gilescope@gmail.com >
Co-authored-by: parity-processbot <>
2023-08-01 11:04:52 +00:00
Keith Yeung
f2fe05a757
Implement AliasOrigin processing in XCVM ( #7245 )
...
* Implement AliasOrigin processing in XCVM
* add builder types and first test
* switch to more general builder types
* clone target for RemovePrefixAccountId32
* change builder types
* change AliasForeignAccountId32 and add test for AliasCase
* add Aliasers type to xcm configs
* add benchmark
* benchmark fix
* add benchmark function for runtimes
* fix alias_origin result types
* fix benchmark test
* add runtime-benchmarks feature in pallet-xcm-benchmarks
* fmt
* remove AliasCase, add test and fmt
* address feedback
* ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic
* ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::generic
* ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::generic
* address feedback
* lock
* ".git/.scripts/commands/bench/bench.sh" xcm kusama pallet_xcm_benchmarks::generic
* ".git/.scripts/commands/bench/bench.sh" xcm westend pallet_xcm_benchmarks::generic
* ".git/.scripts/commands/bench/bench.sh" xcm rococo pallet_xcm_benchmarks::generic
* change doc
* fmt
---------
Co-authored-by: Just van Stam <just.van.stam@gmail.com >
Co-authored-by: Just van Stam <vstam1@users.noreply.github.com >
Co-authored-by: command-bot <>
2023-06-05 14:39:01 +00:00
Francisco Aguirre
aac5b1e364
XCM: Fix issue with RequestUnlock ( #7278 )
...
* XCM: Fix issue with RequestUnlock
* Leave API changes for v4
* Fix clippy errors
* Fix tests
---------
Co-authored-by: parity-processbot <>
2023-05-26 16:41:10 -03:00
Gavin Wood
85dfadff2c
XCM: Tools for uniquely referencing messages ( #7234 )
...
* Tools for unique topic references
* Formatting
* Naming
* Repot into routing.rs.
* More things done
* Universal Exporter supports topic-as-reference
* Some tests for the topic routing
* More tests
* Paid bridge tests
* Add message ID to sending events
* Formatting
* fix and integrate into test nets
* Move DenyThenTry and friend from Cumulus
* Append SetTopic rather than prepend
* Docs
* Docs
* Work with new ProcessMessage ID API
* Formatting
* Fix build
* Fixes
* Formatting
* Update xcm/xcm-builder/src/barriers.rs
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com >
* Update xcm/xcm-builder/src/routing.rs
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com >
* Docs
* Rename message_hash
* Formatting
* ".git/.scripts/commands/fmt/fmt.sh"
* Rename
* Another Rename
* ".git/.scripts/commands/fmt/fmt.sh"
* ".git/.scripts/commands/fmt/fmt.sh"
* Update xcm/xcm-builder/src/routing.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
---------
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com >
Co-authored-by: command-bot <>
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
2023-05-25 07:57:32 +01:00
s0me0ne-unkn0wn
64660ee8d2
Remove years from copyright notes ( #7034 )
...
* Happy New Year!
* Remove year entierly
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Remove years from copyright notice in the entire repo
---------
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
2023-04-08 20:38:35 +00:00
Adrian Catangiu
b51cb8927c
XCM ExportMessage benchmark support ( #6923 )
...
* XCM ExportMessage benchmark support
* include inner-xcm in ExportMessage benchmark
---------
Signed-off-by: acatangiu <adrian@parity.io >
2023-03-23 12:30:25 +02:00
Keith Yeung
7619fea80f
Remove BoundedVec half-impls in xcm ( #6636 )
...
* Replace sp-core dependency with more primitive crates
* Remove BoundedVec half-impls in xcm
* Fixes
* Bump bounded-collections
* Address review comments
* Bump bounded-collections
* Fix benchmarks
* Fixes
* Fixes
* cargo fmt
* Fix tests
* Update url
* Bump url to 2.3.1
* Bump anyhow
* Use bounded-collections in pallet-xcm
* Update substrate
2023-02-09 02:42:59 +00:00
Gavin Wood
8eeb654b04
XCM: ExpectTransactStatus instruction ( #6578 )
...
* Introduce ExpectTransactStatus instruction
* Remove other changes
* Implement
* Implement rest
* Benchmark
* Update xcm/src/v3/mod.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* Update xcm/src/v3/mod.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
2023-01-19 06:59:38 +00:00
Gavin Wood
1a1bfd2af9
XCM v3 ( #4097 )
...
* cargo fmt
* Create benchmarks for XCM instructions introduced in v3 (#4564 )
* Create benchmarks for BurnAsset and ExpectAsset
* Add benchmarks for ExpectOrigin and ExpectError
* Add benchmarks for QueryPallet and ExpectPallet
* Add benchmarks for ReportTransactStatus and ClearTransactStatus
* cargo fmt
* Use AllPalletsWithSystem in mocks
* Update XCM generic benchmarks for westend
* Remove default impls for some XCM weight functions
* Fix compilation error
* Add weight_args helper attribute
* Remove manually written XcmWeightInfo
* Parse trailing comma
* Revert "Add weight_args helper attribute"
This reverts commit 3b7c47a6182e1b9227036c38b406d494c3fcf6fd.
* Fixes
* Fixes
* XCM v3: Introduce querier field into `QueryReponse` (#4732 )
* Introduce querier field into QueryReponse
* Convert &Option<MultiLocation> to Option<&MultiLocation>
&Option<T> is almost always never quite useful, most of the time it
still gets converted to an Option<&T> via `as_ref`, so we should simply
make functions that accept Option<&T> instead.
* Fix tests
* cargo fmt
* Fix benchmarks
* Appease spellchecker
* Fix test
* Fix tests
* Fix test
* Fix mock
* Fixes
* Fix tests
* Add test for response queriers
* Update xcm/pallet-xcm/src/lib.rs
* Test for non-existence of querier
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* Fixes
* Fixes
* Add `starts_with` function to `MultiLocation` and `Junctions` (#4835 )
* add matches_prefix function to MultiLocation and Junctions
* rename matches_prefix to starts_with
* remove unnecessary main in doc comment
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Make use of starts_with in match_and_split
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* XCM v3: Bridge infrastructure (#4681 )
* XCM bridge infrastructure
* Missing bit of cherry-pick
* Revamped XCM proc macros; new NetworkIds
* Fixes
* Formatting
* ExportMessage instruction and config type
* Add MessageExporter definitions
* Formatting
* Missing files
* Fixes
* Initial bridging config API
* Allow for two-stage XCM execution
* Update xcm/src/v3/mod.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* XCM crate building again
* Initial bridging primitive
* Docs
* Docs
* More work
* More work
* Merge branch 'gav-xcm-v3' into gav-xcm-v3-bridging
* Make build
* WithComputedOrigin and SovereignPaidRemoteExporter
* Remove TODOs
* Slim bridge API and tests.
* Fixes
* More work
* First bridge test passing
* Formatting
* Another test
* Next round of bridging tests
* Repot tests
* Cleanups
* Paid bridging
* Formatting
* Tests
* Spelling
* Formatting
* Fees and refactoring
* Fixes
* Formatting
* Refactor SendXcm to become two-phase
* Fix tests
* Refactoring of SendXcm and ExportXcm complete
* Formatting
* Rename CannotReachDestination -> NotApplicable
* Remove XCM v0
* Minor grumbles
* Formatting
* Formatting
* Fixes
* Fixes
* Cleanup XCM config
* Fee handling
* Fixes
* Formatting
* Fixes
* Bump
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* Bump Substrate
* XCM v3: `ExchangeAsset` and Remote-locking (#4945 )
* Asset Exchange and Locks
* Make sure XCM typers impl MaxEncodedLen
* Basic implementation for locks
* Bump Substrate
* Missing files
* Use new API
* Introduce instruction
* Big refactor
* Docs
* Remove deprecated struct
* Remove deprecated struct
* Repot XCM builder tests
* ExchangeAsset test
* Exchange tests
* Locking tests
* Locking tests
* Fixes and tests
* Fixes
* Formatting
* Spelling
* Add simulator test for remote locking
* Fix tests
* Bump
* XCM v3: Support for non-fungibles (#4950 )
* NFT support and a test
* New files.
* Integration tests for sending NFTs
* Formatting
* Broken Cargo features
* Use 2021 edition
* Fixes
* Formatting
* Formatting
* Update xcm/xcm-builder/src/asset_conversion.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* Update xcm/xcm-builder/src/nonfungibles_adapter.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* Update xcm/xcm-executor/src/lib.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* Fixes
* Fixes
* Fixes
* Formatting
* Fixes
Co-authored-by: Bastian Köcher <info@kchr.de >
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* XCM v3: Context & ID hash (#4756 )
* send_xcm returns message hash
* cargo fmt
* Create topic register and instructions
* Fix weights
* Use tabs
* Sketch out XcmContext
* Fix doc test
* Add the XCM context as a parameter to executor trait fns
* Fixes
* Add XcmContext parameter
* Revert adding context as an arg to SendXcm trait methods
* Revert adding context argument to ConvertOrigin trait methods
* cargo fmt
* Do not change the API of XcmExecutor::execute
* Fixes
* Fixes
* Fixes
* Fixes
* Remove convenience method
* Fixes
* Fixes
* cargo fmt
* Fixes
* Add benchmarks for XCM topic instructions
* cargo run --quiet --profile=production --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=pallet_xcm_benchmarks::generic --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --template=./xcm/pallet-xcm-benchmarks/template.hbs --output=./runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
* Remove context argument on FilterAssetLocation
* Fixes
* Remove unused import
* Fixes
* Fixes
* Fixes
* Accept XCM hash parameter in ExecuteXcm trait methods
* cargo fmt
* Properly enable sp-io/std
* Fixes
* default-features = false
* Fixes
* Fixes
* Fixes
* Make XcmContext optional in withdraw_asset
* Fixes
* Fixes
* Fixes
* Modify tests to check for the correct XCM hash
* Small refactor
* cargo fmt
* Check for expected hash in xcm-builder unit tests
* Add doc comment for the optionality of the XCM context in withdraw_asset
* Update xcm/src/v3/traits.rs
* Update xcm/src/v3/traits.rs
* Store XcmContext and avoid rebuilding
* Use ref for XcmContext
* Formatting
* Fix incorrect hash CC @KiChjang
* Refactor and make clear fake hashes
* Fixes
* Fixes
* Fixes
* Fix broken hashing
* Docs
* Fixes
* Fixes
* Fixes
* Formatting
* Fixes
* Fixes
* Fixes
* Remove unknowable hash
* Formatting
* Use message hash for greater identifiability
* Formatting
* Fixes
* Formatting
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
Co-authored-by: Parity Bot <admin@parity.io >
* Fixes
* Fixes
* Fixes
* Fixes
* Formatting
* Fixes
* Formatting
* Fixes
* Fixes
* Formatting
* Formatting
* Remove horrible names
* Bump
* Remove InvertLocation trait (#5092 )
* Remove InvertLocation trait
* Remove unneeded functions
* Formatting
* Fixes
* Remove XCMv1 (#5094 )
* Remove XCMv1
* Remove XCMv1
* Formatting
* Fixes
* Fixes
* Formatting
* derive serialize/deserialize for xcm primitives (#5036 )
* derive serialize/deserialize for xcm primitives
* derive serialize/deserialize for xcm primitives
* update v3
* update v2
Co-authored-by: Gav Wood <gavin@parity.io >
* Update lock
* Fixes
* Add benchmarks for the ExchangeAsset instruction
* `AliasOrigin` instruction stub (#5122 )
* AliasOrigin instruction stub
* Fixes
* Fixes
* Update substrate
* Fixes
* Ensure same array length before using copy_from_slice
* Fixes
* Add benchmarks for the UniversalOrigin instruction
* Remove unused import
* Remove unused import
* Add benchmarks for SetFeesMode instruction
* Add benchmarks for asset (un)locking instructions
* Leave AliasOrigin unbenchmarked
* Fixes after merge
* cargo fmt
* Fixes
* Fixes
* Set TrustedReserves to None on both Kusama and Westend
* Remove extraneous reserve_asset_deposited benchmark
* Fix universal_origin benchmark
* cargo run --quiet --profile=production --features=runtime-benchmarks -- benchmark pallet --chain=westend-dev --steps=50 --repeat=20 --pallet=pallet_xcm_benchmarks::generic --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --template=./xcm/pallet-xcm-benchmarks/template.hbs --output=./runtime/westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
* Don't rely on skipped benchmark functions
* Fixes
* cargo run --quiet --profile=production --features=runtime-benchmarks -- benchmark pallet --chain=kusama-dev --steps=50 --repeat=20 --pallet=pallet_xcm_benchmarks::generic --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --template=./xcm/pallet-xcm-benchmarks/template.hbs --output=./runtime/kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
* Fix unused variables
* Fixes
* Spelling
* Fixes
* Fix codec index of VersionedXcm
* Allows to customize how calls are dispatched from XCM (#5657 )
* CallDispatcher trait
* fmt
* unused import
* fix test-runtime
* remove JustDispatch type
* fix typo in test-runtime
* missing CallDispatcher
* more missing CallDispatcher
* Update comment `NoteAssetLocked` -> `NoteUnlockable`
* Fixes
* Fixes
* Adjust MultiAssets weights based on new wild card variants
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Some late fixes for XCMv3 (#5237 )
* Maximise chances that trapped assets can be reclaimed
* Do origin check as part of ExportMessage for security
* Formatting
* Fixes
* Cleanup export XCM APIs
* Formatting
* Update xcm/src/v3/junctions.rs
* UnpaidExecution instruction and associated barrier.
* Tighten barriers (ClearOrigin/QueryResponse)
* Allow only 1 ClearOrigin instruction in AllowTopLevelPaidExecutionFrom
* Bi-directional teleport accounting
* Revert other fix
* Build fixes]
* Tests build
* Benchmark fixes
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* Update Substrate
* Re-export `pub` stuff from universal_exports.rs + removed unecessary clone (#6145 )
* Re-export `pub` stuff from universal_exports.rs
* Removed unnecessary clone
* Use 2D weights in XCM v3 (#6134 )
* Depend upon sp-core instead of sp-runtime
* Make sp-io a dev-dependency
* Use 2D weights in XCM v3
* cargo fmt
* Add XCM pallet migration to runtimes
* Use from_parts
* cargo fmt
* Fixes
* cargo fmt
* Remove XCMWeight import
* Fixes
* Fixes
* Fixes
* Fixes
* Use translate in migration
* Increase max upward message size in tests
* Fix doc test
* Remove most uses of from_ref_time
* cargo fmt
* Fixes
* Fixes
* Add extrinsic benchmarking to XCM pallet
* cargo fmt
* Fixes
* Use old syntax
* cargo fmt
* Fixes
* Remove hardcoded weights
* Add XCM pallet to benchmarks
* Use successful origin
* Fix weird type parameter compilation issue
* Fixes
* ".git/.scripts/bench-bot.sh" runtime westend-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime rococo-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime kusama-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime polkadot-dev pallet_xcm
* Use benchmarked XCM pallet weights
* Fixes
* Fixes
* Use override instead of skip
* Fixes
* Fixes
* Fixes
* Fixes
* ".git/.scripts/bench-bot.sh" runtime polkadot-dev pallet_xcm
* Fixes
* ".git/.scripts/bench-bot.sh" runtime polkadot-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime westend-dev pallet_xcm
Co-authored-by: command-bot <>
* Replace Weight::MAX with 100b weight units
* Add test to ensure all_gte in barriers is correct
* Update xcm/src/v3/junction.rs
Co-authored-by: asynchronous rob <rphmeier@gmail.com >
* Add more weight tests
* cargo fmt
* Create thread_local in XCM executor to limit recursion depth (#6304 )
* Create thread_local in XCM executor to limit recursion depth
* Add unit test for recursion limit
* Fix statefulness in tests
* Remove panic
* Use defer and environmental macro
* Fix the implementation
* Use nicer interface
* Change ThisNetwork to AnyNetwork
* Move recursion check up to top level
* cargo fmt
* Update comment
Co-authored-by: Bastian Köcher <info@kchr.de >
* Add upper limit on the number of overweight messages in the queue (#6298 )
* Add upper limit on the number of ovwerweight messages in the queue
* Add newline
* Introduce whitelist for Transact and limit UMP processing to 10 messages per block (#6280 )
* Add SafeCallFilter to XcmConfig
* Limit UMP to receive 10 messages every block
* Place 10 message limit on processing instead of receiving
* Always increment the message_processed count whenever a message is processed
* Add as_derivative to the Transact whitelist
* cargo fmt
* Fixes
* Update xcm/xcm-builder/src/universal_exports.rs
Co-authored-by: Branislav Kontur <bkontur@gmail.com >
* Fixes
* Fixes
* Remove topic register and instead use the topic field in XcmContext
* Derive some common traits for DispatchBlobError
* Fixes
* cargo fmt
* Fixes
* Fixes
* Fix comments
* Fixes
* Introduce WithOriginFilter and apply it as the CallDispatcher for runtimes
* Fixes
* Appease clippy and fixes
* Fixes
* Fix more clippy issues
* Fixes
* ".git/.scripts/bench-bot.sh" runtime polkadot-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime westend-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime westend-dev pallet_xcm
* Add benchmark function for ExportMessage
* Fix comment
* Add upper limit to DownwardMessageQueues size
* Add max size check for queue in can_queue_downward_message
* Fixes
* Make Transact runtime call configurable
* Return Weight::MAX when there is no successful send XCM origin
* Update substrate
* Fixes
* Fixes
* Remove ExportMessage benchmark
* Remove assertion on Transact instruction benchmark
* Make reachable destination configurable in XCM pallet benchmarks
* Fixes
* Fixes
* Remove cfg attribute in fuzzer
* Fixes
* Remove cfg attribute for XCM pallet in test runtime
* Fixes
* Use ReachableDest where possible
* Fixes
* Add benchmark for UnpaidExecution
* Update substrate
* Ensure benchmark functions pass filters
* Add runtime-benchmarks feature to fuzzer
* Ensure FixedRateOfFungible accounts for proof size weights
* cargo fmt
* Whitelist remark_with_event when runtime-benchmarks feature is enabled
* Use remark_with_event for Transact benchmarks
* Fix Cargo.lock
* Allow up to 3 DescendOrigin instructions before UnpaidExecution
* cargo fmt
* Edit code comment
* Check check_origin for unpaid execution privilege
* Fixes
* Small nits for xcm-v3 (#6408 )
* Add possibility to skip benchmark for export_message
* ".git/.scripts/bench-bot.sh" xcm westend-dev pallet_xcm_benchmarks::generic
* Revert
* ".git/.scripts/bench-bot.sh" xcm westend-dev pallet_xcm_benchmarks::generic
* Add HaulBlobError to `fn haul_blob`
* ".git/.scripts/bench-bot.sh" xcm westend-dev pallet_xcm_benchmarks::generic
Co-authored-by: command-bot <>
* Revert changes to UnpaidExecution
* Change AllowUnpaidExecutionFrom to be explicit
* Fix log text
* cargo fmt
* Add benchmarks for XCM pallet version migration (#6448 )
* Add benchmarks for XCM pallet version migration
* cargo fmt
* Fixes
* Fixes
* Fixes
* ".git/.scripts/bench-bot.sh" runtime westend-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime kusama-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime rococo-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime polkadot-dev pallet_xcm
* Fix benchmarks
* Fix benchmarks
* ".git/.scripts/bench-bot.sh" runtime westend-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime kusama-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime rococo-dev pallet_xcm
* ".git/.scripts/bench-bot.sh" runtime polkadot-dev pallet_xcm
Co-authored-by: command-bot <>
* Merge remote-tracking branch 'origin/master' into gav-xcm-v3
* Fixes
* Fix comments (#6470 )
* Specify Ethereum networks by their chain id (#6286 )
Co-authored-by: Squirrel <gilescope@gmail.com >
* Use for Kusama
* Use WithComputedOrigin for Polkadot, Rococo and Westend
* Update lock
* Fix warning
* Update xcm/pallet-xcm/src/tests.rs
Co-authored-by: Squirrel <gilescope@gmail.com >
* Update runtime/parachains/src/ump/migration.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update xcm/pallet-xcm/src/migration.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Fixes
* cargo fmt
* Typo
* Update xcm/src/v3/mod.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Docs
* Docs
* Docs
* Docs
* Docs
* Update xcm/src/v3/multiasset.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Add tests for MultiAssets::from_sorted_and_deduplicated
* Fail gracefully when same instance NFTs are detected during push
* Update Substrate to fix benchmarks
* Apply suggestions from code review
* Update runtime/kusama/src/xcm_config.rs
* Rename arguments
* Attempt to fix benchmark
* ".git/.scripts/commands/bench/bench.sh" runtime polkadot-dev runtime_parachains::ump
* Use actual weights for UMP pallet in Polkadot
* ".git/.scripts/commands/bench/bench.sh" runtime kusama-dev runtime_parachains::ump
* ".git/.scripts/commands/bench/bench.sh" runtime westend-dev runtime_parachains::ump
* ".git/.scripts/commands/bench/bench.sh" runtime rococo-dev runtime_parachains::ump
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Bastian Köcher <info@kchr.de >
Co-authored-by: Parity Bot <admin@parity.io >
Co-authored-by: stanly-johnson <stanlyjohnson@outlook.com >
Co-authored-by: nanocryk <6422796+nanocryk@users.noreply.github.com >
Co-authored-by: Branislav Kontur <bkontur@gmail.com >
Co-authored-by: asynchronous rob <rphmeier@gmail.com >
Co-authored-by: command-bot <>
Co-authored-by: Vincent Geddes <vincent.geddes@hey.com >
Co-authored-by: Squirrel <gilescope@gmail.com >
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2023-01-17 07:04:34 +00:00
Keith Yeung
a2c6536f77
Companion for paritytech/substrate#12219 ( #5987 )
...
* Companion for paritytech/substrate#12219
* Fixes
* update lockfile for {"substrate"}
* Fixes
* cargo fmt
Co-authored-by: parity-processbot <>
2022-09-13 15:48:17 +00:00
Sergej Sakac
8ea6076fe5
Companion for #11981 ( #5915 )
...
* Companion for #11981
* more renaming
* fmt
* fixes
* add generic type
* Companion for #11831
* fix
* revert changes
* Delete rename-outer-enum.diff
* revert
* Update run_benches_for_runtime.sh
* rename type Call & type Event
* passing tests
* fmt
* small fixes
* commit
* fix
* fmt
* commit
* error fixes
* fix
* small fix in test
* Update lib.rs
* Update lib.rs
* Update lib.rs
* Update lib.rs
* Update lib.rs
* Update lib.rs
* Update lib.rs
* remove RuntimeCall from pallet_grandpa
* last fix
* commit
* rename
* merge fix
* update lockfile for {"substrate"}
* cargo +nightly fmt
* fix
Co-authored-by: parity-processbot <>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2022-09-12 23:03:47 +00:00
Shawn Tabrizi
28e94d97dd
Companion for Weight v1.5 ( #5943 )
...
* fix to latest substrate pr
* update weights
* cargo build -p polkadot-runtime-parachains
* fix xcm-builder
* fix import
* fix a bunch
* fix a bunch of weight stuff
* kusama compile
* unused
* builds
* maybe fix
* cargo test -p polkadot-runtime-parachains
* xcm simulator example
* fix tests
* xcm sim fuzz
* fix runtime tests
* remove unused
* fix integration tests
* scalar div
* update lockfile for {"substrate"}
Co-authored-by: parity-processbot <>
2022-08-31 11:59:39 +00:00
Keith Yeung
0e3f36224a
Implement transfer_asset on CurrencyAdapter ( #4549 )
...
* Implement transfer_asset on CurrencyAdapter
* Use Currency::transfer in transfer_asset
* Add a test to assert that Currency::transfer was indeed used
* Remove superfluous balance conversion to u128
* Rename transfer_asset and beam_asset
Co-authored-by: Giles Cope <gilescope@gmail.com >
2022-03-29 10:23:18 +00:00
Gavin Wood
32bb94afff
Reanchor should return canonical location ( #4470 )
...
* Reanchor should return canonical
* Formatting
* Formatting
* Update xcm/src/v1/multilocation.rs
* Formatting
* Fixes
* Don't discard unreanchorable assets
* Formatting
* Docs
* Fixes
* Fixes
* tidy
2021-12-14 09:21:34 +01:00
Gavin Wood
c699ca9c7b
Fix use of weight limit errors ( #4358 )
2021-11-24 13:26:33 +01:00
Shawn Tabrizi
59e90a77f0
Tweaks to XCM for Benchmarking ( #4283 )
...
* tweaks to xcm stuff for benchmarking
* Update xcm/xcm-executor/src/lib.rs
2021-11-15 21:38:11 +00:00
Alexander Popiak
8156dbe73d
Add more XCM tracing ( #4211 )
...
* add more logging to currency adapter
* add more logging to barriers
* reformat currency adapter trace logs
* add tracing logs for filter asset location
* add tracing logs to fungibles adapter
* add tracing to origin conversion
* add tracing logs for xcm weight trading
* fix compile errors
* add more tracing logs to xcm executor
* formatting and compile fixes
* add some tracing logs to pallet-xcm
* adjust log target in executor to debug
* fix closure args
2021-11-11 08:42:35 +00:00
Gavin Wood
3bab876bc1
Tidy up XCM errors in preparation for v2. ( #3988 )
...
* Tidy up XCM errors
* Tidy up errors
* Re-order
* Fixes
* Formatting
* map undefined errors
* add functor to dictionary
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-10-02 00:14:13 +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
Shawn Tabrizi
3d18ad34a9
Introduce XCM Weight Traits ( #3802 )
...
* introduce xcm weight traits
* patch some low hanging fruit
* add weightinfobound
* use checked math rather than saturating
* Update xcm/xcm-builder/src/weight.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Revert "Update xcm/xcm-builder/src/weight.rs"
This reverts commit 6331b874f3dccf7f01a051ca6d4ee4d14a23a82d.
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
2021-09-07 23:42:05 +00:00
Shawn Tabrizi
4b928b0f22
make parts of the xcm-executor public ( #3795 )
2021-09-06 17:52:33 +00: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
Keith Yeung
64cbeab3b3
Return a Result in invert_location ( #3730 )
...
* Return a Result in invert_location
* Add invertible to spellcheck dictionary
* Fix Some -> Ok
2021-08-28 02:17:51 +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
Gavin Wood
e16c8d9902
Remove BuyExecution::orders ( #3640 )
...
* Remove BuyExecution::orders
* Fixes
* Fixes
* Fixes
* Formatting
2021-08-16 12:51:56 +02:00
Gavin Wood
0bb5434e08
Make RelayedFrom typesafe ( #3617 )
...
* Corrent type
* Fix build
* Fixes
* Fixes
* Formatting
2021-08-11 12:40:10 +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
Shawn Tabrizi
9ee8013d6d
Harden XCM v1 for Recursions ( #3586 )
...
* Guard against XCM recursive bombs by setting a recursion limit
* Add test and set a lower recursion limit
* Use u32 instead of usize for recursion limit
* Make spellcheck happy
* Cargo fmt
* Limit XCM decoding depth in UMP message processing
* Modify test to check for recursion in BuyExecution
* Update xcm/xcm-simulator/example/src/lib.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Make cargo fmt happy
* WIP for testing recursion limit in WASM
* Revert "WIP for testing recursion limit in WASM"
This reverts commit 39181b46d1adf79358f5ae8aafcf480e0c0c22e6.
* Remove XCM recursion limit test
* Add recursion test for XCM message execution
* Set a more sensible recursion limit
* Cargo fmt
* Implement successful_origin for benchmarks
* Set recursion limit to 8 and create integration tests directory for xcm-executor
* Cargo fmt
* Add runtime-benchmarks feature to test-runtime
* Give up creating ConvertOriginToLocal and use EnsureXcm
* Re-add ConvertOriginToLocal
* Fix compilation
* Update xcm/xcm-executor/src/lib.rs
Co-authored-by: Gavin Wood <gavin@parity.io >
* Add decoding limit to all versioned XCM decode calls
* Fix recursion limit test
* Set a lower recursion count for recursion test
* move integration tests to their own folder, fix recursion check in execute_effects
* Remove xcm-executor integration tests directory
* fix up
* Update Cargo.lock
* Update runtime/parachains/src/ump.rs
* use proper decode limit
* fix decode depth limit
* here too
* Update traits.rs
* fix compile
* fix test
* Revert `decode_all_with_depth_limit` changes in parachain.rs
* Remove unused imports in parachain.rs
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
Co-authored-by: Bastian Köcher <info@kchr.de >
Co-authored-by: Gavin Wood <gavin@parity.io >
2021-08-07 19:29:12 +00: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
Shawn Tabrizi
ff5d56fb76
cargo +nightly fmt ( #3540 )
...
* cargo +nightly fmt
* add cargo-fmt check to ci
* update ci
* fmt
* fmt
* skip macro
* ignore bridges
2021-08-02 10:47:33 +00:00
Alexander Popiak
4a345045a9
Add XCM Tracing ( #3353 )
...
* add missing bridges logging target
* trace send_xcm
* trace execute_xcm
* trace calls in xcm-executor
* trace tuple implementations of xcm traits
* update cargo.lock
* remove bridge log target
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* log argument formatting
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
2021-07-05 22:44:46 +00:00
Gavin Wood
53de6871e0
Fix teleport accounting and add some events ( #3167 )
...
* Stuff to help inspect the DMP activity
* Fix teleport accounting
* Fixes
* Fixes
* Fixes
* Fixes
2021-06-03 15:39:08 +02:00
Alexander Popiak
a28d4a5c5d
XCM docs and tests ( #2948 )
...
* WIP
* add tests and docs for DoubleEncoded
* reformat parent_count
* add test for match_and_split
* fix append_with docs and add tests
* move Parachain enum variant to tuple
* Fix stuff
* add to append test
* simplify match
* formatting
* format and extend doc comments (including examples)
* fix typo
* add some doc comments
* add test for location inverter
* Add more tests/docs
* Fix build
* matches fungibles
* currency adapter.
* add more tests for location inverter
* extract max length magic number into constant
* adapters.
* Apply suggestions from code review
* Final touches.
* Repot and fixes
* Remove last todo
* Apply suggestions from code review
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-builder/src/barriers.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-builder/src/barriers.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-builder/src/currency_adapter.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-builder/src/filter_asset_location.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-builder/src/matches_fungible.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-executor/src/traits/conversion.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-executor/src/traits/conversion.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-executor/src/traits/transact_asset.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-executor/src/traits/should_execute.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
Co-authored-by: kianenigma <kian@parity.io >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-06-03 02:01:25 +00:00
Gavin Wood
41a93127a9
Check out/in assets when teleporting to maintain total issuance ( #3007 )
...
* Check out/in assets when teleporting to maintain total issuance
* Fixes
* Fixes
* Fixes
* Fixes
* Update xcm/xcm-executor/src/traits/transact_asset.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Docs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-05-12 08:39:16 +02:00
Gavin Wood
36b9d23923
Dispatchable for teleporting assets ( #2995 )
...
* Dispatchable for teleporting assets
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Update node/network/protocol/src/peer_set.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Update xcm/src/v0/traits.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-05-10 16:13:46 +02:00
Gavin Wood
c0bf7e3d8c
Required weight is returned in case it exceeds limit. ( #2952 )
2021-04-28 18:24:39 +02:00
Gavin Wood
9194219586
Add XCM Origin and converter ( #2896 )
...
* Add XCM Origin and converter
* IsMajority filter can be location-prefixed
* Update xcm/pallet-xcm/src/lib.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/src/v0/multi_location.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Introduce UsingComponents to allow reuse of fee payment in XCM
* Use Drop rather than finalize
* Add errors for weight.
* Apply suggestions from code review
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Fixes
* Update xcm/xcm-builder/src/weight.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Various XCM fixes and improvements
* Fixes
* Update xcm/xcm-builder/src/weight.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-builder/src/weight.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update xcm/xcm-builder/src/weight.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Fixes
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
2021-04-27 14:33:40 +02:00
Gavin Wood
c9102c11a4
XCM Revamp Continued ( #2865 )
...
* Introduce plurality XCM locations
* Add RelayedFrom
* DMP dispatch weight handling.
* Add pallet for XCM sending, add routing logic.
* Update error types & doc
* Fix warnings.
* Fixes
* Fixes
* Fixes
* Bump Substrate
* Fixes
* Docs
* Docs
* Docs
* Fixes
* Fixes
* Fixes
* Update xcm/pallet-xcm/src/lib.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Docs
* Fixes
* Update lib.rs
* Fixes
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-04-09 20:34:28 +02:00
Gavin Wood
9b4844e853
Introduce plurality XCM locations ( #2846 )
...
* Introduce plurality XCM locations
* Add RelayedFrom
2021-04-08 20:58:06 +02:00
Gavin Wood
adc238ad86
XCM revamp ( #2836 )
...
* Remove unused relaying XCM
* Aggregate HRMP (XCMP/HMP) messages. Payloads for spambot.
* Revert lock
* Fix
* Broken example
* Introduce fee payment mechanics into XCM.
* Weight limitations on XCM execution
* Mock environment for tests and the first test
* Tests for XCM and a few refactors.
* Remove code that's not ready
* Fix for an XCM and an additional test
* Query response system
* 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
* Some build fixes
* Remove the Encode bounds sprayed around
* More faff
* Fix bounds amek use latest scale codec.
* remove println
* fixes
* Fix XcmExecutor Tests
* Fix XCM bounds using derivative crate
* Refactor names of XcmGeneric &c into Xcm
* Repot the xcm-executor into xcm-builder
* Docs
* Docs
* Fixes
* Update xcm/src/lib.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Fixes
* Docs
* Update runtime/parachains/src/ump.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
* Docs
* Fixes
* Fixes
* Fixes
* Docs
* Fixes
* Fixes
* Introduce transfer_asset specialisation.
* Fixes
* Fixes
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2021-04-07 22:38:29 +02:00
Bastian Köcher
7a2c7aa3fe
Companion for init the RuntimeLogger automatically ( #2522 )
...
* Lol
* Add the features
* Remove some more runtime logger init calls
* Make companion check work
* Revert "Make companion check work"
This reverts commit a255c798076466c0fa20a4db713fc712772c2b4d.
* Update Substrate
2021-03-01 16:15:34 +01:00
Andronik Ordian
0a8a607a58
update most of the dependencies ( #1946 )
...
* update tiny-keccak to 0.2
* update deps except bitvec and shared_memory
* fix some warning after futures upgrade
* remove useless package rename caused by bug in cargo-upgrade
* revert parity-util-mem *
* remove unused import
* cargo update
* remove all renames on parity-scale-codec
* remove the leftovers
* remove unused dep
2020-11-17 11:16:31 +01:00
Sergei Shulepov
22e7d54f4d
XCM: Land xcm-handler and xcm-executor ( #1771 )
...
Co-authored-by: Gavin Wood <gavin@parity.io >
2020-10-06 10:03:07 +02:00