@paraswap/dex-lib 3.11.1-algebra.0 → 3.11.2

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 (285) hide show
  1. package/build/abi/Aave_GSM.json +751 -0
  2. package/build/abi/Balancer.json +257 -0
  3. package/build/abi/BalancerV2.json +1179 -0
  4. package/build/abi/RamsesV2Pool.abi.json +1554 -0
  5. package/build/abi/RamsesV2Quoter.abi.json +274 -0
  6. package/build/abi/USDM.json +807 -0
  7. package/build/abi/UniswapV2Router.json +397 -0
  8. package/build/abi/{wombat/pool.json → angle-transmuter/ChainlinkAccessControlledOffchainAggregator.json} +594 -637
  9. package/build/abi/angle-transmuter/ChainlinkEACAggregatorProxy.json +509 -0
  10. package/build/abi/cables/CablesMainnetRFQ.json +1083 -0
  11. package/build/abi/curve-v1/CurveBUSDv2.abi.json +1356 -0
  12. package/build/abi/curve-v1/CurveTokenV1.json +305 -0
  13. package/build/abi/curve-v1/CurveTokenV2.json +318 -0
  14. package/build/abi/curve-v1/CurveV1StableNg.json +1452 -0
  15. package/build/abi/curve-v1/CurveV2Swap.json +700 -0
  16. package/build/abi/curve-v1/FactoryCryptoRegistry.json +316 -0
  17. package/build/abi/curve-v1/FactoryRegistry.json +508 -0
  18. package/build/abi/curve-v1/StableSwapAave.json +1152 -0
  19. package/build/abi/curve-v1/StableSwapBUSD.json +814 -0
  20. package/build/abi/curve-v1/StableSwapCompound.json +814 -0
  21. package/build/abi/curve-v1/StableSwapIDLE.json +1253 -0
  22. package/build/abi/curve-v1/StableSwapPax.json +865 -0
  23. package/build/abi/curve-v1/StableSwapSnow.json +900 -0
  24. package/build/abi/curve-v1/StableSwapUSDN.json +1004 -0
  25. package/build/abi/curve-v1/StableSwapUSDT.json +814 -0
  26. package/build/abi/curve-v1/StableSwapY.json +814 -0
  27. package/build/abi/inception/inception-ineth.json +609 -0
  28. package/build/abi/kyberdmm/kyber-storage.abi.json +824 -0
  29. package/build/abi/kyberdmm.abi.json +1148 -0
  30. package/build/abi/maverick-v2/MaverickV2Quoter.json +278 -0
  31. package/build/abi/nerve/nerve-metapool.json +790 -0
  32. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  33. package/build/abi/velodrome-slipstream/VelodromeSlipstreamQuoterV2.abi.json +267 -0
  34. package/build/config.js +1 -0
  35. package/build/config.js.map +1 -1
  36. package/build/dex/aave-v1/aave-v1.js +0 -1
  37. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  38. package/build/dex/algebra/lib/AlgebraMath.js +3 -0
  39. package/build/dex/algebra/lib/AlgebraMath.js.map +1 -1
  40. package/build/dex/balancer-v1/balancer-pools.json +33333 -0
  41. package/build/dex/bebop/bebop.js +1 -1
  42. package/build/dex/bebop/bebop.js.map +1 -1
  43. package/build/dex/bebop/bebop.json +72 -0
  44. package/build/dex/bebop/config.js +5 -0
  45. package/build/dex/bebop/config.js.map +1 -1
  46. package/build/dex/bebop/rate-fetcher.d.ts +3 -1
  47. package/build/dex/bebop/rate-fetcher.js +42 -2
  48. package/build/dex/bebop/rate-fetcher.js.map +1 -1
  49. package/build/dex/bebop/validators.d.ts +2 -0
  50. package/build/dex/bebop/validators.js +9 -1
  51. package/build/dex/bebop/validators.js.map +1 -1
  52. package/build/dex/bebop/websocket-fetcher.d.ts +35 -0
  53. package/build/dex/bebop/websocket-fetcher.js +87 -0
  54. package/build/dex/bebop/websocket-fetcher.js.map +1 -0
  55. package/build/dex/cables/cables.d.ts +57 -0
  56. package/build/dex/cables/cables.js +471 -0
  57. package/build/dex/cables/cables.js.map +1 -0
  58. package/build/dex/cables/config.d.ts +4 -0
  59. package/build/dex/cables/config.js +15 -0
  60. package/build/dex/cables/config.js.map +1 -0
  61. package/build/dex/cables/constants.d.ts +19 -0
  62. package/build/dex/cables/constants.js +26 -0
  63. package/build/dex/cables/constants.js.map +1 -0
  64. package/build/dex/cables/rate-fetcher.d.ts +34 -0
  65. package/build/dex/cables/rate-fetcher.js +106 -0
  66. package/build/dex/cables/rate-fetcher.js.map +1 -0
  67. package/build/dex/cables/types.d.ts +106 -0
  68. package/build/dex/cables/types.js +12 -0
  69. package/build/dex/cables/types.js.map +1 -0
  70. package/build/dex/cables/validators.d.ts +5 -0
  71. package/build/dex/cables/validators.js +49 -0
  72. package/build/dex/cables/validators.js.map +1 -0
  73. package/build/dex/idle-dao/idle-dao-pool.d.ts +56 -0
  74. package/build/dex/idle-dao/idle-dao-pool.js +176 -0
  75. package/build/dex/idle-dao/idle-dao-pool.js.map +1 -0
  76. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +16 -0
  77. package/build/dex/idle-dao/idle-dao-pooling-pool.js +57 -0
  78. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +1 -0
  79. package/build/dex/idle-dao/scripts.d.ts +9 -0
  80. package/build/dex/idle-dao/scripts.js +552 -0
  81. package/build/dex/idle-dao/scripts.js.map +1 -0
  82. package/build/dex/inception/inception-event-pool.d.ts +4 -4
  83. package/build/dex/inception/inception-event-pool.js +9 -7
  84. package/build/dex/inception/inception-event-pool.js.map +1 -1
  85. package/build/dex/inception/inception-native.d.ts +43 -0
  86. package/build/dex/inception/inception-native.js +131 -0
  87. package/build/dex/inception/inception-native.js.map +1 -0
  88. package/build/dex/inception/inception-pool.d.ts +18 -0
  89. package/build/dex/inception/inception-pool.js +32 -0
  90. package/build/dex/inception/inception-pool.js.map +1 -0
  91. package/build/dex/inception/inception-price-feed.d.ts +19 -0
  92. package/build/dex/inception/inception-price-feed.js +51 -0
  93. package/build/dex/inception/inception-price-feed.js.map +1 -0
  94. package/build/dex/inception/inception.d.ts +6 -6
  95. package/build/dex/inception/inception.js +40 -16
  96. package/build/dex/inception/inception.js.map +1 -1
  97. package/build/dex/inception/utils.d.ts +0 -1
  98. package/build/dex/inception/utils.js +1 -22
  99. package/build/dex/inception/utils.js.map +1 -1
  100. package/build/dex/platypus/platypus.js +3 -17
  101. package/build/dex/platypus/platypus.js.map +1 -1
  102. package/build/dex/swaap-v1/swaap-v1.js +0 -4
  103. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  104. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +16 -0
  105. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +16 -0
  106. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +16 -0
  107. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +16 -0
  108. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-dai-usdc-eth.json +16 -0
  109. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-eth-usdc-dai.json +16 -0
  110. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +16 -0
  111. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdt-usdc-dai.json +16 -0
  112. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-eth-usdc.json +9 -0
  113. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-eth.json +9 -0
  114. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-wbtc.json +9 -0
  115. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-eth-steth.json +9 -0
  116. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-steth-eth.json +9 -0
  117. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-usdc-usdt.json +9 -0
  118. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-eth-usdc.json +9 -0
  119. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-eth.json +9 -0
  120. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-usdt.json +9 -0
  121. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +12 -0
  122. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +7 -0
  123. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +7 -0
  124. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-dai-usdc-eth.json +7 -0
  125. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-eth-usdc-dai.json +7 -0
  126. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +12 -0
  127. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-eth-usdc.json +7 -0
  128. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-usdc-eth.json +7 -0
  129. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +78 -0
  130. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +81 -0
  131. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +78 -0
  132. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +78 -0
  133. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-dai-usdc-eth.json +81 -0
  134. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-eth-usdc-dai.json +81 -0
  135. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +81 -0
  136. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdt-usdc-dai.json +81 -0
  137. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-eth-usdc.json +64 -0
  138. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-eth.json +85 -0
  139. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-wbtc.json +64 -0
  140. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-eth-steth.json +52 -0
  141. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-steth-eth.json +52 -0
  142. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-usdc-usdt.json +52 -0
  143. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-eth-usdc.json +55 -0
  144. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-eth.json +55 -0
  145. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-usdt.json +55 -0
  146. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +23 -0
  147. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +37 -0
  148. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +23 -0
  149. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +23 -0
  150. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +51 -0
  151. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-univ3-usdt-dai-eth.json +58 -0
  152. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +23 -0
  153. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +23 -0
  154. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +9 -0
  155. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +16 -0
  156. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +23 -0
  157. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +12 -0
  158. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +7 -0
  159. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +12 -0
  160. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +12 -0
  161. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +7 -0
  162. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-univ3-usdt-dai-eth.json +7 -0
  163. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +7 -0
  164. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +7 -0
  165. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +7 -0
  166. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +7 -0
  167. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +130 -0
  168. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +136 -0
  169. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +100 -0
  170. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +100 -0
  171. package/build/executor/fixtures/executor02/routes/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +166 -0
  172. package/build/executor/fixtures/executor02/routes/price-route-multiswap-univ3-usdt-dai-eth.json +190 -0
  173. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +114 -0
  174. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +114 -0
  175. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +55 -0
  176. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +73 -0
  177. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +82 -0
  178. package/build/lib/fetcher/wsFetcher.d.ts +7 -3
  179. package/build/lib/fetcher/wsFetcher.js +64 -51
  180. package/build/lib/fetcher/wsFetcher.js.map +1 -1
  181. package/package.json +4 -2
  182. package/src/config.ts +1 -0
  183. package/src/dex/algebra/lib/AlgebraMath.ts +4 -0
  184. package/src/dex/bebop/bebop-e2e.test.ts +21 -0
  185. package/src/dex/bebop/bebop.json +72 -0
  186. package/src/dex/bebop/bebop.proto +15 -0
  187. package/src/dex/bebop/bebop.ts +1 -1
  188. package/src/dex/bebop/config.ts +5 -0
  189. package/src/dex/bebop/rate-fetcher.ts +51 -6
  190. package/src/dex/bebop/validators.ts +10 -0
  191. package/src/lib/fetcher/wsFetcher.ts +79 -66
  192. package/.vscode/launch.json +0 -53
  193. package/.vscode/settings.json +0 -2
  194. package/.vscode/tasks.json +0 -15
  195. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +0 -52
  196. package/build/dex/aave-v2/tokens-avalanche.json +0 -44
  197. package/build/dex/aave-v2/tokens-mainnet.json +0 -188
  198. package/build/dex/aave-v2/tokens-polygon.json +0 -44
  199. package/build/dex/bProtocol.d.ts +0 -18
  200. package/build/dex/bProtocol.js +0 -39
  201. package/build/dex/bProtocol.js.map +0 -1
  202. package/build/dex/balancer-v3/abi/balancerBatchRouter.d.ts +0 -729
  203. package/build/dex/balancer-v3/abi/balancerBatchRouter.js +0 -732
  204. package/build/dex/balancer-v3/abi/balancerBatchRouter.js.map +0 -1
  205. package/build/dex/balancer-v3/abi/balancerRouter.d.ts +0 -1406
  206. package/build/dex/balancer-v3/abi/balancerRouter.js +0 -1175
  207. package/build/dex/balancer-v3/abi/balancerRouter.js.map +0 -1
  208. package/build/dex/balancer-v3/abi/vaultExtension.V3.d.ts +0 -2081
  209. package/build/dex/balancer-v3/abi/vaultExtension.V3.js +0 -1851
  210. package/build/dex/balancer-v3/abi/vaultExtension.V3.js.map +0 -1
  211. package/build/dex/balancer-v3/balancer-v3-pool.d.ts +0 -76
  212. package/build/dex/balancer-v3/balancer-v3-pool.js +0 -383
  213. package/build/dex/balancer-v3/balancer-v3-pool.js.map +0 -1
  214. package/build/dex/balancer-v3/balancer-v3.d.ts +0 -57
  215. package/build/dex/balancer-v3/balancer-v3.js +0 -373
  216. package/build/dex/balancer-v3/balancer-v3.js.map +0 -1
  217. package/build/dex/balancer-v3/config.d.ts +0 -8
  218. package/build/dex/balancer-v3/config.js +0 -24
  219. package/build/dex/balancer-v3/config.js.map +0 -1
  220. package/build/dex/balancer-v3/getOnChainState.d.ts +0 -10
  221. package/build/dex/balancer-v3/getOnChainState.js +0 -158
  222. package/build/dex/balancer-v3/getOnChainState.js.map +0 -1
  223. package/build/dex/balancer-v3/getPoolsApi.d.ts +0 -2
  224. package/build/dex/balancer-v3/getPoolsApi.js +0 -81
  225. package/build/dex/balancer-v3/getPoolsApi.js.map +0 -1
  226. package/build/dex/balancer-v3/getTopPoolsApi.d.ts +0 -13
  227. package/build/dex/balancer-v3/getTopPoolsApi.js +0 -62
  228. package/build/dex/balancer-v3/getTopPoolsApi.js.map +0 -1
  229. package/build/dex/balancer-v3/types.d.ts +0 -63
  230. package/build/dex/balancer-v3/types.js +0 -3
  231. package/build/dex/balancer-v3/types.js.map +0 -1
  232. package/build/dex/bancor.d.ts +0 -26
  233. package/build/dex/bancor.js +0 -58
  234. package/build/dex/bancor.js.map +0 -1
  235. package/build/dex/compound.d.ts +0 -18
  236. package/build/dex/compound.js +0 -46
  237. package/build/dex/compound.js.map +0 -1
  238. package/build/dex/curve-v2.d.ts +0 -58
  239. package/build/dex/curve-v2.js +0 -180
  240. package/build/dex/curve-v2.js.map +0 -1
  241. package/build/dex/dodo-v1.d.ts +0 -33
  242. package/build/dex/dodo-v1.js +0 -63
  243. package/build/dex/dodo-v1.js.map +0 -1
  244. package/build/dex/fluid-dex/fluid-dex-pool.d.ts +0 -47
  245. package/build/dex/fluid-dex/fluid-dex-pool.js +0 -119
  246. package/build/dex/fluid-dex/fluid-dex-pool.js.map +0 -1
  247. package/build/dex/lido.d.ts +0 -19
  248. package/build/dex/lido.js +0 -42
  249. package/build/dex/lido.js.map +0 -1
  250. package/build/dex/maker-psm/scripts/gem.abi.json +0 -136
  251. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  252. package/build/dex/maker-psm/scripts/validate-state.js +0 -185
  253. package/build/dex/maker-psm/scripts/validate-state.js.map +0 -1
  254. package/build/dex/maker-psm/scripts/vat.abi.json +0 -243
  255. package/build/dex/onebit.d.ts +0 -25
  256. package/build/dex/onebit.js +0 -42
  257. package/build/dex/onebit.js.map +0 -1
  258. package/build/dex/smoothy.d.ts +0 -26
  259. package/build/dex/smoothy.js +0 -48
  260. package/build/dex/smoothy.js.map +0 -1
  261. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +0 -1
  262. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +0 -53
  263. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +0 -1
  264. package/build/dex/stable-pool.d.ts +0 -28
  265. package/build/dex/stable-pool.js +0 -55
  266. package/build/dex/stable-pool.js.map +0 -1
  267. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +0 -7
  268. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +0 -20
  269. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +0 -1
  270. package/build/dex/trader-joe-v2.1.d.ts +0 -43
  271. package/build/dex/trader-joe-v2.1.js +0 -79
  272. package/build/dex/trader-joe-v2.1.js.map +0 -1
  273. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +0 -17
  274. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +0 -64
  275. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +0 -1
  276. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +0 -17
  277. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +0 -79
  278. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +0 -1
  279. package/build/dex/uniswap-v3/uniswap-v3-pricing.d.ts +0 -4
  280. package/build/dex/uniswap-v3/uniswap-v3-pricing.js +0 -43
  281. package/build/dex/uniswap-v3/uniswap-v3-pricing.js.map +0 -1
  282. package/build/dex/uniswap-v3/uniswap-v3-worker.d.ts +0 -1
  283. package/build/dex/uniswap-v3/uniswap-v3-worker.js +0 -10
  284. package/build/dex/uniswap-v3/uniswap-v3-worker.js.map +0 -1
  285. package/src/dex/algebra/scripts/validate-state.test.ts +0 -384
@@ -1,384 +0,0 @@
1
- /* eslint-disable no-console */
2
- import dotenv from 'dotenv';
3
- dotenv.config();
4
-
5
- import { Network } from '../../../constants';
6
- import { DummyDexHelper } from '../../../dex-helper';
7
- import { Algebra } from '../algebra';
8
- import { uint256ToBigInt } from '../../../lib/decoders';
9
- import {
10
- DecodedStateMultiCallResultWithRelativeBitmapsV1_1,
11
- DecodedStateMultiCallResultWithRelativeBitmapsV1_9,
12
- PoolState_v1_9,
13
- } from '../types';
14
- import {
15
- decodeStateMultiCallResultWithRelativeBitmapsV1_1,
16
- decodeStateMultiCallResultWithRelativeBitmapsV1_9,
17
- } from '../utils';
18
- import { MultiCallParams, MultiWrapper } from '../../../lib/multi-wrapper';
19
- import Web3 from 'web3';
20
- import multiABIV2 from '../../../abi/multi-v2.json';
21
- import ERC20ABI from '../../../abi/erc20.json';
22
- import { getLogger } from '../../../lib/log4js';
23
- import { Interface } from 'ethers/lib/utils';
24
- import { AbiItem } from 'web3-utils';
25
- import AlgebraStateMulticallABI from '../../../abi/algebra/AlgebraStateMulticall.abi.json';
26
- import { TICK_BITMAP_TO_USE, TICK_BITMAP_BUFFER } from '../constants';
27
- import { BlockHeader } from 'web3-eth';
28
- import { ethers } from 'ethers';
29
- import assert from 'assert';
30
-
31
- // public RPC, replace to RPC with archive node
32
- const web3Provider = new Web3(
33
- 'https://empty-muddy-breeze.xdai.quiknode.pro/f1ccb72e430860bc3be568120bb2d8c028ba2633/',
34
- );
35
-
36
- // pool and tokens for specific broken tx - 0x9a296a13f7c5eb8ce838e15ecbe3888e8998a14803a1ec46838611e1ff118d6e
37
- const factoryAddress = '0xA0864cCA6E114013AB0e27cbd5B6f4c8947da766';
38
- const poolAddress = '0xfd24c5c19df9f124f385b3c0f38f8c6c72f5a137';
39
- const srcToken = {
40
- address: `0xaf204776c7245bF4147c2612BF6e5972Ee483701`,
41
- decimals: 18,
42
- };
43
- const destToken = {
44
- address: '0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d',
45
- decimals: 6,
46
- };
47
- const blockHeaders: Record<number, BlockHeader> = {};
48
-
49
- const multiContract = new web3Provider.eth.Contract(
50
- multiABIV2 as any,
51
- '0xca11bde05977b3631167028862be2a173976ca11',
52
- );
53
- const stateMultiContract = new web3Provider.eth.Contract(
54
- AlgebraStateMulticallABI as AbiItem[],
55
- '0x49C46f7f88110ccA234ef27Cd664510f7bbF5998',
56
- );
57
-
58
- const multiWrapper = new MultiWrapper(multiContract, getLogger(`Ticks`));
59
- const erc20Interface = new Interface(ERC20ABI);
60
-
61
- function getBitmapRangeToRequest() {
62
- return TICK_BITMAP_TO_USE + TICK_BITMAP_BUFFER;
63
- // return 2n;
64
- // return 0n;
65
- }
66
-
67
- async function _fetchPoolState_v1_9SingleStep(
68
- blockNumber: number,
69
- ): Promise<
70
- [bigint, bigint, DecodedStateMultiCallResultWithRelativeBitmapsV1_9]
71
- > {
72
- const callData: MultiCallParams<
73
- bigint | DecodedStateMultiCallResultWithRelativeBitmapsV1_9
74
- >[] = [
75
- {
76
- target: srcToken.address,
77
- callData: erc20Interface.encodeFunctionData('balanceOf', [poolAddress]),
78
- decodeFunction: uint256ToBigInt,
79
- },
80
- {
81
- target: destToken.address,
82
- callData: erc20Interface.encodeFunctionData('balanceOf', [poolAddress]),
83
- decodeFunction: uint256ToBigInt,
84
- },
85
- {
86
- target: stateMultiContract.options.address,
87
- callData: stateMultiContract.methods
88
- .getFullStateWithRelativeBitmaps(
89
- factoryAddress,
90
- srcToken.address,
91
- destToken.address,
92
- getBitmapRangeToRequest(),
93
- getBitmapRangeToRequest(),
94
- )
95
- .encodeABI(),
96
- decodeFunction: decodeStateMultiCallResultWithRelativeBitmapsV1_9,
97
- },
98
- ];
99
-
100
- const [resBalance0, resBalance1, resState] = await multiWrapper.tryAggregate<
101
- bigint | DecodedStateMultiCallResultWithRelativeBitmapsV1_9
102
- >(false, callData, blockNumber, multiWrapper.defaultBatchSize, false);
103
-
104
- const [balance0, balance1, _state] = [
105
- resBalance0.returnData,
106
- resBalance1.returnData,
107
- resState.returnData,
108
- ] as [bigint, bigint, DecodedStateMultiCallResultWithRelativeBitmapsV1_9];
109
-
110
- return [balance0, balance1, _state];
111
- }
112
-
113
- async function fetchPoolStateSingleStep(
114
- blockNumber: number,
115
- ): Promise<
116
- [bigint, bigint, DecodedStateMultiCallResultWithRelativeBitmapsV1_1]
117
- > {
118
- const callData: MultiCallParams<
119
- bigint | DecodedStateMultiCallResultWithRelativeBitmapsV1_1
120
- >[] = [
121
- {
122
- target: srcToken.address,
123
- callData: erc20Interface.encodeFunctionData('balanceOf', [poolAddress]),
124
- decodeFunction: uint256ToBigInt,
125
- },
126
- {
127
- target: destToken.address,
128
- callData: erc20Interface.encodeFunctionData('balanceOf', [poolAddress]),
129
- decodeFunction: uint256ToBigInt,
130
- },
131
- {
132
- target: stateMultiContract.options.address,
133
- callData: stateMultiContract.methods
134
- .getFullStateWithRelativeBitmaps(
135
- factoryAddress,
136
- srcToken.address,
137
- destToken.address,
138
- getBitmapRangeToRequest(),
139
- getBitmapRangeToRequest(),
140
- )
141
- .encodeABI(),
142
- decodeFunction: decodeStateMultiCallResultWithRelativeBitmapsV1_1,
143
- },
144
- ];
145
-
146
- const [resBalance0, resBalance1, resState] = await multiWrapper.tryAggregate<
147
- bigint | DecodedStateMultiCallResultWithRelativeBitmapsV1_1
148
- >(false, callData, blockNumber, multiWrapper.defaultBatchSize, false);
149
-
150
- assert(resState.success, 'Pool does not exist');
151
-
152
- const [balance0, balance1, _state] = [
153
- resBalance0.returnData,
154
- resBalance1.returnData,
155
- resState.returnData,
156
- ] as [bigint, bigint, DecodedStateMultiCallResultWithRelativeBitmapsV1_1];
157
-
158
- return [balance0, balance1, _state];
159
- }
160
-
161
- function preprocessField(value: any): string {
162
- // const _v = ethers.BigNumber.from(value);
163
- return value.toString();
164
- // if (
165
- // typeof value === 'bigint' ||
166
- // typeof value === 'number' ||
167
- // ethers.BigNumber.isBigNumber(value)
168
- // ) {
169
- // return value.toString();
170
- // }
171
- // return value;
172
- }
173
-
174
- function compareAndLogDifferences<T extends object, Y extends object>(
175
- obj1: T,
176
- obj2: Y,
177
- keyNames: Array<keyof T & keyof Y>,
178
- checkEachKey = false,
179
- ) {
180
- let isValid = true;
181
- let keys = keyNames;
182
-
183
- if (checkEachKey) {
184
- // find common keys
185
- const keys1 = Object.keys(obj1);
186
- const keys2 = new Set(Object.keys(obj2));
187
- keys = keys1.filter(key => keys2.has(key)) as Array<keyof T & keyof Y>;
188
- }
189
-
190
- for (let fieldName of keys) {
191
- const value1 = preprocessField(obj1[fieldName]);
192
- const value2 = preprocessField(obj2[fieldName]);
193
-
194
- if (value1 !== value2) {
195
- console.log(
196
- `${fieldName.toString()} mismatch: actual: ${value1} vs pool: ${value2}`,
197
- );
198
- isValid = false;
199
- }
200
- }
201
-
202
- return isValid;
203
- }
204
-
205
- async function isPoolStateEqualToReal(
206
- state: PoolState_v1_9,
207
- blockNumber: number,
208
- ) {
209
- // const [balance0, balance1, contractState] =
210
- // await _fetchPoolState_v1_9SingleStep(blockNumber);
211
-
212
- const [balance0, balance1, contractState] = await fetchPoolStateSingleStep(
213
- blockNumber,
214
- );
215
-
216
- const isValidBalances = compareAndLogDifferences(
217
- state,
218
- { balance0, balance1, ...contractState },
219
- ['balance0', 'balance1', 'liquidity', 'tickSpacing'],
220
- );
221
-
222
- const isValidGlobalState = compareAndLogDifferences(
223
- state.globalState,
224
- contractState.globalState,
225
- // can check only for one of them, because they are directly co-related
226
- ['price', 'tick'],
227
- );
228
-
229
- const isValidTickBitmap = compareAndLogDifferences(
230
- state.tickBitmap,
231
- contractState.tickBitmap.reduce((acc, val) => {
232
- // @ts-ignore
233
- acc[val.index] = val.value;
234
- return acc;
235
- }, {} as Record<string, bigint>),
236
- [],
237
- true,
238
- );
239
-
240
- let isValidTicks = true;
241
- for (let tick of contractState.ticks) {
242
- const stateTick = state?.ticks[tick.index];
243
- if (stateTick) {
244
- const isValidTick = compareAndLogDifferences(stateTick, tick.value, [
245
- 'liquidityGross',
246
- 'liquidityNet',
247
- // next fields doesn't affect pricing, so skip checks
248
- // 'initialized',
249
- // 'secondsOutside',
250
- // 'secondsPerLiquidityOutsideX128',
251
- // 'tickCumulativeOutside'
252
- ]);
253
-
254
- if (isValidTicks && !isValidTick) {
255
- isValidTicks = false;
256
- }
257
- }
258
- }
259
-
260
- return (
261
- isValidBalances && isValidGlobalState && isValidTicks && isValidTickBitmap
262
- );
263
- }
264
-
265
- async function checkPoolStateForBlockRange(
266
- startBlockNumber: number,
267
- endBlockNumber: number,
268
- ): Promise<boolean> {
269
- // const network = Network.ARBITRUM;
270
- // const dexKey = 'CamelotV3';
271
- const network = Network.GNOSIS;
272
- const dexKey = 'SwaprV3';
273
- const dexHelper = new DummyDexHelper(network);
274
-
275
- const algebra = new Algebra(network, dexKey, dexHelper);
276
- const pool = await algebra.getPool(
277
- srcToken.address,
278
- destToken.address,
279
- startBlockNumber,
280
- );
281
-
282
- const logsToDispatch = await dexHelper.provider.getLogs({
283
- fromBlock: startBlockNumber,
284
- toBlock: endBlockNumber,
285
- address: poolAddress,
286
- });
287
-
288
- console.log(logsToDispatch.length);
289
-
290
- // group logs by block number
291
- const logsByBlockNumber: Record<number, any[]> = {};
292
- for (let log of logsToDispatch) {
293
- if (!logsByBlockNumber[log.blockNumber]) {
294
- logsByBlockNumber[log.blockNumber] = [];
295
- }
296
- logsByBlockNumber[log.blockNumber].push(log);
297
- }
298
-
299
- const sortedBlocks = Object.keys(logsByBlockNumber)
300
- .map(Number)
301
- .sort((a, b) => Number(a) - Number(b));
302
-
303
- for (let blockNumber of sortedBlocks) {
304
- if (!blockHeaders[blockNumber]) {
305
- blockHeaders[blockNumber] = await dexHelper.web3Provider.eth.getBlock(
306
- blockNumber,
307
- );
308
- }
309
-
310
- // await pool?.update(logsByBlockNumber[blockNumber], {
311
- // [blockNumber]: blockHeaders[blockNumber],
312
- // });
313
-
314
- const stateBeforeLog1 = pool?.getState(blockNumber) as PoolState_v1_9;
315
- await pool?.update([logsByBlockNumber[blockNumber][0]], {
316
- [blockNumber]: blockHeaders[blockNumber],
317
- });
318
-
319
- const stateAfterLog1 = pool?.getState(blockNumber) as PoolState_v1_9;
320
- await pool?.update([logsByBlockNumber[blockNumber][1]], {
321
- [blockNumber]: blockHeaders[blockNumber],
322
- });
323
-
324
- const stateAfterLog2 = pool?.getState(blockNumber) as PoolState_v1_9;
325
- }
326
-
327
- const state = pool?.getState(startBlockNumber) as PoolState_v1_9;
328
- return isPoolStateEqualToReal(state, endBlockNumber);
329
- }
330
-
331
- async function findBreakingBlock(startBlock: number, endBlock: number) {
332
- let left = startBlock;
333
- let right = endBlock;
334
-
335
- // If the state is valid at the start, then there's no breaking block in the range
336
- if (await checkPoolStateForBlockRange(left, right)) {
337
- return -1; // Indicates no breaking block found
338
- }
339
-
340
- while (left <= right) {
341
- const mid = left + Math.floor((right - left) / 2);
342
- const isValid = await checkPoolStateForBlockRange(startBlock, mid);
343
-
344
- if (isValid) {
345
- // If the state is valid up to mid, the issue must be in the second half
346
- left = mid + 1;
347
- } else {
348
- // If the state is not valid up to mid, the issue is in the first half
349
- // But we need to check if mid is the first occurrence of the issue
350
- if (
351
- mid === startBlock ||
352
- (await checkPoolStateForBlockRange(startBlock, mid - 1))
353
- ) {
354
- return mid; // Found the breaking block
355
- }
356
- right = mid - 1;
357
- }
358
- }
359
-
360
- return -1; // Should not reach here if there's a breaking block
361
- }
362
-
363
- // set timeout to 5 min
364
- jest.setTimeout(300000);
365
-
366
- describe('Algebra Pool State Validation', () => {
367
- it('should validate pool state for a block range', async () => {
368
- const isValid = await checkPoolStateForBlockRange(36886183, 36886186);
369
- expect(isValid).toBe(true);
370
- });
371
- });
372
-
373
- async function main() {
374
- // use findBreakingBlock to find the block where the state is broken
375
- // console.log(await findBreakingBlock(startBlockNumber, endBlockNumber));
376
- // previously broken block 150502863
377
- console.log(await checkPoolStateForBlockRange(36886183, 36886186));
378
- // console.log(await checkPoolStateForBlockRange(152087800, 152287800));
379
- // console.log(await checkPoolStateForBlockRange(152100945, 152100947));
380
- }
381
-
382
- // main()
383
- // .then(() => console.log('Done'))
384
- // .catch(e => console.error(e));