mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 14:01:02 +00:00
Introduce OpenGov into Polkadot (#6701)
* OpenGov for Polkadot * Integrate OpenGov into XCM * Formatting * Missing files * Remove Gov1 from Kusama * Fixes * Update runtime/polkadot/src/governance/origins.rs Co-authored-by: Ankan <10196091+Ank4n@users.noreply.github.com> * Revert scheduler origin changes * Fixes * Docs * Remove todo * Docs * Move Fellowship to Collectives (#6718) * FellowshipAdmin origin over xcm * accept Fellows origin from Collectives * remove Fellowship * remove unreachable arm * define benchmarks * correct comment for DOLLARS constant * Add OpenGov Calls to Proxy Definitions (#6729) * add opengov calls to proxy definitions * fix build * Update runtime/polkadot/src/governance/mod.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update runtime/polkadot/src/governance/tracks.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update runtime/polkadot/src/lib.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update runtime/polkadot/src/governance/origins.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update runtime/polkadot/src/governance/mod.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update old.rs * Update old.rs * weights with new api * XCM tweaks for OpenGov (#6855) * pass xcm origin, allow unpaid form Collectives and Fellows, whitelist call * unpaid execution only for Fellows * Apply suggestions from code review Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * rename const namespace to system_parachains * remove prod_or_fast --------- Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * remove unused import --------- Co-authored-by: Ankan <10196091+Ank4n@users.noreply.github.com> Co-authored-by: parity-processbot <> Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com> Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
This commit is contained in:
@@ -335,18 +335,7 @@ impl pallet_ranked_collective::Config<FellowshipCollectiveInstance> for Runtime
|
||||
// - the FellowshipAdmin origin (i.e. token holder referendum);
|
||||
// - a vote by the rank *above* the new rank.
|
||||
type PromoteOrigin = EitherOf<
|
||||
EitherOf<
|
||||
frame_system::EnsureRootWithSuccess<Self::AccountId, ConstU16<65535>>,
|
||||
MapSuccess<
|
||||
pallet_collective::EnsureProportionAtLeast<
|
||||
Self::AccountId,
|
||||
super::old::TechnicalCollective,
|
||||
2,
|
||||
3,
|
||||
>,
|
||||
Replace<ConstU16<6>>,
|
||||
>,
|
||||
>,
|
||||
frame_system::EnsureRootWithSuccess<Self::AccountId, ConstU16<65535>>,
|
||||
EitherOf<
|
||||
MapSuccess<FellowshipAdmin, Replace<ConstU16<9>>>,
|
||||
TryMapSuccess<origins::EnsureFellowship, CheckedReduceBy<ConstU16<1>>>,
|
||||
|
||||
@@ -23,9 +23,6 @@ use frame_support::{
|
||||
};
|
||||
use frame_system::EnsureRootWithSuccess;
|
||||
|
||||
// Old governance configurations.
|
||||
pub mod old;
|
||||
|
||||
mod origins;
|
||||
pub use origins::{
|
||||
pallet_custom_origins, AuctionAdmin, Fellows, FellowshipAdmin, FellowshipExperts,
|
||||
|
||||
@@ -1,177 +0,0 @@
|
||||
// Copyright 2022 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Polkadot.
|
||||
|
||||
// Polkadot is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Polkadot is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! Old governance configurations for the Kusama runtime.
|
||||
|
||||
use crate::*;
|
||||
use frame_support::{parameter_types, traits::EitherOfDiverse};
|
||||
|
||||
parameter_types! {
|
||||
pub LaunchPeriod: BlockNumber = prod_or_fast!(7 * DAYS, 1, "KSM_LAUNCH_PERIOD");
|
||||
pub VotingPeriod: BlockNumber = prod_or_fast!(7 * DAYS, 1 * MINUTES, "KSM_VOTING_PERIOD");
|
||||
pub FastTrackVotingPeriod: BlockNumber = prod_or_fast!(3 * HOURS, 1 * MINUTES, "KSM_FAST_TRACK_VOTING_PERIOD");
|
||||
pub const MinimumDeposit: Balance = 100 * CENTS;
|
||||
pub EnactmentPeriod: BlockNumber = prod_or_fast!(8 * DAYS, 1, "KSM_ENACTMENT_PERIOD");
|
||||
pub CooloffPeriod: BlockNumber = prod_or_fast!(7 * DAYS, 1 * MINUTES, "KSM_COOLOFF_PERIOD");
|
||||
pub const InstantAllowed: bool = true;
|
||||
pub const MaxVotes: u32 = 100;
|
||||
pub const MaxProposals: u32 = 100;
|
||||
}
|
||||
|
||||
impl pallet_democracy::Config for Runtime {
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type Currency = Balances;
|
||||
type EnactmentPeriod = EnactmentPeriod;
|
||||
type VoteLockingPeriod = EnactmentPeriod;
|
||||
type LaunchPeriod = LaunchPeriod;
|
||||
type VotingPeriod = VotingPeriod;
|
||||
type MinimumDeposit = MinimumDeposit;
|
||||
type SubmitOrigin = frame_system::EnsureSigned<AccountId>;
|
||||
/// A straight majority of the council can decide what their next motion is.
|
||||
type ExternalOrigin =
|
||||
pallet_collective::EnsureProportionAtLeast<AccountId, CouncilCollective, 1, 2>;
|
||||
/// A majority can have the next scheduled referendum be a straight majority-carries vote.
|
||||
type ExternalMajorityOrigin =
|
||||
pallet_collective::EnsureProportionAtLeast<AccountId, CouncilCollective, 1, 2>;
|
||||
/// A unanimous council can have the next scheduled referendum be a straight default-carries
|
||||
/// (NTB) vote.
|
||||
type ExternalDefaultOrigin =
|
||||
pallet_collective::EnsureProportionAtLeast<AccountId, CouncilCollective, 1, 1>;
|
||||
/// Two thirds of the technical committee can have an `ExternalMajority/ExternalDefault` vote
|
||||
/// be tabled immediately and with a shorter voting/enactment period.
|
||||
type FastTrackOrigin =
|
||||
pallet_collective::EnsureProportionAtLeast<AccountId, TechnicalCollective, 2, 3>;
|
||||
type InstantOrigin =
|
||||
pallet_collective::EnsureProportionAtLeast<AccountId, TechnicalCollective, 1, 1>;
|
||||
type InstantAllowed = InstantAllowed;
|
||||
type FastTrackVotingPeriod = FastTrackVotingPeriod;
|
||||
// To cancel a proposal which has been passed, 2/3 of the council must agree to it.
|
||||
type CancellationOrigin = EitherOfDiverse<
|
||||
EnsureRoot<AccountId>,
|
||||
pallet_collective::EnsureProportionAtLeast<AccountId, CouncilCollective, 2, 3>,
|
||||
>;
|
||||
type BlacklistOrigin = EnsureRoot<AccountId>;
|
||||
// To cancel a proposal before it has been passed, the technical committee must be unanimous or
|
||||
// Root must agree.
|
||||
type CancelProposalOrigin = EitherOfDiverse<
|
||||
EnsureRoot<AccountId>,
|
||||
pallet_collective::EnsureProportionAtLeast<AccountId, TechnicalCollective, 1, 1>,
|
||||
>;
|
||||
// Any single technical committee member may veto a coming council proposal, however they can
|
||||
// only do it once and it lasts only for the cooloff period.
|
||||
type VetoOrigin = pallet_collective::EnsureMember<AccountId, TechnicalCollective>;
|
||||
type CooloffPeriod = CooloffPeriod;
|
||||
type Slash = Treasury;
|
||||
type Scheduler = Scheduler;
|
||||
type PalletsOrigin = OriginCaller;
|
||||
type MaxVotes = MaxVotes;
|
||||
type WeightInfo = weights::pallet_democracy::WeightInfo<Runtime>;
|
||||
type MaxProposals = MaxProposals;
|
||||
type Preimages = Preimage;
|
||||
type MaxDeposits = ConstU32<100>;
|
||||
type MaxBlacklisted = ConstU32<100>;
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub CouncilMotionDuration: BlockNumber = prod_or_fast!(3 * DAYS, 2 * MINUTES, "KSM_MOTION_DURATION");
|
||||
pub const CouncilMaxProposals: u32 = 100;
|
||||
pub const CouncilMaxMembers: u32 = 100;
|
||||
}
|
||||
|
||||
pub type CouncilCollective = pallet_collective::Instance1;
|
||||
impl pallet_collective::Config<CouncilCollective> for Runtime {
|
||||
type RuntimeOrigin = RuntimeOrigin;
|
||||
type Proposal = RuntimeCall;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type MotionDuration = CouncilMotionDuration;
|
||||
type MaxProposals = CouncilMaxProposals;
|
||||
type MaxMembers = CouncilMaxMembers;
|
||||
type DefaultVote = pallet_collective::PrimeDefaultVote;
|
||||
type SetMembersOrigin = EnsureRoot<AccountId>;
|
||||
type WeightInfo = weights::pallet_collective_council::WeightInfo<Runtime>;
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub const CandidacyBond: Balance = 100 * CENTS;
|
||||
// 1 storage item created, key size is 32 bytes, value size is 16+16.
|
||||
pub const VotingBondBase: Balance = deposit(1, 64);
|
||||
// additional data per vote is 32 bytes (account id).
|
||||
pub const VotingBondFactor: Balance = deposit(0, 32);
|
||||
/// Daily council elections
|
||||
pub TermDuration: BlockNumber = prod_or_fast!(24 * HOURS, 2 * MINUTES, "KSM_TERM_DURATION");
|
||||
pub const DesiredMembers: u32 = 19;
|
||||
pub const DesiredRunnersUp: u32 = 19;
|
||||
pub const MaxVotesPerVoter: u32 = 16;
|
||||
pub const MaxVoters: u32 = 10 * 1000;
|
||||
pub const MaxCandidates: u32 = 1000;
|
||||
pub const PhragmenElectionPalletId: LockIdentifier = *b"phrelect";
|
||||
}
|
||||
|
||||
// Make sure that there are no more than `MaxMembers` members elected via Phragmen.
|
||||
const_assert!(DesiredMembers::get() <= CouncilMaxMembers::get());
|
||||
|
||||
impl pallet_elections_phragmen::Config for Runtime {
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type Currency = Balances;
|
||||
type ChangeMembers = Council;
|
||||
type InitializeMembers = Council;
|
||||
type CurrencyToVote = frame_support::traits::U128CurrencyToVote;
|
||||
type CandidacyBond = CandidacyBond;
|
||||
type VotingBondBase = VotingBondBase;
|
||||
type VotingBondFactor = VotingBondFactor;
|
||||
type LoserCandidate = Treasury;
|
||||
type KickedMember = Treasury;
|
||||
type DesiredMembers = DesiredMembers;
|
||||
type DesiredRunnersUp = DesiredRunnersUp;
|
||||
type TermDuration = TermDuration;
|
||||
type MaxVoters = MaxVoters;
|
||||
type MaxCandidates = MaxCandidates;
|
||||
type MaxVotesPerVoter = MaxVotesPerVoter;
|
||||
type PalletId = PhragmenElectionPalletId;
|
||||
type WeightInfo = weights::pallet_elections_phragmen::WeightInfo<Runtime>;
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub TechnicalMotionDuration: BlockNumber = prod_or_fast!(3 * DAYS, 2 * MINUTES, "KSM_MOTION_DURATION");
|
||||
pub const TechnicalMaxProposals: u32 = 100;
|
||||
pub const TechnicalMaxMembers: u32 = 100;
|
||||
}
|
||||
|
||||
pub type TechnicalCollective = pallet_collective::Instance2;
|
||||
impl pallet_collective::Config<TechnicalCollective> for Runtime {
|
||||
type RuntimeOrigin = RuntimeOrigin;
|
||||
type Proposal = RuntimeCall;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type MotionDuration = TechnicalMotionDuration;
|
||||
type MaxProposals = TechnicalMaxProposals;
|
||||
type MaxMembers = TechnicalMaxMembers;
|
||||
type DefaultVote = pallet_collective::PrimeDefaultVote;
|
||||
type SetMembersOrigin = EnsureRoot<AccountId>;
|
||||
type WeightInfo = weights::pallet_collective_technical_committee::WeightInfo<Runtime>;
|
||||
}
|
||||
|
||||
impl pallet_membership::Config<pallet_membership::Instance1> for Runtime {
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type AddOrigin = EnsureRoot<AccountId>;
|
||||
type RemoveOrigin = EnsureRoot<AccountId>;
|
||||
type SwapOrigin = EnsureRoot<AccountId>;
|
||||
type ResetOrigin = EnsureRoot<AccountId>;
|
||||
type PrimeOrigin = EnsureRoot<AccountId>;
|
||||
type MembershipInitialized = TechnicalCommittee;
|
||||
type MembershipChanged = TechnicalCommittee;
|
||||
type MaxMembers = TechnicalMaxMembers;
|
||||
type WeightInfo = weights::pallet_membership::WeightInfo<Runtime>;
|
||||
}
|
||||
@@ -55,7 +55,7 @@ use frame_support::{
|
||||
construct_runtime, parameter_types,
|
||||
traits::{
|
||||
ConstU32, Contains, EitherOf, EitherOfDiverse, InstanceFilter, KeyOwnerProofSystem,
|
||||
LockIdentifier, PrivilegeCmp, StorageMapShim, WithdrawReasons,
|
||||
PrivilegeCmp, StorageMapShim, WithdrawReasons,
|
||||
},
|
||||
weights::ConstantMultiplier,
|
||||
PalletId, RuntimeDebug,
|
||||
@@ -80,7 +80,6 @@ use sp_staking::SessionIndex;
|
||||
#[cfg(any(feature = "std", test))]
|
||||
use sp_version::NativeVersion;
|
||||
use sp_version::RuntimeVersion;
|
||||
use static_assertions::const_assert;
|
||||
|
||||
pub use frame_system::Call as SystemCall;
|
||||
pub use pallet_balances::Call as BalancesCall;
|
||||
@@ -107,8 +106,8 @@ pub mod xcm_config;
|
||||
// Governance configurations.
|
||||
pub mod governance;
|
||||
use governance::{
|
||||
old::CouncilCollective, pallet_custom_origins, AuctionAdmin, Fellows, GeneralAdmin, LeaseAdmin,
|
||||
StakingAdmin, Treasurer, TreasurySpender,
|
||||
pallet_custom_origins, AuctionAdmin, Fellows, GeneralAdmin, LeaseAdmin, StakingAdmin,
|
||||
Treasurer, TreasurySpender,
|
||||
};
|
||||
|
||||
#[cfg(test)]
|
||||
@@ -207,11 +206,6 @@ impl PrivilegeCmp<OriginCaller> for OriginPrivilegeCmp {
|
||||
match (left, right) {
|
||||
// Root is greater than anything.
|
||||
(OriginCaller::system(frame_system::RawOrigin::Root), _) => Some(Ordering::Greater),
|
||||
// Check which one has more yes votes.
|
||||
(
|
||||
OriginCaller::Council(pallet_collective::RawOrigin::Members(l_yes_votes, l_count)),
|
||||
OriginCaller::Council(pallet_collective::RawOrigin::Members(r_yes_votes, r_count)),
|
||||
) => Some((l_yes_votes * r_count).cmp(&(r_yes_votes * l_count))),
|
||||
// For every other origin we don't care, as they are not used for `ScheduleOrigin`.
|
||||
_ => None,
|
||||
}
|
||||
@@ -224,6 +218,8 @@ impl pallet_scheduler::Config for Runtime {
|
||||
type PalletsOrigin = OriginCaller;
|
||||
type RuntimeCall = RuntimeCall;
|
||||
type MaximumWeight = MaximumSchedulerWeight;
|
||||
// The goal of having ScheduleOrigin include AuctionAdmin is to allow the auctions track of
|
||||
// OpenGov to schedule periodic auctions.
|
||||
type ScheduleOrigin = EitherOf<EnsureRoot<AccountId>, AuctionAdmin>;
|
||||
type MaxScheduledPerBlock = MaxScheduledPerBlock;
|
||||
type WeightInfo = weights::pallet_scheduler::WeightInfo<Runtime>;
|
||||
@@ -594,10 +590,7 @@ impl pallet_fast_unstake::Config for Runtime {
|
||||
type Currency = Balances;
|
||||
type BatchSize = frame_support::traits::ConstU32<64>;
|
||||
type Deposit = frame_support::traits::ConstU128<{ CENTS * 100 }>;
|
||||
type ControlOrigin = EitherOfDiverse<
|
||||
EnsureRoot<AccountId>,
|
||||
pallet_collective::EnsureProportionAtLeast<AccountId, CouncilCollective, 1, 2>,
|
||||
>;
|
||||
type ControlOrigin = EnsureRoot<AccountId>;
|
||||
type Staking = Staking;
|
||||
type MaxErasToCheckPerBlock = ConstU32<1>;
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
@@ -681,17 +674,6 @@ impl pallet_child_bounties::Config for Runtime {
|
||||
type WeightInfo = weights::pallet_child_bounties::WeightInfo<Runtime>;
|
||||
}
|
||||
|
||||
impl pallet_tips::Config for Runtime {
|
||||
type MaximumReasonLength = MaximumReasonLength;
|
||||
type DataDepositPerByte = DataDepositPerByte;
|
||||
type Tippers = PhragmenElection;
|
||||
type TipCountdown = TipCountdown;
|
||||
type TipFindersFee = TipFindersFee;
|
||||
type TipReportDepositBase = TipReportDepositBase;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type WeightInfo = weights::pallet_tips::WeightInfo<Runtime>;
|
||||
}
|
||||
|
||||
impl pallet_offences::Config for Runtime {
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type IdentificationTuple = pallet_session::historical::IdentificationTuple<Self>;
|
||||
@@ -983,15 +965,9 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
|
||||
RuntimeCall::Session(..) |
|
||||
RuntimeCall::Grandpa(..) |
|
||||
RuntimeCall::ImOnline(..) |
|
||||
RuntimeCall::Democracy(..) |
|
||||
RuntimeCall::Council(..) |
|
||||
RuntimeCall::TechnicalCommittee(..) |
|
||||
RuntimeCall::PhragmenElection(..) |
|
||||
RuntimeCall::TechnicalMembership(..) |
|
||||
RuntimeCall::Treasury(..) |
|
||||
RuntimeCall::Bounties(..) |
|
||||
RuntimeCall::ChildBounties(..) |
|
||||
RuntimeCall::Tips(..) |
|
||||
RuntimeCall::ConvictionVoting(..) |
|
||||
RuntimeCall::Referenda(..) |
|
||||
RuntimeCall::FellowshipCollective(..) |
|
||||
@@ -1028,12 +1004,9 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
|
||||
),
|
||||
ProxyType::Governance => matches!(
|
||||
c,
|
||||
RuntimeCall::Democracy(..) |
|
||||
RuntimeCall::Council(..) | RuntimeCall::TechnicalCommittee(..) |
|
||||
RuntimeCall::PhragmenElection(..) |
|
||||
RuntimeCall::Treasury(..) |
|
||||
RuntimeCall::Treasury(..) |
|
||||
RuntimeCall::Bounties(..) |
|
||||
RuntimeCall::Tips(..) | RuntimeCall::Utility(..) |
|
||||
RuntimeCall::Utility(..) |
|
||||
RuntimeCall::ChildBounties(..) |
|
||||
// OpenGov calls
|
||||
RuntimeCall::ConvictionVoting(..) |
|
||||
@@ -1361,13 +1334,7 @@ construct_runtime! {
|
||||
AuthorityDiscovery: pallet_authority_discovery::{Pallet, Config} = 12,
|
||||
|
||||
// Governance stuff.
|
||||
Democracy: pallet_democracy::{Pallet, Call, Storage, Config<T>, Event<T>} = 13,
|
||||
Council: pallet_collective::<Instance1>::{Pallet, Call, Storage, Origin<T>, Event<T>, Config<T>} = 14,
|
||||
TechnicalCommittee: pallet_collective::<Instance2>::{Pallet, Call, Storage, Origin<T>, Event<T>, Config<T>} = 15,
|
||||
PhragmenElection: pallet_elections_phragmen::{Pallet, Call, Storage, Event<T>, Config<T>} = 16,
|
||||
TechnicalMembership: pallet_membership::<Instance1>::{Pallet, Call, Storage, Event<T>, Config<T>} = 17,
|
||||
Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event<T>} = 18,
|
||||
|
||||
ConvictionVoting: pallet_conviction_voting::{Pallet, Call, Storage, Event<T>} = 20,
|
||||
Referenda: pallet_referenda::{Pallet, Call, Storage, Event<T>} = 21,
|
||||
// pub type FellowshipCollectiveInstance = pallet_ranked_collective::Instance1;
|
||||
@@ -1415,9 +1382,6 @@ construct_runtime! {
|
||||
Bounties: pallet_bounties::{Pallet, Call, Storage, Event<T>} = 35,
|
||||
ChildBounties: pallet_child_bounties = 40,
|
||||
|
||||
// Tips module.
|
||||
Tips: pallet_tips::{Pallet, Call, Storage, Event<T>} = 36,
|
||||
|
||||
// Election pallet. Only works with staking, but placed here to maintain indices.
|
||||
ElectionProviderMultiPhase: pallet_election_provider_multi_phase::{Pallet, Call, Storage, Event<T>, ValidateUnsigned} = 37,
|
||||
|
||||
@@ -1544,11 +1508,7 @@ mod benches {
|
||||
[frame_benchmarking::baseline, Baseline::<Runtime>]
|
||||
[pallet_bounties, Bounties]
|
||||
[pallet_child_bounties, ChildBounties]
|
||||
[pallet_collective, Council]
|
||||
[pallet_collective, TechnicalCommittee]
|
||||
[pallet_conviction_voting, ConvictionVoting]
|
||||
[pallet_democracy, Democracy]
|
||||
[pallet_elections_phragmen, PhragmenElection]
|
||||
[pallet_election_provider_multi_phase, ElectionProviderMultiPhase]
|
||||
[frame_election_provider_support, ElectionProviderBench::<Runtime>]
|
||||
[pallet_fast_unstake, FastUnstake]
|
||||
@@ -1556,7 +1516,6 @@ mod benches {
|
||||
[pallet_identity, Identity]
|
||||
[pallet_im_online, ImOnline]
|
||||
[pallet_indices, Indices]
|
||||
[pallet_membership, TechnicalMembership]
|
||||
[pallet_multisig, Multisig]
|
||||
[pallet_nomination_pools, NominationPoolsBench::<Runtime>]
|
||||
[pallet_offences, OffencesBench::<Runtime>]
|
||||
@@ -1571,7 +1530,6 @@ mod benches {
|
||||
[pallet_staking, Staking]
|
||||
[frame_system, SystemBench::<Runtime>]
|
||||
[pallet_timestamp, Timestamp]
|
||||
[pallet_tips, Tips]
|
||||
[pallet_treasury, Treasury]
|
||||
[pallet_utility, Utility]
|
||||
[pallet_vesting, Vesting]
|
||||
|
||||
@@ -17,9 +17,8 @@
|
||||
//! XCM configurations for the Kusama runtime.
|
||||
|
||||
use super::{
|
||||
parachains_origin, AccountId, AllPalletsWithSystem, Balances, CouncilCollective, Fellows,
|
||||
ParaId, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, StakingAdmin, WeightToFee,
|
||||
XcmPallet,
|
||||
parachains_origin, AccountId, AllPalletsWithSystem, Balances, Fellows, ParaId, Runtime,
|
||||
RuntimeCall, RuntimeEvent, RuntimeOrigin, StakingAdmin, WeightToFee, XcmPallet,
|
||||
};
|
||||
use frame_support::{
|
||||
match_types, parameter_types,
|
||||
@@ -31,8 +30,8 @@ use sp_core::ConstU32;
|
||||
use xcm::latest::prelude::*;
|
||||
use xcm_builder::{
|
||||
AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses,
|
||||
AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, BackingToPlurality,
|
||||
ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser,
|
||||
AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ChildParachainAsNative,
|
||||
ChildParachainConvertsVia, ChildSystemParachainAsSuperuser,
|
||||
CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete,
|
||||
MintLocation, OriginToPluralityVoice, SignedAccountId32AsNative, SignedToAccountId32,
|
||||
SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds,
|
||||
@@ -200,49 +199,6 @@ impl Contains<RuntimeCall> for SafeCallFilter {
|
||||
RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) |
|
||||
RuntimeCall::Grandpa(..) |
|
||||
RuntimeCall::ImOnline(..) |
|
||||
RuntimeCall::Democracy(
|
||||
pallet_democracy::Call::second { .. } |
|
||||
pallet_democracy::Call::vote { .. } |
|
||||
pallet_democracy::Call::emergency_cancel { .. } |
|
||||
pallet_democracy::Call::fast_track { .. } |
|
||||
pallet_democracy::Call::veto_external { .. } |
|
||||
pallet_democracy::Call::cancel_referendum { .. } |
|
||||
pallet_democracy::Call::delegate { .. } |
|
||||
pallet_democracy::Call::undelegate { .. } |
|
||||
pallet_democracy::Call::clear_public_proposals { .. } |
|
||||
pallet_democracy::Call::unlock { .. } |
|
||||
pallet_democracy::Call::remove_vote { .. } |
|
||||
pallet_democracy::Call::remove_other_vote { .. } |
|
||||
pallet_democracy::Call::blacklist { .. } |
|
||||
pallet_democracy::Call::cancel_proposal { .. },
|
||||
) |
|
||||
RuntimeCall::Council(
|
||||
pallet_collective::Call::vote { .. } |
|
||||
pallet_collective::Call::close_old_weight { .. } |
|
||||
pallet_collective::Call::disapprove_proposal { .. } |
|
||||
pallet_collective::Call::close { .. },
|
||||
) |
|
||||
RuntimeCall::TechnicalCommittee(
|
||||
pallet_collective::Call::vote { .. } |
|
||||
pallet_collective::Call::close_old_weight { .. } |
|
||||
pallet_collective::Call::disapprove_proposal { .. } |
|
||||
pallet_collective::Call::close { .. },
|
||||
) |
|
||||
RuntimeCall::PhragmenElection(
|
||||
pallet_elections_phragmen::Call::remove_voter { .. } |
|
||||
pallet_elections_phragmen::Call::submit_candidacy { .. } |
|
||||
pallet_elections_phragmen::Call::renounce_candidacy { .. } |
|
||||
pallet_elections_phragmen::Call::remove_member { .. } |
|
||||
pallet_elections_phragmen::Call::clean_defunct_voters { .. },
|
||||
) |
|
||||
RuntimeCall::TechnicalMembership(
|
||||
pallet_membership::Call::add_member { .. } |
|
||||
pallet_membership::Call::remove_member { .. } |
|
||||
pallet_membership::Call::swap_member { .. } |
|
||||
pallet_membership::Call::change_key { .. } |
|
||||
pallet_membership::Call::set_prime { .. } |
|
||||
pallet_membership::Call::clear_prime { .. },
|
||||
) |
|
||||
RuntimeCall::Treasury(..) |
|
||||
RuntimeCall::ConvictionVoting(..) |
|
||||
RuntimeCall::Referenda(
|
||||
@@ -377,7 +333,6 @@ impl xcm_executor::Config for XcmConfig {
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub const CouncilBodyId: BodyId = BodyId::Executive;
|
||||
// StakingAdmin pluralistic body.
|
||||
pub const StakingAdminBodyId: BodyId = BodyId::Defense;
|
||||
// Fellows pluralistic body.
|
||||
@@ -389,19 +344,9 @@ parameter_types! {
|
||||
pub ReachableDest: Option<MultiLocation> = Some(Parachain(1000).into());
|
||||
}
|
||||
|
||||
/// Type to convert the council origin to a Plurality `MultiLocation` value.
|
||||
pub type CouncilToPlurality = BackingToPlurality<
|
||||
RuntimeOrigin,
|
||||
pallet_collective::Origin<Runtime, CouncilCollective>,
|
||||
CouncilBodyId,
|
||||
>;
|
||||
|
||||
/// 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 of the
|
||||
// `Unit` body.
|
||||
CouncilToPlurality,
|
||||
// And a usual Signed origin to be used in XCM as a corresponding AccountId32
|
||||
SignedToAccountId32<RuntimeOrigin, AccountId, ThisNetwork>,
|
||||
);
|
||||
@@ -416,9 +361,6 @@ pub type FellowsToPlurality = OriginToPluralityVoice<RuntimeOrigin, Fellows, Fel
|
||||
/// Type to convert a pallet `Origin` type value into a `MultiLocation` value which represents an interior location
|
||||
/// of this chain for a destination chain.
|
||||
pub type LocalPalletOriginToLocation = (
|
||||
// We allow an origin from the Collective pallet to be used in XCM as a corresponding Plurality of the
|
||||
// `Unit` body.
|
||||
CouncilToPlurality,
|
||||
// StakingAdmin origin to be used in XCM as a corresponding Plurality `MultiLocation` value.
|
||||
StakingAdminToPlurality,
|
||||
// Fellows origin to be used in XCM as a corresponding Plurality `MultiLocation` value.
|
||||
|
||||
Reference in New Issue
Block a user