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
Muharem Ismailov
49c4b2014b
Enable runtime-benchmarks feature for crates ( #1544 )
...
Enable `runtime-benchmarks` feature for `parachain-common` and
`cumulus-primitives-utility` crates' dependencies.
After adding `runtime-benchmarks = []` under `features` category in
`Cargo.toml` files for the creates, I did run,
> zepter lint propagate-feature --feature runtime-benchmarks --workspace
--fix --feature-enables-dep="runtime-benchmarks:frame-benchmarking"
This changes required for
https://github.com/paritytech/polkadot-sdk/pull/1333
2023-09-14 15:38:50 +02:00
Lulu
31c79470a3
Rename squatted crates ( #1241 )
...
* Rename squatted crates
This commit adds the staging- prefix to squatted crates so we can go forward and publish them to crates.io.
Using the staging- prefix is a temp fix until we decide on replacement names.
https://forum.parity.io/t/renaming-squated-crates-in-substrate-polkadot-cumulus/1964/6
* Fix test after crate renames
* Update Lockfile
2023-08-30 17:57:49 +03:00
Oliver Tale-Yazdi
dcda0e50f5
Fix build profiles ( #1229 )
...
* Fix build profiles
Closes https://github.com/paritytech/polkadot-sdk/issues/1155
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Manually set version to 1.0.0
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Use workspace repo
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* 'Authors and Edition from workspace
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
---------
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
2023-08-29 13:39:41 +02:00
Alexander Samusev
e49493442a
Add CI for monorepo ( #1145 )
...
* Add CI for monorepo
* fix frame tests
* Format features
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* add note for skipping tests and disable test-linux-stable-all
* Fix tests and compile issues (#1152 )
* Fix feature dependant import
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Bump test timeout
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Remove feature gate
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Add resolver 2
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Remove old lockfile
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Format features
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
---------
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Fix check-dependency-rules
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* rm test-runtime
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Actually fix script
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* enable cargo-check-each-crate-macos
* Run check-each-crate on 6 machines (#1163 )
---------
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
2023-08-25 16:35:22 +02:00
alvicsam
f441a5fc93
Diener workspacify
...
Signed-off-by: alvicsam <alvicsam@gmail.com >
2023-08-25 11:05:17 +02:00
dependabot[bot]
6b07f1306f
Bump log from 0.4.19 to 0.4.20 ( #3009 )
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.19 to 0.4.20.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.19...0.4.20 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-15 23:02:53 +02:00
dependabot[bot]
49815cee3c
Bump log from 0.4.18 to 0.4.19 ( #2728 )
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.18 to 0.4.19.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.18...0.4.19 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-13 12:38:47 +02:00
dependabot[bot]
0c5038e556
Bump log from 0.4.17 to 0.4.18 ( #2651 )
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.17 to 0.4.18.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.17...0.4.18 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-31 04:51:12 +00:00
Gavin Wood
3a459e8fcf
XCM v3 Companion ( #697 )
...
* Fixes
* Undiener
* Undiener
* Undiener
* Lockfile
* Changes for send returning hash
* Include message ID as params to execute_xcm
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Companion fixes
* Formatting
* Fixes
* Formatting
* Bump
* Bump
* Fixes
* Formatting
* Make the price of UMP/XCMP message sending configurable
* cargo fmt
* Remove InvertLocation
* Formatting
* Use ConstantPrice from polkadot-runtime-common
* Fix naming
* cargo fmt
* Fixes
* Fixes
* Fixes
* Add CallDispatcher
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Remove unused import
* Remove unused import
* XCMv3 fixes (#1710 )
* Fixes XCMv3 related
Fixes XCMv3 (removed query_holding)
Fixes XCMv3 - should use _depositable_count?
Fixes XCMv3 - removed TrustedReserve
Fixes - missing weights for statemine/statemint/westmint
[DO-NOT-CHERRY-PICK] tmp return query_holding to aviod conficts to master
Fixes - missing functions for pallet_xcm_benchmarks::generic::Config
Fixes for XCMv3 benchmarking
Fix xcm - removed query_holding
* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic
* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic
* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic
* Fix imports
* Avoid consuming XCM message for NotApplicable scenario (#1787 )
* Avoid consuming message for NotApplicable scenario
* Avoid consuming message for NotApplicable scenario tests
* Add 10 message processing limit to DMP queue
* Add 10 message limit to XCMP queue
* Always increment the message_processed count whenever a message is processed
* Fix formatting
* Set an upper limit to the overweight message DMP queue
* Add upper limit to XCMP overweight message queue
* Fix for missing weight for `fn unpaid_execution()`
* Fix - usage of `messages_processed`
* Fixes
* Fixes
* Fixes
* cargo fmt
* Fixes
* Fixes
* Fixes
* Fixes
* Remove unused import
* Fixes for gav-xcm-v3 (#1835 )
* Fix for FungiblesAdapter - trait changes: Contains -> AssetChecking
* Fix for missing weight for `fn unpaid_execution()`
* Used NonLocalMint for all NonZeroIssuance
* Fix
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes
* Fix tests
* Fixes
* Add SafeCallFilter
* Add missing config items
* Add TODO
* Use () as the PriceForParentDelivery
* Fixes
* Fixes
* Fixes
* Fixes
* Update transact_origin to transact_origin_and_runtime_call
* Add ReachableDest config item to XCM pallet
* Update SafeCallFilter to allow remark_with_event in runtime benchmarks
* cargo fmt
* Update substrate
* Fix worst_case_holding
* Fix DMQ queue unit tests
* Remove unused label
* cargo fmt
* Actually process incoming XCMs
* Fixes
* Fixes
* Fixes
* Fixes - return back Weightless
* Added measured benchmarks for `pallet_xcm` (#1968 )
* Fix
Fix
Fix
* Fix
* Fixes for transact benchmark
* Fixes add pallet_xcm to benchmarks
* Revert remark_with_event
* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic
* Fixes
* TMP
* Fix for reserve_asset_deposited
* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm
* Fix
* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm
* Fix
* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm
* Fix westmint
* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic
* Fix
* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic
* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic
* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm
* Fix for collectives
* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm
* Fixes for bridge-hubs
* Fixes - return back Weightless
* Fix - removed MigrateToTrackInactive for contracts-rococo
Co-authored-by: command-bot <>
* cargo fmt
* Fix benchmarks
* Bko gav xcm v3 (#1993 )
* Fix
* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::fungible
* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::fungible
* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::fungible
* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic
* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic
* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic
* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm
Co-authored-by: command-bot <>
* Change AllowUnpaidExecutionFrom to be explicit
* xcm-v3 benchmarks, weights, fixes for bridge-hubs (#2035 )
* Dumy weights to get compile
* Change UniversalLocation according to https://github.com/paritytech/polkadot/pull/4097 (Location Inversion Removed)
* Fix bridge-hubs weights
* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm
* ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::generic
* ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::fungible
* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm
* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm
* ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::fungible
* ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::generic
* Change NetworkId to Option<NetworkId>
Co-authored-by: command-bot <>
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
* Add event for showing the hash of an UMP sent message (#1228 )
* Add UpwardMessageSent event in parachain-system
* additional fixes
* Message Id
* Fix errors from merge
* fmt
* more fmt
* Remove todo
* more formatting
* Fixes
* Fixes
* Fixes
* Fixes
* Allow explicit unpaid executions from the relay chains for system parachains (#2060 )
* Allow explicit unpaid executions from the relay chains for system parachains
* Put origin-filtering barriers into WithComputedOrigin
* Use ConstU32<8>
* Small nits
* formatting
* cargo fmt
* Allow receiving XCMs from any relay chain plurality
* Fixes
* update lockfile for {"polkadot", "substrate"}
* Update polkadot
* Add runtime-benchmarks feature
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
Co-authored-by: Branislav Kontur <bkontur@gmail.com >
Co-authored-by: girazoki <gorka.irazoki@gmail.com >
Co-authored-by: parity-processbot <>
2023-01-17 09:26:34 +00:00
Branislav Kontur
fd5571647c
Removed unused deps with cargo machete ( #1680 )
...
* Removed unused deps with `cargo machete`
* Removed unused deps with `cargo machete` for parachain-template
2022-09-29 13:44:08 +02:00
Branislav Kontur
86bdaec2ea
Small cosmetic nits ( #1679 )
2022-09-23 14:53:31 +02:00
girazoki
8f2a3a5077
Statemint runtimes to accept sufficient assets as xcm fee payment ( #1278 )
...
* point to my branch
* girazoki-add-TakeFirstAssetTrader-to-utility
* Commit lock
* point at custom branch
* add new trader to statemine runtimes
* compiles
* Back to master
* Update last tomls
* Imports up
* remove non-needing imports
* FMT
* log messages properly
* Use TakeRevenue instead of HandleCredit
* Introduce xcm fee handler
* check total supply in tests
* FMT
* fix test
* Start decoupling balance calculation into different traits
* Make traits a bit more generic
* PR suggestions
* add import
* import well
* Place xcmfeesassethandler into parachains common
* fix tests
* config parameters
* Min amount to fee receiver
* Make minimum amount for block author to be at least the ED
* Doc in AssetFeeAsExistentialDepositMultiplier
* saturating sub
* make sure we dont enter twice
* FMT
* fmt again
* adapt tests
* Add doc and struct for weight refund
* Doc
* More doc
* PR suggestions
* store all info related to asset payment as multiasset
* return AssetNotFound instead of TooExpensive
* Use asset transactor to deposit fee
* uninstall from statemint
* R for RUntime and CON for BalanceConverter
* Rework logic to avoid unnecesary match and error
* Rework ED check, also in case of refund
* rework typo
* In case refund makes drop below ED, just refund the difference
* fix test westmint
* clone id
* move test imports to preamble
* move test imports to preamble
* test-utils with builderS
* lock file updated
* remove unused imports
Co-authored-by: Stephen Shelton <steve@brewcraft.org >
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
Co-authored-by: joepetrowski <joe@parity.io >
2022-08-03 16:04:13 +00:00
Dan Shields
62ccc85392
Update Cumulus to common Cargo formmating scheme ( #1050 )
...
* Update throughout with common Cargo formating scheme
2022-03-02 00:07:29 -07: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
Dan Shields
70923da617
move to rust 2021 ( #759 )
...
* move to rust 2021
* fix formatting, more moves
2021-11-16 15:12:06 +01: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
Squirrel
127b2608ec
less deps ( #606 )
2021-09-12 23:22:14 +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