2222use super :: * ;
2323
2424use frame_system:: RawOrigin ;
25- use frame_benchmarking:: { benchmarks , account, whitelisted_caller} ;
25+ use frame_benchmarking:: { benchmarks_instance , account, whitelisted_caller} ;
2626use frame_support:: traits:: OnInitialize ;
2727
2828use crate :: Module as Treasury ;
2929
3030const SEED : u32 = 0 ;
3131
3232// Create the pre-requisite information needed to create a treasury `propose_spend`.
33- fn setup_proposal < T : Trait > ( u : u32 ) -> (
33+ fn setup_proposal < T : Trait < I > , I : Instance > ( u : u32 ) -> (
3434 T :: AccountId ,
35- BalanceOf < T > ,
35+ BalanceOf < T , I > ,
3636 <T :: Lookup as StaticLookup >:: Source ,
3737) {
3838 let caller = account ( "caller" , u, SEED ) ;
39- let value: BalanceOf < T > = T :: ProposalBondMinimum :: get ( ) . saturating_mul ( 100 . into ( ) ) ;
39+ let value: BalanceOf < T , I > = T :: ProposalBondMinimum :: get ( ) . saturating_mul ( 100 . into ( ) ) ;
4040 let _ = T :: Currency :: make_free_balance_be ( & caller, value) ;
4141 let beneficiary = account ( "beneficiary" , u, SEED ) ;
4242 let beneficiary_lookup = T :: Lookup :: unlookup ( beneficiary) ;
4343 ( caller, value, beneficiary_lookup)
4444}
4545
4646// Create the pre-requisite information needed to create a `report_awesome`.
47- fn setup_awesome < T : Trait > ( length : u32 ) -> ( T :: AccountId , Vec < u8 > , T :: AccountId ) {
47+ fn setup_awesome < T : Trait < I > , I : Instance > ( length : u32 ) -> ( T :: AccountId , Vec < u8 > , T :: AccountId ) {
4848 let caller = whitelisted_caller ( ) ;
4949 let value = T :: TipReportDepositBase :: get ( )
5050 + T :: TipReportDepositPerByte :: get ( ) * length. into ( )
@@ -56,8 +56,8 @@ fn setup_awesome<T: Trait>(length: u32) -> (T::AccountId, Vec<u8>, T::AccountId)
5656}
5757
5858// Create the pre-requisite information needed to call `tip_new`.
59- fn setup_tip < T : Trait > ( r : u32 , t : u32 ) ->
60- Result < ( T :: AccountId , Vec < u8 > , T :: AccountId , BalanceOf < T > ) , & ' static str >
59+ fn setup_tip < T : Trait < I > , I : Instance > ( r : u32 , t : u32 ) ->
60+ Result < ( T :: AccountId , Vec < u8 > , T :: AccountId , BalanceOf < T , I > ) , & ' static str >
6161{
6262 let tippers_count = T :: Tippers :: count ( ) ;
6363
@@ -77,13 +77,15 @@ fn setup_tip<T: Trait>(r: u32, t: u32) ->
7777
7878// Create `t` new tips for the tip proposal with `hash`.
7979// This function automatically makes the tip able to close.
80- fn create_tips < T : Trait > ( t : u32 , hash : T :: Hash , value : BalanceOf < T > ) -> Result < ( ) , & ' static str > {
80+ fn create_tips < T : Trait < I > , I : Instance > ( t : u32 , hash : T :: Hash , value : BalanceOf < T , I > ) ->
81+ Result < ( ) , & ' static str >
82+ {
8183 for i in 0 .. t {
8284 let caller = account ( "member" , i, SEED ) ;
8385 ensure ! ( T :: Tippers :: contains( & caller) , "caller is not a tipper" ) ;
84- Treasury :: < T > :: tip ( RawOrigin :: Signed ( caller) . into ( ) , hash, value) ?;
86+ Treasury :: < T , I > :: tip ( RawOrigin :: Signed ( caller) . into ( ) , hash, value) ?;
8587 }
86- Tips :: < T > :: mutate ( hash, |maybe_tip| {
88+ Tips :: < T , I > :: mutate ( hash, |maybe_tip| {
8789 if let Some ( open_tip) = maybe_tip {
8890 open_tip. closes = Some ( T :: BlockNumber :: zero ( ) ) ;
8991 }
@@ -92,69 +94,69 @@ fn create_tips<T: Trait>(t: u32, hash: T::Hash, value: BalanceOf<T>) -> Result<(
9294}
9395
9496// Create proposals that are approved for use in `on_initialize`.
95- fn create_approved_proposals < T : Trait > ( n : u32 ) -> Result < ( ) , & ' static str > {
97+ fn create_approved_proposals < T : Trait < I > , I : Instance > ( n : u32 ) -> Result < ( ) , & ' static str > {
9698 for i in 0 .. n {
97- let ( caller, value, lookup) = setup_proposal :: < T > ( i) ;
98- Treasury :: < T > :: propose_spend (
99+ let ( caller, value, lookup) = setup_proposal :: < T , I > ( i) ;
100+ Treasury :: < T , I > :: propose_spend (
99101 RawOrigin :: Signed ( caller) . into ( ) ,
100102 value,
101103 lookup
102104 ) ?;
103- let proposal_id = ProposalCount :: get ( ) - 1 ;
104- Treasury :: < T > :: approve_proposal ( RawOrigin :: Root . into ( ) , proposal_id) ?;
105+ let proposal_id = < ProposalCount < I > > :: get ( ) - 1 ;
106+ Treasury :: < T , I > :: approve_proposal ( RawOrigin :: Root . into ( ) , proposal_id) ?;
105107 }
106- ensure ! ( Approvals :: get( ) . len( ) == n as usize , "Not all approved" ) ;
108+ ensure ! ( < Approvals < I >> :: get( ) . len( ) == n as usize , "Not all approved" ) ;
107109 Ok ( ( ) )
108110}
109111
110112const MAX_BYTES : u32 = 16384 ;
111113const MAX_TIPPERS : u32 = 100 ;
112114
113- benchmarks ! {
115+ benchmarks_instance ! {
114116 _ { }
115117
116118 propose_spend {
117119 let u in 0 .. 1000 ;
118- let ( caller, value, beneficiary_lookup) = setup_proposal:: <T >( u) ;
120+ let ( caller, value, beneficiary_lookup) = setup_proposal:: <T , _ >( u) ;
119121 // Whitelist caller account from further DB operations.
120122 let caller_key = frame_system:: Account :: <T >:: hashed_key_for( & caller) ;
121123 frame_benchmarking:: benchmarking:: add_to_whitelist( caller_key. into( ) ) ;
122124 } : _( RawOrigin :: Signed ( caller) , value, beneficiary_lookup)
123125
124126 reject_proposal {
125127 let u in 0 .. 1000 ;
126- let ( caller, value, beneficiary_lookup) = setup_proposal:: <T >( u) ;
127- Treasury :: <T >:: propose_spend(
128+ let ( caller, value, beneficiary_lookup) = setup_proposal:: <T , _ >( u) ;
129+ Treasury :: <T , _ >:: propose_spend(
128130 RawOrigin :: Signed ( caller) . into( ) ,
129131 value,
130132 beneficiary_lookup
131133 ) ?;
132- let proposal_id = ProposalCount :: get ( ) - 1 ;
134+ let proposal_id = Treasury :: < T , _> :: proposal_count ( ) - 1 ;
133135 } : _( RawOrigin :: Root , proposal_id)
134136
135137 approve_proposal {
136138 let u in 0 .. 1000 ;
137- let ( caller, value, beneficiary_lookup) = setup_proposal:: <T >( u) ;
138- Treasury :: <T >:: propose_spend(
139+ let ( caller, value, beneficiary_lookup) = setup_proposal:: <T , _ >( u) ;
140+ Treasury :: <T , _ >:: propose_spend(
139141 RawOrigin :: Signed ( caller) . into( ) ,
140142 value,
141143 beneficiary_lookup
142144 ) ?;
143- let proposal_id = ProposalCount :: get ( ) - 1 ;
145+ let proposal_id = Treasury :: < T , _> :: proposal_count ( ) - 1 ;
144146 } : _( RawOrigin :: Root , proposal_id)
145147
146148 report_awesome {
147149 let r in 0 .. MAX_BYTES ;
148- let ( caller, reason, awesome_person) = setup_awesome:: <T >( r) ;
150+ let ( caller, reason, awesome_person) = setup_awesome:: <T , _ >( r) ;
149151 // Whitelist caller account from further DB operations.
150152 let caller_key = frame_system:: Account :: <T >:: hashed_key_for( & caller) ;
151153 frame_benchmarking:: benchmarking:: add_to_whitelist( caller_key. into( ) ) ;
152154 } : _( RawOrigin :: Signed ( caller) , reason, awesome_person)
153155
154156 retract_tip {
155157 let r in 0 .. MAX_BYTES ;
156- let ( caller, reason, awesome_person) = setup_awesome:: <T >( r) ;
157- Treasury :: <T >:: report_awesome(
158+ let ( caller, reason, awesome_person) = setup_awesome:: <T , _ >( r) ;
159+ Treasury :: <T , _ >:: report_awesome(
158160 RawOrigin :: Signed ( caller. clone( ) ) . into( ) ,
159161 reason. clone( ) ,
160162 awesome_person. clone( )
@@ -170,26 +172,26 @@ benchmarks! {
170172 let r in 0 .. MAX_BYTES ;
171173 let t in 1 .. MAX_TIPPERS ;
172174
173- let ( caller, reason, beneficiary, value) = setup_tip:: <T >( r, t) ?;
175+ let ( caller, reason, beneficiary, value) = setup_tip:: <T , _ >( r, t) ?;
174176 // Whitelist caller account from further DB operations.
175177 let caller_key = frame_system:: Account :: <T >:: hashed_key_for( & caller) ;
176178 frame_benchmarking:: benchmarking:: add_to_whitelist( caller_key. into( ) ) ;
177179 } : _( RawOrigin :: Signed ( caller) , reason, beneficiary, value)
178180
179181 tip {
180182 let t in 1 .. MAX_TIPPERS ;
181- let ( member, reason, beneficiary, value) = setup_tip:: <T >( 0 , t) ?;
183+ let ( member, reason, beneficiary, value) = setup_tip:: <T , _ >( 0 , t) ?;
182184 let value = T :: Currency :: minimum_balance( ) . saturating_mul( 100 . into( ) ) ;
183- Treasury :: <T >:: tip_new(
185+ Treasury :: <T , _ >:: tip_new(
184186 RawOrigin :: Signed ( member) . into( ) ,
185187 reason. clone( ) ,
186188 beneficiary. clone( ) ,
187189 value
188190 ) ?;
189191 let reason_hash = T :: Hashing :: hash( & reason[ ..] ) ;
190192 let hash = T :: Hashing :: hash_of( & ( & reason_hash, & beneficiary) ) ;
191- ensure!( Tips :: <T >:: contains_key( hash) , "tip does not exist" ) ;
192- create_tips:: <T >( t - 1 , hash. clone( ) , value) ?;
193+ ensure!( Tips :: <T , _ >:: contains_key( hash) , "tip does not exist" ) ;
194+ create_tips:: <T , _ >( t - 1 , hash. clone( ) , value) ?;
193195 let caller = account( "member" , t - 1 , SEED ) ;
194196 // Whitelist caller account from further DB operations.
195197 let caller_key = frame_system:: Account :: <T >:: hashed_key_for( & caller) ;
@@ -200,14 +202,14 @@ benchmarks! {
200202 let t in 1 .. MAX_TIPPERS ;
201203
202204 // Make sure pot is funded
203- let pot_account = Treasury :: <T >:: account_id( ) ;
205+ let pot_account = Treasury :: <T , _ >:: account_id( ) ;
204206 let value = T :: Currency :: minimum_balance( ) . saturating_mul( 1_000_000_000 . into( ) ) ;
205207 let _ = T :: Currency :: make_free_balance_be( & pot_account, value) ;
206208
207209 // Set up a new tip proposal
208- let ( member, reason, beneficiary, value) = setup_tip:: <T >( 0 , t) ?;
210+ let ( member, reason, beneficiary, value) = setup_tip:: <T , _ >( 0 , t) ?;
209211 let value = T :: Currency :: minimum_balance( ) . saturating_mul( 100 . into( ) ) ;
210- Treasury :: <T >:: tip_new(
212+ Treasury :: <T , _ >:: tip_new(
211213 RawOrigin :: Signed ( member) . into( ) ,
212214 reason. clone( ) ,
213215 beneficiary. clone( ) ,
@@ -217,8 +219,8 @@ benchmarks! {
217219 // Create a bunch of tips
218220 let reason_hash = T :: Hashing :: hash( & reason[ ..] ) ;
219221 let hash = T :: Hashing :: hash_of( & ( & reason_hash, & beneficiary) ) ;
220- ensure!( Tips :: <T >:: contains_key( hash) , "tip does not exist" ) ;
221- create_tips:: <T >( t, hash. clone( ) , value) ?;
222+ ensure!( Tips :: <T , _ >:: contains_key( hash) , "tip does not exist" ) ;
223+ create_tips:: <T , _ >( t, hash. clone( ) , value) ?;
222224
223225 let caller = account( "caller" , t, SEED ) ;
224226 // Whitelist caller account from further DB operations.
@@ -228,12 +230,12 @@ benchmarks! {
228230
229231 on_initialize {
230232 let p in 0 .. 100 ;
231- let pot_account = Treasury :: <T >:: account_id( ) ;
233+ let pot_account = Treasury :: <T , _ >:: account_id( ) ;
232234 let value = T :: Currency :: minimum_balance( ) . saturating_mul( 1_000_000_000 . into( ) ) ;
233235 let _ = T :: Currency :: make_free_balance_be( & pot_account, value) ;
234- create_approved_proposals:: <T >( p) ?;
236+ create_approved_proposals:: <T , _ >( p) ?;
235237 } : {
236- Treasury :: <T >:: on_initialize( T :: BlockNumber :: zero( ) ) ;
238+ Treasury :: <T , _ >:: on_initialize( T :: BlockNumber :: zero( ) ) ;
237239 }
238240}
239241
0 commit comments