Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit ebaa893

Browse files
author
Ross Bulat
committed
Revert "Referendum proposal's metadata (#12568)"
This reverts commit ae03716.
1 parent cf44040 commit ebaa893

File tree

13 files changed

+350
-1367
lines changed

13 files changed

+350
-1367
lines changed

frame/democracy/src/benchmarking.rs

Lines changed: 17 additions & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -54,20 +54,19 @@ fn add_proposal<T: Config>(n: u32) -> Result<H256, &'static str> {
5454
Ok(proposal.hash())
5555
}
5656

57-
// add a referendum with a metadata.
58-
fn add_referendum<T: Config>(n: u32) -> (ReferendumIndex, H256, PreimageHash) {
57+
fn add_referendum<T: Config>(n: u32) -> (ReferendumIndex, H256) {
5958
let vote_threshold = VoteThreshold::SimpleMajority;
6059
let proposal = make_proposal::<T>(n);
6160
let hash = proposal.hash();
62-
let index = Democracy::<T>::inject_referendum(
63-
T::LaunchPeriod::get(),
64-
proposal,
65-
vote_threshold,
66-
0u32.into(),
67-
);
68-
let preimage_hash = note_preimage::<T>();
69-
MetadataOf::<T>::insert(crate::MetadataOwner::Referendum(index), preimage_hash.clone());
70-
(index, hash, preimage_hash)
61+
(
62+
Democracy::<T>::inject_referendum(
63+
T::LaunchPeriod::get(),
64+
proposal,
65+
vote_threshold,
66+
0u32.into(),
67+
),
68+
hash,
69+
)
7170
}
7271

7372
fn account_vote<T: Config>(b: BalanceOf<T>) -> AccountVote<BalanceOf<T>> {
@@ -76,25 +75,6 @@ fn account_vote<T: Config>(b: BalanceOf<T>) -> AccountVote<BalanceOf<T>> {
7675
AccountVote::Standard { vote: v, balance: b }
7776
}
7877

79-
fn assert_last_event<T: Config>(generic_event: <T as Config>::RuntimeEvent) {
80-
frame_system::Pallet::<T>::assert_last_event(generic_event.into());
81-
}
82-
83-
fn assert_has_event<T: Config>(generic_event: <T as Config>::RuntimeEvent) {
84-
frame_system::Pallet::<T>::assert_has_event(generic_event.into());
85-
}
86-
87-
// note a new preimage.
88-
fn note_preimage<T: Config>() -> PreimageHash {
89-
use core::sync::atomic::{AtomicU8, Ordering};
90-
use sp_std::borrow::Cow;
91-
// note a new preimage on every function invoke.
92-
static COUNTER: AtomicU8 = AtomicU8::new(0);
93-
let data = Cow::from(vec![COUNTER.fetch_add(1, Ordering::Relaxed)]);
94-
let hash = <T as Config>::Preimages::note(data).unwrap();
95-
hash
96-
}
97-
9878
benchmarks! {
9979
propose {
10080
let p = T::MaxProposals::get();
@@ -199,7 +179,7 @@ benchmarks! {
199179
emergency_cancel {
200180
let origin =
201181
T::CancellationOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
202-
let (ref_index, _, preimage_hash) = add_referendum::<T>(0);
182+
let ref_index = add_referendum::<T>(0).0;
203183
assert_ok!(Democracy::<T>::referendum_status(ref_index));
204184
}: _<T::RuntimeOrigin>(origin, ref_index)
205185
verify {
@@ -208,10 +188,6 @@ benchmarks! {
208188
Democracy::<T>::referendum_status(ref_index),
209189
Error::<T>::ReferendumInvalid,
210190
);
211-
assert_last_event::<T>(crate::Event::MetadataCleared {
212-
owner: MetadataOwner::Referendum(ref_index),
213-
hash: preimage_hash,
214-
}.into());
215191
}
216192

217193
blacklist {
@@ -222,7 +198,7 @@ benchmarks! {
222198
// We should really add a lot of seconds here, but we're not doing it elsewhere.
223199

224200
// Add a referendum of our proposal.
225-
let (ref_index, hash, preimage_hash) = add_referendum::<T>(0);
201+
let (ref_index, hash) = add_referendum::<T>(0);
226202
assert_ok!(Democracy::<T>::referendum_status(ref_index));
227203
// Place our proposal in the external queue, too.
228204
assert_ok!(Democracy::<T>::external_propose(
@@ -239,10 +215,6 @@ benchmarks! {
239215
Democracy::<T>::referendum_status(ref_index),
240216
Error::<T>::ReferendumInvalid
241217
);
242-
assert_has_event::<T>(crate::Event::MetadataCleared {
243-
owner: MetadataOwner::Referendum(ref_index),
244-
hash: preimage_hash,
245-
}.into());
246218
}
247219

248220
// Worst case scenario, we external propose a previously blacklisted proposal
@@ -290,26 +262,16 @@ benchmarks! {
290262
.expect("ExternalDefaultOrigin has no successful origin required for the benchmark");
291263
let proposal = make_proposal::<T>(0);
292264
let proposal_hash = proposal.hash();
293-
Democracy::<T>::external_propose_default(origin_propose.clone(), proposal)?;
294-
// Set metadata to the external proposal.
295-
let preimage_hash = note_preimage::<T>();
296-
assert_ok!(Democracy::<T>::set_metadata(
297-
origin_propose,
298-
MetadataOwner::External,
299-
Some(preimage_hash)));
265+
Democracy::<T>::external_propose_default(origin_propose, proposal)?;
266+
300267
// NOTE: Instant origin may invoke a little bit more logic, but may not always succeed.
301268
let origin_fast_track =
302269
T::FastTrackOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
303270
let voting_period = T::FastTrackVotingPeriod::get();
304271
let delay = 0u32;
305272
}: _<T::RuntimeOrigin>(origin_fast_track, proposal_hash, voting_period, delay.into())
306273
verify {
307-
assert_eq!(Democracy::<T>::referendum_count(), 1, "referendum not created");
308-
assert_last_event::<T>(crate::Event::MetadataTransferred {
309-
prev_owner: MetadataOwner::External,
310-
owner: MetadataOwner::Referendum(0),
311-
hash: preimage_hash,
312-
}.into());
274+
assert_eq!(Democracy::<T>::referendum_count(), 1, "referendum not created")
313275
}
314276

315277
veto_external {
@@ -318,14 +280,7 @@ benchmarks! {
318280

319281
let origin_propose = T::ExternalDefaultOrigin::try_successful_origin()
320282
.expect("ExternalDefaultOrigin has no successful origin required for the benchmark");
321-
Democracy::<T>::external_propose_default(origin_propose.clone(), proposal)?;
322-
323-
let preimage_hash = note_preimage::<T>();
324-
assert_ok!(Democracy::<T>::set_metadata(
325-
origin_propose,
326-
MetadataOwner::External,
327-
Some(preimage_hash))
328-
);
283+
Democracy::<T>::external_propose_default(origin_propose, proposal)?;
329284

330285
let mut vetoers: BoundedVec<T::AccountId, _> = Default::default();
331286
for i in 0 .. (T::MaxBlacklisted::get() - 1) {
@@ -348,32 +303,13 @@ benchmarks! {
348303
for i in 0 .. T::MaxProposals::get() {
349304
add_proposal::<T>(i)?;
350305
}
351-
// Add metadata to the first proposal.
352-
let proposer = funded_account::<T>("proposer", 0);
353-
let preimage_hash = note_preimage::<T>();
354-
assert_ok!(Democracy::<T>::set_metadata(
355-
RawOrigin::Signed(proposer).into(),
356-
MetadataOwner::Proposal(0),
357-
Some(preimage_hash)));
358306
let cancel_origin = T::CancelProposalOrigin::try_successful_origin()
359307
.map_err(|_| BenchmarkError::Weightless)?;
360308
}: _<T::RuntimeOrigin>(cancel_origin, 0)
361-
verify {
362-
assert_last_event::<T>(crate::Event::MetadataCleared {
363-
owner: MetadataOwner::Proposal(0),
364-
hash: preimage_hash,
365-
}.into());
366-
}
367309

368310
cancel_referendum {
369-
let (ref_index, _, preimage_hash) = add_referendum::<T>(0);
311+
let ref_index = add_referendum::<T>(0).0;
370312
}: _(RawOrigin::Root, ref_index)
371-
verify {
372-
assert_last_event::<T>(crate::Event::MetadataCleared {
373-
owner: MetadataOwner::Referendum(0),
374-
hash: preimage_hash,
375-
}.into());
376-
}
377313

378314
#[extra]
379315
on_initialize_external {
@@ -742,111 +678,6 @@ benchmarks! {
742678
assert_eq!(votes.len(), (r - 1) as usize, "Vote was not removed");
743679
}
744680

745-
set_external_metadata {
746-
let origin = T::ExternalOrigin::try_successful_origin()
747-
.expect("ExternalOrigin has no successful origin required for the benchmark");
748-
assert_ok!(
749-
Democracy::<T>::external_propose(origin.clone(), make_proposal::<T>(0))
750-
);
751-
let owner = MetadataOwner::External;
752-
let hash = note_preimage::<T>();
753-
}: set_metadata<T::RuntimeOrigin>(origin, owner.clone(), Some(hash))
754-
verify {
755-
assert_last_event::<T>(crate::Event::MetadataSet {
756-
owner,
757-
hash,
758-
}.into());
759-
}
760-
761-
clear_external_metadata {
762-
let origin = T::ExternalOrigin::try_successful_origin()
763-
.expect("ExternalOrigin has no successful origin required for the benchmark");
764-
assert_ok!(
765-
Democracy::<T>::external_propose(origin.clone(), make_proposal::<T>(0))
766-
);
767-
let owner = MetadataOwner::External;
768-
let proposer = funded_account::<T>("proposer", 0);
769-
let hash = note_preimage::<T>();
770-
assert_ok!(Democracy::<T>::set_metadata(origin.clone(), owner.clone(), Some(hash)));
771-
}: set_metadata<T::RuntimeOrigin>(origin, owner.clone(), None)
772-
verify {
773-
assert_last_event::<T>(crate::Event::MetadataCleared {
774-
owner,
775-
hash,
776-
}.into());
777-
}
778-
779-
set_proposal_metadata {
780-
// Place our proposal at the end to make sure it's worst case.
781-
for i in 0 .. T::MaxProposals::get() {
782-
add_proposal::<T>(i)?;
783-
}
784-
let owner = MetadataOwner::Proposal(0);
785-
let proposer = funded_account::<T>("proposer", 0);
786-
let hash = note_preimage::<T>();
787-
}: set_metadata<T::RuntimeOrigin>(RawOrigin::Signed(proposer).into(), owner.clone(), Some(hash))
788-
verify {
789-
assert_last_event::<T>(crate::Event::MetadataSet {
790-
owner,
791-
hash,
792-
}.into());
793-
}
794-
795-
clear_proposal_metadata {
796-
// Place our proposal at the end to make sure it's worst case.
797-
for i in 0 .. T::MaxProposals::get() {
798-
add_proposal::<T>(i)?;
799-
}
800-
let proposer = funded_account::<T>("proposer", 0);
801-
let owner = MetadataOwner::Proposal(0);
802-
let hash = note_preimage::<T>();
803-
assert_ok!(Democracy::<T>::set_metadata(
804-
RawOrigin::Signed(proposer.clone()).into(),
805-
owner.clone(),
806-
Some(hash)));
807-
}: set_metadata<T::RuntimeOrigin>(RawOrigin::Signed(proposer).into(), owner.clone(), None)
808-
verify {
809-
assert_last_event::<T>(crate::Event::MetadataCleared {
810-
owner,
811-
hash,
812-
}.into());
813-
}
814-
815-
set_referendum_metadata {
816-
// create not ongoing referendum.
817-
ReferendumInfoOf::<T>::insert(
818-
0,
819-
ReferendumInfo::Finished { end: T::BlockNumber::zero(), approved: true },
820-
);
821-
let owner = MetadataOwner::Referendum(0);
822-
let caller = funded_account::<T>("caller", 0);
823-
let hash = note_preimage::<T>();
824-
}: set_metadata<T::RuntimeOrigin>(RawOrigin::Root.into(), owner.clone(), Some(hash))
825-
verify {
826-
assert_last_event::<T>(crate::Event::MetadataSet {
827-
owner,
828-
hash,
829-
}.into());
830-
}
831-
832-
clear_referendum_metadata {
833-
// create not ongoing referendum.
834-
ReferendumInfoOf::<T>::insert(
835-
0,
836-
ReferendumInfo::Finished { end: T::BlockNumber::zero(), approved: true },
837-
);
838-
let owner = MetadataOwner::Referendum(0);
839-
let hash = note_preimage::<T>();
840-
MetadataOf::<T>::insert(owner.clone(), hash);
841-
let caller = funded_account::<T>("caller", 0);
842-
}: set_metadata<T::RuntimeOrigin>(RawOrigin::Signed(caller).into(), owner.clone(), None)
843-
verify {
844-
assert_last_event::<T>(crate::Event::MetadataCleared {
845-
owner,
846-
hash,
847-
}.into());
848-
}
849-
850681
impl_benchmark_test_suite!(
851682
Democracy,
852683
crate::tests::new_test_ext(),

0 commit comments

Comments
 (0)