@paraswap/dex-lib 4.1.18 → 4.1.19

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 (303) hide show
  1. package/.idea/codeStyles/Project.xml +59 -0
  2. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  3. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  4. package/.idea/modules.xml +8 -0
  5. package/.idea/paraswap-dex-lib.iml +12 -0
  6. package/.idea/prettier.xml +7 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  9. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  10. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  11. package/build/dex/uniswap-v3/uniswap-v3.d.ts +1 -1
  12. package/build/dex/uniswap-v3/uniswap-v3.js +53 -65
  13. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  14. package/build/dex/zerox/index.d.ts +1 -1
  15. package/build/dex/zerox/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/scripts/get-uniswap-v3-dexes.ts +64 -0
  18. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +82 -0
  19. package/src/dex/uniswap-v3/uniswap-v3.ts +95 -116
  20. package/build/abi/AaveV1_lending_pool.json +0 -27
  21. package/build/abi/Aave_GSM.json +0 -751
  22. package/build/abi/Balancer.json +0 -257
  23. package/build/abi/BalancerV2.json +0 -1179
  24. package/build/abi/RamsesV2Pool.abi.json +0 -1554
  25. package/build/abi/RamsesV2Quoter.abi.json +0 -274
  26. package/build/abi/USDM.json +0 -807
  27. package/build/abi/UniswapV2Router.json +0 -397
  28. package/build/abi/angle-transmuter/ChainlinkAccessControlledOffchainAggregator.json +0 -1246
  29. package/build/abi/angle-transmuter/ChainlinkEACAggregatorProxy.json +0 -509
  30. package/build/abi/curve-v1/CurveBUSDv2.abi.json +0 -1356
  31. package/build/abi/curve-v1/CurveTokenV1.json +0 -305
  32. package/build/abi/curve-v1/CurveTokenV2.json +0 -318
  33. package/build/abi/curve-v1/CurveV1StableNg.json +0 -1452
  34. package/build/abi/curve-v1/CurveV2Swap.json +0 -700
  35. package/build/abi/curve-v1/FactoryCryptoRegistry.json +0 -316
  36. package/build/abi/curve-v1/FactoryRegistry.json +0 -508
  37. package/build/abi/curve-v1/StableSwapAave.json +0 -1152
  38. package/build/abi/curve-v1/StableSwapBUSD.json +0 -814
  39. package/build/abi/curve-v1/StableSwapCompound.json +0 -814
  40. package/build/abi/curve-v1/StableSwapIDLE.json +0 -1253
  41. package/build/abi/curve-v1/StableSwapPax.json +0 -865
  42. package/build/abi/curve-v1/StableSwapSnow.json +0 -900
  43. package/build/abi/curve-v1/StableSwapUSDN.json +0 -1004
  44. package/build/abi/curve-v1/StableSwapUSDT.json +0 -814
  45. package/build/abi/curve-v1/StableSwapY.json +0 -814
  46. package/build/abi/inception/inception-ineth-pool.json +0 -1062
  47. package/build/abi/inception/inception-ineth.json +0 -609
  48. package/build/abi/inception/inception-ratio-feed.json +0 -329
  49. package/build/abi/inception/inception-vault.json +0 -991
  50. package/build/abi/kyberdmm/kyber-storage.abi.json +0 -824
  51. package/build/abi/kyberdmm.abi.json +0 -1148
  52. package/build/abi/maverick-v2/MaverickV2Quoter.json +0 -278
  53. package/build/abi/nerve/nerve-metapool.json +0 -790
  54. package/build/abi/platypus/asset.json +0 -490
  55. package/build/abi/platypus/avax-pool.json +0 -820
  56. package/build/abi/platypus/oracle.json +0 -119
  57. package/build/abi/platypus/pool.json +0 -677
  58. package/build/abi/smardex/all/smardex-router.json +0 -648
  59. package/build/abi/smardex/layer-1/smardex-factory.json +0 -242
  60. package/build/abi/smardex/layer-1/smardex-pool.json +0 -506
  61. package/build/abi/smardex/layer-2/smardex-factory.json +0 -185
  62. package/build/abi/smardex/layer-2/smardex-pool.json +0 -578
  63. package/build/abi/swaap-v1/pool.json +0 -1346
  64. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  65. package/build/abi/velodrome-slipstream/VelodromeSlipstreamQuoterV2.abi.json +0 -267
  66. package/build/dex/aave-v1/aave-v1.d.ts +0 -34
  67. package/build/dex/aave-v1/aave-v1.js +0 -180
  68. package/build/dex/aave-v1/aave-v1.js.map +0 -1
  69. package/build/dex/aave-v1/config.d.ts +0 -11
  70. package/build/dex/aave-v1/config.js +0 -20
  71. package/build/dex/aave-v1/config.js.map +0 -1
  72. package/build/dex/aave-v1/tokens-mainnet.json +0 -134
  73. package/build/dex/aave-v1/tokens.d.ts +0 -3
  74. package/build/dex/aave-v1/tokens.js +0 -50
  75. package/build/dex/aave-v1/tokens.js.map +0 -1
  76. package/build/dex/aave-v1/types.d.ts +0 -12
  77. package/build/dex/aave-v1/types.js +0 -3
  78. package/build/dex/aave-v1/types.js.map +0 -1
  79. package/build/dex/balancer-v1/balancer-pools.json +0 -33333
  80. package/build/dex/balancer-v3/gyroECLPPool.d.ts +0 -11
  81. package/build/dex/balancer-v3/gyroECLPPool.js +0 -6
  82. package/build/dex/balancer-v3/gyroECLPPool.js.map +0 -1
  83. package/build/dex/balancer-v3/utils.d.ts +0 -2
  84. package/build/dex/balancer-v3/utils.js +0 -11
  85. package/build/dex/balancer-v3/utils.js.map +0 -1
  86. package/build/dex/bebop/websocket-fetcher.d.ts +0 -35
  87. package/build/dex/bebop/websocket-fetcher.js +0 -87
  88. package/build/dex/bebop/websocket-fetcher.js.map +0 -1
  89. package/build/dex/idle-dao/idle-dao-pool.d.ts +0 -56
  90. package/build/dex/idle-dao/idle-dao-pool.js +0 -176
  91. package/build/dex/idle-dao/idle-dao-pool.js.map +0 -1
  92. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +0 -16
  93. package/build/dex/idle-dao/idle-dao-pooling-pool.js +0 -57
  94. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +0 -1
  95. package/build/dex/idle-dao/scripts.d.ts +0 -9
  96. package/build/dex/idle-dao/scripts.js +0 -552
  97. package/build/dex/idle-dao/scripts.js.map +0 -1
  98. package/build/dex/inception/config.d.ts +0 -4
  99. package/build/dex/inception/config.js +0 -109
  100. package/build/dex/inception/config.js.map +0 -1
  101. package/build/dex/inception/inception-event-pool.d.ts +0 -16
  102. package/build/dex/inception/inception-event-pool.js +0 -51
  103. package/build/dex/inception/inception-event-pool.js.map +0 -1
  104. package/build/dex/inception/inception-native.d.ts +0 -43
  105. package/build/dex/inception/inception-native.js +0 -131
  106. package/build/dex/inception/inception-native.js.map +0 -1
  107. package/build/dex/inception/inception-pool.d.ts +0 -18
  108. package/build/dex/inception/inception-pool.js +0 -32
  109. package/build/dex/inception/inception-pool.js.map +0 -1
  110. package/build/dex/inception/inception-price-feed.d.ts +0 -19
  111. package/build/dex/inception/inception-price-feed.js +0 -51
  112. package/build/dex/inception/inception-price-feed.js.map +0 -1
  113. package/build/dex/inception/inception.d.ts +0 -43
  114. package/build/dex/inception/inception.js +0 -204
  115. package/build/dex/inception/inception.js.map +0 -1
  116. package/build/dex/inception/tokens.d.ts +0 -9
  117. package/build/dex/inception/tokens.js +0 -28
  118. package/build/dex/inception/tokens.js.map +0 -1
  119. package/build/dex/inception/types.d.ts +0 -22
  120. package/build/dex/inception/types.js +0 -3
  121. package/build/dex/inception/types.js.map +0 -1
  122. package/build/dex/inception/utils.d.ts +0 -6
  123. package/build/dex/inception/utils.js +0 -37
  124. package/build/dex/inception/utils.js.map +0 -1
  125. package/build/dex/platypus/asset.d.ts +0 -14
  126. package/build/dex/platypus/asset.js +0 -97
  127. package/build/dex/platypus/asset.js.map +0 -1
  128. package/build/dex/platypus/config.d.ts +0 -11
  129. package/build/dex/platypus/config.js +0 -69
  130. package/build/dex/platypus/config.js.map +0 -1
  131. package/build/dex/platypus/platypus.d.ts +0 -63
  132. package/build/dex/platypus/platypus.js +0 -473
  133. package/build/dex/platypus/platypus.js.map +0 -1
  134. package/build/dex/platypus/pool-avax.d.ts +0 -8
  135. package/build/dex/platypus/pool-avax.js +0 -54
  136. package/build/dex/platypus/pool-avax.js.map +0 -1
  137. package/build/dex/platypus/pool-base.d.ts +0 -19
  138. package/build/dex/platypus/pool-base.js +0 -86
  139. package/build/dex/platypus/pool-base.js.map +0 -1
  140. package/build/dex/platypus/pool-pure.d.ts +0 -8
  141. package/build/dex/platypus/pool-pure.js +0 -37
  142. package/build/dex/platypus/pool-pure.js.map +0 -1
  143. package/build/dex/platypus/pool-subscriber.d.ts +0 -14
  144. package/build/dex/platypus/pool-subscriber.js +0 -167
  145. package/build/dex/platypus/pool-subscriber.js.map +0 -1
  146. package/build/dex/platypus/pool.d.ts +0 -8
  147. package/build/dex/platypus/pool.js +0 -58
  148. package/build/dex/platypus/pool.js.map +0 -1
  149. package/build/dex/platypus/types.d.ts +0 -92
  150. package/build/dex/platypus/types.js +0 -10
  151. package/build/dex/platypus/types.js.map +0 -1
  152. package/build/dex/quickswap/spiritswap-v3.d.ts +0 -6
  153. package/build/dex/quickswap/spiritswap-v3.js +0 -19
  154. package/build/dex/quickswap/spiritswap-v3.js.map +0 -1
  155. package/build/dex/smardex/config.d.ts +0 -4
  156. package/build/dex/smardex/config.js +0 -64
  157. package/build/dex/smardex/config.js.map +0 -1
  158. package/build/dex/smardex/constants.d.ts +0 -18
  159. package/build/dex/smardex/constants.js +0 -33
  160. package/build/dex/smardex/constants.js.map +0 -1
  161. package/build/dex/smardex/sdk/constants.d.ts +0 -6
  162. package/build/dex/smardex/sdk/constants.js +0 -13
  163. package/build/dex/smardex/sdk/constants.js.map +0 -1
  164. package/build/dex/smardex/sdk/core.d.ts +0 -113
  165. package/build/dex/smardex/sdk/core.js +0 -499
  166. package/build/dex/smardex/sdk/core.js.map +0 -1
  167. package/build/dex/smardex/sdk/errors.d.ts +0 -15
  168. package/build/dex/smardex/sdk/errors.js +0 -22
  169. package/build/dex/smardex/sdk/errors.js.map +0 -1
  170. package/build/dex/smardex/sdk/types.d.ts +0 -62
  171. package/build/dex/smardex/sdk/types.js +0 -3
  172. package/build/dex/smardex/sdk/types.js.map +0 -1
  173. package/build/dex/smardex/sdk/utils.d.ts +0 -44
  174. package/build/dex/smardex/sdk/utils.js +0 -133
  175. package/build/dex/smardex/sdk/utils.js.map +0 -1
  176. package/build/dex/smardex/smardex-event-pool.d.ts +0 -28
  177. package/build/dex/smardex/smardex-event-pool.js +0 -119
  178. package/build/dex/smardex/smardex-event-pool.js.map +0 -1
  179. package/build/dex/smardex/smardex.d.ts +0 -65
  180. package/build/dex/smardex/smardex.js +0 -519
  181. package/build/dex/smardex/smardex.js.map +0 -1
  182. package/build/dex/smardex/types.d.ts +0 -55
  183. package/build/dex/smardex/types.js +0 -3
  184. package/build/dex/smardex/types.js.map +0 -1
  185. package/build/dex/solidly/forks-override/cone.d.ts +0 -22
  186. package/build/dex/solidly/forks-override/cone.js +0 -53
  187. package/build/dex/solidly/forks-override/cone.js.map +0 -1
  188. package/build/dex/solidly/forks-override/solisnek.d.ts +0 -8
  189. package/build/dex/solidly/forks-override/solisnek.js +0 -15
  190. package/build/dex/solidly/forks-override/solisnek.js.map +0 -1
  191. package/build/dex/swaap-v1/config.d.ts +0 -17
  192. package/build/dex/swaap-v1/config.js +0 -56
  193. package/build/dex/swaap-v1/config.js.map +0 -1
  194. package/build/dex/swaap-v1/constants.d.ts +0 -6
  195. package/build/dex/swaap-v1/constants.js +0 -17
  196. package/build/dex/swaap-v1/constants.js.map +0 -1
  197. package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +0 -25
  198. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +0 -62
  199. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +0 -1
  200. package/build/dex/swaap-v1/libraries/Const.d.ts +0 -18
  201. package/build/dex/swaap-v1/libraries/Const.js +0 -26
  202. package/build/dex/swaap-v1/libraries/Const.js.map +0 -1
  203. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +0 -77
  204. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +0 -316
  205. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +0 -1
  206. package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +0 -75
  207. package/build/dex/swaap-v1/libraries/LogExpMath.js +0 -418
  208. package/build/dex/swaap-v1/libraries/LogExpMath.js.map +0 -1
  209. package/build/dex/swaap-v1/libraries/MathMMM.d.ts +0 -185
  210. package/build/dex/swaap-v1/libraries/MathMMM.js +0 -453
  211. package/build/dex/swaap-v1/libraries/MathMMM.js.map +0 -1
  212. package/build/dex/swaap-v1/libraries/Num.d.ts +0 -31
  213. package/build/dex/swaap-v1/libraries/Num.js +0 -167
  214. package/build/dex/swaap-v1/libraries/Num.js.map +0 -1
  215. package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +0 -23
  216. package/build/dex/swaap-v1/libraries/PoolQuotations.js +0 -131
  217. package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +0 -1
  218. package/build/dex/swaap-v1/libraries/Struct.d.ts +0 -56
  219. package/build/dex/swaap-v1/libraries/Struct.js +0 -3
  220. package/build/dex/swaap-v1/libraries/Struct.js.map +0 -1
  221. package/build/dex/swaap-v1/swaap-v1-pool.d.ts +0 -45
  222. package/build/dex/swaap-v1/swaap-v1-pool.js +0 -656
  223. package/build/dex/swaap-v1/swaap-v1-pool.js.map +0 -1
  224. package/build/dex/swaap-v1/swaap-v1.d.ts +0 -62
  225. package/build/dex/swaap-v1/swaap-v1.js +0 -379
  226. package/build/dex/swaap-v1/swaap-v1.js.map +0 -1
  227. package/build/dex/swaap-v1/types.d.ts +0 -106
  228. package/build/dex/swaap-v1/types.js +0 -9
  229. package/build/dex/swaap-v1/types.js.map +0 -1
  230. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -16
  231. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -16
  232. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -16
  233. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -16
  234. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -16
  235. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -16
  236. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -16
  237. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -16
  238. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -9
  239. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -9
  240. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -9
  241. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-eth-steth.json +0 -9
  242. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-steth-eth.json +0 -9
  243. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -9
  244. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-eth-usdc.json +0 -9
  245. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-eth.json +0 -9
  246. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-usdt.json +0 -9
  247. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -12
  248. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -7
  249. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -7
  250. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -7
  251. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -7
  252. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -12
  253. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-eth-usdc.json +0 -7
  254. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-usdc-eth.json +0 -7
  255. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -78
  256. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -81
  257. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -78
  258. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -78
  259. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -81
  260. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -81
  261. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -81
  262. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -81
  263. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -64
  264. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -85
  265. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -64
  266. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-eth-steth.json +0 -52
  267. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-steth-eth.json +0 -52
  268. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -52
  269. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-eth-usdc.json +0 -55
  270. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-eth.json +0 -55
  271. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-usdt.json +0 -55
  272. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -23
  273. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -37
  274. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -23
  275. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -23
  276. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -51
  277. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-univ3-usdt-dai-eth.json +0 -58
  278. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -23
  279. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -23
  280. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -9
  281. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -16
  282. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -23
  283. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -12
  284. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -7
  285. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -12
  286. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -12
  287. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -7
  288. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-univ3-usdt-dai-eth.json +0 -7
  289. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -7
  290. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -7
  291. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -7
  292. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -7
  293. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -130
  294. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -136
  295. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -100
  296. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -100
  297. package/build/executor/fixtures/executor02/routes/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -166
  298. package/build/executor/fixtures/executor02/routes/price-route-multiswap-univ3-usdt-dai-eth.json +0 -190
  299. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -114
  300. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -114
  301. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -55
  302. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -73
  303. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -82
@@ -62,16 +62,13 @@ import { assert, DeepReadonly } from 'ts-essentials';
62
62
  import { uniswapV3Math } from './contract-math/uniswap-v3-math';
63
63
  import { Contract } from 'web3-eth-contract';
64
64
  import { AbiItem } from 'web3-utils';
65
- import { BalanceRequest, getBalances } from '../../lib/tokens/balancer-fetcher';
66
- import {
67
- AssetType,
68
- DEFAULT_ID_ERC20,
69
- DEFAULT_ID_ERC20_AS_STRING,
70
- } from '../../lib/tokens/types';
71
65
  import { OptimalSwapExchange } from '@paraswap/core';
72
66
  import { OnPoolCreatedCallback, UniswapV3Factory } from './uniswap-v3-factory';
73
67
  import { hexConcat, hexlify, hexZeroPad, hexValue } from 'ethers/lib/utils';
74
68
  import { extractReturnAmountPosition } from '../../executor/utils';
69
+ import { getBalanceERC20 } from '../../lib/tokens/utils';
70
+ import { MultiCallParams } from '../../lib/multi-wrapper';
71
+ import { uint256ToBigInt } from '../../lib/decoders';
75
72
 
76
73
  type PoolPairsInfo = {
77
74
  token0: Address;
@@ -494,47 +491,13 @@ export class UniswapV3
494
491
  amounts: bigint[],
495
492
  side: SwapSide,
496
493
  pools: UniswapV3EventPool[],
497
- states: PoolState[],
494
+ blockNumber?: number,
498
495
  ): Promise<ExchangePrices<UniswapV3Data> | null> {
499
496
  if (pools.length === 0) {
500
497
  return null;
501
498
  }
502
499
  this.logger.warn(`fallback to rpc for ${pools.length} pool(s)`);
503
500
 
504
- const requests = pools.map<BalanceRequest>(
505
- pool => ({
506
- owner: pool.poolAddress,
507
- asset: side == SwapSide.SELL ? from.address : to.address,
508
- assetType: AssetType.ERC20,
509
- ids: [
510
- {
511
- id: DEFAULT_ID_ERC20,
512
- spenders: [],
513
- },
514
- ],
515
- }),
516
- [],
517
- );
518
-
519
- const balances = await getBalances(this.dexHelper.multiWrapper, requests);
520
-
521
- pools = pools.filter((pool, index) => {
522
- const balance = balances[index].amounts[DEFAULT_ID_ERC20_AS_STRING];
523
- if (balance >= amounts[amounts.length - 1]) {
524
- return true;
525
- }
526
- this.logger.warn(
527
- `[${this.network}][${pool.parentName}] have no balance ${pool.poolAddress} ${from.address} ${to.address}. (Balance: ${balance})`,
528
- );
529
- return false;
530
- });
531
-
532
- pools.forEach(pool => {
533
- this.logger.warn(
534
- `[${this.network}][${pool.parentName}] fallback to rpc for ${pool.name}`,
535
- );
536
- });
537
-
538
501
  const unitVolume = getBigIntPow(
539
502
  (side === SwapSide.SELL ? from : to).decimals,
540
503
  );
@@ -549,87 +512,103 @@ export class UniswapV3
549
512
  ),
550
513
  );
551
514
 
552
- const calldata = pools.map(pool =>
553
- _amounts.map(_amount => ({
554
- target: this.config.quoter,
555
- gasLimit: UNISWAPV3_QUOTE_GASLIMIT,
556
- callData:
557
- side === SwapSide.SELL
558
- ? this.quoterIface.encodeFunctionData('quoteExactInputSingle', [
559
- [
560
- from.address,
561
- to.address,
562
- _amount.toString(),
563
- pool.feeCodeAsString,
564
- 0, //sqrtPriceLimitX96
565
- ],
566
- ])
567
- : this.quoterIface.encodeFunctionData('quoteExactOutputSingle', [
568
- [
569
- from.address,
570
- to.address,
571
- _amount.toString(),
572
- pool.feeCodeAsString,
573
- 0, //sqrtPriceLimitX96
574
- ],
575
- ]),
576
- })),
515
+ // for each pool:
516
+ // 1 balanceOf call
517
+ // {amounts.length quote calls
518
+ const calldata: MultiCallParams<bigint>[] = pools
519
+ .map(pool => {
520
+ const balanceCall = {
521
+ target: side == SwapSide.SELL ? from.address : to.address,
522
+ decodeFunction: uint256ToBigInt,
523
+ callData: getBalanceERC20(pool.poolAddress),
524
+ };
525
+
526
+ const quoteCalls = _amounts.map(_amount => ({
527
+ target: this.config.quoter,
528
+ callData:
529
+ side === SwapSide.SELL
530
+ ? this.quoterIface.encodeFunctionData('quoteExactInputSingle', [
531
+ [
532
+ from.address,
533
+ to.address,
534
+ _amount.toString(),
535
+ pool.feeCodeAsString,
536
+ 0, //sqrtPriceLimitX96
537
+ ],
538
+ ])
539
+ : this.quoterIface.encodeFunctionData('quoteExactOutputSingle', [
540
+ [
541
+ from.address,
542
+ to.address,
543
+ _amount.toString(),
544
+ pool.feeCodeAsString,
545
+ 0, //sqrtPriceLimitX96
546
+ ],
547
+ ]),
548
+ decodeFunction: uint256ToBigInt,
549
+ }));
550
+
551
+ return [balanceCall, ...quoteCalls];
552
+ })
553
+ .flat();
554
+
555
+ const data = await this.dexHelper.multiWrapper.aggregate(
556
+ calldata,
557
+ blockNumber,
577
558
  );
578
559
 
579
- const data = await this.uniswapMulti.methods
580
- .multicall(calldata.flat())
581
- .call();
560
+ let i = 0;
582
561
 
583
- const decode = (j: number): bigint => {
584
- if (!data.returnData[j].success) {
585
- return 0n;
586
- }
587
- const decoded = defaultAbiCoder.decode(
588
- ['uint256'],
589
- data.returnData[j].returnData,
590
- );
591
- return BigInt(decoded[0].toString());
592
- };
562
+ return pools
563
+ .map((pool, index) => {
564
+ const balance = data[i++];
593
565
 
594
- let i = 0;
595
- const result = pools.map((pool, index) => {
596
- const _rates = _amounts.map(() => decode(i++));
597
- const unit: bigint = _rates[0];
566
+ if (balance < amounts[amounts.length - 1]) {
567
+ this.logger.warn(
568
+ `[${this.network}][${pool.parentName}] have no balance ${pool.poolAddress} ${from.address} ${to.address}. (Balance: ${balance})`,
569
+ );
598
570
 
599
- const prices = interpolate(
600
- _amounts.slice(1),
601
- _rates.slice(1),
602
- amounts,
603
- side,
604
- );
571
+ // move index to the next pool
572
+ i += _amounts.length;
605
573
 
606
- return {
607
- prices,
608
- unit,
609
- data: {
610
- path: [
611
- {
612
- tokenIn: from.address,
613
- tokenOut: to.address,
614
- fee: pool.feeCodeAsString,
615
- currentFee: states[index]?.fee.toString(),
616
- },
617
- ],
618
- exchange: pool.poolAddress,
619
- },
620
- poolIdentifier: this.getPoolIdentifier(
621
- pool.token0,
622
- pool.token1,
623
- pool.feeCode,
624
- pool.tickSpacing,
625
- ),
626
- exchange: this.dexKey,
627
- gasCost: prices.map(p => (p === 0n ? 0 : UNISWAPV3_QUOTE_GASLIMIT)),
628
- poolAddresses: [pool.poolAddress],
629
- };
630
- });
574
+ return null;
575
+ }
631
576
 
632
- return result;
577
+ const _rates = _amounts.map(() => data[i++]);
578
+ const unit: bigint = _rates[0];
579
+
580
+ const prices = interpolate(
581
+ _amounts.slice(1),
582
+ _rates.slice(1),
583
+ amounts,
584
+ side,
585
+ );
586
+
587
+ return {
588
+ prices,
589
+ unit,
590
+ data: {
591
+ path: [
592
+ {
593
+ tokenIn: from.address,
594
+ tokenOut: to.address,
595
+ fee: pool.feeCodeAsString,
596
+ },
597
+ ],
598
+ exchange: pool.poolAddress,
599
+ },
600
+ poolIdentifier: this.getPoolIdentifier(
601
+ pool.token0,
602
+ pool.token1,
603
+ pool.feeCode,
604
+ pool.tickSpacing,
605
+ ),
606
+ exchange: this.dexKey,
607
+ gasCost: prices.map(p => (p === 0n ? 0 : UNISWAPV3_QUOTE_GASLIMIT)),
608
+ poolAddresses: [pool.poolAddress],
609
+ };
610
+ })
611
+ .filter(prices => prices !== null);
633
612
  }
634
613
 
635
614
  protected async getSelectedPools(
@@ -755,7 +734,7 @@ export class UniswapV3
755
734
  amounts,
756
735
  side,
757
736
  this.network === Network.ZKEVM ? [] : poolsToUse.poolWithoutState,
758
- this.network === Network.ZKEVM ? [] : states,
737
+ blockNumber,
759
738
  );
760
739
 
761
740
  const unitAmount = getBigIntPow(
@@ -1,27 +0,0 @@
1
- [
2
- {
3
- "constant": false,
4
- "inputs": [
5
- {
6
- "internalType": "address",
7
- "name": "_reserve",
8
- "type": "address"
9
- },
10
- {
11
- "internalType": "uint256",
12
- "name": "_amount",
13
- "type": "uint256"
14
- },
15
- {
16
- "internalType": "uint16",
17
- "name": "_referralCode",
18
- "type": "uint16"
19
- }
20
- ],
21
- "name": "deposit",
22
- "outputs": [],
23
- "payable": true,
24
- "stateMutability": "payable",
25
- "type": "function"
26
- }
27
- ]