Skip to content

Commit bd5b7c1

Browse files
committed
update tests
1 parent 03b3cd2 commit bd5b7c1

File tree

2 files changed

+85
-53
lines changed

2 files changed

+85
-53
lines changed

amm/drink-tests/src/router_v2_tests.rs

+74-30
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,30 @@
1-
use crate::pair_contract;
2-
use crate::router_v2_contract;
31
use crate::stable_swap_tests::*;
42
use crate::utils::*;
3+
use crate::{factory_contract, pair_contract, router_v2_contract, wrapped_azero};
54

6-
use drink::Weight;
5+
use drink::{runtime::MinimalRuntime, Weight};
6+
use ink_wrapper_types::ToAccountId;
77
use router_v2_contract::RouterV2 as _;
8-
use router_v2_contract::Step;
8+
use router_v2_contract::{Pair, Pool, StablePool, Step};
99

1010
use drink::{self, session::Session};
1111
use ink_wrapper_types::Connection;
1212

13+
fn setup_router(
14+
session: &mut Session<MinimalRuntime>,
15+
) -> (
16+
router_v2_contract::Instance,
17+
factory_contract::Instance,
18+
wrapped_azero::Instance,
19+
ink_primitives::AccountId,
20+
) {
21+
let fee_to_setter = bob();
22+
let factory = factory::setup(session, fee_to_setter);
23+
let wazero = wazero::setup(session);
24+
let router = router_v2::setup(session, factory.into(), wazero.into());
25+
(router, factory, wazero, fee_to_setter)
26+
}
27+
1328
#[drink::test]
1429
fn test_cache_stable_pool(mut session: Session) {
1530
upload_all(&mut session);
@@ -18,34 +33,72 @@ fn test_cache_stable_pool(mut session: Session) {
1833
let now = get_timestamp(&mut session);
1934
set_timestamp(&mut session, now);
2035

21-
// setup router
22-
let fee_to_setter = bob();
23-
let factory = factory::setup(&mut session, fee_to_setter);
24-
let wazero = wazero::setup(&mut session);
25-
let router = router_v2::setup(&mut session, factory.into(), wazero.into());
36+
let (router, _, _, _) = setup_router(&mut session);
2637

2738
let initial_reserves = vec![100000 * ONE_USDT, 100000 * ONE_USDC];
39+
let initial_supply = initial_reserves
40+
.iter()
41+
.map(|amount| amount * 100_000_000_000)
42+
.collect::<Vec<u128>>();
2843

29-
let (usdt_usdc_pool, _) = setup_stable_swap_with_tokens(
44+
let (usdt_usdc_pool, tokens) = setup_stable_swap_with_tokens(
3045
&mut session,
3146
vec![6, 6],
32-
initial_reserves.clone(),
47+
initial_supply,
3348
10_000,
3449
2_500_000,
3550
200_000_000,
3651
BOB,
3752
vec![],
3853
);
3954

40-
_ = session
41-
.execute(router.add_stable_pool_to_cache(usdt_usdc_pool))
55+
_ = stable_swap::add_liquidity(
56+
&mut session,
57+
usdt_usdc_pool,
58+
BOB,
59+
1,
60+
initial_reserves.clone(),
61+
bob(),
62+
)
63+
.expect("Should successfully add liquidity");
64+
65+
psp22_utils::increase_allowance(
66+
&mut session,
67+
tokens[0].into(),
68+
router.into(),
69+
u128::MAX,
70+
BOB,
71+
)
72+
.unwrap();
73+
74+
let deadline = get_timestamp(&mut session) + 10;
75+
session
76+
.execute(router.swap_exact_tokens_for_tokens(
77+
ONE_USDT,
78+
0,
79+
vec![Step {
80+
token_in: tokens[0].into(),
81+
pool_id: usdt_usdc_pool.into(),
82+
}],
83+
tokens[1].into(),
84+
bob(),
85+
deadline,
86+
))
4287
.unwrap()
4388
.result
4489
.unwrap()
45-
.unwrap();
46-
47-
let res = router_v2::get_cached_stable_pool(&mut session, router.into(), usdt_usdc_pool);
48-
assert_eq!(res, usdt_usdc_pool, "Pool Id mismatch");
90+
.expect("Should swap");
91+
92+
let res = router_v2::get_cached_pool(&mut session, router.into(), usdt_usdc_pool)
93+
.expect("Should return cached StablePool");
94+
assert_eq!(
95+
res,
96+
Pool::StablePool(StablePool {
97+
id: usdt_usdc_pool,
98+
tokens
99+
}),
100+
"StablePool mismatch"
101+
);
49102
}
50103

51104
#[drink::test]
@@ -62,11 +115,7 @@ fn test_simple_swap(mut session: Session) {
62115
let now = get_timestamp(&mut session);
63116
set_timestamp(&mut session, now);
64117

65-
// setup router
66-
let fee_to_setter = bob();
67-
let factory = factory::setup(&mut session, fee_to_setter);
68-
let wazero = wazero::setup(&mut session);
69-
let router = router_v2::setup(&mut session, factory.into(), wazero.into());
118+
let (router, factory, _, _) = setup_router(&mut session);
70119

71120
// setup stable pool
72121
let initial_reserves = vec![100000 * ONE_USDT, 100000 * ONE_USDC];
@@ -99,15 +148,8 @@ fn test_simple_swap(mut session: Session) {
99148
)
100149
.expect("Should successfully add liquidity");
101150

102-
_ = session
103-
.execute(router.add_stable_pool_to_cache(usdt_usdc_pool))
104-
.unwrap()
105-
.result
106-
.unwrap()
107-
.unwrap();
108-
109151
// setup pairs
110-
// initial amount of ICE is 1_000_000_000 * 10 ** 18
152+
// initial amount of ICE/WOOD is 1_000_000_000 * 10 ** 18
111153
let ice = psp22_utils::setup(&mut session, ICE.to_string(), BOB);
112154
let wood = psp22_utils::setup(&mut session, WOOD.to_string(), BOB);
113155
psp22_utils::increase_allowance(&mut session, ice.into(), router.into(), u128::MAX, BOB)
@@ -122,6 +164,7 @@ fn test_simple_swap(mut session: Session) {
122164
_ = router_v2::add_pair_liquidity(
123165
&mut session,
124166
router.into(),
167+
None,
125168
ice.into(),
126169
wood.into(),
127170
token_amount,
@@ -137,6 +180,7 @@ fn test_simple_swap(mut session: Session) {
137180
_ = router_v2::add_pair_liquidity(
138181
&mut session,
139182
router.into(),
183+
None,
140184
ice.into(),
141185
usdt,
142186
token_amount,

amm/drink-tests/src/utils.rs

+11-23
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ pub mod router {
218218
pub mod router_v2 {
219219
use super::*;
220220
use router_v2_contract::RouterV2 as _;
221+
use router_v2_contract::{Pool, RouterV2Error};
221222

222223
pub fn setup(
223224
session: &mut Session<MinimalRuntime>,
@@ -237,6 +238,7 @@ pub mod router_v2 {
237238
pub fn add_pair_liquidity(
238239
session: &mut Session<MinimalRuntime>,
239240
router: AccountId,
241+
pair: Option<AccountId>,
240242
token_0: AccountId,
241243
token_1: AccountId,
242244
desired_amount_0: u128,
@@ -245,13 +247,14 @@ pub mod router_v2 {
245247
min_amount_1: u128,
246248
to: AccountId,
247249
caller: drink::AccountId32,
248-
) -> (u128, u128, u128) {
250+
) -> Result<(u128, u128, u128), RouterV2Error> {
249251
let now = get_timestamp(session);
250252
let deadline = now + 10;
251253
let _ = session.set_actor(caller);
252254

253255
session
254256
.execute(router_v2_contract::Instance::from(router).add_pair_liquidity(
257+
pair,
255258
token_0,
256259
token_1,
257260
desired_amount_0,
@@ -264,26 +267,28 @@ pub mod router_v2 {
264267
.unwrap()
265268
.result
266269
.unwrap()
267-
.unwrap()
270+
// .unwrap()
268271
}
269272

270273
pub fn remove_pair_liquidity(
271274
session: &mut Session<MinimalRuntime>,
272275
router: AccountId,
276+
pair: AccountId,
273277
first_token: AccountId,
274278
second_token: AccountId,
275279
liquidity: u128,
276280
min_token0: u128,
277281
min_token1: u128,
278282
to: AccountId,
279283
caller: drink::AccountId32,
280-
) -> (u128, u128) {
284+
) -> Result<(u128, u128), RouterV2Error> {
281285
let now = get_timestamp(session);
282286
let deadline = now + 10;
283287
let _ = session.set_actor(caller);
284288

285289
session
286290
.execute(router_v2_contract::Instance::from(router).remove_pair_liquidity(
291+
pair,
287292
first_token,
288293
second_token,
289294
liquidity,
@@ -295,36 +300,19 @@ pub mod router_v2 {
295300
.unwrap()
296301
.result
297302
.unwrap()
298-
.unwrap()
299303
}
300304

301-
pub fn get_cached_pair(
302-
session: &mut Session<MinimalRuntime>,
303-
router: AccountId,
304-
token0: AccountId,
305-
token1: AccountId,
306-
) -> AccountId {
307-
session
308-
.query(router_v2_contract::Instance::from(router).read_cached_pair(token0, token1))
309-
.unwrap()
310-
.result
311-
.unwrap()
312-
.unwrap()
313-
.0
314-
}
315305

316-
pub fn get_cached_stable_pool(
306+
pub fn get_cached_pool(
317307
session: &mut Session<MinimalRuntime>,
318308
router: AccountId,
319309
pool_id: AccountId
320-
) -> AccountId {
310+
) -> Option<Pool> {
321311
session
322-
.query(router_v2_contract::Instance::from(router).read_cached_stable_pool(pool_id))
312+
.query(router_v2_contract::Instance::from(router).read_cached_pool(pool_id))
323313
.unwrap()
324314
.result
325315
.unwrap()
326-
.unwrap()
327-
.0
328316
}
329317
}
330318

0 commit comments

Comments
 (0)