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>
This commit is contained in:
girazoki
2022-08-03 18:04:13 +02:00
committed by GitHub
parent acc409cd0a
commit 4d04eebb44
16 changed files with 1209 additions and 11 deletions
@@ -0,0 +1,45 @@
[package]
name = "asset-test-utils"
version = "1.0.0"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2021"
description = "Statemint parachain runtime"
[dependencies]
# Substrate
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" }
# Cumulus
pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false }
parachains-common = { path = "../../../common", default-features = false }
[dev-dependencies]
hex-literal = "0.3.4"
[build-dependencies]
substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
[features]
default = [ "std" ]
std = [
"frame-support/std",
"frame-system/std",
"pallet-balances/std",
"pallet-collator-selection/std",
"pallet-session/std",
"parachains-common/std",
"sp-consensus-aura/std",
"sp-io/std",
"sp-runtime/std",
"sp-std/std",
]