Skip to content

Commit c59b04b

Browse files
committed
feat: reset team on start_refund
1 parent 969a25b commit c59b04b

File tree

1 file changed

+17
-2
lines changed
  • pallets/pallet-bonded-coins/src

1 file changed

+17
-2
lines changed

pallets/pallet-bonded-coins/src/lib.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ pub mod pallet {
349349

350350
let pool_details = Pools::<T>::get(&pool_id).ok_or(Error::<T>::PoolUnknown)?;
351351

352+
ensure!(pool_details.state.is_live(), Error::<T>::PoolNotLive);
352353
ensure!(pool_details.is_manager(&who), Error::<T>::NoPermission);
353354

354355
let asset_id = pool_details
@@ -866,8 +867,10 @@ pub mod pallet {
866867
Error::<T>::NothingToRefund
867868
);
868869

869-
let has_holders = pool_details
870-
.bonded_currencies
870+
// cloning here lets us avoid cloning the pool details later
871+
let bonded_currencies = pool_details.bonded_currencies.clone();
872+
873+
let has_holders = bonded_currencies
871874
.iter()
872875
.any(|asset_id| T::Fungibles::total_issuance(asset_id.clone()) > FungiblesBalanceOf::<T>::zero());
873876
// no token holders to refund
@@ -878,6 +881,18 @@ pub mod pallet {
878881
new_pool_details.state.start_refund();
879882
Pools::<T>::set(&pool_id, Some(new_pool_details));
880883

884+
// reset team on currencies to avoid unexpected burns etc.
885+
let pool_account = pool_id.clone().into();
886+
for asset_id in bonded_currencies {
887+
T::Fungibles::reset_team(
888+
asset_id,
889+
pool_account.clone(),
890+
pool_account.clone(),
891+
pool_account.clone(),
892+
pool_account.clone(),
893+
)?;
894+
}
895+
881896
Self::deposit_event(Event::RefundingStarted { id: pool_id });
882897

883898
Ok(n_currencies)

0 commit comments

Comments
 (0)