@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,184 +0,0 @@
1
- import {
2
- BI_MAX_INT,
3
- BI_MAX_UINT256 as BI_MAX_UINT,
4
- } from '../../../bigint-constants';
5
- import { Const } from './Const';
6
-
7
- const _require = (b: boolean, message: string) => {
8
- if (!b) throw new Error(message);
9
- };
10
-
11
- export class Num {
12
- /**
13
- * @dev Returns the addition of two signed integers, reverting on overflow.
14
- */
15
- static add(a: bigint, b: bigint): bigint {
16
- const c = a + b;
17
- _require(c <= BI_MAX_UINT, 'Errors.ADD_OVERFLOW');
18
- return c;
19
- }
20
-
21
- /**
22
- * @dev Returns the subtraction of two unsigned integers of 256 bits, reverting on overflow.
23
- */
24
- static sub(a: bigint, b: bigint): bigint {
25
- _require(a >= 0n && b >= 0n, 'Errors.NEGATIVE_UINT');
26
- _require(b <= a, 'Errors.SUB_OVERFLOW');
27
- const c = a - b;
28
- return c;
29
- }
30
-
31
- static toi(a: bigint): bigint {
32
- return a / Const.ONE;
33
- }
34
-
35
- static floor(a: bigint): bigint {
36
- return this.toi(a) * Const.ONE;
37
- }
38
-
39
- static subSign(a: bigint, b: bigint): [bigint, boolean] {
40
- if (a >= b) {
41
- return [a - b, false];
42
- } else {
43
- return [b - a, true];
44
- }
45
- }
46
-
47
- static mul(a: bigint, b: bigint): bigint {
48
- const c1 = a * b + Const.ONE / 2n;
49
- // Second conditions is added in case c1 was an int256 (and not a uint256)
50
- _require(c1 <= BI_MAX_UINT && c1 >= -BI_MAX_INT, 'Err.MATH_OVERFLOW');
51
- return c1 / Const.ONE;
52
- }
53
-
54
- static mulTruncated(a: bigint, b: bigint): bigint {
55
- const c0 = a * b;
56
- _require(c0 <= BI_MAX_UINT, 'Err.MATH_OVERFLOW');
57
- return c0 / Const.ONE;
58
- }
59
-
60
- static div(a: bigint, b: bigint): bigint {
61
- const c1 = a * Const.ONE + b / 2n;
62
- _require(c1 <= BI_MAX_UINT, 'Err.MATH_OVERFLOW');
63
- return c1 / b;
64
- }
65
-
66
- static divTruncated(a: bigint, b: bigint): bigint {
67
- const c0 = a * Const.ONE;
68
- _require(c0 <= BI_MAX_UINT, 'Err.MATH_OVERFLOW');
69
- return c0 / b;
70
- }
71
-
72
- // DSMath.wpow
73
- static powi(a: bigint, n: bigint): bigint {
74
- let z = n % 2n != 0n ? a : Const.ONE;
75
-
76
- for (n /= 2n; n != 0n; n /= 2n) {
77
- a = this.mul(a, a);
78
-
79
- if (n % 2n != 0n) {
80
- z = this.mul(z, a);
81
- }
82
- }
83
- return z;
84
- }
85
-
86
- // Compute b^(e.w) by splitting it into (b^e)*(b^0.w).
87
- // Use `powi` for `b^e` and `powK` for k iterations
88
- // of approximation of b^0.w
89
- static pow(base: bigint, exp: bigint): bigint {
90
- _require(base >= Const.MIN_POW_BASE, 'Err.POW_BASE_TOO_LOW');
91
- _require(base <= Const.MAX_POW_BASE, 'Err.POW_BASE_TOO_HIGH');
92
-
93
- const whole = this.floor(exp);
94
- const remain = exp - whole;
95
-
96
- const wholePow = this.powi(base, this.toi(whole));
97
-
98
- if (remain == 0n) {
99
- return wholePow;
100
- }
101
-
102
- const partialResult = this.powApprox(base, remain, Const.POW_PRECISION);
103
- return this.mul(wholePow, partialResult);
104
- }
105
-
106
- static powApprox(base: bigint, exp: bigint, precision: bigint): bigint {
107
- // term 0:
108
- const a = exp;
109
- const [x, xneg] = this.subSign(base, Const.ONE);
110
-
111
- let term = Const.ONE;
112
- let sum = term;
113
- let negative = false;
114
-
115
- // term(k) = numer / denom
116
- // = (product(a - i - 1, i=1-->k) * x^k) / (k!)
117
- // each iteration, multiply previous term by (a-(k-1)) * x / k
118
- // continue until term is less than precision
119
- for (let i = 1n; term >= precision; i++) {
120
- const bigK = i * Const.ONE;
121
- const [c, cneg] = this.subSign(a, bigK - Const.ONE);
122
- term = this.mul(term, this.mul(c, x));
123
- term = this.div(term, bigK);
124
- if (term == 0n) break;
125
-
126
- if (xneg) negative = !negative;
127
- if (cneg) negative = !negative;
128
- if (negative) {
129
- sum = this.sub(sum, term);
130
- } else {
131
- sum = this.add(sum, term);
132
- }
133
- }
134
-
135
- return sum;
136
- }
137
-
138
- /**
139
- * @notice Computes the division of 2 int256 with ONE precision
140
- * @dev Converts inputs to uint256 if needed, and then uses div(uint256, uint256)
141
- * @param a The int256 representation of a floating point number with ONE precision
142
- * @param b The int256 representation of a floating point number with ONE precision
143
- * @return b The division of 2 int256 with ONE precision
144
- */
145
- static divInt256(a: bigint, b: bigint): bigint {
146
- if (a < 0) {
147
- if (b < 0) {
148
- return Num.div(-a, -b); // both negative
149
- } else {
150
- return -Num.div(-a, b); // a < 0, b >= 0
151
- }
152
- } else {
153
- if (b < 0) {
154
- return -Num.div(a, -b); // a >= 0, b < 0
155
- } else {
156
- return Num.div(a, b); // both positive
157
- }
158
- }
159
-
160
- // _require(c2 <= BI_MAX_INT, "Err.MATH_OVERFLOW");
161
- // _require(c2 >= -BI_MAX_INT, "Err.MATH_UNDERFLOW");
162
- }
163
-
164
- static positivePart(value: bigint): bigint {
165
- if (value <= 0n) {
166
- return 0n;
167
- }
168
- return value;
169
- }
170
-
171
- static max(a: bigint, b: bigint): bigint {
172
- if (a > b) {
173
- return a;
174
- }
175
- return b;
176
- }
177
-
178
- static min(a: bigint, b: bigint): bigint {
179
- if (a < b) {
180
- return a;
181
- }
182
- return b;
183
- }
184
- }
@@ -1,322 +0,0 @@
1
- import { Const } from './Const';
2
- import { Num } from './Num';
3
- import { MathMMM } from './MathMMM';
4
- import * as Struct from './Struct';
5
- import { ChainlinkUtils } from './ChainlinkUtils';
6
- import {
7
- ChainLinkData,
8
- OracleData,
9
- TokenData,
10
- SwaapV1PoolParameters,
11
- } from '../types';
12
- import { DeepReadonly } from 'ts-essentials';
13
-
14
- const _require = (b: boolean, message: string) => {
15
- if (!b) throw new Error(message);
16
- };
17
-
18
- export class PoolQuotations {
19
- /**
20
- * @return adjustedTokenWeight
21
- */
22
- static getTokenLatestInfo(
23
- tokenData: TokenData,
24
- oracleData: OracleData,
25
- currentTimestamp: bigint,
26
- ): Struct.TokenGlobal {
27
- const latestPrice =
28
- oracleData.historicalOracleState[oracleData.latestRoundId].answer;
29
- const latestTimestamp =
30
- oracleData.historicalOracleState[oracleData.latestRoundId].timestamp;
31
-
32
- const tokenRecord: Struct.TokenRecord = {
33
- decimals: BigInt(
34
- tokenData.decimals + oracleData.oraclesBindState.decimals,
35
- ),
36
- balance: tokenData.balance,
37
- weight: Num.mul(
38
- tokenData.initialWeight,
39
- // TODO: BigInt wrapper should be removed after fixing price type
40
- Num.div(latestPrice, BigInt(oracleData.oraclesBindState.price)),
41
- ),
42
- };
43
-
44
- const latestRound: Struct.LatestRound = ChainlinkUtils.getLatestRound(
45
- oracleData.latestRoundId,
46
- oracleData.historicalOracleState,
47
- currentTimestamp,
48
- );
49
-
50
- const tokenGlobal: Struct.TokenGlobal = {
51
- info: tokenRecord,
52
- latestRound: latestRound,
53
- };
54
-
55
- return tokenGlobal;
56
- }
57
-
58
- /**
59
- * @notice Computes the amount of tokenOut received when swapping a fixed amount of tokenIn
60
- * @param tokenIn The address of the input token
61
- * @param tokenAmountIn The fixed amount of tokenIn to be swapped
62
- * @param tokenOut The address of the received token
63
- * @param minAmountOut The minimum amount of tokenOut that can be received
64
- * @param maxPrice The maximum spot price accepted before the swap
65
- * @return swapResult The swap result (amount out, spread and tax base in)
66
- * @return priceResult The price result (spot price before & after the swap, latest oracle price in & out)
67
- */
68
- static getAmountOutGivenInMMM(
69
- tokenDataIn: DeepReadonly<TokenData>,
70
- oracleDataIn: DeepReadonly<OracleData>,
71
- tokenAmountIn: DeepReadonly<bigint>,
72
- tokenDataOut: DeepReadonly<TokenData>,
73
- oracleDataOut: DeepReadonly<OracleData>,
74
- // minAmountOut: DeepReadonly<bigint>,
75
- // maxPrice: DeepReadonly<bigint>,
76
- poolParameters: DeepReadonly<SwaapV1PoolParameters>,
77
- currentTimestamp: DeepReadonly<bigint>,
78
- ): bigint {
79
- if (tokenAmountIn == 0n) {
80
- return 0n;
81
- }
82
- _require(
83
- tokenAmountIn <= Num.mul(tokenDataIn.balance, Const.MAX_IN_RATIO),
84
- 'Err.MAX_IN_RATIO',
85
- );
86
-
87
- let tokenGlobalIn = PoolQuotations.getTokenLatestInfo(
88
- tokenDataIn,
89
- oracleDataIn,
90
- currentTimestamp,
91
- );
92
- let tokenGlobalOut = PoolQuotations.getTokenLatestInfo(
93
- tokenDataOut,
94
- oracleDataOut,
95
- currentTimestamp,
96
- );
97
-
98
- let spotPriceBefore = MathMMM.calcSpotPrice(
99
- tokenDataIn.balance,
100
- tokenGlobalIn.info.weight,
101
- tokenDataOut.balance,
102
- tokenGlobalOut.info.weight,
103
- poolParameters.swapFee,
104
- );
105
-
106
- // _require(spotPriceBefore <= maxPrice, 'Err.BAD_LIMIT_PRICE');
107
-
108
- const swapResult = PoolQuotations.getAmountOutGivenInMMMWithTimestamp(
109
- tokenGlobalIn,
110
- tokenGlobalOut,
111
- tokenAmountIn,
112
- currentTimestamp,
113
- poolParameters,
114
- oracleDataIn.historicalOracleState,
115
- oracleDataOut.historicalOracleState,
116
- );
117
- // _require(swapResult.amount >= minAmountOut, 'Err.LIMIT_OUT');
118
- const spotPriceAfter = MathMMM.calcSpotPrice(
119
- tokenGlobalIn.info.balance + tokenAmountIn,
120
- tokenGlobalIn.info.weight,
121
- Num.sub(tokenGlobalOut.info.balance, swapResult.amount),
122
- tokenGlobalOut.info.weight,
123
- poolParameters.swapFee,
124
- );
125
-
126
- _require(spotPriceAfter >= spotPriceBefore, 'Err.MATH_APPROX');
127
- const maxAmount = Num.divTruncated(tokenAmountIn, spotPriceBefore);
128
- if (swapResult.amount > maxAmount) {
129
- swapResult.amount = maxAmount;
130
- }
131
- _require(
132
- Num.div(
133
- Num.mul(spotPriceAfter, Const.ONE - poolParameters.swapFee),
134
- ChainlinkUtils.getTokenRelativePrice(
135
- tokenGlobalIn.latestRound.price,
136
- tokenGlobalIn.info.decimals,
137
- tokenGlobalOut.latestRound.price,
138
- tokenGlobalOut.info.decimals,
139
- ),
140
- ) <= poolParameters.maxPriceUnpegRatio,
141
- 'Err.MAX_PRICE_UNPEG_RATIO',
142
- );
143
-
144
- // const priceIn = tokenGlobalIn.latestRound.price;
145
- // const priceOut = tokenGlobalOut.latestRound.price;
146
-
147
- return swapResult.amount;
148
- }
149
-
150
- static getAmountOutGivenInMMMWithTimestamp(
151
- tokenGlobalIn: Struct.TokenGlobal,
152
- tokenGlobalOut: Struct.TokenGlobal,
153
- tokenAmountIn: bigint,
154
- currentTimestamp: bigint,
155
- poolParameters: SwaapV1PoolParameters,
156
- historicalPricesIn: ChainLinkData,
157
- historicalPricesOut: ChainLinkData,
158
- ): Struct.SwapResult {
159
- const swapParameters: Struct.SwapParameters = {
160
- amount: tokenAmountIn,
161
- fee: poolParameters.swapFee,
162
- fallbackSpread: Const.FALLBACK_SPREAD,
163
- };
164
-
165
- const gbmParameters: Struct.GBMParameters = {
166
- z: poolParameters.dynamicCoverageFeesZ,
167
- horizon: poolParameters.dynamicCoverageFeesHorizon,
168
- };
169
-
170
- const hpParameters: Struct.HistoricalPricesParameters = {
171
- lookbackInRound: poolParameters.priceStatisticsLookbackInRound,
172
- lookbackInSec: poolParameters.priceStatisticsLookbackInSec,
173
- timestamp: currentTimestamp,
174
- lookbackStepInRound: poolParameters.priceStatisticsLookbackStepInRound,
175
- };
176
-
177
- return MathMMM.calcOutGivenInMMM(
178
- tokenGlobalIn,
179
- tokenGlobalOut,
180
- ChainlinkUtils.getTokenRelativePrice(
181
- tokenGlobalIn.latestRound.price,
182
- tokenGlobalIn.info.decimals,
183
- tokenGlobalOut.latestRound.price,
184
- tokenGlobalOut.info.decimals,
185
- ),
186
- swapParameters,
187
- gbmParameters,
188
- hpParameters,
189
- historicalPricesIn,
190
- historicalPricesOut,
191
- currentTimestamp,
192
- );
193
- }
194
-
195
- static getAmountInGivenOutMMM(
196
- tokenDataIn: DeepReadonly<TokenData>,
197
- oracleDataIn: DeepReadonly<OracleData>,
198
- // maxAmountIn: DeepReadonly<bigint>,
199
- tokenDataOut: DeepReadonly<TokenData>,
200
- oracleDataOut: DeepReadonly<OracleData>,
201
- tokenAmountOut: DeepReadonly<bigint>,
202
- // maxPrice: DeepReadonly<bigint>,
203
- poolParameters: DeepReadonly<SwaapV1PoolParameters>,
204
- currentTimestamp: DeepReadonly<bigint>,
205
- ): bigint {
206
- if (tokenAmountOut == 0n) {
207
- return 0n;
208
- }
209
- _require(
210
- tokenAmountOut <= Num.mul(tokenDataOut.balance, Const.MAX_OUT_RATIO),
211
- 'Err.MAX_OUT_RATIO',
212
- );
213
-
214
- const tokenGlobalIn = PoolQuotations.getTokenLatestInfo(
215
- tokenDataIn,
216
- oracleDataIn,
217
- currentTimestamp,
218
- );
219
- const tokenGlobalOut = PoolQuotations.getTokenLatestInfo(
220
- tokenDataOut,
221
- oracleDataOut,
222
- currentTimestamp,
223
- );
224
-
225
- const spotPriceBefore = MathMMM.calcSpotPrice(
226
- tokenGlobalIn.info.balance,
227
- tokenGlobalIn.info.weight,
228
- tokenGlobalOut.info.balance,
229
- tokenGlobalOut.info.weight,
230
- poolParameters.swapFee,
231
- );
232
-
233
- // _require(spotPriceBefore <= maxPrice, 'Err.BAD_LIMIT_PRICE');
234
-
235
- let swapResult = PoolQuotations.getAmountInGivenOutMMMWithTimestamp(
236
- tokenGlobalIn,
237
- tokenGlobalOut,
238
- tokenAmountOut,
239
- currentTimestamp,
240
- poolParameters,
241
- oracleDataIn.historicalOracleState,
242
- oracleDataOut.historicalOracleState,
243
- );
244
-
245
- // _require(swapResult.amount <= maxAmountIn, 'Err.LIMIT_IN');
246
-
247
- const spotPriceAfter = MathMMM.calcSpotPrice(
248
- tokenGlobalIn.info.balance + swapResult.amount,
249
- tokenGlobalIn.info.weight,
250
- Num.sub(tokenGlobalOut.info.balance, tokenAmountOut),
251
- tokenGlobalOut.info.weight,
252
- poolParameters.swapFee,
253
- );
254
-
255
- _require(spotPriceAfter >= spotPriceBefore, 'Err.MATH_APPROX');
256
- const minAmount = Num.mul(spotPriceBefore, tokenAmountOut) + 1n;
257
- if (swapResult.amount < minAmount) {
258
- swapResult.amount = minAmount;
259
- }
260
- _require(
261
- Num.div(
262
- Num.mul(spotPriceAfter, Const.ONE - poolParameters.swapFee),
263
- ChainlinkUtils.getTokenRelativePrice(
264
- tokenGlobalIn.latestRound.price,
265
- tokenGlobalIn.info.decimals,
266
- tokenGlobalOut.latestRound.price,
267
- tokenGlobalOut.info.decimals,
268
- ),
269
- ) <= poolParameters.maxPriceUnpegRatio,
270
- 'Err.MAX_PRICE_UNPEG_RATIO',
271
- );
272
-
273
- return swapResult.amount;
274
- }
275
-
276
- static getAmountInGivenOutMMMWithTimestamp(
277
- tokenGlobalIn: Struct.TokenGlobal,
278
- tokenGlobalOut: Struct.TokenGlobal,
279
- tokenAmountOut: bigint,
280
- currentTimestamp: bigint,
281
- poolParameters: SwaapV1PoolParameters,
282
- historicalPricesIn: ChainLinkData,
283
- historicalPricesOut: ChainLinkData,
284
- ): Struct.SwapResult {
285
- const swapParameters: Struct.SwapParameters = {
286
- amount: tokenAmountOut,
287
- fee: poolParameters.swapFee,
288
- fallbackSpread: Const.FALLBACK_SPREAD,
289
- };
290
-
291
- const gbmParameters: Struct.GBMParameters = {
292
- z: poolParameters.dynamicCoverageFeesZ,
293
- horizon: poolParameters.dynamicCoverageFeesHorizon,
294
- };
295
-
296
- const hpParameters: Struct.HistoricalPricesParameters = {
297
- lookbackInRound: poolParameters.priceStatisticsLookbackInRound,
298
- lookbackInSec: poolParameters.priceStatisticsLookbackInSec,
299
- timestamp: currentTimestamp,
300
- lookbackStepInRound: poolParameters.priceStatisticsLookbackStepInRound,
301
- };
302
-
303
- const swapResult = MathMMM.calcInGivenOutMMM(
304
- tokenGlobalIn,
305
- tokenGlobalOut,
306
- ChainlinkUtils.getTokenRelativePrice(
307
- tokenGlobalIn.latestRound.price,
308
- tokenGlobalIn.info.decimals,
309
- tokenGlobalOut.latestRound.price,
310
- tokenGlobalOut.info.decimals,
311
- ),
312
- swapParameters,
313
- gbmParameters,
314
- hpParameters,
315
- historicalPricesIn,
316
- historicalPricesOut,
317
- currentTimestamp,
318
- );
319
-
320
- return swapResult;
321
- }
322
- }
@@ -1,66 +0,0 @@
1
- export type TokenGlobal = {
2
- info: TokenRecord;
3
- latestRound: LatestRound;
4
- };
5
-
6
- export type LatestRound = {
7
- roundId: number;
8
- price: bigint;
9
- timestamp: bigint;
10
- };
11
-
12
- export type HistoricalPricesParameters = {
13
- lookbackInRound: number;
14
- lookbackInSec: bigint;
15
- timestamp: bigint;
16
- lookbackStepInRound: number;
17
- };
18
-
19
- export type HistoricalPricesData = {
20
- startIndex: number;
21
- timestamps: bigint[];
22
- prices: bigint[];
23
- };
24
-
25
- export type SwapResult = {
26
- amount: bigint;
27
- spread: bigint;
28
- taxBaseIn: bigint;
29
- };
30
-
31
- export type PriceResult = {
32
- spotPriceBefore: bigint;
33
- spotPriceAfter: bigint;
34
- priceIn: bigint;
35
- priceOut: bigint;
36
- };
37
-
38
- export type GBMEstimation = {
39
- mean: bigint;
40
- variance: bigint;
41
- success: boolean;
42
- };
43
-
44
- export type TokenRecord = {
45
- decimals: bigint; // token decimals + oracle decimals
46
- balance: bigint;
47
- weight: bigint;
48
- };
49
-
50
- export type SwapParameters = {
51
- amount: bigint;
52
- fee: bigint;
53
- fallbackSpread: bigint;
54
- };
55
-
56
- export type JoinExitSwapParameters = {
57
- amount: bigint;
58
- fee: bigint;
59
- fallbackSpread: bigint;
60
- poolSupply: bigint;
61
- };
62
-
63
- export type GBMParameters = {
64
- z: bigint;
65
- horizon: bigint;
66
- };
@@ -1,75 +0,0 @@
1
- import dotenv from 'dotenv';
2
- dotenv.config();
3
-
4
- import { testE2E } from '../../../tests/utils-e2e';
5
- import { Tokens, Holders } from '../../../tests/constants-e2e';
6
- import { Network, ContractMethod, SwapSide } from '../../constants';
7
- import { StaticJsonRpcProvider } from '@ethersproject/providers';
8
- import { generateConfig } from '../../config';
9
-
10
- describe('SwaapV1 E2E', () => {
11
- const dexKey = 'SwaapV1';
12
-
13
- describe('SwaapV1 POLYGON_V6', () => {
14
- const network = Network.POLYGON;
15
- const tokens = Tokens[network];
16
- const holders = Holders[network];
17
- const provider = new StaticJsonRpcProvider(
18
- generateConfig(network).privateHttpProvider,
19
- network,
20
- );
21
-
22
- const tokenASymbol: string = 'WETH';
23
- const tokenBSymbol: string = 'USDC';
24
-
25
- const tokenAAmount: string = '1000000000000000';
26
- const tokenBAmount: string = '1000000';
27
-
28
- const sideToContractMethods = new Map([
29
- [
30
- SwapSide.SELL,
31
- [
32
- ContractMethod.swapExactAmountIn,
33
- // ContractMethod.simpleSwap,
34
- // ContractMethod.multiSwap,
35
- // ContractMethod.megaSwap,
36
- ],
37
- ],
38
- // [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
39
- [SwapSide.BUY, [ContractMethod.swapExactAmountOut]],
40
- ]);
41
-
42
- sideToContractMethods.forEach((contractMethods, side) =>
43
- contractMethods.forEach((contractMethod: ContractMethod) => {
44
- describe(`${contractMethod}`, () => {
45
- it(`${tokenASymbol} -> ${tokenBSymbol}`, async () => {
46
- await testE2E(
47
- tokens[tokenASymbol],
48
- tokens[tokenBSymbol],
49
- holders[tokenASymbol],
50
- side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
51
- side,
52
- dexKey,
53
- contractMethod,
54
- network,
55
- provider,
56
- );
57
- });
58
- it(`${tokenBSymbol} -> ${tokenASymbol}`, async () => {
59
- await testE2E(
60
- tokens[tokenBSymbol],
61
- tokens[tokenASymbol],
62
- holders[tokenBSymbol],
63
- side === SwapSide.SELL ? tokenBAmount : tokenAAmount,
64
- side,
65
- dexKey,
66
- contractMethod,
67
- network,
68
- provider,
69
- );
70
- });
71
- });
72
- }),
73
- );
74
- });
75
- });