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)) } }