From 04f88f5b03038acbdeb7475f543baf6b06d64f74 Mon Sep 17 00:00:00 2001
From: "polka.dom" <polkadotdom@gmail.com>
Date: Thu, 16 May 2024 09:53:36 -0400
Subject: [PATCH] Remove pallet::getter usage from the democracy pallet (#4472)

As per #3326, removes usage of the pallet::getter macro from the
democracy pallet. The syntax `StorageItem::<T, I>::get()` should be used
instead.

cc @muraca
---
 prdoc/pr_4472.prdoc                           | 14 ++++
 substrate/frame/democracy/src/benchmarking.rs | 40 ++++-----
 substrate/frame/democracy/src/lib.rs          | 84 +++++++++----------
 substrate/frame/democracy/src/tests.rs        |  2 +-
 .../frame/democracy/src/tests/cancellation.rs |  8 +-
 .../democracy/src/tests/external_proposing.rs |  8 +-
 .../democracy/src/tests/fast_tracking.rs      |  8 +-
 .../frame/democracy/src/tests/metadata.rs     |  8 +-
 .../democracy/src/tests/public_proposals.rs   |  4 +-
 .../frame/democracy/src/tests/scheduling.rs   | 12 +--
 substrate/frame/democracy/src/tests/voting.rs |  4 +-
 11 files changed, 100 insertions(+), 92 deletions(-)
 create mode 100644 prdoc/pr_4472.prdoc

diff --git a/prdoc/pr_4472.prdoc b/prdoc/pr_4472.prdoc
new file mode 100644
index 00000000000..cd7527d73d6
--- /dev/null
+++ b/prdoc/pr_4472.prdoc
@@ -0,0 +1,14 @@
+# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
+# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
+
+title: Remove `pallet::getter` usage from pallet-democracy
+
+doc:
+  - audience: Runtime Dev
+    description: |
+      This PR removes the `pallet::getter`s from `pallet-democracy`.
+      The syntax `StorageItem::<T, I>::get()` should be used instead.
+
+crates:
+  - name: pallet-democracy
+    bump: major
diff --git a/substrate/frame/democracy/src/benchmarking.rs b/substrate/frame/democracy/src/benchmarking.rs
index aa66137ad88..799d614c37f 100644
--- a/substrate/frame/democracy/src/benchmarking.rs
+++ b/substrate/frame/democracy/src/benchmarking.rs
@@ -108,7 +108,7 @@ benchmarks! {
 		whitelist_account!(caller);
 	}: _(RawOrigin::Signed(caller), proposal, value)
 	verify {
-		assert_eq!(Democracy::<T>::public_props().len(), p as usize, "Proposals not created.");
+		assert_eq!(PublicProps::<T>::get().len(), p as usize, "Proposals not created.");
 	}
 
 	second {
@@ -122,12 +122,12 @@ benchmarks! {
 			Democracy::<T>::second(RawOrigin::Signed(seconder).into(), 0)?;
 		}
 
-		let deposits = Democracy::<T>::deposit_of(0).ok_or("Proposal not created")?;
+		let deposits = DepositOf::<T>::get(0).ok_or("Proposal not created")?;
 		assert_eq!(deposits.0.len(), (T::MaxDeposits::get() - 1) as usize, "Seconds not recorded");
 		whitelist_account!(caller);
 	}: _(RawOrigin::Signed(caller), 0)
 	verify {
-		let deposits = Democracy::<T>::deposit_of(0).ok_or("Proposal not created")?;
+		let deposits = DepositOf::<T>::get(0).ok_or("Proposal not created")?;
 		assert_eq!(deposits.0.len(), (T::MaxDeposits::get()) as usize, "`second` benchmark did not work");
 	}
 
@@ -175,7 +175,7 @@ benchmarks! {
 		// Change vote from aye to nay
 		let nay = Vote { aye: false, conviction: Conviction::Locked1x };
 		let new_vote = AccountVote::Standard { vote: nay, balance: 1000u32.into() };
-		let ref_index = Democracy::<T>::referendum_count() - 1;
+		let ref_index = ReferendumCount::<T>::get() - 1;
 
 		// This tests when a user changes a vote
 		whitelist_account!(caller);
@@ -186,7 +186,7 @@ benchmarks! {
 			_ => return Err("Votes are not direct".into()),
 		};
 		assert_eq!(votes.len(), T::MaxVotes::get() as usize, "Vote was incorrectly added");
-		let referendum_info = Democracy::<T>::referendum_info(ref_index)
+		let referendum_info = ReferendumInfoOf::<T>::get(ref_index)
 			.ok_or("referendum doesn't exist")?;
 		let tally =  match referendum_info {
 			ReferendumInfo::Ongoing(r) => r.tally,
@@ -261,7 +261,7 @@ benchmarks! {
 	}: _<T::RuntimeOrigin>(origin, proposal)
 	verify {
 		// External proposal created
-		ensure!(<NextExternal<T>>::exists(), "External proposal didn't work");
+		ensure!(NextExternal::<T>::exists(), "External proposal didn't work");
 	}
 
 	external_propose_majority {
@@ -271,7 +271,7 @@ benchmarks! {
 	}: _<T::RuntimeOrigin>(origin, proposal)
 	verify {
 		// External proposal created
-		ensure!(<NextExternal<T>>::exists(), "External proposal didn't work");
+		ensure!(NextExternal::<T>::exists(), "External proposal didn't work");
 	}
 
 	external_propose_default {
@@ -281,7 +281,7 @@ benchmarks! {
 	}: _<T::RuntimeOrigin>(origin, proposal)
 	verify {
 		// External proposal created
-		ensure!(<NextExternal<T>>::exists(), "External proposal didn't work");
+		ensure!(NextExternal::<T>::exists(), "External proposal didn't work");
 	}
 
 	fast_track {
@@ -303,7 +303,7 @@ benchmarks! {
 		let delay = 0u32;
 	}: _<T::RuntimeOrigin>(origin_fast_track, proposal_hash, voting_period, delay.into())
 	verify {
-		assert_eq!(Democracy::<T>::referendum_count(), 1, "referendum not created");
+		assert_eq!(ReferendumCount::<T>::get(), 1, "referendum not created");
 		assert_last_event::<T>(crate::Event::MetadataTransferred {
 			prev_owner: MetadataOwner::External,
 			owner: MetadataOwner::Referendum(0),
@@ -338,7 +338,7 @@ benchmarks! {
 	}: _<T::RuntimeOrigin>(origin, proposal_hash)
 	verify {
 		assert!(NextExternal::<T>::get().is_none());
-		let (_, new_vetoers) = <Blacklist<T>>::get(&proposal_hash).ok_or("no blacklist")?;
+		let (_, new_vetoers) = Blacklist::<T>::get(&proposal_hash).ok_or("no blacklist")?;
 		assert_eq!(new_vetoers.len(), T::MaxBlacklisted::get() as usize, "vetoers not added");
 	}
 
@@ -382,7 +382,7 @@ benchmarks! {
 			add_referendum::<T>(i);
 		}
 
-		assert_eq!(Democracy::<T>::referendum_count(), r, "referenda not created");
+		assert_eq!(ReferendumCount::<T>::get(), r, "referenda not created");
 
 		// Launch external
 		LastTabledWasExternal::<T>::put(false);
@@ -393,15 +393,15 @@ benchmarks! {
 		let call = Call::<T>::external_propose_majority { proposal };
 		call.dispatch_bypass_filter(origin)?;
 		// External proposal created
-		ensure!(<NextExternal<T>>::exists(), "External proposal didn't work");
+		ensure!(NextExternal::<T>::exists(), "External proposal didn't work");
 
 		let block_number = T::LaunchPeriod::get();
 
 	}: { Democracy::<T>::on_initialize(block_number) }
 	verify {
 		// One extra because of next external
-		assert_eq!(Democracy::<T>::referendum_count(), r + 1, "referenda not created");
-		ensure!(!<NextExternal<T>>::exists(), "External wasn't taken");
+		assert_eq!(ReferendumCount::<T>::get(), r + 1, "referenda not created");
+		ensure!(!NextExternal::<T>::exists(), "External wasn't taken");
 
 		// All but the new next external should be finished
 		for i in 0 .. r {
@@ -422,7 +422,7 @@ benchmarks! {
 			add_referendum::<T>(i);
 		}
 
-		assert_eq!(Democracy::<T>::referendum_count(), r, "referenda not created");
+		assert_eq!(ReferendumCount::<T>::get(), r, "referenda not created");
 
 		// Launch public
 		assert!(add_proposal::<T>(r).is_ok(), "proposal not created");
@@ -433,7 +433,7 @@ benchmarks! {
 	}: { Democracy::<T>::on_initialize(block_number) }
 	verify {
 		// One extra because of next public
-		assert_eq!(Democracy::<T>::referendum_count(), r + 1, "proposal not accepted");
+		assert_eq!(ReferendumCount::<T>::get(), r + 1, "proposal not accepted");
 
 		// All should be finished
 		for i in 0 .. r {
@@ -461,8 +461,8 @@ benchmarks! {
 			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");
+		assert_eq!(ReferendumCount::<T>::get(), r, "referenda not created");
+		assert_eq!(LowestUnbaked::<T>::get(), 0, "invalid referenda init");
 
 	}: { Democracy::<T>::on_initialize(1u32.into()) }
 	verify {
@@ -491,8 +491,8 @@ benchmarks! {
 			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");
+		assert_eq!(ReferendumCount::<T>::get(), r, "referenda not created");
+		assert_eq!(LowestUnbaked::<T>::get(), 0, "invalid referenda init");
 
 		let block_number = T::LaunchPeriod::get();
 
diff --git a/substrate/frame/democracy/src/lib.rs b/substrate/frame/democracy/src/lib.rs
index f3d33a72f3a..19cdc754659 100644
--- a/substrate/frame/democracy/src/lib.rs
+++ b/substrate/frame/democracy/src/lib.rs
@@ -346,12 +346,10 @@ pub mod pallet {
 
 	/// The number of (public) proposals that have been made so far.
 	#[pallet::storage]
-	#[pallet::getter(fn public_prop_count)]
 	pub type PublicPropCount<T> = StorageValue<_, PropIndex, ValueQuery>;
 
 	/// The public proposals. Unsorted. The second item is the proposal.
 	#[pallet::storage]
-	#[pallet::getter(fn public_props)]
 	pub type PublicProps<T: Config> = StorageValue<
 		_,
 		BoundedVec<(PropIndex, BoundedCallOf<T>, T::AccountId), T::MaxProposals>,
@@ -362,7 +360,6 @@ pub mod pallet {
 	///
 	/// TWOX-NOTE: Safe, as increasing integer keys are safe.
 	#[pallet::storage]
-	#[pallet::getter(fn deposit_of)]
 	pub type DepositOf<T: Config> = StorageMap<
 		_,
 		Twox64Concat,
@@ -372,20 +369,17 @@ pub mod pallet {
 
 	/// The next free referendum index, aka the number of referenda started so far.
 	#[pallet::storage]
-	#[pallet::getter(fn referendum_count)]
 	pub type ReferendumCount<T> = StorageValue<_, ReferendumIndex, ValueQuery>;
 
 	/// The lowest referendum index representing an unbaked referendum. Equal to
 	/// `ReferendumCount` if there isn't a unbaked referendum.
 	#[pallet::storage]
-	#[pallet::getter(fn lowest_unbaked)]
 	pub type LowestUnbaked<T> = StorageValue<_, ReferendumIndex, ValueQuery>;
 
 	/// Information concerning any given referendum.
 	///
 	/// TWOX-NOTE: SAFE as indexes are not under an attacker’s control.
 	#[pallet::storage]
-	#[pallet::getter(fn referendum_info)]
 	pub type ReferendumInfoOf<T: Config> = StorageMap<
 		_,
 		Twox64Concat,
@@ -595,15 +589,15 @@ pub mod pallet {
 			let who = T::SubmitOrigin::ensure_origin(origin)?;
 			ensure!(value >= T::MinimumDeposit::get(), Error::<T>::ValueLow);
 
-			let index = Self::public_prop_count();
+			let index = PublicPropCount::<T>::get();
 			let real_prop_count = PublicProps::<T>::decode_len().unwrap_or(0) as u32;
 			let max_proposals = T::MaxProposals::get();
 			ensure!(real_prop_count < max_proposals, Error::<T>::TooMany);
 			let proposal_hash = proposal.hash();
 
-			if let Some((until, _)) = <Blacklist<T>>::get(proposal_hash) {
+			if let Some((until, _)) = Blacklist::<T>::get(proposal_hash) {
 				ensure!(
-					<frame_system::Pallet<T>>::block_number() >= until,
+					frame_system::Pallet::<T>::block_number() >= until,
 					Error::<T>::ProposalBlacklisted,
 				);
 			}
@@ -638,11 +632,11 @@ pub mod pallet {
 
 			let seconds = Self::len_of_deposit_of(proposal).ok_or(Error::<T>::ProposalMissing)?;
 			ensure!(seconds < T::MaxDeposits::get(), Error::<T>::TooMany);
-			let mut deposit = Self::deposit_of(proposal).ok_or(Error::<T>::ProposalMissing)?;
+			let mut deposit = DepositOf::<T>::get(proposal).ok_or(Error::<T>::ProposalMissing)?;
 			T::Currency::reserve(&who, deposit.1)?;
 			let ok = deposit.0.try_push(who.clone()).is_ok();
 			debug_assert!(ok, "`seconds` is below static limit; `try_insert` should succeed; qed");
-			<DepositOf<T>>::insert(proposal, deposit);
+			DepositOf::<T>::insert(proposal, deposit);
 			Self::deposit_event(Event::<T>::Seconded { seconder: who, prop_index: proposal });
 			Ok(())
 		}
@@ -683,9 +677,9 @@ pub mod pallet {
 
 			let status = Self::referendum_status(ref_index)?;
 			let h = status.proposal.hash();
-			ensure!(!<Cancellations<T>>::contains_key(h), Error::<T>::AlreadyCanceled);
+			ensure!(!Cancellations::<T>::contains_key(h), Error::<T>::AlreadyCanceled);
 
-			<Cancellations<T>>::insert(h, true);
+			Cancellations::<T>::insert(h, true);
 			Self::internal_cancel_referendum(ref_index);
 			Ok(())
 		}
@@ -703,14 +697,14 @@ pub mod pallet {
 			proposal: BoundedCallOf<T>,
 		) -> DispatchResult {
 			T::ExternalOrigin::ensure_origin(origin)?;
-			ensure!(!<NextExternal<T>>::exists(), Error::<T>::DuplicateProposal);
-			if let Some((until, _)) = <Blacklist<T>>::get(proposal.hash()) {
+			ensure!(!NextExternal::<T>::exists(), Error::<T>::DuplicateProposal);
+			if let Some((until, _)) = Blacklist::<T>::get(proposal.hash()) {
 				ensure!(
-					<frame_system::Pallet<T>>::block_number() >= until,
+					frame_system::Pallet::<T>::block_number() >= until,
 					Error::<T>::ProposalBlacklisted,
 				);
 			}
-			<NextExternal<T>>::put((proposal, VoteThreshold::SuperMajorityApprove));
+			NextExternal::<T>::put((proposal, VoteThreshold::SuperMajorityApprove));
 			Ok(())
 		}
 
@@ -732,7 +726,7 @@ pub mod pallet {
 			proposal: BoundedCallOf<T>,
 		) -> DispatchResult {
 			T::ExternalMajorityOrigin::ensure_origin(origin)?;
-			<NextExternal<T>>::put((proposal, VoteThreshold::SimpleMajority));
+			NextExternal::<T>::put((proposal, VoteThreshold::SimpleMajority));
 			Ok(())
 		}
 
@@ -754,7 +748,7 @@ pub mod pallet {
 			proposal: BoundedCallOf<T>,
 		) -> DispatchResult {
 			T::ExternalDefaultOrigin::ensure_origin(origin)?;
-			<NextExternal<T>>::put((proposal, VoteThreshold::SuperMajorityAgainst));
+			NextExternal::<T>::put((proposal, VoteThreshold::SuperMajorityAgainst));
 			Ok(())
 		}
 
@@ -800,15 +794,15 @@ pub mod pallet {
 
 			ensure!(voting_period > Zero::zero(), Error::<T>::VotingPeriodLow);
 			let (ext_proposal, threshold) =
-				<NextExternal<T>>::get().ok_or(Error::<T>::ProposalMissing)?;
+				NextExternal::<T>::get().ok_or(Error::<T>::ProposalMissing)?;
 			ensure!(
 				threshold != VoteThreshold::SuperMajorityApprove,
 				Error::<T>::NotSimpleMajority,
 			);
 			ensure!(proposal_hash == ext_proposal.hash(), Error::<T>::InvalidHash);
 
-			<NextExternal<T>>::kill();
-			let now = <frame_system::Pallet<T>>::block_number();
+			NextExternal::<T>::kill();
+			let now = frame_system::Pallet::<T>::block_number();
 			let ref_index = Self::inject_referendum(
 				now.saturating_add(voting_period),
 				ext_proposal,
@@ -840,7 +834,7 @@ pub mod pallet {
 			}
 
 			let mut existing_vetoers =
-				<Blacklist<T>>::get(&proposal_hash).map(|pair| pair.1).unwrap_or_default();
+				Blacklist::<T>::get(&proposal_hash).map(|pair| pair.1).unwrap_or_default();
 			let insert_position =
 				existing_vetoers.binary_search(&who).err().ok_or(Error::<T>::AlreadyVetoed)?;
 			existing_vetoers
@@ -848,11 +842,11 @@ pub mod pallet {
 				.map_err(|_| Error::<T>::TooMany)?;
 
 			let until =
-				<frame_system::Pallet<T>>::block_number().saturating_add(T::CooloffPeriod::get());
-			<Blacklist<T>>::insert(&proposal_hash, (until, existing_vetoers));
+				frame_system::Pallet::<T>::block_number().saturating_add(T::CooloffPeriod::get());
+			Blacklist::<T>::insert(&proposal_hash, (until, existing_vetoers));
 
 			Self::deposit_event(Event::<T>::Vetoed { who, proposal_hash, until });
-			<NextExternal<T>>::kill();
+			NextExternal::<T>::kill();
 			Self::clear_metadata(MetadataOwner::External);
 			Ok(())
 		}
@@ -943,7 +937,7 @@ pub mod pallet {
 		#[pallet::weight(T::WeightInfo::clear_public_proposals())]
 		pub fn clear_public_proposals(origin: OriginFor<T>) -> DispatchResult {
 			ensure_root(origin)?;
-			<PublicProps<T>>::kill();
+			PublicProps::<T>::kill();
 			Ok(())
 		}
 
@@ -1146,7 +1140,7 @@ pub mod pallet {
 		) -> DispatchResult {
 			match owner {
 				MetadataOwner::External => {
-					let (_, threshold) = <NextExternal<T>>::get().ok_or(Error::<T>::NoProposal)?;
+					let (_, threshold) = NextExternal::<T>::get().ok_or(Error::<T>::NoProposal)?;
 					Self::ensure_external_origin(threshold, origin)?;
 				},
 				MetadataOwner::Proposal(index) => {
@@ -1201,7 +1195,7 @@ impl<T: Config> Pallet<T> {
 	/// Get the amount locked in support of `proposal`; `None` if proposal isn't a valid proposal
 	/// index.
 	pub fn backing_for(proposal: PropIndex) -> Option<BalanceOf<T>> {
-		Self::deposit_of(proposal).map(|(l, d)| d.saturating_mul((l.len() as u32).into()))
+		DepositOf::<T>::get(proposal).map(|(l, d)| d.saturating_mul((l.len() as u32).into()))
 	}
 
 	/// Get all referenda ready for tally at block `n`.
@@ -1209,8 +1203,8 @@ impl<T: Config> Pallet<T> {
 		n: BlockNumberFor<T>,
 	) -> Vec<(ReferendumIndex, ReferendumStatus<BlockNumberFor<T>, BoundedCallOf<T>, BalanceOf<T>>)>
 	{
-		let next = Self::lowest_unbaked();
-		let last = Self::referendum_count();
+		let next = LowestUnbaked::<T>::get();
+		let last = ReferendumCount::<T>::get();
 		Self::maturing_referenda_at_inner(n, next..last)
 	}
 
@@ -1221,7 +1215,7 @@ impl<T: Config> Pallet<T> {
 	{
 		range
 			.into_iter()
-			.map(|i| (i, Self::referendum_info(i)))
+			.map(|i| (i, ReferendumInfoOf::<T>::get(i)))
 			.filter_map(|(i, maybe_info)| match maybe_info {
 				Some(ReferendumInfo::Ongoing(status)) => Some((i, status)),
 				_ => None,
@@ -1238,8 +1232,8 @@ impl<T: Config> Pallet<T> {
 		threshold: VoteThreshold,
 		delay: BlockNumberFor<T>,
 	) -> ReferendumIndex {
-		<Pallet<T>>::inject_referendum(
-			<frame_system::Pallet<T>>::block_number().saturating_add(T::VotingPeriod::get()),
+		Pallet::<T>::inject_referendum(
+			frame_system::Pallet::<T>::block_number().saturating_add(T::VotingPeriod::get()),
 			proposal,
 			threshold,
 			delay,
@@ -1529,12 +1523,12 @@ impl<T: Config> Pallet<T> {
 		threshold: VoteThreshold,
 		delay: BlockNumberFor<T>,
 	) -> ReferendumIndex {
-		let ref_index = Self::referendum_count();
+		let ref_index = ReferendumCount::<T>::get();
 		ReferendumCount::<T>::put(ref_index + 1);
 		let status =
 			ReferendumStatus { end, proposal, threshold, delay, tally: Default::default() };
 		let item = ReferendumInfo::Ongoing(status);
-		<ReferendumInfoOf<T>>::insert(ref_index, item);
+		ReferendumInfoOf::<T>::insert(ref_index, item);
 		Self::deposit_event(Event::<T>::Started { ref_index, threshold });
 		ref_index
 	}
@@ -1551,7 +1545,7 @@ impl<T: Config> Pallet<T> {
 
 	/// Table the waiting external proposal for a vote, if there is one.
 	fn launch_external(now: BlockNumberFor<T>) -> DispatchResult {
-		if let Some((proposal, threshold)) = <NextExternal<T>>::take() {
+		if let Some((proposal, threshold)) = NextExternal::<T>::take() {
 			LastTabledWasExternal::<T>::put(true);
 			Self::deposit_event(Event::<T>::ExternalTabled);
 			let ref_index = Self::inject_referendum(
@@ -1569,15 +1563,15 @@ impl<T: Config> Pallet<T> {
 
 	/// Table the waiting public proposal with the highest backing for a vote.
 	fn launch_public(now: BlockNumberFor<T>) -> DispatchResult {
-		let mut public_props = Self::public_props();
+		let mut public_props = PublicProps::<T>::get();
 		if let Some((winner_index, _)) = public_props.iter().enumerate().max_by_key(
 			// defensive only: All current public proposals have an amount locked
 			|x| Self::backing_for((x.1).0).defensive_unwrap_or_else(Zero::zero),
 		) {
 			let (prop_index, proposal, _) = public_props.swap_remove(winner_index);
-			<PublicProps<T>>::put(public_props);
+			PublicProps::<T>::put(public_props);
 
-			if let Some((depositors, deposit)) = <DepositOf<T>>::take(prop_index) {
+			if let Some((depositors, deposit)) = DepositOf::<T>::take(prop_index) {
 				// refund depositors
 				for d in depositors.iter() {
 					T::Currency::unreserve(d, deposit);
@@ -1642,8 +1636,8 @@ impl<T: Config> Pallet<T> {
 		let max_block_weight = T::BlockWeights::get().max_block;
 		let mut weight = Weight::zero();
 
-		let next = Self::lowest_unbaked();
-		let last = Self::referendum_count();
+		let next = LowestUnbaked::<T>::get();
+		let last = ReferendumCount::<T>::get();
 		let r = last.saturating_sub(next);
 
 		// pick out another public referendum if it's time.
@@ -1674,9 +1668,9 @@ impl<T: Config> Pallet<T> {
 		// * We shouldn't iterate more than `LaunchPeriod/VotingPeriod + 1` times because the number
 		//   of unbaked referendum is bounded by this number. In case those number have changed in a
 		//   runtime upgrade the formula should be adjusted but the bound should still be sensible.
-		<LowestUnbaked<T>>::mutate(|ref_index| {
+		LowestUnbaked::<T>::mutate(|ref_index| {
 			while *ref_index < last &&
-				Self::referendum_info(*ref_index)
+				ReferendumInfoOf::<T>::get(*ref_index)
 					.map_or(true, |info| matches!(info, ReferendumInfo::Finished { .. }))
 			{
 				*ref_index += 1
@@ -1692,7 +1686,7 @@ impl<T: Config> Pallet<T> {
 	fn len_of_deposit_of(proposal: PropIndex) -> Option<u32> {
 		// DepositOf first tuple element is a vec, decoding its len is equivalent to decode a
 		// `Compact<u32>`.
-		decode_compact_u32_at(&<DepositOf<T>>::hashed_key_for(proposal))
+		decode_compact_u32_at(&DepositOf::<T>::hashed_key_for(proposal))
 	}
 
 	/// Return a proposal of an index.
diff --git a/substrate/frame/democracy/src/tests.rs b/substrate/frame/democracy/src/tests.rs
index e2946ba9815..9303c0da504 100644
--- a/substrate/frame/democracy/src/tests.rs
+++ b/substrate/frame/democracy/src/tests.rs
@@ -194,7 +194,7 @@ pub fn new_test_ext() -> sp_io::TestExternalities {
 #[test]
 fn params_should_work() {
 	new_test_ext().execute_with(|| {
-		assert_eq!(Democracy::referendum_count(), 0);
+		assert_eq!(ReferendumCount::<Test>::get(), 0);
 		assert_eq!(Balances::free_balance(42), 0);
 		assert_eq!(Balances::total_issuance(), 210);
 	});
diff --git a/substrate/frame/democracy/src/tests/cancellation.rs b/substrate/frame/democracy/src/tests/cancellation.rs
index b4c42f9c790..eeb1df301db 100644
--- a/substrate/frame/democracy/src/tests/cancellation.rs
+++ b/substrate/frame/democracy/src/tests/cancellation.rs
@@ -30,14 +30,14 @@ fn cancel_referendum_should_work() {
 		);
 		assert_ok!(Democracy::vote(RuntimeOrigin::signed(1), r, aye(1)));
 		assert_ok!(Democracy::cancel_referendum(RuntimeOrigin::root(), r.into()));
-		assert_eq!(Democracy::lowest_unbaked(), 0);
+		assert_eq!(LowestUnbaked::<Test>::get(), 0);
 
 		next_block();
 
 		next_block();
 
-		assert_eq!(Democracy::lowest_unbaked(), 1);
-		assert_eq!(Democracy::lowest_unbaked(), Democracy::referendum_count());
+		assert_eq!(LowestUnbaked::<Test>::get(), 1);
+		assert_eq!(LowestUnbaked::<Test>::get(), ReferendumCount::<Test>::get());
 		assert_eq!(Balances::free_balance(42), 0);
 	});
 }
@@ -56,7 +56,7 @@ fn emergency_cancel_should_work() {
 
 		assert_noop!(Democracy::emergency_cancel(RuntimeOrigin::signed(3), r), BadOrigin);
 		assert_ok!(Democracy::emergency_cancel(RuntimeOrigin::signed(4), r));
-		assert!(Democracy::referendum_info(r).is_none());
+		assert!(ReferendumInfoOf::<Test>::get(r).is_none());
 
 		// some time later...
 
diff --git a/substrate/frame/democracy/src/tests/external_proposing.rs b/substrate/frame/democracy/src/tests/external_proposing.rs
index 08b497ab4b9..78ef2904e5b 100644
--- a/substrate/frame/democracy/src/tests/external_proposing.rs
+++ b/substrate/frame/democracy/src/tests/external_proposing.rs
@@ -24,12 +24,12 @@ fn veto_external_works() {
 	new_test_ext().execute_with(|| {
 		System::set_block_number(0);
 		assert_ok!(Democracy::external_propose(RuntimeOrigin::signed(2), set_balance_proposal(2),));
-		assert!(<NextExternal<Test>>::exists());
+		assert!(NextExternal::<Test>::exists());
 
 		let h = set_balance_proposal(2).hash();
 		assert_ok!(Democracy::veto_external(RuntimeOrigin::signed(3), h));
 		// cancelled.
-		assert!(!<NextExternal<Test>>::exists());
+		assert!(!NextExternal::<Test>::exists());
 		// fails - same proposal can't be resubmitted.
 		assert_noop!(
 			Democracy::external_propose(RuntimeOrigin::signed(2), set_balance_proposal(2),),
@@ -46,7 +46,7 @@ fn veto_external_works() {
 		fast_forward_to(2);
 		// works; as we're out of the cooloff period.
 		assert_ok!(Democracy::external_propose(RuntimeOrigin::signed(2), set_balance_proposal(2),));
-		assert!(<NextExternal<Test>>::exists());
+		assert!(NextExternal::<Test>::exists());
 
 		// 3 can't veto the same thing twice.
 		assert_noop!(
@@ -57,7 +57,7 @@ fn veto_external_works() {
 		// 4 vetoes.
 		assert_ok!(Democracy::veto_external(RuntimeOrigin::signed(4), h));
 		// cancelled again.
-		assert!(!<NextExternal<Test>>::exists());
+		assert!(!NextExternal::<Test>::exists());
 
 		fast_forward_to(3);
 		// same proposal fails as we're still in cooloff
diff --git a/substrate/frame/democracy/src/tests/fast_tracking.rs b/substrate/frame/democracy/src/tests/fast_tracking.rs
index 85e7792a4c2..89dce1dffe1 100644
--- a/substrate/frame/democracy/src/tests/fast_tracking.rs
+++ b/substrate/frame/democracy/src/tests/fast_tracking.rs
@@ -33,13 +33,13 @@ fn fast_track_referendum_works() {
 			set_balance_proposal(2)
 		));
 		let hash = note_preimage(1);
-		assert!(<MetadataOf<Test>>::get(MetadataOwner::External).is_none());
+		assert!(MetadataOf::<Test>::get(MetadataOwner::External).is_none());
 		assert_ok!(Democracy::set_metadata(
 			RuntimeOrigin::signed(3),
 			MetadataOwner::External,
 			Some(hash),
 		),);
-		assert!(<MetadataOf<Test>>::get(MetadataOwner::External).is_some());
+		assert!(MetadataOf::<Test>::get(MetadataOwner::External).is_some());
 		assert_noop!(Democracy::fast_track(RuntimeOrigin::signed(1), h, 3, 2), BadOrigin);
 		assert_ok!(Democracy::fast_track(RuntimeOrigin::signed(5), h, 2, 0));
 		assert_eq!(
@@ -53,8 +53,8 @@ fn fast_track_referendum_works() {
 			})
 		);
 		// metadata reset from the external proposal to the referendum.
-		assert!(<MetadataOf<Test>>::get(MetadataOwner::External).is_none());
-		assert!(<MetadataOf<Test>>::get(MetadataOwner::Referendum(0)).is_some());
+		assert!(MetadataOf::<Test>::get(MetadataOwner::External).is_none());
+		assert!(MetadataOf::<Test>::get(MetadataOwner::Referendum(0)).is_some());
 	});
 }
 
diff --git a/substrate/frame/democracy/src/tests/metadata.rs b/substrate/frame/democracy/src/tests/metadata.rs
index 1b6d66a8bc4..341f14e5586 100644
--- a/substrate/frame/democracy/src/tests/metadata.rs
+++ b/substrate/frame/democracy/src/tests/metadata.rs
@@ -33,7 +33,7 @@ fn set_external_metadata_works() {
 		);
 		// create an external proposal.
 		assert_ok!(Democracy::external_propose(RuntimeOrigin::signed(2), set_balance_proposal(2)));
-		assert!(<NextExternal<Test>>::exists());
+		assert!(NextExternal::<Test>::exists());
 		// fails to set metadata with non external origin.
 		assert_noop!(
 			Democracy::set_metadata(RuntimeOrigin::signed(1), owner.clone(), Some(invalid_hash)),
@@ -61,7 +61,7 @@ fn clear_metadata_works() {
 		let owner = MetadataOwner::External;
 		// create an external proposal.
 		assert_ok!(Democracy::external_propose(RuntimeOrigin::signed(2), set_balance_proposal(2)));
-		assert!(<NextExternal<Test>>::exists());
+		assert!(NextExternal::<Test>::exists());
 		// set metadata.
 		let hash = note_preimage(1);
 		assert_ok!(Democracy::set_metadata(RuntimeOrigin::signed(2), owner.clone(), Some(hash)));
@@ -87,7 +87,7 @@ fn set_proposal_metadata_works() {
 		// create an external proposal.
 		assert_ok!(propose_set_balance(1, 2, 5));
 		// metadata owner is a public proposal.
-		let owner = MetadataOwner::Proposal(Democracy::public_prop_count() - 1);
+		let owner = MetadataOwner::Proposal(PublicPropCount::<Test>::get() - 1);
 		// fails to set non-existing preimage.
 		assert_noop!(
 			Democracy::set_metadata(RuntimeOrigin::signed(1), owner.clone(), Some(invalid_hash)),
@@ -115,7 +115,7 @@ fn clear_proposal_metadata_works() {
 		// create an external proposal.
 		assert_ok!(propose_set_balance(1, 2, 5));
 		// metadata owner is a public proposal.
-		let owner = MetadataOwner::Proposal(Democracy::public_prop_count() - 1);
+		let owner = MetadataOwner::Proposal(PublicPropCount::<Test>::get() - 1);
 		// set metadata.
 		let hash = note_preimage(1);
 		assert_ok!(Democracy::set_metadata(RuntimeOrigin::signed(1), owner.clone(), Some(hash)));
diff --git a/substrate/frame/democracy/src/tests/public_proposals.rs b/substrate/frame/democracy/src/tests/public_proposals.rs
index 69a2d3e2568..01f47947f8e 100644
--- a/substrate/frame/democracy/src/tests/public_proposals.rs
+++ b/substrate/frame/democracy/src/tests/public_proposals.rs
@@ -97,10 +97,10 @@ fn cancel_proposal_should_work() {
 			MetadataOwner::Proposal(0),
 			Some(hash)
 		));
-		assert!(<MetadataOf<Test>>::get(MetadataOwner::Proposal(0)).is_some());
+		assert!(MetadataOf::<Test>::get(MetadataOwner::Proposal(0)).is_some());
 		assert_ok!(Democracy::cancel_proposal(RuntimeOrigin::root(), 0));
 		// metadata cleared, preimage unrequested.
-		assert!(<MetadataOf<Test>>::get(MetadataOwner::Proposal(0)).is_none());
+		assert!(MetadataOf::<Test>::get(MetadataOwner::Proposal(0)).is_none());
 		System::assert_has_event(crate::Event::ProposalCanceled { prop_index: 0 }.into());
 		System::assert_last_event(
 			crate::Event::MetadataCleared { owner: MetadataOwner::Proposal(0), hash }.into(),
diff --git a/substrate/frame/democracy/src/tests/scheduling.rs b/substrate/frame/democracy/src/tests/scheduling.rs
index fdbc8fdb349..43f51628aaf 100644
--- a/substrate/frame/democracy/src/tests/scheduling.rs
+++ b/substrate/frame/democracy/src/tests/scheduling.rs
@@ -30,10 +30,10 @@ fn simple_passing_should_work() {
 		);
 		assert_ok!(Democracy::vote(RuntimeOrigin::signed(1), r, aye(1)));
 		assert_eq!(tally(r), Tally { ayes: 1, nays: 0, turnout: 10 });
-		assert_eq!(Democracy::lowest_unbaked(), 0);
+		assert_eq!(LowestUnbaked::<Test>::get(), 0);
 		next_block();
 		next_block();
-		assert_eq!(Democracy::lowest_unbaked(), 1);
+		assert_eq!(LowestUnbaked::<Test>::get(), 1);
 		assert_eq!(Balances::free_balance(42), 2);
 	});
 }
@@ -140,16 +140,16 @@ fn lowest_unbaked_should_be_sensible() {
 		assert_ok!(Democracy::vote(RuntimeOrigin::signed(1), r2, aye(1)));
 		// r3 is canceled
 		assert_ok!(Democracy::cancel_referendum(RuntimeOrigin::root(), r3.into()));
-		assert_eq!(Democracy::lowest_unbaked(), 0);
+		assert_eq!(LowestUnbaked::<Test>::get(), 0);
 
 		next_block();
 		// r2 ends with approval
-		assert_eq!(Democracy::lowest_unbaked(), 0);
+		assert_eq!(LowestUnbaked::<Test>::get(), 0);
 
 		next_block();
 		// r1 ends with approval
-		assert_eq!(Democracy::lowest_unbaked(), 3);
-		assert_eq!(Democracy::lowest_unbaked(), Democracy::referendum_count());
+		assert_eq!(LowestUnbaked::<Test>::get(), 3);
+		assert_eq!(LowestUnbaked::<Test>::get(), ReferendumCount::<Test>::get());
 
 		// r2 is executed
 		assert_eq!(Balances::free_balance(42), 2);
diff --git a/substrate/frame/democracy/src/tests/voting.rs b/substrate/frame/democracy/src/tests/voting.rs
index f096b633ee6..61b80cc97fe 100644
--- a/substrate/frame/democracy/src/tests/voting.rs
+++ b/substrate/frame/democracy/src/tests/voting.rs
@@ -65,13 +65,13 @@ fn single_proposal_should_work() {
 		System::set_block_number(0);
 		assert_ok!(propose_set_balance(1, 2, 1));
 		let r = 0;
-		assert!(Democracy::referendum_info(r).is_none());
+		assert!(ReferendumInfoOf::<Test>::get(r).is_none());
 
 		// start of 2 => next referendum scheduled.
 		fast_forward_to(2);
 		assert_ok!(Democracy::vote(RuntimeOrigin::signed(1), r, aye(1)));
 
-		assert_eq!(Democracy::referendum_count(), 1);
+		assert_eq!(ReferendumCount::<Test>::get(), 1);
 		assert_eq!(
 			Democracy::referendum_status(0),
 			Ok(ReferendumStatus {
-- 
GitLab