@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,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeSwap = computeSwap;
4
+ const ldf_1 = require("../ldf");
5
+ const FullMathX96_1 = require("../lib/FullMathX96");
6
+ const IdleBalance_1 = require("../lib/IdleBalance");
7
+ const Math_1 = require("../lib/Math");
8
+ const QueryLDF_1 = require("../lib/QueryLDF");
9
+ const TickMath_1 = require("../lib/TickMath");
10
+ const SwapMath_1 = require("./SwapMath");
11
+ const EPSILON_FEE = 30n;
12
+ function computeSwap(input, dexParams) {
13
+ const zeroForOne = input.swapParams.zeroForOne;
14
+ const exactIn = input.swapParams.amountSpecified < 0n;
15
+ let updatedSqrtPriceX96 = 0n;
16
+ let inputAmount = exactIn ? -input.swapParams.amountSpecified : 0n;
17
+ let outputAmount = exactIn ? 0n : input.swapParams.amountSpecified;
18
+ const updatedRoundedTickLiquidity = (input.totalLiquidity * input.liquidityDensityOfRoundedTickX96) >> 96n;
19
+ let updatedTick = input.currentTick;
20
+ let sqrtPriceLimitX96 = input.swapParams.sqrtPriceLimitX96;
21
+ const minSqrtPrice = TickMath_1.TickMath.getSqrtPriceAtTick(TickMath_1.TickMath.minUsableTick(input.key.tickSpacing));
22
+ const maxSqrtPrice = TickMath_1.TickMath.getSqrtPriceAtTick(TickMath_1.TickMath.maxUsableTick(input.key.tickSpacing));
23
+ if ((zeroForOne && sqrtPriceLimitX96 <= minSqrtPrice) ||
24
+ (!zeroForOne && sqrtPriceLimitX96 >= maxSqrtPrice)) {
25
+ sqrtPriceLimitX96 = zeroForOne ? minSqrtPrice + 1n : maxSqrtPrice - 1n;
26
+ }
27
+ const { roundedTick, nextRoundedTick } = (0, Math_1.roundTick)(input.currentTick, input.key.tickSpacing);
28
+ let naiveSwapResultSqrtPriceX96 = 0n;
29
+ let naiveSwapAmountIn = 0n;
30
+ let naiveSwapAmountOut = 0n;
31
+ if (updatedRoundedTickLiquidity !== 0n) {
32
+ const tickNext = zeroForOne ? roundedTick : nextRoundedTick;
33
+ const sqrtPriceNextX96 = TickMath_1.TickMath.getSqrtPriceAtTick(tickNext);
34
+ ({
35
+ sqrtPriceNextX96: naiveSwapResultSqrtPriceX96,
36
+ amountIn: naiveSwapAmountIn,
37
+ amountOut: naiveSwapAmountOut,
38
+ } = (0, SwapMath_1.computeSwapStep)(input.sqrtPriceX96, (0, SwapMath_1.getSqrtPriceTarget)(zeroForOne, sqrtPriceNextX96, sqrtPriceLimitX96), updatedRoundedTickLiquidity, input.swapParams.amountSpecified, 0n));
39
+ if (exactIn
40
+ ? naiveSwapAmountIn === -input.swapParams.amountSpecified
41
+ : naiveSwapAmountOut === input.swapParams.amountSpecified) {
42
+ if (naiveSwapResultSqrtPriceX96 === sqrtPriceNextX96) {
43
+ updatedTick = zeroForOne ? tickNext - 1n : tickNext;
44
+ }
45
+ else if (naiveSwapResultSqrtPriceX96 !== input.sqrtPriceX96) {
46
+ updatedTick = TickMath_1.TickMath.getTickAtSqrtPrice(naiveSwapResultSqrtPriceX96);
47
+ }
48
+ naiveSwapAmountOut = (0, Math_1.min)(naiveSwapAmountOut, zeroForOne ? input.currentActiveBalance1 : input.currentActiveBalance0);
49
+ return {
50
+ updatedSqrtPriceX96: naiveSwapResultSqrtPriceX96,
51
+ updatedTick,
52
+ inputAmount: naiveSwapAmountIn,
53
+ outputAmount: naiveSwapAmountOut,
54
+ };
55
+ }
56
+ }
57
+ // swap crosses rounded tick
58
+ let inverseCumulativeAmountFnInput = 0n;
59
+ if (exactIn) {
60
+ inverseCumulativeAmountFnInput = zeroForOne
61
+ ? input.currentActiveBalance0 + inputAmount
62
+ : input.currentActiveBalance1 + inputAmount;
63
+ }
64
+ else {
65
+ inverseCumulativeAmountFnInput = zeroForOne
66
+ ? input.currentActiveBalance1 - outputAmount
67
+ : input.currentActiveBalance0 - outputAmount;
68
+ }
69
+ // LDF compute swap
70
+ let { success, roundedTick: updatedRoundedTick, cumulativeAmount0_: cumulativeAmount0, cumulativeAmount1_: cumulativeAmount1, swapLiquidity, } = (0, ldf_1._computeSwap)(input.key, inverseCumulativeAmountFnInput, input.totalLiquidity, zeroForOne, exactIn, input.arithmeticMeanTick, input.currentTick, input.ldfParams, input.ldfState, input.liquidityDensityFunction, dexParams);
71
+ if (success) {
72
+ if (zeroForOne
73
+ ? updatedRoundedTick >= roundedTick
74
+ : updatedRoundedTick <= roundedTick) {
75
+ if (updatedRoundedTickLiquidity === 0n) {
76
+ return {
77
+ updatedSqrtPriceX96: input.sqrtPriceX96,
78
+ updatedTick: input.currentTick,
79
+ inputAmount: 0n,
80
+ outputAmount: 0n,
81
+ };
82
+ }
83
+ const _tickNext = zeroForOne ? roundedTick : nextRoundedTick;
84
+ if (naiveSwapResultSqrtPriceX96 === TickMath_1.TickMath.getSqrtPriceAtTick(_tickNext)) {
85
+ updatedTick = zeroForOne ? _tickNext - 1n : _tickNext;
86
+ }
87
+ else if (naiveSwapResultSqrtPriceX96 !== input.sqrtPriceX96) {
88
+ updatedTick = TickMath_1.TickMath.getTickAtSqrtPrice(naiveSwapResultSqrtPriceX96);
89
+ }
90
+ naiveSwapAmountOut = (0, Math_1.min)(naiveSwapAmountOut, zeroForOne ? input.currentActiveBalance1 : input.currentActiveBalance0);
91
+ return {
92
+ updatedSqrtPriceX96: naiveSwapResultSqrtPriceX96,
93
+ updatedTick,
94
+ inputAmount: naiveSwapAmountIn,
95
+ outputAmount: naiveSwapAmountOut,
96
+ };
97
+ }
98
+ const tickStart = zeroForOne
99
+ ? updatedRoundedTick + input.key.tickSpacing
100
+ : updatedRoundedTick;
101
+ const tickNext = zeroForOne
102
+ ? updatedRoundedTick
103
+ : updatedRoundedTick + input.key.tickSpacing;
104
+ const startSqrtPriceX96 = TickMath_1.TickMath.getSqrtPriceAtTick(tickStart);
105
+ if ((zeroForOne && sqrtPriceLimitX96 <= startSqrtPriceX96) ||
106
+ (!zeroForOne && sqrtPriceLimitX96 >= startSqrtPriceX96)) {
107
+ const sqrtPriceNextX96 = TickMath_1.TickMath.getSqrtPriceAtTick(tickNext);
108
+ if (zeroForOne) {
109
+ cumulativeAmount0 = (0, Math_1.max)(cumulativeAmount0, input.currentActiveBalance0);
110
+ }
111
+ else {
112
+ cumulativeAmount1 = (0, Math_1.max)(cumulativeAmount1, input.currentActiveBalance1);
113
+ }
114
+ let hitSqrtPriceLimit = false;
115
+ if (swapLiquidity === 0n || sqrtPriceLimitX96 === startSqrtPriceX96) {
116
+ [naiveSwapResultSqrtPriceX96, naiveSwapAmountIn, naiveSwapAmountOut] = [
117
+ startSqrtPriceX96,
118
+ 0n,
119
+ 0n,
120
+ ];
121
+ }
122
+ else {
123
+ const amountSpecifiedRemaining = exactIn
124
+ ? -(inverseCumulativeAmountFnInput -
125
+ (zeroForOne ? cumulativeAmount0 : cumulativeAmount1))
126
+ : (zeroForOne ? cumulativeAmount1 : cumulativeAmount0) -
127
+ inverseCumulativeAmountFnInput;
128
+ ({
129
+ sqrtPriceNextX96: naiveSwapResultSqrtPriceX96,
130
+ amountIn: naiveSwapAmountIn,
131
+ amountOut: naiveSwapAmountOut,
132
+ } = (0, SwapMath_1.computeSwapStep)(startSqrtPriceX96, (0, SwapMath_1.getSqrtPriceTarget)(zeroForOne, sqrtPriceNextX96, sqrtPriceLimitX96), swapLiquidity, amountSpecifiedRemaining, EPSILON_FEE));
133
+ if (naiveSwapResultSqrtPriceX96 === sqrtPriceLimitX96 &&
134
+ sqrtPriceLimitX96 !== sqrtPriceNextX96) {
135
+ hitSqrtPriceLimit = true;
136
+ }
137
+ }
138
+ if (!hitSqrtPriceLimit) {
139
+ updatedTick = tickStart;
140
+ if (naiveSwapResultSqrtPriceX96 === sqrtPriceNextX96) {
141
+ updatedTick = zeroForOne ? tickNext - 1n : tickNext;
142
+ }
143
+ else if (naiveSwapResultSqrtPriceX96 !== startSqrtPriceX96) {
144
+ updatedTick = TickMath_1.TickMath.getTickAtSqrtPrice(naiveSwapResultSqrtPriceX96);
145
+ }
146
+ updatedSqrtPriceX96 = naiveSwapResultSqrtPriceX96;
147
+ if (exactIn
148
+ ? naiveSwapAmountIn === -input.swapParams.amountSpecified
149
+ : naiveSwapAmountOut === input.swapParams.amountSpecified) {
150
+ naiveSwapAmountOut = (0, Math_1.min)(naiveSwapAmountOut, zeroForOne
151
+ ? input.currentActiveBalance1
152
+ : input.currentActiveBalance0);
153
+ return {
154
+ updatedSqrtPriceX96: naiveSwapResultSqrtPriceX96,
155
+ updatedTick,
156
+ inputAmount: naiveSwapAmountIn,
157
+ outputAmount: naiveSwapAmountOut,
158
+ };
159
+ }
160
+ if ((zeroForOne && cumulativeAmount1 < naiveSwapAmountOut) ||
161
+ (!zeroForOne && cumulativeAmount0 < naiveSwapAmountOut)) {
162
+ throw new Error('BunniSwapMath__SwapFailed()');
163
+ }
164
+ const updatedActiveBalance0 = zeroForOne
165
+ ? cumulativeAmount0 + naiveSwapAmountIn
166
+ : cumulativeAmount0 - naiveSwapAmountOut;
167
+ const updatedActiveBalance1 = zeroForOne
168
+ ? cumulativeAmount1 - naiveSwapAmountOut
169
+ : cumulativeAmount1 + naiveSwapAmountIn;
170
+ inputAmount = zeroForOne
171
+ ? updatedActiveBalance0 - input.currentActiveBalance0
172
+ : updatedActiveBalance1 - input.currentActiveBalance1;
173
+ outputAmount = zeroForOne
174
+ ? (0, Math_1.subReLU)(input.currentActiveBalance1, updatedActiveBalance1)
175
+ : (0, Math_1.subReLU)(input.currentActiveBalance0, updatedActiveBalance0);
176
+ return { updatedSqrtPriceX96, updatedTick, inputAmount, outputAmount };
177
+ }
178
+ }
179
+ }
180
+ updatedSqrtPriceX96 = sqrtPriceLimitX96;
181
+ updatedTick =
182
+ sqrtPriceLimitX96 === input.sqrtPriceX96
183
+ ? input.currentTick
184
+ : TickMath_1.TickMath.getTickAtSqrtPrice(sqrtPriceLimitX96);
185
+ const { totalDensity0X96, totalDensity1X96 } = (0, QueryLDF_1.queryLDF)(input.key, updatedSqrtPriceX96, updatedTick, input.arithmeticMeanTick, input.liquidityDensityFunction, input.ldfParams, input.ldfState, 0n, 0n, IdleBalance_1.IdleBalanceLibrary.ZERO, dexParams);
186
+ const _updatedActiveBalance0 = FullMathX96_1.FullMathX96.fullMulX96Up(totalDensity0X96, input.totalLiquidity);
187
+ const _updatedActiveBalance1 = FullMathX96_1.FullMathX96.fullMulX96Up(totalDensity1X96, input.totalLiquidity);
188
+ if (zeroForOne) {
189
+ inputAmount = _updatedActiveBalance0 - input.currentActiveBalance0;
190
+ outputAmount = (0, Math_1.subReLU)(input.currentActiveBalance1, _updatedActiveBalance1);
191
+ }
192
+ else {
193
+ inputAmount = _updatedActiveBalance1 - input.currentActiveBalance1;
194
+ (0, Math_1.subReLU)(input.currentActiveBalance0, _updatedActiveBalance0);
195
+ }
196
+ return { updatedSqrtPriceX96, updatedTick, inputAmount, outputAmount };
197
+ }
198
+ //# sourceMappingURL=BunniSwapMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BunniSwapMath.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/hook/BunniSwapMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const MAX_SWAP_FEE: bigint;
2
+ export declare const MIN_FEE_AMOUNT: bigint;
3
+ export declare function getSqrtPriceTarget(zeroForOne: boolean, sqrtPriceNextX96: bigint, sqrtPriceLimitX96: bigint): bigint;
4
+ export declare function computeSwapStep(sqrtPriceCurrentX96: bigint, sqrtPriceTargetX96: bigint, liquidity: bigint, amountRemaining: bigint, feePips: bigint): {
5
+ sqrtPriceNextX96: bigint;
6
+ amountIn: bigint;
7
+ amountOut: bigint;
8
+ };
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MIN_FEE_AMOUNT = exports.MAX_SWAP_FEE = void 0;
4
+ exports.getSqrtPriceTarget = getSqrtPriceTarget;
5
+ exports.computeSwapStep = computeSwapStep;
6
+ const Math_1 = require("../lib/Math");
7
+ const SqrtPriceMath_1 = require("../lib/SqrtPriceMath");
8
+ exports.MAX_SWAP_FEE = 1000000n;
9
+ exports.MIN_FEE_AMOUNT = 1000n;
10
+ function getSqrtPriceTarget(zeroForOne, sqrtPriceNextX96, sqrtPriceLimitX96) {
11
+ return zeroForOne
12
+ ? (0, Math_1.max)(sqrtPriceNextX96, sqrtPriceLimitX96)
13
+ : (0, Math_1.min)(sqrtPriceNextX96, sqrtPriceLimitX96);
14
+ }
15
+ function computeSwapStep(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, amountRemaining, feePips) {
16
+ let sqrtPriceNextX96 = 0n;
17
+ let amountIn = 0n;
18
+ let amountOut = 0n;
19
+ let feeAmount = 0n;
20
+ const zeroForOne = sqrtPriceCurrentX96 >= sqrtPriceTargetX96;
21
+ const exactIn = amountRemaining < 0n;
22
+ if (exactIn) {
23
+ const amountRemainingLessFee = (0, Math_1.min)((0, Math_1.mulDiv)(-amountRemaining, exports.MAX_SWAP_FEE - feePips, exports.MAX_SWAP_FEE), (0, Math_1.subReLU)(-amountRemaining, exports.MIN_FEE_AMOUNT));
24
+ amountIn = zeroForOne
25
+ ? SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceTargetX96, sqrtPriceCurrentX96, liquidity, true)
26
+ : SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, true);
27
+ if (amountRemainingLessFee >= amountIn) {
28
+ sqrtPriceNextX96 = sqrtPriceTargetX96;
29
+ feeAmount =
30
+ feePips === exports.MAX_SWAP_FEE
31
+ ? amountIn
32
+ : (0, Math_1.max)((0, Math_1.mulDivUp)(amountIn, feePips, exports.MAX_SWAP_FEE - feePips), exports.MIN_FEE_AMOUNT);
33
+ }
34
+ else {
35
+ amountIn = amountRemainingLessFee;
36
+ sqrtPriceNextX96 = SqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromInput(sqrtPriceCurrentX96, liquidity, amountRemainingLessFee, zeroForOne);
37
+ feeAmount = (0, Math_1.max)(-amountRemaining - amountIn, exports.MIN_FEE_AMOUNT);
38
+ }
39
+ amountOut = zeroForOne
40
+ ? SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceNextX96, sqrtPriceCurrentX96, liquidity, false)
41
+ : SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceCurrentX96, sqrtPriceNextX96, liquidity, false);
42
+ }
43
+ else {
44
+ amountOut = zeroForOne
45
+ ? SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceTargetX96, sqrtPriceCurrentX96, liquidity, false)
46
+ : SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, false);
47
+ if (amountRemaining >= amountOut) {
48
+ sqrtPriceNextX96 = sqrtPriceTargetX96;
49
+ }
50
+ else {
51
+ amountOut = amountRemaining;
52
+ sqrtPriceNextX96 = SqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromOutput(sqrtPriceCurrentX96, liquidity, amountOut, zeroForOne);
53
+ }
54
+ amountIn = zeroForOne
55
+ ? SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceNextX96, sqrtPriceCurrentX96, liquidity, true)
56
+ : SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceCurrentX96, sqrtPriceNextX96, liquidity, true);
57
+ feeAmount = (0, Math_1.max)((0, Math_1.mulDivUp)(amountIn, feePips, exports.MAX_SWAP_FEE - feePips), exports.MIN_FEE_AMOUNT);
58
+ }
59
+ if (exactIn)
60
+ amountIn = (0, Math_1.min)(amountIn + feeAmount, -amountRemaining);
61
+ else
62
+ amountIn += feeAmount;
63
+ return { sqrtPriceNextX96, amountIn, amountOut };
64
+ }
65
+ //# sourceMappingURL=SwapMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapMath.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/hook/SwapMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { PoolState, SwapParams } from '../types';
2
+ export declare abstract class FeeOverrideHooklet {
3
+ static beforeSwap(state: PoolState, params: SwapParams): {
4
+ success: boolean;
5
+ feeOverridden: boolean;
6
+ fee: bigint;
7
+ priceOverridden: boolean;
8
+ sqrtPriceX96: bigint;
9
+ };
10
+ static beforeSwapView(state: PoolState, params: SwapParams): {
11
+ success: boolean;
12
+ feeOverridden: boolean;
13
+ fee: bigint;
14
+ priceOverridden: boolean;
15
+ sqrtPriceX96: bigint;
16
+ };
17
+ static afterSwap(state: PoolState): {
18
+ success: boolean;
19
+ };
20
+ static afterSwapView(state: PoolState): {
21
+ success: boolean;
22
+ };
23
+ static _beforeSwap(state: PoolState, params: SwapParams): {
24
+ success: boolean;
25
+ feeOverridden: boolean;
26
+ fee: bigint;
27
+ priceOverridden: boolean;
28
+ sqrtPriceX96: bigint;
29
+ };
30
+ static _afterSwap(state: PoolState): {
31
+ success: boolean;
32
+ };
33
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FeeOverrideHooklet = void 0;
4
+ class FeeOverrideHooklet {
5
+ static beforeSwap(state, params) {
6
+ return this._beforeSwap(state, params);
7
+ }
8
+ static beforeSwapView(state, params) {
9
+ return this._beforeSwap(state, params);
10
+ }
11
+ static afterSwap(state) {
12
+ return this._afterSwap(state);
13
+ }
14
+ static afterSwapView(state) {
15
+ return this._afterSwap(state);
16
+ }
17
+ static _beforeSwap(state, params) {
18
+ return {
19
+ success: true,
20
+ feeOverridden: params.zeroForOne
21
+ ? state.overrideZeroToOne
22
+ : state.overrideOneToZero,
23
+ fee: params.zeroForOne ? state.feeZeroToOne : state.feeOneToZero,
24
+ priceOverridden: false,
25
+ sqrtPriceX96: 0n,
26
+ };
27
+ }
28
+ static _afterSwap(state) {
29
+ return { success: true };
30
+ }
31
+ }
32
+ exports.FeeOverrideHooklet = FeeOverrideHooklet;
33
+ //# sourceMappingURL=FeeOverrideHooklet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeeOverrideHooklet.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/hooklet/FeeOverrideHooklet.ts"],"names":[],"mappings":";;;AAEA,MAAsB,kBAAkB;IACtC,MAAM,CAAC,UAAU,CACf,KAAgB,EAChB,MAAkB;QAQlB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,KAAgB,EAChB,MAAkB;QAQlB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAgB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAgB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,KAAgB,EAChB,MAAkB;QAQlB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,MAAM,CAAC,UAAU;gBAC9B,CAAC,CAAC,KAAK,CAAC,iBAAiB;gBACzB,CAAC,CAAC,KAAK,CAAC,iBAAiB;YAC3B,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY;YAChE,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAgB;QAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF;AA3DD,gDA2DC"}
@@ -0,0 +1,21 @@
1
+ import { DexParams, PoolState, SwapParams } from '../types';
2
+ export declare function _hookletBeforeSwap(state: PoolState, params: SwapParams, dexParams: DexParams): {
3
+ success: boolean;
4
+ feeOverridden: boolean;
5
+ fee: bigint;
6
+ priceOverridden: boolean;
7
+ sqrtPriceX96: bigint;
8
+ };
9
+ export declare function _hookletBeforeSwapView(state: PoolState, params: SwapParams, dexParams: DexParams): {
10
+ success: boolean;
11
+ feeOverridden: boolean;
12
+ fee: bigint;
13
+ priceOverridden: boolean;
14
+ sqrtPriceX96: bigint;
15
+ };
16
+ export declare function _hookletAfterSwap(state: PoolState, dexParams: DexParams): {
17
+ success: boolean;
18
+ };
19
+ export declare function _hookletAfterSwapView(state: PoolState, dexParams: DexParams): {
20
+ success: boolean;
21
+ };
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._hookletBeforeSwap = _hookletBeforeSwap;
4
+ exports._hookletBeforeSwapView = _hookletBeforeSwapView;
5
+ exports._hookletAfterSwap = _hookletAfterSwap;
6
+ exports._hookletAfterSwapView = _hookletAfterSwapView;
7
+ const constants_1 = require("../../../constants");
8
+ function _hookletBeforeSwap(state, params, dexParams) {
9
+ if (state.hooklet === constants_1.NULL_ADDRESS) {
10
+ return {
11
+ success: true,
12
+ feeOverridden: false,
13
+ fee: 0n,
14
+ priceOverridden: false,
15
+ sqrtPriceX96: 0n,
16
+ };
17
+ }
18
+ const map = dexParams.hooklets ?? {};
19
+ const module = map[state.hooklet.toLowerCase()];
20
+ if (!module) {
21
+ throw new Error(`Hooklet ${state.hooklet} not yet supported`);
22
+ }
23
+ return module.beforeSwap(state, params);
24
+ }
25
+ function _hookletBeforeSwapView(state, params, dexParams) {
26
+ if (state.hooklet === constants_1.NULL_ADDRESS) {
27
+ return {
28
+ success: true,
29
+ feeOverridden: false,
30
+ fee: 0n,
31
+ priceOverridden: false,
32
+ sqrtPriceX96: 0n,
33
+ };
34
+ }
35
+ const map = dexParams.hooklets ?? {};
36
+ const module = map[state.hooklet.toLowerCase()];
37
+ if (!module) {
38
+ throw new Error(`Hooklet ${state.hooklet} not yet supported`);
39
+ }
40
+ return module.beforeSwapView(state, params);
41
+ }
42
+ function _hookletAfterSwap(state, dexParams) {
43
+ if (state.hooklet === constants_1.NULL_ADDRESS) {
44
+ return { success: true };
45
+ }
46
+ const map = dexParams.hooklets ?? {};
47
+ const module = map[state.hooklet.toLowerCase()];
48
+ if (!module) {
49
+ throw new Error(`Hooklet ${state.hooklet} not yet supported`);
50
+ }
51
+ return module.afterSwap();
52
+ }
53
+ function _hookletAfterSwapView(state, dexParams) {
54
+ if (state.hooklet === constants_1.NULL_ADDRESS) {
55
+ return { success: true };
56
+ }
57
+ const map = dexParams.hooklets ?? {};
58
+ const module = map[state.hooklet.toLowerCase()];
59
+ if (!module) {
60
+ throw new Error(`Hooklet ${state.hooklet} not yet supported`);
61
+ }
62
+ return module.afterSwapView();
63
+ }
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/hooklet/index.ts"],"names":[],"mappings":";;AAGA,gDA6BC;AAED,wDA6BC;AAED,8CAkBC;AAED,sDAkBC;AAvGD,kDAAkD;AAGlD,SAAgB,kBAAkB,CAChC,KAAgB,EAChB,MAAkB,EAClB,SAAoB;IAQpB,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,sBAAsB,CACpC,KAAgB,EAChB,MAAkB,EAClB,SAAoB;IAQpB,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,iBAAiB,CAC/B,KAAgB,EAChB,SAAoB;IAIpB,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;AAC5B,CAAC;AAED,SAAgB,qBAAqB,CACnC,KAAgB,EAChB,SAAoB;IAIpB,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { PoolKey } from '../types';
2
+ import { ShiftMode } from './ShiftMode';
3
+ export declare abstract class CarpetedDoubleGeometricDistribution {
4
+ static query(key: PoolKey, roundedTick: bigint, twapTick: bigint, spotPriceTick: bigint, ldfParams: string, ldfState: string): {
5
+ liquidityDensityX96_: bigint;
6
+ cumulativeAmount0DensityX96: bigint;
7
+ cumulativeAmount1DensityX96: bigint;
8
+ newLdfState: string;
9
+ shouldSurge: boolean;
10
+ };
11
+ static computeSwap(key: PoolKey, inverseCumulativeAmountInput: bigint, totalLiquidity: bigint, zeroForOne: boolean, exactIn: boolean, twapTick: bigint, spotPriceTick: bigint, ldfParams: string, ldfState: string): {
12
+ success: boolean;
13
+ roundedTick: bigint;
14
+ cumulativeAmount0_: bigint;
15
+ cumulativeAmount1_: bigint;
16
+ swapLiquidity: bigint;
17
+ };
18
+ static cumulativeAmount0(key: PoolKey, roundedTick: bigint, totalLiquidity: bigint, twapTick: bigint, spotPriceTick: bigint, ldfParams: string, ldfState: string): bigint;
19
+ static cumulativeAmount1(key: PoolKey, roundedTick: bigint, totalLiquidity: bigint, twapTick: bigint, spotPriceTick: bigint, ldfParams: string, ldfState: string): bigint;
20
+ static _decodeState(ldfState: string): {
21
+ initialized: boolean;
22
+ lastMinTick: bigint;
23
+ };
24
+ static _encodeState(lastMinTick: bigint): string;
25
+ }
26
+ export declare abstract class LibCarpetedDoubleGeometricDistribution {
27
+ static query(roundedTick: bigint, tickSpacing: bigint, params: Params): {
28
+ liquidityDensityX96_: bigint;
29
+ cumulativeAmount0DensityX96: bigint;
30
+ cumulativeAmount1DensityX96: bigint;
31
+ };
32
+ static cumulativeAmount0(roundedTick: bigint, totalLiquidity: bigint, tickSpacing: bigint, params: Params): bigint;
33
+ static cumulativeAmount1(roundedTick: bigint, totalLiquidity: bigint, tickSpacing: bigint, params: Params): bigint;
34
+ static inverseCumulativeAmount0(cumulativeAmount0_: bigint, totalLiquidity: bigint, tickSpacing: bigint, params: Params): {
35
+ success: boolean;
36
+ roundedTick: bigint;
37
+ };
38
+ static inverseCumulativeAmount1(cumulativeAmount1_: bigint, totalLiquidity: bigint, tickSpacing: bigint, params: Params): {
39
+ success: boolean;
40
+ roundedTick: bigint;
41
+ };
42
+ static liquidityDensityX96(roundedTick: bigint, tickSpacing: bigint, params: Params): bigint;
43
+ static computeSwap(inverseCumulativeAmountInput: bigint, totalLiquidity: bigint, zeroForOne: boolean, exactIn: boolean, tickSpacing: bigint, params: Params): {
44
+ success: boolean;
45
+ roundedTick: bigint;
46
+ cumulativeAmount0_: bigint;
47
+ cumulativeAmount1_: bigint;
48
+ swapLiquidity: bigint;
49
+ };
50
+ static getCarpetedLiquidity(totalLiquidity: bigint, tickSpacing: bigint, minTick: bigint, length: bigint, weightCarpet: bigint): {
51
+ leftCarpetLiquidity: bigint;
52
+ mainLiquidity: bigint;
53
+ rightCarpetLiquidity: bigint;
54
+ minUsableTick: bigint;
55
+ maxUsableTick: bigint;
56
+ };
57
+ static decodeParams(twapTick: bigint, tickSpacing: bigint, ldfParams: string): Params;
58
+ }
59
+ type Params = {
60
+ minTick: bigint;
61
+ length0: bigint;
62
+ alpha0X96: bigint;
63
+ weight0: bigint;
64
+ length1: bigint;
65
+ alpha1X96: bigint;
66
+ weight1: bigint;
67
+ weightCarpet: bigint;
68
+ shiftMode: ShiftMode;
69
+ };
70
+ export {};