@@ -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
7372fn 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-
9878benchmarks ! {
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