From 31a89d59d3deeabeda277b29a0f6e3dfe1cfce32 Mon Sep 17 00:00:00 2001 From: kianenigma Date: Mon, 16 Nov 2020 14:49:34 +0000 Subject: [PATCH 1/5] Add slashing events to elections-phragmen. --- frame/elections-phragmen/src/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/frame/elections-phragmen/src/lib.rs b/frame/elections-phragmen/src/lib.rs index cf3864f2e3f92..021c9430eee63 100644 --- a/frame/elections-phragmen/src/lib.rs +++ b/frame/elections-phragmen/src/lib.rs @@ -682,6 +682,10 @@ decl_event!( /// A \[member\] has been removed. This should always be followed by either `NewTerm` or /// `EmptyTerm`. MemberKicked(AccountId), + /// A candidate was slashed due to failing to obtain a seat as member or runner-up + CandidateSlashed(AccountId, Balance), + /// A member/runner-up was slashed due to failing to retaining their position. + MemberSlashed(AccountId, Balance), /// A \[member\] has renounced their candidacy. MemberRenounced(AccountId), /// A voter was reported with the the report being successful or not. @@ -995,6 +999,7 @@ impl Module { new_runners_up_ids_sorted.binary_search(&c).is_err() { let (imbalance, _) = T::Currency::slash_reserved(&c, T::CandidacyBond::get()); + Self::deposit_event(RawEvent::CandidateSlashed(c, T::CandidacyBond::get())); T::LoserCandidate::on_unbalanced(imbalance); } }); @@ -1002,6 +1007,7 @@ impl Module { // Burn outgoing bonds to_burn_bond.into_iter().for_each(|x| { let (imbalance, _) = T::Currency::slash_reserved(&x, T::CandidacyBond::get()); + Self::deposit_event(RawEvent::MemberSlashed(c, T::CandidacyBond::get())); T::LoserCandidate::on_unbalanced(imbalance); }); From 9b7067130ef6f0413c1f9d57466bf3ce4a5f427a Mon Sep 17 00:00:00 2001 From: kianenigma Date: Mon, 16 Nov 2020 14:59:03 +0000 Subject: [PATCH 2/5] Fix build --- frame/elections-phragmen/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/elections-phragmen/src/lib.rs b/frame/elections-phragmen/src/lib.rs index 021c9430eee63..a7accc7e46d0d 100644 --- a/frame/elections-phragmen/src/lib.rs +++ b/frame/elections-phragmen/src/lib.rs @@ -1007,7 +1007,7 @@ impl Module { // Burn outgoing bonds to_burn_bond.into_iter().for_each(|x| { let (imbalance, _) = T::Currency::slash_reserved(&x, T::CandidacyBond::get()); - Self::deposit_event(RawEvent::MemberSlashed(c, T::CandidacyBond::get())); + Self::deposit_event(RawEvent::MemberSlashed(x, T::CandidacyBond::get())); T::LoserCandidate::on_unbalanced(imbalance); }); From 563d24d3702bd02fcc62fd7569f02a777e78dfdf Mon Sep 17 00:00:00 2001 From: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Date: Tue, 17 Nov 2020 14:57:57 +0100 Subject: [PATCH 3/5] Apply suggestions from code review --- frame/elections-phragmen/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frame/elections-phragmen/src/lib.rs b/frame/elections-phragmen/src/lib.rs index a7accc7e46d0d..2ec29e1511789 100644 --- a/frame/elections-phragmen/src/lib.rs +++ b/frame/elections-phragmen/src/lib.rs @@ -685,7 +685,7 @@ decl_event!( /// A candidate was slashed due to failing to obtain a seat as member or runner-up CandidateSlashed(AccountId, Balance), /// A member/runner-up was slashed due to failing to retaining their position. - MemberSlashed(AccountId, Balance), + SeatHolderSlashed(AccountId, Balance), /// A \[member\] has renounced their candidacy. MemberRenounced(AccountId), /// A voter was reported with the the report being successful or not. @@ -1007,7 +1007,7 @@ impl Module { // Burn outgoing bonds to_burn_bond.into_iter().for_each(|x| { let (imbalance, _) = T::Currency::slash_reserved(&x, T::CandidacyBond::get()); - Self::deposit_event(RawEvent::MemberSlashed(x, T::CandidacyBond::get())); + Self::deposit_event(RawEvent:: SeatHolderSlashed(x, T::CandidacyBond::get())); T::LoserCandidate::on_unbalanced(imbalance); }); From f7abc396be3b0b9ae0dd4a3e8b01eef5a3167d1e Mon Sep 17 00:00:00 2001 From: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Date: Tue, 17 Nov 2020 14:58:18 +0100 Subject: [PATCH 4/5] Update frame/elections-phragmen/src/lib.rs --- frame/elections-phragmen/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/elections-phragmen/src/lib.rs b/frame/elections-phragmen/src/lib.rs index 2ec29e1511789..a342c1eea5433 100644 --- a/frame/elections-phragmen/src/lib.rs +++ b/frame/elections-phragmen/src/lib.rs @@ -684,7 +684,7 @@ decl_event!( MemberKicked(AccountId), /// A candidate was slashed due to failing to obtain a seat as member or runner-up CandidateSlashed(AccountId, Balance), - /// A member/runner-up was slashed due to failing to retaining their position. + /// A seat holder (member or runner-up) was slashed due to failing to retaining their position. SeatHolderSlashed(AccountId, Balance), /// A \[member\] has renounced their candidacy. MemberRenounced(AccountId), From f1d8915453fab7348c20b84f3e33569539b192ff Mon Sep 17 00:00:00 2001 From: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Date: Tue, 17 Nov 2020 15:16:34 +0100 Subject: [PATCH 5/5] Update frame/elections-phragmen/src/lib.rs Co-authored-by: Guillaume Thiolliere --- frame/elections-phragmen/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/elections-phragmen/src/lib.rs b/frame/elections-phragmen/src/lib.rs index a342c1eea5433..be47b5adcce5e 100644 --- a/frame/elections-phragmen/src/lib.rs +++ b/frame/elections-phragmen/src/lib.rs @@ -1007,7 +1007,7 @@ impl Module { // Burn outgoing bonds to_burn_bond.into_iter().for_each(|x| { let (imbalance, _) = T::Currency::slash_reserved(&x, T::CandidacyBond::get()); - Self::deposit_event(RawEvent:: SeatHolderSlashed(x, T::CandidacyBond::get())); + Self::deposit_event(RawEvent::SeatHolderSlashed(x, T::CandidacyBond::get())); T::LoserCandidate::on_unbalanced(imbalance); });