@paraswap/dex-lib 3.6.1 → 3.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) 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/build/abi/maverick-v2/MaverickV2Pool.json +1234 -0
  5. package/build/abi/maverick-v2/MaverickV2PoolLens.json +1232 -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/dex/maker-psm/maker-psm.js +1 -1
  9. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  10. package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
  11. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  12. package/build/dex/maker-psm/scripts/validate-state.js +185 -0
  13. package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
  14. package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
  15. package/build/dex/maverick-v2/config.d.ts +6 -0
  16. package/build/dex/maverick-v2/config.js +21 -0
  17. package/build/dex/maverick-v2/config.js.map +1 -0
  18. package/build/dex/maverick-v2/maverick-math/maverick-basic-math.d.ts +24 -0
  19. package/build/dex/maverick-v2/maverick-math/maverick-basic-math.js +117 -0
  20. package/build/dex/maverick-v2/maverick-math/maverick-basic-math.js.map +1 -0
  21. package/build/dex/maverick-v2/maverick-math/maverick-bin-math.d.ts +17 -0
  22. package/build/dex/maverick-v2/maverick-math/maverick-bin-math.js +114 -0
  23. package/build/dex/maverick-v2/maverick-math/maverick-bin-math.js.map +1 -0
  24. package/build/dex/maverick-v2/maverick-math/maverick-delta-math.d.ts +19 -0
  25. package/build/dex/maverick-v2/maverick-math/maverick-delta-math.js +20 -0
  26. package/build/dex/maverick-v2/maverick-math/maverick-delta-math.js.map +1 -0
  27. package/build/dex/maverick-v2/maverick-math/maverick-math.d.ts +5 -0
  28. package/build/dex/maverick-v2/maverick-math/maverick-math.js +33 -0
  29. package/build/dex/maverick-v2/maverick-math/maverick-math.js.map +1 -0
  30. package/build/dex/maverick-v2/maverick-math/maverick-pool-lib.d.ts +6 -0
  31. package/build/dex/maverick-v2/maverick-math/maverick-pool-lib.js +24 -0
  32. package/build/dex/maverick-v2/maverick-math/maverick-pool-lib.js.map +1 -0
  33. package/build/dex/maverick-v2/maverick-math/maverick-pool-math.d.ts +37 -0
  34. package/build/dex/maverick-v2/maverick-math/maverick-pool-math.js +440 -0
  35. package/build/dex/maverick-v2/maverick-math/maverick-pool-math.js.map +1 -0
  36. package/build/dex/maverick-v2/maverick-math/maverick-swap-math.d.ts +9 -0
  37. package/build/dex/maverick-v2/maverick-math/maverick-swap-math.js +102 -0
  38. package/build/dex/maverick-v2/maverick-math/maverick-swap-math.js.map +1 -0
  39. package/build/dex/maverick-v2/maverick-math/maverick-tick-math.d.ts +8 -0
  40. package/build/dex/maverick-v2/maverick-math/maverick-tick-math.js +109 -0
  41. package/build/dex/maverick-v2/maverick-math/maverick-tick-math.js.map +1 -0
  42. package/build/dex/maverick-v2/maverick-math/maverick-twa-math.d.ts +7 -0
  43. package/build/dex/maverick-v2/maverick-math/maverick-twa-math.js +35 -0
  44. package/build/dex/maverick-v2/maverick-math/maverick-twa-math.js.map +1 -0
  45. package/build/dex/maverick-v2/maverick-v2-pool.d.ts +57 -0
  46. package/build/dex/maverick-v2/maverick-v2-pool.js +184 -0
  47. package/build/dex/maverick-v2/maverick-v2-pool.js.map +1 -0
  48. package/build/dex/maverick-v2/maverick-v2.d.ts +47 -0
  49. package/build/dex/maverick-v2/maverick-v2.js +294 -0
  50. package/build/dex/maverick-v2/maverick-v2.js.map +1 -0
  51. package/build/dex/maverick-v2/types.d.ts +144 -0
  52. package/build/dex/{woo-fi → maverick-v2}/types.js.map +1 -1
  53. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  54. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  55. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  56. package/build/dex/stable-pool.js +1 -8
  57. package/build/dex/stable-pool.js.map +1 -1
  58. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  59. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  60. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  61. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  62. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  63. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  64. package/package.json +1 -1
  65. package/src/dex/maker-psm/maker-psm.ts +2 -3
  66. package/src/dex/maker-psm/scripts/gem.abi.json +136 -0
  67. package/src/dex/maker-psm/scripts/validate-state.ts +221 -0
  68. package/src/dex/maker-psm/scripts/vat.abi.json +243 -0
  69. package/.idea/aws.xml +0 -17
  70. package/.idea/codeStyles/Project.xml +0 -19
  71. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  72. package/.idea/misc.xml +0 -6
  73. package/.idea/modules.xml +0 -8
  74. package/.idea/paraswap-dex-lib.iml +0 -9
  75. package/.idea/prettier.xml +0 -7
  76. package/.idea/vcs.xml +0 -6
  77. package/build/abi/AugustusV6.abi.json +0 -395
  78. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  79. package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
  80. package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
  81. package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
  82. package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
  83. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  84. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
  85. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  86. package/build/abi/wBETH.json +0 -1527
  87. package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
  88. package/build/abi/woo-fi/WooPP.abi.json +0 -548
  89. package/build/abi/woo-fi/Wooracle.abi.json +0 -260
  90. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  91. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  92. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  93. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  94. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  95. package/build/dex/algebra/algebra-pool.d.ts +0 -114
  96. package/build/dex/algebra/algebra-pool.js +0 -448
  97. package/build/dex/algebra/algebra-pool.js.map +0 -1
  98. package/build/dex/balancer-v2/Gyro3Pool.d.ts +0 -43
  99. package/build/dex/balancer-v2/Gyro3Pool.js +0 -160
  100. package/build/dex/balancer-v2/Gyro3Pool.js.map +0 -1
  101. package/build/dex/balancer-v2/LinearMath.d.ts +0 -88
  102. package/build/dex/balancer-v2/LinearMath.js +0 -285
  103. package/build/dex/balancer-v2/LinearMath.js.map +0 -1
  104. package/build/dex/balancer-v2/LinearPool.d.ts +0 -81
  105. package/build/dex/balancer-v2/LinearPool.js +0 -444
  106. package/build/dex/balancer-v2/LinearPool.js.map +0 -1
  107. package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -90
  108. package/build/dex/balancer-v2/PhantomStablePool.js +0 -418
  109. package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
  110. package/build/dex/balancer-v2/StableMath.d.ts +0 -9
  111. package/build/dex/balancer-v2/StableMath.js +0 -272
  112. package/build/dex/balancer-v2/StableMath.js.map +0 -1
  113. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -140
  114. package/build/dex/balancer-v2/balancer-v2-pool.js +0 -647
  115. package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
  116. package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
  117. package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
  118. package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
  119. package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
  120. package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
  121. package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
  122. package/build/dex/curve-v1-factory/price-handlers/functions/get_dx.d.ts +0 -4
  123. package/build/dex/curve-v1-factory/price-handlers/functions/get_dx.js +0 -80
  124. package/build/dex/curve-v1-factory/price-handlers/functions/get_dx.js.map +0 -1
  125. package/build/dex/curve-v1-stable-ng/config.d.ts +0 -5
  126. package/build/dex/curve-v1-stable-ng/config.js +0 -268
  127. package/build/dex/curve-v1-stable-ng/config.js.map +0 -1
  128. package/build/dex/curve-v1-stable-ng/curve-v1-stable-ng.d.ts +0 -18
  129. package/build/dex/curve-v1-stable-ng/curve-v1-stable-ng.js +0 -23
  130. package/build/dex/curve-v1-stable-ng/curve-v1-stable-ng.js.map +0 -1
  131. package/build/dex/integral/config.d.ts +0 -4
  132. package/build/dex/integral/config.js +0 -18
  133. package/build/dex/integral/config.js.map +0 -1
  134. package/build/dex/integral/integral-pool.d.ts +0 -39
  135. package/build/dex/integral/integral-pool.js +0 -67
  136. package/build/dex/integral/integral-pool.js.map +0 -1
  137. package/build/dex/integral/integral.d.ts +0 -48
  138. package/build/dex/integral/integral.js +0 -402
  139. package/build/dex/integral/integral.js.map +0 -1
  140. package/build/dex/integral/types.d.ts +0 -25
  141. package/build/dex/integral/types.js +0 -9
  142. package/build/dex/integral/types.js.map +0 -1
  143. package/build/dex/lighter-v1/abi/erc20.json +0 -222
  144. package/build/dex/lighter-v1/abi/factory.json +0 -291
  145. package/build/dex/lighter-v1/abi/order_book.json +0 -594
  146. package/build/dex/lighter-v1/abi/order_book_helper.json +0 -176
  147. package/build/dex/lighter-v1/abi/router.json +0 -488
  148. package/build/dex/lighter-v1/config.d.ts +0 -4
  149. package/build/dex/lighter-v1/config.js +0 -17
  150. package/build/dex/lighter-v1/config.js.map +0 -1
  151. package/build/dex/lighter-v1/constants.d.ts +0 -2
  152. package/build/dex/lighter-v1/constants.js +0 -13
  153. package/build/dex/lighter-v1/constants.js.map +0 -1
  154. package/build/dex/lighter-v1/lighter-v1-pool.d.ts +0 -57
  155. package/build/dex/lighter-v1/lighter-v1-pool.js +0 -310
  156. package/build/dex/lighter-v1/lighter-v1-pool.js.map +0 -1
  157. package/build/dex/lighter-v1/lighter-v1.d.ts +0 -45
  158. package/build/dex/lighter-v1/lighter-v1.js +0 -331
  159. package/build/dex/lighter-v1/lighter-v1.js.map +0 -1
  160. package/build/dex/lighter-v1/types.d.ts +0 -40
  161. package/build/dex/lighter-v1/types.js.map +0 -1
  162. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  163. package/build/dex/pancakeswap-v3/types.js +0 -3
  164. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  165. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  166. package/build/dex/quickswap/camelot-v3.js +0 -19
  167. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  168. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  169. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  170. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
  171. package/build/dex/quickswap-v3.d.ts +0 -21
  172. package/build/dex/quickswap-v3.js +0 -40
  173. package/build/dex/quickswap-v3.js.map +0 -1
  174. package/build/dex/ramses-v2/config.d.ts +0 -4
  175. package/build/dex/ramses-v2/config.js +0 -28
  176. package/build/dex/ramses-v2/config.js.map +0 -1
  177. package/build/dex/ramses-v2/constants.d.ts +0 -28
  178. package/build/dex/ramses-v2/constants.js +0 -35
  179. package/build/dex/ramses-v2/constants.js.map +0 -1
  180. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
  181. package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
  182. package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
  183. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
  184. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
  185. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
  186. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
  187. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
  188. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
  189. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
  190. package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
  191. package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
  192. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
  193. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
  194. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
  195. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
  196. package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
  197. package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
  198. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
  199. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
  200. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
  201. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
  202. package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
  203. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
  204. package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
  205. package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
  206. package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
  207. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
  208. package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
  209. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
  210. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
  211. package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
  212. package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
  213. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
  214. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
  215. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
  216. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
  217. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
  218. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
  219. package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
  220. package/build/dex/ramses-v2/contract-math/utils.js +0 -16
  221. package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
  222. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
  223. package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
  224. package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
  225. package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
  226. package/build/dex/ramses-v2/ramses-v2.js +0 -690
  227. package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
  228. package/build/dex/ramses-v2/types.d.ts +0 -154
  229. package/build/dex/ramses-v2/types.js +0 -9
  230. package/build/dex/ramses-v2/types.js.map +0 -1
  231. package/build/dex/ramses-v2/utils.d.ts +0 -6
  232. package/build/dex/ramses-v2/utils.js +0 -71
  233. package/build/dex/ramses-v2/utils.js.map +0 -1
  234. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  235. package/build/dex/solidly/forks-override/fvm.js +0 -42
  236. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  237. package/build/dex/sushiswap-v3/config.d.ts +0 -4
  238. package/build/dex/sushiswap-v3/config.js +0 -132
  239. package/build/dex/sushiswap-v3/config.js.map +0 -1
  240. package/build/dex/sushiswap-v3/constants.d.ts +0 -4
  241. package/build/dex/sushiswap-v3/constants.js +0 -32
  242. package/build/dex/sushiswap-v3/constants.js.map +0 -1
  243. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
  244. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
  245. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
  246. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
  247. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
  248. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
  249. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
  250. package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
  251. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
  252. package/build/dex/sushiswap-v3/token.d.ts +0 -6
  253. package/build/dex/sushiswap-v3/token.js +0 -23
  254. package/build/dex/sushiswap-v3/token.js.map +0 -1
  255. package/build/dex/sushiswap-v3/types.d.ts +0 -15
  256. package/build/dex/sushiswap-v3/types.js +0 -18
  257. package/build/dex/sushiswap-v3/types.js.map +0 -1
  258. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
  259. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
  260. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
  261. package/build/dex/woo-fi/config.d.ts +0 -4
  262. package/build/dex/woo-fi/config.js +0 -141
  263. package/build/dex/woo-fi/config.js.map +0 -1
  264. package/build/dex/woo-fi/constants.d.ts +0 -5
  265. package/build/dex/woo-fi/constants.js +0 -20
  266. package/build/dex/woo-fi/constants.js.map +0 -1
  267. package/build/dex/woo-fi/types.d.ts +0 -48
  268. package/build/dex/woo-fi/types.js +0 -3
  269. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
  270. package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
  271. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
  272. package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
  273. package/build/dex/woo-fi/woo-fi-math.js +0 -300
  274. package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
  275. package/build/dex/woo-fi/woo-fi.d.ts +0 -65
  276. package/build/dex/woo-fi/woo-fi.js +0 -480
  277. package/build/dex/woo-fi/woo-fi.js.map +0 -1
  278. package/build/executor/IExecutorBytecodeBuilder.d.ts +0 -6
  279. package/build/executor/IExecutorBytecodeBuilder.js +0 -3
  280. package/build/executor/IExecutorBytecodeBuilder.js.map +0 -1
  281. /package/build/dex/{lighter-v1 → maverick-v2}/types.js +0 -0
@@ -1,480 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.WooFi = void 0;
30
- const lodash_1 = __importDefault(require("lodash"));
31
- const abi_1 = require("@ethersproject/abi");
32
- const constants_1 = require("../../constants");
33
- const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
34
- const utils_1 = require("../../utils");
35
- const simple_exchange_1 = require("../simple-exchange");
36
- const config_1 = require("./config");
37
- const woo_fi_math_1 = require("./woo-fi-math");
38
- const constants_2 = require("./constants");
39
- const WooPP_abi_json_1 = __importDefault(require("../../abi/woo-fi/WooPP.abi.json"));
40
- const WooFeeManager_abi_json_1 = __importDefault(require("../../abi/woo-fi/WooFeeManager.abi.json"));
41
- const Wooracle_abi_json_1 = __importDefault(require("../../abi/woo-fi/Wooracle.abi.json"));
42
- class WooFi extends simple_exchange_1.SimpleExchange {
43
- constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}, config = config_1.WooFiConfig[dexKey][network]) {
44
- super(dexHelper, dexKey);
45
- this.network = network;
46
- this.dexHelper = dexHelper;
47
- this.adapters = adapters;
48
- this.config = config;
49
- this.latestState = null;
50
- this.latestBlockNumber = 0;
51
- this.vaultUSDBalance = 0;
52
- this._refInfos = {};
53
- this.hasConstantPriceLargeAmounts = false;
54
- this.needWrapNative = true;
55
- this.isFeeOnTransferSupported = false;
56
- this.logger = dexHelper.getLogger(dexKey);
57
- // Normalise once all config addresses and use across all scenarios
58
- this.config = this._toLowerForAllConfigAddresses();
59
- this.quoteTokenAddress = this.config.quoteToken.address;
60
- // Do not do it singleton, because different networks will have different
61
- // states at the same time
62
- this.math = new woo_fi_math_1.WooFiMath(dexHelper.getLogger(`${dexKey}_math`), this.quoteTokenAddress);
63
- this.tokenByAddress = Object.values(this.baseTokens).reduce((acc, cur) => {
64
- acc[cur.address] = cur;
65
- return acc;
66
- }, { [this.quoteTokenAddress]: this.config.quoteToken });
67
- }
68
- _toLowerForAllConfigAddresses() {
69
- // If new config property will be added, the TS will throw compile error
70
- const newConfig = {
71
- wooPPAddress: this.config.wooPPAddress.toLowerCase(),
72
- wooOracleAddress: this.config.wooOracleAddress.toLowerCase(),
73
- wooFeeManagerAddress: this.config.wooFeeManagerAddress.toLowerCase(),
74
- wooGuardianAddress: this.config.wooGuardianAddress.toLowerCase(),
75
- rebateTo: this.config.rebateTo.toLowerCase(),
76
- quoteToken: {
77
- ...this.config.quoteToken,
78
- address: this.config.quoteToken.address.toLowerCase(),
79
- },
80
- baseTokens: Object.keys(this.config.baseTokens).reduce((acc, cur) => {
81
- const token = this.config.baseTokens[cur];
82
- token.address = token.address.toLowerCase();
83
- acc[cur] = token;
84
- return acc;
85
- }, {}),
86
- };
87
- return newConfig;
88
- }
89
- async _getRefInfos() {
90
- const calldata = this.baseTokens
91
- .map(t => [
92
- {
93
- target: this.config.wooGuardianAddress,
94
- callData: WooFi.ifaces.guardian.encodeFunctionData('refInfo', [
95
- t.address,
96
- ]),
97
- },
98
- ])
99
- .flat();
100
- calldata.push({
101
- target: this.config.wooGuardianAddress,
102
- callData: WooFi.ifaces.guardian.encodeFunctionData('refInfo', [
103
- this.quoteTokenAddress,
104
- ]),
105
- });
106
- const data = await this.dexHelper.multiContract.methods
107
- .tryAggregate(false, calldata)
108
- .call({}, 'latest');
109
- const parsed = data.map(([success, _data]) => {
110
- if (!success)
111
- throw new Error(`Unexpected multicall error in ${this.dexKey} _getRefInfos`);
112
- const decoded = WooFi.ifaces.guardian.decodeFunctionResult('refInfo', _data)[0];
113
- return {
114
- chainlinkRefOracle: decoded.chainlinkRefOracle.toLowerCase(),
115
- refPriceFixCoeff: decoded.refPriceFixCoeff.toBigInt(),
116
- minInputAmount: decoded.minInputAmount.toBigInt(),
117
- maxInputAmount: decoded.maxInputAmount.toBigInt(),
118
- bound: decoded.bound.toBigInt(),
119
- };
120
- });
121
- return this.baseTokens.reduce((acc, curr, ind) => {
122
- acc[curr.address] = parsed[ind];
123
- return acc;
124
- }, { [this.quoteTokenAddress]: parsed.slice(-1)[0] });
125
- }
126
- get baseTokens() {
127
- return Object.values(this.config.baseTokens);
128
- }
129
- get isRefInfosEmpty() {
130
- return Object.keys(this._refInfos).length === 0;
131
- }
132
- _fillTokenInfoState(state, address, values) {
133
- state.tokenInfos[address] = {
134
- reserve: BigInt(values.reserve._hex),
135
- R: BigInt(values.R._hex),
136
- threshold: BigInt(values.threshold._hex),
137
- target: BigInt(values.target._hex),
138
- lastResetTimestamp: BigInt(values.lastResetTimestamp),
139
- };
140
- }
141
- _readChanLinkResponse(data) {
142
- const [success, returnData] = data;
143
- const answer = success === false || returnData === '0x'
144
- ? -1n
145
- : WooFi.ifaces.chainlink
146
- .decodeFunctionResult('latestRoundData', returnData)[0]
147
- .answer.toBigInt();
148
- return { answer };
149
- }
150
- _getStateRequestCallData() {
151
- if (!this._encodedStateRequestCalldata) {
152
- const calldata = this.baseTokens
153
- .map(t => [
154
- {
155
- target: this.config.wooFeeManagerAddress,
156
- callData: WooFi.ifaces.fee.encodeFunctionData('feeRate', [
157
- t.address,
158
- ]),
159
- },
160
- {
161
- target: this.config.wooOracleAddress,
162
- callData: WooFi.ifaces.oracle.encodeFunctionData('state', [
163
- t.address,
164
- ]),
165
- },
166
- {
167
- target: this.config.wooPPAddress,
168
- callData: WooFi.ifaces.PP.encodeFunctionData('tokenInfo', [
169
- t.address,
170
- ]),
171
- },
172
- {
173
- target: this._refInfos[t.address].chainlinkRefOracle,
174
- callData: WooFi.ifaces.chainlink.encodeFunctionData('latestRoundData', []),
175
- },
176
- {
177
- target: t.address,
178
- callData: WooFi.ifaces.erc20BalanceOf.encodeFunctionData('balanceOf', [this.config.wooPPAddress]),
179
- },
180
- ])
181
- .flat();
182
- calldata.push({
183
- target: this.config.wooPPAddress,
184
- callData: WooFi.ifaces.PP.encodeFunctionData('tokenInfo', [
185
- this.quoteTokenAddress,
186
- ]),
187
- });
188
- calldata.push({
189
- target: this._refInfos[this.quoteTokenAddress].chainlinkRefOracle,
190
- callData: WooFi.ifaces.chainlink.encodeFunctionData('latestRoundData', []),
191
- });
192
- calldata.push({
193
- target: this.config.wooOracleAddress,
194
- callData: WooFi.ifaces.oracle.encodeFunctionData('timestamp', []),
195
- });
196
- calldata.push({
197
- target: this.config.wooPPAddress,
198
- callData: WooFi.ifaces.PP.encodeFunctionData('paused', []),
199
- });
200
- calldata.push({
201
- target: this.config.wooGuardianAddress,
202
- callData: WooFi.ifaces.guardian.encodeFunctionData('globalBound', []),
203
- });
204
- calldata.push({
205
- target: this.quoteTokenAddress,
206
- callData: WooFi.ifaces.erc20BalanceOf.encodeFunctionData('balanceOf', [
207
- this.config.wooPPAddress,
208
- ]),
209
- });
210
- this._encodedStateRequestCalldata = calldata;
211
- }
212
- return this._encodedStateRequestCalldata;
213
- }
214
- async _fetchStateForBlockNumber(blockNumber) {
215
- const calldata = this._getStateRequestCallData();
216
- const data = await this.dexHelper.multiContract.methods
217
- .tryAggregate(false, calldata)
218
- .call({}, blockNumber || 'latest');
219
- // Last requests are standalone
220
- const maxNumber = calldata.length - 6;
221
- const [baseFeeRates, baseInfos, baseTokenInfos, chainlinkLatestRoundDatas, baseTokenBalances, quoteTokenInfo, quoteChainlinkAnswer, oracleTimestamp, isPaused, globalBound, quoteTokenBalance,] = [
222
- // Skip n steps as they are infos, tokenInfo and latestRoundData etc.
223
- lodash_1.default.range(0, maxNumber, 5).map(index => WooFi.ifaces.fee.decodeFunctionResult('feeRate', data[index][1])),
224
- lodash_1.default.range(1, maxNumber, 5).map(index => WooFi.ifaces.oracle.decodeFunctionResult('state', data[index][1])),
225
- lodash_1.default.range(2, maxNumber, 5).map(index => WooFi.ifaces.PP.decodeFunctionResult('tokenInfo', data[index][1])),
226
- lodash_1.default.range(3, maxNumber, 5).map(index => this._readChanLinkResponse(data[index])),
227
- lodash_1.default.range(4, maxNumber, 5).map(index => WooFi.ifaces.erc20BalanceOf.decodeFunctionResult('balanceOf', data[index][1])),
228
- WooFi.ifaces.PP.decodeFunctionResult('tokenInfo', data[maxNumber][1]),
229
- this._readChanLinkResponse(data[maxNumber + 1]),
230
- WooFi.ifaces.oracle
231
- .decodeFunctionResult('timestamp', data[maxNumber + 2][1])[0]
232
- .toBigInt(),
233
- WooFi.ifaces.PP.decodeFunctionResult('paused', data[maxNumber + 3][1])[0],
234
- WooFi.ifaces.guardian
235
- .decodeFunctionResult('globalBound', data[maxNumber + 4][1])[0]
236
- .toBigInt(),
237
- WooFi.ifaces.erc20BalanceOf
238
- .decodeFunctionResult('balanceOf', data[maxNumber + 5][1])[0]
239
- .toBigInt(),
240
- ];
241
- const state = {
242
- feeRates: {},
243
- tokenInfos: {},
244
- tokenStates: {},
245
- oracleTimestamp,
246
- isPaused,
247
- guardian: {
248
- globalBound,
249
- refInfos: this._refInfos,
250
- },
251
- chainlink: {
252
- latestRoundDatas: {},
253
- },
254
- wooPPBalances: {},
255
- };
256
- this._fillTokenInfoState(state, this.quoteTokenAddress, quoteTokenInfo);
257
- state.chainlink.latestRoundDatas[this._refInfos[this.quoteTokenAddress].chainlinkRefOracle] = quoteChainlinkAnswer;
258
- baseFeeRates.map((value, index) => {
259
- state.feeRates[this.baseTokens[index].address] = BigInt(value[0]._hex);
260
- });
261
- baseInfos.map((value, index) => {
262
- state.tokenStates[this.baseTokens[index].address] = {
263
- priceNow: BigInt(value.priceNow._hex),
264
- coeffNow: BigInt(value.coeffNow._hex),
265
- spreadNow: BigInt(value.spreadNow._hex),
266
- };
267
- });
268
- baseTokenInfos.map((values, index) => {
269
- this._fillTokenInfoState(state, this.baseTokens[index].address, values);
270
- });
271
- chainlinkLatestRoundDatas.map((value, index) => {
272
- const refInfo = this._refInfos[this.baseTokens[index].address];
273
- state.chainlink.latestRoundDatas[refInfo.chainlinkRefOracle] = value;
274
- });
275
- baseTokenBalances.map((value, index) => {
276
- state.wooPPBalances[this.baseTokens[index].address] = BigInt(value[0]._hex);
277
- });
278
- state.wooPPBalances[this.config.quoteToken.address] = quoteTokenBalance;
279
- return state;
280
- }
281
- async initializePricing(blockNumber) {
282
- this._refInfos = await this._getRefInfos();
283
- await this.getState(blockNumber);
284
- }
285
- getAdapters(side) {
286
- return this.adapters[side] ? this.adapters[side] : null;
287
- }
288
- getIdentifier(isSrcQuote) {
289
- // Expected lower cased addresses
290
- // And checks if one of the tokens is quote already done outside
291
- return isSrcQuote ? `${this.dexKey}_qb` : `${this.dexKey}_bq`;
292
- }
293
- async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
294
- if (side === constants_1.SwapSide.BUY)
295
- return [];
296
- const _srcToken = this.dexHelper.config.wrapETH(srcToken);
297
- const _destToken = this.dexHelper.config.wrapETH(destToken);
298
- const _srcAddress = _srcToken.address.toLowerCase();
299
- const _destAddress = _destToken.address.toLowerCase();
300
- if (_srcAddress === _destAddress)
301
- return [];
302
- if (!this.tokenByAddress[_srcAddress] ||
303
- !this.tokenByAddress[_destAddress]) {
304
- return [];
305
- }
306
- const { isSrcQuote, isDestQuote } = this._identifyQuote(_srcAddress, _destAddress);
307
- if (!isSrcQuote && !isDestQuote)
308
- return [];
309
- return [this.getIdentifier(isSrcQuote)];
310
- }
311
- async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
312
- if (side === constants_1.SwapSide.BUY)
313
- return null;
314
- try {
315
- const _srcToken = this.dexHelper.config.wrapETH(srcToken);
316
- const _destToken = this.dexHelper.config.wrapETH(destToken);
317
- const _srcAddress = _srcToken.address.toLowerCase();
318
- const _destAddress = _destToken.address.toLowerCase();
319
- if (_srcAddress === _destAddress)
320
- return null;
321
- if (!this.tokenByAddress[_srcAddress] ||
322
- !this.tokenByAddress[_destAddress])
323
- return null;
324
- const { isSrcQuote, isDestQuote } = this._identifyQuote(_srcAddress, _destAddress);
325
- if (!isSrcQuote && !isDestQuote)
326
- return null;
327
- const expectedIdentifier = this.getIdentifier(isSrcQuote);
328
- if (limitPools !== undefined &&
329
- !limitPools.some(p => p === expectedIdentifier))
330
- return null;
331
- const unitVolume = (0, utils_1.getBigIntPow)(_srcToken.decimals);
332
- const _amounts = [unitVolume, ...amounts.slice(1)];
333
- const state = await this.getState(blockNumber);
334
- if (state.isPaused) {
335
- this.logger.warn(`${this.dexKey} is paused on ${this.network} in getPricesVolume`);
336
- return null;
337
- }
338
- let _prices;
339
- if (isSrcQuote) {
340
- _prices = this.math.querySellQuote(_destAddress, _amounts);
341
- }
342
- else {
343
- _prices = this.math.querySellBase(_srcAddress, _amounts);
344
- }
345
- if (!_prices)
346
- return null;
347
- const unit = _prices[0];
348
- return [
349
- {
350
- unit,
351
- prices: [0n, ..._prices.slice(1)],
352
- data: {},
353
- poolIdentifier: expectedIdentifier,
354
- exchange: this.dexKey,
355
- gasCost: constants_2.WOO_FI_GAS_COST,
356
- poolAddresses: [this.config.wooPPAddress],
357
- },
358
- ];
359
- }
360
- catch (e) {
361
- this.logger.error(`Error_getPricesVolume ${srcToken.symbol || srcToken.address}, ${destToken.symbol || destToken.address}, ${side}:`, e);
362
- return null;
363
- }
364
- }
365
- // Returns estimated gas cost of calldata for this DEX in multiSwap
366
- getCalldataGasCost(poolPrices) {
367
- return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
368
- }
369
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
370
- if (side === constants_1.SwapSide.BUY)
371
- throw new Error(`Buy not supported`);
372
- const payload = this.abiCoder.encodeParameter('address', this.config.rebateTo);
373
- return {
374
- targetExchange: this.config.wooPPAddress,
375
- payload,
376
- networkFee: '0',
377
- };
378
- }
379
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
380
- if (side === constants_1.SwapSide.BUY)
381
- throw new Error(`Buy not supported`);
382
- const _srcToken = srcToken.toLowerCase();
383
- const _destToken = destToken.toLowerCase();
384
- let funcName;
385
- let _amount;
386
- let baseToken;
387
- if (_srcToken === this.quoteTokenAddress) {
388
- baseToken = _destToken;
389
- funcName = 'sellQuote';
390
- _amount = srcAmount;
391
- }
392
- else if (_destToken === this.quoteTokenAddress) {
393
- baseToken = _srcToken;
394
- funcName = 'sellBase';
395
- _amount = srcAmount;
396
- }
397
- else {
398
- throw new Error(`srcToken ${srcToken} or destToken ${destToken} must be quoteToken`);
399
- }
400
- const swapData = WooFi.ifaces.PP.encodeFunctionData(funcName, [
401
- baseToken,
402
- _amount,
403
- constants_2.MIN_CONVERSION_RATE,
404
- this.augustusAddress,
405
- this.config.rebateTo, // rebateTo
406
- ]);
407
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, this.config.wooPPAddress);
408
- }
409
- async updatePoolState() {
410
- if (this.isRefInfosEmpty) {
411
- this._refInfos = await this._getRefInfos();
412
- }
413
- const state = await this.getState();
414
- const tokenBalancesUSD = await Promise.all(Object.values(this.tokenByAddress).map(t => this.dexHelper.getTokenUSDPrice(t, state.tokenInfos[t.address].reserve)));
415
- this.vaultUSDBalance = tokenBalancesUSD.reduce((sum, curr) => sum + curr);
416
- }
417
- async getTopPoolsForToken(tokenAddress, limit) {
418
- const wrappedTokenAddress = this.dexHelper.config
419
- .wrapETH({ address: tokenAddress, decimals: 0 })
420
- .address.toLowerCase();
421
- if (!this.tokenByAddress[wrappedTokenAddress])
422
- return [];
423
- if (!this.latestState)
424
- return [];
425
- if (this.latestState.isPaused) {
426
- this.logger.warn(`${this.dexKey} is paused on ${this.network} in getTopPoolsForToken`);
427
- return [];
428
- }
429
- const connectorTokens = wrappedTokenAddress === this.quoteTokenAddress
430
- ? this.baseTokens
431
- : [this.tokenByAddress[this.quoteTokenAddress]];
432
- return [
433
- {
434
- exchange: this.dexKey,
435
- address: this.config.wooPPAddress,
436
- connectorTokens,
437
- liquidityUSD: this.vaultUSDBalance,
438
- },
439
- ];
440
- }
441
- async getState(blockNumber) {
442
- if (blockNumber !== undefined &&
443
- this.latestBlockNumber === blockNumber &&
444
- this.latestState !== null) {
445
- return this.latestState;
446
- }
447
- this.latestState = await this._fetchStateForBlockNumber(blockNumber);
448
- this.latestBlockNumber = blockNumber ? blockNumber : 0;
449
- this.math.state = this.latestState;
450
- return this.latestState;
451
- }
452
- _identifyQuote(srcAddress, destAddress) {
453
- return {
454
- isSrcQuote: srcAddress === this.quoteTokenAddress,
455
- isDestQuote: destAddress === this.quoteTokenAddress,
456
- };
457
- }
458
- }
459
- exports.WooFi = WooFi;
460
- WooFi.ifaces = {
461
- PP: new abi_1.Interface(WooPP_abi_json_1.default),
462
- fee: new abi_1.Interface(WooFeeManager_abi_json_1.default),
463
- oracle: new abi_1.Interface(Wooracle_abi_json_1.default),
464
- guardian: new abi_1.Interface([
465
- 'function globalBound() view returns (uint64)',
466
- 'function refInfo(address) view ' +
467
- 'returns(tuple(address chainlinkRefOracle, uint96 refPriceFixCoeff, ' +
468
- 'uint96 minInputAmount, uint96 maxInputAmount, uint64 bound))',
469
- ]),
470
- chainlink: new abi_1.Interface([
471
- 'function latestRoundData() view returns (tuple(uint80 roundId, ' +
472
- 'int256 answer, uint256 startedAt, uint256 updatedAt, ' +
473
- 'uint80 answeredInRound))',
474
- ]),
475
- erc20BalanceOf: new abi_1.Interface([
476
- 'function balanceOf(address) view returns (uint256)',
477
- ]),
478
- };
479
- WooFi.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.WooFiConfig);
480
- //# sourceMappingURL=woo-fi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"woo-fi.js","sourceRoot":"","sources":["../../../src/dex/woo-fi/woo-fi.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { OptimalRate } from '@paraswap/core';
2
- import { DexExchangeParam } from '../types';
3
- import { DepositWithdrawReturn } from '../dex/weth/types';
4
- export interface IExecutorBytecodeBuilder {
5
- buildByteCode(priceRoute: OptimalRate, exchangeDataList: DexExchangeParam[], maybeWethCallData?: DepositWithdrawReturn): string;
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IExecutorBytecodeBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IExecutorBytecodeBuilder.js","sourceRoot":"","sources":["../../src/executor/IExecutorBytecodeBuilder.ts"],"names":[],"mappings":""}
File without changes