From 3c8e468c565440ce5c90acb5ff3772245ee184e4 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 11 Mar 2025 17:20:55 +0100 Subject: [PATCH 1/4] feat: emit additional event on reset_team --- pallets/pallet-bonded-coins/src/lib.rs | 15 ++++++-- .../src/tests/transactions/reset_team.rs | 38 ++++++++++++++++++- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/pallets/pallet-bonded-coins/src/lib.rs b/pallets/pallet-bonded-coins/src/lib.rs index c88df826c..0b0737974 100644 --- a/pallets/pallet-bonded-coins/src/lib.rs +++ b/pallets/pallet-bonded-coins/src/lib.rs @@ -279,6 +279,11 @@ pub mod pallet { id: T::PoolId, manager: Option, }, + /// The asset managing team of a pool has been reset. + TeamReset { + id: T::PoolId, + team: PoolManagingTeam, + }, } #[pallet::error] @@ -501,9 +506,9 @@ pub mod pallet { ensure!(pool_details.is_manager(&who), Error::::NoPermission); ensure!(pool_details.state.is_live(), Error::::PoolNotLive); - let pool_id_account = pool_id.into(); + let pool_id_account = pool_id.clone().into(); - let PoolManagingTeam { freezer, admin } = team; + let PoolManagingTeam { ref freezer, ref admin } = team; pool_details.bonded_currencies.into_iter().try_for_each(|asset_id| { T::Fungibles::reset_team( @@ -513,7 +518,11 @@ pub mod pallet { pool_id_account.clone(), freezer.clone(), ) - }) + })?; + + Self::deposit_event(Event::TeamReset { id: pool_id, team }); + + Ok(()) } /// Resets the manager of a pool. The new manager will be set to the diff --git a/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs b/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs index e96fbca03..09f8f27ad 100644 --- a/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs +++ b/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs @@ -22,7 +22,7 @@ use crate::{ mock::{runtime::*, *}, traits::ResetTeam, types::{PoolManagingTeam, PoolStatus}, - AccountIdOf, Error as BondingPalletErrors, + AccountIdOf, Error as BondingPalletErrors, Event, }; #[test] @@ -55,6 +55,18 @@ fn resets_team() { 1 )); + // Ensure the event is emitted + System::assert_has_event( + Event::TeamReset { + id: pool_id.clone(), + team: PoolManagingTeam { + admin: ACCOUNT_00, + freezer: ACCOUNT_01, + }, + } + .into(), + ); + assert_eq!(Assets::admin(DEFAULT_BONDED_CURRENCY_ID), Some(ACCOUNT_00)); assert_eq!(Assets::freezer(DEFAULT_BONDED_CURRENCY_ID), Some(ACCOUNT_01)); assert_eq!(Assets::owner(DEFAULT_BONDED_CURRENCY_ID), Some(pool_id.clone())); @@ -106,6 +118,18 @@ fn resets_owner_if_changed() { 1 )); + // Ensure the event is emitted + System::assert_has_event( + Event::TeamReset { + id: pool_id.clone(), + team: PoolManagingTeam { + admin: ACCOUNT_00, + freezer: ACCOUNT_01, + }, + } + .into(), + ); + assert_eq!(Assets::admin(DEFAULT_BONDED_CURRENCY_ID), Some(pool_id.clone())); assert_eq!(Assets::freezer(DEFAULT_BONDED_CURRENCY_ID), Some(pool_id.clone())); assert_eq!(Assets::owner(DEFAULT_BONDED_CURRENCY_ID), Some(pool_id.clone())); @@ -145,6 +169,18 @@ fn resets_team_for_all() { 2 )); + // Ensure the event is emitted + System::assert_has_event( + Event::TeamReset { + id: pool_id.clone(), + team: PoolManagingTeam { + admin: ACCOUNT_00, + freezer: ACCOUNT_01, + }, + } + .into(), + ); + assert_eq!(Assets::admin(currencies[0]), Some(ACCOUNT_00)); assert_eq!(Assets::freezer(currencies[0]), Some(ACCOUNT_01)); assert_eq!(Assets::owner(currencies[0]), Some(pool_id.clone())); From 469cc93e759dd882caed6383b36fcdbd5db15c5f Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 11 Mar 2025 17:23:43 +0100 Subject: [PATCH 2/4] chore: rename event to TeamChanged --- pallets/pallet-bonded-coins/src/lib.rs | 4 ++-- .../src/tests/transactions/reset_team.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pallets/pallet-bonded-coins/src/lib.rs b/pallets/pallet-bonded-coins/src/lib.rs index 0b0737974..395ae822c 100644 --- a/pallets/pallet-bonded-coins/src/lib.rs +++ b/pallets/pallet-bonded-coins/src/lib.rs @@ -280,7 +280,7 @@ pub mod pallet { manager: Option, }, /// The asset managing team of a pool has been reset. - TeamReset { + TeamChanged { id: T::PoolId, team: PoolManagingTeam, }, @@ -520,7 +520,7 @@ pub mod pallet { ) })?; - Self::deposit_event(Event::TeamReset { id: pool_id, team }); + Self::deposit_event(Event::TeamChanged { id: pool_id, team }); Ok(()) } diff --git a/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs b/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs index 09f8f27ad..9fac2c73b 100644 --- a/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs +++ b/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs @@ -57,7 +57,7 @@ fn resets_team() { // Ensure the event is emitted System::assert_has_event( - Event::TeamReset { + Event::TeamChanged { id: pool_id.clone(), team: PoolManagingTeam { admin: ACCOUNT_00, @@ -120,7 +120,7 @@ fn resets_owner_if_changed() { // Ensure the event is emitted System::assert_has_event( - Event::TeamReset { + Event::TeamChanged { id: pool_id.clone(), team: PoolManagingTeam { admin: ACCOUNT_00, @@ -171,7 +171,7 @@ fn resets_team_for_all() { // Ensure the event is emitted System::assert_has_event( - Event::TeamReset { + Event::TeamChanged { id: pool_id.clone(), team: PoolManagingTeam { admin: ACCOUNT_00, From 36c17f1e61dd2876872cfaf500f7554817bbebe9 Mon Sep 17 00:00:00 2001 From: Raphael Date: Wed, 12 Mar 2025 10:56:41 +0100 Subject: [PATCH 3/4] fix: test --- .../pallet-bonded-coins/src/tests/transactions/reset_team.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs b/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs index 9fac2c73b..b943cc8f7 100644 --- a/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs +++ b/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs @@ -123,8 +123,8 @@ fn resets_owner_if_changed() { Event::TeamChanged { id: pool_id.clone(), team: PoolManagingTeam { - admin: ACCOUNT_00, - freezer: ACCOUNT_01, + admin: pool_id.clone(), + freezer: pool_id.clone(), }, } .into(), From e5661a04c8c3e401c4567816563e8823419efb84 Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 13 Mar 2025 17:24:22 +0100 Subject: [PATCH 4/4] refactor: unpack team members on event --- pallets/pallet-bonded-coins/src/lib.rs | 11 ++++++++--- .../src/tests/transactions/reset_team.rs | 18 ++++++------------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/pallets/pallet-bonded-coins/src/lib.rs b/pallets/pallet-bonded-coins/src/lib.rs index 395ae822c..012c4f2c7 100644 --- a/pallets/pallet-bonded-coins/src/lib.rs +++ b/pallets/pallet-bonded-coins/src/lib.rs @@ -282,7 +282,8 @@ pub mod pallet { /// The asset managing team of a pool has been reset. TeamChanged { id: T::PoolId, - team: PoolManagingTeam, + admin: T::AccountId, + freezer: T::AccountId, }, } @@ -508,7 +509,7 @@ pub mod pallet { let pool_id_account = pool_id.clone().into(); - let PoolManagingTeam { ref freezer, ref admin } = team; + let PoolManagingTeam { freezer, admin } = team; pool_details.bonded_currencies.into_iter().try_for_each(|asset_id| { T::Fungibles::reset_team( @@ -520,7 +521,11 @@ pub mod pallet { ) })?; - Self::deposit_event(Event::TeamChanged { id: pool_id, team }); + Self::deposit_event(Event::TeamChanged { + id: pool_id, + admin, + freezer, + }); Ok(()) } diff --git a/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs b/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs index b943cc8f7..19ba1d990 100644 --- a/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs +++ b/pallets/pallet-bonded-coins/src/tests/transactions/reset_team.rs @@ -59,10 +59,8 @@ fn resets_team() { System::assert_has_event( Event::TeamChanged { id: pool_id.clone(), - team: PoolManagingTeam { - admin: ACCOUNT_00, - freezer: ACCOUNT_01, - }, + admin: ACCOUNT_00, + freezer: ACCOUNT_01, } .into(), ); @@ -122,10 +120,8 @@ fn resets_owner_if_changed() { System::assert_has_event( Event::TeamChanged { id: pool_id.clone(), - team: PoolManagingTeam { - admin: pool_id.clone(), - freezer: pool_id.clone(), - }, + admin: pool_id.clone(), + freezer: pool_id.clone(), } .into(), ); @@ -173,10 +169,8 @@ fn resets_team_for_all() { System::assert_has_event( Event::TeamChanged { id: pool_id.clone(), - team: PoolManagingTeam { - admin: ACCOUNT_00, - freezer: ACCOUNT_01, - }, + admin: ACCOUNT_00, + freezer: ACCOUNT_01, } .into(), );