From fc4c67161b19efb7986a5e98ee421070d78455d0 Mon Sep 17 00:00:00 2001
From: zjb0807 <zjb0807@qq.com>
Date: Thu, 30 Sep 2021 21:22:54 +0800
Subject: [PATCH] Fix democracy on-initialize weight (#9890)

* fix democracy on-initialize weight

* fix tests

* add base weight on LaunchPeriod

* fix fmt check

* trigger GitHub actions

* trigger GitHub actions

* update weights
---
 substrate/frame/democracy/src/benchmarking.rs |  34 ++-
 substrate/frame/democracy/src/lib.rs          |  25 +-
 substrate/frame/democracy/src/weights.rs      | 227 ++++++++++--------
 3 files changed, 173 insertions(+), 113 deletions(-)

diff --git a/substrate/frame/democracy/src/benchmarking.rs b/substrate/frame/democracy/src/benchmarking.rs
index a00e6f4686f..63d409dac25 100644
--- a/substrate/frame/democracy/src/benchmarking.rs
+++ b/substrate/frame/democracy/src/benchmarking.rs
@@ -422,7 +422,39 @@ benchmarks! {
 		assert_eq!(Democracy::<T>::referendum_count(), r, "referenda not created");
 		assert_eq!(Democracy::<T>::lowest_unbaked(), 0, "invalid referenda init");
 
-	}: { Democracy::<T>::on_initialize(0u32.into()) }
+	}: { Democracy::<T>::on_initialize(1u32.into()) }
+	verify {
+		// All should be on going
+		for i in 0 .. r {
+			if let Some(value) = ReferendumInfoOf::<T>::get(i) {
+				match value {
+					ReferendumInfo::Finished { .. } => return Err("Referendum has been finished".into()),
+					ReferendumInfo::Ongoing(_) => (),
+				}
+			}
+		}
+	}
+
+	on_initialize_base_with_launch_period {
+		let r in 1 .. MAX_REFERENDUMS;
+
+		for i in 0..r {
+			add_referendum::<T>(i)?;
+		}
+
+		for (key, mut info) in ReferendumInfoOf::<T>::iter() {
+			if let ReferendumInfo::Ongoing(ref mut status) = info {
+				status.end += 100u32.into();
+			}
+			ReferendumInfoOf::<T>::insert(key, info);
+		}
+
+		assert_eq!(Democracy::<T>::referendum_count(), r, "referenda not created");
+		assert_eq!(Democracy::<T>::lowest_unbaked(), 0, "invalid referenda init");
+
+		let block_number = T::LaunchPeriod::get();
+
+	}: { Democracy::<T>::on_initialize(block_number) }
 	verify {
 		// All should be on going
 		for i in 0 .. r {
diff --git a/substrate/frame/democracy/src/lib.rs b/substrate/frame/democracy/src/lib.rs
index 8bc6921c4f8..24f823a17e1 100644
--- a/substrate/frame/democracy/src/lib.rs
+++ b/substrate/frame/democracy/src/lib.rs
@@ -1726,7 +1726,8 @@ impl<T: Config> Pallet<T> {
 	///
 	///
 	/// # <weight>
-	/// If a referendum is launched or maturing, this will take full block weight. Otherwise:
+	/// If a referendum is launched or maturing, this will take full block weight if queue is not
+	/// empty. Otherwise:
 	/// - Complexity: `O(R)` where `R` is the number of unbaked referenda.
 	/// - Db reads: `LastTabledWasExternal`, `NextExternal`, `PublicProps`, `account`,
 	///   `ReferendumCount`, `LowestUnbaked`
@@ -1737,18 +1738,24 @@ impl<T: Config> Pallet<T> {
 		let max_block_weight = T::BlockWeights::get().max_block;
 		let mut weight = 0;
 
+		let next = Self::lowest_unbaked();
+		let last = Self::referendum_count();
+		let r = last.saturating_sub(next);
+
 		// pick out another public referendum if it's time.
 		if (now % T::LaunchPeriod::get()).is_zero() {
-			// Errors come from the queue being empty. we don't really care about that, and even if
-			// we did, there is nothing we can do here.
-			let _ = Self::launch_next(now);
-			weight = max_block_weight;
+			// Errors come from the queue being empty. If the queue is not empty, it will take
+			// full block weight.
+			if Self::launch_next(now).is_ok() {
+				weight = max_block_weight;
+			} else {
+				weight =
+					weight.saturating_add(T::WeightInfo::on_initialize_base_with_launch_period(r));
+			}
+		} else {
+			weight = weight.saturating_add(T::WeightInfo::on_initialize_base(r));
 		}
 
-		let next = Self::lowest_unbaked();
-		let last = Self::referendum_count();
-		let r = last.saturating_sub(next);
-		weight = weight.saturating_add(T::WeightInfo::on_initialize_base(r));
 		// tally up votes for any expiring referenda.
 		for (index, info) in Self::maturing_referenda_at_inner(now, next..last).into_iter() {
 			let approved = Self::bake_referendum(now, index, info)?;
diff --git a/substrate/frame/democracy/src/weights.rs b/substrate/frame/democracy/src/weights.rs
index e3f22f4fc0a..638852d3c7e 100644
--- a/substrate/frame/democracy/src/weights.rs
+++ b/substrate/frame/democracy/src/weights.rs
@@ -18,7 +18,7 @@
 //! Autogenerated weights for pallet_democracy
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2021-08-07, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2021-09-30, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
 
 // Executed Command:
@@ -60,6 +60,7 @@ pub trait WeightInfo {
 	fn cancel_referendum() -> Weight;
 	fn cancel_queued(r: u32, ) -> Weight;
 	fn on_initialize_base(r: u32, ) -> Weight;
+	fn on_initialize_base_with_launch_period(r: u32, ) -> Weight;
 	fn delegate(r: u32, ) -> Weight;
 	fn undelegate(r: u32, ) -> Weight;
 	fn clear_public_proposals() -> Weight;
@@ -80,15 +81,15 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Democracy Blacklist (r:1 w:0)
 	// Storage: Democracy DepositOf (r:0 w:1)
 	fn propose() -> Weight {
-		(65_665_000 as Weight)
+		(67_388_000 as Weight)
 			.saturating_add(T::DbWeight::get().reads(3 as Weight))
 			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy DepositOf (r:1 w:1)
 	fn second(s: u32, ) -> Weight {
-		(40_003_000 as Weight)
-			// Standard Error: 1_000
-			.saturating_add((180_000 as Weight).saturating_mul(s as Weight))
+		(41_157_000 as Weight)
+			// Standard Error: 0
+			.saturating_add((157_000 as Weight).saturating_mul(s as Weight))
 			.saturating_add(T::DbWeight::get().reads(1 as Weight))
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
@@ -96,9 +97,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Democracy VotingOf (r:1 w:1)
 	// Storage: Balances Locks (r:1 w:1)
 	fn vote_new(r: u32, ) -> Weight {
-		(45_465_000 as Weight)
+		(46_406_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((220_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((170_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(3 as Weight))
 			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
@@ -106,16 +107,16 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Democracy VotingOf (r:1 w:1)
 	// Storage: Balances Locks (r:1 w:1)
 	fn vote_existing(r: u32, ) -> Weight {
-		(45_112_000 as Weight)
+		(46_071_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((222_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((166_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(3 as Weight))
 			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	// Storage: Democracy Cancellations (r:1 w:1)
 	fn emergency_cancel() -> Weight {
-		(26_651_000 as Weight)
+		(27_699_000 as Weight)
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(2 as Weight))
 	}
@@ -126,45 +127,45 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Democracy DepositOf (r:1 w:1)
 	// Storage: System Account (r:1 w:1)
 	fn blacklist(p: u32, ) -> Weight {
-		(77_737_000 as Weight)
+		(82_703_000 as Weight)
 			// Standard Error: 4_000
-			.saturating_add((512_000 as Weight).saturating_mul(p as Weight))
+			.saturating_add((500_000 as Weight).saturating_mul(p as Weight))
 			.saturating_add(T::DbWeight::get().reads(5 as Weight))
 			.saturating_add(T::DbWeight::get().writes(6 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:1 w:1)
 	// Storage: Democracy Blacklist (r:1 w:0)
 	fn external_propose(v: u32, ) -> Weight {
-		(13_126_000 as Weight)
+		(13_747_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((89_000 as Weight).saturating_mul(v as Weight))
+			.saturating_add((76_000 as Weight).saturating_mul(v as Weight))
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:0 w:1)
 	fn external_propose_majority() -> Weight {
-		(2_923_000 as Weight)
+		(3_070_000 as Weight)
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:0 w:1)
 	fn external_propose_default() -> Weight {
-		(2_889_000 as Weight)
+		(3_080_000 as Weight)
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:1 w:1)
 	// Storage: Democracy ReferendumCount (r:1 w:1)
 	// Storage: Democracy ReferendumInfoOf (r:0 w:1)
 	fn fast_track() -> Weight {
-		(27_598_000 as Weight)
+		(29_129_000 as Weight)
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:1 w:1)
 	// Storage: Democracy Blacklist (r:1 w:1)
 	fn veto_external(v: u32, ) -> Weight {
-		(28_416_000 as Weight)
+		(30_105_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((132_000 as Weight).saturating_mul(v as Weight))
+			.saturating_add((104_000 as Weight).saturating_mul(v as Weight))
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(2 as Weight))
 	}
@@ -172,36 +173,46 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Democracy DepositOf (r:1 w:1)
 	// Storage: System Account (r:1 w:1)
 	fn cancel_proposal(p: u32, ) -> Weight {
-		(52_836_000 as Weight)
-			// Standard Error: 2_000
-			.saturating_add((478_000 as Weight).saturating_mul(p as Weight))
+		(55_228_000 as Weight)
+			// Standard Error: 1_000
+			.saturating_add((457_000 as Weight).saturating_mul(p as Weight))
 			.saturating_add(T::DbWeight::get().reads(3 as Weight))
 			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy ReferendumInfoOf (r:0 w:1)
 	fn cancel_referendum() -> Weight {
-		(16_891_000 as Weight)
+		(17_319_000 as Weight)
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Scheduler Lookup (r:1 w:1)
 	// Storage: Scheduler Agenda (r:1 w:1)
 	fn cancel_queued(r: u32, ) -> Weight {
-		(30_504_000 as Weight)
-			// Standard Error: 2_000
-			.saturating_add((1_480_000 as Weight).saturating_mul(r as Weight))
+		(29_738_000 as Weight)
+			// Standard Error: 1_000
+			.saturating_add((1_153_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(2 as Weight))
 	}
-	// Storage: Democracy LastTabledWasExternal (r:1 w:0)
-	// Storage: Democracy NextExternal (r:1 w:0)
-	// Storage: Democracy PublicProps (r:1 w:0)
 	// Storage: Democracy LowestUnbaked (r:1 w:0)
 	// Storage: Democracy ReferendumCount (r:1 w:0)
 	// Storage: Democracy ReferendumInfoOf (r:1 w:0)
 	fn on_initialize_base(r: u32, ) -> Weight {
-		(6_259_000 as Weight)
+		(2_165_000 as Weight)
+			// Standard Error: 3_000
+			.saturating_add((5_577_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add(T::DbWeight::get().reads(2 as Weight))
+			.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(r as Weight)))
+	}
+	// Storage: Democracy LowestUnbaked (r:1 w:0)
+	// Storage: Democracy ReferendumCount (r:1 w:0)
+	// Storage: Democracy LastTabledWasExternal (r:1 w:0)
+	// Storage: Democracy NextExternal (r:1 w:0)
+	// Storage: Democracy PublicProps (r:1 w:0)
+	// Storage: Democracy ReferendumInfoOf (r:1 w:0)
+	fn on_initialize_base_with_launch_period(r: u32, ) -> Weight {
+		(9_396_000 as Weight)
 			// Standard Error: 4_000
-			.saturating_add((5_032_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((5_604_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(5 as Weight))
 			.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(r as Weight)))
 	}
@@ -209,9 +220,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	// Storage: Balances Locks (r:1 w:1)
 	fn delegate(r: u32, ) -> Weight {
-		(51_719_000 as Weight)
-			// Standard Error: 5_000
-			.saturating_add((7_210_000 as Weight).saturating_mul(r as Weight))
+		(57_783_000 as Weight)
+			// Standard Error: 4_000
+			.saturating_add((7_623_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(4 as Weight))
 			.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(r as Weight)))
 			.saturating_add(T::DbWeight::get().writes(4 as Weight))
@@ -220,9 +231,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Democracy VotingOf (r:2 w:2)
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	fn undelegate(r: u32, ) -> Weight {
-		(23_203_000 as Weight)
-			// Standard Error: 5_000
-			.saturating_add((7_206_000 as Weight).saturating_mul(r as Weight))
+		(26_027_000 as Weight)
+			// Standard Error: 4_000
+			.saturating_add((7_593_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(r as Weight)))
 			.saturating_add(T::DbWeight::get().writes(2 as Weight))
@@ -230,31 +241,31 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	}
 	// Storage: Democracy PublicProps (r:0 w:1)
 	fn clear_public_proposals() -> Weight {
-		(3_127_000 as Weight)
+		(2_780_000 as Weight)
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy Preimages (r:1 w:1)
 	fn note_preimage(b: u32, ) -> Weight {
-		(44_130_000 as Weight)
+		(46_416_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((3_000 as Weight).saturating_mul(b as Weight))
+			.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
 			.saturating_add(T::DbWeight::get().reads(1 as Weight))
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy Preimages (r:1 w:1)
 	fn note_imminent_preimage(b: u32, ) -> Weight {
-		(28_756_000 as Weight)
+		(29_735_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((3_000 as Weight).saturating_mul(b as Weight))
+			.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
 			.saturating_add(T::DbWeight::get().reads(1 as Weight))
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy Preimages (r:1 w:1)
 	// Storage: System Account (r:1 w:0)
 	fn reap_preimage(b: u32, ) -> Weight {
-		(39_922_000 as Weight)
+		(41_276_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
+			.saturating_add((1_000 as Weight).saturating_mul(b as Weight))
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(1 as Weight))
 	}
@@ -262,9 +273,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Balances Locks (r:1 w:1)
 	// Storage: System Account (r:1 w:1)
 	fn unlock_remove(r: u32, ) -> Weight {
-		(38_621_000 as Weight)
+		(40_348_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((110_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((60_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(3 as Weight))
 			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
@@ -272,27 +283,27 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	// Storage: Balances Locks (r:1 w:1)
 	// Storage: System Account (r:1 w:1)
 	fn unlock_set(r: u32, ) -> Weight {
-		(36_631_000 as Weight)
+		(37_475_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((214_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((151_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(3 as Weight))
 			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	// Storage: Democracy VotingOf (r:1 w:1)
 	fn remove_vote(r: u32, ) -> Weight {
-		(21_025_000 as Weight)
+		(19_970_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((195_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((153_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(2 as Weight))
 	}
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	// Storage: Democracy VotingOf (r:1 w:1)
 	fn remove_other_vote(r: u32, ) -> Weight {
-		(20_628_000 as Weight)
+		(20_094_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((214_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((157_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(T::DbWeight::get().reads(2 as Weight))
 			.saturating_add(T::DbWeight::get().writes(2 as Weight))
 	}
@@ -305,15 +316,15 @@ impl WeightInfo for () {
 	// Storage: Democracy Blacklist (r:1 w:0)
 	// Storage: Democracy DepositOf (r:0 w:1)
 	fn propose() -> Weight {
-		(65_665_000 as Weight)
+		(67_388_000 as Weight)
 			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy DepositOf (r:1 w:1)
 	fn second(s: u32, ) -> Weight {
-		(40_003_000 as Weight)
-			// Standard Error: 1_000
-			.saturating_add((180_000 as Weight).saturating_mul(s as Weight))
+		(41_157_000 as Weight)
+			// Standard Error: 0
+			.saturating_add((157_000 as Weight).saturating_mul(s as Weight))
 			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
@@ -321,9 +332,9 @@ impl WeightInfo for () {
 	// Storage: Democracy VotingOf (r:1 w:1)
 	// Storage: Balances Locks (r:1 w:1)
 	fn vote_new(r: u32, ) -> Weight {
-		(45_465_000 as Weight)
+		(46_406_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((220_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((170_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
@@ -331,16 +342,16 @@ impl WeightInfo for () {
 	// Storage: Democracy VotingOf (r:1 w:1)
 	// Storage: Balances Locks (r:1 w:1)
 	fn vote_existing(r: u32, ) -> Weight {
-		(45_112_000 as Weight)
+		(46_071_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((222_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((166_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	// Storage: Democracy Cancellations (r:1 w:1)
 	fn emergency_cancel() -> Weight {
-		(26_651_000 as Weight)
+		(27_699_000 as Weight)
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
 	}
@@ -351,45 +362,45 @@ impl WeightInfo for () {
 	// Storage: Democracy DepositOf (r:1 w:1)
 	// Storage: System Account (r:1 w:1)
 	fn blacklist(p: u32, ) -> Weight {
-		(77_737_000 as Weight)
+		(82_703_000 as Weight)
 			// Standard Error: 4_000
-			.saturating_add((512_000 as Weight).saturating_mul(p as Weight))
+			.saturating_add((500_000 as Weight).saturating_mul(p as Weight))
 			.saturating_add(RocksDbWeight::get().reads(5 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(6 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:1 w:1)
 	// Storage: Democracy Blacklist (r:1 w:0)
 	fn external_propose(v: u32, ) -> Weight {
-		(13_126_000 as Weight)
+		(13_747_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((89_000 as Weight).saturating_mul(v as Weight))
+			.saturating_add((76_000 as Weight).saturating_mul(v as Weight))
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:0 w:1)
 	fn external_propose_majority() -> Weight {
-		(2_923_000 as Weight)
+		(3_070_000 as Weight)
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:0 w:1)
 	fn external_propose_default() -> Weight {
-		(2_889_000 as Weight)
+		(3_080_000 as Weight)
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:1 w:1)
 	// Storage: Democracy ReferendumCount (r:1 w:1)
 	// Storage: Democracy ReferendumInfoOf (r:0 w:1)
 	fn fast_track() -> Weight {
-		(27_598_000 as Weight)
+		(29_129_000 as Weight)
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy NextExternal (r:1 w:1)
 	// Storage: Democracy Blacklist (r:1 w:1)
 	fn veto_external(v: u32, ) -> Weight {
-		(28_416_000 as Weight)
+		(30_105_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((132_000 as Weight).saturating_mul(v as Weight))
+			.saturating_add((104_000 as Weight).saturating_mul(v as Weight))
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
 	}
@@ -397,36 +408,46 @@ impl WeightInfo for () {
 	// Storage: Democracy DepositOf (r:1 w:1)
 	// Storage: System Account (r:1 w:1)
 	fn cancel_proposal(p: u32, ) -> Weight {
-		(52_836_000 as Weight)
-			// Standard Error: 2_000
-			.saturating_add((478_000 as Weight).saturating_mul(p as Weight))
+		(55_228_000 as Weight)
+			// Standard Error: 1_000
+			.saturating_add((457_000 as Weight).saturating_mul(p as Weight))
 			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy ReferendumInfoOf (r:0 w:1)
 	fn cancel_referendum() -> Weight {
-		(16_891_000 as Weight)
+		(17_319_000 as Weight)
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Scheduler Lookup (r:1 w:1)
 	// Storage: Scheduler Agenda (r:1 w:1)
 	fn cancel_queued(r: u32, ) -> Weight {
-		(30_504_000 as Weight)
-			// Standard Error: 2_000
-			.saturating_add((1_480_000 as Weight).saturating_mul(r as Weight))
+		(29_738_000 as Weight)
+			// Standard Error: 1_000
+			.saturating_add((1_153_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
 	}
-	// Storage: Democracy LastTabledWasExternal (r:1 w:0)
-	// Storage: Democracy NextExternal (r:1 w:0)
-	// Storage: Democracy PublicProps (r:1 w:0)
 	// Storage: Democracy LowestUnbaked (r:1 w:0)
 	// Storage: Democracy ReferendumCount (r:1 w:0)
 	// Storage: Democracy ReferendumInfoOf (r:1 w:0)
 	fn on_initialize_base(r: u32, ) -> Weight {
-		(6_259_000 as Weight)
+		(2_165_000 as Weight)
+			// Standard Error: 3_000
+			.saturating_add((5_577_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
+			.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(r as Weight)))
+	}
+	// Storage: Democracy LowestUnbaked (r:1 w:0)
+	// Storage: Democracy ReferendumCount (r:1 w:0)
+	// Storage: Democracy LastTabledWasExternal (r:1 w:0)
+	// Storage: Democracy NextExternal (r:1 w:0)
+	// Storage: Democracy PublicProps (r:1 w:0)
+	// Storage: Democracy ReferendumInfoOf (r:1 w:0)
+	fn on_initialize_base_with_launch_period(r: u32, ) -> Weight {
+		(9_396_000 as Weight)
 			// Standard Error: 4_000
-			.saturating_add((5_032_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((5_604_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(5 as Weight))
 			.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(r as Weight)))
 	}
@@ -434,9 +455,9 @@ impl WeightInfo for () {
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	// Storage: Balances Locks (r:1 w:1)
 	fn delegate(r: u32, ) -> Weight {
-		(51_719_000 as Weight)
-			// Standard Error: 5_000
-			.saturating_add((7_210_000 as Weight).saturating_mul(r as Weight))
+		(57_783_000 as Weight)
+			// Standard Error: 4_000
+			.saturating_add((7_623_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(4 as Weight))
 			.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(r as Weight)))
 			.saturating_add(RocksDbWeight::get().writes(4 as Weight))
@@ -445,9 +466,9 @@ impl WeightInfo for () {
 	// Storage: Democracy VotingOf (r:2 w:2)
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	fn undelegate(r: u32, ) -> Weight {
-		(23_203_000 as Weight)
-			// Standard Error: 5_000
-			.saturating_add((7_206_000 as Weight).saturating_mul(r as Weight))
+		(26_027_000 as Weight)
+			// Standard Error: 4_000
+			.saturating_add((7_593_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(r as Weight)))
 			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
@@ -455,31 +476,31 @@ impl WeightInfo for () {
 	}
 	// Storage: Democracy PublicProps (r:0 w:1)
 	fn clear_public_proposals() -> Weight {
-		(3_127_000 as Weight)
+		(2_780_000 as Weight)
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy Preimages (r:1 w:1)
 	fn note_preimage(b: u32, ) -> Weight {
-		(44_130_000 as Weight)
+		(46_416_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((3_000 as Weight).saturating_mul(b as Weight))
+			.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
 			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy Preimages (r:1 w:1)
 	fn note_imminent_preimage(b: u32, ) -> Weight {
-		(28_756_000 as Weight)
+		(29_735_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((3_000 as Weight).saturating_mul(b as Weight))
+			.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
 			.saturating_add(RocksDbWeight::get().reads(1 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
 	// Storage: Democracy Preimages (r:1 w:1)
 	// Storage: System Account (r:1 w:0)
 	fn reap_preimage(b: u32, ) -> Weight {
-		(39_922_000 as Weight)
+		(41_276_000 as Weight)
 			// Standard Error: 0
-			.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
+			.saturating_add((1_000 as Weight).saturating_mul(b as Weight))
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(1 as Weight))
 	}
@@ -487,9 +508,9 @@ impl WeightInfo for () {
 	// Storage: Balances Locks (r:1 w:1)
 	// Storage: System Account (r:1 w:1)
 	fn unlock_remove(r: u32, ) -> Weight {
-		(38_621_000 as Weight)
+		(40_348_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((110_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((60_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
@@ -497,27 +518,27 @@ impl WeightInfo for () {
 	// Storage: Balances Locks (r:1 w:1)
 	// Storage: System Account (r:1 w:1)
 	fn unlock_set(r: u32, ) -> Weight {
-		(36_631_000 as Weight)
+		(37_475_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((214_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((151_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	// Storage: Democracy VotingOf (r:1 w:1)
 	fn remove_vote(r: u32, ) -> Weight {
-		(21_025_000 as Weight)
+		(19_970_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((195_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((153_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
 	}
 	// Storage: Democracy ReferendumInfoOf (r:1 w:1)
 	// Storage: Democracy VotingOf (r:1 w:1)
 	fn remove_other_vote(r: u32, ) -> Weight {
-		(20_628_000 as Weight)
+		(20_094_000 as Weight)
 			// Standard Error: 1_000
-			.saturating_add((214_000 as Weight).saturating_mul(r as Weight))
+			.saturating_add((157_000 as Weight).saturating_mul(r as Weight))
 			.saturating_add(RocksDbWeight::get().reads(2 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(2 as Weight))
 	}
-- 
GitLab