From a715a33ab9ac2b4dcbe834958430624bc0e78e10 Mon Sep 17 00:00:00 2001
From: Ross Bulat <ross@parity.io>
Date: Wed, 15 Mar 2023 22:29:40 +0800
Subject: [PATCH] polkadot companion: #13128 (Pools commission) (#6264)

* migrate to pools v4

* update types + weights

* rm BlockNumberToU32

* fmt

* fix

* update weights

* fix RocksDbWeight

* fix function name

* weights

* use 1 weight format

* update claim payout weights

* + as u64

* fix rebase + fmt

* add weights

* more weights

* ".git/.scripts/commands/bench/bench.sh" runtime polkadot-dev pallet_nomination_pools

* ".git/.scripts/commands/bench/bench.sh" runtime kusama-dev pallet_nomination_pools

* ".git/.scripts/commands/bench/bench.sh" runtime westend-dev pallet_nomination_pools

* fix

* fix

* ".git/.scripts/commands/bench/bench.sh" runtime polkadot-dev pallet_nomination_pools

* ".git/.scripts/commands/bench/bench.sh" runtime westend-dev pallet_nomination_pools

* ".git/.scripts/commands/bench/bench.sh" runtime kusama-dev pallet_nomination_pools

* add InitialGlobalMaxCommission

* revert

* global max commission migration generic

* remove StakingMigrationV11OldPallet

* initial global max commission

* adjust global max

* update lockfile for {"substrate"}

* Use master lock file

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* cargo update -p sp-io

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: parity-processbot <>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
---
 polkadot/Cargo.lock                           | 366 +++++++++---------
 polkadot/runtime/kusama/src/lib.rs            |  15 +-
 .../src/weights/pallet_nomination_pools.rs    | 312 +++++++++------
 polkadot/runtime/polkadot/src/lib.rs          |  15 +-
 .../src/weights/pallet_nomination_pools.rs    | 304 +++++++++------
 polkadot/runtime/westend/src/lib.rs           |  16 +-
 .../src/weights/pallet_nomination_pools.rs    | 308 +++++++++------
 7 files changed, 786 insertions(+), 550 deletions(-)

diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index 067716bb2ac..353f01148d4 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -466,7 +466,7 @@ dependencies = [
 [[package]]
 name = "binary-merkle-tree"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "hash-db",
  "log",
@@ -2295,7 +2295,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 [[package]]
 name = "fork-tree"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
 ]
@@ -2318,7 +2318,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
 [[package]]
 name = "frame-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-support-procedural",
@@ -2343,7 +2343,7 @@ dependencies = [
 [[package]]
 name = "frame-benchmarking-cli"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "Inflector",
  "array-bytes",
@@ -2390,7 +2390,7 @@ dependencies = [
 [[package]]
 name = "frame-election-provider-solution-type"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -2401,7 +2401,7 @@ dependencies = [
 [[package]]
 name = "frame-election-provider-support"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-election-provider-solution-type",
  "frame-support",
@@ -2418,7 +2418,7 @@ dependencies = [
 [[package]]
 name = "frame-executive"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -2447,7 +2447,7 @@ dependencies = [
 [[package]]
 name = "frame-remote-externalities"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "log",
@@ -2463,7 +2463,7 @@ dependencies = [
 [[package]]
 name = "frame-support"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "bitflags",
  "environmental",
@@ -2496,7 +2496,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "Inflector",
  "cfg-expr",
@@ -2511,7 +2511,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support-procedural-tools-derive",
  "proc-macro-crate",
@@ -2523,7 +2523,7 @@ dependencies = [
 [[package]]
 name = "frame-support-procedural-tools-derive"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2533,7 +2533,7 @@ dependencies = [
 [[package]]
 name = "frame-support-test"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -2557,7 +2557,7 @@ dependencies = [
 [[package]]
 name = "frame-support-test-pallet"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -2568,7 +2568,7 @@ dependencies = [
 [[package]]
 name = "frame-system"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "log",
@@ -2586,7 +2586,7 @@ dependencies = [
 [[package]]
 name = "frame-system-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -2601,7 +2601,7 @@ dependencies = [
 [[package]]
 name = "frame-system-rpc-runtime-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -2610,7 +2610,7 @@ dependencies = [
 [[package]]
 name = "frame-try-runtime"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -2792,7 +2792,7 @@ dependencies = [
 [[package]]
 name = "generate-bags"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "chrono",
  "frame-election-provider-support",
@@ -4571,7 +4571,7 @@ dependencies = [
 [[package]]
 name = "mmr-gadget"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "log",
@@ -4590,7 +4590,7 @@ dependencies = [
 [[package]]
 name = "mmr-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "anyhow",
  "jsonrpsee",
@@ -5152,7 +5152,7 @@ dependencies = [
 [[package]]
 name = "pallet-assets"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5167,7 +5167,7 @@ dependencies = [
 [[package]]
 name = "pallet-authority-discovery"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5183,7 +5183,7 @@ dependencies = [
 [[package]]
 name = "pallet-authorship"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5197,7 +5197,7 @@ dependencies = [
 [[package]]
 name = "pallet-babe"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5221,7 +5221,7 @@ dependencies = [
 [[package]]
 name = "pallet-bags-list"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5241,7 +5241,7 @@ dependencies = [
 [[package]]
 name = "pallet-bags-list-remote-tests"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-election-provider-support",
  "frame-remote-externalities",
@@ -5260,7 +5260,7 @@ dependencies = [
 [[package]]
 name = "pallet-balances"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5275,7 +5275,7 @@ dependencies = [
 [[package]]
 name = "pallet-beefy"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5294,7 +5294,7 @@ dependencies = [
 [[package]]
 name = "pallet-beefy-mmr"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "binary-merkle-tree",
@@ -5318,7 +5318,7 @@ dependencies = [
 [[package]]
 name = "pallet-bounties"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5336,7 +5336,7 @@ dependencies = [
 [[package]]
 name = "pallet-child-bounties"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5355,7 +5355,7 @@ dependencies = [
 [[package]]
 name = "pallet-collective"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5372,7 +5372,7 @@ dependencies = [
 [[package]]
 name = "pallet-conviction-voting"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "assert_matches",
  "frame-benchmarking",
@@ -5389,7 +5389,7 @@ dependencies = [
 [[package]]
 name = "pallet-democracy"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5407,7 +5407,7 @@ dependencies = [
 [[package]]
 name = "pallet-election-provider-multi-phase"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5430,7 +5430,7 @@ dependencies = [
 [[package]]
 name = "pallet-election-provider-support-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5443,7 +5443,7 @@ dependencies = [
 [[package]]
 name = "pallet-elections-phragmen"
 version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5461,7 +5461,7 @@ dependencies = [
 [[package]]
 name = "pallet-fast-unstake"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5479,7 +5479,7 @@ dependencies = [
 [[package]]
 name = "pallet-grandpa"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5502,7 +5502,7 @@ dependencies = [
 [[package]]
 name = "pallet-identity"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "enumflags2",
  "frame-benchmarking",
@@ -5518,7 +5518,7 @@ dependencies = [
 [[package]]
 name = "pallet-im-online"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5538,7 +5538,7 @@ dependencies = [
 [[package]]
 name = "pallet-indices"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5555,7 +5555,7 @@ dependencies = [
 [[package]]
 name = "pallet-membership"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5572,7 +5572,7 @@ dependencies = [
 [[package]]
 name = "pallet-mmr"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5589,7 +5589,7 @@ dependencies = [
 [[package]]
 name = "pallet-multisig"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5605,7 +5605,7 @@ dependencies = [
 [[package]]
 name = "pallet-nis"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5621,7 +5621,7 @@ dependencies = [
 [[package]]
 name = "pallet-nomination-pools"
 version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5638,7 +5638,7 @@ dependencies = [
 [[package]]
 name = "pallet-nomination-pools-benchmarking"
 version = "1.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5658,7 +5658,7 @@ dependencies = [
 [[package]]
 name = "pallet-nomination-pools-runtime-api"
 version = "1.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "pallet-nomination-pools",
  "parity-scale-codec",
@@ -5669,7 +5669,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5686,7 +5686,7 @@ dependencies = [
 [[package]]
 name = "pallet-offences-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5710,7 +5710,7 @@ dependencies = [
 [[package]]
 name = "pallet-preimage"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5727,7 +5727,7 @@ dependencies = [
 [[package]]
 name = "pallet-proxy"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5742,7 +5742,7 @@ dependencies = [
 [[package]]
 name = "pallet-ranked-collective"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5760,7 +5760,7 @@ dependencies = [
 [[package]]
 name = "pallet-recovery"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5775,7 +5775,7 @@ dependencies = [
 [[package]]
 name = "pallet-referenda"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "assert_matches",
  "frame-benchmarking",
@@ -5794,7 +5794,7 @@ dependencies = [
 [[package]]
 name = "pallet-scheduler"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5811,7 +5811,7 @@ dependencies = [
 [[package]]
 name = "pallet-session"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5832,7 +5832,7 @@ dependencies = [
 [[package]]
 name = "pallet-session-benchmarking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5848,7 +5848,7 @@ dependencies = [
 [[package]]
 name = "pallet-society"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5862,7 +5862,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-election-provider-support",
@@ -5885,7 +5885,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-curve"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -5896,7 +5896,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-reward-fn"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "log",
  "sp-arithmetic",
@@ -5905,7 +5905,7 @@ dependencies = [
 [[package]]
 name = "pallet-staking-runtime-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -5914,7 +5914,7 @@ dependencies = [
 [[package]]
 name = "pallet-state-trie-migration"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5931,7 +5931,7 @@ dependencies = [
 [[package]]
 name = "pallet-sudo"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5945,7 +5945,7 @@ dependencies = [
 [[package]]
 name = "pallet-timestamp"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5963,7 +5963,7 @@ dependencies = [
 [[package]]
 name = "pallet-tips"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -5982,7 +5982,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -5998,7 +5998,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "jsonrpsee",
  "pallet-transaction-payment-rpc-runtime-api",
@@ -6014,7 +6014,7 @@ dependencies = [
 [[package]]
 name = "pallet-transaction-payment-rpc-runtime-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "pallet-transaction-payment",
  "parity-scale-codec",
@@ -6026,7 +6026,7 @@ dependencies = [
 [[package]]
 name = "pallet-treasury"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -6043,7 +6043,7 @@ dependencies = [
 [[package]]
 name = "pallet-uniques"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -6058,7 +6058,7 @@ dependencies = [
 [[package]]
 name = "pallet-utility"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -6074,7 +6074,7 @@ dependencies = [
 [[package]]
 name = "pallet-vesting"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -6089,7 +6089,7 @@ dependencies = [
 [[package]]
 name = "pallet-whitelist"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -9014,7 +9014,7 @@ dependencies = [
 [[package]]
 name = "sc-allocator"
 version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "log",
  "sp-core",
@@ -9025,7 +9025,7 @@ dependencies = [
 [[package]]
 name = "sc-authority-discovery"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "futures",
@@ -9053,7 +9053,7 @@ dependencies = [
 [[package]]
 name = "sc-basic-authorship"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "futures-timer",
@@ -9076,7 +9076,7 @@ dependencies = [
 [[package]]
 name = "sc-block-builder"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "sc-client-api",
@@ -9091,7 +9091,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "memmap2",
  "sc-chain-spec-derive",
@@ -9110,7 +9110,7 @@ dependencies = [
 [[package]]
 name = "sc-chain-spec-derive"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -9121,7 +9121,7 @@ dependencies = [
 [[package]]
 name = "sc-cli"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "chrono",
@@ -9161,7 +9161,7 @@ dependencies = [
 [[package]]
 name = "sc-client-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "fnv",
  "futures",
@@ -9187,7 +9187,7 @@ dependencies = [
 [[package]]
 name = "sc-client-db"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "hash-db",
  "kvdb",
@@ -9213,7 +9213,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "futures",
@@ -9238,7 +9238,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "fork-tree",
@@ -9277,7 +9277,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-babe-rpc"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "jsonrpsee",
@@ -9299,7 +9299,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-beefy"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "async-trait",
@@ -9334,7 +9334,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-beefy-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "jsonrpsee",
@@ -9353,7 +9353,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-epochs"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "fork-tree",
  "parity-scale-codec",
@@ -9366,7 +9366,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-grandpa"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "ahash 0.8.2",
  "array-bytes",
@@ -9406,7 +9406,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-grandpa-rpc"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "finality-grandpa",
  "futures",
@@ -9426,7 +9426,7 @@ dependencies = [
 [[package]]
 name = "sc-consensus-slots"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "futures",
@@ -9449,7 +9449,7 @@ dependencies = [
 [[package]]
 name = "sc-executor"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "lru 0.8.1",
  "parity-scale-codec",
@@ -9473,7 +9473,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-common"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "sc-allocator",
  "sp-maybe-compressed-blob",
@@ -9486,7 +9486,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmi"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "log",
  "sc-allocator",
@@ -9499,7 +9499,7 @@ dependencies = [
 [[package]]
 name = "sc-executor-wasmtime"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "anyhow",
  "cfg-if",
@@ -9517,7 +9517,7 @@ dependencies = [
 [[package]]
 name = "sc-informant"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "ansi_term",
  "futures",
@@ -9533,7 +9533,7 @@ dependencies = [
 [[package]]
 name = "sc-keystore"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "async-trait",
@@ -9548,7 +9548,7 @@ dependencies = [
 [[package]]
 name = "sc-network"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "async-channel",
@@ -9592,7 +9592,7 @@ dependencies = [
 [[package]]
 name = "sc-network-bitswap"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "cid",
  "futures",
@@ -9612,7 +9612,7 @@ dependencies = [
 [[package]]
 name = "sc-network-common"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "async-trait",
@@ -9640,7 +9640,7 @@ dependencies = [
 [[package]]
 name = "sc-network-gossip"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "ahash 0.8.2",
  "futures",
@@ -9659,7 +9659,7 @@ dependencies = [
 [[package]]
 name = "sc-network-light"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "futures",
@@ -9681,7 +9681,7 @@ dependencies = [
 [[package]]
 name = "sc-network-sync"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "async-trait",
@@ -9715,7 +9715,7 @@ dependencies = [
 [[package]]
 name = "sc-network-transactions"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "futures",
@@ -9735,7 +9735,7 @@ dependencies = [
 [[package]]
 name = "sc-offchain"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "bytes",
@@ -9766,7 +9766,7 @@ dependencies = [
 [[package]]
 name = "sc-peerset"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "libp2p",
@@ -9779,7 +9779,7 @@ dependencies = [
 [[package]]
 name = "sc-proposer-metrics"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "log",
  "substrate-prometheus-endpoint",
@@ -9788,7 +9788,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "jsonrpsee",
@@ -9818,7 +9818,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-api"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "jsonrpsee",
  "parity-scale-codec",
@@ -9837,7 +9837,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-server"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "http",
  "jsonrpsee",
@@ -9852,7 +9852,7 @@ dependencies = [
 [[package]]
 name = "sc-rpc-spec-v2"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "futures",
@@ -9878,7 +9878,7 @@ dependencies = [
 [[package]]
 name = "sc-service"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "directories",
@@ -9944,7 +9944,7 @@ dependencies = [
 [[package]]
 name = "sc-state-db"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "log",
  "parity-scale-codec",
@@ -9955,7 +9955,7 @@ dependencies = [
 [[package]]
 name = "sc-storage-monitor"
 version = "0.1.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "clap 4.0.15",
  "fs4",
@@ -9971,7 +9971,7 @@ dependencies = [
 [[package]]
 name = "sc-sync-state-rpc"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "jsonrpsee",
  "parity-scale-codec",
@@ -9990,7 +9990,7 @@ dependencies = [
 [[package]]
 name = "sc-sysinfo"
 version = "6.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "libc",
@@ -10009,7 +10009,7 @@ dependencies = [
 [[package]]
 name = "sc-telemetry"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "chrono",
  "futures",
@@ -10028,7 +10028,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "ansi_term",
  "atty",
@@ -10059,7 +10059,7 @@ dependencies = [
 [[package]]
 name = "sc-tracing-proc-macro"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -10070,7 +10070,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "futures",
@@ -10097,7 +10097,7 @@ dependencies = [
 [[package]]
 name = "sc-transaction-pool-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "futures",
@@ -10111,7 +10111,7 @@ dependencies = [
 [[package]]
 name = "sc-utils"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-channel",
  "futures",
@@ -10626,7 +10626,7 @@ dependencies = [
 [[package]]
 name = "sp-api"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "hash-db",
  "log",
@@ -10644,7 +10644,7 @@ dependencies = [
 [[package]]
 name = "sp-api-proc-macro"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "Inflector",
  "blake2",
@@ -10658,7 +10658,7 @@ dependencies = [
 [[package]]
 name = "sp-application-crypto"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10671,7 +10671,7 @@ dependencies = [
 [[package]]
 name = "sp-arithmetic"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "integer-sqrt",
  "num-traits",
@@ -10685,7 +10685,7 @@ dependencies = [
 [[package]]
 name = "sp-authority-discovery"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10698,7 +10698,7 @@ dependencies = [
 [[package]]
 name = "sp-block-builder"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "sp-api",
@@ -10710,7 +10710,7 @@ dependencies = [
 [[package]]
 name = "sp-blockchain"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "log",
@@ -10728,7 +10728,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "futures",
@@ -10743,7 +10743,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-aura"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "parity-scale-codec",
@@ -10761,7 +10761,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-babe"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "merlin",
@@ -10784,7 +10784,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-beefy"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "lazy_static",
  "parity-scale-codec",
@@ -10803,7 +10803,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-grandpa"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "finality-grandpa",
  "log",
@@ -10821,7 +10821,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-slots"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10833,7 +10833,7 @@ dependencies = [
 [[package]]
 name = "sp-consensus-vrf"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -10846,7 +10846,7 @@ dependencies = [
 [[package]]
 name = "sp-core"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "base58",
@@ -10889,7 +10889,7 @@ dependencies = [
 [[package]]
 name = "sp-core-hashing"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "blake2b_simd",
  "byteorder",
@@ -10903,7 +10903,7 @@ dependencies = [
 [[package]]
 name = "sp-core-hashing-proc-macro"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -10914,7 +10914,7 @@ dependencies = [
 [[package]]
 name = "sp-database"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "kvdb",
  "parking_lot 0.12.1",
@@ -10923,7 +10923,7 @@ dependencies = [
 [[package]]
 name = "sp-debug-derive"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -10933,7 +10933,7 @@ dependencies = [
 [[package]]
 name = "sp-externalities"
 version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "environmental",
  "parity-scale-codec",
@@ -10944,7 +10944,7 @@ dependencies = [
 [[package]]
 name = "sp-inherents"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "impl-trait-for-tuples",
@@ -10959,7 +10959,7 @@ dependencies = [
 [[package]]
 name = "sp-io"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "bytes",
  "ed25519",
@@ -10984,7 +10984,7 @@ dependencies = [
 [[package]]
 name = "sp-keyring"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "lazy_static",
  "sp-core",
@@ -10995,7 +10995,7 @@ dependencies = [
 [[package]]
 name = "sp-keystore"
 version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "futures",
@@ -11012,7 +11012,7 @@ dependencies = [
 [[package]]
 name = "sp-maybe-compressed-blob"
 version = "4.1.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "thiserror",
  "zstd",
@@ -11021,7 +11021,7 @@ dependencies = [
 [[package]]
 name = "sp-mmr-primitives"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "ckb-merkle-mountain-range",
  "log",
@@ -11039,7 +11039,7 @@ dependencies = [
 [[package]]
 name = "sp-npos-elections"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -11053,7 +11053,7 @@ dependencies = [
 [[package]]
 name = "sp-offchain"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "sp-api",
  "sp-core",
@@ -11063,7 +11063,7 @@ dependencies = [
 [[package]]
 name = "sp-panic-handler"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "backtrace",
  "lazy_static",
@@ -11073,7 +11073,7 @@ dependencies = [
 [[package]]
 name = "sp-rpc"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "rustc-hash",
  "serde",
@@ -11083,7 +11083,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "either",
  "hash256-std-hasher",
@@ -11105,7 +11105,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "bytes",
  "impl-trait-for-tuples",
@@ -11123,7 +11123,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "Inflector",
  "proc-macro-crate",
@@ -11135,7 +11135,7 @@ dependencies = [
 [[package]]
 name = "sp-session"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -11149,7 +11149,7 @@ dependencies = [
 [[package]]
 name = "sp-staking"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -11161,7 +11161,7 @@ dependencies = [
 [[package]]
 name = "sp-state-machine"
 version = "0.13.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "hash-db",
  "log",
@@ -11181,12 +11181,12 @@ dependencies = [
 [[package]]
 name = "sp-std"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 
 [[package]]
 name = "sp-storage"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -11199,7 +11199,7 @@ dependencies = [
 [[package]]
 name = "sp-timestamp"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "futures-timer",
@@ -11214,7 +11214,7 @@ dependencies = [
 [[package]]
 name = "sp-tracing"
 version = "6.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "sp-std",
@@ -11226,7 +11226,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-pool"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "sp-api",
  "sp-runtime",
@@ -11235,7 +11235,7 @@ dependencies = [
 [[package]]
 name = "sp-transaction-storage-proof"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "log",
@@ -11251,7 +11251,7 @@ dependencies = [
 [[package]]
 name = "sp-trie"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "ahash 0.8.2",
  "hash-db",
@@ -11274,7 +11274,7 @@ dependencies = [
 [[package]]
 name = "sp-version"
 version = "5.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "impl-serde",
  "parity-scale-codec",
@@ -11291,7 +11291,7 @@ dependencies = [
 [[package]]
 name = "sp-version-proc-macro"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "proc-macro2",
@@ -11302,7 +11302,7 @@ dependencies = [
 [[package]]
 name = "sp-wasm-interface"
 version = "7.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "anyhow",
  "impl-trait-for-tuples",
@@ -11316,7 +11316,7 @@ dependencies = [
 [[package]]
 name = "sp-weights"
 version = "4.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "parity-scale-codec",
  "scale-info",
@@ -11536,7 +11536,7 @@ dependencies = [
 [[package]]
 name = "substrate-build-script-utils"
 version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "platforms",
 ]
@@ -11544,7 +11544,7 @@ dependencies = [
 [[package]]
 name = "substrate-frame-rpc-system"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "frame-system-rpc-runtime-api",
  "futures",
@@ -11563,7 +11563,7 @@ dependencies = [
 [[package]]
 name = "substrate-prometheus-endpoint"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "hyper",
  "log",
@@ -11575,7 +11575,7 @@ dependencies = [
 [[package]]
 name = "substrate-rpc-client"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "jsonrpsee",
@@ -11588,7 +11588,7 @@ dependencies = [
 [[package]]
 name = "substrate-state-trie-migration-rpc"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "jsonrpsee",
  "log",
@@ -11607,7 +11607,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-client"
 version = "2.0.1"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "array-bytes",
  "async-trait",
@@ -11633,7 +11633,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils"
 version = "4.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "futures",
  "substrate-test-utils-derive",
@@ -11643,7 +11643,7 @@ dependencies = [
 [[package]]
 name = "substrate-test-utils-derive"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -11654,7 +11654,7 @@ dependencies = [
 [[package]]
 name = "substrate-wasm-builder"
 version = "5.0.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "ansi_term",
  "build-helper",
@@ -12455,7 +12455,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
 [[package]]
 name = "try-runtime-cli"
 version = "0.10.0-dev"
-source = "git+https://github.com/paritytech/substrate?branch=master#e44038af6440a8f941de64412794707c62e4b4e4"
+source = "git+https://github.com/paritytech/substrate?branch=master#ae83a672f2bbe6a4f7391f6a5b2b6fd7ad4f8651"
 dependencies = [
  "async-trait",
  "clap 4.0.15",
diff --git a/polkadot/runtime/kusama/src/lib.rs b/polkadot/runtime/kusama/src/lib.rs
index 409715b72d6..8ff6ba21c99 100644
--- a/polkadot/runtime/kusama/src/lib.rs
+++ b/polkadot/runtime/kusama/src/lib.rs
@@ -1456,17 +1456,22 @@ pub type SignedExtra = (
 	pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
 );
 
-pub struct StakingMigrationV11OldPallet;
-impl Get<&'static str> for StakingMigrationV11OldPallet {
-	fn get() -> &'static str {
-		"VoterList"
+pub struct NominationPoolsMigrationV4OldPallet;
+impl Get<Perbill> for NominationPoolsMigrationV4OldPallet {
+	fn get() -> Perbill {
+		Perbill::from_percent(10)
 	}
 }
 
 /// All migrations that will run on the next runtime upgrade.
 ///
 /// Should be cleared after every release.
-pub type Migrations = ();
+pub type Migrations = (
+	pallet_nomination_pools::migration::v4::MigrateToV4<
+		Runtime,
+		NominationPoolsMigrationV4OldPallet,
+	>,
+);
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
diff --git a/polkadot/runtime/kusama/src/weights/pallet_nomination_pools.rs b/polkadot/runtime/kusama/src/weights/pallet_nomination_pools.rs
index e1e59fc4369..5bf5914995f 100644
--- a/polkadot/runtime/kusama/src/weights/pallet_nomination_pools.rs
+++ b/polkadot/runtime/kusama/src/weights/pallet_nomination_pools.rs
@@ -16,22 +16,24 @@
 //! Autogenerated weights for `pallet_nomination_pools`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2023-03-06, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! 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
+// target/production/polkadot
 // benchmark
 // pallet
-// --chain=kusama-dev
 // --steps=50
 // --repeat=20
-// --pallet=pallet_nomination_pools
 // --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_nomination_pools
+// --chain=kusama-dev
 // --header=./file_header.txt
 // --output=./runtime/kusama/src/weights/
 
@@ -50,13 +52,15 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: NominationPools MaxPoolMembersPerPool (r:1 w:0)
@@ -73,20 +77,22 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn join() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3501`
-		//  Estimated: `38468`
-		// Minimum execution time: 155_259 nanoseconds.
-		Weight::from_parts(159_392_000, 0)
-			.saturating_add(Weight::from_parts(0, 38468))
-			.saturating_add(T::DbWeight::get().reads(17))
+		//  Measured:  `3578`
+		//  Estimated: `52915`
+		// Minimum execution time: 155_563_000 picoseconds.
+		Weight::from_parts(156_968_000, 0)
+			.saturating_add(Weight::from_parts(0, 52915))
+			.saturating_add(T::DbWeight::get().reads(18))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:3 w:2)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -101,12 +107,12 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn bond_extra_transfer() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3543`
-		//  Estimated: `39063`
-		// Minimum execution time: 150_628 nanoseconds.
-		Weight::from_parts(152_414_000, 0)
-			.saturating_add(Weight::from_parts(0, 39063))
-			.saturating_add(T::DbWeight::get().reads(14))
+		//  Measured:  `3620`
+		//  Estimated: `49550`
+		// Minimum execution time: 153_086_000 picoseconds.
+		Weight::from_parts(154_699_000, 0)
+			.saturating_add(Weight::from_parts(0, 49550))
+			.saturating_add(T::DbWeight::get().reads(15))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: NominationPools ClaimPermissions (r:1 w:0)
@@ -114,9 +120,11 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:3 w:3)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -125,50 +133,54 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
 	/// Storage: Balances Locks (r:1 w:1)
 	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: VoterList ListNodes (r:2 w:2)
+	/// Storage: VoterList ListNodes (r:3 w:3)
 	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
 	/// Storage: VoterList ListBags (r:2 w:2)
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn bond_extra_other() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3389`
-		//  Estimated: `38950`
-		// Minimum execution time: 163_983 nanoseconds.
-		Weight::from_parts(165_428_000, 0)
-			.saturating_add(Weight::from_parts(0, 38950))
-			.saturating_add(T::DbWeight::get().reads(14))
-			.saturating_add(T::DbWeight::get().writes(12))
+		//  Measured:  `3685`
+		//  Estimated: `53056`
+		// Minimum execution time: 172_493_000 picoseconds.
+		Weight::from_parts(173_786_000, 0)
+			.saturating_add(Weight::from_parts(0, 53056))
+			.saturating_add(T::DbWeight::get().reads(16))
+			.saturating_add(T::DbWeight::get().writes(13))
 	}
 	/// Storage: NominationPools ClaimPermissions (r:1 w:0)
 	/// Proof: NominationPools ClaimPermissions (max_values: None, max_size: Some(41), added: 2516, mode: MaxEncodedLen)
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:1 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	fn claim_payout() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1254`
-		//  Estimated: `13485`
-		// Minimum execution time: 59_520 nanoseconds.
-		Weight::from_parts(60_666_000, 0)
-			.saturating_add(Weight::from_parts(0, 13485))
-			.saturating_add(T::DbWeight::get().reads(5))
+		//  Measured:  `1331`
+		//  Estimated: `20012`
+		// Minimum execution time: 60_276_000 picoseconds.
+		Weight::from_parts(60_972_000, 0)
+			.saturating_add(Weight::from_parts(0, 20012))
+			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking CurrentEra (r:1 w:0)
@@ -189,16 +201,16 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: NominationPools CounterForSubPoolsStorage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn unbond() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3779`
-		//  Estimated: `44930`
-		// Minimum execution time: 154_659 nanoseconds.
-		Weight::from_parts(156_090_000, 0)
-			.saturating_add(Weight::from_parts(0, 44930))
-			.saturating_add(T::DbWeight::get().reads(18))
+		//  Measured:  `3856`
+		//  Estimated: `60367`
+		// Minimum execution time: 156_830_000 picoseconds.
+		Weight::from_parts(158_198_000, 0)
+			.saturating_add(Weight::from_parts(0, 60367))
+			.saturating_add(T::DbWeight::get().reads(19))
 			.saturating_add(T::DbWeight::get().writes(13))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
@@ -210,13 +222,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `s` is `[0, 100]`.
 	fn pool_withdraw_unbonded(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1700`
-		//  Estimated: `13025`
-		// Minimum execution time: 52_836 nanoseconds.
-		Weight::from_parts(54_086_254, 0)
-			.saturating_add(Weight::from_parts(0, 13025))
-			// Standard Error: 753
-			.saturating_add(Weight::from_parts(8_103, 0).saturating_mul(s.into()))
+		//  Measured:  `1704`
+		//  Estimated: `18031`
+		// Minimum execution time: 53_206_000 picoseconds.
+		Weight::from_parts(54_391_455, 0)
+			.saturating_add(Weight::from_parts(0, 18031))
+			// Standard Error: 2_654
+			.saturating_add(Weight::from_parts(10_172, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -225,7 +237,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Staking CurrentEra (r:1 w:0)
 	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools SubPoolsStorage (r:1 w:1)
 	/// Proof: NominationPools SubPoolsStorage (max_values: None, max_size: Some(1197), added: 3672, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -241,15 +253,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools ClaimPermissions (r:0 w:1)
 	/// Proof: NominationPools ClaimPermissions (max_values: None, max_size: Some(41), added: 2516, mode: MaxEncodedLen)
 	/// The range of component `s` is `[0, 100]`.
-	fn withdraw_unbonded_update(s: u32, ) -> Weight {
+	fn withdraw_unbonded_update(_s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2224`
-		//  Estimated: `22991`
-		// Minimum execution time: 102_419 nanoseconds.
-		Weight::from_parts(104_332_875, 0)
-			.saturating_add(Weight::from_parts(0, 22991))
-			// Standard Error: 1_933
-			.saturating_add(Weight::from_parts(15_901, 0).saturating_mul(s.into()))
+		//  Measured:  `2228`
+		//  Estimated: `31957`
+		// Minimum execution time: 102_755_000 picoseconds.
+		Weight::from_parts(107_719_238, 0)
+			.saturating_add(Weight::from_parts(0, 31957))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -258,7 +268,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Staking CurrentEra (r:1 w:0)
 	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools SubPoolsStorage (r:1 w:1)
 	/// Proof: NominationPools SubPoolsStorage (max_values: None, max_size: Some(1197), added: 3672, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:1)
@@ -282,7 +292,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools CounterForReversePoolIdLookup (r:1 w:1)
 	/// Proof: NominationPools CounterForReversePoolIdLookup (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForRewardPools (r:1 w:1)
 	/// Proof: NominationPools CounterForRewardPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForSubPoolsStorage (r:1 w:1)
@@ -296,13 +306,15 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools ClaimPermissions (r:0 w:1)
 	/// Proof: NominationPools ClaimPermissions (max_values: None, max_size: Some(41), added: 2516, mode: MaxEncodedLen)
 	/// The range of component `s` is `[0, 100]`.
-	fn withdraw_unbonded_kill(_s: u32, ) -> Weight {
+	fn withdraw_unbonded_kill(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2614`
-		//  Estimated: `46287`
-		// Minimum execution time: 162_308 nanoseconds.
-		Weight::from_parts(165_347_893, 0)
-			.saturating_add(Weight::from_parts(0, 46287))
+		//  Measured:  `2618`
+		//  Estimated: `65189`
+		// Minimum execution time: 161_317_000 picoseconds.
+		Weight::from_parts(164_663_249, 0)
+			.saturating_add(Weight::from_parts(0, 65189))
+			// Standard Error: 25_821
+			.saturating_add(Weight::from_parts(58_147, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(20))
 			.saturating_add(T::DbWeight::get().writes(18))
 	}
@@ -337,7 +349,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Balances Locks (r:1 w:1)
 	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForRewardPools (r:1 w:1)
 	/// Proof: NominationPools CounterForRewardPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools ReversePoolIdLookup (r:1 w:1)
@@ -345,21 +357,21 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools CounterForReversePoolIdLookup (r:1 w:1)
 	/// Proof: NominationPools CounterForReversePoolIdLookup (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Payee (r:0 w:1)
 	/// Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1254`
-		//  Estimated: `32002`
-		// Minimum execution time: 144_295 nanoseconds.
-		Weight::from_parts(145_923_000, 0)
-			.saturating_add(Weight::from_parts(0, 32002))
+		//  Estimated: `51890`
+		// Minimum execution time: 141_784_000 picoseconds.
+		Weight::from_parts(142_683_000, 0)
+			.saturating_add(Weight::from_parts(0, 51890))
 			.saturating_add(T::DbWeight::get().reads(21))
 			.saturating_add(T::DbWeight::get().writes(15))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
@@ -385,36 +397,36 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `n` is `[1, 24]`.
 	fn nominate(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1834`
-		//  Estimated: `22254 + n * (2520 ±0)`
-		// Minimum execution time: 66_817 nanoseconds.
-		Weight::from_parts(67_646_764, 0)
-			.saturating_add(Weight::from_parts(0, 22254))
-			// Standard Error: 12_768
-			.saturating_add(Weight::from_parts(1_325_294, 0).saturating_mul(n.into()))
+		//  Measured:  `1838`
+		//  Estimated: `34190 + n * (2520 ±0)`
+		// Minimum execution time: 65_561_000 picoseconds.
+		Weight::from_parts(68_033_566, 0)
+			.saturating_add(Weight::from_parts(0, 34190))
+			// Standard Error: 41_874
+			.saturating_add(Weight::from_parts(1_249_632, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(5))
 			.saturating_add(Weight::from_parts(0, 2520).saturating_mul(n.into()))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
 	fn set_state() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1423`
-		//  Estimated: `8752`
-		// Minimum execution time: 35_795 nanoseconds.
-		Weight::from_parts(36_450_000, 0)
-			.saturating_add(Weight::from_parts(0, 8752))
+		//  Measured:  `1427`
+		//  Estimated: `11778`
+		// Minimum execution time: 36_008_000 picoseconds.
+		Weight::from_parts(36_665_000, 0)
+			.saturating_add(Weight::from_parts(0, 11778))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools Metadata (r:1 w:1)
 	/// Proof: NominationPools Metadata (max_values: None, max_size: Some(270), added: 2745, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForMetadata (r:1 w:1)
@@ -422,13 +434,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `n` is `[1, 256]`.
 	fn set_metadata(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `559`
-		//  Estimated: `5883`
-		// Minimum execution time: 14_066 nanoseconds.
-		Weight::from_parts(14_523_246, 0)
-			.saturating_add(Weight::from_parts(0, 5883))
-			// Standard Error: 114
-			.saturating_add(Weight::from_parts(1_692, 0).saturating_mul(n.into()))
+		//  Measured:  `563`
+		//  Estimated: `8909`
+		// Minimum execution time: 14_479_000 picoseconds.
+		Weight::from_parts(15_744_317, 0)
+			.saturating_add(Weight::from_parts(0, 8909))
+			// Standard Error: 1_213
+			.saturating_add(Weight::from_parts(2_309, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -440,31 +452,33 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: NominationPools MaxPoolMembersPerPool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools MinCreateBond (r:0 w:1)
 	/// Proof: NominationPools MinCreateBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:0 w:1)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools MaxPools (r:0 w:1)
 	/// Proof: NominationPools MaxPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn set_configs() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_088 nanoseconds.
-		Weight::from_parts(5_337_000, 0)
+		// Minimum execution time: 6_288_000 picoseconds.
+		Weight::from_parts(6_550_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(5))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	fn update_roles() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `559`
-		//  Estimated: `2639`
-		// Minimum execution time: 19_312 nanoseconds.
-		Weight::from_parts(19_483_000, 0)
-			.saturating_add(Weight::from_parts(0, 2639))
+		//  Measured:  `563`
+		//  Estimated: `3685`
+		// Minimum execution time: 20_297_000 picoseconds.
+		Weight::from_parts(20_698_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
@@ -483,14 +497,56 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn chill() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2061`
-		//  Estimated: `20745`
-		// Minimum execution time: 65_721 nanoseconds.
-		Weight::from_parts(66_514_000, 0)
-			.saturating_add(Weight::from_parts(0, 20745))
+		//  Measured:  `2065`
+		//  Estimated: `29711`
+		// Minimum execution time: 64_288_000 picoseconds.
+		Weight::from_parts(65_089_000, 0)
+			.saturating_add(Weight::from_parts(0, 29711))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	/// Storage: NominationPools RewardPools (r:1 w:1)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: System Account (r:1 w:0)
+	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	fn set_commission() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `866`
+		//  Estimated: `12324`
+		// Minimum execution time: 32_180_000 picoseconds.
+		Weight::from_parts(32_637_000, 0)
+			.saturating_add(Weight::from_parts(0, 12324))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	fn set_commission_max() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `603`
+		//  Estimated: `3685`
+		// Minimum execution time: 18_814_000 picoseconds.
+		Weight::from_parts(19_221_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	fn set_commission_change_rate() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `563`
+		//  Estimated: `3685`
+		// Minimum execution time: 19_641_000 picoseconds.
+		Weight::from_parts(29_789_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
 	/// Storage: NominationPools PoolMembers (r:1 w:0)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools ClaimPermissions (r:1 w:1)
@@ -498,11 +554,29 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	fn set_claim_permission() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `542`
-		//  Estimated: `5708`
-		// Minimum execution time: 14_637 nanoseconds.
-		Weight::from_parts(15_053_000, 0)
-			.saturating_add(Weight::from_parts(0, 5708))
+		//  Estimated: `7688`
+		// Minimum execution time: 14_819_000 picoseconds.
+		Weight::from_parts(21_194_000, 0)
+			.saturating_add(Weight::from_parts(0, 7688))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: NominationPools BondedPools (r:1 w:0)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	/// Storage: NominationPools RewardPools (r:1 w:1)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: System Account (r:1 w:1)
+	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	fn claim_commission() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `1096`
+		//  Estimated: `12324`
+		// Minimum execution time: 47_609_000 picoseconds.
+		Weight::from_parts(48_694_000, 0)
+			.saturating_add(Weight::from_parts(0, 12324))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
 }
diff --git a/polkadot/runtime/polkadot/src/lib.rs b/polkadot/runtime/polkadot/src/lib.rs
index f5a9af80699..1d8133f2ba9 100644
--- a/polkadot/runtime/polkadot/src/lib.rs
+++ b/polkadot/runtime/polkadot/src/lib.rs
@@ -1585,17 +1585,22 @@ pub type SignedExtra = (
 	claims::PrevalidateAttests<Runtime>,
 );
 
-pub struct StakingMigrationV11OldPallet;
-impl Get<&'static str> for StakingMigrationV11OldPallet {
-	fn get() -> &'static str {
-		"VoterList"
+pub struct NominationPoolsMigrationV4OldPallet;
+impl Get<Perbill> for NominationPoolsMigrationV4OldPallet {
+	fn get() -> Perbill {
+		Perbill::zero()
 	}
 }
 
 /// All migrations that will run on the next runtime upgrade.
 ///
 /// Should be cleared after every release.
-pub type Migrations = ();
+pub type Migrations = (
+	pallet_nomination_pools::migration::v4::MigrateToV4<
+		Runtime,
+		NominationPoolsMigrationV4OldPallet,
+	>,
+);
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
diff --git a/polkadot/runtime/polkadot/src/weights/pallet_nomination_pools.rs b/polkadot/runtime/polkadot/src/weights/pallet_nomination_pools.rs
index 5baec28d664..6e67e2854f1 100644
--- a/polkadot/runtime/polkadot/src/weights/pallet_nomination_pools.rs
+++ b/polkadot/runtime/polkadot/src/weights/pallet_nomination_pools.rs
@@ -16,22 +16,24 @@
 //! Autogenerated weights for `pallet_nomination_pools`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-02-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2023-03-06, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
 //! 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_nomination_pools
 // --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_nomination_pools
+// --chain=polkadot-dev
 // --header=./file_header.txt
 // --output=./runtime/polkadot/src/weights/
 
@@ -50,13 +52,15 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: NominationPools MaxPoolMembersPerPool (r:1 w:0)
@@ -73,20 +77,22 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn join() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3468`
-		//  Estimated: `38468`
-		// Minimum execution time: 153_784 nanoseconds.
-		Weight::from_parts(155_121_000, 0)
-			.saturating_add(Weight::from_parts(0, 38468))
-			.saturating_add(T::DbWeight::get().reads(17))
+		//  Measured:  `3545`
+		//  Estimated: `52915`
+		// Minimum execution time: 154_178_000 picoseconds.
+		Weight::from_parts(155_912_000, 0)
+			.saturating_add(Weight::from_parts(0, 52915))
+			.saturating_add(T::DbWeight::get().reads(18))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:3 w:2)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -101,12 +107,12 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn bond_extra_transfer() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3510`
-		//  Estimated: `39063`
-		// Minimum execution time: 151_609 nanoseconds.
-		Weight::from_parts(155_385_000, 0)
-			.saturating_add(Weight::from_parts(0, 39063))
-			.saturating_add(T::DbWeight::get().reads(14))
+		//  Measured:  `3587`
+		//  Estimated: `49550`
+		// Minimum execution time: 151_694_000 picoseconds.
+		Weight::from_parts(156_751_000, 0)
+			.saturating_add(Weight::from_parts(0, 49550))
+			.saturating_add(T::DbWeight::get().reads(15))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: NominationPools ClaimPermissions (r:1 w:0)
@@ -114,9 +120,11 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:3 w:3)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -131,12 +139,12 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn bond_extra_other() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3393`
-		//  Estimated: `38950`
-		// Minimum execution time: 165_036 nanoseconds.
-		Weight::from_parts(166_264_000, 0)
-			.saturating_add(Weight::from_parts(0, 38950))
-			.saturating_add(T::DbWeight::get().reads(14))
+		//  Measured:  `3470`
+		//  Estimated: `50427`
+		// Minimum execution time: 164_123_000 picoseconds.
+		Weight::from_parts(165_444_000, 0)
+			.saturating_add(Weight::from_parts(0, 50427))
+			.saturating_add(T::DbWeight::get().reads(15))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: NominationPools ClaimPermissions (r:1 w:0)
@@ -144,31 +152,35 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:1 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	fn claim_payout() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1220`
-		//  Estimated: `13485`
-		// Minimum execution time: 61_052 nanoseconds.
-		Weight::from_parts(61_773_000, 0)
-			.saturating_add(Weight::from_parts(0, 13485))
-			.saturating_add(T::DbWeight::get().reads(5))
+		//  Measured:  `1297`
+		//  Estimated: `20012`
+		// Minimum execution time: 61_194_000 picoseconds.
+		Weight::from_parts(62_067_000, 0)
+			.saturating_add(Weight::from_parts(0, 20012))
+			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking CurrentEra (r:1 w:0)
@@ -189,16 +201,16 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: NominationPools CounterForSubPoolsStorage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn unbond() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3748`
-		//  Estimated: `44674`
-		// Minimum execution time: 155_226 nanoseconds.
-		Weight::from_parts(155_893_000, 0)
-			.saturating_add(Weight::from_parts(0, 44674))
-			.saturating_add(T::DbWeight::get().reads(18))
+		//  Measured:  `3825`
+		//  Estimated: `60111`
+		// Minimum execution time: 155_272_000 picoseconds.
+		Weight::from_parts(156_629_000, 0)
+			.saturating_add(Weight::from_parts(0, 60111))
+			.saturating_add(T::DbWeight::get().reads(19))
 			.saturating_add(T::DbWeight::get().writes(13))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
@@ -210,13 +222,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `s` is `[0, 100]`.
 	fn pool_withdraw_unbonded(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1672`
-		//  Estimated: `13025`
-		// Minimum execution time: 53_472 nanoseconds.
-		Weight::from_parts(55_368_257, 0)
-			.saturating_add(Weight::from_parts(0, 13025))
-			// Standard Error: 904
-			.saturating_add(Weight::from_parts(4_928, 0).saturating_mul(s.into()))
+		//  Measured:  `1676`
+		//  Estimated: `18031`
+		// Minimum execution time: 54_207_000 picoseconds.
+		Weight::from_parts(56_142_332, 0)
+			.saturating_add(Weight::from_parts(0, 18031))
+			// Standard Error: 4_547
+			.saturating_add(Weight::from_parts(4_570, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -225,7 +237,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Staking CurrentEra (r:1 w:0)
 	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools SubPoolsStorage (r:1 w:1)
 	/// Proof: NominationPools SubPoolsStorage (max_values: None, max_size: Some(1197), added: 3672, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -243,13 +255,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `s` is `[0, 100]`.
 	fn withdraw_unbonded_update(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2196`
-		//  Estimated: `22991`
-		// Minimum execution time: 103_698 nanoseconds.
-		Weight::from_parts(105_075_914, 0)
-			.saturating_add(Weight::from_parts(0, 22991))
-			// Standard Error: 1_503
-			.saturating_add(Weight::from_parts(19_668, 0).saturating_mul(s.into()))
+		//  Measured:  `2200`
+		//  Estimated: `31957`
+		// Minimum execution time: 103_172_000 picoseconds.
+		Weight::from_parts(106_375_310, 0)
+			.saturating_add(Weight::from_parts(0, 31957))
+			// Standard Error: 6_965
+			.saturating_add(Weight::from_parts(7_411, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -258,7 +270,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Staking CurrentEra (r:1 w:0)
 	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools SubPoolsStorage (r:1 w:1)
 	/// Proof: NominationPools SubPoolsStorage (max_values: None, max_size: Some(1197), added: 3672, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:1)
@@ -282,7 +294,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools CounterForReversePoolIdLookup (r:1 w:1)
 	/// Proof: NominationPools CounterForReversePoolIdLookup (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForRewardPools (r:1 w:1)
 	/// Proof: NominationPools CounterForRewardPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForSubPoolsStorage (r:1 w:1)
@@ -298,11 +310,11 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `s` is `[0, 100]`.
 	fn withdraw_unbonded_kill(_s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2584`
-		//  Estimated: `46001`
-		// Minimum execution time: 163_337 nanoseconds.
-		Weight::from_parts(167_095_416, 0)
-			.saturating_add(Weight::from_parts(0, 46001))
+		//  Measured:  `2588`
+		//  Estimated: `64903`
+		// Minimum execution time: 162_253_000 picoseconds.
+		Weight::from_parts(180_162_421, 0)
+			.saturating_add(Weight::from_parts(0, 64903))
 			.saturating_add(T::DbWeight::get().reads(20))
 			.saturating_add(T::DbWeight::get().writes(18))
 	}
@@ -337,7 +349,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Balances Locks (r:1 w:1)
 	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForRewardPools (r:1 w:1)
 	/// Proof: NominationPools CounterForRewardPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools ReversePoolIdLookup (r:1 w:1)
@@ -345,21 +357,21 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools CounterForReversePoolIdLookup (r:1 w:1)
 	/// Proof: NominationPools CounterForReversePoolIdLookup (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Payee (r:0 w:1)
 	/// Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1220`
-		//  Estimated: `32002`
-		// Minimum execution time: 149_656 nanoseconds.
-		Weight::from_parts(150_555_000, 0)
-			.saturating_add(Weight::from_parts(0, 32002))
+		//  Estimated: `51890`
+		// Minimum execution time: 143_473_000 picoseconds.
+		Weight::from_parts(145_473_000, 0)
+			.saturating_add(Weight::from_parts(0, 51890))
 			.saturating_add(T::DbWeight::get().reads(21))
 			.saturating_add(T::DbWeight::get().writes(15))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
@@ -385,36 +397,36 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `n` is `[1, 16]`.
 	fn nominate(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1805`
-		//  Estimated: `21998 + n * (2520 ±0)`
-		// Minimum execution time: 66_157 nanoseconds.
-		Weight::from_parts(66_972_809, 0)
-			.saturating_add(Weight::from_parts(0, 21998))
-			// Standard Error: 9_409
-			.saturating_add(Weight::from_parts(1_327_035, 0).saturating_mul(n.into()))
+		//  Measured:  `1809`
+		//  Estimated: `33934 + n * (2520 ±0)`
+		// Minimum execution time: 67_193_000 picoseconds.
+		Weight::from_parts(68_165_415, 0)
+			.saturating_add(Weight::from_parts(0, 33934))
+			// Standard Error: 10_479
+			.saturating_add(Weight::from_parts(1_263_947, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(5))
 			.saturating_add(Weight::from_parts(0, 2520).saturating_mul(n.into()))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
 	fn set_state() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1393`
-		//  Estimated: `8752`
-		// Minimum execution time: 34_743 nanoseconds.
-		Weight::from_parts(35_038_000, 0)
-			.saturating_add(Weight::from_parts(0, 8752))
+		//  Measured:  `1397`
+		//  Estimated: `11778`
+		// Minimum execution time: 33_972_000 picoseconds.
+		Weight::from_parts(34_300_000, 0)
+			.saturating_add(Weight::from_parts(0, 11778))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools Metadata (r:1 w:1)
 	/// Proof: NominationPools Metadata (max_values: None, max_size: Some(270), added: 2745, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForMetadata (r:1 w:1)
@@ -422,13 +434,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `n` is `[1, 256]`.
 	fn set_metadata(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `525`
-		//  Estimated: `5883`
-		// Minimum execution time: 14_305 nanoseconds.
-		Weight::from_parts(14_805_073, 0)
-			.saturating_add(Weight::from_parts(0, 5883))
-			// Standard Error: 125
-			.saturating_add(Weight::from_parts(1_944, 0).saturating_mul(n.into()))
+		//  Measured:  `529`
+		//  Estimated: `8909`
+		// Minimum execution time: 15_429_000 picoseconds.
+		Weight::from_parts(16_414_594, 0)
+			.saturating_add(Weight::from_parts(0, 8909))
+			// Standard Error: 857
+			.saturating_add(Weight::from_parts(732, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -440,31 +452,33 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: NominationPools MaxPoolMembersPerPool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools MinCreateBond (r:0 w:1)
 	/// Proof: NominationPools MinCreateBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:0 w:1)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools MaxPools (r:0 w:1)
 	/// Proof: NominationPools MaxPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn set_configs() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_054 nanoseconds.
-		Weight::from_parts(5_333_000, 0)
+		// Minimum execution time: 6_354_000 picoseconds.
+		Weight::from_parts(6_629_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(5))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	fn update_roles() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `525`
-		//  Estimated: `2639`
-		// Minimum execution time: 20_025 nanoseconds.
-		Weight::from_parts(20_643_000, 0)
-			.saturating_add(Weight::from_parts(0, 2639))
+		//  Measured:  `529`
+		//  Estimated: `3685`
+		// Minimum execution time: 21_124_000 picoseconds.
+		Weight::from_parts(21_372_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
@@ -483,14 +497,56 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn chill() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2032`
-		//  Estimated: `20489`
-		// Minimum execution time: 65_418 nanoseconds.
-		Weight::from_parts(65_853_000, 0)
-			.saturating_add(Weight::from_parts(0, 20489))
+		//  Measured:  `2036`
+		//  Estimated: `29455`
+		// Minimum execution time: 65_370_000 picoseconds.
+		Weight::from_parts(66_126_000, 0)
+			.saturating_add(Weight::from_parts(0, 29455))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	/// Storage: NominationPools RewardPools (r:1 w:1)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: System Account (r:1 w:0)
+	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	fn set_commission() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `832`
+		//  Estimated: `12324`
+		// Minimum execution time: 33_108_000 picoseconds.
+		Weight::from_parts(33_466_000, 0)
+			.saturating_add(Weight::from_parts(0, 12324))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	fn set_commission_max() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `569`
+		//  Estimated: `3685`
+		// Minimum execution time: 19_755_000 picoseconds.
+		Weight::from_parts(20_033_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	fn set_commission_change_rate() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `529`
+		//  Estimated: `3685`
+		// Minimum execution time: 20_908_000 picoseconds.
+		Weight::from_parts(21_219_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
 	/// Storage: NominationPools PoolMembers (r:1 w:0)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools ClaimPermissions (r:1 w:1)
@@ -498,11 +554,29 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	fn set_claim_permission() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `508`
-		//  Estimated: `5708`
-		// Minimum execution time: 14_918 nanoseconds.
-		Weight::from_parts(15_304_000, 0)
-			.saturating_add(Weight::from_parts(0, 5708))
+		//  Estimated: `7688`
+		// Minimum execution time: 15_851_000 picoseconds.
+		Weight::from_parts(16_068_000, 0)
+			.saturating_add(Weight::from_parts(0, 7688))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: NominationPools BondedPools (r:1 w:0)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	/// Storage: NominationPools RewardPools (r:1 w:1)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: System Account (r:1 w:1)
+	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	fn claim_commission() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `1062`
+		//  Estimated: `12324`
+		// Minimum execution time: 44_544_000 picoseconds.
+		Weight::from_parts(45_240_000, 0)
+			.saturating_add(Weight::from_parts(0, 12324))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
 }
diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs
index b475f2544b1..6005bc6893e 100644
--- a/polkadot/runtime/westend/src/lib.rs
+++ b/polkadot/runtime/westend/src/lib.rs
@@ -1197,17 +1197,23 @@ pub type SignedExtra = (
 	pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
 );
 
-pub struct StakingMigrationV11OldPallet;
-impl Get<&'static str> for StakingMigrationV11OldPallet {
-	fn get() -> &'static str {
-		"VoterList"
+pub struct NominationPoolsMigrationV4OldPallet;
+impl Get<Perbill> for NominationPoolsMigrationV4OldPallet {
+	fn get() -> Perbill {
+		Perbill::from_percent(100)
 	}
 }
 
 /// All migrations that will run on the next runtime upgrade.
 ///
 /// Should be cleared after every release.
-pub type Migrations = (clean_state_migration::CleanMigrate,);
+pub type Migrations = (
+	clean_state_migration::CleanMigrate,
+	pallet_nomination_pools::migration::v4::MigrateToV4<
+		Runtime,
+		NominationPoolsMigrationV4OldPallet,
+	>,
+);
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
diff --git a/polkadot/runtime/westend/src/weights/pallet_nomination_pools.rs b/polkadot/runtime/westend/src/weights/pallet_nomination_pools.rs
index 6aec1061756..5fce0983882 100644
--- a/polkadot/runtime/westend/src/weights/pallet_nomination_pools.rs
+++ b/polkadot/runtime/westend/src/weights/pallet_nomination_pools.rs
@@ -16,22 +16,24 @@
 //! Autogenerated weights for `pallet_nomination_pools`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-02-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2023-03-06, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westend-dev"), DB CACHE: 1024
 
 // Executed Command:
-// ./target/production/polkadot
+// target/production/polkadot
 // benchmark
 // pallet
-// --chain=westend-dev
 // --steps=50
 // --repeat=20
-// --pallet=pallet_nomination_pools
 // --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_nomination_pools
+// --chain=westend-dev
 // --header=./file_header.txt
 // --output=./runtime/westend/src/weights/
 
@@ -50,13 +52,15 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: NominationPools MaxPoolMembersPerPool (r:1 w:0)
@@ -73,20 +77,22 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn join() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3586`
-		//  Estimated: `38468`
-		// Minimum execution time: 154_304 nanoseconds.
-		Weight::from_parts(155_220_000, 0)
-			.saturating_add(Weight::from_parts(0, 38468))
-			.saturating_add(T::DbWeight::get().reads(17))
+		//  Measured:  `3663`
+		//  Estimated: `52915`
+		// Minimum execution time: 152_798_000 picoseconds.
+		Weight::from_parts(154_136_000, 0)
+			.saturating_add(Weight::from_parts(0, 52915))
+			.saturating_add(T::DbWeight::get().reads(18))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:3 w:2)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -101,12 +107,12 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn bond_extra_transfer() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3628`
-		//  Estimated: `39063`
-		// Minimum execution time: 150_523 nanoseconds.
-		Weight::from_parts(154_073_000, 0)
-			.saturating_add(Weight::from_parts(0, 39063))
-			.saturating_add(T::DbWeight::get().reads(14))
+		//  Measured:  `3705`
+		//  Estimated: `49550`
+		// Minimum execution time: 149_896_000 picoseconds.
+		Weight::from_parts(151_049_000, 0)
+			.saturating_add(Weight::from_parts(0, 49550))
+			.saturating_add(T::DbWeight::get().reads(15))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: NominationPools ClaimPermissions (r:1 w:0)
@@ -114,9 +120,11 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:3 w:3)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -131,12 +139,12 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
 	fn bond_extra_other() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3427`
-		//  Estimated: `38950`
-		// Minimum execution time: 162_554 nanoseconds.
-		Weight::from_parts(164_041_000, 0)
-			.saturating_add(Weight::from_parts(0, 38950))
-			.saturating_add(T::DbWeight::get().reads(14))
+		//  Measured:  `3504`
+		//  Estimated: `50427`
+		// Minimum execution time: 161_501_000 picoseconds.
+		Weight::from_parts(163_539_000, 0)
+			.saturating_add(Weight::from_parts(0, 50427))
+			.saturating_add(T::DbWeight::get().reads(15))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: NominationPools ClaimPermissions (r:1 w:0)
@@ -144,31 +152,35 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:1 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	fn claim_payout() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1220`
-		//  Estimated: `13485`
-		// Minimum execution time: 58_946 nanoseconds.
-		Weight::from_parts(59_799_000, 0)
-			.saturating_add(Weight::from_parts(0, 13485))
-			.saturating_add(T::DbWeight::get().reads(5))
+		//  Measured:  `1297`
+		//  Estimated: `20012`
+		// Minimum execution time: 58_717_000 picoseconds.
+		Weight::from_parts(59_543_000, 0)
+			.saturating_add(Weight::from_parts(0, 20012))
+			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: NominationPools PoolMembers (r:1 w:1)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
 	/// Storage: Staking CurrentEra (r:1 w:0)
@@ -189,16 +201,16 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: NominationPools CounterForSubPoolsStorage (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn unbond() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3865`
-		//  Estimated: `43738`
-		// Minimum execution time: 155_416 nanoseconds.
-		Weight::from_parts(157_093_000, 0)
-			.saturating_add(Weight::from_parts(0, 43738))
-			.saturating_add(T::DbWeight::get().reads(18))
+		//  Measured:  `3942`
+		//  Estimated: `59175`
+		// Minimum execution time: 154_589_000 picoseconds.
+		Weight::from_parts(155_708_000, 0)
+			.saturating_add(Weight::from_parts(0, 59175))
+			.saturating_add(T::DbWeight::get().reads(19))
 			.saturating_add(T::DbWeight::get().writes(13))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:1)
@@ -210,13 +222,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `s` is `[0, 100]`.
 	fn pool_withdraw_unbonded(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1706`
-		//  Estimated: `13025`
-		// Minimum execution time: 52_621 nanoseconds.
-		Weight::from_parts(53_508_921, 0)
-			.saturating_add(Weight::from_parts(0, 13025))
-			// Standard Error: 790
-			.saturating_add(Weight::from_parts(15_066, 0).saturating_mul(s.into()))
+		//  Measured:  `1710`
+		//  Estimated: `18031`
+		// Minimum execution time: 52_663_000 picoseconds.
+		Weight::from_parts(54_091_646, 0)
+			.saturating_add(Weight::from_parts(0, 18031))
+			// Standard Error: 2_889
+			.saturating_add(Weight::from_parts(7_400, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -225,7 +237,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Staking CurrentEra (r:1 w:0)
 	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools SubPoolsStorage (r:1 w:1)
 	/// Proof: NominationPools SubPoolsStorage (max_values: None, max_size: Some(261), added: 2736, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
@@ -243,13 +255,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `s` is `[0, 100]`.
 	fn withdraw_unbonded_update(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2230`
-		//  Estimated: `22055`
-		// Minimum execution time: 102_019 nanoseconds.
-		Weight::from_parts(104_029_094, 0)
-			.saturating_add(Weight::from_parts(0, 22055))
-			// Standard Error: 1_344
-			.saturating_add(Weight::from_parts(13_886, 0).saturating_mul(s.into()))
+		//  Measured:  `2234`
+		//  Estimated: `31021`
+		// Minimum execution time: 101_113_000 picoseconds.
+		Weight::from_parts(103_367_891, 0)
+			.saturating_add(Weight::from_parts(0, 31021))
+			// Standard Error: 1_536
+			.saturating_add(Weight::from_parts(9_937, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -258,7 +270,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Staking CurrentEra (r:1 w:0)
 	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools SubPoolsStorage (r:1 w:1)
 	/// Proof: NominationPools SubPoolsStorage (max_values: None, max_size: Some(261), added: 2736, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:1)
@@ -282,7 +294,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools CounterForReversePoolIdLookup (r:1 w:1)
 	/// Proof: NominationPools CounterForReversePoolIdLookup (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForRewardPools (r:1 w:1)
 	/// Proof: NominationPools CounterForRewardPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForSubPoolsStorage (r:1 w:1)
@@ -296,15 +308,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools ClaimPermissions (r:0 w:1)
 	/// Proof: NominationPools ClaimPermissions (max_values: None, max_size: Some(41), added: 2516, mode: MaxEncodedLen)
 	/// The range of component `s` is `[0, 100]`.
-	fn withdraw_unbonded_kill(s: u32, ) -> Weight {
+	fn withdraw_unbonded_kill(_s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2618`
-		//  Estimated: `45099`
-		// Minimum execution time: 161_236 nanoseconds.
-		Weight::from_parts(164_070_568, 0)
-			.saturating_add(Weight::from_parts(0, 45099))
-			// Standard Error: 2_621
-			.saturating_add(Weight::from_parts(10_297, 0).saturating_mul(s.into()))
+		//  Measured:  `2622`
+		//  Estimated: `64001`
+		// Minimum execution time: 158_497_000 picoseconds.
+		Weight::from_parts(162_554_414, 0)
+			.saturating_add(Weight::from_parts(0, 64001))
 			.saturating_add(T::DbWeight::get().reads(20))
 			.saturating_add(T::DbWeight::get().writes(18))
 	}
@@ -339,7 +349,7 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: Balances Locks (r:1 w:1)
 	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
 	/// Storage: NominationPools RewardPools (r:1 w:1)
-	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForRewardPools (r:1 w:1)
 	/// Proof: NominationPools CounterForRewardPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools ReversePoolIdLookup (r:1 w:1)
@@ -347,21 +357,21 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Storage: NominationPools CounterForReversePoolIdLookup (r:1 w:1)
 	/// Proof: NominationPools CounterForReversePoolIdLookup (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Payee (r:0 w:1)
 	/// Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1254`
-		//  Estimated: `32002`
-		// Minimum execution time: 142_981 nanoseconds.
-		Weight::from_parts(144_237_000, 0)
-			.saturating_add(Weight::from_parts(0, 32002))
+		//  Estimated: `51890`
+		// Minimum execution time: 140_839_000 picoseconds.
+		Weight::from_parts(143_493_000, 0)
+			.saturating_add(Weight::from_parts(0, 51890))
 			.saturating_add(T::DbWeight::get().reads(21))
 			.saturating_add(T::DbWeight::get().writes(15))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
@@ -387,36 +397,36 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `n` is `[1, 16]`.
 	fn nominate(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1839`
-		//  Estimated: `21998 + n * (2520 ±0)`
-		// Minimum execution time: 65_217 nanoseconds.
-		Weight::from_parts(65_750_377, 0)
-			.saturating_add(Weight::from_parts(0, 21998))
-			// Standard Error: 7_685
-			.saturating_add(Weight::from_parts(1_336_128, 0).saturating_mul(n.into()))
+		//  Measured:  `1843`
+		//  Estimated: `33934 + n * (2520 ±0)`
+		// Minimum execution time: 65_363_000 picoseconds.
+		Weight::from_parts(66_269_952, 0)
+			.saturating_add(Weight::from_parts(0, 33934))
+			// Standard Error: 10_011
+			.saturating_add(Weight::from_parts(1_294_057, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(5))
 			.saturating_add(Weight::from_parts(0, 2520).saturating_mul(n.into()))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
 	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
 	fn set_state() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1427`
-		//  Estimated: `8752`
-		// Minimum execution time: 35_863 nanoseconds.
-		Weight::from_parts(36_287_000, 0)
-			.saturating_add(Weight::from_parts(0, 8752))
+		//  Measured:  `1431`
+		//  Estimated: `11778`
+		// Minimum execution time: 36_747_000 picoseconds.
+		Weight::from_parts(37_477_000, 0)
+			.saturating_add(Weight::from_parts(0, 11778))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: NominationPools Metadata (r:1 w:1)
 	/// Proof: NominationPools Metadata (max_values: None, max_size: Some(270), added: 2745, mode: MaxEncodedLen)
 	/// Storage: NominationPools CounterForMetadata (r:1 w:1)
@@ -424,13 +434,13 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// The range of component `n` is `[1, 256]`.
 	fn set_metadata(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `525`
-		//  Estimated: `5883`
-		// Minimum execution time: 13_860 nanoseconds.
-		Weight::from_parts(14_425_990, 0)
-			.saturating_add(Weight::from_parts(0, 5883))
-			// Standard Error: 94
-			.saturating_add(Weight::from_parts(1_103, 0).saturating_mul(n.into()))
+		//  Measured:  `529`
+		//  Estimated: `8909`
+		// Minimum execution time: 14_658_000 picoseconds.
+		Weight::from_parts(15_258_809, 0)
+			.saturating_add(Weight::from_parts(0, 8909))
+			// Standard Error: 850
+			.saturating_add(Weight::from_parts(3_615, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -442,31 +452,33 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: NominationPools MaxPoolMembersPerPool (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools MinCreateBond (r:0 w:1)
 	/// Proof: NominationPools MinCreateBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:0 w:1)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: NominationPools MaxPools (r:0 w:1)
 	/// Proof: NominationPools MaxPools (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn set_configs() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_097 nanoseconds.
-		Weight::from_parts(5_385_000, 0)
+		// Minimum execution time: 6_314_000 picoseconds.
+		Weight::from_parts(6_573_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(5))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:1)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	fn update_roles() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `525`
-		//  Estimated: `2639`
-		// Minimum execution time: 19_168 nanoseconds.
-		Weight::from_parts(19_566_000, 0)
-			.saturating_add(Weight::from_parts(0, 2639))
+		//  Measured:  `529`
+		//  Estimated: `3685`
+		// Minimum execution time: 19_551_000 picoseconds.
+		Weight::from_parts(19_827_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: NominationPools BondedPools (r:1 w:0)
-	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(164), added: 2639, mode: MaxEncodedLen)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
 	/// Storage: Staking Bonded (r:1 w:0)
 	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
 	/// Storage: Staking Ledger (r:1 w:0)
@@ -485,14 +497,56 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	/// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	fn chill() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2066`
-		//  Estimated: `20489`
-		// Minimum execution time: 64_030 nanoseconds.
-		Weight::from_parts(64_573_000, 0)
-			.saturating_add(Weight::from_parts(0, 20489))
+		//  Measured:  `2070`
+		//  Estimated: `29455`
+		// Minimum execution time: 63_836_000 picoseconds.
+		Weight::from_parts(64_440_000, 0)
+			.saturating_add(Weight::from_parts(0, 29455))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	/// Storage: NominationPools RewardPools (r:1 w:1)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: System Account (r:1 w:0)
+	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	fn set_commission() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `832`
+		//  Estimated: `12324`
+		// Minimum execution time: 32_116_000 picoseconds.
+		Weight::from_parts(32_651_000, 0)
+			.saturating_add(Weight::from_parts(0, 12324))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	fn set_commission_max() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `569`
+		//  Estimated: `3685`
+		// Minimum execution time: 18_582_000 picoseconds.
+		Weight::from_parts(19_029_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: NominationPools BondedPools (r:1 w:1)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	fn set_commission_change_rate() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `529`
+		//  Estimated: `3685`
+		// Minimum execution time: 19_668_000 picoseconds.
+		Weight::from_parts(20_103_000, 0)
+			.saturating_add(Weight::from_parts(0, 3685))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
 	/// Storage: NominationPools PoolMembers (r:1 w:0)
 	/// Proof: NominationPools PoolMembers (max_values: None, max_size: Some(717), added: 3192, mode: MaxEncodedLen)
 	/// Storage: NominationPools ClaimPermissions (r:1 w:1)
@@ -500,11 +554,29 @@ impl<T: frame_system::Config> pallet_nomination_pools::WeightInfo for WeightInfo
 	fn set_claim_permission() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `508`
-		//  Estimated: `5708`
-		// Minimum execution time: 14_137 nanoseconds.
-		Weight::from_parts(14_483_000, 0)
-			.saturating_add(Weight::from_parts(0, 5708))
+		//  Estimated: `7688`
+		// Minimum execution time: 14_730_000 picoseconds.
+		Weight::from_parts(15_088_000, 0)
+			.saturating_add(Weight::from_parts(0, 7688))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: NominationPools BondedPools (r:1 w:0)
+	/// Proof: NominationPools BondedPools (max_values: None, max_size: Some(220), added: 2695, mode: MaxEncodedLen)
+	/// Storage: NominationPools RewardPools (r:1 w:1)
+	/// Proof: NominationPools RewardPools (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: NominationPools GlobalMaxCommission (r:1 w:0)
+	/// Proof: NominationPools GlobalMaxCommission (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: System Account (r:1 w:1)
+	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	fn claim_commission() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `1062`
+		//  Estimated: `12324`
+		// Minimum execution time: 47_120_000 picoseconds.
+		Weight::from_parts(47_597_000, 0)
+			.saturating_add(Weight::from_parts(0, 12324))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
 }
-- 
GitLab