1234567891011121314151617use frame_support::{18 traits::PrivilegeCmp,19 weights::Weight,20 parameter_types21};22use frame_system::EnsureSigned;23use sp_runtime::Perbill;24use sp_std::cmp::Ordering;25use crate::{26 runtime_common::{27 scheduler::SchedulerPaymentExecutor,28 config::substrate::RuntimeBlockWeights,29 },30 Runtime, Call, Event, Origin, OriginCaller, Balances31};32use common_types::AccountId;3334parameter_types! {35 pub MaximumSchedulerWeight: Weight = Perbill::from_percent(50) *36 RuntimeBlockWeights::get().max_block;37 pub const MaxScheduledPerBlock: u32 = 50;3839 pub const NoPreimagePostponement: Option<u32> = Some(10);40 pub const Preimage: Option<u32> = Some(10);41}424344pub struct OriginPrivilegeCmp;4546impl PrivilegeCmp<OriginCaller> for OriginPrivilegeCmp {47 fn cmp_privilege(_left: &OriginCaller, _right: &OriginCaller) -> Option<Ordering> {48 Some(Ordering::Equal)49 }50}5152impl pallet_unique_scheduler::Config for Runtime {53 type Event = Event;54 type Origin = Origin;55 type Currency = Balances;56 type PalletsOrigin = OriginCaller;57 type Call = Call;58 type MaximumWeight = MaximumSchedulerWeight;59 type ScheduleOrigin = EnsureSigned<AccountId>;60 type MaxScheduledPerBlock = MaxScheduledPerBlock;61 type WeightInfo = ();62 type CallExecutor = SchedulerPaymentExecutor;63 type OriginPrivilegeCmp = OriginPrivilegeCmp;64 type PreimageProvider = ();65 type NoPreimagePostponement = NoPreimagePostponement;66}