@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,1295 +1,1295 @@
1
- import dotenv from 'dotenv';
2
- dotenv.config();
3
-
4
- import { testE2E } from '../../../tests/utils-e2e';
5
- import {
6
- Tokens,
7
- Holders,
8
- NativeTokenSymbols,
9
- } from '../../../tests/constants-e2e';
10
- import { Network, ContractMethod, SwapSide } from '../../constants';
11
- import { StaticJsonRpcProvider } from '@ethersproject/providers';
12
- import { generateConfig } from '../../config';
13
-
14
- function testForNetwork(
15
- network: Network,
16
- dexKey: string,
17
- tokenASymbol: string,
18
- tokenBSymbol: string,
19
- tokenAAmount: string,
20
- tokenBAmount: string,
21
- nativeTokenAmount: string,
22
- slippage?: number | undefined,
23
- ) {
24
- const provider = new StaticJsonRpcProvider(
25
- generateConfig(network).privateHttpProvider,
26
- network,
27
- );
28
- const tokens = Tokens[network];
29
- const holders = Holders[network];
30
- const nativeTokenSymbol = NativeTokenSymbols[network];
31
-
32
- const sideToContractMethods = new Map([
33
- [
34
- SwapSide.SELL,
35
- [
36
- ContractMethod.simpleSwap,
37
- ContractMethod.multiSwap,
38
- ContractMethod.megaSwap,
39
- ],
40
- ],
41
- [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
42
- ]);
43
-
44
- describe(`${network}`, () => {
45
- sideToContractMethods.forEach((contractMethods, side) =>
46
- describe(`${side}`, () => {
47
- contractMethods.forEach((contractMethod: ContractMethod) => {
48
- describe(`${contractMethod}`, () => {
49
- it(`${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
50
- await testE2E(
51
- tokens[nativeTokenSymbol],
52
- tokens[tokenASymbol],
53
- holders[nativeTokenSymbol],
54
- side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
55
- side,
56
- dexKey,
57
- contractMethod,
58
- network,
59
- provider,
60
- undefined,
61
- undefined,
62
- undefined,
63
- slippage,
64
- );
65
- });
66
- it(`${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
67
- await testE2E(
68
- tokens[tokenASymbol],
69
- tokens[nativeTokenSymbol],
70
- holders[tokenASymbol],
71
- side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
72
- side,
73
- dexKey,
74
- contractMethod,
75
- network,
76
- provider,
77
- undefined,
78
- undefined,
79
- undefined,
80
- slippage,
81
- );
82
- });
83
- it(`${tokenASymbol} -> ${tokenBSymbol}`, async () => {
84
- await testE2E(
85
- tokens[tokenASymbol],
86
- tokens[tokenBSymbol],
87
- holders[tokenASymbol],
88
- side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
89
- side,
90
- dexKey,
91
- contractMethod,
92
- network,
93
- provider,
94
- undefined,
95
- undefined,
96
- undefined,
97
- slippage,
98
- );
99
- });
100
- });
101
- });
102
- }),
103
- );
104
- });
105
- }
106
-
107
- describe('UniswapV2 E2E BSC', () => {
108
- const network = Network.BSC;
109
- const tokens = Tokens[network];
110
- const holders = Holders[network];
111
- const provider = new StaticJsonRpcProvider(
112
- generateConfig(network).privateHttpProvider,
113
- network,
114
- );
115
-
116
- describe('PancakeSwapV2', () => {
117
- const dexKey = 'PancakeSwapV2';
118
-
119
- describe('Simpleswap', () => {
120
- it('Token -> TOKEN', async () => {
121
- await testE2E(
122
- tokens.DAI,
123
- tokens.BUSD,
124
- holders.DAI,
125
- '7000000000000000000000',
126
- SwapSide.SELL,
127
- dexKey,
128
- ContractMethod.simpleSwap,
129
- network,
130
- provider,
131
- );
132
- });
133
- });
134
-
135
- describe('Multiswap', () => {
136
- it('Token -> TOKEN', async () => {
137
- await testE2E(
138
- tokens.DAI,
139
- tokens.BUSD,
140
- holders.DAI,
141
- '7000000000000000000000',
142
- SwapSide.SELL,
143
- dexKey,
144
- ContractMethod.multiSwap,
145
- network,
146
- provider,
147
- );
148
- });
149
- });
150
-
151
- describe('BuyMethod', () => {
152
- it('Token -> TOKEN', async () => {
153
- await testE2E(
154
- tokens.DAI,
155
- tokens.BUSD,
156
- holders.DAI,
157
- '7000000000000000000000',
158
- SwapSide.BUY,
159
- dexKey,
160
- ContractMethod.buy,
161
- network,
162
- provider,
163
- );
164
- });
165
- });
166
- });
167
-
168
- describe('JulSwap', () => {
169
- const dexKey = 'JulSwap';
170
-
171
- describe('Simpleswap', () => {
172
- it('Token -> TOKEN', async () => {
173
- await testE2E(
174
- tokens.BUSD,
175
- tokens.WBNB,
176
- holders.BUSD,
177
- '7000000000000000000',
178
- SwapSide.SELL,
179
- dexKey,
180
- ContractMethod.simpleSwap,
181
- network,
182
- provider,
183
- );
184
- });
185
- });
186
-
187
- describe('Multiswap', () => {
188
- it('Token -> TOKEN', async () => {
189
- await testE2E(
190
- tokens.BUSD,
191
- tokens.WBNB,
192
- holders.BUSD,
193
- '7000000000000000000',
194
- SwapSide.SELL,
195
- dexKey,
196
- ContractMethod.multiSwap,
197
- network,
198
- provider,
199
- );
200
- });
201
- });
202
- });
203
-
204
- describe('ApeSwap', () => {
205
- const dexKey = 'ApeSwap';
206
-
207
- describe('Simpleswap', () => {
208
- it('Token -> TOKEN', async () => {
209
- await testE2E(
210
- tokens.DAI,
211
- tokens.BUSD,
212
- holders.DAI,
213
- '7000000000000000000000',
214
- SwapSide.SELL,
215
- dexKey,
216
- ContractMethod.simpleSwap,
217
- network,
218
- provider,
219
- );
220
- });
221
- });
222
-
223
- describe('Multiswap', () => {
224
- it('Token -> TOKEN', async () => {
225
- await testE2E(
226
- tokens.DAI,
227
- tokens.BUSD,
228
- holders.DAI,
229
- '7000000000000000000000',
230
- SwapSide.SELL,
231
- dexKey,
232
- ContractMethod.multiSwap,
233
- network,
234
- provider,
235
- );
236
- });
237
- });
238
- });
239
-
240
- describe('PancakeSwap', () => {
241
- const dexKey = 'PancakeSwap';
242
-
243
- describe('Simpleswap', () => {
244
- it('Token -> TOKEN', async () => {
245
- await testE2E(
246
- tokens.DAI,
247
- tokens.WBNB,
248
- holders.DAI,
249
- '70000000000000000000',
250
- SwapSide.SELL,
251
- dexKey,
252
- ContractMethod.simpleSwap,
253
- network,
254
- provider,
255
- );
256
- });
257
- });
258
-
259
- describe('Multiswap', () => {
260
- it('Token -> TOKEN', async () => {
261
- await testE2E(
262
- tokens.DAI,
263
- tokens.WBNB,
264
- holders.DAI,
265
- '7000000000000000000000',
266
- SwapSide.SELL,
267
- dexKey,
268
- ContractMethod.multiSwap,
269
- network,
270
- provider,
271
- );
272
- });
273
- });
274
- });
275
-
276
- describe('BakerySwap', () => {
277
- const dexKey = 'BakerySwap';
278
-
279
- describe('Bakery_V6', () => {
280
- it('Token -> TOKEN', async () => {
281
- await testE2E(
282
- tokens.USDT,
283
- tokens.BUSD,
284
- holders.USDT,
285
- '70000000000000000000',
286
- SwapSide.SELL,
287
- dexKey,
288
- ContractMethod.swapExactAmountIn,
289
- network,
290
- provider,
291
- );
292
- });
293
- });
294
-
295
- // describe('Simpleswap', () => {
296
- // it('Token -> TOKEN', async () => {
297
- // await testE2E(
298
- // tokens.USDT,
299
- // tokens.BUSD,
300
- // holders.USDT,
301
- // '70000000000000000000',
302
- // SwapSide.SELL,
303
- // dexKey,
304
- // ContractMethod.simpleSwap,
305
- // network,
306
- // provider,
307
- // );
308
- // });
309
- // });
310
-
311
- // describe('Multiswap', () => {
312
- // it('Token -> TOKEN', async () => {
313
- // await testE2E(
314
- // tokens.USDT,
315
- // tokens.BUSD,
316
- // holders.USDT,
317
- // '70000000000000000000',
318
- // SwapSide.SELL,
319
- // dexKey,
320
- // ContractMethod.multiSwap,
321
- // network,
322
- // provider,
323
- // );
324
- // });
325
- // });
326
- });
327
-
328
- describe('PantherSwap', () => {
329
- const dexKey = 'PantherSwap';
330
-
331
- describe('Simpleswap', () => {
332
- it('BNB -> TOKEN', async () => {
333
- await testE2E(
334
- tokens.BNB,
335
- tokens.BUSD,
336
- holders.BNB,
337
- '7000000000000000000',
338
- SwapSide.SELL,
339
- dexKey,
340
- ContractMethod.simpleSwap,
341
- network,
342
- provider,
343
- );
344
- });
345
-
346
- it('TOKEN -> BNB', async () => {
347
- await testE2E(
348
- tokens.BUSD,
349
- tokens.BNB,
350
- holders.BUSD,
351
- '70000000000000000000',
352
- SwapSide.SELL,
353
- dexKey,
354
- ContractMethod.simpleSwap,
355
- network,
356
- provider,
357
- );
358
- });
359
-
360
- it('Token -> TOKEN', async () => {
361
- await testE2E(
362
- tokens.BUSD,
363
- tokens.USDT,
364
- holders.BUSD,
365
- '70000000000000000000',
366
- SwapSide.SELL,
367
- dexKey,
368
- ContractMethod.simpleSwap,
369
- network,
370
- provider,
371
- );
372
- });
373
- });
374
-
375
- describe('Multiswap', () => {
376
- it('Token -> TOKEN', async () => {
377
- await testE2E(
378
- tokens.DAI,
379
- tokens.WBNB,
380
- holders.DAI,
381
- '70000000000000000000',
382
- SwapSide.SELL,
383
- dexKey,
384
- ContractMethod.multiSwap,
385
- network,
386
- provider,
387
- );
388
- });
389
-
390
- it('BNB -> TOKEN', async () => {
391
- await testE2E(
392
- tokens.BNB,
393
- tokens.BUSD,
394
- holders.BNB,
395
- '7000000000000000000',
396
- SwapSide.SELL,
397
- dexKey,
398
- ContractMethod.multiSwap,
399
- network,
400
- provider,
401
- );
402
- });
403
-
404
- it('TOKEN -> BNB', async () => {
405
- await testE2E(
406
- tokens.BUSD,
407
- tokens.BNB,
408
- holders.BUSD,
409
- '70000000000000000000',
410
- SwapSide.SELL,
411
- dexKey,
412
- ContractMethod.multiSwap,
413
- network,
414
- provider,
415
- );
416
- });
417
- });
418
- });
419
-
420
- describe('MDEX', () => {
421
- const dexKey = 'MDEX';
422
-
423
- describe('Simpleswap', () => {
424
- it('BNB -> TOKEN', async () => {
425
- await testE2E(
426
- tokens.BNB,
427
- tokens.USDT,
428
- holders.BNB,
429
- '100000000000000000000',
430
- SwapSide.SELL,
431
- dexKey,
432
- ContractMethod.simpleSwap,
433
- network,
434
- provider,
435
- );
436
- });
437
- it('Token -> TOKEN', async () => {
438
- await testE2E(
439
- tokens.USDT,
440
- tokens.USDC,
441
- holders.USDT,
442
- '1000000000000000000000',
443
- SwapSide.SELL,
444
- dexKey,
445
- ContractMethod.simpleSwap,
446
- network,
447
- provider,
448
- );
449
- });
450
- it('Token -> BNB', async () => {
451
- await testE2E(
452
- tokens.USDT,
453
- tokens.BNB,
454
- holders.USDT,
455
- '1000000000000000000000',
456
- SwapSide.SELL,
457
- dexKey,
458
- ContractMethod.simpleSwap,
459
- network,
460
- provider,
461
- );
462
- });
463
- });
464
-
465
- describe('BUY', () => {
466
- it('BNB -> TOKEN', async () => {
467
- await testE2E(
468
- tokens.BNB,
469
- tokens.USDT,
470
- holders.BNB,
471
- '100000000000000000000',
472
- SwapSide.BUY,
473
- dexKey,
474
- ContractMethod.simpleBuy,
475
- network,
476
- provider,
477
- );
478
- });
479
- it('Token -> TOKEN', async () => {
480
- await testE2E(
481
- tokens.USDT,
482
- tokens.USDC,
483
- holders.USDT,
484
- '1000000000000000000000',
485
- SwapSide.BUY,
486
- dexKey,
487
- ContractMethod.simpleBuy,
488
- network,
489
- provider,
490
- );
491
- });
492
- it('Token -> BNB', async () => {
493
- await testE2E(
494
- tokens.BUSD,
495
- tokens.BNB,
496
- holders.BUSD,
497
- '10000000000000000000',
498
- SwapSide.BUY,
499
- dexKey,
500
- ContractMethod.simpleBuy,
501
- network,
502
- provider,
503
- );
504
- });
505
- });
506
-
507
- describe('Multiswap', () => {
508
- it('BNB -> TOKEN', async () => {
509
- await testE2E(
510
- tokens.BNB,
511
- tokens.USDT,
512
- holders.BNB,
513
- '100000000000000000000',
514
- SwapSide.SELL,
515
- dexKey,
516
- ContractMethod.multiSwap,
517
- network,
518
- provider,
519
- );
520
- });
521
- it('Token -> TOKEN', async () => {
522
- await testE2E(
523
- tokens.USDT,
524
- tokens.USDC,
525
- holders.USDT,
526
- '1000000000',
527
- SwapSide.SELL,
528
- dexKey,
529
- ContractMethod.multiSwap,
530
- network,
531
- provider,
532
- );
533
- });
534
- it('Token -> BNB', async () => {
535
- await testE2E(
536
- tokens.USDT,
537
- tokens.BNB,
538
- holders.USDT,
539
- '1000000000000000000000',
540
- SwapSide.SELL,
541
- dexKey,
542
- ContractMethod.multiSwap,
543
- network,
544
- provider,
545
- );
546
- });
547
- });
548
-
549
- describe('Megapath', () => {
550
- it('Token -> TOKEN', async () => {
551
- await testE2E(
552
- tokens.USDT,
553
- tokens.USDC,
554
- holders.USDT,
555
- '1000000000000000000000',
556
- SwapSide.SELL,
557
- dexKey,
558
- ContractMethod.megaSwap,
559
- network,
560
- provider,
561
- );
562
- });
563
- });
564
- });
565
-
566
- describe('BiSwap', () => {
567
- const dexKey = 'BiSwap';
568
-
569
- describe('Simpleswap', () => {
570
- it('BNB -> TOKEN', async () => {
571
- await testE2E(
572
- tokens.BNB,
573
- tokens.USDT,
574
- holders.BNB,
575
- '100000000000000000000',
576
- SwapSide.SELL,
577
- dexKey,
578
- ContractMethod.simpleSwap,
579
- network,
580
- provider,
581
- );
582
- });
583
- it('Token -> TOKEN', async () => {
584
- await testE2E(
585
- tokens.USDT,
586
- tokens.USDC,
587
- holders.USDT,
588
- '1000000000000000000000',
589
- SwapSide.SELL,
590
- dexKey,
591
- ContractMethod.simpleSwap,
592
- network,
593
- provider,
594
- );
595
- });
596
- it('Token -> BNB', async () => {
597
- await testE2E(
598
- tokens.USDT,
599
- tokens.BNB,
600
- holders.USDT,
601
- '1000000000000000000000',
602
- SwapSide.SELL,
603
- dexKey,
604
- ContractMethod.simpleSwap,
605
- network,
606
- provider,
607
- );
608
- });
609
- });
610
-
611
- describe('BUY', () => {
612
- it('BNB -> TOKEN', async () => {
613
- await testE2E(
614
- tokens.BNB,
615
- tokens.USDT,
616
- holders.BNB,
617
- '100000000000000000000',
618
- SwapSide.BUY,
619
- dexKey,
620
- ContractMethod.simpleBuy,
621
- network,
622
- provider,
623
- );
624
- });
625
- it('Token -> TOKEN', async () => {
626
- await testE2E(
627
- tokens.USDT,
628
- tokens.USDC,
629
- holders.USDT,
630
- '1000000000000000000000',
631
- SwapSide.BUY,
632
- dexKey,
633
- ContractMethod.simpleBuy,
634
- network,
635
- provider,
636
- );
637
- });
638
- it('Token -> BNB', async () => {
639
- await testE2E(
640
- tokens.BUSD,
641
- tokens.BNB,
642
- holders.BUSD,
643
- '10000000000000000000',
644
- SwapSide.BUY,
645
- dexKey,
646
- ContractMethod.simpleBuy,
647
- network,
648
- provider,
649
- );
650
- });
651
- });
652
-
653
- describe('Multiswap', () => {
654
- it('BNB -> TOKEN', async () => {
655
- await testE2E(
656
- tokens.BNB,
657
- tokens.USDT,
658
- holders.BNB,
659
- '100000000000000000000',
660
- SwapSide.SELL,
661
- dexKey,
662
- ContractMethod.multiSwap,
663
- network,
664
- provider,
665
- );
666
- });
667
- it('Token -> TOKEN', async () => {
668
- await testE2E(
669
- tokens.USDT,
670
- tokens.USDC,
671
- holders.USDT,
672
- '1000000000000000000000',
673
- SwapSide.SELL,
674
- dexKey,
675
- ContractMethod.multiSwap,
676
- network,
677
- provider,
678
- );
679
- });
680
- it('Token -> BNB', async () => {
681
- await testE2E(
682
- tokens.USDT,
683
- tokens.BNB,
684
- holders.USDT,
685
- '1000000000000000000000',
686
- SwapSide.SELL,
687
- dexKey,
688
- ContractMethod.multiSwap,
689
- network,
690
- provider,
691
- );
692
- });
693
- });
694
-
695
- describe('Megapath', () => {
696
- it('Token -> TOKEN', async () => {
697
- await testE2E(
698
- tokens.USDT,
699
- tokens.USDC,
700
- holders.USDT,
701
- '1000000000000000000000',
702
- SwapSide.SELL,
703
- dexKey,
704
- ContractMethod.megaSwap,
705
- network,
706
- provider,
707
- );
708
- });
709
- });
710
- });
711
-
712
- describe('WaultFinance', () => {
713
- const dexKey = 'WaultFinance';
714
-
715
- describe('Simpleswap', () => {
716
- it('BNB -> BUSD', async () => {
717
- await testE2E(
718
- tokens.BNB,
719
- tokens.BUSD,
720
- holders.BNB,
721
- '10000000000000000000',
722
- SwapSide.SELL,
723
- dexKey,
724
- ContractMethod.simpleSwap,
725
- network,
726
- provider,
727
- );
728
- });
729
- it('USDT -> BUSD', async () => {
730
- await testE2E(
731
- tokens.USDT,
732
- tokens.BUSD,
733
- holders.USDT,
734
- '100000000000000000000',
735
- SwapSide.SELL,
736
- dexKey,
737
- ContractMethod.simpleSwap,
738
- network,
739
- provider,
740
- );
741
- });
742
- it('BUSD -> BNB', async () => {
743
- await testE2E(
744
- tokens.BUSD,
745
- tokens.BNB,
746
- holders.BUSD,
747
- '100000000000000000000',
748
- SwapSide.SELL,
749
- dexKey,
750
- ContractMethod.simpleSwap,
751
- network,
752
- provider,
753
- );
754
- });
755
- });
756
- describe('SimpleBuy', () => {
757
- it('BNB -> BUSD', async () => {
758
- await testE2E(
759
- tokens.BNB,
760
- tokens.BUSD,
761
- holders.BNB,
762
- '10000000000000000000',
763
- SwapSide.BUY,
764
- dexKey,
765
- ContractMethod.simpleBuy,
766
- network,
767
- provider,
768
- );
769
- });
770
- it('USDT -> BUSD', async () => {
771
- await testE2E(
772
- tokens.USDT,
773
- tokens.BUSD,
774
- holders.USDT,
775
- '100000000000000000000',
776
- SwapSide.BUY,
777
- dexKey,
778
- ContractMethod.simpleBuy,
779
- network,
780
- provider,
781
- );
782
- });
783
- it('BUSD -> BNB', async () => {
784
- await testE2E(
785
- tokens.BUSD,
786
- tokens.BNB,
787
- holders.BUSD,
788
- '10000000000000000000',
789
- SwapSide.BUY,
790
- dexKey,
791
- ContractMethod.simpleBuy,
792
- network,
793
- provider,
794
- );
795
- });
796
- });
797
- describe('MultiSwap', () => {
798
- it('BNB -> BUSD', async () => {
799
- await testE2E(
800
- tokens.BNB,
801
- tokens.BUSD,
802
- holders.BNB,
803
- '10000000000000000000',
804
- SwapSide.SELL,
805
- dexKey,
806
- ContractMethod.multiSwap,
807
- network,
808
- provider,
809
- );
810
- });
811
- it('USDT -> BUSD', async () => {
812
- await testE2E(
813
- tokens.USDT,
814
- tokens.BUSD,
815
- holders.USDT,
816
- '100000000000000000000',
817
- SwapSide.SELL,
818
- dexKey,
819
- ContractMethod.multiSwap,
820
- network,
821
- provider,
822
- );
823
- });
824
- it('BUSD -> BNB', async () => {
825
- await testE2E(
826
- tokens.BUSD,
827
- tokens.BNB,
828
- holders.BUSD,
829
- '100000000000000000000',
830
- SwapSide.SELL,
831
- dexKey,
832
- ContractMethod.multiSwap,
833
- network,
834
- provider,
835
- );
836
- });
837
- });
838
- describe('MegaSwap', () => {
839
- it('USDT -> BUSD', async () => {
840
- await testE2E(
841
- tokens.USDT,
842
- tokens.BUSD,
843
- holders.USDT,
844
- '100000000000000000000',
845
- SwapSide.SELL,
846
- dexKey,
847
- ContractMethod.megaSwap,
848
- network,
849
- provider,
850
- );
851
- });
852
- });
853
- });
854
-
855
- describe('CoinSwap', () => {
856
- const dexKey = 'CoinSwap';
857
-
858
- describe('Simpleswap', () => {
859
- it('BUSD -> WBNB', async () => {
860
- await testE2E(
861
- tokens.BUSD,
862
- tokens.WBNB,
863
- holders.BUSD,
864
- '1000000000000000000',
865
- SwapSide.SELL,
866
- dexKey,
867
- ContractMethod.simpleSwap,
868
- network,
869
- provider,
870
- );
871
- });
872
-
873
- it('BUSD -> BNB', async () => {
874
- await testE2E(
875
- tokens.BUSD,
876
- tokens.BNB,
877
- holders.BUSD,
878
- '1000000000000000000',
879
- SwapSide.SELL,
880
- dexKey,
881
- ContractMethod.simpleSwap,
882
- network,
883
- provider,
884
- );
885
- });
886
-
887
- it('BNB -> BUSD', async () => {
888
- await testE2E(
889
- tokens.BNB,
890
- tokens.BUSD,
891
- holders.BNB,
892
- '1000000000000000000',
893
- SwapSide.SELL,
894
- dexKey,
895
- ContractMethod.simpleSwap,
896
- network,
897
- provider,
898
- );
899
- });
900
- });
901
- describe('SimpleBuy', () => {
902
- it('BUSD -> WBNB', async () => {
903
- await testE2E(
904
- tokens.BUSD,
905
- tokens.WBNB,
906
- holders.BUSD,
907
- '1000000000000000000',
908
- SwapSide.BUY,
909
- dexKey,
910
- ContractMethod.simpleBuy,
911
- network,
912
- provider,
913
- );
914
- });
915
-
916
- it('BUSD -> BNB', async () => {
917
- await testE2E(
918
- tokens.BUSD,
919
- tokens.BNB,
920
- holders.BUSD,
921
- '1000000000000000000',
922
- SwapSide.BUY,
923
- dexKey,
924
- ContractMethod.simpleBuy,
925
- network,
926
- provider,
927
- );
928
- });
929
-
930
- it('BNB -> BUSD', async () => {
931
- await testE2E(
932
- tokens.BNB,
933
- tokens.BUSD,
934
- holders.BNB,
935
- '1000000000000000000',
936
- SwapSide.BUY,
937
- dexKey,
938
- ContractMethod.simpleBuy,
939
- network,
940
- provider,
941
- );
942
- });
943
- });
944
-
945
- describe('MultiSwap', () => {
946
- it('BUSD -> WBNB', async () => {
947
- await testE2E(
948
- tokens.BUSD,
949
- tokens.WBNB,
950
- holders.BUSD,
951
- '1000000000000000000',
952
- SwapSide.SELL,
953
- dexKey,
954
- ContractMethod.multiSwap,
955
- network,
956
- provider,
957
- );
958
- });
959
- it('BUSD -> BNB', async () => {
960
- await testE2E(
961
- tokens.BUSD,
962
- tokens.BNB,
963
- holders.BUSD,
964
- '1000000000000000000',
965
- SwapSide.SELL,
966
- dexKey,
967
- ContractMethod.multiSwap,
968
- network,
969
- provider,
970
- );
971
- });
972
- it('BNB -> BUSD', async () => {
973
- await testE2E(
974
- tokens.BNB,
975
- tokens.BUSD,
976
- holders.BNB,
977
- '1000000000000000000',
978
- SwapSide.SELL,
979
- dexKey,
980
- ContractMethod.multiSwap,
981
- network,
982
- provider,
983
- );
984
- });
985
- });
986
- describe('MegaSwap', () => {
987
- it('BUSD -> WBNB', async () => {
988
- await testE2E(
989
- tokens.BUSD,
990
- tokens.WBNB,
991
- holders.BUSD,
992
- '1000000000000000000',
993
- SwapSide.SELL,
994
- dexKey,
995
- ContractMethod.megaSwap,
996
- network,
997
- provider,
998
- );
999
- });
1000
- it('BUSD -> BNB', async () => {
1001
- await testE2E(
1002
- tokens.BUSD,
1003
- tokens.BNB,
1004
- holders.BUSD,
1005
- '1000000000000000000',
1006
- SwapSide.SELL,
1007
- dexKey,
1008
- ContractMethod.megaSwap,
1009
- network,
1010
- provider,
1011
- );
1012
- });
1013
- it('BNB -> BUSD', async () => {
1014
- await testE2E(
1015
- tokens.BNB,
1016
- tokens.BUSD,
1017
- holders.BNB,
1018
- '1000000000000000000',
1019
- SwapSide.SELL,
1020
- dexKey,
1021
- ContractMethod.megaSwap,
1022
- network,
1023
- provider,
1024
- );
1025
- });
1026
- });
1027
- });
1028
-
1029
- describe('CheeseSwap', () => {
1030
- const dexKey = 'CheeseSwap';
1031
-
1032
- describe('Simpleswap', () => {
1033
- it('BNB -> BUSD', async () => {
1034
- await testE2E(
1035
- tokens.BNB,
1036
- tokens.BUSD,
1037
- holders.BNB,
1038
- '100000000000000000',
1039
- SwapSide.SELL,
1040
- dexKey,
1041
- ContractMethod.simpleSwap,
1042
- network,
1043
- provider,
1044
- );
1045
- });
1046
- it('BUSD -> BNB', async () => {
1047
- await testE2E(
1048
- tokens.BUSD,
1049
- tokens.BNB,
1050
- holders.BUSD,
1051
- '30000000000000000',
1052
- SwapSide.SELL,
1053
- dexKey,
1054
- ContractMethod.simpleSwap,
1055
- network,
1056
- provider,
1057
- );
1058
- });
1059
- it('WBNB -> BUSD', async () => {
1060
- await testE2E(
1061
- tokens.WBNB,
1062
- tokens.BUSD,
1063
- holders.WBNB,
1064
- '30000000000000000',
1065
- SwapSide.SELL,
1066
- dexKey,
1067
- ContractMethod.simpleSwap,
1068
- network,
1069
- provider,
1070
- );
1071
- });
1072
- });
1073
- describe('Multi', () => {
1074
- it('BNB -> BUSD', async () => {
1075
- await testE2E(
1076
- tokens.BNB,
1077
- tokens.BUSD,
1078
- holders.BNB,
1079
- '30000000000000000',
1080
- SwapSide.SELL,
1081
- dexKey,
1082
- ContractMethod.multiSwap,
1083
- network,
1084
- provider,
1085
- );
1086
- });
1087
- it('BUSD -> BNB', async () => {
1088
- await testE2E(
1089
- tokens.BUSD,
1090
- tokens.BNB,
1091
- holders.BUSD,
1092
- '30000000000000000',
1093
- SwapSide.SELL,
1094
- dexKey,
1095
- ContractMethod.multiSwap,
1096
- network,
1097
- provider,
1098
- );
1099
- });
1100
- it('WBNB -> BUSD', async () => {
1101
- await testE2E(
1102
- tokens.WBNB,
1103
- tokens.BUSD,
1104
- holders.WBNB,
1105
- '30000000000000000',
1106
- SwapSide.SELL,
1107
- dexKey,
1108
- ContractMethod.multiSwap,
1109
- network,
1110
- provider,
1111
- );
1112
- });
1113
- });
1114
- describe('Mega', () => {
1115
- it('BNB -> BUSD', async () => {
1116
- await testE2E(
1117
- tokens.BNB,
1118
- tokens.BUSD,
1119
- holders.BNB,
1120
- '30000000000000000',
1121
- SwapSide.SELL,
1122
- dexKey,
1123
- ContractMethod.megaSwap,
1124
- network,
1125
- provider,
1126
- );
1127
- });
1128
- it('BUSD -> BNB', async () => {
1129
- await testE2E(
1130
- tokens.BUSD,
1131
- tokens.BNB,
1132
- holders.BUSD,
1133
- '30000000000000000',
1134
- SwapSide.SELL,
1135
- dexKey,
1136
- ContractMethod.megaSwap,
1137
- network,
1138
- provider,
1139
- );
1140
- });
1141
- it('BNB -> BUSD', async () => {
1142
- await testE2E(
1143
- tokens.BNB,
1144
- tokens.BUSD,
1145
- holders.BNB,
1146
- '30000000000000000',
1147
- SwapSide.SELL,
1148
- dexKey,
1149
- ContractMethod.megaSwap,
1150
- network,
1151
- provider,
1152
- );
1153
- });
1154
- });
1155
- describe('SimpleBuy', () => {
1156
- it('BNB -> BUSD', async () => {
1157
- await testE2E(
1158
- tokens.BNB,
1159
- tokens.BUSD,
1160
- holders.BNB,
1161
- '7000000000000000000',
1162
- SwapSide.BUY,
1163
- dexKey,
1164
- ContractMethod.simpleBuy,
1165
- network,
1166
- provider,
1167
- );
1168
- });
1169
- it('BUSD -> BNB', async () => {
1170
- await testE2E(
1171
- tokens.BUSD,
1172
- tokens.BNB,
1173
- holders.BUSD,
1174
- '7000000000000',
1175
- SwapSide.BUY,
1176
- dexKey,
1177
- ContractMethod.simpleBuy,
1178
- network,
1179
- provider,
1180
- );
1181
- });
1182
- it('WBNB -> BUSD', async () => {
1183
- await testE2E(
1184
- tokens.WBNB,
1185
- tokens.BUSD,
1186
- holders.WBNB,
1187
- '7000000000000000000',
1188
- SwapSide.BUY,
1189
- dexKey,
1190
- ContractMethod.simpleBuy,
1191
- network,
1192
- provider,
1193
- );
1194
- });
1195
- });
1196
- });
1197
-
1198
- describe('NomiswapV2', () => {
1199
- const dexKey = 'NomiswapV2';
1200
- const network = Network.BSC;
1201
-
1202
- const tokenASymbol: string = 'USDC';
1203
- const tokenBSymbol: string = 'USDT';
1204
-
1205
- const tokenAAmount: string = '1111100000';
1206
- const tokenBAmount: string = '1000000000';
1207
- const nativeTokenAmount = '11000000000000';
1208
-
1209
- testForNetwork(
1210
- network,
1211
- dexKey,
1212
- tokenASymbol,
1213
- tokenBSymbol,
1214
- tokenAAmount,
1215
- tokenBAmount,
1216
- nativeTokenAmount,
1217
- );
1218
- });
1219
-
1220
- describe(`Swapsicle`, () => {
1221
- const dexKey = 'Swapsicle';
1222
-
1223
- const sideToContractMethods = new Map([
1224
- [
1225
- SwapSide.SELL,
1226
- [
1227
- ContractMethod.simpleSwap,
1228
- ContractMethod.multiSwap,
1229
- ContractMethod.megaSwap,
1230
- ],
1231
- ],
1232
- [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
1233
- ]);
1234
-
1235
- const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
1236
- [
1237
- { name: 'WBNB', sellAmount: '7000000000000000000', buyAmount: '1000' },
1238
- { name: 'BUSD', sellAmount: '5000', buyAmount: '10000000' },
1239
- ],
1240
- [
1241
- { name: 'WBNB', sellAmount: '3000000000', buyAmount: '1000' },
1242
- { name: 'POPS', sellAmount: '800000000000', buyAmount: '800000000000' },
1243
- ],
1244
- [
1245
- { name: 'WBNB', sellAmount: '7000000000000000000', buyAmount: '1000' },
1246
- { name: 'DAI', sellAmount: '1000', buyAmount: '1000' },
1247
- ],
1248
- [
1249
- { name: 'WBNB', sellAmount: '7000000000000000000', buyAmount: '1000' },
1250
- { name: 'USDC', sellAmount: '700', buyAmount: '1000' },
1251
- ],
1252
- ];
1253
-
1254
- sideToContractMethods.forEach((contractMethods, side) =>
1255
- describe(`${side}`, () => {
1256
- contractMethods.forEach((contractMethod: ContractMethod) => {
1257
- pairs.forEach(pair => {
1258
- describe(`${contractMethod}`, () => {
1259
- it(`${pair[0].name} -> ${pair[1].name}`, async () => {
1260
- await testE2E(
1261
- tokens[pair[0].name],
1262
- tokens[pair[1].name],
1263
- holders[pair[0].name],
1264
- side === SwapSide.SELL
1265
- ? pair[0].sellAmount
1266
- : pair[0].buyAmount,
1267
- side,
1268
- dexKey,
1269
- contractMethod,
1270
- network,
1271
- provider,
1272
- );
1273
- });
1274
- it(`${pair[1].name} -> ${pair[0].name}`, async () => {
1275
- await testE2E(
1276
- tokens[pair[1].name],
1277
- tokens[pair[0].name],
1278
- holders[pair[1].name],
1279
- side === SwapSide.SELL
1280
- ? pair[1].sellAmount
1281
- : pair[1].buyAmount,
1282
- side,
1283
- dexKey,
1284
- contractMethod,
1285
- network,
1286
- provider,
1287
- );
1288
- });
1289
- });
1290
- });
1291
- });
1292
- }),
1293
- );
1294
- });
1295
- });
1
+ import dotenv from 'dotenv';
2
+ dotenv.config();
3
+
4
+ import { testE2E } from '../../../tests/utils-e2e';
5
+ import {
6
+ Tokens,
7
+ Holders,
8
+ NativeTokenSymbols,
9
+ } from '../../../tests/constants-e2e';
10
+ import { Network, ContractMethod, SwapSide } from '../../constants';
11
+ import { StaticJsonRpcProvider } from '@ethersproject/providers';
12
+ import { generateConfig } from '../../config';
13
+
14
+ function testForNetwork(
15
+ network: Network,
16
+ dexKey: string,
17
+ tokenASymbol: string,
18
+ tokenBSymbol: string,
19
+ tokenAAmount: string,
20
+ tokenBAmount: string,
21
+ nativeTokenAmount: string,
22
+ slippage?: number | undefined,
23
+ ) {
24
+ const provider = new StaticJsonRpcProvider(
25
+ generateConfig(network).privateHttpProvider,
26
+ network,
27
+ );
28
+ const tokens = Tokens[network];
29
+ const holders = Holders[network];
30
+ const nativeTokenSymbol = NativeTokenSymbols[network];
31
+
32
+ const sideToContractMethods = new Map([
33
+ [
34
+ SwapSide.SELL,
35
+ [
36
+ ContractMethod.simpleSwap,
37
+ ContractMethod.multiSwap,
38
+ ContractMethod.megaSwap,
39
+ ],
40
+ ],
41
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
42
+ ]);
43
+
44
+ describe(`${network}`, () => {
45
+ sideToContractMethods.forEach((contractMethods, side) =>
46
+ describe(`${side}`, () => {
47
+ contractMethods.forEach((contractMethod: ContractMethod) => {
48
+ describe(`${contractMethod}`, () => {
49
+ it(`${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
50
+ await testE2E(
51
+ tokens[nativeTokenSymbol],
52
+ tokens[tokenASymbol],
53
+ holders[nativeTokenSymbol],
54
+ side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
55
+ side,
56
+ dexKey,
57
+ contractMethod,
58
+ network,
59
+ provider,
60
+ undefined,
61
+ undefined,
62
+ undefined,
63
+ slippage,
64
+ );
65
+ });
66
+ it(`${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
67
+ await testE2E(
68
+ tokens[tokenASymbol],
69
+ tokens[nativeTokenSymbol],
70
+ holders[tokenASymbol],
71
+ side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
72
+ side,
73
+ dexKey,
74
+ contractMethod,
75
+ network,
76
+ provider,
77
+ undefined,
78
+ undefined,
79
+ undefined,
80
+ slippage,
81
+ );
82
+ });
83
+ it(`${tokenASymbol} -> ${tokenBSymbol}`, async () => {
84
+ await testE2E(
85
+ tokens[tokenASymbol],
86
+ tokens[tokenBSymbol],
87
+ holders[tokenASymbol],
88
+ side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
89
+ side,
90
+ dexKey,
91
+ contractMethod,
92
+ network,
93
+ provider,
94
+ undefined,
95
+ undefined,
96
+ undefined,
97
+ slippage,
98
+ );
99
+ });
100
+ });
101
+ });
102
+ }),
103
+ );
104
+ });
105
+ }
106
+
107
+ describe('UniswapV2 E2E BSC', () => {
108
+ const network = Network.BSC;
109
+ const tokens = Tokens[network];
110
+ const holders = Holders[network];
111
+ const provider = new StaticJsonRpcProvider(
112
+ generateConfig(network).privateHttpProvider,
113
+ network,
114
+ );
115
+
116
+ describe('PancakeSwapV2', () => {
117
+ const dexKey = 'PancakeSwapV2';
118
+
119
+ describe('Simpleswap', () => {
120
+ it('Token -> TOKEN', async () => {
121
+ await testE2E(
122
+ tokens.DAI,
123
+ tokens.BUSD,
124
+ holders.DAI,
125
+ '7000000000000000000000',
126
+ SwapSide.SELL,
127
+ dexKey,
128
+ ContractMethod.simpleSwap,
129
+ network,
130
+ provider,
131
+ );
132
+ });
133
+ });
134
+
135
+ describe('Multiswap', () => {
136
+ it('Token -> TOKEN', async () => {
137
+ await testE2E(
138
+ tokens.DAI,
139
+ tokens.BUSD,
140
+ holders.DAI,
141
+ '7000000000000000000000',
142
+ SwapSide.SELL,
143
+ dexKey,
144
+ ContractMethod.multiSwap,
145
+ network,
146
+ provider,
147
+ );
148
+ });
149
+ });
150
+
151
+ describe('BuyMethod', () => {
152
+ it('Token -> TOKEN', async () => {
153
+ await testE2E(
154
+ tokens.DAI,
155
+ tokens.BUSD,
156
+ holders.DAI,
157
+ '7000000000000000000000',
158
+ SwapSide.BUY,
159
+ dexKey,
160
+ ContractMethod.buy,
161
+ network,
162
+ provider,
163
+ );
164
+ });
165
+ });
166
+ });
167
+
168
+ describe('JulSwap', () => {
169
+ const dexKey = 'JulSwap';
170
+
171
+ describe('Simpleswap', () => {
172
+ it('Token -> TOKEN', async () => {
173
+ await testE2E(
174
+ tokens.BUSD,
175
+ tokens.WBNB,
176
+ holders.BUSD,
177
+ '7000000000000000000',
178
+ SwapSide.SELL,
179
+ dexKey,
180
+ ContractMethod.simpleSwap,
181
+ network,
182
+ provider,
183
+ );
184
+ });
185
+ });
186
+
187
+ describe('Multiswap', () => {
188
+ it('Token -> TOKEN', async () => {
189
+ await testE2E(
190
+ tokens.BUSD,
191
+ tokens.WBNB,
192
+ holders.BUSD,
193
+ '7000000000000000000',
194
+ SwapSide.SELL,
195
+ dexKey,
196
+ ContractMethod.multiSwap,
197
+ network,
198
+ provider,
199
+ );
200
+ });
201
+ });
202
+ });
203
+
204
+ describe('ApeSwap', () => {
205
+ const dexKey = 'ApeSwap';
206
+
207
+ describe('Simpleswap', () => {
208
+ it('Token -> TOKEN', async () => {
209
+ await testE2E(
210
+ tokens.DAI,
211
+ tokens.BUSD,
212
+ holders.DAI,
213
+ '7000000000000000000000',
214
+ SwapSide.SELL,
215
+ dexKey,
216
+ ContractMethod.simpleSwap,
217
+ network,
218
+ provider,
219
+ );
220
+ });
221
+ });
222
+
223
+ describe('Multiswap', () => {
224
+ it('Token -> TOKEN', async () => {
225
+ await testE2E(
226
+ tokens.DAI,
227
+ tokens.BUSD,
228
+ holders.DAI,
229
+ '7000000000000000000000',
230
+ SwapSide.SELL,
231
+ dexKey,
232
+ ContractMethod.multiSwap,
233
+ network,
234
+ provider,
235
+ );
236
+ });
237
+ });
238
+ });
239
+
240
+ describe('PancakeSwap', () => {
241
+ const dexKey = 'PancakeSwap';
242
+
243
+ describe('Simpleswap', () => {
244
+ it('Token -> TOKEN', async () => {
245
+ await testE2E(
246
+ tokens.DAI,
247
+ tokens.WBNB,
248
+ holders.DAI,
249
+ '70000000000000000000',
250
+ SwapSide.SELL,
251
+ dexKey,
252
+ ContractMethod.simpleSwap,
253
+ network,
254
+ provider,
255
+ );
256
+ });
257
+ });
258
+
259
+ describe('Multiswap', () => {
260
+ it('Token -> TOKEN', async () => {
261
+ await testE2E(
262
+ tokens.DAI,
263
+ tokens.WBNB,
264
+ holders.DAI,
265
+ '7000000000000000000000',
266
+ SwapSide.SELL,
267
+ dexKey,
268
+ ContractMethod.multiSwap,
269
+ network,
270
+ provider,
271
+ );
272
+ });
273
+ });
274
+ });
275
+
276
+ describe('BakerySwap', () => {
277
+ const dexKey = 'BakerySwap';
278
+
279
+ describe('Bakery_V6', () => {
280
+ it('Token -> TOKEN', async () => {
281
+ await testE2E(
282
+ tokens.USDT,
283
+ tokens.BUSD,
284
+ holders.USDT,
285
+ '70000000000000000000',
286
+ SwapSide.SELL,
287
+ dexKey,
288
+ ContractMethod.swapExactAmountIn,
289
+ network,
290
+ provider,
291
+ );
292
+ });
293
+ });
294
+
295
+ // describe('Simpleswap', () => {
296
+ // it('Token -> TOKEN', async () => {
297
+ // await testE2E(
298
+ // tokens.USDT,
299
+ // tokens.BUSD,
300
+ // holders.USDT,
301
+ // '70000000000000000000',
302
+ // SwapSide.SELL,
303
+ // dexKey,
304
+ // ContractMethod.simpleSwap,
305
+ // network,
306
+ // provider,
307
+ // );
308
+ // });
309
+ // });
310
+
311
+ // describe('Multiswap', () => {
312
+ // it('Token -> TOKEN', async () => {
313
+ // await testE2E(
314
+ // tokens.USDT,
315
+ // tokens.BUSD,
316
+ // holders.USDT,
317
+ // '70000000000000000000',
318
+ // SwapSide.SELL,
319
+ // dexKey,
320
+ // ContractMethod.multiSwap,
321
+ // network,
322
+ // provider,
323
+ // );
324
+ // });
325
+ // });
326
+ });
327
+
328
+ describe('PantherSwap', () => {
329
+ const dexKey = 'PantherSwap';
330
+
331
+ describe('Simpleswap', () => {
332
+ it('BNB -> TOKEN', async () => {
333
+ await testE2E(
334
+ tokens.BNB,
335
+ tokens.BUSD,
336
+ holders.BNB,
337
+ '7000000000000000000',
338
+ SwapSide.SELL,
339
+ dexKey,
340
+ ContractMethod.simpleSwap,
341
+ network,
342
+ provider,
343
+ );
344
+ });
345
+
346
+ it('TOKEN -> BNB', async () => {
347
+ await testE2E(
348
+ tokens.BUSD,
349
+ tokens.BNB,
350
+ holders.BUSD,
351
+ '70000000000000000000',
352
+ SwapSide.SELL,
353
+ dexKey,
354
+ ContractMethod.simpleSwap,
355
+ network,
356
+ provider,
357
+ );
358
+ });
359
+
360
+ it('Token -> TOKEN', async () => {
361
+ await testE2E(
362
+ tokens.BUSD,
363
+ tokens.USDT,
364
+ holders.BUSD,
365
+ '70000000000000000000',
366
+ SwapSide.SELL,
367
+ dexKey,
368
+ ContractMethod.simpleSwap,
369
+ network,
370
+ provider,
371
+ );
372
+ });
373
+ });
374
+
375
+ describe('Multiswap', () => {
376
+ it('Token -> TOKEN', async () => {
377
+ await testE2E(
378
+ tokens.DAI,
379
+ tokens.WBNB,
380
+ holders.DAI,
381
+ '70000000000000000000',
382
+ SwapSide.SELL,
383
+ dexKey,
384
+ ContractMethod.multiSwap,
385
+ network,
386
+ provider,
387
+ );
388
+ });
389
+
390
+ it('BNB -> TOKEN', async () => {
391
+ await testE2E(
392
+ tokens.BNB,
393
+ tokens.BUSD,
394
+ holders.BNB,
395
+ '7000000000000000000',
396
+ SwapSide.SELL,
397
+ dexKey,
398
+ ContractMethod.multiSwap,
399
+ network,
400
+ provider,
401
+ );
402
+ });
403
+
404
+ it('TOKEN -> BNB', async () => {
405
+ await testE2E(
406
+ tokens.BUSD,
407
+ tokens.BNB,
408
+ holders.BUSD,
409
+ '70000000000000000000',
410
+ SwapSide.SELL,
411
+ dexKey,
412
+ ContractMethod.multiSwap,
413
+ network,
414
+ provider,
415
+ );
416
+ });
417
+ });
418
+ });
419
+
420
+ describe('MDEX', () => {
421
+ const dexKey = 'MDEX';
422
+
423
+ describe('Simpleswap', () => {
424
+ it('BNB -> TOKEN', async () => {
425
+ await testE2E(
426
+ tokens.BNB,
427
+ tokens.USDT,
428
+ holders.BNB,
429
+ '100000000000000000000',
430
+ SwapSide.SELL,
431
+ dexKey,
432
+ ContractMethod.simpleSwap,
433
+ network,
434
+ provider,
435
+ );
436
+ });
437
+ it('Token -> TOKEN', async () => {
438
+ await testE2E(
439
+ tokens.USDT,
440
+ tokens.USDC,
441
+ holders.USDT,
442
+ '1000000000000000000000',
443
+ SwapSide.SELL,
444
+ dexKey,
445
+ ContractMethod.simpleSwap,
446
+ network,
447
+ provider,
448
+ );
449
+ });
450
+ it('Token -> BNB', async () => {
451
+ await testE2E(
452
+ tokens.USDT,
453
+ tokens.BNB,
454
+ holders.USDT,
455
+ '1000000000000000000000',
456
+ SwapSide.SELL,
457
+ dexKey,
458
+ ContractMethod.simpleSwap,
459
+ network,
460
+ provider,
461
+ );
462
+ });
463
+ });
464
+
465
+ describe('BUY', () => {
466
+ it('BNB -> TOKEN', async () => {
467
+ await testE2E(
468
+ tokens.BNB,
469
+ tokens.USDT,
470
+ holders.BNB,
471
+ '100000000000000000000',
472
+ SwapSide.BUY,
473
+ dexKey,
474
+ ContractMethod.simpleBuy,
475
+ network,
476
+ provider,
477
+ );
478
+ });
479
+ it('Token -> TOKEN', async () => {
480
+ await testE2E(
481
+ tokens.USDT,
482
+ tokens.USDC,
483
+ holders.USDT,
484
+ '1000000000000000000000',
485
+ SwapSide.BUY,
486
+ dexKey,
487
+ ContractMethod.simpleBuy,
488
+ network,
489
+ provider,
490
+ );
491
+ });
492
+ it('Token -> BNB', async () => {
493
+ await testE2E(
494
+ tokens.BUSD,
495
+ tokens.BNB,
496
+ holders.BUSD,
497
+ '10000000000000000000',
498
+ SwapSide.BUY,
499
+ dexKey,
500
+ ContractMethod.simpleBuy,
501
+ network,
502
+ provider,
503
+ );
504
+ });
505
+ });
506
+
507
+ describe('Multiswap', () => {
508
+ it('BNB -> TOKEN', async () => {
509
+ await testE2E(
510
+ tokens.BNB,
511
+ tokens.USDT,
512
+ holders.BNB,
513
+ '100000000000000000000',
514
+ SwapSide.SELL,
515
+ dexKey,
516
+ ContractMethod.multiSwap,
517
+ network,
518
+ provider,
519
+ );
520
+ });
521
+ it('Token -> TOKEN', async () => {
522
+ await testE2E(
523
+ tokens.USDT,
524
+ tokens.USDC,
525
+ holders.USDT,
526
+ '1000000000',
527
+ SwapSide.SELL,
528
+ dexKey,
529
+ ContractMethod.multiSwap,
530
+ network,
531
+ provider,
532
+ );
533
+ });
534
+ it('Token -> BNB', async () => {
535
+ await testE2E(
536
+ tokens.USDT,
537
+ tokens.BNB,
538
+ holders.USDT,
539
+ '1000000000000000000000',
540
+ SwapSide.SELL,
541
+ dexKey,
542
+ ContractMethod.multiSwap,
543
+ network,
544
+ provider,
545
+ );
546
+ });
547
+ });
548
+
549
+ describe('Megapath', () => {
550
+ it('Token -> TOKEN', async () => {
551
+ await testE2E(
552
+ tokens.USDT,
553
+ tokens.USDC,
554
+ holders.USDT,
555
+ '1000000000000000000000',
556
+ SwapSide.SELL,
557
+ dexKey,
558
+ ContractMethod.megaSwap,
559
+ network,
560
+ provider,
561
+ );
562
+ });
563
+ });
564
+ });
565
+
566
+ describe('BiSwap', () => {
567
+ const dexKey = 'BiSwap';
568
+
569
+ describe('Simpleswap', () => {
570
+ it('BNB -> TOKEN', async () => {
571
+ await testE2E(
572
+ tokens.BNB,
573
+ tokens.USDT,
574
+ holders.BNB,
575
+ '100000000000000000000',
576
+ SwapSide.SELL,
577
+ dexKey,
578
+ ContractMethod.simpleSwap,
579
+ network,
580
+ provider,
581
+ );
582
+ });
583
+ it('Token -> TOKEN', async () => {
584
+ await testE2E(
585
+ tokens.USDT,
586
+ tokens.USDC,
587
+ holders.USDT,
588
+ '1000000000000000000000',
589
+ SwapSide.SELL,
590
+ dexKey,
591
+ ContractMethod.simpleSwap,
592
+ network,
593
+ provider,
594
+ );
595
+ });
596
+ it('Token -> BNB', async () => {
597
+ await testE2E(
598
+ tokens.USDT,
599
+ tokens.BNB,
600
+ holders.USDT,
601
+ '1000000000000000000000',
602
+ SwapSide.SELL,
603
+ dexKey,
604
+ ContractMethod.simpleSwap,
605
+ network,
606
+ provider,
607
+ );
608
+ });
609
+ });
610
+
611
+ describe('BUY', () => {
612
+ it('BNB -> TOKEN', async () => {
613
+ await testE2E(
614
+ tokens.BNB,
615
+ tokens.USDT,
616
+ holders.BNB,
617
+ '100000000000000000000',
618
+ SwapSide.BUY,
619
+ dexKey,
620
+ ContractMethod.simpleBuy,
621
+ network,
622
+ provider,
623
+ );
624
+ });
625
+ it('Token -> TOKEN', async () => {
626
+ await testE2E(
627
+ tokens.USDT,
628
+ tokens.USDC,
629
+ holders.USDT,
630
+ '1000000000000000000000',
631
+ SwapSide.BUY,
632
+ dexKey,
633
+ ContractMethod.simpleBuy,
634
+ network,
635
+ provider,
636
+ );
637
+ });
638
+ it('Token -> BNB', async () => {
639
+ await testE2E(
640
+ tokens.BUSD,
641
+ tokens.BNB,
642
+ holders.BUSD,
643
+ '10000000000000000000',
644
+ SwapSide.BUY,
645
+ dexKey,
646
+ ContractMethod.simpleBuy,
647
+ network,
648
+ provider,
649
+ );
650
+ });
651
+ });
652
+
653
+ describe('Multiswap', () => {
654
+ it('BNB -> TOKEN', async () => {
655
+ await testE2E(
656
+ tokens.BNB,
657
+ tokens.USDT,
658
+ holders.BNB,
659
+ '100000000000000000000',
660
+ SwapSide.SELL,
661
+ dexKey,
662
+ ContractMethod.multiSwap,
663
+ network,
664
+ provider,
665
+ );
666
+ });
667
+ it('Token -> TOKEN', async () => {
668
+ await testE2E(
669
+ tokens.USDT,
670
+ tokens.USDC,
671
+ holders.USDT,
672
+ '1000000000000000000000',
673
+ SwapSide.SELL,
674
+ dexKey,
675
+ ContractMethod.multiSwap,
676
+ network,
677
+ provider,
678
+ );
679
+ });
680
+ it('Token -> BNB', async () => {
681
+ await testE2E(
682
+ tokens.USDT,
683
+ tokens.BNB,
684
+ holders.USDT,
685
+ '1000000000000000000000',
686
+ SwapSide.SELL,
687
+ dexKey,
688
+ ContractMethod.multiSwap,
689
+ network,
690
+ provider,
691
+ );
692
+ });
693
+ });
694
+
695
+ describe('Megapath', () => {
696
+ it('Token -> TOKEN', async () => {
697
+ await testE2E(
698
+ tokens.USDT,
699
+ tokens.USDC,
700
+ holders.USDT,
701
+ '1000000000000000000000',
702
+ SwapSide.SELL,
703
+ dexKey,
704
+ ContractMethod.megaSwap,
705
+ network,
706
+ provider,
707
+ );
708
+ });
709
+ });
710
+ });
711
+
712
+ describe('WaultFinance', () => {
713
+ const dexKey = 'WaultFinance';
714
+
715
+ describe('Simpleswap', () => {
716
+ it('BNB -> BUSD', async () => {
717
+ await testE2E(
718
+ tokens.BNB,
719
+ tokens.BUSD,
720
+ holders.BNB,
721
+ '10000000000000000000',
722
+ SwapSide.SELL,
723
+ dexKey,
724
+ ContractMethod.simpleSwap,
725
+ network,
726
+ provider,
727
+ );
728
+ });
729
+ it('USDT -> BUSD', async () => {
730
+ await testE2E(
731
+ tokens.USDT,
732
+ tokens.BUSD,
733
+ holders.USDT,
734
+ '100000000000000000000',
735
+ SwapSide.SELL,
736
+ dexKey,
737
+ ContractMethod.simpleSwap,
738
+ network,
739
+ provider,
740
+ );
741
+ });
742
+ it('BUSD -> BNB', async () => {
743
+ await testE2E(
744
+ tokens.BUSD,
745
+ tokens.BNB,
746
+ holders.BUSD,
747
+ '100000000000000000000',
748
+ SwapSide.SELL,
749
+ dexKey,
750
+ ContractMethod.simpleSwap,
751
+ network,
752
+ provider,
753
+ );
754
+ });
755
+ });
756
+ describe('SimpleBuy', () => {
757
+ it('BNB -> BUSD', async () => {
758
+ await testE2E(
759
+ tokens.BNB,
760
+ tokens.BUSD,
761
+ holders.BNB,
762
+ '10000000000000000000',
763
+ SwapSide.BUY,
764
+ dexKey,
765
+ ContractMethod.simpleBuy,
766
+ network,
767
+ provider,
768
+ );
769
+ });
770
+ it('USDT -> BUSD', async () => {
771
+ await testE2E(
772
+ tokens.USDT,
773
+ tokens.BUSD,
774
+ holders.USDT,
775
+ '100000000000000000000',
776
+ SwapSide.BUY,
777
+ dexKey,
778
+ ContractMethod.simpleBuy,
779
+ network,
780
+ provider,
781
+ );
782
+ });
783
+ it('BUSD -> BNB', async () => {
784
+ await testE2E(
785
+ tokens.BUSD,
786
+ tokens.BNB,
787
+ holders.BUSD,
788
+ '10000000000000000000',
789
+ SwapSide.BUY,
790
+ dexKey,
791
+ ContractMethod.simpleBuy,
792
+ network,
793
+ provider,
794
+ );
795
+ });
796
+ });
797
+ describe('MultiSwap', () => {
798
+ it('BNB -> BUSD', async () => {
799
+ await testE2E(
800
+ tokens.BNB,
801
+ tokens.BUSD,
802
+ holders.BNB,
803
+ '10000000000000000000',
804
+ SwapSide.SELL,
805
+ dexKey,
806
+ ContractMethod.multiSwap,
807
+ network,
808
+ provider,
809
+ );
810
+ });
811
+ it('USDT -> BUSD', async () => {
812
+ await testE2E(
813
+ tokens.USDT,
814
+ tokens.BUSD,
815
+ holders.USDT,
816
+ '100000000000000000000',
817
+ SwapSide.SELL,
818
+ dexKey,
819
+ ContractMethod.multiSwap,
820
+ network,
821
+ provider,
822
+ );
823
+ });
824
+ it('BUSD -> BNB', async () => {
825
+ await testE2E(
826
+ tokens.BUSD,
827
+ tokens.BNB,
828
+ holders.BUSD,
829
+ '100000000000000000000',
830
+ SwapSide.SELL,
831
+ dexKey,
832
+ ContractMethod.multiSwap,
833
+ network,
834
+ provider,
835
+ );
836
+ });
837
+ });
838
+ describe('MegaSwap', () => {
839
+ it('USDT -> BUSD', async () => {
840
+ await testE2E(
841
+ tokens.USDT,
842
+ tokens.BUSD,
843
+ holders.USDT,
844
+ '100000000000000000000',
845
+ SwapSide.SELL,
846
+ dexKey,
847
+ ContractMethod.megaSwap,
848
+ network,
849
+ provider,
850
+ );
851
+ });
852
+ });
853
+ });
854
+
855
+ describe('CoinSwap', () => {
856
+ const dexKey = 'CoinSwap';
857
+
858
+ describe('Simpleswap', () => {
859
+ it('BUSD -> WBNB', async () => {
860
+ await testE2E(
861
+ tokens.BUSD,
862
+ tokens.WBNB,
863
+ holders.BUSD,
864
+ '1000000000000000000',
865
+ SwapSide.SELL,
866
+ dexKey,
867
+ ContractMethod.simpleSwap,
868
+ network,
869
+ provider,
870
+ );
871
+ });
872
+
873
+ it('BUSD -> BNB', async () => {
874
+ await testE2E(
875
+ tokens.BUSD,
876
+ tokens.BNB,
877
+ holders.BUSD,
878
+ '1000000000000000000',
879
+ SwapSide.SELL,
880
+ dexKey,
881
+ ContractMethod.simpleSwap,
882
+ network,
883
+ provider,
884
+ );
885
+ });
886
+
887
+ it('BNB -> BUSD', async () => {
888
+ await testE2E(
889
+ tokens.BNB,
890
+ tokens.BUSD,
891
+ holders.BNB,
892
+ '1000000000000000000',
893
+ SwapSide.SELL,
894
+ dexKey,
895
+ ContractMethod.simpleSwap,
896
+ network,
897
+ provider,
898
+ );
899
+ });
900
+ });
901
+ describe('SimpleBuy', () => {
902
+ it('BUSD -> WBNB', async () => {
903
+ await testE2E(
904
+ tokens.BUSD,
905
+ tokens.WBNB,
906
+ holders.BUSD,
907
+ '1000000000000000000',
908
+ SwapSide.BUY,
909
+ dexKey,
910
+ ContractMethod.simpleBuy,
911
+ network,
912
+ provider,
913
+ );
914
+ });
915
+
916
+ it('BUSD -> BNB', async () => {
917
+ await testE2E(
918
+ tokens.BUSD,
919
+ tokens.BNB,
920
+ holders.BUSD,
921
+ '1000000000000000000',
922
+ SwapSide.BUY,
923
+ dexKey,
924
+ ContractMethod.simpleBuy,
925
+ network,
926
+ provider,
927
+ );
928
+ });
929
+
930
+ it('BNB -> BUSD', async () => {
931
+ await testE2E(
932
+ tokens.BNB,
933
+ tokens.BUSD,
934
+ holders.BNB,
935
+ '1000000000000000000',
936
+ SwapSide.BUY,
937
+ dexKey,
938
+ ContractMethod.simpleBuy,
939
+ network,
940
+ provider,
941
+ );
942
+ });
943
+ });
944
+
945
+ describe('MultiSwap', () => {
946
+ it('BUSD -> WBNB', async () => {
947
+ await testE2E(
948
+ tokens.BUSD,
949
+ tokens.WBNB,
950
+ holders.BUSD,
951
+ '1000000000000000000',
952
+ SwapSide.SELL,
953
+ dexKey,
954
+ ContractMethod.multiSwap,
955
+ network,
956
+ provider,
957
+ );
958
+ });
959
+ it('BUSD -> BNB', async () => {
960
+ await testE2E(
961
+ tokens.BUSD,
962
+ tokens.BNB,
963
+ holders.BUSD,
964
+ '1000000000000000000',
965
+ SwapSide.SELL,
966
+ dexKey,
967
+ ContractMethod.multiSwap,
968
+ network,
969
+ provider,
970
+ );
971
+ });
972
+ it('BNB -> BUSD', async () => {
973
+ await testE2E(
974
+ tokens.BNB,
975
+ tokens.BUSD,
976
+ holders.BNB,
977
+ '1000000000000000000',
978
+ SwapSide.SELL,
979
+ dexKey,
980
+ ContractMethod.multiSwap,
981
+ network,
982
+ provider,
983
+ );
984
+ });
985
+ });
986
+ describe('MegaSwap', () => {
987
+ it('BUSD -> WBNB', async () => {
988
+ await testE2E(
989
+ tokens.BUSD,
990
+ tokens.WBNB,
991
+ holders.BUSD,
992
+ '1000000000000000000',
993
+ SwapSide.SELL,
994
+ dexKey,
995
+ ContractMethod.megaSwap,
996
+ network,
997
+ provider,
998
+ );
999
+ });
1000
+ it('BUSD -> BNB', async () => {
1001
+ await testE2E(
1002
+ tokens.BUSD,
1003
+ tokens.BNB,
1004
+ holders.BUSD,
1005
+ '1000000000000000000',
1006
+ SwapSide.SELL,
1007
+ dexKey,
1008
+ ContractMethod.megaSwap,
1009
+ network,
1010
+ provider,
1011
+ );
1012
+ });
1013
+ it('BNB -> BUSD', async () => {
1014
+ await testE2E(
1015
+ tokens.BNB,
1016
+ tokens.BUSD,
1017
+ holders.BNB,
1018
+ '1000000000000000000',
1019
+ SwapSide.SELL,
1020
+ dexKey,
1021
+ ContractMethod.megaSwap,
1022
+ network,
1023
+ provider,
1024
+ );
1025
+ });
1026
+ });
1027
+ });
1028
+
1029
+ describe('CheeseSwap', () => {
1030
+ const dexKey = 'CheeseSwap';
1031
+
1032
+ describe('Simpleswap', () => {
1033
+ it('BNB -> BUSD', async () => {
1034
+ await testE2E(
1035
+ tokens.BNB,
1036
+ tokens.BUSD,
1037
+ holders.BNB,
1038
+ '100000000000000000',
1039
+ SwapSide.SELL,
1040
+ dexKey,
1041
+ ContractMethod.simpleSwap,
1042
+ network,
1043
+ provider,
1044
+ );
1045
+ });
1046
+ it('BUSD -> BNB', async () => {
1047
+ await testE2E(
1048
+ tokens.BUSD,
1049
+ tokens.BNB,
1050
+ holders.BUSD,
1051
+ '30000000000000000',
1052
+ SwapSide.SELL,
1053
+ dexKey,
1054
+ ContractMethod.simpleSwap,
1055
+ network,
1056
+ provider,
1057
+ );
1058
+ });
1059
+ it('WBNB -> BUSD', async () => {
1060
+ await testE2E(
1061
+ tokens.WBNB,
1062
+ tokens.BUSD,
1063
+ holders.WBNB,
1064
+ '30000000000000000',
1065
+ SwapSide.SELL,
1066
+ dexKey,
1067
+ ContractMethod.simpleSwap,
1068
+ network,
1069
+ provider,
1070
+ );
1071
+ });
1072
+ });
1073
+ describe('Multi', () => {
1074
+ it('BNB -> BUSD', async () => {
1075
+ await testE2E(
1076
+ tokens.BNB,
1077
+ tokens.BUSD,
1078
+ holders.BNB,
1079
+ '30000000000000000',
1080
+ SwapSide.SELL,
1081
+ dexKey,
1082
+ ContractMethod.multiSwap,
1083
+ network,
1084
+ provider,
1085
+ );
1086
+ });
1087
+ it('BUSD -> BNB', async () => {
1088
+ await testE2E(
1089
+ tokens.BUSD,
1090
+ tokens.BNB,
1091
+ holders.BUSD,
1092
+ '30000000000000000',
1093
+ SwapSide.SELL,
1094
+ dexKey,
1095
+ ContractMethod.multiSwap,
1096
+ network,
1097
+ provider,
1098
+ );
1099
+ });
1100
+ it('WBNB -> BUSD', async () => {
1101
+ await testE2E(
1102
+ tokens.WBNB,
1103
+ tokens.BUSD,
1104
+ holders.WBNB,
1105
+ '30000000000000000',
1106
+ SwapSide.SELL,
1107
+ dexKey,
1108
+ ContractMethod.multiSwap,
1109
+ network,
1110
+ provider,
1111
+ );
1112
+ });
1113
+ });
1114
+ describe('Mega', () => {
1115
+ it('BNB -> BUSD', async () => {
1116
+ await testE2E(
1117
+ tokens.BNB,
1118
+ tokens.BUSD,
1119
+ holders.BNB,
1120
+ '30000000000000000',
1121
+ SwapSide.SELL,
1122
+ dexKey,
1123
+ ContractMethod.megaSwap,
1124
+ network,
1125
+ provider,
1126
+ );
1127
+ });
1128
+ it('BUSD -> BNB', async () => {
1129
+ await testE2E(
1130
+ tokens.BUSD,
1131
+ tokens.BNB,
1132
+ holders.BUSD,
1133
+ '30000000000000000',
1134
+ SwapSide.SELL,
1135
+ dexKey,
1136
+ ContractMethod.megaSwap,
1137
+ network,
1138
+ provider,
1139
+ );
1140
+ });
1141
+ it('BNB -> BUSD', async () => {
1142
+ await testE2E(
1143
+ tokens.BNB,
1144
+ tokens.BUSD,
1145
+ holders.BNB,
1146
+ '30000000000000000',
1147
+ SwapSide.SELL,
1148
+ dexKey,
1149
+ ContractMethod.megaSwap,
1150
+ network,
1151
+ provider,
1152
+ );
1153
+ });
1154
+ });
1155
+ describe('SimpleBuy', () => {
1156
+ it('BNB -> BUSD', async () => {
1157
+ await testE2E(
1158
+ tokens.BNB,
1159
+ tokens.BUSD,
1160
+ holders.BNB,
1161
+ '7000000000000000000',
1162
+ SwapSide.BUY,
1163
+ dexKey,
1164
+ ContractMethod.simpleBuy,
1165
+ network,
1166
+ provider,
1167
+ );
1168
+ });
1169
+ it('BUSD -> BNB', async () => {
1170
+ await testE2E(
1171
+ tokens.BUSD,
1172
+ tokens.BNB,
1173
+ holders.BUSD,
1174
+ '7000000000000',
1175
+ SwapSide.BUY,
1176
+ dexKey,
1177
+ ContractMethod.simpleBuy,
1178
+ network,
1179
+ provider,
1180
+ );
1181
+ });
1182
+ it('WBNB -> BUSD', async () => {
1183
+ await testE2E(
1184
+ tokens.WBNB,
1185
+ tokens.BUSD,
1186
+ holders.WBNB,
1187
+ '7000000000000000000',
1188
+ SwapSide.BUY,
1189
+ dexKey,
1190
+ ContractMethod.simpleBuy,
1191
+ network,
1192
+ provider,
1193
+ );
1194
+ });
1195
+ });
1196
+ });
1197
+
1198
+ describe('NomiswapV2', () => {
1199
+ const dexKey = 'NomiswapV2';
1200
+ const network = Network.BSC;
1201
+
1202
+ const tokenASymbol: string = 'USDC';
1203
+ const tokenBSymbol: string = 'USDT';
1204
+
1205
+ const tokenAAmount: string = '1111100000';
1206
+ const tokenBAmount: string = '1000000000';
1207
+ const nativeTokenAmount = '11000000000000';
1208
+
1209
+ testForNetwork(
1210
+ network,
1211
+ dexKey,
1212
+ tokenASymbol,
1213
+ tokenBSymbol,
1214
+ tokenAAmount,
1215
+ tokenBAmount,
1216
+ nativeTokenAmount,
1217
+ );
1218
+ });
1219
+
1220
+ describe(`Swapsicle`, () => {
1221
+ const dexKey = 'Swapsicle';
1222
+
1223
+ const sideToContractMethods = new Map([
1224
+ [
1225
+ SwapSide.SELL,
1226
+ [
1227
+ ContractMethod.simpleSwap,
1228
+ ContractMethod.multiSwap,
1229
+ ContractMethod.megaSwap,
1230
+ ],
1231
+ ],
1232
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
1233
+ ]);
1234
+
1235
+ const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
1236
+ [
1237
+ { name: 'WBNB', sellAmount: '7000000000000000000', buyAmount: '1000' },
1238
+ { name: 'BUSD', sellAmount: '5000', buyAmount: '10000000' },
1239
+ ],
1240
+ [
1241
+ { name: 'WBNB', sellAmount: '3000000000', buyAmount: '1000' },
1242
+ { name: 'POPS', sellAmount: '800000000000', buyAmount: '800000000000' },
1243
+ ],
1244
+ [
1245
+ { name: 'WBNB', sellAmount: '7000000000000000000', buyAmount: '1000' },
1246
+ { name: 'DAI', sellAmount: '1000', buyAmount: '1000' },
1247
+ ],
1248
+ [
1249
+ { name: 'WBNB', sellAmount: '7000000000000000000', buyAmount: '1000' },
1250
+ { name: 'USDC', sellAmount: '700', buyAmount: '1000' },
1251
+ ],
1252
+ ];
1253
+
1254
+ sideToContractMethods.forEach((contractMethods, side) =>
1255
+ describe(`${side}`, () => {
1256
+ contractMethods.forEach((contractMethod: ContractMethod) => {
1257
+ pairs.forEach(pair => {
1258
+ describe(`${contractMethod}`, () => {
1259
+ it(`${pair[0].name} -> ${pair[1].name}`, async () => {
1260
+ await testE2E(
1261
+ tokens[pair[0].name],
1262
+ tokens[pair[1].name],
1263
+ holders[pair[0].name],
1264
+ side === SwapSide.SELL
1265
+ ? pair[0].sellAmount
1266
+ : pair[0].buyAmount,
1267
+ side,
1268
+ dexKey,
1269
+ contractMethod,
1270
+ network,
1271
+ provider,
1272
+ );
1273
+ });
1274
+ it(`${pair[1].name} -> ${pair[0].name}`, async () => {
1275
+ await testE2E(
1276
+ tokens[pair[1].name],
1277
+ tokens[pair[0].name],
1278
+ holders[pair[1].name],
1279
+ side === SwapSide.SELL
1280
+ ? pair[1].sellAmount
1281
+ : pair[1].buyAmount,
1282
+ side,
1283
+ dexKey,
1284
+ contractMethod,
1285
+ network,
1286
+ provider,
1287
+ );
1288
+ });
1289
+ });
1290
+ });
1291
+ });
1292
+ }),
1293
+ );
1294
+ });
1295
+ });