From 4a559a587256dc454ee8a792298e26e294bfccc3 Mon Sep 17 00:00:00 2001 From: Georges Date: Fri, 19 Nov 2021 13:06:38 +0000 Subject: [PATCH] Moving `pallet-asset-tx-payment` from cumulus to substrate (#712) * Moving `pallet-asset-tx-payment` to substrate * Pointing `substrate` to my branch to fix the CI * Fixing cargo.lock Memmlock2 was in double * Duplicate Prost-build * cargo update * Fixing cargo.lock post merge * Changes to `Cargo.toml` after substrate merge --- Cargo.lock | 335 +++++---- Cargo.toml | 3 +- pallets/asset-tx-payment/Cargo.toml | 52 -- pallets/asset-tx-payment/README.md | 21 - pallets/asset-tx-payment/src/lib.rs | 295 -------- pallets/asset-tx-payment/src/payment.rs | 168 ----- pallets/asset-tx-payment/src/tests.rs | 636 ------------------ .../parachains-common/Cargo.toml | 2 +- polkadot-parachains/statemine/Cargo.toml | 2 +- polkadot-parachains/statemint/Cargo.toml | 2 +- polkadot-parachains/westmint/Cargo.toml | 2 +- 11 files changed, 170 insertions(+), 1348 deletions(-) delete mode 100644 pallets/asset-tx-payment/Cargo.toml delete mode 100644 pallets/asset-tx-payment/README.md delete mode 100644 pallets/asset-tx-payment/src/lib.rs delete mode 100644 pallets/asset-tx-payment/src/payment.rs delete mode 100644 pallets/asset-tx-payment/src/tests.rs diff --git a/Cargo.lock b/Cargo.lock index 01bb5685be..024bc85b2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -448,7 +448,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "beefy-primitives", "fnv", @@ -476,7 +476,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -496,12 +496,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "scale-info", @@ -2462,7 +2462,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", ] @@ -2480,7 +2480,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -2500,7 +2500,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "Inflector", "chrono", @@ -2526,7 +2526,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -2540,7 +2540,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -2568,7 +2568,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "bitflags", "frame-metadata", @@ -2597,7 +2597,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2609,7 +2609,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2621,7 +2621,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "proc-macro2", "quote", @@ -2631,7 +2631,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "log", @@ -2648,7 +2648,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -2663,7 +2663,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "sp-api", @@ -2672,7 +2672,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "sp-api", @@ -4895,7 +4895,7 @@ dependencies = [ [[package]] name = "node-primitives" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-system", "parity-scale-codec", @@ -5081,30 +5081,25 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" -version = "0.1.0" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", - "pallet-assets", - "pallet-authorship", - "pallet-balances", "pallet-transaction-payment", "parity-scale-codec", "scale-info", "serde", - "serde_json", - "smallvec", "sp-core", "sp-io", "sp-runtime", "sp-std", - "sp-storage", ] [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5118,7 +5113,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5134,7 +5129,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5150,7 +5145,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5165,7 +5160,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5189,7 +5184,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5209,7 +5204,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5224,7 +5219,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "beefy-primitives", "frame-support", @@ -5240,7 +5235,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5265,7 +5260,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5370,7 +5365,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5387,7 +5382,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5403,7 +5398,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5427,7 +5422,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5445,7 +5440,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5460,7 +5455,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5483,7 +5478,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5499,7 +5494,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5519,7 +5514,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5536,7 +5531,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5553,7 +5548,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5571,7 +5566,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5587,7 +5582,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5604,7 +5599,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5619,7 +5614,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5633,7 +5628,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5650,7 +5645,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5673,7 +5668,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5688,7 +5683,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5702,7 +5697,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5718,7 +5713,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5739,7 +5734,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5755,7 +5750,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5769,7 +5764,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5792,7 +5787,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -5803,7 +5798,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "log", "sp-arithmetic", @@ -5812,7 +5807,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5841,7 +5836,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5859,7 +5854,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5878,7 +5873,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-support", "frame-system", @@ -5895,7 +5890,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5912,7 +5907,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5923,7 +5918,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5940,7 +5935,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5954,7 +5949,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -5970,7 +5965,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-benchmarking", "frame-support", @@ -8389,7 +8384,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "env_logger 0.9.0", "jsonrpsee", @@ -8713,7 +8708,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "log", "sp-core", @@ -8724,7 +8719,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "derive_more", @@ -8751,7 +8746,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -8774,7 +8769,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8790,7 +8785,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.0", @@ -8807,7 +8802,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8818,7 +8813,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "chrono", "fdlimit", @@ -8856,7 +8851,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "fnv", "futures 0.3.17", @@ -8884,7 +8879,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "hash-db", "kvdb", @@ -8909,7 +8904,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "futures 0.3.17", @@ -8933,7 +8928,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "derive_more", @@ -8962,7 +8957,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "derive_more", @@ -9005,7 +9000,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "derive_more", "futures 0.3.17", @@ -9029,7 +9024,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9042,7 +9037,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "futures 0.3.17", @@ -9068,7 +9063,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "sc-client-api", "sp-authorship", @@ -9079,7 +9074,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "lazy_static", "libsecp256k1 0.6.0", @@ -9106,7 +9101,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "derive_more", "environmental", @@ -9124,7 +9119,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "log", "parity-scale-codec", @@ -9140,7 +9135,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "cfg-if 1.0.0", "libc", @@ -9158,7 +9153,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "derive_more", @@ -9195,7 +9190,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "derive_more", "finality-grandpa", @@ -9219,7 +9214,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "ansi_term 0.12.1", "futures 0.3.17", @@ -9236,7 +9231,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "derive_more", @@ -9251,7 +9246,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-std", "async-trait", @@ -9302,7 +9297,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -9318,7 +9313,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "bytes 1.1.0", "fnv", @@ -9346,7 +9341,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "libp2p", @@ -9359,7 +9354,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9368,7 +9363,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "hash-db", @@ -9399,7 +9394,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "jsonrpc-core", @@ -9424,7 +9419,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "jsonrpc-core", @@ -9441,7 +9436,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "directories", @@ -9505,7 +9500,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "log", "parity-scale-codec", @@ -9519,7 +9514,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -9541,7 +9536,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "chrono", "futures 0.3.17", @@ -9559,7 +9554,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "ansi_term 0.12.1", "atty", @@ -9590,7 +9585,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9601,7 +9596,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "intervalier", @@ -9628,7 +9623,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "derive_more", "futures 0.3.17", @@ -9642,7 +9637,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -10101,7 +10096,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "hash-db", "log", @@ -10118,7 +10113,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -10130,7 +10125,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "scale-info", @@ -10143,7 +10138,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "integer-sqrt", "num-traits", @@ -10158,7 +10153,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "scale-info", @@ -10171,7 +10166,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "parity-scale-codec", @@ -10183,7 +10178,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "sp-api", @@ -10195,7 +10190,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "log", @@ -10213,7 +10208,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "futures 0.3.17", @@ -10232,7 +10227,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "parity-scale-codec", @@ -10250,7 +10245,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "merlin", @@ -10273,7 +10268,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "scale-info", @@ -10285,7 +10280,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -10297,7 +10292,7 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "base58", "bitflags", @@ -10345,7 +10340,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "blake2-rfc", "byteorder", @@ -10358,7 +10353,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "proc-macro2", "quote", @@ -10369,7 +10364,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -10378,7 +10373,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "proc-macro2", "quote", @@ -10388,7 +10383,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "environmental", "parity-scale-codec", @@ -10399,7 +10394,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "finality-grandpa", "log", @@ -10417,7 +10412,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10431,7 +10426,7 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "hash-db", @@ -10455,7 +10450,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "lazy_static", "sp-core", @@ -10466,7 +10461,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "derive_more", @@ -10483,7 +10478,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "zstd", ] @@ -10491,7 +10486,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "scale-info", @@ -10506,7 +10501,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -10517,7 +10512,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "sp-api", "sp-core", @@ -10527,7 +10522,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "backtrace", "lazy_static", @@ -10537,7 +10532,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "rustc-hash", "serde", @@ -10547,7 +10542,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "either", "hash256-std-hasher", @@ -10569,7 +10564,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10586,7 +10581,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -10598,7 +10593,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "serde", "serde_json", @@ -10607,7 +10602,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "scale-info", @@ -10621,7 +10616,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "scale-info", @@ -10632,7 +10627,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "hash-db", "log", @@ -10655,12 +10650,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10673,7 +10668,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "log", "sp-core", @@ -10686,7 +10681,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -10702,7 +10697,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "sp-std", @@ -10714,7 +10709,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "sp-api", "sp-runtime", @@ -10723,7 +10718,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "log", @@ -10739,7 +10734,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "hash-db", "memory-db", @@ -10754,7 +10749,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10770,7 +10765,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10781,7 +10776,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -11056,7 +11051,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "platforms", ] @@ -11064,7 +11059,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.17", @@ -11086,7 +11081,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-std", "derive_more", @@ -11100,7 +11095,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "async-trait", "futures 0.3.17", @@ -11126,7 +11121,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "futures 0.3.17", "substrate-test-utils-derive", @@ -11136,7 +11131,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -11147,7 +11142,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "ansi_term 0.12.1", "build-helper", @@ -11508,7 +11503,7 @@ dependencies = [ "chrono", "lazy_static", "matchers", - "parking_lot 0.11.2", + "parking_lot 0.10.2", "regex", "serde", "serde_json", @@ -11595,7 +11590,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#6d61f48427ae40b11dbebc2b548818773c3c7f8e" +source = "git+https://github.com/paritytech/substrate?branch=master#72b9c36d66e351af9d90cbf8c37e2cf90dd59582" dependencies = [ "jsonrpsee", "log", diff --git a/Cargo.toml b/Cargo.toml index de64a9e4bb..2f56eec6b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,6 @@ members = [ "client/network", "client/pov-recovery", "client/service", - "pallets/asset-tx-payment", "pallets/aura-ext", "pallets/collator-selection", "pallets/dmp-queue", @@ -39,4 +38,4 @@ members = [ ] [profile.release] -panic = "unwind" +panic = "unwind" \ No newline at end of file diff --git a/pallets/asset-tx-payment/Cargo.toml b/pallets/asset-tx-payment/Cargo.toml deleted file mode 100644 index 519e2a6a4b..0000000000 --- a/pallets/asset-tx-payment/Cargo.toml +++ /dev/null @@ -1,52 +0,0 @@ -[package] -name = "pallet-asset-tx-payment" -version = "0.1.0" -authors = ["Parity Technologies "] -edition = "2021" -license = "Apache-2.0" -homepage = "https://substrate.io" -repository = "https://github.com/paritytech/cumulus/" -description = "pallet to manage transaction payments in assets" -readme = "README.md" - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[dependencies] -# Substrate dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } - -# Other dependencies -codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "1.0", default-features = false, features = ["derive"] } -serde = { version = "1.0.101", optional = true } - -[dev-dependencies] -smallvec = "1.4.1" -serde_json = "1.0.41" - -pallet-assets = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master" } - -[features] -default = ["std"] -std = [ - "serde", - "codec/std", - "sp-std/std", - "sp-runtime/std", - "frame-support/std", - "frame-system/std", - "sp-io/std", - "sp-core/std", - "pallet-transaction-payment/std", -] -try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/asset-tx-payment/README.md b/pallets/asset-tx-payment/README.md deleted file mode 100644 index fc860347d8..0000000000 --- a/pallets/asset-tx-payment/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# pallet-asset-tx-payment - -## Asset Transaction Payment Pallet - -This pallet allows runtimes that include it to pay for transactions in assets other than the -native token of the chain. - -### Overview -It does this by extending transactions to include an optional `AssetId` that specifies the asset -to be used for payment (defaulting to the native token on `None`). It expects an -[`OnChargeAssetTransaction`] implementation analogously to [`pallet-transaction-payment`]. The -included [`FungiblesAdapter`] (implementing [`OnChargeAssetTransaction`]) determines the fee -amount by converting the fee calculated by [`pallet-transaction-payment`] into the desired -asset. - -### Integration -This pallet wraps FRAME's transaction payment pallet and functions as a replacement. This means -you should include both pallets in your `construct_runtime` macro, but only include this -pallet's [`SignedExtension`] ([`ChargeAssetTxPayment`]). - -License: Apache-2.0 diff --git a/pallets/asset-tx-payment/src/lib.rs b/pallets/asset-tx-payment/src/lib.rs deleted file mode 100644 index 6ca91cbf3e..0000000000 --- a/pallets/asset-tx-payment/src/lib.rs +++ /dev/null @@ -1,295 +0,0 @@ -// Copyright (C) 2021 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//! # Asset Transaction Payment Pallet -//! -//! This pallet allows runtimes that include it to pay for transactions in assets other than the -//! main token of the chain. -//! -//! ## Overview -//! It does this by extending transactions to include an optional `AssetId` that specifies the asset -//! to be used for payment (defaulting to the native token on `None`). It expects an -//! [`OnChargeAssetTransaction`] implementation analogously to [`pallet-transaction-payment`]. The -//! included [`FungiblesAdapter`] (implementing [`OnChargeAssetTransaction`]) determines the fee -//! amount by converting the fee calculated by [`pallet-transaction-payment`] into the desired -//! asset. -//! -//! ## Integration -//! This pallet wraps FRAME's transaction payment pallet and functions as a replacement. This means -//! you should include both pallets in your `construct_runtime` macro, but only include this -//! pallet's [`SignedExtension`] ([`ChargeAssetTxPayment`]). - -#![cfg_attr(not(feature = "std"), no_std)] - -use sp_std::prelude::*; - -use codec::{Decode, Encode}; -use frame_support::{ - dispatch::DispatchResult, - traits::{ - tokens::{ - fungibles::{Balanced, CreditOf, Inspect}, - WithdrawConsequence, - }, - IsType, - }, - weights::{DispatchInfo, PostDispatchInfo}, - DefaultNoBound, -}; -use pallet_transaction_payment::OnChargeTransaction; -use scale_info::TypeInfo; -use sp_runtime::{ - traits::{DispatchInfoOf, Dispatchable, PostDispatchInfoOf, SignedExtension, Zero}, - transaction_validity::{ - InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction, - }, - FixedPointOperand, -}; - -#[cfg(test)] -mod tests; - -mod payment; -pub use payment::*; - -// Type aliases used for interaction with `OnChargeTransaction`. -pub(crate) type OnChargeTransactionOf = - ::OnChargeTransaction; -// Balance type alias. -pub(crate) type BalanceOf = as OnChargeTransaction>::Balance; -// Liquity info type alias. -pub(crate) type LiquidityInfoOf = - as OnChargeTransaction>::LiquidityInfo; - -// Type alias used for interaction with fungibles (assets). -// Balance type alias. -pub(crate) type AssetBalanceOf = - <::Fungibles as Inspect<::AccountId>>::Balance; -/// Asset id type alias. -pub(crate) type AssetIdOf = - <::Fungibles as Inspect<::AccountId>>::AssetId; - -// Type aliases used for interaction with `OnChargeAssetTransaction`. -// Balance type alias. -pub(crate) type ChargeAssetBalanceOf = - <::OnChargeAssetTransaction as OnChargeAssetTransaction>::Balance; -// Asset id type alias. -pub(crate) type ChargeAssetIdOf = - <::OnChargeAssetTransaction as OnChargeAssetTransaction>::AssetId; -// Liquity info type alias. -pub(crate) type ChargeAssetLiquidityOf = - <::OnChargeAssetTransaction as OnChargeAssetTransaction>::LiquidityInfo; - -/// Used to pass the initial payment info from pre- to post-dispatch. -#[derive(Encode, Decode, DefaultNoBound, TypeInfo)] -pub enum InitialPayment { - /// No initial fee was payed. - Nothing, - /// The initial fee was payed in the native currency. - Native(LiquidityInfoOf), - /// The initial fee was payed in an asset. - Asset(CreditOf), -} - -pub use pallet::*; - -#[frame_support::pallet] -pub mod pallet { - use super::*; - - use frame_support::pallet_prelude::*; - use frame_system::pallet_prelude::*; - - #[pallet::config] - pub trait Config: frame_system::Config + pallet_transaction_payment::Config { - /// The fungibles instance used to pay for transactions in assets. - type Fungibles: Balanced; - /// The actual transaction charging logic that charges the fees. - type OnChargeAssetTransaction: OnChargeAssetTransaction; - } - - #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] - pub struct Pallet(_); - - #[pallet::hooks] - impl Hooks> for Pallet {} - - #[pallet::call] - impl Pallet {} -} - -/// Require the transactor pay for themselves and maybe include a tip to gain additional priority -/// in the queue. Allows paying via both `Currency` as well as `fungibles::Balanced`. -/// -/// Wraps the transaction logic in [`pallet_transaction_payment`] and extends it with assets. -/// An asset id of `None` falls back to the underlying transaction payment via the native currency. -#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] -#[scale_info(skip_type_params(T))] -pub struct ChargeAssetTxPayment { - #[codec(compact)] - tip: BalanceOf, - asset_id: Option>, -} - -impl ChargeAssetTxPayment -where - T::Call: Dispatchable, - AssetBalanceOf: Send + Sync + FixedPointOperand, - BalanceOf: Send + Sync + FixedPointOperand + IsType>, - ChargeAssetIdOf: Send + Sync, - CreditOf: IsType>, -{ - /// utility constructor. Used only in client/factory code. - pub fn from(tip: BalanceOf, asset_id: Option>) -> Self { - Self { tip, asset_id } - } - - /// Fee withdrawal logic that dispatches to either `OnChargeAssetTransaction` or `OnChargeTransaction`. - fn withdraw_fee( - &self, - who: &T::AccountId, - call: &T::Call, - info: &DispatchInfoOf, - len: usize, - ) -> Result<(BalanceOf, InitialPayment), TransactionValidityError> { - let fee = pallet_transaction_payment::Pallet::::compute_fee(len as u32, info, self.tip); - debug_assert!(self.tip <= fee, "tip should be included in the computed fee"); - if fee.is_zero() { - Ok((fee, InitialPayment::Nothing)) - } else if let Some(asset_id) = self.asset_id { - T::OnChargeAssetTransaction::withdraw_fee( - who, - call, - info, - asset_id, - fee.into(), - self.tip.into(), - ) - .map(|i| (fee, InitialPayment::Asset(i.into()))) - } else { - as OnChargeTransaction>::withdraw_fee( - who, call, info, fee, self.tip, - ) - .map(|i| (fee, InitialPayment::Native(i))) - .map_err(|_| -> TransactionValidityError { InvalidTransaction::Payment.into() }) - } - } -} - -impl sp_std::fmt::Debug for ChargeAssetTxPayment { - #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { - write!(f, "ChargeAssetTxPayment<{:?}, {:?}>", self.tip, self.asset_id.encode()) - } - #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { - Ok(()) - } -} - -impl SignedExtension for ChargeAssetTxPayment -where - T::Call: Dispatchable, - AssetBalanceOf: Send + Sync + FixedPointOperand, - BalanceOf: Send + Sync + From + FixedPointOperand + IsType>, - ChargeAssetIdOf: Send + Sync, - CreditOf: IsType>, -{ - const IDENTIFIER: &'static str = "ChargeAssetTxPayment"; - type AccountId = T::AccountId; - type Call = T::Call; - type AdditionalSigned = (); - type Pre = ( - // tip - BalanceOf, - // who paid the fee - Self::AccountId, - // imbalance resulting from withdrawing the fee - InitialPayment, - ); - - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { - Ok(()) - } - - fn validate( - &self, - who: &Self::AccountId, - call: &Self::Call, - info: &DispatchInfoOf, - len: usize, - ) -> TransactionValidity { - use pallet_transaction_payment::ChargeTransactionPayment; - let (fee, _) = self.withdraw_fee(who, call, info, len)?; - let priority = ChargeTransactionPayment::::get_priority(info, len, self.tip, fee); - Ok(ValidTransaction { priority, ..Default::default() }) - } - - fn pre_dispatch( - self, - who: &Self::AccountId, - call: &Self::Call, - info: &DispatchInfoOf, - len: usize, - ) -> Result { - let (_fee, initial_payment) = self.withdraw_fee(who, call, info, len)?; - Ok((self.tip, who.clone(), initial_payment)) - } - - fn post_dispatch( - pre: Self::Pre, - info: &DispatchInfoOf, - post_info: &PostDispatchInfoOf, - len: usize, - _result: &DispatchResult, - ) -> Result<(), TransactionValidityError> { - let (tip, who, initial_payment) = pre; - let actual_fee = pallet_transaction_payment::Pallet::::compute_actual_fee( - len as u32, info, post_info, tip, - ); - match initial_payment { - InitialPayment::Native(already_withdrawn) => { - as OnChargeTransaction>::correct_and_deposit_fee( - &who, - info, - post_info, - actual_fee, - tip, - already_withdrawn, - )?; - }, - InitialPayment::Asset(already_withdrawn) => { - T::OnChargeAssetTransaction::correct_and_deposit_fee( - &who, - info, - post_info, - actual_fee.into(), - tip.into(), - already_withdrawn.into(), - )?; - }, - InitialPayment::Nothing => { - debug_assert!( - actual_fee.is_zero(), - "actual fee should be zero if initial fee was zero." - ); - debug_assert!(tip.is_zero(), "tip should be zero if initial fee was zero."); - }, - } - - Ok(()) - } -} diff --git a/pallets/asset-tx-payment/src/payment.rs b/pallets/asset-tx-payment/src/payment.rs deleted file mode 100644 index 09482f9649..0000000000 --- a/pallets/asset-tx-payment/src/payment.rs +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright (C) 2021 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -///! Traits and default implementation for paying transaction fees in assets. -use super::*; -use crate::Config; - -use codec::FullCodec; -use frame_support::{ - traits::{ - fungibles::{Balanced, CreditOf, Inspect}, - tokens::BalanceConversion, - }, - unsigned::TransactionValidityError, -}; -use scale_info::TypeInfo; -use sp_runtime::{ - traits::{ - AtLeast32BitUnsigned, DispatchInfoOf, MaybeSerializeDeserialize, One, PostDispatchInfoOf, - }, - transaction_validity::InvalidTransaction, -}; -use sp_std::{fmt::Debug, marker::PhantomData}; - -/// Handle withdrawing, refunding and depositing of transaction fees. -pub trait OnChargeAssetTransaction { - /// The underlying integer type in which fees are calculated. - type Balance: AtLeast32BitUnsigned - + FullCodec - + Copy - + MaybeSerializeDeserialize - + Debug - + Default - + TypeInfo; - /// The type used to identify the assets used for transaction payment. - type AssetId: FullCodec + Copy + MaybeSerializeDeserialize + Debug + Default + Eq + TypeInfo; - /// The type used to store the intermediate values between pre- and post-dispatch. - type LiquidityInfo; - - /// Before the transaction is executed the payment of the transaction fees needs to be secured. - /// - /// Note: The `fee` already includes the `tip`. - fn withdraw_fee( - who: &T::AccountId, - call: &T::Call, - dispatch_info: &DispatchInfoOf, - asset_id: Self::AssetId, - fee: Self::Balance, - tip: Self::Balance, - ) -> Result; - - /// After the transaction was executed the actual fee can be calculated. - /// This function should refund any overpaid fees and optionally deposit - /// the corrected amount. - /// - /// Note: The `fee` already includes the `tip`. - fn correct_and_deposit_fee( - who: &T::AccountId, - dispatch_info: &DispatchInfoOf, - post_info: &PostDispatchInfoOf, - corrected_fee: Self::Balance, - tip: Self::Balance, - already_withdrawn: Self::LiquidityInfo, - ) -> Result<(), TransactionValidityError>; -} - -/// Allows specifying what to do with the withdrawn asset fees. -pub trait HandleCredit> { - /// Implement to determine what to do with the withdrawn asset fees. - /// Default for `CreditOf` from the assets pallet is to burn and - /// decrease total issuance. - fn handle_credit(credit: CreditOf); -} - -/// Default implementation that just drops the credit according to the `OnDrop` in the underlying -/// imbalance type. -impl> HandleCredit for () { - fn handle_credit(_credit: CreditOf) {} -} - -/// Implements the asset transaction for a balance to asset converter (implementing -/// [`BalanceConversion`]) and a credit handler (implementing [`HandleCredit`]). -/// -/// The credit handler is given the complete fee in terms of the asset used for the transaction. -pub struct FungiblesAdapter(PhantomData<(CON, HC)>); - -/// Default implementation for a runtime instantiating this pallet, a balance to asset converter and -/// a credit handler. -impl OnChargeAssetTransaction for FungiblesAdapter -where - T: Config, - CON: BalanceConversion, AssetIdOf, AssetBalanceOf>, - HC: HandleCredit, - AssetIdOf: FullCodec + Copy + MaybeSerializeDeserialize + Debug + Default + Eq + TypeInfo, -{ - type Balance = BalanceOf; - type AssetId = AssetIdOf; - type LiquidityInfo = CreditOf; - - /// Withdraw the predicted fee from the transaction origin. - /// - /// Note: The `fee` already includes the `tip`. - fn withdraw_fee( - who: &T::AccountId, - _call: &T::Call, - _info: &DispatchInfoOf, - asset_id: Self::AssetId, - fee: Self::Balance, - _tip: Self::Balance, - ) -> Result { - // We don't know the precision of the underlying asset. Because the converted fee could be - // less than one (e.g. 0.5) but gets rounded down by integer division we introduce a minimum - // fee. - let min_converted_fee = if fee.is_zero() { Zero::zero() } else { One::one() }; - let converted_fee = CON::to_asset_balance(fee, asset_id) - .map_err(|_| TransactionValidityError::from(InvalidTransaction::Payment))? - .max(min_converted_fee); - let can_withdraw = >::can_withdraw( - asset_id.into(), - who, - converted_fee, - ); - if !matches!(can_withdraw, WithdrawConsequence::Success) { - return Err(InvalidTransaction::Payment.into()) - } - >::withdraw(asset_id.into(), who, converted_fee) - .map_err(|_| TransactionValidityError::from(InvalidTransaction::Payment)) - } - - /// Hand the fee and the tip over to the `[HandleCredit]` implementation. - /// Since the predicted fee might have been too high, parts of the fee may be refunded. - /// - /// Note: The `corrected_fee` already includes the `tip`. - fn correct_and_deposit_fee( - who: &T::AccountId, - _dispatch_info: &DispatchInfoOf, - _post_info: &PostDispatchInfoOf, - corrected_fee: Self::Balance, - _tip: Self::Balance, - paid: Self::LiquidityInfo, - ) -> Result<(), TransactionValidityError> { - let min_converted_fee = if corrected_fee.is_zero() { Zero::zero() } else { One::one() }; - // Convert the corrected fee into the asset used for payment. - let converted_fee = CON::to_asset_balance(corrected_fee, paid.asset().into()) - .map_err(|_| -> TransactionValidityError { InvalidTransaction::Payment.into() })? - .max(min_converted_fee); - // Calculate how much refund we should return. - let (final_fee, refund) = paid.split(converted_fee); - // Refund to the account that paid the fees. If this fails, the account might have dropped - // below the existential balance. In that case we don't refund anything. - let _ = >::resolve(who, refund); - // Handle the final fee, e.g. by transferring to the block author or burning. - HC::handle_credit(final_fee); - Ok(()) - } -} diff --git a/pallets/asset-tx-payment/src/tests.rs b/pallets/asset-tx-payment/src/tests.rs deleted file mode 100644 index 86a84da817..0000000000 --- a/pallets/asset-tx-payment/src/tests.rs +++ /dev/null @@ -1,636 +0,0 @@ -// Copyright (C) 2021 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -use super::*; -use crate as pallet_asset_tx_payment; - -use frame_support::{ - assert_ok, - pallet_prelude::*, - parameter_types, - traits::{fungibles::Mutate, FindAuthor}, - weights::{ - DispatchClass, DispatchInfo, PostDispatchInfo, Weight, WeightToFeeCoefficient, - WeightToFeeCoefficients, WeightToFeePolynomial, - }, - ConsensusEngineId, -}; -use frame_system as system; -use frame_system::EnsureRoot; -use pallet_balances::Call as BalancesCall; -use pallet_transaction_payment::CurrencyAdapter; -use smallvec::smallvec; -use sp_core::H256; -use sp_runtime::{ - testing::Header, - traits::{BlakeTwo256, ConvertInto, IdentityLookup, StaticLookup}, - Perbill, -}; -use std::cell::RefCell; - -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; -type Block = frame_system::mocking::MockBlock; -type Balance = u64; -type AccountId = u64; - -frame_support::construct_runtime!( - pub enum Runtime where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, - { - System: system::{Pallet, Call, Config, Storage, Event}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage}, - Assets: pallet_assets::{Pallet, Call, Storage, Event}, - Authorship: pallet_authorship::{Pallet, Call, Storage}, - AssetTxPayment: pallet_asset_tx_payment::{Pallet}, - } -); - -const CALL: &::Call = - &Call::Balances(BalancesCall::transfer { dest: 2, value: 69 }); - -thread_local! { - static EXTRINSIC_BASE_WEIGHT: RefCell = RefCell::new(0); -} - -pub struct BlockWeights; -impl Get for BlockWeights { - fn get() -> frame_system::limits::BlockWeights { - frame_system::limits::BlockWeights::builder() - .base_block(0) - .for_class(DispatchClass::all(), |weights| { - weights.base_extrinsic = EXTRINSIC_BASE_WEIGHT.with(|v| *v.borrow()).into(); - }) - .for_class(DispatchClass::non_mandatory(), |weights| { - weights.max_total = 1024.into(); - }) - .build_or_panic() - } -} - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub static TransactionByteFee: u64 = 1; - pub static WeightToFee: u64 = 1; -} - -impl frame_system::Config for Runtime { - type BaseCallFilter = frame_support::traits::Everything; - type BlockWeights = BlockWeights; - type BlockLength = (); - type DbWeight = (); - type Origin = Origin; - type Index = u64; - type BlockNumber = u64; - type Call = Call; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Header = Header; - type Event = Event; - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = (); - type OnSetCode = (); -} - -parameter_types! { - pub const ExistentialDeposit: u64 = 10; - pub const MaxReserves: u32 = 50; -} - -impl pallet_balances::Config for Runtime { - type Balance = Balance; - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type MaxLocks = (); - type WeightInfo = (); - type MaxReserves = MaxReserves; - type ReserveIdentifier = [u8; 8]; -} - -impl WeightToFeePolynomial for WeightToFee { - type Balance = u64; - - fn polynomial() -> WeightToFeeCoefficients { - smallvec![WeightToFeeCoefficient { - degree: 1, - coeff_frac: Perbill::zero(), - coeff_integer: WEIGHT_TO_FEE.with(|v| *v.borrow()), - negative: false, - }] - } -} - -parameter_types! { - pub const OperationalFeeMultiplier: u8 = 5; -} - -impl pallet_transaction_payment::Config for Runtime { - type OnChargeTransaction = CurrencyAdapter; - type TransactionByteFee = TransactionByteFee; - type WeightToFee = WeightToFee; - type FeeMultiplierUpdate = (); - type OperationalFeeMultiplier = OperationalFeeMultiplier; -} - -parameter_types! { - pub const AssetDeposit: u64 = 2; - pub const MetadataDeposit: u64 = 0; - pub const StringLimit: u32 = 20; -} - -impl pallet_assets::Config for Runtime { - type Event = Event; - type Balance = Balance; - type AssetId = u32; - type Currency = Balances; - type ForceOrigin = EnsureRoot; - type AssetDeposit = AssetDeposit; - type MetadataDepositBase = MetadataDeposit; - type MetadataDepositPerByte = MetadataDeposit; - type ApprovalDeposit = MetadataDeposit; - type StringLimit = StringLimit; - type Freezer = (); - type Extra = (); - type WeightInfo = (); -} - -pub struct HardcodedAuthor; -const BLOCK_AUTHOR: AccountId = 1234; -impl FindAuthor for HardcodedAuthor { - fn find_author<'a, I>(_: I) -> Option - where - I: 'a + IntoIterator, - { - Some(BLOCK_AUTHOR) - } -} - -impl pallet_authorship::Config for Runtime { - type FindAuthor = HardcodedAuthor; - type UncleGenerations = (); - type FilterUncle = (); - type EventHandler = (); -} - -pub struct CreditToBlockAuthor; -impl HandleCredit for CreditToBlockAuthor { - fn handle_credit(credit: CreditOf) { - let author = pallet_authorship::Pallet::::author(); - // TODO: what to do in case paying the author fails (e.g. because `fee < min_balance`) - // default: drop the result which will trigger the `OnDrop` of the imbalance. - let _ = >::resolve(&author, credit); - } -} - -impl Config for Runtime { - type Fungibles = Assets; - type OnChargeAssetTransaction = FungiblesAdapter< - pallet_assets::BalanceToAssetBalance, - CreditToBlockAuthor, - >; -} - -pub struct ExtBuilder { - balance_factor: u64, - base_weight: u64, - byte_fee: u64, - weight_to_fee: u64, -} - -impl Default for ExtBuilder { - fn default() -> Self { - Self { balance_factor: 1, base_weight: 0, byte_fee: 1, weight_to_fee: 1 } - } -} - -impl ExtBuilder { - pub fn base_weight(mut self, base_weight: u64) -> Self { - self.base_weight = base_weight; - self - } - pub fn balance_factor(mut self, factor: u64) -> Self { - self.balance_factor = factor; - self - } - fn set_constants(&self) { - EXTRINSIC_BASE_WEIGHT.with(|v| *v.borrow_mut() = self.base_weight); - TRANSACTION_BYTE_FEE.with(|v| *v.borrow_mut() = self.byte_fee); - WEIGHT_TO_FEE.with(|v| *v.borrow_mut() = self.weight_to_fee); - } - pub fn build(self) -> sp_io::TestExternalities { - self.set_constants(); - let mut t = frame_system::GenesisConfig::default().build_storage::().unwrap(); - pallet_balances::GenesisConfig:: { - balances: if self.balance_factor > 0 { - vec![ - (1, 10 * self.balance_factor), - (2, 20 * self.balance_factor), - (3, 30 * self.balance_factor), - (4, 40 * self.balance_factor), - (5, 50 * self.balance_factor), - (6, 60 * self.balance_factor), - ] - } else { - Vec::new() - }, - } - .assimilate_storage(&mut t) - .unwrap(); - t.into() - } -} - -/// create a transaction info struct from weight. Handy to avoid building the whole struct. -pub fn info_from_weight(w: Weight) -> DispatchInfo { - // pays_fee: Pays::Yes -- class: DispatchClass::Normal - DispatchInfo { weight: w, ..Default::default() } -} - -fn post_info_from_weight(w: Weight) -> PostDispatchInfo { - PostDispatchInfo { actual_weight: Some(w), pays_fee: Default::default() } -} - -fn info_from_pays(p: Pays) -> DispatchInfo { - DispatchInfo { pays_fee: p, ..Default::default() } -} - -fn post_info_from_pays(p: Pays) -> PostDispatchInfo { - PostDispatchInfo { actual_weight: None, pays_fee: p } -} - -fn default_post_info() -> PostDispatchInfo { - PostDispatchInfo { actual_weight: None, pays_fee: Default::default() } -} - -#[test] -fn transaction_payment_in_native_possible() { - let balance_factor = 100; - ExtBuilder::default() - .balance_factor(balance_factor) - .base_weight(5) - .build() - .execute_with(|| { - let len = 10; - let pre = ChargeAssetTxPayment::::from(0, None) - .pre_dispatch(&1, CALL, &info_from_weight(5), len) - .unwrap(); - let initial_balance = 10 * balance_factor; - assert_eq!(Balances::free_balance(1), initial_balance - 5 - 5 - 10); - - assert_ok!(ChargeAssetTxPayment::::post_dispatch( - pre, - &info_from_weight(5), - &default_post_info(), - len, - &Ok(()) - )); - assert_eq!(Balances::free_balance(1), initial_balance - 5 - 5 - 10); - - let pre = ChargeAssetTxPayment::::from(5 /* tipped */, None) - .pre_dispatch(&2, CALL, &info_from_weight(100), len) - .unwrap(); - let initial_balance_for_2 = 20 * balance_factor; - assert_eq!(Balances::free_balance(2), initial_balance_for_2 - 5 - 10 - 100 - 5); - - assert_ok!(ChargeAssetTxPayment::::post_dispatch( - pre, - &info_from_weight(100), - &post_info_from_weight(50), - len, - &Ok(()) - )); - assert_eq!(Balances::free_balance(2), initial_balance_for_2 - 5 - 10 - 50 - 5); - }); -} - -#[test] -fn transaction_payment_in_asset_possible() { - let base_weight = 5; - let balance_factor = 100; - ExtBuilder::default() - .balance_factor(balance_factor) - .base_weight(base_weight) - .build() - .execute_with(|| { - // create the asset - let asset_id = 1; - let min_balance = 2; - assert_ok!(Assets::force_create( - Origin::root(), - asset_id, - 42, /* owner */ - true, /* is_sufficient */ - min_balance - )); - - // mint into the caller account - let caller = 1; - let beneficiary = ::Lookup::unlookup(caller); - let balance = 100; - assert_ok!(Assets::mint_into(asset_id, &beneficiary, balance)); - assert_eq!(Assets::balance(asset_id, caller), balance); - let weight = 5; - let len = 10; - // we convert the from weight to fee based on the ratio between asset min balance and - // existential deposit - let fee = (base_weight + weight + len as u64) * min_balance / ExistentialDeposit::get(); - let pre = ChargeAssetTxPayment::::from(0, Some(asset_id)) - .pre_dispatch(&caller, CALL, &info_from_weight(weight), len) - .unwrap(); - // assert that native balance is not used - assert_eq!(Balances::free_balance(caller), 10 * balance_factor); - // check that fee was charged in the given asset - assert_eq!(Assets::balance(asset_id, caller), balance - fee); - assert_eq!(Assets::balance(asset_id, BLOCK_AUTHOR), 0); - - assert_ok!(ChargeAssetTxPayment::::post_dispatch( - pre, - &info_from_weight(weight), - &default_post_info(), - len, - &Ok(()) - )); - assert_eq!(Assets::balance(asset_id, caller), balance - fee); - // check that the block author gets rewarded - assert_eq!(Assets::balance(asset_id, BLOCK_AUTHOR), fee); - }); -} - -#[test] -fn transaction_payment_without_fee() { - let base_weight = 5; - let balance_factor = 100; - ExtBuilder::default() - .balance_factor(balance_factor) - .base_weight(base_weight) - .build() - .execute_with(|| { - // create the asset - let asset_id = 1; - let min_balance = 2; - assert_ok!(Assets::force_create( - Origin::root(), - asset_id, - 42, /* owner */ - true, /* is_sufficient */ - min_balance - )); - - // mint into the caller account - let caller = 1; - let beneficiary = ::Lookup::unlookup(caller); - let balance = 100; - assert_ok!(Assets::mint_into(asset_id, &beneficiary, balance)); - assert_eq!(Assets::balance(asset_id, caller), balance); - let weight = 5; - let len = 10; - // we convert the from weight to fee based on the ratio between asset min balance and - // existential deposit - let fee = (base_weight + weight + len as u64) * min_balance / ExistentialDeposit::get(); - let pre = ChargeAssetTxPayment::::from(0, Some(asset_id)) - .pre_dispatch(&caller, CALL, &info_from_weight(weight), len) - .unwrap(); - // assert that native balance is not used - assert_eq!(Balances::free_balance(caller), 10 * balance_factor); - // check that fee was charged in the given asset - assert_eq!(Assets::balance(asset_id, caller), balance - fee); - assert_eq!(Assets::balance(asset_id, BLOCK_AUTHOR), 0); - - assert_ok!(ChargeAssetTxPayment::::post_dispatch( - pre, - &info_from_weight(weight), - &post_info_from_pays(Pays::No), - len, - &Ok(()) - )); - // caller should be refunded - assert_eq!(Assets::balance(asset_id, caller), balance); - // check that the block author did not get rewarded - assert_eq!(Assets::balance(asset_id, BLOCK_AUTHOR), 0); - }); -} - -#[test] -fn asset_transaction_payment_with_tip_and_refund() { - let base_weight = 5; - ExtBuilder::default() - .balance_factor(100) - .base_weight(base_weight) - .build() - .execute_with(|| { - // create the asset - let asset_id = 1; - let min_balance = 2; - assert_ok!(Assets::force_create( - Origin::root(), - asset_id, - 42, /* owner */ - true, /* is_sufficient */ - min_balance - )); - - // mint into the caller account - let caller = 2; - let beneficiary = ::Lookup::unlookup(caller); - let balance = 1000; - assert_ok!(Assets::mint_into(asset_id, &beneficiary, balance)); - assert_eq!(Assets::balance(asset_id, caller), balance); - let weight = 100; - let tip = 5; - let len = 10; - // we convert the from weight to fee based on the ratio between asset min balance and - // existential deposit - let fee_with_tip = - (base_weight + weight + len as u64 + tip) * min_balance / ExistentialDeposit::get(); - let pre = ChargeAssetTxPayment::::from(tip, Some(asset_id)) - .pre_dispatch(&caller, CALL, &info_from_weight(weight), len) - .unwrap(); - assert_eq!(Assets::balance(asset_id, caller), balance - fee_with_tip); - - let final_weight = 50; - assert_ok!(ChargeAssetTxPayment::::post_dispatch( - pre, - &info_from_weight(weight), - &post_info_from_weight(final_weight), - len, - &Ok(()) - )); - let final_fee = - fee_with_tip - (weight - final_weight) * min_balance / ExistentialDeposit::get(); - assert_eq!(Assets::balance(asset_id, caller), balance - (final_fee)); - assert_eq!(Assets::balance(asset_id, BLOCK_AUTHOR), final_fee); - }); -} - -#[test] -fn payment_from_account_with_only_assets() { - let base_weight = 5; - ExtBuilder::default() - .balance_factor(100) - .base_weight(base_weight) - .build() - .execute_with(|| { - // create the asset - let asset_id = 1; - let min_balance = 2; - assert_ok!(Assets::force_create( - Origin::root(), - asset_id, - 42, /* owner */ - true, /* is_sufficient */ - min_balance - )); - - // mint into the caller account - let caller = 333; - let beneficiary = ::Lookup::unlookup(caller); - let balance = 100; - assert_ok!(Assets::mint_into(asset_id, &beneficiary, balance)); - assert_eq!(Assets::balance(asset_id, caller), balance); - // assert that native balance is not necessary - assert_eq!(Balances::free_balance(caller), 0); - let weight = 5; - let len = 10; - // we convert the from weight to fee based on the ratio between asset min balance and - // existential deposit - let fee = (base_weight + weight + len as u64) * min_balance / ExistentialDeposit::get(); - let pre = ChargeAssetTxPayment::::from(0, Some(asset_id)) - .pre_dispatch(&caller, CALL, &info_from_weight(weight), len) - .unwrap(); - assert_eq!(Balances::free_balance(caller), 0); - // check that fee was charged in the given asset - assert_eq!(Assets::balance(asset_id, caller), balance - fee); - - assert_ok!(ChargeAssetTxPayment::::post_dispatch( - pre, - &info_from_weight(weight), - &default_post_info(), - len, - &Ok(()) - )); - assert_eq!(Assets::balance(asset_id, caller), balance - fee); - assert_eq!(Balances::free_balance(caller), 0); - }); -} - -#[test] -fn payment_only_with_existing_sufficient_asset() { - let base_weight = 5; - ExtBuilder::default() - .balance_factor(100) - .base_weight(base_weight) - .build() - .execute_with(|| { - let asset_id = 1; - let caller = 1; - let weight = 5; - let len = 10; - // pre_dispatch fails for non-existent asset - assert!(ChargeAssetTxPayment::::from(0, Some(asset_id)) - .pre_dispatch(&caller, CALL, &info_from_weight(weight), len) - .is_err()); - - // create the non-sufficient asset - let min_balance = 2; - assert_ok!(Assets::force_create( - Origin::root(), - asset_id, - 42, /* owner */ - false, /* is_sufficient */ - min_balance - )); - // pre_dispatch fails for non-sufficient asset - assert!(ChargeAssetTxPayment::::from(0, Some(asset_id)) - .pre_dispatch(&caller, CALL, &info_from_weight(weight), len) - .is_err()); - }); -} - -#[test] -fn converted_fee_is_never_zero_if_input_fee_is_not() { - let base_weight = 1; - ExtBuilder::default() - .balance_factor(100) - .base_weight(base_weight) - .build() - .execute_with(|| { - // create the asset - let asset_id = 1; - let min_balance = 1; - assert_ok!(Assets::force_create( - Origin::root(), - asset_id, - 42, /* owner */ - true, /* is_sufficient */ - min_balance - )); - - // mint into the caller account - let caller = 333; - let beneficiary = ::Lookup::unlookup(caller); - let balance = 100; - assert_ok!(Assets::mint_into(asset_id, &beneficiary, balance)); - assert_eq!(Assets::balance(asset_id, caller), balance); - let weight = 1; - let len = 1; - // we convert the from weight to fee based on the ratio between asset min balance and - // existential deposit - let fee = (base_weight + weight + len as u64) * min_balance / ExistentialDeposit::get(); - // naive fee calculation would round down to zero - assert_eq!(fee, 0); - { - let pre = ChargeAssetTxPayment::::from(0, Some(asset_id)) - .pre_dispatch(&caller, CALL, &info_from_pays(Pays::No), len) - .unwrap(); - // `Pays::No` still implies no fees - assert_eq!(Assets::balance(asset_id, caller), balance); - - assert_ok!(ChargeAssetTxPayment::::post_dispatch( - pre, - &info_from_pays(Pays::No), - &post_info_from_pays(Pays::No), - len, - &Ok(()) - )); - assert_eq!(Assets::balance(asset_id, caller), balance); - } - let pre = ChargeAssetTxPayment::::from(0, Some(asset_id)) - .pre_dispatch(&caller, CALL, &info_from_weight(weight), len) - .unwrap(); - // check that at least one coin was charged in the given asset - assert_eq!(Assets::balance(asset_id, caller), balance - 1); - - assert_ok!(ChargeAssetTxPayment::::post_dispatch( - pre, - &info_from_weight(weight), - &default_post_info(), - len, - &Ok(()) - )); - assert_eq!(Assets::balance(asset_id, caller), balance - 1); - }); -} diff --git a/polkadot-parachains/parachains-common/Cargo.toml b/polkadot-parachains/parachains-common/Cargo.toml index d27dcdac92..420f2414bc 100644 --- a/polkadot-parachains/parachains-common/Cargo.toml +++ b/polkadot-parachains/parachains-common/Cargo.toml @@ -20,6 +20,7 @@ sp-io = { git = 'https://github.com/paritytech/substrate', branch = "master", de frame-executive = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } frame-support = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } frame-system = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } +pallet-asset-tx-payment = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } pallet-assets = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } pallet-authorship = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } @@ -33,7 +34,6 @@ xcm = { git = 'https://github.com/paritytech/polkadot', default-features = false xcm-executor = { git = 'https://github.com/paritytech/polkadot', default-features = false , branch = "master" } # Local dependencies -pallet-asset-tx-payment = { path = '../../pallets/asset-tx-payment', default-features = false } pallet-collator-selection = { path = '../../pallets/collator-selection', default-features = false } [dev-dependencies] diff --git a/polkadot-parachains/statemine/Cargo.toml b/polkadot-parachains/statemine/Cargo.toml index 8d52784b19..0611b6a36d 100644 --- a/polkadot-parachains/statemine/Cargo.toml +++ b/polkadot-parachains/statemine/Cargo.toml @@ -34,6 +34,7 @@ frame-support = { git = "https://github.com/paritytech/substrate", default-featu frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } +pallet-asset-tx-payment = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } @@ -61,7 +62,6 @@ cumulus-pallet-xcmp-queue = { path = "../../pallets/xcmp-queue", default-feature cumulus-pallet-xcm = { path = "../../pallets/xcm", default-features = false } cumulus-pallet-session-benchmarking = {path = "../../pallets/session-benchmarking", default-features = false, version = "3.0.0"} cumulus-ping = { path = "../pallets/ping", default-features = false } -pallet-asset-tx-payment = { path = "../../pallets/asset-tx-payment", default-features = false } pallet-collator-selection = { path = "../../pallets/collator-selection", default-features = false } parachains-common = { path = "../parachains-common", default-features = false } diff --git a/polkadot-parachains/statemint/Cargo.toml b/polkadot-parachains/statemint/Cargo.toml index b278b0a48b..e5e0ce8bdf 100644 --- a/polkadot-parachains/statemint/Cargo.toml +++ b/polkadot-parachains/statemint/Cargo.toml @@ -34,6 +34,7 @@ frame-support = { git = "https://github.com/paritytech/substrate", default-featu frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } +pallet-asset-tx-payment = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } @@ -61,7 +62,6 @@ cumulus-pallet-xcmp-queue = { path = "../../pallets/xcmp-queue", default-feature cumulus-pallet-xcm = { path = "../../pallets/xcm", default-features = false } cumulus-pallet-session-benchmarking = { path = "../../pallets/session-benchmarking", default-features = false, version = "3.0.0" } cumulus-ping = { path = "../pallets/ping", default-features = false } -pallet-asset-tx-payment = { path = "../../pallets/asset-tx-payment", default-features = false } pallet-collator-selection = { path = "../../pallets/collator-selection", default-features = false } parachains-common = { path = "../parachains-common", default-features = false } diff --git a/polkadot-parachains/westmint/Cargo.toml b/polkadot-parachains/westmint/Cargo.toml index 19db5589a0..c5669f177b 100644 --- a/polkadot-parachains/westmint/Cargo.toml +++ b/polkadot-parachains/westmint/Cargo.toml @@ -34,6 +34,7 @@ frame-support = { git = "https://github.com/paritytech/substrate", default-featu frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } +pallet-asset-tx-payment = { git = 'https://github.com/paritytech/substrate', branch = "master", default-features = false } pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "master" } @@ -61,7 +62,6 @@ cumulus-pallet-xcmp-queue = { path = "../../pallets/xcmp-queue", default-feature cumulus-pallet-xcm = { path = "../../pallets/xcm", default-features = false } cumulus-pallet-session-benchmarking = {path = "../../pallets/session-benchmarking", default-features = false, version = "3.0.0"} cumulus-ping = { path = "../pallets/ping", default-features = false } -pallet-asset-tx-payment = { path = "../../pallets/asset-tx-payment", default-features = false } pallet-collator-selection = { path = "../../pallets/collator-selection", default-features = false } parachains-common = { path = "../parachains-common", default-features = false }