@@ -32,22 +32,21 @@ use frame_support::{
3232 pallet_prelude:: * ,
3333 traits:: {
3434 schedule:: { DispatchTime , Priority } ,
35- EitherOfDiverse , EnsureOrigin , Get , IsType , OriginTrait ,
35+ Bounded , EitherOfDiverse , EnsureOrigin , Get , IsType , OriginTrait ,
3636 } ,
3737} ;
3838use frame_system:: { pallet_prelude:: * , EnsureRoot , EnsureSigned } ;
3939use parity_scale_codec:: MaxEncodedLen ;
4040use scale_info:: TypeInfo ;
4141use sp_core:: defer;
42+ use sp_io:: hashing:: blake2_256;
4243use sp_runtime:: {
4344 traits:: { CheckedSub , Dispatchable , Hash , Saturating } ,
4445 ArithmeticError , DispatchError , DispatchResult , Either , RuntimeDebug ,
4546} ;
4647use sp_std:: prelude:: * ;
4748
48- // Todo: Switch to current v3 api: https://github.com/open-web3-stack/open-runtime-module-library/issues/995
49- #[ allow( deprecated) ]
50- use frame_support:: traits:: schedule:: v1:: Named as ScheduleNamed ;
49+ use frame_support:: traits:: schedule:: v3:: Named as ScheduleNamed ;
5150
5251mod mock;
5352mod tests;
@@ -201,6 +200,7 @@ pub mod module {
201200 #[ pallet:: origin]
202201 pub type Origin < T > = DelayedOrigin < BlockNumberFor < T > , <T as Config >:: PalletsOrigin > ;
203202 pub ( crate ) type CallOf < T > = <T as Config >:: RuntimeCall ;
203+ pub ( crate ) type BoundedCallOf < T > = Bounded < CallOf < T > , <T as frame_system:: Config >:: Hashing > ;
204204
205205 #[ pallet:: config]
206206 pub trait Config : frame_system:: Config {
@@ -221,8 +221,12 @@ pub mod module {
221221 + GetDispatchInfo ;
222222
223223 /// The Scheduler.
224- #[ allow( deprecated) ]
225- type Scheduler : ScheduleNamed < BlockNumberFor < Self > , <Self as Config >:: RuntimeCall , Self :: PalletsOrigin > ;
224+ type Scheduler : ScheduleNamed <
225+ BlockNumberFor < Self > ,
226+ <Self as Config >:: RuntimeCall ,
227+ Self :: PalletsOrigin ,
228+ Hasher = Self :: Hashing ,
229+ > ;
226230
227231 /// The type represent origin that can be dispatched by other origins.
228232 type AsOriginId : Parameter + AsOriginId < <Self as frame_system:: Config >:: RuntimeOrigin , Self :: PalletsOrigin > ;
@@ -337,7 +341,7 @@ pub mod module {
337341 when : DispatchTime < BlockNumberFor < T > > ,
338342 priority : Priority ,
339343 with_delayed_origin : bool ,
340- call : Box < CallOf < T > > ,
344+ call : Box < BoundedCallOf < T > > ,
341345 ) -> DispatchResult {
342346 T :: AuthorityConfig :: check_schedule_dispatch ( origin. clone ( ) , priority) ?;
343347
@@ -364,16 +368,9 @@ pub mod module {
364368 } ;
365369 let pallets_origin = schedule_origin. caller ( ) . clone ( ) ;
366370
367- #[ allow( deprecated) ]
368- T :: Scheduler :: schedule_named (
369- Encode :: encode ( & ( & pallets_origin, id) ) ,
370- when,
371- None ,
372- priority,
373- pallets_origin. clone ( ) ,
374- * call,
375- )
376- . map_err ( |_| Error :: < T > :: FailedToSchedule ) ?;
371+ let task_name = ( & pallets_origin, id) . using_encoded ( blake2_256) ;
372+ T :: Scheduler :: schedule_named ( task_name, when, None , priority, pallets_origin. clone ( ) , * call)
373+ . map_err ( |_| Error :: < T > :: FailedToSchedule ) ?;
377374
378375 Self :: deposit_event ( Event :: Scheduled {
379376 origin : pallets_origin,
@@ -402,9 +399,8 @@ pub mod module {
402399 } ;
403400
404401 T :: AuthorityConfig :: check_fast_track_schedule ( origin, & initial_origin, new_delay) ?;
405- #[ allow( deprecated) ]
406- T :: Scheduler :: reschedule_named ( ( & initial_origin, task_id) . encode ( ) , when)
407- . map_err ( |_| Error :: < T > :: FailedToFastTrack ) ?;
402+ let task_name = ( & initial_origin, task_id) . using_encoded ( blake2_256) ;
403+ T :: Scheduler :: reschedule_named ( task_name, when) . map_err ( |_| Error :: < T > :: FailedToFastTrack ) ?;
408404
409405 Self :: deposit_event ( Event :: FastTracked {
410406 origin : * initial_origin,
@@ -425,12 +421,9 @@ pub mod module {
425421 ) -> DispatchResult {
426422 T :: AuthorityConfig :: check_delay_schedule ( origin, & initial_origin) ?;
427423
428- #[ allow( deprecated) ]
429- T :: Scheduler :: reschedule_named (
430- ( & initial_origin, task_id) . encode ( ) ,
431- DispatchTime :: After ( additional_delay) ,
432- )
433- . map_err ( |_| Error :: < T > :: FailedToDelay ) ?;
424+ let task_name = ( & initial_origin, task_id) . using_encoded ( blake2_256) ;
425+ T :: Scheduler :: reschedule_named ( task_name, DispatchTime :: After ( additional_delay) )
426+ . map_err ( |_| Error :: < T > :: FailedToDelay ) ?;
434427
435428 let now = frame_system:: Pallet :: < T > :: block_number ( ) ;
436429 let dispatch_at = now. saturating_add ( additional_delay) ;
@@ -452,8 +445,9 @@ pub mod module {
452445 task_id : ScheduleTaskIndex ,
453446 ) -> DispatchResult {
454447 T :: AuthorityConfig :: check_cancel_schedule ( origin, & initial_origin) ?;
455- #[ allow( deprecated) ]
456- T :: Scheduler :: cancel_named ( ( & initial_origin, task_id) . encode ( ) ) . map_err ( |_| Error :: < T > :: FailedToCancel ) ?;
448+
449+ let task_name = ( & initial_origin, task_id) . using_encoded ( blake2_256) ;
450+ T :: Scheduler :: cancel_named ( task_name) . map_err ( |_| Error :: < T > :: FailedToCancel ) ?;
457451
458452 Self :: deposit_event ( Event :: Cancelled {
459453 origin : * initial_origin,
0 commit comments