@paraswap/dex-lib 2.48.2 → 2.48.3

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 (326) hide show
  1. package/build/abi/Redstone.json +739 -0
  2. package/build/abi/angle/stagToken.json +963 -0
  3. package/build/abi/angle-transmuter/Pyth.json +1534 -0
  4. package/build/abi/angle-transmuter/Transmuter.json +1719 -0
  5. package/build/abi/pharaoh/PharaohPool.abi.json +1582 -0
  6. package/build/abi/smardex/smardex-factory.json +185 -0
  7. package/build/abi/smardex/smardex-pool.json +578 -0
  8. package/build/abi/smardex/smardex-router.json +648 -0
  9. package/build/abi/trader-joe-v2_1/FactoryABI.json +1208 -0
  10. package/build/abi/trader-joe-v2_1/PairABI.json +1493 -0
  11. package/build/abi/trader-joe-v2_1/RouterABI.json +1489 -0
  12. package/build/abi/trader-joe-v2_1/StateMulticall.json +193 -0
  13. package/build/abi/wombat/pool.json +1289 -0
  14. package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +53 -0
  15. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +175 -0
  16. package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +1 -0
  17. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +42 -0
  18. package/build/dex/angle-staked-stable/angle-staked-stable.js +232 -0
  19. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -0
  20. package/build/dex/{sushiswap-v3 → angle-staked-stable}/config.d.ts +2 -2
  21. package/build/dex/angle-staked-stable/config.js +26 -0
  22. package/build/dex/angle-staked-stable/config.js.map +1 -0
  23. package/build/dex/angle-staked-stable/types.d.ts +15 -0
  24. package/build/dex/angle-staked-stable/types.js.map +1 -0
  25. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +43 -0
  26. package/build/dex/angle-transmuter/angle-transmuter-pool.js +309 -0
  27. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +1 -0
  28. package/build/dex/{lighter-v1/lighter-v1.d.ts → angle-transmuter/angle-transmuter.d.ts} +18 -17
  29. package/build/dex/angle-transmuter/angle-transmuter.js +233 -0
  30. package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -0
  31. package/build/dex/angle-transmuter/backedOracle.d.ts +19 -0
  32. package/build/dex/angle-transmuter/backedOracle.js +56 -0
  33. package/build/dex/angle-transmuter/backedOracle.js.map +1 -0
  34. package/build/dex/{woo-fi → angle-transmuter}/config.d.ts +1 -1
  35. package/build/dex/angle-transmuter/config.js +20 -0
  36. package/build/dex/angle-transmuter/config.js.map +1 -0
  37. package/build/dex/angle-transmuter/constants.d.ts +4 -0
  38. package/build/dex/angle-transmuter/constants.js +8 -0
  39. package/build/dex/angle-transmuter/constants.js.map +1 -0
  40. package/build/dex/angle-transmuter/pyth.d.ts +19 -0
  41. package/build/dex/angle-transmuter/pyth.js +71 -0
  42. package/build/dex/angle-transmuter/pyth.js.map +1 -0
  43. package/build/dex/angle-transmuter/redstone.d.ts +20 -0
  44. package/build/dex/angle-transmuter/redstone.js +73 -0
  45. package/build/dex/angle-transmuter/redstone.js.map +1 -0
  46. package/build/dex/angle-transmuter/transmuter.d.ts +50 -0
  47. package/build/dex/angle-transmuter/transmuter.js +314 -0
  48. package/build/dex/angle-transmuter/transmuter.js.map +1 -0
  49. package/build/dex/angle-transmuter/types.d.ts +144 -0
  50. package/build/dex/angle-transmuter/types.js +31 -0
  51. package/build/dex/angle-transmuter/types.js.map +1 -0
  52. package/build/dex/angle-transmuter/utils.d.ts +9 -0
  53. package/build/dex/angle-transmuter/utils.js +264 -0
  54. package/build/dex/angle-transmuter/utils.js.map +1 -0
  55. package/build/dex/smardex/subgraph-queries.d.ts +1 -0
  56. package/build/dex/smardex/subgraph-queries.js +17 -0
  57. package/build/dex/smardex/subgraph-queries.js.map +1 -0
  58. package/build/dex/smardex/usd-reserves.d.ts +23 -0
  59. package/build/dex/smardex/usd-reserves.js +86 -0
  60. package/build/dex/smardex/usd-reserves.js.map +1 -0
  61. package/build/dex/solidly-v3/contract-math/Tick.js.map +1 -1
  62. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js +4 -4
  63. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js.map +1 -1
  64. package/build/dex/{lighter-v1 → trader-joe-v2-1-2}/config.d.ts +1 -1
  65. package/build/dex/trader-joe-v2-1-2/config.js +47 -0
  66. package/build/dex/trader-joe-v2-1-2/config.js.map +1 -0
  67. package/build/dex/trader-joe-v2-1-2/constants.d.ts +20 -0
  68. package/build/dex/trader-joe-v2-1-2/constants.js +22 -0
  69. package/build/dex/trader-joe-v2-1-2/constants.js.map +1 -0
  70. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +37 -0
  71. package/build/dex/trader-joe-v2-1-2/math/index.js +291 -0
  72. package/build/dex/trader-joe-v2-1-2/math/index.js.map +1 -0
  73. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +60 -0
  74. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +248 -0
  75. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +1 -0
  76. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +53 -0
  77. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +307 -0
  78. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +1 -0
  79. package/build/dex/trader-joe-v2-1-2/types.d.ts +82 -0
  80. package/build/dex/trader-joe-v2-1-2/types.js +9 -0
  81. package/build/dex/trader-joe-v2-1-2/types.js.map +1 -0
  82. package/build/dex/{ramses-v2 → trader-joe-v2_1}/config.d.ts +1 -1
  83. package/build/dex/trader-joe-v2_1/config.js +47 -0
  84. package/build/dex/trader-joe-v2_1/config.js.map +1 -0
  85. package/build/dex/trader-joe-v2_1/constants.d.ts +20 -0
  86. package/build/dex/trader-joe-v2_1/constants.js +22 -0
  87. package/build/dex/trader-joe-v2_1/constants.js.map +1 -0
  88. package/build/dex/trader-joe-v2_1/math/index.d.ts +37 -0
  89. package/build/dex/trader-joe-v2_1/math/index.js +291 -0
  90. package/build/dex/trader-joe-v2_1/math/index.js.map +1 -0
  91. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  92. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +384 -0
  93. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +1 -0
  94. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +60 -0
  95. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +247 -0
  96. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +1 -0
  97. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +53 -0
  98. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +307 -0
  99. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +1 -0
  100. package/build/dex/trader-joe-v2_1/types.d.ts +82 -0
  101. package/build/dex/trader-joe-v2_1/types.js +9 -0
  102. package/build/dex/trader-joe-v2_1/types.js.map +1 -0
  103. package/build/dex/uniswap-v3/config.js +20 -1
  104. package/build/dex/uniswap-v3/config.js.map +1 -1
  105. package/build/dex/uniswap-v3/uniswap-v3.js +1 -0
  106. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  107. package/build/dex/wombat/wombat-pool-poller.d.ts +22 -0
  108. package/build/dex/wombat/wombat-pool-poller.js +164 -0
  109. package/build/dex/wombat/wombat-pool-poller.js.map +1 -0
  110. package/build/dex-helper/Cache.d.ts +31 -0
  111. package/build/dex-helper/Cache.js +106 -0
  112. package/build/dex-helper/Cache.js.map +1 -0
  113. package/build/dex-helper/RedisBatcher.d.ts +20 -0
  114. package/build/dex-helper/RedisBatcher.js +75 -0
  115. package/build/dex-helper/RedisBatcher.js.map +1 -0
  116. package/build/dex-helper/RedisWrapper.d.ts +37 -0
  117. package/build/dex-helper/RedisWrapper.js +165 -0
  118. package/build/dex-helper/RedisWrapper.js.map +1 -0
  119. package/package.json +1 -1
  120. package/src/dex/solidly-v3/contract-math/Tick.ts +1 -4
  121. package/src/dex/solidly-v3/contract-math/uniswap-v3-math.ts +6 -14
  122. package/src/dex/solidly-v3/solidly-v3-events.test.ts +9 -7
  123. package/src/dex/uniswap-v3/config.ts +22 -1
  124. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +25 -0
  125. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +147 -0
  126. package/src/dex/uniswap-v3/uniswap-v3.ts +1 -0
  127. package/.idea/aws.xml +0 -17
  128. package/.idea/codeStyles/Project.xml +0 -19
  129. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  130. package/.idea/misc.xml +0 -6
  131. package/.idea/modules.xml +0 -8
  132. package/.idea/paraswap-dex-lib.iml +0 -9
  133. package/.idea/prettier.xml +0 -7
  134. package/.idea/vcs.xml +0 -6
  135. package/build/abi/AugustusV6.abi.json +0 -395
  136. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  137. package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
  138. package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
  139. package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
  140. package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
  141. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  142. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
  143. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  144. package/build/abi/wBETH.json +0 -1527
  145. package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
  146. package/build/abi/woo-fi/WooPP.abi.json +0 -548
  147. package/build/abi/woo-fi/Wooracle.abi.json +0 -260
  148. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  149. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  150. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  151. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  152. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  153. package/build/dex/algebra/algebra-pool.d.ts +0 -114
  154. package/build/dex/algebra/algebra-pool.js +0 -448
  155. package/build/dex/algebra/algebra-pool.js.map +0 -1
  156. package/build/dex/balancer-v2/Gyro3Pool.d.ts +0 -43
  157. package/build/dex/balancer-v2/Gyro3Pool.js +0 -160
  158. package/build/dex/balancer-v2/Gyro3Pool.js.map +0 -1
  159. package/build/dex/balancer-v2/LinearMath.d.ts +0 -88
  160. package/build/dex/balancer-v2/LinearMath.js +0 -285
  161. package/build/dex/balancer-v2/LinearMath.js.map +0 -1
  162. package/build/dex/balancer-v2/LinearPool.d.ts +0 -81
  163. package/build/dex/balancer-v2/LinearPool.js +0 -444
  164. package/build/dex/balancer-v2/LinearPool.js.map +0 -1
  165. package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -90
  166. package/build/dex/balancer-v2/PhantomStablePool.js +0 -418
  167. package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
  168. package/build/dex/balancer-v2/StableMath.d.ts +0 -9
  169. package/build/dex/balancer-v2/StableMath.js +0 -272
  170. package/build/dex/balancer-v2/StableMath.js.map +0 -1
  171. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -140
  172. package/build/dex/balancer-v2/balancer-v2-pool.js +0 -647
  173. package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
  174. package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
  175. package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
  176. package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
  177. package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
  178. package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
  179. package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
  180. package/build/dex/lighter-v1/abi/erc20.json +0 -222
  181. package/build/dex/lighter-v1/abi/factory.json +0 -291
  182. package/build/dex/lighter-v1/abi/order_book.json +0 -594
  183. package/build/dex/lighter-v1/abi/order_book_helper.json +0 -176
  184. package/build/dex/lighter-v1/abi/router.json +0 -488
  185. package/build/dex/lighter-v1/config.js +0 -17
  186. package/build/dex/lighter-v1/config.js.map +0 -1
  187. package/build/dex/lighter-v1/constants.d.ts +0 -2
  188. package/build/dex/lighter-v1/constants.js +0 -13
  189. package/build/dex/lighter-v1/constants.js.map +0 -1
  190. package/build/dex/lighter-v1/lighter-v1-pool.d.ts +0 -57
  191. package/build/dex/lighter-v1/lighter-v1-pool.js +0 -310
  192. package/build/dex/lighter-v1/lighter-v1-pool.js.map +0 -1
  193. package/build/dex/lighter-v1/lighter-v1.js +0 -331
  194. package/build/dex/lighter-v1/lighter-v1.js.map +0 -1
  195. package/build/dex/lighter-v1/types.d.ts +0 -40
  196. package/build/dex/lighter-v1/types.js +0 -3
  197. package/build/dex/lighter-v1/types.js.map +0 -1
  198. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  199. package/build/dex/pancakeswap-v3/types.js +0 -3
  200. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  201. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  202. package/build/dex/quickswap/camelot-v3.js +0 -19
  203. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  204. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  205. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  206. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
  207. package/build/dex/quickswap-v3.d.ts +0 -21
  208. package/build/dex/quickswap-v3.js +0 -40
  209. package/build/dex/quickswap-v3.js.map +0 -1
  210. package/build/dex/ramses-v2/config.js +0 -28
  211. package/build/dex/ramses-v2/config.js.map +0 -1
  212. package/build/dex/ramses-v2/constants.d.ts +0 -28
  213. package/build/dex/ramses-v2/constants.js +0 -35
  214. package/build/dex/ramses-v2/constants.js.map +0 -1
  215. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
  216. package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
  217. package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
  218. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
  219. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
  220. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
  221. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
  222. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
  223. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
  224. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
  225. package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
  226. package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
  227. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
  228. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
  229. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
  230. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
  231. package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
  232. package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
  233. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
  234. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
  235. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
  236. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
  237. package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
  238. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
  239. package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
  240. package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
  241. package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
  242. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
  243. package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
  244. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
  245. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
  246. package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
  247. package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
  248. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
  249. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
  250. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
  251. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
  252. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
  253. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
  254. package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
  255. package/build/dex/ramses-v2/contract-math/utils.js +0 -16
  256. package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
  257. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
  258. package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
  259. package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
  260. package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
  261. package/build/dex/ramses-v2/ramses-v2.js +0 -690
  262. package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
  263. package/build/dex/ramses-v2/types.d.ts +0 -154
  264. package/build/dex/ramses-v2/types.js +0 -9
  265. package/build/dex/ramses-v2/types.js.map +0 -1
  266. package/build/dex/ramses-v2/utils.d.ts +0 -6
  267. package/build/dex/ramses-v2/utils.js +0 -71
  268. package/build/dex/ramses-v2/utils.js.map +0 -1
  269. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  270. package/build/dex/solidly/forks-override/fvm.js +0 -42
  271. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  272. package/build/dex/sushiswap-v3/config.js +0 -132
  273. package/build/dex/sushiswap-v3/config.js.map +0 -1
  274. package/build/dex/sushiswap-v3/constants.d.ts +0 -4
  275. package/build/dex/sushiswap-v3/constants.js +0 -32
  276. package/build/dex/sushiswap-v3/constants.js.map +0 -1
  277. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
  278. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
  279. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
  280. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
  281. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
  282. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
  283. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
  284. package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
  285. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
  286. package/build/dex/sushiswap-v3/token.d.ts +0 -6
  287. package/build/dex/sushiswap-v3/token.js +0 -23
  288. package/build/dex/sushiswap-v3/token.js.map +0 -1
  289. package/build/dex/sushiswap-v3/types.d.ts +0 -15
  290. package/build/dex/sushiswap-v3/types.js +0 -18
  291. package/build/dex/sushiswap-v3/types.js.map +0 -1
  292. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
  293. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
  294. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
  295. package/build/dex/woo-fi/config.js +0 -141
  296. package/build/dex/woo-fi/config.js.map +0 -1
  297. package/build/dex/woo-fi/constants.d.ts +0 -5
  298. package/build/dex/woo-fi/constants.js +0 -20
  299. package/build/dex/woo-fi/constants.js.map +0 -1
  300. package/build/dex/woo-fi/types.d.ts +0 -48
  301. package/build/dex/woo-fi/types.js.map +0 -1
  302. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
  303. package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
  304. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
  305. package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
  306. package/build/dex/woo-fi/woo-fi-math.js +0 -300
  307. package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
  308. package/build/dex/woo-fi/woo-fi.d.ts +0 -65
  309. package/build/dex/woo-fi/woo-fi.js +0 -480
  310. package/build/dex/woo-fi/woo-fi.js.map +0 -1
  311. package/build/executor/Executor01BytecodeBuilder.d.ts +0 -77
  312. package/build/executor/Executor01BytecodeBuilder.js +0 -359
  313. package/build/executor/Executor01BytecodeBuilder.js.map +0 -1
  314. package/build/executor/Executor02BytecodeBuilder.d.ts +0 -12
  315. package/build/executor/Executor02BytecodeBuilder.js +0 -14
  316. package/build/executor/Executor02BytecodeBuilder.js.map +0 -1
  317. package/build/executor/ExecutorDetector.d.ts +0 -28
  318. package/build/executor/ExecutorDetector.js +0 -89
  319. package/build/executor/ExecutorDetector.js.map +0 -1
  320. package/build/executor/IExecutorBytecodeBuilder.d.ts +0 -6
  321. package/build/executor/IExecutorBytecodeBuilder.js +0 -3
  322. package/build/executor/IExecutorBytecodeBuilder.js.map +0 -1
  323. package/build/generic-swap-transaction-builder.d.ts +0 -39
  324. package/build/generic-swap-transaction-builder.js +0 -156
  325. package/build/generic-swap-transaction-builder.js.map +0 -1
  326. /package/build/dex/{woo-fi → angle-staked-stable}/types.js +0 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DexlibCache = void 0;
7
+ const node_cache_1 = __importDefault(require("node-cache"));
8
+ const RedisWrapper_1 = __importDefault(require("./RedisWrapper"));
9
+ class DexlibCache {
10
+ constructor() {
11
+ this._constructCacheKey = (dexKey, network, cacheKey) => `${dexKey}_${network}_${cacheKey}`;
12
+ this.localCache = new node_cache_1.default();
13
+ }
14
+ get(dexKey, network, cacheKey) {
15
+ const key = this._constructCacheKey(dexKey, network, cacheKey);
16
+ return RedisWrapper_1.default.get(key);
17
+ }
18
+ del(dexKey, network, cacheKey) {
19
+ const key = this._constructCacheKey(dexKey, network, cacheKey);
20
+ return RedisWrapper_1.default.del(key);
21
+ }
22
+ rawget(key) {
23
+ return RedisWrapper_1.default.get(key);
24
+ }
25
+ async rawset(key, value, ttl) {
26
+ return RedisWrapper_1.default.setex(key, ttl, value);
27
+ }
28
+ rawdel(key) {
29
+ return RedisWrapper_1.default.del(key).then(() => { });
30
+ }
31
+ setex(dexKey, network, cacheKey, ttlSeconds, value) {
32
+ const key = this._constructCacheKey(dexKey, network, cacheKey);
33
+ return RedisWrapper_1.default.setex(key, ttlSeconds, value).then(() => { });
34
+ }
35
+ async getAndCacheLocally(dexKey, network, cacheKey, ttlSeconds) {
36
+ const key = this._constructCacheKey(dexKey, network, cacheKey);
37
+ const locallyCached = this.localCache.get(key);
38
+ if (locallyCached)
39
+ return locallyCached;
40
+ const remotelyCached = await this.get(dexKey, network, cacheKey);
41
+ if (!remotelyCached)
42
+ return null;
43
+ this.localCache.set(key, remotelyCached, ttlSeconds);
44
+ return remotelyCached;
45
+ }
46
+ async setexAndCacheLocally(dexKey, network, cacheKey, ttlSeconds, value) {
47
+ const setExStatus = await this.setex(dexKey, network, cacheKey, ttlSeconds, value);
48
+ const key = this._constructCacheKey(dexKey, network, cacheKey);
49
+ this.localCache.set(key, value, ttlSeconds);
50
+ return setExStatus;
51
+ }
52
+ async zremrangebyscore(key, min, max) {
53
+ return RedisWrapper_1.default.zremrangebyscore(key, min, max);
54
+ }
55
+ async zadd(key, bulkItemsToAdd, option) {
56
+ return RedisWrapper_1.default.zadd(key, bulkItemsToAdd, option);
57
+ }
58
+ async zrem(key, membersKeys) {
59
+ return RedisWrapper_1.default.zrem(key, membersKeys);
60
+ }
61
+ zscore(setKey, key) {
62
+ return RedisWrapper_1.default.zscore(setKey, key);
63
+ }
64
+ async hset(mapKey, key, value) {
65
+ return RedisWrapper_1.default.hset(mapKey, {
66
+ [key]: value,
67
+ }).then(() => { });
68
+ }
69
+ async hmset(mapKey, mappings) {
70
+ return RedisWrapper_1.default.hset(mapKey, mappings).then(() => { });
71
+ }
72
+ hdel(mapKey, keys) {
73
+ return RedisWrapper_1.default.hdel(mapKey, keys);
74
+ }
75
+ hget(mapKey, key) {
76
+ return RedisWrapper_1.default.hget(mapKey, key);
77
+ }
78
+ hmget(mapKey, keys) {
79
+ return RedisWrapper_1.default.hmget(mapKey, keys);
80
+ }
81
+ hgetAll(mapKey) {
82
+ return RedisWrapper_1.default.hgetAll(mapKey);
83
+ }
84
+ async publish(channel, msg) {
85
+ // return apiPubSub.publish(channel, msg);
86
+ }
87
+ subscribe(channel, cb) {
88
+ return () => { };
89
+ // return apiPubSub.subscribe(channel, cb);
90
+ }
91
+ addBatchHGet(mapKey, key, cb) {
92
+ return;
93
+ }
94
+ async sadd(setKey, key) {
95
+ await RedisWrapper_1.default.sadd(setKey, [key]);
96
+ }
97
+ async sismember(setKey, key) {
98
+ let res = await RedisWrapper_1.default.sismember(setKey, key);
99
+ return res === 1;
100
+ }
101
+ async init() {
102
+ await RedisWrapper_1.default.connect().catch(err => `Could not connect to redis: ${err}`);
103
+ }
104
+ }
105
+ exports.DexlibCache = DexlibCache;
106
+ //# sourceMappingURL=Cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../src/dex-helper/Cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ChainableCommander } from 'ioredis';
2
+ export declare type BatchedCmd = {
3
+ makeCmd: (chain: ChainableCommander) => void;
4
+ cb: (result: string | null) => boolean;
5
+ };
6
+ declare class DexlibRedisBatcher {
7
+ private intervalTimeMs;
8
+ private interval?;
9
+ private _lastLoggedAt;
10
+ private isAlreadyRunning;
11
+ private cmds;
12
+ private tmpCmds;
13
+ constructor(intervalTimeMs: number);
14
+ enable(): void;
15
+ disable(): void;
16
+ addCmd(cmd: BatchedCmd): void;
17
+ execute(): Promise<void>;
18
+ }
19
+ export declare const redisBatcher: DexlibRedisBatcher;
20
+ export {};
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.redisBatcher = void 0;
7
+ const RedisWrapper_1 = __importDefault(require("./RedisWrapper"));
8
+ const REDIS_BATCHER_INTERVAL_MS = 100;
9
+ const LOG_PERIOD_MS = 10 * 1000;
10
+ const logger = console;
11
+ class DexlibRedisBatcher {
12
+ constructor(intervalTimeMs) {
13
+ this.intervalTimeMs = intervalTimeMs;
14
+ this._lastLoggedAt = 0;
15
+ this.isAlreadyRunning = false;
16
+ this.cmds = [];
17
+ this.tmpCmds = [];
18
+ }
19
+ enable() {
20
+ this.interval = setInterval(this.execute.bind(this), this.intervalTimeMs);
21
+ }
22
+ disable() {
23
+ if (this.interval) {
24
+ clearInterval(this.interval);
25
+ this.interval = undefined;
26
+ }
27
+ }
28
+ addCmd(cmd) {
29
+ this.tmpCmds.push(cmd);
30
+ }
31
+ async execute() {
32
+ if (this.isAlreadyRunning) {
33
+ return;
34
+ }
35
+ try {
36
+ this.isAlreadyRunning = true;
37
+ const cmdsCount = this.tmpCmds.length + this.cmds.length;
38
+ if (cmdsCount === 0) {
39
+ return;
40
+ }
41
+ logger.trace(`execute ${cmdsCount} cmds`);
42
+ this.tmpCmds.forEach(cmd => this.cmds.push(cmd));
43
+ this.tmpCmds.length = 0;
44
+ const results = await RedisWrapper_1.default.batchReadOnlyCmds(this.cmds);
45
+ this.cmds = this.cmds.filter((cmd, index) => {
46
+ if (!results) {
47
+ logger.error('no results');
48
+ return true;
49
+ }
50
+ const res = results[index];
51
+ if (!res) {
52
+ logger.error('error in execute empty result');
53
+ return true;
54
+ }
55
+ if (res[0]) {
56
+ logger.error('error in execute, res[0] =', res[0]);
57
+ return true;
58
+ }
59
+ return !cmd.cb(res[1]);
60
+ });
61
+ if (this.cmds.length && Date.now() - this._lastLoggedAt > LOG_PERIOD_MS) {
62
+ logger.info(`still some cmds to run ${this.cmds.length}`);
63
+ this._lastLoggedAt = Date.now();
64
+ }
65
+ }
66
+ catch (e) {
67
+ logger.error('error in execute:', e);
68
+ }
69
+ finally {
70
+ this.isAlreadyRunning = false;
71
+ }
72
+ }
73
+ }
74
+ exports.redisBatcher = new DexlibRedisBatcher(REDIS_BATCHER_INTERVAL_MS);
75
+ //# sourceMappingURL=RedisBatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisBatcher.js","sourceRoot":"","sources":["../../src/dex-helper/RedisBatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { Redis } from 'ioredis';
2
+ interface Pool<T> extends Array<T> {
3
+ next: () => T;
4
+ }
5
+ export declare class DexlibRedisWrapper {
6
+ static MAX_SCORE_VALUE: number;
7
+ private redisMasterUrl;
8
+ private redisSlavesUrl;
9
+ masterPool: Pool<Redis>;
10
+ slavesPool: Pool<Redis>;
11
+ connect(redisMasterUrl?: string, redisSlavesUrl?: string, connectionPerPool?: number): Promise<void>;
12
+ private _checkConnected;
13
+ checkConnected(): void;
14
+ close(): Promise<void>;
15
+ get(key: string): Promise<string | null>;
16
+ set(key: string, value: string): Promise<"OK">;
17
+ setex(key: string, seconds: number, value: string): Promise<"OK">;
18
+ incrWithTTLSec(key: string, ttlSec: number): Promise<number>;
19
+ sismember(set: string, key: string): Promise<number>;
20
+ publish(channel: string, value: string): Promise<number>;
21
+ subscribe(channel: string, cb: (channel: string, message: string) => void): Promise<unknown>;
22
+ del(key: string): Promise<number>;
23
+ zremrangebyscore(key: string, min: number, max: number): Promise<number>;
24
+ zadd(key: string, bulkItemsToAdd: (number | string)[], option?: 'NX'): Promise<number>;
25
+ zrem(key: string, membersKeys: string[]): Promise<number>;
26
+ zscore(key: string, member: string): Promise<string | null>;
27
+ hset(mapKey: string, mappings: Record<string, string>): Promise<number | undefined>;
28
+ hdel(mapKey: string, keys: string[]): Promise<number>;
29
+ hget(keyMap: string, key: string): Promise<string | null>;
30
+ hmget(keyMap: string, keys: string[]): Promise<(string | null)[]>;
31
+ hgetAll(keyMap: string): Promise<Record<string, string>>;
32
+ zrangebyscore(key: string, min: number, max: number, isWithScores?: boolean): Promise<string[]>;
33
+ zcount(key: string, min: number, max: number): Promise<number>;
34
+ sadd(set: string, keys: string[], ttl?: number): Promise<number | [error: Error | null, result: unknown][] | null>;
35
+ }
36
+ declare const _default: DexlibRedisWrapper;
37
+ export default _default;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DexlibRedisWrapper = void 0;
7
+ const ioredis_1 = __importDefault(require("ioredis"));
8
+ const logger = console;
9
+ const IOREDIS_OPTION = {
10
+ enableAutoPipelining: true,
11
+ lazyConnect: true,
12
+ stringNumbers: true,
13
+ };
14
+ function makePool(url, connectionPerPool) {
15
+ const pool = Array.apply(null, new Array(connectionPerPool)).map(() => new ioredis_1.default(url, IOREDIS_OPTION));
16
+ const lastIdx = pool.length - 1;
17
+ pool.idx = 0;
18
+ pool.next = () => {
19
+ const n = pool[pool.idx];
20
+ pool.idx = pool.idx === lastIdx ? 0 : pool.idx + 1;
21
+ return n;
22
+ };
23
+ return pool;
24
+ }
25
+ class DexlibRedisWrapper {
26
+ constructor() {
27
+ this.redisMasterUrl = '';
28
+ this.redisSlavesUrl = '';
29
+ }
30
+ async connect(redisMasterUrl = 'redis://localhost:32768', redisSlavesUrl = 'redis://localhost:32768', connectionPerPool = 5) {
31
+ this.redisMasterUrl = redisMasterUrl;
32
+ this.redisSlavesUrl = redisSlavesUrl;
33
+ this.masterPool = makePool(redisMasterUrl, connectionPerPool);
34
+ this.slavesPool = makePool(redisSlavesUrl, connectionPerPool);
35
+ try {
36
+ logger.info(`Connecting to REDIS... ${this.redisMasterUrl}`);
37
+ await Promise.all([...this.masterPool, ...this.slavesPool].map(redis => redis.connect()));
38
+ logger.info('Connected to REDIS');
39
+ }
40
+ catch (e) {
41
+ logger.error(`Connecting to REDIS ${e}`);
42
+ throw e;
43
+ }
44
+ }
45
+ _checkConnected(redis) {
46
+ if (redis.status !== 'ready') {
47
+ throw new Error('Redis connection down!');
48
+ }
49
+ }
50
+ checkConnected() {
51
+ this.masterPool.forEach(this._checkConnected);
52
+ this.slavesPool.forEach(this._checkConnected);
53
+ }
54
+ async close() {
55
+ try {
56
+ logger.info('Closing REDIS...');
57
+ await Promise.all([...this.masterPool, ...this.slavesPool].map(redis => redis.quit()));
58
+ logger.info('Closed REDIS');
59
+ }
60
+ catch (e) {
61
+ logger.error(`Closing REDIS ${e}`);
62
+ throw e;
63
+ }
64
+ }
65
+ async get(key) {
66
+ return this.slavesPool.next().get(key);
67
+ }
68
+ set(key, value) {
69
+ return this.masterPool.next().set(key, value);
70
+ }
71
+ setex(key, seconds, value) {
72
+ return this.masterPool.next().setex(key, seconds, value);
73
+ }
74
+ async incrWithTTLSec(key, ttlSec) {
75
+ const results = await this.masterPool
76
+ .next()
77
+ .multi()
78
+ .incr(key)
79
+ .expire(key, ttlSec)
80
+ .exec();
81
+ if (!results || results[0] === null) {
82
+ throw new Error(`incrWithTTLSec failed`);
83
+ }
84
+ return parseInt(results[0][1], 10);
85
+ }
86
+ async sismember(set, key) {
87
+ const res = await this.masterPool.next().sismember(set, key);
88
+ return typeof res === 'number' ? res : parseInt(res, 10);
89
+ }
90
+ publish(channel, value) {
91
+ return this.masterPool.next().publish(channel, value);
92
+ }
93
+ subscribe(channel, cb) {
94
+ const redis = new ioredis_1.default(this.redisSlavesUrl, IOREDIS_OPTION);
95
+ redis.on('error', (error) => {
96
+ logger.error(`redis_subscribe_error(${channel}): ${error}`);
97
+ });
98
+ redis.on('connect', () => logger.info(`Redis_subscriber_connected(${channel})`));
99
+ redis.on('message', cb);
100
+ return redis.subscribe(channel);
101
+ }
102
+ async del(key) {
103
+ return this.masterPool.next().del(key);
104
+ }
105
+ async zremrangebyscore(key, min, max) {
106
+ return this.masterPool.next().zremrangebyscore(key, min, max);
107
+ }
108
+ async zadd(key, bulkItemsToAdd, option) {
109
+ return option === undefined
110
+ ? this.masterPool.next().zadd(key, ...bulkItemsToAdd)
111
+ : this.masterPool.next().zadd(key, option, ...bulkItemsToAdd);
112
+ }
113
+ async zrem(key, membersKeys) {
114
+ return this.masterPool.next().zrem(key, membersKeys);
115
+ }
116
+ async zscore(key, member) {
117
+ return this.slavesPool.next().zscore(key, member);
118
+ }
119
+ async hset(mapKey, mappings) {
120
+ if (!Object.keys(mappings).length) {
121
+ return;
122
+ }
123
+ return this.masterPool.next().hset(mapKey, mappings);
124
+ }
125
+ async hdel(mapKey, keys) {
126
+ if (keys.length === 0) {
127
+ return 0;
128
+ }
129
+ return this.masterPool.next().hdel(mapKey, ...keys);
130
+ }
131
+ async hget(keyMap, key) {
132
+ return this.slavesPool.next().hget(keyMap, key);
133
+ }
134
+ async hmget(keyMap, keys) {
135
+ return this.slavesPool.next().hmget(keyMap, ...keys);
136
+ }
137
+ async hgetAll(keyMap) {
138
+ return this.slavesPool.next().hgetall(keyMap);
139
+ }
140
+ async zrangebyscore(key, min, max, isWithScores = false) {
141
+ return isWithScores
142
+ ? this.slavesPool.next().zrangebyscore(key, min, max, 'WITHSCORES')
143
+ : this.slavesPool.next().zrangebyscore(key, min, max);
144
+ }
145
+ async zcount(key, min, max) {
146
+ return this.slavesPool.next().zcount(key, min, max);
147
+ }
148
+ async sadd(set, keys, ttl) {
149
+ if (ttl) {
150
+ return this.masterPool
151
+ .next()
152
+ .multi()
153
+ .sadd(set, keys)
154
+ .expire(set, ttl)
155
+ .exec();
156
+ }
157
+ else {
158
+ return this.masterPool.next().sadd(set, keys);
159
+ }
160
+ }
161
+ }
162
+ exports.DexlibRedisWrapper = DexlibRedisWrapper;
163
+ DexlibRedisWrapper.MAX_SCORE_VALUE = 9007199254740991;
164
+ exports.default = new DexlibRedisWrapper();
165
+ //# sourceMappingURL=RedisWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisWrapper.js","sourceRoot":"","sources":["../../src/dex-helper/RedisWrapper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "2.48.2",
3
+ "version": "2.48.3",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -56,10 +56,7 @@ export class Tick {
56
56
  delete state.ticks[Number(tick)];
57
57
  }
58
58
 
59
- static cross(
60
- ticks: Record<NumberAsString, TickInfo>,
61
- tick: bigint,
62
- ): bigint {
59
+ static cross(ticks: Record<NumberAsString, TickInfo>, tick: bigint): bigint {
63
60
  const info = ticks[Number(tick)];
64
61
  return info.liquidityNet;
65
62
  }
@@ -159,7 +159,6 @@ function _priceComputationCycles(
159
159
 
160
160
  if (state.sqrtPriceX96 === step.sqrtPriceNextX96) {
161
161
  if (step.initialized) {
162
-
163
162
  if (state.amountSpecifiedRemaining === 0n) {
164
163
  const castTickNext = Number(step.tickNext);
165
164
  lastTicksCopy = {
@@ -168,10 +167,7 @@ function _priceComputationCycles(
168
167
  };
169
168
  }
170
169
 
171
- let liquidityNet = Tick.cross(
172
- ticksCopy,
173
- step.tickNext,
174
- );
170
+ let liquidityNet = Tick.cross(ticksCopy, step.tickNext);
175
171
  if (zeroForOne) liquidityNet = -liquidityNet;
176
172
 
177
173
  state.liquidity = LiquidityMath.addDelta(state.liquidity, liquidityNet);
@@ -424,11 +420,7 @@ class UniswapV3Math {
424
420
 
425
421
  if (state.sqrtPriceX96 == step.sqrtPriceNextX96) {
426
422
  if (step.initialized) {
427
-
428
- let liquidityNet = Tick.cross(
429
- poolState.ticks,
430
- step.tickNext,
431
- );
423
+ let liquidityNet = Tick.cross(poolState.ticks, step.tickNext);
432
424
 
433
425
  if (zeroForOne) liquidityNet = -liquidityNet;
434
426
 
@@ -445,10 +437,10 @@ class UniswapV3Math {
445
437
  }
446
438
 
447
439
  if (slot0Start.tick !== newTick) {
448
- [
449
- poolState.slot0.sqrtPriceX96,
450
- poolState.slot0.tick,
451
- ] = [newSqrtPriceX96, newTick];
440
+ [poolState.slot0.sqrtPriceX96, poolState.slot0.tick] = [
441
+ newSqrtPriceX96,
442
+ newTick,
443
+ ];
452
444
  } else {
453
445
  poolState.slot0.sqrtPriceX96 = newSqrtPriceX96;
454
446
  }
@@ -8,9 +8,9 @@ import { Address } from '../../types';
8
8
  import { DummyDexHelper } from '../../dex-helper/index';
9
9
  import { testEventSubscriber } from '../../../tests/utils-events';
10
10
  import { PoolState } from './types';
11
- import {SolidlyV3Config} from "./config";
12
- import {AbiItem} from "web3-utils";
13
- import {Interface} from "@ethersproject/abi";
11
+ import { SolidlyV3Config } from './config';
12
+ import { AbiItem } from 'web3-utils';
13
+ import { Interface } from '@ethersproject/abi';
14
14
  import StateMulticallABI from '../../abi/solidly-v3/SolidlyV3StateMulticall.abi.json';
15
15
  import { decodeStateMultiCallResultWithRelativeBitmaps } from './utils';
16
16
  import ERC20ABI from '../../abi/erc20.json';
@@ -81,17 +81,19 @@ describe('SolidlyV3 Event', function () {
81
81
  const blockNumbers: { [eventName: string]: number[] } = {
82
82
  // topic0 - 0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67
83
83
  ['Swap']: [
84
- 18600853, 18616106, 18616441, 18619851, 18622968, 18625121, 18626415, 18627297, 18630574,
85
- 18718946, 18726197, 18730166, 18758602
84
+ 18600853, 18616106, 18616441, 18619851, 18622968, 18625121, 18626415,
85
+ 18627297, 18630574, 18718946, 18726197, 18730166, 18758602,
86
86
  ],
87
87
  ['Burn']: [18737937],
88
88
  ['Mint']: [18708230, 18709265, 18737969],
89
89
  ['Collect']: [18751597],
90
90
  //topic0 0x0eb63f4a36d6bdeee05aa00020a97d80c3e84f1b5b3ebf345fb67262e62b0f33
91
- ['SetFee']: [18427614, 18423073, 18423143, 18425324, 18430069, 18442932, 18442934],
91
+ ['SetFee']: [
92
+ 18427614, 18423073, 18423143, 18425324, 18430069, 18442932, 18442934,
93
+ ],
92
94
  ['Flash']: [18758872],
93
95
  ['CollectProtocol']: [18530529, 18577493],
94
- }
96
+ };
95
97
 
96
98
  describe('SolidlyV3EventPool', function () {
97
99
  Object.keys(blockNumbers).forEach((event: string) => {
@@ -8,6 +8,7 @@ import { decodeStateMultiCallResultWithRelativeBitmaps } from './forks/ramses-v2
8
8
  import { RamsesV2EventPool } from './forks/ramses-v2/ramses-v2-pool';
9
9
 
10
10
  const SUPPORTED_FEES = [10000n, 3000n, 500n, 100n];
11
+ const RAMSES_FORKS_FEES = [...SUPPORTED_FEES, 50n, 250n];
11
12
 
12
13
  // Pools that will be initialized on app startup
13
14
  // They are added for testing
@@ -246,7 +247,7 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
246
247
  deployer: '0xb3e423ab9cE6C03D98326A3A2a0D7D96b0829f22',
247
248
  quoter: '0xAA20EFF7ad2F523590dE6c04918DaAE0904E3b20',
248
249
  router: '0xAA23611badAFB62D37E7295A682D21960ac85A90',
249
- supportedFees: [...SUPPORTED_FEES, 50n],
250
+ supportedFees: RAMSES_FORKS_FEES,
250
251
  stateMulticall: '0x50EE4112Cab9c79812F23bE079aB3911395ACc8e',
251
252
  stateMultiCallAbi: RamsesV2StateMulticallABI as AbiItem[],
252
253
  uniswapMulticall: '0x1F98415757620B543A52E61c46B32eB19261F984',
@@ -260,6 +261,26 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
260
261
  'https://api.thegraph.com/subgraphs/name/ramsesexchange/concentrated-liquidity-graph',
261
262
  },
262
263
  },
264
+ Pharaoh: {
265
+ [Network.AVALANCHE]: {
266
+ factory: '0xAAA32926fcE6bE95ea2c51cB4Fcb60836D320C42',
267
+ deployer: '0x95120704f4E2D545Aea8b6B3c16d9Da1fa32E30F',
268
+ quoter: '0xAAAEA10b0e6FBe566FE27c3A023DC5D8cA6Bca3d',
269
+ router: '0xAAAE99091Fbb28D400029052821653C1C752483B',
270
+ supportedFees: RAMSES_FORKS_FEES,
271
+ stateMulticall: '0xd32C191e0febaa6Cc93A29Cb676474c72486E00b',
272
+ stateMultiCallAbi: RamsesV2StateMulticallABI as AbiItem[],
273
+ uniswapMulticall: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',
274
+ chunksCount: 10,
275
+ initRetryFrequency: 10,
276
+ eventPoolImplementation: RamsesV2EventPool,
277
+ decodeStateMultiCallResultWithRelativeBitmaps,
278
+ initHash:
279
+ '0x1565b129f2d1790f12d45301b9b084335626f0c92410bc43130763b69971135d',
280
+ subgraphURL:
281
+ 'https://api.studio.thegraph.com/query/66247/pharaoh-cl/version/latest',
282
+ },
283
+ },
263
284
  'QuickSwapV3.1': {
264
285
  [Network.ZKEVM]: {
265
286
  factory: '0xD9a2AD9E927Bd7014116CC5c7328f028D4318178',
@@ -696,6 +696,31 @@ describe('UniswapV3 E2E', () => {
696
696
  });
697
697
  });
698
698
 
699
+ describe('Pharaoh', () => {
700
+ const dexKey = 'Pharaoh';
701
+
702
+ describe('Avalanche', () => {
703
+ const network = Network.AVALANCHE;
704
+
705
+ const tokenASymbol: string = 'USDC';
706
+ const tokenBSymbol: string = 'USDCe';
707
+
708
+ const tokenAAmount: string = '100000';
709
+ const tokenBAmount: string = '100000';
710
+ const nativeTokenAmount = '11000000000000000';
711
+
712
+ testForNetwork(
713
+ network,
714
+ dexKey,
715
+ tokenASymbol,
716
+ tokenBSymbol,
717
+ tokenAAmount,
718
+ tokenBAmount,
719
+ nativeTokenAmount,
720
+ );
721
+ });
722
+ });
723
+
699
724
  describe('ChronosV3 E2E', () => {
700
725
  const dexKey = 'ChronosV3';
701
726
  describe('Arbitrum', () => {