Skip to content

Commit

Permalink
add more test for swap exact amount out
Browse files Browse the repository at this point in the history
  • Loading branch information
iboss-ptk committed Aug 15, 2023
1 parent 9b99d2c commit 1d7e32d
Showing 1 changed file with 48 additions and 1 deletion.
49 changes: 48 additions & 1 deletion contracts/transmuter/src/test/cases/comprehensive_flows.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ use osmosis_std::types::{
cosmos::bank::v1beta1::MsgSend,
osmosis::poolmanager::v1beta1::{
EstimateSwapExactAmountInRequest, EstimateSwapExactAmountInResponse, MsgSwapExactAmountIn,
SwapAmountInRoute,
MsgSwapExactAmountOut, SwapAmountInRoute, SwapAmountOutRoute,
},
};
use osmosis_test_tube::{Account, Bank, Module, OsmosisTestApp, Runner};
Expand Down Expand Up @@ -401,6 +401,53 @@ fn test_swap() {
);

t.assert_account_balances("bob", vec![Coin::new(29_902, COSMOS_USDC)], vec!["uosmo"]);

// swap back with `SwapExactAmountOut`
let token_out = Coin::new(1_500, ETH_USDC);

cp.swap_exact_amount_out(
MsgSwapExactAmountOut {
sender: t.accounts["bob"].address(),
token_out: Some(token_out.into()),
routes: vec![SwapAmountOutRoute {
pool_id: t.contract.pool_id,
token_in_denom: COSMOS_USDC.to_string(),
}],
token_in_max_amount: Uint128::from(1_500u128).to_string(),
},
&t.accounts["bob"],
)
.unwrap();

let GetTotalPoolLiquidityResponse {
total_pool_liquidity,
} = t
.contract
.query(&QueryMsg::GetTotalPoolLiquidity {})
.unwrap();

assert_eq!(
total_pool_liquidity,
vec![
Coin::new(29_902, ETH_USDC),
Coin::new(100_000 - 29_902, COSMOS_USDC),
]
);

// check balances
t.assert_contract_balances(&[
Coin::new(29_902, ETH_USDC),
Coin::new(100_000 + 100_000 - 29_902, COSMOS_USDC),
]);

t.assert_account_balances(
"bob",
vec![
Coin::new(1_500, ETH_USDC),
Coin::new(29_902 - 1_500, COSMOS_USDC), // +100_000 due to bank send
],
vec!["uosmo"],
);
}

#[test]
Expand Down

0 comments on commit 1d7e32d

Please sign in to comment.