@paraswap/dex-lib 4.8.24 → 4.8.25

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 (432) hide show
  1. package/build/abi/AaveV2_lending_pool.json +53 -0
  2. package/build/abi/Bancor.json +392 -0
  3. package/build/abi/Compound_CETH.json +12 -0
  4. package/build/abi/SSPM.json +829 -0
  5. package/build/abi/Smoothy.json +1049 -0
  6. package/build/abi/StaderOracle.json +2170 -0
  7. package/build/abi/aave-weth-gateway-avalanche.json +242 -0
  8. package/build/abi/aave-weth-gateway-polygon.json +242 -0
  9. package/build/abi/aave-weth-gateway.json +24 -0
  10. package/build/abi/bunni-v2/BunniHook.abi.json +1921 -0
  11. package/build/abi/bunni-v2/BunniHub.abi.json +1598 -0
  12. package/build/abi/bunni-v2/BunniToken.abi.json +833 -0
  13. package/build/abi/bunni-v2/FeeOverrideHooklet.abi.json +1947 -0
  14. package/build/abi/bunni-v2/FloodPlain.abi.json +1195 -0
  15. package/build/abi/bunni-v2/PoolManager.abi.json +1366 -0
  16. package/build/abi/bunni-v2/V4Quoter.abi.json +637 -0
  17. package/build/abi/concentrator/arUSD.json +568 -0
  18. package/build/abi/concentrator/arUSD5115.json +1746 -0
  19. package/build/abi/gmx/fast-price-events.json +70 -0
  20. package/build/abi/gmx/fast-price-feed.json +748 -0
  21. package/build/abi/gmx/reader.json +337 -0
  22. package/build/abi/gmx/vault-price-feed.json +477 -0
  23. package/build/abi/gmx/vault.json +2002 -0
  24. package/build/abi/jarvis/ChainlinkAccessControlledOffchainAggregator.json +1009 -0
  25. package/build/abi/jarvis/SynthereumPriceFeed.json +381 -0
  26. package/build/abi/jarvis/jarvis-v6-pool.json +1041 -0
  27. package/build/abi/kyberdmm/kyber-dmm-exchange-router.abi.json +1148 -0
  28. package/build/abi/kyberdmm/kyber-dmm-factory.abi.json +335 -0
  29. package/build/abi/kyberdmm/kyber-dmm-pool.abi.json +803 -0
  30. package/build/abi/synthetix/CombinedSynthetix.abi.json +442 -0
  31. package/build/abi/wombat/asset.json +743 -0
  32. package/build/abi/wombat/bmw.json +1247 -0
  33. package/build/abi/wombat/pool-v2.json +1289 -0
  34. package/build/abi/wombat/pool-v3.json +2013 -0
  35. package/build/dex/aave-v2/aave-v2.d.ts +33 -0
  36. package/build/dex/aave-v2/aave-v2.js +328 -0
  37. package/build/dex/aave-v2/aave-v2.js.map +1 -0
  38. package/build/dex/aave-v2/config.d.ts +14 -0
  39. package/build/dex/aave-v2/config.js +49 -0
  40. package/build/dex/aave-v2/config.js.map +1 -0
  41. package/build/dex/aave-v2/tokenlist.json +904 -0
  42. package/build/dex/aave-v2/tokens.d.ts +8 -0
  43. package/build/dex/aave-v2/tokens.js +65 -0
  44. package/build/dex/aave-v2/tokens.js.map +1 -0
  45. package/build/dex/aave-v2/types.d.ts +33 -0
  46. package/build/dex/aave-v2/types.js +11 -0
  47. package/build/dex/aave-v2/types.js.map +1 -0
  48. package/build/dex/bancor/bancor.d.ts +15 -0
  49. package/build/dex/bancor/bancor.js +74 -0
  50. package/build/dex/bancor/bancor.js.map +1 -0
  51. package/build/dex/bancor/config.d.ts +6 -0
  52. package/build/dex/bancor/config.js +11 -0
  53. package/build/dex/bancor/config.js.map +1 -0
  54. package/build/dex/bancor/types.d.ts +16 -0
  55. package/build/dex/bancor/types.js +8 -0
  56. package/build/dex/bancor/types.js.map +1 -0
  57. package/build/dex/bebop/bebop.js +1 -1
  58. package/build/dex/bebop/bebop.js.map +1 -1
  59. package/build/dex/bunni-v2/bunni-v2-pool.d.ts +62 -0
  60. package/build/dex/bunni-v2/bunni-v2-pool.js +505 -0
  61. package/build/dex/bunni-v2/bunni-v2-pool.js.map +1 -0
  62. package/build/dex/bunni-v2/bunni-v2.d.ts +51 -0
  63. package/build/dex/bunni-v2/bunni-v2.js +460 -0
  64. package/build/dex/bunni-v2/bunni-v2.js.map +1 -0
  65. package/build/dex/{renegade → bunni-v2}/config.d.ts +1 -1
  66. package/build/dex/bunni-v2/config.js +130 -0
  67. package/build/dex/bunni-v2/config.js.map +1 -0
  68. package/build/dex/bunni-v2/encoder.d.ts +19 -0
  69. package/build/dex/{pancakeswap-infinity → bunni-v2}/encoder.js +199 -88
  70. package/build/dex/bunni-v2/encoder.js.map +1 -0
  71. package/build/dex/bunni-v2/getOnChainState.d.ts +26 -0
  72. package/build/dex/bunni-v2/getOnChainState.js +493 -0
  73. package/build/dex/bunni-v2/getOnChainState.js.map +1 -0
  74. package/build/dex/bunni-v2/hook/BunniSwapMath.d.ts +7 -0
  75. package/build/dex/bunni-v2/hook/BunniSwapMath.js +198 -0
  76. package/build/dex/bunni-v2/hook/BunniSwapMath.js.map +1 -0
  77. package/build/dex/bunni-v2/hook/SwapMath.d.ts +8 -0
  78. package/build/dex/bunni-v2/hook/SwapMath.js +65 -0
  79. package/build/dex/bunni-v2/hook/SwapMath.js.map +1 -0
  80. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.d.ts +33 -0
  81. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js +33 -0
  82. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js.map +1 -0
  83. package/build/dex/bunni-v2/hooklet/index.d.ts +21 -0
  84. package/build/dex/bunni-v2/hooklet/index.js +64 -0
  85. package/build/dex/bunni-v2/hooklet/index.js.map +1 -0
  86. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.d.ts +70 -0
  87. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js +277 -0
  88. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js.map +1 -0
  89. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.d.ts +64 -0
  90. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js +262 -0
  91. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js.map +1 -0
  92. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.d.ts +60 -0
  93. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js +224 -0
  94. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js.map +1 -0
  95. package/build/dex/bunni-v2/ldf/GeometricDistribution.d.ts +56 -0
  96. package/build/dex/bunni-v2/ldf/GeometricDistribution.js +489 -0
  97. package/build/dex/bunni-v2/ldf/GeometricDistribution.js.map +1 -0
  98. package/build/dex/bunni-v2/ldf/LDFType.d.ts +5 -0
  99. package/build/dex/bunni-v2/ldf/LDFType.js +10 -0
  100. package/build/dex/bunni-v2/ldf/LDFType.js.map +1 -0
  101. package/build/dex/bunni-v2/ldf/ShiftMode.d.ts +7 -0
  102. package/build/dex/bunni-v2/ldf/ShiftMode.js +19 -0
  103. package/build/dex/bunni-v2/ldf/ShiftMode.js.map +1 -0
  104. package/build/dex/bunni-v2/ldf/UniformDistribution.d.ts +55 -0
  105. package/build/dex/bunni-v2/ldf/UniformDistribution.js +291 -0
  106. package/build/dex/bunni-v2/ldf/UniformDistribution.js.map +1 -0
  107. package/build/dex/bunni-v2/ldf/index.d.ts +15 -0
  108. package/build/dex/bunni-v2/ldf/index.js +21 -0
  109. package/build/dex/bunni-v2/ldf/index.js.map +1 -0
  110. package/build/dex/bunni-v2/lib/AmAmmPayload.d.ts +4 -0
  111. package/build/dex/bunni-v2/lib/AmAmmPayload.js +10 -0
  112. package/build/dex/bunni-v2/lib/AmAmmPayload.js.map +1 -0
  113. package/build/dex/bunni-v2/lib/BitMath.d.ts +4 -0
  114. package/build/dex/bunni-v2/lib/BitMath.js +24 -0
  115. package/build/dex/bunni-v2/lib/BitMath.js.map +1 -0
  116. package/build/dex/bunni-v2/lib/Constants.d.ts +15 -0
  117. package/build/dex/bunni-v2/lib/Constants.js +19 -0
  118. package/build/dex/bunni-v2/lib/Constants.js.map +1 -0
  119. package/build/dex/bunni-v2/lib/ExpMath.d.ts +5 -0
  120. package/build/dex/bunni-v2/lib/ExpMath.js +121 -0
  121. package/build/dex/bunni-v2/lib/ExpMath.js.map +1 -0
  122. package/build/dex/bunni-v2/lib/FeeMath.d.ts +2 -0
  123. package/build/dex/bunni-v2/lib/FeeMath.js +27 -0
  124. package/build/dex/bunni-v2/lib/FeeMath.js.map +1 -0
  125. package/build/dex/bunni-v2/lib/FixedPointMath.d.ts +3 -0
  126. package/build/dex/bunni-v2/lib/FixedPointMath.js +15 -0
  127. package/build/dex/bunni-v2/lib/FixedPointMath.js.map +1 -0
  128. package/build/dex/bunni-v2/lib/FullMathX96.d.ts +4 -0
  129. package/build/dex/bunni-v2/lib/FullMathX96.js +21 -0
  130. package/build/dex/bunni-v2/lib/FullMathX96.js.map +1 -0
  131. package/build/dex/bunni-v2/lib/IdleBalance.d.ts +11 -0
  132. package/build/dex/bunni-v2/lib/IdleBalance.js +33 -0
  133. package/build/dex/bunni-v2/lib/IdleBalance.js.map +1 -0
  134. package/build/dex/bunni-v2/lib/LiquidityAmounts.d.ts +6 -0
  135. package/build/dex/bunni-v2/lib/LiquidityAmounts.js +25 -0
  136. package/build/dex/bunni-v2/lib/LiquidityAmounts.js.map +1 -0
  137. package/build/dex/bunni-v2/lib/Math.d.ts +28 -0
  138. package/build/dex/bunni-v2/lib/Math.js +169 -0
  139. package/build/dex/bunni-v2/lib/Math.js.map +1 -0
  140. package/build/dex/bunni-v2/lib/Oracle.d.ts +27 -0
  141. package/build/dex/bunni-v2/lib/Oracle.js +180 -0
  142. package/build/dex/bunni-v2/lib/Oracle.js.map +1 -0
  143. package/build/dex/bunni-v2/lib/QueryLDF.d.ts +12 -0
  144. package/build/dex/bunni-v2/lib/QueryLDF.js +90 -0
  145. package/build/dex/bunni-v2/lib/QueryLDF.js.map +1 -0
  146. package/build/dex/bunni-v2/lib/QueryTwap.d.ts +2 -0
  147. package/build/dex/bunni-v2/lib/QueryTwap.js +13 -0
  148. package/build/dex/bunni-v2/lib/QueryTwap.js.map +1 -0
  149. package/build/dex/bunni-v2/lib/SqrtPriceMath.d.ts +8 -0
  150. package/build/dex/bunni-v2/lib/SqrtPriceMath.js +84 -0
  151. package/build/dex/bunni-v2/lib/SqrtPriceMath.js.map +1 -0
  152. package/build/dex/bunni-v2/lib/TickMath.d.ts +11 -0
  153. package/build/dex/bunni-v2/lib/TickMath.js +100 -0
  154. package/build/dex/bunni-v2/lib/TickMath.js.map +1 -0
  155. package/build/dex/bunni-v2/lib/VaultMath.d.ts +2 -0
  156. package/build/dex/bunni-v2/lib/VaultMath.js +11 -0
  157. package/build/dex/bunni-v2/lib/VaultMath.js.map +1 -0
  158. package/build/dex/bunni-v2/logic/AmAmm.d.ts +11 -0
  159. package/build/dex/bunni-v2/logic/AmAmm.js +156 -0
  160. package/build/dex/bunni-v2/logic/AmAmm.js.map +1 -0
  161. package/build/dex/bunni-v2/logic/BunniHookLogic.d.ts +10 -0
  162. package/build/dex/bunni-v2/logic/BunniHookLogic.js +298 -0
  163. package/build/dex/bunni-v2/logic/BunniHookLogic.js.map +1 -0
  164. package/build/dex/bunni-v2/logic/BunniHubLogic.d.ts +5 -0
  165. package/build/dex/bunni-v2/logic/BunniHubLogic.js +245 -0
  166. package/build/dex/bunni-v2/logic/BunniHubLogic.js.map +1 -0
  167. package/build/dex/bunni-v2/logic/BunniQuoter.d.ts +12 -0
  168. package/build/dex/bunni-v2/logic/BunniQuoter.js +201 -0
  169. package/build/dex/bunni-v2/logic/BunniQuoter.js.map +1 -0
  170. package/build/dex/bunni-v2/subgraph.d.ts +7 -0
  171. package/build/dex/bunni-v2/subgraph.js +184 -0
  172. package/build/dex/bunni-v2/subgraph.js.map +1 -0
  173. package/build/dex/bunni-v2/types.d.ts +257 -0
  174. package/build/dex/{renegade/api → bunni-v2}/types.js.map +1 -1
  175. package/build/dex/bunni-v2/utils.d.ts +12 -0
  176. package/build/dex/bunni-v2/utils.js +182 -0
  177. package/build/dex/bunni-v2/utils.js.map +1 -0
  178. package/build/dex/compound/compound.d.ts +15 -0
  179. package/build/dex/compound/compound.js +57 -0
  180. package/build/dex/compound/compound.js.map +1 -0
  181. package/build/dex/compound/types.d.ts +8 -0
  182. package/build/dex/compound/types.js +9 -0
  183. package/build/dex/compound/types.js.map +1 -0
  184. package/build/dex/concentrator-arusd/concentrator-arusd-event.d.ts +17 -0
  185. package/build/dex/concentrator-arusd/concentrator-arusd-event.js +69 -0
  186. package/build/dex/concentrator-arusd/concentrator-arusd-event.js.map +1 -0
  187. package/build/dex/concentrator-arusd/concentrator-arusd.d.ts +41 -0
  188. package/build/dex/concentrator-arusd/concentrator-arusd.js +202 -0
  189. package/build/dex/concentrator-arusd/concentrator-arusd.js.map +1 -0
  190. package/build/dex/concentrator-arusd/config.d.ts +3 -0
  191. package/build/dex/concentrator-arusd/config.js +14 -0
  192. package/build/dex/concentrator-arusd/config.js.map +1 -0
  193. package/build/dex/concentrator-arusd/types.d.ts +14 -0
  194. package/build/dex/concentrator-arusd/types.js.map +1 -0
  195. package/build/dex/concentrator-arusd/utils.d.ts +4 -0
  196. package/build/dex/concentrator-arusd/utils.js +26 -0
  197. package/build/dex/concentrator-arusd/utils.js.map +1 -0
  198. package/build/dex/curve-v1/forks/swerve/config.d.ts +4 -0
  199. package/build/dex/curve-v1/forks/swerve/config.js +47 -0
  200. package/build/dex/curve-v1/forks/swerve/config.js.map +1 -0
  201. package/build/dex/curve-v1/forks/swerve/swerve.d.ts +16 -0
  202. package/build/dex/curve-v1/forks/swerve/swerve.js +46 -0
  203. package/build/dex/curve-v1/forks/swerve/swerve.js.map +1 -0
  204. package/build/dex/gmx/config.d.ts +11 -0
  205. package/build/dex/gmx/config.js +61 -0
  206. package/build/dex/gmx/config.js.map +1 -0
  207. package/build/dex/gmx/fast-price-feed.d.ts +26 -0
  208. package/build/dex/gmx/fast-price-feed.js +184 -0
  209. package/build/dex/gmx/fast-price-feed.js.map +1 -0
  210. package/build/dex/gmx/gmx.d.ts +54 -0
  211. package/build/dex/gmx/gmx.js +247 -0
  212. package/build/dex/gmx/gmx.js.map +1 -0
  213. package/build/dex/gmx/pool.d.ts +21 -0
  214. package/build/dex/gmx/pool.js +212 -0
  215. package/build/dex/gmx/pool.js.map +1 -0
  216. package/build/dex/gmx/types.d.ts +100 -0
  217. package/build/dex/gmx/types.js +3 -0
  218. package/build/dex/gmx/types.js.map +1 -0
  219. package/build/dex/gmx/usdg.d.ts +15 -0
  220. package/build/dex/gmx/usdg.js +62 -0
  221. package/build/dex/gmx/usdg.js.map +1 -0
  222. package/build/dex/gmx/vault-price-feed.d.ts +47 -0
  223. package/build/dex/gmx/vault-price-feed.js +245 -0
  224. package/build/dex/gmx/vault-price-feed.js.map +1 -0
  225. package/build/dex/gmx/vault-utils.d.ts +8 -0
  226. package/build/dex/gmx/vault-utils.js +42 -0
  227. package/build/dex/gmx/vault-utils.js.map +1 -0
  228. package/build/dex/gmx/vault.d.ts +46 -0
  229. package/build/dex/gmx/vault.js +182 -0
  230. package/build/dex/gmx/vault.js.map +1 -0
  231. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.d.ts +15 -0
  232. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js +51 -0
  233. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js.map +1 -0
  234. package/build/dex/jarvis-v6/config.d.ts +4 -0
  235. package/build/dex/jarvis-v6/config.js +244 -0
  236. package/build/dex/jarvis-v6/config.js.map +1 -0
  237. package/build/dex/jarvis-v6/jarvis-v6-events.d.ts +27 -0
  238. package/build/dex/jarvis-v6/jarvis-v6-events.js +54 -0
  239. package/build/dex/jarvis-v6/jarvis-v6-events.js.map +1 -0
  240. package/build/dex/jarvis-v6/jarvis-v6.d.ts +49 -0
  241. package/build/dex/jarvis-v6/jarvis-v6.js +321 -0
  242. package/build/dex/jarvis-v6/jarvis-v6.js.map +1 -0
  243. package/build/dex/jarvis-v6/syntheteumPool-event.d.ts +15 -0
  244. package/build/dex/jarvis-v6/syntheteumPool-event.js +49 -0
  245. package/build/dex/jarvis-v6/syntheteumPool-event.js.map +1 -0
  246. package/build/dex/jarvis-v6/types.d.ts +48 -0
  247. package/build/dex/jarvis-v6/types.js +9 -0
  248. package/build/dex/jarvis-v6/types.js.map +1 -0
  249. package/build/dex/jarvis-v6/utils.d.ts +13 -0
  250. package/build/dex/jarvis-v6/utils.js +75 -0
  251. package/build/dex/jarvis-v6/utils.js.map +1 -0
  252. package/build/dex/kyberdmm/config.d.ts +9 -0
  253. package/build/dex/kyberdmm/config.js +59 -0
  254. package/build/dex/kyberdmm/config.js.map +1 -0
  255. package/build/dex/kyberdmm/fee-formula.d.ts +15 -0
  256. package/build/dex/kyberdmm/fee-formula.js +88 -0
  257. package/build/dex/kyberdmm/fee-formula.js.map +1 -0
  258. package/build/dex/kyberdmm/kyberdmm.d.ts +55 -0
  259. package/build/dex/kyberdmm/kyberdmm.js +447 -0
  260. package/build/dex/kyberdmm/kyberdmm.js.map +1 -0
  261. package/build/dex/kyberdmm/math-ext.d.ts +2 -0
  262. package/build/dex/kyberdmm/math-ext.js +27 -0
  263. package/build/dex/kyberdmm/math-ext.js.map +1 -0
  264. package/build/dex/kyberdmm/pool.d.ts +50 -0
  265. package/build/dex/kyberdmm/pool.js +157 -0
  266. package/build/dex/kyberdmm/pool.js.map +1 -0
  267. package/build/dex/kyberdmm/types.d.ts +81 -0
  268. package/build/dex/kyberdmm/types.js +9 -0
  269. package/build/dex/kyberdmm/types.js.map +1 -0
  270. package/build/dex/quickswap/thena-fusion.d.ts +6 -0
  271. package/build/dex/quickswap/thena-fusion.js +19 -0
  272. package/build/dex/quickswap/thena-fusion.js.map +1 -0
  273. package/build/dex/smoothy/smoothy.d.ts +16 -0
  274. package/build/dex/smoothy/smoothy.js +60 -0
  275. package/build/dex/smoothy/smoothy.js.map +1 -0
  276. package/build/dex/smoothy/types.d.ts +15 -0
  277. package/build/dex/smoothy/types.js +8 -0
  278. package/build/dex/smoothy/types.js.map +1 -0
  279. package/build/dex/stader/config.d.ts +3 -0
  280. package/build/dex/stader/config.js +14 -0
  281. package/build/dex/stader/config.js.map +1 -0
  282. package/build/dex/stader/stader-pool.d.ts +19 -0
  283. package/build/dex/stader/stader-pool.js +56 -0
  284. package/build/dex/stader/stader-pool.js.map +1 -0
  285. package/build/dex/stader/stader.d.ts +42 -0
  286. package/build/dex/stader/stader.js +195 -0
  287. package/build/dex/stader/stader.js.map +1 -0
  288. package/build/dex/stader/types.d.ts +13 -0
  289. package/build/dex/stader/types.js +8 -0
  290. package/build/dex/stader/types.js.map +1 -0
  291. package/build/dex/stader/utils.d.ts +4 -0
  292. package/build/dex/stader/utils.js +23 -0
  293. package/build/dex/stader/utils.js.map +1 -0
  294. package/build/dex/synthetix/config.d.ts +4 -0
  295. package/build/dex/synthetix/config.js +53 -0
  296. package/build/dex/synthetix/config.js.map +1 -0
  297. package/build/dex/synthetix/constants.d.ts +23 -0
  298. package/build/dex/synthetix/constants.js +32 -0
  299. package/build/dex/synthetix/constants.js.map +1 -0
  300. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.d.ts +17 -0
  301. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js +102 -0
  302. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js.map +1 -0
  303. package/build/dex/synthetix/contract-math/ExchangeRates.d.ts +8 -0
  304. package/build/dex/synthetix/contract-math/ExchangeRates.js +77 -0
  305. package/build/dex/synthetix/contract-math/ExchangeRates.js.map +1 -0
  306. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.d.ts +17 -0
  307. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js +126 -0
  308. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js.map +1 -0
  309. package/build/dex/synthetix/contract-math/FullMath.d.ts +3 -0
  310. package/build/dex/synthetix/contract-math/FullMath.js +14 -0
  311. package/build/dex/synthetix/contract-math/FullMath.js.map +1 -0
  312. package/build/dex/synthetix/contract-math/OracleLibrary.d.ts +8 -0
  313. package/build/dex/synthetix/contract-math/OracleLibrary.js +60 -0
  314. package/build/dex/synthetix/contract-math/OracleLibrary.js.map +1 -0
  315. package/build/dex/synthetix/contract-math/SafeDecimalMath.d.ts +9 -0
  316. package/build/dex/synthetix/contract-math/SafeDecimalMath.js +41 -0
  317. package/build/dex/synthetix/contract-math/SafeDecimalMath.js.map +1 -0
  318. package/build/dex/synthetix/contract-math/TickMath.d.ts +7 -0
  319. package/build/dex/synthetix/contract-math/TickMath.js +63 -0
  320. package/build/dex/synthetix/contract-math/TickMath.js.map +1 -0
  321. package/build/dex/synthetix/contract-math/synthetix-math.d.ts +17 -0
  322. package/build/dex/synthetix/contract-math/synthetix-math.js +127 -0
  323. package/build/dex/synthetix/contract-math/synthetix-math.js.map +1 -0
  324. package/build/dex/synthetix/synthetix-state.d.ts +36 -0
  325. package/build/dex/synthetix/synthetix-state.js +615 -0
  326. package/build/dex/synthetix/synthetix-state.js.map +1 -0
  327. package/build/dex/synthetix/synthetix.d.ts +45 -0
  328. package/build/dex/synthetix/synthetix.js +304 -0
  329. package/build/dex/synthetix/synthetix.js.map +1 -0
  330. package/build/dex/synthetix/types.d.ts +90 -0
  331. package/build/dex/synthetix/types.js +3 -0
  332. package/build/dex/synthetix/types.js.map +1 -0
  333. package/build/dex/synthetix/utils.d.ts +10 -0
  334. package/build/dex/synthetix/utils.js +91 -0
  335. package/build/dex/synthetix/utils.js.map +1 -0
  336. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.d.ts +7 -0
  337. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js +20 -0
  338. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js.map +1 -0
  339. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  340. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  341. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  342. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  343. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  344. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  345. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  346. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  347. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  348. package/build/dex/wombat/config.d.ts +4 -0
  349. package/build/dex/wombat/config.js +77 -0
  350. package/build/dex/wombat/config.js.map +1 -0
  351. package/build/dex/wombat/types.d.ts +34 -0
  352. package/build/dex/wombat/types.js +3 -0
  353. package/build/dex/wombat/types.js.map +1 -0
  354. package/build/dex/wombat/utils.d.ts +10 -0
  355. package/build/dex/wombat/utils.js +79 -0
  356. package/build/dex/wombat/utils.js.map +1 -0
  357. package/build/dex/wombat/wombat-bmw.d.ts +40 -0
  358. package/build/dex/wombat/wombat-bmw.js +136 -0
  359. package/build/dex/wombat/wombat-bmw.js.map +1 -0
  360. package/build/dex/wombat/wombat-pool.d.ts +60 -0
  361. package/build/dex/wombat/wombat-pool.js +488 -0
  362. package/build/dex/wombat/wombat-pool.js.map +1 -0
  363. package/build/dex/wombat/wombat-quoter.d.ts +17 -0
  364. package/build/dex/wombat/wombat-quoter.js +192 -0
  365. package/build/dex/wombat/wombat-quoter.js.map +1 -0
  366. package/build/dex/wombat/wombat.d.ts +58 -0
  367. package/build/dex/wombat/wombat.js +298 -0
  368. package/build/dex/wombat/wombat.js.map +1 -0
  369. package/build/tenderly-simulation.d.ts +221 -0
  370. package/build/tenderly-simulation.js +517 -0
  371. package/build/tenderly-simulation.js.map +1 -0
  372. package/package.json +1 -1
  373. package/build/abi/pancakeswap-infinity/cl-pool-manager.abi.json +0 -136
  374. package/build/abi/pancakeswap-infinity/cl-quoter.abi.json +0 -66
  375. package/build/abi/pancakeswap-infinity/router.abi.json +0 -23
  376. package/build/dex/pancakeswap-infinity/config.d.ts +0 -4
  377. package/build/dex/pancakeswap-infinity/config.js +0 -30
  378. package/build/dex/pancakeswap-infinity/config.js.map +0 -1
  379. package/build/dex/pancakeswap-infinity/constants.d.ts +0 -11
  380. package/build/dex/pancakeswap-infinity/constants.js +0 -15
  381. package/build/dex/pancakeswap-infinity/constants.js.map +0 -1
  382. package/build/dex/pancakeswap-infinity/encoder.d.ts +0 -16
  383. package/build/dex/pancakeswap-infinity/encoder.js.map +0 -1
  384. package/build/dex/pancakeswap-infinity/liquidity.d.ts +0 -1
  385. package/build/dex/pancakeswap-infinity/liquidity.js +0 -7
  386. package/build/dex/pancakeswap-infinity/liquidity.js.map +0 -1
  387. package/build/dex/pancakeswap-infinity/optimizer.d.ts +0 -2
  388. package/build/dex/pancakeswap-infinity/optimizer.js +0 -48
  389. package/build/dex/pancakeswap-infinity/optimizer.js.map +0 -1
  390. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.d.ts +0 -36
  391. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.js +0 -393
  392. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.js.map +0 -1
  393. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.d.ts +0 -37
  394. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.js +0 -289
  395. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.js.map +0 -1
  396. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.d.ts +0 -42
  397. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.js +0 -350
  398. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.js.map +0 -1
  399. package/build/dex/pancakeswap-infinity/subgraph.d.ts +0 -8
  400. package/build/dex/pancakeswap-infinity/subgraph.js +0 -122
  401. package/build/dex/pancakeswap-infinity/subgraph.js.map +0 -1
  402. package/build/dex/pancakeswap-infinity/types.d.ts +0 -101
  403. package/build/dex/pancakeswap-infinity/types.js.map +0 -1
  404. package/build/dex/pancakeswap-infinity/utils.d.ts +0 -5
  405. package/build/dex/pancakeswap-infinity/utils.js +0 -45
  406. package/build/dex/pancakeswap-infinity/utils.js.map +0 -1
  407. package/build/dex/renegade/api/auth.d.ts +0 -1
  408. package/build/dex/renegade/api/auth.js +0 -63
  409. package/build/dex/renegade/api/auth.js.map +0 -1
  410. package/build/dex/renegade/api/renegade-client.d.ts +0 -18
  411. package/build/dex/renegade/api/renegade-client.js +0 -82
  412. package/build/dex/renegade/api/renegade-client.js.map +0 -1
  413. package/build/dex/renegade/api/types.d.ts +0 -110
  414. package/build/dex/renegade/config.js +0 -16
  415. package/build/dex/renegade/config.js.map +0 -1
  416. package/build/dex/renegade/constants.d.ts +0 -25
  417. package/build/dex/renegade/constants.js +0 -47
  418. package/build/dex/renegade/constants.js.map +0 -1
  419. package/build/dex/renegade/rate-fetcher.d.ts +0 -23
  420. package/build/dex/renegade/rate-fetcher.js +0 -135
  421. package/build/dex/renegade/rate-fetcher.js.map +0 -1
  422. package/build/dex/renegade/renegade-levels-response.d.ts +0 -22
  423. package/build/dex/renegade/renegade-levels-response.js +0 -99
  424. package/build/dex/renegade/renegade-levels-response.js.map +0 -1
  425. package/build/dex/renegade/renegade.d.ts +0 -57
  426. package/build/dex/renegade/renegade.js +0 -499
  427. package/build/dex/renegade/renegade.js.map +0 -1
  428. package/build/dex/renegade/types.d.ts +0 -38
  429. package/build/dex/renegade/types.js +0 -4
  430. package/build/dex/renegade/types.js.map +0 -1
  431. /package/build/dex/{pancakeswap-infinity → bunni-v2}/types.js +0 -0
  432. /package/build/dex/{renegade/api → concentrator-arusd}/types.js +0 -0
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryLDF = queryLDF;
4
+ const ldf_1 = require("../ldf");
5
+ const Constants_1 = require("./Constants");
6
+ const FullMathX96_1 = require("./FullMathX96");
7
+ const IdleBalance_1 = require("./IdleBalance");
8
+ const LiquidityAmounts_1 = require("./LiquidityAmounts");
9
+ const Math_1 = require("./Math");
10
+ const TickMath_1 = require("./TickMath");
11
+ function queryLDF(key, sqrtPriceX96, tick, arithmeticMeanTick, ldf, ldfParams, ldfState, balance0, balance1, idleBalance, dexParams) {
12
+ let totalLiquidity = 0n;
13
+ let totalDensity0X96 = 0n;
14
+ let totalDensity1X96 = 0n;
15
+ let liquidityDensityOfRoundedTickX96 = 0n;
16
+ let activeBalance0 = 0n;
17
+ let activeBalance1 = 0n;
18
+ let newLdfState = Constants_1.ZERO_BYTES_32;
19
+ let shouldSurge = false;
20
+ const { roundedTick, nextRoundedTick } = (0, Math_1.roundTick)(tick, key.tickSpacing);
21
+ const roundedTickSqrtRatio = TickMath_1.TickMath.getSqrtPriceAtTick(roundedTick);
22
+ const nextRoundedTickSqrtRatio = TickMath_1.TickMath.getSqrtPriceAtTick(nextRoundedTick);
23
+ let density0RightOfRoundedTickX96;
24
+ let density1LeftOfRoundedTickX96;
25
+ ({
26
+ liquidityDensityX96_: liquidityDensityOfRoundedTickX96,
27
+ cumulativeAmount0DensityX96: density0RightOfRoundedTickX96,
28
+ cumulativeAmount1DensityX96: density1LeftOfRoundedTickX96,
29
+ newLdfState,
30
+ shouldSurge,
31
+ } = (0, ldf_1._query)(key, roundedTick, arithmeticMeanTick, tick, ldfParams, ldfState, ldf, dexParams));
32
+ const { amount0: density0OfRoundedTickX96, amount1: density1OfRoundedTickX96, } = LiquidityAmounts_1.LiquidityAmounts.getAmountsForLiquidity(sqrtPriceX96, roundedTickSqrtRatio, nextRoundedTickSqrtRatio, liquidityDensityOfRoundedTickX96, true);
33
+ totalDensity0X96 = density0RightOfRoundedTickX96 + density0OfRoundedTickX96;
34
+ totalDensity1X96 = density1LeftOfRoundedTickX96 + density1OfRoundedTickX96;
35
+ if (!shouldSurge) {
36
+ const { rawBalance, isToken0 } = IdleBalance_1.IdleBalanceLibrary.fromIdleBalance(idleBalance);
37
+ if (isToken0) {
38
+ balance0 = (0, Math_1.subReLU)(balance0, rawBalance);
39
+ }
40
+ else {
41
+ balance1 = (0, Math_1.subReLU)(balance1, rawBalance);
42
+ }
43
+ }
44
+ if (balance0 !== 0n || balance1 !== 0n) {
45
+ const noToken0 = balance0 === 0n || totalDensity0X96 === 0n;
46
+ const noToken1 = balance1 === 0n || totalDensity1X96 === 0n;
47
+ const totalLiquidityEstimate0 = noToken0
48
+ ? 0n
49
+ : (0, Math_1.mulDiv)(balance0, Constants_1.Q96, totalDensity0X96);
50
+ const totalLiquidityEstimate1 = noToken1
51
+ ? 0n
52
+ : (0, Math_1.mulDiv)(balance1, Constants_1.Q96, totalDensity1X96);
53
+ const useLiquidityEstimate0 = (totalLiquidityEstimate0 < totalLiquidityEstimate1 ||
54
+ totalDensity1X96 === 0n) &&
55
+ totalDensity0X96 !== 0n;
56
+ if (useLiquidityEstimate0) {
57
+ totalLiquidity = noToken0
58
+ ? 0n
59
+ : (0, Math_1.roundUpFullMulDivResult)(balance0, Constants_1.Q96, totalDensity0X96, totalLiquidityEstimate0);
60
+ activeBalance0 = noToken0
61
+ ? 0n
62
+ : (0, Math_1.min)(balance0, FullMathX96_1.FullMathX96.fullMulX96(totalLiquidityEstimate0, totalDensity0X96));
63
+ activeBalance1 = noToken1
64
+ ? 0n
65
+ : (0, Math_1.min)(balance1, FullMathX96_1.FullMathX96.fullMulX96(totalLiquidityEstimate0, totalDensity1X96));
66
+ }
67
+ else {
68
+ totalLiquidity = noToken1
69
+ ? 0n
70
+ : (0, Math_1.roundUpFullMulDivResult)(balance1, Constants_1.Q96, totalDensity1X96, totalLiquidityEstimate1);
71
+ activeBalance0 = noToken0
72
+ ? 0n
73
+ : (0, Math_1.min)(balance0, FullMathX96_1.FullMathX96.fullMulX96(totalLiquidityEstimate1, totalDensity0X96));
74
+ activeBalance1 = noToken1
75
+ ? 0n
76
+ : (0, Math_1.min)(balance1, FullMathX96_1.FullMathX96.fullMulX96(totalLiquidityEstimate1, totalDensity1X96));
77
+ }
78
+ }
79
+ return {
80
+ totalLiquidity,
81
+ totalDensity0X96,
82
+ totalDensity1X96,
83
+ liquidityDensityOfRoundedTickX96,
84
+ activeBalance0,
85
+ activeBalance1,
86
+ newLdfState,
87
+ shouldSurge,
88
+ };
89
+ }
90
+ //# sourceMappingURL=QueryLDF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryLDF.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/lib/QueryLDF.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { PoolState } from '../types';
2
+ export declare function queryTwap(state: PoolState, twapSecondsAgo: bigint, blockTimestamp: bigint): bigint;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryTwap = queryTwap;
4
+ const BunniHookLogic_1 = require("../logic/BunniHookLogic");
5
+ function queryTwap(state, twapSecondsAgo, blockTimestamp) {
6
+ const secondsAgos = [];
7
+ secondsAgos[0] = twapSecondsAgo;
8
+ secondsAgos[1] = 0n;
9
+ const tickCumulatives = (0, BunniHookLogic_1.observe)(state, secondsAgos, blockTimestamp);
10
+ const tickCumulativesDelta = tickCumulatives[1] - tickCumulatives[0];
11
+ return tickCumulativesDelta / twapSecondsAgo;
12
+ }
13
+ //# sourceMappingURL=QueryTwap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryTwap.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/lib/QueryTwap.ts"],"names":[],"mappings":";;AAGA,8BAYC;AAfD,4DAAkD;AAGlD,SAAgB,SAAS,CACvB,KAAgB,EAChB,cAAsB,EACtB,cAAsB;IAEtB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IAChC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAEpB,MAAM,eAAe,GAAa,IAAA,wBAAO,EAAC,KAAK,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,oBAAoB,GAAW,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,oBAAoB,GAAG,cAAc,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare abstract class SqrtPriceMath {
2
+ static getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96: bigint, liquidity: bigint, amount: bigint, add: boolean): bigint;
3
+ static getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96: bigint, liquidity: bigint, amount: bigint, add: boolean): bigint;
4
+ static getNextSqrtPriceFromInput(sqrtPX96: bigint, liquidity: bigint, amountIn: bigint, zeroForOne: boolean): bigint;
5
+ static getNextSqrtPriceFromOutput(sqrtPX96: bigint, liquidity: bigint, amountOut: bigint, zeroForOne: boolean): bigint;
6
+ static getAmount0Delta(sqrtPriceAX96: bigint, sqrtPriceBX96: bigint, liquidity: bigint, roundUp: boolean): bigint;
7
+ static getAmount1Delta(sqrtPriceAX96: bigint, sqrtPriceBX96: bigint, liquidity: bigint, roundUp: boolean): bigint;
8
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqrtPriceMath = void 0;
4
+ const bigint_constants_1 = require("../../../bigint-constants");
5
+ const Constants_1 = require("./Constants");
6
+ const Math_1 = require("./Math");
7
+ class SqrtPriceMath {
8
+ static getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amount, add) {
9
+ if (amount === 0n)
10
+ return sqrtPX96;
11
+ const numerator1 = liquidity << 96n;
12
+ if (add) {
13
+ const product = amount * sqrtPX96;
14
+ if (product / amount === sqrtPX96) {
15
+ const denominator = numerator1 + product;
16
+ if (denominator >= numerator1) {
17
+ return (0, Math_1.mulDivUp)(numerator1, sqrtPX96, denominator);
18
+ }
19
+ }
20
+ return (0, Math_1.divUp)(numerator1, numerator1 / sqrtPX96 + amount);
21
+ }
22
+ else {
23
+ const product = amount * sqrtPX96;
24
+ if (product / amount !== sqrtPX96 || numerator1 <= product) {
25
+ throw new Error('PriceOverflow');
26
+ }
27
+ const denominator = numerator1 - product;
28
+ return (0, Math_1.mulDivUp)(numerator1, sqrtPX96, denominator);
29
+ }
30
+ }
31
+ static getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amount, add) {
32
+ if (add) {
33
+ const quotient = amount <= bigint_constants_1.BI_MAX_UINT160
34
+ ? (amount << 96n) / liquidity
35
+ : (0, Math_1.mulDiv)(amount, Constants_1.Q96, liquidity);
36
+ return sqrtPX96 + quotient;
37
+ }
38
+ else {
39
+ const quotient = amount <= bigint_constants_1.BI_MAX_UINT160
40
+ ? (0, Math_1.divUp)(amount << 96n, liquidity)
41
+ : (0, Math_1.mulDivUp)(amount, Constants_1.Q96, liquidity);
42
+ if (sqrtPX96 <= quotient) {
43
+ throw new Error('NotEnoughLiquidity');
44
+ }
45
+ return sqrtPX96 - quotient;
46
+ }
47
+ }
48
+ static getNextSqrtPriceFromInput(sqrtPX96, liquidity, amountIn, zeroForOne) {
49
+ if (sqrtPX96 === 0n || liquidity === 0n) {
50
+ throw new Error('InvalidPriceOrLiquidity');
51
+ }
52
+ return zeroForOne
53
+ ? this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amountIn, true)
54
+ : this.getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amountIn, true);
55
+ }
56
+ static getNextSqrtPriceFromOutput(sqrtPX96, liquidity, amountOut, zeroForOne) {
57
+ if (sqrtPX96 === 0n || liquidity === 0n) {
58
+ throw new Error('InvalidPriceOrLiquidity');
59
+ }
60
+ return zeroForOne
61
+ ? this.getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amountOut, false)
62
+ : this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amountOut, false);
63
+ }
64
+ static getAmount0Delta(sqrtPriceAX96, sqrtPriceBX96, liquidity, roundUp) {
65
+ if (sqrtPriceAX96 > sqrtPriceBX96) {
66
+ [sqrtPriceAX96, sqrtPriceBX96] = [sqrtPriceBX96, sqrtPriceAX96];
67
+ }
68
+ if (sqrtPriceAX96 === 0n) {
69
+ throw new Error('InvalidPrice');
70
+ }
71
+ const numerator1 = liquidity << 96n;
72
+ const numerator2 = sqrtPriceBX96 - sqrtPriceAX96;
73
+ return roundUp
74
+ ? (0, Math_1.divUp)((0, Math_1.mulDivUp)(numerator1, numerator2, sqrtPriceBX96), sqrtPriceAX96)
75
+ : (0, Math_1.mulDiv)(numerator1, numerator2, sqrtPriceBX96) / sqrtPriceAX96;
76
+ }
77
+ static getAmount1Delta(sqrtPriceAX96, sqrtPriceBX96, liquidity, roundUp) {
78
+ return roundUp
79
+ ? (0, Math_1.mulDivUp)(liquidity, sqrtPriceBX96 - sqrtPriceAX96, Constants_1.Q96)
80
+ : (0, Math_1.mulDiv)(liquidity, sqrtPriceBX96 - sqrtPriceAX96, Constants_1.Q96);
81
+ }
82
+ }
83
+ exports.SqrtPriceMath = SqrtPriceMath;
84
+ //# sourceMappingURL=SqrtPriceMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqrtPriceMath.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/lib/SqrtPriceMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare abstract class TickMath {
2
+ private constructor();
3
+ static MIN_TICK: bigint;
4
+ static MAX_TICK: bigint;
5
+ static MIN_SQRT_PRICE: bigint;
6
+ static MAX_SQRT_PRICE: bigint;
7
+ static maxUsableTick(tickSpacing: bigint): bigint;
8
+ static minUsableTick(tickSpacing: bigint): bigint;
9
+ static getSqrtPriceAtTick(tick: bigint): bigint;
10
+ static getTickAtSqrtPrice(sqrtPriceX96: bigint): bigint;
11
+ }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TickMath = void 0;
4
+ const bigint_constants_1 = require("../../../bigint-constants");
5
+ const BitMath_1 = require("./BitMath");
6
+ function mulShift(val, mulBy) {
7
+ return (val * BigInt(mulBy)) >> 128n;
8
+ }
9
+ const Q32 = 2n ** 32n;
10
+ class TickMath {
11
+ constructor() { }
12
+ static MIN_TICK = -887272n;
13
+ static MAX_TICK = 887272n;
14
+ static MIN_SQRT_PRICE = 4295128739n;
15
+ static MAX_SQRT_PRICE = 1461446703485210103287273052203988822378723970342n;
16
+ static maxUsableTick(tickSpacing) {
17
+ return (this.MAX_TICK / tickSpacing) * tickSpacing;
18
+ }
19
+ static minUsableTick(tickSpacing) {
20
+ return (this.MIN_TICK / tickSpacing) * tickSpacing;
21
+ }
22
+ static getSqrtPriceAtTick(tick) {
23
+ if (tick < this.MIN_TICK || this.MAX_TICK < tick) {
24
+ throw new Error(`InvalidTick(${tick})`);
25
+ }
26
+ const absTick = tick < 0n ? -tick : tick;
27
+ let ratio = (absTick & 1n) !== 0n
28
+ ? BigInt('0xfffcb933bd6fad37aa2d162d1a594001')
29
+ : BigInt('0x100000000000000000000000000000000');
30
+ if ((absTick & 2n) !== 0n)
31
+ ratio = mulShift(ratio, '0xfff97272373d413259a46990580e213a');
32
+ if ((absTick & 4n) !== 0n)
33
+ ratio = mulShift(ratio, '0xfff2e50f5f656932ef12357cf3c7fdcc');
34
+ if ((absTick & 8n) !== 0n)
35
+ ratio = mulShift(ratio, '0xffe5caca7e10e4e61c3624eaa0941cd0');
36
+ if ((absTick & 16n) !== 0n)
37
+ ratio = mulShift(ratio, '0xffcb9843d60f6159c9db58835c926644');
38
+ if ((absTick & 32n) !== 0n)
39
+ ratio = mulShift(ratio, '0xff973b41fa98c081472e6896dfb254c0');
40
+ if ((absTick & 64n) !== 0n)
41
+ ratio = mulShift(ratio, '0xff2ea16466c96a3843ec78b326b52861');
42
+ if ((absTick & 128n) !== 0n)
43
+ ratio = mulShift(ratio, '0xfe5dee046a99a2a811c461f1969c3053');
44
+ if ((absTick & 256n) !== 0n)
45
+ ratio = mulShift(ratio, '0xfcbe86c7900a88aedcffc83b479aa3a4');
46
+ if ((absTick & 512n) !== 0n)
47
+ ratio = mulShift(ratio, '0xf987a7253ac413176f2b074cf7815e54');
48
+ if ((absTick & 1024n) !== 0n)
49
+ ratio = mulShift(ratio, '0xf3392b0822b70005940c7a398e4b70f3');
50
+ if ((absTick & 2048n) !== 0n)
51
+ ratio = mulShift(ratio, '0xe7159475a2c29b7443b29c7fa6e889d9');
52
+ if ((absTick & 4096n) !== 0n)
53
+ ratio = mulShift(ratio, '0xd097f3bdfd2022b8845ad8f792aa5825');
54
+ if ((absTick & 8192n) !== 0n)
55
+ ratio = mulShift(ratio, '0xa9f746462d870fdf8a65dc1f90e061e5');
56
+ if ((absTick & 16384n) !== 0n)
57
+ ratio = mulShift(ratio, '0x70d869a156d2a1b890bb3df62baf32f7');
58
+ if ((absTick & 32768n) !== 0n)
59
+ ratio = mulShift(ratio, '0x31be135f97d08fd981231505542fcfa6');
60
+ if ((absTick & 65536n) !== 0n)
61
+ ratio = mulShift(ratio, '0x9aa508b5b7a84e1c677de54f3e99bc9');
62
+ if ((absTick & 131072n) !== 0n)
63
+ ratio = mulShift(ratio, '0x5d6af8dedb81196699c329225ee604');
64
+ if ((absTick & 262144n) !== 0n)
65
+ ratio = mulShift(ratio, '0x2216e584f5fa1ea926041bedfe98');
66
+ if ((absTick & 524288n) !== 0n)
67
+ ratio = mulShift(ratio, '0x48a170391f7dc42444e8fa2');
68
+ if (tick > 0n)
69
+ ratio = bigint_constants_1.BI_MAX_UINT256 / ratio;
70
+ return ratio % Q32 > 0n ? ratio / Q32 + 1n : ratio / Q32;
71
+ }
72
+ static getTickAtSqrtPrice(sqrtPriceX96) {
73
+ const sqrtPriceX128 = sqrtPriceX96 << 32n;
74
+ const msb = BitMath_1.BitMath.mostSignificantBit(sqrtPriceX128);
75
+ let r;
76
+ if (msb >= 128n) {
77
+ r = sqrtPriceX128 >> (msb - 127n);
78
+ }
79
+ else {
80
+ r = sqrtPriceX128 << (127n - msb);
81
+ }
82
+ let log_2 = (msb - 128n) << 64n;
83
+ for (let i = 0; i < 14; i++) {
84
+ r = (r * r) >> 127n;
85
+ const f = r >> 128n;
86
+ log_2 = log_2 | (f << BigInt(63 - i));
87
+ r = r >> f;
88
+ }
89
+ const log_sqrt10001 = log_2 * 255738958999603826347141n;
90
+ const tickLow = (log_sqrt10001 - 3402992956809132418596140100660247210n) >> 128n;
91
+ const tickHigh = (log_sqrt10001 + 291339464771989622907027621153398088495n) >> 128n;
92
+ return tickLow === tickHigh
93
+ ? tickLow
94
+ : TickMath.getSqrtPriceAtTick(tickHigh) <= sqrtPriceX96
95
+ ? tickHigh
96
+ : tickLow;
97
+ }
98
+ }
99
+ exports.TickMath = TickMath;
100
+ //# sourceMappingURL=TickMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TickMath.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/lib/TickMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { IDexHelper } from '../../../dex-helper';
2
+ export declare function getReservesInUnderlying(reserveAmount: bigint, vault: string, blockNumber: bigint, dexHelper: IDexHelper): Promise<bigint>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getReservesInUnderlying = getReservesInUnderlying;
4
+ const constants_1 = require("../../../constants");
5
+ const getOnChainState_1 = require("../getOnChainState");
6
+ async function getReservesInUnderlying(reserveAmount, vault, blockNumber, dexHelper) {
7
+ return vault === constants_1.NULL_ADDRESS
8
+ ? reserveAmount
9
+ : await (0, getOnChainState_1.ERC4626_previewRedeem)(reserveAmount, vault, blockNumber, dexHelper);
10
+ }
11
+ //# sourceMappingURL=VaultMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VaultMath.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/lib/VaultMath.ts"],"names":[],"mappings":";;AAIA,0DASC;AAbD,kDAAkD;AAElD,wDAA2D;AAEpD,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,KAAa,EACb,WAAmB,EACnB,SAAqB;IAErB,OAAO,KAAK,KAAK,wBAAY;QAC3B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,MAAM,IAAA,uCAAqB,EAAC,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Bid, PoolState } from '../types';
2
+ export declare function getTopBid(state: PoolState, blockNumber: bigint, deploymentBlockNumber: bigint, K: bigint): Bid;
3
+ export declare function getTopBidWrite(state: PoolState, blockNumber: bigint, deploymentBlockNumber: bigint, K: bigint): Bid;
4
+ export declare function _updateAmAmmWrite(state: PoolState, blockNumber: bigint, deploymentBlockNumber: bigint, K: bigint): {
5
+ manager: string;
6
+ payload: string;
7
+ };
8
+ export declare function _updateAmAmmView(state: PoolState, blockNumber: bigint, deploymentBlockNumber: bigint, K: bigint): {
9
+ topBid: Bid;
10
+ nextBid: Bid;
11
+ };
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTopBid = getTopBid;
4
+ exports.getTopBidWrite = getTopBidWrite;
5
+ exports._updateAmAmmWrite = _updateAmAmmWrite;
6
+ exports._updateAmAmmView = _updateAmAmmView;
7
+ const constants_1 = require("../../../constants");
8
+ const Constants_1 = require("../lib/Constants");
9
+ const Math_1 = require("../lib/Math");
10
+ function getTopBid(state, blockNumber, deploymentBlockNumber, K) {
11
+ const { topBid } = _updateAmAmmView(state, blockNumber, deploymentBlockNumber, K);
12
+ return topBid;
13
+ }
14
+ function getTopBidWrite(state, blockNumber, deploymentBlockNumber, K) {
15
+ _updateAmAmmWrite(state, blockNumber, deploymentBlockNumber, K);
16
+ return state.topBid;
17
+ }
18
+ function _updateAmAmmWrite(state, blockNumber, deploymentBlockNumber, K) {
19
+ const currentBlockIdx = blockNumber - deploymentBlockNumber;
20
+ let topBid = state.topBid;
21
+ let nextBid = state.nextBid;
22
+ let updatedTopBid = false;
23
+ let updatedNextBid = false;
24
+ let rentCharged = 0n;
25
+ let stepHasUpdatedTopBid = false;
26
+ let stepHasUpdatedNextBid = false;
27
+ let stepRentCharged = 0n;
28
+ while (true) {
29
+ ({
30
+ topBid,
31
+ nextBid,
32
+ updatedTopBid: stepHasUpdatedTopBid,
33
+ updatedNextBid: stepHasUpdatedNextBid,
34
+ } = _stateTransition(currentBlockIdx, topBid, nextBid, K));
35
+ if (!stepHasUpdatedTopBid && !stepHasUpdatedNextBid) {
36
+ break;
37
+ }
38
+ updatedTopBid = updatedTopBid || stepHasUpdatedTopBid;
39
+ updatedNextBid = updatedNextBid || stepHasUpdatedNextBid;
40
+ rentCharged += stepRentCharged;
41
+ }
42
+ if (updatedTopBid)
43
+ state.topBid = topBid;
44
+ if (updatedNextBid)
45
+ state.nextBid = nextBid;
46
+ return { manager: topBid.manager, payload: topBid.payload };
47
+ }
48
+ function _updateAmAmmView(state, blockNumber, deploymentBlockNumber, K) {
49
+ const currentBlockIdx = blockNumber - deploymentBlockNumber;
50
+ let topBid = state.topBid;
51
+ let nextBid = state.nextBid;
52
+ let stepHasUpdatedTopBid = false;
53
+ let stepHasUpdatedNextBid = false;
54
+ while (true) {
55
+ ({
56
+ topBid,
57
+ nextBid,
58
+ updatedTopBid: stepHasUpdatedTopBid,
59
+ updatedNextBid: stepHasUpdatedNextBid,
60
+ } = _stateTransition(currentBlockIdx, topBid, nextBid, K));
61
+ if (!stepHasUpdatedTopBid && !stepHasUpdatedNextBid) {
62
+ break;
63
+ }
64
+ }
65
+ return { topBid, nextBid };
66
+ }
67
+ function _stateTransition(currentBlockIdx, topBid, nextBid, K) {
68
+ let updatedTopBid = false;
69
+ let updatedNextBid = false;
70
+ let rentCharged = 0n;
71
+ let refundManager = constants_1.NULL_ADDRESS;
72
+ let refundAmount = 0n;
73
+ if (nextBid.manager === constants_1.NULL_ADDRESS) {
74
+ if (topBid.manager !== constants_1.NULL_ADDRESS) {
75
+ const blocksPassed = currentBlockIdx - topBid.blockIdx;
76
+ const rentOwed = blocksPassed * topBid.rent;
77
+ if (rentOwed >= topBid.deposit) {
78
+ rentCharged = topBid.deposit;
79
+ topBid = _resetBid();
80
+ updatedTopBid = true;
81
+ }
82
+ else if (rentOwed !== 0n) {
83
+ rentCharged = rentOwed;
84
+ topBid.deposit -= rentOwed;
85
+ topBid.blockIdx = currentBlockIdx;
86
+ updatedTopBid = true;
87
+ }
88
+ }
89
+ }
90
+ else {
91
+ if (topBid.manager === constants_1.NULL_ADDRESS) {
92
+ const nextBidStartBlockIdx = nextBid.blockIdx + K;
93
+ if (currentBlockIdx >= nextBidStartBlockIdx) {
94
+ topBid = nextBid;
95
+ topBid.blockIdx = nextBidStartBlockIdx;
96
+ nextBid = _resetBid();
97
+ updatedTopBid = true;
98
+ updatedNextBid = true;
99
+ }
100
+ }
101
+ else {
102
+ const nextBidIsBetter = nextBid.rent > (0, Math_1.mulWad)(topBid.rent, Constants_1.MIN_BID_MULTIPLIER);
103
+ const blocksPassed = nextBidIsBetter
104
+ ? (0, Math_1.min)(currentBlockIdx - topBid.blockIdx, nextBid.blockIdx + K - topBid.blockIdx)
105
+ : currentBlockIdx - topBid.blockIdx;
106
+ const rentOwed = blocksPassed * topBid.rent;
107
+ if (rentOwed >= topBid.deposit) {
108
+ rentCharged = topBid.deposit;
109
+ topBid = _resetBid();
110
+ const latestProcessedBlockIdx = nextBidIsBetter
111
+ ? (0, Math_1.min)(currentBlockIdx, nextBid.blockIdx + K)
112
+ : currentBlockIdx;
113
+ nextBid.blockIdx = (0, Math_1.max)(nextBid.blockIdx, latestProcessedBlockIdx - K);
114
+ updatedTopBid = true;
115
+ updatedNextBid = true;
116
+ }
117
+ else {
118
+ if (rentOwed !== 0n) {
119
+ rentCharged = rentOwed;
120
+ topBid.deposit -= rentOwed;
121
+ topBid.blockIdx = currentBlockIdx;
122
+ updatedTopBid = true;
123
+ }
124
+ const nextBidStartBlockIdx = nextBid.blockIdx + K;
125
+ if (currentBlockIdx >= nextBidStartBlockIdx && nextBidIsBetter) {
126
+ refundManager = topBid.manager;
127
+ refundAmount = topBid.deposit;
128
+ topBid = nextBid;
129
+ topBid.blockIdx = nextBidStartBlockIdx;
130
+ nextBid = _resetBid();
131
+ updatedTopBid = true;
132
+ updatedNextBid = true;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ return {
138
+ topBid,
139
+ nextBid,
140
+ updatedTopBid,
141
+ updatedNextBid,
142
+ rentCharged,
143
+ refundManager,
144
+ refundAmount,
145
+ };
146
+ }
147
+ function _resetBid() {
148
+ return {
149
+ manager: constants_1.NULL_ADDRESS,
150
+ blockIdx: 0n,
151
+ payload: Constants_1.ZERO_BYTES_6,
152
+ rent: 0n,
153
+ deposit: 0n,
154
+ };
155
+ }
156
+ //# sourceMappingURL=AmAmm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmAmm.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/logic/AmAmm.ts"],"names":[],"mappings":";;AAKA,8BAcC;AAED,wCASC;AAED,8CAuCC;AAED,4CA4BC;AArGD,kDAAkD;AAClD,gDAAoE;AACpE,sCAA+C;AAG/C,SAAgB,SAAS,CACvB,KAAgB,EAChB,WAAmB,EACnB,qBAA6B,EAC7B,CAAS;IAET,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CACjC,KAAK,EACL,WAAW,EACX,qBAAqB,EACrB,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,cAAc,CAC5B,KAAgB,EAChB,WAAmB,EACnB,qBAA6B,EAC7B,CAAS;IAET,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAEhE,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAED,SAAgB,iBAAiB,CAC/B,KAAgB,EAChB,WAAmB,EACnB,qBAA6B,EAC7B,CAAS;IAET,MAAM,eAAe,GAAG,WAAW,GAAG,qBAAqB,CAAC;IAE5D,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,IAAI,aAAa,GAAY,KAAK,CAAC;IACnC,IAAI,cAAc,GAAY,KAAK,CAAC;IACpC,IAAI,WAAW,GAAW,EAAE,CAAC;IAE7B,IAAI,oBAAoB,GAAY,KAAK,CAAC;IAC1C,IAAI,qBAAqB,GAAY,KAAK,CAAC;IAC3C,IAAI,eAAe,GAAW,EAAE,CAAC;IAEjC,OAAO,IAAI,EAAE,CAAC;QACZ,CAAC;YACC,MAAM;YACN,OAAO;YACP,aAAa,EAAE,oBAAoB;YACnC,cAAc,EAAE,qBAAqB;SACtC,GAAG,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,oBAAoB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,MAAM;QACR,CAAC;QAED,aAAa,GAAG,aAAa,IAAI,oBAAoB,CAAC;QACtD,cAAc,GAAG,cAAc,IAAI,qBAAqB,CAAC;QACzD,WAAW,IAAI,eAAe,CAAC;IACjC,CAAC;IAED,IAAI,aAAa;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACzC,IAAI,cAAc;QAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC9D,CAAC;AAED,SAAgB,gBAAgB,CAC9B,KAAgB,EAChB,WAAmB,EACnB,qBAA6B,EAC7B,CAAS;IAET,MAAM,eAAe,GAAG,WAAW,GAAG,qBAAqB,CAAC;IAE5D,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAE5B,IAAI,oBAAoB,GAAY,KAAK,CAAC;IAC1C,IAAI,qBAAqB,GAAY,KAAK,CAAC;IAE3C,OAAO,IAAI,EAAE,CAAC;QACZ,CAAC;YACC,MAAM;YACN,OAAO;YACP,aAAa,EAAE,oBAAoB;YACnC,cAAc,EAAE,qBAAqB;SACtC,GAAG,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,oBAAoB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CACvB,eAAuB,EACvB,MAAW,EACX,OAAY,EACZ,CAAS;IAUT,IAAI,aAAa,GAAY,KAAK,CAAC;IACnC,IAAI,cAAc,GAAY,KAAK,CAAC;IACpC,IAAI,WAAW,GAAW,EAAE,CAAC;IAC7B,IAAI,aAAa,GAAW,wBAAY,CAAC;IACzC,IAAI,YAAY,GAAW,EAAE,CAAC;IAE9B,IAAI,OAAO,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;YACvD,MAAM,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;YAC5C,IAAI,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,MAAM,GAAG,SAAS,EAAE,CAAC;gBACrB,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;iBAAM,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBAC3B,WAAW,GAAG,QAAQ,CAAC;gBACvB,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC;gBAC3B,MAAM,CAAC,QAAQ,GAAG,eAAe,CAAC;gBAClC,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;YACpC,MAAM,oBAAoB,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClD,IAAI,eAAe,IAAI,oBAAoB,EAAE,CAAC;gBAC5C,MAAM,GAAG,OAAO,CAAC;gBACjB,MAAM,CAAC,QAAQ,GAAG,oBAAoB,CAAC;gBACvC,OAAO,GAAG,SAAS,EAAE,CAAC;gBAEtB,aAAa,GAAG,IAAI,CAAC;gBACrB,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,GAAG,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,EAAE,8BAAkB,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,eAAe;gBAClC,CAAC,CAAC,IAAA,UAAG,EACD,eAAe,GAAG,MAAM,CAAC,QAAQ,EACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CACvC;gBACH,CAAC,CAAC,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;YACtC,MAAM,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;YAE5C,IAAI,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,MAAM,GAAG,SAAS,EAAE,CAAC;gBACrB,MAAM,uBAAuB,GAAG,eAAe;oBAC7C,CAAC,CAAC,IAAA,UAAG,EAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAC5C,CAAC,CAAC,eAAe,CAAC;gBACpB,OAAO,CAAC,QAAQ,GAAG,IAAA,UAAG,EAAC,OAAO,CAAC,QAAQ,EAAE,uBAAuB,GAAG,CAAC,CAAC,CAAC;gBAEtE,aAAa,GAAG,IAAI,CAAC;gBACrB,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;oBACpB,WAAW,GAAG,QAAQ,CAAC;oBAEvB,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC;oBAC3B,MAAM,CAAC,QAAQ,GAAG,eAAe,CAAC;oBAElC,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;gBAED,MAAM,oBAAoB,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAClD,IAAI,eAAe,IAAI,oBAAoB,IAAI,eAAe,EAAE,CAAC;oBAC/D,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC/B,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;oBAE9B,MAAM,GAAG,OAAO,CAAC;oBACjB,MAAM,CAAC,QAAQ,GAAG,oBAAoB,CAAC;oBACvC,OAAO,GAAG,SAAS,EAAE,CAAC;oBAEtB,aAAa,GAAG,IAAI,CAAC;oBACrB,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,OAAO;QACP,aAAa;QACb,cAAc;QACd,WAAW;QACX,aAAa;QACb,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,SAAS;IAChB,OAAO;QACL,OAAO,EAAE,wBAAY;QACrB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,wBAAY;QACrB,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { IDexHelper } from '../../../dex-helper';
2
+ import { HookParams, ObservationState, PoolState, Slot0, SwapParams, DexParams } from '../types';
3
+ export declare function afterInitialize(sqrtPriceX96: bigint, tick: bigint, twapSecondsAgo: bigint, hookParams: string, blockTimestamp: bigint): {
4
+ slot0: Slot0;
5
+ observationState: ObservationState;
6
+ };
7
+ export declare function beforeSwap(state: PoolState, blockNumber: bigint, blockTimestamp: bigint, params: SwapParams, hookFeesModifier: bigint, hookDeploymentBlock: bigint, K: bigint, dexHelper: IDexHelper, dexParams: DexParams): Promise<void>;
8
+ export declare function decodeParams(hookParams: string): HookParams;
9
+ export declare function observe(state: PoolState, secondsAgos: bigint[], blockTimestamp: bigint): bigint[];
10
+ export declare function _shouldSurgeFromVaults(state: PoolState, hookParams: HookParams, reserveBalance0: bigint, reserveBalance1: bigint): boolean;