@@ -84,7 +84,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
8484 spec_name : alloc:: borrow:: Cow :: Borrowed ( "robonomics" ) ,
8585 impl_name : alloc:: borrow:: Cow :: Borrowed ( "robonomics-airalab" ) ,
8686 authoring_version : 1 ,
87- spec_version : 40 ,
87+ spec_version : 41 ,
8888 impl_version : 1 ,
8989 apis : RUNTIME_API_VERSIONS ,
9090 transaction_version : 2 ,
@@ -204,7 +204,7 @@ impl cumulus_pallet_aura_ext::Config for Runtime {}
204204
205205impl pallet_timestamp:: Config for Runtime {
206206 type Moment = u64 ;
207- type OnTimestampSet = Aura ;
207+ type OnTimestampSet = ( ) ;
208208 type MinimumPeriod = ConstU64 < 0 > ;
209209 type WeightInfo = ( ) ;
210210}
@@ -945,9 +945,27 @@ impl_runtime_apis! {
945945 }
946946}
947947
948+ /// Recovery block executor that pass blocks when authorities list is empty.
949+ pub struct BlockExecutor < T , I > ( core:: marker:: PhantomData < ( T , I ) > ) ;
950+
951+ impl < Block , T , I > frame_support:: traits:: ExecuteBlock < Block > for BlockExecutor < T , I >
952+ where
953+ Block : BlockT ,
954+ T : cumulus_pallet_aura_ext:: Config ,
955+ I : frame_support:: traits:: ExecuteBlock < Block > ,
956+ {
957+ fn execute_block ( block : Block ) {
958+ if pallet_aura:: Authorities :: < T > :: get ( ) . len ( ) > 0 {
959+ cumulus_pallet_aura_ext:: BlockExecutor :: < T , I > :: execute_block ( block) ;
960+ } else {
961+ I :: execute_block ( block) ;
962+ }
963+ }
964+ }
965+
948966cumulus_pallet_parachain_system:: register_validate_block! {
949967 Runtime = Runtime ,
950- BlockExecutor = cumulus_pallet_aura_ext :: BlockExecutor :: <Runtime , Executive >,
968+ BlockExecutor = BlockExecutor <Runtime , Executive >,
951969}
952970
953971parameter_types ! {
0 commit comments