@paraswap/dex-lib 4.1.23 → 4.1.24-uni-v4.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 (340) hide show
  1. package/build/abi/integral/factory.json +333 -0
  2. package/build/abi/{angle-transmuter/ChainlinkEACAggregatorProxy.json → integral/oracle.json} +239 -247
  3. package/build/abi/{curve-v1/StableSwapUSDN.json → integral/pool.json} +487 -450
  4. package/build/abi/{RamsesV2Pool.abi.json → integral/relayer.json} +833 -851
  5. package/build/abi/uniswap-v4/pool-manager.abi.json +1367 -0
  6. package/build/abi/uniswap-v4/quoter.abi.json +461 -0
  7. package/build/abi/uniswap-v4/router.abi.json +230 -0
  8. package/build/abi/uniswap-v4/state-view.abi.json +365 -0
  9. package/build/dex/aave-v1/aave-v1.d.ts +1 -2
  10. package/build/dex/aave-v1/aave-v1.js +0 -22
  11. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  12. package/build/dex/bProtocol.d.ts +18 -0
  13. package/build/dex/bProtocol.js +39 -0
  14. package/build/dex/bProtocol.js.map +1 -0
  15. package/build/dex/bancor.d.ts +26 -0
  16. package/build/dex/bancor.js +58 -0
  17. package/build/dex/bancor.js.map +1 -0
  18. package/build/dex/compound.d.ts +18 -0
  19. package/build/dex/compound.js +46 -0
  20. package/build/dex/compound.js.map +1 -0
  21. package/build/dex/curve-v2.d.ts +58 -0
  22. package/build/dex/curve-v2.js +180 -0
  23. package/build/dex/curve-v2.js.map +1 -0
  24. package/build/dex/dodo-v1.d.ts +33 -0
  25. package/build/dex/dodo-v1.js +63 -0
  26. package/build/dex/dodo-v1.js.map +1 -0
  27. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +49 -0
  28. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +104 -0
  29. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +1 -0
  30. package/build/dex/index.js +2 -0
  31. package/build/dex/index.js.map +1 -1
  32. package/build/dex/integral/config.d.ts +4 -0
  33. package/build/dex/integral/config.js +20 -0
  34. package/build/dex/integral/config.js.map +1 -0
  35. package/build/dex/integral/context.d.ts +40 -0
  36. package/build/dex/integral/context.js +158 -0
  37. package/build/dex/integral/context.js.map +1 -0
  38. package/build/dex/integral/integral-factory.d.ts +24 -0
  39. package/build/dex/integral/integral-factory.js +95 -0
  40. package/build/dex/integral/integral-factory.js.map +1 -0
  41. package/build/dex/integral/integral-pool.d.ts +50 -0
  42. package/build/dex/integral/integral-pool.js +149 -0
  43. package/build/dex/integral/integral-pool.js.map +1 -0
  44. package/build/dex/integral/integral-pricing.d.ts +18 -0
  45. package/build/dex/integral/integral-pricing.js +114 -0
  46. package/build/dex/integral/integral-pricing.js.map +1 -0
  47. package/build/dex/integral/integral-relayer.d.ts +42 -0
  48. package/build/dex/integral/integral-relayer.js +192 -0
  49. package/build/dex/integral/integral-relayer.js.map +1 -0
  50. package/build/dex/integral/integral-token.d.ts +27 -0
  51. package/build/dex/integral/integral-token.js +59 -0
  52. package/build/dex/integral/integral-token.js.map +1 -0
  53. package/build/dex/{inception/inception-native.d.ts → integral/integral.d.ts} +19 -21
  54. package/build/dex/integral/integral.js +376 -0
  55. package/build/dex/integral/integral.js.map +1 -0
  56. package/build/dex/integral/types.d.ts +85 -0
  57. package/build/dex/integral/types.js +9 -0
  58. package/build/dex/integral/types.js.map +1 -0
  59. package/build/dex/integral/utils-e2e.d.ts +9 -0
  60. package/build/dex/integral/utils-e2e.js +131 -0
  61. package/build/dex/integral/utils-e2e.js.map +1 -0
  62. package/build/dex/integral/utils.d.ts +17 -0
  63. package/build/dex/integral/utils.js +94 -0
  64. package/build/dex/integral/utils.js.map +1 -0
  65. package/build/dex/jarvis.d.ts +1 -2
  66. package/build/dex/jarvis.js +0 -58
  67. package/build/dex/jarvis.js.map +1 -1
  68. package/build/dex/lido.d.ts +19 -0
  69. package/build/dex/lido.js +42 -0
  70. package/build/dex/lido.js.map +1 -0
  71. package/build/dex/m-token/config.d.ts +3 -0
  72. package/build/dex/m-token/config.js +19 -0
  73. package/build/dex/m-token/config.js.map +1 -0
  74. package/build/dex/m-token/m-token.d.ts +29 -0
  75. package/build/dex/m-token/m-token.js +145 -0
  76. package/build/dex/m-token/m-token.js.map +1 -0
  77. package/build/dex/m-token/m-wrapped-m.d.ts +17 -0
  78. package/build/dex/m-token/m-wrapped-m.js +50 -0
  79. package/build/dex/m-token/m-wrapped-m.js.map +1 -0
  80. package/build/dex/m-token/types.d.ts +12 -0
  81. package/build/dex/{inception → m-token}/types.js.map +1 -1
  82. package/build/dex/onebit.d.ts +25 -0
  83. package/build/dex/onebit.js +42 -0
  84. package/build/dex/onebit.js.map +1 -0
  85. package/build/dex/platypus/platypus.d.ts +1 -2
  86. package/build/dex/platypus/platypus.js +0 -31
  87. package/build/dex/platypus/platypus.js.map +1 -1
  88. package/build/dex/smoothy.d.ts +26 -0
  89. package/build/dex/smoothy.js +48 -0
  90. package/build/dex/smoothy.js.map +1 -0
  91. package/build/dex/spark/susds-psm.d.ts +49 -0
  92. package/build/dex/spark/susds-psm.js +245 -0
  93. package/build/dex/spark/susds-psm.js.map +1 -0
  94. package/build/dex/stable-pool.d.ts +28 -0
  95. package/build/dex/stable-pool.js +62 -0
  96. package/build/dex/stable-pool.js.map +1 -0
  97. package/build/dex/swaap-v1/swaap-v1.d.ts +1 -2
  98. package/build/dex/swaap-v1/swaap-v1.js +0 -10
  99. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  100. package/build/dex/trader-joe-v2.1/optimizer.d.ts +2 -0
  101. package/build/dex/trader-joe-v2.1/optimizer.js +47 -0
  102. package/build/dex/trader-joe-v2.1/optimizer.js.map +1 -0
  103. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +7 -0
  104. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +20 -0
  105. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +1 -0
  106. package/build/dex/trader-joe-v2.1.d.ts +43 -0
  107. package/build/dex/trader-joe-v2.1.js +79 -0
  108. package/build/dex/trader-joe-v2.1.js.map +1 -0
  109. package/build/dex/uniswap-v4/config.d.ts +3 -0
  110. package/build/dex/uniswap-v4/config.js +58 -0
  111. package/build/dex/uniswap-v4/config.js.map +1 -0
  112. package/build/dex/uniswap-v4/constants.d.ts +9 -0
  113. package/build/dex/uniswap-v4/constants.js +18 -0
  114. package/build/dex/uniswap-v4/constants.js.map +1 -0
  115. package/build/dex/uniswap-v4/contract-math/BalanceDelta.d.ts +6 -0
  116. package/build/dex/uniswap-v4/contract-math/BalanceDelta.js +22 -0
  117. package/build/dex/uniswap-v4/contract-math/BalanceDelta.js.map +1 -0
  118. package/build/dex/uniswap-v4/contract-math/BitMath.d.ts +4 -0
  119. package/build/dex/uniswap-v4/contract-math/BitMath.js +53 -0
  120. package/build/dex/uniswap-v4/contract-math/BitMath.js.map +1 -0
  121. package/build/dex/uniswap-v4/contract-math/FixedPoint128.d.ts +3 -0
  122. package/build/dex/uniswap-v4/contract-math/FixedPoint128.js +8 -0
  123. package/build/dex/uniswap-v4/contract-math/FixedPoint128.js.map +1 -0
  124. package/build/dex/uniswap-v4/contract-math/FixedPoint96.d.ts +4 -0
  125. package/build/dex/uniswap-v4/contract-math/FixedPoint96.js +9 -0
  126. package/build/dex/uniswap-v4/contract-math/FixedPoint96.js.map +1 -0
  127. package/build/dex/uniswap-v4/contract-math/FullMath.d.ts +4 -0
  128. package/build/dex/uniswap-v4/contract-math/FullMath.js +20 -0
  129. package/build/dex/uniswap-v4/contract-math/FullMath.js.map +1 -0
  130. package/build/dex/uniswap-v4/contract-math/LPFeeLibrary.d.ts +13 -0
  131. package/build/dex/uniswap-v4/contract-math/LPFeeLibrary.js +35 -0
  132. package/build/dex/uniswap-v4/contract-math/LPFeeLibrary.js.map +1 -0
  133. package/build/dex/uniswap-v4/contract-math/LiquidityMath.d.ts +3 -0
  134. package/build/dex/uniswap-v4/contract-math/LiquidityMath.js +16 -0
  135. package/build/dex/uniswap-v4/contract-math/LiquidityMath.js.map +1 -0
  136. package/build/dex/uniswap-v4/contract-math/Position.d.ts +9 -0
  137. package/build/dex/uniswap-v4/contract-math/Position.js +39 -0
  138. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -0
  139. package/build/dex/uniswap-v4/contract-math/ProtocolFeeLibrary.d.ts +10 -0
  140. package/build/dex/uniswap-v4/contract-math/ProtocolFeeLibrary.js +28 -0
  141. package/build/dex/uniswap-v4/contract-math/ProtocolFeeLibrary.js.map +1 -0
  142. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.d.ts +8 -0
  143. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.js +67 -0
  144. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.js.map +1 -0
  145. package/build/dex/uniswap-v4/contract-math/SwapMath.d.ts +10 -0
  146. package/build/dex/uniswap-v4/contract-math/SwapMath.js +63 -0
  147. package/build/dex/uniswap-v4/contract-math/SwapMath.js.map +1 -0
  148. package/build/dex/uniswap-v4/contract-math/Tick.d.ts +10 -0
  149. package/build/dex/uniswap-v4/contract-math/Tick.js +64 -0
  150. package/build/dex/uniswap-v4/contract-math/Tick.js.map +1 -0
  151. package/build/dex/uniswap-v4/contract-math/TickBitMap.d.ts +9 -0
  152. package/build/dex/uniswap-v4/contract-math/TickBitMap.js +64 -0
  153. package/build/dex/uniswap-v4/contract-math/TickBitMap.js.map +1 -0
  154. package/build/dex/uniswap-v4/contract-math/TickMath.d.ts +9 -0
  155. package/build/dex/uniswap-v4/contract-math/TickMath.js +83 -0
  156. package/build/dex/uniswap-v4/contract-math/TickMath.js.map +1 -0
  157. package/build/dex/uniswap-v4/contract-math/UnsafeMath.d.ts +4 -0
  158. package/build/dex/uniswap-v4/contract-math/UnsafeMath.js +17 -0
  159. package/build/dex/uniswap-v4/contract-math/UnsafeMath.js.map +1 -0
  160. package/build/dex/uniswap-v4/contract-math/uniswap-v4-math.d.ts +8 -0
  161. package/build/dex/uniswap-v4/contract-math/uniswap-v4-math.js +11 -0
  162. package/build/dex/uniswap-v4/contract-math/uniswap-v4-math.js.map +1 -0
  163. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.d.ts +29 -0
  164. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js +419 -0
  165. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js.map +1 -0
  166. package/build/dex/uniswap-v4/contract-math/utils.d.ts +3 -0
  167. package/build/dex/uniswap-v4/contract-math/utils.js +15 -0
  168. package/build/dex/uniswap-v4/contract-math/utils.js.map +1 -0
  169. package/build/dex/uniswap-v4/encoder.d.ts +17 -0
  170. package/build/dex/uniswap-v4/encoder.js +160 -0
  171. package/build/dex/uniswap-v4/encoder.js.map +1 -0
  172. package/build/dex/uniswap-v4/subgraph.d.ts +7 -0
  173. package/build/dex/uniswap-v4/subgraph.js +122 -0
  174. package/build/dex/uniswap-v4/subgraph.js.map +1 -0
  175. package/build/dex/uniswap-v4/types.d.ts +92 -0
  176. package/build/dex/uniswap-v4/types.js +3 -0
  177. package/build/dex/uniswap-v4/types.js.map +1 -0
  178. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +31 -0
  179. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +135 -0
  180. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -0
  181. package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +40 -0
  182. package/build/dex/uniswap-v4/uniswap-v4-pool.js +343 -0
  183. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -0
  184. package/build/dex/uniswap-v4/uniswap-v4.d.ts +41 -0
  185. package/build/dex/uniswap-v4/uniswap-v4.js +205 -0
  186. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -0
  187. package/build/dex/uniswap-v4/utils.d.ts +2 -0
  188. package/build/dex/uniswap-v4/utils.js +15 -0
  189. package/build/dex/uniswap-v4/utils.js.map +1 -0
  190. package/build/dex/zerox/index.d.ts +26 -4
  191. package/build/dex/zerox/index.js +42 -50
  192. package/build/dex/zerox/index.js.map +1 -1
  193. package/build/dex/zerox/types.d.ts +0 -29
  194. package/build/dex/zerox/types.js +1 -8
  195. package/build/dex/zerox/types.js.map +1 -1
  196. package/package.json +1 -1
  197. package/build/abi/Aave_GSM.json +0 -751
  198. package/build/abi/Balancer.json +0 -257
  199. package/build/abi/BalancerV2.json +0 -1179
  200. package/build/abi/RamsesV2Quoter.abi.json +0 -274
  201. package/build/abi/USDM.json +0 -807
  202. package/build/abi/UniswapV2Router.json +0 -397
  203. package/build/abi/angle-transmuter/ChainlinkAccessControlledOffchainAggregator.json +0 -1246
  204. package/build/abi/curve-v1/CurveBUSDv2.abi.json +0 -1356
  205. package/build/abi/curve-v1/CurveTokenV1.json +0 -305
  206. package/build/abi/curve-v1/CurveTokenV2.json +0 -318
  207. package/build/abi/curve-v1/CurveV1StableNg.json +0 -1452
  208. package/build/abi/curve-v1/CurveV2Swap.json +0 -700
  209. package/build/abi/curve-v1/FactoryCryptoRegistry.json +0 -316
  210. package/build/abi/curve-v1/FactoryRegistry.json +0 -508
  211. package/build/abi/curve-v1/StableSwapAave.json +0 -1152
  212. package/build/abi/curve-v1/StableSwapBUSD.json +0 -814
  213. package/build/abi/curve-v1/StableSwapCompound.json +0 -814
  214. package/build/abi/curve-v1/StableSwapIDLE.json +0 -1253
  215. package/build/abi/curve-v1/StableSwapPax.json +0 -865
  216. package/build/abi/curve-v1/StableSwapSnow.json +0 -900
  217. package/build/abi/curve-v1/StableSwapUSDT.json +0 -814
  218. package/build/abi/curve-v1/StableSwapY.json +0 -814
  219. package/build/abi/inception/inception-ineth-pool.json +0 -1062
  220. package/build/abi/inception/inception-ineth.json +0 -609
  221. package/build/abi/inception/inception-ratio-feed.json +0 -329
  222. package/build/abi/inception/inception-vault.json +0 -991
  223. package/build/abi/kyberdmm/kyber-storage.abi.json +0 -824
  224. package/build/abi/kyberdmm.abi.json +0 -1148
  225. package/build/abi/maverick-v2/MaverickV2Quoter.json +0 -278
  226. package/build/abi/nerve/nerve-metapool.json +0 -790
  227. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  228. package/build/abi/velodrome-slipstream/VelodromeSlipstreamQuoterV2.abi.json +0 -267
  229. package/build/dex/balancer-v1/balancer-pools.json +0 -33333
  230. package/build/dex/bebop/websocket-fetcher.d.ts +0 -35
  231. package/build/dex/bebop/websocket-fetcher.js +0 -87
  232. package/build/dex/bebop/websocket-fetcher.js.map +0 -1
  233. package/build/dex/idle-dao/idle-dao-pool.d.ts +0 -56
  234. package/build/dex/idle-dao/idle-dao-pool.js +0 -176
  235. package/build/dex/idle-dao/idle-dao-pool.js.map +0 -1
  236. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +0 -16
  237. package/build/dex/idle-dao/idle-dao-pooling-pool.js +0 -57
  238. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +0 -1
  239. package/build/dex/idle-dao/scripts.d.ts +0 -9
  240. package/build/dex/idle-dao/scripts.js +0 -552
  241. package/build/dex/idle-dao/scripts.js.map +0 -1
  242. package/build/dex/inception/config.d.ts +0 -4
  243. package/build/dex/inception/config.js +0 -109
  244. package/build/dex/inception/config.js.map +0 -1
  245. package/build/dex/inception/inception-event-pool.d.ts +0 -16
  246. package/build/dex/inception/inception-event-pool.js +0 -51
  247. package/build/dex/inception/inception-event-pool.js.map +0 -1
  248. package/build/dex/inception/inception-native.js +0 -131
  249. package/build/dex/inception/inception-native.js.map +0 -1
  250. package/build/dex/inception/inception-pool.d.ts +0 -18
  251. package/build/dex/inception/inception-pool.js +0 -32
  252. package/build/dex/inception/inception-pool.js.map +0 -1
  253. package/build/dex/inception/inception-price-feed.d.ts +0 -19
  254. package/build/dex/inception/inception-price-feed.js +0 -51
  255. package/build/dex/inception/inception-price-feed.js.map +0 -1
  256. package/build/dex/inception/inception.d.ts +0 -43
  257. package/build/dex/inception/inception.js +0 -204
  258. package/build/dex/inception/inception.js.map +0 -1
  259. package/build/dex/inception/tokens.d.ts +0 -9
  260. package/build/dex/inception/tokens.js +0 -28
  261. package/build/dex/inception/tokens.js.map +0 -1
  262. package/build/dex/inception/types.d.ts +0 -22
  263. package/build/dex/inception/utils.d.ts +0 -6
  264. package/build/dex/inception/utils.js +0 -37
  265. package/build/dex/inception/utils.js.map +0 -1
  266. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -16
  267. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -16
  268. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -16
  269. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -16
  270. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -16
  271. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -16
  272. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -16
  273. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -16
  274. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -9
  275. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -9
  276. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -9
  277. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-eth-steth.json +0 -9
  278. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-steth-eth.json +0 -9
  279. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -9
  280. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-eth-usdc.json +0 -9
  281. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-eth.json +0 -9
  282. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-usdt.json +0 -9
  283. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -12
  284. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -7
  285. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -7
  286. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -7
  287. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -7
  288. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -12
  289. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-eth-usdc.json +0 -7
  290. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-usdc-eth.json +0 -7
  291. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -78
  292. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -81
  293. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -78
  294. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -78
  295. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -81
  296. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -81
  297. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -81
  298. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -81
  299. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -64
  300. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -85
  301. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -64
  302. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-eth-steth.json +0 -52
  303. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-steth-eth.json +0 -52
  304. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -52
  305. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-eth-usdc.json +0 -55
  306. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-eth.json +0 -55
  307. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-usdt.json +0 -55
  308. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -23
  309. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -37
  310. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -23
  311. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -23
  312. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -51
  313. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-univ3-usdt-dai-eth.json +0 -58
  314. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -23
  315. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -23
  316. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -9
  317. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -16
  318. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -23
  319. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -12
  320. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -7
  321. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -12
  322. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -12
  323. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -7
  324. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-univ3-usdt-dai-eth.json +0 -7
  325. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -7
  326. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -7
  327. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -7
  328. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -7
  329. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -130
  330. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -136
  331. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -100
  332. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -100
  333. package/build/executor/fixtures/executor02/routes/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -166
  334. package/build/executor/fixtures/executor02/routes/price-route-multiswap-univ3-usdt-dai-eth.json +0 -190
  335. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -114
  336. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -114
  337. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -55
  338. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -73
  339. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -82
  340. /package/build/dex/{inception → m-token}/types.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqrtPriceMath.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/SqrtPriceMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class SwapMath {
2
+ static readonly MAX_SWAP_FEE: bigint;
3
+ static getSqrtPriceTarget(zeroForOne: boolean, sqrtPriceNextX96: bigint, sqrtPriceLimitX96: bigint): bigint;
4
+ static computeSwapStep(sqrtPriceCurrentX96: bigint, sqrtPriceTargetX96: bigint, liquidity: bigint, amountRemaining: bigint, feePips: bigint): {
5
+ sqrtPriceNextX96: bigint;
6
+ amountIn: bigint;
7
+ amountOut: bigint;
8
+ feeAmount: bigint;
9
+ };
10
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwapMath = void 0;
4
+ const bigint_constants_1 = require("../../../bigint-constants");
5
+ const FullMath_1 = require("./FullMath");
6
+ const SqrtPriceMath_1 = require("./SqrtPriceMath");
7
+ class SwapMath {
8
+ static MAX_SWAP_FEE = bigint_constants_1.BI_POWS[6];
9
+ static getSqrtPriceTarget(zeroForOne, sqrtPriceNextX96, sqrtPriceLimitX96) {
10
+ const nextOrLimit = (sqrtPriceNextX96 < sqrtPriceLimitX96 ? 1 : 0) ^ (zeroForOne ? 1 : 0);
11
+ const symDiff = sqrtPriceNextX96 ^ sqrtPriceLimitX96;
12
+ return sqrtPriceLimitX96 ^ (symDiff * BigInt(nextOrLimit));
13
+ }
14
+ static computeSwapStep(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, amountRemaining, feePips) {
15
+ const _feePips = BigInt.asUintN(256, feePips);
16
+ const zeroForOne = sqrtPriceCurrentX96 >= sqrtPriceTargetX96;
17
+ const exactIn = amountRemaining < 0n;
18
+ let amountIn = 0n;
19
+ let amountOut = 0n;
20
+ let feeAmount = 0n;
21
+ let sqrtPriceNextX96;
22
+ if (exactIn) {
23
+ const amountRemainingLessFee = FullMath_1.FullMath.mulDiv(BigInt(-amountRemaining), SwapMath.MAX_SWAP_FEE - _feePips, SwapMath.MAX_SWAP_FEE);
24
+ amountIn = zeroForOne
25
+ ? SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceTargetX96, sqrtPriceCurrentX96, liquidity, true)
26
+ : SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, true);
27
+ if (amountRemainingLessFee >= amountIn) {
28
+ sqrtPriceNextX96 = BigInt(sqrtPriceTargetX96);
29
+ feeAmount =
30
+ _feePips === SwapMath.MAX_SWAP_FEE
31
+ ? amountIn
32
+ : FullMath_1.FullMath.mulDivRoundingUp(amountIn, _feePips, SwapMath.MAX_SWAP_FEE - _feePips);
33
+ }
34
+ else {
35
+ amountIn = BigInt(amountRemainingLessFee);
36
+ sqrtPriceNextX96 = SqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromInput(sqrtPriceCurrentX96, liquidity, amountRemainingLessFee, zeroForOne);
37
+ feeAmount = BigInt(-amountRemaining) - amountIn;
38
+ }
39
+ amountOut = zeroForOne
40
+ ? SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceNextX96, sqrtPriceCurrentX96, liquidity, false)
41
+ : SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceCurrentX96, sqrtPriceNextX96, liquidity, false);
42
+ }
43
+ else {
44
+ amountOut = zeroForOne
45
+ ? SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceTargetX96, sqrtPriceCurrentX96, liquidity, false)
46
+ : SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, false);
47
+ if (amountRemaining >= amountOut) {
48
+ sqrtPriceNextX96 = BigInt(sqrtPriceTargetX96);
49
+ }
50
+ else {
51
+ amountOut = BigInt(amountRemaining);
52
+ sqrtPriceNextX96 = SqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromOutput(sqrtPriceCurrentX96, liquidity, amountOut, zeroForOne);
53
+ }
54
+ amountIn = zeroForOne
55
+ ? SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceNextX96, sqrtPriceCurrentX96, liquidity, true)
56
+ : SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceCurrentX96, sqrtPriceNextX96, liquidity, true);
57
+ feeAmount = FullMath_1.FullMath.mulDivRoundingUp(amountIn, _feePips, SwapMath.MAX_SWAP_FEE - _feePips);
58
+ }
59
+ return { sqrtPriceNextX96, amountIn, amountOut, feeAmount };
60
+ }
61
+ }
62
+ exports.SwapMath = SwapMath;
63
+ //# sourceMappingURL=SwapMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwapMath.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/SwapMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { PoolState } from '../types';
2
+ export declare class Tick {
3
+ static check(tickLower: bigint, tickUpper: bigint): void;
4
+ static clear(poolState: PoolState, tick: bigint): void;
5
+ static cross(poolState: PoolState, tick: bigint, feeGrowthGlobal0X128: bigint, feeGrowthGlobal1X128: bigint): bigint;
6
+ static update(poolState: PoolState, tick: bigint, liquidityDelta: bigint, upper: boolean): {
7
+ flipped: boolean;
8
+ liquidityGrossAfter: bigint;
9
+ };
10
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tick = void 0;
4
+ const utils_1 = require("../../../utils");
5
+ const TickMath_1 = require("./TickMath");
6
+ const LiquidityMath_1 = require("./LiquidityMath");
7
+ class Tick {
8
+ static check(tickLower, tickUpper) {
9
+ (0, utils_1._require)(tickLower <= tickUpper, '', { tickLower, tickUpper }, 'tickLower <= tickUpper');
10
+ (0, utils_1._require)(tickLower >= TickMath_1.TickMath.MIN_TICK, '', { tickLower }, 'tickLower >= TickMath.MIN_TICK');
11
+ (0, utils_1._require)(tickUpper <= TickMath_1.TickMath.MAX_TICK, '', { tickUpper }, 'tickUpper <= TickMath.MAX_TICK');
12
+ }
13
+ static clear(poolState, tick) {
14
+ poolState.ticks[Number(tick)] = {
15
+ liquidityGross: 0n,
16
+ liquidityNet: 0n,
17
+ feeGrowthOutside0X128: 0n,
18
+ feeGrowthOutside1X128: 0n,
19
+ };
20
+ }
21
+ static cross(poolState, tick, feeGrowthGlobal0X128, feeGrowthGlobal1X128) {
22
+ const info = poolState.ticks[Number(tick)];
23
+ (0, utils_1._require)(Boolean(info), 'Tick not initialized');
24
+ info.feeGrowthOutside0X128 =
25
+ feeGrowthGlobal0X128 - info.feeGrowthOutside0X128;
26
+ info.feeGrowthOutside1X128 =
27
+ feeGrowthGlobal1X128 - info.feeGrowthOutside1X128;
28
+ const liquidityNet = info.liquidityNet;
29
+ return liquidityNet;
30
+ }
31
+ static update(poolState, tick, liquidityDelta, upper) {
32
+ let info = poolState.ticks[Number(tick)];
33
+ if (!info) {
34
+ poolState.ticks[Number(tick)] = {
35
+ liquidityGross: 0n,
36
+ liquidityNet: 0n,
37
+ feeGrowthOutside0X128: 0n,
38
+ feeGrowthOutside1X128: 0n,
39
+ };
40
+ info = poolState.ticks[Number(tick)];
41
+ }
42
+ const liquidityGrossBefore = info.liquidityGross;
43
+ const liquidityNetBefore = info.liquidityNet;
44
+ const liquidityGrossAfter = LiquidityMath_1.LiquidityMath.addDelta(liquidityGrossBefore, liquidityDelta);
45
+ const flipped = (liquidityGrossAfter === 0n) !== (liquidityGrossBefore === 0n);
46
+ if (liquidityGrossBefore === 0n) {
47
+ if (tick <= poolState.slot0.tick) {
48
+ info.feeGrowthOutside0X128 = poolState.feeGrowthGlobal0X128;
49
+ info.feeGrowthOutside1X128 = poolState.feeGrowthGlobal1X128;
50
+ }
51
+ }
52
+ const liquidityNet = upper
53
+ ? liquidityNetBefore - liquidityDelta
54
+ : liquidityNetBefore + liquidityDelta;
55
+ info.liquidityGross = liquidityGrossAfter;
56
+ info.liquidityNet = liquidityNet;
57
+ return {
58
+ flipped,
59
+ liquidityGrossAfter,
60
+ };
61
+ }
62
+ }
63
+ exports.Tick = Tick;
64
+ //# sourceMappingURL=Tick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tick.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/Tick.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { PoolState } from '../types';
2
+ export declare class TickBitmap {
3
+ static readonly MAX_UINT256: bigint;
4
+ static readonly MAX_UINT8: bigint;
5
+ static compress(tick: bigint, tickSpacing: bigint): bigint;
6
+ static position(tick: bigint): [bigint, bigint];
7
+ static flipTick(poolState: PoolState, tick: bigint, tickSpacing: bigint): void;
8
+ static nextInitializedTickWithinOneWord(poolState: PoolState, tick: bigint, tickSpacing: bigint, lte: boolean): [bigint, boolean];
9
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TickBitmap = void 0;
4
+ const utils_1 = require("../../../utils");
5
+ const BitMath_1 = require("../../uniswap-v3/contract-math/BitMath");
6
+ class TickBitmap {
7
+ static MAX_UINT256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
8
+ static MAX_UINT8 = 255n;
9
+ static compress(tick, tickSpacing) {
10
+ const compressed = tick / tickSpacing;
11
+ if (tick < 0 && tick % tickSpacing !== 0n) {
12
+ return compressed - 1n;
13
+ }
14
+ return compressed;
15
+ }
16
+ static position(tick) {
17
+ return [BigInt.asIntN(16, tick >> 8n), BigInt.asUintN(8, tick % 256n)];
18
+ }
19
+ static flipTick(poolState, tick, tickSpacing) {
20
+ (0, utils_1._require)(tick % tickSpacing === 0n, '', { tick, tickSpacing }, 'tick % tickSpacing === 0n');
21
+ const compressed = TickBitmap.compress(tick, tickSpacing);
22
+ const [wordPos, bitPos] = TickBitmap.position(compressed);
23
+ const mask = 1n << bitPos;
24
+ if (!poolState.tickBitmap) {
25
+ poolState.tickBitmap = {};
26
+ }
27
+ const currentValue = poolState.tickBitmap[wordPos.toString()] || 0n;
28
+ poolState.tickBitmap[wordPos.toString()] = currentValue ^ mask;
29
+ }
30
+ static nextInitializedTickWithinOneWord(poolState, tick, tickSpacing, lte) {
31
+ const compressed = TickBitmap.compress(tick, tickSpacing);
32
+ let initialized;
33
+ let next;
34
+ if (lte) {
35
+ const [wordPos, bitPos] = TickBitmap.position(compressed);
36
+ const mask = TickBitmap.MAX_UINT256 >> (TickBitmap.MAX_UINT8 - bitPos);
37
+ const value = poolState.tickBitmap[wordPos.toString()] || 0n;
38
+ const masked = value & mask;
39
+ initialized = masked !== 0n;
40
+ next = initialized
41
+ ? (compressed -
42
+ BigInt.asIntN(24, bitPos - BitMath_1.BitMath.mostSignificantBit(masked))) *
43
+ tickSpacing
44
+ : (compressed - BigInt.asIntN(24, bitPos)) * tickSpacing;
45
+ }
46
+ else {
47
+ const [wordPos, bitPos] = TickBitmap.position(compressed + 1n);
48
+ const mask = ~((1n << bitPos) - 1n);
49
+ const value = poolState.tickBitmap[wordPos.toString()] || 0n;
50
+ const masked = value & mask;
51
+ initialized = masked !== 0n;
52
+ next = initialized
53
+ ? (compressed +
54
+ 1n +
55
+ BigInt.asIntN(24, BitMath_1.BitMath.leastSignificantBit(masked) - bitPos)) *
56
+ tickSpacing
57
+ : (compressed + 1n + BigInt.asIntN(24, TickBitmap.MAX_UINT8 - bitPos)) *
58
+ tickSpacing;
59
+ }
60
+ return [next, initialized];
61
+ }
62
+ }
63
+ exports.TickBitmap = TickBitmap;
64
+ //# sourceMappingURL=TickBitmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TickBitmap.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/TickBitmap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class TickMath {
2
+ static readonly MIN_TICK = -887272n;
3
+ static readonly MAX_TICK: bigint;
4
+ static readonly MIN_SQRT_PRICE = 4295128739n;
5
+ static readonly MAX_SQRT_PRICE = 1461446703485210103287273052203988822378723970342n;
6
+ static readonly MAX_SQRT_PRICE_MINUS_MIN_SQRT_PRICE_MINUS_ONE: number;
7
+ static getSqrtPriceAtTick(tick: bigint): bigint;
8
+ static getTickAtSqrtPrice(sqrtPriceX96: bigint): bigint;
9
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TickMath = void 0;
4
+ const BitMath_1 = require("./BitMath");
5
+ class TickMath {
6
+ static MIN_TICK = -887272n;
7
+ static MAX_TICK = -TickMath.MIN_TICK;
8
+ static MIN_SQRT_PRICE = 4295128739n;
9
+ static MAX_SQRT_PRICE = 1461446703485210103287273052203988822378723970342n;
10
+ static MAX_SQRT_PRICE_MINUS_MIN_SQRT_PRICE_MINUS_ONE = 1461446703485210103287273052203988822378723970342 - 4295128739 - 1;
11
+ static getSqrtPriceAtTick(tick) {
12
+ const absTick = tick < 0n
13
+ ? BigInt.asUintN(256, -BigInt.asIntN(256, tick))
14
+ : BigInt.asUintN(256, BigInt.asIntN(256, tick));
15
+ let price = absTick & 0x1n
16
+ ? 0xfffcb933bd6fad37aa2d162d1a594001n
17
+ : 0x100000000000000000000000000000000n;
18
+ if ((absTick & 0x2n) != 0n)
19
+ price = (price * 0xfff97272373d413259a46990580e213an) >> 128n;
20
+ if ((absTick & 0x4n) != 0n)
21
+ price = (price * 0xfff2e50f5f656932ef12357cf3c7fdccn) >> 128n;
22
+ if ((absTick & 0x8n) != 0n)
23
+ price = (price * 0xffe5caca7e10e4e61c3624eaa0941cd0n) >> 128n;
24
+ if ((absTick & 0x10n) != 0n)
25
+ price = (price * 0xffcb9843d60f6159c9db58835c926644n) >> 128n;
26
+ if ((absTick & 0x20n) != 0n)
27
+ price = (price * 0xff973b41fa98c081472e6896dfb254c0n) >> 128n;
28
+ if ((absTick & 0x40n) != 0n)
29
+ price = (price * 0xff2ea16466c96a3843ec78b326b52861n) >> 128n;
30
+ if ((absTick & 0x80n) != 0n)
31
+ price = (price * 0xfe5dee046a99a2a811c461f1969c3053n) >> 128n;
32
+ if ((absTick & 0x100n) != 0n)
33
+ price = (price * 0xfcbe86c7900a88aedcffc83b479aa3a4n) >> 128n;
34
+ if ((absTick & 0x200n) != 0n)
35
+ price = (price * 0xf987a7253ac413176f2b074cf7815e54n) >> 128n;
36
+ if ((absTick & 0x400n) != 0n)
37
+ price = (price * 0xf3392b0822b70005940c7a398e4b70f3n) >> 128n;
38
+ if ((absTick & 0x800n) != 0n)
39
+ price = (price * 0xe7159475a2c29b7443b29c7fa6e889d9n) >> 128n;
40
+ if ((absTick & 0x1000n) != 0n)
41
+ price = (price * 0xd097f3bdfd2022b8845ad8f792aa5825n) >> 128n;
42
+ if ((absTick & 0x2000n) != 0n)
43
+ price = (price * 0xa9f746462d870fdf8a65dc1f90e061e5n) >> 128n;
44
+ if ((absTick & 0x4000n) != 0n)
45
+ price = (price * 0x70d869a156d2a1b890bb3df62baf32f7n) >> 128n;
46
+ if ((absTick & 0x8000n) != 0n)
47
+ price = (price * 0x31be135f97d08fd981231505542fcfa6n) >> 128n;
48
+ if ((absTick & 0x10000n) != 0n)
49
+ price = (price * 0x9aa508b5b7a84e1c677de54f3e99bc9n) >> 128n;
50
+ if ((absTick & 0x20000n) != 0n)
51
+ price = (price * 0x5d6af8dedb81196699c329225ee604n) >> 128n;
52
+ if ((absTick & 0x40000n) != 0n)
53
+ price = (price * 0x2216e584f5fa1ea926041bedfe98n) >> 128n;
54
+ if ((absTick & 0x80000n) != 0n)
55
+ price = (price * 0x48a170391f7dc42444e8fa2n) >> 128n;
56
+ if (tick > 0)
57
+ price =
58
+ BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff') / price;
59
+ const shift = 1n << 32n;
60
+ const result = (price + shift - 1n) >> 32n;
61
+ return result;
62
+ }
63
+ static getTickAtSqrtPrice(sqrtPriceX96) {
64
+ const price = sqrtPriceX96 << 32n;
65
+ const msb = BitMath_1.BitMath.mostSignificantBit(price);
66
+ let r = msb >= 128 ? price >> BigInt(msb - 127n) : price << BigInt(127n - msb);
67
+ let log_2 = (BigInt(msb) - 128n) << 64n;
68
+ for (let i = 63n; i >= 50n; i--) {
69
+ r = (r * r) >> 127n;
70
+ const f = r >> 128n;
71
+ log_2 |= f << i;
72
+ r >>= f;
73
+ }
74
+ const log_sqrt10001 = log_2 * 255738958999603826347141n;
75
+ const tickLow = BigInt((log_sqrt10001 - 3402992956809132418596140100660247210n) >> 128n);
76
+ const tickHi = BigInt((log_sqrt10001 + 291339464771989622907027621153398088495n) >> 128n);
77
+ return TickMath.getSqrtPriceAtTick(tickHi) <= sqrtPriceX96
78
+ ? tickHi
79
+ : tickLow;
80
+ }
81
+ }
82
+ exports.TickMath = TickMath;
83
+ //# sourceMappingURL=TickMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TickMath.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/TickMath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class UnsafeMath {
2
+ static divRoundingUp(x: bigint, y: bigint): bigint;
3
+ static simpleMulDiv(a: bigint, b: bigint, denominator: bigint): bigint;
4
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnsafeMath = void 0;
4
+ class UnsafeMath {
5
+ static divRoundingUp(x, y) {
6
+ if (y === 0n)
7
+ return 0n;
8
+ return (x + y - 1n) / y;
9
+ }
10
+ static simpleMulDiv(a, b, denominator) {
11
+ if (denominator === 0n)
12
+ return 0n;
13
+ return (a * b) / denominator;
14
+ }
15
+ }
16
+ exports.UnsafeMath = UnsafeMath;
17
+ //# sourceMappingURL=UnsafeMath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsafeMath.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/UnsafeMath.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACrB,MAAM,CAAC,aAAa,CAAC,CAAS,EAAE,CAAS;QACvC,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,CAAS,EAAE,CAAS,EAAE,WAAmB;QAC3D,IAAI,WAAW,KAAK,EAAE;YAAE,OAAO,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;IAC/B,CAAC;CACF;AAVD,gCAUC"}
@@ -0,0 +1,8 @@
1
+ import { DeepReadonly } from 'ts-essentials';
2
+ import { PoolState } from '../types';
3
+ import { SwapSide } from '@paraswap/core';
4
+ declare class UniswapV4Math {
5
+ swap(poolState: DeepReadonly<PoolState>, side: SwapSide): void;
6
+ }
7
+ export declare const uniswapV4Math: UniswapV4Math;
8
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uniswapV4Math = void 0;
4
+ class UniswapV4Math {
5
+ swap(poolState, side) {
6
+ // const slot0Start = poolState.slot0;
7
+ // const isSell = side === SwapSide.SELL;
8
+ }
9
+ }
10
+ exports.uniswapV4Math = new UniswapV4Math();
11
+ //# sourceMappingURL=uniswap-v4-math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswap-v4-math.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/uniswap-v4-math.ts"],"names":[],"mappings":";;;AAIA,MAAM,aAAa;IACjB,IAAI,CAAC,SAAkC,EAAE,IAAc;QACrD,sCAAsC;QACtC,yCAAyC;IAC3C,CAAC;CACF;AAEY,QAAA,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { PoolState, ModifyLiquidityParams, Pool } from '../types';
2
+ import { DeepReadonly } from 'ts-essentials';
3
+ import { SwapSide } from '@paraswap/core';
4
+ type SwapParams = {
5
+ amountSpecified: bigint;
6
+ tickSpacing: bigint;
7
+ zeroForOne: boolean;
8
+ sqrtPriceLimitX96: bigint;
9
+ lpFeeOverride: bigint;
10
+ };
11
+ declare class UniswapV4PoolMath {
12
+ queryOutputs(pool: Pool, poolState: DeepReadonly<PoolState>, amounts: bigint[], zeroForOne: boolean, side: SwapSide): bigint[] | null;
13
+ _swap(poolState: PoolState, params: SwapParams): [bigint, bigint];
14
+ tickSpacingToMaxLiquidityPerTick(tickSpacing: bigint): bigint;
15
+ checkPoolInitialized(poolState: PoolState): void;
16
+ getFeeGrowthInside(poolState: PoolState, tickLower: bigint, tickUpper: bigint): {
17
+ feeGrowthInside0X128: bigint;
18
+ feeGrowthInside1X128: bigint;
19
+ };
20
+ modifyLiquidity(poolState: PoolState, { liquidityDelta, tickLower, tickUpper, tickSpacing, salt, owner, }: ModifyLiquidityParams): {
21
+ delta: bigint;
22
+ feeDelta: bigint;
23
+ } | undefined;
24
+ setProtocolFee(poolState: PoolState, protocolFee: bigint): void;
25
+ donate(poolState: PoolState, amount0: bigint, amount1: bigint): bigint;
26
+ swapFromEvent(poolState: PoolState, zeroForOne: boolean, newSqrtPriceX96: bigint, newTick: bigint, newLiquidity: bigint, newSwapFee: bigint, amount0: bigint, amount1: bigint): void;
27
+ }
28
+ export declare const uniswapV4PoolMath: UniswapV4PoolMath;
29
+ export {};