Skip to content

Commit b217ece

Browse files
committed
fix: test cases
1 parent 676fb32 commit b217ece

File tree

4 files changed

+974
-8
lines changed

4 files changed

+974
-8
lines changed

crates/redeem/src/lib.rs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,10 @@ pub mod pallet {
172172
AmountBelowDustAmount,
173173
/// Invalid Cancel request.
174174
InvalidCancelRequest,
175+
/// Cannot replace self.
176+
ReplaceSelfNotAllowed,
177+
/// Vault cannot replace different currency.
178+
InvalidWrappedCurrency,
175179
}
176180

177181
/// The time difference in number of blocks between a redeem request is created and required completion time by a
@@ -541,6 +545,16 @@ impl<T: Config> Pallet<T> {
541545
let old_vault = AccountOrVault::Vault(old_vault_id.clone());
542546
let new_vault = AccountOrVault::Vault(new_vault_id.clone());
543547

548+
// probably this check is not strictly required, but it's better to give an
549+
// explicit error rather than insufficient balance
550+
ensure!(
551+
old_vault_id.wrapped_currency() == new_vault_id.wrapped_currency(),
552+
Error::<T>::InvalidWrappedCurrency
553+
);
554+
555+
// don't allow vaults to replace themselves
556+
ensure!(old_vault != new_vault, Error::<T>::ReplaceSelfNotAllowed);
557+
544558
// Calculate requestable tokens for old vault
545559
let max_requestable_tokens: Amount<T> =
546560
ext::vault_registry::requestable_to_be_replaced_tokens::<T>(&old_vault_id)?;
@@ -589,12 +603,12 @@ impl<T: Config> Pallet<T> {
589603
ensure!(!btc_address.is_zero(), btc_relay::Error::<T>::InvalidBtcHash);
590604

591605
// todo: currently allowed to redeem from one currency to the other for free - decide if this is desirable
592-
let fee_wrapped = if redeemer.get_account().clone() == vault_id.account_id {
606+
let mut fee_wrapped = if redeemer.get_account().clone() == vault_id.account_id {
593607
Amount::zero(vault_id.wrapped_currency())
594608
} else {
595609
ext::fee::get_redeem_fee::<T>(&amount_wrapped)?
596610
};
597-
let inclusion_fee = Self::get_current_inclusion_fee(vault_id.wrapped_currency())?;
611+
let mut inclusion_fee = Self::get_current_inclusion_fee(vault_id.wrapped_currency())?;
598612

599613
let vault_to_be_burned_tokens = amount_wrapped.checked_sub(&fee_wrapped)?;
600614

@@ -634,6 +648,8 @@ impl<T: Config> Pallet<T> {
634648
};
635649

636650
let to_be_received_btc = if redeemer.is_vault_account() {
651+
fee_wrapped = Amount::zero(vault_id.wrapped_currency());
652+
inclusion_fee = Amount::zero(vault_id.wrapped_currency());
637653
amount_wrapped.amount()
638654
} else {
639655
user_to_be_received_btc.amount()

crates/redeem/src/tests.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -803,9 +803,7 @@ mod redeem_replace_tests {
803803
premium: 0,
804804
vault_id: OLD_VAULT,
805805
btc_address,
806-
transfer_fee: Redeem::get_current_inclusion_fee(DEFAULT_WRAPPED_CURRENCY)
807-
.unwrap()
808-
.amount()
806+
transfer_fee: 0
809807
});
810808
})
811809
}
@@ -828,9 +826,7 @@ mod redeem_replace_tests {
828826
vault_id: OLD_VAULT,
829827
amount: 10,
830828
fee: 0,
831-
transfer_fee: Redeem::get_current_inclusion_fee(DEFAULT_WRAPPED_CURRENCY)
832-
.unwrap()
833-
.amount(),
829+
transfer_fee: 0,
834830
});
835831

836832
assert_err!(

parachain/runtime/runtime-tests/src/parachain.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ mod loans;
1212
mod multisig;
1313
mod nomination;
1414
mod redeem;
15+
mod replace;
1516
mod vault_registry;

0 commit comments

Comments
 (0)