@paraswap/dex-lib 4.8.15 → 4.8.16

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 (639) hide show
  1. package/build/abi/algebra-integral/AlgebraIntegralPool.abi.json +901 -0
  2. package/build/abi/algebra-integral/AlgebraIntegralStateMulticall.abi.json +610 -0
  3. package/build/abi/ekubo/core.json +0 -1198
  4. package/build/abi/ekubo/data-fetcher.json +0 -74
  5. package/build/abi/ekubo/router.json +0 -687
  6. package/build/abi/ekubo/twamm-data-fetcher.json +0 -124
  7. package/build/abi/ekubo/twamm.json +0 -660
  8. package/build/abi/ekubo-v3/boosted-fees-data-fetcher.json +92 -0
  9. package/build/abi/ekubo-v3/boosted-fees.json +39 -0
  10. package/build/abi/ekubo-v3/core.json +0 -704
  11. package/build/abi/ekubo-v3/mev-capture-router.json +1 -828
  12. package/build/abi/ekubo-v3/quote-data-fetcher.json +0 -74
  13. package/build/abi/ekubo-v3/twamm-data-fetcher.json +0 -124
  14. package/build/abi/ekubo-v3/twamm.json +0 -563
  15. package/build/dex/algebra-integral/algebra-integral-pool.d.ts +40 -0
  16. package/build/dex/algebra-integral/algebra-integral-pool.js +268 -0
  17. package/build/dex/algebra-integral/algebra-integral-pool.js.map +1 -0
  18. package/build/dex/algebra-integral/config.js +9 -0
  19. package/build/dex/algebra-integral/config.js.map +1 -1
  20. package/build/dex/algebra-integral/forks/blackhole-cl.js +1 -1
  21. package/build/dex/algebra-integral/forks/blackhole-cl.js.map +1 -1
  22. package/build/dex/algebra-integral/utils.d.ts +4 -0
  23. package/build/dex/algebra-integral/utils.js +47 -0
  24. package/build/dex/algebra-integral/utils.js.map +1 -0
  25. package/build/dex/ekubo-v3/config.d.ts +2 -0
  26. package/build/dex/ekubo-v3/config.js +3 -1
  27. package/build/dex/ekubo-v3/config.js.map +1 -1
  28. package/build/dex/ekubo-v3/ekubo-v3-pool-manager.d.ts +25 -0
  29. package/build/dex/ekubo-v3/ekubo-v3-pool-manager.js +207 -96
  30. package/build/dex/ekubo-v3/ekubo-v3-pool-manager.js.map +1 -1
  31. package/build/dex/ekubo-v3/extension-type.d.ts +9 -0
  32. package/build/dex/ekubo-v3/extension-type.js +36 -0
  33. package/build/dex/ekubo-v3/extension-type.js.map +1 -0
  34. package/build/dex/ekubo-v3/pools/boosted-fees.d.ts +39 -0
  35. package/build/dex/ekubo-v3/pools/boosted-fees.js +189 -0
  36. package/build/dex/ekubo-v3/pools/boosted-fees.js.map +1 -0
  37. package/build/dex/ekubo-v3/pools/concentrated.d.ts +47 -0
  38. package/build/dex/ekubo-v3/pools/concentrated.js +324 -0
  39. package/build/dex/ekubo-v3/pools/concentrated.js.map +1 -0
  40. package/build/dex/ekubo-v3/pools/full-range.d.ts +11 -6
  41. package/build/dex/ekubo-v3/pools/full-range.js +41 -38
  42. package/build/dex/ekubo-v3/pools/full-range.js.map +1 -1
  43. package/build/dex/ekubo-v3/pools/mev-capture.d.ts +10 -6
  44. package/build/dex/ekubo-v3/pools/mev-capture.js +53 -30
  45. package/build/dex/ekubo-v3/pools/mev-capture.js.map +1 -1
  46. package/build/dex/ekubo-v3/pools/oracle.d.ts +9 -5
  47. package/build/dex/ekubo-v3/pools/oracle.js +21 -8
  48. package/build/dex/ekubo-v3/pools/oracle.js.map +1 -1
  49. package/build/dex/ekubo-v3/pools/pool.d.ts +7 -7
  50. package/build/dex/ekubo-v3/pools/pool.js +17 -6
  51. package/build/dex/ekubo-v3/pools/pool.js.map +1 -1
  52. package/build/dex/ekubo-v3/pools/stableswap.d.ts +13 -9
  53. package/build/dex/ekubo-v3/pools/stableswap.js +86 -87
  54. package/build/dex/ekubo-v3/pools/stableswap.js.map +1 -1
  55. package/build/dex/ekubo-v3/pools/timed.d.ts +25 -0
  56. package/build/dex/ekubo-v3/pools/timed.js +91 -0
  57. package/build/dex/ekubo-v3/pools/timed.js.map +1 -0
  58. package/build/dex/ekubo-v3/pools/twamm.d.ts +9 -10
  59. package/build/dex/ekubo-v3/pools/twamm.js +119 -159
  60. package/build/dex/ekubo-v3/pools/twamm.js.map +1 -1
  61. package/build/dex/ekubo-v3/types.d.ts +13 -1
  62. package/build/dex/ekubo-v3/utils.js +7 -0
  63. package/build/dex/ekubo-v3/utils.js.map +1 -1
  64. package/package.json +1 -1
  65. package/build/abi/AaveV2_lending_pool.json +0 -53
  66. package/build/abi/BProtocol.json +0 -1155
  67. package/build/abi/Bancor.json +0 -392
  68. package/build/abi/Compound_CETH.json +0 -12
  69. package/build/abi/Jarvis.json +0 -1172
  70. package/build/abi/MStableAsset.json +0 -1545
  71. package/build/abi/OneInchLp.json +0 -1304
  72. package/build/abi/Onebit.json +0 -736
  73. package/build/abi/SSPM.json +0 -829
  74. package/build/abi/Shell.json +0 -1294
  75. package/build/abi/Smoothy.json +0 -1049
  76. package/build/abi/StaderOracle.json +0 -2170
  77. package/build/abi/TraderJoeV2Router.json +0 -50
  78. package/build/abi/aave-weth-gateway-avalanche.json +0 -242
  79. package/build/abi/aave-weth-gateway-polygon.json +0 -242
  80. package/build/abi/aave-weth-gateway.json +0 -24
  81. package/build/abi/bunni-v2/BunniHook.abi.json +0 -1921
  82. package/build/abi/bunni-v2/BunniHub.abi.json +0 -1598
  83. package/build/abi/bunni-v2/BunniToken.abi.json +0 -833
  84. package/build/abi/bunni-v2/FeeOverrideHooklet.abi.json +0 -1947
  85. package/build/abi/bunni-v2/FloodPlain.abi.json +0 -1195
  86. package/build/abi/bunni-v2/PoolManager.abi.json +0 -1366
  87. package/build/abi/bunni-v2/V4Quoter.abi.json +0 -637
  88. package/build/abi/concentrator/arUSD.json +0 -568
  89. package/build/abi/concentrator/arUSD5115.json +0 -1746
  90. package/build/abi/gmx/fast-price-events.json +0 -70
  91. package/build/abi/gmx/fast-price-feed.json +0 -748
  92. package/build/abi/gmx/reader.json +0 -337
  93. package/build/abi/gmx/vault-price-feed.json +0 -477
  94. package/build/abi/gmx/vault.json +0 -2002
  95. package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
  96. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  97. package/build/abi/infusion/InfusionFactory.json +0 -147
  98. package/build/abi/infusion/InfusionPair.json +0 -658
  99. package/build/abi/infusion/InfusionRouter.json +0 -442
  100. package/build/abi/jarvis/ChainlinkAccessControlledOffchainAggregator.json +0 -1009
  101. package/build/abi/jarvis/SynthereumPriceFeed.json +0 -381
  102. package/build/abi/jarvis/jarvis-v6-pool.json +0 -1041
  103. package/build/abi/kyberdmm/kyber-dmm-exchange-router.abi.json +0 -1148
  104. package/build/abi/kyberdmm/kyber-dmm-factory.abi.json +0 -335
  105. package/build/abi/kyberdmm/kyber-dmm-pool.abi.json +0 -803
  106. package/build/abi/maker-psm/pot.json +0 -322
  107. package/build/abi/maker-psm/psm.json +0 -243
  108. package/build/abi/maker-psm/vat.json +0 -363
  109. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  110. package/build/abi/quick-perps/fast-price-events.json +0 -70
  111. package/build/abi/quick-perps/fast-price-feed.json +0 -741
  112. package/build/abi/quick-perps/reader.json +0 -313
  113. package/build/abi/quick-perps/vault-price-feed.json +0 -323
  114. package/build/abi/quick-perps/vault.json +0 -1953
  115. package/build/abi/synthetix/CombinedSynthetix.abi.json +0 -442
  116. package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
  117. package/build/abi/uniswap-v2/mdex-factory.json +0 -759
  118. package/build/abi/wUSDM.json +0 -757
  119. package/build/abi/wombat/asset.json +0 -743
  120. package/build/abi/wombat/bmw.json +0 -1247
  121. package/build/abi/wombat/pool-v2.json +0 -1289
  122. package/build/abi/wombat/pool-v3.json +0 -2013
  123. package/build/abi/zrx.v2.json +0 -1967
  124. package/build/abi/zrx.v3.json +0 -3454
  125. package/build/abi/zrx.v4.json +0 -2193
  126. package/build/dex/OneInchLp.d.ts +0 -24
  127. package/build/dex/OneInchLp.js +0 -43
  128. package/build/dex/OneInchLp.js.map +0 -1
  129. package/build/dex/aave-v2/aave-v2.d.ts +0 -33
  130. package/build/dex/aave-v2/aave-v2.js +0 -328
  131. package/build/dex/aave-v2/aave-v2.js.map +0 -1
  132. package/build/dex/aave-v2/config.d.ts +0 -14
  133. package/build/dex/aave-v2/config.js +0 -49
  134. package/build/dex/aave-v2/config.js.map +0 -1
  135. package/build/dex/aave-v2/tokenlist.json +0 -904
  136. package/build/dex/aave-v2/tokens.d.ts +0 -8
  137. package/build/dex/aave-v2/tokens.js +0 -65
  138. package/build/dex/aave-v2/tokens.js.map +0 -1
  139. package/build/dex/aave-v2/types.d.ts +0 -33
  140. package/build/dex/aave-v2/types.js +0 -11
  141. package/build/dex/aave-v2/types.js.map +0 -1
  142. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  143. package/build/dex/bProtocol/bProtocol.js +0 -56
  144. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  145. package/build/dex/bProtocol/types.d.ts +0 -11
  146. package/build/dex/bProtocol/types.js +0 -8
  147. package/build/dex/bProtocol/types.js.map +0 -1
  148. package/build/dex/bancor/bancor.d.ts +0 -15
  149. package/build/dex/bancor/bancor.js +0 -74
  150. package/build/dex/bancor/bancor.js.map +0 -1
  151. package/build/dex/bancor/config.d.ts +0 -6
  152. package/build/dex/bancor/config.js +0 -11
  153. package/build/dex/bancor/config.js.map +0 -1
  154. package/build/dex/bancor/types.d.ts +0 -16
  155. package/build/dex/bancor/types.js +0 -8
  156. package/build/dex/bancor/types.js.map +0 -1
  157. package/build/dex/bunni-v2/bunni-v2-pool.d.ts +0 -62
  158. package/build/dex/bunni-v2/bunni-v2-pool.js +0 -505
  159. package/build/dex/bunni-v2/bunni-v2-pool.js.map +0 -1
  160. package/build/dex/bunni-v2/bunni-v2.d.ts +0 -51
  161. package/build/dex/bunni-v2/bunni-v2.js +0 -460
  162. package/build/dex/bunni-v2/bunni-v2.js.map +0 -1
  163. package/build/dex/bunni-v2/config.d.ts +0 -3
  164. package/build/dex/bunni-v2/config.js +0 -130
  165. package/build/dex/bunni-v2/config.js.map +0 -1
  166. package/build/dex/bunni-v2/encoder.d.ts +0 -19
  167. package/build/dex/bunni-v2/encoder.js +0 -400
  168. package/build/dex/bunni-v2/encoder.js.map +0 -1
  169. package/build/dex/bunni-v2/getOnChainState.d.ts +0 -26
  170. package/build/dex/bunni-v2/getOnChainState.js +0 -493
  171. package/build/dex/bunni-v2/getOnChainState.js.map +0 -1
  172. package/build/dex/bunni-v2/hook/BunniSwapMath.d.ts +0 -7
  173. package/build/dex/bunni-v2/hook/BunniSwapMath.js +0 -198
  174. package/build/dex/bunni-v2/hook/BunniSwapMath.js.map +0 -1
  175. package/build/dex/bunni-v2/hook/SwapMath.d.ts +0 -8
  176. package/build/dex/bunni-v2/hook/SwapMath.js +0 -65
  177. package/build/dex/bunni-v2/hook/SwapMath.js.map +0 -1
  178. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.d.ts +0 -33
  179. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js +0 -33
  180. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js.map +0 -1
  181. package/build/dex/bunni-v2/hooklet/index.d.ts +0 -21
  182. package/build/dex/bunni-v2/hooklet/index.js +0 -64
  183. package/build/dex/bunni-v2/hooklet/index.js.map +0 -1
  184. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.d.ts +0 -70
  185. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js +0 -277
  186. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js.map +0 -1
  187. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.d.ts +0 -64
  188. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js +0 -262
  189. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js.map +0 -1
  190. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.d.ts +0 -60
  191. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js +0 -224
  192. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js.map +0 -1
  193. package/build/dex/bunni-v2/ldf/GeometricDistribution.d.ts +0 -56
  194. package/build/dex/bunni-v2/ldf/GeometricDistribution.js +0 -489
  195. package/build/dex/bunni-v2/ldf/GeometricDistribution.js.map +0 -1
  196. package/build/dex/bunni-v2/ldf/LDFType.d.ts +0 -5
  197. package/build/dex/bunni-v2/ldf/LDFType.js +0 -10
  198. package/build/dex/bunni-v2/ldf/LDFType.js.map +0 -1
  199. package/build/dex/bunni-v2/ldf/ShiftMode.d.ts +0 -7
  200. package/build/dex/bunni-v2/ldf/ShiftMode.js +0 -19
  201. package/build/dex/bunni-v2/ldf/ShiftMode.js.map +0 -1
  202. package/build/dex/bunni-v2/ldf/UniformDistribution.d.ts +0 -55
  203. package/build/dex/bunni-v2/ldf/UniformDistribution.js +0 -291
  204. package/build/dex/bunni-v2/ldf/UniformDistribution.js.map +0 -1
  205. package/build/dex/bunni-v2/ldf/index.d.ts +0 -15
  206. package/build/dex/bunni-v2/ldf/index.js +0 -21
  207. package/build/dex/bunni-v2/ldf/index.js.map +0 -1
  208. package/build/dex/bunni-v2/lib/AmAmmPayload.d.ts +0 -4
  209. package/build/dex/bunni-v2/lib/AmAmmPayload.js +0 -10
  210. package/build/dex/bunni-v2/lib/AmAmmPayload.js.map +0 -1
  211. package/build/dex/bunni-v2/lib/BitMath.d.ts +0 -4
  212. package/build/dex/bunni-v2/lib/BitMath.js +0 -24
  213. package/build/dex/bunni-v2/lib/BitMath.js.map +0 -1
  214. package/build/dex/bunni-v2/lib/Constants.d.ts +0 -15
  215. package/build/dex/bunni-v2/lib/Constants.js +0 -19
  216. package/build/dex/bunni-v2/lib/Constants.js.map +0 -1
  217. package/build/dex/bunni-v2/lib/ExpMath.d.ts +0 -5
  218. package/build/dex/bunni-v2/lib/ExpMath.js +0 -121
  219. package/build/dex/bunni-v2/lib/ExpMath.js.map +0 -1
  220. package/build/dex/bunni-v2/lib/FeeMath.d.ts +0 -2
  221. package/build/dex/bunni-v2/lib/FeeMath.js +0 -27
  222. package/build/dex/bunni-v2/lib/FeeMath.js.map +0 -1
  223. package/build/dex/bunni-v2/lib/FixedPointMath.d.ts +0 -3
  224. package/build/dex/bunni-v2/lib/FixedPointMath.js +0 -15
  225. package/build/dex/bunni-v2/lib/FixedPointMath.js.map +0 -1
  226. package/build/dex/bunni-v2/lib/FullMathX96.d.ts +0 -4
  227. package/build/dex/bunni-v2/lib/FullMathX96.js +0 -21
  228. package/build/dex/bunni-v2/lib/FullMathX96.js.map +0 -1
  229. package/build/dex/bunni-v2/lib/IdleBalance.d.ts +0 -11
  230. package/build/dex/bunni-v2/lib/IdleBalance.js +0 -33
  231. package/build/dex/bunni-v2/lib/IdleBalance.js.map +0 -1
  232. package/build/dex/bunni-v2/lib/LiquidityAmounts.d.ts +0 -6
  233. package/build/dex/bunni-v2/lib/LiquidityAmounts.js +0 -25
  234. package/build/dex/bunni-v2/lib/LiquidityAmounts.js.map +0 -1
  235. package/build/dex/bunni-v2/lib/Math.d.ts +0 -28
  236. package/build/dex/bunni-v2/lib/Math.js +0 -169
  237. package/build/dex/bunni-v2/lib/Math.js.map +0 -1
  238. package/build/dex/bunni-v2/lib/Oracle.d.ts +0 -27
  239. package/build/dex/bunni-v2/lib/Oracle.js +0 -180
  240. package/build/dex/bunni-v2/lib/Oracle.js.map +0 -1
  241. package/build/dex/bunni-v2/lib/QueryLDF.d.ts +0 -12
  242. package/build/dex/bunni-v2/lib/QueryLDF.js +0 -90
  243. package/build/dex/bunni-v2/lib/QueryLDF.js.map +0 -1
  244. package/build/dex/bunni-v2/lib/QueryTwap.d.ts +0 -2
  245. package/build/dex/bunni-v2/lib/QueryTwap.js +0 -13
  246. package/build/dex/bunni-v2/lib/QueryTwap.js.map +0 -1
  247. package/build/dex/bunni-v2/lib/SqrtPriceMath.d.ts +0 -8
  248. package/build/dex/bunni-v2/lib/SqrtPriceMath.js +0 -84
  249. package/build/dex/bunni-v2/lib/SqrtPriceMath.js.map +0 -1
  250. package/build/dex/bunni-v2/lib/TickMath.d.ts +0 -11
  251. package/build/dex/bunni-v2/lib/TickMath.js +0 -100
  252. package/build/dex/bunni-v2/lib/TickMath.js.map +0 -1
  253. package/build/dex/bunni-v2/lib/VaultMath.d.ts +0 -2
  254. package/build/dex/bunni-v2/lib/VaultMath.js +0 -11
  255. package/build/dex/bunni-v2/lib/VaultMath.js.map +0 -1
  256. package/build/dex/bunni-v2/logic/AmAmm.d.ts +0 -11
  257. package/build/dex/bunni-v2/logic/AmAmm.js +0 -156
  258. package/build/dex/bunni-v2/logic/AmAmm.js.map +0 -1
  259. package/build/dex/bunni-v2/logic/BunniHookLogic.d.ts +0 -10
  260. package/build/dex/bunni-v2/logic/BunniHookLogic.js +0 -298
  261. package/build/dex/bunni-v2/logic/BunniHookLogic.js.map +0 -1
  262. package/build/dex/bunni-v2/logic/BunniHubLogic.d.ts +0 -5
  263. package/build/dex/bunni-v2/logic/BunniHubLogic.js +0 -245
  264. package/build/dex/bunni-v2/logic/BunniHubLogic.js.map +0 -1
  265. package/build/dex/bunni-v2/logic/BunniQuoter.d.ts +0 -12
  266. package/build/dex/bunni-v2/logic/BunniQuoter.js +0 -201
  267. package/build/dex/bunni-v2/logic/BunniQuoter.js.map +0 -1
  268. package/build/dex/bunni-v2/subgraph.d.ts +0 -7
  269. package/build/dex/bunni-v2/subgraph.js +0 -184
  270. package/build/dex/bunni-v2/subgraph.js.map +0 -1
  271. package/build/dex/bunni-v2/types.d.ts +0 -257
  272. package/build/dex/bunni-v2/types.js +0 -3
  273. package/build/dex/bunni-v2/types.js.map +0 -1
  274. package/build/dex/bunni-v2/utils.d.ts +0 -12
  275. package/build/dex/bunni-v2/utils.js +0 -182
  276. package/build/dex/bunni-v2/utils.js.map +0 -1
  277. package/build/dex/compound/compound.d.ts +0 -15
  278. package/build/dex/compound/compound.js +0 -57
  279. package/build/dex/compound/compound.js.map +0 -1
  280. package/build/dex/compound/types.d.ts +0 -8
  281. package/build/dex/compound/types.js +0 -9
  282. package/build/dex/compound/types.js.map +0 -1
  283. package/build/dex/concentrator-arusd/concentrator-arusd-event.d.ts +0 -17
  284. package/build/dex/concentrator-arusd/concentrator-arusd-event.js +0 -69
  285. package/build/dex/concentrator-arusd/concentrator-arusd-event.js.map +0 -1
  286. package/build/dex/concentrator-arusd/concentrator-arusd.d.ts +0 -41
  287. package/build/dex/concentrator-arusd/concentrator-arusd.js +0 -202
  288. package/build/dex/concentrator-arusd/concentrator-arusd.js.map +0 -1
  289. package/build/dex/concentrator-arusd/config.d.ts +0 -3
  290. package/build/dex/concentrator-arusd/config.js +0 -14
  291. package/build/dex/concentrator-arusd/config.js.map +0 -1
  292. package/build/dex/concentrator-arusd/types.d.ts +0 -14
  293. package/build/dex/concentrator-arusd/types.js +0 -3
  294. package/build/dex/concentrator-arusd/types.js.map +0 -1
  295. package/build/dex/concentrator-arusd/utils.d.ts +0 -4
  296. package/build/dex/concentrator-arusd/utils.js +0 -26
  297. package/build/dex/concentrator-arusd/utils.js.map +0 -1
  298. package/build/dex/curve-v1/forks/swerve/config.d.ts +0 -4
  299. package/build/dex/curve-v1/forks/swerve/config.js +0 -47
  300. package/build/dex/curve-v1/forks/swerve/config.js.map +0 -1
  301. package/build/dex/curve-v1/forks/swerve/swerve.d.ts +0 -16
  302. package/build/dex/curve-v1/forks/swerve/swerve.js +0 -46
  303. package/build/dex/curve-v1/forks/swerve/swerve.js.map +0 -1
  304. package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
  305. package/build/dex/ekubo/pools/base-pool.js +0 -184
  306. package/build/dex/ekubo/pools/base-pool.js.map +0 -1
  307. package/build/dex/ekubo/pools/iface.d.ts +0 -46
  308. package/build/dex/ekubo/pools/iface.js +0 -75
  309. package/build/dex/ekubo/pools/iface.js.map +0 -1
  310. package/build/dex/ekubo/pools/math/price.d.ts +0 -7
  311. package/build/dex/ekubo/pools/math/price.js +0 -112
  312. package/build/dex/ekubo/pools/math/price.js.map +0 -1
  313. package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
  314. package/build/dex/ekubo/pools/oracle-pool.js +0 -19
  315. package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
  316. package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
  317. package/build/dex/ekubo/pools/pool-utils.js +0 -240
  318. package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
  319. package/build/dex/gmx/config.d.ts +0 -11
  320. package/build/dex/gmx/config.js +0 -61
  321. package/build/dex/gmx/config.js.map +0 -1
  322. package/build/dex/gmx/fast-price-feed.d.ts +0 -26
  323. package/build/dex/gmx/fast-price-feed.js +0 -184
  324. package/build/dex/gmx/fast-price-feed.js.map +0 -1
  325. package/build/dex/gmx/gmx.d.ts +0 -54
  326. package/build/dex/gmx/gmx.js +0 -247
  327. package/build/dex/gmx/gmx.js.map +0 -1
  328. package/build/dex/gmx/pool.d.ts +0 -21
  329. package/build/dex/gmx/pool.js +0 -212
  330. package/build/dex/gmx/pool.js.map +0 -1
  331. package/build/dex/gmx/types.d.ts +0 -100
  332. package/build/dex/gmx/types.js +0 -3
  333. package/build/dex/gmx/types.js.map +0 -1
  334. package/build/dex/gmx/usdg.d.ts +0 -15
  335. package/build/dex/gmx/usdg.js +0 -62
  336. package/build/dex/gmx/usdg.js.map +0 -1
  337. package/build/dex/gmx/vault-price-feed.d.ts +0 -47
  338. package/build/dex/gmx/vault-price-feed.js +0 -245
  339. package/build/dex/gmx/vault-price-feed.js.map +0 -1
  340. package/build/dex/gmx/vault-utils.d.ts +0 -8
  341. package/build/dex/gmx/vault-utils.js +0 -42
  342. package/build/dex/gmx/vault-utils.js.map +0 -1
  343. package/build/dex/gmx/vault.d.ts +0 -46
  344. package/build/dex/gmx/vault.js +0 -182
  345. package/build/dex/gmx/vault.js.map +0 -1
  346. package/build/dex/idle-dao/config.d.ts +0 -5
  347. package/build/dex/idle-dao/config.js +0 -24
  348. package/build/dex/idle-dao/config.js.map +0 -1
  349. package/build/dex/idle-dao/idle-dao.d.ts +0 -42
  350. package/build/dex/idle-dao/idle-dao.js +0 -279
  351. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  352. package/build/dex/idle-dao/token_list.d.ts +0 -4
  353. package/build/dex/idle-dao/token_list.js +0 -289
  354. package/build/dex/idle-dao/token_list.js.map +0 -1
  355. package/build/dex/idle-dao/tokens.d.ts +0 -9
  356. package/build/dex/idle-dao/tokens.js +0 -68
  357. package/build/dex/idle-dao/tokens.js.map +0 -1
  358. package/build/dex/idle-dao/types.d.ts +0 -35
  359. package/build/dex/idle-dao/types.js +0 -11
  360. package/build/dex/idle-dao/types.js.map +0 -1
  361. package/build/dex/idle-dao/utils.d.ts +0 -8
  362. package/build/dex/idle-dao/utils.js +0 -149
  363. package/build/dex/idle-dao/utils.js.map +0 -1
  364. package/build/dex/infusion/config.d.ts +0 -3
  365. package/build/dex/infusion/config.js +0 -20
  366. package/build/dex/infusion/config.js.map +0 -1
  367. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  368. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  369. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  370. package/build/dex/infusion/infusion.d.ts +0 -51
  371. package/build/dex/infusion/infusion.js +0 -500
  372. package/build/dex/infusion/infusion.js.map +0 -1
  373. package/build/dex/infusion/types.d.ts +0 -45
  374. package/build/dex/infusion/types.js +0 -3
  375. package/build/dex/infusion/types.js.map +0 -1
  376. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  377. package/build/dex/infusion/utils/isStablePair.js +0 -18
  378. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  379. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.d.ts +0 -15
  380. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js +0 -51
  381. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js.map +0 -1
  382. package/build/dex/jarvis-v6/config.d.ts +0 -4
  383. package/build/dex/jarvis-v6/config.js +0 -244
  384. package/build/dex/jarvis-v6/config.js.map +0 -1
  385. package/build/dex/jarvis-v6/jarvis-v6-events.d.ts +0 -27
  386. package/build/dex/jarvis-v6/jarvis-v6-events.js +0 -54
  387. package/build/dex/jarvis-v6/jarvis-v6-events.js.map +0 -1
  388. package/build/dex/jarvis-v6/jarvis-v6.d.ts +0 -49
  389. package/build/dex/jarvis-v6/jarvis-v6.js +0 -321
  390. package/build/dex/jarvis-v6/jarvis-v6.js.map +0 -1
  391. package/build/dex/jarvis-v6/syntheteumPool-event.d.ts +0 -15
  392. package/build/dex/jarvis-v6/syntheteumPool-event.js +0 -49
  393. package/build/dex/jarvis-v6/syntheteumPool-event.js.map +0 -1
  394. package/build/dex/jarvis-v6/types.d.ts +0 -48
  395. package/build/dex/jarvis-v6/types.js +0 -9
  396. package/build/dex/jarvis-v6/types.js.map +0 -1
  397. package/build/dex/jarvis-v6/utils.d.ts +0 -13
  398. package/build/dex/jarvis-v6/utils.js +0 -75
  399. package/build/dex/jarvis-v6/utils.js.map +0 -1
  400. package/build/dex/jarvis.d.ts +0 -56
  401. package/build/dex/jarvis.js +0 -163
  402. package/build/dex/jarvis.js.map +0 -1
  403. package/build/dex/kyberdmm/config.d.ts +0 -9
  404. package/build/dex/kyberdmm/config.js +0 -59
  405. package/build/dex/kyberdmm/config.js.map +0 -1
  406. package/build/dex/kyberdmm/fee-formula.d.ts +0 -15
  407. package/build/dex/kyberdmm/fee-formula.js +0 -88
  408. package/build/dex/kyberdmm/fee-formula.js.map +0 -1
  409. package/build/dex/kyberdmm/kyberdmm.d.ts +0 -55
  410. package/build/dex/kyberdmm/kyberdmm.js +0 -447
  411. package/build/dex/kyberdmm/kyberdmm.js.map +0 -1
  412. package/build/dex/kyberdmm/math-ext.d.ts +0 -2
  413. package/build/dex/kyberdmm/math-ext.js +0 -27
  414. package/build/dex/kyberdmm/math-ext.js.map +0 -1
  415. package/build/dex/kyberdmm/pool.d.ts +0 -50
  416. package/build/dex/kyberdmm/pool.js +0 -157
  417. package/build/dex/kyberdmm/pool.js.map +0 -1
  418. package/build/dex/kyberdmm/types.d.ts +0 -81
  419. package/build/dex/kyberdmm/types.js +0 -9
  420. package/build/dex/kyberdmm/types.js.map +0 -1
  421. package/build/dex/mStable.d.ts +0 -44
  422. package/build/dex/mStable.js +0 -75
  423. package/build/dex/mStable.js.map +0 -1
  424. package/build/dex/maker-psm/config.d.ts +0 -11
  425. package/build/dex/maker-psm/config.js +0 -53
  426. package/build/dex/maker-psm/config.js.map +0 -1
  427. package/build/dex/maker-psm/maker-psm.d.ts +0 -103
  428. package/build/dex/maker-psm/maker-psm.js +0 -493
  429. package/build/dex/maker-psm/maker-psm.js.map +0 -1
  430. package/build/dex/maker-psm/types.d.ts +0 -39
  431. package/build/dex/maker-psm/types.js +0 -3
  432. package/build/dex/maker-psm/types.js.map +0 -1
  433. package/build/dex/onebit/onebit.d.ts +0 -16
  434. package/build/dex/onebit/onebit.js +0 -61
  435. package/build/dex/onebit/onebit.js.map +0 -1
  436. package/build/dex/onebit/types.d.ts +0 -14
  437. package/build/dex/onebit/types.js +0 -8
  438. package/build/dex/onebit/types.js.map +0 -1
  439. package/build/dex/quick-perps/config.d.ts +0 -11
  440. package/build/dex/quick-perps/config.js +0 -27
  441. package/build/dex/quick-perps/config.js.map +0 -1
  442. package/build/dex/quick-perps/fast-price-feed.d.ts +0 -26
  443. package/build/dex/quick-perps/fast-price-feed.js +0 -184
  444. package/build/dex/quick-perps/fast-price-feed.js.map +0 -1
  445. package/build/dex/quick-perps/pool.d.ts +0 -21
  446. package/build/dex/quick-perps/pool.js +0 -229
  447. package/build/dex/quick-perps/pool.js.map +0 -1
  448. package/build/dex/quick-perps/quick-perps.d.ts +0 -53
  449. package/build/dex/quick-perps/quick-perps.js +0 -247
  450. package/build/dex/quick-perps/quick-perps.js.map +0 -1
  451. package/build/dex/quick-perps/types.d.ts +0 -98
  452. package/build/dex/quick-perps/types.js +0 -3
  453. package/build/dex/quick-perps/types.js.map +0 -1
  454. package/build/dex/quick-perps/usdq.d.ts +0 -15
  455. package/build/dex/quick-perps/usdq.js +0 -62
  456. package/build/dex/quick-perps/usdq.js.map +0 -1
  457. package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
  458. package/build/dex/quick-perps/vault-price-feed.js +0 -203
  459. package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
  460. package/build/dex/quick-perps/vault-utils.d.ts +0 -8
  461. package/build/dex/quick-perps/vault-utils.js +0 -42
  462. package/build/dex/quick-perps/vault-utils.js.map +0 -1
  463. package/build/dex/quick-perps/vault.d.ts +0 -46
  464. package/build/dex/quick-perps/vault.js +0 -182
  465. package/build/dex/quick-perps/vault.js.map +0 -1
  466. package/build/dex/quickswap/thena-fusion.d.ts +0 -6
  467. package/build/dex/quickswap/thena-fusion.js +0 -19
  468. package/build/dex/quickswap/thena-fusion.js.map +0 -1
  469. package/build/dex/se-vlr/config.d.ts +0 -3
  470. package/build/dex/se-vlr/config.js +0 -24
  471. package/build/dex/se-vlr/config.js.map +0 -1
  472. package/build/dex/se-vlr/se-vlr-pool.d.ts +0 -39
  473. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  474. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  475. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  476. package/build/dex/se-vlr/se-vlr.js +0 -131
  477. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  478. package/build/dex/se-vlr/types.d.ts +0 -6
  479. package/build/dex/se-vlr/types.js +0 -3
  480. package/build/dex/se-vlr/types.js.map +0 -1
  481. package/build/dex/shell.d.ts +0 -25
  482. package/build/dex/shell.js +0 -41
  483. package/build/dex/shell.js.map +0 -1
  484. package/build/dex/smoothy/smoothy.d.ts +0 -16
  485. package/build/dex/smoothy/smoothy.js +0 -60
  486. package/build/dex/smoothy/smoothy.js.map +0 -1
  487. package/build/dex/smoothy/types.d.ts +0 -15
  488. package/build/dex/smoothy/types.js +0 -8
  489. package/build/dex/smoothy/types.js.map +0 -1
  490. package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
  491. package/build/dex/solidly/forks-override/aerodrome.js +0 -46
  492. package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
  493. package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
  494. package/build/dex/solidly/forks-override/chronos.js +0 -141
  495. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
  496. package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
  497. package/build/dex/solidly/forks-override/usdfi.js +0 -15
  498. package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
  499. package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
  500. package/build/dex/solidly/forks-override/velocimeter.js +0 -77
  501. package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
  502. package/build/dex/stader/config.d.ts +0 -3
  503. package/build/dex/stader/config.js +0 -14
  504. package/build/dex/stader/config.js.map +0 -1
  505. package/build/dex/stader/stader-pool.d.ts +0 -19
  506. package/build/dex/stader/stader-pool.js +0 -56
  507. package/build/dex/stader/stader-pool.js.map +0 -1
  508. package/build/dex/stader/stader.d.ts +0 -42
  509. package/build/dex/stader/stader.js +0 -195
  510. package/build/dex/stader/stader.js.map +0 -1
  511. package/build/dex/stader/types.d.ts +0 -13
  512. package/build/dex/stader/types.js +0 -8
  513. package/build/dex/stader/types.js.map +0 -1
  514. package/build/dex/stader/utils.d.ts +0 -4
  515. package/build/dex/stader/utils.js +0 -23
  516. package/build/dex/stader/utils.js.map +0 -1
  517. package/build/dex/synthetix/config.d.ts +0 -4
  518. package/build/dex/synthetix/config.js +0 -53
  519. package/build/dex/synthetix/config.js.map +0 -1
  520. package/build/dex/synthetix/constants.d.ts +0 -23
  521. package/build/dex/synthetix/constants.js +0 -32
  522. package/build/dex/synthetix/constants.js.map +0 -1
  523. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.d.ts +0 -17
  524. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js +0 -102
  525. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js.map +0 -1
  526. package/build/dex/synthetix/contract-math/ExchangeRates.d.ts +0 -8
  527. package/build/dex/synthetix/contract-math/ExchangeRates.js +0 -77
  528. package/build/dex/synthetix/contract-math/ExchangeRates.js.map +0 -1
  529. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.d.ts +0 -17
  530. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js +0 -126
  531. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js.map +0 -1
  532. package/build/dex/synthetix/contract-math/FullMath.d.ts +0 -3
  533. package/build/dex/synthetix/contract-math/FullMath.js +0 -14
  534. package/build/dex/synthetix/contract-math/FullMath.js.map +0 -1
  535. package/build/dex/synthetix/contract-math/OracleLibrary.d.ts +0 -8
  536. package/build/dex/synthetix/contract-math/OracleLibrary.js +0 -60
  537. package/build/dex/synthetix/contract-math/OracleLibrary.js.map +0 -1
  538. package/build/dex/synthetix/contract-math/SafeDecimalMath.d.ts +0 -9
  539. package/build/dex/synthetix/contract-math/SafeDecimalMath.js +0 -41
  540. package/build/dex/synthetix/contract-math/SafeDecimalMath.js.map +0 -1
  541. package/build/dex/synthetix/contract-math/TickMath.d.ts +0 -7
  542. package/build/dex/synthetix/contract-math/TickMath.js +0 -63
  543. package/build/dex/synthetix/contract-math/TickMath.js.map +0 -1
  544. package/build/dex/synthetix/contract-math/synthetix-math.d.ts +0 -17
  545. package/build/dex/synthetix/contract-math/synthetix-math.js +0 -127
  546. package/build/dex/synthetix/contract-math/synthetix-math.js.map +0 -1
  547. package/build/dex/synthetix/synthetix-state.d.ts +0 -36
  548. package/build/dex/synthetix/synthetix-state.js +0 -615
  549. package/build/dex/synthetix/synthetix-state.js.map +0 -1
  550. package/build/dex/synthetix/synthetix.d.ts +0 -45
  551. package/build/dex/synthetix/synthetix.js +0 -304
  552. package/build/dex/synthetix/synthetix.js.map +0 -1
  553. package/build/dex/synthetix/types.d.ts +0 -90
  554. package/build/dex/synthetix/types.js +0 -3
  555. package/build/dex/synthetix/types.js.map +0 -1
  556. package/build/dex/synthetix/utils.d.ts +0 -10
  557. package/build/dex/synthetix/utils.js +0 -91
  558. package/build/dex/synthetix/utils.js.map +0 -1
  559. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.d.ts +0 -7
  560. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js +0 -20
  561. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js.map +0 -1
  562. package/build/dex/trader-joe-v2.d.ts +0 -40
  563. package/build/dex/trader-joe-v2.js +0 -74
  564. package/build/dex/trader-joe-v2.js.map +0 -1
  565. package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
  566. package/build/dex/uniswap-v2/dfyn.js +0 -61
  567. package/build/dex/uniswap-v2/dfyn.js.map +0 -1
  568. package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
  569. package/build/dex/uniswap-v2/excalibur.js +0 -47
  570. package/build/dex/uniswap-v2/excalibur.js.map +0 -1
  571. package/build/dex/uniswap-v2/mdex.d.ts +0 -24
  572. package/build/dex/uniswap-v2/mdex.js +0 -50
  573. package/build/dex/uniswap-v2/mdex.js.map +0 -1
  574. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
  575. package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
  576. package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
  577. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  578. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  579. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  580. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -3
  581. package/build/dex/uniswap-v4/contract-math/Position.js +0 -10
  582. package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
  583. package/build/dex/usual-bond/config.d.ts +0 -3
  584. package/build/dex/usual-bond/config.js +0 -13
  585. package/build/dex/usual-bond/config.js.map +0 -1
  586. package/build/dex/usual-bond/types.d.ts +0 -7
  587. package/build/dex/usual-bond/types.js +0 -3
  588. package/build/dex/usual-bond/types.js.map +0 -1
  589. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  590. package/build/dex/usual-bond/usual-bond.js +0 -176
  591. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  592. package/build/dex/wombat/config.d.ts +0 -4
  593. package/build/dex/wombat/config.js +0 -77
  594. package/build/dex/wombat/config.js.map +0 -1
  595. package/build/dex/wombat/types.d.ts +0 -34
  596. package/build/dex/wombat/types.js +0 -3
  597. package/build/dex/wombat/types.js.map +0 -1
  598. package/build/dex/wombat/utils.d.ts +0 -10
  599. package/build/dex/wombat/utils.js +0 -79
  600. package/build/dex/wombat/utils.js.map +0 -1
  601. package/build/dex/wombat/wombat-bmw.d.ts +0 -40
  602. package/build/dex/wombat/wombat-bmw.js +0 -136
  603. package/build/dex/wombat/wombat-bmw.js.map +0 -1
  604. package/build/dex/wombat/wombat-pool.d.ts +0 -60
  605. package/build/dex/wombat/wombat-pool.js +0 -488
  606. package/build/dex/wombat/wombat-pool.js.map +0 -1
  607. package/build/dex/wombat/wombat-quoter.d.ts +0 -17
  608. package/build/dex/wombat/wombat-quoter.js +0 -192
  609. package/build/dex/wombat/wombat-quoter.js.map +0 -1
  610. package/build/dex/wombat/wombat.d.ts +0 -58
  611. package/build/dex/wombat/wombat.js +0 -298
  612. package/build/dex/wombat/wombat.js.map +0 -1
  613. package/build/dex/wusdm/config.d.ts +0 -3
  614. package/build/dex/wusdm/config.js +0 -43
  615. package/build/dex/wusdm/config.js.map +0 -1
  616. package/build/dex/wusdm/constants.d.ts +0 -2
  617. package/build/dex/wusdm/constants.js +0 -6
  618. package/build/dex/wusdm/constants.js.map +0 -1
  619. package/build/dex/wusdm/types.d.ts +0 -18
  620. package/build/dex/wusdm/types.js +0 -11
  621. package/build/dex/wusdm/types.js.map +0 -1
  622. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  623. package/build/dex/wusdm/wusdm-pool.js +0 -74
  624. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  625. package/build/dex/wusdm/wusdm.d.ts +0 -46
  626. package/build/dex/wusdm/wusdm.js +0 -243
  627. package/build/dex/wusdm/wusdm.js.map +0 -1
  628. package/build/dex/zerox/config.d.ts +0 -2
  629. package/build/dex/zerox/config.js +0 -33
  630. package/build/dex/zerox/config.js.map +0 -1
  631. package/build/dex/zerox/index.d.ts +0 -22
  632. package/build/dex/zerox/index.js +0 -225
  633. package/build/dex/zerox/index.js.map +0 -1
  634. package/build/dex/zerox/order.d.ts +0 -88
  635. package/build/dex/zerox/order.js +0 -53
  636. package/build/dex/zerox/order.js.map +0 -1
  637. package/build/dex/zerox/types.d.ts +0 -73
  638. package/build/dex/zerox/types.js +0 -21
  639. package/build/dex/zerox/types.js.map +0 -1
@@ -1,61 +1,64 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FullRangePoolState = exports.FullRangePool = void 0;
3
+ exports.FullRangePoolState = exports.FullRangePool = exports.FullRangePoolBase = void 0;
4
+ exports.quoteFullRange = quoteFullRange;
4
5
  const pool_1 = require("./pool");
5
6
  const sqrt_ratio_1 = require("./math/sqrt-ratio");
6
7
  const swap_1 = require("./math/swap");
7
8
  const tick_1 = require("./math/tick");
8
- const utils_1 = require("./utils");
9
9
  const delta_1 = require("./math/delta");
10
10
  const GAS_COST_OF_ONE_FULL_RANGE_SWAP = 14_774;
11
- class FullRangePool extends pool_1.EkuboPool {
11
+ class FullRangePoolBase extends pool_1.EkuboPool {
12
12
  quoteDataFetcher;
13
13
  constructor(parentName, dexHelper, logger, contracts, initBlockNumber, key) {
14
14
  const { contract: { address }, interface: iface, quoteDataFetcher, } = contracts.core;
15
- super(parentName, dexHelper, logger, initBlockNumber, key, {
16
- [address]: new pool_1.NamedEventHandlers(iface, {
17
- PositionUpdated: (args, oldState) => FullRangePoolState.fromPositionUpdatedEvent(oldState, args.liquidityDelta.toBigInt()),
18
- }),
19
- }, {
20
- [address]: data => FullRangePoolState.fromSwappedEvent((0, utils_1.parseSwappedEvent)(data)),
21
- });
15
+ super(parentName, dexHelper, logger, initBlockNumber, key, address, iface);
22
16
  this.quoteDataFetcher = quoteDataFetcher;
23
17
  }
18
+ _quote(amount, isToken1, state, sqrtRatioLimit) {
19
+ return quoteFullRange(this.key, amount, isToken1, state, sqrtRatioLimit);
20
+ }
21
+ _computeTvl(state) {
22
+ return FullRangePoolState.computeTvl(state);
23
+ }
24
+ }
25
+ exports.FullRangePoolBase = FullRangePoolBase;
26
+ function quoteFullRange(key, amount, isToken1, state, sqrtRatioLimit) {
27
+ const isIncreasing = (0, swap_1.isPriceIncreasing)(amount, isToken1);
28
+ let sqrtRatio = state.sqrtRatio;
29
+ const liquidity = state.liquidity;
30
+ sqrtRatioLimit ??= isIncreasing ? tick_1.MAX_SQRT_RATIO : tick_1.MIN_SQRT_RATIO;
31
+ const step = (0, swap_1.computeStep)({
32
+ fee: key.config.fee,
33
+ sqrtRatio,
34
+ liquidity,
35
+ isToken1,
36
+ sqrtRatioLimit,
37
+ amount,
38
+ });
39
+ return {
40
+ consumedAmount: step.consumedAmount,
41
+ calculatedAmount: step.calculatedAmount,
42
+ gasConsumed: GAS_COST_OF_ONE_FULL_RANGE_SWAP,
43
+ skipAhead: 0,
44
+ stateAfter: {
45
+ sqrtRatio: step.sqrtRatioNext,
46
+ liquidity,
47
+ },
48
+ };
49
+ }
50
+ class FullRangePool extends FullRangePoolBase {
24
51
  async generateState(blockNumber) {
25
52
  const data = await this.quoteDataFetcher.getQuoteData([this.key.toAbi()], 0, {
26
53
  blockTag: blockNumber,
27
54
  });
28
55
  return FullRangePoolState.fromQuoter(data[0]);
29
56
  }
30
- _quote(amount, isToken1, state, sqrtRatioLimit) {
31
- return this.quoteFullRange(amount, isToken1, state, sqrtRatioLimit);
32
- }
33
- quoteFullRange(amount, isToken1, state, sqrtRatioLimit) {
34
- const isIncreasing = (0, swap_1.isPriceIncreasing)(amount, isToken1);
35
- let sqrtRatio = state.sqrtRatio;
36
- const liquidity = state.liquidity;
37
- sqrtRatioLimit ??= isIncreasing ? tick_1.MAX_SQRT_RATIO : tick_1.MIN_SQRT_RATIO;
38
- const step = (0, swap_1.computeStep)({
39
- fee: this.key.config.fee,
40
- sqrtRatio,
41
- liquidity,
42
- isToken1,
43
- sqrtRatioLimit,
44
- amount,
45
- });
46
- return {
47
- consumedAmount: step.consumedAmount,
48
- calculatedAmount: step.calculatedAmount,
49
- gasConsumed: GAS_COST_OF_ONE_FULL_RANGE_SWAP,
50
- skipAhead: 0,
51
- stateAfter: {
52
- sqrtRatio: step.sqrtRatioNext,
53
- liquidity,
54
- },
55
- };
57
+ handlePositionUpdated(args, oldState) {
58
+ return FullRangePoolState.fromPositionUpdatedEvent(oldState, args.liquidityDelta.toBigInt());
56
59
  }
57
- _computeTvl(state) {
58
- return FullRangePoolState.computeTvl(state);
60
+ handleSwappedEvent(ev, _oldState) {
61
+ return FullRangePoolState.fromSwappedEvent(ev);
59
62
  }
60
63
  }
61
64
  exports.FullRangePool = FullRangePool;
@@ -1 +1 @@
1
- {"version":3,"file":"full-range.js","sourceRoot":"","sources":["../../../../src/dex/ekubo-v3/pools/full-range.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"full-range.js","sourceRoot":"","sources":["../../../../src/dex/ekubo-v3/pools/full-range.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
+ import { Result } from '@ethersproject/abi';
1
2
  import { DeepReadonly } from 'ts-essentials';
2
- import { PoolKeyed, Quote } from './pool';
3
- import { BasePool, BasePoolState } from './base';
4
- import { ConcentratedPoolTypeConfig } from './utils';
5
- export declare class MevCapturePool extends BasePool {
6
- protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly<BasePoolState.Object>, sqrtRatioLimit?: bigint): Quote;
7
- quoteMevCapture(this: PoolKeyed<ConcentratedPoolTypeConfig>, amount: bigint, isToken1: boolean, state: DeepReadonly<BasePoolState.Object>, sqrtRatioLimit?: bigint): Quote<Pick<BasePoolState.Object, 'activeTickIndex' | 'sqrtRatio' | 'liquidity'>>;
3
+ import { Quote } from './pool';
4
+ import { ConcentratedPoolBase, ConcentratedPoolState } from './concentrated';
5
+ import { ConcentratedPoolTypeConfig, PoolKey, SwappedEvent } from './utils';
6
+ export declare class MevCapturePool extends ConcentratedPoolBase<ConcentratedPoolState.Object> {
7
+ generateState(blockNumber: number): Promise<DeepReadonly<ConcentratedPoolState.Object>>;
8
+ protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly<ConcentratedPoolState.Object>, sqrtRatioLimit?: bigint): Quote;
9
+ protected handlePositionUpdated(args: Result, oldState: DeepReadonly<ConcentratedPoolState.Object>): DeepReadonly<ConcentratedPoolState.Object> | null;
10
+ protected handleSwappedEvent(ev: SwappedEvent, oldState: DeepReadonly<ConcentratedPoolState.Object>): DeepReadonly<ConcentratedPoolState.Object> | null;
8
11
  }
12
+ export declare function quoteMevCapture(key: PoolKey<ConcentratedPoolTypeConfig>, amount: bigint, isToken1: boolean, state: DeepReadonly<ConcentratedPoolState.Object>, sqrtRatioLimit?: bigint): Quote<Pick<ConcentratedPoolState.Object, 'activeTickIndex' | 'sqrtRatio' | 'liquidity'>>;
@@ -1,42 +1,65 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MevCapturePool = void 0;
4
- const base_1 = require("./base");
4
+ exports.quoteMevCapture = quoteMevCapture;
5
+ const concentrated_1 = require("./concentrated");
5
6
  const tick_1 = require("./math/tick");
6
7
  const bigint_constants_1 = require("../../../bigint-constants");
7
8
  const swap_1 = require("./math/swap");
8
- // TODO
9
- const EXTRA_BASE_GAS_COST_OF_ONE_MEV_CAPTURE_SWAP = 33_500;
10
- class MevCapturePool extends base_1.BasePool {
9
+ const ethers_1 = require("ethers");
10
+ const utils_1 = require("ethers/lib/utils");
11
+ // This assumes fees are always accumulated
12
+ const EXTRA_BASE_GAS_COST_OF_ONE_MEV_CAPTURE_SWAP = 32_258;
13
+ class MevCapturePool extends concentrated_1.ConcentratedPoolBase {
14
+ async generateState(blockNumber) {
15
+ const data = await this.quoteDataFetcher.getQuoteData([this.key.toAbi()], 10, {
16
+ blockTag: blockNumber,
17
+ });
18
+ return concentrated_1.ConcentratedPoolState.fromQuoter(data[0]);
19
+ }
11
20
  _quote(amount, isToken1, state, sqrtRatioLimit) {
12
- return this.quoteMevCapture(amount, isToken1, state, sqrtRatioLimit);
21
+ return quoteMevCapture(this.key, amount, isToken1, state, sqrtRatioLimit);
22
+ }
23
+ handlePositionUpdated(args, oldState) {
24
+ const [lower, upper] = [
25
+ ethers_1.BigNumber.from((0, utils_1.hexDataSlice)(args.positionId, 24, 28))
26
+ .fromTwos(32)
27
+ .toNumber(),
28
+ ethers_1.BigNumber.from((0, utils_1.hexDataSlice)(args.positionId, 28, 32))
29
+ .fromTwos(32)
30
+ .toNumber(),
31
+ ];
32
+ return concentrated_1.ConcentratedPoolState.fromPositionUpdatedEvent(oldState, [lower, upper], args.liquidityDelta.toBigInt());
13
33
  }
14
- quoteMevCapture(amount, isToken1, state, sqrtRatioLimit) {
15
- const quote = base_1.BasePool.prototype.quoteBase.call(this, amount, isToken1, state, sqrtRatioLimit);
16
- const tickAfterSwap = (0, tick_1.approximateSqrtRatioToTick)(quote.stateAfter.sqrtRatio);
17
- const poolConfig = this.key.config;
18
- const approximateFeeMultiplier = (Math.abs(tickAfterSwap - state.activeTick) + 1) /
19
- poolConfig.poolTypeConfig.tickSpacing;
20
- let fixedPointAdditionalFee = BigInt(Math.round(approximateFeeMultiplier * Number(poolConfig.fee)));
21
- if (fixedPointAdditionalFee > bigint_constants_1.BI_MAX_UINT64) {
22
- fixedPointAdditionalFee = bigint_constants_1.BI_MAX_UINT64;
23
- }
24
- let calculatedAmount = quote.calculatedAmount;
25
- if (amount >= 0n) {
26
- // Exact input, remove the additional fee from the output
27
- calculatedAmount -= (0, swap_1.computeFee)(calculatedAmount, fixedPointAdditionalFee);
28
- }
29
- else {
30
- const inputAmountFee = (0, swap_1.computeFee)(calculatedAmount, poolConfig.fee);
31
- const inputAmount = calculatedAmount - inputAmountFee;
32
- const bf = (0, swap_1.amountBeforeFee)(inputAmount, fixedPointAdditionalFee);
33
- const fee = bf - inputAmount;
34
- calculatedAmount += fee;
35
- }
36
- quote.gasConsumed += EXTRA_BASE_GAS_COST_OF_ONE_MEV_CAPTURE_SWAP;
37
- quote.calculatedAmount = calculatedAmount;
38
- return quote;
34
+ handleSwappedEvent(ev, oldState) {
35
+ return concentrated_1.ConcentratedPoolState.fromSwappedEvent(oldState, ev);
39
36
  }
40
37
  }
41
38
  exports.MevCapturePool = MevCapturePool;
39
+ function quoteMevCapture(key, amount, isToken1, state, sqrtRatioLimit) {
40
+ const quote = (0, concentrated_1.quoteConcentrated)(key, amount, isToken1, state, sqrtRatioLimit);
41
+ const tickAfterSwap = (0, tick_1.approximateSqrtRatioToTick)(quote.stateAfter.sqrtRatio);
42
+ const poolConfig = key.config;
43
+ const approximateFeeMultiplier = (Math.abs(tickAfterSwap - state.activeTick) + 1) /
44
+ poolConfig.poolTypeConfig.tickSpacing;
45
+ let fixedPointAdditionalFee = BigInt(Math.round(approximateFeeMultiplier * Number(poolConfig.fee)));
46
+ if (fixedPointAdditionalFee > bigint_constants_1.BI_MAX_UINT64) {
47
+ fixedPointAdditionalFee = bigint_constants_1.BI_MAX_UINT64;
48
+ }
49
+ let calculatedAmount = quote.calculatedAmount;
50
+ if (amount >= 0n) {
51
+ // Exact input, remove the additional fee from the output
52
+ calculatedAmount -= (0, swap_1.computeFee)(calculatedAmount, fixedPointAdditionalFee);
53
+ }
54
+ else {
55
+ const inputAmountFee = (0, swap_1.computeFee)(calculatedAmount, poolConfig.fee);
56
+ const inputAmount = calculatedAmount - inputAmountFee;
57
+ const bf = (0, swap_1.amountBeforeFee)(inputAmount, fixedPointAdditionalFee);
58
+ const fee = bf - inputAmount;
59
+ calculatedAmount += fee;
60
+ }
61
+ quote.gasConsumed += EXTRA_BASE_GAS_COST_OF_ONE_MEV_CAPTURE_SWAP;
62
+ quote.calculatedAmount = calculatedAmount;
63
+ return quote;
64
+ }
42
65
  //# sourceMappingURL=mev-capture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mev-capture.js","sourceRoot":"","sources":["../../../../src/dex/ekubo-v3/pools/mev-capture.ts"],"names":[],"mappings":";;;AAEA,iCAAiD;AACjD,sCAAyD;AACzD,gEAA0D;AAC1D,sCAA0D;AAG1D,OAAO;AACP,MAAM,2CAA2C,GAAG,MAAM,CAAC;AAE3D,MAAa,cAAe,SAAQ,eAAQ;IACvB,MAAM,CACvB,MAAc,EACd,QAAiB,EACjB,KAAyC,EACzC,cAAuB;QAEvB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;IAEM,eAAe,CAEpB,MAAc,EACd,QAAiB,EACjB,KAAyC,EACzC,cAAuB;QAIvB,MAAM,KAAK,GAAG,eAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAC7C,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,cAAc,CACf,CAAC;QAEF,MAAM,aAAa,GAAG,IAAA,iCAA0B,EAC9C,KAAK,CAAC,UAAU,CAAC,SAAS,CAC3B,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QACnC,MAAM,wBAAwB,GAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAChD,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC;QAExC,IAAI,uBAAuB,GAAG,MAAM,CAClC,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAC9D,CAAC;QAEF,IAAI,uBAAuB,GAAG,gCAAa,EAAE,CAAC;YAC5C,uBAAuB,GAAG,gCAAa,CAAC;QAC1C,CAAC;QAED,IAAI,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAE9C,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;YACjB,yDAAyD;YACzD,gBAAgB,IAAI,IAAA,iBAAU,EAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,IAAA,iBAAU,EAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACpE,MAAM,WAAW,GAAG,gBAAgB,GAAG,cAAc,CAAC;YAEtD,MAAM,EAAE,GAAG,IAAA,sBAAe,EAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YACjE,MAAM,GAAG,GAAG,EAAE,GAAG,WAAW,CAAC;YAC7B,gBAAgB,IAAI,GAAG,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,WAAW,IAAI,2CAA2C,CAAC;QACjE,KAAK,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAE1C,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA9DD,wCA8DC"}
1
+ {"version":3,"file":"mev-capture.js","sourceRoot":"","sources":["../../../../src/dex/ekubo-v3/pools/mev-capture.ts"],"names":[],"mappings":";;;AAqEA,0CA8CC;AAhHD,iDAIwB;AACxB,sCAAyD;AACzD,gEAA0D;AAC1D,sCAA0D;AAE1D,mCAAmC;AACnC,4CAAgD;AAEhD,2CAA2C;AAC3C,MAAM,2CAA2C,GAAG,MAAM,CAAC;AAE3D,MAAa,cAAe,SAAQ,mCAAkD;IACpE,KAAK,CAAC,aAAa,CACjC,WAAmB;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CACnD,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAClB,EAAE,EACF;YACE,QAAQ,EAAE,WAAW;SACtB,CACF,CAAC;QACF,OAAO,oCAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEkB,MAAM,CACvB,MAAc,EACd,QAAiB,EACjB,KAAiD,EACjD,cAAuB;QAEvB,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAC5E,CAAC;IAEkB,qBAAqB,CACtC,IAAY,EACZ,QAAoD;QAEpD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG;YACrB,kBAAS,CAAC,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;iBAClD,QAAQ,CAAC,EAAE,CAAC;iBACZ,QAAQ,EAAE;YACb,kBAAS,CAAC,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;iBAClD,QAAQ,CAAC,EAAE,CAAC;iBACZ,QAAQ,EAAE;SACd,CAAC;QAEF,OAAO,oCAAqB,CAAC,wBAAwB,CACnD,QAAQ,EACR,CAAC,KAAK,EAAE,KAAK,CAAC,EACd,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAC/B,CAAC;IACJ,CAAC;IAEkB,kBAAkB,CACnC,EAAgB,EAChB,QAAoD;QAEpD,OAAO,oCAAqB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF;AAjDD,wCAiDC;AAED,SAAgB,eAAe,CAC7B,GAAwC,EACxC,MAAc,EACd,QAAiB,EACjB,KAAiD,EACjD,cAAuB;IAOvB,MAAM,KAAK,GAAG,IAAA,gCAAiB,EAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAE9E,MAAM,aAAa,GAAG,IAAA,iCAA0B,EAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;IAC9B,MAAM,wBAAwB,GAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC;IAExC,IAAI,uBAAuB,GAAG,MAAM,CAClC,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAC9D,CAAC;IAEF,IAAI,uBAAuB,GAAG,gCAAa,EAAE,CAAC;QAC5C,uBAAuB,GAAG,gCAAa,CAAC;IAC1C,CAAC;IAED,IAAI,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAE9C,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACjB,yDAAyD;QACzD,gBAAgB,IAAI,IAAA,iBAAU,EAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAAG,IAAA,iBAAU,EAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,gBAAgB,GAAG,cAAc,CAAC;QAEtD,MAAM,EAAE,GAAG,IAAA,sBAAe,EAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,EAAE,GAAG,WAAW,CAAC;QAC7B,gBAAgB,IAAI,GAAG,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,WAAW,IAAI,2CAA2C,CAAC;IACjE,KAAK,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAE1C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,8 +1,12 @@
1
1
  import { DeepReadonly } from 'ts-essentials';
2
- import { FullRangePool, FullRangePoolState } from './full-range';
3
- import { PoolKeyed, Quote } from './pool';
4
- import { StableswapPoolTypeConfig } from './utils';
5
- export declare class OraclePool extends FullRangePool {
2
+ import { Result } from '@ethersproject/abi';
3
+ import { FullRangePoolBase, FullRangePoolState } from './full-range';
4
+ import { Quote } from './pool';
5
+ import { PoolKey, StableswapPoolTypeConfig, SwappedEvent } from './utils';
6
+ export declare class OraclePool extends FullRangePoolBase<FullRangePoolState.Object> {
7
+ generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<FullRangePoolState.Object>>;
6
8
  protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly<FullRangePoolState.Object>, sqrtRatioLimit?: bigint): Quote;
7
- quoteOracle(this: PoolKeyed<StableswapPoolTypeConfig>, amount: bigint, isToken1: boolean, state: DeepReadonly<FullRangePoolState.Object>, sqrtRatioLimit?: bigint): Quote;
9
+ protected handlePositionUpdated(args: Result, oldState: DeepReadonly<FullRangePoolState.Object>): DeepReadonly<FullRangePoolState.Object> | null;
10
+ protected handleSwappedEvent(ev: SwappedEvent, _oldState: DeepReadonly<FullRangePoolState.Object>): DeepReadonly<FullRangePoolState.Object> | null;
8
11
  }
12
+ export declare function quoteOracle(key: PoolKey<StableswapPoolTypeConfig>, amount: bigint, isToken1: boolean, state: DeepReadonly<FullRangePoolState.Object>, sqrtRatioLimit?: bigint): Quote;
@@ -1,18 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OraclePool = void 0;
4
+ exports.quoteOracle = quoteOracle;
4
5
  const full_range_1 = require("./full-range");
5
- // TODO
6
- const BASE_GAS_COST_OF_ONE_ORACLE_SWAP = 32_000;
7
- class OraclePool extends full_range_1.FullRangePool {
6
+ // This assumes a snapshot is always inserted
7
+ const GAS_COST_OF_ONE_ORACLE_SWAP = 23_828;
8
+ class OraclePool extends full_range_1.FullRangePoolBase {
9
+ async generateState(blockNumber) {
10
+ const data = await this.quoteDataFetcher.getQuoteData([this.key.toAbi()], 0, {
11
+ blockTag: blockNumber,
12
+ });
13
+ return full_range_1.FullRangePoolState.fromQuoter(data[0]);
14
+ }
8
15
  _quote(amount, isToken1, state, sqrtRatioLimit) {
9
- return this.quoteOracle(amount, isToken1, state, sqrtRatioLimit);
16
+ return quoteOracle(this.key, amount, isToken1, state, sqrtRatioLimit);
17
+ }
18
+ handlePositionUpdated(args, oldState) {
19
+ return full_range_1.FullRangePoolState.fromPositionUpdatedEvent(oldState, args.liquidityDelta.toBigInt());
10
20
  }
11
- quoteOracle(amount, isToken1, state, sqrtRatioLimit) {
12
- const fullRangeQuote = full_range_1.FullRangePool.prototype.quoteFullRange.call(this, amount, isToken1, state, sqrtRatioLimit);
13
- fullRangeQuote.gasConsumed = BASE_GAS_COST_OF_ONE_ORACLE_SWAP;
14
- return fullRangeQuote;
21
+ handleSwappedEvent(ev, _oldState) {
22
+ return full_range_1.FullRangePoolState.fromSwappedEvent(ev);
15
23
  }
16
24
  }
17
25
  exports.OraclePool = OraclePool;
26
+ function quoteOracle(key, amount, isToken1, state, sqrtRatioLimit) {
27
+ const quote = (0, full_range_1.quoteFullRange)(key, amount, isToken1, state, sqrtRatioLimit);
28
+ quote.gasConsumed = GAS_COST_OF_ONE_ORACLE_SWAP;
29
+ return quote;
30
+ }
18
31
  //# sourceMappingURL=oracle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oracle.js","sourceRoot":"","sources":["../../../../src/dex/ekubo-v3/pools/oracle.ts"],"names":[],"mappings":";;;AACA,6CAAiE;AAIjE,OAAO;AACP,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAEhD,MAAa,UAAW,SAAQ,0BAAa;IACxB,MAAM,CACvB,MAAc,EACd,QAAiB,EACjB,KAA8C,EAC9C,cAAuB;QAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACnE,CAAC;IAEM,WAAW,CAEhB,MAAc,EACd,QAAiB,EACjB,KAA8C,EAC9C,cAAuB;QAEvB,MAAM,cAAc,GAAG,0BAAa,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAChE,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,cAAc,CACf,CAAC;QAEF,cAAc,CAAC,WAAW,GAAG,gCAAgC,CAAC;QAE9D,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AA7BD,gCA6BC"}
1
+ {"version":3,"file":"oracle.js","sourceRoot":"","sources":["../../../../src/dex/ekubo-v3/pools/oracle.ts"],"names":[],"mappings":";;;AAsDA,kCAYC;AAhED,6CAIsB;AAItB,6CAA6C;AAC7C,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAE3C,MAAa,UAAW,SAAQ,8BAA4C;IAC1D,KAAK,CAAC,aAAa,CACjC,WAA+B;QAE/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CACnD,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAClB,CAAC,EACD;YACE,QAAQ,EAAE,WAAW;SACtB,CACF,CAAC;QACF,OAAO,+BAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAEkB,MAAM,CACvB,MAAc,EACd,QAAiB,EACjB,KAA8C,EAC9C,cAAuB;QAEvB,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;IAEkB,qBAAqB,CACtC,IAAY,EACZ,QAAiD;QAEjD,OAAO,+BAAkB,CAAC,wBAAwB,CAChD,QAAQ,EACR,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAC/B,CAAC;IACJ,CAAC;IAEkB,kBAAkB,CACnC,EAAgB,EAChB,SAAkD;QAElD,OAAO,+BAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AAvCD,gCAuCC;AAED,SAAgB,WAAW,CACzB,GAAsC,EACtC,MAAc,EACd,QAAiB,EACjB,KAA8C,EAC9C,cAAuB;IAEvB,MAAM,KAAK,GAAG,IAAA,2BAAc,EAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAE3E,KAAK,CAAC,WAAW,GAAG,2BAA2B,CAAC;IAEhD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -4,7 +4,7 @@ import { DeepReadonly } from 'ts-essentials';
4
4
  import { IDexHelper } from '../../../dex-helper/idex-helper';
5
5
  import { StatefulEventSubscriber } from '../../../stateful-event-subscriber';
6
6
  import { BlockHeader, Log } from '../../../types';
7
- import { PoolKey, PoolTypeConfig } from './utils';
7
+ import { PoolKey, PoolTypeConfig, SwappedEvent } from './utils';
8
8
  import { EventSubscriber } from '../../../dex-helper';
9
9
  export type Quote<StateAfter = undefined> = {
10
10
  consumedAmount: bigint;
@@ -14,10 +14,8 @@ export type Quote<StateAfter = undefined> = {
14
14
  } & (StateAfter extends undefined ? {} : {
15
15
  stateAfter: StateAfter;
16
16
  });
17
- export interface PoolKeyed<C extends PoolTypeConfig> {
17
+ export interface IEkuboPool<C extends PoolTypeConfig> extends EventSubscriber {
18
18
  key: PoolKey<C>;
19
- }
20
- export interface IEkuboPool<C extends PoolTypeConfig> extends PoolKeyed<C>, EventSubscriber {
21
19
  initializationBlockNumber(): number;
22
20
  quote(amount: bigint, token: bigint, blockNumber: number): Quote;
23
21
  updateState(blockNumber: number): Promise<void>;
@@ -26,17 +24,17 @@ export interface IEkuboPool<C extends PoolTypeConfig> extends PoolKeyed<C>, Even
26
24
  export type NamedEventHandler<State> = (args: Result, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<State> | null;
27
25
  export type AnonymousEventHandler<State> = (data: string, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<State> | null;
28
26
  export declare class NamedEventHandlers<State> {
29
- private readonly iface;
30
- private readonly handlers;
27
+ readonly iface: Interface;
28
+ readonly handlers: Record<string, NamedEventHandler<State>>;
31
29
  constructor(iface: Interface, handlers: Record<string, NamedEventHandler<State>>);
32
30
  parseLog(log: Readonly<Log>, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>): DeepReadonly<State> | null;
33
31
  }
34
32
  export declare abstract class EkuboPool<C extends PoolTypeConfig, S> extends StatefulEventSubscriber<S> implements IEkuboPool<C> {
35
33
  private readonly initBlockNumber;
36
34
  readonly key: PoolKey<C>;
35
+ protected constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, initBlockNumber: number, key: PoolKey<C>, coreAddress: string, coreIface: Interface, extraNamedEventHandlers?: Record<string, NamedEventHandlers<S>>, extraAnonymousEventHandlers?: Record<string, AnonymousEventHandler<S>>);
37
36
  private readonly namedEventHandlers;
38
37
  private readonly anonymousEventHandlers;
39
- protected constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, initBlockNumber: number, key: PoolKey<C>, namedEventHandlers: Record<string, NamedEventHandlers<S>>, anonymousEventHandlers: Record<string, AnonymousEventHandler<S>>);
40
38
  initializationBlockNumber(): number;
41
39
  updateState(blockNumber: number): Promise<void>;
42
40
  quote(amount: bigint, token: bigint, blockNumber: number): Quote;
@@ -53,4 +51,6 @@ export declare abstract class EkuboPool<C extends PoolTypeConfig, S> extends Sta
53
51
  protected processLog(state: DeepReadonly<S>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<S> | null;
54
52
  protected abstract _quote(amount: bigint, isToken1: boolean, state: DeepReadonly<S>, sqrtRatioLimit?: bigint): Quote;
55
53
  protected abstract _computeTvl(state: DeepReadonly<S>): [bigint, bigint];
54
+ protected abstract handlePositionUpdated(args: Result, oldState: DeepReadonly<S>): DeepReadonly<S> | null;
55
+ protected abstract handleSwappedEvent(ev: SwappedEvent, oldState: DeepReadonly<S>): DeepReadonly<S> | null;
56
56
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EkuboPool = exports.NamedEventHandlers = void 0;
4
4
  const stateful_event_subscriber_1 = require("../../../stateful-event-subscriber");
5
+ const utils_1 = require("./utils");
5
6
  class NamedEventHandlers {
6
7
  iface;
7
8
  handlers;
@@ -18,18 +19,28 @@ exports.NamedEventHandlers = NamedEventHandlers;
18
19
  class EkuboPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
19
20
  initBlockNumber;
20
21
  key;
21
- namedEventHandlers;
22
- anonymousEventHandlers;
23
- constructor(parentName, dexHelper, logger, initBlockNumber, key, namedEventHandlers, anonymousEventHandlers) {
22
+ constructor(parentName, dexHelper, logger, initBlockNumber, key, coreAddress, coreIface, extraNamedEventHandlers = {}, extraAnonymousEventHandlers = {}) {
24
23
  super(parentName, key.stringId, dexHelper, logger);
25
24
  this.initBlockNumber = initBlockNumber;
26
25
  this.key = key;
27
- this.namedEventHandlers = namedEventHandlers;
28
- this.anonymousEventHandlers = anonymousEventHandlers;
26
+ const coreNamedHandlers = extraNamedEventHandlers[coreAddress]?.handlers ?? {};
27
+ this.namedEventHandlers = {
28
+ ...extraNamedEventHandlers,
29
+ [coreAddress]: new NamedEventHandlers(coreIface, {
30
+ ...coreNamedHandlers,
31
+ PositionUpdated: (args, oldState) => this.handlePositionUpdated(args, oldState),
32
+ }),
33
+ };
34
+ this.anonymousEventHandlers = {
35
+ ...extraAnonymousEventHandlers,
36
+ [coreAddress]: (data, oldState) => this.handleSwappedEvent((0, utils_1.parseSwappedEvent)(data), oldState),
37
+ };
29
38
  this.addressesSubscribed = [
30
- ...new Set(Object.keys(namedEventHandlers).concat(Object.keys(anonymousEventHandlers))),
39
+ ...new Set(Object.keys(this.namedEventHandlers).concat(Object.keys(this.anonymousEventHandlers))),
31
40
  ];
32
41
  }
42
+ namedEventHandlers;
43
+ anonymousEventHandlers;
33
44
  initializationBlockNumber() {
34
45
  return this.initBlockNumber;
35
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../src/dex/ekubo-v3/pools/pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../src/dex/ekubo-v3/pools/pool.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,23 @@
1
1
  import { DeepReadonly } from 'ts-essentials';
2
+ import { Result } from '@ethersproject/abi';
2
3
  import { IDexHelper } from '../../../dex-helper/idex-helper';
3
4
  import { Logger } from '../../../types';
4
5
  import { EkuboContracts } from '../types';
5
- import { EkuboPool, PoolKeyed, Quote } from './pool';
6
- import { PoolKey, StableswapPoolTypeConfig } from './utils';
6
+ import { EkuboPool, Quote } from './pool';
7
+ import { PoolKey, StableswapPoolTypeConfig, SwappedEvent } from './utils';
7
8
  import { FullRangePoolState } from './full-range';
8
- export declare class StableswapPool extends EkuboPool<StableswapPoolTypeConfig, FullRangePoolState.Object> {
9
- readonly lowerPrice: bigint;
10
- readonly upperPrice: bigint;
11
- private readonly quoteDataFetcher;
9
+ export declare abstract class StableswapPoolBase<S extends FullRangePoolState.Object> extends EkuboPool<StableswapPoolTypeConfig, S> {
10
+ private readonly bounds;
11
+ protected readonly quoteDataFetcher: import("ethers").Contract;
12
12
  constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, contracts: EkuboContracts, initBlockNumber: number, key: PoolKey<StableswapPoolTypeConfig>);
13
+ protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly<S>, sqrtRatioLimit?: bigint): Quote;
14
+ protected _computeTvl(state: DeepReadonly<S>): [bigint, bigint];
15
+ }
16
+ export declare function quoteStableswap(fee: bigint, { lowerPrice, upperPrice }: StableswapBounds, amount: bigint, isToken1: boolean, state: DeepReadonly<Pick<FullRangePoolState.Object, 'sqrtRatio' | 'liquidity'>>, sqrtRatioLimit?: bigint): Quote<Pick<FullRangePoolState.Object, 'sqrtRatio' | 'liquidity'>>;
17
+ export declare class StableswapPool extends StableswapPoolBase<FullRangePoolState.Object> {
13
18
  generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<FullRangePoolState.Object>>;
14
- protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly<FullRangePoolState.Object>, sqrtRatioLimit?: bigint): Quote;
15
- quoteStableswap(this: PoolKeyed<StableswapPoolTypeConfig> & StableswapBounds, amount: bigint, isToken1: boolean, state: DeepReadonly<FullRangePoolState.Object>, sqrtRatioLimit?: bigint): Quote<FullRangePoolState.Object>;
16
- protected _computeTvl(state: FullRangePoolState.Object): [bigint, bigint];
19
+ protected handlePositionUpdated(args: Result, oldState: DeepReadonly<FullRangePoolState.Object>): DeepReadonly<FullRangePoolState.Object> | null;
20
+ protected handleSwappedEvent(ev: SwappedEvent, _oldState: DeepReadonly<FullRangePoolState.Object>): DeepReadonly<FullRangePoolState.Object> | null;
17
21
  }
18
22
  export interface StableswapBounds {
19
23
  lowerPrice: bigint;