@paraswap/dex-lib 4.1.2-fluid.2 → 4.1.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 (268) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/prettier.xml +7 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/build/abi/fluid-dex/resolver.abi.json +0 -30
  10. package/build/abi/integral/factory.json +333 -0
  11. package/build/abi/{angle-transmuter/ChainlinkEACAggregatorProxy.json → integral/oracle.json} +239 -247
  12. package/build/abi/{curve-v1/StableSwapUSDN.json → integral/pool.json} +487 -450
  13. package/build/abi/{RamsesV2Pool.abi.json → integral/relayer.json} +833 -851
  14. package/build/dex/aave-v1/aave-v1.d.ts +1 -2
  15. package/build/dex/aave-v1/aave-v1.js +0 -22
  16. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  17. package/build/dex/bProtocol.d.ts +18 -0
  18. package/build/dex/bProtocol.js +39 -0
  19. package/build/dex/bProtocol.js.map +1 -0
  20. package/build/dex/bancor.d.ts +26 -0
  21. package/build/dex/bancor.js +58 -0
  22. package/build/dex/bancor.js.map +1 -0
  23. package/build/dex/compound.d.ts +18 -0
  24. package/build/dex/compound.js +46 -0
  25. package/build/dex/compound.js.map +1 -0
  26. package/build/dex/curve-v2.d.ts +58 -0
  27. package/build/dex/curve-v2.js +180 -0
  28. package/build/dex/curve-v2.js.map +1 -0
  29. package/build/dex/dodo-v1.d.ts +33 -0
  30. package/build/dex/dodo-v1.js +63 -0
  31. package/build/dex/dodo-v1.js.map +1 -0
  32. package/build/dex/fluid-dex/config.js +2 -2
  33. package/build/dex/fluid-dex/constants.d.ts +1 -1
  34. package/build/dex/fluid-dex/constants.js +1 -2
  35. package/build/dex/fluid-dex/constants.js.map +1 -1
  36. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +49 -0
  37. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +104 -0
  38. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +1 -0
  39. package/build/dex/fluid-dex/fluid-dex-liquidity-proxy.js +1 -3
  40. package/build/dex/fluid-dex/fluid-dex-liquidity-proxy.js.map +1 -1
  41. package/build/dex/fluid-dex/fluid-dex.d.ts +5 -4
  42. package/build/dex/fluid-dex/fluid-dex.js +56 -61
  43. package/build/dex/fluid-dex/fluid-dex.js.map +1 -1
  44. package/build/dex/fluid-dex/types.d.ts +0 -3
  45. package/build/dex/integral/config.d.ts +4 -0
  46. package/build/dex/integral/config.js +20 -0
  47. package/build/dex/integral/config.js.map +1 -0
  48. package/build/dex/integral/context.d.ts +40 -0
  49. package/build/dex/integral/context.js +158 -0
  50. package/build/dex/integral/context.js.map +1 -0
  51. package/build/dex/integral/integral-factory.d.ts +24 -0
  52. package/build/dex/integral/integral-factory.js +95 -0
  53. package/build/dex/integral/integral-factory.js.map +1 -0
  54. package/build/dex/integral/integral-pool.d.ts +50 -0
  55. package/build/dex/integral/integral-pool.js +149 -0
  56. package/build/dex/integral/integral-pool.js.map +1 -0
  57. package/build/dex/integral/integral-pricing.d.ts +18 -0
  58. package/build/dex/integral/integral-pricing.js +114 -0
  59. package/build/dex/integral/integral-pricing.js.map +1 -0
  60. package/build/dex/integral/integral-relayer.d.ts +42 -0
  61. package/build/dex/integral/integral-relayer.js +192 -0
  62. package/build/dex/integral/integral-relayer.js.map +1 -0
  63. package/build/dex/integral/integral-token.d.ts +27 -0
  64. package/build/dex/integral/integral-token.js +59 -0
  65. package/build/dex/integral/integral-token.js.map +1 -0
  66. package/build/dex/{inception/inception-native.d.ts → integral/integral.d.ts} +19 -21
  67. package/build/dex/integral/integral.js +376 -0
  68. package/build/dex/integral/integral.js.map +1 -0
  69. package/build/dex/integral/types.d.ts +85 -0
  70. package/build/dex/integral/types.js +9 -0
  71. package/build/dex/integral/types.js.map +1 -0
  72. package/build/dex/integral/utils-e2e.d.ts +9 -0
  73. package/build/dex/integral/utils-e2e.js +131 -0
  74. package/build/dex/integral/utils-e2e.js.map +1 -0
  75. package/build/dex/integral/utils.d.ts +17 -0
  76. package/build/dex/integral/utils.js +94 -0
  77. package/build/dex/integral/utils.js.map +1 -0
  78. package/build/dex/jarvis.d.ts +1 -2
  79. package/build/dex/jarvis.js +0 -58
  80. package/build/dex/jarvis.js.map +1 -1
  81. package/build/dex/lido.d.ts +19 -0
  82. package/build/dex/lido.js +42 -0
  83. package/build/dex/lido.js.map +1 -0
  84. package/build/dex/onebit.d.ts +25 -0
  85. package/build/dex/onebit.js +42 -0
  86. package/build/dex/onebit.js.map +1 -0
  87. package/build/dex/platypus/platypus.d.ts +1 -2
  88. package/build/dex/platypus/platypus.js +0 -31
  89. package/build/dex/platypus/platypus.js.map +1 -1
  90. package/build/dex/smoothy.d.ts +26 -0
  91. package/build/dex/smoothy.js +48 -0
  92. package/build/dex/smoothy.js.map +1 -0
  93. package/build/dex/stable-pool.d.ts +28 -0
  94. package/build/dex/stable-pool.js +62 -0
  95. package/build/dex/stable-pool.js.map +1 -0
  96. package/build/dex/swaap-v1/swaap-v1.d.ts +1 -2
  97. package/build/dex/swaap-v1/swaap-v1.js +0 -10
  98. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  99. package/build/dex/trader-joe-v2.1/optimizer.d.ts +2 -0
  100. package/build/dex/trader-joe-v2.1/optimizer.js +47 -0
  101. package/build/dex/trader-joe-v2.1/optimizer.js.map +1 -0
  102. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +7 -0
  103. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +20 -0
  104. package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +1 -0
  105. package/build/dex/trader-joe-v2.1.d.ts +43 -0
  106. package/build/dex/trader-joe-v2.1.js +79 -0
  107. package/build/dex/trader-joe-v2.1.js.map +1 -0
  108. package/build/dex/zerox/index.d.ts +26 -4
  109. package/build/dex/zerox/index.js +42 -50
  110. package/build/dex/zerox/index.js.map +1 -1
  111. package/build/dex/zerox/types.d.ts +0 -29
  112. package/build/dex/zerox/types.js +1 -8
  113. package/build/dex/zerox/types.js.map +1 -1
  114. package/package.json +1 -1
  115. package/src/abi/fluid-dex/resolver.abi.json +0 -30
  116. package/src/dex/fluid-dex/config.ts +2 -2
  117. package/src/dex/fluid-dex/constants.ts +1 -2
  118. package/src/dex/fluid-dex/fluid-dex-e2e.test.ts +117 -61
  119. package/src/dex/fluid-dex/fluid-dex-liquidity-proxy.ts +0 -3
  120. package/src/dex/fluid-dex/fluid-dex.ts +91 -96
  121. package/src/dex/fluid-dex/types.ts +0 -3
  122. package/tests/constants-e2e.ts +1 -1
  123. package/tests/tenderly-simulation.ts +0 -1
  124. package/build/abi/Aave_GSM.json +0 -751
  125. package/build/abi/Balancer.json +0 -257
  126. package/build/abi/BalancerV2.json +0 -1179
  127. package/build/abi/RamsesV2Quoter.abi.json +0 -274
  128. package/build/abi/USDM.json +0 -807
  129. package/build/abi/UniswapV2Router.json +0 -397
  130. package/build/abi/angle-transmuter/ChainlinkAccessControlledOffchainAggregator.json +0 -1246
  131. package/build/abi/curve-v1/CurveBUSDv2.abi.json +0 -1356
  132. package/build/abi/curve-v1/CurveTokenV1.json +0 -305
  133. package/build/abi/curve-v1/CurveTokenV2.json +0 -318
  134. package/build/abi/curve-v1/CurveV1StableNg.json +0 -1452
  135. package/build/abi/curve-v1/CurveV2Swap.json +0 -700
  136. package/build/abi/curve-v1/FactoryCryptoRegistry.json +0 -316
  137. package/build/abi/curve-v1/FactoryRegistry.json +0 -508
  138. package/build/abi/curve-v1/StableSwapAave.json +0 -1152
  139. package/build/abi/curve-v1/StableSwapBUSD.json +0 -814
  140. package/build/abi/curve-v1/StableSwapCompound.json +0 -814
  141. package/build/abi/curve-v1/StableSwapIDLE.json +0 -1253
  142. package/build/abi/curve-v1/StableSwapPax.json +0 -865
  143. package/build/abi/curve-v1/StableSwapSnow.json +0 -900
  144. package/build/abi/curve-v1/StableSwapUSDT.json +0 -814
  145. package/build/abi/curve-v1/StableSwapY.json +0 -814
  146. package/build/abi/inception/inception-ineth-pool.json +0 -1062
  147. package/build/abi/inception/inception-ineth.json +0 -609
  148. package/build/abi/inception/inception-ratio-feed.json +0 -329
  149. package/build/abi/inception/inception-vault.json +0 -991
  150. package/build/abi/kyberdmm/kyber-storage.abi.json +0 -824
  151. package/build/abi/kyberdmm.abi.json +0 -1148
  152. package/build/abi/maverick-v2/MaverickV2Quoter.json +0 -278
  153. package/build/abi/nerve/nerve-metapool.json +0 -790
  154. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  155. package/build/abi/velodrome-slipstream/VelodromeSlipstreamQuoterV2.abi.json +0 -267
  156. package/build/dex/balancer-v1/balancer-pools.json +0 -33333
  157. package/build/dex/bebop/websocket-fetcher.d.ts +0 -35
  158. package/build/dex/bebop/websocket-fetcher.js +0 -87
  159. package/build/dex/bebop/websocket-fetcher.js.map +0 -1
  160. package/build/dex/idle-dao/idle-dao-pool.d.ts +0 -56
  161. package/build/dex/idle-dao/idle-dao-pool.js +0 -176
  162. package/build/dex/idle-dao/idle-dao-pool.js.map +0 -1
  163. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +0 -16
  164. package/build/dex/idle-dao/idle-dao-pooling-pool.js +0 -57
  165. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +0 -1
  166. package/build/dex/idle-dao/scripts.d.ts +0 -9
  167. package/build/dex/idle-dao/scripts.js +0 -552
  168. package/build/dex/idle-dao/scripts.js.map +0 -1
  169. package/build/dex/inception/config.d.ts +0 -4
  170. package/build/dex/inception/config.js +0 -109
  171. package/build/dex/inception/config.js.map +0 -1
  172. package/build/dex/inception/inception-event-pool.d.ts +0 -16
  173. package/build/dex/inception/inception-event-pool.js +0 -51
  174. package/build/dex/inception/inception-event-pool.js.map +0 -1
  175. package/build/dex/inception/inception-native.js +0 -131
  176. package/build/dex/inception/inception-native.js.map +0 -1
  177. package/build/dex/inception/inception-pool.d.ts +0 -18
  178. package/build/dex/inception/inception-pool.js +0 -32
  179. package/build/dex/inception/inception-pool.js.map +0 -1
  180. package/build/dex/inception/inception-price-feed.d.ts +0 -19
  181. package/build/dex/inception/inception-price-feed.js +0 -51
  182. package/build/dex/inception/inception-price-feed.js.map +0 -1
  183. package/build/dex/inception/inception.d.ts +0 -43
  184. package/build/dex/inception/inception.js +0 -204
  185. package/build/dex/inception/inception.js.map +0 -1
  186. package/build/dex/inception/tokens.d.ts +0 -9
  187. package/build/dex/inception/tokens.js +0 -28
  188. package/build/dex/inception/tokens.js.map +0 -1
  189. package/build/dex/inception/types.d.ts +0 -22
  190. package/build/dex/inception/types.js +0 -3
  191. package/build/dex/inception/types.js.map +0 -1
  192. package/build/dex/inception/utils.d.ts +0 -6
  193. package/build/dex/inception/utils.js +0 -37
  194. package/build/dex/inception/utils.js.map +0 -1
  195. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -16
  196. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -16
  197. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -16
  198. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -16
  199. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -16
  200. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -16
  201. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -16
  202. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -16
  203. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -9
  204. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -9
  205. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -9
  206. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-eth-steth.json +0 -9
  207. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-steth-eth.json +0 -9
  208. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -9
  209. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-eth-usdc.json +0 -9
  210. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-eth.json +0 -9
  211. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-usdt.json +0 -9
  212. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -12
  213. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -7
  214. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -7
  215. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -7
  216. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -7
  217. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -12
  218. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-eth-usdc.json +0 -7
  219. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-usdc-eth.json +0 -7
  220. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -78
  221. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -81
  222. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -78
  223. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -78
  224. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -81
  225. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -81
  226. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -81
  227. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -81
  228. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -64
  229. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -85
  230. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -64
  231. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-eth-steth.json +0 -52
  232. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-steth-eth.json +0 -52
  233. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -52
  234. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-eth-usdc.json +0 -55
  235. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-eth.json +0 -55
  236. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-usdt.json +0 -55
  237. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -23
  238. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -37
  239. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -23
  240. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -23
  241. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -51
  242. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-univ3-usdt-dai-eth.json +0 -58
  243. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -23
  244. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -23
  245. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -9
  246. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -16
  247. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -23
  248. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -12
  249. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -7
  250. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -12
  251. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -12
  252. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -7
  253. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-univ3-usdt-dai-eth.json +0 -7
  254. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -7
  255. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -7
  256. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -7
  257. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -7
  258. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -130
  259. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -136
  260. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -100
  261. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -100
  262. package/build/executor/fixtures/executor02/routes/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -166
  263. package/build/executor/fixtures/executor02/routes/price-route-multiswap-univ3-usdt-dai-eth.json +0 -190
  264. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -114
  265. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -114
  266. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -55
  267. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -73
  268. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -82
@@ -7,14 +7,14 @@ exports.FluidDexConfig = {
7
7
  [constants_1.Network.MAINNET]: {
8
8
  commonAddresses: {
9
9
  liquidityProxy: '0x52aa899454998be5b000ad077a46bbe360f4e497',
10
- resolver: '0xb387f9C2092cF7c4943F97842887eBff7AE96EB3',
10
+ resolver: '0x45f4ad57e300da55c33dea579a40fcee000d7b94',
11
11
  dexFactory: '0x91716C4EDA1Fb55e84Bf8b4c7085f84285c19085',
12
12
  },
13
13
  },
14
14
  [constants_1.Network.ARBITRUM]: {
15
15
  commonAddresses: {
16
16
  liquidityProxy: '0x52Aa899454998Be5b000Ad077a46Bbe360F4e497',
17
- resolver: '0xCe6F4E40152a1DF97ae95a7e4F60D944871A4060',
17
+ resolver: '0xb8f526718FF58758E256D9aD86bC194a9ff5986D',
18
18
  dexFactory: '0x91716C4EDA1Fb55e84Bf8b4c7085f84285c19085',
19
19
  },
20
20
  },
@@ -1 +1 @@
1
- export declare const MIN_SWAP_LIQUIDITY = 8500n;
1
+ export declare const MIN_SWAP_LIQUIDITY: bigint;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MIN_SWAP_LIQUIDITY = void 0;
4
- // on-chain we use 1e4 but use extra buffer to avoid reverts
5
- exports.MIN_SWAP_LIQUIDITY = 8500n;
4
+ exports.MIN_SWAP_LIQUIDITY = 10n ** 4n;
6
5
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/fluid-dex/constants.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC/C,QAAA,kBAAkB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/fluid-dex/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,GAAG,IAAI,EAAE,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { BytesLike } from 'ethers/lib/utils';
3
+ import { DeepReadonly } from 'ts-essentials';
4
+ import { Log, Logger } from '../../types';
5
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
6
+ import { IDexHelper } from '../../dex-helper/idex-helper';
7
+ import { CommonAddresses, Pool } from './types';
8
+ import { MultiResult } from '../../lib/multi-wrapper';
9
+ import { Address } from '../../types';
10
+ export declare class FluidDexCommonAddresses extends StatefulEventSubscriber<Pool[]> {
11
+ readonly parentName: string;
12
+ readonly commonAddresses: CommonAddresses;
13
+ protected network: number;
14
+ protected dexHelper: IDexHelper;
15
+ handlers: {
16
+ [event: string]: (event: any, state: DeepReadonly<Pool[]>, log: Readonly<Log>) => Promise<DeepReadonly<Pool[]> | null>;
17
+ };
18
+ logDecoder: (log: Log) => any;
19
+ addressesSubscribed: Address[];
20
+ protected dexFactoryIface: Interface;
21
+ protected resolverIface: Interface;
22
+ constructor(parentName: string, commonAddresses: CommonAddresses, network: number, dexHelper: IDexHelper, logger: Logger);
23
+ /**
24
+ * Handle a trade rate change on the pool.
25
+ */
26
+ handleDexDeployed(event: any, state: DeepReadonly<Pool[]>, log: Readonly<Log>): Promise<DeepReadonly<Pool[]> | null>;
27
+ decodePool: (result: MultiResult<BytesLike> | BytesLike) => Pool;
28
+ /**
29
+ * The function is called every time any of the subscribed
30
+ * addresses release log. The function accepts the current
31
+ * state, updates the state according to the log, and returns
32
+ * the updated state.
33
+ * @param state - Current state of event subscriber
34
+ * @param log - Log released by one of the subscribed addresses
35
+ * @returns Updates state of the event subscriber after the log
36
+ */
37
+ processLog(state: DeepReadonly<Pool[]>, log: Readonly<Log>): Promise<DeepReadonly<Pool[]> | null>;
38
+ getStateOrGenerate(blockNumber: number, readonly?: boolean): Promise<DeepReadonly<Pool[]>>;
39
+ /**
40
+ * The function generates state using on-chain calls. This
41
+ * function is called to regenerate state if the event based
42
+ * system fails to fetch events and the local state is no
43
+ * more correct.
44
+ * @param blockNumber - Blocknumber for which the state should
45
+ * should be generated
46
+ * @returns state of the event subscriber at blocknumber
47
+ */
48
+ generateState(blockNumber: number): Promise<DeepReadonly<Pool[]>>;
49
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FluidDexCommonAddresses = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const utils_1 = require("../../utils");
9
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
+ const resolver_abi_json_1 = __importDefault(require("../../abi/fluid-dex/resolver.abi.json"));
11
+ const dexFactory_abi_json_1 = __importDefault(require("../../abi/fluid-dex/dexFactory.abi.json"));
12
+ const decoders_1 = require("../../lib/decoders");
13
+ const ethers_1 = require("ethers");
14
+ class FluidDexCommonAddresses extends stateful_event_subscriber_1.StatefulEventSubscriber {
15
+ constructor(parentName, commonAddresses, network, dexHelper, logger) {
16
+ super(parentName, 'getAllPools', dexHelper, logger);
17
+ this.parentName = parentName;
18
+ this.commonAddresses = commonAddresses;
19
+ this.network = network;
20
+ this.dexHelper = dexHelper;
21
+ this.handlers = {};
22
+ this.dexFactoryIface = new abi_1.Interface(dexFactory_abi_json_1.default);
23
+ this.resolverIface = new abi_1.Interface(resolver_abi_json_1.default);
24
+ this.decodePool = (result) => {
25
+ return (0, decoders_1.generalDecoder)(result, ['tuple(address pool, address token0, address token1, uint256 fee)'], undefined, decoded => {
26
+ return {
27
+ address: decoded[0].toLowerCase(),
28
+ token0: decoded[1].toLowerCase(),
29
+ token1: decoded[2].toLowerCase(),
30
+ };
31
+ });
32
+ };
33
+ this.logDecoder = (log) => this.dexFactoryIface.parseLog(log);
34
+ this.addressesSubscribed = [commonAddresses.dexFactory];
35
+ // Add handlers
36
+ this.handlers['DexDeployed'] = this.handleDexDeployed.bind(this);
37
+ }
38
+ /**
39
+ * Handle a trade rate change on the pool.
40
+ */
41
+ async handleDexDeployed(event, state, log) {
42
+ const blockNumber_ = await this.dexHelper.provider.getBlockNumber();
43
+ return this.getStateOrGenerate(blockNumber_, false);
44
+ }
45
+ /**
46
+ * The function is called every time any of the subscribed
47
+ * addresses release log. The function accepts the current
48
+ * state, updates the state according to the log, and returns
49
+ * the updated state.
50
+ * @param state - Current state of event subscriber
51
+ * @param log - Log released by one of the subscribed addresses
52
+ * @returns Updates state of the event subscriber after the log
53
+ */
54
+ async processLog(state, log) {
55
+ try {
56
+ let event;
57
+ try {
58
+ event = this.logDecoder(log);
59
+ }
60
+ catch (e) {
61
+ return null;
62
+ }
63
+ if (event.name in this.handlers) {
64
+ return await this.handlers[event.name](event, state, log);
65
+ }
66
+ }
67
+ catch (e) {
68
+ (0, utils_1.catchParseLogError)(e, this.logger);
69
+ }
70
+ return null;
71
+ }
72
+ async getStateOrGenerate(blockNumber, readonly = false) {
73
+ let state = this.getState(blockNumber);
74
+ if (!state) {
75
+ state = await this.generateState(blockNumber);
76
+ if (!readonly)
77
+ this.setState(state, blockNumber);
78
+ }
79
+ return state;
80
+ }
81
+ /**
82
+ * The function generates state using on-chain calls. This
83
+ * function is called to regenerate state if the event based
84
+ * system fails to fetch events and the local state is no
85
+ * more correct.
86
+ * @param blockNumber - Blocknumber for which the state should
87
+ * should be generated
88
+ * @returns state of the event subscriber at blocknumber
89
+ */
90
+ async generateState(blockNumber) {
91
+ const resolverContract = new ethers_1.Contract(this.commonAddresses.resolver, resolver_abi_json_1.default, this.dexHelper.provider);
92
+ const rawResult = await resolverContract.callStatic.getAllPools({
93
+ blockTag: blockNumber,
94
+ });
95
+ const pools = rawResult.map((result) => ({
96
+ address: result[0],
97
+ token0: result[1],
98
+ token1: result[2],
99
+ }));
100
+ return pools;
101
+ }
102
+ }
103
+ exports.FluidDexCommonAddresses = FluidDexCommonAddresses;
104
+ //# sourceMappingURL=fluid-dex-generate-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluid-dex-generate-pool.js","sourceRoot":"","sources":["../../../src/dex/fluid-dex/fluid-dex-generate-pool.ts"],"names":[],"mappings":"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"}
@@ -88,9 +88,8 @@ class FluidDexLiquidityProxy extends stateful_event_subscriber_1.StatefulEventSu
88
88
  }
89
89
  convertToFluidDexPoolState(poolReserves) {
90
90
  const result = poolReserves.map(poolReserve => {
91
- const [pool, token0, token1, feeHex, centerPriceHex, collateralReservesHex, debtReservesHex, dexLimitsHex,] = poolReserve;
91
+ const [pool, token0, token1, feeHex, collateralReservesHex, debtReservesHex, dexLimitsHex,] = poolReserve;
92
92
  const fee = Number(feeHex.toString());
93
- const centerPrice = Number(centerPriceHex.toString());
94
93
  const collateralReserves = {
95
94
  token0RealReserves: (0, utils_1.bigIntify)(collateralReservesHex[0]),
96
95
  token1RealReserves: (0, utils_1.bigIntify)(collateralReservesHex[1]),
@@ -136,7 +135,6 @@ class FluidDexLiquidityProxy extends stateful_event_subscriber_1.StatefulEventSu
136
135
  token0,
137
136
  token1,
138
137
  fee,
139
- centerPrice,
140
138
  collateralReserves,
141
139
  debtReserves,
142
140
  dexLimits,
@@ -1 +1 @@
1
- {"version":3,"file":"fluid-dex-liquidity-proxy.js","sourceRoot":"","sources":["../../../src/dex/fluid-dex/fluid-dex-liquidity-proxy.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAG/C,uCAA4D;AAC5D,+EAA0E;AAE1E,8FAAgE;AAChE,oHAA4E;AAQ5E,mCAAkC;AAElC,MAAa,sBAAuB,SAAQ,mDAAoD;IAoBnF;IACA;IACC;IACD;IAtBX,QAAQ,GAMJ,EAAE,CAAC;IAEP,UAAU,CAAoB;IAE9B,mBAAmB,CAAY;IAEtB,cAAc,GAAG,IAAI,eAAS,CAAC,sCAAY,CAAC,CAAC;IAE7C,aAAa,GAAG,IAAI,eAAS,CAAC,2BAAW,CAAC,CAAC;IAEpD,gBAAgB,CAAW;IAE3B,YACW,UAAkB,EAClB,eAAgC,EAC/B,OAAe,EAChB,SAAqB,EAC9B,MAAc;QAEd,KAAK,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAN/C,eAAU,GAAV,UAAU,CAAQ;QAClB,oBAAe,GAAf,eAAe,CAAiB;QAC/B,YAAO,GAAP,OAAO,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAY;QAK9B,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAElE,IAAI,CAAC,gBAAgB,GAAG,IAAI,iBAAQ,CAClC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAC7B,2BAAW,EACX,IAAI,CAAC,SAAS,CAAC,QAAQ,CACxB,CAAC;QAEF,IAAI,CAAC,mBAAmB,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QAE5D,eAAe;QACf,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,KAAU,EACV,KAAgD,EAChD,GAAkB;QAElB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CACd,KAAgD,EAChD,GAAkB;QAElB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,WAAmB,EACnB,WAAoB,KAAK;QAEzB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,WAAmB;QAEnB,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,2BAA2B,CAAC;YACjE,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QAEL,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,uBAAuB,CAAC,CAAC;QAE1E,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,0BAA0B,CAChC,YAAmC;QAEnC,MAAM,MAAM,GAAkB,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC3D,MAAM,CACJ,IAAI,EACJ,MAAM,EACN,MAAM,EACN,MAAM,EACN,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,YAAY,EACb,GAAG,WAAW,CAAC;YAEhB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEtD,MAAM,kBAAkB,GAAG;gBACzB,kBAAkB,EAAE,IAAA,iBAAS,EAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACvD,kBAAkB,EAAE,IAAA,iBAAS,EAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACvD,uBAAuB,EAAE,IAAA,iBAAS,EAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC5D,uBAAuB,EAAE,IAAA,iBAAS,EAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;aAC7D,CAAC;YAEF,MAAM,YAAY,GAAG;gBACnB,UAAU,EAAE,IAAA,iBAAS,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACzC,UAAU,EAAE,IAAA,iBAAS,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACzC,kBAAkB,EAAE,IAAA,iBAAS,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjD,kBAAkB,EAAE,IAAA,iBAAS,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjD,uBAAuB,EAAE,IAAA,iBAAS,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACtD,uBAAuB,EAAE,IAAA,iBAAS,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC;aACvD,CAAC;YAEF,MAAM,kBAAkB,GAAG;gBACzB,SAAS,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,SAAS,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,eAAe,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C,CAAC;YAEF,MAAM,kBAAkB,GAAG;gBACzB,SAAS,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,SAAS,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,eAAe,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C,CAAC;YAEF,MAAM,gBAAgB,GAAG;gBACvB,SAAS,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,SAAS,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,eAAe,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C,CAAC;YAEF,MAAM,gBAAgB,GAAG;gBACvB,SAAS,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,SAAS,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,eAAe,EAAE,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C,CAAC;YAEF,MAAM,SAAS,GAAG;gBAChB,kBAAkB;gBAClB,kBAAkB;gBAClB,gBAAgB;gBAChB,gBAAgB;aACjB,CAAC;YAEF,OAAO;gBACL,IAAI;gBACJ,MAAM;gBACN,MAAM;gBACN,GAAG;gBACH,WAAW;gBACX,kBAAkB;gBAClB,YAAY;gBACZ,SAAS;aACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;CACF;AAhMD,wDAgMC"}
1
+ {"version":3,"file":"fluid-dex-liquidity-proxy.js","sourceRoot":"","sources":["../../../src/dex/fluid-dex/fluid-dex-liquidity-proxy.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export declare class FluidDex extends SimpleExchange implements IDex<FluidDexDat
23
23
  }[];
24
24
  logger: Logger;
25
25
  pools: FluidDexPool[];
26
+ restrictedIds: string[];
26
27
  eventPools: FluidDexEventPool[];
27
28
  readonly factory: FluidDexFactory;
28
29
  readonly liquidityProxy: FluidDexLiquidityProxy;
@@ -51,7 +52,7 @@ export declare class FluidDex extends SimpleExchange implements IDex<FluidDexDat
51
52
  * @param outDecimals - The number of decimals for the output token.
52
53
  * @returns The calculated output amount (as a BigInt).
53
54
  */
54
- swapIn(swap0To1: boolean, amountIn: bigint, colReserves: CollateralReserves, debtReserves: DebtReserves, inDecimals: number, outDecimals: number, fee: bigint, currentLimits: DexLimits, centerPrice: bigint, syncTime: number): bigint;
55
+ swapIn(swap0To1: boolean, amountIn: bigint, colReserves: CollateralReserves, debtReserves: DebtReserves, inDecimals: number, outDecimals: number, fee: bigint, currentLimits: DexLimits, syncTime: number): bigint;
55
56
  /**
56
57
  * Calculates the output amount for a given input amount in a swap operation.
57
58
  * @param swap0To1 - Direction of the swap. True if swapping token0 for token1, false otherwise.
@@ -60,7 +61,7 @@ export declare class FluidDex extends SimpleExchange implements IDex<FluidDexDat
60
61
  * @param debtReserves - The reserves of the debt pool.
61
62
  * @returns The calculated output amount.
62
63
  */
63
- swapInAdjusted(swap0To1: boolean, amountToSwap: bigint, colReserves: CollateralReserves, debtReserves: DebtReserves, fee: bigint, outDecimals: number, currentLimits: DexLimits, centerPrice: bigint, syncTime: number): bigint;
64
+ swapInAdjusted(swap0To1: boolean, amountToSwap: bigint, colReserves: CollateralReserves, debtReserves: DebtReserves, fee: bigint, outDecimals: number, currentLimits: DexLimits, syncTime: number): bigint;
64
65
  /**
65
66
  * Checks if token0 reserves are sufficient compared to token1 reserves.
66
67
  * This helps prevent edge cases and ensures high precision in calculations.
@@ -139,7 +140,7 @@ export declare class FluidDex extends SimpleExchange implements IDex<FluidDexDat
139
140
  * @param {number} fee - The fee for the swap. 1e4 = 1%
140
141
  * @returns {bigint} amountIn - The calculated input amount required for the swap.
141
142
  */
142
- swapOut(swap0to1: boolean, amountOut: bigint, colReserves: CollateralReserves, debtReserves: DebtReserves, inDecimals: number, outDecimals: number, fee: bigint, currentLimits: DexLimits, centerPrice: bigint, syncTime: number): bigint;
143
+ swapOut(swap0to1: boolean, amountOut: bigint, colReserves: CollateralReserves, debtReserves: DebtReserves, inDecimals: number, outDecimals: number, fee: bigint, currentLimits: DexLimits, syncTime: number): bigint;
143
144
  /**
144
145
  * Calculates the input amount for a given output amount in a swap operation.
145
146
  * @param {boolean} swap0to1 - Direction of the swap. True if swapping token0 for token1, false otherwise.
@@ -148,7 +149,7 @@ export declare class FluidDex extends SimpleExchange implements IDex<FluidDexDat
148
149
  * @param {DebtReserves} debtReserves - The reserves of the debt pool.
149
150
  * @returns {bigint} The calculated input amount required for the swap.
150
151
  */
151
- swapOutAdjusted(swap0to1: boolean, amountOut: bigint, colReserves: CollateralReserves, debtReserves: DebtReserves, fee: bigint, outDecimals: number, currentLimits: DexLimits, centerPrice: bigint, syncTime: number): bigint;
152
+ swapOutAdjusted(swap0to1: boolean, amountOut: bigint, colReserves: CollateralReserves, debtReserves: DebtReserves, fee: bigint, outDecimals: number, currentLimits: DexLimits, syncTime: number): bigint;
152
153
  private applyFeeForBuy;
153
154
  private applyFeeForSell;
154
155
  private abs;
@@ -62,6 +62,10 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
62
62
  static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.FluidDexConfig);
63
63
  logger;
64
64
  pools = [];
65
+ // temporarily limit FLUID-ETH Dex Pool.
66
+ restrictedIds = [
67
+ 'FluidDex_0xc800b0e15c40a1ff0539218100c86f4c1bac8d9c',
68
+ ];
65
69
  eventPools = [];
66
70
  factory;
67
71
  liquidityProxy;
@@ -94,7 +98,7 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
94
98
  // implement this function
95
99
  async initializePricing(blockNumber) {
96
100
  await this.factory.initialize(blockNumber);
97
- this.pools = await this.fetchFluidDexPools(blockNumber);
101
+ this.pools = (await this.fetchFluidDexPools(blockNumber)).filter(pool => !this.restrictedIds.includes(pool.id));
98
102
  this.eventPools = await Promise.all(this.pools.map(async (pool) => {
99
103
  const eventPool = new fluid_dex_pool_1.FluidDexEventPool(this.dexKey, pool.address, this.network, this.dexHelper, this.logger);
100
104
  await eventPool.initialize(blockNumber);
@@ -106,7 +110,7 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
106
110
  return null;
107
111
  }
108
112
  onPoolCreatedUpdatePools(poolsFromFactory) {
109
- this.pools = this.generateFluidDexPoolsFromPoolsFactory(poolsFromFactory);
113
+ this.pools = this.generateFluidDexPoolsFromPoolsFactory(poolsFromFactory).filter(pool => !this.restrictedIds.includes(pool.id));
110
114
  this.logger.info(`${this.dexKey}: pools list was updated ...`);
111
115
  }
112
116
  decodePools = (result) => {
@@ -132,6 +136,7 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
132
136
  // A pair must have 2 different tokens.
133
137
  if (srcAddress === destAddress)
134
138
  return [];
139
+ this.pools = this.pools.filter(pool => !this.restrictedIds.includes(pool.id));
135
140
  const pools = this.pools.filter(pool => (srcAddress === pool.token0 && destAddress === pool.token1) ||
136
141
  (srcAddress === pool.token1 && destAddress === pool.token0));
137
142
  return pools;
@@ -166,10 +171,10 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
166
171
  }
167
172
  const prices = amounts.map(amount => {
168
173
  if (side === constants_1.SwapSide.SELL) {
169
- return this.swapIn(srcToken.address.toLowerCase() === pool.token0.toLowerCase(), amount, currentPoolReserves.collateralReserves, currentPoolReserves.debtReserves, srcToken.decimals, destToken.decimals, BigInt(currentPoolReserves.fee), currentPoolReserves.dexLimits, BigInt(currentPoolReserves.centerPrice), Math.floor(Date.now() / 1000));
174
+ return this.swapIn(srcToken.address.toLowerCase() === pool.token0.toLowerCase(), amount, currentPoolReserves.collateralReserves, currentPoolReserves.debtReserves, srcToken.decimals, destToken.decimals, BigInt(currentPoolReserves.fee), currentPoolReserves.dexLimits, Math.floor(Date.now() / 1000));
170
175
  }
171
176
  else {
172
- return this.swapOut(srcToken.address.toLowerCase() === pool.token0.toLowerCase(), amount, currentPoolReserves.collateralReserves, currentPoolReserves.debtReserves, srcToken.decimals, destToken.decimals, BigInt(currentPoolReserves.fee), currentPoolReserves.dexLimits, BigInt(currentPoolReserves.centerPrice), Math.floor(Date.now() / 1000));
177
+ return this.swapOut(srcToken.address.toLowerCase() === pool.token0.toLowerCase(), amount, currentPoolReserves.collateralReserves, currentPoolReserves.debtReserves, srcToken.decimals, destToken.decimals, BigInt(currentPoolReserves.fee), currentPoolReserves.dexLimits, Math.floor(Date.now() / 1000));
173
178
  }
174
179
  });
175
180
  return {
@@ -233,20 +238,10 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
233
238
  }
234
239
  else {
235
240
  if (pool.token0.toLowerCase() !== srcToken.toLowerCase()) {
236
- args = [
237
- false,
238
- (BigInt(destAmount) * 1000001n) / 1000000n, // 0.0001% increase target out amount when calling Fluid Dex as it is not 100% exact. Guarantees meeting reaching exact out amount condition
239
- BigInt(srcAmount),
240
- recipient,
241
- ];
241
+ args = [false, BigInt(destAmount), BigInt(srcAmount), recipient];
242
242
  }
243
243
  else {
244
- args = [
245
- true,
246
- (BigInt(destAmount) * 1000001n) / 1000000n, // 0.0001% increase target out amount when calling Fluid Dex as it is not 100% exact. Guarantees meeting reaching exact out amount condition
247
- BigInt(srcAmount),
248
- recipient,
249
- ];
244
+ args = [true, BigInt(destAmount), BigInt(srcAmount), recipient];
250
245
  }
251
246
  }
252
247
  const swapData = this.fluidDexPoolIface.encodeFunctionData(method, args);
@@ -269,7 +264,7 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
269
264
  * @param outDecimals - The number of decimals for the output token.
270
265
  * @returns The calculated output amount (as a BigInt).
271
266
  */
272
- swapIn(swap0To1, amountIn, colReserves, debtReserves, inDecimals, outDecimals, fee, currentLimits, centerPrice, syncTime) {
267
+ swapIn(swap0To1, amountIn, colReserves, debtReserves, inDecimals, outDecimals, fee, currentLimits, syncTime) {
273
268
  if (amountIn === 0n) {
274
269
  return 0n; // Return 0 if input amount is 0
275
270
  }
@@ -278,7 +273,7 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
278
273
  return 0n;
279
274
  }
280
275
  const amountInAdjusted = (amountIn * BigInt(10 ** 12)) / BigInt(10 ** inDecimals);
281
- const amountOut = this.swapInAdjusted(swap0To1, amountInAdjusted, colReserves, debtReserves, fee, outDecimals, currentLimits, centerPrice, syncTime);
276
+ const amountOut = this.swapInAdjusted(swap0To1, amountInAdjusted, colReserves, debtReserves, fee, outDecimals, currentLimits, syncTime);
282
277
  return (amountOut * BigInt(10 ** outDecimals)) / BigInt(10 ** 12);
283
278
  }
284
279
  /**
@@ -289,7 +284,7 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
289
284
  * @param debtReserves - The reserves of the debt pool.
290
285
  * @returns The calculated output amount.
291
286
  */
292
- swapInAdjusted(swap0To1, amountToSwap, colReserves, debtReserves, fee, outDecimals, currentLimits, centerPrice, syncTime) {
287
+ swapInAdjusted(swap0To1, amountToSwap, colReserves, debtReserves, fee, outDecimals, currentLimits, syncTime) {
293
288
  const { token0RealReserves, token1RealReserves, token0ImaginaryReserves, token1ImaginaryReserves, } = colReserves;
294
289
  const { token0RealReserves: debtToken0RealReserves, token1RealReserves: debtToken1RealReserves, token0ImaginaryReserves: debtToken0ImaginaryReserves, token1ImaginaryReserves: debtToken1ImaginaryReserves, } = debtReserves;
295
290
  // Check if all reserves of collateral pool are greater than 0
@@ -379,22 +374,6 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
379
374
  if (amountOutCollateral > withdrawable) {
380
375
  return 0n;
381
376
  }
382
- if (amountInCollateral > 0) {
383
- let reservesRatioValid = swap0To1
384
- ? this.verifyToken1Reserves(colReserveIn + amountInCollateral, colReserveOut - amountOutCollateral, centerPrice)
385
- : this.verifyToken0Reserves(colReserveOut - amountOutCollateral, colReserveIn + amountInCollateral, centerPrice);
386
- if (!reservesRatioValid) {
387
- return 0n;
388
- }
389
- }
390
- if (amountInDebt > 0) {
391
- let reservesRatioValid = swap0To1
392
- ? this.verifyToken1Reserves(debtReserveIn + amountInDebt, debtReserveOut - amountOutDebt, centerPrice)
393
- : this.verifyToken0Reserves(debtReserveOut - amountOutDebt, debtReserveIn + amountInDebt, centerPrice);
394
- if (!reservesRatioValid) {
395
- return 0n;
396
- }
397
- }
398
377
  // For price calculations, we'll use a precision factor for bigint division
399
378
  const PRECISION = 1000000000000000000000000000n; // 1e27
400
379
  let oldPrice;
@@ -428,6 +407,22 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
428
407
  if (priceDiff > maxAllowedDiff) {
429
408
  return 0n;
430
409
  }
410
+ if (amountInCollateral > 0) {
411
+ let reservesRatioValid = swap0To1
412
+ ? this.verifyToken1Reserves(colReserveIn + amountInCollateral, colReserveOut - amountOutCollateral, oldPrice)
413
+ : this.verifyToken0Reserves(colReserveOut - amountOutCollateral, colReserveIn + amountInCollateral, oldPrice);
414
+ if (!reservesRatioValid) {
415
+ return 0n;
416
+ }
417
+ }
418
+ if (amountInDebt > 0) {
419
+ let reservesRatioValid = swap0To1
420
+ ? this.verifyToken1Reserves(debtReserveIn + amountInDebt, debtReserveOut - amountOutDebt, oldPrice)
421
+ : this.verifyToken0Reserves(debtReserveOut - amountOutDebt, debtReserveIn + amountInDebt, oldPrice);
422
+ if (!reservesRatioValid) {
423
+ return 0n;
424
+ }
425
+ }
431
426
  const totalAmountOut = amountOutCollateral + amountOutDebt;
432
427
  return totalAmountOut;
433
428
  }
@@ -565,9 +560,9 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
565
560
  * @param {number} fee - The fee for the swap. 1e4 = 1%
566
561
  * @returns {bigint} amountIn - The calculated input amount required for the swap.
567
562
  */
568
- swapOut(swap0to1, amountOut, colReserves, debtReserves, inDecimals, outDecimals, fee, currentLimits, centerPrice, syncTime) {
563
+ swapOut(swap0to1, amountOut, colReserves, debtReserves, inDecimals, outDecimals, fee, currentLimits, syncTime) {
569
564
  const amountOutAdjusted = (amountOut * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
570
- const amountIn = this.swapOutAdjusted(swap0to1, amountOutAdjusted, colReserves, debtReserves, fee, outDecimals, currentLimits, centerPrice, syncTime);
565
+ const amountIn = this.swapOutAdjusted(swap0to1, amountOutAdjusted, colReserves, debtReserves, fee, outDecimals, currentLimits, syncTime);
571
566
  if (amountIn === 2n ** 256n - 1n) {
572
567
  return amountIn;
573
568
  }
@@ -582,7 +577,7 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
582
577
  * @param {DebtReserves} debtReserves - The reserves of the debt pool.
583
578
  * @returns {bigint} The calculated input amount required for the swap.
584
579
  */
585
- swapOutAdjusted(swap0to1, amountOut, colReserves, debtReserves, fee, outDecimals, currentLimits, centerPrice, syncTime) {
580
+ swapOutAdjusted(swap0to1, amountOut, colReserves, debtReserves, fee, outDecimals, currentLimits, syncTime) {
586
581
  if (amountOut === 0n) {
587
582
  return 0n; // Return 0 if output amount is 0
588
583
  }
@@ -652,10 +647,10 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
652
647
  amountInDebt = this.getAmountIn(amountOut, debtIReserveIn, debtIReserveOut);
653
648
  amountInDebt = this.applyFeeForBuy(amountInDebt, fee);
654
649
  if (amountOut > debtReserveOut) {
655
- return 0n;
650
+ return 2n ** 256n - 1n;
656
651
  }
657
652
  if (amountOut > borrowable) {
658
- return 0n;
653
+ return 2n ** 256n - 1n;
659
654
  }
660
655
  }
661
656
  else if (a >= amountOut) {
@@ -664,10 +659,10 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
664
659
  amountInCollateral = this.getAmountIn(amountOut, colIReserveIn, colIReserveOut);
665
660
  amountInCollateral = this.applyFeeForBuy(amountInCollateral, fee);
666
661
  if (amountOut > colReserveOut) {
667
- return 0n;
662
+ return 2n ** 256n - 1n;
668
663
  }
669
664
  if (amountOut > withdrawable) {
670
- return 0n;
665
+ return 2n ** 256n - 1n;
671
666
  }
672
667
  }
673
668
  else {
@@ -679,26 +674,10 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
679
674
  amountInDebt = this.getAmountIn(amountOutDebtAdjusted, debtIReserveIn, debtIReserveOut);
680
675
  amountInDebt = this.applyFeeForBuy(amountInDebt, fee);
681
676
  if (amountOutDebt > debtReserveOut || a > colReserveOut) {
682
- return 0n;
677
+ return 2n ** 256n - 1n;
683
678
  }
684
679
  if (amountOutDebt > borrowable || a > withdrawable) {
685
- return 0n;
686
- }
687
- }
688
- if (amountInCollateral > 0) {
689
- let reservesRatioValid = swap0to1
690
- ? this.verifyToken1Reserves(colReserveIn + amountInCollateral, colReserveOut - amountOutCollateral, centerPrice)
691
- : this.verifyToken0Reserves(colReserveOut - amountOutCollateral, colReserveIn + amountInCollateral, centerPrice);
692
- if (!reservesRatioValid) {
693
- return 0n;
694
- }
695
- }
696
- if (amountInDebt > 0) {
697
- let reservesRatioValid = swap0to1
698
- ? this.verifyToken1Reserves(debtReserveIn + amountInDebt, debtReserveOut - amountOutDebt, centerPrice)
699
- : this.verifyToken0Reserves(debtReserveOut - amountOutDebt, debtReserveIn + amountInDebt, centerPrice);
700
- if (!reservesRatioValid) {
701
- return 0n;
680
+ return 2n ** 256n - 1n;
702
681
  }
703
682
  }
704
683
  let oldPrice;
@@ -731,7 +710,23 @@ class FluidDex extends simple_exchange_1.SimpleExchange {
731
710
  if (this.abs(oldPrice - newPrice) >
732
711
  (oldPrice / BigInt(100)) * MAX_PRICE_DIFF) {
733
712
  // if price diff is > 5% then swap would revert.
734
- return 0n;
713
+ return 2n ** 256n - 1n;
714
+ }
715
+ if (amountInCollateral > 0) {
716
+ let reservesRatioValid = swap0to1
717
+ ? this.verifyToken1Reserves(colReserveIn + amountInCollateral, colReserveOut - amountOutCollateral, oldPrice)
718
+ : this.verifyToken0Reserves(colReserveOut - amountOutCollateral, colReserveIn + amountInCollateral, oldPrice);
719
+ if (!reservesRatioValid) {
720
+ return 0n;
721
+ }
722
+ }
723
+ if (amountInDebt > 0) {
724
+ let reservesRatioValid = swap0to1
725
+ ? this.verifyToken1Reserves(debtReserveIn + amountInDebt, debtReserveOut - amountOutDebt, oldPrice)
726
+ : this.verifyToken0Reserves(debtReserveOut - amountOutDebt, debtReserveIn + amountInDebt, oldPrice);
727
+ if (!reservesRatioValid) {
728
+ return 0n;
729
+ }
735
730
  }
736
731
  const totalAmountIn = amountInCollateral + amountInDebt;
737
732
  return totalAmountIn;