diff --git a/polkadot/runtime/westend/src/weights/pallet_staking.rs b/polkadot/runtime/westend/src/weights/pallet_staking.rs
index 1ecd44747ef5140b0f83f5226d8368a9231085d0..7a641e36a126bada81cecceadd9c22f57e5b88e9 100644
--- a/polkadot/runtime/westend/src/weights/pallet_staking.rs
+++ b/polkadot/runtime/westend/src/weights/pallet_staking.rs
@@ -16,10 +16,10 @@
 
 //! Autogenerated weights for `pallet_staking`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-01-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-itmxxexx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-8idpd4bs-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024
 
 // Executed Command:
@@ -62,8 +62,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `894`
 		//  Estimated: `4764`
-		// Minimum execution time: 38_316_000 picoseconds.
-		Weight::from_parts(40_022_000, 0)
+		// Minimum execution time: 37_340_000 picoseconds.
+		Weight::from_parts(38_930_000, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -84,8 +84,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1921`
 		//  Estimated: `8877`
-		// Minimum execution time: 81_027_000 picoseconds.
-		Weight::from_parts(83_964_000, 0)
+		// Minimum execution time: 80_630_000 picoseconds.
+		Weight::from_parts(82_196_000, 0)
 			.saturating_add(Weight::from_parts(0, 8877))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(7))
@@ -112,8 +112,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2128`
 		//  Estimated: `8877`
-		// Minimum execution time: 85_585_000 picoseconds.
-		Weight::from_parts(87_256_000, 0)
+		// Minimum execution time: 83_523_000 picoseconds.
+		Weight::from_parts(86_639_000, 0)
 			.saturating_add(Weight::from_parts(0, 8877))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(7))
@@ -133,11 +133,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1075`
 		//  Estimated: `4764`
-		// Minimum execution time: 39_520_000 picoseconds.
-		Weight::from_parts(41_551_548, 0)
+		// Minimum execution time: 38_636_000 picoseconds.
+		Weight::from_parts(40_399_283, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
-			// Standard Error: 1_094
-			.saturating_add(Weight::from_parts(50_426, 0).saturating_mul(s.into()))
+			// Standard Error: 869
+			.saturating_add(Weight::from_parts(37_752, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -174,11 +174,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2127 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 82_915_000 picoseconds.
-		Weight::from_parts(89_597_160, 0)
+		// Minimum execution time: 81_301_000 picoseconds.
+		Weight::from_parts(88_609_205, 0)
 			.saturating_add(Weight::from_parts(0, 6248))
-			// Standard Error: 3_146
-			.saturating_add(Weight::from_parts(1_228_061, 0).saturating_mul(s.into()))
+			// Standard Error: 3_388
+			.saturating_add(Weight::from_parts(1_253_692, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(13))
 			.saturating_add(T::DbWeight::get().writes(11))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -210,8 +210,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1301`
 		//  Estimated: `4556`
-		// Minimum execution time: 48_070_000 picoseconds.
-		Weight::from_parts(49_226_000, 0)
+		// Minimum execution time: 47_292_000 picoseconds.
+		Weight::from_parts(48_566_000, 0)
 			.saturating_add(Weight::from_parts(0, 4556))
 			.saturating_add(T::DbWeight::get().reads(11))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -225,11 +225,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1243 + k * (569 ±0)`
 		//  Estimated: `4556 + k * (3033 ±0)`
-		// Minimum execution time: 29_140_000 picoseconds.
-		Weight::from_parts(30_225_579, 0)
+		// Minimum execution time: 28_840_000 picoseconds.
+		Weight::from_parts(27_510_817, 0)
 			.saturating_add(Weight::from_parts(0, 4556))
-			// Standard Error: 5_394
-			.saturating_add(Weight::from_parts(6_401_367, 0).saturating_mul(k.into()))
+			// Standard Error: 6_603
+			.saturating_add(Weight::from_parts(6_268_853, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into())))
@@ -262,11 +262,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1797 + n * (102 ±0)`
 		//  Estimated: `6248 + n * (2520 ±0)`
-		// Minimum execution time: 59_287_000 picoseconds.
-		Weight::from_parts(58_285_052, 0)
+		// Minimum execution time: 57_537_000 picoseconds.
+		Weight::from_parts(55_854_233, 0)
 			.saturating_add(Weight::from_parts(0, 6248))
-			// Standard Error: 14_556
-			.saturating_add(Weight::from_parts(3_863_008, 0).saturating_mul(n.into()))
+			// Standard Error: 14_427
+			.saturating_add(Weight::from_parts(3_844_957, 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(6))
@@ -290,8 +290,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1581`
 		//  Estimated: `6248`
-		// Minimum execution time: 51_035_000 picoseconds.
-		Weight::from_parts(52_163_000, 0)
+		// Minimum execution time: 49_997_000 picoseconds.
+		Weight::from_parts(51_266_000, 0)
 			.saturating_add(Weight::from_parts(0, 6248))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(6))
@@ -306,8 +306,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `865`
 		//  Estimated: `4556`
-		// Minimum execution time: 15_809_000 picoseconds.
-		Weight::from_parts(16_451_000, 0)
+		// Minimum execution time: 15_342_000 picoseconds.
+		Weight::from_parts(15_970_000, 0)
 			.saturating_add(Weight::from_parts(0, 4556))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -322,8 +322,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `932`
 		//  Estimated: `4556`
-		// Minimum execution time: 21_695_000 picoseconds.
-		Weight::from_parts(22_351_000, 0)
+		// Minimum execution time: 20_719_000 picoseconds.
+		Weight::from_parts(21_373_000, 0)
 			.saturating_add(Weight::from_parts(0, 4556))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -336,8 +336,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `865`
 		//  Estimated: `4556`
-		// Minimum execution time: 18_548_000 picoseconds.
-		Weight::from_parts(19_205_000, 0)
+		// Minimum execution time: 18_237_000 picoseconds.
+		Weight::from_parts(18_896_000, 0)
 			.saturating_add(Weight::from_parts(0, 4556))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -348,8 +348,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_193_000 picoseconds.
-		Weight::from_parts(2_408_000, 0)
+		// Minimum execution time: 1_946_000 picoseconds.
+		Weight::from_parts(2_131_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -359,8 +359,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_475_000 picoseconds.
-		Weight::from_parts(7_874_000, 0)
+		// Minimum execution time: 6_840_000 picoseconds.
+		Weight::from_parts(7_208_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -370,8 +370,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_393_000 picoseconds.
-		Weight::from_parts(7_643_000, 0)
+		// Minimum execution time: 6_812_000 picoseconds.
+		Weight::from_parts(7_254_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -381,8 +381,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_474_000 picoseconds.
-		Weight::from_parts(7_814_000, 0)
+		// Minimum execution time: 6_787_000 picoseconds.
+		Weight::from_parts(7_206_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -393,11 +393,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_358_000 picoseconds.
-		Weight::from_parts(2_589_423, 0)
+		// Minimum execution time: 2_045_000 picoseconds.
+		Weight::from_parts(2_281_841, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 81
-			.saturating_add(Weight::from_parts(13_612, 0).saturating_mul(v.into()))
+			// Standard Error: 70
+			.saturating_add(Weight::from_parts(11_592, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: `Staking::Ledger` (r:751 w:1502)
@@ -411,11 +411,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `668 + i * (148 ±0)`
 		//  Estimated: `990 + i * (3566 ±0)`
-		// Minimum execution time: 1_934_000 picoseconds.
-		Weight::from_parts(2_070_000, 0)
+		// Minimum execution time: 1_657_000 picoseconds.
+		Weight::from_parts(1_702_000, 0)
 			.saturating_add(Weight::from_parts(0, 990))
-			// Standard Error: 19_129
-			.saturating_add(Weight::from_parts(13_231_580, 0).saturating_mul(i.into()))
+			// Standard Error: 20_041
+			.saturating_add(Weight::from_parts(13_165_254, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3566).saturating_mul(i.into()))
@@ -453,11 +453,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2127 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 80_290_000 picoseconds.
-		Weight::from_parts(87_901_664, 0)
+		// Minimum execution time: 78_774_000 picoseconds.
+		Weight::from_parts(85_770_713, 0)
 			.saturating_add(Weight::from_parts(0, 6248))
-			// Standard Error: 2_960
-			.saturating_add(Weight::from_parts(1_195_050, 0).saturating_mul(s.into()))
+			// Standard Error: 2_815
+			.saturating_add(Weight::from_parts(1_244_494, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(13))
 			.saturating_add(T::DbWeight::get().writes(12))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -470,11 +470,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `66639`
 		//  Estimated: `70104`
-		// Minimum execution time: 132_682_000 picoseconds.
-		Weight::from_parts(932_504_297, 0)
+		// Minimum execution time: 129_905_000 picoseconds.
+		Weight::from_parts(932_195_554, 0)
 			.saturating_add(Weight::from_parts(0, 70104))
-			// Standard Error: 57_593
-			.saturating_add(Weight::from_parts(4_829_705, 0).saturating_mul(s.into()))
+			// Standard Error: 57_492
+			.saturating_add(Weight::from_parts(4_826_754, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -510,12 +510,12 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 	fn payout_stakers_alive_staked(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `8249 + n * (396 ±0)`
-		//  Estimated: `10779 + n * (3774 ±3)`
-		// Minimum execution time: 129_091_000 picoseconds.
-		Weight::from_parts(166_186_167, 0)
+		//  Estimated: `10779 + n * (3774 ±0)`
+		// Minimum execution time: 127_094_000 picoseconds.
+		Weight::from_parts(160_088_053, 0)
 			.saturating_add(Weight::from_parts(0, 10779))
-			// Standard Error: 36_242
-			.saturating_add(Weight::from_parts(40_467_481, 0).saturating_mul(n.into()))
+			// Standard Error: 32_978
+			.saturating_add(Weight::from_parts(39_845_710, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(14))
 			.saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -539,11 +539,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1922 + l * (5 ±0)`
 		//  Estimated: `8877`
-		// Minimum execution time: 77_461_000 picoseconds.
-		Weight::from_parts(80_118_021, 0)
+		// Minimum execution time: 75_672_000 picoseconds.
+		Weight::from_parts(78_708_335, 0)
 			.saturating_add(Weight::from_parts(0, 8877))
-			// Standard Error: 4_343
-			.saturating_add(Weight::from_parts(59_113, 0).saturating_mul(l.into()))
+			// Standard Error: 3_387
+			.saturating_add(Weight::from_parts(37_084, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
@@ -578,11 +578,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2127 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 89_366_000 picoseconds.
-		Weight::from_parts(91_964_557, 0)
+		// Minimum execution time: 87_991_000 picoseconds.
+		Weight::from_parts(90_272_005, 0)
 			.saturating_add(Weight::from_parts(0, 6248))
-			// Standard Error: 2_799
-			.saturating_add(Weight::from_parts(1_206_123, 0).saturating_mul(s.into()))
+			// Standard Error: 2_815
+			.saturating_add(Weight::from_parts(1_232_322, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(11))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -627,14 +627,14 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 	fn new_era(v: u32, n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + n * (716 ±0) + v * (3594 ±0)`
-		//  Estimated: `456136 + n * (3566 ±4) + v * (3566 ±40)`
-		// Minimum execution time: 520_430_000 picoseconds.
-		Weight::from_parts(527_125_000, 0)
+		//  Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)`
+		// Minimum execution time: 528_862_000 picoseconds.
+		Weight::from_parts(534_620_000, 0)
 			.saturating_add(Weight::from_parts(0, 456136))
-			// Standard Error: 1_974_092
-			.saturating_add(Weight::from_parts(64_885_491, 0).saturating_mul(v.into()))
-			// Standard Error: 196_707
-			.saturating_add(Weight::from_parts(18_100_326, 0).saturating_mul(n.into()))
+			// Standard Error: 2_005_553
+			.saturating_add(Weight::from_parts(65_586_008, 0).saturating_mul(v.into()))
+			// Standard Error: 199_842
+			.saturating_add(Weight::from_parts(18_155_389, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(184))
 			.saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -665,13 +665,13 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `3108 + n * (907 ±0) + v * (391 ±0)`
 		//  Estimated: `456136 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 33_917_323_000 picoseconds.
-		Weight::from_parts(34_173_565_000, 0)
+		// Minimum execution time: 33_532_110_000 picoseconds.
+		Weight::from_parts(33_926_321_000, 0)
 			.saturating_add(Weight::from_parts(0, 456136))
-			// Standard Error: 367_135
-			.saturating_add(Weight::from_parts(4_696_840, 0).saturating_mul(v.into()))
-			// Standard Error: 367_135
-			.saturating_add(Weight::from_parts(3_889_075, 0).saturating_mul(n.into()))
+			// Standard Error: 374_134
+			.saturating_add(Weight::from_parts(4_627_629, 0).saturating_mul(v.into()))
+			// Standard Error: 374_134
+			.saturating_add(Weight::from_parts(4_068_168, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(179))
 			.saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -688,11 +688,11 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `946 + v * (50 ±0)`
 		//  Estimated: `3510 + v * (2520 ±0)`
-		// Minimum execution time: 2_447_197_000 picoseconds.
-		Weight::from_parts(13_003_614, 0)
+		// Minimum execution time: 2_395_956_000 picoseconds.
+		Weight::from_parts(88_416_870, 0)
 			.saturating_add(Weight::from_parts(0, 3510))
-			// Standard Error: 9_738
-			.saturating_add(Weight::from_parts(4_953_442, 0).saturating_mul(v.into()))
+			// Standard Error: 8_731
+			.saturating_add(Weight::from_parts(4_750_956, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into())))
 			.saturating_add(Weight::from_parts(0, 2520).saturating_mul(v.into()))
@@ -703,6 +703,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 	/// Proof: `Staking::MinValidatorBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxValidatorsCount` (r:0 w:1)
 	/// Proof: `Staking::MaxValidatorsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::MaxStakedRewards` (r:0 w:1)
+	/// Proof: `Staking::MaxStakedRewards` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::ChillThreshold` (r:0 w:1)
 	/// Proof: `Staking::ChillThreshold` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxNominatorsCount` (r:0 w:1)
@@ -713,10 +715,10 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_714_000 picoseconds.
-		Weight::from_parts(3_956_000, 0)
+		// Minimum execution time: 3_761_000 picoseconds.
+		Weight::from_parts(4_013_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(6))
+			.saturating_add(T::DbWeight::get().writes(7))
 	}
 	/// Storage: `Staking::MinCommission` (r:0 w:1)
 	/// Proof: `Staking::MinCommission` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
@@ -724,6 +726,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 	/// Proof: `Staking::MinValidatorBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxValidatorsCount` (r:0 w:1)
 	/// Proof: `Staking::MaxValidatorsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::MaxStakedRewards` (r:0 w:1)
+	/// Proof: `Staking::MaxStakedRewards` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::ChillThreshold` (r:0 w:1)
 	/// Proof: `Staking::ChillThreshold` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxNominatorsCount` (r:0 w:1)
@@ -734,10 +738,10 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_361_000 picoseconds.
-		Weight::from_parts(3_632_000, 0)
+		// Minimum execution time: 3_325_000 picoseconds.
+		Weight::from_parts(3_519_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(6))
+			.saturating_add(T::DbWeight::get().writes(7))
 	}
 	/// Storage: `Staking::Bonded` (r:1 w:0)
 	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
@@ -765,8 +769,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1870`
 		//  Estimated: `6248`
-		// Minimum execution time: 65_329_000 picoseconds.
-		Weight::from_parts(67_247_000, 0)
+		// Minimum execution time: 63_583_000 picoseconds.
+		Weight::from_parts(65_917_000, 0)
 			.saturating_add(Weight::from_parts(0, 6248))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(6))
@@ -779,8 +783,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `658`
 		//  Estimated: `3510`
-		// Minimum execution time: 11_760_000 picoseconds.
-		Weight::from_parts(12_095_000, 0)
+		// Minimum execution time: 10_975_000 picoseconds.
+		Weight::from_parts(11_328_000, 0)
 			.saturating_add(Weight::from_parts(0, 3510))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -791,8 +795,8 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_256_000 picoseconds.
-		Weight::from_parts(2_378_000, 0)
+		// Minimum execution time: 1_954_000 picoseconds.
+		Weight::from_parts(2_081_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/prdoc/pr_1660.prdoc b/prdoc/pr_1660.prdoc
new file mode 100644
index 0000000000000000000000000000000000000000..dda38c9549595526bb438e9358ed792c6bc1406c
--- /dev/null
+++ b/prdoc/pr_1660.prdoc
@@ -0,0 +1,12 @@
+title: Implements a percentage cap on staking rewards from era inflation
+
+doc:
+  - audience: Runtime Dev
+    description: |
+      The `pallet-staking` exposes a new perbill configuration, `MaxStakersRewards`, which caps the
+      amount of era inflation that is distributed to the stakers. The remainder of the era
+      inflation is minted directly into `T::RewardRemainder` account. This allows the runtime to be
+      configured to assign a minimum inflation value per era to a specific account (e.g. treasury).
+
+crates: 
+ - name: pallet-staking 
diff --git a/substrate/frame/nomination-pools/test-staking/src/mock.rs b/substrate/frame/nomination-pools/test-staking/src/mock.rs
index d1b50b9f7aed0573b8351ff34d4f68eecf66c02c..ce97e13d640b63ed7da25ad36f8d2625e58d3c50 100644
--- a/substrate/frame/nomination-pools/test-staking/src/mock.rs
+++ b/substrate/frame/nomination-pools/test-staking/src/mock.rs
@@ -236,6 +236,7 @@ pub fn new_test_ext() -> sp_io::TestExternalities {
 			pallet_staking::ConfigOp::Noop,
 			pallet_staking::ConfigOp::Noop,
 			pallet_staking::ConfigOp::Noop,
+			pallet_staking::ConfigOp::Noop,
 		));
 	});
 
diff --git a/substrate/frame/staking/src/benchmarking.rs b/substrate/frame/staking/src/benchmarking.rs
index 7bcc68cdfe6f51c001959ba4f2fe2d28c9c7f0ed..a83060873973cbaf568fc729535ce514cd90fcd6 100644
--- a/substrate/frame/staking/src/benchmarking.rs
+++ b/substrate/frame/staking/src/benchmarking.rs
@@ -855,7 +855,8 @@ benchmarks! {
 		ConfigOp::Set(u32::MAX),
 		ConfigOp::Set(u32::MAX),
 		ConfigOp::Set(Percent::max_value()),
-		ConfigOp::Set(Perbill::max_value())
+		ConfigOp::Set(Perbill::max_value()),
+		ConfigOp::Set(Percent::max_value())
 	) verify {
 		assert_eq!(MinNominatorBond::<T>::get(), BalanceOf::<T>::max_value());
 		assert_eq!(MinValidatorBond::<T>::get(), BalanceOf::<T>::max_value());
@@ -863,6 +864,7 @@ benchmarks! {
 		assert_eq!(MaxValidatorsCount::<T>::get(), Some(u32::MAX));
 		assert_eq!(ChillThreshold::<T>::get(), Some(Percent::from_percent(100)));
 		assert_eq!(MinCommission::<T>::get(), Perbill::from_percent(100));
+		assert_eq!(MaxStakedRewards::<T>::get(), Some(Percent::from_percent(100)));
 	}
 
 	set_staking_configs_all_remove {
@@ -873,6 +875,7 @@ benchmarks! {
 		ConfigOp::Remove,
 		ConfigOp::Remove,
 		ConfigOp::Remove,
+		ConfigOp::Remove,
 		ConfigOp::Remove
 	) verify {
 		assert!(!MinNominatorBond::<T>::exists());
@@ -881,6 +884,7 @@ benchmarks! {
 		assert!(!MaxValidatorsCount::<T>::exists());
 		assert!(!ChillThreshold::<T>::exists());
 		assert!(!MinCommission::<T>::exists());
+		assert!(!MaxStakedRewards::<T>::exists());
 	}
 
 	chill_other {
@@ -904,6 +908,7 @@ benchmarks! {
 			ConfigOp::Set(0),
 			ConfigOp::Set(Percent::from_percent(0)),
 			ConfigOp::Set(Zero::zero()),
+			ConfigOp::Noop,
 		)?;
 
 		let caller = whitelisted_caller();
diff --git a/substrate/frame/staking/src/lib.rs b/substrate/frame/staking/src/lib.rs
index 09185a690be1657cc1fe749b00aad1b91baac76f..5a92b6c855f2d044e671d714d612ad1753ee3e28 100644
--- a/substrate/frame/staking/src/lib.rs
+++ b/substrate/frame/staking/src/lib.rs
@@ -202,6 +202,12 @@
 //! ```nocompile
 //! remaining_payout = max_yearly_inflation * total_tokens / era_per_year - staker_payout
 //! ```
+//!
+//! Note, however, that it is possible to set a cap on the total `staker_payout` for the era through
+//! the `MaxStakersRewards` storage type. The `era_payout` implementor must ensure that the
+//! `max_payout = remaining_payout + (staker_payout * max_stakers_rewards)`. The excess payout that
+//! is not allocated for stakers is the era remaining reward.
+//!
 //! The remaining reward is send to the configurable end-point [`Config::RewardRemainder`].
 //!
 //! ### Reward Calculation
@@ -897,8 +903,10 @@ impl<Balance: Default> EraPayout<Balance> for () {
 /// Adaptor to turn a `PiecewiseLinear` curve definition into an `EraPayout` impl, used for
 /// backwards compatibility.
 pub struct ConvertCurve<T>(sp_std::marker::PhantomData<T>);
-impl<Balance: AtLeast32BitUnsigned + Clone, T: Get<&'static PiecewiseLinear<'static>>>
-	EraPayout<Balance> for ConvertCurve<T>
+impl<Balance, T> EraPayout<Balance> for ConvertCurve<T>
+where
+	Balance: AtLeast32BitUnsigned + Clone + Copy,
+	T: Get<&'static PiecewiseLinear<'static>>,
 {
 	fn era_payout(
 		total_staked: Balance,
@@ -912,7 +920,7 @@ impl<Balance: AtLeast32BitUnsigned + Clone, T: Get<&'static PiecewiseLinear<'sta
 			// Duration of era; more than u64::MAX is rewarded as u64::MAX.
 			era_duration_millis,
 		);
-		let rest = max_payout.saturating_sub(validator_payout.clone());
+		let rest = max_payout.saturating_sub(validator_payout);
 		(validator_payout, rest)
 	}
 }
diff --git a/substrate/frame/staking/src/pallet/impls.rs b/substrate/frame/staking/src/pallet/impls.rs
index 165972a0560bbfebbcb0ce4ce8be8603530538e3..757c46f4faf93d0e5ac79c21741774b2e36d2a89 100644
--- a/substrate/frame/staking/src/pallet/impls.rs
+++ b/substrate/frame/staking/src/pallet/impls.rs
@@ -36,7 +36,7 @@ use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin};
 use pallet_session::historical;
 use sp_runtime::{
 	traits::{Bounded, Convert, One, SaturatedConversion, Saturating, StaticLookup, Zero},
-	Perbill,
+	Perbill, Percent,
 };
 use sp_staking::{
 	currency_to_vote::CurrencyToVote,
@@ -507,9 +507,18 @@ impl<T: Config> Pallet<T> {
 				.saturated_into::<u64>();
 			let staked = Self::eras_total_stake(&active_era.index);
 			let issuance = T::Currency::total_issuance();
+
 			let (validator_payout, remainder) =
 				T::EraPayout::era_payout(staked, issuance, era_duration);
 
+			let total_payout = validator_payout.saturating_add(remainder);
+			let max_staked_rewards =
+				MaxStakedRewards::<T>::get().unwrap_or(Percent::from_percent(100));
+
+			// apply cap to validators payout and add difference to remainder.
+			let validator_payout = validator_payout.min(max_staked_rewards * total_payout);
+			let remainder = total_payout.saturating_sub(validator_payout);
+
 			Self::deposit_event(Event::<T>::EraPaid {
 				era_index: active_era.index,
 				validator_payout,
diff --git a/substrate/frame/staking/src/pallet/mod.rs b/substrate/frame/staking/src/pallet/mod.rs
index 65e981058e6f41f3b463128ceb3666422427836e..e0213efd507fd46d6d7d8800b6d02c89229a13af 100644
--- a/substrate/frame/staking/src/pallet/mod.rs
+++ b/substrate/frame/staking/src/pallet/mod.rs
@@ -564,6 +564,12 @@ pub mod pallet {
 	#[pallet::getter(fn force_era)]
 	pub type ForceEra<T> = StorageValue<_, Forcing, ValueQuery>;
 
+	/// Maximum staked rewards, i.e. the percentage of the era inflation that
+	/// is used for stake rewards.
+	/// See [Era payout](./index.html#era-payout).
+	#[pallet::storage]
+	pub type MaxStakedRewards<T> = StorageValue<_, Percent, OptionQuery>;
+
 	/// The percentage of the slash that is distributed to reporters.
 	///
 	/// The rest of the slashed value is handled by the `Slash`.
@@ -1717,6 +1723,7 @@ pub mod pallet {
 			max_validator_count: ConfigOp<u32>,
 			chill_threshold: ConfigOp<Percent>,
 			min_commission: ConfigOp<Perbill>,
+			max_staked_rewards: ConfigOp<Percent>,
 		) -> DispatchResult {
 			ensure_root(origin)?;
 
@@ -1736,6 +1743,7 @@ pub mod pallet {
 			config_op_exp!(MaxValidatorsCount<T>, max_validator_count);
 			config_op_exp!(ChillThreshold<T>, chill_threshold);
 			config_op_exp!(MinCommission<T>, min_commission);
+			config_op_exp!(MaxStakedRewards<T>, max_staked_rewards);
 			Ok(())
 		}
 		/// Declare a `controller` to stop participating as either a validator or nominator.
diff --git a/substrate/frame/staking/src/tests.rs b/substrate/frame/staking/src/tests.rs
index 85ee7dd3bf59d9d96243f22b0463b465b4754fa7..3f4e28b1f6af0cdfac939cdc4e11ef5dcc1fd908 100644
--- a/substrate/frame/staking/src/tests.rs
+++ b/substrate/frame/staking/src/tests.rs
@@ -55,6 +55,7 @@ fn set_staking_configs_works() {
 			ConfigOp::Set(10),
 			ConfigOp::Set(20),
 			ConfigOp::Set(Percent::from_percent(75)),
+			ConfigOp::Set(Zero::zero()),
 			ConfigOp::Set(Zero::zero())
 		));
 		assert_eq!(MinNominatorBond::<Test>::get(), 1_500);
@@ -63,6 +64,7 @@ fn set_staking_configs_works() {
 		assert_eq!(MaxValidatorsCount::<Test>::get(), Some(20));
 		assert_eq!(ChillThreshold::<Test>::get(), Some(Percent::from_percent(75)));
 		assert_eq!(MinCommission::<Test>::get(), Perbill::from_percent(0));
+		assert_eq!(MaxStakedRewards::<Test>::get(), Some(Percent::from_percent(0)));
 
 		// noop does nothing
 		assert_storage_noop!(assert_ok!(Staking::set_staking_configs(
@@ -72,6 +74,7 @@ fn set_staking_configs_works() {
 			ConfigOp::Noop,
 			ConfigOp::Noop,
 			ConfigOp::Noop,
+			ConfigOp::Noop,
 			ConfigOp::Noop
 		)));
 
@@ -83,6 +86,7 @@ fn set_staking_configs_works() {
 			ConfigOp::Remove,
 			ConfigOp::Remove,
 			ConfigOp::Remove,
+			ConfigOp::Remove,
 			ConfigOp::Remove
 		));
 		assert_eq!(MinNominatorBond::<Test>::get(), 0);
@@ -91,6 +95,7 @@ fn set_staking_configs_works() {
 		assert_eq!(MaxValidatorsCount::<Test>::get(), None);
 		assert_eq!(ChillThreshold::<Test>::get(), None);
 		assert_eq!(MinCommission::<Test>::get(), Perbill::from_percent(0));
+		assert_eq!(MaxStakedRewards::<Test>::get(), None);
 	});
 }
 
@@ -1739,6 +1744,74 @@ fn rebond_emits_right_value_in_event() {
 	});
 }
 
+#[test]
+fn max_staked_rewards_default_works() {
+	ExtBuilder::default().build_and_execute(|| {
+		assert_eq!(<MaxStakedRewards<Test>>::get(), None);
+
+		let default_stakers_payout = current_total_payout_for_duration(reward_time_per_era());
+		assert!(default_stakers_payout > 0);
+		start_active_era(1);
+
+		// the final stakers reward is the same as the reward before applied the cap.
+		assert_eq!(ErasValidatorReward::<Test>::get(0).unwrap(), default_stakers_payout);
+
+		// which is the same behaviour if the `MaxStakedRewards` is set to 100%.
+		<MaxStakedRewards<Test>>::set(Some(Percent::from_parts(100)));
+
+		let default_stakers_payout = current_total_payout_for_duration(reward_time_per_era());
+		assert_eq!(ErasValidatorReward::<Test>::get(0).unwrap(), default_stakers_payout);
+	})
+}
+
+#[test]
+fn max_staked_rewards_works() {
+	ExtBuilder::default().nominate(true).build_and_execute(|| {
+		let max_staked_rewards = 10;
+
+		// sets new max staked rewards through set_staking_configs.
+		assert_ok!(Staking::set_staking_configs(
+			RuntimeOrigin::root(),
+			ConfigOp::Noop,
+			ConfigOp::Noop,
+			ConfigOp::Noop,
+			ConfigOp::Noop,
+			ConfigOp::Noop,
+			ConfigOp::Noop,
+			ConfigOp::Set(Percent::from_percent(max_staked_rewards)),
+		));
+
+		assert_eq!(<MaxStakedRewards<Test>>::get(), Some(Percent::from_percent(10)));
+
+		// check validators account state.
+		assert_eq!(Session::validators().len(), 2);
+		assert!(Session::validators().contains(&11) & Session::validators().contains(&21));
+		// balance of the mock treasury account is 0
+		assert_eq!(RewardRemainderUnbalanced::get(), 0);
+
+		let max_stakers_payout = current_total_payout_for_duration(reward_time_per_era());
+
+		start_active_era(1);
+
+		let treasury_payout = RewardRemainderUnbalanced::get();
+		let validators_payout = ErasValidatorReward::<Test>::get(0).unwrap();
+		let total_payout = treasury_payout + validators_payout;
+
+		// max stakers payout (without max staked rewards cap applied) is larger than the final
+		// validator rewards. The final payment and remainder should be adjusted by redestributing
+		// the era inflation to apply the cap...
+		assert!(max_stakers_payout > validators_payout);
+
+		// .. which means that the final validator payout is 10% of the total payout..
+		assert_eq!(validators_payout, Percent::from_percent(max_staked_rewards) * total_payout);
+		// .. and the remainder 90% goes to the treasury.
+		assert_eq!(
+			treasury_payout,
+			Percent::from_percent(100 - max_staked_rewards) * (treasury_payout + validators_payout)
+		);
+	})
+}
+
 #[test]
 fn reward_to_stake_works() {
 	ExtBuilder::default()
@@ -5543,7 +5616,8 @@ fn chill_other_works() {
 				ConfigOp::Remove,
 				ConfigOp::Remove,
 				ConfigOp::Remove,
-				ConfigOp::Remove
+				ConfigOp::Remove,
+				ConfigOp::Noop,
 			));
 
 			// Still can't chill these users
@@ -5564,7 +5638,8 @@ fn chill_other_works() {
 				ConfigOp::Set(10),
 				ConfigOp::Set(10),
 				ConfigOp::Noop,
-				ConfigOp::Noop
+				ConfigOp::Noop,
+				ConfigOp::Noop,
 			));
 
 			// Still can't chill these users
@@ -5585,7 +5660,8 @@ fn chill_other_works() {
 				ConfigOp::Remove,
 				ConfigOp::Remove,
 				ConfigOp::Noop,
-				ConfigOp::Noop
+				ConfigOp::Noop,
+				ConfigOp::Noop,
 			));
 
 			// Still can't chill these users
@@ -5606,7 +5682,8 @@ fn chill_other_works() {
 				ConfigOp::Set(10),
 				ConfigOp::Set(10),
 				ConfigOp::Set(Percent::from_percent(75)),
-				ConfigOp::Noop
+				ConfigOp::Noop,
+				ConfigOp::Noop,
 			));
 
 			// 16 people total because tests start with 2 active one
@@ -5652,6 +5729,7 @@ fn capped_stakers_works() {
 			ConfigOp::Set(max),
 			ConfigOp::Remove,
 			ConfigOp::Remove,
+			ConfigOp::Noop,
 		));
 
 		// can create `max - validator_count` validators
@@ -5722,6 +5800,7 @@ fn capped_stakers_works() {
 			ConfigOp::Remove,
 			ConfigOp::Noop,
 			ConfigOp::Noop,
+			ConfigOp::Noop,
 		));
 		assert_ok!(Staking::nominate(RuntimeOrigin::signed(last_nominator), vec![1]));
 		assert_ok!(Staking::validate(
@@ -5757,6 +5836,7 @@ fn min_commission_works() {
 			ConfigOp::Remove,
 			ConfigOp::Remove,
 			ConfigOp::Set(Perbill::from_percent(10)),
+			ConfigOp::Noop,
 		));
 
 		// can't make it less than 10 now
diff --git a/substrate/frame/staking/src/weights.rs b/substrate/frame/staking/src/weights.rs
index 7c9a050016406a5ae5b8f98bcd98b0093858628a..6f729e08ba5c839997cd81239f0e4bd39728df14 100644
--- a/substrate/frame/staking/src/weights.rs
+++ b/substrate/frame/staking/src/weights.rs
@@ -18,9 +18,9 @@
 //! Autogenerated weights for `pallet_staking`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-itmxxexx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-q7z7ruxr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
@@ -99,8 +99,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `927`
 		//  Estimated: `4764`
-		// Minimum execution time: 42_491_000 picoseconds.
-		Weight::from_parts(44_026_000, 4764)
+		// Minimum execution time: 42_042_000 picoseconds.
+		Weight::from_parts(43_292_000, 4764)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -120,8 +120,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1990`
 		//  Estimated: `8877`
-		// Minimum execution time: 88_756_000 picoseconds.
-		Weight::from_parts(91_000_000, 8877)
+		// Minimum execution time: 85_050_000 picoseconds.
+		Weight::from_parts(87_567_000, 8877)
 			.saturating_add(T::DbWeight::get().reads(9_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
@@ -147,8 +147,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2195`
 		//  Estimated: `8877`
-		// Minimum execution time: 91_331_000 picoseconds.
-		Weight::from_parts(94_781_000, 8877)
+		// Minimum execution time: 89_076_000 picoseconds.
+		Weight::from_parts(92_715_000, 8877)
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
@@ -167,10 +167,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1115`
 		//  Estimated: `4764`
-		// Minimum execution time: 42_495_000 picoseconds.
-		Weight::from_parts(44_189_470, 4764)
-			// Standard Error: 1_389
-			.saturating_add(Weight::from_parts(47_484, 0).saturating_mul(s.into()))
+		// Minimum execution time: 42_067_000 picoseconds.
+		Weight::from_parts(43_239_807, 4764)
+			// Standard Error: 831
+			.saturating_add(Weight::from_parts(46_257, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -207,10 +207,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 89_004_000 picoseconds.
-		Weight::from_parts(96_677_570, 6248)
-			// Standard Error: 4_635
-			.saturating_add(Weight::from_parts(1_387_718, 0).saturating_mul(s.into()))
+		// Minimum execution time: 86_490_000 picoseconds.
+		Weight::from_parts(95_358_751, 6248)
+			// Standard Error: 3_952
+			.saturating_add(Weight::from_parts(1_294_907, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(13_u64))
 			.saturating_add(T::DbWeight::get().writes(11_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -242,8 +242,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1372`
 		//  Estimated: `4556`
-		// Minimum execution time: 51_532_000 picoseconds.
-		Weight::from_parts(53_308_000, 4556)
+		// Minimum execution time: 50_326_000 picoseconds.
+		Weight::from_parts(52_253_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
@@ -256,10 +256,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1280 + k * (569 ±0)`
 		//  Estimated: `4556 + k * (3033 ±0)`
-		// Minimum execution time: 28_955_000 picoseconds.
-		Weight::from_parts(29_609_869, 4556)
-			// Standard Error: 6_793
-			.saturating_add(Weight::from_parts(6_412_124, 0).saturating_mul(k.into()))
+		// Minimum execution time: 29_305_000 picoseconds.
+		Weight::from_parts(32_199_604, 4556)
+			// Standard Error: 7_150
+			.saturating_add(Weight::from_parts(6_437_124, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into())))
@@ -292,10 +292,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1866 + n * (102 ±0)`
 		//  Estimated: `6248 + n * (2520 ±0)`
-		// Minimum execution time: 64_080_000 picoseconds.
-		Weight::from_parts(61_985_382, 6248)
-			// Standard Error: 13_320
-			.saturating_add(Weight::from_parts(4_030_513, 0).saturating_mul(n.into()))
+		// Minimum execution time: 63_267_000 picoseconds.
+		Weight::from_parts(61_741_404, 6248)
+			// Standard Error: 12_955
+			.saturating_add(Weight::from_parts(3_811_743, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
@@ -319,8 +319,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1650`
 		//  Estimated: `6248`
-		// Minimum execution time: 54_194_000 picoseconds.
-		Weight::from_parts(55_578_000, 6248)
+		// Minimum execution time: 52_862_000 picoseconds.
+		Weight::from_parts(54_108_000, 6248)
 			.saturating_add(T::DbWeight::get().reads(8_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
@@ -334,8 +334,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `902`
 		//  Estimated: `4556`
-		// Minimum execution time: 16_597_000 picoseconds.
-		Weight::from_parts(16_980_000, 4556)
+		// Minimum execution time: 16_350_000 picoseconds.
+		Weight::from_parts(16_802_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -349,8 +349,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `969`
 		//  Estimated: `4556`
-		// Minimum execution time: 20_626_000 picoseconds.
-		Weight::from_parts(21_242_000, 4556)
+		// Minimum execution time: 19_981_000 picoseconds.
+		Weight::from_parts(20_539_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -362,8 +362,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `902`
 		//  Estimated: `4556`
-		// Minimum execution time: 19_972_000 picoseconds.
-		Weight::from_parts(20_470_000, 4556)
+		// Minimum execution time: 19_304_000 picoseconds.
+		Weight::from_parts(20_000_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -373,8 +373,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_571_000 picoseconds.
-		Weight::from_parts(2_720_000, 0)
+		// Minimum execution time: 2_568_000 picoseconds.
+		Weight::from_parts(2_708_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -383,8 +383,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_056_000 picoseconds.
-		Weight::from_parts(8_413_000, 0)
+		// Minimum execution time: 7_950_000 picoseconds.
+		Weight::from_parts(8_348_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -393,8 +393,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_162_000 picoseconds.
-		Weight::from_parts(8_497_000, 0)
+		// Minimum execution time: 7_967_000 picoseconds.
+		Weight::from_parts(8_222_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -403,8 +403,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_320_000 picoseconds.
-		Weight::from_parts(8_564_000, 0)
+		// Minimum execution time: 8_006_000 picoseconds.
+		Weight::from_parts(8_440_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::Invulnerables` (r:0 w:1)
@@ -414,10 +414,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_470_000 picoseconds.
-		Weight::from_parts(3_110_242, 0)
-			// Standard Error: 63
-			.saturating_add(Weight::from_parts(11_786, 0).saturating_mul(v.into()))
+		// Minimum execution time: 2_524_000 picoseconds.
+		Weight::from_parts(3_123_608, 0)
+			// Standard Error: 59
+			.saturating_add(Weight::from_parts(11_596, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::Ledger` (r:5900 w:11800)
@@ -431,10 +431,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1356 + i * (151 ±0)`
 		//  Estimated: `990 + i * (3566 ±0)`
-		// Minimum execution time: 2_101_000 picoseconds.
-		Weight::from_parts(2_238_000, 990)
-			// Standard Error: 56_753
-			.saturating_add(Weight::from_parts(18_404_902, 0).saturating_mul(i.into()))
+		// Minimum execution time: 2_092_000 picoseconds.
+		Weight::from_parts(2_258_000, 990)
+			// Standard Error: 32_695
+			.saturating_add(Weight::from_parts(16_669_219, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3566).saturating_mul(i.into()))
@@ -472,10 +472,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 86_765_000 picoseconds.
-		Weight::from_parts(95_173_565, 6248)
-			// Standard Error: 4_596
-			.saturating_add(Weight::from_parts(1_354_849, 0).saturating_mul(s.into()))
+		// Minimum execution time: 84_275_000 picoseconds.
+		Weight::from_parts(92_512_416, 6248)
+			// Standard Error: 3_633
+			.saturating_add(Weight::from_parts(1_315_923, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(13_u64))
 			.saturating_add(T::DbWeight::get().writes(12_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -488,10 +488,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `66672`
 		//  Estimated: `70137`
-		// Minimum execution time: 104_490_000 picoseconds.
-		Weight::from_parts(1_162_956_951, 70137)
-			// Standard Error: 76_760
-			.saturating_add(Weight::from_parts(6_485_569, 0).saturating_mul(s.into()))
+		// Minimum execution time: 101_707_000 picoseconds.
+		Weight::from_parts(912_819_462, 70137)
+			// Standard Error: 57_547
+			.saturating_add(Weight::from_parts(4_856_799, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -528,10 +528,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `33297 + n * (377 ±0)`
 		//  Estimated: `30944 + n * (3774 ±0)`
-		// Minimum execution time: 144_790_000 picoseconds.
-		Weight::from_parts(36_764_791, 30944)
-			// Standard Error: 89_592
-			.saturating_add(Weight::from_parts(49_620_105, 0).saturating_mul(n.into()))
+		// Minimum execution time: 138_657_000 picoseconds.
+		Weight::from_parts(167_173_445, 30944)
+			// Standard Error: 25_130
+			.saturating_add(Weight::from_parts(44_566_012, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(14_u64))
 			.saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
@@ -555,10 +555,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1991 + l * (7 ±0)`
 		//  Estimated: `8877`
-		// Minimum execution time: 81_768_000 picoseconds.
-		Weight::from_parts(85_332_982, 8877)
-			// Standard Error: 5_380
-			.saturating_add(Weight::from_parts(70_298, 0).saturating_mul(l.into()))
+		// Minimum execution time: 80_061_000 picoseconds.
+		Weight::from_parts(82_836_434, 8877)
+			// Standard Error: 4_348
+			.saturating_add(Weight::from_parts(75_744, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(9_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
@@ -593,10 +593,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 96_123_000 picoseconds.
-		Weight::from_parts(100_278_672, 6248)
-			// Standard Error: 3_487
-			.saturating_add(Weight::from_parts(1_326_503, 0).saturating_mul(s.into()))
+		// Minimum execution time: 92_560_000 picoseconds.
+		Weight::from_parts(97_684_741, 6248)
+			// Standard Error: 3_361
+			.saturating_add(Weight::from_parts(1_292_732, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(11_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -642,12 +642,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + n * (720 ±0) + v * (3598 ±0)`
 		//  Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 572_893_000 picoseconds.
-		Weight::from_parts(578_010_000, 512390)
-			// Standard Error: 2_094_268
-			.saturating_add(Weight::from_parts(68_419_710, 0).saturating_mul(v.into()))
-			// Standard Error: 208_682
-			.saturating_add(Weight::from_parts(18_826_175, 0).saturating_mul(n.into()))
+		// Minimum execution time: 564_963_000 picoseconds.
+		Weight::from_parts(569_206_000, 512390)
+			// Standard Error: 2_033_235
+			.saturating_add(Weight::from_parts(68_025_841, 0).saturating_mul(v.into()))
+			// Standard Error: 202_600
+			.saturating_add(Weight::from_parts(17_916_770, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(206_u64))
 			.saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -678,12 +678,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `3175 + n * (911 ±0) + v * (395 ±0)`
 		//  Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 33_836_205_000 picoseconds.
-		Weight::from_parts(34_210_443_000, 512390)
-			// Standard Error: 441_692
-			.saturating_add(Weight::from_parts(6_122_533, 0).saturating_mul(v.into()))
-			// Standard Error: 441_692
-			.saturating_add(Weight::from_parts(4_418_264, 0).saturating_mul(n.into()))
+		// Minimum execution time: 32_196_540_000 picoseconds.
+		Weight::from_parts(32_341_871_000, 512390)
+			// Standard Error: 354_657
+			.saturating_add(Weight::from_parts(5_143_440, 0).saturating_mul(v.into()))
+			// Standard Error: 354_657
+			.saturating_add(Weight::from_parts(3_328_189, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(201_u64))
 			.saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -700,10 +700,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `979 + v * (50 ±0)`
 		//  Estimated: `3510 + v * (2520 ±0)`
-		// Minimum execution time: 2_454_689_000 picoseconds.
-		Weight::from_parts(161_771_064, 3510)
-			// Standard Error: 31_022
-			.saturating_add(Weight::from_parts(4_820_158, 0).saturating_mul(v.into()))
+		// Minimum execution time: 2_381_903_000 picoseconds.
+		Weight::from_parts(32_693_059, 3510)
+			// Standard Error: 10_000
+			.saturating_add(Weight::from_parts(4_736_173, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into())))
 			.saturating_add(Weight::from_parts(0, 2520).saturating_mul(v.into()))
@@ -724,8 +724,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_073_000 picoseconds.
-		Weight::from_parts(5_452_000, 0)
+		// Minimum execution time: 5_434_000 picoseconds.
+		Weight::from_parts(5_742_000, 0)
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
 	/// Storage: `Staking::MinCommission` (r:0 w:1)
@@ -744,8 +744,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_465_000 picoseconds.
-		Weight::from_parts(4_832_000, 0)
+		// Minimum execution time: 4_588_000 picoseconds.
+		Weight::from_parts(4_854_000, 0)
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
 	/// Storage: `Staking::Bonded` (r:1 w:0)
@@ -774,8 +774,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1939`
 		//  Estimated: `6248`
-		// Minimum execution time: 71_239_000 picoseconds.
-		Weight::from_parts(74_649_000, 6248)
+		// Minimum execution time: 68_780_000 picoseconds.
+		Weight::from_parts(71_479_000, 6248)
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
@@ -787,8 +787,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `691`
 		//  Estimated: `3510`
-		// Minimum execution time: 12_525_000 picoseconds.
-		Weight::from_parts(13_126_000, 3510)
+		// Minimum execution time: 12_268_000 picoseconds.
+		Weight::from_parts(12_661_000, 3510)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -798,8 +798,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_918_000 picoseconds.
-		Weight::from_parts(3_176_000, 0)
+		// Minimum execution time: 3_071_000 picoseconds.
+		Weight::from_parts(3_334_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
@@ -820,8 +820,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `927`
 		//  Estimated: `4764`
-		// Minimum execution time: 42_491_000 picoseconds.
-		Weight::from_parts(44_026_000, 4764)
+		// Minimum execution time: 42_042_000 picoseconds.
+		Weight::from_parts(43_292_000, 4764)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
@@ -841,8 +841,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1990`
 		//  Estimated: `8877`
-		// Minimum execution time: 88_756_000 picoseconds.
-		Weight::from_parts(91_000_000, 8877)
+		// Minimum execution time: 85_050_000 picoseconds.
+		Weight::from_parts(87_567_000, 8877)
 			.saturating_add(RocksDbWeight::get().reads(9_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
@@ -868,8 +868,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2195`
 		//  Estimated: `8877`
-		// Minimum execution time: 91_331_000 picoseconds.
-		Weight::from_parts(94_781_000, 8877)
+		// Minimum execution time: 89_076_000 picoseconds.
+		Weight::from_parts(92_715_000, 8877)
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
@@ -888,10 +888,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1115`
 		//  Estimated: `4764`
-		// Minimum execution time: 42_495_000 picoseconds.
-		Weight::from_parts(44_189_470, 4764)
-			// Standard Error: 1_389
-			.saturating_add(Weight::from_parts(47_484, 0).saturating_mul(s.into()))
+		// Minimum execution time: 42_067_000 picoseconds.
+		Weight::from_parts(43_239_807, 4764)
+			// Standard Error: 831
+			.saturating_add(Weight::from_parts(46_257, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -928,10 +928,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 89_004_000 picoseconds.
-		Weight::from_parts(96_677_570, 6248)
-			// Standard Error: 4_635
-			.saturating_add(Weight::from_parts(1_387_718, 0).saturating_mul(s.into()))
+		// Minimum execution time: 86_490_000 picoseconds.
+		Weight::from_parts(95_358_751, 6248)
+			// Standard Error: 3_952
+			.saturating_add(Weight::from_parts(1_294_907, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(13_u64))
 			.saturating_add(RocksDbWeight::get().writes(11_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -963,8 +963,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1372`
 		//  Estimated: `4556`
-		// Minimum execution time: 51_532_000 picoseconds.
-		Weight::from_parts(53_308_000, 4556)
+		// Minimum execution time: 50_326_000 picoseconds.
+		Weight::from_parts(52_253_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
@@ -977,10 +977,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1280 + k * (569 ±0)`
 		//  Estimated: `4556 + k * (3033 ±0)`
-		// Minimum execution time: 28_955_000 picoseconds.
-		Weight::from_parts(29_609_869, 4556)
-			// Standard Error: 6_793
-			.saturating_add(Weight::from_parts(6_412_124, 0).saturating_mul(k.into()))
+		// Minimum execution time: 29_305_000 picoseconds.
+		Weight::from_parts(32_199_604, 4556)
+			// Standard Error: 7_150
+			.saturating_add(Weight::from_parts(6_437_124, 0).saturating_mul(k.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(k.into())))
@@ -1013,10 +1013,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1866 + n * (102 ±0)`
 		//  Estimated: `6248 + n * (2520 ±0)`
-		// Minimum execution time: 64_080_000 picoseconds.
-		Weight::from_parts(61_985_382, 6248)
-			// Standard Error: 13_320
-			.saturating_add(Weight::from_parts(4_030_513, 0).saturating_mul(n.into()))
+		// Minimum execution time: 63_267_000 picoseconds.
+		Weight::from_parts(61_741_404, 6248)
+			// Standard Error: 12_955
+			.saturating_add(Weight::from_parts(3_811_743, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
@@ -1040,8 +1040,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1650`
 		//  Estimated: `6248`
-		// Minimum execution time: 54_194_000 picoseconds.
-		Weight::from_parts(55_578_000, 6248)
+		// Minimum execution time: 52_862_000 picoseconds.
+		Weight::from_parts(54_108_000, 6248)
 			.saturating_add(RocksDbWeight::get().reads(8_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
@@ -1055,8 +1055,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `902`
 		//  Estimated: `4556`
-		// Minimum execution time: 16_597_000 picoseconds.
-		Weight::from_parts(16_980_000, 4556)
+		// Minimum execution time: 16_350_000 picoseconds.
+		Weight::from_parts(16_802_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1070,8 +1070,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `969`
 		//  Estimated: `4556`
-		// Minimum execution time: 20_626_000 picoseconds.
-		Weight::from_parts(21_242_000, 4556)
+		// Minimum execution time: 19_981_000 picoseconds.
+		Weight::from_parts(20_539_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1083,8 +1083,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `902`
 		//  Estimated: `4556`
-		// Minimum execution time: 19_972_000 picoseconds.
-		Weight::from_parts(20_470_000, 4556)
+		// Minimum execution time: 19_304_000 picoseconds.
+		Weight::from_parts(20_000_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -1094,8 +1094,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_571_000 picoseconds.
-		Weight::from_parts(2_720_000, 0)
+		// Minimum execution time: 2_568_000 picoseconds.
+		Weight::from_parts(2_708_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -1104,8 +1104,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_056_000 picoseconds.
-		Weight::from_parts(8_413_000, 0)
+		// Minimum execution time: 7_950_000 picoseconds.
+		Weight::from_parts(8_348_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -1114,8 +1114,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_162_000 picoseconds.
-		Weight::from_parts(8_497_000, 0)
+		// Minimum execution time: 7_967_000 picoseconds.
+		Weight::from_parts(8_222_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -1124,8 +1124,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_320_000 picoseconds.
-		Weight::from_parts(8_564_000, 0)
+		// Minimum execution time: 8_006_000 picoseconds.
+		Weight::from_parts(8_440_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::Invulnerables` (r:0 w:1)
@@ -1135,10 +1135,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_470_000 picoseconds.
-		Weight::from_parts(3_110_242, 0)
-			// Standard Error: 63
-			.saturating_add(Weight::from_parts(11_786, 0).saturating_mul(v.into()))
+		// Minimum execution time: 2_524_000 picoseconds.
+		Weight::from_parts(3_123_608, 0)
+			// Standard Error: 59
+			.saturating_add(Weight::from_parts(11_596, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::Ledger` (r:5900 w:11800)
@@ -1152,10 +1152,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1356 + i * (151 ±0)`
 		//  Estimated: `990 + i * (3566 ±0)`
-		// Minimum execution time: 2_101_000 picoseconds.
-		Weight::from_parts(2_238_000, 990)
-			// Standard Error: 56_753
-			.saturating_add(Weight::from_parts(18_404_902, 0).saturating_mul(i.into()))
+		// Minimum execution time: 2_092_000 picoseconds.
+		Weight::from_parts(2_258_000, 990)
+			// Standard Error: 32_695
+			.saturating_add(Weight::from_parts(16_669_219, 0).saturating_mul(i.into()))
 			.saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3566).saturating_mul(i.into()))
@@ -1193,10 +1193,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 86_765_000 picoseconds.
-		Weight::from_parts(95_173_565, 6248)
-			// Standard Error: 4_596
-			.saturating_add(Weight::from_parts(1_354_849, 0).saturating_mul(s.into()))
+		// Minimum execution time: 84_275_000 picoseconds.
+		Weight::from_parts(92_512_416, 6248)
+			// Standard Error: 3_633
+			.saturating_add(Weight::from_parts(1_315_923, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(13_u64))
 			.saturating_add(RocksDbWeight::get().writes(12_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -1209,10 +1209,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `66672`
 		//  Estimated: `70137`
-		// Minimum execution time: 104_490_000 picoseconds.
-		Weight::from_parts(1_162_956_951, 70137)
-			// Standard Error: 76_760
-			.saturating_add(Weight::from_parts(6_485_569, 0).saturating_mul(s.into()))
+		// Minimum execution time: 101_707_000 picoseconds.
+		Weight::from_parts(912_819_462, 70137)
+			// Standard Error: 57_547
+			.saturating_add(Weight::from_parts(4_856_799, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1249,10 +1249,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `33297 + n * (377 ±0)`
 		//  Estimated: `30944 + n * (3774 ±0)`
-		// Minimum execution time: 144_790_000 picoseconds.
-		Weight::from_parts(36_764_791, 30944)
-			// Standard Error: 89_592
-			.saturating_add(Weight::from_parts(49_620_105, 0).saturating_mul(n.into()))
+		// Minimum execution time: 138_657_000 picoseconds.
+		Weight::from_parts(167_173_445, 30944)
+			// Standard Error: 25_130
+			.saturating_add(Weight::from_parts(44_566_012, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(14_u64))
 			.saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
@@ -1276,10 +1276,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1991 + l * (7 ±0)`
 		//  Estimated: `8877`
-		// Minimum execution time: 81_768_000 picoseconds.
-		Weight::from_parts(85_332_982, 8877)
-			// Standard Error: 5_380
-			.saturating_add(Weight::from_parts(70_298, 0).saturating_mul(l.into()))
+		// Minimum execution time: 80_061_000 picoseconds.
+		Weight::from_parts(82_836_434, 8877)
+			// Standard Error: 4_348
+			.saturating_add(Weight::from_parts(75_744, 0).saturating_mul(l.into()))
 			.saturating_add(RocksDbWeight::get().reads(9_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
@@ -1314,10 +1314,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 96_123_000 picoseconds.
-		Weight::from_parts(100_278_672, 6248)
-			// Standard Error: 3_487
-			.saturating_add(Weight::from_parts(1_326_503, 0).saturating_mul(s.into()))
+		// Minimum execution time: 92_560_000 picoseconds.
+		Weight::from_parts(97_684_741, 6248)
+			// Standard Error: 3_361
+			.saturating_add(Weight::from_parts(1_292_732, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(11_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -1363,12 +1363,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + n * (720 ±0) + v * (3598 ±0)`
 		//  Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 572_893_000 picoseconds.
-		Weight::from_parts(578_010_000, 512390)
-			// Standard Error: 2_094_268
-			.saturating_add(Weight::from_parts(68_419_710, 0).saturating_mul(v.into()))
-			// Standard Error: 208_682
-			.saturating_add(Weight::from_parts(18_826_175, 0).saturating_mul(n.into()))
+		// Minimum execution time: 564_963_000 picoseconds.
+		Weight::from_parts(569_206_000, 512390)
+			// Standard Error: 2_033_235
+			.saturating_add(Weight::from_parts(68_025_841, 0).saturating_mul(v.into()))
+			// Standard Error: 202_600
+			.saturating_add(Weight::from_parts(17_916_770, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(206_u64))
 			.saturating_add(RocksDbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -1399,12 +1399,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `3175 + n * (911 ±0) + v * (395 ±0)`
 		//  Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 33_836_205_000 picoseconds.
-		Weight::from_parts(34_210_443_000, 512390)
-			// Standard Error: 441_692
-			.saturating_add(Weight::from_parts(6_122_533, 0).saturating_mul(v.into()))
-			// Standard Error: 441_692
-			.saturating_add(Weight::from_parts(4_418_264, 0).saturating_mul(n.into()))
+		// Minimum execution time: 32_196_540_000 picoseconds.
+		Weight::from_parts(32_341_871_000, 512390)
+			// Standard Error: 354_657
+			.saturating_add(Weight::from_parts(5_143_440, 0).saturating_mul(v.into()))
+			// Standard Error: 354_657
+			.saturating_add(Weight::from_parts(3_328_189, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(201_u64))
 			.saturating_add(RocksDbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -1421,10 +1421,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `979 + v * (50 ±0)`
 		//  Estimated: `3510 + v * (2520 ±0)`
-		// Minimum execution time: 2_454_689_000 picoseconds.
-		Weight::from_parts(161_771_064, 3510)
-			// Standard Error: 31_022
-			.saturating_add(Weight::from_parts(4_820_158, 0).saturating_mul(v.into()))
+		// Minimum execution time: 2_381_903_000 picoseconds.
+		Weight::from_parts(32_693_059, 3510)
+			// Standard Error: 10_000
+			.saturating_add(Weight::from_parts(4_736_173, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(v.into())))
 			.saturating_add(Weight::from_parts(0, 2520).saturating_mul(v.into()))
@@ -1445,8 +1445,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_073_000 picoseconds.
-		Weight::from_parts(5_452_000, 0)
+		// Minimum execution time: 5_434_000 picoseconds.
+		Weight::from_parts(5_742_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
 	/// Storage: `Staking::MinCommission` (r:0 w:1)
@@ -1465,8 +1465,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_465_000 picoseconds.
-		Weight::from_parts(4_832_000, 0)
+		// Minimum execution time: 4_588_000 picoseconds.
+		Weight::from_parts(4_854_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
 	/// Storage: `Staking::Bonded` (r:1 w:0)
@@ -1495,8 +1495,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1939`
 		//  Estimated: `6248`
-		// Minimum execution time: 71_239_000 picoseconds.
-		Weight::from_parts(74_649_000, 6248)
+		// Minimum execution time: 68_780_000 picoseconds.
+		Weight::from_parts(71_479_000, 6248)
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
@@ -1508,8 +1508,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `691`
 		//  Estimated: `3510`
-		// Minimum execution time: 12_525_000 picoseconds.
-		Weight::from_parts(13_126_000, 3510)
+		// Minimum execution time: 12_268_000 picoseconds.
+		Weight::from_parts(12_661_000, 3510)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1519,8 +1519,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_918_000 picoseconds.
-		Weight::from_parts(3_176_000, 0)
+		// Minimum execution time: 3_071_000 picoseconds.
+		Weight::from_parts(3_334_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 }