From fb52660081fe158dd00029d4c0d62695e0aefce2 Mon Sep 17 00:00:00 2001 From: Muharem Ismailov Date: Thu, 22 Dec 2022 13:01:46 +0100 Subject: [PATCH] Companion: Accept Kusama StakingAdmin origin (#1865) * Companion: Accept Kusamsa StakinAdmin origin * Fellows origin for xcmp queue controller * plurality bodies to ensure origin * include root into controller ensure origin * fix * use xcm bodies * rename to more frequent "defense" Co-authored-by: parity-processbot <> --- .../runtimes/assets/statemine/src/lib.rs | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/parachains/runtimes/assets/statemine/src/lib.rs b/parachains/runtimes/assets/statemine/src/lib.rs index e26399d74ab..1228cc357c9 100644 --- a/parachains/runtimes/assets/statemine/src/lib.rs +++ b/parachains/runtimes/assets/statemine/src/lib.rs @@ -69,7 +69,7 @@ use xcm_config::{KsmLocation, XcmConfig}; pub use sp_runtime::BuildStorage; // Polkadot imports -use pallet_xcm::{EnsureXcm, IsMajorityOfBody}; +use pallet_xcm::{EnsureXcm, IsMajorityOfBody, IsVoiceOfBody}; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; use xcm::latest::BodyId; use xcm_executor::XcmExecutor; @@ -451,6 +451,11 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} +parameter_types! { + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; +} + impl cumulus_pallet_xcmp_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; @@ -459,7 +464,10 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ExecuteOverweightOrigin = EnsureRoot; type ControllerOrigin = EitherOfDiverse< EnsureRoot, - EnsureXcm>, + EnsureXcm<( + IsMajorityOfBody, + IsVoiceOfBody, + )>, >; type ControllerOriginConverter = xcm_config::XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; @@ -502,11 +510,18 @@ parameter_types! { pub const MinCandidates: u32 = 5; pub const SessionLength: BlockNumber = 6 * HOURS; pub const MaxInvulnerables: u32 = 100; + // StakingAdmin pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; } -/// We allow root and the Relay Chain council to execute privileged collator selection operations. -pub type CollatorSelectionUpdateOrigin = - EitherOfDiverse, EnsureXcm>>; +/// We allow root, the Relay Chain council and the StakingAdmin to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm<( + IsMajorityOfBody, + IsVoiceOfBody, + )>, +>; impl pallet_collator_selection::Config for Runtime { type RuntimeEvent = RuntimeEvent;