prevent too many genesis council members (#7749)

* Prevent too many genesis members in elections-phragmen.

* Fix test.

* reformat.'
This commit is contained in:
Kian Paimani
2020-12-17 22:17:57 +00:00
committed by GitHub
parent 1ecc3d5ed8
commit 9a3cab74ac
@@ -213,6 +213,10 @@ decl_storage! {
} add_extra_genesis { } add_extra_genesis {
config(members): Vec<(T::AccountId, BalanceOf<T>)>; config(members): Vec<(T::AccountId, BalanceOf<T>)>;
build(|config: &GenesisConfig<T>| { build(|config: &GenesisConfig<T>| {
assert!(
config.members.len() as u32 <= T::DesiredMembers::get(),
"Cannot accept more than DesiredMembers genesis member",
);
let members = config.members.iter().map(|(ref member, ref stake)| { let members = config.members.iter().map(|(ref member, ref stake)| {
// make sure they have enough stake // make sure they have enough stake
assert!( assert!(
@@ -1442,10 +1446,20 @@ mod tests {
#[should_panic = "Duplicate member in elections phragmen genesis: 2"] #[should_panic = "Duplicate member in elections phragmen genesis: 2"]
fn genesis_members_cannot_be_duplicate() { fn genesis_members_cannot_be_duplicate() {
ExtBuilder::default() ExtBuilder::default()
.desired_members(3)
.genesis_members(vec![(1, 10), (2, 10), (2, 10)]) .genesis_members(vec![(1, 10), (2, 10), (2, 10)])
.build_and_execute(|| {}); .build_and_execute(|| {});
} }
#[test]
#[should_panic = "Cannot accept more than DesiredMembers genesis member"]
fn genesis_members_cannot_too_many() {
ExtBuilder::default()
.genesis_members(vec![(1, 10), (2, 10), (3, 30)])
.desired_members(2)
.build_and_execute(|| {});
}
#[test] #[test]
fn term_duration_zero_is_passive() { fn term_duration_zero_is_passive() {
ExtBuilder::default() ExtBuilder::default()