SetMembers configurable origin (#13159)

* SetMembers configurable origin

* root origin comment replaced

* fmt
This commit is contained in:
girazoki
2023-02-12 11:43:03 +01:00
committed by GitHub
parent d48fc58729
commit 79cde7b126
5 changed files with 14 additions and 3 deletions
+3
View File
@@ -992,6 +992,7 @@ impl pallet_collective::Config<CouncilCollective> for Runtime {
type MaxMembers = CouncilMaxMembers;
type DefaultVote = pallet_collective::PrimeDefaultVote;
type WeightInfo = pallet_collective::weights::SubstrateWeight<Runtime>;
type SetMembersOrigin = EnsureRoot<Self::AccountId>;
}
parameter_types! {
@@ -1051,6 +1052,7 @@ impl pallet_collective::Config<TechnicalCollective> for Runtime {
type MaxMembers = TechnicalMaxMembers;
type DefaultVote = pallet_collective::PrimeDefaultVote;
type WeightInfo = pallet_collective::weights::SubstrateWeight<Runtime>;
type SetMembersOrigin = EnsureRoot<Self::AccountId>;
}
type EnsureRootOrHalfCouncil = EitherOfDiverse<
@@ -1652,6 +1654,7 @@ impl pallet_collective::Config<AllianceCollective> for Runtime {
type MaxMembers = AllianceMaxMembers;
type DefaultVote = pallet_collective::PrimeDefaultVote;
type WeightInfo = pallet_collective::weights::SubstrateWeight<Runtime>;
type SetMembersOrigin = EnsureRoot<Self::AccountId>;
}
parameter_types! {
+1
View File
@@ -104,6 +104,7 @@ impl pallet_collective::Config<AllianceCollective> for Test {
type MaxMembers = MaxMembers;
type DefaultVote = pallet_collective::PrimeDefaultVote;
type WeightInfo = ();
type SetMembersOrigin = EnsureRoot<Self::AccountId>;
}
parameter_types! {
+5 -2
View File
@@ -215,6 +215,9 @@ pub mod pallet {
/// Weight information for extrinsics in this pallet.
type WeightInfo: WeightInfo;
/// Origin allowed to set collective members
type SetMembersOrigin: EnsureOrigin<<Self as frame_system::Config>::RuntimeOrigin>;
}
#[pallet::genesis_config]
@@ -349,7 +352,7 @@ pub mod pallet {
/// - `old_count`: The upper bound for the previous number of members in storage. Used for
/// weight estimation.
///
/// Requires root origin.
/// The dispatch of this call must be `SetMembersOrigin`.
///
/// NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but
/// the weight estimations rely on it to estimate dispatchable weight.
@@ -389,7 +392,7 @@ pub mod pallet {
prime: Option<T::AccountId>,
old_count: MemberCount,
) -> DispatchResultWithPostInfo {
ensure_root(origin)?;
T::SetMembersOrigin::ensure_origin(origin)?;
if new_members.len() > T::MaxMembers::get() as usize {
log::error!(
target: LOG_TARGET,
+4 -1
View File
@@ -24,7 +24,7 @@ use frame_support::{
traits::{ConstU32, ConstU64, GenesisBuild, StorageVersion},
Hashable,
};
use frame_system::{EventRecord, Phase};
use frame_system::{EnsureRoot, EventRecord, Phase};
use sp_core::H256;
use sp_runtime::{
testing::Header,
@@ -127,6 +127,7 @@ impl Config<Instance1> for Test {
type MaxMembers = MaxMembers;
type DefaultVote = PrimeDefaultVote;
type WeightInfo = ();
type SetMembersOrigin = EnsureRoot<Self::AccountId>;
}
impl Config<Instance2> for Test {
type RuntimeOrigin = RuntimeOrigin;
@@ -137,6 +138,7 @@ impl Config<Instance2> for Test {
type MaxMembers = MaxMembers;
type DefaultVote = MoreThanMajorityThenPrimeDefaultVote;
type WeightInfo = ();
type SetMembersOrigin = EnsureRoot<Self::AccountId>;
}
impl mock_democracy::Config for Test {
type RuntimeEvent = RuntimeEvent;
@@ -151,6 +153,7 @@ impl Config for Test {
type MaxMembers = MaxMembers;
type DefaultVote = PrimeDefaultVote;
type WeightInfo = ();
type SetMembersOrigin = EnsureRoot<Self::AccountId>;
}
pub fn new_test_ext() -> sp_io::TestExternalities {
+1
View File
@@ -217,6 +217,7 @@ impl pallet_collective::Config<CouncilCollective> for Test {
type MaxMembers = MaxMembers;
type DefaultVote = pallet_collective::PrimeDefaultVote;
type WeightInfo = ();
type SetMembersOrigin = frame_system::EnsureRoot<Self::AccountId>;
}
impl example::Config for Test {}