mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 16:21:06 +00:00
Introduce/integrate a collective into Rococo Relay (#2869)
* Introduce a collective into Rococo runtime * Intregrate Rococo Collective into XCM * Fixes * Update runtime/rococo/src/lib.rs Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
This commit is contained in:
@@ -85,14 +85,10 @@ use runtime_parachains::scheduler as parachains_scheduler;
|
||||
pub use pallet_balances::Call as BalancesCall;
|
||||
|
||||
use polkadot_parachain::primitives::Id as ParaId;
|
||||
use xcm::v0::{MultiLocation, NetworkId};
|
||||
|
||||
use xcm::v0::{MultiLocation, NetworkId, BodyId};
|
||||
use xcm_executor::XcmExecutor;
|
||||
use xcm_builder::{
|
||||
AccountId32Aliases, ChildParachainConvertsVia, SovereignSignedViaLocation,
|
||||
CurrencyAdapter as XcmCurrencyAdapter, ChildParachainAsNative,
|
||||
SignedAccountId32AsNative, ChildSystemParachainAsSuperuser, LocationInverter,
|
||||
IsConcrete, FixedWeightBounds, FixedRateOfConcreteFungible,
|
||||
};
|
||||
use xcm_builder::{AccountId32Aliases, ChildParachainConvertsVia, SovereignSignedViaLocation, CurrencyAdapter as XcmCurrencyAdapter, ChildParachainAsNative, SignedAccountId32AsNative, ChildSystemParachainAsSuperuser, LocationInverter, IsConcrete, FixedWeightBounds, FixedRateOfConcreteFungible, BackingToPlurality, SignedToAccountId32};
|
||||
use constants::{time::*, currency::*, fee::*};
|
||||
use frame_support::traits::InstanceFilter;
|
||||
|
||||
@@ -273,6 +269,10 @@ construct_runtime! {
|
||||
// Validator Manager pallet.
|
||||
ValidatorManager: validator_manager::{Pallet, Call, Storage, Event<T>},
|
||||
|
||||
// A "council"
|
||||
Collective: pallet_collective::{Pallet, Call, Storage, Origin<T>, Event<T>, Config<T>} = 80,
|
||||
Membership: pallet_membership::{Pallet, Call, Storage, Event<T>, Config<T>} = 81,
|
||||
|
||||
Utility: pallet_utility::{Pallet, Call, Event} = 90,
|
||||
Proxy: pallet_proxy::{Pallet, Call, Storage, Event<T>} = 91,
|
||||
|
||||
@@ -645,9 +645,17 @@ impl xcm_executor::Config for XcmConfig {
|
||||
type ResponseHandler = ();
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub const CollectiveBodyId: BodyId = BodyId::Unit;
|
||||
}
|
||||
|
||||
/// Type to convert an `Origin` type value into a `MultiLocation` value which represents an interior location
|
||||
/// of this chain.
|
||||
pub type LocalOriginToLocation = (
|
||||
// We allow an origin from the Collective pallet to be used in XCM as a corresponding Plurality
|
||||
BackingToPlurality<Origin, pallet_collective::Origin<Runtime>, CollectiveBodyId>,
|
||||
// And a usual Signed origin to be used in XCM as a corresponding AccountId32
|
||||
SignedToAccountId32<Origin, AccountId, RococoNetwork>,
|
||||
);
|
||||
|
||||
impl pallet_xcm::Config for Runtime {
|
||||
@@ -856,6 +864,34 @@ impl pallet_proxy::Config for Runtime {
|
||||
type AnnouncementDepositFactor = AnnouncementDepositFactor;
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub const MotionDuration: BlockNumber = 5;
|
||||
pub const MaxProposals: u32 = 100;
|
||||
pub const MaxMembers: u32 = 100;
|
||||
}
|
||||
|
||||
impl pallet_collective::Config for Runtime {
|
||||
type Origin = Origin;
|
||||
type Proposal = Call;
|
||||
type Event = Event;
|
||||
type MotionDuration = MotionDuration;
|
||||
type MaxProposals = MaxProposals;
|
||||
type MaxMembers = MaxMembers;
|
||||
type DefaultVote = pallet_collective::PrimeDefaultVote;
|
||||
type WeightInfo = ();
|
||||
}
|
||||
|
||||
impl pallet_membership::Config for Runtime {
|
||||
type Event = Event;
|
||||
type AddOrigin = EnsureRoot<AccountId>;
|
||||
type RemoveOrigin = EnsureRoot<AccountId>;
|
||||
type SwapOrigin = EnsureRoot<AccountId>;
|
||||
type ResetOrigin = EnsureRoot<AccountId>;
|
||||
type PrimeOrigin = EnsureRoot<AccountId>;
|
||||
type MembershipInitialized = Collective;
|
||||
type MembershipChanged = Collective;
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "disable-runtime-api"))]
|
||||
sp_api::impl_runtime_apis! {
|
||||
impl sp_api::Core<Block> for Runtime {
|
||||
|
||||
Reference in New Issue
Block a user