@marko00/routing-finder-mare 1.0.0

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 (173) hide show
  1. package/.idea/copilot.data.migration.agent.xml +6 -0
  2. package/.idea/copilot.data.migration.ask.xml +6 -0
  3. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  4. package/.idea/copilot.data.migration.edit.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/php.xml +19 -0
  7. package/.idea/ratex-sdk.iml +8 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/LICENSE-MIT +21 -0
  10. package/README.md +209 -0
  11. package/contracts/abi/BalancerHelperAbi.ts +1 -0
  12. package/contracts/abi/CamelotHelperAbi.ts +1 -0
  13. package/contracts/abi/RateXAbi.ts +482 -0
  14. package/contracts/abi/SushiSwapHelperAbi.ts +1 -0
  15. package/contracts/abi/UniswapHelperAbi.ts +1 -0
  16. package/contracts/abi/UniswapV2HelperAbi.ts +1 -0
  17. package/contracts/addresses-arbitrum.ts +8 -0
  18. package/contracts/addresses-mainnet.ts +7 -0
  19. package/contracts/addresses-polkadot.ts +9 -0
  20. package/contracts/addresses-sei.ts +9 -0
  21. package/contracts/rateX/BalancerHelper.ts +13 -0
  22. package/contracts/rateX/CamelotHelper.ts +13 -0
  23. package/contracts/rateX/SushiSwapHelper.ts +13 -0
  24. package/contracts/rateX/UniswapHelper.ts +19 -0
  25. package/contracts/rateX/UniswapV2Helper.ts +19 -0
  26. package/dexes/dexIdsList.ts +9 -0
  27. package/dexes/graph_queries/BalancerV2.ts +150 -0
  28. package/dexes/graph_queries/CamelotV2.ts +202 -0
  29. package/dexes/graph_queries/SushiSwapV2.ts +283 -0
  30. package/dexes/graph_queries/UniswapV2.ts +252 -0
  31. package/dexes/graph_queries/UniswapV3.ts +229 -0
  32. package/dexes/graph_queries/graphQueryFilters.ts +41 -0
  33. package/dexes/graph_queries/x_template.ts +67 -0
  34. package/dexes/pools/Balancer/BalancerState.ts +34 -0
  35. package/dexes/pools/Balancer/BalancerWeightedPool.ts +96 -0
  36. package/dexes/pools/Camelot.ts +164 -0
  37. package/dexes/pools/SushiSwapV2.ts +35 -0
  38. package/dexes/pools/UniswapV2.ts +36 -0
  39. package/dexes/pools/uniswap/UniswapV3.ts +40 -0
  40. package/dexes/pools/uniswap/testUniswapOffchainQuoter.ts +169 -0
  41. package/dexes/pools/uniswap/types.ts +174 -0
  42. package/dexes/pools/uniswap/uniswapOffchainQuoter.ts +173 -0
  43. package/dexes/pools/uniswap/uniswapState.ts +56 -0
  44. package/dexes/pools/uniswap/utils.ts +71 -0
  45. package/dist/contracts/abi/BalancerHelperAbi.d.ts +25 -0
  46. package/dist/contracts/abi/BalancerHelperAbi.js +4 -0
  47. package/dist/contracts/abi/CamelotHelperAbi.d.ts +45 -0
  48. package/dist/contracts/abi/CamelotHelperAbi.js +4 -0
  49. package/dist/contracts/abi/RateXAbi.d.ts +71 -0
  50. package/dist/contracts/abi/RateXAbi.js +485 -0
  51. package/dist/contracts/abi/SushiSwapHelperAbi.d.ts +45 -0
  52. package/dist/contracts/abi/SushiSwapHelperAbi.js +4 -0
  53. package/dist/contracts/abi/UniswapHelperAbi.d.ts +39 -0
  54. package/dist/contracts/abi/UniswapHelperAbi.js +4 -0
  55. package/dist/contracts/abi/UniswapV2HelperAbi.d.ts +45 -0
  56. package/dist/contracts/abi/UniswapV2HelperAbi.js +4 -0
  57. package/dist/contracts/addresses-arbitrum.d.ts +6 -0
  58. package/dist/contracts/addresses-arbitrum.js +10 -0
  59. package/dist/contracts/addresses-mainnet.d.ts +6 -0
  60. package/dist/contracts/addresses-mainnet.js +10 -0
  61. package/dist/contracts/addresses-polkadot.d.ts +6 -0
  62. package/dist/contracts/addresses-polkadot.js +10 -0
  63. package/dist/contracts/addresses-sei.d.ts +6 -0
  64. package/dist/contracts/addresses-sei.js +10 -0
  65. package/dist/contracts/rateX/BalancerHelper.d.ts +26 -0
  66. package/dist/contracts/rateX/BalancerHelper.js +14 -0
  67. package/dist/contracts/rateX/CamelotHelper.d.ts +46 -0
  68. package/dist/contracts/rateX/CamelotHelper.js +14 -0
  69. package/dist/contracts/rateX/SushiSwapHelper.d.ts +46 -0
  70. package/dist/contracts/rateX/SushiSwapHelper.js +14 -0
  71. package/dist/contracts/rateX/UniswapHelper.d.ts +40 -0
  72. package/dist/contracts/rateX/UniswapHelper.js +22 -0
  73. package/dist/contracts/rateX/UniswapV2Helper.d.ts +46 -0
  74. package/dist/contracts/rateX/UniswapV2Helper.js +22 -0
  75. package/dist/dexes/dexIdsList.d.ts +9 -0
  76. package/dist/dexes/dexIdsList.js +12 -0
  77. package/dist/dexes/graph_queries/BalancerV2.d.ts +14 -0
  78. package/dist/dexes/graph_queries/BalancerV2.js +141 -0
  79. package/dist/dexes/graph_queries/CamelotV2.d.ts +14 -0
  80. package/dist/dexes/graph_queries/CamelotV2.js +183 -0
  81. package/dist/dexes/graph_queries/SushiSwapV2.d.ts +14 -0
  82. package/dist/dexes/graph_queries/SushiSwapV2.js +263 -0
  83. package/dist/dexes/graph_queries/UniswapV2.d.ts +14 -0
  84. package/dist/dexes/graph_queries/UniswapV2.js +217 -0
  85. package/dist/dexes/graph_queries/UniswapV3.d.ts +14 -0
  86. package/dist/dexes/graph_queries/UniswapV3.js +198 -0
  87. package/dist/dexes/graph_queries/graphQueryFilters.d.ts +19 -0
  88. package/dist/dexes/graph_queries/graphQueryFilters.js +40 -0
  89. package/dist/dexes/graph_queries/x_template.d.ts +12 -0
  90. package/dist/dexes/graph_queries/x_template.js +57 -0
  91. package/dist/dexes/pools/Balancer/BalancerState.d.ts +6 -0
  92. package/dist/dexes/pools/Balancer/BalancerState.js +32 -0
  93. package/dist/dexes/pools/Balancer/BalancerWeightedPool.d.ts +12 -0
  94. package/dist/dexes/pools/Balancer/BalancerWeightedPool.js +109 -0
  95. package/dist/dexes/pools/Camelot.d.ts +12 -0
  96. package/dist/dexes/pools/Camelot.js +135 -0
  97. package/dist/dexes/pools/SushiSwapV2.d.ts +9 -0
  98. package/dist/dexes/pools/SushiSwapV2.js +34 -0
  99. package/dist/dexes/pools/UniswapV2.d.ts +9 -0
  100. package/dist/dexes/pools/UniswapV2.js +34 -0
  101. package/dist/dexes/pools/uniswap/UniswapV3.d.ts +7 -0
  102. package/dist/dexes/pools/uniswap/UniswapV3.js +36 -0
  103. package/dist/dexes/pools/uniswap/types.d.ts +76 -0
  104. package/dist/dexes/pools/uniswap/types.js +111 -0
  105. package/dist/dexes/pools/uniswap/uniswapOffchainQuoter.d.ts +13 -0
  106. package/dist/dexes/pools/uniswap/uniswapOffchainQuoter.js +121 -0
  107. package/dist/dexes/pools/uniswap/uniswapState.d.ts +14 -0
  108. package/dist/dexes/pools/uniswap/uniswapState.js +51 -0
  109. package/dist/dexes/pools/uniswap/utils.d.ts +3 -0
  110. package/dist/dexes/pools/uniswap/utils.js +41 -0
  111. package/dist/index.d.ts +26 -0
  112. package/dist/index.js +41 -0
  113. package/dist/routes.d.ts +1 -0
  114. package/dist/routes.js +20 -0
  115. package/dist/routing/iterative_spliting/main.d.ts +3 -0
  116. package/dist/routing/iterative_spliting/main.js +104 -0
  117. package/dist/routing/iterative_spliting/multiHopSwap.d.ts +4 -0
  118. package/dist/routing/iterative_spliting/multiHopSwap.js +83 -0
  119. package/dist/routing/main.d.ts +2 -0
  120. package/dist/routing/main.js +22 -0
  121. package/dist/routing/uni_like_algo/algo_config.d.ts +2 -0
  122. package/dist/routing/uni_like_algo/algo_config.js +8 -0
  123. package/dist/routing/uni_like_algo/amount_distribution.d.ts +2 -0
  124. package/dist/routing/uni_like_algo/amount_distribution.js +17 -0
  125. package/dist/routing/uni_like_algo/compute_routes_backtrack.d.ts +3 -0
  126. package/dist/routing/uni_like_algo/compute_routes_backtrack.js +44 -0
  127. package/dist/routing/uni_like_algo/main.d.ts +2 -0
  128. package/dist/routing/uni_like_algo/main.js +49 -0
  129. package/dist/routing/uni_like_algo/routes_quoter.d.ts +21 -0
  130. package/dist/routing/uni_like_algo/routes_quoter.js +53 -0
  131. package/dist/routing/uni_like_algo/swap_finder.d.ts +25 -0
  132. package/dist/routing/uni_like_algo/swap_finder.js +154 -0
  133. package/dist/routing/uni_like_algo/types.d.ts +40 -0
  134. package/dist/routing/uni_like_algo/types.js +12 -0
  135. package/dist/swap/graph_communication.d.ts +5 -0
  136. package/dist/swap/graph_communication.js +187 -0
  137. package/dist/swap/my_local_storage.d.ts +8 -0
  138. package/dist/swap/my_local_storage.js +16 -0
  139. package/dist/utils/addresses.d.ts +24 -0
  140. package/dist/utils/addresses.js +60 -0
  141. package/dist/utils/math/fixed-points.d.ts +14 -0
  142. package/dist/utils/math/fixed-points.js +123 -0
  143. package/dist/utils/math/log-exp.d.ts +5 -0
  144. package/dist/utils/math/log-exp.js +385 -0
  145. package/dist/utils/math/math.d.ts +12 -0
  146. package/dist/utils/math/math.js +50 -0
  147. package/dist/utils/types/types.d.ts +51 -0
  148. package/dist/utils/types/types.js +25 -0
  149. package/dist/utils/utils.d.ts +20 -0
  150. package/dist/utils/utils.js +72 -0
  151. package/images/decenter_logo.png +0 -0
  152. package/index.ts +50 -0
  153. package/package.json +39 -0
  154. package/routes.ts +27 -0
  155. package/routing/iterative_spliting/main.ts +131 -0
  156. package/routing/iterative_spliting/multiHopSwap.ts +98 -0
  157. package/routing/main.ts +22 -0
  158. package/routing/uni_like_algo/algo_config.ts +7 -0
  159. package/routing/uni_like_algo/amount_distribution.ts +16 -0
  160. package/routing/uni_like_algo/compute_routes_backtrack.ts +81 -0
  161. package/routing/uni_like_algo/main.ts +65 -0
  162. package/routing/uni_like_algo/routes_quoter.ts +63 -0
  163. package/routing/uni_like_algo/swap_finder.ts +185 -0
  164. package/routing/uni_like_algo/types.ts +54 -0
  165. package/swap/graph_communication.ts +212 -0
  166. package/swap/my_local_storage.ts +27 -0
  167. package/tsconfig.json +26 -0
  168. package/utils/addresses.ts +64 -0
  169. package/utils/math/fixed-points.ts +88 -0
  170. package/utils/math/log-exp.ts +469 -0
  171. package/utils/math/math.ts +46 -0
  172. package/utils/types/types.ts +100 -0
  173. package/utils/utils.ts +125 -0
@@ -0,0 +1,482 @@
1
+ export const RateXAbi = [
2
+ {
3
+ inputs: [
4
+ {
5
+ components: [
6
+ {
7
+ internalType: "uint32",
8
+ name: "dexId",
9
+ type: "uint32",
10
+ },
11
+ {
12
+ internalType: "address",
13
+ name: "dexAddress",
14
+ type: "address",
15
+ },
16
+ ],
17
+ internalType: "struct RateX.DexType[]",
18
+ name: "_initialDexes",
19
+ type: "tuple[]",
20
+ },
21
+ ],
22
+ stateMutability: "nonpayable",
23
+ type: "constructor",
24
+ },
25
+ {
26
+ inputs: [],
27
+ name: "RateX__AmountInDoesNotMatch",
28
+ type: "error",
29
+ },
30
+ {
31
+ inputs: [],
32
+ name: "RateX__AmountLesserThanMinAmount",
33
+ type: "error",
34
+ },
35
+ {
36
+ inputs: [],
37
+ name: "RateX__AmountOutDoesNotMatch",
38
+ type: "error",
39
+ },
40
+ {
41
+ inputs: [],
42
+ name: "RateX__DelegateCallFailed",
43
+ type: "error",
44
+ },
45
+ {
46
+ inputs: [],
47
+ name: "RateX__DexAlreadyExists",
48
+ type: "error",
49
+ },
50
+ {
51
+ inputs: [],
52
+ name: "RateX__DexDoesNotExist",
53
+ type: "error",
54
+ },
55
+ {
56
+ inputs: [],
57
+ name: "RateX__NoRoutes",
58
+ type: "error",
59
+ },
60
+ {
61
+ inputs: [],
62
+ name: "RateX__NotPaused",
63
+ type: "error",
64
+ },
65
+ {
66
+ inputs: [],
67
+ name: "RateX__Paused",
68
+ type: "error",
69
+ },
70
+ {
71
+ inputs: [],
72
+ name: "RateX__ReentrantCall",
73
+ type: "error",
74
+ },
75
+ {
76
+ inputs: [],
77
+ name: "RateX__ZeroAddress",
78
+ type: "error",
79
+ },
80
+ {
81
+ anonymous: false,
82
+ inputs: [
83
+ {
84
+ indexed: false,
85
+ internalType: "uint32",
86
+ name: "dexId",
87
+ type: "uint32",
88
+ },
89
+ {
90
+ indexed: false,
91
+ internalType: "address",
92
+ name: "dexAddress",
93
+ type: "address",
94
+ },
95
+ ],
96
+ name: "DexAdded",
97
+ type: "event",
98
+ },
99
+ {
100
+ anonymous: false,
101
+ inputs: [
102
+ {
103
+ indexed: false,
104
+ internalType: "uint32",
105
+ name: "dexId",
106
+ type: "uint32",
107
+ },
108
+ ],
109
+ name: "DexRemoved",
110
+ type: "event",
111
+ },
112
+ {
113
+ anonymous: false,
114
+ inputs: [
115
+ {
116
+ indexed: false,
117
+ internalType: "uint32",
118
+ name: "dexId",
119
+ type: "uint32",
120
+ },
121
+ {
122
+ indexed: false,
123
+ internalType: "address",
124
+ name: "oldAddress",
125
+ type: "address",
126
+ },
127
+ {
128
+ indexed: false,
129
+ internalType: "address",
130
+ name: "newAddress",
131
+ type: "address",
132
+ },
133
+ ],
134
+ name: "DexReplaced",
135
+ type: "event",
136
+ },
137
+ {
138
+ anonymous: false,
139
+ inputs: [
140
+ {
141
+ indexed: true,
142
+ internalType: "address",
143
+ name: "previousOwner",
144
+ type: "address",
145
+ },
146
+ {
147
+ indexed: true,
148
+ internalType: "address",
149
+ name: "newOwner",
150
+ type: "address",
151
+ },
152
+ ],
153
+ name: "OwnershipTransferStarted",
154
+ type: "event",
155
+ },
156
+ {
157
+ anonymous: false,
158
+ inputs: [
159
+ {
160
+ indexed: true,
161
+ internalType: "address",
162
+ name: "previousOwner",
163
+ type: "address",
164
+ },
165
+ {
166
+ indexed: true,
167
+ internalType: "address",
168
+ name: "newOwner",
169
+ type: "address",
170
+ },
171
+ ],
172
+ name: "OwnershipTransferred",
173
+ type: "event",
174
+ },
175
+ {
176
+ anonymous: false,
177
+ inputs: [],
178
+ name: "Paused",
179
+ type: "event",
180
+ },
181
+ {
182
+ anonymous: false,
183
+ inputs: [
184
+ {
185
+ indexed: false,
186
+ internalType: "address",
187
+ name: "tokenIn",
188
+ type: "address",
189
+ },
190
+ {
191
+ indexed: false,
192
+ internalType: "address",
193
+ name: "tokenOut",
194
+ type: "address",
195
+ },
196
+ {
197
+ indexed: false,
198
+ internalType: "uint256",
199
+ name: "amountIn",
200
+ type: "uint256",
201
+ },
202
+ {
203
+ indexed: false,
204
+ internalType: "uint256",
205
+ name: "amountOut",
206
+ type: "uint256",
207
+ },
208
+ {
209
+ indexed: false,
210
+ internalType: "address",
211
+ name: "recipient",
212
+ type: "address",
213
+ },
214
+ ],
215
+ name: "SwapEvent",
216
+ type: "event",
217
+ },
218
+ {
219
+ anonymous: false,
220
+ inputs: [],
221
+ name: "Unpaused",
222
+ type: "event",
223
+ },
224
+ {
225
+ inputs: [],
226
+ name: "acceptOwnership",
227
+ outputs: [],
228
+ stateMutability: "nonpayable",
229
+ type: "function",
230
+ },
231
+ {
232
+ inputs: [
233
+ {
234
+ components: [
235
+ {
236
+ internalType: "uint32",
237
+ name: "dexId",
238
+ type: "uint32",
239
+ },
240
+ {
241
+ internalType: "address",
242
+ name: "dexAddress",
243
+ type: "address",
244
+ },
245
+ ],
246
+ internalType: "struct RateX.DexType",
247
+ name: "_dex",
248
+ type: "tuple",
249
+ },
250
+ ],
251
+ name: "addDex",
252
+ outputs: [],
253
+ stateMutability: "nonpayable",
254
+ type: "function",
255
+ },
256
+ {
257
+ inputs: [
258
+ {
259
+ internalType: "uint32",
260
+ name: "",
261
+ type: "uint32",
262
+ },
263
+ ],
264
+ name: "dexes",
265
+ outputs: [
266
+ {
267
+ internalType: "address",
268
+ name: "",
269
+ type: "address",
270
+ },
271
+ ],
272
+ stateMutability: "view",
273
+ type: "function",
274
+ },
275
+ {
276
+ inputs: [],
277
+ name: "isPaused",
278
+ outputs: [
279
+ {
280
+ internalType: "bool",
281
+ name: "paused",
282
+ type: "bool",
283
+ },
284
+ ],
285
+ stateMutability: "view",
286
+ type: "function",
287
+ },
288
+ {
289
+ inputs: [],
290
+ name: "owner",
291
+ outputs: [
292
+ {
293
+ internalType: "address",
294
+ name: "",
295
+ type: "address",
296
+ },
297
+ ],
298
+ stateMutability: "view",
299
+ type: "function",
300
+ },
301
+ {
302
+ inputs: [],
303
+ name: "pause",
304
+ outputs: [],
305
+ stateMutability: "nonpayable",
306
+ type: "function",
307
+ },
308
+ {
309
+ inputs: [],
310
+ name: "pendingOwner",
311
+ outputs: [
312
+ {
313
+ internalType: "address",
314
+ name: "",
315
+ type: "address",
316
+ },
317
+ ],
318
+ stateMutability: "view",
319
+ type: "function",
320
+ },
321
+ {
322
+ inputs: [
323
+ {
324
+ internalType: "uint32",
325
+ name: "_dexId",
326
+ type: "uint32",
327
+ },
328
+ ],
329
+ name: "removeDex",
330
+ outputs: [],
331
+ stateMutability: "nonpayable",
332
+ type: "function",
333
+ },
334
+ {
335
+ inputs: [],
336
+ name: "renounceOwnership",
337
+ outputs: [],
338
+ stateMutability: "nonpayable",
339
+ type: "function",
340
+ },
341
+ {
342
+ inputs: [
343
+ {
344
+ components: [
345
+ {
346
+ internalType: "uint32",
347
+ name: "dexId",
348
+ type: "uint32",
349
+ },
350
+ {
351
+ internalType: "address",
352
+ name: "dexAddress",
353
+ type: "address",
354
+ },
355
+ ],
356
+ internalType: "struct RateX.DexType",
357
+ name: "_dex",
358
+ type: "tuple",
359
+ },
360
+ ],
361
+ name: "replaceDex",
362
+ outputs: [],
363
+ stateMutability: "nonpayable",
364
+ type: "function",
365
+ },
366
+ {
367
+ inputs: [
368
+ {
369
+ internalType: "address",
370
+ name: "_token",
371
+ type: "address",
372
+ },
373
+ {
374
+ internalType: "address",
375
+ name: "_recipient",
376
+ type: "address",
377
+ },
378
+ {
379
+ internalType: "uint256",
380
+ name: "_amount",
381
+ type: "uint256",
382
+ },
383
+ ],
384
+ name: "rescueFunds",
385
+ outputs: [],
386
+ stateMutability: "nonpayable",
387
+ type: "function",
388
+ },
389
+ {
390
+ inputs: [
391
+ {
392
+ components: [
393
+ {
394
+ components: [
395
+ {
396
+ internalType: "bytes",
397
+ name: "data",
398
+ type: "bytes",
399
+ },
400
+ {
401
+ internalType: "uint32",
402
+ name: "dexId",
403
+ type: "uint32",
404
+ },
405
+ ],
406
+ internalType: "struct RateX.SwapStep[]",
407
+ name: "swaps",
408
+ type: "tuple[]",
409
+ },
410
+ {
411
+ internalType: "uint256",
412
+ name: "amountIn",
413
+ type: "uint256",
414
+ },
415
+ ],
416
+ internalType: "struct RateX.Route[]",
417
+ name: "_foundRoutes",
418
+ type: "tuple[]",
419
+ },
420
+ {
421
+ internalType: "address",
422
+ name: "_tokenIn",
423
+ type: "address",
424
+ },
425
+ {
426
+ internalType: "address",
427
+ name: "_tokenOut",
428
+ type: "address",
429
+ },
430
+ {
431
+ internalType: "uint256",
432
+ name: "_amountIn",
433
+ type: "uint256",
434
+ },
435
+ {
436
+ internalType: "uint256",
437
+ name: "_quotedAmountWithSlippageProtection",
438
+ type: "uint256",
439
+ },
440
+ {
441
+ internalType: "address",
442
+ name: "_recipient",
443
+ type: "address",
444
+ },
445
+ {
446
+ internalType: "uint256",
447
+ name: "_deadline",
448
+ type: "uint256",
449
+ },
450
+ ],
451
+ name: "swap",
452
+ outputs: [
453
+ {
454
+ internalType: "uint256",
455
+ name: "amountOut",
456
+ type: "uint256",
457
+ },
458
+ ],
459
+ stateMutability: "nonpayable",
460
+ type: "function",
461
+ },
462
+ {
463
+ inputs: [
464
+ {
465
+ internalType: "address",
466
+ name: "newOwner",
467
+ type: "address",
468
+ },
469
+ ],
470
+ name: "transferOwnership",
471
+ outputs: [],
472
+ stateMutability: "nonpayable",
473
+ type: "function",
474
+ },
475
+ {
476
+ inputs: [],
477
+ name: "unpause",
478
+ outputs: [],
479
+ stateMutability: "nonpayable",
480
+ type: "function",
481
+ },
482
+ ];
@@ -0,0 +1 @@
1
+ export const SushiSwapHelperAbi = [{"inputs":[{"components":[{"internalType":"address","name":"poolId","type":"address"},{"internalType":"string","name":"dexId","type":"string"},{"components":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"internalType":"struct IHelperState.Token[]","name":"tokens","type":"tuple[]"}],"internalType":"struct IHelperState.PoolInfo[]","name":"poolsInfo","type":"tuple[]"}],"name":"getPoolsData","outputs":[{"components":[{"internalType":"address","name":"poolId","type":"address"},{"internalType":"string","name":"dexId","type":"string"},{"components":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"internalType":"struct IHelperState.Token[]","name":"tokens","type":"tuple[]"},{"internalType":"uint256[]","name":"reserves","type":"uint256[]"}],"internalType":"struct SushiSwapHelper.SushiSwapV2Pool[]","name":"pools","type":"tuple[]"}],"stateMutability":"view","type":"function"}]
@@ -0,0 +1 @@
1
+ export const UniswapHelperAbi = [{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_tokenIn","type":"address"},{"internalType":"address","name":"_tokenOut","type":"address"},{"internalType":"uint256","name":"_amountIn","type":"uint256"}],"name":"estimateAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_pools","type":"address[]"},{"internalType":"uint256","name":"_numOfTicks","type":"uint256"}],"name":"fetchData","outputs":[{"components":[{"components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"int128","name":"tickLiquidityNet","type":"int128"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"internalType":"struct IUniswapState.PoolInfo","name":"info","type":"tuple"},{"components":[{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"int128","name":"liquidityNet","type":"int128"}],"internalType":"struct IUniswapState.TickData[]","name":"zeroForOneTicks","type":"tuple[]"},{"components":[{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"int128","name":"liquidityNet","type":"int128"}],"internalType":"struct IUniswapState.TickData[]","name":"oneForZeroTicks","type":"tuple[]"}],"internalType":"struct IUniswapState.PoolData[]","name":"poolData","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"},{"internalType":"uint256","name":"_numOfTicks","type":"uint256"}],"name":"fetchPoolData","outputs":[{"components":[{"components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"int128","name":"tickLiquidityNet","type":"int128"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"internalType":"struct IUniswapState.PoolInfo","name":"info","type":"tuple"},{"components":[{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"int128","name":"liquidityNet","type":"int128"}],"internalType":"struct IUniswapState.TickData[]","name":"zeroForOneTicks","type":"tuple[]"},{"components":[{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"int128","name":"liquidityNet","type":"int128"}],"internalType":"struct IUniswapState.TickData[]","name":"oneForZeroTicks","type":"tuple[]"}],"internalType":"struct IUniswapState.PoolData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}]
@@ -0,0 +1 @@
1
+ export const UniswapV2HelperAbi = [{"inputs":[{"components":[{"internalType":"address","name":"poolId","type":"address"},{"internalType":"string","name":"dexId","type":"string"},{"components":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"internalType":"struct IHelperState.Token[]","name":"tokens","type":"tuple[]"}],"internalType":"struct IHelperState.PoolInfo[]","name":"poolsInfo","type":"tuple[]"}],"name":"getPoolsData","outputs":[{"components":[{"internalType":"address","name":"poolId","type":"address"},{"internalType":"string","name":"dexId","type":"string"},{"components":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"internalType":"struct IHelperState.Token[]","name":"tokens","type":"tuple[]"},{"internalType":"uint256[]","name":"reserves","type":"uint256[]"}],"internalType":"struct UniswapV2Helper.UniswapV2Pool[]","name":"pools","type":"tuple[]"}],"stateMutability":"view","type":"function"}]
@@ -0,0 +1,8 @@
1
+
2
+ // chainId: 42161
3
+ export const RATE_X_ADDRESS = "0x1D3ac829f8b0056972491095342730710e956629"
4
+ export const UNISWAP_HELPER_ADDRESS = "0xBf70F85011047C4cF31696780BdB6db752527d7c"
5
+ export const SUSHISWAP_HELPER_ADDRESS = "0x141fc598Ed85a23e78f2b58ABe95AC013d196249"
6
+ export const CAMELOT_HELPER_ADDRESS = "0x91DE0353a4f93BD460dE3a373Feb50c53571c078"
7
+ export const BALANCER_HELPER_ADDRESS = "0xd1dFeDe71160a0a1e869e2D3F428A47531726BfE"
8
+ export const UNISWAP_V2_HELPER_ADDRESS = "0x24725a85903e83A4829F51287B8E0BD321121DbC"
@@ -0,0 +1,7 @@
1
+ // chainId: 1
2
+ export const RATE_X_ADDRESS = "0xAC64cF5B37124e62Ad716e664faF711Bd0882056"
3
+ export const UNISWAP_HELPER_ADDRESS = "0xBFA0CAC4e1FC4958Ef24732F5b1e063637D20704"
4
+ export const SUSHISWAP_HELPER_ADDRESS = "0xAc62F8Ff99B1fEa563Cf8d47Ce1B9fE76F3AC5b8"
5
+ export const CAMELOT_HELPER_ADDRESS = "Does not exist on mainnet"
6
+ export const BALANCER_HELPER_ADDRESS = "0xf77f3E6ed19DAFe90f90c3C1609207902C7414f9"
7
+ export const UNISWAP_V2_HELPER_ADDRESS = "0x043EEB82faC75641146955Fea5509C824b2AD22A"
@@ -0,0 +1,9 @@
1
+
2
+ // chainId: 420420417
3
+ export const RATE_X_ADDRESS = "0xCfA0D6244c4Ca91aA3F4d700b98B2f2b08c89478"
4
+ export const SUSHISWAP_HELPER_ADDRESS = "0x141fc598Ed85a23e78f2b58ABe95AC013d196249"
5
+ export const CAMELOT_HELPER_ADDRESS = "0x91DE0353a4f93BD460dE3a373Feb50c53571c078"
6
+ export const BALANCER_HELPER_ADDRESS = "0xd1dFeDe71160a0a1e869e2D3F428A47531726BfE"
7
+
8
+ export const UNISWAP_HELPER_ADDRESS = "0x5F8eD01104fb64eA66dE025dd52bD674Cee31e51"
9
+ export const UNISWAP_V2_HELPER_ADDRESS = "0xEaCd7162b506a7Ee0F31A15BDce6B03fF06c6f8b"
@@ -0,0 +1,9 @@
1
+
2
+ // chainId: 42161
3
+ export const RATE_X_ADDRESS = "0x1D3ac829f8b0056972491095342730710e956629"
4
+ export const SUSHISWAP_HELPER_ADDRESS = "0x141fc598Ed85a23e78f2b58ABe95AC013d196249"
5
+ export const CAMELOT_HELPER_ADDRESS = "0x91DE0353a4f93BD460dE3a373Feb50c53571c078"
6
+ export const BALANCER_HELPER_ADDRESS = "0xd1dFeDe71160a0a1e869e2D3F428A47531726BfE"
7
+
8
+ export const UNISWAP_HELPER_ADDRESS = "0x32400EbaC2e81dAd18aaBCc9C37Ef992f1CC833F"
9
+ export const UNISWAP_V2_HELPER_ADDRESS = "0x32191e4724670D8683e22C9463a23D9eB8C0fb73"
@@ -0,0 +1,13 @@
1
+ import { BalancerHelperAbi } from '../abi/BalancerHelperAbi'
2
+ import Web3 from 'web3'
3
+
4
+ import { BALANCER_HELPER_ADDRESS as BALANCER_HELPER_ADDRESS_MAINNET } from '../addresses-mainnet'
5
+ import { BALANCER_HELPER_ADDRESS as BALANCER_HELPER_ADDRESS_ARBITRUM } from '../addresses-arbitrum'
6
+
7
+ export function CreateBalancerHelperContract(chainId: number, web3: Web3) {
8
+ if (chainId === 1) {
9
+ return new web3.eth.Contract(BalancerHelperAbi, BALANCER_HELPER_ADDRESS_MAINNET)
10
+ } else {
11
+ return new web3.eth.Contract(BalancerHelperAbi, BALANCER_HELPER_ADDRESS_ARBITRUM)
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import Web3 from 'web3'
2
+ import { CamelotHelperAbi } from '../abi/CamelotHelperAbi'
3
+
4
+ import { CAMELOT_HELPER_ADDRESS as UNISWAP_HELPER_ADDRESS_MAINNET } from '../addresses-mainnet'
5
+ import { CAMELOT_HELPER_ADDRESS as UNISWAP_HELPER_ADDRESS_ARBITRUM } from '../addresses-arbitrum'
6
+
7
+ export function CreateCamelotHelperContract(chainId: number, web3: Web3) {
8
+ if (chainId === 1) {
9
+ return new web3.eth.Contract(CamelotHelperAbi, UNISWAP_HELPER_ADDRESS_MAINNET)
10
+ } else {
11
+ return new web3.eth.Contract(CamelotHelperAbi, UNISWAP_HELPER_ADDRESS_ARBITRUM)
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ import { SushiSwapHelperAbi } from '../abi/SushiSwapHelperAbi'
2
+ import Web3 from 'web3'
3
+
4
+ import { SUSHISWAP_HELPER_ADDRESS as SUSHISWAP_HELPER_ADDRESS_MAINNET } from '../addresses-mainnet'
5
+ import { SUSHISWAP_HELPER_ADDRESS as SUSHISWAP_HELPER_ADDRESS_ARBITRUM } from '../addresses-arbitrum'
6
+
7
+ export function CreateSushiSwapHelperContract(chainId: number, web3: Web3) {
8
+ if (chainId === 1) {
9
+ return new web3.eth.Contract(SushiSwapHelperAbi, SUSHISWAP_HELPER_ADDRESS_MAINNET)
10
+ } else {
11
+ return new web3.eth.Contract(SushiSwapHelperAbi, SUSHISWAP_HELPER_ADDRESS_ARBITRUM)
12
+ }
13
+ }
@@ -0,0 +1,19 @@
1
+ import { UniswapHelperAbi } from '../abi/UniswapHelperAbi'
2
+ import Web3 from 'web3'
3
+
4
+ import { UNISWAP_HELPER_ADDRESS as UNISWAP_HELPER_ADDRESS_MAINNET } from '../addresses-mainnet'
5
+ import { UNISWAP_HELPER_ADDRESS as UNISWAP_HELPER_ADDRESS_ARBITRUM } from '../addresses-arbitrum'
6
+ import { UNISWAP_HELPER_ADDRESS as UNISWAP_HELPER_ADDRESS_SEI } from '../addresses-sei'
7
+ import { UNISWAP_HELPER_ADDRESS as UNISWAP_HELPER_ADDRESS_POLKADOT } from '../addresses-polkadot'
8
+
9
+ export function CreateUniswapHelperContract(chainId: number, web3: Web3) {
10
+ if (chainId === 1) {
11
+ return new web3.eth.Contract(UniswapHelperAbi, UNISWAP_HELPER_ADDRESS_MAINNET)
12
+ } else if (chainId === 1329) {
13
+ return new web3.eth.Contract(UniswapHelperAbi, UNISWAP_HELPER_ADDRESS_SEI)
14
+ } else if (chainId === 420420417) {
15
+ return new web3.eth.Contract(UniswapHelperAbi, UNISWAP_HELPER_ADDRESS_POLKADOT)
16
+ } else {
17
+ return new web3.eth.Contract(UniswapHelperAbi, UNISWAP_HELPER_ADDRESS_ARBITRUM)
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ import Web3 from 'web3'
2
+ import { UniswapV2HelperAbi } from '../abi/UniswapV2HelperAbi'
3
+
4
+ import { UNISWAP_V2_HELPER_ADDRESS as UNISWAP_V2_HELPER_ADDRESS_MAINNET } from '../addresses-mainnet'
5
+ import { UNISWAP_V2_HELPER_ADDRESS as UNISWAP_V2_HELPER_ADDRESS_ARBITRUM } from '../addresses-arbitrum'
6
+ import { UNISWAP_V2_HELPER_ADDRESS as UNISWAP_V2_HELPER_ADDRESS_SEI } from '../addresses-sei'
7
+ import { UNISWAP_V2_HELPER_ADDRESS as UNISWAP_V2_HELPER_ADDRESS_POLKADOT } from '../addresses-polkadot'
8
+
9
+ export function CreateUniswapV2HelperContract(chainId: number, web3: Web3) {
10
+ if (chainId === 1) {
11
+ return new web3.eth.Contract(UniswapV2HelperAbi, UNISWAP_V2_HELPER_ADDRESS_MAINNET)
12
+ } else if (chainId === 1329) {
13
+ return new web3.eth.Contract(UniswapV2HelperAbi, UNISWAP_V2_HELPER_ADDRESS_SEI)
14
+ } else if (chainId === 420420417) {
15
+ return new web3.eth.Contract(UniswapV2HelperAbi, UNISWAP_V2_HELPER_ADDRESS_POLKADOT)
16
+ } else {
17
+ return new web3.eth.Contract(UniswapV2HelperAbi, UNISWAP_V2_HELPER_ADDRESS_ARBITRUM)
18
+ }
19
+ }
@@ -0,0 +1,9 @@
1
+ export const dexIds = {
2
+ SUSHI_V2: 'SUSHI_V2',
3
+ UNI_V3: 'UNI_V3',
4
+ CAMELOT: 'CAMELOT',
5
+ BALANCER_V2: 'BALANCER_V2',
6
+ UNI_V2: 'UNI_V2'
7
+ }
8
+ export const balancerWeightedPoolTypes = ['Weighted', 'Managed', 'LiquidityBootstrapping']
9
+ export const balancerStablePoolTypes = ['Stable', 'MetaStable', 'ComposableStable']