@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,19 @@
1
+ import { BunniV2Data } from './types';
2
+ import { Address } from '../../types';
3
+ export declare enum Actions {
4
+ SWAP_EXACT_IN_SINGLE = 6,// 0x06 -> 6
5
+ SWAP_EXACT_IN = 7,// 0x07 -> 7
6
+ SWAP_EXACT_OUT_SINGLE = 8,// 0x08 -> 8
7
+ SWAP_EXACT_OUT = 9,// 0x09 -> 9
8
+ SETTLE = 11,// 0x0b -> 11
9
+ SETTLE_ALL = 12,// 0x0c -> 12
10
+ SETTLE_PAIR = 13,// 0x0d -> 13
11
+ TAKE = 14,// 0x0e -> 14
12
+ TAKE_ALL = 15,// 0x0f -> 15
13
+ TAKE_PORTION = 16,// 0x10 -> 16
14
+ TAKE_PAIR = 17
15
+ }
16
+ export declare function swapExactInputSingleCalldata(srcToken: Address, destToken: Address, data: BunniV2Data, amountIn: bigint, amountOutMinimum: bigint, recipient: Address, weth: Address): string;
17
+ export declare function swapExactInputCalldata(srcToken: Address, destToken: Address, data: BunniV2Data, amountIn: bigint, amountOutMinimum: bigint, recipient: Address, weth: Address): string;
18
+ export declare function swapExactOutputSingleCalldata(srcToken: Address, destToken: Address, data: BunniV2Data, amountIn: bigint, amountOut: bigint, recipient: Address, weth: Address): string;
19
+ export declare function swapExactOutputCalldata(srcToken: Address, destToken: Address, data: BunniV2Data, amountIn: bigint, amountOut: bigint, recipient: Address, weth: string): string;
@@ -9,55 +9,48 @@ exports.swapExactInputCalldata = swapExactInputCalldata;
9
9
  exports.swapExactOutputSingleCalldata = swapExactOutputSingleCalldata;
10
10
  exports.swapExactOutputCalldata = swapExactOutputCalldata;
11
11
  const ethers_1 = require("ethers");
12
- const router_abi_json_1 = __importDefault(require("../../abi/pancakeswap-infinity/router.abi.json"));
12
+ const router_abi_json_1 = __importDefault(require("../../abi/uniswap-v4/router.abi.json"));
13
13
  const abi_1 = require("@ethersproject/abi");
14
14
  const utils_1 = require("../../utils");
15
15
  const constants_1 = require("../../constants");
16
16
  const constants_2 = require("@paraswap/core/build/constants");
17
17
  const bigint_constants_1 = require("../../bigint-constants");
18
18
  const routerIface = new abi_1.Interface(router_abi_json_1.default);
19
- // PancakeSwap Infinity Universal Router commands
20
19
  var Commands;
21
20
  (function (Commands) {
21
+ Commands[Commands["PERMIT2_TRANSFER_FROM"] = 2] = "PERMIT2_TRANSFER_FROM";
22
22
  Commands[Commands["SWEEP"] = 4] = "SWEEP";
23
23
  Commands[Commands["WRAP_ETH"] = 11] = "WRAP_ETH";
24
24
  Commands[Commands["UNWRAP_WETH"] = 12] = "UNWRAP_WETH";
25
- Commands[Commands["V4_CL_SWAP"] = 16] = "V4_CL_SWAP";
25
+ Commands[Commands["V4_SWAP"] = 16] = "V4_SWAP";
26
26
  })(Commands || (Commands = {}));
27
- // CL swap action IDs (same as UniV4)
28
27
  var Actions;
29
28
  (function (Actions) {
29
+ // Swapping
30
30
  Actions[Actions["SWAP_EXACT_IN_SINGLE"] = 6] = "SWAP_EXACT_IN_SINGLE";
31
31
  Actions[Actions["SWAP_EXACT_IN"] = 7] = "SWAP_EXACT_IN";
32
32
  Actions[Actions["SWAP_EXACT_OUT_SINGLE"] = 8] = "SWAP_EXACT_OUT_SINGLE";
33
33
  Actions[Actions["SWAP_EXACT_OUT"] = 9] = "SWAP_EXACT_OUT";
34
+ // Settling (paying funds)
34
35
  Actions[Actions["SETTLE"] = 11] = "SETTLE";
35
36
  Actions[Actions["SETTLE_ALL"] = 12] = "SETTLE_ALL";
37
+ Actions[Actions["SETTLE_PAIR"] = 13] = "SETTLE_PAIR";
38
+ // Taking (receiving funds)
36
39
  Actions[Actions["TAKE"] = 14] = "TAKE";
37
40
  Actions[Actions["TAKE_ALL"] = 15] = "TAKE_ALL";
41
+ Actions[Actions["TAKE_PORTION"] = 16] = "TAKE_PORTION";
42
+ Actions[Actions["TAKE_PAIR"] = 17] = "TAKE_PAIR";
38
43
  })(Actions || (exports.Actions = Actions = {}));
39
44
  var ActionConstants;
40
45
  (function (ActionConstants) {
41
46
  ActionConstants[ActionConstants["OPEN_DELTA"] = 0] = "OPEN_DELTA";
47
+ // This value is equivalent to 1<<255, i.e. a singular 1 in the most significant bit.
42
48
  ActionConstants["CONTRACT_BALANCE"] = "57896044618658097711785492504343953926634992332820282019728792003956564819968";
49
+ // address(1)
43
50
  ActionConstants["MSG_SENDER"] = "0x0000000000000000000000000000000000000001";
51
+ // address(2)
44
52
  ActionConstants["ADDRESS_THIS"] = "0x0000000000000000000000000000000000000002";
45
53
  })(ActionConstants || (ActionConstants = {}));
46
- // ABI tuple for PancakeSwap Infinity PoolKey:
47
- // (address currency0, address currency1, address hooks, address poolManager, uint24 fee, bytes32 parameters)
48
- const POOL_KEY_TUPLE = '(address,address,address,address,uint24,bytes32)';
49
- // ABI tuple for PancakeSwap Infinity PathKey
50
- const PATH_KEY_TUPLE = '(address,uint24,address,address,bytes,bytes32)';
51
- function encodePoolKeyValues(poolKey) {
52
- return [
53
- poolKey.currency0,
54
- poolKey.currency1,
55
- poolKey.hooks,
56
- poolKey.poolManager,
57
- poolKey.fee,
58
- poolKey.parameters,
59
- ];
60
- }
61
54
  function encodeActions(actions) {
62
55
  const types = actions.map(() => 'uint8');
63
56
  return ethers_1.ethers.utils.solidityPack(types, actions);
@@ -79,42 +72,62 @@ function encodeInputForExecute(srcToken, destToken, data, side, amountIn, amount
79
72
  lastPool.tokenIn.toLowerCase() === constants_1.NULL_ADDRESS;
80
73
  const input = ethers_1.ethers.utils.defaultAbiCoder.encode(['bytes', 'bytes[]'], [encodedActions, encodedActionValues]);
81
74
  let types = ['uint8'];
82
- let commands = [Commands.V4_CL_SWAP];
75
+ let commands = [Commands.V4_SWAP];
83
76
  let inputs = [input];
77
+ // Wrap ETH on Router for WETH pool
84
78
  if (isEthSrc && isWethPoolForSrc) {
85
79
  types.unshift('uint8');
86
80
  commands.unshift(Commands.WRAP_ETH);
87
- inputs.unshift(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, ActionConstants.CONTRACT_BALANCE]));
81
+ const wrapInput = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, ActionConstants.CONTRACT_BALANCE]);
82
+ inputs.unshift(wrapInput);
88
83
  }
84
+ // Unwrap WETH on Router for ETH pool
89
85
  if (isWethSrc && isEthPoolForSrc) {
90
86
  types.unshift('uint8');
91
87
  commands.unshift(Commands.UNWRAP_WETH);
92
- inputs.unshift(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, 0]));
88
+ const unwrapInput = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'],
89
+ // as all available balance will be unwrapped, set minAmount to 0
90
+ [ActionConstants.ADDRESS_THIS, 0]);
91
+ inputs.unshift(unwrapInput);
93
92
  }
93
+ // Unwrap ETH on Router for WETH pool
94
94
  if (isEthDest && isWethPoolForDest) {
95
95
  types.push('uint8');
96
96
  commands.push(Commands.UNWRAP_WETH);
97
- inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [recipient, 0]));
97
+ const unwrapInput = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [recipient, 0]);
98
+ inputs.push(unwrapInput);
98
99
  }
100
+ // Wrap ETH on Router for ETH pool
99
101
  if (isWethDest && isEthPoolForDest) {
100
102
  types.push('uint8');
101
103
  commands.push(Commands.WRAP_ETH);
102
- inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [recipient, ActionConstants.CONTRACT_BALANCE]));
104
+ const wrapInput = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [recipient, ActionConstants.CONTRACT_BALANCE]);
105
+ inputs.push(wrapInput);
103
106
  }
107
+ // take srcToken leftovers after BUY
104
108
  if (side === constants_2.SwapSide.BUY) {
109
+ // unwrap if src token was wrapped
105
110
  if (isEthSrc && isWethPoolForSrc) {
106
111
  types.push('uint8');
107
112
  commands.push(Commands.UNWRAP_WETH);
108
- inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, 0]));
113
+ const unwrapInput = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'],
114
+ // as all available balance will be unwrapped, set minAmount to 0
115
+ [ActionConstants.ADDRESS_THIS, 0]);
116
+ inputs.push(unwrapInput);
109
117
  }
118
+ // wrap if src token was unwrapped
110
119
  if (isWethSrc && isEthPoolForSrc) {
111
120
  types.push('uint8');
112
121
  commands.push(Commands.WRAP_ETH);
113
- inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, ActionConstants.CONTRACT_BALANCE]));
122
+ const wrapInput = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, ActionConstants.CONTRACT_BALANCE]);
123
+ inputs.push(wrapInput);
114
124
  }
115
125
  types.push('uint8');
116
126
  commands.push(Commands.SWEEP);
117
- inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address', 'uint256'], [(0, utils_1.isETHAddress)(srcToken) ? constants_1.NULL_ADDRESS : srcToken, recipient, 0]));
127
+ const sweepInput = ethers_1.ethers.utils.defaultAbiCoder.encode(
128
+ // token, recipient, minAmount
129
+ ['address', 'address', 'uint256'], [(0, utils_1.isETHAddress)(srcToken) ? constants_1.NULL_ADDRESS : srcToken, recipient, 0]);
130
+ inputs.push(sweepInput);
118
131
  }
119
132
  const command = ethers_1.ethers.utils.solidityPack(types, commands);
120
133
  return routerIface.encodeFunctionData('execute(bytes,bytes[])', [
@@ -130,15 +143,18 @@ function encodeSettle(srcToken, data, wethAddr) {
130
143
  firstPool.tokenOut.toLowerCase() === wethAddr;
131
144
  const isEthPool = firstPool.tokenIn.toLowerCase() === constants_1.NULL_ADDRESS ||
132
145
  firstPool.tokenOut.toLowerCase() === constants_1.NULL_ADDRESS;
133
- return ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256', 'bool'], [
146
+ const settle = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256', 'bool'],
147
+ // srcToken, amountIn (`OPEN_DELTA` to settle all needed funds), takeFundsFromMsgSender (Executor in our case)
148
+ [
134
149
  isEthSrc && isWethPool
135
150
  ? wethAddr
136
151
  : (isEthSrc && isEthPool) || (isWethSrc && isEthPool)
137
152
  ? constants_1.NULL_ADDRESS
138
153
  : srcToken,
139
154
  ActionConstants.OPEN_DELTA,
140
- false,
155
+ false, // we rely on srcToken transfer before swap, so no need to take funds from msg.sender
141
156
  ]);
157
+ return settle;
142
158
  }
143
159
  function encodeTake(destToken, data, recipient, wethAddr) {
144
160
  const isEthDest = (0, utils_1.isETHAddress)(destToken);
@@ -148,7 +164,9 @@ function encodeTake(destToken, data, recipient, wethAddr) {
148
164
  lastPool.tokenIn.toLowerCase() === wethAddr;
149
165
  const isEthPool = lastPool.tokenOut.toLowerCase() === constants_1.NULL_ADDRESS ||
150
166
  lastPool.tokenIn.toLowerCase() === constants_1.NULL_ADDRESS;
151
- return ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address', 'uint256'], [
167
+ const take = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address', 'uint256'],
168
+ // destToken, recipient, amountOut (`OPEN_DELTA` to take all funds)
169
+ [
152
170
  isEthDest && isWethPool
153
171
  ? wethAddr
154
172
  : (isWethDest && isEthPool) || (isEthDest && isEthPool)
@@ -159,7 +177,9 @@ function encodeTake(destToken, data, recipient, wethAddr) {
159
177
  : recipient,
160
178
  ActionConstants.OPEN_DELTA,
161
179
  ]);
180
+ return take;
162
181
  }
182
+ // Single hop encoding for SELL side
163
183
  function swapExactInputSingleCalldata(srcToken, destToken, data, amountIn, amountOutMinimum, recipient, weth) {
164
184
  const path = data.path[0];
165
185
  const poolKey = path.pool.key;
@@ -168,60 +188,106 @@ function swapExactInputSingleCalldata(srcToken, destToken, data, amountIn, amoun
168
188
  Actions.SETTLE,
169
189
  Actions.TAKE,
170
190
  ]);
191
+ const exactInputSingleParams = {
192
+ poolKey,
193
+ zeroForOne: path.zeroForOne,
194
+ amountIn,
195
+ amountOutMinimum,
196
+ hookData: '0x', // empty bytes
197
+ };
198
+ // encode SWAP_EXACT_IN_SINGLE
171
199
  const swap = ethers_1.ethers.utils.defaultAbiCoder.encode([
172
- `tuple(${POOL_KEY_TUPLE} poolKey, bool zeroForOne, uint128 amountIn, uint128 amountOutMinimum, bytes hookData)`,
200
+ /*
201
+ ExactInputSingleParams {
202
+ PoolKey poolKey;
203
+ bool zeroForOne;
204
+ uint128 amountIn;
205
+ uint128 amountOutMinimum;
206
+ bytes hookData;
207
+ }
208
+ */
209
+ 'tuple((address,address,uint24,int24,address) poolKey, bool zeroForOne, uint128 amountIn, uint128 amountOutMinimum, bytes hookData)',
173
210
  ], [
174
211
  [
175
- encodePoolKeyValues(poolKey),
176
- path.zeroForOne,
177
- amountIn,
178
- amountOutMinimum,
179
- '0x',
212
+ [
213
+ poolKey.currency0,
214
+ poolKey.currency1,
215
+ poolKey.fee,
216
+ poolKey.tickSpacing,
217
+ poolKey.hooks,
218
+ ],
219
+ exactInputSingleParams.zeroForOne,
220
+ exactInputSingleParams.amountIn,
221
+ exactInputSingleParams.amountOutMinimum,
222
+ exactInputSingleParams.hookData,
180
223
  ],
181
224
  ]);
182
225
  const settle = encodeSettle(srcToken, data, weth);
183
226
  const take = encodeTake(destToken, data, recipient, weth);
184
227
  return encodeInputForExecute(srcToken, destToken, data, constants_2.SwapSide.SELL, amountIn, amountOutMinimum, recipient, actions, [swap, settle, take], weth);
185
228
  }
229
+ // Multi-hop encoding for SELL side
186
230
  function swapExactInputCalldata(srcToken, destToken, data, amountIn, amountOutMinimum, recipient, weth) {
187
231
  const actions = encodeActions([
188
232
  Actions.SWAP_EXACT_IN,
189
233
  Actions.SETTLE,
190
234
  Actions.TAKE,
191
235
  ]);
192
- const pathKeys = data.path.map(p => ({
193
- intermediateCurrency: (0, utils_1.isETHAddress)(p.tokenOut)
236
+ const exactInputParams = {
237
+ currencyIn: (0, utils_1.isETHAddress)(data.path[0].tokenIn)
194
238
  ? constants_1.NULL_ADDRESS
195
- : p.tokenOut,
196
- fee: BigInt(p.pool.key.fee),
197
- hooks: p.pool.key.hooks,
198
- poolManager: p.pool.key.poolManager,
199
- hookData: '0x',
200
- parameters: p.pool.key.parameters,
201
- }));
239
+ : data.path[0].tokenIn,
240
+ amountIn,
241
+ amountOutMinimum,
242
+ path: data.path.map(path => ({
243
+ intermediateCurrency: (0, utils_1.isETHAddress)(path.tokenOut)
244
+ ? constants_1.NULL_ADDRESS
245
+ : path.tokenOut,
246
+ fee: BigInt(path.pool.key.fee),
247
+ tickSpacing: BigInt(path.pool.key.tickSpacing),
248
+ hooks: path.pool.key.hooks,
249
+ hookData: '0x',
250
+ })),
251
+ };
252
+ // encode SWAP_EXACT_IN
202
253
  const swap = ethers_1.ethers.utils.defaultAbiCoder.encode([
203
- `tuple(address currencyIn, ${PATH_KEY_TUPLE}[] path, uint128 amountIn, uint128 amountOutMinimum)`,
254
+ /*
255
+ PathKey {
256
+ Currency intermediateCurrency;
257
+ uint24 fee;
258
+ int24 tickSpacing;
259
+ IHooks hooks;
260
+ bytes hookData;
261
+ }
262
+ ExactInputParams {
263
+ address currencyIn;
264
+ PathKey[] path;
265
+ uint128 amountIn;
266
+ uint128 amountOutMinimum;
267
+ }
268
+ */
269
+ 'tuple(address currencyIn, (address,uint24,int24,address,bytes)[] path, uint128 amountIn, uint128 amountOutMinimum)',
204
270
  ], [
205
271
  {
206
- currencyIn: (0, utils_1.isETHAddress)(data.path[0].tokenIn)
207
- ? constants_1.NULL_ADDRESS
208
- : data.path[0].tokenIn,
209
- path: pathKeys.map(pk => [
210
- pk.intermediateCurrency,
211
- pk.fee,
212
- pk.hooks,
213
- pk.poolManager,
214
- pk.hookData,
215
- pk.parameters,
216
- ]),
217
- amountIn,
218
- amountOutMinimum,
272
+ currencyIn: exactInputParams.currencyIn,
273
+ path: exactInputParams.path.map(pathKey => {
274
+ return [
275
+ pathKey.intermediateCurrency,
276
+ pathKey.fee,
277
+ pathKey.tickSpacing,
278
+ pathKey.hooks,
279
+ pathKey.hookData,
280
+ ];
281
+ }),
282
+ amountIn: exactInputParams.amountIn,
283
+ amountOutMinimum: exactInputParams.amountOutMinimum,
219
284
  },
220
285
  ]);
221
286
  const settle = encodeSettle(srcToken, data, weth);
222
287
  const take = encodeTake(destToken, data, recipient, weth);
223
288
  return encodeInputForExecute(srcToken, destToken, data, constants_2.SwapSide.SELL, amountIn, amountOutMinimum, recipient, actions, [swap, settle, take], weth);
224
289
  }
290
+ // Single hop encoding for BUY side
225
291
  function swapExactOutputSingleCalldata(srcToken, destToken, data, amountIn, amountOut, recipient, weth) {
226
292
  const path = data.path[0];
227
293
  const poolKey = path.pool.key;
@@ -231,21 +297,45 @@ function swapExactOutputSingleCalldata(srcToken, destToken, data, amountIn, amou
231
297
  Actions.SETTLE,
232
298
  Actions.TAKE,
233
299
  ]);
300
+ const exactOutputSingleParams = {
301
+ poolKey,
302
+ zeroForOne: path.zeroForOne,
303
+ amountOut,
304
+ amountInMaximum,
305
+ hookData: '0x', // empty bytes
306
+ };
307
+ // encode SWAP_EXACT_OUTPUT_SINGLE
234
308
  const swap = ethers_1.ethers.utils.defaultAbiCoder.encode([
235
- `tuple(${POOL_KEY_TUPLE} poolKey, bool zeroForOne, uint128 amountOut, uint128 amountInMaximum, bytes hookData)`,
309
+ /*
310
+ ExactOutputSingleParams {
311
+ PoolKey poolKey;
312
+ bool zeroForOne;
313
+ uint128 amountOut;
314
+ uint128 amountInMaximum;
315
+ bytes hookData;
316
+ }
317
+ */
318
+ 'tuple((address,address,uint24,int24,address) poolKey, bool zeroForOne, uint128 amountOut, uint128 amountInMaximum, bytes hookData)',
236
319
  ], [
237
320
  [
238
- encodePoolKeyValues(poolKey),
239
- path.zeroForOne,
240
- amountOut,
241
- amountInMaximum,
242
- '0x',
321
+ [
322
+ poolKey.currency0,
323
+ poolKey.currency1,
324
+ poolKey.fee,
325
+ poolKey.tickSpacing,
326
+ poolKey.hooks,
327
+ ],
328
+ exactOutputSingleParams.zeroForOne,
329
+ exactOutputSingleParams.amountOut,
330
+ exactOutputSingleParams.amountInMaximum,
331
+ exactOutputSingleParams.hookData,
243
332
  ],
244
333
  ]);
245
334
  const settle = encodeSettle(srcToken, data, weth);
246
335
  const take = encodeTake(destToken, data, recipient, weth);
247
336
  return encodeInputForExecute(srcToken, destToken, data, constants_2.SwapSide.BUY, amountIn, amountOut, recipient, actions, [swap, settle, take], weth);
248
337
  }
338
+ // Multi-hop encoding for SELL side
249
339
  function swapExactOutputCalldata(srcToken, destToken, data, amountIn, amountOut, recipient, weth) {
250
340
  const actions = encodeActions([
251
341
  Actions.SWAP_EXACT_OUT,
@@ -253,33 +343,54 @@ function swapExactOutputCalldata(srcToken, destToken, data, amountIn, amountOut,
253
343
  Actions.TAKE,
254
344
  ]);
255
345
  const amountInMaximum = bigint_constants_1.BI_MAX_UINT128;
256
- const pathKeys = data.path.map(p => ({
257
- intermediateCurrency: (0, utils_1.isETHAddress)(p.tokenIn)
346
+ const exactOutputParams = {
347
+ currencyOut: (0, utils_1.isETHAddress)(data.path[data.path.length - 1].tokenOut)
258
348
  ? constants_1.NULL_ADDRESS
259
- : p.tokenIn,
260
- fee: BigInt(p.pool.key.fee),
261
- hooks: p.pool.key.hooks,
262
- poolManager: p.pool.key.poolManager,
263
- hookData: '0x',
264
- parameters: p.pool.key.parameters,
265
- }));
349
+ : data.path[data.path.length - 1].tokenOut,
350
+ amountOut,
351
+ amountInMaximum,
352
+ path: data.path.map(path => ({
353
+ intermediateCurrency: (0, utils_1.isETHAddress)(path.tokenIn)
354
+ ? constants_1.NULL_ADDRESS
355
+ : path.tokenIn,
356
+ fee: BigInt(path.pool.key.fee),
357
+ tickSpacing: BigInt(path.pool.key.tickSpacing),
358
+ hooks: path.pool.key.hooks,
359
+ hookData: '0x',
360
+ })),
361
+ };
362
+ // encode SWAP_EXACT_OUTPUT
266
363
  const swap = ethers_1.ethers.utils.defaultAbiCoder.encode([
267
- `tuple(address currencyOut, ${PATH_KEY_TUPLE}[] path, uint128 amountOut, uint128 amountInMaximum)`,
364
+ /*
365
+ PathKey {
366
+ Currency intermediateCurrency;
367
+ uint24 fee;
368
+ int24 tickSpacing;
369
+ IHooks hooks;
370
+ bytes hookData;
371
+ }
372
+ ExactOutputParams {
373
+ address currencyOut;
374
+ PathKey[] path;
375
+ uint128 amountOut;
376
+ uint128 amountInMaximum;
377
+ }
378
+ */
379
+ 'tuple(address currencyOut, (address,uint24,int24,address,bytes)[] path, uint128 amountOut, uint128 amountInMaximum)',
268
380
  ], [
269
381
  {
270
- currencyOut: (0, utils_1.isETHAddress)(data.path[data.path.length - 1].tokenOut)
271
- ? constants_1.NULL_ADDRESS
272
- : data.path[data.path.length - 1].tokenOut,
273
- path: pathKeys.map(pk => [
274
- pk.intermediateCurrency,
275
- pk.fee,
276
- pk.hooks,
277
- pk.poolManager,
278
- pk.hookData,
279
- pk.parameters,
280
- ]),
281
- amountOut,
282
- amountInMaximum,
382
+ currencyOut: exactOutputParams.currencyOut,
383
+ path: exactOutputParams.path.map(pathKey => {
384
+ return [
385
+ pathKey.intermediateCurrency,
386
+ pathKey.fee,
387
+ pathKey.tickSpacing,
388
+ pathKey.hooks,
389
+ pathKey.hookData,
390
+ ];
391
+ }),
392
+ amountOut: exactOutputParams.amountOut,
393
+ amountInMaximum: exactOutputParams.amountInMaximum,
283
394
  },
284
395
  ]);
285
396
  const settle = encodeSettle(srcToken, data, weth);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../src/dex/bunni-v2/encoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { IDexHelper } from '../../dex-helper';
3
+ import { DexParams, PoolState, ProtocolState } from './types';
4
+ export declare function generateOnChainState(poolStates: PoolState[], blockNumber: number, bunniHubInterface: Interface, bunniHookInterface: Interface, bunniTokenInterface: Interface, feeOverrideHookletInterface: Interface, dexHelper: IDexHelper, config: DexParams): Promise<void>;
5
+ export declare function updateStateAfterNewBunni(state: PoolState, blockNumber: number, bunniHubInterface: Interface, bunniHookInterface: Interface, bunniTokenInterface: Interface, dexHelper: IDexHelper): Promise<void>;
6
+ export declare function updateStateAfterDeposit(state: PoolState, blockNumber: number, bunniHubInterface: Interface, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
7
+ export declare function updateStateAfterWithdraw(state: PoolState, blockNumber: number, bunniHubInterface: Interface, dexHelper: IDexHelper): Promise<void>;
8
+ export declare function updateStateAfterSwap(state: PoolState, blockNumber: number, bunniHubInterface: Interface, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
9
+ export declare function updateStateAfterOrderFulfilled(states: PoolState[], blockNumber: number, bunniHubInterface: Interface, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
10
+ export declare function updateHubState(poolStates: PoolState[], blockNumber: number, bunniHubInterface: Interface, dexHelper: IDexHelper): Promise<void>;
11
+ export declare function updateHookState(poolStates: PoolState[], blockNumber: number, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
12
+ export declare function updateSlot0(poolStates: PoolState[], blockNumber: number, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
13
+ export declare function updateLdfState(poolStates: PoolState[], blockNumber: number, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
14
+ export declare function updateVaultSharePricesAtLastSwap(poolStates: PoolState[], blockNumber: number, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
15
+ export declare function updateCuratorFees(poolStates: PoolState[], blockNumber: number, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
16
+ export declare function updateTopBid(poolStates: PoolState[], blockNumber: number, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
17
+ export declare function updateNextBid(poolStates: PoolState[], blockNumber: number, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
18
+ export declare function updateTotalSupply(poolStates: PoolState[], blockNumber: number, bunniTokenInterface: Interface, dexHelper: IDexHelper): Promise<void>;
19
+ export declare function updateObservations(poolStates: PoolState[], blockNumber: number, bunniHookInterface: Interface, dexHelper: IDexHelper): Promise<void>;
20
+ export declare function updateFeeOverrides(poolStates: PoolState[], blockNumber: number, feeOverrideHookletInterface: Interface, dexHelper: IDexHelper, config: DexParams): Promise<void>;
21
+ export declare function updatePoolTotalValueLocked(state: ProtocolState, dexHelper: IDexHelper): Promise<void>;
22
+ export declare function updateVaultSharePrices(state: ProtocolState, dexHelper: IDexHelper): Promise<void>;
23
+ export declare function ERC4626_previewDeposit(amount: bigint, vault: string, blockNumber: bigint, dexHelper: IDexHelper): Promise<bigint>;
24
+ export declare function ERC4626_previewWithdraw(amount: bigint, vault: string, blockNumber: bigint, dexHelper: IDexHelper): Promise<bigint>;
25
+ export declare function ERC4626_previewRedeem(amount: bigint, vault: string, blockNumber: bigint, dexHelper: IDexHelper): Promise<bigint>;
26
+ export declare function ERC4626_maxDeposit(account: string, vault: string, blockNumber: bigint, dexHelper: IDexHelper): Promise<bigint>;