mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 02:51:01 +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:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user