@@ -30,6 +30,7 @@ const { brand: FEE_BRAND } = (() => ({ brand: Far('BLD') as Brand<'nat'> }))();
30
30
const token = ( v : bigint ) => AmountMath . make ( TOK_BRAND , v ) ;
31
31
const fee = ( v : bigint ) => AmountMath . make ( FEE_BRAND , v ) ;
32
32
const ZERO = token ( 0n ) ;
33
+ const fixedFee = fee ( 30_000_000n ) ;
33
34
34
35
// Pools
35
36
const A = 'Aave_Arbitrum' ;
@@ -70,17 +71,17 @@ testWithAllModes('solver simple 2-pool case (A -> B 30)', async (t, mode) => {
70
71
71
72
t . deepEqual ( steps , [
72
73
// leaf -> hub
73
- { src : A , dest : '@Arbitrum' , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
74
+ { src : A , dest : '@Arbitrum' , amount : token ( 30n ) , fee : fixedFee } ,
74
75
// hub -> hub legs
75
76
{ src : '@Arbitrum' , dest : '@noble' , amount : token ( 30n ) } ,
76
77
{
77
78
src : '@noble' ,
78
79
dest : '@Avalanche' ,
79
80
amount : token ( 30n ) ,
80
- fee : fee ( 15_000_000n ) ,
81
+ fee : fixedFee ,
81
82
} ,
82
83
// hub -> leaf
83
- { src : '@Avalanche' , dest : B , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
84
+ { src : '@Avalanche' , dest : B , amount : token ( 30n ) , fee : fixedFee } ,
84
85
] ) ;
85
86
} ) ;
86
87
@@ -102,24 +103,24 @@ testWithAllModes(
102
103
const amt33 = token ( 33n ) ;
103
104
t . deepEqual ( steps , [
104
105
// leaf -> hub (aggregated outflow from A)
105
- { src : A , dest : '@Arbitrum' , amount : amt66 , fee : fee ( 15_000_000n ) } ,
106
+ { src : A , dest : '@Arbitrum' , amount : amt66 , fee : fixedFee } ,
106
107
// hub -> hub aggregated then split
107
108
{ src : '@Arbitrum' , dest : '@noble' , amount : amt66 } ,
108
109
{
109
110
src : '@noble' ,
110
111
dest : '@Avalanche' ,
111
112
amount : amt33 ,
112
- fee : fee ( 15_000_000n ) ,
113
+ fee : fixedFee ,
113
114
} ,
114
115
{
115
116
src : '@noble' ,
116
117
dest : '@Ethereum' ,
117
118
amount : amt33 ,
118
- fee : fee ( 15_000_000n ) ,
119
+ fee : fixedFee ,
119
120
} ,
120
121
// hub -> leaf
121
- { src : '@Avalanche' , dest : B , amount : amt33 , fee : fee ( 15_000_000n ) } ,
122
- { src : '@Ethereum' , dest : C , amount : amt33 , fee : fee ( 15_000_000n ) } ,
122
+ { src : '@Avalanche' , dest : B , amount : amt33 , fee : fixedFee } ,
123
+ { src : '@Ethereum' , dest : C , amount : amt33 , fee : fixedFee } ,
123
124
] ) ;
124
125
} ,
125
126
) ;
@@ -149,17 +150,17 @@ testWithAllModes('solver all to one (B + C -> A)', async (t, mode) => {
149
150
feeBrand : FEE_BRAND ,
150
151
} ) ;
151
152
t . deepEqual ( steps , [
152
- { src : B , dest : '@Avalanche' , amount : token ( 20n ) , fee : fee ( 15_000_000n ) } ,
153
+ { src : B , dest : '@Avalanche' , amount : token ( 20n ) , fee : fixedFee } ,
153
154
{ src : '@Avalanche' , dest : '@noble' , amount : token ( 20n ) } ,
154
- { src : C , dest : '@Ethereum' , amount : token ( 70n ) , fee : fee ( 15_000_000n ) } ,
155
+ { src : C , dest : '@Ethereum' , amount : token ( 70n ) , fee : fixedFee } ,
155
156
{ src : '@Ethereum' , dest : '@noble' , amount : token ( 70n ) } ,
156
157
{
157
158
src : '@noble' ,
158
159
dest : '@Arbitrum' ,
159
160
amount : token ( 90n ) ,
160
- fee : fee ( 15_000_000n ) ,
161
+ fee : fixedFee ,
161
162
} ,
162
- { src : '@Arbitrum' , dest : A , amount : token ( 90n ) , fee : fee ( 15_000_000n ) } ,
163
+ { src : '@Arbitrum' , dest : A , amount : token ( 90n ) , fee : fixedFee } ,
163
164
] ) ;
164
165
} ) ;
165
166
@@ -177,22 +178,22 @@ testWithAllModes(
177
178
feeBrand : FEE_BRAND ,
178
179
} ) ;
179
180
t . deepEqual ( steps , [
180
- { src : A , dest : '@Arbitrum' , amount : token ( 100n ) , fee : fee ( 15_000_000n ) } ,
181
+ { src : A , dest : '@Arbitrum' , amount : token ( 100n ) , fee : fixedFee } ,
181
182
{ src : '@Arbitrum' , dest : '@noble' , amount : token ( 100n ) } ,
182
183
{
183
184
src : '@noble' ,
184
185
dest : '@Avalanche' ,
185
186
amount : token ( 60n ) ,
186
- fee : fee ( 15_000_000n ) ,
187
+ fee : fixedFee ,
187
188
} ,
188
189
{
189
190
src : '@noble' ,
190
191
dest : '@Ethereum' ,
191
192
amount : token ( 40n ) ,
192
- fee : fee ( 15_000_000n ) ,
193
+ fee : fixedFee ,
193
194
} ,
194
- { src : '@Avalanche' , dest : B , amount : token ( 60n ) , fee : fee ( 15_000_000n ) } ,
195
- { src : '@Ethereum' , dest : C , amount : token ( 40n ) , fee : fee ( 15_000_000n ) } ,
195
+ { src : '@Avalanche' , dest : B , amount : token ( 60n ) , fee : fixedFee } ,
196
+ { src : '@Ethereum' , dest : C , amount : token ( 40n ) , fee : fixedFee } ,
196
197
] ) ;
197
198
} ,
198
199
) ;
@@ -210,17 +211,17 @@ testWithAllModes(
210
211
feeBrand : FEE_BRAND ,
211
212
} ) ;
212
213
t . deepEqual ( steps , [
213
- { src : B , dest : '@Avalanche' , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
214
+ { src : B , dest : '@Avalanche' , amount : token ( 30n ) , fee : fixedFee } ,
214
215
{ src : '@Avalanche' , dest : '@noble' , amount : token ( 30n ) } ,
215
- { src : C , dest : '@Ethereum' , amount : token ( 70n ) , fee : fee ( 15_000_000n ) } ,
216
+ { src : C , dest : '@Ethereum' , amount : token ( 70n ) , fee : fixedFee } ,
216
217
{ src : '@Ethereum' , dest : '@noble' , amount : token ( 70n ) } ,
217
218
{
218
219
src : '@noble' ,
219
220
dest : '@Arbitrum' ,
220
221
amount : token ( 100n ) ,
221
- fee : fee ( 15_000_000n ) ,
222
+ fee : fixedFee ,
222
223
} ,
223
- { src : '@Arbitrum' , dest : A , amount : token ( 100n ) , fee : fee ( 15_000_000n ) } ,
224
+ { src : '@Arbitrum' , dest : A , amount : token ( 100n ) , fee : fixedFee } ,
224
225
] ) ;
225
226
} ,
226
227
) ;
@@ -244,16 +245,16 @@ testWithAllModes(
244
245
src : '@noble' ,
245
246
dest : '@Arbitrum' ,
246
247
amount : token ( 70n ) ,
247
- fee : fee ( 15_000_000n ) ,
248
+ fee : fixedFee ,
248
249
} ,
249
250
{
250
251
src : '@noble' ,
251
252
dest : '@Avalanche' ,
252
253
amount : token ( 30n ) ,
253
- fee : fee ( 15_000_000n ) ,
254
+ fee : fixedFee ,
254
255
} ,
255
- { src : '@Arbitrum' , dest : A , amount : token ( 70n ) , fee : fee ( 15_000_000n ) } ,
256
- { src : '@Avalanche' , dest : B , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
256
+ { src : '@Arbitrum' , dest : A , amount : token ( 70n ) , fee : fixedFee } ,
257
+ { src : '@Avalanche' , dest : B , amount : token ( 30n ) , fee : fixedFee } ,
257
258
] ) ;
258
259
} ,
259
260
) ;
@@ -279,16 +280,16 @@ testWithAllModes(
279
280
src : '@noble' ,
280
281
dest : '@Arbitrum' ,
281
282
amount : token ( 70n ) ,
282
- fee : fee ( 15_000_000n ) ,
283
+ fee : fixedFee ,
283
284
} ,
284
285
{
285
286
src : '@noble' ,
286
287
dest : '@Avalanche' ,
287
288
amount : token ( 30n ) ,
288
- fee : fee ( 15_000_000n ) ,
289
+ fee : fixedFee ,
289
290
} ,
290
- { src : '@Arbitrum' , dest : A , amount : token ( 70n ) , fee : fee ( 15_000_000n ) } ,
291
- { src : '@Avalanche' , dest : B , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
291
+ { src : '@Arbitrum' , dest : A , amount : token ( 70n ) , fee : fixedFee } ,
292
+ { src : '@Avalanche' , dest : B , amount : token ( 30n ) , fee : fixedFee } ,
292
293
] ) ;
293
294
} ,
294
295
) ;
@@ -306,9 +307,9 @@ testWithAllModes(
306
307
feeBrand : FEE_BRAND ,
307
308
} ) ;
308
309
t . deepEqual ( steps , [
309
- { src : A , dest : '@Arbitrum' , amount : token ( 50n ) , fee : fee ( 15_000_000n ) } ,
310
+ { src : A , dest : '@Arbitrum' , amount : token ( 50n ) , fee : fixedFee } ,
310
311
{ src : '@Arbitrum' , dest : '@noble' , amount : token ( 50n ) } ,
311
- { src : B , dest : '@Avalanche' , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
312
+ { src : B , dest : '@Avalanche' , amount : token ( 30n ) , fee : fixedFee } ,
312
313
{ src : '@Avalanche' , dest : '@noble' , amount : token ( 30n ) } ,
313
314
{ src : '@noble' , dest : '@agoric' , amount : token ( 80n ) } ,
314
315
{ src : '@agoric' , dest : '<Cash>' , amount : token ( 80n ) } ,
@@ -343,15 +344,15 @@ testWithAllModes(
343
344
feeBrand : FEE_BRAND ,
344
345
} ) ;
345
346
t . deepEqual ( steps , [
346
- { src : '@Arbitrum' , dest : A , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
347
- { src : '@Avalanche' , dest : B , amount : token ( 20n ) , fee : fee ( 15_000_000n ) } ,
347
+ { src : '@Arbitrum' , dest : A , amount : token ( 30n ) , fee : fixedFee } ,
348
+ { src : '@Avalanche' , dest : B , amount : token ( 20n ) , fee : fixedFee } ,
348
349
{
349
350
src : '@noble' ,
350
351
dest : '@Ethereum' ,
351
352
amount : token ( 20n ) ,
352
- fee : fee ( 15_000_000n ) ,
353
+ fee : fixedFee ,
353
354
} ,
354
- { src : '@Ethereum' , dest : C , amount : token ( 20n ) , fee : fee ( 15_000_000n ) } ,
355
+ { src : '@Ethereum' , dest : C , amount : token ( 20n ) , fee : fixedFee } ,
355
356
] ) ;
356
357
} ,
357
358
) ;
@@ -394,16 +395,16 @@ testWithAllModes(
394
395
src : '@noble' ,
395
396
dest : '@Arbitrum' ,
396
397
amount : token ( 300n ) ,
397
- fee : fee ( 15_000_000n ) ,
398
+ fee : fixedFee ,
398
399
} ,
399
400
{
400
401
src : '@noble' ,
401
402
dest : '@Ethereum' ,
402
403
amount : token ( 200n ) ,
403
- fee : fee ( 15_000_000n ) ,
404
+ fee : fixedFee ,
404
405
} ,
405
- { src : '@Arbitrum' , dest : A , amount : token ( 300n ) , fee : fee ( 15_000_000n ) } ,
406
- { src : '@Ethereum' , dest : C , amount : token ( 200n ) , fee : fee ( 15_000_000n ) } ,
406
+ { src : '@Arbitrum' , dest : A , amount : token ( 300n ) , fee : fixedFee } ,
407
+ { src : '@Ethereum' , dest : C , amount : token ( 200n ) , fee : fixedFee } ,
407
408
] ) ;
408
409
} ,
409
410
) ;
@@ -448,16 +449,16 @@ testWithAllModes(
448
449
src : '@noble' ,
449
450
dest : '@Arbitrum' ,
450
451
amount : token ( 220n ) ,
451
- fee : fee ( 15_000_000n ) ,
452
+ fee : fixedFee ,
452
453
} ,
453
454
{
454
455
src : '@noble' ,
455
456
dest : '@Ethereum' ,
456
457
amount : token ( 160n ) ,
457
- fee : fee ( 15_000_000n ) ,
458
+ fee : fixedFee ,
458
459
} ,
459
- { src : '@Arbitrum' , dest : A , amount : token ( 220n ) , fee : fee ( 15_000_000n ) } ,
460
- { src : '@Ethereum' , dest : C , amount : token ( 160n ) , fee : fee ( 15_000_000n ) } ,
460
+ { src : '@Arbitrum' , dest : A , amount : token ( 220n ) , fee : fixedFee } ,
461
+ { src : '@Ethereum' , dest : C , amount : token ( 160n ) , fee : fixedFee } ,
461
462
] ) ;
462
463
} ,
463
464
) ;
@@ -506,15 +507,15 @@ testWithAllModes(
506
507
507
508
// Identical to the 2-pool case; no steps to/from C
508
509
t . deepEqual ( steps , [
509
- { src : A , dest : '@Arbitrum' , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
510
+ { src : A , dest : '@Arbitrum' , amount : token ( 30n ) , fee : fixedFee } ,
510
511
{ src : '@Arbitrum' , dest : '@noble' , amount : token ( 30n ) } ,
511
512
{
512
513
src : '@noble' ,
513
514
dest : '@Avalanche' ,
514
515
amount : token ( 30n ) ,
515
- fee : fee ( 15_000_000n ) ,
516
+ fee : fixedFee ,
516
517
} ,
517
- { src : '@Avalanche' , dest : B , amount : token ( 30n ) , fee : fee ( 15_000_000n ) } ,
518
+ { src : '@Avalanche' , dest : B , amount : token ( 30n ) , fee : fixedFee } ,
518
519
] ) ;
519
520
} ,
520
521
) ;
@@ -576,7 +577,7 @@ test.failing('solver differentiates cheapest vs. fastest', async t => {
576
577
src : '@agoric' ,
577
578
dest : '@External' ,
578
579
amount : token ( 100n ) ,
579
- fee : fee ( 15_000_000n ) ,
580
+ fee : fixedFee ,
580
581
} ,
581
582
{ src : '@External' , dest : 'Sink_External' , amount : token ( 100n ) } ,
582
583
] ) ;
@@ -600,7 +601,7 @@ test.failing('solver differentiates cheapest vs. fastest', async t => {
600
601
src : '@agoric' ,
601
602
dest : '@External' ,
602
603
amount : token ( 100n ) ,
603
- fee : fee ( 15_000_000n ) ,
604
+ fee : fixedFee ,
604
605
} ,
605
606
{ src : '@External' , dest : 'Sink_External' , amount : token ( 100n ) } ,
606
607
] ) ;
0 commit comments