diff --git a/Cargo.lock b/Cargo.lock
index f999b9c61e69..21f42862322f 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -455,7 +455,7 @@ dependencies = [
[[package]]
name = "beefy-gadget"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"async-trait",
@@ -489,7 +489,7 @@ dependencies = [
[[package]]
name = "beefy-gadget-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"beefy-gadget",
"futures",
@@ -508,7 +508,7 @@ dependencies = [
[[package]]
name = "beefy-merkle-tree"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"sp-api",
"sp-beefy",
@@ -1635,6 +1635,17 @@ dependencies = [
"syn",
]
+[[package]]
+name = "derive-syn-parse"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "derive_builder"
version = "0.11.2"
@@ -2280,7 +2291,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
[[package]]
name = "fork-tree"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
]
@@ -2304,7 +2315,7 @@ checksum = "85dcb89d2b10c5f6133de2efd8c11959ce9dbb46a2f7a4cab208c4eeda6ce1ab"
[[package]]
name = "frame-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -2327,7 +2338,7 @@ dependencies = [
[[package]]
name = "frame-benchmarking-cli"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"Inflector",
"array-bytes",
@@ -2374,7 +2385,7 @@ dependencies = [
[[package]]
name = "frame-election-provider-solution-type"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -2385,7 +2396,7 @@ dependencies = [
[[package]]
name = "frame-election-provider-support"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-election-provider-solution-type",
"frame-support",
@@ -2402,7 +2413,7 @@ dependencies = [
[[package]]
name = "frame-executive"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -2431,7 +2442,7 @@ dependencies = [
[[package]]
name = "frame-remote-externalities"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"log",
@@ -2447,7 +2458,7 @@ dependencies = [
[[package]]
name = "frame-support"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"bitflags",
"frame-metadata",
@@ -2473,16 +2484,18 @@ dependencies = [
"sp-std",
"sp-tracing",
"sp-weights",
+ "static_assertions",
"tt-call",
]
[[package]]
name = "frame-support-procedural"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"Inflector",
"cfg-expr",
+ "derive-syn-parse",
"frame-support-procedural-tools",
"itertools",
"proc-macro2",
@@ -2493,7 +2506,7 @@ dependencies = [
[[package]]
name = "frame-support-procedural-tools"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate",
@@ -2505,7 +2518,7 @@ dependencies = [
[[package]]
name = "frame-support-procedural-tools-derive"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"proc-macro2",
"quote",
@@ -2515,8 +2528,9 @@ dependencies = [
[[package]]
name = "frame-support-test"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
+ "frame-benchmarking",
"frame-support",
"frame-support-test-pallet",
"frame-system",
@@ -2538,7 +2552,7 @@ dependencies = [
[[package]]
name = "frame-support-test-pallet"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -2549,7 +2563,7 @@ dependencies = [
[[package]]
name = "frame-system"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"log",
@@ -2567,7 +2581,7 @@ dependencies = [
[[package]]
name = "frame-system-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -2582,7 +2596,7 @@ dependencies = [
[[package]]
name = "frame-system-rpc-runtime-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -2591,7 +2605,7 @@ dependencies = [
[[package]]
name = "frame-try-runtime"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -2762,7 +2776,7 @@ dependencies = [
[[package]]
name = "generate-bags"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"chrono",
"frame-election-provider-support",
@@ -4515,7 +4529,7 @@ dependencies = [
[[package]]
name = "mmr-gadget"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"log",
@@ -4534,7 +4548,7 @@ dependencies = [
[[package]]
name = "mmr-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"anyhow",
"jsonrpsee",
@@ -5099,7 +5113,7 @@ dependencies = [
[[package]]
name = "pallet-assets"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5114,7 +5128,7 @@ dependencies = [
[[package]]
name = "pallet-authority-discovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5130,7 +5144,7 @@ dependencies = [
[[package]]
name = "pallet-authorship"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5145,7 +5159,7 @@ dependencies = [
[[package]]
name = "pallet-babe"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5169,7 +5183,7 @@ dependencies = [
[[package]]
name = "pallet-bags-list"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5189,7 +5203,7 @@ dependencies = [
[[package]]
name = "pallet-bags-list-remote-tests"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-election-provider-support",
"frame-remote-externalities",
@@ -5208,7 +5222,7 @@ dependencies = [
[[package]]
name = "pallet-balances"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5223,7 +5237,7 @@ dependencies = [
[[package]]
name = "pallet-beefy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5239,7 +5253,7 @@ dependencies = [
[[package]]
name = "pallet-beefy-mmr"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"beefy-merkle-tree",
@@ -5262,7 +5276,7 @@ dependencies = [
[[package]]
name = "pallet-bounties"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5280,7 +5294,7 @@ dependencies = [
[[package]]
name = "pallet-child-bounties"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5299,7 +5313,7 @@ dependencies = [
[[package]]
name = "pallet-collective"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5316,7 +5330,7 @@ dependencies = [
[[package]]
name = "pallet-conviction-voting"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -5333,7 +5347,7 @@ dependencies = [
[[package]]
name = "pallet-democracy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5351,7 +5365,7 @@ dependencies = [
[[package]]
name = "pallet-election-provider-multi-phase"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5374,7 +5388,7 @@ dependencies = [
[[package]]
name = "pallet-election-provider-support-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5387,7 +5401,7 @@ dependencies = [
[[package]]
name = "pallet-elections-phragmen"
version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5405,7 +5419,7 @@ dependencies = [
[[package]]
name = "pallet-fast-unstake"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5423,7 +5437,7 @@ dependencies = [
[[package]]
name = "pallet-grandpa"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5446,7 +5460,7 @@ dependencies = [
[[package]]
name = "pallet-identity"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -5462,7 +5476,7 @@ dependencies = [
[[package]]
name = "pallet-im-online"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5482,7 +5496,7 @@ dependencies = [
[[package]]
name = "pallet-indices"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5499,7 +5513,7 @@ dependencies = [
[[package]]
name = "pallet-membership"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5516,7 +5530,7 @@ dependencies = [
[[package]]
name = "pallet-mmr"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5533,7 +5547,7 @@ dependencies = [
[[package]]
name = "pallet-multisig"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5549,7 +5563,7 @@ dependencies = [
[[package]]
name = "pallet-nis"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5565,7 +5579,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools"
version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5582,7 +5596,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools-benchmarking"
version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5602,7 +5616,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools-runtime-api"
version = "1.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -5612,7 +5626,7 @@ dependencies = [
[[package]]
name = "pallet-offences"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5629,7 +5643,7 @@ dependencies = [
[[package]]
name = "pallet-offences-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5653,7 +5667,7 @@ dependencies = [
[[package]]
name = "pallet-preimage"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5670,7 +5684,7 @@ dependencies = [
[[package]]
name = "pallet-proxy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5685,7 +5699,7 @@ dependencies = [
[[package]]
name = "pallet-ranked-collective"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5703,7 +5717,7 @@ dependencies = [
[[package]]
name = "pallet-recovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5718,7 +5732,7 @@ dependencies = [
[[package]]
name = "pallet-referenda"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -5737,7 +5751,7 @@ dependencies = [
[[package]]
name = "pallet-scheduler"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5754,7 +5768,7 @@ dependencies = [
[[package]]
name = "pallet-session"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5775,7 +5789,7 @@ dependencies = [
[[package]]
name = "pallet-session-benchmarking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5791,7 +5805,7 @@ dependencies = [
[[package]]
name = "pallet-society"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5805,7 +5819,7 @@ dependencies = [
[[package]]
name = "pallet-staking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -5828,7 +5842,7 @@ dependencies = [
[[package]]
name = "pallet-staking-reward-curve"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -5839,7 +5853,7 @@ dependencies = [
[[package]]
name = "pallet-staking-reward-fn"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"log",
"sp-arithmetic",
@@ -5848,7 +5862,7 @@ dependencies = [
[[package]]
name = "pallet-state-trie-migration"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5865,7 +5879,7 @@ dependencies = [
[[package]]
name = "pallet-sudo"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5879,7 +5893,7 @@ dependencies = [
[[package]]
name = "pallet-timestamp"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5897,7 +5911,7 @@ dependencies = [
[[package]]
name = "pallet-tips"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5916,7 +5930,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-support",
"frame-system",
@@ -5932,7 +5946,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"jsonrpsee",
"pallet-transaction-payment-rpc-runtime-api",
@@ -5948,7 +5962,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc-runtime-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"pallet-transaction-payment",
"parity-scale-codec",
@@ -5960,7 +5974,7 @@ dependencies = [
[[package]]
name = "pallet-treasury"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5977,7 +5991,7 @@ dependencies = [
[[package]]
name = "pallet-uniques"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5992,7 +6006,7 @@ dependencies = [
[[package]]
name = "pallet-utility"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6008,7 +6022,7 @@ dependencies = [
[[package]]
name = "pallet-vesting"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -6023,7 +6037,7 @@ dependencies = [
[[package]]
name = "pallet-whitelist"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -7452,6 +7466,7 @@ dependencies = [
"pallet-balances",
"pallet-beefy-mmr",
"pallet-election-provider-multi-phase",
+ "pallet-fast-unstake",
"pallet-session",
"pallet-staking",
"pallet-staking-reward-fn",
@@ -8914,7 +8929,7 @@ dependencies = [
[[package]]
name = "sc-allocator"
version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"log",
"sp-core",
@@ -8925,7 +8940,7 @@ dependencies = [
[[package]]
name = "sc-authority-discovery"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"futures",
@@ -8952,7 +8967,7 @@ dependencies = [
[[package]]
name = "sc-basic-authorship"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"futures-timer",
@@ -8975,7 +8990,7 @@ dependencies = [
[[package]]
name = "sc-block-builder"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"sc-client-api",
@@ -8991,7 +9006,7 @@ dependencies = [
[[package]]
name = "sc-chain-spec"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"memmap2",
"sc-chain-spec-derive",
@@ -9006,7 +9021,7 @@ dependencies = [
[[package]]
name = "sc-chain-spec-derive"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -9017,7 +9032,7 @@ dependencies = [
[[package]]
name = "sc-cli"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"chrono",
@@ -9057,7 +9072,7 @@ dependencies = [
[[package]]
name = "sc-client-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"fnv",
"futures",
@@ -9083,7 +9098,7 @@ dependencies = [
[[package]]
name = "sc-client-db"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"hash-db",
"kvdb",
@@ -9109,7 +9124,7 @@ dependencies = [
[[package]]
name = "sc-consensus"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"futures",
@@ -9134,7 +9149,7 @@ dependencies = [
[[package]]
name = "sc-consensus-babe"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"fork-tree",
@@ -9172,7 +9187,7 @@ dependencies = [
[[package]]
name = "sc-consensus-babe-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"jsonrpsee",
@@ -9194,7 +9209,7 @@ dependencies = [
[[package]]
name = "sc-consensus-epochs"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"fork-tree",
"parity-scale-codec",
@@ -9207,7 +9222,7 @@ dependencies = [
[[package]]
name = "sc-consensus-slots"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"futures",
@@ -9230,7 +9245,7 @@ dependencies = [
[[package]]
name = "sc-executor"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"lru 0.8.1",
"parity-scale-codec",
@@ -9254,7 +9269,7 @@ dependencies = [
[[package]]
name = "sc-executor-common"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"sc-allocator",
"sp-maybe-compressed-blob",
@@ -9267,7 +9282,7 @@ dependencies = [
[[package]]
name = "sc-executor-wasmi"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"log",
"sc-allocator",
@@ -9280,7 +9295,7 @@ dependencies = [
[[package]]
name = "sc-executor-wasmtime"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"cfg-if",
"libc",
@@ -9297,7 +9312,7 @@ dependencies = [
[[package]]
name = "sc-finality-grandpa"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"ahash 0.7.6",
"array-bytes",
@@ -9337,7 +9352,7 @@ dependencies = [
[[package]]
name = "sc-finality-grandpa-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"finality-grandpa",
"futures",
@@ -9357,7 +9372,7 @@ dependencies = [
[[package]]
name = "sc-informant"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"ansi_term",
"futures",
@@ -9372,7 +9387,7 @@ dependencies = [
[[package]]
name = "sc-keystore"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"async-trait",
@@ -9387,7 +9402,7 @@ dependencies = [
[[package]]
name = "sc-network"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"async-trait",
@@ -9429,7 +9444,7 @@ dependencies = [
[[package]]
name = "sc-network-bitswap"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"cid",
"futures",
@@ -9448,7 +9463,7 @@ dependencies = [
[[package]]
name = "sc-network-common"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"bitflags",
@@ -9474,7 +9489,7 @@ dependencies = [
[[package]]
name = "sc-network-gossip"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"ahash 0.7.6",
"futures",
@@ -9492,7 +9507,7 @@ dependencies = [
[[package]]
name = "sc-network-light"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"futures",
@@ -9513,7 +9528,7 @@ dependencies = [
[[package]]
name = "sc-network-sync"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"async-trait",
@@ -9545,7 +9560,7 @@ dependencies = [
[[package]]
name = "sc-network-transactions"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"futures",
@@ -9564,7 +9579,7 @@ dependencies = [
[[package]]
name = "sc-offchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"bytes",
@@ -9594,7 +9609,7 @@ dependencies = [
[[package]]
name = "sc-peerset"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"libp2p",
@@ -9607,7 +9622,7 @@ dependencies = [
[[package]]
name = "sc-proposer-metrics"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -9616,7 +9631,7 @@ dependencies = [
[[package]]
name = "sc-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"jsonrpsee",
@@ -9646,7 +9661,7 @@ dependencies = [
[[package]]
name = "sc-rpc-api"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -9665,7 +9680,7 @@ dependencies = [
[[package]]
name = "sc-rpc-server"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"http",
"jsonrpsee",
@@ -9680,7 +9695,7 @@ dependencies = [
[[package]]
name = "sc-rpc-spec-v2"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"futures",
@@ -9706,7 +9721,7 @@ dependencies = [
[[package]]
name = "sc-service"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"directories",
@@ -9737,6 +9752,7 @@ dependencies = [
"sc-rpc",
"sc-rpc-server",
"sc-rpc-spec-v2",
+ "sc-storage-monitor",
"sc-sysinfo",
"sc-telemetry",
"sc-tracing",
@@ -9771,7 +9787,7 @@ dependencies = [
[[package]]
name = "sc-state-db"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"log",
"parity-scale-codec",
@@ -9779,10 +9795,26 @@ dependencies = [
"sp-core",
]
+[[package]]
+name = "sc-storage-monitor"
+version = "0.1.0"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
+dependencies = [
+ "clap 4.0.15",
+ "futures",
+ "log",
+ "nix 0.26.2",
+ "sc-client-db",
+ "sc-utils",
+ "sp-core",
+ "thiserror",
+ "tokio",
+]
+
[[package]]
name = "sc-sync-state-rpc"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -9801,7 +9833,7 @@ dependencies = [
[[package]]
name = "sc-sysinfo"
version = "6.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"libc",
@@ -9820,7 +9852,7 @@ dependencies = [
[[package]]
name = "sc-telemetry"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"chrono",
"futures",
@@ -9839,7 +9871,7 @@ dependencies = [
[[package]]
name = "sc-tracing"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"ansi_term",
"atty",
@@ -9870,7 +9902,7 @@ dependencies = [
[[package]]
name = "sc-tracing-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -9881,7 +9913,7 @@ dependencies = [
[[package]]
name = "sc-transaction-pool"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"futures",
@@ -9908,7 +9940,7 @@ dependencies = [
[[package]]
name = "sc-transaction-pool-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"futures",
@@ -9922,7 +9954,7 @@ dependencies = [
[[package]]
name = "sc-utils"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"backtrace",
"futures",
@@ -10429,7 +10461,7 @@ dependencies = [
[[package]]
name = "sp-api"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"hash-db",
"log",
@@ -10447,7 +10479,7 @@ dependencies = [
[[package]]
name = "sp-api-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"blake2",
"proc-macro-crate",
@@ -10459,7 +10491,7 @@ dependencies = [
[[package]]
name = "sp-application-crypto"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -10472,7 +10504,7 @@ dependencies = [
[[package]]
name = "sp-arithmetic"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"integer-sqrt",
"num-traits",
@@ -10486,7 +10518,7 @@ dependencies = [
[[package]]
name = "sp-authority-discovery"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -10499,7 +10531,7 @@ dependencies = [
[[package]]
name = "sp-authorship"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -10511,7 +10543,7 @@ dependencies = [
[[package]]
name = "sp-beefy"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -10528,7 +10560,7 @@ dependencies = [
[[package]]
name = "sp-block-builder"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -10540,7 +10572,7 @@ dependencies = [
[[package]]
name = "sp-blockchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"log",
@@ -10558,7 +10590,7 @@ dependencies = [
[[package]]
name = "sp-consensus"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"futures",
@@ -10576,7 +10608,7 @@ dependencies = [
[[package]]
name = "sp-consensus-babe"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"merlin",
@@ -10599,7 +10631,7 @@ dependencies = [
[[package]]
name = "sp-consensus-slots"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -10611,7 +10643,7 @@ dependencies = [
[[package]]
name = "sp-consensus-vrf"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -10624,7 +10656,7 @@ dependencies = [
[[package]]
name = "sp-core"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"base58",
@@ -10666,7 +10698,7 @@ dependencies = [
[[package]]
name = "sp-core-hashing"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"blake2",
"byteorder",
@@ -10680,7 +10712,7 @@ dependencies = [
[[package]]
name = "sp-core-hashing-proc-macro"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"proc-macro2",
"quote",
@@ -10691,7 +10723,7 @@ dependencies = [
[[package]]
name = "sp-database"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"kvdb",
"parking_lot 0.12.1",
@@ -10700,7 +10732,7 @@ dependencies = [
[[package]]
name = "sp-debug-derive"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"proc-macro2",
"quote",
@@ -10710,7 +10742,7 @@ dependencies = [
[[package]]
name = "sp-externalities"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"environmental",
"parity-scale-codec",
@@ -10721,7 +10753,7 @@ dependencies = [
[[package]]
name = "sp-finality-grandpa"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"finality-grandpa",
"log",
@@ -10739,7 +10771,7 @@ dependencies = [
[[package]]
name = "sp-inherents"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"impl-trait-for-tuples",
@@ -10753,7 +10785,7 @@ dependencies = [
[[package]]
name = "sp-io"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"bytes",
"ed25519",
@@ -10778,7 +10810,7 @@ dependencies = [
[[package]]
name = "sp-keyring"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"lazy_static",
"sp-core",
@@ -10789,7 +10821,7 @@ dependencies = [
[[package]]
name = "sp-keystore"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"futures",
@@ -10806,7 +10838,7 @@ dependencies = [
[[package]]
name = "sp-maybe-compressed-blob"
version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"thiserror",
"zstd",
@@ -10815,7 +10847,7 @@ dependencies = [
[[package]]
name = "sp-mmr-primitives"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"ckb-merkle-mountain-range",
"log",
@@ -10833,7 +10865,7 @@ dependencies = [
[[package]]
name = "sp-npos-elections"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -10847,7 +10879,7 @@ dependencies = [
[[package]]
name = "sp-offchain"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"sp-api",
"sp-core",
@@ -10857,7 +10889,7 @@ dependencies = [
[[package]]
name = "sp-panic-handler"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"backtrace",
"lazy_static",
@@ -10867,7 +10899,7 @@ dependencies = [
[[package]]
name = "sp-rpc"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"rustc-hash",
"serde",
@@ -10877,7 +10909,7 @@ dependencies = [
[[package]]
name = "sp-runtime"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"either",
"hash256-std-hasher",
@@ -10899,7 +10931,7 @@ dependencies = [
[[package]]
name = "sp-runtime-interface"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"bytes",
"impl-trait-for-tuples",
@@ -10917,7 +10949,7 @@ dependencies = [
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"Inflector",
"proc-macro-crate",
@@ -10929,7 +10961,7 @@ dependencies = [
[[package]]
name = "sp-session"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -10943,7 +10975,7 @@ dependencies = [
[[package]]
name = "sp-staking"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -10955,7 +10987,7 @@ dependencies = [
[[package]]
name = "sp-state-machine"
version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"hash-db",
"log",
@@ -10975,12 +11007,12 @@ dependencies = [
[[package]]
name = "sp-std"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
[[package]]
name = "sp-storage"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -10993,7 +11025,7 @@ dependencies = [
[[package]]
name = "sp-timestamp"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"futures-timer",
@@ -11008,7 +11040,7 @@ dependencies = [
[[package]]
name = "sp-tracing"
version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"sp-std",
@@ -11020,7 +11052,7 @@ dependencies = [
[[package]]
name = "sp-transaction-pool"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"sp-api",
"sp-runtime",
@@ -11029,7 +11061,7 @@ dependencies = [
[[package]]
name = "sp-transaction-storage-proof"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"log",
@@ -11045,7 +11077,7 @@ dependencies = [
[[package]]
name = "sp-trie"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"ahash 0.7.6",
"hash-db",
@@ -11068,7 +11100,7 @@ dependencies = [
[[package]]
name = "sp-version"
version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -11085,7 +11117,7 @@ dependencies = [
[[package]]
name = "sp-version-proc-macro"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"proc-macro2",
@@ -11096,7 +11128,7 @@ dependencies = [
[[package]]
name = "sp-wasm-interface"
version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"impl-trait-for-tuples",
"log",
@@ -11109,7 +11141,7 @@ dependencies = [
[[package]]
name = "sp-weights"
version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -11342,7 +11374,7 @@ dependencies = [
[[package]]
name = "substrate-build-script-utils"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"platforms",
]
@@ -11350,7 +11382,7 @@ dependencies = [
[[package]]
name = "substrate-frame-rpc-system"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"frame-system-rpc-runtime-api",
"futures",
@@ -11369,7 +11401,7 @@ dependencies = [
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"hyper",
"log",
@@ -11381,7 +11413,7 @@ dependencies = [
[[package]]
name = "substrate-rpc-client"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"async-trait",
"jsonrpsee",
@@ -11394,7 +11426,7 @@ dependencies = [
[[package]]
name = "substrate-state-trie-migration-rpc"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"jsonrpsee",
"log",
@@ -11413,7 +11445,7 @@ dependencies = [
[[package]]
name = "substrate-test-client"
version = "2.0.1"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"array-bytes",
"async-trait",
@@ -11439,7 +11471,7 @@ dependencies = [
[[package]]
name = "substrate-test-utils"
version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"futures",
"substrate-test-utils-derive",
@@ -11449,7 +11481,7 @@ dependencies = [
[[package]]
name = "substrate-test-utils-derive"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -11460,7 +11492,7 @@ dependencies = [
[[package]]
name = "substrate-wasm-builder"
version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"ansi_term",
"build-helper",
@@ -12261,7 +12293,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
[[package]]
name = "try-runtime-cli"
version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#355e4a9c87f85637185c0852bda9aeb3db404b6d"
+source = "git+https://github.com/paritytech/substrate?branch=master#8b4331c27bba6d9f178b8be093e39153350b9be8"
dependencies = [
"clap 4.0.15",
"frame-remote-externalities",
@@ -12357,7 +12389,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
dependencies = [
"cfg-if",
"digest 0.10.3",
- "rand 0.7.3",
+ "rand 0.8.5",
"static_assertions",
]
@@ -12659,9 +12691,9 @@ dependencies = [
[[package]]
name = "wasm-opt"
-version = "0.110.2"
+version = "0.111.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b68e8037b4daf711393f4be2056246d12d975651b14d581520ad5d1f19219cec"
+checksum = "84a303793cbc01fb96551badfc7367db6007396bba6bac97936b3c8b6f7fdb41"
dependencies = [
"anyhow",
"libc",
@@ -12675,9 +12707,9 @@ dependencies = [
[[package]]
name = "wasm-opt-cxx-sys"
-version = "0.110.2"
+version = "0.111.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91adbad477e97bba3fbd21dd7bfb594e7ad5ceb9169ab1c93ab9cb0ada636b6f"
+checksum = "d9c9deb56f8a9f2ec177b3bd642a8205621835944ed5da55f2388ef216aca5a4"
dependencies = [
"anyhow",
"cxx",
@@ -12687,9 +12719,9 @@ dependencies = [
[[package]]
name = "wasm-opt-sys"
-version = "0.110.2"
+version = "0.111.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec4fa5a322a4e6ac22fd141f498d56afbdbf9df5debeac32380d2dcaa3e06941"
+checksum = "4432e28b542738a9776cedf92e8a99d8991c7b4667ee2c7ccddfb479dd2856a7"
dependencies = [
"anyhow",
"cc",
diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml
index 2fbc67eb974d..89e783521a4c 100644
--- a/runtime/common/Cargo.toml
+++ b/runtime/common/Cargo.toml
@@ -28,6 +28,7 @@ sp-npos-elections = { git = "https://github.com/paritytech/substrate", branch =
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 }
+pallet-fast-unstake = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
pallet-staking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
@@ -84,6 +85,7 @@ std = [
"pallet-balances/std",
"pallet-beefy-mmr/std",
"pallet-session/std",
+ "pallet-fast-unstake/std",
"pallet-staking/std",
"pallet-staking-reward-fn/std",
"pallet-timestamp/std",
@@ -111,6 +113,7 @@ runtime-benchmarks = [
"runtime-parachains/runtime-benchmarks",
"pallet-babe/runtime-benchmarks",
"pallet-bags-list/runtime-benchmarks",
+ "pallet-fast-unstake/runtime-benchmarks"
]
try-runtime = [
"runtime-parachains/try-runtime",
@@ -122,4 +125,5 @@ try-runtime = [
"pallet-vesting/try-runtime",
"pallet-transaction-payment/try-runtime",
"pallet-treasury/try-runtime",
+ "pallet-fast-unstake/try-runtime",
]
diff --git a/runtime/common/src/lib.rs b/runtime/common/src/lib.rs
index 6f8818e87e00..5952d11961a3 100644
--- a/runtime/common/src/lib.rs
+++ b/runtime/common/src/lib.rs
@@ -30,6 +30,8 @@ pub mod purchase;
pub mod slot_range;
pub mod slots;
pub mod traits;
+#[cfg(feature = "try-runtime")]
+pub mod try_runtime;
pub mod xcm_sender;
#[cfg(test)]
diff --git a/runtime/common/src/try_runtime.rs b/runtime/common/src/try_runtime.rs
new file mode 100644
index 000000000000..508a2a069116
--- /dev/null
+++ b/runtime/common/src/try_runtime.rs
@@ -0,0 +1,107 @@
+// Copyright 2023 Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Polkadot is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Polkadot. If not, see .
+
+//! Common try-runtime only tests for runtimes.
+
+use frame_support::{
+ dispatch::RawOrigin,
+ traits::{Get, Hooks},
+};
+use pallet_fast_unstake::{Pallet as FastUnstake, *};
+use pallet_staking::*;
+use sp_std::{collections::btree_set::BTreeSet, prelude::*};
+
+/// register all inactive nominators for fast-unstake, and progress until they have all been
+/// processed.
+pub fn migrate_all_inactive_nominators()
+where
+ ::RuntimeEvent: TryInto>,
+{
+ let mut unstaked_ok = 0;
+ let mut unstaked_err = 0;
+ let mut unstaked_slashed = 0;
+
+ let all_stakers = Ledger::::iter().map(|(ctrl, l)| (ctrl, l.stash)).collect::>();
+ let mut all_exposed = BTreeSet::new();
+ ErasStakers::::iter().for_each(|(_, val, expo)| {
+ all_exposed.insert(val);
+ all_exposed.extend(expo.others.iter().map(|ie| ie.who.clone()))
+ });
+
+ let eligible = all_stakers
+ .iter()
+ .filter_map(|(ctrl, stash)| all_exposed.contains(stash).then_some(ctrl))
+ .collect::>();
+
+ log::info!(
+ target: "runtime::test",
+ "registering {} out of {} stakers for fast-unstake",
+ eligible.len(),
+ all_stakers.len()
+ );
+ for ctrl in eligible {
+ if let Err(why) =
+ FastUnstake::::register_fast_unstake(RawOrigin::Signed(ctrl.clone()).into())
+ {
+ log::warn!(target: "runtime::test", "failed to register {:?} due to {:?}", ctrl, why);
+ }
+ }
+
+ log::info!(
+ target: "runtime::test",
+ "registered {} successfully, starting at {:?}.",
+ Queue::::count(),
+ frame_system::Pallet::::block_number(),
+ );
+ while Queue::::count() != 0 || Head::::get().is_some() {
+ let now = frame_system::Pallet::::block_number();
+ let weight = ::BlockWeights::get().max_block;
+ let consumed = FastUnstake::::on_idle(now, weight);
+ log::debug!(target: "runtime::test", "consumed {:?} ({})", consumed, consumed.ref_time() as f32 / weight.ref_time() as f32);
+
+ frame_system::Pallet::::read_events_no_consensus()
+ .into_iter()
+ .map(|r| r.event)
+ .filter_map(|e| {
+ let maybe_fast_unstake_event: Option> =
+ e.try_into().ok();
+ maybe_fast_unstake_event
+ })
+ .for_each(|e: pallet_fast_unstake::Event| match e {
+ pallet_fast_unstake::Event::::Unstaked { result, .. } =>
+ if result.is_ok() {
+ unstaked_ok += 1;
+ } else {
+ unstaked_err += 1
+ },
+ pallet_fast_unstake::Event::::Slashed { .. } => unstaked_slashed += 1,
+ pallet_fast_unstake::Event::::InternalError => unreachable!(),
+ _ => {},
+ });
+
+ if now % 100u32.into() == sp_runtime::traits::Zero::zero() {
+ log::info!(
+ target: "runtime::test",
+ "status: ok {}, err {}, slash {}",
+ unstaked_ok,
+ unstaked_err,
+ unstaked_slashed,
+ );
+ }
+
+ frame_system::Pallet::::reset_events();
+ }
+}
diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs
index d45aff4517bf..6bf23b03cf96 100644
--- a/runtime/kusama/src/lib.rs
+++ b/runtime/kusama/src/lib.rs
@@ -608,8 +608,11 @@ impl pallet_fast_unstake::Config for Runtime {
EnsureRoot,
pallet_collective::EnsureProportionAtLeast,
>;
- type WeightInfo = weights::pallet_fast_unstake::WeightInfo;
type Staking = Staking;
+ type MaxErasToCheckPerBlock = ConstU32<1>;
+ #[cfg(feature = "runtime-benchmarks")]
+ type MaxBackersPerValidator = MaxNominatorRewardedPerValidator;
+ type WeightInfo = weights::pallet_fast_unstake::WeightInfo;
}
parameter_types! {
@@ -2147,6 +2150,19 @@ mod multiplier_tests {
})
}
+ #[test]
+ fn fast_unstake_estimate() {
+ use pallet_fast_unstake::WeightInfo;
+ let block_time = BlockWeights::get().max_block.ref_time() as f32;
+ let on_idle = weights::pallet_fast_unstake::WeightInfo::::on_idle_check(
+ 1000,
+ ::BatchSize::get(),
+ )
+ .ref_time() as f32;
+ println!("ratio of block weight for full batch fast-unstake {}", on_idle / block_time);
+ assert!(on_idle / block_time <= 0.5f32)
+ }
+
#[test]
#[ignore]
fn multiplier_growth_simulator() {
@@ -2265,4 +2281,36 @@ mod remote_tests {
.unwrap();
ext.execute_with(|| Runtime::on_runtime_upgrade(UpgradeCheckSelect::PreAndPost));
}
+
+ #[tokio::test]
+ async fn try_fast_unstake_all() {
+ if var("RUN_MIGRATION_TESTS").is_err() {
+ return
+ }
+
+ sp_tracing::try_init_simple();
+ let transport: Transport =
+ var("WS").unwrap_or("wss://kusama-rpc.polkadot.io:443".to_string()).into();
+ let maybe_state_snapshot: Option = var("SNAP").map(|s| s.into()).ok();
+ let mut ext = Builder::::default()
+ .mode(if let Some(state_snapshot) = maybe_state_snapshot {
+ Mode::OfflineOrElseOnline(
+ OfflineConfig { state_snapshot: state_snapshot.clone() },
+ OnlineConfig {
+ transport,
+ state_snapshot: Some(state_snapshot),
+ ..Default::default()
+ },
+ )
+ } else {
+ Mode::Online(OnlineConfig { transport, ..Default::default() })
+ })
+ .build()
+ .await
+ .unwrap();
+ ext.execute_with(|| {
+ pallet_fast_unstake::ErasToCheckPerBlock::::put(1);
+ runtime_common::try_runtime::migrate_all_inactive_nominators::()
+ });
+ }
}
diff --git a/runtime/kusama/src/weights/pallet_fast_unstake.rs b/runtime/kusama/src/weights/pallet_fast_unstake.rs
index bb1c3cb3aa86..014902cd0419 100644
--- a/runtime/kusama/src/weights/pallet_fast_unstake.rs
+++ b/runtime/kusama/src/weights/pallet_fast_unstake.rs
@@ -16,21 +16,23 @@
//! Autogenerated weights for `pallet_fast_unstake`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-01-23, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
-//! HOSTNAME: `runner-b3zmxxc-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! DATE: 2023-01-15, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024
// Executed Command:
-// ./target/production/polkadot
+// /home/benchbot/cargo_target_dir/production/polkadot
// benchmark
// pallet
-// --chain=kusama-dev
// --steps=50
// --repeat=20
-// --pallet=pallet_fast_unstake
// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json
+// --pallet=pallet-fast-unstake
+// --chain=kusama-dev
// --header=./file_header.txt
// --output=./runtime/kusama/src/weights/
@@ -46,40 +48,48 @@ pub struct WeightInfo(PhantomData);
impl pallet_fast_unstake::WeightInfo for WeightInfo {
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking ValidatorCount (r:1 w:0)
- // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: FastUnstake Head (r:1 w:1)
+ // Storage: FastUnstake CounterForQueue (r:1 w:0)
+ // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: Staking CurrentEra (r:1 w:0)
- // Storage: Staking SlashingSpans (r:64 w:0)
- // Storage: Staking Bonded (r:64 w:64)
- // Storage: Staking Validators (r:64 w:0)
- // Storage: Staking Nominators (r:64 w:0)
- // Storage: System Account (r:64 w:64)
- // Storage: Balances Locks (r:64 w:64)
- // Storage: Staking Ledger (r:0 w:64)
- // Storage: Staking Payee (r:0 w:64)
- fn on_idle_unstake() -> Weight {
- // Minimum execution time: 2_547_167 nanoseconds.
- Weight::from_ref_time(2_569_186_000)
- .saturating_add(T::DbWeight::get().reads(389))
- .saturating_add(T::DbWeight::get().writes(321))
+ // Storage: Staking SlashingSpans (r:1 w:0)
+ // Storage: Staking Bonded (r:1 w:1)
+ // Storage: Staking Validators (r:1 w:0)
+ // Storage: Staking Nominators (r:1 w:0)
+ // Storage: System Account (r:1 w:1)
+ // Storage: Balances Locks (r:1 w:1)
+ // Storage: Staking Ledger (r:0 w:1)
+ // Storage: Staking Payee (r:0 w:1)
+ /// The range of component `b` is `[1, 64]`.
+ fn on_idle_unstake(b: u32, ) -> Weight {
+ // Minimum execution time: 77_225 nanoseconds.
+ Weight::from_ref_time(45_851_915)
+ // Standard Error: 27_205
+ .saturating_add(Weight::from_ref_time(34_256_381).saturating_mul(b.into()))
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(b.into())))
+ .saturating_add(T::DbWeight::get().writes(1))
+ .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(b.into())))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking ValidatorCount (r:1 w:0)
- // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: FastUnstake Head (r:1 w:1)
- // Storage: FastUnstake Queue (r:65 w:64)
- // Storage: FastUnstake CounterForQueue (r:1 w:1)
+ // Storage: FastUnstake CounterForQueue (r:1 w:0)
+ // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: Staking CurrentEra (r:1 w:0)
- // Storage: Staking ErasStakers (r:56 w:0)
- /// The range of component `x` is `[28, 3584]`.
- fn on_idle_check(x: u32, ) -> Weight {
- // Minimum execution time: 25_160_452 nanoseconds.
- Weight::from_ref_time(25_413_896_000)
- // Standard Error: 556_413
- .saturating_add(Weight::from_ref_time(700_987_201).saturating_mul(x.into()))
- .saturating_add(T::DbWeight::get().reads(85))
- .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into())))
- .saturating_add(T::DbWeight::get().writes(66))
+ // Storage: Staking ErasStakers (r:2 w:0)
+ /// The range of component `v` is `[1, 256]`.
+ /// The range of component `b` is `[1, 64]`.
+ fn on_idle_check(v: u32, b: u32, ) -> Weight {
+ // Minimum execution time: 1_671_682 nanoseconds.
+ Weight::from_ref_time(1_683_909_000)
+ // Standard Error: 16_637_473
+ .saturating_add(Weight::from_ref_time(533_652_266).saturating_mul(v.into()))
+ // Standard Error: 66_568_424
+ .saturating_add(Weight::from_ref_time(2_085_678_765).saturating_mul(b.into()))
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into())))
+ .saturating_add(T::DbWeight::get().writes(1))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking Ledger (r:1 w:1)
@@ -89,17 +99,17 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo
// Storage: Staking Validators (r:1 w:0)
// Storage: Staking Nominators (r:1 w:1)
// Storage: Staking CounterForNominators (r:1 w:1)
- // Storage: VoterList ListNodes (r:2 w:2)
+ // Storage: VoterList ListNodes (r:1 w:1)
// Storage: VoterList ListBags (r:1 w:1)
// Storage: VoterList CounterForListNodes (r:1 w:1)
// Storage: Staking CurrentEra (r:1 w:0)
// Storage: Balances Locks (r:1 w:1)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
fn register_fast_unstake() -> Weight {
- // Minimum execution time: 156_147 nanoseconds.
- Weight::from_ref_time(158_284_000)
- .saturating_add(T::DbWeight::get().reads(15))
- .saturating_add(T::DbWeight::get().writes(10))
+ // Minimum execution time: 106_509 nanoseconds.
+ Weight::from_ref_time(107_537_000)
+ .saturating_add(T::DbWeight::get().reads(14))
+ .saturating_add(T::DbWeight::get().writes(9))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking Ledger (r:1 w:0)
@@ -107,15 +117,15 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo
// Storage: FastUnstake Head (r:1 w:0)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
fn deregister() -> Weight {
- // Minimum execution time: 62_835 nanoseconds.
- Weight::from_ref_time(65_108_000)
+ // Minimum execution time: 43_328 nanoseconds.
+ Weight::from_ref_time(43_904_000)
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:0 w:1)
fn control() -> Weight {
- // Minimum execution time: 3_747 nanoseconds.
- Weight::from_ref_time(4_132_000)
+ // Minimum execution time: 4_153 nanoseconds.
+ Weight::from_ref_time(4_337_000)
.saturating_add(T::DbWeight::get().writes(1))
}
}
diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs
index dc7e28dc2943..d8556b5bfcd8 100644
--- a/runtime/polkadot/src/lib.rs
+++ b/runtime/polkadot/src/lib.rs
@@ -619,14 +619,17 @@ impl pallet_staking::Config for Runtime {
impl pallet_fast_unstake::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type Currency = Balances;
- type BatchSize = frame_support::traits::ConstU32<64>;
+ type BatchSize = frame_support::traits::ConstU32<16>;
type Deposit = frame_support::traits::ConstU128<{ UNITS }>;
type ControlOrigin = EitherOfDiverse<
EnsureRoot,
pallet_collective::EnsureProportionAtLeast,
>;
- type WeightInfo = weights::pallet_fast_unstake::WeightInfo;
type Staking = Staking;
+ type MaxErasToCheckPerBlock = ConstU32<1>;
+ #[cfg(feature = "runtime-benchmarks")]
+ type MaxBackersPerValidator = MaxNominatorRewardedPerValidator;
+ type WeightInfo = weights::pallet_fast_unstake::WeightInfo;
}
parameter_types! {
@@ -2343,6 +2346,19 @@ mod multiplier_tests {
})
}
+ #[test]
+ fn fast_unstake_estimate() {
+ use pallet_fast_unstake::WeightInfo;
+ let block_time = BlockWeights::get().max_block.ref_time() as f32;
+ let on_idle = weights::pallet_fast_unstake::WeightInfo::::on_idle_check(
+ 300,
+ ::BatchSize::get(),
+ )
+ .ref_time() as f32;
+ println!("ratio of block weight for full batch fast-unstake {}", on_idle / block_time);
+ assert!(on_idle / block_time <= 0.5f32)
+ }
+
#[test]
#[ignore]
fn multiplier_growth_simulator() {
@@ -2461,4 +2477,36 @@ mod remote_tests {
.unwrap();
ext.execute_with(|| Runtime::on_runtime_upgrade(UpgradeCheckSelect::PreAndPost));
}
+
+ #[tokio::test]
+ async fn try_fast_unstake_all() {
+ if var("RUN_MIGRATION_TESTS").is_err() {
+ return
+ }
+
+ sp_tracing::try_init_simple();
+ let transport: Transport =
+ var("WS").unwrap_or("wss://rpc.polkadot.io:443".to_string()).into();
+ let maybe_state_snapshot: Option = var("SNAP").map(|s| s.into()).ok();
+ let mut ext = Builder::::default()
+ .mode(if let Some(state_snapshot) = maybe_state_snapshot {
+ Mode::OfflineOrElseOnline(
+ OfflineConfig { state_snapshot: state_snapshot.clone() },
+ OnlineConfig {
+ transport,
+ state_snapshot: Some(state_snapshot),
+ ..Default::default()
+ },
+ )
+ } else {
+ Mode::Online(OnlineConfig { transport, ..Default::default() })
+ })
+ .build()
+ .await
+ .unwrap();
+ ext.execute_with(|| {
+ pallet_fast_unstake::ErasToCheckPerBlock::::put(1);
+ runtime_common::try_runtime::migrate_all_inactive_nominators::()
+ });
+ }
}
diff --git a/runtime/polkadot/src/weights/pallet_fast_unstake.rs b/runtime/polkadot/src/weights/pallet_fast_unstake.rs
index 12a51d8fc214..34aa2fd984cc 100644
--- a/runtime/polkadot/src/weights/pallet_fast_unstake.rs
+++ b/runtime/polkadot/src/weights/pallet_fast_unstake.rs
@@ -16,21 +16,23 @@
//! Autogenerated weights for `pallet_fast_unstake`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-01-23, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2023-01-25, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `runner-b3zmxxc-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("polkadot-dev"), DB CACHE: 1024
// Executed Command:
-// ./target/production/polkadot
+// target/production/polkadot
// benchmark
// pallet
-// --chain=polkadot-dev
// --steps=50
// --repeat=20
-// --pallet=pallet_fast_unstake
// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/builds/parity/mirrors/polkadot/.git/.artifacts/bench.json
+// --pallet=pallet-fast-unstake
+// --chain=polkadot-dev
// --header=./file_header.txt
// --output=./runtime/polkadot/src/weights/
@@ -46,40 +48,48 @@ pub struct WeightInfo(PhantomData);
impl pallet_fast_unstake::WeightInfo for WeightInfo {
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking ValidatorCount (r:1 w:0)
- // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: FastUnstake Head (r:1 w:1)
+ // Storage: FastUnstake CounterForQueue (r:1 w:0)
+ // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: Staking CurrentEra (r:1 w:0)
- // Storage: Staking SlashingSpans (r:64 w:0)
- // Storage: Staking Bonded (r:64 w:64)
- // Storage: Staking Validators (r:64 w:0)
- // Storage: Staking Nominators (r:64 w:0)
- // Storage: System Account (r:64 w:64)
- // Storage: Balances Locks (r:64 w:64)
- // Storage: Staking Ledger (r:0 w:64)
- // Storage: Staking Payee (r:0 w:64)
- fn on_idle_unstake() -> Weight {
- // Minimum execution time: 2_552_615 nanoseconds.
- Weight::from_ref_time(2_578_905_000)
- .saturating_add(T::DbWeight::get().reads(389))
- .saturating_add(T::DbWeight::get().writes(321))
+ // Storage: Staking SlashingSpans (r:1 w:0)
+ // Storage: Staking Bonded (r:1 w:1)
+ // Storage: Staking Validators (r:1 w:0)
+ // Storage: Staking Nominators (r:1 w:0)
+ // Storage: System Account (r:1 w:1)
+ // Storage: Balances Locks (r:1 w:1)
+ // Storage: Staking Ledger (r:0 w:1)
+ // Storage: Staking Payee (r:0 w:1)
+ /// The range of component `b` is `[1, 16]`.
+ fn on_idle_unstake(b: u32, ) -> Weight {
+ // Minimum execution time: 83_164 nanoseconds.
+ Weight::from_ref_time(49_648_955)
+ // Standard Error: 32_056
+ .saturating_add(Weight::from_ref_time(39_756_465).saturating_mul(b.into()))
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(b.into())))
+ .saturating_add(T::DbWeight::get().writes(1))
+ .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(b.into())))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking ValidatorCount (r:1 w:0)
- // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: FastUnstake Head (r:1 w:1)
- // Storage: FastUnstake Queue (r:65 w:64)
- // Storage: FastUnstake CounterForQueue (r:1 w:1)
+ // Storage: FastUnstake CounterForQueue (r:1 w:0)
+ // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: Staking CurrentEra (r:1 w:0)
- // Storage: Staking ErasStakers (r:56 w:0)
- /// The range of component `x` is `[28, 3584]`.
- fn on_idle_check(x: u32, ) -> Weight {
- // Minimum execution time: 30_830_116 nanoseconds.
- Weight::from_ref_time(30_984_473_000)
- // Standard Error: 684_520
- .saturating_add(Weight::from_ref_time(904_651_114).saturating_mul(x.into()))
- .saturating_add(T::DbWeight::get().reads(85))
- .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into())))
- .saturating_add(T::DbWeight::get().writes(66))
+ // Storage: Staking ErasStakers (r:2 w:0)
+ /// The range of component `v` is `[1, 256]`.
+ /// The range of component `b` is `[1, 16]`.
+ fn on_idle_check(v: u32, b: u32, ) -> Weight {
+ // Minimum execution time: 717_323 nanoseconds.
+ Weight::from_ref_time(720_850_000)
+ // Standard Error: 6_820_833
+ .saturating_add(Weight::from_ref_time(227_516_069).saturating_mul(v.into()))
+ // Standard Error: 109_453_890
+ .saturating_add(Weight::from_ref_time(3_407_382_031).saturating_mul(b.into()))
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into())))
+ .saturating_add(T::DbWeight::get().writes(1))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking Ledger (r:1 w:1)
@@ -89,14 +99,15 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo
// Storage: Staking Validators (r:1 w:0)
// Storage: Staking Nominators (r:1 w:1)
// Storage: Staking CounterForNominators (r:1 w:1)
- // Storage: VoterList ListNodes (r:3 w:3)
+ // Storage: VoterList ListNodes (r:2 w:2)
+ // Storage: VoterList ListBags (r:1 w:1)
// Storage: VoterList CounterForListNodes (r:1 w:1)
// Storage: Staking CurrentEra (r:1 w:0)
// Storage: Balances Locks (r:1 w:1)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
fn register_fast_unstake() -> Weight {
- // Minimum execution time: 154_100 nanoseconds.
- Weight::from_ref_time(157_462_000)
+ // Minimum execution time: 117_697 nanoseconds.
+ Weight::from_ref_time(121_765_000)
.saturating_add(T::DbWeight::get().reads(15))
.saturating_add(T::DbWeight::get().writes(10))
}
@@ -106,15 +117,15 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo
// Storage: FastUnstake Head (r:1 w:0)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
fn deregister() -> Weight {
- // Minimum execution time: 66_160 nanoseconds.
- Weight::from_ref_time(72_766_000)
+ // Minimum execution time: 43_159 nanoseconds.
+ Weight::from_ref_time(44_550_000)
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:0 w:1)
fn control() -> Weight {
- // Minimum execution time: 4_055 nanoseconds.
- Weight::from_ref_time(4_245_000)
+ // Minimum execution time: 3_898 nanoseconds.
+ Weight::from_ref_time(4_344_000)
.saturating_add(T::DbWeight::get().writes(1))
}
}
diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs
index 738b9611a2e3..b11b3ced3376 100644
--- a/runtime/westend/src/lib.rs
+++ b/runtime/westend/src/lib.rs
@@ -532,8 +532,11 @@ impl pallet_fast_unstake::Config for Runtime {
type BatchSize = frame_support::traits::ConstU32<64>;
type Deposit = frame_support::traits::ConstU128<{ UNITS }>;
type ControlOrigin = EnsureRoot;
- type WeightInfo = weights::pallet_fast_unstake::WeightInfo;
type Staking = Staking;
+ type MaxErasToCheckPerBlock = ConstU32<1>;
+ #[cfg(feature = "runtime-benchmarks")]
+ type MaxBackersPerValidator = MaxNominatorRewardedPerValidator;
+ type WeightInfo = weights::pallet_fast_unstake::WeightInfo;
}
parameter_types! {
diff --git a/runtime/westend/src/weights/pallet_fast_unstake.rs b/runtime/westend/src/weights/pallet_fast_unstake.rs
index cca94d0a2b7e..195d4a2892fc 100644
--- a/runtime/westend/src/weights/pallet_fast_unstake.rs
+++ b/runtime/westend/src/weights/pallet_fast_unstake.rs
@@ -46,40 +46,48 @@ pub struct WeightInfo(PhantomData);
impl pallet_fast_unstake::WeightInfo for WeightInfo {
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking ValidatorCount (r:1 w:0)
- // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: FastUnstake Head (r:1 w:1)
+ // Storage: FastUnstake CounterForQueue (r:1 w:0)
+ // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: Staking CurrentEra (r:1 w:0)
- // Storage: Staking SlashingSpans (r:64 w:0)
- // Storage: Staking Bonded (r:64 w:64)
- // Storage: Staking Validators (r:64 w:0)
- // Storage: Staking Nominators (r:64 w:0)
- // Storage: System Account (r:64 w:64)
- // Storage: Balances Locks (r:64 w:64)
- // Storage: Staking Ledger (r:0 w:64)
- // Storage: Staking Payee (r:0 w:64)
- fn on_idle_unstake() -> Weight {
- // Minimum execution time: 2_522_692 nanoseconds.
- Weight::from_ref_time(2_542_008_000)
- .saturating_add(T::DbWeight::get().reads(389))
- .saturating_add(T::DbWeight::get().writes(321))
+ // Storage: Staking SlashingSpans (r:1 w:0)
+ // Storage: Staking Bonded (r:1 w:1)
+ // Storage: Staking Validators (r:1 w:0)
+ // Storage: Staking Nominators (r:1 w:0)
+ // Storage: System Account (r:1 w:1)
+ // Storage: Balances Locks (r:1 w:1)
+ // Storage: Staking Ledger (r:0 w:1)
+ // Storage: Staking Payee (r:0 w:1)
+ /// The range of component `b` is `[1, 32]`.
+ fn on_idle_unstake(b: u32, ) -> Weight {
+ // Minimum execution time: 106_411 nanoseconds.
+ Weight::from_ref_time(77_651_621)
+ // Standard Error: 33_723
+ .saturating_add(Weight::from_ref_time(37_782_150).saturating_mul(b.into()))
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(b.into())))
+ .saturating_add(T::DbWeight::get().writes(1))
+ .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(b.into())))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking ValidatorCount (r:1 w:0)
- // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: FastUnstake Head (r:1 w:1)
- // Storage: FastUnstake Queue (r:65 w:64)
- // Storage: FastUnstake CounterForQueue (r:1 w:1)
+ // Storage: FastUnstake CounterForQueue (r:1 w:0)
+ // Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
// Storage: Staking CurrentEra (r:1 w:0)
- // Storage: Staking ErasStakers (r:4 w:0)
- /// The range of component `x` is `[2, 256]`.
- fn on_idle_check(x: u32, ) -> Weight {
- // Minimum execution time: 2_657_214 nanoseconds.
- Weight::from_ref_time(2_672_893_000)
- // Standard Error: 548_838
- .saturating_add(Weight::from_ref_time(868_095_065).saturating_mul(x.into()))
- .saturating_add(T::DbWeight::get().reads(72))
- .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into())))
- .saturating_add(T::DbWeight::get().writes(66))
+ // Storage: Staking ErasStakers (r:2 w:0)
+ /// The range of component `v` is `[1, 1000]`.
+ /// The range of component `b` is `[1, 32]`.
+ fn on_idle_check(v: u32, b: u32, ) -> Weight {
+ // Minimum execution time: 852_650 nanoseconds.
+ Weight::from_ref_time(856_265_000)
+ // Standard Error: 8_198_820
+ .saturating_add(Weight::from_ref_time(271_792_952).saturating_mul(v.into()))
+ // Standard Error: 256_629_920
+ .saturating_add(Weight::from_ref_time(7_991_342_711).saturating_mul(b.into()))
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into())))
+ .saturating_add(T::DbWeight::get().writes(1))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
// Storage: Staking Ledger (r:1 w:1)
@@ -96,8 +104,8 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo
// Storage: Balances Locks (r:1 w:1)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
fn register_fast_unstake() -> Weight {
- // Minimum execution time: 159_946 nanoseconds.
- Weight::from_ref_time(164_798_000)
+ // Minimum execution time: 154_157 nanoseconds.
+ Weight::from_ref_time(155_617_000)
.saturating_add(T::DbWeight::get().reads(15))
.saturating_add(T::DbWeight::get().writes(10))
}
@@ -107,15 +115,15 @@ impl pallet_fast_unstake::WeightInfo for WeightInfo
// Storage: FastUnstake Head (r:1 w:0)
// Storage: FastUnstake CounterForQueue (r:1 w:1)
fn deregister() -> Weight {
- // Minimum execution time: 67_054 nanoseconds.
- Weight::from_ref_time(70_067_000)
+ // Minimum execution time: 72_434 nanoseconds.
+ Weight::from_ref_time(75_710_000)
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2))
}
// Storage: FastUnstake ErasToCheckPerBlock (r:0 w:1)
fn control() -> Weight {
- // Minimum execution time: 4_535 nanoseconds.
- Weight::from_ref_time(4_750_000)
+ // Minimum execution time: 5_328 nanoseconds.
+ Weight::from_ref_time(5_522_000)
.saturating_add(T::DbWeight::get().writes(1))
}
}