@paraswap/dex-lib 3.4.0 → 3.4.1

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 (360) hide show
  1. package/.vscode/launch.json +53 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/README.md +3 -3
  5. package/abis.txt +92 -0
  6. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  7. package/build/abi/{integral/relayer.json → wombat/pool.json} +587 -446
  8. package/build/config.js +0 -35
  9. package/build/config.js.map +1 -1
  10. package/build/constants.d.ts +0 -1
  11. package/build/constants.js +0 -1
  12. package/build/constants.js.map +1 -1
  13. package/build/dex/augustus-rfq.js +0 -1
  14. package/build/dex/augustus-rfq.js.map +1 -1
  15. package/build/dex/curve-v1/config.js +1 -57
  16. package/build/dex/curve-v1/config.js.map +1 -1
  17. package/build/dex/curve-v1-factory/config.js +1 -1
  18. package/build/dex/curve-v1-factory/config.js.map +1 -1
  19. package/build/dex/etherfi.js +1 -1
  20. package/build/dex/gmx/gmx.js.map +1 -1
  21. package/build/dex/index.js +0 -14
  22. package/build/dex/index.js.map +1 -1
  23. package/build/dex/nerve/config.js +0 -399
  24. package/build/dex/nerve/config.js.map +1 -1
  25. package/build/dex/paraswap-limit-orders/config.js +0 -7
  26. package/build/dex/paraswap-limit-orders/config.js.map +1 -1
  27. package/build/dex/quick-perps/quick-perps.js.map +1 -1
  28. package/build/dex/quickswap/config.js +0 -8
  29. package/build/dex/quickswap/config.js.map +1 -1
  30. package/build/dex/solidly/config.js +1 -27
  31. package/build/dex/solidly/config.js.map +1 -1
  32. package/build/dex/solidly/solidly.js +0 -2
  33. package/build/dex/solidly/solidly.js.map +1 -1
  34. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  35. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  36. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  37. package/build/dex/stable-pool/stable-pool.js +1 -8
  38. package/build/dex/stable-pool/stable-pool.js.map +1 -1
  39. package/build/dex/stable-pool.js +1 -8
  40. package/build/dex/stable-pool.js.map +1 -1
  41. package/build/dex/uniswap-v2/config.js +0 -152
  42. package/build/dex/uniswap-v2/config.js.map +1 -1
  43. package/build/dex/uniswap-v2/constants.js +0 -1
  44. package/build/dex/uniswap-v2/constants.js.map +1 -1
  45. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  46. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  47. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  48. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  49. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  50. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  51. package/build/dex/weth/config.js +0 -3
  52. package/build/dex/weth/config.js.map +1 -1
  53. package/build/dex/wsteth/wsteth.js.map +1 -1
  54. package/build/types.d.ts +0 -1
  55. package/package.json +1 -1
  56. package/src/config.ts +0 -39
  57. package/src/constants.ts +0 -1
  58. package/src/dex/augustus-rfq.ts +0 -1
  59. package/src/dex/curve-v1/config.ts +1 -57
  60. package/src/dex/curve-v1/curve-v1-e2e.test.ts +0 -51
  61. package/src/dex/curve-v1-factory/config.ts +1 -1
  62. package/src/dex/etherfi.ts +1 -1
  63. package/src/dex/gmx/gmx.ts +1 -4
  64. package/src/dex/index.ts +0 -14
  65. package/src/dex/nerve/config.ts +0 -400
  66. package/src/dex/nerve/nerve-e2e.test.ts +0 -507
  67. package/src/dex/nerve/nerve-events.test.ts +0 -268
  68. package/src/dex/paraswap-limit-orders/config.ts +0 -7
  69. package/src/dex/paraswap-limit-orders/paraswap-limit-orders-e2e.test.ts +2 -2
  70. package/src/dex/paraswap-limit-orders/paraswap-limit-orders-integration.test.ts +1 -1
  71. package/src/dex/quick-perps/quick-perps.ts +1 -4
  72. package/src/dex/quickswap/config.ts +0 -9
  73. package/src/dex/quickswap/quickswap-e2e.test.ts +0 -97
  74. package/src/dex/solidly/config.ts +1 -30
  75. package/src/dex/solidly/solidly-e2e.test.ts +0 -280
  76. package/src/dex/solidly/solidly-integration.test.ts +0 -135
  77. package/src/dex/solidly/solidly.ts +0 -2
  78. package/src/dex/stable-pool/stable-pool.ts +1 -8
  79. package/src/dex/uniswap-v2/config.ts +0 -185
  80. package/src/dex/uniswap-v2/constants.ts +0 -1
  81. package/src/dex/uniswap-v2/uniswap-v2-e2e-avalanche.test.ts +0 -272
  82. package/src/dex/uniswap-v2/uniswap-v2-e2e-base.test.ts +0 -6
  83. package/src/dex/uniswap-v2/uniswap-v2-e2e-bsc.test.ts +0 -325
  84. package/src/dex/uniswap-v2/uniswap-v2-e2e-mainnet.test.ts +0 -175
  85. package/src/dex/uniswap-v2/uniswap-v2-e2e-polygon.test.ts +0 -413
  86. package/src/dex/weth/config.ts +0 -3
  87. package/src/dex/wsteth/wsteth.ts +1 -4
  88. package/src/types.ts +0 -1
  89. package/tests/constants-e2e.ts +0 -21
  90. package/tests/generate-new-limit-order.ts +1 -1
  91. package/.idea/aws.xml +0 -17
  92. package/.idea/codeStyles/Project.xml +0 -19
  93. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  94. package/.idea/misc.xml +0 -6
  95. package/.idea/modules.xml +0 -8
  96. package/.idea/paraswap-dex-lib.iml +0 -9
  97. package/.idea/prettier.xml +0 -7
  98. package/.idea/vcs.xml +0 -6
  99. package/build/abi/AugustusV6.abi.json +0 -395
  100. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  101. package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
  102. package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
  103. package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
  104. package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
  105. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  106. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
  107. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  108. package/build/abi/wBETH.json +0 -1527
  109. package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
  110. package/build/abi/woo-fi/WooPP.abi.json +0 -548
  111. package/build/abi/woo-fi/Wooracle.abi.json +0 -260
  112. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  113. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  114. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  115. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  116. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  117. package/build/dex/algebra/algebra-pool.d.ts +0 -114
  118. package/build/dex/algebra/algebra-pool.js +0 -448
  119. package/build/dex/algebra/algebra-pool.js.map +0 -1
  120. package/build/dex/balancer-v2/Gyro3Pool.d.ts +0 -43
  121. package/build/dex/balancer-v2/Gyro3Pool.js +0 -160
  122. package/build/dex/balancer-v2/Gyro3Pool.js.map +0 -1
  123. package/build/dex/balancer-v2/LinearMath.d.ts +0 -88
  124. package/build/dex/balancer-v2/LinearMath.js +0 -285
  125. package/build/dex/balancer-v2/LinearMath.js.map +0 -1
  126. package/build/dex/balancer-v2/LinearPool.d.ts +0 -81
  127. package/build/dex/balancer-v2/LinearPool.js +0 -444
  128. package/build/dex/balancer-v2/LinearPool.js.map +0 -1
  129. package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -90
  130. package/build/dex/balancer-v2/PhantomStablePool.js +0 -418
  131. package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
  132. package/build/dex/balancer-v2/StableMath.d.ts +0 -9
  133. package/build/dex/balancer-v2/StableMath.js +0 -272
  134. package/build/dex/balancer-v2/StableMath.js.map +0 -1
  135. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -140
  136. package/build/dex/balancer-v2/balancer-v2-pool.js +0 -647
  137. package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
  138. package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
  139. package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
  140. package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
  141. package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
  142. package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
  143. package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
  144. package/build/dex/integral/config.d.ts +0 -4
  145. package/build/dex/integral/config.js +0 -18
  146. package/build/dex/integral/config.js.map +0 -1
  147. package/build/dex/integral/integral-pool.d.ts +0 -39
  148. package/build/dex/integral/integral-pool.js +0 -67
  149. package/build/dex/integral/integral-pool.js.map +0 -1
  150. package/build/dex/integral/integral.d.ts +0 -48
  151. package/build/dex/integral/integral.js +0 -402
  152. package/build/dex/integral/integral.js.map +0 -1
  153. package/build/dex/integral/types.d.ts +0 -25
  154. package/build/dex/integral/types.js +0 -9
  155. package/build/dex/integral/types.js.map +0 -1
  156. package/build/dex/lighter-v1/abi/erc20.json +0 -222
  157. package/build/dex/lighter-v1/abi/factory.json +0 -291
  158. package/build/dex/lighter-v1/abi/order_book.json +0 -594
  159. package/build/dex/lighter-v1/abi/order_book_helper.json +0 -176
  160. package/build/dex/lighter-v1/abi/router.json +0 -488
  161. package/build/dex/lighter-v1/config.d.ts +0 -4
  162. package/build/dex/lighter-v1/config.js +0 -17
  163. package/build/dex/lighter-v1/config.js.map +0 -1
  164. package/build/dex/lighter-v1/constants.d.ts +0 -2
  165. package/build/dex/lighter-v1/constants.js +0 -13
  166. package/build/dex/lighter-v1/constants.js.map +0 -1
  167. package/build/dex/lighter-v1/lighter-v1-pool.d.ts +0 -57
  168. package/build/dex/lighter-v1/lighter-v1-pool.js +0 -310
  169. package/build/dex/lighter-v1/lighter-v1-pool.js.map +0 -1
  170. package/build/dex/lighter-v1/lighter-v1.d.ts +0 -45
  171. package/build/dex/lighter-v1/lighter-v1.js +0 -331
  172. package/build/dex/lighter-v1/lighter-v1.js.map +0 -1
  173. package/build/dex/lighter-v1/types.d.ts +0 -40
  174. package/build/dex/lighter-v1/types.js +0 -3
  175. package/build/dex/lighter-v1/types.js.map +0 -1
  176. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  177. package/build/dex/pancakeswap-v3/types.js +0 -3
  178. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  179. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  180. package/build/dex/quickswap/camelot-v3.js +0 -19
  181. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  182. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  183. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  184. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
  185. package/build/dex/quickswap-v3.d.ts +0 -21
  186. package/build/dex/quickswap-v3.js +0 -40
  187. package/build/dex/quickswap-v3.js.map +0 -1
  188. package/build/dex/ramses-v2/config.d.ts +0 -4
  189. package/build/dex/ramses-v2/config.js +0 -28
  190. package/build/dex/ramses-v2/config.js.map +0 -1
  191. package/build/dex/ramses-v2/constants.d.ts +0 -28
  192. package/build/dex/ramses-v2/constants.js +0 -35
  193. package/build/dex/ramses-v2/constants.js.map +0 -1
  194. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
  195. package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
  196. package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
  197. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
  198. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
  199. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
  200. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
  201. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
  202. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
  203. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
  204. package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
  205. package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
  206. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
  207. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
  208. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
  209. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
  210. package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
  211. package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
  212. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
  213. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
  214. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
  215. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
  216. package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
  217. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
  218. package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
  219. package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
  220. package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
  221. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
  222. package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
  223. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
  224. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
  225. package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
  226. package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
  227. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
  228. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
  229. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
  230. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
  231. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
  232. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
  233. package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
  234. package/build/dex/ramses-v2/contract-math/utils.js +0 -16
  235. package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
  236. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
  237. package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
  238. package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
  239. package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
  240. package/build/dex/ramses-v2/ramses-v2.js +0 -690
  241. package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
  242. package/build/dex/ramses-v2/types.d.ts +0 -154
  243. package/build/dex/ramses-v2/types.js +0 -9
  244. package/build/dex/ramses-v2/types.js.map +0 -1
  245. package/build/dex/ramses-v2/utils.d.ts +0 -6
  246. package/build/dex/ramses-v2/utils.js +0 -71
  247. package/build/dex/ramses-v2/utils.js.map +0 -1
  248. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  249. package/build/dex/solidly/forks-override/fvm.js +0 -42
  250. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  251. package/build/dex/sushiswap-v3/config.d.ts +0 -4
  252. package/build/dex/sushiswap-v3/config.js +0 -132
  253. package/build/dex/sushiswap-v3/config.js.map +0 -1
  254. package/build/dex/sushiswap-v3/constants.d.ts +0 -4
  255. package/build/dex/sushiswap-v3/constants.js +0 -32
  256. package/build/dex/sushiswap-v3/constants.js.map +0 -1
  257. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
  258. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
  259. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
  260. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
  261. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
  262. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
  263. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
  264. package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
  265. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
  266. package/build/dex/sushiswap-v3/token.d.ts +0 -6
  267. package/build/dex/sushiswap-v3/token.js +0 -23
  268. package/build/dex/sushiswap-v3/token.js.map +0 -1
  269. package/build/dex/sushiswap-v3/types.d.ts +0 -15
  270. package/build/dex/sushiswap-v3/types.js +0 -18
  271. package/build/dex/sushiswap-v3/types.js.map +0 -1
  272. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
  273. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
  274. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
  275. package/build/dex/woo-fi/config.d.ts +0 -4
  276. package/build/dex/woo-fi/config.js +0 -141
  277. package/build/dex/woo-fi/config.js.map +0 -1
  278. package/build/dex/woo-fi/constants.d.ts +0 -5
  279. package/build/dex/woo-fi/constants.js +0 -20
  280. package/build/dex/woo-fi/constants.js.map +0 -1
  281. package/build/dex/woo-fi/types.d.ts +0 -48
  282. package/build/dex/woo-fi/types.js +0 -3
  283. package/build/dex/woo-fi/types.js.map +0 -1
  284. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
  285. package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
  286. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
  287. package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
  288. package/build/dex/woo-fi/woo-fi-math.js +0 -300
  289. package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
  290. package/build/dex/woo-fi/woo-fi.d.ts +0 -65
  291. package/build/dex/woo-fi/woo-fi.js +0 -480
  292. package/build/dex/woo-fi/woo-fi.js.map +0 -1
  293. package/build/executor/IExecutorBytecodeBuilder.d.ts +0 -6
  294. package/build/executor/IExecutorBytecodeBuilder.js +0 -3
  295. package/build/executor/IExecutorBytecodeBuilder.js.map +0 -1
  296. package/src/abi/AaveV1_lending_pool.json +0 -27
  297. package/src/abi/platypus/asset.json +0 -490
  298. package/src/abi/platypus/avax-pool.json +0 -820
  299. package/src/abi/platypus/oracle.json +0 -119
  300. package/src/abi/platypus/pool.json +0 -677
  301. package/src/abi/smardex/all/smardex-router.json +0 -648
  302. package/src/abi/smardex/layer-1/smardex-factory.json +0 -242
  303. package/src/abi/smardex/layer-1/smardex-pool.json +0 -506
  304. package/src/abi/smardex/layer-2/smardex-factory.json +0 -185
  305. package/src/abi/smardex/layer-2/smardex-pool.json +0 -578
  306. package/src/abi/swaap-v1/asset.json +0 -490
  307. package/src/abi/swaap-v1/oracle.json +0 -119
  308. package/src/abi/swaap-v1/pool.json +0 -1346
  309. package/src/dex/aave-v1/aave-v1-e2e.test.ts +0 -105
  310. package/src/dex/aave-v1/aave-v1-integration.test.ts +0 -100
  311. package/src/dex/aave-v1/aave-v1.ts +0 -261
  312. package/src/dex/aave-v1/config.ts +0 -22
  313. package/src/dex/aave-v1/tokens-mainnet.json +0 -134
  314. package/src/dex/aave-v1/tokens.ts +0 -58
  315. package/src/dex/aave-v1/types.ts +0 -24
  316. package/src/dex/platypus/asset.ts +0 -139
  317. package/src/dex/platypus/config.ts +0 -72
  318. package/src/dex/platypus/platypus-e2e.test.ts +0 -168
  319. package/src/dex/platypus/platypus-events.test.ts +0 -167
  320. package/src/dex/platypus/platypus-integration.test.ts +0 -256
  321. package/src/dex/platypus/platypus.ts +0 -639
  322. package/src/dex/platypus/pool-avax.ts +0 -92
  323. package/src/dex/platypus/pool-base.ts +0 -155
  324. package/src/dex/platypus/pool-pure.ts +0 -71
  325. package/src/dex/platypus/pool-subscriber.ts +0 -239
  326. package/src/dex/platypus/pool.ts +0 -99
  327. package/src/dex/platypus/types.ts +0 -104
  328. package/src/dex/quickswap/spiritswap-v3.ts +0 -19
  329. package/src/dex/smardex/config.ts +0 -67
  330. package/src/dex/smardex/constants.ts +0 -35
  331. package/src/dex/smardex/sdk/constants.ts +0 -10
  332. package/src/dex/smardex/sdk/core.ts +0 -832
  333. package/src/dex/smardex/sdk/errors.ts +0 -18
  334. package/src/dex/smardex/sdk/types.ts +0 -68
  335. package/src/dex/smardex/sdk/utils.ts +0 -156
  336. package/src/dex/smardex/smardex-e2e.test.ts +0 -275
  337. package/src/dex/smardex/smardex-event-pool.ts +0 -164
  338. package/src/dex/smardex/smardex-events.test.ts +0 -297
  339. package/src/dex/smardex/smardex-integration.test.ts +0 -258
  340. package/src/dex/smardex/smardex.ts +0 -770
  341. package/src/dex/smardex/types.ts +0 -69
  342. package/src/dex/solidly/forks-override/cone.ts +0 -67
  343. package/src/dex/solidly/forks-override/solisnek.ts +0 -10
  344. package/src/dex/swaap-v1/config.ts +0 -62
  345. package/src/dex/swaap-v1/constants.ts +0 -22
  346. package/src/dex/swaap-v1/libraries/ChainlinkUtils.ts +0 -152
  347. package/src/dex/swaap-v1/libraries/Const.ts +0 -29
  348. package/src/dex/swaap-v1/libraries/GeometricBrownianMotion.ts +0 -433
  349. package/src/dex/swaap-v1/libraries/LogExpMath.ts +0 -511
  350. package/src/dex/swaap-v1/libraries/MathMMM.ts +0 -717
  351. package/src/dex/swaap-v1/libraries/Num.ts +0 -184
  352. package/src/dex/swaap-v1/libraries/PoolQuotations.ts +0 -322
  353. package/src/dex/swaap-v1/libraries/Struct.ts +0 -66
  354. package/src/dex/swaap-v1/swaap-v1-e2e.test.ts +0 -75
  355. package/src/dex/swaap-v1/swaap-v1-events.test.ts +0 -138
  356. package/src/dex/swaap-v1/swaap-v1-integration.test.ts +0 -232
  357. package/src/dex/swaap-v1/swaap-v1-pool.ts +0 -919
  358. package/src/dex/swaap-v1/swaap-v1.ts +0 -668
  359. package/src/dex/swaap-v1/types.ts +0 -124
  360. package/src/dex/uniswap-v2/uniswap-v2-e2e-ropsten.test.ts +0 -481
@@ -1,433 +0,0 @@
1
- import { Const } from './Const';
2
- import { Num } from './Num';
3
- import { LogExpMath } from './LogExpMath';
4
- import * as Struct from './Struct';
5
- import { ChainlinkUtils } from './ChainlinkUtils';
6
- import { ChainLinkData, OracleData } from '../types';
7
-
8
- export class GeometricBrownianMotion {
9
- /**
10
- * @notice Gets asset-pair approximate historical return's mean and variance
11
- * @param latestRoundIn The round-to-start-from's data including its ID of tokenIn
12
- * @param latestRoundOut The round-to-start-from's data including its ID of tokenOut
13
- * @param hpParameters The parameters for historical prices retrieval
14
- * @return gbmEstimation The asset-pair historical return's mean and variance
15
- */
16
- static getParametersEstimation(
17
- latestRoundIn: Struct.LatestRound,
18
- latestRoundOut: Struct.LatestRound,
19
- hpParameters: Struct.HistoricalPricesParameters,
20
- historicalOracleStateIn: ChainLinkData,
21
- historicalOracleStateOut: ChainLinkData,
22
- ): Struct.GBMEstimation {
23
- // retrieve historical prices of tokenIn
24
- let [pricesIn, timestampsIn, startIndexIn, noMoreDataPointIn] =
25
- GeometricBrownianMotion.getHistoricalPrices(
26
- latestRoundIn,
27
- hpParameters,
28
- historicalOracleStateIn,
29
- );
30
- if (!noMoreDataPointIn && startIndexIn < hpParameters.lookbackInRound - 1) {
31
- return {
32
- mean: 0n,
33
- variance: 0n,
34
- success: false,
35
- };
36
- }
37
-
38
- let reducedLookbackInSecCandidate =
39
- hpParameters.timestamp - timestampsIn[startIndexIn];
40
- if (reducedLookbackInSecCandidate < hpParameters.lookbackInSec) {
41
- hpParameters.lookbackInSec = reducedLookbackInSecCandidate;
42
- }
43
-
44
- // retrieve historical prices of tokenOut
45
- let [pricesOut, timestampsOut, startIndexOut, noMoreDataPointOut] =
46
- GeometricBrownianMotion.getHistoricalPrices(
47
- latestRoundOut,
48
- hpParameters,
49
- historicalOracleStateOut,
50
- );
51
- if (
52
- !noMoreDataPointOut &&
53
- startIndexOut < hpParameters.lookbackInRound - 1
54
- ) {
55
- return {
56
- mean: 0n,
57
- variance: 0n,
58
- success: false,
59
- };
60
- }
61
-
62
- return GeometricBrownianMotion._getParametersEstimation(
63
- noMoreDataPointIn && noMoreDataPointOut,
64
- { startIndex: startIndexIn, timestamps: timestampsIn, prices: pricesIn },
65
- {
66
- startIndex: startIndexOut,
67
- timestamps: timestampsOut,
68
- prices: pricesOut,
69
- },
70
- hpParameters,
71
- );
72
- }
73
-
74
- /**
75
- * @notice Gets asset-pair historical data return's mean and variance
76
- * @param noMoreDataPoints True if and only if the retrieved data span over the whole time window of interest
77
- * @param hpDataIn Historical prices data of tokenIn
78
- * @param hpDataOut Historical prices data of tokenOut
79
- * @param hpParameters The parameters for historical prices retrieval
80
- * @return gbmEstimation The asset-pair historical return's mean and variance
81
- */
82
- static _getParametersEstimation(
83
- noMoreDataPoints: boolean,
84
- hpDataIn: Struct.HistoricalPricesData,
85
- hpDataOut: Struct.HistoricalPricesData,
86
- hpParameters: Struct.HistoricalPricesParameters,
87
- ): Struct.GBMEstimation {
88
- // no price return can be calculated with only 1 data point
89
- if (hpDataIn.startIndex == 0 && hpDataOut.startIndex == 0) {
90
- return {
91
- mean: 0n,
92
- variance: 0n,
93
- success: true,
94
- };
95
- }
96
-
97
- if (noMoreDataPoints) {
98
- let ts = hpParameters.timestamp - hpParameters.lookbackInSec;
99
- hpDataIn.timestamps[hpDataIn.startIndex] = ts;
100
- hpDataOut.timestamps[hpDataOut.startIndex] = ts;
101
- } else {
102
- GeometricBrownianMotion.consolidateStartIndices(hpDataIn, hpDataOut);
103
- // no price return can be calculated with only 1 data point
104
- if (hpDataIn.startIndex == 0 && hpDataOut.startIndex == 0) {
105
- return {
106
- mean: 0n,
107
- variance: 0n,
108
- success: true,
109
- };
110
- }
111
- }
112
- let [values, timestamps] = GeometricBrownianMotion.getSeries(
113
- hpDataIn.prices,
114
- hpDataIn.timestamps,
115
- hpDataIn.startIndex,
116
- hpDataOut.prices,
117
- hpDataOut.timestamps,
118
- hpDataOut.startIndex,
119
- );
120
- let [mean, variance] = GeometricBrownianMotion.getStatistics(
121
- values,
122
- timestamps,
123
- );
124
-
125
- return {
126
- mean: mean,
127
- variance: variance,
128
- success: true,
129
- };
130
- }
131
-
132
- /**
133
- * @notice Gets asset-pair historical prices with timestamps
134
- * @param pricesIn The historical prices of tokenIn
135
- * @param timestampsIn The timestamps corresponding to the tokenIn's historical prices
136
- * @param startIndexIn The tokenIn historical data's last valid index
137
- * @param pricesOut The tokenIn historical data's last valid index
138
- * @param timestampsOut The timestamps corresponding to the tokenOut's historical prices
139
- * @param startIndexOut The tokenOut historical data's last valid index
140
- * @return values The asset-pair historical prices array
141
- * @return timestamps The asset-pair historical timestamps array
142
- */
143
- static getSeries(
144
- pricesIn: bigint[],
145
- timestampsIn: bigint[],
146
- startIndexIn: number,
147
- pricesOut: bigint[],
148
- timestampsOut: bigint[],
149
- startIndexOut: number,
150
- ): [bigint[], bigint[]] {
151
- let values, timestamps;
152
- // compute the number of returns
153
- let count = 1;
154
- {
155
- let _startIndexIn = startIndexIn;
156
- let _startIndexOut = startIndexOut;
157
- let skip = true;
158
- while (_startIndexIn > 0 || _startIndexOut > 0) {
159
- [skip, _startIndexIn, _startIndexOut] =
160
- GeometricBrownianMotion.getNextSample(
161
- _startIndexIn,
162
- _startIndexOut,
163
- timestampsIn,
164
- timestampsOut,
165
- );
166
- if (!skip) {
167
- count += 1;
168
- }
169
- }
170
- values = new Array<bigint>(count);
171
- timestamps = new Array<bigint>(count);
172
- values[0] = Num.div(pricesOut[startIndexOut], pricesIn[startIndexIn]);
173
- timestamps[0] =
174
- Num.max(timestampsOut[startIndexOut], timestampsIn[startIndexIn]) *
175
- Const.ONE;
176
- }
177
-
178
- // compute actual returns
179
- {
180
- count = 1;
181
- let skip = true;
182
- while (startIndexIn > 0 || startIndexOut > 0) {
183
- [skip, startIndexIn, startIndexOut] =
184
- GeometricBrownianMotion.getNextSample(
185
- startIndexIn,
186
- startIndexOut,
187
- timestampsIn,
188
- timestampsOut,
189
- );
190
- if (!skip) {
191
- values[count] = Num.div(
192
- pricesOut[startIndexOut],
193
- pricesIn[startIndexIn],
194
- );
195
- timestamps[count] =
196
- Num.max(timestampsOut[startIndexOut], timestampsIn[startIndexIn]) *
197
- Const.ONE;
198
- count += 1;
199
- }
200
- }
201
- }
202
-
203
- return [values, timestamps];
204
- }
205
-
206
- /**
207
- * @notice Gets asset-pair historical mean/variance from timestamped data
208
- * @param values The historical values
209
- * @param timestamps The corresponding time deltas, in seconds
210
- * @return mean The asset-pair historical return's mean
211
- * @return variance asset-pair historical return's variance
212
- */
213
- static getStatistics(
214
- values: bigint[],
215
- timestamps: bigint[],
216
- ): [bigint, bigint] {
217
- let n = values.length;
218
- if (n < 2) {
219
- return [0n, 0n];
220
- }
221
- n -= 1;
222
-
223
- let tWithPrecision = timestamps[n] - timestamps[0];
224
-
225
- // mean
226
- let mean = Num.divInt256(
227
- LogExpMath.ln(Num.divInt256(values[n], values[0])),
228
- tWithPrecision,
229
- );
230
-
231
- let meanSquare;
232
- if (mean < 0) {
233
- meanSquare = Num.mul(-mean, -mean);
234
- } else {
235
- meanSquare = Num.mul(mean, mean);
236
- }
237
-
238
- // variance
239
- let variance = -Num.mul(meanSquare, tWithPrecision);
240
- for (let i = 1; i <= n; i++) {
241
- let d = LogExpMath.ln(Num.divInt256(values[i], values[i - 1]));
242
- if (d < 0) {
243
- d = -d;
244
- }
245
- let dAbs = d;
246
- variance += Num.div(
247
- Num.mul(dAbs, dAbs),
248
- timestamps[i] - timestamps[i - 1],
249
- );
250
- }
251
- variance = Num.divInt256(variance, BigInt(n) * Const.ONE);
252
- return [mean, Num.positivePart(variance)];
253
- }
254
-
255
- /**
256
- * @notice Gets historical prices from a Chainlink data feed
257
- * @dev Few specificities:
258
- * - it filters out round data with null price or timestamp
259
- * - it stops filling the prices/timestamps when:
260
- * a) hpParameters.lookbackInRound rounds have already been found
261
- * b) time window induced by hpParameters.lookbackInSec is no more satisfied
262
- * @param latestRound The round-to-start-from's data including its ID
263
- * @param hpParameters The parameters for historical prices retrieval
264
- * @return historicalPrices The historical prices of a token
265
- * @return historicalTimestamps The timestamps of the reported prices
266
- * @return index The last valid index of the returned arrays
267
- * @return noMoreDataPoints True if the reported historical prices reaches the lookback time limit
268
- */
269
- static getHistoricalPrices(
270
- latestRound: Struct.LatestRound,
271
- hpParameters: Struct.HistoricalPricesParameters,
272
- historicalOracleState: ChainLinkData,
273
- ): [bigint[], bigint[], number, boolean] {
274
- let latestTimestamp = latestRound.timestamp;
275
-
276
- // historical price endtimestamp >= lookback window or it reverts
277
- let timeLimit = Num.sub(hpParameters.timestamp, hpParameters.lookbackInSec);
278
-
279
- // result variables
280
- let prices = new Array<bigint>(hpParameters.lookbackInRound);
281
- let timestamps = new Array<bigint>(hpParameters.lookbackInRound);
282
- let idx = 1;
283
-
284
- {
285
- prices[0] = latestRound.price; // is supposed to be well valid
286
- timestamps[0] = latestTimestamp; // is supposed to be well valid
287
-
288
- if (latestTimestamp < timeLimit) {
289
- return [prices, timestamps, 0, true];
290
- }
291
-
292
- let count = 1;
293
-
294
- // buffer variables
295
- let _roundId = latestRound.roundId;
296
-
297
- while (
298
- _roundId >= hpParameters.lookbackStepInRound &&
299
- count < hpParameters.lookbackInRound
300
- ) {
301
- _roundId -= hpParameters.lookbackStepInRound;
302
- let [_price, _timestamp] = ChainlinkUtils.getRoundData(
303
- _roundId,
304
- historicalOracleState,
305
- );
306
-
307
- if (_price > 0 && _timestamp > 0) {
308
- prices[idx] = _price;
309
- timestamps[idx] = _timestamp;
310
- idx += 1;
311
-
312
- if (_timestamp < timeLimit) {
313
- return [prices, timestamps, idx - 1, true];
314
- }
315
- }
316
-
317
- count += 1;
318
- }
319
- }
320
-
321
- return [prices, timestamps, idx - 1, false];
322
- }
323
-
324
- /**
325
- * @notice Finds the next data point in chronological order
326
- * @dev Few considerations:
327
- * - data point with same timestamp as previous point are tagged with a 'skip=true'
328
- * - when we reach the last point of a token, we consider it's value constant going forward with the other token
329
- * As a result the variance of those returns will be underestimated.
330
- * @param startIndexIn The tokenIn historical data's last valid index
331
- * @param startIndexOut The tokenOut historical data's last valid index
332
- * @param timestampsIn The timestamps corresponding to the tokenIn's historical prices
333
- * @param timestampsOut The timestamps corresponding to the tokenOut's historical prices
334
- * @return skip The 'skip' tag
335
- * @return startIndexIn The updated startIndexIn
336
- * @return startIndexOut The updated startIndexOut
337
- */
338
- static getNextSample(
339
- startIndexIn: number,
340
- startIndexOut: number,
341
- timestampsIn: bigint[],
342
- timestampsOut: bigint[],
343
- ): [boolean, number, number] {
344
- let skip = true;
345
- let nextStartIndexIn = startIndexIn > 0 ? startIndexIn - 1 : startIndexIn;
346
- let nextStartIndexOut =
347
- startIndexOut > 0 ? startIndexOut - 1 : startIndexOut;
348
- if (timestampsIn[nextStartIndexIn] == timestampsOut[nextStartIndexOut]) {
349
- if (
350
- timestampsIn[nextStartIndexIn] != timestampsIn[startIndexIn] &&
351
- timestampsOut[nextStartIndexOut] != timestampsOut[startIndexOut]
352
- ) {
353
- skip = false;
354
- }
355
- if (startIndexIn > 0) {
356
- startIndexIn--;
357
- }
358
- if (startIndexOut > 0) {
359
- startIndexOut--;
360
- }
361
- } else {
362
- if (startIndexOut == 0) {
363
- if (timestampsIn[nextStartIndexIn] != timestampsIn[startIndexIn]) {
364
- skip = false;
365
- }
366
- if (startIndexIn > 0) {
367
- startIndexIn--;
368
- }
369
- } else if (startIndexIn == 0) {
370
- if (timestampsOut[nextStartIndexOut] != timestampsOut[startIndexOut]) {
371
- skip = false;
372
- }
373
- if (startIndexOut > 0) {
374
- startIndexOut--;
375
- }
376
- } else {
377
- if (timestampsIn[nextStartIndexIn] < timestampsOut[nextStartIndexOut]) {
378
- if (timestampsIn[nextStartIndexIn] != timestampsIn[startIndexIn]) {
379
- skip = false;
380
- }
381
- if (startIndexIn > 0) {
382
- startIndexIn--;
383
- }
384
- } else {
385
- if (
386
- timestampsOut[nextStartIndexOut] != timestampsOut[startIndexOut]
387
- ) {
388
- skip = false;
389
- }
390
- if (startIndexOut > 0) {
391
- startIndexOut--;
392
- }
393
- }
394
- }
395
- }
396
- return [skip, startIndexIn, startIndexOut];
397
- }
398
-
399
- /**
400
- * @notice Consolidate the last valid indexes of tokenIn and tokenOut
401
- * @param hpDataIn Historical prices data of tokenIn
402
- * @param hpDataOut Historical prices data of tokenOut
403
- */
404
- static consolidateStartIndices(
405
- hpDataIn: Struct.HistoricalPricesData,
406
- hpDataOut: Struct.HistoricalPricesData,
407
- ) {
408
- // trim prices/timestamps by adjusting startIndexes
409
- if (
410
- hpDataIn.timestamps[hpDataIn.startIndex] >
411
- hpDataOut.timestamps[hpDataOut.startIndex]
412
- ) {
413
- while (
414
- hpDataOut.startIndex > 0 &&
415
- hpDataOut.timestamps[hpDataOut.startIndex - 1] <=
416
- hpDataIn.timestamps[hpDataIn.startIndex]
417
- ) {
418
- --hpDataOut.startIndex;
419
- }
420
- } else if (
421
- hpDataIn.timestamps[hpDataIn.startIndex] <
422
- hpDataOut.timestamps[hpDataOut.startIndex]
423
- ) {
424
- while (
425
- hpDataIn.startIndex > 0 &&
426
- hpDataIn.timestamps[hpDataIn.startIndex - 1] <=
427
- hpDataOut.timestamps[hpDataOut.startIndex]
428
- ) {
429
- --hpDataIn.startIndex;
430
- }
431
- }
432
- }
433
- }