@paraswap/dex-lib 4.8.21 → 4.8.23-deth.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/build/abi/AaveV2_lending_pool.json +53 -0
  2. package/build/abi/BProtocol.json +1155 -0
  3. package/build/abi/Bancor.json +392 -0
  4. package/build/abi/Compound_CETH.json +12 -0
  5. package/build/abi/Jarvis.json +1172 -0
  6. package/build/abi/MStableAsset.json +1545 -0
  7. package/build/abi/OneInchLp.json +1304 -0
  8. package/build/abi/Onebit.json +736 -0
  9. package/build/abi/SSPM.json +829 -0
  10. package/build/abi/Shell.json +1294 -0
  11. package/build/abi/Smoothy.json +1049 -0
  12. package/build/abi/StaderOracle.json +2170 -0
  13. package/build/abi/TraderJoeV2Router.json +50 -0
  14. package/build/abi/aave-weth-gateway-avalanche.json +242 -0
  15. package/build/abi/aave-weth-gateway-polygon.json +242 -0
  16. package/build/abi/aave-weth-gateway.json +24 -0
  17. package/build/abi/bunni-v2/BunniHook.abi.json +1921 -0
  18. package/build/abi/bunni-v2/BunniHub.abi.json +1598 -0
  19. package/build/abi/bunni-v2/BunniToken.abi.json +833 -0
  20. package/build/abi/bunni-v2/FeeOverrideHooklet.abi.json +1947 -0
  21. package/build/abi/bunni-v2/FloodPlain.abi.json +1195 -0
  22. package/build/abi/bunni-v2/PoolManager.abi.json +1366 -0
  23. package/build/abi/bunni-v2/V4Quoter.abi.json +637 -0
  24. package/build/abi/concentrator/arUSD.json +568 -0
  25. package/build/abi/concentrator/arUSD5115.json +1746 -0
  26. package/build/abi/deth/delta.abi.json +22 -0
  27. package/build/abi/gmx/fast-price-events.json +70 -0
  28. package/build/abi/gmx/fast-price-feed.json +748 -0
  29. package/build/abi/gmx/reader.json +337 -0
  30. package/build/abi/gmx/vault-price-feed.json +477 -0
  31. package/build/abi/gmx/vault.json +2002 -0
  32. package/build/abi/idle-dao/idle-cdo-factory.json +38 -0
  33. package/build/abi/idle-dao/idle-cdo.json +1245 -0
  34. package/build/abi/infusion/InfusionFactory.json +147 -0
  35. package/build/abi/infusion/InfusionPair.json +658 -0
  36. package/build/abi/infusion/InfusionRouter.json +442 -0
  37. package/build/abi/jarvis/ChainlinkAccessControlledOffchainAggregator.json +1009 -0
  38. package/build/abi/jarvis/SynthereumPriceFeed.json +381 -0
  39. package/build/abi/jarvis/jarvis-v6-pool.json +1041 -0
  40. package/build/abi/kyberdmm/kyber-dmm-exchange-router.abi.json +1148 -0
  41. package/build/abi/kyberdmm/kyber-dmm-factory.abi.json +335 -0
  42. package/build/abi/kyberdmm/kyber-dmm-pool.abi.json +803 -0
  43. package/build/abi/maker-psm/pot.json +322 -0
  44. package/build/abi/maker-psm/psm.json +243 -0
  45. package/build/abi/maker-psm/vat.json +363 -0
  46. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +773 -0
  47. package/build/abi/quick-perps/fast-price-events.json +70 -0
  48. package/build/abi/quick-perps/fast-price-feed.json +741 -0
  49. package/build/abi/quick-perps/reader.json +313 -0
  50. package/build/abi/quick-perps/vault-price-feed.json +323 -0
  51. package/build/abi/quick-perps/vault.json +1953 -0
  52. package/build/abi/synthetix/CombinedSynthetix.abi.json +442 -0
  53. package/build/abi/uniswap-v2/excalibur-pool.json +881 -0
  54. package/build/abi/uniswap-v2/mdex-factory.json +759 -0
  55. package/build/abi/wUSDM.json +757 -0
  56. package/build/abi/wombat/asset.json +743 -0
  57. package/build/abi/wombat/bmw.json +1247 -0
  58. package/build/abi/wombat/pool-v2.json +1289 -0
  59. package/build/abi/wombat/pool-v3.json +2013 -0
  60. package/build/abi/zrx.v2.json +1967 -0
  61. package/build/abi/zrx.v3.json +3454 -0
  62. package/build/abi/zrx.v4.json +2193 -0
  63. package/build/dex/OneInchLp.d.ts +24 -0
  64. package/build/dex/OneInchLp.js +43 -0
  65. package/build/dex/OneInchLp.js.map +1 -0
  66. package/build/dex/aave-v2/aave-v2.d.ts +33 -0
  67. package/build/dex/aave-v2/aave-v2.js +328 -0
  68. package/build/dex/aave-v2/aave-v2.js.map +1 -0
  69. package/build/dex/aave-v2/config.d.ts +14 -0
  70. package/build/dex/aave-v2/config.js +49 -0
  71. package/build/dex/aave-v2/config.js.map +1 -0
  72. package/build/dex/aave-v2/tokenlist.json +904 -0
  73. package/build/dex/aave-v2/tokens.d.ts +8 -0
  74. package/build/dex/aave-v2/tokens.js +65 -0
  75. package/build/dex/aave-v2/tokens.js.map +1 -0
  76. package/build/dex/aave-v2/types.d.ts +33 -0
  77. package/build/dex/aave-v2/types.js +11 -0
  78. package/build/dex/aave-v2/types.js.map +1 -0
  79. package/build/dex/bProtocol/bProtocol.d.ts +15 -0
  80. package/build/dex/bProtocol/bProtocol.js +56 -0
  81. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  82. package/build/dex/bProtocol/types.d.ts +11 -0
  83. package/build/dex/bProtocol/types.js +8 -0
  84. package/build/dex/bProtocol/types.js.map +1 -0
  85. package/build/dex/bancor/bancor.d.ts +15 -0
  86. package/build/dex/bancor/bancor.js +74 -0
  87. package/build/dex/bancor/bancor.js.map +1 -0
  88. package/build/dex/bancor/config.d.ts +6 -0
  89. package/build/dex/bancor/config.js +11 -0
  90. package/build/dex/bancor/config.js.map +1 -0
  91. package/build/dex/bancor/types.d.ts +16 -0
  92. package/build/dex/bancor/types.js +8 -0
  93. package/build/dex/bancor/types.js.map +1 -0
  94. package/build/dex/bunni-v2/bunni-v2-pool.d.ts +62 -0
  95. package/build/dex/bunni-v2/bunni-v2-pool.js +505 -0
  96. package/build/dex/bunni-v2/bunni-v2-pool.js.map +1 -0
  97. package/build/dex/bunni-v2/bunni-v2.d.ts +51 -0
  98. package/build/dex/bunni-v2/bunni-v2.js +460 -0
  99. package/build/dex/bunni-v2/bunni-v2.js.map +1 -0
  100. package/build/dex/{renegade → bunni-v2}/config.d.ts +1 -1
  101. package/build/dex/bunni-v2/config.js +130 -0
  102. package/build/dex/bunni-v2/config.js.map +1 -0
  103. package/build/dex/bunni-v2/encoder.d.ts +19 -0
  104. package/build/dex/bunni-v2/encoder.js +400 -0
  105. package/build/dex/bunni-v2/encoder.js.map +1 -0
  106. package/build/dex/bunni-v2/getOnChainState.d.ts +26 -0
  107. package/build/dex/bunni-v2/getOnChainState.js +493 -0
  108. package/build/dex/bunni-v2/getOnChainState.js.map +1 -0
  109. package/build/dex/bunni-v2/hook/BunniSwapMath.d.ts +7 -0
  110. package/build/dex/bunni-v2/hook/BunniSwapMath.js +198 -0
  111. package/build/dex/bunni-v2/hook/BunniSwapMath.js.map +1 -0
  112. package/build/dex/bunni-v2/hook/SwapMath.d.ts +8 -0
  113. package/build/dex/bunni-v2/hook/SwapMath.js +65 -0
  114. package/build/dex/bunni-v2/hook/SwapMath.js.map +1 -0
  115. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.d.ts +33 -0
  116. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js +33 -0
  117. package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js.map +1 -0
  118. package/build/dex/bunni-v2/hooklet/index.d.ts +21 -0
  119. package/build/dex/bunni-v2/hooklet/index.js +64 -0
  120. package/build/dex/bunni-v2/hooklet/index.js.map +1 -0
  121. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.d.ts +70 -0
  122. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js +277 -0
  123. package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js.map +1 -0
  124. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.d.ts +64 -0
  125. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js +262 -0
  126. package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js.map +1 -0
  127. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.d.ts +60 -0
  128. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js +224 -0
  129. package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js.map +1 -0
  130. package/build/dex/bunni-v2/ldf/GeometricDistribution.d.ts +56 -0
  131. package/build/dex/bunni-v2/ldf/GeometricDistribution.js +489 -0
  132. package/build/dex/bunni-v2/ldf/GeometricDistribution.js.map +1 -0
  133. package/build/dex/bunni-v2/ldf/LDFType.d.ts +5 -0
  134. package/build/dex/bunni-v2/ldf/LDFType.js +10 -0
  135. package/build/dex/bunni-v2/ldf/LDFType.js.map +1 -0
  136. package/build/dex/bunni-v2/ldf/ShiftMode.d.ts +7 -0
  137. package/build/dex/bunni-v2/ldf/ShiftMode.js +19 -0
  138. package/build/dex/bunni-v2/ldf/ShiftMode.js.map +1 -0
  139. package/build/dex/bunni-v2/ldf/UniformDistribution.d.ts +55 -0
  140. package/build/dex/bunni-v2/ldf/UniformDistribution.js +291 -0
  141. package/build/dex/bunni-v2/ldf/UniformDistribution.js.map +1 -0
  142. package/build/dex/bunni-v2/ldf/index.d.ts +15 -0
  143. package/build/dex/bunni-v2/ldf/index.js +21 -0
  144. package/build/dex/bunni-v2/ldf/index.js.map +1 -0
  145. package/build/dex/bunni-v2/lib/AmAmmPayload.d.ts +4 -0
  146. package/build/dex/bunni-v2/lib/AmAmmPayload.js +10 -0
  147. package/build/dex/bunni-v2/lib/AmAmmPayload.js.map +1 -0
  148. package/build/dex/bunni-v2/lib/BitMath.d.ts +4 -0
  149. package/build/dex/bunni-v2/lib/BitMath.js +24 -0
  150. package/build/dex/bunni-v2/lib/BitMath.js.map +1 -0
  151. package/build/dex/bunni-v2/lib/Constants.d.ts +15 -0
  152. package/build/dex/bunni-v2/lib/Constants.js +19 -0
  153. package/build/dex/bunni-v2/lib/Constants.js.map +1 -0
  154. package/build/dex/bunni-v2/lib/ExpMath.d.ts +5 -0
  155. package/build/dex/bunni-v2/lib/ExpMath.js +121 -0
  156. package/build/dex/bunni-v2/lib/ExpMath.js.map +1 -0
  157. package/build/dex/bunni-v2/lib/FeeMath.d.ts +2 -0
  158. package/build/dex/bunni-v2/lib/FeeMath.js +27 -0
  159. package/build/dex/bunni-v2/lib/FeeMath.js.map +1 -0
  160. package/build/dex/bunni-v2/lib/FixedPointMath.d.ts +3 -0
  161. package/build/dex/bunni-v2/lib/FixedPointMath.js +15 -0
  162. package/build/dex/bunni-v2/lib/FixedPointMath.js.map +1 -0
  163. package/build/dex/bunni-v2/lib/FullMathX96.d.ts +4 -0
  164. package/build/dex/bunni-v2/lib/FullMathX96.js +21 -0
  165. package/build/dex/bunni-v2/lib/FullMathX96.js.map +1 -0
  166. package/build/dex/bunni-v2/lib/IdleBalance.d.ts +11 -0
  167. package/build/dex/bunni-v2/lib/IdleBalance.js +33 -0
  168. package/build/dex/bunni-v2/lib/IdleBalance.js.map +1 -0
  169. package/build/dex/bunni-v2/lib/LiquidityAmounts.d.ts +6 -0
  170. package/build/dex/bunni-v2/lib/LiquidityAmounts.js +25 -0
  171. package/build/dex/bunni-v2/lib/LiquidityAmounts.js.map +1 -0
  172. package/build/dex/bunni-v2/lib/Math.d.ts +28 -0
  173. package/build/dex/bunni-v2/lib/Math.js +169 -0
  174. package/build/dex/bunni-v2/lib/Math.js.map +1 -0
  175. package/build/dex/bunni-v2/lib/Oracle.d.ts +27 -0
  176. package/build/dex/bunni-v2/lib/Oracle.js +180 -0
  177. package/build/dex/bunni-v2/lib/Oracle.js.map +1 -0
  178. package/build/dex/bunni-v2/lib/QueryLDF.d.ts +12 -0
  179. package/build/dex/bunni-v2/lib/QueryLDF.js +90 -0
  180. package/build/dex/bunni-v2/lib/QueryLDF.js.map +1 -0
  181. package/build/dex/bunni-v2/lib/QueryTwap.d.ts +2 -0
  182. package/build/dex/bunni-v2/lib/QueryTwap.js +13 -0
  183. package/build/dex/bunni-v2/lib/QueryTwap.js.map +1 -0
  184. package/build/dex/bunni-v2/lib/SqrtPriceMath.d.ts +8 -0
  185. package/build/dex/bunni-v2/lib/SqrtPriceMath.js +84 -0
  186. package/build/dex/bunni-v2/lib/SqrtPriceMath.js.map +1 -0
  187. package/build/dex/bunni-v2/lib/TickMath.d.ts +11 -0
  188. package/build/dex/bunni-v2/lib/TickMath.js +100 -0
  189. package/build/dex/bunni-v2/lib/TickMath.js.map +1 -0
  190. package/build/dex/bunni-v2/lib/VaultMath.d.ts +2 -0
  191. package/build/dex/bunni-v2/lib/VaultMath.js +11 -0
  192. package/build/dex/bunni-v2/lib/VaultMath.js.map +1 -0
  193. package/build/dex/bunni-v2/logic/AmAmm.d.ts +11 -0
  194. package/build/dex/bunni-v2/logic/AmAmm.js +156 -0
  195. package/build/dex/bunni-v2/logic/AmAmm.js.map +1 -0
  196. package/build/dex/bunni-v2/logic/BunniHookLogic.d.ts +10 -0
  197. package/build/dex/bunni-v2/logic/BunniHookLogic.js +298 -0
  198. package/build/dex/bunni-v2/logic/BunniHookLogic.js.map +1 -0
  199. package/build/dex/bunni-v2/logic/BunniHubLogic.d.ts +5 -0
  200. package/build/dex/bunni-v2/logic/BunniHubLogic.js +245 -0
  201. package/build/dex/bunni-v2/logic/BunniHubLogic.js.map +1 -0
  202. package/build/dex/bunni-v2/logic/BunniQuoter.d.ts +12 -0
  203. package/build/dex/bunni-v2/logic/BunniQuoter.js +201 -0
  204. package/build/dex/bunni-v2/logic/BunniQuoter.js.map +1 -0
  205. package/build/dex/bunni-v2/subgraph.d.ts +7 -0
  206. package/build/dex/bunni-v2/subgraph.js +184 -0
  207. package/build/dex/bunni-v2/subgraph.js.map +1 -0
  208. package/build/dex/bunni-v2/types.d.ts +257 -0
  209. package/build/dex/{renegade/api → bunni-v2}/types.js.map +1 -1
  210. package/build/dex/bunni-v2/utils.d.ts +12 -0
  211. package/build/dex/bunni-v2/utils.js +182 -0
  212. package/build/dex/bunni-v2/utils.js.map +1 -0
  213. package/build/dex/compound/compound.d.ts +15 -0
  214. package/build/dex/compound/compound.js +57 -0
  215. package/build/dex/compound/compound.js.map +1 -0
  216. package/build/dex/compound/types.d.ts +8 -0
  217. package/build/dex/compound/types.js +9 -0
  218. package/build/dex/compound/types.js.map +1 -0
  219. package/build/dex/concentrator-arusd/concentrator-arusd-event.d.ts +17 -0
  220. package/build/dex/concentrator-arusd/concentrator-arusd-event.js +69 -0
  221. package/build/dex/concentrator-arusd/concentrator-arusd-event.js.map +1 -0
  222. package/build/dex/concentrator-arusd/concentrator-arusd.d.ts +41 -0
  223. package/build/dex/concentrator-arusd/concentrator-arusd.js +202 -0
  224. package/build/dex/concentrator-arusd/concentrator-arusd.js.map +1 -0
  225. package/build/dex/concentrator-arusd/config.d.ts +3 -0
  226. package/build/dex/concentrator-arusd/config.js +14 -0
  227. package/build/dex/concentrator-arusd/config.js.map +1 -0
  228. package/build/dex/concentrator-arusd/types.d.ts +14 -0
  229. package/build/dex/concentrator-arusd/types.js +3 -0
  230. package/build/dex/concentrator-arusd/types.js.map +1 -0
  231. package/build/dex/concentrator-arusd/utils.d.ts +4 -0
  232. package/build/dex/concentrator-arusd/utils.js +26 -0
  233. package/build/dex/concentrator-arusd/utils.js.map +1 -0
  234. package/build/dex/curve-v1/forks/swerve/config.d.ts +4 -0
  235. package/build/dex/curve-v1/forks/swerve/config.js +47 -0
  236. package/build/dex/curve-v1/forks/swerve/config.js.map +1 -0
  237. package/build/dex/curve-v1/forks/swerve/swerve.d.ts +16 -0
  238. package/build/dex/curve-v1/forks/swerve/swerve.js +46 -0
  239. package/build/dex/curve-v1/forks/swerve/swerve.js.map +1 -0
  240. package/build/dex/deth/config.d.ts +6 -0
  241. package/build/dex/deth/config.js +41 -0
  242. package/build/dex/deth/config.js.map +1 -0
  243. package/build/dex/deth/dETH.d.ts +29 -0
  244. package/build/dex/deth/dETH.js +130 -0
  245. package/build/dex/deth/dETH.js.map +1 -0
  246. package/build/dex/ekubo/pools/base-pool.d.ts +47 -0
  247. package/build/dex/ekubo/pools/base-pool.js +184 -0
  248. package/build/dex/ekubo/pools/base-pool.js.map +1 -0
  249. package/build/dex/ekubo/pools/iface.d.ts +46 -0
  250. package/build/dex/ekubo/pools/iface.js +75 -0
  251. package/build/dex/ekubo/pools/iface.js.map +1 -0
  252. package/build/dex/ekubo/pools/math/price.d.ts +7 -0
  253. package/build/dex/ekubo/pools/math/price.js +112 -0
  254. package/build/dex/ekubo/pools/math/price.js.map +1 -0
  255. package/build/dex/ekubo/pools/oracle-pool.d.ts +10 -0
  256. package/build/dex/ekubo/pools/oracle-pool.js +19 -0
  257. package/build/dex/ekubo/pools/oracle-pool.js.map +1 -0
  258. package/build/dex/ekubo/pools/pool-utils.d.ts +44 -0
  259. package/build/dex/ekubo/pools/pool-utils.js +240 -0
  260. package/build/dex/ekubo/pools/pool-utils.js.map +1 -0
  261. package/build/dex/gmx/config.d.ts +11 -0
  262. package/build/dex/gmx/config.js +61 -0
  263. package/build/dex/gmx/config.js.map +1 -0
  264. package/build/dex/gmx/fast-price-feed.d.ts +26 -0
  265. package/build/dex/gmx/fast-price-feed.js +184 -0
  266. package/build/dex/gmx/fast-price-feed.js.map +1 -0
  267. package/build/dex/gmx/gmx.d.ts +54 -0
  268. package/build/dex/gmx/gmx.js +247 -0
  269. package/build/dex/gmx/gmx.js.map +1 -0
  270. package/build/dex/gmx/pool.d.ts +21 -0
  271. package/build/dex/gmx/pool.js +212 -0
  272. package/build/dex/gmx/pool.js.map +1 -0
  273. package/build/dex/gmx/types.d.ts +100 -0
  274. package/build/dex/gmx/types.js +3 -0
  275. package/build/dex/gmx/types.js.map +1 -0
  276. package/build/dex/gmx/usdg.d.ts +15 -0
  277. package/build/dex/gmx/usdg.js +62 -0
  278. package/build/dex/gmx/usdg.js.map +1 -0
  279. package/build/dex/gmx/vault-price-feed.d.ts +47 -0
  280. package/build/dex/gmx/vault-price-feed.js +245 -0
  281. package/build/dex/gmx/vault-price-feed.js.map +1 -0
  282. package/build/dex/gmx/vault-utils.d.ts +8 -0
  283. package/build/dex/gmx/vault-utils.js +42 -0
  284. package/build/dex/gmx/vault-utils.js.map +1 -0
  285. package/build/dex/gmx/vault.d.ts +46 -0
  286. package/build/dex/gmx/vault.js +182 -0
  287. package/build/dex/gmx/vault.js.map +1 -0
  288. package/build/dex/idle-dao/config.d.ts +5 -0
  289. package/build/dex/idle-dao/config.js +24 -0
  290. package/build/dex/idle-dao/config.js.map +1 -0
  291. package/build/dex/idle-dao/idle-dao.d.ts +42 -0
  292. package/build/dex/idle-dao/idle-dao.js +279 -0
  293. package/build/dex/idle-dao/idle-dao.js.map +1 -0
  294. package/build/dex/idle-dao/token_list.d.ts +4 -0
  295. package/build/dex/idle-dao/token_list.js +289 -0
  296. package/build/dex/idle-dao/token_list.js.map +1 -0
  297. package/build/dex/idle-dao/tokens.d.ts +9 -0
  298. package/build/dex/idle-dao/tokens.js +68 -0
  299. package/build/dex/idle-dao/tokens.js.map +1 -0
  300. package/build/dex/idle-dao/types.d.ts +35 -0
  301. package/build/dex/idle-dao/types.js +11 -0
  302. package/build/dex/idle-dao/types.js.map +1 -0
  303. package/build/dex/idle-dao/utils.d.ts +8 -0
  304. package/build/dex/idle-dao/utils.js +149 -0
  305. package/build/dex/idle-dao/utils.js.map +1 -0
  306. package/build/dex/index.js +2 -0
  307. package/build/dex/index.js.map +1 -1
  308. package/build/dex/infusion/config.d.ts +3 -0
  309. package/build/dex/infusion/config.js +20 -0
  310. package/build/dex/infusion/config.js.map +1 -0
  311. package/build/dex/infusion/infusion-stable-pool.d.ts +4 -0
  312. package/build/dex/infusion/infusion-stable-pool.js +74 -0
  313. package/build/dex/infusion/infusion-stable-pool.js.map +1 -0
  314. package/build/dex/infusion/infusion.d.ts +51 -0
  315. package/build/dex/infusion/infusion.js +500 -0
  316. package/build/dex/infusion/infusion.js.map +1 -0
  317. package/build/dex/infusion/types.d.ts +45 -0
  318. package/build/dex/infusion/types.js +3 -0
  319. package/build/dex/infusion/types.js.map +1 -0
  320. package/build/dex/infusion/utils/isStablePair.d.ts +2 -0
  321. package/build/dex/infusion/utils/isStablePair.js +18 -0
  322. package/build/dex/infusion/utils/isStablePair.js.map +1 -0
  323. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.d.ts +15 -0
  324. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js +51 -0
  325. package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js.map +1 -0
  326. package/build/dex/jarvis-v6/config.d.ts +4 -0
  327. package/build/dex/jarvis-v6/config.js +244 -0
  328. package/build/dex/jarvis-v6/config.js.map +1 -0
  329. package/build/dex/jarvis-v6/jarvis-v6-events.d.ts +27 -0
  330. package/build/dex/jarvis-v6/jarvis-v6-events.js +54 -0
  331. package/build/dex/jarvis-v6/jarvis-v6-events.js.map +1 -0
  332. package/build/dex/jarvis-v6/jarvis-v6.d.ts +49 -0
  333. package/build/dex/jarvis-v6/jarvis-v6.js +321 -0
  334. package/build/dex/jarvis-v6/jarvis-v6.js.map +1 -0
  335. package/build/dex/jarvis-v6/syntheteumPool-event.d.ts +15 -0
  336. package/build/dex/jarvis-v6/syntheteumPool-event.js +49 -0
  337. package/build/dex/jarvis-v6/syntheteumPool-event.js.map +1 -0
  338. package/build/dex/jarvis-v6/types.d.ts +48 -0
  339. package/build/dex/jarvis-v6/types.js +9 -0
  340. package/build/dex/jarvis-v6/types.js.map +1 -0
  341. package/build/dex/jarvis-v6/utils.d.ts +13 -0
  342. package/build/dex/jarvis-v6/utils.js +75 -0
  343. package/build/dex/jarvis-v6/utils.js.map +1 -0
  344. package/build/dex/jarvis.d.ts +56 -0
  345. package/build/dex/jarvis.js +163 -0
  346. package/build/dex/jarvis.js.map +1 -0
  347. package/build/dex/kyberdmm/config.d.ts +9 -0
  348. package/build/dex/kyberdmm/config.js +59 -0
  349. package/build/dex/kyberdmm/config.js.map +1 -0
  350. package/build/dex/kyberdmm/fee-formula.d.ts +15 -0
  351. package/build/dex/kyberdmm/fee-formula.js +88 -0
  352. package/build/dex/kyberdmm/fee-formula.js.map +1 -0
  353. package/build/dex/kyberdmm/kyberdmm.d.ts +55 -0
  354. package/build/dex/kyberdmm/kyberdmm.js +447 -0
  355. package/build/dex/kyberdmm/kyberdmm.js.map +1 -0
  356. package/build/dex/kyberdmm/math-ext.d.ts +2 -0
  357. package/build/dex/kyberdmm/math-ext.js +27 -0
  358. package/build/dex/kyberdmm/math-ext.js.map +1 -0
  359. package/build/dex/kyberdmm/pool.d.ts +50 -0
  360. package/build/dex/kyberdmm/pool.js +157 -0
  361. package/build/dex/kyberdmm/pool.js.map +1 -0
  362. package/build/dex/kyberdmm/types.d.ts +81 -0
  363. package/build/dex/kyberdmm/types.js +9 -0
  364. package/build/dex/kyberdmm/types.js.map +1 -0
  365. package/build/dex/mStable.d.ts +44 -0
  366. package/build/dex/mStable.js +75 -0
  367. package/build/dex/mStable.js.map +1 -0
  368. package/build/dex/maker-psm/config.d.ts +11 -0
  369. package/build/dex/maker-psm/config.js +53 -0
  370. package/build/dex/maker-psm/config.js.map +1 -0
  371. package/build/dex/maker-psm/maker-psm.d.ts +103 -0
  372. package/build/dex/maker-psm/maker-psm.js +493 -0
  373. package/build/dex/maker-psm/maker-psm.js.map +1 -0
  374. package/build/dex/maker-psm/types.d.ts +39 -0
  375. package/build/dex/maker-psm/types.js +3 -0
  376. package/build/dex/maker-psm/types.js.map +1 -0
  377. package/build/dex/onebit/onebit.d.ts +16 -0
  378. package/build/dex/onebit/onebit.js +61 -0
  379. package/build/dex/onebit/onebit.js.map +1 -0
  380. package/build/dex/onebit/types.d.ts +14 -0
  381. package/build/dex/onebit/types.js +8 -0
  382. package/build/dex/onebit/types.js.map +1 -0
  383. package/build/dex/quick-perps/config.d.ts +11 -0
  384. package/build/dex/quick-perps/config.js +27 -0
  385. package/build/dex/quick-perps/config.js.map +1 -0
  386. package/build/dex/quick-perps/fast-price-feed.d.ts +26 -0
  387. package/build/dex/quick-perps/fast-price-feed.js +184 -0
  388. package/build/dex/quick-perps/fast-price-feed.js.map +1 -0
  389. package/build/dex/quick-perps/pool.d.ts +21 -0
  390. package/build/dex/quick-perps/pool.js +229 -0
  391. package/build/dex/quick-perps/pool.js.map +1 -0
  392. package/build/dex/quick-perps/quick-perps.d.ts +53 -0
  393. package/build/dex/quick-perps/quick-perps.js +247 -0
  394. package/build/dex/quick-perps/quick-perps.js.map +1 -0
  395. package/build/dex/quick-perps/types.d.ts +98 -0
  396. package/build/dex/quick-perps/types.js +3 -0
  397. package/build/dex/quick-perps/types.js.map +1 -0
  398. package/build/dex/quick-perps/usdq.d.ts +15 -0
  399. package/build/dex/quick-perps/usdq.js +62 -0
  400. package/build/dex/quick-perps/usdq.js.map +1 -0
  401. package/build/dex/quick-perps/vault-price-feed.d.ts +43 -0
  402. package/build/dex/quick-perps/vault-price-feed.js +203 -0
  403. package/build/dex/quick-perps/vault-price-feed.js.map +1 -0
  404. package/build/dex/quick-perps/vault-utils.d.ts +8 -0
  405. package/build/dex/quick-perps/vault-utils.js +42 -0
  406. package/build/dex/quick-perps/vault-utils.js.map +1 -0
  407. package/build/dex/quick-perps/vault.d.ts +46 -0
  408. package/build/dex/quick-perps/vault.js +182 -0
  409. package/build/dex/quick-perps/vault.js.map +1 -0
  410. package/build/dex/quickswap/thena-fusion.d.ts +6 -0
  411. package/build/dex/quickswap/thena-fusion.js +19 -0
  412. package/build/dex/quickswap/thena-fusion.js.map +1 -0
  413. package/build/dex/se-vlr/config.d.ts +3 -0
  414. package/build/dex/se-vlr/config.js +24 -0
  415. package/build/dex/se-vlr/config.js.map +1 -0
  416. package/build/dex/se-vlr/se-vlr-pool.d.ts +39 -0
  417. package/build/dex/se-vlr/se-vlr-pool.js +70 -0
  418. package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
  419. package/build/dex/se-vlr/se-vlr.d.ts +35 -0
  420. package/build/dex/se-vlr/se-vlr.js +131 -0
  421. package/build/dex/se-vlr/se-vlr.js.map +1 -0
  422. package/build/dex/se-vlr/types.d.ts +6 -0
  423. package/build/dex/se-vlr/types.js +3 -0
  424. package/build/dex/se-vlr/types.js.map +1 -0
  425. package/build/dex/shell.d.ts +25 -0
  426. package/build/dex/shell.js +41 -0
  427. package/build/dex/shell.js.map +1 -0
  428. package/build/dex/smoothy/smoothy.d.ts +16 -0
  429. package/build/dex/smoothy/smoothy.js +60 -0
  430. package/build/dex/smoothy/smoothy.js.map +1 -0
  431. package/build/dex/smoothy/types.d.ts +15 -0
  432. package/build/dex/smoothy/types.js +8 -0
  433. package/build/dex/smoothy/types.js.map +1 -0
  434. package/build/dex/solidly/forks-override/aerodrome.d.ts +14 -0
  435. package/build/dex/solidly/forks-override/aerodrome.js +46 -0
  436. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -0
  437. package/build/dex/solidly/forks-override/chronos.d.ts +23 -0
  438. package/build/dex/solidly/forks-override/chronos.js +141 -0
  439. package/build/dex/solidly/forks-override/chronos.js.map +1 -0
  440. package/build/dex/solidly/forks-override/usdfi.d.ts +8 -0
  441. package/build/dex/solidly/forks-override/usdfi.js +15 -0
  442. package/build/dex/solidly/forks-override/usdfi.js.map +1 -0
  443. package/build/dex/solidly/forks-override/velocimeter.d.ts +23 -0
  444. package/build/dex/solidly/forks-override/velocimeter.js +77 -0
  445. package/build/dex/solidly/forks-override/velocimeter.js.map +1 -0
  446. package/build/dex/stader/config.d.ts +3 -0
  447. package/build/dex/stader/config.js +14 -0
  448. package/build/dex/stader/config.js.map +1 -0
  449. package/build/dex/stader/stader-pool.d.ts +19 -0
  450. package/build/dex/stader/stader-pool.js +56 -0
  451. package/build/dex/stader/stader-pool.js.map +1 -0
  452. package/build/dex/stader/stader.d.ts +42 -0
  453. package/build/dex/stader/stader.js +195 -0
  454. package/build/dex/stader/stader.js.map +1 -0
  455. package/build/dex/stader/types.d.ts +13 -0
  456. package/build/dex/stader/types.js +8 -0
  457. package/build/dex/stader/types.js.map +1 -0
  458. package/build/dex/stader/utils.d.ts +4 -0
  459. package/build/dex/stader/utils.js +23 -0
  460. package/build/dex/stader/utils.js.map +1 -0
  461. package/build/dex/synthetix/config.d.ts +4 -0
  462. package/build/dex/synthetix/config.js +53 -0
  463. package/build/dex/synthetix/config.js.map +1 -0
  464. package/build/dex/synthetix/constants.d.ts +23 -0
  465. package/build/dex/synthetix/constants.js +32 -0
  466. package/build/dex/synthetix/constants.js.map +1 -0
  467. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.d.ts +17 -0
  468. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js +102 -0
  469. package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js.map +1 -0
  470. package/build/dex/synthetix/contract-math/ExchangeRates.d.ts +8 -0
  471. package/build/dex/synthetix/contract-math/ExchangeRates.js +77 -0
  472. package/build/dex/synthetix/contract-math/ExchangeRates.js.map +1 -0
  473. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.d.ts +17 -0
  474. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js +126 -0
  475. package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js.map +1 -0
  476. package/build/dex/synthetix/contract-math/FullMath.d.ts +3 -0
  477. package/build/dex/synthetix/contract-math/FullMath.js +14 -0
  478. package/build/dex/synthetix/contract-math/FullMath.js.map +1 -0
  479. package/build/dex/synthetix/contract-math/OracleLibrary.d.ts +8 -0
  480. package/build/dex/synthetix/contract-math/OracleLibrary.js +60 -0
  481. package/build/dex/synthetix/contract-math/OracleLibrary.js.map +1 -0
  482. package/build/dex/synthetix/contract-math/SafeDecimalMath.d.ts +9 -0
  483. package/build/dex/synthetix/contract-math/SafeDecimalMath.js +41 -0
  484. package/build/dex/synthetix/contract-math/SafeDecimalMath.js.map +1 -0
  485. package/build/dex/synthetix/contract-math/TickMath.d.ts +7 -0
  486. package/build/dex/synthetix/contract-math/TickMath.js +63 -0
  487. package/build/dex/synthetix/contract-math/TickMath.js.map +1 -0
  488. package/build/dex/synthetix/contract-math/synthetix-math.d.ts +17 -0
  489. package/build/dex/synthetix/contract-math/synthetix-math.js +127 -0
  490. package/build/dex/synthetix/contract-math/synthetix-math.js.map +1 -0
  491. package/build/dex/synthetix/synthetix-state.d.ts +36 -0
  492. package/build/dex/synthetix/synthetix-state.js +615 -0
  493. package/build/dex/synthetix/synthetix-state.js.map +1 -0
  494. package/build/dex/synthetix/synthetix.d.ts +45 -0
  495. package/build/dex/synthetix/synthetix.js +304 -0
  496. package/build/dex/synthetix/synthetix.js.map +1 -0
  497. package/build/dex/synthetix/types.d.ts +90 -0
  498. package/build/dex/synthetix/types.js +3 -0
  499. package/build/dex/synthetix/types.js.map +1 -0
  500. package/build/dex/synthetix/utils.d.ts +10 -0
  501. package/build/dex/synthetix/utils.js +91 -0
  502. package/build/dex/synthetix/utils.js.map +1 -0
  503. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.d.ts +7 -0
  504. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js +20 -0
  505. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js.map +1 -0
  506. package/build/dex/trader-joe-v2.d.ts +40 -0
  507. package/build/dex/trader-joe-v2.js +74 -0
  508. package/build/dex/trader-joe-v2.js.map +1 -0
  509. package/build/dex/uniswap-v2/dfyn.d.ts +19 -0
  510. package/build/dex/uniswap-v2/dfyn.js +61 -0
  511. package/build/dex/uniswap-v2/dfyn.js.map +1 -0
  512. package/build/dex/uniswap-v2/excalibur.d.ts +24 -0
  513. package/build/dex/uniswap-v2/excalibur.js +47 -0
  514. package/build/dex/uniswap-v2/excalibur.js.map +1 -0
  515. package/build/dex/uniswap-v2/mdex.d.ts +24 -0
  516. package/build/dex/uniswap-v2/mdex.js +50 -0
  517. package/build/dex/uniswap-v2/mdex.js.map +1 -0
  518. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +24 -0
  519. package/build/dex/uniswap-v2/nomiswap-v2.js +57 -0
  520. package/build/dex/uniswap-v2/nomiswap-v2.js.map +1 -0
  521. package/build/dex/uniswap-v3/config.js +1 -1
  522. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  523. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  524. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  525. package/build/dex/uniswap-v4/contract-math/Position.d.ts +3 -0
  526. package/build/dex/uniswap-v4/contract-math/Position.js +10 -0
  527. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -0
  528. package/build/dex/usual-bond/config.d.ts +3 -0
  529. package/build/dex/usual-bond/config.js +13 -0
  530. package/build/dex/usual-bond/config.js.map +1 -0
  531. package/build/dex/usual-bond/types.d.ts +7 -0
  532. package/build/dex/usual-bond/types.js +3 -0
  533. package/build/dex/usual-bond/types.js.map +1 -0
  534. package/build/dex/usual-bond/usual-bond.d.ts +35 -0
  535. package/build/dex/usual-bond/usual-bond.js +176 -0
  536. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  537. package/build/dex/wombat/config.d.ts +4 -0
  538. package/build/dex/wombat/config.js +77 -0
  539. package/build/dex/wombat/config.js.map +1 -0
  540. package/build/dex/wombat/types.d.ts +34 -0
  541. package/build/dex/wombat/types.js +3 -0
  542. package/build/dex/wombat/types.js.map +1 -0
  543. package/build/dex/wombat/utils.d.ts +10 -0
  544. package/build/dex/wombat/utils.js +79 -0
  545. package/build/dex/wombat/utils.js.map +1 -0
  546. package/build/dex/wombat/wombat-bmw.d.ts +40 -0
  547. package/build/dex/wombat/wombat-bmw.js +136 -0
  548. package/build/dex/wombat/wombat-bmw.js.map +1 -0
  549. package/build/dex/wombat/wombat-pool.d.ts +60 -0
  550. package/build/dex/wombat/wombat-pool.js +488 -0
  551. package/build/dex/wombat/wombat-pool.js.map +1 -0
  552. package/build/dex/wombat/wombat-quoter.d.ts +17 -0
  553. package/build/dex/wombat/wombat-quoter.js +192 -0
  554. package/build/dex/wombat/wombat-quoter.js.map +1 -0
  555. package/build/dex/wombat/wombat.d.ts +58 -0
  556. package/build/dex/wombat/wombat.js +298 -0
  557. package/build/dex/wombat/wombat.js.map +1 -0
  558. package/build/dex/wusdm/config.d.ts +3 -0
  559. package/build/dex/wusdm/config.js +43 -0
  560. package/build/dex/wusdm/config.js.map +1 -0
  561. package/build/dex/wusdm/constants.d.ts +2 -0
  562. package/build/dex/wusdm/constants.js +6 -0
  563. package/build/dex/wusdm/constants.js.map +1 -0
  564. package/build/dex/wusdm/types.d.ts +18 -0
  565. package/build/dex/wusdm/types.js +11 -0
  566. package/build/dex/wusdm/types.js.map +1 -0
  567. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  568. package/build/dex/wusdm/wusdm-pool.js +74 -0
  569. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  570. package/build/dex/wusdm/wusdm.d.ts +46 -0
  571. package/build/dex/wusdm/wusdm.js +243 -0
  572. package/build/dex/wusdm/wusdm.js.map +1 -0
  573. package/build/dex/zerox/config.d.ts +2 -0
  574. package/build/dex/zerox/config.js +33 -0
  575. package/build/dex/zerox/config.js.map +1 -0
  576. package/build/dex/zerox/index.d.ts +22 -0
  577. package/build/dex/zerox/index.js +225 -0
  578. package/build/dex/zerox/index.js.map +1 -0
  579. package/build/dex/zerox/order.d.ts +88 -0
  580. package/build/dex/zerox/order.js +53 -0
  581. package/build/dex/zerox/order.js.map +1 -0
  582. package/build/dex/zerox/types.d.ts +73 -0
  583. package/build/dex/zerox/types.js +21 -0
  584. package/build/dex/zerox/types.js.map +1 -0
  585. package/package.json +1 -1
  586. package/build/dex/renegade/api/auth.d.ts +0 -1
  587. package/build/dex/renegade/api/auth.js +0 -63
  588. package/build/dex/renegade/api/auth.js.map +0 -1
  589. package/build/dex/renegade/api/renegade-client.d.ts +0 -18
  590. package/build/dex/renegade/api/renegade-client.js +0 -82
  591. package/build/dex/renegade/api/renegade-client.js.map +0 -1
  592. package/build/dex/renegade/api/types.d.ts +0 -110
  593. package/build/dex/renegade/config.js +0 -16
  594. package/build/dex/renegade/config.js.map +0 -1
  595. package/build/dex/renegade/constants.d.ts +0 -25
  596. package/build/dex/renegade/constants.js +0 -47
  597. package/build/dex/renegade/constants.js.map +0 -1
  598. package/build/dex/renegade/rate-fetcher.d.ts +0 -23
  599. package/build/dex/renegade/rate-fetcher.js +0 -135
  600. package/build/dex/renegade/rate-fetcher.js.map +0 -1
  601. package/build/dex/renegade/renegade-levels-response.d.ts +0 -22
  602. package/build/dex/renegade/renegade-levels-response.js +0 -99
  603. package/build/dex/renegade/renegade-levels-response.js.map +0 -1
  604. package/build/dex/renegade/renegade.d.ts +0 -57
  605. package/build/dex/renegade/renegade.js +0 -499
  606. package/build/dex/renegade/renegade.js.map +0 -1
  607. package/build/dex/renegade/types.d.ts +0 -38
  608. package/build/dex/renegade/types.js +0 -4
  609. package/build/dex/renegade/types.js.map +0 -1
  610. /package/build/dex/{renegade/api → bunni-v2}/types.js +0 -0
@@ -0,0 +1,460 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.BunniV2 = void 0;
40
+ const constants_1 = require("../../constants");
41
+ const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
42
+ const utils_1 = require("../../utils");
43
+ const simple_exchange_1 = require("../simple-exchange");
44
+ const config_1 = require("./config");
45
+ const bunni_v2_pool_1 = require("./bunni-v2-pool");
46
+ const V4Quoter_abi_json_1 = __importDefault(require("../../abi/bunni-v2/V4Quoter.abi.json"));
47
+ const abi_1 = require("@ethersproject/abi");
48
+ const decoders_1 = require("../../lib/decoders");
49
+ const bigint_constants_1 = require("../../bigint-constants");
50
+ const lodash_1 = __importDefault(require("lodash"));
51
+ const encoder_1 = require("./encoder");
52
+ const utils_2 = require("./utils");
53
+ const ERC4626_json_1 = __importDefault(require("../../abi//ERC4626.json"));
54
+ const TickMath_1 = require("./lib/TickMath");
55
+ const Constants_1 = require("./lib/Constants");
56
+ const POOL_TOTAL_VALUE_LOCKED_UPDATE_TTL = 5 * 60; // 5 minutes
57
+ const VAULT_SHARE_PRICES_UPDATE_TTL = 1 * 60; // 1 minute
58
+ const MIN_USD_TVL_FOR_PRICING = 1000n; // $1000
59
+ const BUNNI_V2_GAS_COST = 400_000; // https://dashboard.tenderly.co/shared/simulation/d343cb5e-7d7c-45f8-9653-6a7f7f104eed/gas-usage
60
+ class BunniV2 extends simple_exchange_1.SimpleExchange {
61
+ network;
62
+ dexKey;
63
+ dexHelper;
64
+ eventPools;
65
+ hasConstantPriceLargeAmounts = false;
66
+ needWrapNative = false;
67
+ isFeeOnTransferSupported = false;
68
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.BunniV2Config);
69
+ WETH;
70
+ config;
71
+ logger;
72
+ quoterInterface;
73
+ erc4626Interface;
74
+ updatePoolTotalValueLockedTimer;
75
+ updateVaultSharePricesTimer;
76
+ constructor(network, dexKey, dexHelper) {
77
+ super(dexHelper, dexKey);
78
+ this.network = network;
79
+ this.dexKey = dexKey;
80
+ this.dexHelper = dexHelper;
81
+ this.WETH =
82
+ this.dexHelper.config.data.wrappedNativeTokenAddress.toLowerCase();
83
+ this.config = config_1.BunniV2Config.BunniV2[network];
84
+ this.logger = dexHelper.getLogger(dexKey);
85
+ this.quoterInterface = new abi_1.Interface(V4Quoter_abi_json_1.default);
86
+ this.erc4626Interface = new abi_1.Interface(ERC4626_json_1.default);
87
+ this.eventPools = new bunni_v2_pool_1.BunniV2EventPool(dexKey, network, dexHelper, this.logger);
88
+ }
89
+ async initializePricing(blockNumber) {
90
+ await this.eventPools.initialize(blockNumber);
91
+ if (!this.updateVaultSharePricesTimer && this.dexHelper.config.isSlave) {
92
+ try {
93
+ await this.updateVaultSharePrices(blockNumber);
94
+ }
95
+ catch (error) {
96
+ this.logger.error(`${this.dexKey}: Failed to update vault share prices on initialize:`, error);
97
+ }
98
+ this.updateVaultSharePricesTimer = setInterval(async () => {
99
+ try {
100
+ await this.updateVaultSharePrices();
101
+ }
102
+ catch (error) {
103
+ this.logger.error(`${this.dexKey}: Failed to update vault share prices:`, error);
104
+ }
105
+ }, VAULT_SHARE_PRICES_UPDATE_TTL * 1000);
106
+ }
107
+ if (!this.updatePoolTotalValueLockedTimer &&
108
+ this.dexHelper.config.isSlave) {
109
+ try {
110
+ await this.updatePoolTotalValueLocked(blockNumber);
111
+ }
112
+ catch (error) {
113
+ this.logger.error(`${this.dexKey}: Failed to update pool total value locked on initialize:`, error);
114
+ }
115
+ this.updatePoolTotalValueLockedTimer = setInterval(async () => {
116
+ try {
117
+ await this.updatePoolTotalValueLocked();
118
+ }
119
+ catch (error) {
120
+ this.logger.error(`${this.dexKey}: Failed to update pool total value locked:`, error);
121
+ }
122
+ }, POOL_TOTAL_VALUE_LOCKED_UPDATE_TTL * 1000);
123
+ }
124
+ }
125
+ getAdapters(side) {
126
+ return null;
127
+ }
128
+ async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
129
+ const srcTokenAddress = srcToken.address.toLowerCase();
130
+ const destTokenAddress = destToken.address.toLowerCase();
131
+ const poolState = this.eventPools.getState(blockNumber);
132
+ if (poolState === null)
133
+ return [];
134
+ return this.findPoolIdentifiersWithTokens(poolState, srcTokenAddress, destTokenAddress);
135
+ }
136
+ findPoolIdentifiersWithTokens(pools, srcToken, destToken) {
137
+ return this.getAvailablePoolsForPair(pools, srcToken, destToken).map((poolState) => `BunniV2_${poolState.id}`);
138
+ }
139
+ getAvailablePoolsForPair(pools, srcToken, destToken) {
140
+ const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
141
+ const isEthDest = (0, utils_1.isETHAddress)(destToken);
142
+ const isWethSrc = srcToken.toLowerCase() === this.WETH;
143
+ const isWethDest = destToken.toLowerCase() === this.WETH;
144
+ const _srcToken = isEthSrc ? constants_1.NULL_ADDRESS : srcToken.toLowerCase();
145
+ const _destToken = isEthDest ? constants_1.NULL_ADDRESS : destToken.toLowerCase();
146
+ const matchesSrcToken = (poolToken) => {
147
+ return (poolToken === _srcToken ||
148
+ (isEthSrc && poolToken === this.WETH) ||
149
+ (isWethSrc && poolToken === constants_1.NULL_ADDRESS));
150
+ };
151
+ const matchesDestToken = (poolToken) => {
152
+ return (poolToken === _destToken ||
153
+ (isEthDest && poolToken === this.WETH) ||
154
+ (isWethDest && poolToken === constants_1.NULL_ADDRESS));
155
+ };
156
+ return Object.values(pools.poolStates).filter(pool => {
157
+ const token0 = pool.key.currency0.toLowerCase();
158
+ const token1 = pool.key.currency1.toLowerCase();
159
+ return (pool.totalSupply > Constants_1.MIN_INITIAL_SHARES &&
160
+ pool.totalValueLockedUSD >= MIN_USD_TVL_FOR_PRICING &&
161
+ ((matchesSrcToken(token0) && matchesDestToken(token1)) ||
162
+ (matchesSrcToken(token1) && matchesDestToken(token0))));
163
+ });
164
+ }
165
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
166
+ if (limitPools && limitPools.length === 0)
167
+ return null;
168
+ const _from = this.dexHelper.config.wrapETH(srcToken);
169
+ const _to = this.dexHelper.config.wrapETH(destToken);
170
+ if (_from.address === _to.address)
171
+ return null;
172
+ const state = await this.eventPools.getOrGenerateState(blockNumber);
173
+ // pricing logic requires block timestamp
174
+ let blockTimestamp;
175
+ const latestBlockNumber = this.dexHelper.blockManager.getLatestBlockNumber();
176
+ const activeChainHead = this.dexHelper.blockManager.getActiveChainHead();
177
+ if (activeChainHead && blockNumber === latestBlockNumber) {
178
+ blockTimestamp = (0, utils_1.bigIntify)(activeChainHead.timestamp);
179
+ }
180
+ else {
181
+ blockTimestamp = (0, utils_1.bigIntify)(Math.floor(Date.now() / 1000));
182
+ }
183
+ let pricesPromises;
184
+ const pools = this.getAvailablePoolsForPair(state, srcToken.address, destToken.address);
185
+ const poolIdSet = new Set(limitPools ?? []);
186
+ const availablePools = limitPools
187
+ ? pools.filter(pool => poolIdSet.has(`BunniV2_${pool.id}`))
188
+ : pools;
189
+ pricesPromises = availablePools.map(async (pool) => {
190
+ let prices;
191
+ const zeroForOne = srcToken.address.toLowerCase() === pool.key.currency0.toLowerCase() ||
192
+ ((0, utils_1.isETHAddress)(srcToken.address) &&
193
+ pool.key.currency0 === constants_1.NULL_ADDRESS) || // ETH is src and native ETH pool
194
+ ((0, utils_1.isETHAddress)(srcToken.address) && pool.key.currency0 === this.WETH) || // ETH is src and WETH pool
195
+ (srcToken.address.toLowerCase() === this.WETH &&
196
+ pool.key.currency0 === constants_1.NULL_ADDRESS); // WETH is src and native ETH pool
197
+ try {
198
+ prices = this.getOffChainPrices(zeroForOne, amounts, pool, state.vaultStates, side, (0, utils_1.bigIntify)(blockNumber), blockTimestamp);
199
+ }
200
+ catch (error) {
201
+ this.logger.warn(`[${this.dexKey}-${this.network}] Off-chain pricing failed for pool ${pool.id}: ${error}. Falling back to on-chain`);
202
+ try {
203
+ prices = await this.getOnChainPrices(zeroForOne, amounts, pool.key, side, blockNumber);
204
+ }
205
+ catch (error) {
206
+ this.logger.error(`[${this.dexKey}-${this.network}] On-chain pricing failed for pool ${pool.id}: ${error}`);
207
+ prices = null;
208
+ }
209
+ }
210
+ if (prices === null) {
211
+ return null;
212
+ }
213
+ if (prices.every(price => price === 0n || price === 1n)) {
214
+ return null;
215
+ }
216
+ return {
217
+ unit: bigint_constants_1.BI_POWS[destToken.decimals],
218
+ prices,
219
+ data: {
220
+ path: [
221
+ {
222
+ tokenIn: zeroForOne ? pool.key.currency0 : pool.key.currency1,
223
+ tokenOut: zeroForOne ? pool.key.currency1 : pool.key.currency0,
224
+ zeroForOne,
225
+ pool: {
226
+ key: pool.key,
227
+ },
228
+ },
229
+ ],
230
+ },
231
+ exchange: this.dexKey,
232
+ gasCost: BUNNI_V2_GAS_COST,
233
+ poolIdentifiers: [pool.id],
234
+ };
235
+ });
236
+ const prices = await Promise.all(pricesPromises);
237
+ return prices.filter(res => res !== null);
238
+ }
239
+ getOffChainPrices(zeroForOne, amounts, pool, vaults, side, blockNumber, blockTimestamp) {
240
+ const quotes = amounts.map(amount => {
241
+ return this.eventPools._quoteSwap(pool, vaults, {
242
+ zeroForOne,
243
+ amountSpecified: side === constants_1.SwapSide.SELL ? -amount : amount,
244
+ sqrtPriceLimitX96: zeroForOne
245
+ ? TickMath_1.TickMath.MIN_SQRT_PRICE + 1n
246
+ : TickMath_1.TickMath.MAX_SQRT_PRICE - 1n,
247
+ }, blockNumber, blockTimestamp);
248
+ });
249
+ return quotes.map(quote => side === constants_1.SwapSide.SELL ? quote.outputAmount : quote.inputAmount);
250
+ }
251
+ async getOnChainPrices(zeroForOne, amounts, poolKey, side, blockNumber) {
252
+ const funcName = side === constants_1.SwapSide.SELL
253
+ ? 'quoteExactInputSingle'
254
+ : 'quoteExactOutputSingle';
255
+ const callData = amounts.map(amount => {
256
+ return {
257
+ target: config_1.BunniV2Config.BunniV2[this.network].quoter,
258
+ callData: this.quoterInterface.encodeFunctionData(funcName, [
259
+ [poolKey, zeroForOne, amount, '0x'],
260
+ ]),
261
+ decodeFunction: (result) => {
262
+ // amountOut, gasEstimate
263
+ return (0, decoders_1.generalDecoder)(result, ['uint256', 'uint256'], 0n, value => BigInt(value[0].toString()));
264
+ },
265
+ };
266
+ });
267
+ const results = await this.dexHelper.multiWrapper.tryAggregate(false, callData, blockNumber);
268
+ return results.map(result => (result.success ? result.returnData : 0n));
269
+ }
270
+ getCalldataGasCost(poolPrices) {
271
+ if (poolPrices.data.path.length === 1) {
272
+ return (CALLDATA_GAS_COST.DEX_OVERHEAD +
273
+ // poolKey -> currency0
274
+ CALLDATA_GAS_COST.ADDRESS +
275
+ // poolKey -> currency1
276
+ CALLDATA_GAS_COST.ADDRESS +
277
+ // poolKey -> fee
278
+ CALLDATA_GAS_COST.wordNonZeroBytes(3) +
279
+ // poolKey -> tickSpacing
280
+ CALLDATA_GAS_COST.wordNonZeroBytes(3) +
281
+ //poolKey -> hooks
282
+ CALLDATA_GAS_COST.ADDRESS +
283
+ // zeroForOne
284
+ CALLDATA_GAS_COST.BOOL +
285
+ // amountIn
286
+ CALLDATA_GAS_COST.AMOUNT +
287
+ // amountOutMinimum
288
+ CALLDATA_GAS_COST.AMOUNT +
289
+ // hookData
290
+ CALLDATA_GAS_COST.ZERO_BYTE);
291
+ }
292
+ else {
293
+ return (CALLDATA_GAS_COST.DEX_OVERHEAD +
294
+ // currency
295
+ CALLDATA_GAS_COST.ADDRESS +
296
+ // amount
297
+ CALLDATA_GAS_COST.AMOUNT +
298
+ // minAmount
299
+ CALLDATA_GAS_COST.AMOUNT +
300
+ //
301
+ poolPrices.data.path.reduce(step => {
302
+ return (CALLDATA_GAS_COST.DEX_OVERHEAD +
303
+ // poolKey -> currency0
304
+ CALLDATA_GAS_COST.ADDRESS +
305
+ // poolKey -> currency1
306
+ CALLDATA_GAS_COST.ADDRESS +
307
+ // poolKey -> fee
308
+ CALLDATA_GAS_COST.wordNonZeroBytes(3) +
309
+ // poolKey -> tickSpacing
310
+ CALLDATA_GAS_COST.wordNonZeroBytes(3) +
311
+ //poolKey -> hooks
312
+ CALLDATA_GAS_COST.ADDRESS +
313
+ // zeroForOne
314
+ CALLDATA_GAS_COST.BOOL +
315
+ // amountIn
316
+ CALLDATA_GAS_COST.AMOUNT +
317
+ // amountOutMinimum
318
+ CALLDATA_GAS_COST.AMOUNT +
319
+ // hookData
320
+ CALLDATA_GAS_COST.ZERO_BYTE);
321
+ }, 0));
322
+ }
323
+ }
324
+ getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
325
+ let encodingMethod;
326
+ if (data.path.length === 1 && side === constants_1.SwapSide.SELL) {
327
+ // Single-hop encoding for SELL side
328
+ encodingMethod = encoder_1.swapExactInputSingleCalldata;
329
+ }
330
+ else if (data.path.length === 1 && side === constants_1.SwapSide.BUY) {
331
+ // Single-hop encoding for BUY side
332
+ encodingMethod = encoder_1.swapExactOutputSingleCalldata;
333
+ }
334
+ else if (data.path.length > 1 && side === constants_1.SwapSide.SELL) {
335
+ // Multi-hop encoding for SELL side
336
+ encodingMethod = encoder_1.swapExactInputCalldata;
337
+ }
338
+ else if (data.path.length > 1 && side === constants_1.SwapSide.BUY) {
339
+ // Multi-hop encoding for BUY side
340
+ encodingMethod = encoder_1.swapExactOutputCalldata;
341
+ }
342
+ else {
343
+ throw new Error(`${this.dexKey}-${this.network}: Logic error for side: ${side}, data.path.length: ${data.path.length}`);
344
+ }
345
+ const exchangeData = encodingMethod(srcToken, destToken, data, BigInt(srcAmount), side === constants_1.SwapSide.SELL ? 0n : BigInt(destAmount), recipient, this.WETH);
346
+ return {
347
+ needWrapNative: this.needWrapNative,
348
+ sendEthButSupportsInsertFromAmount: true,
349
+ dexFuncHasRecipient: true,
350
+ exchangeData,
351
+ targetExchange: this.config.router,
352
+ transferSrcTokenBeforeSwap: (0, utils_1.isETHAddress)(srcToken)
353
+ ? undefined
354
+ : this.config.router,
355
+ skipApproval: true,
356
+ };
357
+ }
358
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
359
+ const payload = '';
360
+ return {
361
+ targetExchange: config_1.BunniV2Config.BunniV2[this.network].router,
362
+ payload,
363
+ networkFee: '0',
364
+ };
365
+ }
366
+ updatePoolState() { }
367
+ async getTopPoolsForToken(tokenAddress, limit) {
368
+ let _tokenAddress = tokenAddress.toLowerCase();
369
+ if ((0, utils_1.isETHAddress)(_tokenAddress))
370
+ _tokenAddress = constants_1.NULL_ADDRESS;
371
+ const availablePoolsForToken = await (0, utils_2.getAvailablePoolsForToken)(this.dexHelper, this.logger, this.config, _tokenAddress);
372
+ if (!availablePoolsForToken) {
373
+ this.logger.error(`Error_${this.dexKey}_Subgraph: couldn't fetch the pools from the subgraph`);
374
+ return [];
375
+ }
376
+ const poolBalances = availablePoolsForToken.map(pool => {
377
+ const rawBalance0 = parseFloat(pool.bunniToken.rawBalance0);
378
+ const rawBalance1 = parseFloat(pool.bunniToken.rawBalance1);
379
+ let reserveBalance0 = 0;
380
+ if (pool.bunniToken.vault0) {
381
+ reserveBalance0 =
382
+ parseFloat(pool.bunniToken.reserve0) *
383
+ parseFloat(pool.bunniToken.vault0.pricePerVaultShare);
384
+ }
385
+ let reserveBalance1 = 0;
386
+ if (pool.bunniToken.vault1) {
387
+ reserveBalance1 =
388
+ parseFloat(pool.bunniToken.reserve1) *
389
+ parseFloat(pool.bunniToken.vault1.pricePerVaultShare);
390
+ }
391
+ const totalBalance0 = rawBalance0 + reserveBalance0;
392
+ const totalBalance1 = rawBalance1 + reserveBalance1;
393
+ return { totalBalance0, totalBalance1 };
394
+ });
395
+ const tokenAmounts = availablePoolsForToken
396
+ .map((pool, i) => {
397
+ return [
398
+ [
399
+ pool.currency0.id === constants_1.NULL_ADDRESS
400
+ ? constants_1.ETHER_ADDRESS
401
+ : pool.currency0.id,
402
+ (0, utils_1.bigIntify)(Math.floor(poolBalances[i].totalBalance0)),
403
+ ],
404
+ [
405
+ pool.currency1.id === constants_1.NULL_ADDRESS
406
+ ? constants_1.ETHER_ADDRESS
407
+ : pool.currency1.id,
408
+ (0, utils_1.bigIntify)(Math.floor(poolBalances[i].totalBalance1)),
409
+ ],
410
+ ];
411
+ })
412
+ .flat();
413
+ const poolUsdBalances = await this.dexHelper.getUsdTokenAmounts(tokenAmounts);
414
+ const connectors = await Promise.all(availablePoolsForToken.map((pool, i) => {
415
+ const connectorAddress = _tokenAddress.toLowerCase() === pool.currency0.id.toLowerCase()
416
+ ? pool.currency1.id.toLowerCase()
417
+ : pool.currency0.id.toLowerCase();
418
+ const connectorDecimals = _tokenAddress.toLowerCase() === pool.currency0.id.toLowerCase()
419
+ ? parseInt(pool.currency1.decimals)
420
+ : parseInt(pool.currency0.decimals);
421
+ const liquidity0 = poolUsdBalances[i * 2];
422
+ const liquidity1 = poolUsdBalances[i * 2 + 1];
423
+ return {
424
+ exchange: this.dexKey,
425
+ address: config_1.BunniV2Config.BunniV2[this.network].poolManager,
426
+ connectorTokens: [
427
+ {
428
+ address: connectorAddress.toLowerCase() === constants_1.NULL_ADDRESS
429
+ ? constants_1.ETHER_ADDRESS
430
+ : connectorAddress.toLowerCase(),
431
+ decimals: connectorDecimals,
432
+ },
433
+ ],
434
+ liquidityUSD: liquidity0 + liquidity1,
435
+ };
436
+ }));
437
+ const pools = lodash_1.default.orderBy(connectors, ['liquidityUSD'], ['desc']).slice(0, limit);
438
+ return pools;
439
+ }
440
+ async updatePoolTotalValueLocked(blockNumber) {
441
+ await this.eventPools._updatePoolTotalValueLocked(blockNumber);
442
+ }
443
+ async updateVaultSharePrices(blockNumber) {
444
+ await this.eventPools._updateVaultSharePrices(blockNumber);
445
+ }
446
+ releaseResources() {
447
+ if (this.updateVaultSharePricesTimer) {
448
+ clearInterval(this.updateVaultSharePricesTimer);
449
+ this.updateVaultSharePricesTimer = undefined;
450
+ this.logger.info(`${this.dexKey}: cleared updateVaultSharePricesTimer before shutting down`);
451
+ }
452
+ if (this.updatePoolTotalValueLockedTimer) {
453
+ clearInterval(this.updatePoolTotalValueLockedTimer);
454
+ this.updatePoolTotalValueLockedTimer = undefined;
455
+ this.logger.info(`${this.dexKey}: cleared updatePoolTotalValueLockedTimer before shutting down`);
456
+ }
457
+ }
458
+ }
459
+ exports.BunniV2 = BunniV2;
460
+ //# sourceMappingURL=bunni-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bunni-v2.js","sourceRoot":"","sources":["../../../src/dex/bunni-v2/bunni-v2.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { DexParams } from './types';
2
2
  import { DexConfigMap } from '../../types';
3
- export declare const RenegadeConfig: DexConfigMap<DexParams>;
3
+ export declare const BunniV2Config: DexConfigMap<DexParams>;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BunniV2Config = void 0;
4
+ const constants_1 = require("../../constants");
5
+ const UniformDistribution_1 = require("./ldf/UniformDistribution");
6
+ const GeometricDistribution_1 = require("./ldf/GeometricDistribution");
7
+ const DoubleGeometricDistribution_1 = require("./ldf/DoubleGeometricDistribution");
8
+ const CarpetedGeometricDistribution_1 = require("./ldf/CarpetedGeometricDistribution");
9
+ const CarpetedDoubleGeometricDistribution_1 = require("./ldf/CarpetedDoubleGeometricDistribution");
10
+ const FeeOverrideHooklet_1 = require("./hooklet/FeeOverrideHooklet");
11
+ exports.BunniV2Config = {
12
+ BunniV2: {
13
+ [constants_1.Network.MAINNET]: {
14
+ poolManager: '0x000000000004444c5dc75cB358380D2e3dE08A90',
15
+ quoter: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',
16
+ router: '0x66a9893cc07d91d95644aedd05d03f95e1dba8af',
17
+ bunniHub: '0x000000000049C7bcBCa294E63567b4D21EB765f1', // v1.2.1
18
+ floodPlain: '0x0000000000f0D1C07cA806aB9154199E2E627Ea6',
19
+ bunniHook: {
20
+ address: '0x000052423c1dB6B7ff8641b85A7eEfc7B2791888', // v1.2.1
21
+ deploymentBlock: 22684594n,
22
+ },
23
+ liquidityDensityFunctions: {
24
+ ['0x00000000d5248262c18C5a8c706B2a3E740B8760'.toLowerCase()]: UniformDistribution_1.UniformDistribution,
25
+ ['0x00000000B79037C909ff75dAFbA91b374bE2124f'.toLowerCase()]: GeometricDistribution_1.GeometricDistribution,
26
+ ['0x000000004a3e16323618D0E43e93b4DD64151eDB'.toLowerCase()]: DoubleGeometricDistribution_1.DoubleGeometricDistribution,
27
+ ['0x000000007cA9919151b275FABEA64A4f557Aa1F6'.toLowerCase()]: CarpetedGeometricDistribution_1.CarpetedGeometricDistribution,
28
+ ['0x000000000b757686c9596caDA54fa28f8C429E0d'.toLowerCase()]: CarpetedDoubleGeometricDistribution_1.CarpetedDoubleGeometricDistribution,
29
+ },
30
+ hooklets: {
31
+ ['0x0000e819b8A536Cf8e5d70B9C49256911033000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.0
32
+ ['0x00eCE5a72612258f20eB24573C544f9dD8c5000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.1
33
+ },
34
+ subgraphURL: '5NFnHtgpdzB3JhVyiKQgnV9dZsewqJtX5HZfAT9Kg66r',
35
+ },
36
+ [constants_1.Network.ARBITRUM]: {
37
+ poolManager: '0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32',
38
+ quoter: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',
39
+ router: '0xa51afafe0263b40edaef0df8781ea9aa03e381a3',
40
+ bunniHub: '0x000000000049C7bcBCa294E63567b4D21EB765f1', // v1.2.1
41
+ floodPlain: '0x0000000000f0D1C07cA806aB9154199E2E627Ea6',
42
+ bunniHook: {
43
+ address: '0x0000EB22c45bDB564F985acE0B4d05a64fa71888', // v1.2.1
44
+ deploymentBlock: 351214280n,
45
+ },
46
+ liquidityDensityFunctions: {
47
+ ['0x00000000Ca63Db33B83c0048De8B29e0FF3eb085'.toLowerCase()]: UniformDistribution_1.UniformDistribution,
48
+ ['0x00000000Cf810fBCDd50699c7934E6a3bA76C6f7'.toLowerCase()]: GeometricDistribution_1.GeometricDistribution,
49
+ ['0x000000008F092B3A2eD144A4b9A6E17c4C90d8be'.toLowerCase()]: DoubleGeometricDistribution_1.DoubleGeometricDistribution,
50
+ ['0x00000000db3bb322a6c5866C3f0290a4b3eC858A'.toLowerCase()]: CarpetedGeometricDistribution_1.CarpetedGeometricDistribution,
51
+ ['0x00000000f5cf92Bf887e22E1800fA15A2375B4b9'.toLowerCase()]: CarpetedDoubleGeometricDistribution_1.CarpetedDoubleGeometricDistribution,
52
+ },
53
+ hooklets: {
54
+ ['0x0000e819b8A536Cf8e5d70B9C49256911033000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.0
55
+ ['0x00eCE5a72612258f20eB24573C544f9dD8c5000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.1
56
+ },
57
+ subgraphURL: '96tZMr51QupqWYamom12Yki5AqCJEiHWbVUpzUpvu9oB',
58
+ },
59
+ [constants_1.Network.BASE]: {
60
+ poolManager: '0x498581fF718922c3f8e6A244956aF099B2652b2b',
61
+ quoter: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',
62
+ router: '0x6ff5693b99212da76ad316178a184ab56d299b43',
63
+ bunniHub: '0x000000000049C7bcBCa294E63567b4D21EB765f1', // v1.2.1
64
+ floodPlain: '0x0000000000f0D1C07cA806aB9154199E2E627Ea6',
65
+ bunniHook: {
66
+ address: '0x000052423c1dB6B7ff8641b85A7eEfc7B2791888', // v1.2.1
67
+ deploymentBlock: 31446454n,
68
+ },
69
+ liquidityDensityFunctions: {
70
+ ['0x00000000d5248262c18C5a8c706B2a3E740B8760'.toLowerCase()]: UniformDistribution_1.UniformDistribution,
71
+ ['0x00000000B79037C909ff75dAFbA91b374bE2124f'.toLowerCase()]: GeometricDistribution_1.GeometricDistribution,
72
+ ['0x000000004a3e16323618D0E43e93b4DD64151eDB'.toLowerCase()]: DoubleGeometricDistribution_1.DoubleGeometricDistribution,
73
+ ['0x000000007cA9919151b275FABEA64A4f557Aa1F6'.toLowerCase()]: CarpetedGeometricDistribution_1.CarpetedGeometricDistribution,
74
+ ['0x000000000b757686c9596caDA54fa28f8C429E0d'.toLowerCase()]: CarpetedDoubleGeometricDistribution_1.CarpetedDoubleGeometricDistribution,
75
+ },
76
+ hooklets: {
77
+ ['0x0000e819b8A536Cf8e5d70B9C49256911033000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.0
78
+ ['0x00eCE5a72612258f20eB24573C544f9dD8c5000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.1
79
+ },
80
+ subgraphURL: '3oawHiCt7L9wJTEY9DynwAEmoThy8bvRhuMZdaaAooqW',
81
+ },
82
+ [constants_1.Network.BSC]: {
83
+ poolManager: '0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF',
84
+ quoter: '0x9F75dD27D6664c475B90e105573E550ff69437B0',
85
+ router: '0x1906c1d672b88cD1B9aC7593301cA990F94Eae07',
86
+ bunniHub: '0x000000000049C7bcBCa294E63567b4D21EB765f1', // v1.2.1
87
+ floodPlain: '0x0000000000f0D1C07cA806aB9154199E2E627Ea6',
88
+ bunniHook: {
89
+ address: '0x000052423c1dB6B7ff8641b85A7eEfc7B2791888', // v1.2.1
90
+ deploymentBlock: 51294769n,
91
+ },
92
+ liquidityDensityFunctions: {
93
+ ['0x00000000d5248262c18C5a8c706B2a3E740B8760'.toLowerCase()]: UniformDistribution_1.UniformDistribution,
94
+ ['0x00000000B79037C909ff75dAFbA91b374bE2124f'.toLowerCase()]: GeometricDistribution_1.GeometricDistribution,
95
+ ['0x000000004a3e16323618D0E43e93b4DD64151eDB'.toLowerCase()]: DoubleGeometricDistribution_1.DoubleGeometricDistribution,
96
+ ['0x000000007cA9919151b275FABEA64A4f557Aa1F6'.toLowerCase()]: CarpetedGeometricDistribution_1.CarpetedGeometricDistribution,
97
+ ['0x000000000b757686c9596caDA54fa28f8C429E0d'.toLowerCase()]: CarpetedDoubleGeometricDistribution_1.CarpetedDoubleGeometricDistribution,
98
+ },
99
+ hooklets: {
100
+ ['0x0000e819b8A536Cf8e5d70B9C49256911033000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.0
101
+ ['0x00eCE5a72612258f20eB24573C544f9dD8c5000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.1
102
+ },
103
+ subgraphURL: 'FfnRstqDWGGevsbf9rRg1vNctrb38Hd791zzaaKc7AGz',
104
+ },
105
+ [constants_1.Network.UNICHAIN]: {
106
+ poolManager: '0x1F98400000000000000000000000000000000004',
107
+ quoter: '0x333E3C607B141b18fF6de9f258db6e77fE7491E0',
108
+ router: '0xEf740bf23aCaE26f6492B10de645D6B98dC8Eaf3',
109
+ bunniHub: '0x000000000049C7bcBCa294E63567b4D21EB765f1', // v1.2.1
110
+ floodPlain: '0x0000000000f0D1C07cA806aB9154199E2E627Ea6',
111
+ bunniHook: {
112
+ address: '0x000052423c1dB6B7ff8641b85A7eEfc7B2791888', // v1.2.1
113
+ deploymentBlock: 18937832n,
114
+ },
115
+ liquidityDensityFunctions: {
116
+ ['0x00000000d5248262c18C5a8c706B2a3E740B8760'.toLowerCase()]: UniformDistribution_1.UniformDistribution,
117
+ ['0x00000000B79037C909ff75dAFbA91b374bE2124f'.toLowerCase()]: GeometricDistribution_1.GeometricDistribution,
118
+ ['0x000000004a3e16323618D0E43e93b4DD64151eDB'.toLowerCase()]: DoubleGeometricDistribution_1.DoubleGeometricDistribution,
119
+ ['0x000000007cA9919151b275FABEA64A4f557Aa1F6'.toLowerCase()]: CarpetedGeometricDistribution_1.CarpetedGeometricDistribution,
120
+ ['0x000000000b757686c9596caDA54fa28f8C429E0d'.toLowerCase()]: CarpetedDoubleGeometricDistribution_1.CarpetedDoubleGeometricDistribution,
121
+ },
122
+ hooklets: {
123
+ ['0x0000e819b8A536Cf8e5d70B9C49256911033000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.0
124
+ ['0x00eCE5a72612258f20eB24573C544f9dD8c5000C'.toLowerCase()]: FeeOverrideHooklet_1.FeeOverrideHooklet, // v1.0.1
125
+ },
126
+ subgraphURL: 'J22JEPtqL847G44v7E5gTsxmNosoLtKQUDAvnhRhzj25',
127
+ },
128
+ },
129
+ };
130
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/bunni-v2/config.ts"],"names":[],"mappings":"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"}