From d6706d9d82251c431b0213da3bf80770cd3c9d51 Mon Sep 17 00:00:00 2001
From: Hugo Trentesaux <hugo@trentesaux.fr>
Date: Wed, 8 Jan 2025 14:57:48 +0100
Subject: [PATCH] deduplicate authorities events

---
 pallets/authority-members/src/lib.rs | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/pallets/authority-members/src/lib.rs b/pallets/authority-members/src/lib.rs
index 587e82aa3..cb02e5b92 100644
--- a/pallets/authority-members/src/lib.rs
+++ b/pallets/authority-members/src/lib.rs
@@ -575,18 +575,25 @@ impl<T: Config> pallet_session::SessionManager<T::ValidatorId> for Pallet<T> {
             return None;
         }
 
+        // -- handle incoming members
+        // callback when smith is incoming
         for member_id in members_ids_to_add.iter() {
             T::OnIncomingMember::on_incoming_member(*member_id);
-            Self::deposit_event(Event::IncomingAuthorities {
-                members: members_ids_to_add.clone(),
-            });
         }
+        // a single event with all authorities
+        Self::deposit_event(Event::IncomingAuthorities {
+            members: members_ids_to_add.clone(),
+        });
+
+        // -- handle outgoing members
+        // callback when smith is outgoing
         for member_id in members_ids_to_del.iter() {
             T::OnOutgoingMember::on_outgoing_member(*member_id);
-            Self::deposit_event(Event::OutgoingAuthorities {
-                members: members_ids_to_del.clone(),
-            });
         }
+        // a single event with all authorities
+        Self::deposit_event(Event::OutgoingAuthorities {
+            members: members_ids_to_del.clone(),
+        });
 
         // updates the list of OnlineAuthorities and returns the list of their key
         Some(
-- 
GitLab