mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-08-07 10:05:49 +00:00
69ed3087e1
Migrating [PR from the archived polkadot repo](https://github.com/paritytech/polkadot/pull/7272) As per https://github.com/paritytech/polkadot/pull/7272#issuecomment-1559240466, the changes in this MR include the following pallets into [x] Rococo and [x] Westend runtimes: pallet_conviction_voting pallet_referenda pallet_ranked_collective pallet_custom_origins pallet_whitelist And only for westend-runtime: pallet_treasury Following [Kusama runtime config](https://github.com/paritytech/polkadot/tree/dbae30efe080a1d41fe54ef4da8af47614c9ca93/runtime/kusama/src) as a baseline. Benchmarking of the following pallets done for both Rococo and Westend: pallet_conviction_voting pallet_referenda pallet_ranked_collective (only on Rococo) pallet_whitelist And only for Westend: pallet_treasury Removed Gov1 from Rococo as in https://github.com/paritytech/polkadot/pull/6701 Rococo Gov1 storage will be cleaned in a different PR - [issue ](https://github.com/paritytech/polkadot-sdk/issues/1618) --------- Co-authored-by: Giles Cope <gilescope@gmail.com>
98 lines
3.4 KiB
Rust
98 lines
3.4 KiB
Rust
// Copyright (C) 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/>.
|
|
|
|
//! New governance configurations for the Kusama runtime.
|
|
|
|
use super::*;
|
|
use crate::xcm_config::Collectives;
|
|
use frame_support::{parameter_types, traits::EitherOf};
|
|
use frame_system::EnsureRootWithSuccess;
|
|
use pallet_xcm::{EnsureXcm, IsVoiceOfBody};
|
|
use xcm::latest::BodyId;
|
|
|
|
mod origins;
|
|
pub use origins::{
|
|
pallet_custom_origins, AuctionAdmin, FellowshipAdmin, GeneralAdmin, LeaseAdmin,
|
|
ReferendumCanceller, ReferendumKiller, Spender, StakingAdmin, Treasurer, WhitelistedCaller,
|
|
};
|
|
mod tracks;
|
|
pub use tracks::TracksInfo;
|
|
|
|
parameter_types! {
|
|
pub const VoteLockingPeriod: BlockNumber = 7 * DAYS;
|
|
}
|
|
|
|
impl pallet_conviction_voting::Config for Runtime {
|
|
type WeightInfo = weights::pallet_conviction_voting::WeightInfo<Self>;
|
|
type RuntimeEvent = RuntimeEvent;
|
|
type Currency = Balances;
|
|
type VoteLockingPeriod = VoteLockingPeriod;
|
|
type MaxVotes = ConstU32<512>;
|
|
type MaxTurnout =
|
|
frame_support::traits::tokens::currency::ActiveIssuanceOf<Balances, Self::AccountId>;
|
|
type Polls = Referenda;
|
|
}
|
|
|
|
parameter_types! {
|
|
pub const AlarmInterval: BlockNumber = 1;
|
|
pub const SubmissionDeposit: Balance = 1 * 3 * CENTS;
|
|
pub const UndecidingTimeout: BlockNumber = 14 * DAYS;
|
|
}
|
|
|
|
parameter_types! {
|
|
pub const MaxBalance: Balance = Balance::max_value();
|
|
}
|
|
pub type TreasurySpender = EitherOf<EnsureRootWithSuccess<AccountId, MaxBalance>, Spender>;
|
|
|
|
impl origins::pallet_custom_origins::Config for Runtime {}
|
|
|
|
parameter_types! {
|
|
// Fellows pluralistic body.
|
|
pub const FellowsBodyId: BodyId = BodyId::Technical;
|
|
}
|
|
|
|
impl pallet_whitelist::Config for Runtime {
|
|
type WeightInfo = weights::pallet_whitelist::WeightInfo<Self>;
|
|
type RuntimeCall = RuntimeCall;
|
|
type RuntimeEvent = RuntimeEvent;
|
|
type WhitelistOrigin = EitherOfDiverse<
|
|
EnsureRoot<Self::AccountId>,
|
|
EnsureXcm<IsVoiceOfBody<Collectives, FellowsBodyId>>,
|
|
>;
|
|
type DispatchWhitelistedOrigin = EitherOf<EnsureRoot<Self::AccountId>, WhitelistedCaller>;
|
|
type Preimages = Preimage;
|
|
}
|
|
|
|
impl pallet_referenda::Config for Runtime {
|
|
type WeightInfo = weights::pallet_referenda_referenda::WeightInfo<Self>;
|
|
type RuntimeCall = RuntimeCall;
|
|
type RuntimeEvent = RuntimeEvent;
|
|
type Scheduler = Scheduler;
|
|
type Currency = Balances;
|
|
type SubmitOrigin = frame_system::EnsureSigned<AccountId>;
|
|
type CancelOrigin = EitherOf<EnsureRoot<AccountId>, ReferendumCanceller>;
|
|
type KillOrigin = EitherOf<EnsureRoot<AccountId>, ReferendumKiller>;
|
|
type Slash = Treasury;
|
|
type Votes = pallet_conviction_voting::VotesOf<Runtime>;
|
|
type Tally = pallet_conviction_voting::TallyOf<Runtime>;
|
|
type SubmissionDeposit = SubmissionDeposit;
|
|
type MaxQueued = ConstU32<100>;
|
|
type UndecidingTimeout = UndecidingTimeout;
|
|
type AlarmInterval = AlarmInterval;
|
|
type Tracks = TracksInfo;
|
|
type Preimages = Preimage;
|
|
}
|