@@ -753,28 +753,19 @@ impl<T: Config> Pallet<T> {
753753 ) ?;
754754
755755 // if redeem has issue_id its a replace request
756- if let Some ( issue_id) = redeem. issue_id {
756+ let ( fee , redeem_amount ) = if let Some ( issue_id) = redeem. issue_id {
757757 let replace_fee = redeem. fee ( ) ;
758758
759759 //redeem tokens for old vault
760760 let redeem_tokens = redeem. amount_btc ( ) . checked_sub ( & replace_fee) ?;
761761
762- //Decreases to_be_redeem and issued tokens for old vault
763- ext:: vault_registry:: redeem_tokens :: < T > (
764- & redeem. vault ,
765- & redeem_tokens,
766- & redeem. premium ( ) ?,
767- & redeem. redeemer ,
768- ) ?;
769-
770762 // complete_vault_issue increases issued_tokens & decreases to_be_issued for new vault
771763 ext:: issue:: complete_vault_issue :: < T > ( issue_id) ?;
772764
773765 // mint wrapped fees
774766 replace_fee. mint_to ( & ext:: fee:: fee_pool_account_id :: < T > ( ) ) ?;
775767
776- // distribute rewards
777- ext:: fee:: distribute_rewards :: < T > ( & replace_fee) ?;
768+ ( replace_fee, redeem_tokens)
778769 } else {
779770 // burn amount (without parachain fee, but including transfer fee)
780771 let burn_amount = redeem. amount_btc ( ) . checked_add ( & redeem. transfer_fee_btc ( ) ) ?;
@@ -784,11 +775,13 @@ impl<T: Config> Pallet<T> {
784775 let fee = redeem. fee ( ) ;
785776 fee. unlock_on ( & redeem. redeemer ) ?;
786777 fee. transfer ( & redeem. redeemer , & ext:: fee:: fee_pool_account_id :: < T > ( ) ) ?;
787- ext:: fee:: distribute_rewards :: < T > ( & fee) ?;
778+ ( fee, burn_amount)
779+ } ;
788780
789- //redeem tokens for vault
790- ext:: vault_registry:: redeem_tokens :: < T > ( & redeem. vault , & burn_amount, & redeem. premium ( ) ?, & redeem. redeemer ) ?;
791- }
781+ ext:: fee:: distribute_rewards :: < T > ( & fee) ?;
782+
783+ //redeem tokens for vault
784+ ext:: vault_registry:: redeem_tokens :: < T > ( & redeem. vault , & redeem_amount, & redeem. premium ( ) ?, & redeem. redeemer ) ?;
792785
793786 Self :: set_redeem_status ( redeem_id, RedeemRequestStatus :: Completed ) ;
794787 Self :: deposit_event ( Event :: < T > :: ExecuteRedeem {
0 commit comments