From 1823f9789db1c93504644072268dad5cedc2d509 Mon Sep 17 00:00:00 2001 From: Mark Watney Date: Fri, 21 Jun 2024 10:53:41 +0800 Subject: [PATCH] fix: unstake exact --- contracts/credit-manager/src/unstake_astro_lp.rs | 2 +- .../credit-manager/tests/tests/test_unstake_astro_lp.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/contracts/credit-manager/src/unstake_astro_lp.rs b/contracts/credit-manager/src/unstake_astro_lp.rs index c04ec4e0..c59cdcc2 100644 --- a/contracts/credit-manager/src/unstake_astro_lp.rs +++ b/contracts/credit-manager/src/unstake_astro_lp.rs @@ -36,7 +36,7 @@ pub fn unstake_lp( available: lp_position.lp_coin.amount, }); } else { - lp_position.lp_coin.amount.checked_sub(amt)? + amt } } ActionAmount::AccountBalance => lp_position.lp_coin.amount, diff --git a/contracts/credit-manager/tests/tests/test_unstake_astro_lp.rs b/contracts/credit-manager/tests/tests/test_unstake_astro_lp.rs index a87f2e26..b0d5fcc5 100644 --- a/contracts/credit-manager/tests/tests/test_unstake_astro_lp.rs +++ b/contracts/credit-manager/tests/tests/test_unstake_astro_lp.rs @@ -46,7 +46,7 @@ fn unstake() { let mut mock = MockEnv::new() .fund_account(AccountToFund { addr: user.clone(), - funds: coins(100, lp_denom), + funds: coins(200, lp_denom), }) .build() .unwrap(); @@ -60,7 +60,7 @@ fn unstake() { let lp_coin = Coin { denom: lp_denom.to_string(), - amount: Uint128::new(100), + amount: Uint128::new(200), }; // stake @@ -93,11 +93,14 @@ fn unstake() { let positions = mock.query_positions(&account_id); assert_eq!(positions.staked_astro_lps.len(), 1); + assert_eq!(positions.staked_astro_lps[0].denom, lp_denom.to_string()); + assert_eq!(positions.staked_astro_lps[0].amount, Uint128::new(150)); assert_eq!(positions.deposits[0].denom, lp_denom.to_string()); assert_eq!(positions.deposits[0].amount, Uint128::new(50)); // Assert correct lp balance in contract let cm_lp_coin = mock.query_balance(&mock.rover, lp_denom); + assert_eq!(positions.deposits[0].denom, cm_lp_coin.denom); assert_eq!(positions.deposits[0].amount, cm_lp_coin.amount); // Entire remaining amount @@ -118,7 +121,7 @@ fn unstake() { assert_eq!(positions.staked_astro_lps.len(), 0); assert_eq!(positions.deposits.len(), 1); assert_eq!(positions.deposits[0].denom, lp_denom.to_string()); - assert_eq!(positions.deposits[0].amount, Uint128::new(100)); + assert_eq!(positions.deposits[0].amount, Uint128::new(200)); // Assert correct lp balance in contract let cm_lp_coin = mock.query_balance(&mock.rover, lp_denom);