18
18
//! # Scheduler
19
19
//! A module for scheduling dispatches.
20
20
//!
21
- //! - [`scheduler::Trait `](./trait.Trait .html)
21
+ //! - [`scheduler::Config `](./trait.Config .html)
22
22
//! - [`Call`](./enum.Call.html)
23
23
//! - [`Module`](./struct.Module.html)
24
24
//!
29
29
//! may be named or anonymous and may be canceled.
30
30
//!
31
31
//! **NOTE:** The scheduled calls will be dispatched with the default filter
32
- //! for the origin: namely `frame_system::Trait ::BaseCallFilter` for all origin
32
+ //! for the origin: namely `frame_system::Config ::BaseCallFilter` for all origin
33
33
//! except root which will get no filter. And not the filter contained in origin
34
34
//! use to call `fn schedule`.
35
35
//!
@@ -70,27 +70,27 @@ pub use weights::WeightInfo;
70
70
/// pallet is dependent on specific other pallets, then their configuration traits
71
71
/// should be added to our implied traits list.
72
72
///
73
- /// `system::Trait ` should always be included in our implied traits.
74
- pub trait Trait : system:: Trait {
73
+ /// `system::Config ` should always be included in our implied traits.
74
+ pub trait Config : system:: Config {
75
75
/// The overarching event type.
76
- type Event : From < Event < Self > > + Into < <Self as system:: Trait >:: Event > ;
76
+ type Event : From < Event < Self > > + Into < <Self as system:: Config >:: Event > ;
77
77
78
78
/// The aggregated origin which the dispatch will take.
79
79
type Origin : OriginTrait < PalletsOrigin =
80
- Self :: PalletsOrigin > + From < Self :: PalletsOrigin > + IsType < <Self as system:: Trait >:: Origin > ;
80
+ Self :: PalletsOrigin > + From < Self :: PalletsOrigin > + IsType < <Self as system:: Config >:: Origin > ;
81
81
82
82
/// The caller origin, overarching type of all pallets origins.
83
83
type PalletsOrigin : From < system:: RawOrigin < Self :: AccountId > > + Codec + Clone + Eq ;
84
84
85
85
/// The aggregated call type.
86
- type Call : Parameter + Dispatchable < Origin =<Self as Trait >:: Origin > + GetDispatchInfo + From < system:: Call < Self > > ;
86
+ type Call : Parameter + Dispatchable < Origin =<Self as Config >:: Origin > + GetDispatchInfo + From < system:: Call < Self > > ;
87
87
88
88
/// The maximum weight that may be scheduled per block for any dispatchables of less priority
89
89
/// than `schedule::HARD_DEADLINE`.
90
90
type MaximumWeight : Get < Weight > ;
91
91
92
92
/// Required origin to schedule or cancel calls.
93
- type ScheduleOrigin : EnsureOrigin < <Self as system:: Trait >:: Origin > ;
93
+ type ScheduleOrigin : EnsureOrigin < <Self as system:: Config >:: Origin > ;
94
94
95
95
/// The maximum number of scheduled calls in the queue for a single block.
96
96
/// Not strictly enforced, but used for weight estimation.
@@ -150,10 +150,10 @@ impl Default for Releases {
150
150
}
151
151
152
152
decl_storage ! {
153
- trait Store for Module <T : Trait > as Scheduler {
153
+ trait Store for Module <T : Config > as Scheduler {
154
154
/// Items to be executed, indexed by the block number that they should be executed on.
155
155
pub Agenda : map hasher( twox_64_concat) T :: BlockNumber
156
- => Vec <Option <Scheduled <<T as Trait >:: Call , T :: BlockNumber , T :: PalletsOrigin , T :: AccountId >>>;
156
+ => Vec <Option <Scheduled <<T as Config >:: Call , T :: BlockNumber , T :: PalletsOrigin , T :: AccountId >>>;
157
157
158
158
/// Lookup from identity to the block number and index of the task.
159
159
Lookup : map hasher( twox_64_concat) Vec <u8 > => Option <TaskAddress <T :: BlockNumber >>;
@@ -166,7 +166,7 @@ decl_storage! {
166
166
}
167
167
168
168
decl_event ! (
169
- pub enum Event <T > where <T as system:: Trait >:: BlockNumber {
169
+ pub enum Event <T > where <T as system:: Config >:: BlockNumber {
170
170
/// Scheduled some task. \[when, index\]
171
171
Scheduled ( BlockNumber , u32 ) ,
172
172
/// Canceled some task. \[when, index\]
@@ -177,7 +177,7 @@ decl_event!(
177
177
) ;
178
178
179
179
decl_error ! {
180
- pub enum Error for Module <T : Trait > {
180
+ pub enum Error for Module <T : Config > {
181
181
/// Failed to schedule a call
182
182
FailedToSchedule ,
183
183
/// Cannot find the scheduled call.
@@ -191,7 +191,7 @@ decl_error! {
191
191
192
192
decl_module ! {
193
193
/// Scheduler module declaration.
194
- pub struct Module <T : Trait > for enum Call where origin: <T as system:: Trait >:: Origin {
194
+ pub struct Module <T : Config > for enum Call where origin: <T as system:: Config >:: Origin {
195
195
type Error = Error <T >;
196
196
fn deposit_event( ) = default ;
197
197
@@ -210,10 +210,10 @@ decl_module! {
210
210
when: T :: BlockNumber ,
211
211
maybe_periodic: Option <schedule:: Period <T :: BlockNumber >>,
212
212
priority: schedule:: Priority ,
213
- call: Box <<T as Trait >:: Call >,
213
+ call: Box <<T as Config >:: Call >,
214
214
) {
215
215
T :: ScheduleOrigin :: ensure_origin( origin. clone( ) ) ?;
216
- let origin = <T as Trait >:: Origin :: from( origin) ;
216
+ let origin = <T as Config >:: Origin :: from( origin) ;
217
217
Self :: do_schedule( DispatchTime :: At ( when) , maybe_periodic, priority, origin. caller( ) . clone( ) , * call) ?;
218
218
}
219
219
@@ -230,7 +230,7 @@ decl_module! {
230
230
#[ weight = T :: WeightInfo :: cancel( T :: MaxScheduledPerBlock :: get( ) ) ]
231
231
fn cancel( origin, when: T :: BlockNumber , index: u32 ) {
232
232
T :: ScheduleOrigin :: ensure_origin( origin. clone( ) ) ?;
233
- let origin = <T as Trait >:: Origin :: from( origin) ;
233
+ let origin = <T as Config >:: Origin :: from( origin) ;
234
234
Self :: do_cancel( Some ( origin. caller( ) . clone( ) ) , ( when, index) ) ?;
235
235
}
236
236
@@ -250,10 +250,10 @@ decl_module! {
250
250
when: T :: BlockNumber ,
251
251
maybe_periodic: Option <schedule:: Period <T :: BlockNumber >>,
252
252
priority: schedule:: Priority ,
253
- call: Box <<T as Trait >:: Call >,
253
+ call: Box <<T as Config >:: Call >,
254
254
) {
255
255
T :: ScheduleOrigin :: ensure_origin( origin. clone( ) ) ?;
256
- let origin = <T as Trait >:: Origin :: from( origin) ;
256
+ let origin = <T as Config >:: Origin :: from( origin) ;
257
257
Self :: do_schedule_named(
258
258
id, DispatchTime :: At ( when) , maybe_periodic, priority, origin. caller( ) . clone( ) , * call
259
259
) ?;
@@ -272,7 +272,7 @@ decl_module! {
272
272
#[ weight = T :: WeightInfo :: cancel_named( T :: MaxScheduledPerBlock :: get( ) ) ]
273
273
fn cancel_named( origin, id: Vec <u8 >) {
274
274
T :: ScheduleOrigin :: ensure_origin( origin. clone( ) ) ?;
275
- let origin = <T as Trait >:: Origin :: from( origin) ;
275
+ let origin = <T as Config >:: Origin :: from( origin) ;
276
276
Self :: do_cancel_named( Some ( origin. caller( ) . clone( ) ) , id) ?;
277
277
}
278
278
@@ -286,10 +286,10 @@ decl_module! {
286
286
after: T :: BlockNumber ,
287
287
maybe_periodic: Option <schedule:: Period <T :: BlockNumber >>,
288
288
priority: schedule:: Priority ,
289
- call: Box <<T as Trait >:: Call >,
289
+ call: Box <<T as Config >:: Call >,
290
290
) {
291
291
T :: ScheduleOrigin :: ensure_origin( origin. clone( ) ) ?;
292
- let origin = <T as Trait >:: Origin :: from( origin) ;
292
+ let origin = <T as Config >:: Origin :: from( origin) ;
293
293
Self :: do_schedule(
294
294
DispatchTime :: After ( after) , maybe_periodic, priority, origin. caller( ) . clone( ) , * call
295
295
) ?;
@@ -306,10 +306,10 @@ decl_module! {
306
306
after: T :: BlockNumber ,
307
307
maybe_periodic: Option <schedule:: Period <T :: BlockNumber >>,
308
308
priority: schedule:: Priority ,
309
- call: Box <<T as Trait >:: Call >,
309
+ call: Box <<T as Config >:: Call >,
310
310
) {
311
311
T :: ScheduleOrigin :: ensure_origin( origin. clone( ) ) ?;
312
- let origin = <T as Trait >:: Origin :: from( origin) ;
312
+ let origin = <T as Config >:: Origin :: from( origin) ;
313
313
Self :: do_schedule_named(
314
314
id, DispatchTime :: After ( after) , maybe_periodic, priority, origin. caller( ) . clone( ) , * call
315
315
) ?;
@@ -347,7 +347,7 @@ decl_module! {
347
347
* cumulative_weight = cumulative_weight
348
348
. saturating_add( s. call. get_dispatch_info( ) . weight) ;
349
349
350
- let origin = <<T as Trait >:: Origin as From <T :: PalletsOrigin >>:: from(
350
+ let origin = <<T as Config >:: Origin as From <T :: PalletsOrigin >>:: from(
351
351
s. origin. clone( )
352
352
) . into( ) ;
353
353
@@ -415,15 +415,15 @@ decl_module! {
415
415
}
416
416
}
417
417
418
- impl < T : Trait > Module < T > {
418
+ impl < T : Config > Module < T > {
419
419
/// Migrate storage format from V1 to V2.
420
420
/// Return true if migration is performed.
421
421
pub fn migrate_v1_to_t2 ( ) -> bool {
422
422
if StorageVersion :: get ( ) == Releases :: V1 {
423
423
StorageVersion :: put ( Releases :: V2 ) ;
424
424
425
425
Agenda :: < T > :: translate :: <
426
- Vec < Option < ScheduledV1 < <T as Trait >:: Call , T :: BlockNumber > > > , _
426
+ Vec < Option < ScheduledV1 < <T as Config >:: Call , T :: BlockNumber > > > , _
427
427
> ( |_, agenda| Some (
428
428
agenda
429
429
. into_iter ( )
@@ -447,7 +447,7 @@ impl<T: Trait> Module<T> {
447
447
/// Helper to migrate scheduler when the pallet origin type has changed.
448
448
pub fn migrate_origin < OldOrigin : Into < T :: PalletsOrigin > + codec:: Decode > ( ) {
449
449
Agenda :: < T > :: translate :: <
450
- Vec < Option < Scheduled < <T as Trait >:: Call , T :: BlockNumber , OldOrigin , T :: AccountId > > > , _
450
+ Vec < Option < Scheduled < <T as Config >:: Call , T :: BlockNumber , OldOrigin , T :: AccountId > > > , _
451
451
> ( |_, agenda| Some (
452
452
agenda
453
453
. into_iter ( )
@@ -485,7 +485,7 @@ impl<T: Trait> Module<T> {
485
485
maybe_periodic : Option < schedule:: Period < T :: BlockNumber > > ,
486
486
priority : schedule:: Priority ,
487
487
origin : T :: PalletsOrigin ,
488
- call : <T as Trait >:: Call
488
+ call : <T as Config >:: Call
489
489
) -> Result < TaskAddress < T :: BlockNumber > , DispatchError > {
490
490
let when = Self :: resolve_time ( when) ?;
491
491
@@ -569,7 +569,7 @@ impl<T: Trait> Module<T> {
569
569
maybe_periodic : Option < schedule:: Period < T :: BlockNumber > > ,
570
570
priority : schedule:: Priority ,
571
571
origin : T :: PalletsOrigin ,
572
- call : <T as Trait >:: Call ,
572
+ call : <T as Config >:: Call ,
573
573
) -> Result < TaskAddress < T :: BlockNumber > , DispatchError > {
574
574
// ensure id it is unique
575
575
if Lookup :: < T > :: contains_key ( & id) {
@@ -657,15 +657,15 @@ impl<T: Trait> Module<T> {
657
657
}
658
658
}
659
659
660
- impl < T : Trait > schedule:: Anon < T :: BlockNumber , <T as Trait >:: Call , T :: PalletsOrigin > for Module < T > {
660
+ impl < T : Config > schedule:: Anon < T :: BlockNumber , <T as Config >:: Call , T :: PalletsOrigin > for Module < T > {
661
661
type Address = TaskAddress < T :: BlockNumber > ;
662
662
663
663
fn schedule (
664
664
when : DispatchTime < T :: BlockNumber > ,
665
665
maybe_periodic : Option < schedule:: Period < T :: BlockNumber > > ,
666
666
priority : schedule:: Priority ,
667
667
origin : T :: PalletsOrigin ,
668
- call : <T as Trait >:: Call
668
+ call : <T as Config >:: Call
669
669
) -> Result < Self :: Address , DispatchError > {
670
670
Self :: do_schedule ( when, maybe_periodic, priority, origin, call)
671
671
}
@@ -686,7 +686,7 @@ impl<T: Trait> schedule::Anon<T::BlockNumber, <T as Trait>::Call, T::PalletsOrig
686
686
}
687
687
}
688
688
689
- impl < T : Trait > schedule:: Named < T :: BlockNumber , <T as Trait >:: Call , T :: PalletsOrigin > for Module < T > {
689
+ impl < T : Config > schedule:: Named < T :: BlockNumber , <T as Config >:: Call , T :: PalletsOrigin > for Module < T > {
690
690
type Address = TaskAddress < T :: BlockNumber > ;
691
691
692
692
fn schedule_named (
@@ -695,7 +695,7 @@ impl<T: Trait> schedule::Named<T::BlockNumber, <T as Trait>::Call, T::PalletsOri
695
695
maybe_periodic : Option < schedule:: Period < T :: BlockNumber > > ,
696
696
priority : schedule:: Priority ,
697
697
origin : T :: PalletsOrigin ,
698
- call : <T as Trait >:: Call ,
698
+ call : <T as Config >:: Call ,
699
699
) -> Result < Self :: Address , ( ) > {
700
700
Self :: do_schedule_named ( id, when, maybe_periodic, priority, origin, call) . map_err ( |_| ( ) )
701
701
}
@@ -746,19 +746,19 @@ mod tests {
746
746
pub fn log ( ) -> Vec < ( OriginCaller , u32 ) > {
747
747
LOG . with ( |log| log. borrow ( ) . clone ( ) )
748
748
}
749
- pub trait Trait : system:: Trait {
750
- type Event : From < Event > + Into < <Self as system:: Trait >:: Event > ;
749
+ pub trait Config : system:: Config {
750
+ type Event : From < Event > + Into < <Self as system:: Config >:: Event > ;
751
751
}
752
752
decl_event ! {
753
753
pub enum Event {
754
754
Logged ( u32 , Weight ) ,
755
755
}
756
756
}
757
757
decl_module ! {
758
- pub struct Module <T : Trait > for enum Call
758
+ pub struct Module <T : Config > for enum Call
759
759
where
760
- origin: <T as system:: Trait >:: Origin ,
761
- <T as system:: Trait >:: Origin : OriginTrait <PalletsOrigin = OriginCaller >
760
+ origin: <T as system:: Config >:: Origin ,
761
+ <T as system:: Config >:: Origin : OriginTrait <PalletsOrigin = OriginCaller >
762
762
{
763
763
fn deposit_event( ) = default ;
764
764
@@ -816,7 +816,7 @@ mod tests {
816
816
pub const MaximumBlockLength : u32 = 2 * 1024 ;
817
817
pub const AvailableBlockRatio : Perbill = Perbill :: one( ) ;
818
818
}
819
- impl system:: Trait for Test {
819
+ impl system:: Config for Test {
820
820
type BaseCallFilter = BaseFilter ;
821
821
type Origin = Origin ;
822
822
type Call = Call ;
@@ -843,7 +843,7 @@ mod tests {
843
843
type OnKilledAccount = ( ) ;
844
844
type SystemWeightInfo = ( ) ;
845
845
}
846
- impl logger:: Trait for Test {
846
+ impl logger:: Config for Test {
847
847
type Event = ( ) ;
848
848
}
849
849
parameter_types ! {
@@ -854,7 +854,7 @@ mod tests {
854
854
pub const One : u64 = 1 ;
855
855
}
856
856
857
- impl Trait for Test {
857
+ impl Config for Test {
858
858
type Event = ( ) ;
859
859
type Origin = Origin ;
860
860
type PalletsOrigin = OriginCaller ;
@@ -889,7 +889,7 @@ mod tests {
889
889
fn basic_scheduling_works ( ) {
890
890
new_test_ext ( ) . execute_with ( || {
891
891
let call = Call :: Logger ( logger:: Call :: log ( 42 , 1000 ) ) ;
892
- assert ! ( !<Test as frame_system:: Trait >:: BaseCallFilter :: filter( & call) ) ;
892
+ assert ! ( !<Test as frame_system:: Config >:: BaseCallFilter :: filter( & call) ) ;
893
893
assert_ok ! ( Scheduler :: do_schedule( DispatchTime :: At ( 4 ) , None , 127 , root( ) , call) ) ;
894
894
run_to_block ( 3 ) ;
895
895
assert ! ( logger:: log( ) . is_empty( ) ) ;
@@ -905,7 +905,7 @@ mod tests {
905
905
new_test_ext ( ) . execute_with ( || {
906
906
run_to_block ( 2 ) ;
907
907
let call = Call :: Logger ( logger:: Call :: log ( 42 , 1000 ) ) ;
908
- assert ! ( !<Test as frame_system:: Trait >:: BaseCallFilter :: filter( & call) ) ;
908
+ assert ! ( !<Test as frame_system:: Config >:: BaseCallFilter :: filter( & call) ) ;
909
909
// This will schedule the call 3 blocks after the next block... so block 3 + 3 = 6
910
910
assert_ok ! ( Scheduler :: do_schedule( DispatchTime :: After ( 3 ) , None , 127 , root( ) , call) ) ;
911
911
run_to_block ( 5 ) ;
@@ -922,7 +922,7 @@ mod tests {
922
922
new_test_ext ( ) . execute_with ( || {
923
923
run_to_block ( 2 ) ;
924
924
let call = Call :: Logger ( logger:: Call :: log ( 42 , 1000 ) ) ;
925
- assert ! ( !<Test as frame_system:: Trait >:: BaseCallFilter :: filter( & call) ) ;
925
+ assert ! ( !<Test as frame_system:: Config >:: BaseCallFilter :: filter( & call) ) ;
926
926
assert_ok ! ( Scheduler :: do_schedule( DispatchTime :: After ( 0 ) , None , 127 , root( ) , call) ) ;
927
927
// Will trigger on the next block.
928
928
run_to_block ( 3 ) ;
@@ -960,7 +960,7 @@ mod tests {
960
960
fn reschedule_works ( ) {
961
961
new_test_ext ( ) . execute_with ( || {
962
962
let call = Call :: Logger ( logger:: Call :: log ( 42 , 1000 ) ) ;
963
- assert ! ( !<Test as frame_system:: Trait >:: BaseCallFilter :: filter( & call) ) ;
963
+ assert ! ( !<Test as frame_system:: Config >:: BaseCallFilter :: filter( & call) ) ;
964
964
assert_eq ! ( Scheduler :: do_schedule( DispatchTime :: At ( 4 ) , None , 127 , root( ) , call) . unwrap( ) , ( 4 , 0 ) ) ;
965
965
966
966
run_to_block ( 3 ) ;
@@ -985,7 +985,7 @@ mod tests {
985
985
fn reschedule_named_works ( ) {
986
986
new_test_ext ( ) . execute_with ( || {
987
987
let call = Call :: Logger ( logger:: Call :: log ( 42 , 1000 ) ) ;
988
- assert ! ( !<Test as frame_system:: Trait >:: BaseCallFilter :: filter( & call) ) ;
988
+ assert ! ( !<Test as frame_system:: Config >:: BaseCallFilter :: filter( & call) ) ;
989
989
assert_eq ! ( Scheduler :: do_schedule_named(
990
990
1u32 . encode( ) , DispatchTime :: At ( 4 ) , None , 127 , root( ) , call
991
991
) . unwrap( ) , ( 4 , 0 ) ) ;
@@ -1012,7 +1012,7 @@ mod tests {
1012
1012
fn reschedule_named_perodic_works ( ) {
1013
1013
new_test_ext ( ) . execute_with ( || {
1014
1014
let call = Call :: Logger ( logger:: Call :: log ( 42 , 1000 ) ) ;
1015
- assert ! ( !<Test as frame_system:: Trait >:: BaseCallFilter :: filter( & call) ) ;
1015
+ assert ! ( !<Test as frame_system:: Config >:: BaseCallFilter :: filter( & call) ) ;
1016
1016
assert_eq ! ( Scheduler :: do_schedule_named(
1017
1017
1u32 . encode( ) , DispatchTime :: At ( 4 ) , Some ( ( 3 , 3 ) ) , 127 , root( ) , call
1018
1018
) . unwrap( ) , ( 4 , 0 ) ) ;
@@ -1203,10 +1203,10 @@ mod tests {
1203
1203
#[ test]
1204
1204
fn on_initialize_weight_is_correct ( ) {
1205
1205
new_test_ext ( ) . execute_with ( || {
1206
- let base_weight: Weight = <Test as frame_system:: Trait >:: DbWeight :: get ( ) . reads_writes ( 1 , 2 ) ;
1206
+ let base_weight: Weight = <Test as frame_system:: Config >:: DbWeight :: get ( ) . reads_writes ( 1 , 2 ) ;
1207
1207
let base_multiplier = 0 ;
1208
- let named_multiplier = <Test as frame_system:: Trait >:: DbWeight :: get ( ) . writes ( 1 ) ;
1209
- let periodic_multiplier = <Test as frame_system:: Trait >:: DbWeight :: get ( ) . reads_writes ( 1 , 1 ) ;
1208
+ let named_multiplier = <Test as frame_system:: Config >:: DbWeight :: get ( ) . writes ( 1 ) ;
1209
+ let periodic_multiplier = <Test as frame_system:: Config >:: DbWeight :: get ( ) . reads_writes ( 1 , 1 ) ;
1210
1210
1211
1211
// Named
1212
1212
assert_ok ! (
0 commit comments