@paraswap/dex-lib 4.1.7-pub-sub → 4.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/.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/vcs.xml +6 -0
  7. package/build/dex/angle-staked-stable/angle-staked-stable.js +2 -1
  8. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -1
  9. package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -1
  10. package/build/dex/balancer-v1/config.js +2 -1
  11. package/build/dex/balancer-v1/config.js.map +1 -1
  12. package/build/dex/generic-rfq/generic-rfq.js +2 -1
  13. package/build/dex/generic-rfq/generic-rfq.js.map +1 -1
  14. package/build/dex/generic-rfq/rate-fetcher.d.ts +1 -4
  15. package/build/dex/generic-rfq/rate-fetcher.js +20 -65
  16. package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
  17. package/build/dex/weth/weth.js +2 -1
  18. package/build/dex/weth/weth.js.map +1 -1
  19. package/build/dex/zerox/index.d.ts +1 -1
  20. package/build/dex/zerox/index.js.map +1 -1
  21. package/build/lib/pub-sub.d.ts +0 -17
  22. package/build/lib/pub-sub.js +4 -84
  23. package/build/lib/pub-sub.js.map +1 -1
  24. package/package.json +1 -1
  25. package/scripts/get-uniswap-v3-dexes.ts +64 -0
  26. package/src/abi/balancer-v3/directionalFeeHook.json +677 -677
  27. package/src/abi/balancer-v3/stableSurgeHook.json +975 -975
  28. package/src/dex/aave-gsm/aave-gsm-gas-estimation.test.ts +32 -0
  29. package/src/dex/aave-v2/aave-v2-gas-estimation.test.ts +28 -0
  30. package/src/dex/aave-v3/aave-v3-gas-estimation.test.ts +66 -0
  31. package/src/dex/aave-v3-stata/aave-v3-stata-gas-estimation.test.ts +41 -0
  32. package/src/dex/aave-v3-stata-v2/aave-v3-stata-v2-gas-estimation.test.ts +41 -0
  33. package/src/dex/angle-staked-stable/angle-staked-stable-gas-estimation.test.ts +29 -0
  34. package/src/dex/angle-staked-stable/angle-staked-stable.ts +2 -1
  35. package/src/dex/angle-transmuter/angle-transmuter-gas-estimation.test.ts +41 -0
  36. package/src/dex/angle-transmuter/angle-transmuter.ts +0 -1
  37. package/src/dex/balancer-v1/balancer-v1-gas-estimation.test.ts +29 -0
  38. package/src/dex/balancer-v1/config.ts +2 -1
  39. package/src/dex/balancer-v2/balancer-v2-gas-estimation.test.ts +98 -0
  40. package/src/dex/balancer-v3/balancer-v3-gas-estimation.test.ts +30 -0
  41. package/src/dex/bancor/bancor-gas-estimation.test.ts +30 -0
  42. package/src/dex/bebop/bebop-gas-estimation.test.ts +30 -0
  43. package/src/dex/concentrator-arusd/concentrator-arusd-gas-estimation.test.ts +29 -0
  44. package/src/dex/curve-v1/curve-v1-gas-estimation.test.ts +29 -0
  45. package/src/dex/curve-v2/curve-v2-gas-estimation.test.ts +29 -0
  46. package/src/dex/fluid-dex/fluid-dex-gas-estimation.test.ts +29 -0
  47. package/src/dex/fx-protocol-rusd/fx-protocol-rusd-gas-estimation.test.ts +29 -0
  48. package/src/dex/generic-rfq/generic-rfq.ts +6 -1
  49. package/src/dex/generic-rfq/rate-fetcher.ts +47 -112
  50. package/src/dex/hashflow/hashflow-gas-estimation.test.ts +30 -0
  51. package/src/dex/idle-dao/idle-dao--gas-estimation.test.ts +30 -0
  52. package/src/dex/lido/lido-gas-estimation.test.ts +29 -0
  53. package/src/dex/lite-psm/lite-psm-gas-estimation.test.ts +34 -0
  54. package/src/dex/maker-psm/maker-psm-gas-estimation.test.ts +34 -0
  55. package/src/dex/maverick-v1/maverick-v1-gas-estimation.test.ts +29 -0
  56. package/src/dex/maverick-v2/maverick-v2-gas-estimation.test.ts +29 -0
  57. package/src/dex/pancakeswap-v3/pancakeswap-v3-gas-estimation.test.ts +29 -0
  58. package/src/dex/polygon-migrator/polygon-migrator-gas-estimation.test.ts +41 -0
  59. package/src/dex/sky-converter/sky-converter-gas-estimation.test.ts +78 -0
  60. package/src/dex/solidly/solidly-gas-estimation.test.ts +29 -0
  61. package/src/dex/solidly-v3/solidly-v3-gas-estimation.test.ts +29 -0
  62. package/src/dex/spark/spark-gas-estimation.test.ts +29 -0
  63. package/src/dex/stader/stader-gas-estimation.test.ts +29 -0
  64. package/src/dex/stkgho/stkgho-gas-estimation.test.ts +29 -0
  65. package/src/dex/swaap-v2/swaap-v2-estimation.test.ts +29 -0
  66. package/src/dex/swell/swell-estimation.test.ts +29 -0
  67. package/src/dex/trader-joe-v2.1/trader-joe-v2.1-gas-estimation.test.ts +29 -0
  68. package/src/dex/uniswap-v2/uniswap-v2-gas-estimation.test.ts +98 -0
  69. package/src/dex/uniswap-v3/uniswap-v3-gas-estimation.test.ts +98 -0
  70. package/src/dex/usual/usual-gas-estimation.test.ts +54 -0
  71. package/src/dex/usual-pp/usual-pp-gas-estimation.test.ts +29 -0
  72. package/src/dex/weth/weth-gas-estimation.test.ts +42 -0
  73. package/src/dex/weth/weth.ts +3 -1
  74. package/src/dex/wombat/wombat-gas-estimation.test.ts +29 -0
  75. package/src/dex/wsteth/wsteth-gas-estimation.test.ts +41 -0
  76. package/src/dex/wusdm/wusdm-gas-estimation.test.ts +41 -0
  77. package/src/lib/pub-sub.ts +3 -107
  78. package/tests/constants-e2e.ts +8 -0
  79. package/tests/tenderly-simulation-new.test.ts +151 -0
  80. package/tests/tenderly-simulation-new.ts +698 -0
  81. package/tests/token-storage-slots.json +532 -0
  82. package/tests/utils-e2e.ts +137 -1
  83. package/build/abi/AaveV1_lending_pool.json +0 -27
  84. package/build/abi/Aave_GSM.json +0 -751
  85. package/build/abi/Balancer.json +0 -257
  86. package/build/abi/BalancerV2.json +0 -1179
  87. package/build/abi/RamsesV2Pool.abi.json +0 -1554
  88. package/build/abi/RamsesV2Quoter.abi.json +0 -274
  89. package/build/abi/USDM.json +0 -807
  90. package/build/abi/UniswapV2Router.json +0 -397
  91. package/build/abi/angle-transmuter/ChainlinkAccessControlledOffchainAggregator.json +0 -1246
  92. package/build/abi/angle-transmuter/ChainlinkEACAggregatorProxy.json +0 -509
  93. package/build/abi/curve-v1/CurveBUSDv2.abi.json +0 -1356
  94. package/build/abi/curve-v1/CurveTokenV1.json +0 -305
  95. package/build/abi/curve-v1/CurveTokenV2.json +0 -318
  96. package/build/abi/curve-v1/CurveV1StableNg.json +0 -1452
  97. package/build/abi/curve-v1/CurveV2Swap.json +0 -700
  98. package/build/abi/curve-v1/FactoryCryptoRegistry.json +0 -316
  99. package/build/abi/curve-v1/FactoryRegistry.json +0 -508
  100. package/build/abi/curve-v1/StableSwapAave.json +0 -1152
  101. package/build/abi/curve-v1/StableSwapBUSD.json +0 -814
  102. package/build/abi/curve-v1/StableSwapCompound.json +0 -814
  103. package/build/abi/curve-v1/StableSwapIDLE.json +0 -1253
  104. package/build/abi/curve-v1/StableSwapPax.json +0 -865
  105. package/build/abi/curve-v1/StableSwapSnow.json +0 -900
  106. package/build/abi/curve-v1/StableSwapUSDN.json +0 -1004
  107. package/build/abi/curve-v1/StableSwapUSDT.json +0 -814
  108. package/build/abi/curve-v1/StableSwapY.json +0 -814
  109. package/build/abi/inception/inception-ineth-pool.json +0 -1062
  110. package/build/abi/inception/inception-ineth.json +0 -609
  111. package/build/abi/inception/inception-ratio-feed.json +0 -329
  112. package/build/abi/inception/inception-vault.json +0 -991
  113. package/build/abi/kyberdmm/kyber-storage.abi.json +0 -824
  114. package/build/abi/kyberdmm.abi.json +0 -1148
  115. package/build/abi/maverick-v2/MaverickV2Quoter.json +0 -278
  116. package/build/abi/nerve/nerve-metapool.json +0 -790
  117. package/build/abi/platypus/asset.json +0 -490
  118. package/build/abi/platypus/avax-pool.json +0 -820
  119. package/build/abi/platypus/oracle.json +0 -119
  120. package/build/abi/platypus/pool.json +0 -677
  121. package/build/abi/smardex/all/smardex-router.json +0 -648
  122. package/build/abi/smardex/layer-1/smardex-factory.json +0 -242
  123. package/build/abi/smardex/layer-1/smardex-pool.json +0 -506
  124. package/build/abi/smardex/layer-2/smardex-factory.json +0 -185
  125. package/build/abi/smardex/layer-2/smardex-pool.json +0 -578
  126. package/build/abi/swaap-v1/pool.json +0 -1346
  127. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  128. package/build/abi/velodrome-slipstream/VelodromeSlipstreamQuoterV2.abi.json +0 -267
  129. package/build/dex/aave-v1/aave-v1.d.ts +0 -34
  130. package/build/dex/aave-v1/aave-v1.js +0 -180
  131. package/build/dex/aave-v1/aave-v1.js.map +0 -1
  132. package/build/dex/aave-v1/config.d.ts +0 -11
  133. package/build/dex/aave-v1/config.js +0 -20
  134. package/build/dex/aave-v1/config.js.map +0 -1
  135. package/build/dex/aave-v1/tokens-mainnet.json +0 -134
  136. package/build/dex/aave-v1/tokens.d.ts +0 -3
  137. package/build/dex/aave-v1/tokens.js +0 -50
  138. package/build/dex/aave-v1/tokens.js.map +0 -1
  139. package/build/dex/aave-v1/types.d.ts +0 -12
  140. package/build/dex/aave-v1/types.js +0 -3
  141. package/build/dex/aave-v1/types.js.map +0 -1
  142. package/build/dex/balancer-v1/balancer-pools.json +0 -33333
  143. package/build/dex/bebop/websocket-fetcher.d.ts +0 -35
  144. package/build/dex/bebop/websocket-fetcher.js +0 -87
  145. package/build/dex/bebop/websocket-fetcher.js.map +0 -1
  146. package/build/dex/idle-dao/idle-dao-pool.d.ts +0 -56
  147. package/build/dex/idle-dao/idle-dao-pool.js +0 -176
  148. package/build/dex/idle-dao/idle-dao-pool.js.map +0 -1
  149. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +0 -16
  150. package/build/dex/idle-dao/idle-dao-pooling-pool.js +0 -57
  151. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +0 -1
  152. package/build/dex/idle-dao/scripts.d.ts +0 -9
  153. package/build/dex/idle-dao/scripts.js +0 -552
  154. package/build/dex/idle-dao/scripts.js.map +0 -1
  155. package/build/dex/inception/config.d.ts +0 -4
  156. package/build/dex/inception/config.js +0 -109
  157. package/build/dex/inception/config.js.map +0 -1
  158. package/build/dex/inception/inception-event-pool.d.ts +0 -16
  159. package/build/dex/inception/inception-event-pool.js +0 -51
  160. package/build/dex/inception/inception-event-pool.js.map +0 -1
  161. package/build/dex/inception/inception-native.d.ts +0 -43
  162. package/build/dex/inception/inception-native.js +0 -131
  163. package/build/dex/inception/inception-native.js.map +0 -1
  164. package/build/dex/inception/inception-pool.d.ts +0 -18
  165. package/build/dex/inception/inception-pool.js +0 -32
  166. package/build/dex/inception/inception-pool.js.map +0 -1
  167. package/build/dex/inception/inception-price-feed.d.ts +0 -19
  168. package/build/dex/inception/inception-price-feed.js +0 -51
  169. package/build/dex/inception/inception-price-feed.js.map +0 -1
  170. package/build/dex/inception/inception.d.ts +0 -43
  171. package/build/dex/inception/inception.js +0 -204
  172. package/build/dex/inception/inception.js.map +0 -1
  173. package/build/dex/inception/tokens.d.ts +0 -9
  174. package/build/dex/inception/tokens.js +0 -28
  175. package/build/dex/inception/tokens.js.map +0 -1
  176. package/build/dex/inception/types.d.ts +0 -22
  177. package/build/dex/inception/types.js +0 -3
  178. package/build/dex/inception/types.js.map +0 -1
  179. package/build/dex/inception/utils.d.ts +0 -6
  180. package/build/dex/inception/utils.js +0 -37
  181. package/build/dex/inception/utils.js.map +0 -1
  182. package/build/dex/platypus/asset.d.ts +0 -14
  183. package/build/dex/platypus/asset.js +0 -97
  184. package/build/dex/platypus/asset.js.map +0 -1
  185. package/build/dex/platypus/config.d.ts +0 -11
  186. package/build/dex/platypus/config.js +0 -69
  187. package/build/dex/platypus/config.js.map +0 -1
  188. package/build/dex/platypus/platypus.d.ts +0 -63
  189. package/build/dex/platypus/platypus.js +0 -473
  190. package/build/dex/platypus/platypus.js.map +0 -1
  191. package/build/dex/platypus/pool-avax.d.ts +0 -8
  192. package/build/dex/platypus/pool-avax.js +0 -54
  193. package/build/dex/platypus/pool-avax.js.map +0 -1
  194. package/build/dex/platypus/pool-base.d.ts +0 -19
  195. package/build/dex/platypus/pool-base.js +0 -86
  196. package/build/dex/platypus/pool-base.js.map +0 -1
  197. package/build/dex/platypus/pool-pure.d.ts +0 -8
  198. package/build/dex/platypus/pool-pure.js +0 -37
  199. package/build/dex/platypus/pool-pure.js.map +0 -1
  200. package/build/dex/platypus/pool-subscriber.d.ts +0 -14
  201. package/build/dex/platypus/pool-subscriber.js +0 -167
  202. package/build/dex/platypus/pool-subscriber.js.map +0 -1
  203. package/build/dex/platypus/pool.d.ts +0 -8
  204. package/build/dex/platypus/pool.js +0 -58
  205. package/build/dex/platypus/pool.js.map +0 -1
  206. package/build/dex/platypus/types.d.ts +0 -92
  207. package/build/dex/platypus/types.js +0 -10
  208. package/build/dex/platypus/types.js.map +0 -1
  209. package/build/dex/quickswap/spiritswap-v3.d.ts +0 -6
  210. package/build/dex/quickswap/spiritswap-v3.js +0 -19
  211. package/build/dex/quickswap/spiritswap-v3.js.map +0 -1
  212. package/build/dex/smardex/config.d.ts +0 -4
  213. package/build/dex/smardex/config.js +0 -64
  214. package/build/dex/smardex/config.js.map +0 -1
  215. package/build/dex/smardex/constants.d.ts +0 -18
  216. package/build/dex/smardex/constants.js +0 -33
  217. package/build/dex/smardex/constants.js.map +0 -1
  218. package/build/dex/smardex/sdk/constants.d.ts +0 -6
  219. package/build/dex/smardex/sdk/constants.js +0 -13
  220. package/build/dex/smardex/sdk/constants.js.map +0 -1
  221. package/build/dex/smardex/sdk/core.d.ts +0 -113
  222. package/build/dex/smardex/sdk/core.js +0 -499
  223. package/build/dex/smardex/sdk/core.js.map +0 -1
  224. package/build/dex/smardex/sdk/errors.d.ts +0 -15
  225. package/build/dex/smardex/sdk/errors.js +0 -22
  226. package/build/dex/smardex/sdk/errors.js.map +0 -1
  227. package/build/dex/smardex/sdk/types.d.ts +0 -62
  228. package/build/dex/smardex/sdk/types.js +0 -3
  229. package/build/dex/smardex/sdk/types.js.map +0 -1
  230. package/build/dex/smardex/sdk/utils.d.ts +0 -44
  231. package/build/dex/smardex/sdk/utils.js +0 -133
  232. package/build/dex/smardex/sdk/utils.js.map +0 -1
  233. package/build/dex/smardex/smardex-event-pool.d.ts +0 -28
  234. package/build/dex/smardex/smardex-event-pool.js +0 -119
  235. package/build/dex/smardex/smardex-event-pool.js.map +0 -1
  236. package/build/dex/smardex/smardex.d.ts +0 -65
  237. package/build/dex/smardex/smardex.js +0 -519
  238. package/build/dex/smardex/smardex.js.map +0 -1
  239. package/build/dex/smardex/types.d.ts +0 -55
  240. package/build/dex/smardex/types.js +0 -3
  241. package/build/dex/smardex/types.js.map +0 -1
  242. package/build/dex/solidly/forks-override/cone.d.ts +0 -22
  243. package/build/dex/solidly/forks-override/cone.js +0 -53
  244. package/build/dex/solidly/forks-override/cone.js.map +0 -1
  245. package/build/dex/solidly/forks-override/solisnek.d.ts +0 -8
  246. package/build/dex/solidly/forks-override/solisnek.js +0 -15
  247. package/build/dex/solidly/forks-override/solisnek.js.map +0 -1
  248. package/build/dex/swaap-v1/config.d.ts +0 -17
  249. package/build/dex/swaap-v1/config.js +0 -56
  250. package/build/dex/swaap-v1/config.js.map +0 -1
  251. package/build/dex/swaap-v1/constants.d.ts +0 -6
  252. package/build/dex/swaap-v1/constants.js +0 -17
  253. package/build/dex/swaap-v1/constants.js.map +0 -1
  254. package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +0 -25
  255. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +0 -62
  256. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +0 -1
  257. package/build/dex/swaap-v1/libraries/Const.d.ts +0 -18
  258. package/build/dex/swaap-v1/libraries/Const.js +0 -26
  259. package/build/dex/swaap-v1/libraries/Const.js.map +0 -1
  260. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +0 -77
  261. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +0 -316
  262. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +0 -1
  263. package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +0 -75
  264. package/build/dex/swaap-v1/libraries/LogExpMath.js +0 -418
  265. package/build/dex/swaap-v1/libraries/LogExpMath.js.map +0 -1
  266. package/build/dex/swaap-v1/libraries/MathMMM.d.ts +0 -185
  267. package/build/dex/swaap-v1/libraries/MathMMM.js +0 -453
  268. package/build/dex/swaap-v1/libraries/MathMMM.js.map +0 -1
  269. package/build/dex/swaap-v1/libraries/Num.d.ts +0 -31
  270. package/build/dex/swaap-v1/libraries/Num.js +0 -167
  271. package/build/dex/swaap-v1/libraries/Num.js.map +0 -1
  272. package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +0 -23
  273. package/build/dex/swaap-v1/libraries/PoolQuotations.js +0 -131
  274. package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +0 -1
  275. package/build/dex/swaap-v1/libraries/Struct.d.ts +0 -56
  276. package/build/dex/swaap-v1/libraries/Struct.js +0 -3
  277. package/build/dex/swaap-v1/libraries/Struct.js.map +0 -1
  278. package/build/dex/swaap-v1/swaap-v1-pool.d.ts +0 -45
  279. package/build/dex/swaap-v1/swaap-v1-pool.js +0 -656
  280. package/build/dex/swaap-v1/swaap-v1-pool.js.map +0 -1
  281. package/build/dex/swaap-v1/swaap-v1.d.ts +0 -62
  282. package/build/dex/swaap-v1/swaap-v1.js +0 -379
  283. package/build/dex/swaap-v1/swaap-v1.js.map +0 -1
  284. package/build/dex/swaap-v1/types.d.ts +0 -106
  285. package/build/dex/swaap-v1/types.js +0 -9
  286. package/build/dex/swaap-v1/types.js.map +0 -1
  287. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -16
  288. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -16
  289. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -16
  290. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -16
  291. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -16
  292. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -16
  293. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -16
  294. package/build/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -16
  295. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -9
  296. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -9
  297. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -9
  298. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-eth-steth.json +0 -9
  299. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-steth-eth.json +0 -9
  300. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -9
  301. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-eth-usdc.json +0 -9
  302. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-eth.json +0 -9
  303. package/build/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-usdt.json +0 -9
  304. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -12
  305. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -7
  306. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -7
  307. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -7
  308. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -7
  309. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -12
  310. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-eth-usdc.json +0 -7
  311. package/build/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-usdc-eth.json +0 -7
  312. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -78
  313. package/build/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -81
  314. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -78
  315. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -78
  316. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -81
  317. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -81
  318. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -81
  319. package/build/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -81
  320. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -64
  321. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -85
  322. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -64
  323. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-eth-steth.json +0 -52
  324. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-steth-eth.json +0 -52
  325. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -52
  326. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-eth-usdc.json +0 -55
  327. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-eth.json +0 -55
  328. package/build/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-usdt.json +0 -55
  329. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -23
  330. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -37
  331. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -23
  332. package/build/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -23
  333. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -51
  334. package/build/executor/fixtures/executor02/exchange-params/price-route-multiswap-univ3-usdt-dai-eth.json +0 -58
  335. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -23
  336. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -23
  337. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -9
  338. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -16
  339. package/build/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -23
  340. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -12
  341. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -7
  342. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -12
  343. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -12
  344. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -7
  345. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-univ3-usdt-dai-eth.json +0 -7
  346. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -7
  347. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -7
  348. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -7
  349. package/build/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -7
  350. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -130
  351. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -136
  352. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -100
  353. package/build/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -100
  354. package/build/executor/fixtures/executor02/routes/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -166
  355. package/build/executor/fixtures/executor02/routes/price-route-multiswap-univ3-usdt-dai-eth.json +0 -190
  356. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -114
  357. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -114
  358. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -55
  359. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -73
  360. package/build/executor/fixtures/executor02/routes/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -82
@@ -0,0 +1,41 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('wstETH Gas Estimation', () => {
9
+ const dexKey = 'wstETH';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const STETH = Tokens[network]['STETH'];
14
+ const wstETH = Tokens[network]['wstETH'];
15
+ const amount = 1000000000000000000n;
16
+
17
+ it('wrap', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ STETH,
21
+ wstETH,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+
29
+ it('unwrap', async () => {
30
+ await testGasEstimation(
31
+ network,
32
+ wstETH,
33
+ STETH,
34
+ amount,
35
+ SwapSide.SELL,
36
+ dexKey,
37
+ ContractMethodV6.swapExactAmountIn,
38
+ );
39
+ });
40
+ });
41
+ });
@@ -0,0 +1,41 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('wUSDM Gas Estimation', () => {
9
+ const dexKey = 'wUSDM';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const wUSDM = Tokens[network]['wUSDM'];
14
+ const USDM = Tokens[network]['USDM'];
15
+ const amount = 500n;
16
+
17
+ it('deposit', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ USDM,
21
+ wUSDM,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+
29
+ it('redeem', async () => {
30
+ await testGasEstimation(
31
+ network,
32
+ wUSDM,
33
+ USDM,
34
+ amount,
35
+ SwapSide.SELL,
36
+ dexKey,
37
+ ContractMethodV6.swapExactAmountIn,
38
+ );
39
+ });
40
+ });
41
+ });
@@ -11,104 +11,6 @@ type KeyValuePubSubMsg = {
11
11
 
12
12
  type SetPubSubMsg = string[];
13
13
 
14
- export class ExpKeyValuePubSub {
15
- channel: string;
16
- network: Network;
17
- localCache: NodeCache = new NodeCache();
18
- logPrefix = 'ExpKeyValuePubSub';
19
-
20
- logger: Logger;
21
-
22
- constructor(
23
- private dexHelper: IDexHelper,
24
- private dexKey: string,
25
- channel: string,
26
- private defaultValue?: any,
27
- private defaultTTL?: number,
28
- ) {
29
- this.network = this.dexHelper.config.data.network;
30
- this.channel = `${this.network}_${this.dexKey}_${channel}`;
31
-
32
- this.logger = this.dexHelper.getLogger(`ExpKeyValuePubSub_${this.channel}`);
33
- }
34
-
35
- subscribe() {
36
- this.logger.info(`Subscribing to ${this.channel}`);
37
-
38
- this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
39
- const decodedMsg = JSON.parse(msg) as KeyValuePubSubMsg;
40
- this.logger.info(`${this.logPrefix} Received msg: '${msg}'`);
41
- this.handleSubscription(decodedMsg);
42
- });
43
- }
44
-
45
- publish(data: Record<string, unknown>, ttl: number) {
46
- const expiresAt = Math.round(Date.now() / 1000) + ttl;
47
- this.logger.info(
48
- `${this.logPrefix} Publishing msg: '${JSON.stringify({
49
- expiresAt,
50
- data,
51
- })}'`,
52
- );
53
- this.dexHelper.cache.publish(
54
- this.channel,
55
- JSON.stringify({ expiresAt, data }),
56
- );
57
- }
58
-
59
- handleSubscription(msg: KeyValuePubSubMsg) {
60
- const { expiresAt, data } = msg;
61
-
62
- const now = Math.round(Date.now() / 1000);
63
- // calculating ttl as message might come with the delay
64
- const ttl = expiresAt - now;
65
-
66
- if (ttl > 0) {
67
- const keys = Object.keys(data);
68
- for (const key of keys) {
69
- this.localCache.set(key, data[key], ttl);
70
- }
71
- } else {
72
- this.logger.error('Message has expired', {
73
- now,
74
- expiresAt,
75
- diffInSeconds: now - expiresAt,
76
- keys: Object.keys(data),
77
- });
78
- }
79
- }
80
-
81
- async getAndCache<T>(key: string): Promise<T | null> {
82
- const localValue = this.localCache.get<T>(key);
83
-
84
- this.logger.info(
85
- `${this.logPrefix} Getting and caching key: ${key}, localValue: ${localValue}`,
86
- );
87
-
88
- if (localValue) {
89
- return localValue;
90
- }
91
-
92
- const [value, ttl] = await Promise.all([
93
- this.dexHelper.cache.get(this.dexKey, this.network, key),
94
- this.dexHelper.cache.ttl(this.dexKey, this.network, key),
95
- ]);
96
-
97
- if (value && ttl > 0) {
98
- const parsedValue = JSON.parse(value);
99
- this.localCache.set(key, parsedValue, ttl);
100
- return parsedValue;
101
- }
102
-
103
- if (this.defaultValue && this.defaultTTL && this.defaultTTL > 0) {
104
- this.localCache.set(key, this.defaultValue, this.defaultTTL);
105
- return this.defaultValue;
106
- }
107
-
108
- return null;
109
- }
110
- }
111
-
112
14
  export class ExpStringPubSub {
113
15
  channel: string;
114
16
  network: Network;
@@ -276,7 +178,6 @@ export class NonExpSetPubSub {
276
178
  channel: string;
277
179
  network: Network;
278
180
  set = new Set<string>();
279
- logPrefix = 'NonExpSetPubSub';
280
181
 
281
182
  logger: Logger;
282
183
 
@@ -292,9 +193,7 @@ export class NonExpSetPubSub {
292
193
  }
293
194
 
294
195
  async initializeAndSubscribe(initialSet: string[]) {
295
- this.logger.info(
296
- `${this.logPrefix} initializeAndSubscribe with ${initialSet}`,
297
- );
196
+ this.logger.info(`initializeAndSubscribe with ${initialSet}`);
298
197
 
299
198
  for (const member of initialSet) {
300
199
  this.set.add(member);
@@ -308,22 +207,19 @@ export class NonExpSetPubSub {
308
207
 
309
208
  this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
310
209
  const decodedMsg = JSON.parse(msg) as SetPubSubMsg;
311
- this.logger.info(
312
- `${this.logPrefix} Received subscription msg: '${decodedMsg}'`,
313
- );
314
210
  this.handleSubscription(decodedMsg);
315
211
  });
316
212
  }
317
213
 
318
214
  publish(msg: SetPubSubMsg) {
319
215
  if (msg.length > 0) {
320
- this.logger.info(`${this.logPrefix} Publishing msg: '${msg}'`);
216
+ this.logger.info(`Publishing msg: '${msg}'`);
321
217
  this.dexHelper.cache.publish(this.channel, JSON.stringify(msg));
322
218
  }
323
219
  }
324
220
 
325
221
  handleSubscription(set: SetPubSubMsg) {
326
- this.logger.info(`${this.logPrefix} Received subscription msg: '${set}'`);
222
+ this.logger.info(`Received subscription msg: '${set}'`);
327
223
 
328
224
  for (const key of set) {
329
225
  this.set.add(key);
@@ -591,6 +591,14 @@ export const Tokens: {
591
591
  decimals: 6,
592
592
  symbol: 'USUALM',
593
593
  },
594
+ stataEthWETH: {
595
+ address: '0x252231882FB38481497f3C767469106297c8d93b',
596
+ decimals: 18,
597
+ },
598
+ waEthWETH: {
599
+ address: '0x0bfc9d54Fc184518A81162F8fB99c2eACa081202',
600
+ decimals: 18,
601
+ },
594
602
  },
595
603
  [Network.POLYGON]: {
596
604
  jGBP: {
@@ -0,0 +1,151 @@
1
+ import { ethers } from 'ethers';
2
+ import { TenderlySimulatorNew } from './tenderly-simulation-new';
3
+
4
+ describe('Tenderly', () => {
5
+ const tenderly = TenderlySimulatorNew.getInstance();
6
+ const USDC = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48';
7
+ const USDT = '0xdac17f958d2ee523a2206206994597c13d831ec7';
8
+ const account = '0x89f53c184ed91cd333fdec0eceeddcaea0cc28cf';
9
+ const spender = '0x6a000f20005980200259b80c5102003040001068';
10
+
11
+ describe('calculateAddressBalanceSlot', () => {
12
+ it('should calculate account balance storage slot', () => {
13
+ const balanceOfSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [9]); // usdc's `balanceOf` mapping slot
14
+ // https://dashboard.tenderly.co/paraswap/paraswap/simulator/d7964910-d8ce-446b-a347-c4f1da1acead/debugger?trace=0.2.0.0
15
+ const expected =
16
+ '0x8cef03c2b7574a38d9a9e8dd69980240d41d70485643f407de33055936c48f97';
17
+ const calculated = tenderly.calculateAddressBalanceSlot(
18
+ balanceOfSlot,
19
+ account,
20
+ );
21
+ // assert
22
+ expect(calculated).toEqual(expected);
23
+ });
24
+ });
25
+
26
+ describe('calculateAddressAllowanceSlots', () => {
27
+ it('should calculate account balance storage slot', () => {
28
+ const allowanceSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [10]); // usdc's `allowance` mapping slot
29
+ // https://dashboard.tenderly.co/paraswap/paraswap/simulator/e2a6cad1-4a82-4ba7-8c3e-ef097315542c/debugger?trace=0.2.0
30
+ const expected =
31
+ '0x371a34ab690ce2826b137a25bfdaf43d0b93c819878de2df8877f1fb50ffb206';
32
+ const calculated = tenderly.calculateAddressAllowanceSlot(
33
+ allowanceSlot,
34
+ account,
35
+ spender,
36
+ );
37
+ // assert
38
+ expect(calculated).toEqual(expected);
39
+ });
40
+ });
41
+
42
+ describe('buildBalanceOfSimulationRequest', () => {
43
+ it('should build `balanceOf` simulation request', () => {
44
+ const request = tenderly.buildBalanceOfSimulationRequest(
45
+ 1,
46
+ USDC,
47
+ account,
48
+ );
49
+
50
+ const expectedCallData = ethers.utils.hexConcat([
51
+ '0x70a08231', // selector
52
+ ethers.utils.defaultAbiCoder.encode(['address'], [account]),
53
+ ]);
54
+
55
+ expect(request.data).toEqual(expectedCallData);
56
+ });
57
+ });
58
+
59
+ describe('buildAllowanceSimulationRequest', () => {
60
+ it('should build `allowance` simulation request', () => {
61
+ const request = tenderly.buildAllowanceSimulationRequest(
62
+ 1,
63
+ USDC,
64
+ account,
65
+ spender,
66
+ );
67
+
68
+ const expectedCallData = ethers.utils.hexConcat([
69
+ '0xdd62ed3e', // selector
70
+ ethers.utils.defaultAbiCoder.encode(
71
+ ['address', 'address'],
72
+ [account, spender],
73
+ ),
74
+ ]);
75
+ // assert
76
+ expect(request.data).toEqual(expectedCallData);
77
+ });
78
+ });
79
+
80
+ describe('findTokenBalanceOfSlot', () => {
81
+ it('should find Mainnet USDC `balanceOf` storage slot', async () => {
82
+ const expectedSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [9]);
83
+ const foundSlot = await tenderly.findTokenBalanceOfSlot(1, USDC);
84
+ // assert
85
+ expect(foundSlot.slot).toEqual(expectedSlot);
86
+ });
87
+
88
+ it('should find Mainnet USDT `balanceOf` storage slot', async () => {
89
+ const expectedSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [2]);
90
+ const foundSlot = await tenderly.findTokenBalanceOfSlot(1, USDT);
91
+ // assert
92
+ expect(foundSlot.slot).toEqual(expectedSlot);
93
+ });
94
+
95
+ it('should find Mainnet stETH `balanceOf` storage slot', async () => {
96
+ const expectedSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [0]);
97
+ const foundSlot = await tenderly.findTokenBalanceOfSlot(
98
+ 1,
99
+ '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', // Lido's `stETH`
100
+ );
101
+ // assert
102
+ expect(foundSlot.slot).toEqual(expectedSlot);
103
+ });
104
+
105
+ it('should find Mainnet aEthDai `balanceOf` storage slot', async () => {
106
+ const expectedSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [52]);
107
+ const foundSlot = await tenderly.findTokenBalanceOfSlot(
108
+ 1,
109
+ '0x018008bfb33d285247A21d44E50697654f754e63', // Aave's `aEthDai`
110
+ );
111
+ // assert
112
+ expect(foundSlot.slot).toEqual(expectedSlot);
113
+ });
114
+ });
115
+
116
+ describe('findTokenAllowanceSlot', () => {
117
+ it('should find Mainnet USDC `allowance` storage slot', async () => {
118
+ const expectedSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [10]);
119
+ const foundSlot = await tenderly.findTokenAllowanceSlot(1, USDC);
120
+ // assert
121
+ expect(foundSlot.slot).toEqual(expectedSlot);
122
+ });
123
+
124
+ it('should find Mainnet USDT `allowance` storage slot', async () => {
125
+ const expectedSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [5]);
126
+ const foundSlot = await tenderly.findTokenAllowanceSlot(1, USDT);
127
+ // assert
128
+ expect(foundSlot.slot).toEqual(expectedSlot);
129
+ });
130
+
131
+ it('should find Mainnet stETH `allowance` storage slot', async () => {
132
+ const expectedSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [1]);
133
+ const foundSlot = await tenderly.findTokenAllowanceSlot(
134
+ 1,
135
+ '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', // Lido's `stETH`
136
+ );
137
+ // assert
138
+ expect(foundSlot.slot).toEqual(expectedSlot);
139
+ });
140
+
141
+ it('should find Mainnet aEthDai `allowance` storage slot', async () => {
142
+ const expectedSlot = ethers.utils.defaultAbiCoder.encode(['uint'], [53]);
143
+ const foundSlot = await tenderly.findTokenAllowanceSlot(
144
+ 1,
145
+ '0x018008bfb33d285247A21d44E50697654f754e63', // Aave's `aEthDai`
146
+ );
147
+ // assert
148
+ expect(foundSlot.slot).toEqual(expectedSlot);
149
+ });
150
+ });
151
+ });