1
- use crate :: pair_contract;
2
- use crate :: router_v2_contract;
3
1
use crate :: stable_swap_tests:: * ;
4
2
use crate :: utils:: * ;
3
+ use crate :: { factory_contract, pair_contract, router_v2_contract, wrapped_azero} ;
5
4
6
- use drink:: Weight ;
5
+ use drink:: { runtime:: MinimalRuntime , Weight } ;
6
+ use ink_wrapper_types:: ToAccountId ;
7
7
use router_v2_contract:: RouterV2 as _;
8
- use router_v2_contract:: Step ;
8
+ use router_v2_contract:: { Pair , Pool , StablePool , Step } ;
9
9
10
10
use drink:: { self , session:: Session } ;
11
11
use ink_wrapper_types:: Connection ;
12
12
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
+
13
28
#[ drink:: test]
14
29
fn test_cache_stable_pool ( mut session : Session ) {
15
30
upload_all ( & mut session) ;
@@ -18,34 +33,72 @@ fn test_cache_stable_pool(mut session: Session) {
18
33
let now = get_timestamp ( & mut session) ;
19
34
set_timestamp ( & mut session, now) ;
20
35
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) ;
26
37
27
38
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 > > ( ) ;
28
43
29
- let ( usdt_usdc_pool, _ ) = setup_stable_swap_with_tokens (
44
+ let ( usdt_usdc_pool, tokens ) = setup_stable_swap_with_tokens (
30
45
& mut session,
31
46
vec ! [ 6 , 6 ] ,
32
- initial_reserves . clone ( ) ,
47
+ initial_supply ,
33
48
10_000 ,
34
49
2_500_000 ,
35
50
200_000_000 ,
36
51
BOB ,
37
52
vec ! [ ] ,
38
53
) ;
39
54
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
+ ) )
42
87
. unwrap ( )
43
88
. result
44
89
. 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
+ ) ;
49
102
}
50
103
51
104
#[ drink:: test]
@@ -62,11 +115,7 @@ fn test_simple_swap(mut session: Session) {
62
115
let now = get_timestamp ( & mut session) ;
63
116
set_timestamp ( & mut session, now) ;
64
117
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) ;
70
119
71
120
// setup stable pool
72
121
let initial_reserves = vec ! [ 100000 * ONE_USDT , 100000 * ONE_USDC ] ;
@@ -99,15 +148,8 @@ fn test_simple_swap(mut session: Session) {
99
148
)
100
149
. expect ( "Should successfully add liquidity" ) ;
101
150
102
- _ = session
103
- . execute ( router. add_stable_pool_to_cache ( usdt_usdc_pool) )
104
- . unwrap ( )
105
- . result
106
- . unwrap ( )
107
- . unwrap ( ) ;
108
-
109
151
// 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
111
153
let ice = psp22_utils:: setup ( & mut session, ICE . to_string ( ) , BOB ) ;
112
154
let wood = psp22_utils:: setup ( & mut session, WOOD . to_string ( ) , BOB ) ;
113
155
psp22_utils:: increase_allowance ( & mut session, ice. into ( ) , router. into ( ) , u128:: MAX , BOB )
@@ -122,6 +164,7 @@ fn test_simple_swap(mut session: Session) {
122
164
_ = router_v2:: add_pair_liquidity (
123
165
& mut session,
124
166
router. into ( ) ,
167
+ None ,
125
168
ice. into ( ) ,
126
169
wood. into ( ) ,
127
170
token_amount,
@@ -137,6 +180,7 @@ fn test_simple_swap(mut session: Session) {
137
180
_ = router_v2:: add_pair_liquidity (
138
181
& mut session,
139
182
router. into ( ) ,
183
+ None ,
140
184
ice. into ( ) ,
141
185
usdt,
142
186
token_amount,
0 commit comments