@paraswap/dex-lib 3.4.2-balancer-v2-single-swap.0 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +377 -377
  2. package/build/config.js +9 -5
  3. package/build/config.js.map +1 -1
  4. package/build/dex/algebra/algebra.js +25 -25
  5. package/build/dex/balancer-v1/balancer-v1.js +34 -34
  6. package/build/dex/balancer-v2/balancer-v2.d.ts +1 -1
  7. package/build/dex/balancer-v2/balancer-v2.js +65 -78
  8. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  9. package/build/dex/camelot/camelot.js +27 -27
  10. package/build/dex/kyberdmm/kyberdmm.js +27 -27
  11. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +25 -25
  12. package/build/dex/solidly/solidly.js +27 -27
  13. package/build/dex/solidly-v3/solidly-v3.js +25 -25
  14. package/build/dex/swaap-v2/config.js +15 -0
  15. package/build/dex/swaap-v2/config.js.map +1 -1
  16. package/build/dex/uniswap-v2/uniswap-v2.js +26 -26
  17. package/build/dex/uniswap-v3/uniswap-v3.js +25 -25
  18. package/funding.json +5 -5
  19. package/package.json +1 -1
  20. package/src/config.ts +500 -496
  21. package/src/constants.ts +67 -67
  22. package/src/dex/aave-v2/aave-v2.ts +409 -409
  23. package/src/dex/aave-v3/aave-v3.ts +320 -320
  24. package/src/dex/algebra/algebra.ts +1180 -1180
  25. package/src/dex/angle-staked-stable/angle-staked-stable.ts +347 -347
  26. package/src/dex/augustus-rfq.ts +180 -180
  27. package/src/dex/bProtocol/bProtocol.ts +108 -108
  28. package/src/dex/balancer-v1/balancer-v1.ts +572 -572
  29. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +1699 -1699
  30. package/src/dex/balancer-v2/balancer-v2.ts +1669 -1701
  31. package/src/dex/bancor/bancor.ts +128 -128
  32. package/src/dex/camelot/camelot.ts +873 -873
  33. package/src/dex/compound/compound.ts +107 -107
  34. package/src/dex/curve-v1/config.ts +1179 -1179
  35. package/src/dex/curve-v1/curve-v1-e2e.test.ts +507 -507
  36. package/src/dex/curve-v1/curve-v1.ts +1315 -1315
  37. package/src/dex/curve-v1-factory/config.ts +1018 -1018
  38. package/src/dex/curve-v1-factory/curve-v1-factory.ts +1288 -1288
  39. package/src/dex/curve-v2/curve-v2.ts +440 -440
  40. package/src/dex/dexalot/dexalot.ts +1100 -1100
  41. package/src/dex/dodo-v1/dodo-v1.ts +132 -132
  42. package/src/dex/dodo-v2.ts +266 -266
  43. package/src/dex/etherfi.ts +239 -239
  44. package/src/dex/generic-rfq/generic-rfq.ts +431 -431
  45. package/src/dex/gmx/gmx.ts +321 -321
  46. package/src/dex/hashflow/hashflow.ts +1135 -1135
  47. package/src/dex/idex.ts +254 -254
  48. package/src/dex/index.ts +357 -357
  49. package/src/dex/jarvis-v6/jarvis-v6.ts +509 -509
  50. package/src/dex/jarvis.ts +262 -262
  51. package/src/dex/kyberdmm/kyberdmm.ts +649 -649
  52. package/src/dex/lido/lido.ts +110 -110
  53. package/src/dex/maker-psm/maker-psm.ts +592 -592
  54. package/src/dex/maverick-v1/maverick-v1.ts +537 -537
  55. package/src/dex/nerve/config.ts +635 -635
  56. package/src/dex/nerve/nerve-e2e.test.ts +731 -731
  57. package/src/dex/nerve/nerve-events.test.ts +911 -911
  58. package/src/dex/nerve/nerve.ts +467 -467
  59. package/src/dex/onebit/onebit.ts +113 -113
  60. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +1150 -1150
  61. package/src/dex/paraswap-limit-orders/config.ts +60 -60
  62. package/src/dex/paraswap-limit-orders/paraswap-limit-orders-e2e.test.ts +137 -137
  63. package/src/dex/paraswap-limit-orders/paraswap-limit-orders-integration.test.ts +328 -328
  64. package/src/dex/paraswap-limit-orders/paraswap-limit-orders.ts +631 -631
  65. package/src/dex/polygon-migrator/polygon-migrator.ts +194 -194
  66. package/src/dex/quick-perps/quick-perps.ts +337 -337
  67. package/src/dex/quickswap/config.ts +16 -16
  68. package/src/dex/quickswap/quickswap-e2e.test.ts +384 -384
  69. package/src/dex/smoothy/smoothy.ts +110 -110
  70. package/src/dex/solidly/config.ts +225 -225
  71. package/src/dex/solidly/solidly-e2e.test.ts +1421 -1421
  72. package/src/dex/solidly/solidly-integration.test.ts +1753 -1753
  73. package/src/dex/solidly/solidly.ts +687 -687
  74. package/src/dex/solidly-v3/solidly-v3.ts +968 -968
  75. package/src/dex/spark/spark.ts +284 -284
  76. package/src/dex/stable-pool/stable-pool.ts +129 -129
  77. package/src/dex/swaap-v2/config.ts +15 -0
  78. package/src/dex/swaap-v2/swaap-v2-e2e.test.ts +233 -17
  79. package/src/dex/swaap-v2/swaap-v2-integration.test.ts +1 -1
  80. package/src/dex/swaap-v2/swaap-v2.ts +1056 -1056
  81. package/src/dex/swell/swell.ts +312 -312
  82. package/src/dex/synthetix/synthetix.ts +420 -420
  83. package/src/dex/trader-joe-v2.1/trader-joe-v2.1.ts +180 -180
  84. package/src/dex/uniswap-v2/config.ts +637 -637
  85. package/src/dex/uniswap-v2/constants.ts +58 -58
  86. package/src/dex/uniswap-v2/uniswap-v2-e2e-avalanche.test.ts +1257 -1257
  87. package/src/dex/uniswap-v2/uniswap-v2-e2e-base.test.ts +42 -42
  88. package/src/dex/uniswap-v2/uniswap-v2-e2e-bsc.test.ts +1295 -1295
  89. package/src/dex/uniswap-v2/uniswap-v2-e2e-mainnet.test.ts +1834 -1834
  90. package/src/dex/uniswap-v2/uniswap-v2-e2e-polygon.test.ts +871 -871
  91. package/src/dex/uniswap-v2/uniswap-v2.ts +1117 -1117
  92. package/src/dex/uniswap-v3/uniswap-v3.ts +1501 -1501
  93. package/src/dex/uniswap-v3.ts +242 -242
  94. package/src/dex/weth/config.ts +73 -73
  95. package/src/dex/weth/weth.ts +230 -230
  96. package/src/dex/wombat/wombat.ts +467 -467
  97. package/src/dex/woo-fi-v2/woo-fi-v2.ts +529 -529
  98. package/src/dex/wsteth/wsteth.ts +304 -304
  99. package/src/dex/zerox/index.ts +328 -328
  100. package/src/executor/Executor01BytecodeBuilder.ts +474 -474
  101. package/src/executor/Executor02BytecodeBuilder.ts +1392 -1392
  102. package/src/executor/ExecutorBytecodeBuilder.ts +390 -390
  103. package/src/executor/ExecutorDetector.ts +131 -131
  104. package/src/executor/constants.ts +66 -66
  105. package/src/executor/executor01-bytecode-builder-e2e.test.ts +1478 -1478
  106. package/src/executor/utils.ts +62 -62
  107. package/src/router/simpleswap.ts +366 -366
  108. package/src/types.ts +342 -342
  109. package/tests/constants-e2e.ts +1632 -1622
  110. package/tests/generate-new-limit-order.ts +107 -107
@@ -1,871 +1,871 @@
1
- import dotenv from 'dotenv';
2
- dotenv.config();
3
-
4
- import { testE2E } from '../../../tests/utils-e2e';
5
- import { Holders, Tokens } from '../../../tests/constants-e2e';
6
- import { ContractMethod, Network, SwapSide } from '../../constants';
7
- import { StaticJsonRpcProvider } from '@ethersproject/providers';
8
- import { generateConfig } from '../../config';
9
-
10
- describe('UniswapV2 E2E Polygon', () => {
11
- const network = Network.POLYGON;
12
- const tokens = Tokens[network];
13
- const holders = Holders[network];
14
- const provider = new StaticJsonRpcProvider(
15
- generateConfig(network).privateHttpProvider,
16
- network,
17
- );
18
-
19
- describe('QuickSwap_V6', () => {
20
- const dexKey = 'QuickSwap';
21
-
22
- describe('SELL', () => {
23
- it('MATIC -> WETH', async () => {
24
- await testE2E(
25
- tokens.MATIC,
26
- tokens.WETH,
27
- holders.MATIC,
28
- '70000000000000000000',
29
- SwapSide.SELL,
30
- dexKey,
31
- ContractMethod.swapExactAmountIn,
32
- network,
33
- provider,
34
- );
35
- });
36
- it('WETH -> MATIC', async () => {
37
- await testE2E(
38
- tokens.WETH,
39
- tokens.MATIC,
40
- holders.WETH,
41
- '10000000000000000',
42
- SwapSide.SELL,
43
- dexKey,
44
- ContractMethod.swapExactAmountIn,
45
- network,
46
- provider,
47
- );
48
- });
49
- it('DAI -> USDC', async () => {
50
- await testE2E(
51
- tokens.DAI,
52
- tokens.USDC,
53
- holders.DAI,
54
- '100000000000000000000',
55
- SwapSide.SELL,
56
- dexKey,
57
- ContractMethod.swapExactAmountIn,
58
- network,
59
- provider,
60
- );
61
- });
62
- it('AAVE -> PSP', async () => {
63
- await testE2E(
64
- tokens.AAVE,
65
- tokens.PSP,
66
- holders.AAVE,
67
- '100000000000000000000',
68
- SwapSide.SELL,
69
- dexKey,
70
- ContractMethod.swapExactAmountIn,
71
- network,
72
- provider,
73
- );
74
- });
75
- });
76
- describe('BUY', () => {
77
- it('MATIC -> WETH', async () => {
78
- await testE2E(
79
- tokens.MATIC,
80
- tokens.WETH,
81
- holders.MATIC,
82
- '70000000000000000000',
83
- SwapSide.BUY,
84
- dexKey,
85
- ContractMethod.swapExactAmountOut,
86
- network,
87
- provider,
88
- );
89
- });
90
- it('WETH -> MATIC', async () => {
91
- await testE2E(
92
- tokens.WETH,
93
- tokens.MATIC,
94
- holders.WETH,
95
- '10000000000000000',
96
- SwapSide.BUY,
97
- dexKey,
98
- ContractMethod.swapExactAmountOut,
99
- network,
100
- provider,
101
- );
102
- });
103
- it('USDT -> USDC', async () => {
104
- await testE2E(
105
- tokens.USDT,
106
- tokens.USDC,
107
- holders.USDT,
108
- '100000',
109
- SwapSide.BUY,
110
- dexKey,
111
- ContractMethod.swapExactAmountOut,
112
- network,
113
- provider,
114
- );
115
- });
116
- });
117
- });
118
- describe('SafeSwap', () => {
119
- const dexKey = 'SafeSwap';
120
-
121
- describe('Simpleswap', () => {
122
- it('MATIC -> TOKEN', async () => {
123
- await testE2E(
124
- tokens.MATIC,
125
- tokens.WETH,
126
- holders.MATIC,
127
- '70000000000000000000',
128
- SwapSide.SELL,
129
- dexKey,
130
- ContractMethod.simpleSwap,
131
- network,
132
- provider,
133
- );
134
- });
135
- it('TOKEN -> MATIC', async () => {
136
- await testE2E(
137
- tokens.WETH,
138
- tokens.MATIC,
139
- holders.WETH,
140
- '10000000000000000',
141
- SwapSide.SELL,
142
- dexKey,
143
- ContractMethod.simpleSwap,
144
- network,
145
- provider,
146
- );
147
- });
148
- it('TOKEN -> TOKEN', async () => {
149
- await testE2E(
150
- tokens.DAI,
151
- tokens.USDC,
152
- holders.DAI,
153
- '100000000000000000000',
154
- SwapSide.SELL,
155
- dexKey,
156
- ContractMethod.simpleSwap,
157
- network,
158
- provider,
159
- );
160
- });
161
- });
162
- describe('Multi', () => {
163
- it('MATIC -> TOKEN', async () => {
164
- await testE2E(
165
- tokens.MATIC,
166
- tokens.WETH,
167
- holders.MATIC,
168
- '7000000000000000000',
169
- SwapSide.SELL,
170
- dexKey,
171
- ContractMethod.multiSwap,
172
- network,
173
- provider,
174
- );
175
- });
176
- it('TOKEN -> MATIC', async () => {
177
- await testE2E(
178
- tokens.WETH,
179
- tokens.MATIC,
180
- holders.WETH,
181
- '10000000000000000',
182
- SwapSide.SELL,
183
- dexKey,
184
- ContractMethod.multiSwap,
185
- network,
186
- provider,
187
- );
188
- });
189
- it('TOKEN -> TOKEN', async () => {
190
- await testE2E(
191
- tokens.DAI,
192
- tokens.USDC,
193
- holders.DAI,
194
- '100000000000000000000',
195
- SwapSide.SELL,
196
- dexKey,
197
- ContractMethod.multiSwap,
198
- network,
199
- provider,
200
- );
201
- });
202
- });
203
- describe('Mega', () => {
204
- it('MATIC -> TOKEN', async () => {
205
- await testE2E(
206
- tokens.MATIC,
207
- tokens.WETH,
208
- holders.MATIC,
209
- '7000000000000000000',
210
- SwapSide.SELL,
211
- dexKey,
212
- ContractMethod.megaSwap,
213
- network,
214
- provider,
215
- );
216
- });
217
- it('TOKEN -> MATIC', async () => {
218
- await testE2E(
219
- tokens.WETH,
220
- tokens.MATIC,
221
- holders.WETH,
222
- '10000000000000000',
223
- SwapSide.SELL,
224
- dexKey,
225
- ContractMethod.megaSwap,
226
- network,
227
- provider,
228
- );
229
- });
230
- it('TOKEN -> TOKEN', async () => {
231
- await testE2E(
232
- tokens.DAI,
233
- tokens.USDC,
234
- holders.DAI,
235
- '100000000000000000000',
236
- SwapSide.SELL,
237
- dexKey,
238
- ContractMethod.megaSwap,
239
- network,
240
- provider,
241
- );
242
- });
243
- });
244
- });
245
-
246
- describe('Sushiswap', () => {
247
- const dexKey = 'SushiSwap';
248
-
249
- describe('Simpleswap', () => {
250
- it('Sushiswap MATIC -> TOKEN', async () => {
251
- await testE2E(
252
- tokens.MATIC,
253
- tokens.WETH,
254
- holders.MATIC,
255
- '7000000000000000000',
256
- SwapSide.SELL,
257
- dexKey,
258
- ContractMethod.simpleSwap,
259
- network,
260
- provider,
261
- );
262
- });
263
- it('Sushiswap TOKEN -> MATIC', async () => {
264
- await testE2E(
265
- tokens.DAI,
266
- tokens.MATIC,
267
- holders.DAI,
268
- '700000000000000000000',
269
- SwapSide.SELL,
270
- dexKey,
271
- ContractMethod.simpleSwap,
272
- network,
273
- provider,
274
- );
275
- });
276
- it('Sushiswap TOKEN -> TOKEN', async () => {
277
- await testE2E(
278
- tokens.WMATIC,
279
- tokens.WETH,
280
- holders.WMATIC,
281
- '7000000000000000000',
282
- SwapSide.SELL,
283
- dexKey,
284
- ContractMethod.simpleSwap,
285
- network,
286
- provider,
287
- );
288
- });
289
- });
290
-
291
- describe('Multiswap', () => {
292
- it('Sushiswap MATIC -> TOKEN', async () => {
293
- await testE2E(
294
- tokens.MATIC,
295
- tokens.WETH,
296
- holders.MATIC,
297
- '7000000000000000000',
298
- SwapSide.SELL,
299
- dexKey,
300
- ContractMethod.multiSwap,
301
- network,
302
- provider,
303
- );
304
- });
305
- it('Sushiswap TOKEN -> MATIC', async () => {
306
- await testE2E(
307
- tokens.DAI,
308
- tokens.MATIC,
309
- holders.DAI,
310
- '700000000000000000000',
311
- SwapSide.SELL,
312
- dexKey,
313
- ContractMethod.multiSwap,
314
- network,
315
- provider,
316
- );
317
- });
318
- it('Sushiswap TOKEN -> TOKEN', async () => {
319
- await testE2E(
320
- tokens.DAI,
321
- tokens.WMATIC,
322
- holders.DAI,
323
- '70000000000000000000',
324
- SwapSide.SELL,
325
- dexKey,
326
- ContractMethod.multiSwap,
327
- network,
328
- provider,
329
- );
330
- });
331
- });
332
- });
333
-
334
- describe('Dfyn_V6', () => {
335
- const dexKey = 'Dfyn';
336
-
337
- describe('swapExactAmountIn', () => {
338
- it('Dfyn MATIC -> TOKEN', async () => {
339
- await testE2E(
340
- tokens.MATIC,
341
- tokens.WETH,
342
- holders.MATIC,
343
- '7000000000000000000',
344
- SwapSide.SELL,
345
- dexKey,
346
- ContractMethod.swapExactAmountIn,
347
- network,
348
- provider,
349
- );
350
- });
351
- it('Dfyn TOKEN -> MATIC', async () => {
352
- await testE2E(
353
- tokens.DAI,
354
- tokens.MATIC,
355
- holders.DAI,
356
- '7000000000000000000',
357
- SwapSide.SELL,
358
- dexKey,
359
- ContractMethod.swapExactAmountIn,
360
- network,
361
- provider,
362
- );
363
- });
364
- it('Dfyn TOKEN -> TOKEN', async () => {
365
- await testE2E(
366
- tokens.DAI,
367
- tokens.USDT,
368
- holders.DAI,
369
- '7000000000000000000',
370
- SwapSide.SELL,
371
- dexKey,
372
- ContractMethod.swapExactAmountIn,
373
- network,
374
- provider,
375
- );
376
- });
377
- });
378
-
379
- // describe('Multiswap', () => {
380
- // it('Dfyn MATIC -> TOKEN', async () => {
381
- // await testE2E(
382
- // tokens.MATIC,
383
- // tokens.WETH,
384
- // holders.MATIC,
385
- // '7000000000000000000',
386
- // SwapSide.SELL,
387
- // dexKey,
388
- // ContractMethod.multiSwap,
389
- // network,
390
- // provider,
391
- // );
392
- // });
393
- // it('Dfyn TOKEN -> MATIC', async () => {
394
- // await testE2E(
395
- // tokens.DAI,
396
- // tokens.MATIC,
397
- // holders.DAI,
398
- // '70000000000000000000',
399
- // SwapSide.SELL,
400
- // dexKey,
401
- // ContractMethod.multiSwap,
402
- // network,
403
- // provider,
404
- // );
405
- // });
406
- // it('Dfyn TOKEN -> TOKEN', async () => {
407
- // await testE2E(
408
- // tokens.DAI,
409
- // tokens.USDT,
410
- // holders.DAI,
411
- // '70000000000000000000',
412
- // SwapSide.SELL,
413
- // dexKey,
414
- // ContractMethod.multiSwap,
415
- // network,
416
- // provider,
417
- // );
418
- // });
419
- // });
420
- });
421
-
422
- describe('ComethSwap', () => {
423
- const dexKey = 'ComethSwap';
424
-
425
- describe('Cometh Simpleswap', () => {
426
- it('Cometh MATIC -> TOKEN', async () => {
427
- await testE2E(
428
- tokens.MATIC,
429
- tokens.MUST,
430
- holders.MATIC,
431
- '70000000000000000000',
432
- SwapSide.SELL,
433
- dexKey,
434
- ContractMethod.simpleSwap,
435
- network,
436
- provider,
437
- );
438
- });
439
- it('Cometh TOKEN -> MATIC', async () => {
440
- await testE2E(
441
- tokens.MUST,
442
- tokens.MATIC,
443
- holders.MUST,
444
- '7000000000000000000',
445
- SwapSide.SELL,
446
- dexKey,
447
- ContractMethod.simpleSwap,
448
- network,
449
- provider,
450
- );
451
- });
452
- it('Cometh TOKEN -> TOKEN', async () => {
453
- await testE2E(
454
- tokens.WMATIC,
455
- tokens.MUST,
456
- holders.WMATIC,
457
- '7000000000000000000',
458
- SwapSide.SELL,
459
- dexKey,
460
- ContractMethod.simpleSwap,
461
- network,
462
- provider,
463
- );
464
- });
465
- });
466
-
467
- describe('Multiswap', () => {
468
- it('Cometh MATIC -> TOKEN', async () => {
469
- await testE2E(
470
- tokens.MATIC,
471
- tokens.MUST,
472
- holders.MATIC,
473
- '7000000000000000000',
474
- SwapSide.SELL,
475
- dexKey,
476
- ContractMethod.multiSwap,
477
- network,
478
- provider,
479
- );
480
- });
481
- it('Cometh TOKEN -> MATIC', async () => {
482
- await testE2E(
483
- tokens.MUST,
484
- tokens.MATIC,
485
- holders.MUST,
486
- '5000000000000000000',
487
- SwapSide.SELL,
488
- dexKey,
489
- ContractMethod.multiSwap,
490
- network,
491
- provider,
492
- );
493
- });
494
- it('Cometh TOKEN -> TOKEN', async () => {
495
- await testE2E(
496
- tokens.WMATIC,
497
- tokens.MUST,
498
- holders.WMATIC,
499
- '7000000000000000000',
500
- SwapSide.SELL,
501
- dexKey,
502
- ContractMethod.multiSwap,
503
- network,
504
- provider,
505
- );
506
- });
507
- });
508
- });
509
-
510
- describe('WaultFinance', () => {
511
- const dexKey = 'WaultFinance';
512
-
513
- describe('Simpleswap', () => {
514
- it('USDC -> MATIC', async () => {
515
- await testE2E(
516
- tokens.USDC,
517
- tokens.MATIC,
518
- holders.USDC,
519
- '100000000',
520
- SwapSide.SELL,
521
- dexKey,
522
- ContractMethod.simpleSwap,
523
- network,
524
- provider,
525
- );
526
- });
527
- it('USDT -> USDC', async () => {
528
- await testE2E(
529
- tokens.USDT,
530
- tokens.USDC,
531
- holders.USDT,
532
- '1000000000',
533
- SwapSide.SELL,
534
- dexKey,
535
- ContractMethod.simpleSwap,
536
- network,
537
- provider,
538
- );
539
- });
540
- it('MATIC -> USDC', async () => {
541
- await testE2E(
542
- tokens.MATIC,
543
- tokens.USDC,
544
- holders.MATIC,
545
- '100000000000000000000',
546
- SwapSide.SELL,
547
- dexKey,
548
- ContractMethod.simpleSwap,
549
- network,
550
- provider,
551
- );
552
- });
553
- });
554
- describe('SimpleBuy', () => {
555
- it('USDC -> MATIC', async () => {
556
- await testE2E(
557
- tokens.USDC,
558
- tokens.MATIC,
559
- holders.USDC,
560
- '100000000000000000000',
561
- SwapSide.BUY,
562
- dexKey,
563
- ContractMethod.simpleBuy,
564
- network,
565
- provider,
566
- );
567
- });
568
- it('USDT -> USDC', async () => {
569
- await testE2E(
570
- tokens.USDT,
571
- tokens.USDC,
572
- holders.USDT,
573
- '1000000000',
574
- SwapSide.BUY,
575
- dexKey,
576
- ContractMethod.simpleBuy,
577
- network,
578
- provider,
579
- );
580
- });
581
- it('MATIC -> USDC', async () => {
582
- await testE2E(
583
- tokens.MATIC,
584
- tokens.USDC,
585
- holders.MATIC,
586
- '10000000',
587
- SwapSide.BUY,
588
- dexKey,
589
- ContractMethod.simpleBuy,
590
- network,
591
- provider,
592
- );
593
- });
594
- });
595
- describe('MultiSwap', () => {
596
- it('USDC -> MATIC', async () => {
597
- await testE2E(
598
- tokens.USDC,
599
- tokens.MATIC,
600
- holders.USDC,
601
- '1000000000',
602
- SwapSide.SELL,
603
- dexKey,
604
- ContractMethod.multiSwap,
605
- network,
606
- provider,
607
- );
608
- });
609
- it('USDT -> USDC', async () => {
610
- await testE2E(
611
- tokens.USDT,
612
- tokens.USDC,
613
- holders.USDT,
614
- '1000000000',
615
- SwapSide.SELL,
616
- dexKey,
617
- ContractMethod.multiSwap,
618
- network,
619
- provider,
620
- );
621
- });
622
- it('MATIC -> USDC', async () => {
623
- await testE2E(
624
- tokens.MATIC,
625
- tokens.USDC,
626
- holders.MATIC,
627
- '100000000000000000000',
628
- SwapSide.SELL,
629
- dexKey,
630
- ContractMethod.multiSwap,
631
- network,
632
- provider,
633
- );
634
- });
635
- });
636
- describe('MegaSwap', () => {
637
- it('USDT -> USDC', async () => {
638
- await testE2E(
639
- tokens.USDT,
640
- tokens.USDC,
641
- holders.USDT,
642
- '1000000000',
643
- SwapSide.SELL,
644
- dexKey,
645
- ContractMethod.megaSwap,
646
- network,
647
- provider,
648
- );
649
- });
650
- });
651
- });
652
-
653
- describe('ApeSwap', () => {
654
- const dexKey = 'ApeSwap';
655
-
656
- describe('Simpleswap', () => {
657
- it('MATIC -> WETH', async () => {
658
- await testE2E(
659
- tokens.MATIC,
660
- tokens.WETH,
661
- holders.MATIC,
662
- '7000000000000000000',
663
- SwapSide.SELL,
664
- dexKey,
665
- ContractMethod.simpleSwap,
666
- network,
667
- provider,
668
- );
669
- });
670
- it('DAI -> MATIC', async () => {
671
- await testE2E(
672
- tokens.DAI,
673
- tokens.MATIC,
674
- holders.DAI,
675
- '700000000000000000000',
676
- SwapSide.SELL,
677
- dexKey,
678
- ContractMethod.simpleSwap,
679
- network,
680
- provider,
681
- );
682
- });
683
- it('DAI -> USDC', async () => {
684
- await testE2E(
685
- tokens.DAI,
686
- tokens.USDC,
687
- holders.DAI,
688
- '7000000000000000000000',
689
- SwapSide.SELL,
690
- dexKey,
691
- ContractMethod.simpleSwap,
692
- network,
693
- provider,
694
- );
695
- });
696
- });
697
- describe('SimpleBuy', () => {
698
- it('USDC -> MATIC', async () => {
699
- await testE2E(
700
- tokens.USDC,
701
- tokens.MATIC,
702
- holders.USDC,
703
- '100000000000000000000',
704
- SwapSide.BUY,
705
- dexKey,
706
- ContractMethod.simpleBuy,
707
- network,
708
- provider,
709
- );
710
- });
711
- it('USDC -> DAI', async () => {
712
- await testE2E(
713
- tokens.USDC,
714
- tokens.DAI,
715
- holders.USDC,
716
- '100000000000000000000',
717
- SwapSide.BUY,
718
- dexKey,
719
- ContractMethod.simpleBuy,
720
- network,
721
- provider,
722
- );
723
- });
724
- it('MATIC -> USDC', async () => {
725
- await testE2E(
726
- tokens.MATIC,
727
- tokens.USDC,
728
- holders.MATIC,
729
- '10000000',
730
- SwapSide.BUY,
731
- dexKey,
732
- ContractMethod.simpleBuy,
733
- network,
734
- provider,
735
- );
736
- });
737
- });
738
- describe('MultiSwap', () => {
739
- it('USDC -> MATIC', async () => {
740
- await testE2E(
741
- tokens.USDC,
742
- tokens.MATIC,
743
- holders.USDC,
744
- '1000000000',
745
- SwapSide.SELL,
746
- dexKey,
747
- ContractMethod.multiSwap,
748
- network,
749
- provider,
750
- );
751
- });
752
- it('DAI -> USDC', async () => {
753
- await testE2E(
754
- tokens.DAI,
755
- tokens.USDC,
756
- holders.DAI,
757
- '700000000000000000000',
758
- SwapSide.SELL,
759
- dexKey,
760
- ContractMethod.multiSwap,
761
- network,
762
- provider,
763
- );
764
- });
765
- it('MATIC -> USDC', async () => {
766
- await testE2E(
767
- tokens.MATIC,
768
- tokens.USDC,
769
- holders.MATIC,
770
- '100000000000000000000',
771
- SwapSide.SELL,
772
- dexKey,
773
- ContractMethod.multiSwap,
774
- network,
775
- provider,
776
- );
777
- });
778
- });
779
- describe('MegaSwap', () => {
780
- it('DAI -> USDC', async () => {
781
- await testE2E(
782
- tokens.DAI,
783
- tokens.USDC,
784
- holders.DAI,
785
- '7000000000000000000000',
786
- SwapSide.SELL,
787
- dexKey,
788
- ContractMethod.megaSwap,
789
- network,
790
- provider,
791
- );
792
- });
793
- });
794
- });
795
-
796
- describe(`Swapsicle`, () => {
797
- const dexKey = 'Swapsicle';
798
-
799
- const sideToContractMethods = new Map([
800
- [
801
- SwapSide.SELL,
802
- [
803
- ContractMethod.simpleSwap,
804
- ContractMethod.multiSwap,
805
- ContractMethod.megaSwap,
806
- ],
807
- ],
808
- [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
809
- ]);
810
-
811
- const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
812
- [
813
- { name: 'MATIC', sellAmount: '100000000000000000', buyAmount: '1000' },
814
- { name: 'USDC', sellAmount: '10000000', buyAmount: '1000' },
815
- ],
816
- [
817
- { name: 'MATIC', sellAmount: '1000000000', buyAmount: '1000' },
818
- { name: 'DAI', sellAmount: '50000', buyAmount: '1000000000' },
819
- ],
820
- [
821
- { name: 'MATIC', sellAmount: '100000000000000000', buyAmount: '1000' },
822
- { name: 'USDT', sellAmount: '100000000', buyAmount: '1000' },
823
- ],
824
- [
825
- { name: 'MATIC', sellAmount: '10000000', buyAmount: '1000' },
826
- { name: 'POPS', sellAmount: '8000000', buyAmount: '1000' },
827
- ],
828
- ];
829
-
830
- sideToContractMethods.forEach((contractMethods, side) =>
831
- describe(`${side}`, () => {
832
- contractMethods.forEach((contractMethod: ContractMethod) => {
833
- pairs.forEach(pair => {
834
- describe(`${contractMethod}`, () => {
835
- it(`${pair[0].name} -> ${pair[1].name}`, async () => {
836
- await testE2E(
837
- tokens[pair[0].name],
838
- tokens[pair[1].name],
839
- holders[pair[0].name],
840
- side === SwapSide.SELL
841
- ? pair[0].sellAmount
842
- : pair[0].buyAmount,
843
- side,
844
- dexKey,
845
- contractMethod,
846
- network,
847
- provider,
848
- );
849
- });
850
- it(`${pair[1].name} -> ${pair[0].name}`, async () => {
851
- await testE2E(
852
- tokens[pair[1].name],
853
- tokens[pair[0].name],
854
- holders[pair[1].name],
855
- side === SwapSide.SELL
856
- ? pair[1].sellAmount
857
- : pair[1].buyAmount,
858
- side,
859
- dexKey,
860
- contractMethod,
861
- network,
862
- provider,
863
- );
864
- });
865
- });
866
- });
867
- });
868
- }),
869
- );
870
- });
871
- });
1
+ import dotenv from 'dotenv';
2
+ dotenv.config();
3
+
4
+ import { testE2E } from '../../../tests/utils-e2e';
5
+ import { Holders, Tokens } from '../../../tests/constants-e2e';
6
+ import { ContractMethod, Network, SwapSide } from '../../constants';
7
+ import { StaticJsonRpcProvider } from '@ethersproject/providers';
8
+ import { generateConfig } from '../../config';
9
+
10
+ describe('UniswapV2 E2E Polygon', () => {
11
+ const network = Network.POLYGON;
12
+ const tokens = Tokens[network];
13
+ const holders = Holders[network];
14
+ const provider = new StaticJsonRpcProvider(
15
+ generateConfig(network).privateHttpProvider,
16
+ network,
17
+ );
18
+
19
+ describe('QuickSwap_V6', () => {
20
+ const dexKey = 'QuickSwap';
21
+
22
+ describe('SELL', () => {
23
+ it('MATIC -> WETH', async () => {
24
+ await testE2E(
25
+ tokens.MATIC,
26
+ tokens.WETH,
27
+ holders.MATIC,
28
+ '70000000000000000000',
29
+ SwapSide.SELL,
30
+ dexKey,
31
+ ContractMethod.swapExactAmountIn,
32
+ network,
33
+ provider,
34
+ );
35
+ });
36
+ it('WETH -> MATIC', async () => {
37
+ await testE2E(
38
+ tokens.WETH,
39
+ tokens.MATIC,
40
+ holders.WETH,
41
+ '10000000000000000',
42
+ SwapSide.SELL,
43
+ dexKey,
44
+ ContractMethod.swapExactAmountIn,
45
+ network,
46
+ provider,
47
+ );
48
+ });
49
+ it('DAI -> USDC', async () => {
50
+ await testE2E(
51
+ tokens.DAI,
52
+ tokens.USDC,
53
+ holders.DAI,
54
+ '100000000000000000000',
55
+ SwapSide.SELL,
56
+ dexKey,
57
+ ContractMethod.swapExactAmountIn,
58
+ network,
59
+ provider,
60
+ );
61
+ });
62
+ it('AAVE -> PSP', async () => {
63
+ await testE2E(
64
+ tokens.AAVE,
65
+ tokens.PSP,
66
+ holders.AAVE,
67
+ '100000000000000000000',
68
+ SwapSide.SELL,
69
+ dexKey,
70
+ ContractMethod.swapExactAmountIn,
71
+ network,
72
+ provider,
73
+ );
74
+ });
75
+ });
76
+ describe('BUY', () => {
77
+ it('MATIC -> WETH', async () => {
78
+ await testE2E(
79
+ tokens.MATIC,
80
+ tokens.WETH,
81
+ holders.MATIC,
82
+ '70000000000000000000',
83
+ SwapSide.BUY,
84
+ dexKey,
85
+ ContractMethod.swapExactAmountOut,
86
+ network,
87
+ provider,
88
+ );
89
+ });
90
+ it('WETH -> MATIC', async () => {
91
+ await testE2E(
92
+ tokens.WETH,
93
+ tokens.MATIC,
94
+ holders.WETH,
95
+ '10000000000000000',
96
+ SwapSide.BUY,
97
+ dexKey,
98
+ ContractMethod.swapExactAmountOut,
99
+ network,
100
+ provider,
101
+ );
102
+ });
103
+ it('USDT -> USDC', async () => {
104
+ await testE2E(
105
+ tokens.USDT,
106
+ tokens.USDC,
107
+ holders.USDT,
108
+ '100000',
109
+ SwapSide.BUY,
110
+ dexKey,
111
+ ContractMethod.swapExactAmountOut,
112
+ network,
113
+ provider,
114
+ );
115
+ });
116
+ });
117
+ });
118
+ describe('SafeSwap', () => {
119
+ const dexKey = 'SafeSwap';
120
+
121
+ describe('Simpleswap', () => {
122
+ it('MATIC -> TOKEN', async () => {
123
+ await testE2E(
124
+ tokens.MATIC,
125
+ tokens.WETH,
126
+ holders.MATIC,
127
+ '70000000000000000000',
128
+ SwapSide.SELL,
129
+ dexKey,
130
+ ContractMethod.simpleSwap,
131
+ network,
132
+ provider,
133
+ );
134
+ });
135
+ it('TOKEN -> MATIC', async () => {
136
+ await testE2E(
137
+ tokens.WETH,
138
+ tokens.MATIC,
139
+ holders.WETH,
140
+ '10000000000000000',
141
+ SwapSide.SELL,
142
+ dexKey,
143
+ ContractMethod.simpleSwap,
144
+ network,
145
+ provider,
146
+ );
147
+ });
148
+ it('TOKEN -> TOKEN', async () => {
149
+ await testE2E(
150
+ tokens.DAI,
151
+ tokens.USDC,
152
+ holders.DAI,
153
+ '100000000000000000000',
154
+ SwapSide.SELL,
155
+ dexKey,
156
+ ContractMethod.simpleSwap,
157
+ network,
158
+ provider,
159
+ );
160
+ });
161
+ });
162
+ describe('Multi', () => {
163
+ it('MATIC -> TOKEN', async () => {
164
+ await testE2E(
165
+ tokens.MATIC,
166
+ tokens.WETH,
167
+ holders.MATIC,
168
+ '7000000000000000000',
169
+ SwapSide.SELL,
170
+ dexKey,
171
+ ContractMethod.multiSwap,
172
+ network,
173
+ provider,
174
+ );
175
+ });
176
+ it('TOKEN -> MATIC', async () => {
177
+ await testE2E(
178
+ tokens.WETH,
179
+ tokens.MATIC,
180
+ holders.WETH,
181
+ '10000000000000000',
182
+ SwapSide.SELL,
183
+ dexKey,
184
+ ContractMethod.multiSwap,
185
+ network,
186
+ provider,
187
+ );
188
+ });
189
+ it('TOKEN -> TOKEN', async () => {
190
+ await testE2E(
191
+ tokens.DAI,
192
+ tokens.USDC,
193
+ holders.DAI,
194
+ '100000000000000000000',
195
+ SwapSide.SELL,
196
+ dexKey,
197
+ ContractMethod.multiSwap,
198
+ network,
199
+ provider,
200
+ );
201
+ });
202
+ });
203
+ describe('Mega', () => {
204
+ it('MATIC -> TOKEN', async () => {
205
+ await testE2E(
206
+ tokens.MATIC,
207
+ tokens.WETH,
208
+ holders.MATIC,
209
+ '7000000000000000000',
210
+ SwapSide.SELL,
211
+ dexKey,
212
+ ContractMethod.megaSwap,
213
+ network,
214
+ provider,
215
+ );
216
+ });
217
+ it('TOKEN -> MATIC', async () => {
218
+ await testE2E(
219
+ tokens.WETH,
220
+ tokens.MATIC,
221
+ holders.WETH,
222
+ '10000000000000000',
223
+ SwapSide.SELL,
224
+ dexKey,
225
+ ContractMethod.megaSwap,
226
+ network,
227
+ provider,
228
+ );
229
+ });
230
+ it('TOKEN -> TOKEN', async () => {
231
+ await testE2E(
232
+ tokens.DAI,
233
+ tokens.USDC,
234
+ holders.DAI,
235
+ '100000000000000000000',
236
+ SwapSide.SELL,
237
+ dexKey,
238
+ ContractMethod.megaSwap,
239
+ network,
240
+ provider,
241
+ );
242
+ });
243
+ });
244
+ });
245
+
246
+ describe('Sushiswap', () => {
247
+ const dexKey = 'SushiSwap';
248
+
249
+ describe('Simpleswap', () => {
250
+ it('Sushiswap MATIC -> TOKEN', async () => {
251
+ await testE2E(
252
+ tokens.MATIC,
253
+ tokens.WETH,
254
+ holders.MATIC,
255
+ '7000000000000000000',
256
+ SwapSide.SELL,
257
+ dexKey,
258
+ ContractMethod.simpleSwap,
259
+ network,
260
+ provider,
261
+ );
262
+ });
263
+ it('Sushiswap TOKEN -> MATIC', async () => {
264
+ await testE2E(
265
+ tokens.DAI,
266
+ tokens.MATIC,
267
+ holders.DAI,
268
+ '700000000000000000000',
269
+ SwapSide.SELL,
270
+ dexKey,
271
+ ContractMethod.simpleSwap,
272
+ network,
273
+ provider,
274
+ );
275
+ });
276
+ it('Sushiswap TOKEN -> TOKEN', async () => {
277
+ await testE2E(
278
+ tokens.WMATIC,
279
+ tokens.WETH,
280
+ holders.WMATIC,
281
+ '7000000000000000000',
282
+ SwapSide.SELL,
283
+ dexKey,
284
+ ContractMethod.simpleSwap,
285
+ network,
286
+ provider,
287
+ );
288
+ });
289
+ });
290
+
291
+ describe('Multiswap', () => {
292
+ it('Sushiswap MATIC -> TOKEN', async () => {
293
+ await testE2E(
294
+ tokens.MATIC,
295
+ tokens.WETH,
296
+ holders.MATIC,
297
+ '7000000000000000000',
298
+ SwapSide.SELL,
299
+ dexKey,
300
+ ContractMethod.multiSwap,
301
+ network,
302
+ provider,
303
+ );
304
+ });
305
+ it('Sushiswap TOKEN -> MATIC', async () => {
306
+ await testE2E(
307
+ tokens.DAI,
308
+ tokens.MATIC,
309
+ holders.DAI,
310
+ '700000000000000000000',
311
+ SwapSide.SELL,
312
+ dexKey,
313
+ ContractMethod.multiSwap,
314
+ network,
315
+ provider,
316
+ );
317
+ });
318
+ it('Sushiswap TOKEN -> TOKEN', async () => {
319
+ await testE2E(
320
+ tokens.DAI,
321
+ tokens.WMATIC,
322
+ holders.DAI,
323
+ '70000000000000000000',
324
+ SwapSide.SELL,
325
+ dexKey,
326
+ ContractMethod.multiSwap,
327
+ network,
328
+ provider,
329
+ );
330
+ });
331
+ });
332
+ });
333
+
334
+ describe('Dfyn_V6', () => {
335
+ const dexKey = 'Dfyn';
336
+
337
+ describe('swapExactAmountIn', () => {
338
+ it('Dfyn MATIC -> TOKEN', async () => {
339
+ await testE2E(
340
+ tokens.MATIC,
341
+ tokens.WETH,
342
+ holders.MATIC,
343
+ '7000000000000000000',
344
+ SwapSide.SELL,
345
+ dexKey,
346
+ ContractMethod.swapExactAmountIn,
347
+ network,
348
+ provider,
349
+ );
350
+ });
351
+ it('Dfyn TOKEN -> MATIC', async () => {
352
+ await testE2E(
353
+ tokens.DAI,
354
+ tokens.MATIC,
355
+ holders.DAI,
356
+ '7000000000000000000',
357
+ SwapSide.SELL,
358
+ dexKey,
359
+ ContractMethod.swapExactAmountIn,
360
+ network,
361
+ provider,
362
+ );
363
+ });
364
+ it('Dfyn TOKEN -> TOKEN', async () => {
365
+ await testE2E(
366
+ tokens.DAI,
367
+ tokens.USDT,
368
+ holders.DAI,
369
+ '7000000000000000000',
370
+ SwapSide.SELL,
371
+ dexKey,
372
+ ContractMethod.swapExactAmountIn,
373
+ network,
374
+ provider,
375
+ );
376
+ });
377
+ });
378
+
379
+ // describe('Multiswap', () => {
380
+ // it('Dfyn MATIC -> TOKEN', async () => {
381
+ // await testE2E(
382
+ // tokens.MATIC,
383
+ // tokens.WETH,
384
+ // holders.MATIC,
385
+ // '7000000000000000000',
386
+ // SwapSide.SELL,
387
+ // dexKey,
388
+ // ContractMethod.multiSwap,
389
+ // network,
390
+ // provider,
391
+ // );
392
+ // });
393
+ // it('Dfyn TOKEN -> MATIC', async () => {
394
+ // await testE2E(
395
+ // tokens.DAI,
396
+ // tokens.MATIC,
397
+ // holders.DAI,
398
+ // '70000000000000000000',
399
+ // SwapSide.SELL,
400
+ // dexKey,
401
+ // ContractMethod.multiSwap,
402
+ // network,
403
+ // provider,
404
+ // );
405
+ // });
406
+ // it('Dfyn TOKEN -> TOKEN', async () => {
407
+ // await testE2E(
408
+ // tokens.DAI,
409
+ // tokens.USDT,
410
+ // holders.DAI,
411
+ // '70000000000000000000',
412
+ // SwapSide.SELL,
413
+ // dexKey,
414
+ // ContractMethod.multiSwap,
415
+ // network,
416
+ // provider,
417
+ // );
418
+ // });
419
+ // });
420
+ });
421
+
422
+ describe('ComethSwap', () => {
423
+ const dexKey = 'ComethSwap';
424
+
425
+ describe('Cometh Simpleswap', () => {
426
+ it('Cometh MATIC -> TOKEN', async () => {
427
+ await testE2E(
428
+ tokens.MATIC,
429
+ tokens.MUST,
430
+ holders.MATIC,
431
+ '70000000000000000000',
432
+ SwapSide.SELL,
433
+ dexKey,
434
+ ContractMethod.simpleSwap,
435
+ network,
436
+ provider,
437
+ );
438
+ });
439
+ it('Cometh TOKEN -> MATIC', async () => {
440
+ await testE2E(
441
+ tokens.MUST,
442
+ tokens.MATIC,
443
+ holders.MUST,
444
+ '7000000000000000000',
445
+ SwapSide.SELL,
446
+ dexKey,
447
+ ContractMethod.simpleSwap,
448
+ network,
449
+ provider,
450
+ );
451
+ });
452
+ it('Cometh TOKEN -> TOKEN', async () => {
453
+ await testE2E(
454
+ tokens.WMATIC,
455
+ tokens.MUST,
456
+ holders.WMATIC,
457
+ '7000000000000000000',
458
+ SwapSide.SELL,
459
+ dexKey,
460
+ ContractMethod.simpleSwap,
461
+ network,
462
+ provider,
463
+ );
464
+ });
465
+ });
466
+
467
+ describe('Multiswap', () => {
468
+ it('Cometh MATIC -> TOKEN', async () => {
469
+ await testE2E(
470
+ tokens.MATIC,
471
+ tokens.MUST,
472
+ holders.MATIC,
473
+ '7000000000000000000',
474
+ SwapSide.SELL,
475
+ dexKey,
476
+ ContractMethod.multiSwap,
477
+ network,
478
+ provider,
479
+ );
480
+ });
481
+ it('Cometh TOKEN -> MATIC', async () => {
482
+ await testE2E(
483
+ tokens.MUST,
484
+ tokens.MATIC,
485
+ holders.MUST,
486
+ '5000000000000000000',
487
+ SwapSide.SELL,
488
+ dexKey,
489
+ ContractMethod.multiSwap,
490
+ network,
491
+ provider,
492
+ );
493
+ });
494
+ it('Cometh TOKEN -> TOKEN', async () => {
495
+ await testE2E(
496
+ tokens.WMATIC,
497
+ tokens.MUST,
498
+ holders.WMATIC,
499
+ '7000000000000000000',
500
+ SwapSide.SELL,
501
+ dexKey,
502
+ ContractMethod.multiSwap,
503
+ network,
504
+ provider,
505
+ );
506
+ });
507
+ });
508
+ });
509
+
510
+ describe('WaultFinance', () => {
511
+ const dexKey = 'WaultFinance';
512
+
513
+ describe('Simpleswap', () => {
514
+ it('USDC -> MATIC', async () => {
515
+ await testE2E(
516
+ tokens.USDC,
517
+ tokens.MATIC,
518
+ holders.USDC,
519
+ '100000000',
520
+ SwapSide.SELL,
521
+ dexKey,
522
+ ContractMethod.simpleSwap,
523
+ network,
524
+ provider,
525
+ );
526
+ });
527
+ it('USDT -> USDC', async () => {
528
+ await testE2E(
529
+ tokens.USDT,
530
+ tokens.USDC,
531
+ holders.USDT,
532
+ '1000000000',
533
+ SwapSide.SELL,
534
+ dexKey,
535
+ ContractMethod.simpleSwap,
536
+ network,
537
+ provider,
538
+ );
539
+ });
540
+ it('MATIC -> USDC', async () => {
541
+ await testE2E(
542
+ tokens.MATIC,
543
+ tokens.USDC,
544
+ holders.MATIC,
545
+ '100000000000000000000',
546
+ SwapSide.SELL,
547
+ dexKey,
548
+ ContractMethod.simpleSwap,
549
+ network,
550
+ provider,
551
+ );
552
+ });
553
+ });
554
+ describe('SimpleBuy', () => {
555
+ it('USDC -> MATIC', async () => {
556
+ await testE2E(
557
+ tokens.USDC,
558
+ tokens.MATIC,
559
+ holders.USDC,
560
+ '100000000000000000000',
561
+ SwapSide.BUY,
562
+ dexKey,
563
+ ContractMethod.simpleBuy,
564
+ network,
565
+ provider,
566
+ );
567
+ });
568
+ it('USDT -> USDC', async () => {
569
+ await testE2E(
570
+ tokens.USDT,
571
+ tokens.USDC,
572
+ holders.USDT,
573
+ '1000000000',
574
+ SwapSide.BUY,
575
+ dexKey,
576
+ ContractMethod.simpleBuy,
577
+ network,
578
+ provider,
579
+ );
580
+ });
581
+ it('MATIC -> USDC', async () => {
582
+ await testE2E(
583
+ tokens.MATIC,
584
+ tokens.USDC,
585
+ holders.MATIC,
586
+ '10000000',
587
+ SwapSide.BUY,
588
+ dexKey,
589
+ ContractMethod.simpleBuy,
590
+ network,
591
+ provider,
592
+ );
593
+ });
594
+ });
595
+ describe('MultiSwap', () => {
596
+ it('USDC -> MATIC', async () => {
597
+ await testE2E(
598
+ tokens.USDC,
599
+ tokens.MATIC,
600
+ holders.USDC,
601
+ '1000000000',
602
+ SwapSide.SELL,
603
+ dexKey,
604
+ ContractMethod.multiSwap,
605
+ network,
606
+ provider,
607
+ );
608
+ });
609
+ it('USDT -> USDC', async () => {
610
+ await testE2E(
611
+ tokens.USDT,
612
+ tokens.USDC,
613
+ holders.USDT,
614
+ '1000000000',
615
+ SwapSide.SELL,
616
+ dexKey,
617
+ ContractMethod.multiSwap,
618
+ network,
619
+ provider,
620
+ );
621
+ });
622
+ it('MATIC -> USDC', async () => {
623
+ await testE2E(
624
+ tokens.MATIC,
625
+ tokens.USDC,
626
+ holders.MATIC,
627
+ '100000000000000000000',
628
+ SwapSide.SELL,
629
+ dexKey,
630
+ ContractMethod.multiSwap,
631
+ network,
632
+ provider,
633
+ );
634
+ });
635
+ });
636
+ describe('MegaSwap', () => {
637
+ it('USDT -> USDC', async () => {
638
+ await testE2E(
639
+ tokens.USDT,
640
+ tokens.USDC,
641
+ holders.USDT,
642
+ '1000000000',
643
+ SwapSide.SELL,
644
+ dexKey,
645
+ ContractMethod.megaSwap,
646
+ network,
647
+ provider,
648
+ );
649
+ });
650
+ });
651
+ });
652
+
653
+ describe('ApeSwap', () => {
654
+ const dexKey = 'ApeSwap';
655
+
656
+ describe('Simpleswap', () => {
657
+ it('MATIC -> WETH', async () => {
658
+ await testE2E(
659
+ tokens.MATIC,
660
+ tokens.WETH,
661
+ holders.MATIC,
662
+ '7000000000000000000',
663
+ SwapSide.SELL,
664
+ dexKey,
665
+ ContractMethod.simpleSwap,
666
+ network,
667
+ provider,
668
+ );
669
+ });
670
+ it('DAI -> MATIC', async () => {
671
+ await testE2E(
672
+ tokens.DAI,
673
+ tokens.MATIC,
674
+ holders.DAI,
675
+ '700000000000000000000',
676
+ SwapSide.SELL,
677
+ dexKey,
678
+ ContractMethod.simpleSwap,
679
+ network,
680
+ provider,
681
+ );
682
+ });
683
+ it('DAI -> USDC', async () => {
684
+ await testE2E(
685
+ tokens.DAI,
686
+ tokens.USDC,
687
+ holders.DAI,
688
+ '7000000000000000000000',
689
+ SwapSide.SELL,
690
+ dexKey,
691
+ ContractMethod.simpleSwap,
692
+ network,
693
+ provider,
694
+ );
695
+ });
696
+ });
697
+ describe('SimpleBuy', () => {
698
+ it('USDC -> MATIC', async () => {
699
+ await testE2E(
700
+ tokens.USDC,
701
+ tokens.MATIC,
702
+ holders.USDC,
703
+ '100000000000000000000',
704
+ SwapSide.BUY,
705
+ dexKey,
706
+ ContractMethod.simpleBuy,
707
+ network,
708
+ provider,
709
+ );
710
+ });
711
+ it('USDC -> DAI', async () => {
712
+ await testE2E(
713
+ tokens.USDC,
714
+ tokens.DAI,
715
+ holders.USDC,
716
+ '100000000000000000000',
717
+ SwapSide.BUY,
718
+ dexKey,
719
+ ContractMethod.simpleBuy,
720
+ network,
721
+ provider,
722
+ );
723
+ });
724
+ it('MATIC -> USDC', async () => {
725
+ await testE2E(
726
+ tokens.MATIC,
727
+ tokens.USDC,
728
+ holders.MATIC,
729
+ '10000000',
730
+ SwapSide.BUY,
731
+ dexKey,
732
+ ContractMethod.simpleBuy,
733
+ network,
734
+ provider,
735
+ );
736
+ });
737
+ });
738
+ describe('MultiSwap', () => {
739
+ it('USDC -> MATIC', async () => {
740
+ await testE2E(
741
+ tokens.USDC,
742
+ tokens.MATIC,
743
+ holders.USDC,
744
+ '1000000000',
745
+ SwapSide.SELL,
746
+ dexKey,
747
+ ContractMethod.multiSwap,
748
+ network,
749
+ provider,
750
+ );
751
+ });
752
+ it('DAI -> USDC', async () => {
753
+ await testE2E(
754
+ tokens.DAI,
755
+ tokens.USDC,
756
+ holders.DAI,
757
+ '700000000000000000000',
758
+ SwapSide.SELL,
759
+ dexKey,
760
+ ContractMethod.multiSwap,
761
+ network,
762
+ provider,
763
+ );
764
+ });
765
+ it('MATIC -> USDC', async () => {
766
+ await testE2E(
767
+ tokens.MATIC,
768
+ tokens.USDC,
769
+ holders.MATIC,
770
+ '100000000000000000000',
771
+ SwapSide.SELL,
772
+ dexKey,
773
+ ContractMethod.multiSwap,
774
+ network,
775
+ provider,
776
+ );
777
+ });
778
+ });
779
+ describe('MegaSwap', () => {
780
+ it('DAI -> USDC', async () => {
781
+ await testE2E(
782
+ tokens.DAI,
783
+ tokens.USDC,
784
+ holders.DAI,
785
+ '7000000000000000000000',
786
+ SwapSide.SELL,
787
+ dexKey,
788
+ ContractMethod.megaSwap,
789
+ network,
790
+ provider,
791
+ );
792
+ });
793
+ });
794
+ });
795
+
796
+ describe(`Swapsicle`, () => {
797
+ const dexKey = 'Swapsicle';
798
+
799
+ const sideToContractMethods = new Map([
800
+ [
801
+ SwapSide.SELL,
802
+ [
803
+ ContractMethod.simpleSwap,
804
+ ContractMethod.multiSwap,
805
+ ContractMethod.megaSwap,
806
+ ],
807
+ ],
808
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
809
+ ]);
810
+
811
+ const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
812
+ [
813
+ { name: 'MATIC', sellAmount: '100000000000000000', buyAmount: '1000' },
814
+ { name: 'USDC', sellAmount: '10000000', buyAmount: '1000' },
815
+ ],
816
+ [
817
+ { name: 'MATIC', sellAmount: '1000000000', buyAmount: '1000' },
818
+ { name: 'DAI', sellAmount: '50000', buyAmount: '1000000000' },
819
+ ],
820
+ [
821
+ { name: 'MATIC', sellAmount: '100000000000000000', buyAmount: '1000' },
822
+ { name: 'USDT', sellAmount: '100000000', buyAmount: '1000' },
823
+ ],
824
+ [
825
+ { name: 'MATIC', sellAmount: '10000000', buyAmount: '1000' },
826
+ { name: 'POPS', sellAmount: '8000000', buyAmount: '1000' },
827
+ ],
828
+ ];
829
+
830
+ sideToContractMethods.forEach((contractMethods, side) =>
831
+ describe(`${side}`, () => {
832
+ contractMethods.forEach((contractMethod: ContractMethod) => {
833
+ pairs.forEach(pair => {
834
+ describe(`${contractMethod}`, () => {
835
+ it(`${pair[0].name} -> ${pair[1].name}`, async () => {
836
+ await testE2E(
837
+ tokens[pair[0].name],
838
+ tokens[pair[1].name],
839
+ holders[pair[0].name],
840
+ side === SwapSide.SELL
841
+ ? pair[0].sellAmount
842
+ : pair[0].buyAmount,
843
+ side,
844
+ dexKey,
845
+ contractMethod,
846
+ network,
847
+ provider,
848
+ );
849
+ });
850
+ it(`${pair[1].name} -> ${pair[0].name}`, async () => {
851
+ await testE2E(
852
+ tokens[pair[1].name],
853
+ tokens[pair[0].name],
854
+ holders[pair[1].name],
855
+ side === SwapSide.SELL
856
+ ? pair[1].sellAmount
857
+ : pair[1].buyAmount,
858
+ side,
859
+ dexKey,
860
+ contractMethod,
861
+ network,
862
+ provider,
863
+ );
864
+ });
865
+ });
866
+ });
867
+ });
868
+ }),
869
+ );
870
+ });
871
+ });