From df63f8a371b5deccbf0a136ee408cbf35a0bd534 Mon Sep 17 00:00:00 2001
From: Svyatoslav Nikolsky <svyatonik@gmail.com>
Date: Fri, 27 Oct 2023 16:45:53 +0300
Subject: [PATCH] Port #2648 to polkadot-staging (#2651)

* Deposit event when relayer reward is registered (#2648)

* RewardRegistered event

* test it

* fix compilation
---
 bridges/modules/relayers/src/lib.rs | 44 ++++++++++++++++++++++++++++-
 1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/bridges/modules/relayers/src/lib.rs b/bridges/modules/relayers/src/lib.rs
index b9b98ca7e25..ce66c9df48e 100644
--- a/bridges/modules/relayers/src/lib.rs
+++ b/bridges/modules/relayers/src/lib.rs
@@ -325,6 +325,12 @@ pub mod pallet {
 						rewards_account_params,
 						new_reward,
 					);
+
+					Self::deposit_event(Event::<T>::RewardRegistered {
+						relayer: relayer.clone(),
+						rewards_account_params,
+						reward,
+					});
 				},
 			);
 		}
@@ -369,6 +375,15 @@ pub mod pallet {
 	#[pallet::event]
 	#[pallet::generate_deposit(pub(super) fn deposit_event)]
 	pub enum Event<T: Config> {
+		/// Relayer reward has been registered and may be claimed later.
+		RewardRegistered {
+			/// Relayer account that can claim reward.
+			relayer: T::AccountId,
+			/// Relayer can claim reward from this account.
+			rewards_account_params: RewardsAccountParams,
+			/// Reward amount.
+			reward: T::Reward,
+		},
 		/// Reward has been paid to the relayer.
 		RewardPaid {
 			/// Relayer account that has been rewarded.
@@ -455,7 +470,7 @@ mod tests {
 	use super::*;
 	use mock::{RuntimeEvent as TestEvent, *};
 
-	use crate::Event::RewardPaid;
+	use crate::Event::{RewardPaid, RewardRegistered};
 	use bp_messages::LaneId;
 	use bp_relayers::RewardsAccountOwner;
 	use frame_support::{
@@ -470,6 +485,33 @@ mod tests {
 		System::<TestRuntime>::reset_events();
 	}
 
+	#[test]
+	fn register_relayer_reward_emit_event() {
+		run_test(|| {
+			get_ready_for_events();
+
+			Pallet::<TestRuntime>::register_relayer_reward(
+				TEST_REWARDS_ACCOUNT_PARAMS,
+				&REGULAR_RELAYER,
+				100,
+			);
+
+			// Check if the `RewardRegistered` event was emitted.
+			assert_eq!(
+				System::<TestRuntime>::events().last(),
+				Some(&EventRecord {
+					phase: Phase::Initialization,
+					event: TestEvent::Relayers(RewardRegistered {
+						relayer: REGULAR_RELAYER,
+						rewards_account_params: TEST_REWARDS_ACCOUNT_PARAMS,
+						reward: 100
+					}),
+					topics: vec![],
+				}),
+			);
+		});
+	}
+
 	#[test]
 	fn root_cant_claim_anything() {
 		run_test(|| {
-- 
GitLab