@paraswap/dex-lib 2.42.28 → 2.42.29

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 (130) hide show
  1. package/build/abi/{algebra/AlgebraPool.abi.json → solidly-v3/SolidlyV3Pool.abi.json} +293 -282
  2. package/build/abi/solidly-v3/SolidlyV3StateMulticall.abi.json +375 -0
  3. package/build/config.js +2 -2
  4. package/build/dex/index.js +2 -0
  5. package/build/dex/index.js.map +1 -1
  6. package/build/dex/solidly-v3/config.d.ts +9 -0
  7. package/build/dex/solidly-v3/config.js +58 -0
  8. package/build/dex/solidly-v3/config.js.map +1 -0
  9. package/build/dex/solidly-v3/constants.d.ts +27 -0
  10. package/build/dex/solidly-v3/constants.js +34 -0
  11. package/build/dex/solidly-v3/constants.js.map +1 -0
  12. package/build/dex/solidly-v3/contract-math/BitMath.d.ts +4 -0
  13. package/build/dex/solidly-v3/contract-math/BitMath.js +93 -0
  14. package/build/dex/solidly-v3/contract-math/BitMath.js.map +1 -0
  15. package/build/dex/solidly-v3/contract-math/FixedPoint128.d.ts +3 -0
  16. package/build/dex/solidly-v3/contract-math/FixedPoint128.js +8 -0
  17. package/build/dex/solidly-v3/contract-math/FixedPoint128.js.map +1 -0
  18. package/build/dex/solidly-v3/contract-math/FixedPoint96.d.ts +4 -0
  19. package/build/dex/solidly-v3/contract-math/FixedPoint96.js +9 -0
  20. package/build/dex/solidly-v3/contract-math/FixedPoint96.js.map +1 -0
  21. package/build/dex/solidly-v3/contract-math/FullMath.d.ts +4 -0
  22. package/build/dex/solidly-v3/contract-math/FullMath.js +19 -0
  23. package/build/dex/solidly-v3/contract-math/FullMath.js.map +1 -0
  24. package/build/dex/solidly-v3/contract-math/LiquidityMath.d.ts +3 -0
  25. package/build/dex/solidly-v3/contract-math/LiquidityMath.js +22 -0
  26. package/build/dex/solidly-v3/contract-math/LiquidityMath.js.map +1 -0
  27. package/build/dex/solidly-v3/contract-math/SqrtPriceMath.d.ts +10 -0
  28. package/build/dex/solidly-v3/contract-math/SqrtPriceMath.js +91 -0
  29. package/build/dex/solidly-v3/contract-math/SqrtPriceMath.js.map +1 -0
  30. package/build/dex/solidly-v3/contract-math/SwapMath.d.ts +8 -0
  31. package/build/dex/solidly-v3/contract-math/SwapMath.js +70 -0
  32. package/build/dex/solidly-v3/contract-math/SwapMath.js.map +1 -0
  33. package/build/dex/solidly-v3/contract-math/Tick.d.ts +7 -0
  34. package/build/dex/solidly-v3/contract-math/Tick.js +36 -0
  35. package/build/dex/solidly-v3/contract-math/Tick.js.map +1 -0
  36. package/build/dex/solidly-v3/contract-math/TickBitMap.d.ts +7 -0
  37. package/build/dex/solidly-v3/contract-math/TickBitMap.js +84 -0
  38. package/build/dex/solidly-v3/contract-math/TickBitMap.js.map +1 -0
  39. package/build/dex/solidly-v3/contract-math/TickMath.d.ts +8 -0
  40. package/build/dex/solidly-v3/contract-math/TickMath.js +162 -0
  41. package/build/dex/solidly-v3/contract-math/TickMath.js.map +1 -0
  42. package/build/dex/solidly-v3/contract-math/UnsafeMath.d.ts +3 -0
  43. package/build/dex/solidly-v3/contract-math/UnsafeMath.js +10 -0
  44. package/build/dex/solidly-v3/contract-math/UnsafeMath.js.map +1 -0
  45. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.d.ts +31 -0
  46. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js +363 -0
  47. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js.map +1 -0
  48. package/build/dex/solidly-v3/contract-math/utils.d.ts +7 -0
  49. package/build/dex/solidly-v3/contract-math/utils.js +39 -0
  50. package/build/dex/solidly-v3/contract-math/utils.js.map +1 -0
  51. package/build/dex/solidly-v3/solidly-v3-factory.d.ts +26 -0
  52. package/build/dex/solidly-v3/solidly-v3-factory.js +44 -0
  53. package/build/dex/solidly-v3/solidly-v3-factory.js.map +1 -0
  54. package/build/dex/{algebra/algebra-pool.d.ts → solidly-v3/solidly-v3-pool.d.ts} +14 -16
  55. package/build/dex/{algebra/algebra-pool.js → solidly-v3/solidly-v3-pool.js} +127 -165
  56. package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -0
  57. package/build/dex/solidly-v3/solidly-v3.d.ts +67 -0
  58. package/build/dex/solidly-v3/solidly-v3.js +590 -0
  59. package/build/dex/solidly-v3/solidly-v3.js.map +1 -0
  60. package/build/dex/solidly-v3/types.d.ts +132 -0
  61. package/build/dex/solidly-v3/types.js +9 -0
  62. package/build/dex/solidly-v3/types.js.map +1 -0
  63. package/build/dex/solidly-v3/utils.d.ts +6 -0
  64. package/build/dex/solidly-v3/utils.js +53 -0
  65. package/build/dex/solidly-v3/utils.js.map +1 -0
  66. package/build/dex/trader-joe-v2-1-2/config.d.ts +4 -0
  67. package/build/dex/trader-joe-v2-1-2/config.js +15 -0
  68. package/build/dex/trader-joe-v2-1-2/config.js.map +1 -0
  69. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +39 -0
  70. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +64 -0
  71. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +1 -0
  72. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +37 -0
  73. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +126 -0
  74. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +1 -0
  75. package/build/dex/trader-joe-v2-1-2/types.d.ts +6 -0
  76. package/build/dex/trader-joe-v2-1-2/types.js +3 -0
  77. package/build/dex/trader-joe-v2-1-2/types.js.map +1 -0
  78. package/build/dex/trader-joe-v2_1/config.d.ts +4 -0
  79. package/build/dex/trader-joe-v2_1/config.js +48 -0
  80. package/build/dex/trader-joe-v2_1/config.js.map +1 -0
  81. package/build/dex/trader-joe-v2_1/constants.d.ts +15 -0
  82. package/build/dex/trader-joe-v2_1/constants.js +17 -0
  83. package/build/dex/trader-joe-v2_1/constants.js.map +1 -0
  84. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  85. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +183 -0
  86. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +1 -0
  87. package/build/dex/trader-joe-v2_1/types.d.ts +39 -0
  88. package/build/dex/trader-joe-v2_1/types.js +3 -0
  89. package/build/dex/trader-joe-v2_1/types.js.map +1 -0
  90. package/build/dex/wombat/wombat-pool-poller.d.ts +22 -0
  91. package/build/dex/wombat/wombat-pool-poller.js +164 -0
  92. package/build/dex/wombat/wombat-pool-poller.js.map +1 -0
  93. package/package.json +1 -1
  94. package/src/abi/solidly-v3/SolidlyV3Pool.abi.json +738 -0
  95. package/src/abi/solidly-v3/SolidlyV3StateMulticall.abi.json +375 -0
  96. package/src/config.ts +2 -2
  97. package/src/dex/index.ts +2 -0
  98. package/src/dex/solidly-v3/config.ts +64 -0
  99. package/src/dex/solidly-v3/constants.ts +42 -0
  100. package/src/dex/solidly-v3/contract-math/BitMath.ts +90 -0
  101. package/src/dex/solidly-v3/contract-math/FixedPoint128.ts +3 -0
  102. package/src/dex/solidly-v3/contract-math/FixedPoint96.ts +4 -0
  103. package/src/dex/solidly-v3/contract-math/FullMath.ts +30 -0
  104. package/src/dex/solidly-v3/contract-math/LiquidityMath.ts +17 -0
  105. package/src/dex/solidly-v3/contract-math/SqrtPriceMath.ts +226 -0
  106. package/src/dex/solidly-v3/contract-math/SwapMath.ts +139 -0
  107. package/src/dex/solidly-v3/contract-math/Tick.ts +66 -0
  108. package/src/dex/solidly-v3/contract-math/TickBitMap.ts +123 -0
  109. package/src/dex/solidly-v3/contract-math/TickMath.ts +211 -0
  110. package/src/dex/solidly-v3/contract-math/UnsafeMath.ts +5 -0
  111. package/src/dex/solidly-v3/contract-math/uniswap-v3-math.ts +570 -0
  112. package/src/dex/solidly-v3/contract-math/utils.ts +50 -0
  113. package/src/dex/solidly-v3/solidly-v3-e2e.test.ts +124 -0
  114. package/src/dex/solidly-v3/solidly-v3-events.test.ts +144 -0
  115. package/src/dex/solidly-v3/solidly-v3-factory.ts +73 -0
  116. package/src/dex/solidly-v3/solidly-v3-integration.test.ts +358 -0
  117. package/src/dex/solidly-v3/solidly-v3-pool.ts +494 -0
  118. package/src/dex/solidly-v3/solidly-v3.ts +988 -0
  119. package/src/dex/solidly-v3/types.ts +158 -0
  120. package/src/dex/solidly-v3/utils.ts +71 -0
  121. package/src/dex/uniswap-v3/uniswap-v3-events.test.ts +3 -0
  122. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  123. package/build/dex/algebra/algebra-pool.js.map +0 -1
  124. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  125. package/build/dex/quickswap/camelot-v3.js +0 -19
  126. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  127. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  128. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  129. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
  130. package/build/dex/uniswap-v2/rebase-tokens.json +0 -7
@@ -0,0 +1,375 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "contract IUniswapV3Factory",
6
+ "name": "factory",
7
+ "type": "address"
8
+ },
9
+ { "internalType": "address", "name": "tokenIn", "type": "address" },
10
+ { "internalType": "address", "name": "tokenOut", "type": "address" },
11
+ { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
12
+ { "internalType": "int16", "name": "tickBitmapStart", "type": "int16" },
13
+ { "internalType": "int16", "name": "tickBitmapEnd", "type": "int16" }
14
+ ],
15
+ "name": "getAdditionalBitmapWithTicks",
16
+ "outputs": [
17
+ {
18
+ "components": [
19
+ { "internalType": "int16", "name": "index", "type": "int16" },
20
+ { "internalType": "uint256", "name": "value", "type": "uint256" }
21
+ ],
22
+ "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
23
+ "name": "tickBitmap",
24
+ "type": "tuple[]"
25
+ },
26
+ {
27
+ "components": [
28
+ { "internalType": "int24", "name": "index", "type": "int24" },
29
+ {
30
+ "components": [
31
+ {
32
+ "internalType": "uint128",
33
+ "name": "liquidityGross",
34
+ "type": "uint128"
35
+ },
36
+ {
37
+ "internalType": "int128",
38
+ "name": "liquidityNet",
39
+ "type": "int128"
40
+ },
41
+ { "internalType": "bool", "name": "initialized", "type": "bool" }
42
+ ],
43
+ "internalType": "struct IUniswapV3StateMulticall.TickInfo",
44
+ "name": "value",
45
+ "type": "tuple"
46
+ }
47
+ ],
48
+ "internalType": "struct IUniswapV3StateMulticall.TickInfoMappings[]",
49
+ "name": "ticks",
50
+ "type": "tuple[]"
51
+ }
52
+ ],
53
+ "stateMutability": "view",
54
+ "type": "function"
55
+ },
56
+ {
57
+ "inputs": [
58
+ {
59
+ "internalType": "contract IUniswapV3Factory",
60
+ "name": "factory",
61
+ "type": "address"
62
+ },
63
+ { "internalType": "address", "name": "tokenIn", "type": "address" },
64
+ { "internalType": "address", "name": "tokenOut", "type": "address" },
65
+ { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
66
+ { "internalType": "int16", "name": "tickBitmapStart", "type": "int16" },
67
+ { "internalType": "int16", "name": "tickBitmapEnd", "type": "int16" }
68
+ ],
69
+ "name": "getAdditionalBitmapWithoutTicks",
70
+ "outputs": [
71
+ {
72
+ "components": [
73
+ { "internalType": "int16", "name": "index", "type": "int16" },
74
+ { "internalType": "uint256", "name": "value", "type": "uint256" }
75
+ ],
76
+ "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
77
+ "name": "tickBitmap",
78
+ "type": "tuple[]"
79
+ }
80
+ ],
81
+ "stateMutability": "view",
82
+ "type": "function"
83
+ },
84
+ {
85
+ "inputs": [
86
+ {
87
+ "internalType": "contract IUniswapV3Factory",
88
+ "name": "factory",
89
+ "type": "address"
90
+ },
91
+ { "internalType": "address", "name": "tokenIn", "type": "address" },
92
+ { "internalType": "address", "name": "tokenOut", "type": "address" },
93
+ { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
94
+ { "internalType": "int16", "name": "tickBitmapStart", "type": "int16" },
95
+ { "internalType": "int16", "name": "tickBitmapEnd", "type": "int16" }
96
+ ],
97
+ "name": "getFullState",
98
+ "outputs": [
99
+ {
100
+ "components": [
101
+ {
102
+ "internalType": "contract IUniswapV3Pool",
103
+ "name": "pool",
104
+ "type": "address"
105
+ },
106
+ {
107
+ "internalType": "uint256",
108
+ "name": "blockTimestamp",
109
+ "type": "uint256"
110
+ },
111
+ {
112
+ "components": [
113
+ {
114
+ "internalType": "uint160",
115
+ "name": "sqrtPriceX96",
116
+ "type": "uint160"
117
+ },
118
+ { "internalType": "int24", "name": "tick", "type": "int24" },
119
+ { "internalType": "uint24", "name": "fee", "type": "uint24" },
120
+ { "internalType": "bool", "name": "unlocked", "type": "bool" }
121
+ ],
122
+ "internalType": "struct IUniswapV3StateMulticall.Slot0",
123
+ "name": "slot0",
124
+ "type": "tuple"
125
+ },
126
+ { "internalType": "uint128", "name": "liquidity", "type": "uint128" },
127
+ { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
128
+ {
129
+ "internalType": "uint128",
130
+ "name": "maxLiquidityPerTick",
131
+ "type": "uint128"
132
+ },
133
+ {
134
+ "components": [
135
+ { "internalType": "int16", "name": "index", "type": "int16" },
136
+ { "internalType": "uint256", "name": "value", "type": "uint256" }
137
+ ],
138
+ "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
139
+ "name": "tickBitmap",
140
+ "type": "tuple[]"
141
+ },
142
+ {
143
+ "components": [
144
+ { "internalType": "int24", "name": "index", "type": "int24" },
145
+ {
146
+ "components": [
147
+ {
148
+ "internalType": "uint128",
149
+ "name": "liquidityGross",
150
+ "type": "uint128"
151
+ },
152
+ {
153
+ "internalType": "int128",
154
+ "name": "liquidityNet",
155
+ "type": "int128"
156
+ },
157
+ {
158
+ "internalType": "bool",
159
+ "name": "initialized",
160
+ "type": "bool"
161
+ }
162
+ ],
163
+ "internalType": "struct IUniswapV3StateMulticall.TickInfo",
164
+ "name": "value",
165
+ "type": "tuple"
166
+ }
167
+ ],
168
+ "internalType": "struct IUniswapV3StateMulticall.TickInfoMappings[]",
169
+ "name": "ticks",
170
+ "type": "tuple[]"
171
+ }
172
+ ],
173
+ "internalType": "struct IUniswapV3StateMulticall.StateResult",
174
+ "name": "state",
175
+ "type": "tuple"
176
+ }
177
+ ],
178
+ "stateMutability": "view",
179
+ "type": "function"
180
+ },
181
+ {
182
+ "inputs": [
183
+ {
184
+ "internalType": "contract IUniswapV3Factory",
185
+ "name": "factory",
186
+ "type": "address"
187
+ },
188
+ { "internalType": "address", "name": "tokenIn", "type": "address" },
189
+ { "internalType": "address", "name": "tokenOut", "type": "address" },
190
+ { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
191
+ { "internalType": "int16", "name": "leftBitmapAmount", "type": "int16" },
192
+ { "internalType": "int16", "name": "rightBitmapAmount", "type": "int16" }
193
+ ],
194
+ "name": "getFullStateWithRelativeBitmaps",
195
+ "outputs": [
196
+ {
197
+ "components": [
198
+ {
199
+ "internalType": "contract IUniswapV3Pool",
200
+ "name": "pool",
201
+ "type": "address"
202
+ },
203
+ {
204
+ "internalType": "uint256",
205
+ "name": "blockTimestamp",
206
+ "type": "uint256"
207
+ },
208
+ {
209
+ "components": [
210
+ {
211
+ "internalType": "uint160",
212
+ "name": "sqrtPriceX96",
213
+ "type": "uint160"
214
+ },
215
+ { "internalType": "int24", "name": "tick", "type": "int24" },
216
+ { "internalType": "uint24", "name": "fee", "type": "uint24" },
217
+ { "internalType": "bool", "name": "unlocked", "type": "bool" }
218
+ ],
219
+ "internalType": "struct IUniswapV3StateMulticall.Slot0",
220
+ "name": "slot0",
221
+ "type": "tuple"
222
+ },
223
+ { "internalType": "uint128", "name": "liquidity", "type": "uint128" },
224
+ { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
225
+ {
226
+ "internalType": "uint128",
227
+ "name": "maxLiquidityPerTick",
228
+ "type": "uint128"
229
+ },
230
+ {
231
+ "components": [
232
+ { "internalType": "int16", "name": "index", "type": "int16" },
233
+ { "internalType": "uint256", "name": "value", "type": "uint256" }
234
+ ],
235
+ "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
236
+ "name": "tickBitmap",
237
+ "type": "tuple[]"
238
+ },
239
+ {
240
+ "components": [
241
+ { "internalType": "int24", "name": "index", "type": "int24" },
242
+ {
243
+ "components": [
244
+ {
245
+ "internalType": "uint128",
246
+ "name": "liquidityGross",
247
+ "type": "uint128"
248
+ },
249
+ {
250
+ "internalType": "int128",
251
+ "name": "liquidityNet",
252
+ "type": "int128"
253
+ },
254
+ {
255
+ "internalType": "bool",
256
+ "name": "initialized",
257
+ "type": "bool"
258
+ }
259
+ ],
260
+ "internalType": "struct IUniswapV3StateMulticall.TickInfo",
261
+ "name": "value",
262
+ "type": "tuple"
263
+ }
264
+ ],
265
+ "internalType": "struct IUniswapV3StateMulticall.TickInfoMappings[]",
266
+ "name": "ticks",
267
+ "type": "tuple[]"
268
+ }
269
+ ],
270
+ "internalType": "struct IUniswapV3StateMulticall.StateResult",
271
+ "name": "state",
272
+ "type": "tuple"
273
+ }
274
+ ],
275
+ "stateMutability": "view",
276
+ "type": "function"
277
+ },
278
+ {
279
+ "inputs": [
280
+ {
281
+ "internalType": "contract IUniswapV3Factory",
282
+ "name": "factory",
283
+ "type": "address"
284
+ },
285
+ { "internalType": "address", "name": "tokenIn", "type": "address" },
286
+ { "internalType": "address", "name": "tokenOut", "type": "address" },
287
+ { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
288
+ { "internalType": "int16", "name": "tickBitmapStart", "type": "int16" },
289
+ { "internalType": "int16", "name": "tickBitmapEnd", "type": "int16" }
290
+ ],
291
+ "name": "getFullStateWithoutTicks",
292
+ "outputs": [
293
+ {
294
+ "components": [
295
+ {
296
+ "internalType": "contract IUniswapV3Pool",
297
+ "name": "pool",
298
+ "type": "address"
299
+ },
300
+ {
301
+ "internalType": "uint256",
302
+ "name": "blockTimestamp",
303
+ "type": "uint256"
304
+ },
305
+ {
306
+ "components": [
307
+ {
308
+ "internalType": "uint160",
309
+ "name": "sqrtPriceX96",
310
+ "type": "uint160"
311
+ },
312
+ { "internalType": "int24", "name": "tick", "type": "int24" },
313
+ { "internalType": "uint24", "name": "fee", "type": "uint24" },
314
+ { "internalType": "bool", "name": "unlocked", "type": "bool" }
315
+ ],
316
+ "internalType": "struct IUniswapV3StateMulticall.Slot0",
317
+ "name": "slot0",
318
+ "type": "tuple"
319
+ },
320
+ { "internalType": "uint128", "name": "liquidity", "type": "uint128" },
321
+ { "internalType": "int24", "name": "tickSpacing", "type": "int24" },
322
+ {
323
+ "internalType": "uint128",
324
+ "name": "maxLiquidityPerTick",
325
+ "type": "uint128"
326
+ },
327
+ {
328
+ "components": [
329
+ { "internalType": "int16", "name": "index", "type": "int16" },
330
+ { "internalType": "uint256", "name": "value", "type": "uint256" }
331
+ ],
332
+ "internalType": "struct IUniswapV3StateMulticall.TickBitMapMappings[]",
333
+ "name": "tickBitmap",
334
+ "type": "tuple[]"
335
+ },
336
+ {
337
+ "components": [
338
+ { "internalType": "int24", "name": "index", "type": "int24" },
339
+ {
340
+ "components": [
341
+ {
342
+ "internalType": "uint128",
343
+ "name": "liquidityGross",
344
+ "type": "uint128"
345
+ },
346
+ {
347
+ "internalType": "int128",
348
+ "name": "liquidityNet",
349
+ "type": "int128"
350
+ },
351
+ {
352
+ "internalType": "bool",
353
+ "name": "initialized",
354
+ "type": "bool"
355
+ }
356
+ ],
357
+ "internalType": "struct IUniswapV3StateMulticall.TickInfo",
358
+ "name": "value",
359
+ "type": "tuple"
360
+ }
361
+ ],
362
+ "internalType": "struct IUniswapV3StateMulticall.TickInfoMappings[]",
363
+ "name": "ticks",
364
+ "type": "tuple[]"
365
+ }
366
+ ],
367
+ "internalType": "struct IUniswapV3StateMulticall.StateResult",
368
+ "name": "state",
369
+ "type": "tuple"
370
+ }
371
+ ],
372
+ "stateMutability": "view",
373
+ "type": "function"
374
+ }
375
+ ]
package/src/config.ts CHANGED
@@ -53,9 +53,9 @@ const baseConfigs: { [network: number]: BaseConfig } = {
53
53
  Adapter01: '0x9bE264469eF954c139Da4A45Cf76CbCC5e3A6A73',
54
54
  Adapter02: '0xFC2Ba6E830a04C25e207B8214b26d8C713F6881F',
55
55
  Adapter03: '0xBAEeb4540f59d30E567a5B563CC0c4587eDd9366',
56
- Adapter04: '0x9F7A886ec44d8bc181e311D76b68C9B8aE2E0BC2',
56
+ Adapter04: '0x369A2FDb910d432f0a07381a5E3d27572c876713',
57
57
  BuyAdapter: '0x84bEF12C9931cE12662cc9F2366b6a5029E4BD29',
58
- BuyAdapter02: '0xBA0E780Db34927F1e702717FAC21b52803D7cE25',
58
+ BuyAdapter02: '0xe53d24CD81cC81bbf271AD7B02D0d67f851D727c',
59
59
  },
60
60
  uniswapV2ExchangeRouterAddress:
61
61
  '0xF9234CB08edb93c0d4a4d4c70cC3FfD070e78e07',
package/src/dex/index.ts CHANGED
@@ -44,6 +44,7 @@ import { WooFiV2 } from './woo-fi-v2/woo-fi-v2';
44
44
  import { ParaSwapLimitOrders } from './paraswap-limit-orders/paraswap-limit-orders';
45
45
  import { AugustusRFQOrder } from './augustus-rfq';
46
46
  import { Solidly } from './solidly/solidly';
47
+ import { SolidlyV3 } from './solidly-v3/solidly-v3';
47
48
  import { Ramses } from './solidly/forks-override/ramses';
48
49
  import { Thena } from './solidly/forks-override/thena';
49
50
  import { Chronos } from './solidly/forks-override/chronos';
@@ -159,6 +160,7 @@ const Dexes = [
159
160
  SwaapV2,
160
161
  QuickPerps,
161
162
  NomiswapV2,
163
+ SolidlyV3,
162
164
  Smardex,
163
165
  //Wombat,
164
166
  ];
@@ -0,0 +1,64 @@
1
+ import { DexParams } from './types';
2
+ import { DexConfigMap, AdapterMappings } from '../../types';
3
+ import { Network, SwapSide } from '../../constants';
4
+ import { Address } from '../../types';
5
+
6
+ const SUPPORTED_TICK_SPACINGS = [1n, 10n, 50n, 100n];
7
+
8
+ // Pools that will be initialized on app startup
9
+ // They are added for testing
10
+ export const PoolsToPreload: DexConfigMap<
11
+ { token0: Address; token1: Address }[]
12
+ > = {
13
+ SolidlyV3: {
14
+ [Network.MAINNET]: [
15
+ {
16
+ token0: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'.toLowerCase(),
17
+ token1: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'.toLowerCase(),
18
+ },
19
+ {
20
+ token0: '0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0'.toLowerCase(),
21
+ token1: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'.toLowerCase(),
22
+ },
23
+ {
24
+ token0: '0x514910771AF9Ca656af840dff83E8264EcF986CA'.toLowerCase(),
25
+ token1: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'.toLowerCase(),
26
+ },
27
+ {
28
+ token0: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'.toLowerCase(),
29
+ token1: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'.toLowerCase(),
30
+ },
31
+ {
32
+ token0: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'.toLowerCase(),
33
+ token1: '0xdAC17F958D2ee523a2206206994597C13D831ec7'.toLowerCase(),
34
+ },
35
+ {
36
+ token0: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'.toLowerCase(),
37
+ token1: '0xdAC17F958D2ee523a2206206994597C13D831ec7'.toLowerCase(),
38
+ },
39
+ ],
40
+ },
41
+ };
42
+
43
+ export const SolidlyV3Config: DexConfigMap<DexParams> = {
44
+ SolidlyV3: {
45
+ [Network.MAINNET]: {
46
+ factory: '0x70Fe4a44EA505cFa3A57b95cF2862D4fd5F0f687',
47
+ quoter: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
48
+ supportedTickSpacings: SUPPORTED_TICK_SPACINGS,
49
+ stateMulticall: '0xb229563028302AA693EEaD62F80CC331aEDE4e26',
50
+ chunksCount: 10,
51
+ initRetryFrequency: 10,
52
+ initHash: `0xe9b68c5f77858eecac2e651646e208175e9b1359d68d0e14fc69f8c54e5010bf`,
53
+ subgraphURL:
54
+ 'https://api.thegraph.com/subgraphs/name/solidlylabs/solidly-v3',
55
+ },
56
+ },
57
+ };
58
+
59
+ export const Adapters: Record<number, AdapterMappings> = {
60
+ [Network.MAINNET]: {
61
+ [SwapSide.SELL]: [{ name: 'Adapter04', index: 7 }],
62
+ [SwapSide.BUY]: [{ name: 'BuyAdapter02', index: 3 }],
63
+ },
64
+ };
@@ -0,0 +1,42 @@
1
+ export const UNISWAPV3_TICK_GAS_COST = 10_000; // Ceiled
2
+ export const UNISWAPV3_TICK_BASE_OVERHEAD = 50_000;
3
+ export const UNISWAPV3_POOL_SEARCH_OVERHEAD = 0;
4
+
5
+ // This is used for price calculation. If out of scope, return 0n
6
+ export const TICK_BITMAP_TO_USE = 4n;
7
+
8
+ // This is used to check if the state is still valid.
9
+ export const TICK_BITMAP_BUFFER = 8n;
10
+
11
+ export const MAX_PRICING_COMPUTATION_STEPS_ALLOWED = 128;
12
+
13
+ export const UNISWAPV3_SUBGRAPH_URL =
14
+ 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3';
15
+
16
+ export const UNISWAPV3_EFFICIENCY_FACTOR = 3;
17
+
18
+ export const ZERO_TICK_INFO = {
19
+ liquidityGross: 0n,
20
+ liquidityNet: 0n,
21
+ initialized: false,
22
+ };
23
+
24
+ export const ZERO_ORACLE_OBSERVATION = {
25
+ blockTimestamp: 0n,
26
+ tickCumulative: 0n,
27
+ secondsPerLiquidityCumulativeX128: 0n,
28
+ initialized: false,
29
+ };
30
+
31
+ export const OUT_OF_RANGE_ERROR_POSTFIX = `INVALID_TICK_BIT_MAP_RANGES`;
32
+
33
+ export const DEFAULT_POOL_INIT_CODE_HASH = `0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`;
34
+
35
+ export enum DirectMethods {
36
+ directSell = 'directUniV3Swap',
37
+ directBuy = 'directUniV3Buy',
38
+ }
39
+ export const MIN_SQRT_RATIO = BigInt('4295128739');
40
+ export const MAX_SQRT_RATIO = BigInt(
41
+ '1461446703485210103287273052203988822378723970342',
42
+ );
@@ -0,0 +1,90 @@
1
+ import {
2
+ BI_MAX_UINT128,
3
+ BI_MAX_UINT16,
4
+ BI_MAX_UINT32,
5
+ BI_MAX_UINT64,
6
+ BI_MAX_UINT8,
7
+ } from '../../../bigint-constants';
8
+ import { _require } from '../../../utils';
9
+
10
+ export class BitMath {
11
+ static mostSignificantBit(x: bigint): bigint {
12
+ _require(x > 0, '', { x }, 'x > 0');
13
+ let r = 0n;
14
+
15
+ if (x >= 0x100000000000000000000000000000000n) {
16
+ x >>= 128n;
17
+ r += 128n;
18
+ }
19
+ if (x >= 0x10000000000000000n) {
20
+ x >>= 64n;
21
+ r += 64n;
22
+ }
23
+ if (x >= 0x100000000n) {
24
+ x >>= 32n;
25
+ r += 32n;
26
+ }
27
+ if (x >= 0x10000n) {
28
+ x >>= 16n;
29
+ r += 16n;
30
+ }
31
+ if (x >= 0x100n) {
32
+ x >>= 8n;
33
+ r += 8n;
34
+ }
35
+ if (x >= 0x10n) {
36
+ x >>= 4n;
37
+ r += 4n;
38
+ }
39
+ if (x >= 0x4n) {
40
+ x >>= 2n;
41
+ r += 2n;
42
+ }
43
+ if (x >= 0x2n) r += 1n;
44
+
45
+ return r;
46
+ }
47
+
48
+ static leastSignificantBit(x: bigint): bigint {
49
+ _require(x > 0, '', { x }, 'x > 0');
50
+
51
+ let r = 255n;
52
+ if ((x & BI_MAX_UINT128) > 0n) {
53
+ r -= 128n;
54
+ } else {
55
+ x >>= 128n;
56
+ }
57
+ if ((x & BI_MAX_UINT64) > 0n) {
58
+ r -= 64n;
59
+ } else {
60
+ x >>= 64n;
61
+ }
62
+ if ((x & BI_MAX_UINT32) > 0n) {
63
+ r -= 32n;
64
+ } else {
65
+ x >>= 32n;
66
+ }
67
+ if ((x & BI_MAX_UINT16) > 0n) {
68
+ r -= 16n;
69
+ } else {
70
+ x >>= 16n;
71
+ }
72
+ if ((x & BI_MAX_UINT8) > 0n) {
73
+ r -= 8n;
74
+ } else {
75
+ x >>= 8n;
76
+ }
77
+ if ((x & 0xfn) > 0n) {
78
+ r -= 4n;
79
+ } else {
80
+ x >>= 4n;
81
+ }
82
+ if ((x & 0x3n) > 0n) {
83
+ r -= 2n;
84
+ } else {
85
+ x >>= 2n;
86
+ }
87
+ if ((x & 0x1n) > 0n) r -= 1n;
88
+ return r;
89
+ }
90
+ }
@@ -0,0 +1,3 @@
1
+ export class FixedPoint128 {
2
+ static readonly Q128 = 0x100000000000000000000000000000000n;
3
+ }
@@ -0,0 +1,4 @@
1
+ export class FixedPoint96 {
2
+ static readonly RESOLUTION = 96n;
3
+ static readonly Q96 = 0x1000000000000000000000000n;
4
+ }
@@ -0,0 +1,30 @@
1
+ import { BI_MAX_UINT256 } from '../../../bigint-constants';
2
+ import { _require } from '../../../utils';
3
+
4
+ export class FullMath {
5
+ static mulDiv(a: bigint, b: bigint, denominator: bigint) {
6
+ const result = (a * b) / denominator;
7
+
8
+ _require(
9
+ result <= BI_MAX_UINT256,
10
+ '',
11
+ { result, BI_MAX_UINT: BI_MAX_UINT256 },
12
+ 'result <= BI_MAX_UINT',
13
+ );
14
+
15
+ return result;
16
+ }
17
+
18
+ static mulDivRoundingUp(a: bigint, b: bigint, denominator: bigint) {
19
+ const result = (a * b + denominator - 1n) / denominator;
20
+
21
+ _require(
22
+ result <= BI_MAX_UINT256,
23
+ '',
24
+ { result, BI_MAX_UINT: BI_MAX_UINT256 },
25
+ 'result <= BI_MAX_UINT',
26
+ );
27
+
28
+ return result;
29
+ }
30
+ }
@@ -0,0 +1,17 @@
1
+ import { _require } from '../../../utils';
2
+
3
+ export class LiquidityMath {
4
+ static addDelta(x: bigint, y: bigint): bigint {
5
+ let z;
6
+ if (y < 0) {
7
+ const _y = BigInt.asUintN(128, -y);
8
+ z = x - _y;
9
+ _require(z < x, 'LS', { z, x, y, _y }, 'z < x');
10
+ } else {
11
+ const _y = BigInt.asUintN(128, y);
12
+ z = x + _y;
13
+ _require(z >= x, 'LA', { z, x, y, _y }, 'z >= x');
14
+ }
15
+ return z;
16
+ }
17
+ }