diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index f999b9c61e697221b5ed6c47a82418427bb2ec62..21f42862322fbe579193f108c738f9e66e59291b 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/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/polkadot/runtime/common/Cargo.toml b/polkadot/runtime/common/Cargo.toml
index 2fbc67eb974d9c033b37fbf2d48a68216355f633..89e783521a4cd5ad6c383cc3564de9a24eae89b1 100644
--- a/polkadot/runtime/common/Cargo.toml
+++ b/polkadot/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/polkadot/runtime/common/src/lib.rs b/polkadot/runtime/common/src/lib.rs
index 6f8818e87e004107c8ec2af99683dba9ce7f34bf..5952d11961a3479c2c373f2c7d562a23fb286ff0 100644
--- a/polkadot/runtime/common/src/lib.rs
+++ b/polkadot/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/polkadot/runtime/common/src/try_runtime.rs b/polkadot/runtime/common/src/try_runtime.rs
new file mode 100644
index 0000000000000000000000000000000000000000..508a2a069116a36479ba9a7d4e73076de1fde048
--- /dev/null
+++ b/polkadot/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 <http://www.gnu.org/licenses/>.
+
+//! 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<T: pallet_fast_unstake::Config + pallet_staking::Config>()
+where
+	<T as frame_system::Config>::RuntimeEvent: TryInto<pallet_fast_unstake::Event<T>>,
+{
+	let mut unstaked_ok = 0;
+	let mut unstaked_err = 0;
+	let mut unstaked_slashed = 0;
+
+	let all_stakers = Ledger::<T>::iter().map(|(ctrl, l)| (ctrl, l.stash)).collect::<BTreeSet<_>>();
+	let mut all_exposed = BTreeSet::new();
+	ErasStakers::<T>::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::<Vec<_>>();
+
+	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::<T>::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::<T>::count(),
+		frame_system::Pallet::<T>::block_number(),
+	);
+	while Queue::<T>::count() != 0 || Head::<T>::get().is_some() {
+		let now = frame_system::Pallet::<T>::block_number();
+		let weight = <T as frame_system::Config>::BlockWeights::get().max_block;
+		let consumed = FastUnstake::<T>::on_idle(now, weight);
+		log::debug!(target: "runtime::test", "consumed {:?} ({})", consumed, consumed.ref_time() as f32 / weight.ref_time() as f32);
+
+		frame_system::Pallet::<T>::read_events_no_consensus()
+			.into_iter()
+			.map(|r| r.event)
+			.filter_map(|e| {
+				let maybe_fast_unstake_event: Option<pallet_fast_unstake::Event<T>> =
+					e.try_into().ok();
+				maybe_fast_unstake_event
+			})
+			.for_each(|e: pallet_fast_unstake::Event<T>| match e {
+				pallet_fast_unstake::Event::<T>::Unstaked { result, .. } =>
+					if result.is_ok() {
+						unstaked_ok += 1;
+					} else {
+						unstaked_err += 1
+					},
+				pallet_fast_unstake::Event::<T>::Slashed { .. } => unstaked_slashed += 1,
+				pallet_fast_unstake::Event::<T>::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::<T>::reset_events();
+	}
+}
diff --git a/polkadot/runtime/kusama/src/lib.rs b/polkadot/runtime/kusama/src/lib.rs
index c3cac3b0a0574e0c7a9321fcd595752e2da5bbf9..ab445e9e6427f2ab35d16b1986f4ef460cde82c8 100644
--- a/polkadot/runtime/kusama/src/lib.rs
+++ b/polkadot/runtime/kusama/src/lib.rs
@@ -607,8 +607,11 @@ impl pallet_fast_unstake::Config for Runtime {
 		EnsureRoot<AccountId>,
 		pallet_collective::EnsureProportionAtLeast<AccountId, CouncilCollective, 1, 2>,
 	>;
-	type WeightInfo = weights::pallet_fast_unstake::WeightInfo<Runtime>;
 	type Staking = Staking;
+	type MaxErasToCheckPerBlock = ConstU32<1>;
+	#[cfg(feature = "runtime-benchmarks")]
+	type MaxBackersPerValidator = MaxNominatorRewardedPerValidator;
+	type WeightInfo = weights::pallet_fast_unstake::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -2133,6 +2136,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::<Runtime>::on_idle_check(
+			1000,
+			<Runtime as pallet_fast_unstake::Config>::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() {
@@ -2251,4 +2267,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<SnapshotConfig> = var("SNAP").map(|s| s.into()).ok();
+		let mut ext = Builder::<Block>::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::<Runtime>::put(1);
+			runtime_common::try_runtime::migrate_all_inactive_nominators::<Runtime>()
+		});
+	}
 }
diff --git a/polkadot/runtime/kusama/src/weights/pallet_fast_unstake.rs b/polkadot/runtime/kusama/src/weights/pallet_fast_unstake.rs
index bb1c3cb3aa868d9efe830503035b52ea261a720a..014902cd04190eb07cc5e950c3d512649a67c5fa 100644
--- a/polkadot/runtime/kusama/src/weights/pallet_fast_unstake.rs
+++ b/polkadot/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<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T> {
 	// 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<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T>
 	// 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<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T>
 	// 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/polkadot/runtime/polkadot/src/lib.rs b/polkadot/runtime/polkadot/src/lib.rs
index 1e8a1649efe4f5bb3ee3d4767e6fa1a9a05b7468..60934aae7c329c8b4192458c56f2698b55612810 100644
--- a/polkadot/runtime/polkadot/src/lib.rs
+++ b/polkadot/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<AccountId>,
 		pallet_collective::EnsureProportionAtLeast<AccountId, CouncilCollective, 1, 2>,
 	>;
-	type WeightInfo = weights::pallet_fast_unstake::WeightInfo<Runtime>;
 	type Staking = Staking;
+	type MaxErasToCheckPerBlock = ConstU32<1>;
+	#[cfg(feature = "runtime-benchmarks")]
+	type MaxBackersPerValidator = MaxNominatorRewardedPerValidator;
+	type WeightInfo = weights::pallet_fast_unstake::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -2335,6 +2338,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::<Runtime>::on_idle_check(
+			300,
+			<Runtime as pallet_fast_unstake::Config>::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() {
@@ -2453,4 +2469,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<SnapshotConfig> = var("SNAP").map(|s| s.into()).ok();
+		let mut ext = Builder::<Block>::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::<Runtime>::put(1);
+			runtime_common::try_runtime::migrate_all_inactive_nominators::<Runtime>()
+		});
+	}
 }
diff --git a/polkadot/runtime/polkadot/src/weights/pallet_fast_unstake.rs b/polkadot/runtime/polkadot/src/weights/pallet_fast_unstake.rs
index 12a51d8fc214da0975e21697f211639a60d6609a..34aa2fd984cc2b11add30ee2bbee78d3737e9d18 100644
--- a/polkadot/runtime/polkadot/src/weights/pallet_fast_unstake.rs
+++ b/polkadot/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<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T> {
 	// 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<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T>
 	// 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<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T>
 	// 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/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs
index 632c38d2456825b5b9477f023dd52b533e11964b..c57e3657c4ef80287e14f0988fc24067bdbd5b5c 100644
--- a/polkadot/runtime/westend/src/lib.rs
+++ b/polkadot/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<AccountId>;
-	type WeightInfo = weights::pallet_fast_unstake::WeightInfo<Runtime>;
 	type Staking = Staking;
+	type MaxErasToCheckPerBlock = ConstU32<1>;
+	#[cfg(feature = "runtime-benchmarks")]
+	type MaxBackersPerValidator = MaxNominatorRewardedPerValidator;
+	type WeightInfo = weights::pallet_fast_unstake::WeightInfo<Runtime>;
 }
 
 parameter_types! {
diff --git a/polkadot/runtime/westend/src/weights/pallet_fast_unstake.rs b/polkadot/runtime/westend/src/weights/pallet_fast_unstake.rs
index cca94d0a2b7e93de31fc9f6104edcffe2caa66a5..195d4a2892fc87f1146c9685f4f9188d9ea69c9f 100644
--- a/polkadot/runtime/westend/src/weights/pallet_fast_unstake.rs
+++ b/polkadot/runtime/westend/src/weights/pallet_fast_unstake.rs
@@ -46,40 +46,48 @@ pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T> {
 	// 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<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T>
 	// 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<T: frame_system::Config> pallet_fast_unstake::WeightInfo for WeightInfo<T>
 	// 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))
 	}
 }