feat: add event SkepticsChosen event in society (#13291)

* feat: add event SkepticsChosen event in society

* feat: add test for SkepticsChosen event
This commit is contained in:
Deepanshu Hooda
2023-02-03 18:50:12 +05:30
committed by GitHub
parent 981ffb29f5
commit e50de7ea7f
2 changed files with 14 additions and 3 deletions
+7 -3
View File
@@ -513,6 +513,8 @@ pub mod pallet {
Unfounded { founder: T::AccountId },
/// Some funds were deposited into the society account.
Deposit { value: BalanceOf<T, I> },
/// A group of members has been choosen as Skeptics
SkepticsChosen { skeptics: Vec<T::AccountId> },
}
/// The first member.
@@ -1610,12 +1612,14 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
// Select sqrt(n) random members from the society and make them skeptics.
let pick_member =
|_| pick_item(&mut rng, &members[..]).expect("exited if members empty; qed");
for skeptic in (0..members.len().integer_sqrt()).map(pick_member) {
|_| pick_item(&mut rng, &members[..]).expect("exited if members empty; qed").clone();
let skeptics = (0..members.len().integer_sqrt()).map(pick_member).collect::<Vec<_>>();
skeptics.iter().for_each(|skeptic| {
for Bid { who: c, .. } in candidates.iter() {
<Votes<T, I>>::insert(c, skeptic, Vote::Skeptic);
}
}
});
Self::deposit_event(Event::<T, I>::SkepticsChosen { skeptics });
}
/// Attempt to slash the payout of some member. Return the total amount that was deducted.
+7
View File
@@ -211,6 +211,9 @@ fn payout_works() {
#[test]
fn basic_new_member_skeptic_works() {
EnvBuilder::new().execute(|| {
// NOTE: events are not deposited in the genesis event
System::set_block_number(1);
assert_eq!(Strikes::<Test>::get(10), 0);
assert_ok!(Society::bid(RuntimeOrigin::signed(20), 0));
run_to_block(4);
@@ -218,6 +221,10 @@ fn basic_new_member_skeptic_works() {
run_to_block(8);
assert_eq!(Society::members(), vec![10]);
assert_eq!(Strikes::<Test>::get(10), 1);
System::assert_last_event(mock::RuntimeEvent::Society(crate::Event::SkepticsChosen {
skeptics: vec![10],
}));
});
}