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 @@ -393,6 +393,7 @@ pub mod pallet {
393393
394394 let pool_details = Pools :: < T > :: get ( & pool_id) . ok_or ( Error :: < T > :: PoolUnknown ) ?;
395395
396+ ensure ! ( pool_details. state. is_live( ) , Error :: <T >:: PoolNotLive ) ;
396397 ensure ! ( pool_details. is_manager( & who) , Error :: <T >:: NoPermission ) ;
397398
398399 let asset_id = pool_details
@@ -958,8 +959,10 @@ pub mod pallet {
958959 Error :: <T >:: NothingToRefund
959960 ) ;
960961
961- let has_holders = pool_details
962- . bonded_currencies
962+ // cloning here lets us avoid cloning the pool details later
963+ let bonded_currencies = pool_details. bonded_currencies . clone ( ) ;
964+
965+ let has_holders = bonded_currencies
963966 . iter ( )
964967 . any ( |asset_id| T :: Fungibles :: total_issuance ( asset_id. clone ( ) ) > FungiblesBalanceOf :: < T > :: zero ( ) ) ;
965968 // no token holders to refund
@@ -970,6 +973,18 @@ pub mod pallet {
970973 new_pool_details. state . start_refund ( ) ;
971974 Pools :: < T > :: set ( & pool_id, Some ( new_pool_details) ) ;
972975
976+ // reset team on currencies to avoid unexpected burns etc.
977+ let pool_account = pool_id. clone ( ) . into ( ) ;
978+ for asset_id in bonded_currencies {
979+ T :: Fungibles :: reset_team (
980+ asset_id,
981+ pool_account. clone ( ) ,
982+ pool_account. clone ( ) ,
983+ pool_account. clone ( ) ,
984+ pool_account. clone ( ) ,
985+ ) ?;
986+ }
987+
973988 Self :: deposit_event ( Event :: RefundingStarted { id : pool_id } ) ;
974989
975990 Ok ( n_currencies)
You can’t perform that action at this time.
0 commit comments