File tree Expand file tree Collapse file tree 1 file changed +17
-2
lines changed
pallets/pallet-bonded-coins/src Expand file tree Collapse file tree 1 file changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -349,6 +349,7 @@ pub mod pallet {
349
349
350
350
let pool_details = Pools :: < T > :: get ( & pool_id) . ok_or ( Error :: < T > :: PoolUnknown ) ?;
351
351
352
+ ensure ! ( pool_details. state. is_live( ) , Error :: <T >:: PoolNotLive ) ;
352
353
ensure ! ( pool_details. is_manager( & who) , Error :: <T >:: NoPermission ) ;
353
354
354
355
let asset_id = pool_details
@@ -866,8 +867,10 @@ pub mod pallet {
866
867
Error :: <T >:: NothingToRefund
867
868
) ;
868
869
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
871
874
. iter ( )
872
875
. any ( |asset_id| T :: Fungibles :: total_issuance ( asset_id. clone ( ) ) > FungiblesBalanceOf :: < T > :: zero ( ) ) ;
873
876
// no token holders to refund
@@ -878,6 +881,18 @@ pub mod pallet {
878
881
new_pool_details. state . start_refund ( ) ;
879
882
Pools :: < T > :: set ( & pool_id, Some ( new_pool_details) ) ;
880
883
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
+
881
896
Self :: deposit_event ( Event :: RefundingStarted { id : pool_id } ) ;
882
897
883
898
Ok ( n_currencies)
You can’t perform that action at this time.
0 commit comments