diff --git a/runtime/common/src/parachains.rs b/runtime/common/src/parachains.rs index ef67adb031f1..04b78024567f 100644 --- a/runtime/common/src/parachains.rs +++ b/runtime/common/src/parachains.rs @@ -300,7 +300,7 @@ pub trait Trait: CreateSignedTransaction> + attestations::Trait + ses } /// Origin for the parachains module. -#[derive(PartialEq, Eq, Clone)] +#[derive(PartialEq, Eq, Clone, Encode, Decode)] #[cfg_attr(feature = "std", derive(Debug))] pub enum Origin { /// It comes from a parachain. diff --git a/runtime/kusama/src/lib.rs b/runtime/kusama/src/lib.rs index c60e31eddd6e..366f9e33efcb 100644 --- a/runtime/kusama/src/lib.rs +++ b/runtime/kusama/src/lib.rs @@ -149,8 +149,10 @@ impl system::Trait for Runtime { impl scheduler::Trait for Runtime { type Event = Event; type Origin = Origin; + type PalletsOrigin = OriginCaller; type Call = Call; type MaximumWeight = MaximumBlockWeight; + type ScheduleOrigin = EnsureRoot; } parameter_types! { @@ -370,6 +372,7 @@ impl democracy::Trait for Runtime { type PreimageByteDeposit = PreimageByteDeposit; type Slash = Treasury; type Scheduler = Scheduler; + type PalletsOrigin = OriginCaller; type MaxVotes = MaxVotes; type OperationalPreimageOrigin = collective::EnsureMember; } @@ -881,10 +884,14 @@ impl proxy::Trait for Runtime { } pub struct CustomOnRuntimeUpgrade; -impl frame_support::traits::OnRuntimeUpgrade for CustomOnRuntimeUpgrade { + impl frame_support::traits::OnRuntimeUpgrade for CustomOnRuntimeUpgrade { fn on_runtime_upgrade() -> frame_support::weights::Weight { treasury::Module::::migrate_retract_tip_for_tip_new(); - 500_000_000 + if scheduler::Module::::migrate_v1_to_t2() { + ::MaximumBlockWeight::get() + } else { + ::DbWeight::get().reads(1) + 500_000_000 + } } } diff --git a/runtime/polkadot/src/lib.rs b/runtime/polkadot/src/lib.rs index 200ba5ec5c7e..b21ad3bdbc85 100644 --- a/runtime/polkadot/src/lib.rs +++ b/runtime/polkadot/src/lib.rs @@ -175,8 +175,10 @@ impl system::Trait for Runtime { impl scheduler::Trait for Runtime { type Event = Event; type Origin = Origin; + type PalletsOrigin = OriginCaller; type Call = Call; type MaximumWeight = MaximumBlockWeight; + type ScheduleOrigin = EnsureRoot; } parameter_types! { @@ -416,6 +418,7 @@ impl democracy::Trait for Runtime { type OperationalPreimageOrigin = collective::EnsureMember; type Slash = Treasury; type Scheduler = Scheduler; + type PalletsOrigin = OriginCaller; type MaxVotes = MaxVotes; } @@ -862,6 +865,17 @@ impl proxy::Trait for Runtime { type MaxProxies = MaxProxies; } +pub struct CustomOnRuntimeUpgrade; + impl frame_support::traits::OnRuntimeUpgrade for CustomOnRuntimeUpgrade { + fn on_runtime_upgrade() -> frame_support::weights::Weight { + if scheduler::Module::::migrate_v1_to_t2() { + ::MaximumBlockWeight::get() + } else { + ::DbWeight::get().reads(1) + } + } +} + construct_runtime! { pub enum Runtime where Block = Block, @@ -959,7 +973,14 @@ pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Executive: handles dispatch to the various modules. -pub type Executive = executive::Executive, Runtime, AllModules>; +pub type Executive = executive::Executive< + Runtime, + Block, + system::ChainContext, + Runtime, + AllModules, + CustomOnRuntimeUpgrade +>; /// The payload being signed in transactions. pub type SignedPayload = generic::SignedPayload; diff --git a/runtime/westend/src/lib.rs b/runtime/westend/src/lib.rs index a172e41162e3..5c33a4c63373 100644 --- a/runtime/westend/src/lib.rs +++ b/runtime/westend/src/lib.rs @@ -58,6 +58,7 @@ use im_online::sr25519::AuthorityId as ImOnlineId; use authority_discovery_primitives::AuthorityId as AuthorityDiscoveryId; use transaction_payment_rpc_runtime_api::RuntimeDispatchInfo; use session::historical as session_historical; +use system::EnsureRoot; #[cfg(feature = "std")] pub use staking::StakerStatus; @@ -138,8 +139,10 @@ impl system::Trait for Runtime { impl scheduler::Trait for Runtime { type Event = Event; type Origin = Origin; + type PalletsOrigin = OriginCaller; type Call = Call; type MaximumWeight = MaximumBlockWeight; + type ScheduleOrigin = EnsureRoot; } parameter_types! {