@paraswap/dex-lib 4.3.18 → 4.3.19-quickswap-base.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 (134) hide show
  1. package/build/abi/ekubo/twamm-data-fetcher.json +216 -0
  2. package/build/abi/ekubo/twamm.json +720 -0
  3. package/build/abi/miro-migrator/MiroMigrator.abi.json +19 -36
  4. package/build/abi/ring-v2/few-wrapped-token.json +587 -0
  5. package/build/abi/ring-v2/ring-v2-factory.json +125 -0
  6. package/build/abi/ring-v2/ring-v2-pool.json +461 -0
  7. package/build/abi/ring-v2/ring-v2-router.json +332 -0
  8. package/build/dex/balancer-v3/reClammPool.d.ts +23 -0
  9. package/build/dex/balancer-v3/reClammPool.js +82 -0
  10. package/build/dex/balancer-v3/reClammPool.js.map +1 -0
  11. package/build/dex/ekubo/pools/base.d.ts +36 -0
  12. package/build/dex/ekubo/pools/base.js +289 -0
  13. package/build/dex/ekubo/pools/base.js.map +1 -0
  14. package/build/dex/ekubo/pools/full-range.d.ts +23 -0
  15. package/build/dex/ekubo/pools/full-range.js +99 -0
  16. package/build/dex/ekubo/pools/full-range.js.map +1 -0
  17. package/build/dex/ekubo/pools/iface.d.ts +46 -0
  18. package/build/dex/ekubo/pools/iface.js +75 -0
  19. package/build/dex/ekubo/pools/iface.js.map +1 -0
  20. package/build/dex/ekubo/pools/math/twamm/exp2.d.ts +1 -0
  21. package/build/dex/ekubo/pools/math/twamm/exp2.js +86 -0
  22. package/build/dex/ekubo/pools/math/twamm/exp2.js.map +1 -0
  23. package/build/dex/ekubo/pools/math/twamm/sqrt-ratio.d.ts +1 -0
  24. package/build/dex/ekubo/pools/math/twamm/sqrt-ratio.js +56 -0
  25. package/build/dex/ekubo/pools/math/twamm/sqrt-ratio.js.map +1 -0
  26. package/build/dex/ekubo/pools/oracle.d.ts +8 -0
  27. package/build/dex/ekubo/pools/oracle.js +19 -0
  28. package/build/dex/ekubo/pools/oracle.js.map +1 -0
  29. package/build/dex/ekubo/pools/twamm.d.ts +38 -0
  30. package/build/dex/ekubo/pools/twamm.js +253 -0
  31. package/build/dex/ekubo/pools/twamm.js.map +1 -0
  32. package/build/dex/ekubo/pools/utils.d.ts +28 -0
  33. package/build/dex/ekubo/pools/utils.js +80 -0
  34. package/build/dex/ekubo/pools/utils.js.map +1 -0
  35. package/build/dex/miro-migrator/config.js +10 -3
  36. package/build/dex/miro-migrator/config.js.map +1 -1
  37. package/build/dex/miro-migrator/constants.d.ts +0 -1
  38. package/build/dex/miro-migrator/constants.js +1 -2
  39. package/build/dex/miro-migrator/constants.js.map +1 -1
  40. package/build/dex/miro-migrator/miro-migrator-pool.d.ts +5 -8
  41. package/build/dex/miro-migrator/miro-migrator-pool.js +30 -48
  42. package/build/dex/miro-migrator/miro-migrator-pool.js.map +1 -1
  43. package/build/dex/miro-migrator/miro-migrator-state.d.ts +27 -0
  44. package/build/dex/miro-migrator/miro-migrator-state.js +89 -0
  45. package/build/dex/miro-migrator/miro-migrator-state.js.map +1 -0
  46. package/build/dex/miro-migrator/miro-migrator.d.ts +4 -5
  47. package/build/dex/miro-migrator/miro-migrator.js +83 -40
  48. package/build/dex/miro-migrator/miro-migrator.js.map +1 -1
  49. package/build/dex/miro-migrator/types.d.ts +4 -2
  50. package/build/dex/miro-migrator/types.js +2 -1
  51. package/build/dex/miro-migrator/types.js.map +1 -1
  52. package/build/dex/uniswap-v2/config.js +6 -0
  53. package/build/dex/uniswap-v2/config.js.map +1 -1
  54. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +26 -0
  55. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +75 -0
  56. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +1 -0
  57. package/package.json +1 -1
  58. package/build/abi/BProtocol.json +0 -1155
  59. package/build/abi/Jarvis.json +0 -1172
  60. package/build/abi/MStableAsset.json +0 -1545
  61. package/build/abi/OneInchLp.json +0 -1304
  62. package/build/abi/Onebit.json +0 -736
  63. package/build/abi/Shell.json +0 -1294
  64. package/build/abi/TraderJoeV2Router.json +0 -50
  65. package/build/abi/wUSDM.json +0 -757
  66. package/build/abi/zrx.v2.json +0 -1967
  67. package/build/abi/zrx.v3.json +0 -3454
  68. package/build/abi/zrx.v4.json +0 -2193
  69. package/build/dex/OneInchLp.d.ts +0 -24
  70. package/build/dex/OneInchLp.js +0 -43
  71. package/build/dex/OneInchLp.js.map +0 -1
  72. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  73. package/build/dex/bProtocol/bProtocol.js +0 -56
  74. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  75. package/build/dex/bProtocol/types.d.ts +0 -11
  76. package/build/dex/bProtocol/types.js +0 -8
  77. package/build/dex/bProtocol/types.js.map +0 -1
  78. package/build/dex/jarvis.d.ts +0 -56
  79. package/build/dex/jarvis.js +0 -163
  80. package/build/dex/jarvis.js.map +0 -1
  81. package/build/dex/mStable.d.ts +0 -44
  82. package/build/dex/mStable.js +0 -75
  83. package/build/dex/mStable.js.map +0 -1
  84. package/build/dex/onebit/onebit.d.ts +0 -16
  85. package/build/dex/onebit/onebit.js +0 -61
  86. package/build/dex/onebit/onebit.js.map +0 -1
  87. package/build/dex/onebit/types.d.ts +0 -14
  88. package/build/dex/onebit/types.js +0 -8
  89. package/build/dex/onebit/types.js.map +0 -1
  90. package/build/dex/shell.d.ts +0 -25
  91. package/build/dex/shell.js +0 -41
  92. package/build/dex/shell.js.map +0 -1
  93. package/build/dex/trader-joe-v2.d.ts +0 -40
  94. package/build/dex/trader-joe-v2.js +0 -74
  95. package/build/dex/trader-joe-v2.js.map +0 -1
  96. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  97. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  98. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  99. package/build/dex/usual-bond/config.d.ts +0 -3
  100. package/build/dex/usual-bond/config.js +0 -13
  101. package/build/dex/usual-bond/config.js.map +0 -1
  102. package/build/dex/usual-bond/types.d.ts +0 -7
  103. package/build/dex/usual-bond/types.js +0 -3
  104. package/build/dex/usual-bond/types.js.map +0 -1
  105. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  106. package/build/dex/usual-bond/usual-bond.js +0 -176
  107. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  108. package/build/dex/wusdm/config.d.ts +0 -3
  109. package/build/dex/wusdm/config.js +0 -43
  110. package/build/dex/wusdm/config.js.map +0 -1
  111. package/build/dex/wusdm/constants.d.ts +0 -2
  112. package/build/dex/wusdm/constants.js +0 -6
  113. package/build/dex/wusdm/constants.js.map +0 -1
  114. package/build/dex/wusdm/types.d.ts +0 -18
  115. package/build/dex/wusdm/types.js +0 -11
  116. package/build/dex/wusdm/types.js.map +0 -1
  117. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  118. package/build/dex/wusdm/wusdm-pool.js +0 -74
  119. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  120. package/build/dex/wusdm/wusdm.d.ts +0 -46
  121. package/build/dex/wusdm/wusdm.js +0 -243
  122. package/build/dex/wusdm/wusdm.js.map +0 -1
  123. package/build/dex/zerox/config.d.ts +0 -2
  124. package/build/dex/zerox/config.js +0 -33
  125. package/build/dex/zerox/config.js.map +0 -1
  126. package/build/dex/zerox/index.d.ts +0 -22
  127. package/build/dex/zerox/index.js +0 -225
  128. package/build/dex/zerox/index.js.map +0 -1
  129. package/build/dex/zerox/order.d.ts +0 -88
  130. package/build/dex/zerox/order.js +0 -53
  131. package/build/dex/zerox/order.js.map +0 -1
  132. package/build/dex/zerox/types.d.ts +0 -73
  133. package/build/dex/zerox/types.js +0 -21
  134. package/build/dex/zerox/types.js.map +0 -1
@@ -0,0 +1,332 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ { "internalType": "address", "name": "_factory", "type": "address" },
5
+ { "internalType": "address", "name": "_WETH", "type": "address" },
6
+ { "internalType": "address", "name": "_fewFactory", "type": "address" },
7
+ { "internalType": "address", "name": "_fwWETH", "type": "address" }
8
+ ],
9
+ "stateMutability": "nonpayable",
10
+ "type": "constructor"
11
+ },
12
+ {
13
+ "inputs": [],
14
+ "name": "WETH",
15
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
16
+ "stateMutability": "view",
17
+ "type": "function"
18
+ },
19
+ {
20
+ "inputs": [
21
+ { "internalType": "address", "name": "tokenA", "type": "address" },
22
+ { "internalType": "address", "name": "tokenB", "type": "address" },
23
+ {
24
+ "internalType": "uint256",
25
+ "name": "amountADesired",
26
+ "type": "uint256"
27
+ },
28
+ {
29
+ "internalType": "uint256",
30
+ "name": "amountBDesired",
31
+ "type": "uint256"
32
+ },
33
+ { "internalType": "uint256", "name": "amountAMin", "type": "uint256" },
34
+ { "internalType": "uint256", "name": "amountBMin", "type": "uint256" },
35
+ { "internalType": "address", "name": "to", "type": "address" },
36
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
37
+ ],
38
+ "name": "addLiquidity",
39
+ "outputs": [
40
+ { "internalType": "uint256", "name": "amountA", "type": "uint256" },
41
+ { "internalType": "uint256", "name": "amountB", "type": "uint256" },
42
+ { "internalType": "uint256", "name": "liquidity", "type": "uint256" }
43
+ ],
44
+ "stateMutability": "nonpayable",
45
+ "type": "function"
46
+ },
47
+ {
48
+ "inputs": [
49
+ { "internalType": "address", "name": "token", "type": "address" },
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "amountTokenDesired",
53
+ "type": "uint256"
54
+ },
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "amountTokenMin",
58
+ "type": "uint256"
59
+ },
60
+ { "internalType": "uint256", "name": "amountETHMin", "type": "uint256" },
61
+ { "internalType": "address", "name": "to", "type": "address" },
62
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
63
+ ],
64
+ "name": "addLiquidityETH",
65
+ "outputs": [
66
+ { "internalType": "uint256", "name": "amountToken", "type": "uint256" },
67
+ { "internalType": "uint256", "name": "amountETH", "type": "uint256" },
68
+ { "internalType": "uint256", "name": "liquidity", "type": "uint256" }
69
+ ],
70
+ "stateMutability": "payable",
71
+ "type": "function"
72
+ },
73
+ {
74
+ "inputs": [],
75
+ "name": "factory",
76
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
77
+ "stateMutability": "view",
78
+ "type": "function"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "fewFactory",
83
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
84
+ "stateMutability": "view",
85
+ "type": "function"
86
+ },
87
+ {
88
+ "inputs": [],
89
+ "name": "fwWETH",
90
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
91
+ "stateMutability": "view",
92
+ "type": "function"
93
+ },
94
+ {
95
+ "inputs": [
96
+ { "internalType": "uint256", "name": "amountOut", "type": "uint256" },
97
+ { "internalType": "uint256", "name": "reserveIn", "type": "uint256" },
98
+ { "internalType": "uint256", "name": "reserveOut", "type": "uint256" }
99
+ ],
100
+ "name": "getAmountIn",
101
+ "outputs": [
102
+ { "internalType": "uint256", "name": "amountIn", "type": "uint256" }
103
+ ],
104
+ "stateMutability": "pure",
105
+ "type": "function"
106
+ },
107
+ {
108
+ "inputs": [
109
+ { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
110
+ { "internalType": "uint256", "name": "reserveIn", "type": "uint256" },
111
+ { "internalType": "uint256", "name": "reserveOut", "type": "uint256" }
112
+ ],
113
+ "name": "getAmountOut",
114
+ "outputs": [
115
+ { "internalType": "uint256", "name": "amountOut", "type": "uint256" }
116
+ ],
117
+ "stateMutability": "pure",
118
+ "type": "function"
119
+ },
120
+ {
121
+ "inputs": [
122
+ { "internalType": "uint256", "name": "amountOut", "type": "uint256" },
123
+ { "internalType": "address[]", "name": "path", "type": "address[]" }
124
+ ],
125
+ "name": "getAmountsIn",
126
+ "outputs": [
127
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
128
+ ],
129
+ "stateMutability": "view",
130
+ "type": "function"
131
+ },
132
+ {
133
+ "inputs": [
134
+ { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
135
+ { "internalType": "address[]", "name": "path", "type": "address[]" }
136
+ ],
137
+ "name": "getAmountsOut",
138
+ "outputs": [
139
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
140
+ ],
141
+ "stateMutability": "view",
142
+ "type": "function"
143
+ },
144
+ {
145
+ "inputs": [
146
+ { "internalType": "uint256", "name": "amountA", "type": "uint256" },
147
+ { "internalType": "uint256", "name": "reserveA", "type": "uint256" },
148
+ { "internalType": "uint256", "name": "reserveB", "type": "uint256" }
149
+ ],
150
+ "name": "quote",
151
+ "outputs": [
152
+ { "internalType": "uint256", "name": "amountB", "type": "uint256" }
153
+ ],
154
+ "stateMutability": "pure",
155
+ "type": "function"
156
+ },
157
+ {
158
+ "inputs": [
159
+ { "internalType": "address", "name": "tokenA", "type": "address" },
160
+ { "internalType": "address", "name": "tokenB", "type": "address" },
161
+ { "internalType": "uint256", "name": "liquidity", "type": "uint256" },
162
+ { "internalType": "uint256", "name": "amountAMin", "type": "uint256" },
163
+ { "internalType": "uint256", "name": "amountBMin", "type": "uint256" },
164
+ { "internalType": "address", "name": "to", "type": "address" },
165
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
166
+ ],
167
+ "name": "removeLiquidity",
168
+ "outputs": [
169
+ { "internalType": "uint256", "name": "amountA", "type": "uint256" },
170
+ { "internalType": "uint256", "name": "amountB", "type": "uint256" }
171
+ ],
172
+ "stateMutability": "nonpayable",
173
+ "type": "function"
174
+ },
175
+ {
176
+ "inputs": [
177
+ { "internalType": "address", "name": "token", "type": "address" },
178
+ { "internalType": "uint256", "name": "liquidity", "type": "uint256" },
179
+ {
180
+ "internalType": "uint256",
181
+ "name": "amountTokenMin",
182
+ "type": "uint256"
183
+ },
184
+ { "internalType": "uint256", "name": "amountETHMin", "type": "uint256" },
185
+ { "internalType": "address", "name": "to", "type": "address" },
186
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
187
+ ],
188
+ "name": "removeLiquidityETH",
189
+ "outputs": [
190
+ { "internalType": "uint256", "name": "amountToken", "type": "uint256" },
191
+ { "internalType": "uint256", "name": "amountETH", "type": "uint256" }
192
+ ],
193
+ "stateMutability": "nonpayable",
194
+ "type": "function"
195
+ },
196
+ {
197
+ "inputs": [
198
+ { "internalType": "address", "name": "token", "type": "address" },
199
+ { "internalType": "uint256", "name": "liquidity", "type": "uint256" },
200
+ {
201
+ "internalType": "uint256",
202
+ "name": "amountTokenMin",
203
+ "type": "uint256"
204
+ },
205
+ { "internalType": "uint256", "name": "amountETHMin", "type": "uint256" },
206
+ { "internalType": "address", "name": "to", "type": "address" },
207
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" },
208
+ { "internalType": "bool", "name": "approveMax", "type": "bool" },
209
+ { "internalType": "uint8", "name": "v", "type": "uint8" },
210
+ { "internalType": "bytes32", "name": "r", "type": "bytes32" },
211
+ { "internalType": "bytes32", "name": "s", "type": "bytes32" }
212
+ ],
213
+ "name": "removeLiquidityETHWithPermit",
214
+ "outputs": [
215
+ { "internalType": "uint256", "name": "amountToken", "type": "uint256" },
216
+ { "internalType": "uint256", "name": "amountETH", "type": "uint256" }
217
+ ],
218
+ "stateMutability": "nonpayable",
219
+ "type": "function"
220
+ },
221
+ {
222
+ "inputs": [
223
+ { "internalType": "address", "name": "tokenA", "type": "address" },
224
+ { "internalType": "address", "name": "tokenB", "type": "address" },
225
+ { "internalType": "uint256", "name": "liquidity", "type": "uint256" },
226
+ { "internalType": "uint256", "name": "amountAMin", "type": "uint256" },
227
+ { "internalType": "uint256", "name": "amountBMin", "type": "uint256" },
228
+ { "internalType": "address", "name": "to", "type": "address" },
229
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" },
230
+ { "internalType": "bool", "name": "approveMax", "type": "bool" },
231
+ { "internalType": "uint8", "name": "v", "type": "uint8" },
232
+ { "internalType": "bytes32", "name": "r", "type": "bytes32" },
233
+ { "internalType": "bytes32", "name": "s", "type": "bytes32" }
234
+ ],
235
+ "name": "removeLiquidityWithPermit",
236
+ "outputs": [
237
+ { "internalType": "uint256", "name": "amountA", "type": "uint256" },
238
+ { "internalType": "uint256", "name": "amountB", "type": "uint256" }
239
+ ],
240
+ "stateMutability": "nonpayable",
241
+ "type": "function"
242
+ },
243
+ {
244
+ "inputs": [
245
+ { "internalType": "uint256", "name": "amountOut", "type": "uint256" },
246
+ { "internalType": "address[]", "name": "path", "type": "address[]" },
247
+ { "internalType": "address", "name": "to", "type": "address" },
248
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
249
+ ],
250
+ "name": "swapETHForExactTokens",
251
+ "outputs": [
252
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
253
+ ],
254
+ "stateMutability": "payable",
255
+ "type": "function"
256
+ },
257
+ {
258
+ "inputs": [
259
+ { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" },
260
+ { "internalType": "address[]", "name": "path", "type": "address[]" },
261
+ { "internalType": "address", "name": "to", "type": "address" },
262
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
263
+ ],
264
+ "name": "swapExactETHForTokens",
265
+ "outputs": [
266
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
267
+ ],
268
+ "stateMutability": "payable",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [
273
+ { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
274
+ { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" },
275
+ { "internalType": "address[]", "name": "path", "type": "address[]" },
276
+ { "internalType": "address", "name": "to", "type": "address" },
277
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
278
+ ],
279
+ "name": "swapExactTokensForETH",
280
+ "outputs": [
281
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
282
+ ],
283
+ "stateMutability": "nonpayable",
284
+ "type": "function"
285
+ },
286
+ {
287
+ "inputs": [
288
+ { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
289
+ { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" },
290
+ { "internalType": "address[]", "name": "path", "type": "address[]" },
291
+ { "internalType": "address", "name": "to", "type": "address" },
292
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
293
+ ],
294
+ "name": "swapExactTokensForTokens",
295
+ "outputs": [
296
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
297
+ ],
298
+ "stateMutability": "nonpayable",
299
+ "type": "function"
300
+ },
301
+ {
302
+ "inputs": [
303
+ { "internalType": "uint256", "name": "amountOut", "type": "uint256" },
304
+ { "internalType": "uint256", "name": "amountInMax", "type": "uint256" },
305
+ { "internalType": "address[]", "name": "path", "type": "address[]" },
306
+ { "internalType": "address", "name": "to", "type": "address" },
307
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
308
+ ],
309
+ "name": "swapTokensForExactETH",
310
+ "outputs": [
311
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
312
+ ],
313
+ "stateMutability": "nonpayable",
314
+ "type": "function"
315
+ },
316
+ {
317
+ "inputs": [
318
+ { "internalType": "uint256", "name": "amountOut", "type": "uint256" },
319
+ { "internalType": "uint256", "name": "amountInMax", "type": "uint256" },
320
+ { "internalType": "address[]", "name": "path", "type": "address[]" },
321
+ { "internalType": "address", "name": "to", "type": "address" },
322
+ { "internalType": "uint256", "name": "deadline", "type": "uint256" }
323
+ ],
324
+ "name": "swapTokensForExactTokens",
325
+ "outputs": [
326
+ { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }
327
+ ],
328
+ "stateMutability": "nonpayable",
329
+ "type": "function"
330
+ },
331
+ { "stateMutability": "payable", "type": "receive" }
332
+ ]
@@ -0,0 +1,23 @@
1
+ import { BufferState } from '@balancer-labs/balancer-maths';
2
+ import { CommonPoolState, PoolState } from './types';
3
+ export declare const ReClammApiName = "RECLAMM";
4
+ export declare const RECLAMM_GAS_COST = 186000;
5
+ export interface ReClammMutableState {
6
+ lastTimestamp: bigint;
7
+ lastVirtualBalances: bigint[];
8
+ dailyPriceShiftBase: bigint;
9
+ centerednessMargin: bigint;
10
+ startFourthRootPriceRatio: bigint;
11
+ endFourthRootPriceRatio: bigint;
12
+ priceRatioUpdateStartTime: bigint;
13
+ priceRatioUpdateEndTime: bigint;
14
+ currentTimestamp: bigint;
15
+ }
16
+ export type ReClammPoolState = CommonPoolState & ReClammMutableState;
17
+ export declare function isReClammMutableState(poolState: any): poolState is ReClammMutableState;
18
+ export declare function isReClammPool(poolState: PoolState | BufferState): boolean;
19
+ export declare function lastTimestampUpdatedEvent(poolState: PoolState, eventData: any): void;
20
+ export declare function priceRatioStateUpdatedEvent(poolState: PoolState, eventData: any): void;
21
+ export declare function dailyPriceShiftExponentUpdatedEvent(poolState: PoolState, eventData: any): void;
22
+ export declare function centerednessMarginUpdatedEvent(poolState: PoolState, eventData: any): void;
23
+ export declare function virtualBalancesUpdatedEvent(poolState: PoolState, eventData: any): void;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RECLAMM_GAS_COST = exports.ReClammApiName = void 0;
4
+ exports.isReClammMutableState = isReClammMutableState;
5
+ exports.isReClammPool = isReClammPool;
6
+ exports.lastTimestampUpdatedEvent = lastTimestampUpdatedEvent;
7
+ exports.priceRatioStateUpdatedEvent = priceRatioStateUpdatedEvent;
8
+ exports.dailyPriceShiftExponentUpdatedEvent = dailyPriceShiftExponentUpdatedEvent;
9
+ exports.centerednessMarginUpdatedEvent = centerednessMarginUpdatedEvent;
10
+ exports.virtualBalancesUpdatedEvent = virtualBalancesUpdatedEvent;
11
+ const abi_1 = require("@ethersproject/abi");
12
+ exports.ReClammApiName = 'RECLAMM';
13
+ // https://github.com/balancer/reclamm/blob/main/test/gas/.hardhat-snapshots
14
+ exports.RECLAMM_GAS_COST = 186000;
15
+ function isReClammMutableState(poolState) {
16
+ return (poolState &&
17
+ typeof poolState === 'object' &&
18
+ 'lastTimestamp' in poolState &&
19
+ 'lastVirtualBalances' in poolState &&
20
+ 'dailyPriceShiftBase' in poolState &&
21
+ 'centerednessMargin' in poolState &&
22
+ 'startFourthRootPriceRatio' in poolState &&
23
+ 'endFourthRootPriceRatio' in poolState &&
24
+ 'priceRatioUpdateStartTime' in poolState &&
25
+ 'priceRatioUpdateEndTime' in poolState &&
26
+ 'currentTimestamp' in poolState);
27
+ }
28
+ function isReClammPool(poolState) {
29
+ return poolState.poolType === 'RECLAMM' && isReClammMutableState(poolState);
30
+ }
31
+ function lastTimestampUpdatedEvent(poolState, eventData) {
32
+ // abi.encode(lastTimestamp32)
33
+ const decodedParams = abi_1.defaultAbiCoder.decode(['uint256'], eventData);
34
+ if (isReClammMutableState(poolState)) {
35
+ poolState.lastTimestamp = decodedParams[0].toBigInt();
36
+ }
37
+ else
38
+ throw new Error("Can't update lastTimestamp on non-reClamm pool");
39
+ }
40
+ function priceRatioStateUpdatedEvent(poolState, eventData) {
41
+ // abi.encode(startFourthRootPriceRatio,endFourthRootPriceRatio,priceRatioUpdateStartTime,priceRatioUpdateEndTime)
42
+ const decodedParams = abi_1.defaultAbiCoder.decode(['uint256', 'uint256', 'uint256', 'uint256'], eventData);
43
+ if (isReClammMutableState(poolState)) {
44
+ poolState.startFourthRootPriceRatio = decodedParams[0].toBigInt();
45
+ poolState.endFourthRootPriceRatio = decodedParams[1].toBigInt();
46
+ poolState.priceRatioUpdateStartTime = decodedParams[2].toBigInt();
47
+ poolState.priceRatioUpdateEndTime = decodedParams[3].toBigInt();
48
+ }
49
+ else
50
+ throw new Error("Can't update priceRatioState on non-reClamm pool");
51
+ }
52
+ function dailyPriceShiftExponentUpdatedEvent(poolState, eventData) {
53
+ // abi.encode(dailyPriceShiftExponent, dailyPriceShiftBase)
54
+ const decodedParams = abi_1.defaultAbiCoder.decode(['uint256', 'uint128'], eventData);
55
+ if (isReClammMutableState(poolState)) {
56
+ poolState.dailyPriceShiftBase = decodedParams[1].toBigInt();
57
+ }
58
+ else
59
+ throw new Error("Can't update dailyPriceShiftExponent on non-reClamm pool");
60
+ }
61
+ function centerednessMarginUpdatedEvent(poolState, eventData) {
62
+ // abi.encode(centerednessMargin)
63
+ const decodedParams = abi_1.defaultAbiCoder.decode(['uint256'], eventData);
64
+ if (isReClammMutableState(poolState)) {
65
+ poolState.centerednessMargin = decodedParams[0].toBigInt();
66
+ }
67
+ else
68
+ throw new Error("Can't update centerednessMargin on non-reClamm pool");
69
+ }
70
+ function virtualBalancesUpdatedEvent(poolState, eventData) {
71
+ // abi.encode(virtualBalanceA, virtualBalanceB)
72
+ const decodedParams = abi_1.defaultAbiCoder.decode(['uint256', 'uint256'], eventData);
73
+ if (isReClammMutableState(poolState)) {
74
+ poolState.lastVirtualBalances = [
75
+ decodedParams[0].toBigInt(),
76
+ decodedParams[1].toBigInt(),
77
+ ];
78
+ }
79
+ else
80
+ throw new Error("Can't update lastVirtualBalances on non-reClamm pool");
81
+ }
82
+ //# sourceMappingURL=reClammPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reClammPool.js","sourceRoot":"","sources":["../../../src/dex/balancer-v3/reClammPool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { DeepReadonly } from 'ts-essentials';
2
+ import { IDexHelper } from '../../../dex-helper/idex-helper';
3
+ import { Logger } from '../../../types';
4
+ import { BasicQuoteData, EkuboContracts } from '../types';
5
+ import { EkuboPool } from './iface';
6
+ import { PoolKey, SwappedEvent } from './utils';
7
+ export declare class BasePool extends EkuboPool<BasePoolState.Object> {
8
+ private readonly dataFetcher;
9
+ constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, contracts: EkuboContracts, key: PoolKey);
10
+ generateState(blockNumber: number): Promise<DeepReadonly<BasePoolState.Object>>;
11
+ }
12
+ export interface Tick {
13
+ readonly number: number;
14
+ liquidityDelta: bigint;
15
+ }
16
+ /**
17
+ * Returns the index in the sorted tick array that has the greatest value of tick that is not greater than the given tick
18
+ * @param sortedTicks the sorted list of ticks to search in
19
+ * @param tick the tick to search for
20
+ */
21
+ export declare function findNearestInitializedTickIndex(sortedTicks: Tick[], tick: number): number | null;
22
+ export declare namespace BasePoolState {
23
+ type Object = {
24
+ sqrtRatio: bigint;
25
+ liquidity: bigint;
26
+ activeTick: number;
27
+ readonly sortedTicks: Tick[];
28
+ activeTickIndex: number | null;
29
+ readonly checkedTicksBounds: readonly [number, number];
30
+ };
31
+ function fromQuoter(data: BasicQuoteData): DeepReadonly<Object>;
32
+ function fromSwappedEvent(oldState: DeepReadonly<Object>, ev: SwappedEvent): Object;
33
+ function fromPositionUpdatedEvent(oldState: DeepReadonly<Object>, [lowTick, highTick]: [number, number], liquidityDelta: bigint): Object | null;
34
+ function addLiquidityCutoffs(state: BasePoolState.Object): void;
35
+ function updateTick(state: Object, updatedTickNumber: number, liquidityDelta: bigint, upper: boolean, forceInsert: boolean): void;
36
+ }