@paraswap/dex-lib 3.8.37 → 3.8.39-1701-1507

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 (231) hide show
  1. package/build/abi/USDM.json +807 -0
  2. package/build/abi/bebop/BebopSettlement.abi.json +2137 -0
  3. package/build/abi/cables/CablesMainnetRFQ.json +1073 -0
  4. package/build/abi/wUSDM.json +757 -0
  5. package/build/config.js +16 -9
  6. package/build/config.js.map +1 -1
  7. package/build/dex/aave-v2/aave-v2.d.ts +1 -0
  8. package/build/dex/aave-v2/aave-v2.js +1 -0
  9. package/build/dex/aave-v2/aave-v2.js.map +1 -1
  10. package/build/dex/aave-v3/aave-v3.d.ts +1 -0
  11. package/build/dex/aave-v3/aave-v3.js +1 -0
  12. package/build/dex/aave-v3/aave-v3.js.map +1 -1
  13. package/build/dex/aave-v3-stata/aave-v3-stata.d.ts +1 -0
  14. package/build/dex/aave-v3-stata/aave-v3-stata.js +1 -0
  15. package/build/dex/aave-v3-stata/aave-v3-stata.js.map +1 -1
  16. package/build/dex/bancor/bancor.d.ts +1 -0
  17. package/build/dex/bancor/bancor.js +1 -0
  18. package/build/dex/bancor/bancor.js.map +1 -1
  19. package/build/dex/bebop/bebop.d.ts +55 -0
  20. package/build/dex/bebop/bebop.js +524 -0
  21. package/build/dex/bebop/bebop.js.map +1 -0
  22. package/build/dex/bebop/config.d.ts +3 -0
  23. package/build/dex/bebop/config.js +38 -0
  24. package/build/dex/bebop/config.js.map +1 -0
  25. package/build/dex/bebop/constants.d.ts +9 -0
  26. package/build/dex/bebop/constants.js +13 -0
  27. package/build/dex/bebop/constants.js.map +1 -0
  28. package/build/dex/bebop/rate-fetcher.d.ts +22 -0
  29. package/build/dex/bebop/rate-fetcher.js +80 -0
  30. package/build/dex/bebop/rate-fetcher.js.map +1 -0
  31. package/build/dex/bebop/types.d.ts +76 -0
  32. package/build/dex/bebop/types.js +3 -0
  33. package/build/dex/bebop/types.js.map +1 -0
  34. package/build/dex/bebop/validators.d.ts +4 -0
  35. package/build/dex/bebop/validators.js +42 -0
  36. package/build/dex/bebop/validators.js.map +1 -0
  37. package/build/dex/bebop/websocket-fetcher.d.ts +35 -0
  38. package/build/dex/bebop/websocket-fetcher.js +87 -0
  39. package/build/dex/bebop/websocket-fetcher.js.map +1 -0
  40. package/build/dex/cables/cables.d.ts +64 -0
  41. package/build/dex/cables/cables.js +445 -0
  42. package/build/dex/cables/cables.js.map +1 -0
  43. package/build/dex/cables/config.d.ts +4 -0
  44. package/build/dex/cables/config.js +15 -0
  45. package/build/dex/cables/config.js.map +1 -0
  46. package/build/dex/cables/constants.d.ts +19 -0
  47. package/build/dex/cables/constants.js +26 -0
  48. package/build/dex/cables/constants.js.map +1 -0
  49. package/build/dex/cables/rate-fetcher.d.ts +34 -0
  50. package/build/dex/cables/rate-fetcher.js +117 -0
  51. package/build/dex/cables/rate-fetcher.js.map +1 -0
  52. package/build/dex/cables/types.d.ts +106 -0
  53. package/build/dex/cables/types.js +12 -0
  54. package/build/dex/cables/types.js.map +1 -0
  55. package/build/dex/cables/validators.d.ts +5 -0
  56. package/build/dex/cables/validators.js +49 -0
  57. package/build/dex/cables/validators.js.map +1 -0
  58. package/build/dex/compound/compound.d.ts +1 -0
  59. package/build/dex/compound/compound.js +1 -0
  60. package/build/dex/compound/compound.js.map +1 -1
  61. package/build/dex/curve-v1/curve-v1.d.ts +1 -0
  62. package/build/dex/curve-v1/curve-v1.js +1 -0
  63. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  64. package/build/dex/dodo-v1/dodo-v1.d.ts +1 -0
  65. package/build/dex/dodo-v1/dodo-v1.js +1 -0
  66. package/build/dex/dodo-v1/dodo-v1.js.map +1 -1
  67. package/build/dex/hashflow/hashflow.d.ts +6 -4
  68. package/build/dex/hashflow/hashflow.js +183 -29
  69. package/build/dex/hashflow/hashflow.js.map +1 -1
  70. package/build/dex/hashflow/types.d.ts +2 -0
  71. package/build/dex/hashflow/types.js.map +1 -1
  72. package/build/dex/idex.d.ts +8 -1
  73. package/build/dex/index.js +2 -0
  74. package/build/dex/index.js.map +1 -1
  75. package/build/dex/jarvis-v6/jarvis-v6.d.ts +1 -0
  76. package/build/dex/jarvis-v6/jarvis-v6.js +1 -0
  77. package/build/dex/jarvis-v6/jarvis-v6.js.map +1 -1
  78. package/build/dex/lido/lido.d.ts +1 -0
  79. package/build/dex/lido/lido.js +1 -0
  80. package/build/dex/lido/lido.js.map +1 -1
  81. package/build/dex/lite-psm/lite-psm.d.ts +1 -0
  82. package/build/dex/lite-psm/lite-psm.js +1 -0
  83. package/build/dex/lite-psm/lite-psm.js.map +1 -1
  84. package/build/dex/maker-psm/maker-psm.d.ts +1 -0
  85. package/build/dex/maker-psm/maker-psm.js +1 -0
  86. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  87. package/build/dex/nerve/nerve.d.ts +1 -0
  88. package/build/dex/nerve/nerve.js +1 -0
  89. package/build/dex/nerve/nerve.js.map +1 -1
  90. package/build/dex/polygon-migrator/polygon-migrator.d.ts +1 -0
  91. package/build/dex/polygon-migrator/polygon-migrator.js +1 -0
  92. package/build/dex/polygon-migrator/polygon-migrator.js.map +1 -1
  93. package/build/dex/simple-exchange.d.ts +3 -1
  94. package/build/dex/simple-exchange.js +1 -0
  95. package/build/dex/simple-exchange.js.map +1 -1
  96. package/build/dex/smoothy/smoothy.d.ts +1 -0
  97. package/build/dex/smoothy/smoothy.js +1 -0
  98. package/build/dex/smoothy/smoothy.js.map +1 -1
  99. package/build/dex/spark/config.js +25 -0
  100. package/build/dex/spark/config.js.map +1 -1
  101. package/build/dex/spark/scripts/validate-state.js +1 -1
  102. package/build/dex/spark/scripts/validate-state.js.map +1 -1
  103. package/build/dex/spark/spark-sdai-pool.d.ts +7 -3
  104. package/build/dex/spark/spark-sdai-pool.js +24 -28
  105. package/build/dex/spark/spark-sdai-pool.js.map +1 -1
  106. package/build/dex/spark/spark.d.ts +11 -5
  107. package/build/dex/spark/spark.js +47 -31
  108. package/build/dex/spark/spark.js.map +1 -1
  109. package/build/dex/spark/types.d.ts +6 -0
  110. package/build/dex/spark/types.js.map +1 -1
  111. package/build/dex/spark/utils.d.ts +3 -1
  112. package/build/dex/spark/utils.js +43 -7
  113. package/build/dex/spark/utils.js.map +1 -1
  114. package/build/dex/stable-pool/stable-pool.d.ts +3 -2
  115. package/build/dex/stable-pool/stable-pool.js +2 -1
  116. package/build/dex/stable-pool/stable-pool.js.map +1 -1
  117. package/build/dex/swaap-v2/swaap-v2.d.ts +5 -3
  118. package/build/dex/swaap-v2/swaap-v2.js +112 -21
  119. package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
  120. package/build/dex/swaap-v2/types.d.ts +2 -0
  121. package/build/dex/swaap-v2/types.js.map +1 -1
  122. package/build/dex/trader-joe-v2.1/base.d.ts +1 -0
  123. package/build/dex/trader-joe-v2.1/base.js +1 -0
  124. package/build/dex/trader-joe-v2.1/base.js.map +1 -1
  125. package/build/dex/weth/weth.d.ts +1 -0
  126. package/build/dex/weth/weth.js +1 -0
  127. package/build/dex/weth/weth.js.map +1 -1
  128. package/build/dex/woo-fi-v2/woo-fi-v2-pool.d.ts +2 -2
  129. package/build/dex/woo-fi-v2/woo-fi-v2-pool.js +30 -9
  130. package/build/dex/woo-fi-v2/woo-fi-v2-pool.js.map +1 -1
  131. package/build/dex/woo-fi-v2/woo-fi-v2.js +1 -1
  132. package/build/dex/woo-fi-v2/woo-fi-v2.js.map +1 -1
  133. package/build/dex/wusdm/config.d.ts +3 -0
  134. package/build/dex/wusdm/config.js +29 -0
  135. package/build/dex/wusdm/config.js.map +1 -0
  136. package/build/dex/wusdm/types.d.ts +10 -0
  137. package/build/dex/wusdm/types.js +3 -0
  138. package/build/dex/wusdm/types.js.map +1 -0
  139. package/build/dex/wusdm/wusdm.d.ts +39 -0
  140. package/build/dex/wusdm/wusdm.js +212 -0
  141. package/build/dex/wusdm/wusdm.js.map +1 -0
  142. package/build/executor/Executor01BytecodeBuilder.d.ts +3 -3
  143. package/build/executor/Executor01BytecodeBuilder.js +65 -16
  144. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  145. package/build/executor/Executor02BytecodeBuilder.d.ts +4 -4
  146. package/build/executor/Executor02BytecodeBuilder.js +65 -18
  147. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  148. package/build/executor/Executor03BytecodeBuilder.d.ts +2 -2
  149. package/build/executor/Executor03BytecodeBuilder.js +52 -8
  150. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  151. package/build/executor/ExecutorBytecodeBuilder.d.ts +5 -4
  152. package/build/executor/ExecutorBytecodeBuilder.js +4 -4
  153. package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
  154. package/build/executor/ExecutorDetector.js +2 -1
  155. package/build/executor/ExecutorDetector.js.map +1 -1
  156. package/build/executor/types.d.ts +1 -0
  157. package/build/executor/types.js +1 -0
  158. package/build/executor/types.js.map +1 -1
  159. package/build/generic-swap-transaction-builder.d.ts +2 -0
  160. package/build/generic-swap-transaction-builder.js +49 -11
  161. package/build/generic-swap-transaction-builder.js.map +1 -1
  162. package/build/implementations/local-paraswap-sdk.js +3 -1
  163. package/build/implementations/local-paraswap-sdk.js.map +1 -1
  164. package/build/lib/fetcher/wsFetcher.d.ts +35 -0
  165. package/build/lib/fetcher/wsFetcher.js +87 -0
  166. package/build/lib/fetcher/wsFetcher.js.map +1 -0
  167. package/build/router/simpleswap.js +51 -13
  168. package/build/router/simpleswap.js.map +1 -1
  169. package/build/types.d.ts +2 -0
  170. package/package.json +4 -2
  171. package/src/abi/bebop/BebopSettlement.abi.json +2137 -0
  172. package/src/abi/sdai/SavingsUSDS.abi.json +720 -0
  173. package/src/config.ts +17 -9
  174. package/src/dex/aave-v2/aave-v2.ts +2 -0
  175. package/src/dex/aave-v3/aave-v3.ts +2 -0
  176. package/src/dex/aave-v3-stata/aave-v3-stata.ts +2 -0
  177. package/src/dex/bancor/bancor.ts +2 -0
  178. package/src/dex/bebop/bebop-e2e.test.ts +195 -0
  179. package/src/dex/bebop/bebop-integration.test.ts +170 -0
  180. package/src/dex/bebop/bebop.ts +732 -0
  181. package/src/dex/bebop/config.ts +37 -0
  182. package/src/dex/bebop/constants.ts +9 -0
  183. package/src/dex/bebop/rate-fetcher.ts +138 -0
  184. package/src/dex/bebop/types.ts +81 -0
  185. package/src/dex/bebop/validators.ts +43 -0
  186. package/src/dex/compound/compound.ts +2 -0
  187. package/src/dex/curve-v1/curve-v1.ts +2 -0
  188. package/src/dex/dodo-v1/dodo-v1.ts +2 -0
  189. package/src/dex/hashflow/hashflow-e2e.test.ts +281 -28
  190. package/src/dex/hashflow/hashflow.ts +285 -54
  191. package/src/dex/hashflow/types.ts +2 -0
  192. package/src/dex/idex.ts +18 -1
  193. package/src/dex/index.ts +2 -0
  194. package/src/dex/jarvis-v6/jarvis-v6.ts +2 -0
  195. package/src/dex/lido/lido.ts +2 -0
  196. package/src/dex/lite-psm/lite-psm.ts +2 -0
  197. package/src/dex/maker-psm/maker-psm.ts +2 -0
  198. package/src/dex/nerve/nerve.ts +2 -0
  199. package/src/dex/polygon-migrator/polygon-migrator.ts +2 -0
  200. package/src/dex/simple-exchange.ts +4 -2
  201. package/src/dex/smoothy/smoothy.ts +2 -0
  202. package/src/dex/spark/config.ts +24 -0
  203. package/src/dex/spark/scripts/validate-state.ts +1 -0
  204. package/src/dex/spark/spark-e2e.test.ts +25 -21
  205. package/src/dex/spark/spark-events.test.ts +77 -62
  206. package/src/dex/spark/spark-integration.test.ts +290 -7
  207. package/src/dex/spark/spark-sdai-pool.ts +22 -19
  208. package/src/dex/spark/spark.ts +64 -36
  209. package/src/dex/spark/types.ts +6 -0
  210. package/src/dex/spark/utils.ts +83 -19
  211. package/src/dex/stable-pool/stable-pool.ts +4 -1
  212. package/src/dex/swaap-v2/swaap-v2-e2e.test.ts +13 -13
  213. package/src/dex/swaap-v2/swaap-v2.ts +217 -32
  214. package/src/dex/swaap-v2/types.ts +2 -0
  215. package/src/dex/trader-joe-v2.1/base.ts +2 -0
  216. package/src/dex/weth/weth.ts +2 -0
  217. package/src/dex/woo-fi-v2/woo-fi-v2-pool.ts +58 -27
  218. package/src/dex/woo-fi-v2/woo-fi-v2.ts +1 -2
  219. package/src/executor/Executor01BytecodeBuilder.ts +105 -11
  220. package/src/executor/Executor02BytecodeBuilder.ts +95 -8
  221. package/src/executor/Executor03BytecodeBuilder.ts +89 -5
  222. package/src/executor/ExecutorBytecodeBuilder.ts +6 -0
  223. package/src/executor/ExecutorDetector.ts +2 -1
  224. package/src/executor/types.ts +1 -0
  225. package/src/generic-swap-transaction-builder.ts +96 -24
  226. package/src/implementations/local-paraswap-sdk.ts +21 -10
  227. package/src/lib/fetcher/wsFetcher.ts +126 -0
  228. package/src/router/simpleswap.ts +94 -18
  229. package/src/types.ts +2 -0
  230. package/tests/constants-e2e.ts +7 -2
  231. package/tests/utils-e2e.ts +308 -2
@@ -1,6 +1,4 @@
1
1
  import dotenv from 'dotenv';
2
- dotenv.config();
3
-
4
2
  import { StaticJsonRpcProvider } from '@ethersproject/providers';
5
3
  import {
6
4
  Holders,
@@ -11,8 +9,10 @@ import { testE2E } from '../../../tests/utils-e2e';
11
9
  import { generateConfig } from '../../config';
12
10
  import { ContractMethod, Network, SwapSide } from '../../constants';
13
11
 
12
+ dotenv.config();
13
+
14
14
  // Give time for rate fetcher to fill the cache
15
- const sleepMs = 3000;
15
+ const sleepMs = 5000;
16
16
 
17
17
  function testForNetwork(
18
18
  network: Network,
@@ -175,31 +175,281 @@ describe('Hashflow E2E', () => {
175
175
  describe('Mainnet', () => {
176
176
  const network = Network.MAINNET;
177
177
 
178
- const tokenASymbol: string = 'USDT';
179
- const tokenBSymbol: string = 'USDC';
178
+ describe('USDT -> USDC', () => {
179
+ const tokenASymbol: string = 'USDT';
180
+ const tokenBSymbol: string = 'USDC';
180
181
 
181
- const tokenAAmount: string = '100000000';
182
- const tokenBAmount: string = '100000000';
183
- const nativeTokenAmount = '1000000000000000000';
182
+ const tokenAAmount: string = '100000000';
183
+ const tokenBAmount: string = '100000000';
184
+ const nativeTokenAmount = '100000000000000000';
184
185
 
185
- testForNetwork(
186
- network,
187
- dexKey,
188
- tokenASymbol,
189
- tokenBSymbol,
190
- tokenAAmount,
191
- tokenBAmount,
192
- nativeTokenAmount,
193
- );
186
+ testForNetwork(
187
+ network,
188
+ dexKey,
189
+ tokenASymbol,
190
+ tokenBSymbol,
191
+ tokenAAmount,
192
+ tokenBAmount,
193
+ nativeTokenAmount,
194
+ );
195
+ });
196
+
197
+ describe('WETH -> USDC', () => {
198
+ const tokenASymbol: string = 'WETH';
199
+ const tokenBSymbol: string = 'USDC';
200
+
201
+ const tokenAAmount: string = '100000000000000000';
202
+ const tokenBAmount: string = '1000000';
203
+ const nativeTokenAmount = '100000000000000000';
204
+
205
+ testForNetwork(
206
+ network,
207
+ dexKey,
208
+ tokenASymbol,
209
+ tokenBSymbol,
210
+ tokenAAmount,
211
+ tokenBAmount,
212
+ nativeTokenAmount,
213
+ true,
214
+ );
215
+
216
+ // it(`${tokenASymbol} -> ${tokenBSymbol}`, async () => {
217
+ // await testE2E(
218
+ // tokens[tokenASymbol],
219
+ // tokens[tokenBSymbol],
220
+ // holders[tokenASymbol],
221
+ // tokenAAmount,
222
+ // SwapSide.SELL,
223
+ // dexKey,
224
+ // ContractMethod.megaSwap,
225
+ // network,
226
+ // provider,
227
+ // undefined,
228
+ // undefined,
229
+ // undefined,
230
+ // undefined,
231
+ // sleepMs,
232
+ // );
233
+ // });
234
+ //
235
+ // it(`${tokenBSymbol} -> ${tokenASymbol}`, async () => {
236
+ // await testE2E(
237
+ // tokens[tokenBSymbol],
238
+ // tokens[tokenASymbol],
239
+ // holders[tokenBSymbol],
240
+ // tokenBAmount,
241
+ // SwapSide.SELL,
242
+ // dexKey,
243
+ // ContractMethod.megaSwap,
244
+ // network,
245
+ // provider,
246
+ // undefined,
247
+ // undefined,
248
+ // undefined,
249
+ // undefined,
250
+ // sleepMs,
251
+ // );
252
+ // });
253
+ });
254
+
255
+ describe('DAI -> USDC', () => {
256
+ const tokenASymbol: string = 'DAI';
257
+ const tokenBSymbol: string = 'USDC';
258
+
259
+ const tokenAAmount: string = '100000000000000000000';
260
+ const tokenBAmount: string = '100000000';
261
+ const nativeTokenAmount = '1000000000000000000';
262
+
263
+ testForNetwork(
264
+ network,
265
+ dexKey,
266
+ tokenASymbol,
267
+ tokenBSymbol,
268
+ tokenAAmount,
269
+ tokenBAmount,
270
+ nativeTokenAmount,
271
+ );
272
+ });
273
+
274
+ describe('Multiswap', () => {
275
+ it('USDC -> ETH -> DAI', async () => {
276
+ const dexKeys = ['Hashflow'];
277
+ const provider = new StaticJsonRpcProvider(
278
+ generateConfig(network).privateHttpProvider,
279
+ network,
280
+ );
281
+ const slippage = undefined;
282
+
283
+ const tokenASymbol: string = 'USDC';
284
+ const tokenBSymbol: string = 'DAI';
285
+
286
+ const tokenAAmount: string = '22943400';
287
+
288
+ const tokens = Tokens[network];
289
+ const holders = Holders[network];
290
+ const contractMethod = ContractMethod.swapExactAmountIn;
291
+ const side = SwapSide.SELL;
292
+
293
+ await testE2E(
294
+ tokens[tokenASymbol],
295
+ tokens[tokenBSymbol],
296
+ holders[tokenASymbol],
297
+ tokenAAmount,
298
+ side,
299
+ dexKeys,
300
+ contractMethod,
301
+ network,
302
+ provider,
303
+ undefined,
304
+ undefined,
305
+ undefined,
306
+ slippage,
307
+ 2000,
308
+ false,
309
+ [
310
+ '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
311
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', // ETH
312
+ '0x6B175474E89094C44Da98b954EedeAC495271d0F', // DAI
313
+ ],
314
+ );
315
+ });
316
+
317
+ it('DAI -> ETH -> USDC', async () => {
318
+ const dexKeys = ['Hashflow'];
319
+ const provider = new StaticJsonRpcProvider(
320
+ generateConfig(network).privateHttpProvider,
321
+ network,
322
+ );
323
+ const slippage = undefined;
324
+
325
+ const tokenASymbol: string = 'DAI';
326
+ const tokenBSymbol: string = 'ETH';
327
+
328
+ const tokenAAmount: string = '22675013677618734169';
329
+
330
+ const tokens = Tokens[network];
331
+ const holders = Holders[network];
332
+ const contractMethod = ContractMethod.swapExactAmountIn;
333
+ const side = SwapSide.SELL;
334
+
335
+ await testE2E(
336
+ tokens[tokenASymbol],
337
+ tokens[tokenBSymbol],
338
+ holders[tokenASymbol],
339
+ tokenAAmount,
340
+ side,
341
+ dexKeys,
342
+ contractMethod,
343
+ network,
344
+ provider,
345
+ undefined,
346
+ undefined,
347
+ undefined,
348
+ slippage,
349
+ 2000,
350
+ false,
351
+ [
352
+ '0x6B175474E89094C44Da98b954EedeAC495271d0F', // DAI
353
+ '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', // ETH
354
+ '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
355
+ ],
356
+ );
357
+ });
358
+
359
+ it('DAI -> USDC -> WETH', async () => {
360
+ const dexKeys = ['Hashflow'];
361
+ const provider = new StaticJsonRpcProvider(
362
+ generateConfig(network).privateHttpProvider,
363
+ network,
364
+ );
365
+ const slippage = undefined;
366
+
367
+ const tokenASymbol: string = 'DAI';
368
+ const tokenBSymbol: string = 'ETH';
369
+
370
+ const tokenAAmount: string = '22675013677618734169';
371
+
372
+ const tokens = Tokens[network];
373
+ const holders = Holders[network];
374
+ const contractMethod = ContractMethod.swapExactAmountIn;
375
+ const side = SwapSide.SELL;
376
+
377
+ await testE2E(
378
+ tokens[tokenASymbol],
379
+ tokens[tokenBSymbol],
380
+ holders[tokenASymbol],
381
+ tokenAAmount,
382
+ side,
383
+ dexKeys,
384
+ contractMethod,
385
+ network,
386
+ provider,
387
+ undefined,
388
+ undefined,
389
+ undefined,
390
+ slippage,
391
+ 2000,
392
+ false,
393
+ [
394
+ '0x6B175474E89094C44Da98b954EedeAC495271d0F', // DAI
395
+ '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
396
+ '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // WETH
397
+ ],
398
+ );
399
+ });
400
+
401
+ it('WETH -> USDC -> DAI', async () => {
402
+ const dexKeys = ['Hashflow'];
403
+ const provider = new StaticJsonRpcProvider(
404
+ generateConfig(network).privateHttpProvider,
405
+ network,
406
+ );
407
+ const slippage = undefined;
408
+
409
+ const tokenASymbol: string = 'WETH';
410
+ const tokenBSymbol: string = 'DAI';
411
+
412
+ const tokenAAmount: string = '8878957204610561';
413
+
414
+ const tokens = Tokens[network];
415
+ const holders = Holders[network];
416
+ const contractMethod = ContractMethod.swapExactAmountIn;
417
+ const side = SwapSide.SELL;
418
+
419
+ await testE2E(
420
+ tokens[tokenASymbol],
421
+ tokens[tokenBSymbol],
422
+ holders[tokenASymbol],
423
+ tokenAAmount,
424
+ side,
425
+ dexKeys,
426
+ contractMethod,
427
+ network,
428
+ provider,
429
+ undefined,
430
+ undefined,
431
+ undefined,
432
+ slippage,
433
+ 2000,
434
+ false,
435
+ [
436
+ '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // WETH
437
+ '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
438
+ '0x6B175474E89094C44Da98b954EedeAC495271d0F', // DAI
439
+ ],
440
+ );
441
+ });
442
+ });
194
443
  });
195
- describe('Polygon_V6', () => {
444
+
445
+ describe('Polygon', () => {
196
446
  const network = Network.POLYGON;
197
447
 
198
- const tokenASymbol: string = 'USDC';
199
- const tokenBSymbol: string = 'DAI';
448
+ const tokenASymbol: string = 'USDCe';
449
+ const tokenBSymbol: string = 'USDT';
200
450
 
201
- const tokenAAmount: string = '1000000000';
202
- const tokenBAmount: string = '1000000000000000000000';
451
+ const tokenAAmount: string = '10000000';
452
+ const tokenBAmount: string = '10000000';
203
453
  const nativeTokenAmount = '100000000000000000000';
204
454
 
205
455
  testForNetwork(
@@ -210,16 +460,18 @@ describe('Hashflow E2E', () => {
210
460
  tokenAAmount,
211
461
  tokenBAmount,
212
462
  nativeTokenAmount,
463
+ // true,
213
464
  );
214
465
  });
466
+
215
467
  describe('BSC', () => {
216
468
  const network = Network.BSC;
217
469
 
218
470
  const tokenASymbol: string = 'USDC';
219
471
  const tokenBSymbol: string = 'USDT';
220
472
 
221
- const tokenAAmount: string = '100000000';
222
- const tokenBAmount: string = '100000000';
473
+ const tokenAAmount: string = '1000000000000000000';
474
+ const tokenBAmount: string = '1000000000000000000';
223
475
  const nativeTokenAmount = '1000000000000000000';
224
476
 
225
477
  testForNetwork(
@@ -232,14 +484,15 @@ describe('Hashflow E2E', () => {
232
484
  nativeTokenAmount,
233
485
  );
234
486
  });
487
+
235
488
  describe('Arbitrum', () => {
236
489
  const network = Network.ARBITRUM;
237
490
 
238
491
  const tokenASymbol: string = 'USDC';
239
- const tokenBSymbol: string = 'WETH';
492
+ const tokenBSymbol: string = 'USDT';
240
493
 
241
- const tokenAAmount: string = '100000000';
242
- const tokenBAmount: string = '1000000000000000000';
494
+ const tokenAAmount: string = '10000000';
495
+ const tokenBAmount: string = '10000000';
243
496
  const nativeTokenAmount = '1000000000000000000';
244
497
 
245
498
  testForNetwork(
@@ -250,9 +503,9 @@ describe('Hashflow E2E', () => {
250
503
  tokenAAmount,
251
504
  tokenBAmount,
252
505
  nativeTokenAmount,
253
- true,
254
506
  );
255
507
  });
508
+
256
509
  describe('Optimism', () => {
257
510
  const network = Network.OPTIMISM;
258
511