From 2982bf3ec56d3cd8cece1e4981781024ce4b52a3 Mon Sep 17 00:00:00 2001
From: dharjeezy <dharjeezy@gmail.com>
Date: Wed, 24 Jul 2024 09:22:22 +0100
Subject: [PATCH] include events for voting (#4613)

closes https://github.com/paritytech/polkadot-sdk/issues/143

Polkadot address: 12GyGD3QhT4i2JJpNzvMf96sxxBLWymz4RdGCxRH5Rj5agKW

---------

Co-authored-by: Muharem <ismailov.m.h@gmail.com>
---
 prdoc/pr_4613.prdoc                          | 10 ++++++++++
 substrate/frame/conviction-voting/src/lib.rs |  6 ++++++
 2 files changed, 16 insertions(+)
 create mode 100644 prdoc/pr_4613.prdoc

diff --git a/prdoc/pr_4613.prdoc b/prdoc/pr_4613.prdoc
new file mode 100644
index 00000000000..e6b2e6adc61
--- /dev/null
+++ b/prdoc/pr_4613.prdoc
@@ -0,0 +1,10 @@
+title: "pallet-conviction-voting: Include events for vote and remove vote"
+
+doc:
+  - audience: Runtime User
+    description: |
+      Introduce event called `Voted: { who: T::AccountId, vote: AccountVote<BalanceOf<T, I>> }` and  `VoteRemoved: { who: T::AccountId, vote: AccountVote<BalanceOf<T, I>> }`
+
+crates:
+  - name: pallet-conviction-voting
+    bump: major
diff --git a/substrate/frame/conviction-voting/src/lib.rs b/substrate/frame/conviction-voting/src/lib.rs
index be7f7f44807..85da1aed3c2 100644
--- a/substrate/frame/conviction-voting/src/lib.rs
+++ b/substrate/frame/conviction-voting/src/lib.rs
@@ -171,6 +171,10 @@ pub mod pallet {
 		Delegated(T::AccountId, T::AccountId),
 		/// An \[account\] has cancelled a previous delegation operation.
 		Undelegated(T::AccountId),
+		/// An account that has voted
+		Voted { who: T::AccountId, vote: AccountVote<BalanceOf<T, I>> },
+		/// A vote that been removed
+		VoteRemoved { who: T::AccountId, vote: AccountVote<BalanceOf<T, I>> },
 	}
 
 	#[pallet::error]
@@ -428,6 +432,7 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
 				// Extend the lock to `balance` (rather than setting it) since we don't know what
 				// other votes are in place.
 				Self::extend_lock(who, &class, vote.balance());
+				Self::deposit_event(Event::Voted { who: who.clone(), vote });
 				Ok(())
 			})
 		})
@@ -463,6 +468,7 @@ impl<T: Config<I>, I: 'static> Pallet<T, I> {
 						if let Some(approve) = v.1.as_standard() {
 							tally.reduce(approve, *delegations);
 						}
+						Self::deposit_event(Event::VoteRemoved { who: who.clone(), vote: v.1 });
 						Ok(())
 					},
 					PollStatus::Completed(end, approved) => {
-- 
GitLab