@paraswap/dex-lib 2.42.23 → 2.42.24

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 (351) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/prettier.xml +7 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/build/abi/AugustusV6.abi.json +395 -0
  10. package/build/abi/algebra/AlgebraPool.abi.json +727 -0
  11. package/build/abi/curve-v1/StableSwapFRXETH.json +889 -0
  12. package/build/abi/curve-v1/StableSwapWBETH.json +1223 -0
  13. package/build/abi/sushiswap-v3/QuoterV2.json +267 -0
  14. package/build/abi/sushiswap-v3/RouterProcessor3.json +289 -0
  15. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  16. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  17. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  18. package/build/abi/wBETH.json +1527 -0
  19. package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
  20. package/build/abi/woo-fi/WooPP.abi.json +548 -0
  21. package/build/abi/woo-fi/Wooracle.abi.json +260 -0
  22. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  23. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  24. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  25. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  26. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  27. package/build/dex/algebra/algebra-pool.d.ts +114 -0
  28. package/build/dex/algebra/algebra-pool.js +448 -0
  29. package/build/dex/algebra/algebra-pool.js.map +1 -0
  30. package/build/dex/balancer-v2/Gyro3Pool.d.ts +43 -0
  31. package/build/dex/balancer-v2/Gyro3Pool.js +160 -0
  32. package/build/dex/balancer-v2/Gyro3Pool.js.map +1 -0
  33. package/build/dex/balancer-v2/LinearMath.d.ts +88 -0
  34. package/build/dex/balancer-v2/LinearMath.js +285 -0
  35. package/build/dex/balancer-v2/LinearMath.js.map +1 -0
  36. package/build/dex/balancer-v2/LinearPool.d.ts +81 -0
  37. package/build/dex/balancer-v2/LinearPool.js +444 -0
  38. package/build/dex/balancer-v2/LinearPool.js.map +1 -0
  39. package/build/dex/balancer-v2/PhantomStablePool.d.ts +90 -0
  40. package/build/dex/balancer-v2/PhantomStablePool.js +418 -0
  41. package/build/dex/balancer-v2/PhantomStablePool.js.map +1 -0
  42. package/build/dex/balancer-v2/StableMath.d.ts +9 -0
  43. package/build/dex/balancer-v2/StableMath.js +272 -0
  44. package/build/dex/balancer-v2/StableMath.js.map +1 -0
  45. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +140 -0
  46. package/build/dex/balancer-v2/balancer-v2-pool.js +647 -0
  47. package/build/dex/balancer-v2/balancer-v2-pool.js.map +1 -0
  48. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.d.ts +33 -0
  49. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js +128 -0
  50. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js.map +1 -0
  51. package/build/dex/balancer-v2/pools/gyro/GyroEPool.d.ts +34 -0
  52. package/build/dex/balancer-v2/pools/gyro/GyroEPool.js +151 -0
  53. package/build/dex/balancer-v2/pools/gyro/GyroEPool.js.map +1 -0
  54. package/build/dex/curve-v1/pools/frxETHpool.d.ts +7 -0
  55. package/build/dex/curve-v1/pools/frxETHpool.js +27 -0
  56. package/build/dex/curve-v1/pools/frxETHpool.js.map +1 -0
  57. package/build/dex/curve-v1/pools/wbETHpool.d.ts +29 -0
  58. package/build/dex/curve-v1/pools/wbETHpool.js +408 -0
  59. package/build/dex/curve-v1/pools/wbETHpool.js.map +1 -0
  60. package/build/dex/dexalot/constants.js +1 -1
  61. package/build/dex/lighter-v1/abi/erc20.json +222 -0
  62. package/build/dex/lighter-v1/abi/factory.json +291 -0
  63. package/build/dex/lighter-v1/abi/order_book.json +594 -0
  64. package/build/dex/lighter-v1/abi/order_book_helper.json +176 -0
  65. package/build/dex/lighter-v1/abi/router.json +488 -0
  66. package/build/dex/{my-test-dex → lighter-v1}/config.d.ts +1 -1
  67. package/build/dex/lighter-v1/config.js +17 -0
  68. package/build/dex/lighter-v1/config.js.map +1 -0
  69. package/build/dex/lighter-v1/constants.d.ts +2 -0
  70. package/build/dex/lighter-v1/constants.js +13 -0
  71. package/build/dex/lighter-v1/constants.js.map +1 -0
  72. package/build/dex/{my-test-dex/my-test-dex-pool.d.ts → lighter-v1/lighter-v1-pool.d.ts} +24 -6
  73. package/build/dex/lighter-v1/lighter-v1-pool.js +310 -0
  74. package/build/dex/lighter-v1/lighter-v1-pool.js.map +1 -0
  75. package/build/dex/{my-test-dex/my-test-dex.d.ts → lighter-v1/lighter-v1.d.ts} +18 -10
  76. package/build/dex/lighter-v1/lighter-v1.js +331 -0
  77. package/build/dex/lighter-v1/lighter-v1.js.map +1 -0
  78. package/build/dex/lighter-v1/types.d.ts +40 -0
  79. package/build/dex/{hello → lighter-v1}/types.js.map +1 -1
  80. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  81. package/build/dex/{my-test-dex → pancakeswap-v3}/types.js.map +1 -1
  82. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  83. package/build/dex/quickswap/camelot-v3.js +19 -0
  84. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  85. package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
  86. package/build/dex/quickswap/zyberswap-v3.js +19 -0
  87. package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
  88. package/build/dex/quickswap-v3.d.ts +21 -0
  89. package/build/dex/quickswap-v3.js +40 -0
  90. package/build/dex/quickswap-v3.js.map +1 -0
  91. package/build/dex/{wombat → ramses-v2}/config.d.ts +1 -1
  92. package/build/dex/ramses-v2/config.js +28 -0
  93. package/build/dex/ramses-v2/config.js.map +1 -0
  94. package/build/dex/{baseswap-v3 → ramses-v2}/constants.d.ts +1 -1
  95. package/build/dex/{baseswap-v3 → ramses-v2}/constants.js +1 -1
  96. package/build/dex/ramses-v2/constants.js.map +1 -0
  97. package/build/dex/ramses-v2/contract-math/BitMath.js.map +1 -0
  98. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +1 -0
  99. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +1 -0
  100. package/build/dex/ramses-v2/contract-math/FullMath.js.map +1 -0
  101. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +1 -0
  102. package/build/dex/ramses-v2/contract-math/Oracle.js.map +1 -0
  103. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +1 -0
  104. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +1 -0
  105. package/build/dex/ramses-v2/contract-math/Tick.d.ts +7 -0
  106. package/build/dex/ramses-v2/contract-math/Tick.js.map +1 -0
  107. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +8 -0
  108. package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/TickBitMap.js +3 -0
  109. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +1 -0
  110. package/build/dex/ramses-v2/contract-math/TickMath.js.map +1 -0
  111. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +1 -0
  112. package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/uniswap-v3-math.d.ts +0 -19
  113. package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/uniswap-v3-math.js +1 -2
  114. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +1 -0
  115. package/build/dex/ramses-v2/contract-math/utils.js.map +1 -0
  116. package/build/dex/{baseswap-v3/baseswap-v3-pool.d.ts → ramses-v2/ramses-v2-pool.d.ts} +7 -11
  117. package/build/dex/{baseswap-v3/baseswap-v3-pool.js → ramses-v2/ramses-v2-pool.js} +7 -12
  118. package/build/dex/ramses-v2/ramses-v2-pool.js.map +1 -0
  119. package/build/dex/{baseswap-v3/baseswap-v3.d.ts → ramses-v2/ramses-v2.d.ts} +16 -26
  120. package/build/dex/{baseswap-v3/baseswap-v3.js → ramses-v2/ramses-v2.js} +82 -144
  121. package/build/dex/ramses-v2/ramses-v2.js.map +1 -0
  122. package/build/dex/{baseswap-v3 → ramses-v2}/types.d.ts +7 -17
  123. package/build/dex/ramses-v2/types.js +9 -0
  124. package/build/dex/ramses-v2/types.js.map +1 -0
  125. package/build/dex/{baseswap-v3 → ramses-v2}/utils.js +7 -1
  126. package/build/dex/ramses-v2/utils.js.map +1 -0
  127. package/build/dex/{kyberswap-elastic → sushiswap-v3}/config.d.ts +2 -2
  128. package/build/dex/sushiswap-v3/config.js +132 -0
  129. package/build/dex/sushiswap-v3/config.js.map +1 -0
  130. package/build/dex/sushiswap-v3/constants.d.ts +4 -0
  131. package/build/dex/sushiswap-v3/constants.js +32 -0
  132. package/build/dex/sushiswap-v3/constants.js.map +1 -0
  133. package/build/dex/{kyberswap-elastic/kyberswap-elastic.d.ts → sushiswap-v3/sushiswap-v3-original.d.ts} +31 -28
  134. package/build/dex/{kyberswap-elastic/kyberswap-elastic.js → sushiswap-v3/sushiswap-v3-original.js} +257 -269
  135. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +1 -0
  136. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +1 -0
  137. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +6 -0
  138. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +1 -0
  139. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +21 -0
  140. package/build/dex/sushiswap-v3/sushiswap-v3.js +58 -0
  141. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +1 -0
  142. package/build/dex/sushiswap-v3/token.d.ts +6 -0
  143. package/build/dex/sushiswap-v3/token.js +23 -0
  144. package/build/dex/sushiswap-v3/token.js.map +1 -0
  145. package/build/dex/sushiswap-v3/types.d.ts +15 -0
  146. package/build/dex/sushiswap-v3/types.js +18 -0
  147. package/build/dex/sushiswap-v3/types.js.map +1 -0
  148. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +12 -0
  149. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +23 -0
  150. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
  151. package/build/dex/{hello → woo-fi}/config.d.ts +1 -1
  152. package/build/dex/woo-fi/config.js +141 -0
  153. package/build/dex/woo-fi/config.js.map +1 -0
  154. package/build/dex/woo-fi/constants.d.ts +5 -0
  155. package/build/dex/woo-fi/constants.js +20 -0
  156. package/build/dex/woo-fi/constants.js.map +1 -0
  157. package/build/dex/woo-fi/types.d.ts +48 -0
  158. package/build/dex/{wombat → woo-fi}/types.js.map +1 -1
  159. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
  160. package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
  161. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
  162. package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
  163. package/build/dex/woo-fi/woo-fi-math.js +300 -0
  164. package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
  165. package/build/dex/woo-fi/woo-fi.d.ts +65 -0
  166. package/build/dex/woo-fi/woo-fi.js +480 -0
  167. package/build/dex/woo-fi/woo-fi.js.map +1 -0
  168. package/build/executor/Executor01BytecodeBuilder.d.ts +77 -0
  169. package/build/executor/Executor01BytecodeBuilder.js +359 -0
  170. package/build/executor/Executor01BytecodeBuilder.js.map +1 -0
  171. package/build/executor/Executor02BytecodeBuilder.d.ts +12 -0
  172. package/build/executor/Executor02BytecodeBuilder.js +14 -0
  173. package/build/executor/Executor02BytecodeBuilder.js.map +1 -0
  174. package/build/executor/ExecutorDetector.d.ts +28 -0
  175. package/build/executor/ExecutorDetector.js +89 -0
  176. package/build/executor/ExecutorDetector.js.map +1 -0
  177. package/build/executor/IExecutorBytecodeBuilder.d.ts +6 -0
  178. package/build/executor/IExecutorBytecodeBuilder.js +3 -0
  179. package/build/executor/IExecutorBytecodeBuilder.js.map +1 -0
  180. package/build/generic-swap-transaction-builder.d.ts +39 -0
  181. package/build/generic-swap-transaction-builder.js +156 -0
  182. package/build/generic-swap-transaction-builder.js.map +1 -0
  183. package/package.json +1 -1
  184. package/src/dex/dexalot/constants.ts +1 -1
  185. package/build/abi/kyberswap-elastic/IAntiSnipAttackPositionManager.json +0 -1276
  186. package/build/abi/kyberswap-elastic/IFactory.json +0 -550
  187. package/build/abi/kyberswap-elastic/IPool.json +0 -1042
  188. package/build/abi/kyberswap-elastic/IQuoterV2.json +0 -226
  189. package/build/abi/kyberswap-elastic/IRouter.json +0 -239
  190. package/build/abi/kyberswap-elastic/TicksFeesReader.json +0 -142
  191. package/build/abi/wombat/asset.json +0 -769
  192. package/build/abi/wombat/bmw.json +0 -1247
  193. package/build/abi/wombat/pool.json +0 -1364
  194. package/build/dex/baseswap-v3/baseswap-v3-factory.d.ts +0 -26
  195. package/build/dex/baseswap-v3/baseswap-v3-factory.js +0 -44
  196. package/build/dex/baseswap-v3/baseswap-v3-factory.js.map +0 -1
  197. package/build/dex/baseswap-v3/baseswap-v3-pool.js.map +0 -1
  198. package/build/dex/baseswap-v3/baseswap-v3.js.map +0 -1
  199. package/build/dex/baseswap-v3/config.d.ts +0 -9
  200. package/build/dex/baseswap-v3/config.js +0 -48
  201. package/build/dex/baseswap-v3/config.js.map +0 -1
  202. package/build/dex/baseswap-v3/constants.js.map +0 -1
  203. package/build/dex/baseswap-v3/contract-math/BitMath.js.map +0 -1
  204. package/build/dex/baseswap-v3/contract-math/FixedPoint128.js.map +0 -1
  205. package/build/dex/baseswap-v3/contract-math/FixedPoint96.js.map +0 -1
  206. package/build/dex/baseswap-v3/contract-math/FullMath.js.map +0 -1
  207. package/build/dex/baseswap-v3/contract-math/LiquidityMath.js.map +0 -1
  208. package/build/dex/baseswap-v3/contract-math/Oracle.js.map +0 -1
  209. package/build/dex/baseswap-v3/contract-math/SqrtPriceMath.js.map +0 -1
  210. package/build/dex/baseswap-v3/contract-math/SwapMath.js.map +0 -1
  211. package/build/dex/baseswap-v3/contract-math/Tick.d.ts +0 -7
  212. package/build/dex/baseswap-v3/contract-math/Tick.js.map +0 -1
  213. package/build/dex/baseswap-v3/contract-math/TickBitMap.d.ts +0 -7
  214. package/build/dex/baseswap-v3/contract-math/TickBitMap.js.map +0 -1
  215. package/build/dex/baseswap-v3/contract-math/TickMath.js.map +0 -1
  216. package/build/dex/baseswap-v3/contract-math/UnsafeMath.js.map +0 -1
  217. package/build/dex/baseswap-v3/contract-math/uniswap-v3-math.js.map +0 -1
  218. package/build/dex/baseswap-v3/contract-math/utils.d.ts +0 -7
  219. package/build/dex/baseswap-v3/contract-math/utils.js +0 -42
  220. package/build/dex/baseswap-v3/contract-math/utils.js.map +0 -1
  221. package/build/dex/baseswap-v3/types.js +0 -9
  222. package/build/dex/baseswap-v3/types.js.map +0 -1
  223. package/build/dex/baseswap-v3/utils.js.map +0 -1
  224. package/build/dex/hello/config.js +0 -15
  225. package/build/dex/hello/config.js.map +0 -1
  226. package/build/dex/hello/hello-pool.d.ts +0 -39
  227. package/build/dex/hello/hello-pool.js +0 -64
  228. package/build/dex/hello/hello-pool.js.map +0 -1
  229. package/build/dex/hello/hello.d.ts +0 -37
  230. package/build/dex/hello/hello.js +0 -126
  231. package/build/dex/hello/hello.js.map +0 -1
  232. package/build/dex/hello/types.d.ts +0 -6
  233. package/build/dex/kyberswap-elastic/config.js +0 -80
  234. package/build/dex/kyberswap-elastic/config.js.map +0 -1
  235. package/build/dex/kyberswap-elastic/constants.d.ts +0 -17
  236. package/build/dex/kyberswap-elastic/constants.js +0 -42
  237. package/build/dex/kyberswap-elastic/constants.js.map +0 -1
  238. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.d.ts +0 -4
  239. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js +0 -9
  240. package/build/dex/kyberswap-elastic/contract-math/FixedPoint96.js.map +0 -1
  241. package/build/dex/kyberswap-elastic/contract-math/FullMath.d.ts +0 -5
  242. package/build/dex/kyberswap-elastic/contract-math/FullMath.js +0 -22
  243. package/build/dex/kyberswap-elastic/contract-math/FullMath.js.map +0 -1
  244. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.d.ts +0 -3
  245. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js +0 -12
  246. package/build/dex/kyberswap-elastic/contract-math/LiqDeltaMath.js.map +0 -1
  247. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.d.ts +0 -3
  248. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js +0 -22
  249. package/build/dex/kyberswap-elastic/contract-math/LiquidityMath.js.map +0 -1
  250. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.d.ts +0 -5
  251. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js +0 -25
  252. package/build/dex/kyberswap-elastic/contract-math/QtyDeltaMath.js.map +0 -1
  253. package/build/dex/kyberswap-elastic/contract-math/QuadMath.d.ts +0 -4
  254. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js +0 -27
  255. package/build/dex/kyberswap-elastic/contract-math/QuadMath.js.map +0 -1
  256. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.d.ts +0 -3
  257. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js +0 -14
  258. package/build/dex/kyberswap-elastic/contract-math/ReinvestmentMath.js.map +0 -1
  259. package/build/dex/kyberswap-elastic/contract-math/SafeCast.d.ts +0 -8
  260. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js +0 -30
  261. package/build/dex/kyberswap-elastic/contract-math/SafeCast.js.map +0 -1
  262. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.d.ts +0 -10
  263. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js +0 -91
  264. package/build/dex/kyberswap-elastic/contract-math/SqrtPriceMath.js.map +0 -1
  265. package/build/dex/kyberswap-elastic/contract-math/SwapMath.d.ts +0 -13
  266. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js +0 -188
  267. package/build/dex/kyberswap-elastic/contract-math/SwapMath.js.map +0 -1
  268. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.d.ts +0 -6
  269. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js +0 -41
  270. package/build/dex/kyberswap-elastic/contract-math/TickLinkedList.js.map +0 -1
  271. package/build/dex/kyberswap-elastic/contract-math/TickMath.d.ts +0 -9
  272. package/build/dex/kyberswap-elastic/contract-math/TickMath.js +0 -165
  273. package/build/dex/kyberswap-elastic/contract-math/TickMath.js.map +0 -1
  274. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.d.ts +0 -3
  275. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js +0 -10
  276. package/build/dex/kyberswap-elastic/contract-math/UnsafeMath.js.map +0 -1
  277. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.d.ts +0 -28
  278. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js +0 -502
  279. package/build/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.js.map +0 -1
  280. package/build/dex/kyberswap-elastic/contract-math/utils.js.map +0 -1
  281. package/build/dex/kyberswap-elastic/errors.d.ts +0 -2
  282. package/build/dex/kyberswap-elastic/errors.js +0 -6
  283. package/build/dex/kyberswap-elastic/errors.js.map +0 -1
  284. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.d.ts +0 -80
  285. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js +0 -458
  286. package/build/dex/kyberswap-elastic/kyberswap-elastic-pool.js.map +0 -1
  287. package/build/dex/kyberswap-elastic/kyberswap-elastic.js.map +0 -1
  288. package/build/dex/kyberswap-elastic/types.d.ts +0 -134
  289. package/build/dex/kyberswap-elastic/types.js +0 -9
  290. package/build/dex/kyberswap-elastic/types.js.map +0 -1
  291. package/build/dex/kyberswap-elastic/utils/decoders.d.ts +0 -9
  292. package/build/dex/kyberswap-elastic/utils/decoders.js +0 -78
  293. package/build/dex/kyberswap-elastic/utils/decoders.js.map +0 -1
  294. package/build/dex/morphex/config.d.ts +0 -11
  295. package/build/dex/morphex/config.js +0 -43
  296. package/build/dex/morphex/config.js.map +0 -1
  297. package/build/dex/morphex/morphex.d.ts +0 -25
  298. package/build/dex/morphex/morphex.js +0 -19
  299. package/build/dex/morphex/morphex.js.map +0 -1
  300. package/build/dex/my-test-dex/config.js +0 -15
  301. package/build/dex/my-test-dex/config.js.map +0 -1
  302. package/build/dex/my-test-dex/my-test-dex-pool.js +0 -64
  303. package/build/dex/my-test-dex/my-test-dex-pool.js.map +0 -1
  304. package/build/dex/my-test-dex/my-test-dex.js +0 -126
  305. package/build/dex/my-test-dex/my-test-dex.js.map +0 -1
  306. package/build/dex/my-test-dex/types.d.ts +0 -6
  307. package/build/dex/wombat/config.js +0 -99
  308. package/build/dex/wombat/config.js.map +0 -1
  309. package/build/dex/wombat/types.d.ts +0 -33
  310. package/build/dex/wombat/utils.d.ts +0 -9
  311. package/build/dex/wombat/utils.js +0 -66
  312. package/build/dex/wombat/utils.js.map +0 -1
  313. package/build/dex/wombat/wombat-bmw.d.ts +0 -40
  314. package/build/dex/wombat/wombat-bmw.js +0 -147
  315. package/build/dex/wombat/wombat-bmw.js.map +0 -1
  316. package/build/dex/wombat/wombat-pool.d.ts +0 -22
  317. package/build/dex/wombat/wombat-pool.js +0 -161
  318. package/build/dex/wombat/wombat-pool.js.map +0 -1
  319. package/build/dex/wombat/wombat-quoter.d.ts +0 -16
  320. package/build/dex/wombat/wombat-quoter.js +0 -176
  321. package/build/dex/wombat/wombat-quoter.js.map +0 -1
  322. package/build/dex/wombat/wombat.d.ts +0 -55
  323. package/build/dex/wombat/wombat.js +0 -290
  324. package/build/dex/wombat/wombat.js.map +0 -1
  325. /package/build/dex/{hello → lighter-v1}/types.js +0 -0
  326. /package/build/dex/{my-test-dex → pancakeswap-v3}/types.js +0 -0
  327. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/BitMath.d.ts +0 -0
  328. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/BitMath.js +0 -0
  329. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/FixedPoint128.d.ts +0 -0
  330. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/FixedPoint128.js +0 -0
  331. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/FixedPoint96.d.ts +0 -0
  332. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/FixedPoint96.js +0 -0
  333. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/FullMath.d.ts +0 -0
  334. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/FullMath.js +0 -0
  335. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/LiquidityMath.d.ts +0 -0
  336. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/LiquidityMath.js +0 -0
  337. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/Oracle.d.ts +0 -0
  338. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/Oracle.js +0 -0
  339. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/SqrtPriceMath.d.ts +0 -0
  340. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/SqrtPriceMath.js +0 -0
  341. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/SwapMath.d.ts +0 -0
  342. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/SwapMath.js +0 -0
  343. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/Tick.js +0 -0
  344. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/TickMath.d.ts +0 -0
  345. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/TickMath.js +0 -0
  346. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/UnsafeMath.d.ts +0 -0
  347. /package/build/dex/{baseswap-v3 → ramses-v2}/contract-math/UnsafeMath.js +0 -0
  348. /package/build/dex/{kyberswap-elastic → ramses-v2}/contract-math/utils.d.ts +0 -0
  349. /package/build/dex/{kyberswap-elastic → ramses-v2}/contract-math/utils.js +0 -0
  350. /package/build/dex/{baseswap-v3 → ramses-v2}/utils.d.ts +0 -0
  351. /package/build/dex/{wombat → woo-fi}/types.js +0 -0
@@ -1,502 +0,0 @@
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.ksElasticMath = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const core_1 = require("@paraswap/core");
9
- const TickMath_1 = require("./TickMath");
10
- const utils_1 = require("../../../utils");
11
- const constants_1 = require("../constants");
12
- const SwapMath_1 = require("./SwapMath");
13
- const FullMath_1 = require("./FullMath");
14
- const ReinvestmentMath_1 = require("./ReinvestmentMath");
15
- const LiqDeltaMath_1 = require("./LiqDeltaMath");
16
- const SafeCast_1 = require("./SafeCast");
17
- const TickLinkedList_1 = require("./TickLinkedList");
18
- const QtyDeltaMath_1 = require("./QtyDeltaMath");
19
- function _updateStateObject(toUpdate, updateBy) {
20
- for (const k of Object.keys(updateBy)) {
21
- toUpdate[k] = updateBy[k];
22
- }
23
- }
24
- function _simulateSwap(poolState, ticksStartState, poolData, swapData, isToken0) {
25
- const latestFullCycleState = { ...swapData };
26
- if (swapData.tickCount == 0n) {
27
- swapData.tickCount = 1n;
28
- }
29
- // clone ticks states
30
- let ticksCopy = lodash_1.default.cloneDeep(ticksStartState);
31
- let i = 1;
32
- const willUpTick = swapData.isExactInput != isToken0;
33
- const limitSqrtP = !willUpTick
34
- ? TickMath_1.TickMath.MIN_SQRT_RATIO + 1n
35
- : TickMath_1.TickMath.MAX_SQRT_RATIO - 1n;
36
- (0, utils_1._require)(willUpTick
37
- ? limitSqrtP > swapData.sqrtP && limitSqrtP < TickMath_1.TickMath.MAX_SQRT_RATIO
38
- : limitSqrtP < swapData.sqrtP && limitSqrtP > TickMath_1.TickMath.MIN_SQRT_RATIO, 'bad limit sqrtP');
39
- while (swapData.specifiedAmount !== 0n && swapData.sqrtP !== limitSqrtP) {
40
- let tmpNextTick = swapData.nextTick;
41
- if (willUpTick && tmpNextTick > constants_1.MAX_TICK_DISTANCE + swapData.currentTick) {
42
- tmpNextTick = constants_1.MAX_TICK_DISTANCE + swapData.currentTick;
43
- }
44
- else if (!willUpTick &&
45
- tmpNextTick < swapData.currentTick - constants_1.MAX_TICK_DISTANCE) {
46
- tmpNextTick = swapData.currentTick - constants_1.MAX_TICK_DISTANCE;
47
- }
48
- swapData.startSqrtP = swapData.sqrtP;
49
- swapData.nextSqrtP = TickMath_1.TickMath.getSqrtRatioAtTick(tmpNextTick);
50
- let targetSqrtP = swapData.nextSqrtP;
51
- if (willUpTick == swapData.nextSqrtP > limitSqrtP) {
52
- targetSqrtP = limitSqrtP;
53
- }
54
- let usedAmount = 0n;
55
- let returnedAmount = 0n;
56
- let deltaL = 0n;
57
- const swapStepResult = SwapMath_1.SwapMath.computeSwapStep(BigInt(swapData.baseL + swapData.reinvestL), BigInt(swapData.sqrtP), BigInt(targetSqrtP), BigInt(poolState.swapFeeUnits), BigInt(swapData.specifiedAmount), swapData.isExactInput, swapData.isToken0);
58
- swapData.sqrtP = swapStepResult.nextSqrtP;
59
- usedAmount = swapStepResult.usedAmount;
60
- returnedAmount = swapStepResult.returnedAmount;
61
- deltaL = swapStepResult.deltaL;
62
- swapData.specifiedAmount -= usedAmount;
63
- swapData.returnedAmount += returnedAmount;
64
- swapData.reinvestL += BigInt.asUintN(128, deltaL);
65
- if (swapData.sqrtP !== swapData.nextSqrtP) {
66
- if (swapData.sqrtP !== swapData.startSqrtP) {
67
- swapData.currentTick = TickMath_1.TickMath.getTickAtSqrtRatio(swapData.sqrtP);
68
- }
69
- break;
70
- }
71
- swapData.currentTick = willUpTick ? tmpNextTick : tmpNextTick - 1n;
72
- if (tmpNextTick !== swapData.nextTick)
73
- continue;
74
- swapData.reinvestLLast = poolData.reinvestLLast;
75
- swapData.feeGrowthGlobal = poolData.feeGrowthGlobal;
76
- let secondsElapsed = swapData.blockTimestamp -
77
- (0, utils_1.bigIntify)(swapData.secondsPerLiquidityUpdateTime);
78
- if (secondsElapsed > 0n) {
79
- swapData.secondsPerLiquidityUpdateTime = swapData.blockTimestamp;
80
- if (swapData.baseL > 0n) {
81
- swapData.secondsPerLiquidityGlobal += BigInt.asUintN(128, (secondsElapsed << 96n) / swapData.baseL);
82
- }
83
- }
84
- (0, utils_1._require)(swapData.rTokenSupply > 0n, 'swapData.rTokenSupply > 0n');
85
- let rMintQty = ReinvestmentMath_1.ReinvestmentMath.calcrMintQty(swapData.reinvestL, swapData.reinvestLLast, swapData.baseL, swapData.rTokenSupply);
86
- if (rMintQty != 0n) {
87
- swapData.rTokenSupply += rMintQty;
88
- let governmentFee = (rMintQty * poolState.governmentFeeUnits) / constants_1.FEE_UNITS;
89
- swapData.governmentFee += governmentFee;
90
- let lpFee = rMintQty - governmentFee;
91
- swapData.lpFee += lpFee;
92
- swapData.feeGrowthGlobal += FullMath_1.FullMath.mulDivFloor(lpFee, constants_1.TWO_POW_96, swapData.baseL);
93
- }
94
- swapData.reinvestLLast = swapData.reinvestL;
95
- let crossTickResult = _updateLiquidityAndCrossTick(ticksCopy, poolState.initializedTicks, swapData.nextTick, swapData.baseL, swapData.feeGrowthGlobal, swapData.secondsPerLiquidityGlobal, willUpTick);
96
- swapData.baseL = crossTickResult.newLiquidity;
97
- swapData.nextTick = crossTickResult.newNextTick;
98
- ++i;
99
- }
100
- if (swapData.rTokenSupply != 0n) {
101
- // mint fee to government and LPs --> just increase r token supply
102
- swapData.rTokenSupply += swapData.governmentFee + swapData.lpFee; // minting increase total supply
103
- }
104
- // update pool data
105
- swapData.nearestCurrentTick =
106
- swapData.nextTick > swapData.currentTick
107
- ? (0, utils_1.bigIntify)(poolState.initializedTicks[Number(swapData.nextTick)].previous)
108
- : swapData.nextTick;
109
- if (swapData.specifiedAmount !== 0n) {
110
- _updateStateObject(latestFullCycleState, swapData);
111
- }
112
- if (i > 1) {
113
- latestFullCycleState.tickCount += (0, utils_1.bigIntify)(i - 1);
114
- }
115
- if (swapData.specifiedAmount !== 0n) {
116
- swapData.specifiedAmount = 0n;
117
- swapData.returnedAmount = 0n;
118
- }
119
- return [swapData, { latestFullCycleState }];
120
- }
121
- function _updateLiquidityAndCrossTick(ticks, initializedTicks, nextTick, currentLiquidity, feeGrowthGlobal, secondsPerLiquidityGlobal, willTickUp) {
122
- let newLiquidity = 0n;
123
- let newNextTick = 0n;
124
- ticks[Number(nextTick)].feeGrowthOutside =
125
- feeGrowthGlobal - ticks[Number(nextTick)].feeGrowthOutside;
126
- ticks[Number(nextTick)].secondsPerLiquidityOutside =
127
- secondsPerLiquidityGlobal -
128
- ticks[Number(nextTick)].secondsPerLiquidityOutside;
129
- let liquidityNet = ticks[Number(nextTick)].liquidityNet;
130
- if (willTickUp) {
131
- newNextTick = (0, utils_1.bigIntify)(initializedTicks[Number(nextTick)].next);
132
- }
133
- else {
134
- newNextTick = (0, utils_1.bigIntify)(initializedTicks[Number(nextTick)].previous);
135
- liquidityNet = -liquidityNet;
136
- }
137
- newLiquidity = LiqDeltaMath_1.LiqDeltaMath.applyLiquidityDelta(currentLiquidity, liquidityNet >= 0
138
- ? BigInt.asUintN(128, liquidityNet)
139
- : SafeCast_1.SafeCast.revToUint128(liquidityNet), liquidityNet >= 0);
140
- newLiquidity = BigInt.asUintN(128, newLiquidity);
141
- newNextTick = BigInt.asIntN(24, newNextTick);
142
- return { newLiquidity, newNextTick };
143
- }
144
- class KSElasticMath {
145
- queryOutputs(poolState,
146
- // Amounts must increase
147
- amounts, isToken0, side) {
148
- const poolData = poolState.poolData;
149
- let tickCopy = lodash_1.default.cloneDeep(poolState.ticks);
150
- const isSell = side === core_1.SwapSide.SELL;
151
- let isOutOfRange = false;
152
- let previousAmount = 0n;
153
- const outputs = new Array(amounts.length);
154
- const tickCounts = new Array(amounts.length);
155
- for (const [i, amount] of amounts.entries()) {
156
- if (amount === 0n) {
157
- outputs[i] = 0n;
158
- tickCounts[i] = 0;
159
- continue;
160
- }
161
- const amountSpecified = isSell
162
- ? BigInt.asIntN(256, amount)
163
- : -BigInt.asIntN(256, amount);
164
- let state = this._getInitialSwapData(poolState, poolData, isToken0, amountSpecified);
165
- state.isToken0 = isToken0;
166
- state.isExactInput = amountSpecified > 0;
167
- if (state.isFirstCycleState) {
168
- // Set first non zero amount
169
- state.specifiedAmount = amountSpecified;
170
- state.isFirstCycleState = false;
171
- }
172
- else {
173
- state.specifiedAmount =
174
- amountSpecified - (previousAmount - state.specifiedAmount);
175
- }
176
- if (!isOutOfRange) {
177
- const [finalState, { latestFullCycleState }] = _simulateSwap(poolState, tickCopy, poolData, state, isToken0);
178
- if (finalState.specifiedAmount === 0n &&
179
- finalState.returnedAmount === 0n) {
180
- isOutOfRange = true;
181
- outputs[i] = 0n;
182
- tickCounts[i] = 0;
183
- continue;
184
- }
185
- // We use it on next step to correct state.amountSpecifiedRemaining
186
- previousAmount = amountSpecified;
187
- // First extract calculated values
188
- const [deltaQty0, deltaQty1] = isToken0
189
- ? [
190
- amountSpecified - finalState.specifiedAmount,
191
- finalState.returnedAmount,
192
- ]
193
- : [
194
- finalState.returnedAmount,
195
- amountSpecified - finalState.specifiedAmount,
196
- ];
197
- // Update for next amount
198
- _updateStateObject(state, latestFullCycleState);
199
- if (isSell) {
200
- outputs[i] = BigInt.asUintN(256, -(isToken0 ? deltaQty1 : deltaQty0));
201
- tickCounts[i] = Number(latestFullCycleState.tickCount);
202
- continue;
203
- }
204
- else {
205
- outputs[i] = isToken0
206
- ? BigInt.asUintN(256, deltaQty1)
207
- : BigInt.asUintN(256, deltaQty0);
208
- tickCounts[i] = Number(latestFullCycleState.tickCount);
209
- continue;
210
- }
211
- }
212
- else {
213
- outputs[i] = 0n;
214
- tickCounts[i] = 0;
215
- }
216
- }
217
- return {
218
- outputs,
219
- tickCounts,
220
- };
221
- }
222
- swapFromEvent(state, specifiedAmount, returnedAmount, newSqrtP, newTick, newLiquidity, isToken0) {
223
- let poolState = lodash_1.default.cloneDeep(state);
224
- let isExactInput = specifiedAmount > 0n;
225
- let willTickUp = isExactInput != isToken0;
226
- const swapData = {
227
- baseL: poolState.poolData.baseL,
228
- reinvestL: poolState.poolData.reinvestL,
229
- sqrtP: poolState.poolData.sqrtP,
230
- currentTick: poolState.poolData.currentTick,
231
- nextTick: !willTickUp
232
- ? poolState.poolData.nearestCurrentTick
233
- : poolState.initializedTicks[Number(poolState.poolData.nearestCurrentTick)].next,
234
- specifiedAmount: specifiedAmount,
235
- isToken0: isToken0,
236
- isExactInput: isExactInput,
237
- returnedAmount: 0n,
238
- nextSqrtP: 0n,
239
- startSqrtP: 0n,
240
- };
241
- let swapCache = {
242
- rTotalSupply: 0n,
243
- reinvestLLast: 0n,
244
- feeGrowthGlobal: 0n,
245
- secondsPerLiquidityGlobal: 0n,
246
- governmentFeeUnits: 0n,
247
- governmentFee: 0n,
248
- lpFee: 0n,
249
- };
250
- while (swapData.specifiedAmount != 0n && swapData.sqrtP != newSqrtP) {
251
- let tempNextTick = swapData.nextTick;
252
- if (willTickUp &&
253
- tempNextTick > constants_1.MAX_TICK_DISTANCE + swapData.currentTick) {
254
- tempNextTick = swapData.currentTick + constants_1.MAX_TICK_DISTANCE;
255
- }
256
- else if (!willTickUp &&
257
- tempNextTick < swapData.currentTick - constants_1.MAX_TICK_DISTANCE) {
258
- tempNextTick = swapData.currentTick - constants_1.MAX_TICK_DISTANCE;
259
- }
260
- swapData.startSqrtP = swapData.sqrtP;
261
- swapData.nextSqrtP = TickMath_1.TickMath.getSqrtRatioAtTick(tempNextTick);
262
- let targetSqrtP = swapData.nextSqrtP;
263
- // if (willTickUp == swapData.nextSqrtP > newSqrtP) {
264
- // targetSqrtP = newSqrtP;
265
- // }
266
- let computeSwapResult = SwapMath_1.SwapMath.computeSwapStep(BigInt(swapData.baseL + swapData.reinvestL), BigInt(swapData.sqrtP), BigInt(targetSqrtP), BigInt(poolState.swapFeeUnits), BigInt(swapData.specifiedAmount), swapData.isExactInput, swapData.isToken0);
267
- swapData.specifiedAmount -= computeSwapResult.usedAmount;
268
- swapData.returnedAmount += computeSwapResult.returnedAmount;
269
- swapData.reinvestL += BigInt.asUintN(128, computeSwapResult.deltaL);
270
- swapData.sqrtP = computeSwapResult.nextSqrtP;
271
- if (swapData.sqrtP != swapData.nextSqrtP) {
272
- if (swapData.sqrtP != swapData.startSqrtP) {
273
- swapData.currentTick = TickMath_1.TickMath.getTickAtSqrtRatio(swapData.sqrtP);
274
- }
275
- break;
276
- }
277
- swapData.currentTick = willTickUp ? tempNextTick : tempNextTick - 1n;
278
- if (tempNextTick != swapData.nextTick)
279
- continue;
280
- if (swapCache.rTotalSupply == 0n) {
281
- swapCache.rTotalSupply = poolState.poolData.rTokenSupply;
282
- swapCache.reinvestLLast = poolState.poolData.reinvestLLast;
283
- swapCache.feeGrowthGlobal = poolState.poolData.feeGrowthGlobal;
284
- this._syncSecondsPerLiq(poolState);
285
- swapCache.secondsPerLiquidityGlobal =
286
- poolState.poolData.secondsPerLiquidityGlobal;
287
- swapCache.governmentFeeUnits = poolState.governmentFeeUnits;
288
- }
289
- let rMintQty = ReinvestmentMath_1.ReinvestmentMath.calcrMintQty(swapData.reinvestL, swapCache.reinvestLLast, swapData.baseL, swapCache.rTotalSupply);
290
- if (rMintQty != 0n) {
291
- swapCache.rTotalSupply += rMintQty;
292
- let governmentFee = (rMintQty * swapCache.governmentFeeUnits) / constants_1.FEE_UNITS;
293
- swapCache.governmentFee += governmentFee;
294
- let lpFee = rMintQty - governmentFee;
295
- swapCache.lpFee += lpFee;
296
- swapCache.feeGrowthGlobal += FullMath_1.FullMath.mulDivFloor(lpFee, constants_1.TWO_POW_96, swapData.baseL);
297
- }
298
- swapCache.reinvestLLast = swapData.reinvestL;
299
- let updateLiqRes = _updateLiquidityAndCrossTick(poolState.ticks, poolState.initializedTicks, swapData.nextTick, swapData.baseL, swapCache.feeGrowthGlobal, swapCache.secondsPerLiquidityGlobal, willTickUp);
300
- swapData.baseL = updateLiqRes.newLiquidity;
301
- swapData.nextTick = updateLiqRes.newNextTick;
302
- }
303
- if (swapCache.rTotalSupply != 0n) {
304
- poolState.poolData.rTokenSupply +=
305
- swapCache.governmentFee + swapCache.lpFee;
306
- poolState.poolData.reinvestLLast = swapCache.reinvestLLast;
307
- poolState.poolData.feeGrowthGlobal = swapCache.feeGrowthGlobal;
308
- }
309
- poolState.poolData.baseL = swapData.baseL;
310
- poolState.poolData.reinvestL = swapData.reinvestL;
311
- poolState.poolData.sqrtP = swapData.sqrtP;
312
- poolState.poolData.currentTick = swapData.currentTick;
313
- poolState.poolData.nearestCurrentTick =
314
- swapData.nextTick > swapData.currentTick
315
- ? poolState.initializedTicks[Number(swapData.nextTick)].previous
316
- : swapData.nextTick;
317
- poolState.reinvestLiquidity = swapData.reinvestL;
318
- poolState.currentTick = poolState.poolData.currentTick;
319
- return [poolState];
320
- }
321
- burnRToken(state, params) {
322
- if (params.isLogicalBurn) {
323
- state.poolData.rTokenSupply -= params.qty;
324
- return;
325
- }
326
- let reinvestL = state.poolData.reinvestL;
327
- this._syncFeeGrowth(state, false);
328
- let deltaL = FullMath_1.FullMath.mulDivFloor(params.qty, reinvestL, state.poolData.rTokenSupply);
329
- reinvestL -= BigInt.asUintN(128, deltaL);
330
- state.poolData.reinvestL = reinvestL;
331
- state.poolData.reinvestLLast = reinvestL;
332
- state.poolData.rTokenSupply -= params.qty;
333
- state.reinvestLiquidity = reinvestL;
334
- }
335
- tweakPosZeroLiq(state) {
336
- this._syncFeeGrowth(state, true);
337
- this._syncSecondsPerLiq(state);
338
- }
339
- modifyPosition(state, params) {
340
- this._checkTicks(params.tickLower, params.tickUpper);
341
- const isBurn = params.liquidityDelta < 0n;
342
- let initTicksSorted = Object.keys(state.initializedTicks)
343
- .map(utils_1.bigIntify)
344
- .sort();
345
- // sync fee growth
346
- this._syncFeeGrowth(state, true);
347
- // sync seconds per liq
348
- this._syncSecondsPerLiq(state);
349
- this._updatePosition(state, state.poolData.currentTick, {
350
- liqDelta: params.liquidityDelta,
351
- tickLower: params.tickLower,
352
- tickUpper: params.tickUpper,
353
- tickLowerPrevious: isBurn
354
- ? 0n
355
- : (0, utils_1.bigIntify)(initTicksSorted.find(e => e <= params.tickLower)),
356
- tickUpperPrevious: isBurn
357
- ? 0n
358
- : (0, utils_1.bigIntify)(initTicksSorted.find(e => e <= params.tickUpper)),
359
- });
360
- let amount0 = 0n;
361
- let amount1 = 0n;
362
- if (params.liquidityDelta !== 0n) {
363
- if (state.currentTick < params.tickLower) {
364
- amount0 = QtyDeltaMath_1.QtyDeltaMath.calcRequiredQty0(TickMath_1.TickMath.getSqrtRatioAtTick(params.tickLower), TickMath_1.TickMath.getSqrtRatioAtTick(params.tickUpper), params.liquidityDelta, params.liquidityDelta > 0n);
365
- }
366
- else if (state.currentTick < params.tickUpper) {
367
- const liquidityBefore = state.poolData.baseL;
368
- amount0 = QtyDeltaMath_1.QtyDeltaMath.calcRequiredQty0(state.poolData.sqrtP, TickMath_1.TickMath.getSqrtRatioAtTick(params.tickUpper), params.liquidityDelta, params.liquidityDelta > 0n);
369
- amount1 = QtyDeltaMath_1.QtyDeltaMath.calcRequiredQty1(TickMath_1.TickMath.getSqrtRatioAtTick(params.tickLower), state.poolData.sqrtP, params.liquidityDelta, params.liquidityDelta > 0n);
370
- state.poolData.baseL = LiqDeltaMath_1.LiqDeltaMath.applyLiquidityDelta(liquidityBefore, params.liquidityDelta > 0n
371
- ? params.liquidityDelta
372
- : -params.liquidityDelta, params.liquidityDelta > 0n);
373
- }
374
- else {
375
- amount1 = QtyDeltaMath_1.QtyDeltaMath.calcRequiredQty1(TickMath_1.TickMath.getSqrtRatioAtTick(params.tickLower), TickMath_1.TickMath.getSqrtRatioAtTick(params.tickUpper), params.liquidityDelta, params.liquidityDelta > 0n);
376
- }
377
- }
378
- return [amount0, amount1];
379
- }
380
- _syncFeeGrowth(state, updateReinvestLLast) {
381
- let rMintQty = ReinvestmentMath_1.ReinvestmentMath.calcrMintQty(state.poolData.reinvestL, state.poolData.reinvestLLast, state.poolData.baseL, state.poolData.rTokenSupply);
382
- if (rMintQty != 0n) {
383
- // rtoken minted
384
- state.poolData.rTokenSupply += rMintQty;
385
- const govtFee = (rMintQty * state.governmentFeeUnits) / constants_1.FEE_UNITS;
386
- rMintQty -= govtFee;
387
- state.poolData.feeGrowthGlobal += FullMath_1.FullMath.mulDivFloor(rMintQty, constants_1.TWO_POW_96, state.poolData.baseL);
388
- }
389
- if (updateReinvestLLast) {
390
- state.poolData.reinvestLLast = state.poolData.reinvestL;
391
- }
392
- }
393
- _syncSecondsPerLiq(state) {
394
- let secondsElapsed = state.blockTimestamp - state.poolData.secondsPerLiquidityUpdateTime;
395
- if (secondsElapsed > 0n) {
396
- state.poolData.secondsPerLiquidityUpdateTime = state.blockTimestamp;
397
- if (state.poolData.baseL > 0n) {
398
- state.poolData.secondsPerLiquidityGlobal += BigInt.asUintN(128, (secondsElapsed << 96n) / state.poolData.baseL);
399
- }
400
- }
401
- }
402
- _updatePosition(state, currentTick, params) {
403
- this._updateTick(state, params.tickLower, currentTick, params.tickLowerPrevious, params.liqDelta, true);
404
- this._updateTick(state, params.tickUpper, currentTick, params.tickUpperPrevious, params.liqDelta, false);
405
- }
406
- _updateTick(state, tick, tickCurrent, tickPrevious, liqDelta, isLower) {
407
- if (liqDelta != 0n) {
408
- if (!(Number(tick) in state.ticks)) {
409
- state.ticks[Number(tick)] = {
410
- feeGrowthOutside: 0n,
411
- liquidityGross: 0n,
412
- liquidityNet: 0n,
413
- secondsPerLiquidityOutside: 0n,
414
- };
415
- }
416
- let liqGrossBefore = state.ticks[Number(tick)].liquidityGross;
417
- (0, utils_1._require)(liqGrossBefore != 0n || liqDelta != 0n, 'invalid liq');
418
- let liqGrossAfter = LiqDeltaMath_1.LiqDeltaMath.applyLiquidityDelta(liqGrossBefore, liqDelta > 0n ? liqDelta : -liqDelta, liqDelta > 0n);
419
- let liqNetAfter = isLower
420
- ? state.ticks[Number(tick)].liquidityNet + liqDelta
421
- : state.ticks[Number(tick)].liquidityNet - liqDelta;
422
- if (liqGrossBefore == 0n) {
423
- if (tick <= tickCurrent) {
424
- state.ticks[Number(tick)].feeGrowthOutside =
425
- state.poolData.feeGrowthGlobal;
426
- state.ticks[Number(tick)].secondsPerLiquidityOutside =
427
- state.poolData.secondsPerLiquidityGlobal;
428
- }
429
- }
430
- state.ticks[Number(tick)].liquidityGross = liqGrossAfter;
431
- state.ticks[Number(tick)].liquidityNet = liqNetAfter;
432
- if (liqGrossBefore > 0n && liqGrossAfter == 0n) {
433
- // remove tick
434
- if (Number(tick) in state.ticks) {
435
- delete state.ticks[Number(tick)];
436
- }
437
- }
438
- if (liqGrossBefore > 0n != liqGrossAfter > 0n) {
439
- // update tick list
440
- this._updateTickList(state, tick, tickPrevious, tickCurrent, liqDelta > 0n);
441
- }
442
- }
443
- }
444
- _updateTickList(state, tick, previousTick, currentTick, isAdd) {
445
- if (isAdd) {
446
- if (tick == TickMath_1.TickMath.MIN_TICK || tick == TickMath_1.TickMath.MAX_TICK)
447
- return;
448
- let nextTick = state.initializedTicks[Number(previousTick)].next;
449
- let i = 0n;
450
- while (nextTick <= tick && i < constants_1.MAX_TICK_TRAVEL) {
451
- previousTick = nextTick;
452
- nextTick = state.initializedTicks[Number(previousTick)].next;
453
- i++;
454
- }
455
- TickLinkedList_1.LinkedList.insert(state.initializedTicks, tick, previousTick, nextTick);
456
- if (state.poolData.nearestCurrentTick < tick && tick <= currentTick) {
457
- state.poolData.nearestCurrentTick = tick;
458
- }
459
- }
460
- else {
461
- if (tick == state.poolData.nearestCurrentTick) {
462
- state.poolData.nearestCurrentTick = TickLinkedList_1.LinkedList.remove(state.initializedTicks, tick);
463
- }
464
- else {
465
- TickLinkedList_1.LinkedList.remove(state.initializedTicks, tick);
466
- }
467
- }
468
- }
469
- _getInitialSwapData(state, poolData, isToken0, amountSpecified) {
470
- let isExactInput = amountSpecified > 0n;
471
- let willTickUp = isExactInput != isToken0;
472
- const initState = {
473
- ...poolData,
474
- ...state,
475
- currentTick: (0, utils_1.bigIntify)(poolData.currentTick),
476
- nearestCurrentTick: (0, utils_1.bigIntify)(poolData.nearestCurrentTick),
477
- nextTick: !willTickUp
478
- ? (0, utils_1.bigIntify)(poolData.nearestCurrentTick)
479
- : (0, utils_1.bigIntify)(state.initializedTicks[Number(poolData.nearestCurrentTick)].next),
480
- specifiedAmount: 0n,
481
- returnedAmount: 0n,
482
- startSqrtP: poolData.sqrtP,
483
- isToken0: isToken0,
484
- isExactInput: isExactInput,
485
- nextSqrtP: 0n,
486
- isFirstCycleState: true,
487
- tickCount: 0n,
488
- feeGrowthGlobal: 0n,
489
- governmentFee: 0n,
490
- governmentFeeUnits: state.swapFeeUnits,
491
- lpFee: 0n,
492
- };
493
- return initState;
494
- }
495
- _checkTicks(tickLower, tickUpper) {
496
- (0, utils_1._require)(tickLower < tickUpper, 'TLU', { tickLower, tickUpper }, 'tickLower < tickUpper');
497
- (0, utils_1._require)(tickLower >= TickMath_1.TickMath.MIN_TICK, 'TLM', { tickLower }, 'tickLower >= TickMath.MIN_TICK');
498
- (0, utils_1._require)(tickUpper <= TickMath_1.TickMath.MAX_TICK, 'TUM', { tickUpper }, 'tickUpper <= TickMath.MAX_TICK');
499
- }
500
- }
501
- exports.ksElasticMath = new KSElasticMath();
502
- //# sourceMappingURL=kyberswap-elastic-math.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kyberswap-elastic-math.js","sourceRoot":"","sources":["../../../../src/dex/kyberswap-elastic/contract-math/kyberswap-elastic-math.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/dex/kyberswap-elastic/contract-math/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACrD,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAFD,0BAEC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzB,CAAC;AAFD,kBAEC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzB,CAAC;AAFD,kBAEC"}
@@ -1,2 +0,0 @@
1
- export declare const ERR_POOL_DOES_NOT_EXIST = "pool does not exist";
2
- export declare const ERR_DECODE = "failed to get decodable result";
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ERR_DECODE = exports.ERR_POOL_DOES_NOT_EXIST = void 0;
4
- exports.ERR_POOL_DOES_NOT_EXIST = 'pool does not exist';
5
- exports.ERR_DECODE = 'failed to get decodable result';
6
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/dex/kyberswap-elastic/errors.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAChD,QAAA,UAAU,GAAG,gCAAgC,CAAC"}
@@ -1,80 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { Contract } from 'web3-eth-contract';
3
- import { DeepReadonly } from 'ts-essentials';
4
- import { Log, Logger, Address, BlockHeader } from '../../types';
5
- import { StatefulEventSubscriber, InitializeStateOptions } from '../../stateful-event-subscriber';
6
- import { IDexHelper } from '../../dex-helper/idex-helper';
7
- import { PoolState } from './types';
8
- export declare class KyberswapElasticEventPool extends StatefulEventSubscriber<PoolState> {
9
- readonly parentName: string;
10
- protected network: number;
11
- protected dexHelper: IDexHelper;
12
- protected logger: Logger;
13
- protected config: import("./types").DexParams;
14
- readonly swapFeeUnits: bigint;
15
- readonly token0: Address;
16
- readonly token1: Address;
17
- handlers: {
18
- [event: string]: (event: any, pool: PoolState, log: Log, blockHeader: Readonly<BlockHeader>) => PoolState;
19
- };
20
- poolLogDecoder: (log: Log) => any;
21
- pmLogDecoder: (log: Log) => any;
22
- addressesSubscribed: string[];
23
- poolContract: Contract;
24
- readonly erc20Iface: Interface;
25
- readonly kyberswapElasticIface: Interface;
26
- readonly positionManagerIface: Interface;
27
- readonly multicallContract: Contract;
28
- readonly factoryContract: Contract;
29
- readonly ticksFeesReaderContract: Contract;
30
- private _poolAddress?;
31
- private _stateRequestCallData?;
32
- constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, config: import("./types").DexParams, swapFeeUnits: bigint, token0: Address, token1: Address);
33
- set poolAddress(address: Address);
34
- get poolAddress(): Address;
35
- computePoolAddress(token0: Address, token1: Address, fee: bigint): Address;
36
- initialize(blockNumber: number, options?: InitializeStateOptions<PoolState>): Promise<void>;
37
- /**
38
- * The function is called every time any of the subscribed
39
- * addresses release log. The function accepts the current
40
- * state, updates the state according to the log, and returns
41
- * the updated state.
42
- * @param state - Current state of event subscriber
43
- * @param log - Log released by one of the subscribed addresses
44
- * @returns Updates state of the event subscriber after the log
45
- */
46
- protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<PoolState> | null;
47
- /**
48
- * The function generates state using on-chain calls. This
49
- * function is called to regenerate state if the event based
50
- * system fails to fetch events and the local state is no
51
- * more correct.
52
- * @param blockNumber - Blocknumber for which the state should
53
- * should be generated
54
- * @returns state of the event subscriber at blocknumber
55
- */
56
- generateState(blockNumber: number): Promise<Readonly<PoolState>>;
57
- /**
58
- * Fetch Pool States
59
- */
60
- private _fetchPoolData;
61
- private _constructPoolDataCalldata;
62
- /**
63
- * Fetch Ticks States
64
- */
65
- private _fetchTicks;
66
- private _fetchTickInRange;
67
- private _fetchInitializedTickIndice;
68
- private _constructTickCalldata;
69
- private _reduceInitializedTicks;
70
- private _reduceTicks;
71
- /**
72
- * Handle events
73
- */
74
- private _handleSwapEvent;
75
- private _handleMintEvent;
76
- private _handleBurnEvent;
77
- private _handleBurnREvent;
78
- private _handleFlashEvent;
79
- private _handleSyncFeeGrowth;
80
- }