@paraswap/dex-lib 3.3.0 → 3.3.1-return-amount-pos.0

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 (513) 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/README.md +12 -0
  10. package/build/abi/AugustusV6.abi.json +395 -0
  11. package/build/abi/algebra/AlgebraPool.abi.json +727 -0
  12. package/build/abi/curve-v1/StableSwapFRXETH.json +889 -0
  13. package/build/abi/curve-v1/StableSwapWBETH.json +1223 -0
  14. package/build/abi/{wombat/pool.json → integral/relayer.json} +446 -587
  15. package/build/abi/sushiswap-v3/QuoterV2.json +267 -0
  16. package/build/abi/sushiswap-v3/RouterProcessor3.json +289 -0
  17. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +193 -0
  18. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  19. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  20. package/build/abi/wBETH.json +1527 -0
  21. package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
  22. package/build/abi/woo-fi/WooPP.abi.json +548 -0
  23. package/build/abi/woo-fi/Wooracle.abi.json +260 -0
  24. package/build/dex/aave-v1/aave-v1.js +1 -0
  25. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  26. package/build/dex/aave-v2/aave-v2.js +1 -0
  27. package/build/dex/aave-v2/aave-v2.js.map +1 -1
  28. package/build/dex/aave-v3/aave-v3.js +1 -0
  29. package/build/dex/aave-v3/aave-v3.js.map +1 -1
  30. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  31. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  32. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  33. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  34. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  35. package/build/dex/algebra/algebra-pool.d.ts +114 -0
  36. package/build/dex/algebra/algebra-pool.js +448 -0
  37. package/build/dex/algebra/algebra-pool.js.map +1 -0
  38. package/build/dex/algebra/algebra.js +4 -0
  39. package/build/dex/algebra/algebra.js.map +1 -1
  40. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +1 -1
  41. package/build/dex/angle-staked-stable/angle-staked-stable.js +1 -0
  42. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -1
  43. package/build/dex/bProtocol/bProtocol.js +5 -0
  44. package/build/dex/bProtocol/bProtocol.js.map +1 -1
  45. package/build/dex/balancer-v1/balancer-v1.js +4 -0
  46. package/build/dex/balancer-v1/balancer-v1.js.map +1 -1
  47. package/build/dex/balancer-v2/Gyro3Pool.d.ts +43 -0
  48. package/build/dex/balancer-v2/Gyro3Pool.js +160 -0
  49. package/build/dex/balancer-v2/Gyro3Pool.js.map +1 -0
  50. package/build/dex/balancer-v2/LinearMath.d.ts +88 -0
  51. package/build/dex/balancer-v2/LinearMath.js +285 -0
  52. package/build/dex/balancer-v2/LinearMath.js.map +1 -0
  53. package/build/dex/balancer-v2/LinearPool.d.ts +81 -0
  54. package/build/dex/balancer-v2/LinearPool.js +444 -0
  55. package/build/dex/balancer-v2/LinearPool.js.map +1 -0
  56. package/build/dex/balancer-v2/PhantomStablePool.d.ts +90 -0
  57. package/build/dex/balancer-v2/PhantomStablePool.js +418 -0
  58. package/build/dex/balancer-v2/PhantomStablePool.js.map +1 -0
  59. package/build/dex/balancer-v2/StableMath.d.ts +9 -0
  60. package/build/dex/balancer-v2/StableMath.js +272 -0
  61. package/build/dex/balancer-v2/StableMath.js.map +1 -0
  62. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +140 -0
  63. package/build/dex/balancer-v2/balancer-v2-pool.js +647 -0
  64. package/build/dex/balancer-v2/balancer-v2-pool.js.map +1 -0
  65. package/build/dex/balancer-v2/balancer-v2.js +1 -0
  66. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  67. package/build/dex/bancor/bancor.js +4 -0
  68. package/build/dex/bancor/bancor.js.map +1 -1
  69. package/build/dex/camelot/camelot.js +1 -0
  70. package/build/dex/camelot/camelot.js.map +1 -1
  71. package/build/dex/compound/compound.js +1 -0
  72. package/build/dex/compound/compound.js.map +1 -1
  73. package/build/dex/curve-v1/curve-v1.js +1 -0
  74. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  75. package/build/dex/curve-v1/pools/frxETHpool.d.ts +7 -0
  76. package/build/dex/curve-v1/pools/frxETHpool.js +27 -0
  77. package/build/dex/curve-v1/pools/frxETHpool.js.map +1 -0
  78. package/build/dex/curve-v1/pools/wbETHpool.d.ts +29 -0
  79. package/build/dex/curve-v1/pools/wbETHpool.js +408 -0
  80. package/build/dex/curve-v1/pools/wbETHpool.js.map +1 -0
  81. package/build/dex/curve-v1-factory/curve-v1-factory.js +1 -0
  82. package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
  83. package/build/dex/curve-v2/curve-v2.js +1 -0
  84. package/build/dex/curve-v2/curve-v2.js.map +1 -1
  85. package/build/dex/dexalot/dexalot.js +1 -0
  86. package/build/dex/dexalot/dexalot.js.map +1 -1
  87. package/build/dex/dodo-v1/dodo-v1.js +4 -0
  88. package/build/dex/dodo-v1/dodo-v1.js.map +1 -1
  89. package/build/dex/dodo-v2.js +4 -0
  90. package/build/dex/dodo-v2.js.map +1 -1
  91. package/build/dex/etherfi.js +2 -0
  92. package/build/dex/etherfi.js.map +1 -1
  93. package/build/dex/generic-rfq/generic-rfq.js +1 -0
  94. package/build/dex/generic-rfq/generic-rfq.js.map +1 -1
  95. package/build/dex/gmx/gmx.js +4 -0
  96. package/build/dex/gmx/gmx.js.map +1 -1
  97. package/build/dex/hashflow/hashflow.js +1 -0
  98. package/build/dex/hashflow/hashflow.js.map +1 -1
  99. package/build/dex/{trader-joe-v2-1-2 → integral}/config.d.ts +1 -1
  100. package/build/dex/integral/config.js +18 -0
  101. package/build/dex/integral/config.js.map +1 -0
  102. package/build/dex/{angle-transmuter/morphoOracle.d.ts → integral/integral-pool.d.ts} +12 -15
  103. package/build/dex/integral/integral-pool.js +67 -0
  104. package/build/dex/integral/integral-pool.js.map +1 -0
  105. package/build/dex/integral/integral.d.ts +48 -0
  106. package/build/dex/integral/integral.js +402 -0
  107. package/build/dex/integral/integral.js.map +1 -0
  108. package/build/dex/integral/types.d.ts +25 -0
  109. package/build/dex/integral/types.js +9 -0
  110. package/build/dex/integral/types.js.map +1 -0
  111. package/build/dex/jarvis-v6/jarvis-v6.js +1 -0
  112. package/build/dex/jarvis-v6/jarvis-v6.js.map +1 -1
  113. package/build/dex/jarvis.js +8 -0
  114. package/build/dex/jarvis.js.map +1 -1
  115. package/build/dex/kyberdmm/kyberdmm.js +4 -0
  116. package/build/dex/kyberdmm/kyberdmm.js.map +1 -1
  117. package/build/dex/lido/lido.js +5 -0
  118. package/build/dex/lido/lido.js.map +1 -1
  119. package/build/{abi/angle-transmuter/MorphoOracle.json → dex/lighter-v1/abi/erc20.json} +126 -97
  120. package/build/dex/lighter-v1/abi/factory.json +291 -0
  121. package/build/dex/lighter-v1/abi/order_book.json +594 -0
  122. package/build/dex/lighter-v1/abi/order_book_helper.json +176 -0
  123. package/build/dex/lighter-v1/abi/router.json +488 -0
  124. package/build/dex/{trader-joe-v2_1 → lighter-v1}/config.d.ts +1 -1
  125. package/build/dex/lighter-v1/config.js +17 -0
  126. package/build/dex/lighter-v1/config.js.map +1 -0
  127. package/build/dex/lighter-v1/constants.d.ts +2 -0
  128. package/build/dex/lighter-v1/constants.js +13 -0
  129. package/build/dex/lighter-v1/constants.js.map +1 -0
  130. package/build/dex/lighter-v1/lighter-v1-pool.d.ts +57 -0
  131. package/build/dex/lighter-v1/lighter-v1-pool.js +310 -0
  132. package/build/dex/lighter-v1/lighter-v1-pool.js.map +1 -0
  133. package/build/dex/{angle-transmuter/angle-transmuter.d.ts → lighter-v1/lighter-v1.d.ts} +17 -31
  134. package/build/dex/lighter-v1/lighter-v1.js +331 -0
  135. package/build/dex/lighter-v1/lighter-v1.js.map +1 -0
  136. package/build/dex/lighter-v1/types.d.ts +40 -0
  137. package/build/dex/lighter-v1/types.js +3 -0
  138. package/build/dex/lighter-v1/types.js.map +1 -0
  139. package/build/dex/maker-psm/maker-psm.js +1 -0
  140. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  141. package/build/dex/maverick-v1/maverick-v1.js +4 -0
  142. package/build/dex/maverick-v1/maverick-v1.js.map +1 -1
  143. package/build/dex/nerve/nerve.js +4 -0
  144. package/build/dex/nerve/nerve.js.map +1 -1
  145. package/build/dex/onebit/onebit.js +5 -0
  146. package/build/dex/onebit/onebit.js.map +1 -1
  147. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +4 -0
  148. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
  149. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  150. package/build/dex/pancakeswap-v3/types.js +3 -0
  151. package/build/dex/pancakeswap-v3/types.js.map +1 -0
  152. package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js +1 -0
  153. package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js.map +1 -1
  154. package/build/dex/platypus/platypus.js +17 -3
  155. package/build/dex/platypus/platypus.js.map +1 -1
  156. package/build/dex/polygon-migrator/polygon-migrator.js +1 -0
  157. package/build/dex/polygon-migrator/polygon-migrator.js.map +1 -1
  158. package/build/dex/quick-perps/quick-perps.js +7 -1
  159. package/build/dex/quick-perps/quick-perps.js.map +1 -1
  160. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  161. package/build/dex/quickswap/camelot-v3.js +19 -0
  162. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  163. package/build/dex/quickswap/zyberswap-v3.d.ts +6 -0
  164. package/build/dex/quickswap/zyberswap-v3.js +19 -0
  165. package/build/dex/quickswap/zyberswap-v3.js.map +1 -0
  166. package/build/dex/quickswap-v3.d.ts +21 -0
  167. package/build/dex/quickswap-v3.js +40 -0
  168. package/build/dex/quickswap-v3.js.map +1 -0
  169. package/build/dex/{angle-transmuter → ramses-v2}/config.d.ts +1 -1
  170. package/build/dex/ramses-v2/config.js +28 -0
  171. package/build/dex/ramses-v2/config.js.map +1 -0
  172. package/build/dex/ramses-v2/constants.d.ts +28 -0
  173. package/build/dex/ramses-v2/constants.js +35 -0
  174. package/build/dex/ramses-v2/constants.js.map +1 -0
  175. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +4 -0
  176. package/build/dex/ramses-v2/contract-math/BitMath.js +93 -0
  177. package/build/dex/ramses-v2/contract-math/BitMath.js.map +1 -0
  178. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +3 -0
  179. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +8 -0
  180. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +1 -0
  181. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +4 -0
  182. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +9 -0
  183. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +1 -0
  184. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +4 -0
  185. package/build/dex/ramses-v2/contract-math/FullMath.js +19 -0
  186. package/build/dex/ramses-v2/contract-math/FullMath.js.map +1 -0
  187. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +3 -0
  188. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +22 -0
  189. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +1 -0
  190. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +10 -0
  191. package/build/dex/ramses-v2/contract-math/Oracle.js +133 -0
  192. package/build/dex/ramses-v2/contract-math/Oracle.js.map +1 -0
  193. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +10 -0
  194. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +91 -0
  195. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +1 -0
  196. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +8 -0
  197. package/build/dex/ramses-v2/contract-math/SwapMath.js +70 -0
  198. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +1 -0
  199. package/build/dex/ramses-v2/contract-math/Tick.d.ts +7 -0
  200. package/build/dex/ramses-v2/contract-math/Tick.js +45 -0
  201. package/build/dex/ramses-v2/contract-math/Tick.js.map +1 -0
  202. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +8 -0
  203. package/build/dex/ramses-v2/contract-math/TickBitMap.js +87 -0
  204. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +1 -0
  205. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +8 -0
  206. package/build/dex/ramses-v2/contract-math/TickMath.js +162 -0
  207. package/build/dex/ramses-v2/contract-math/TickMath.js.map +1 -0
  208. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +3 -0
  209. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +10 -0
  210. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +1 -0
  211. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +18 -0
  212. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +392 -0
  213. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +1 -0
  214. package/build/dex/ramses-v2/contract-math/utils.d.ts +3 -0
  215. package/build/dex/ramses-v2/contract-math/utils.js +16 -0
  216. package/build/dex/ramses-v2/contract-math/utils.js.map +1 -0
  217. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +42 -0
  218. package/build/dex/ramses-v2/ramses-v2-pool.js +307 -0
  219. package/build/dex/ramses-v2/ramses-v2-pool.js.map +1 -0
  220. package/build/dex/ramses-v2/ramses-v2.d.ts +61 -0
  221. package/build/dex/ramses-v2/ramses-v2.js +690 -0
  222. package/build/dex/ramses-v2/ramses-v2.js.map +1 -0
  223. package/build/dex/ramses-v2/types.d.ts +154 -0
  224. package/build/dex/ramses-v2/types.js +9 -0
  225. package/build/dex/ramses-v2/types.js.map +1 -0
  226. package/build/dex/ramses-v2/utils.d.ts +6 -0
  227. package/build/dex/ramses-v2/utils.js +71 -0
  228. package/build/dex/ramses-v2/utils.js.map +1 -0
  229. package/build/dex/smoothy/smoothy.js +1 -0
  230. package/build/dex/smoothy/smoothy.js.map +1 -1
  231. package/build/dex/solidly/forks-override/fvm.d.ts +20 -0
  232. package/build/dex/solidly/forks-override/fvm.js +42 -0
  233. package/build/dex/solidly/forks-override/fvm.js.map +1 -0
  234. package/build/dex/solidly/solidly.js +1 -0
  235. package/build/dex/solidly/solidly.js.map +1 -1
  236. package/build/dex/solidly-v3/solidly-v3.js +1 -0
  237. package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
  238. package/build/dex/spark/spark.js +6 -0
  239. package/build/dex/spark/spark.js.map +1 -1
  240. package/build/dex/stable-pool/stable-pool.js +4 -0
  241. package/build/dex/stable-pool/stable-pool.js.map +1 -1
  242. package/build/dex/sushiswap-v3/config.d.ts +4 -0
  243. package/build/dex/sushiswap-v3/config.js +132 -0
  244. package/build/dex/sushiswap-v3/config.js.map +1 -0
  245. package/build/dex/sushiswap-v3/constants.d.ts +4 -0
  246. package/build/dex/sushiswap-v3/constants.js +32 -0
  247. package/build/dex/sushiswap-v3/constants.js.map +1 -0
  248. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +56 -0
  249. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +598 -0
  250. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +1 -0
  251. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +1 -0
  252. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +6 -0
  253. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +1 -0
  254. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +21 -0
  255. package/build/dex/sushiswap-v3/sushiswap-v3.js +58 -0
  256. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +1 -0
  257. package/build/dex/sushiswap-v3/token.d.ts +6 -0
  258. package/build/dex/sushiswap-v3/token.js +23 -0
  259. package/build/dex/sushiswap-v3/token.js.map +1 -0
  260. package/build/dex/sushiswap-v3/types.d.ts +15 -0
  261. package/build/dex/sushiswap-v3/types.js +18 -0
  262. package/build/dex/sushiswap-v3/types.js.map +1 -0
  263. package/build/dex/swaap-v1/swaap-v1.js +4 -0
  264. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  265. package/build/dex/swaap-v2/swaap-v2.js +1 -0
  266. package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
  267. package/build/dex/swell/swell.js +1 -0
  268. package/build/dex/swell/swell.js.map +1 -1
  269. package/build/dex/synthetix/synthetix.js +6 -0
  270. package/build/dex/synthetix/synthetix.js.map +1 -1
  271. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js +4 -0
  272. package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js.map +1 -1
  273. package/build/dex/uniswap-v2/uniswap-v2.js +1 -0
  274. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  275. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +12 -0
  276. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +23 -0
  277. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
  278. package/build/dex/uniswap-v3/uniswap-v3.js +4 -0
  279. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  280. package/build/dex/uniswap-v3.js +4 -0
  281. package/build/dex/uniswap-v3.js.map +1 -1
  282. package/build/dex/weth/weth.js +1 -0
  283. package/build/dex/weth/weth.js.map +1 -1
  284. package/build/dex/wombat/wombat.js +4 -0
  285. package/build/dex/wombat/wombat.js.map +1 -1
  286. package/build/dex/woo-fi/config.d.ts +4 -0
  287. package/build/dex/woo-fi/config.js +141 -0
  288. package/build/dex/woo-fi/config.js.map +1 -0
  289. package/build/dex/woo-fi/constants.d.ts +5 -0
  290. package/build/dex/woo-fi/constants.js +20 -0
  291. package/build/dex/woo-fi/constants.js.map +1 -0
  292. package/build/dex/woo-fi/types.d.ts +48 -0
  293. package/build/dex/woo-fi/types.js +3 -0
  294. package/build/dex/woo-fi/types.js.map +1 -0
  295. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
  296. package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
  297. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
  298. package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
  299. package/build/dex/woo-fi/woo-fi-math.js +300 -0
  300. package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
  301. package/build/dex/woo-fi/woo-fi.d.ts +65 -0
  302. package/build/dex/woo-fi/woo-fi.js +480 -0
  303. package/build/dex/woo-fi/woo-fi.js.map +1 -0
  304. package/build/dex/woo-fi-v2/woo-fi-v2.js +4 -0
  305. package/build/dex/woo-fi-v2/woo-fi-v2.js.map +1 -1
  306. package/build/dex/wsteth/wsteth.js +8 -1
  307. package/build/dex/wsteth/wsteth.js.map +1 -1
  308. package/build/dex/zerox/index.js +1 -0
  309. package/build/dex/zerox/index.js.map +1 -1
  310. package/build/executor/Executor01BytecodeBuilder.js +4 -1
  311. package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
  312. package/build/executor/Executor02BytecodeBuilder.js +5 -1
  313. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  314. package/build/executor/ExecutorBytecodeBuilder.d.ts +1 -1
  315. package/build/executor/ExecutorBytecodeBuilder.js +5 -4
  316. package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
  317. package/build/executor/ExecutorDetector.d.ts +1 -1
  318. package/build/executor/ExecutorDetector.js.map +1 -1
  319. package/build/executor/IExecutorBytecodeBuilder.d.ts +6 -0
  320. package/build/executor/IExecutorBytecodeBuilder.js +3 -0
  321. package/build/executor/IExecutorBytecodeBuilder.js.map +1 -0
  322. package/build/executor/constants.d.ts +3 -1
  323. package/build/executor/constants.js +4 -2
  324. package/build/executor/constants.js.map +1 -1
  325. package/build/executor/utils.d.ts +2 -0
  326. package/build/executor/utils.js +30 -0
  327. package/build/executor/utils.js.map +1 -0
  328. package/build/types.d.ts +1 -0
  329. package/package.json +1 -1
  330. package/src/dex/aave-v1/aave-v1.ts +1 -0
  331. package/src/dex/aave-v2/aave-v2.ts +1 -0
  332. package/src/dex/aave-v3/aave-v3.ts +1 -0
  333. package/src/dex/algebra/algebra.ts +9 -0
  334. package/src/dex/angle-staked-stable/angle-staked-stable.ts +2 -1
  335. package/src/dex/bProtocol/bProtocol.ts +8 -0
  336. package/src/dex/balancer-v1/balancer-v1.ts +9 -0
  337. package/src/dex/balancer-v2/balancer-v2.ts +3 -2
  338. package/src/dex/bancor/bancor.ts +8 -0
  339. package/src/dex/camelot/camelot.ts +1 -0
  340. package/src/dex/compound/compound.ts +1 -0
  341. package/src/dex/curve-v1/curve-v1.ts +1 -0
  342. package/src/dex/curve-v1-factory/curve-v1-factory.ts +1 -0
  343. package/src/dex/curve-v2/curve-v2.ts +1 -0
  344. package/src/dex/dexalot/dexalot.ts +1 -0
  345. package/src/dex/dodo-v1/dodo-v1.ts +9 -0
  346. package/src/dex/dodo-v2.ts +9 -0
  347. package/src/dex/etherfi.ts +2 -0
  348. package/src/dex/generic-rfq/generic-rfq.ts +1 -0
  349. package/src/dex/gmx/gmx.ts +8 -0
  350. package/src/dex/hashflow/hashflow.ts +1 -0
  351. package/src/dex/jarvis-v6/jarvis-v6.ts +1 -0
  352. package/src/dex/jarvis.ts +14 -0
  353. package/src/dex/kyberdmm/kyberdmm.ts +9 -0
  354. package/src/dex/lido/lido.ts +8 -0
  355. package/src/dex/maker-psm/maker-psm.ts +1 -0
  356. package/src/dex/maverick-v1/maverick-v1.ts +9 -0
  357. package/src/dex/nerve/nerve.ts +8 -0
  358. package/src/dex/onebit/onebit.ts +8 -0
  359. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +9 -0
  360. package/src/dex/paraswap-limit-orders/paraswap-limit-orders.ts +1 -0
  361. package/src/dex/platypus/platypus.ts +20 -3
  362. package/src/dex/polygon-migrator/polygon-migrator.ts +1 -0
  363. package/src/dex/quick-perps/quick-perps.ts +11 -1
  364. package/src/dex/smoothy/smoothy.ts +1 -0
  365. package/src/dex/solidly/solidly.ts +1 -0
  366. package/src/dex/solidly-v3/solidly-v3.ts +1 -1
  367. package/src/dex/spark/spark.ts +10 -0
  368. package/src/dex/stable-pool/stable-pool.ts +8 -0
  369. package/src/dex/swaap-v1/swaap-v1.ts +9 -0
  370. package/src/dex/swaap-v2/swaap-v2.ts +1 -0
  371. package/src/dex/swell/swell.ts +1 -0
  372. package/src/dex/synthetix/synthetix.ts +11 -0
  373. package/src/dex/trader-joe-v2.1/trader-joe-v2.1.ts +9 -0
  374. package/src/dex/uniswap-v2/uniswap-v2.ts +1 -0
  375. package/src/dex/uniswap-v3/uniswap-v3.ts +9 -0
  376. package/src/dex/uniswap-v3.ts +9 -0
  377. package/src/dex/weth/weth.ts +1 -0
  378. package/src/dex/wombat/wombat.ts +9 -0
  379. package/src/dex/woo-fi-v2/woo-fi-v2.ts +5 -0
  380. package/src/dex/wsteth/wsteth.ts +13 -4
  381. package/src/dex/zerox/index.ts +1 -0
  382. package/src/executor/Executor01BytecodeBuilder.ts +8 -1
  383. package/src/executor/Executor02BytecodeBuilder.ts +13 -0
  384. package/src/executor/ExecutorBytecodeBuilder.ts +6 -1
  385. package/src/executor/ExecutorDetector.ts +3 -2
  386. package/src/executor/constants.ts +4 -1
  387. package/src/executor/executor01-bytecode-builder-e2e.test.ts +39 -0
  388. package/src/executor/utils.ts +44 -0
  389. package/src/types.ts +1 -0
  390. package/tests/constants-e2e.ts +6 -1
  391. package/build/abi/Redstone.json +0 -739
  392. package/build/abi/angle-transmuter/MorphoVault.json +0 -2506
  393. package/build/abi/angle-transmuter/Pyth.json +0 -1534
  394. package/build/abi/angle-transmuter/Transmuter.json +0 -1711
  395. package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
  396. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  397. package/build/abi/pharaoh/PharaohPool.abi.json +0 -1582
  398. package/build/abi/smardex/smardex-factory.json +0 -185
  399. package/build/abi/smardex/smardex-pool.json +0 -578
  400. package/build/abi/smardex/smardex-router.json +0 -648
  401. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
  402. package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
  403. package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
  404. package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
  405. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -61
  406. package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -415
  407. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
  408. package/build/dex/angle-transmuter/angle-transmuter.js +0 -262
  409. package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
  410. package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
  411. package/build/dex/angle-transmuter/backedOracle.js +0 -56
  412. package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
  413. package/build/dex/angle-transmuter/config.js +0 -30
  414. package/build/dex/angle-transmuter/config.js.map +0 -1
  415. package/build/dex/angle-transmuter/constants.d.ts +0 -77
  416. package/build/dex/angle-transmuter/constants.js +0 -94
  417. package/build/dex/angle-transmuter/constants.js.map +0 -1
  418. package/build/dex/angle-transmuter/morphoOracle.js +0 -179
  419. package/build/dex/angle-transmuter/morphoOracle.js.map +0 -1
  420. package/build/dex/angle-transmuter/morphoVault.d.ts +0 -19
  421. package/build/dex/angle-transmuter/morphoVault.js +0 -78
  422. package/build/dex/angle-transmuter/morphoVault.js.map +0 -1
  423. package/build/dex/angle-transmuter/pyth.d.ts +0 -19
  424. package/build/dex/angle-transmuter/pyth.js +0 -70
  425. package/build/dex/angle-transmuter/pyth.js.map +0 -1
  426. package/build/dex/angle-transmuter/redstone.d.ts +0 -20
  427. package/build/dex/angle-transmuter/redstone.js +0 -73
  428. package/build/dex/angle-transmuter/redstone.js.map +0 -1
  429. package/build/dex/angle-transmuter/transmuter.d.ts +0 -52
  430. package/build/dex/angle-transmuter/transmuter.js +0 -374
  431. package/build/dex/angle-transmuter/transmuter.js.map +0 -1
  432. package/build/dex/angle-transmuter/types.d.ts +0 -188
  433. package/build/dex/angle-transmuter/types.js +0 -33
  434. package/build/dex/angle-transmuter/types.js.map +0 -1
  435. package/build/dex/angle-transmuter/utils.d.ts +0 -9
  436. package/build/dex/angle-transmuter/utils.js +0 -252
  437. package/build/dex/angle-transmuter/utils.js.map +0 -1
  438. package/build/dex/idle-dao/config.d.ts +0 -6
  439. package/build/dex/idle-dao/config.js +0 -29
  440. package/build/dex/idle-dao/config.js.map +0 -1
  441. package/build/dex/idle-dao/idle-dao-pool.d.ts +0 -56
  442. package/build/dex/idle-dao/idle-dao-pool.js +0 -176
  443. package/build/dex/idle-dao/idle-dao-pool.js.map +0 -1
  444. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +0 -16
  445. package/build/dex/idle-dao/idle-dao-pooling-pool.js +0 -57
  446. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +0 -1
  447. package/build/dex/idle-dao/idle-dao.d.ts +0 -52
  448. package/build/dex/idle-dao/idle-dao.js +0 -310
  449. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  450. package/build/dex/idle-dao/tokens.d.ts +0 -16
  451. package/build/dex/idle-dao/tokens.js +0 -87
  452. package/build/dex/idle-dao/tokens.js.map +0 -1
  453. package/build/dex/idle-dao/types.d.ts +0 -37
  454. package/build/dex/idle-dao/types.js +0 -11
  455. package/build/dex/idle-dao/types.js.map +0 -1
  456. package/build/dex/idle-dao/utils.d.ts +0 -8
  457. package/build/dex/idle-dao/utils.js +0 -145
  458. package/build/dex/idle-dao/utils.js.map +0 -1
  459. package/build/dex/smardex/subgraph-queries.d.ts +0 -1
  460. package/build/dex/smardex/subgraph-queries.js +0 -17
  461. package/build/dex/smardex/subgraph-queries.js.map +0 -1
  462. package/build/dex/smardex/usd-reserves.d.ts +0 -23
  463. package/build/dex/smardex/usd-reserves.js +0 -86
  464. package/build/dex/smardex/usd-reserves.js.map +0 -1
  465. package/build/dex/trader-joe-v2-1-2/config.js +0 -47
  466. package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
  467. package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
  468. package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
  469. package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
  470. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
  471. package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
  472. package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
  473. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
  474. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
  475. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
  476. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
  477. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
  478. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
  479. package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
  480. package/build/dex/trader-joe-v2-1-2/types.js +0 -9
  481. package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
  482. package/build/dex/trader-joe-v2_1/config.js +0 -47
  483. package/build/dex/trader-joe-v2_1/config.js.map +0 -1
  484. package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
  485. package/build/dex/trader-joe-v2_1/constants.js +0 -22
  486. package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
  487. package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
  488. package/build/dex/trader-joe-v2_1/math/index.js +0 -291
  489. package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
  490. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  491. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
  492. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
  493. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
  494. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
  495. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
  496. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
  497. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
  498. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
  499. package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
  500. package/build/dex/trader-joe-v2_1/types.js +0 -9
  501. package/build/dex/trader-joe-v2_1/types.js.map +0 -1
  502. package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
  503. package/build/dex/wombat/wombat-pool-poller.js +0 -164
  504. package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
  505. package/build/dex-helper/Cache.d.ts +0 -31
  506. package/build/dex-helper/Cache.js +0 -106
  507. package/build/dex-helper/Cache.js.map +0 -1
  508. package/build/dex-helper/RedisBatcher.d.ts +0 -20
  509. package/build/dex-helper/RedisBatcher.js +0 -75
  510. package/build/dex-helper/RedisBatcher.js.map +0 -1
  511. package/build/dex-helper/RedisWrapper.d.ts +0 -37
  512. package/build/dex-helper/RedisWrapper.js +0 -165
  513. package/build/dex-helper/RedisWrapper.js.map +0 -1
@@ -52,6 +52,7 @@ import { AlgebraEventPoolV1_9 } from './algebra-pool-v1_9';
52
52
  import { AlgebraFactory, OnPoolCreatedCallback } from './algebra-factory';
53
53
  import { applyTransferFee } from '../../lib/token-transfer-fee';
54
54
  import { AlgebraEventPoolV1_9_bidirectional_fee } from './algebra-pool-v1_9_bidirectional_fee';
55
+ import { extractReturnAmountPosition } from '../../executor/utils';
55
56
 
56
57
  type PoolPairsInfo = {
57
58
  token0: Address;
@@ -942,6 +943,14 @@ export class Algebra extends SimpleExchange implements IDex<AlgebraData> {
942
943
  dexFuncHasRecipient: true,
943
944
  exchangeData,
944
945
  targetExchange: this.config.router,
946
+ returnAmountPos:
947
+ side === SwapSide.SELL
948
+ ? extractReturnAmountPosition(
949
+ this.routerIface,
950
+ swapFunction,
951
+ 'amountOut',
952
+ )
953
+ : undefined,
945
954
  };
946
955
  }
947
956
 
@@ -12,7 +12,7 @@ import type {
12
12
  NumberAsString,
13
13
  DexExchangeParam,
14
14
  } from '../../types';
15
- import { SwapSide, type Network } from '../../constants';
15
+ import { SwapSide, Network } from '../../constants';
16
16
  import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
17
17
  import { getDexKeysWithNetwork } from '../../utils';
18
18
  import type { Context, IDex } from '../../dex/idex';
@@ -263,6 +263,7 @@ export class AngleStakedStable
263
263
  dexFuncHasRecipient: true,
264
264
  exchangeData: swapData,
265
265
  targetExchange: exchange,
266
+ returnAmountPos: undefined,
266
267
  };
267
268
  }
268
269
 
@@ -12,6 +12,7 @@ import { SimpleExchange } from '../simple-exchange';
12
12
  import BProtocolABI from '../../abi/BProtocol.json';
13
13
  import { IDexHelper } from '../../dex-helper';
14
14
  import { BProtocolData, BProtocolFunctions, BProtocolParam } from './types';
15
+ import { extractReturnAmountPosition } from '../../executor/utils';
15
16
 
16
17
  export class BProtocol
17
18
  extends SimpleExchange
@@ -95,6 +96,13 @@ export class BProtocol
95
96
  dexFuncHasRecipient: true,
96
97
  exchangeData: swapData,
97
98
  targetExchange: data.exchange,
99
+ returnAmountPos:
100
+ _side === SwapSide.SELL
101
+ ? extractReturnAmountPosition(
102
+ this.exchangeRouterInterface,
103
+ swapFunction,
104
+ )
105
+ : undefined,
98
106
  };
99
107
  }
100
108
  }
@@ -43,6 +43,7 @@ import BalancerCustomMulticallABI from '../../abi/BalancerCustomMulticall.json';
43
43
  import { NumberAsString, SwapSide } from '@paraswap/core';
44
44
  import { BigNumber, ethers } from 'ethers';
45
45
  import { SpecialDex } from '../../executor/types';
46
+ import { extractReturnAmountPosition } from '../../executor/utils';
46
47
 
47
48
  const {
48
49
  utils: { hexlify, hexZeroPad, solidityPack },
@@ -416,6 +417,14 @@ export class BalancerV1
416
417
  dexFuncHasRecipient: false,
417
418
  exchangeData: exchangeData,
418
419
  targetExchange: this.config.exchangeProxy,
420
+ returnAmountPos:
421
+ side === SwapSide.SELL
422
+ ? extractReturnAmountPosition(
423
+ BalancerV1.proxyIface,
424
+ swapFunction,
425
+ 'totalAmountOut',
426
+ )
427
+ : undefined,
419
428
  };
420
429
  }
421
430
 
@@ -1142,9 +1142,9 @@ export class BalancerV2
1142
1142
  sender = recipient = augustusV6
1143
1143
  else (so generic swaps)
1144
1144
  if sell
1145
- if swap.destToken = priceRoute.destToken <> ETH (need withdraw for eth currently, need fix in future)
1145
+ if swap.destToken = priceRoute.destToken <> ETH (need withdraw for eth currently, need fix in future)
1146
1146
  sender = executor and recipient = augustusV6 (skip 1 extra transfer)
1147
- else
1147
+ else
1148
1148
  sender = recipient = executor
1149
1149
  # note: we pass sender=null then the address of the executor is inferred contract side
1150
1150
  else (so buy)
@@ -1585,6 +1585,7 @@ export class BalancerV2
1585
1585
  exchangeData,
1586
1586
  specialDexFlag,
1587
1587
  targetExchange: this.vaultAddress,
1588
+ returnAmountPos: undefined,
1588
1589
  };
1589
1590
  }
1590
1591
 
@@ -13,6 +13,7 @@ import BancorABI from '../../abi/Bancor.json';
13
13
  import { IDexHelper } from '../../dex-helper';
14
14
  import { BancorData, BancorFunctions, BancorParam } from './types';
15
15
  import { BANCOR_NETWORK, BancorRegistry } from './config';
16
+ import { extractReturnAmountPosition } from '../../executor/utils';
16
17
 
17
18
  export class Bancor
18
19
  extends SimpleExchange
@@ -115,6 +116,13 @@ export class Bancor
115
116
  dexFuncHasRecipient: false,
116
117
  exchangeData: swapData,
117
118
  targetExchange: data.bancorNetwork || BANCOR_NETWORK[this.network],
119
+ returnAmountPos:
120
+ side === SwapSide.SELL
121
+ ? extractReturnAmountPosition(
122
+ this.exchangeRouterInterface,
123
+ swapMethod,
124
+ )
125
+ : undefined,
118
126
  };
119
127
  }
120
128
  }
@@ -867,6 +867,7 @@ export class Camelot
867
867
  transferSrcTokenBeforeSwap: data.isFeeTokenInRoute
868
868
  ? undefined
869
869
  : data.pools[0].address,
870
+ returnAmountPos: undefined,
870
871
  };
871
872
  }
872
873
  }
@@ -101,6 +101,7 @@ export class Compound
101
101
  dexFuncHasRecipient: false,
102
102
  exchangeData: swapData,
103
103
  targetExchange: cToken,
104
+ returnAmountPos: undefined,
104
105
  };
105
106
  }
106
107
  }
@@ -1075,6 +1075,7 @@ export class CurveV1
1075
1075
  sendEthButSupportsInsertFromAmount: true,
1076
1076
  dexFuncHasRecipient: false,
1077
1077
  targetExchange: exchange,
1078
+ returnAmountPos: undefined,
1078
1079
  };
1079
1080
  }
1080
1081
 
@@ -1176,6 +1176,7 @@ export class CurveV1Factory
1176
1176
  sendEthButSupportsInsertFromAmount: true,
1177
1177
  dexFuncHasRecipient: false,
1178
1178
  targetExchange: exchange,
1179
+ returnAmountPos: undefined,
1179
1180
  };
1180
1181
  }
1181
1182
 
@@ -434,6 +434,7 @@ export class CurveV2
434
434
  dexFuncHasRecipient: false,
435
435
  exchangeData: swapData,
436
436
  targetExchange: exchange,
437
+ returnAmountPos: undefined,
437
438
  };
438
439
  }
439
440
  }
@@ -1021,6 +1021,7 @@ export class Dexalot extends SimpleExchange implements IDex<DexalotData> {
1021
1021
  needWrapNative: this.needWrapNative,
1022
1022
  dexFuncHasRecipient: false,
1023
1023
  targetExchange: this.mainnetRFQAddress,
1024
+ returnAmountPos: undefined,
1024
1025
  };
1025
1026
  }
1026
1027
 
@@ -13,6 +13,7 @@ import { NumberAsString } from '@paraswap/core';
13
13
  import { IDexHelper } from '../../dex-helper';
14
14
  import { DodoV1Data, DodoV1Functions, DodoV1Param } from './types';
15
15
  import { DODOAproveAddress, DODOV2ProxyAddress } from './config';
16
+ import { extractReturnAmountPosition } from '../../executor/utils';
16
17
 
17
18
  export class DodoV1
18
19
  extends SimpleExchange
@@ -118,6 +119,14 @@ export class DodoV1
118
119
  exchangeData: swapData,
119
120
  targetExchange: DODOV2ProxyAddress[this.network],
120
121
  spender: DODOAproveAddress[this.network],
122
+ returnAmountPos:
123
+ _side === SwapSide.SELL
124
+ ? extractReturnAmountPosition(
125
+ this.dodoV2Proxy,
126
+ swapFunction,
127
+ 'returnAmount',
128
+ )
129
+ : undefined,
121
130
  };
122
131
  }
123
132
  }
@@ -13,6 +13,7 @@ import { NumberAsString } from '@paraswap/core';
13
13
  import { isETHAddress } from '../utils';
14
14
  import Web3 from 'web3';
15
15
  import { IDexHelper } from '../dex-helper';
16
+ import { extractReturnAmountPosition } from '../executor/utils';
16
17
 
17
18
  const DODOAproveAddress: { [network: number]: Address } = {
18
19
  [Network.MAINNET]: '0xCB859eA579b28e02B87A1FDE08d087ab9dbE5149',
@@ -252,6 +253,14 @@ export class DodoV2
252
253
  exchangeData: swapData,
253
254
  targetExchange: data.dodoProxy,
254
255
  spender: maybeSpender,
256
+ returnAmountPos:
257
+ _side === SwapSide.SELL
258
+ ? extractReturnAmountPosition(
259
+ this.exchangeRouterInterface,
260
+ swapFunction,
261
+ 'returnAmount',
262
+ )
263
+ : undefined,
255
264
  };
256
265
  }
257
266
  }
@@ -15,6 +15,7 @@ import { IDexHelper } from '../dex-helper';
15
15
  import { isETHAddress } from '../utils';
16
16
  import { assert } from 'ts-essentials';
17
17
  import { WethFunctions } from './weth/types';
18
+ import { extractReturnAmountPosition } from '../executor/utils';
18
19
 
19
20
  type EtherFiData = void;
20
21
 
@@ -217,6 +218,7 @@ export class EtherFi
217
218
  srcAmount,
218
219
  ])
219
220
  : undefined,
221
+ returnAmountPos: extractReturnAmountPosition(Interface, swapFunction)
220
222
  };
221
223
  }
222
224
 
@@ -302,6 +302,7 @@ export class GenericRFQ extends ParaSwapLimitOrders {
302
302
  specialDexFlag: SpecialDex.SWAP_ON_AUGUSTUS_RFQ,
303
303
  targetExchange: this.augustusRFQAddress,
304
304
  specialDexSupportsInsertFromAmount: true,
305
+ returnAmountPos: undefined,
305
306
  };
306
307
  }
307
308
 
@@ -22,6 +22,7 @@ import { SimpleExchange } from '../simple-exchange';
22
22
  import { GMXConfig, Adapters } from './config';
23
23
  import { Vault } from './vault';
24
24
  import ERC20ABI from '../../abi/erc20.json';
25
+ import { extractReturnAmountPosition } from '../../executor/utils';
25
26
 
26
27
  const GMXGasCost = 300 * 1000;
27
28
 
@@ -231,6 +232,13 @@ export class GMX extends SimpleExchange implements IDex<GMXData> {
231
232
  swappedAmountNotPresentInExchangeData: true,
232
233
  exchangeData,
233
234
  targetExchange: this.params.vault,
235
+ returnAmountPos:
236
+ side === SwapSide.SELL
237
+ ? extractReturnAmountPosition(
238
+ Vault.interface,
239
+ 'swap',
240
+ )
241
+ : undefined,
234
242
  };
235
243
  }
236
244
 
@@ -1039,6 +1039,7 @@ export class Hashflow extends SimpleExchange implements IDex<HashflowData> {
1039
1039
  dexFuncHasRecipient: true,
1040
1040
  exchangeData,
1041
1041
  targetExchange: this.routerAddress,
1042
+ returnAmountPos: undefined,
1042
1043
  };
1043
1044
  }
1044
1045
 
@@ -483,6 +483,7 @@ export class JarvisV6
483
483
  dexFuncHasRecipient: true,
484
484
  exchangeData,
485
485
  targetExchange: data.poolAddress.toLowerCase(),
486
+ returnAmountPos: undefined,
486
487
  };
487
488
  }
488
489
 
package/src/dex/jarvis.ts CHANGED
@@ -12,6 +12,7 @@ import { SimpleExchange } from './simple-exchange';
12
12
  import JarvisABI from '../abi/Jarvis.json';
13
13
  import Web3 from 'web3';
14
14
  import { IDexHelper } from '../dex-helper';
15
+ import { extractReturnAmountPosition } from '../executor/utils';
15
16
 
16
17
  const THIRTY_MINUTES = 60 * 30;
17
18
 
@@ -197,6 +198,8 @@ export class Jarvis
197
198
  const swapFunction = data.method;
198
199
  const timestamp = (Date.now() / 1000 + THIRTY_MINUTES).toFixed(0);
199
200
  let swapFunctionParams: JarvisParam;
201
+ let outputName: string;
202
+
200
203
  switch (swapFunction) {
201
204
  case JarvisFunctions.mint:
202
205
  swapFunctionParams = [
@@ -207,6 +210,7 @@ export class Jarvis
207
210
  timestamp,
208
211
  recipient,
209
212
  ];
213
+ outputName = 'syntheticTokensMinted';
210
214
  break;
211
215
  case JarvisFunctions.redeem:
212
216
  swapFunctionParams = [
@@ -217,6 +221,7 @@ export class Jarvis
217
221
  timestamp,
218
222
  recipient,
219
223
  ];
224
+ outputName = 'collateralRedeemed';
220
225
  break;
221
226
  case JarvisFunctions.exchange:
222
227
  swapFunctionParams = [
@@ -229,6 +234,7 @@ export class Jarvis
229
234
  timestamp,
230
235
  recipient,
231
236
  ];
237
+ outputName = 'destNumTokensMinted';
232
238
  break;
233
239
  default:
234
240
  throw new Error(`Unknown function ${swapFunction}`);
@@ -243,6 +249,14 @@ export class Jarvis
243
249
  dexFuncHasRecipient: true,
244
250
  exchangeData: swapData,
245
251
  targetExchange: data.pools[0],
252
+ returnAmountPos:
253
+ side === SwapSide.SELL
254
+ ? extractReturnAmountPosition(
255
+ this.poolInterface,
256
+ swapFunction,
257
+ outputName,
258
+ )
259
+ : undefined,
246
260
  };
247
261
  }
248
262
  }
@@ -38,6 +38,7 @@ import kyberDmmFactoryABI from '../../abi/kyberdmm/kyber-dmm-factory.abi.json';
38
38
  import kyberDmmPoolABI from '../../abi/kyberdmm/kyber-dmm-pool.abi.json';
39
39
  import KyberDmmExchangeRouterABI from '../../abi/kyberdmm/kyber-dmm-exchange-router.abi.json';
40
40
  import { getBigIntPow, getDexKeysWithNetwork } from '../../utils';
41
+ import { extractReturnAmountPosition } from '../../executor/utils';
41
42
 
42
43
  const MAX_TRACKED_PAIR_POOLS = 3;
43
44
 
@@ -262,6 +263,14 @@ export class KyberDmm
262
263
  dexFuncHasRecipient: true,
263
264
  exchangeData,
264
265
  targetExchange: data.router,
266
+ returnAmountPos:
267
+ side === SwapSide.SELL
268
+ ? extractReturnAmountPosition(
269
+ this.exchangeRouterInterface,
270
+ KyberDMMFunctions.swapExactTokensForTokens,
271
+ 'amounts',
272
+ )
273
+ : undefined,
265
274
  };
266
275
  }
267
276
 
@@ -14,6 +14,7 @@ import { LidoData, stETHFunctions } from './types';
14
14
  import { stETH } from './config';
15
15
  import { WethFunctions } from '../weth/types';
16
16
  import ERC20ABI from '../../abi/erc20.json';
17
+ import { extractReturnAmountPosition } from '../../executor/utils';
17
18
 
18
19
  export class Lido implements IDexTxBuilder<LidoData, any> {
19
20
  static dexKeys = ['lido'];
@@ -97,6 +98,13 @@ export class Lido implements IDexTxBuilder<LidoData, any> {
97
98
  srcAmount,
98
99
  ])
99
100
  : undefined,
101
+ returnAmountPos:
102
+ _side === SwapSide.SELL
103
+ ? extractReturnAmountPosition(
104
+ this.stETHInterface,
105
+ stETHFunctions.submit,
106
+ )
107
+ : undefined,
100
108
  };
101
109
  }
102
110
  }
@@ -541,6 +541,7 @@ export class MakerPsm extends SimpleExchange implements IDex<MakerPsmData> {
541
541
  targetExchange: data.psmAddress,
542
542
  specialDexFlag,
543
543
  spender: isGemSell ? data.gemJoinAddress : data.psmAddress,
544
+ returnAmountPos: undefined,
544
545
  };
545
546
  }
546
547
  // Returns list of top pools based on liquidity. Max
@@ -41,6 +41,7 @@ import {
41
41
  import { SUBGRAPH_TIMEOUT } from '../../constants';
42
42
  import RouterABI from '../../abi/maverick-v1/router.json';
43
43
  import { NumberAsString } from '@paraswap/core';
44
+ import { extractReturnAmountPosition } from '../../executor/utils';
44
45
 
45
46
  const MAX_POOL_CNT = 1000;
46
47
 
@@ -402,6 +403,14 @@ export class MaverickV1
402
403
  dexFuncHasRecipient: true,
403
404
  exchangeData,
404
405
  targetExchange: this.config.routerAddress,
406
+ returnAmountPos:
407
+ side === SwapSide.SELL
408
+ ? extractReturnAmountPosition(
409
+ this.routerIface,
410
+ MaverickV1Functions.exactInputSingle,
411
+ 'amountOut',
412
+ )
413
+ : undefined,
405
414
  };
406
415
  }
407
416
 
@@ -33,6 +33,7 @@ import { NerveConfig, Adapters, NERVE_GAS_COST } from './config';
33
33
  import { NerveEventPool } from './nerve-pool';
34
34
  import _ from 'lodash';
35
35
  import { bigIntify } from './utils';
36
+ import { extractReturnAmountPosition } from '../../executor/utils';
36
37
 
37
38
  export class Nerve
38
39
  extends SimpleExchange
@@ -382,6 +383,13 @@ export class Nerve
382
383
  dexFuncHasRecipient: false,
383
384
  exchangeData: swapData,
384
385
  targetExchange: exchange,
386
+ returnAmountPos:
387
+ side === SwapSide.SELL
388
+ ? extractReturnAmountPosition(
389
+ this.nervePoolIface,
390
+ NervePoolFunctions.swap,
391
+ )
392
+ : undefined,
385
393
  };
386
394
  }
387
395
 
@@ -13,6 +13,7 @@ import { SimpleExchange } from '../simple-exchange';
13
13
  import OnebitABI from '../../abi/Onebit.json';
14
14
  import { IDexHelper } from '../../dex-helper';
15
15
  import { OnebitData, OnebitFunctions, OnebitParam } from './types';
16
+ import { extractReturnAmountPosition } from '../../executor/utils';
16
17
 
17
18
  export class Onebit
18
19
  extends SimpleExchange
@@ -100,6 +101,13 @@ export class Onebit
100
101
  dexFuncHasRecipient: true,
101
102
  exchangeData: swapData,
102
103
  targetExchange: data.router,
104
+ returnAmountPos:
105
+ _side === SwapSide.SELL
106
+ ? extractReturnAmountPosition(
107
+ this.exchangeRouterInterface,
108
+ swapFunction,
109
+ )
110
+ : undefined,
103
111
  };
104
112
  }
105
113
  }
@@ -61,6 +61,7 @@ import {
61
61
  OnPoolCreatedCallback,
62
62
  PancakeswapV3Factory,
63
63
  } from './pancakeswap-v3-factory';
64
+ import { extractReturnAmountPosition } from '../../executor/utils';
64
65
 
65
66
  type PoolPairsInfo = {
66
67
  token0: Address;
@@ -894,6 +895,14 @@ export class PancakeswapV3
894
895
  dexFuncHasRecipient: true,
895
896
  exchangeData,
896
897
  targetExchange: this.config.router,
898
+ returnAmountPos:
899
+ side === SwapSide.SELL
900
+ ? extractReturnAmountPosition(
901
+ this.routerIface,
902
+ swapFunction,
903
+ 'amountOut',
904
+ )
905
+ : undefined,
897
906
  };
898
907
  }
899
908
 
@@ -398,6 +398,7 @@ export class ParaSwapLimitOrders
398
398
  dexFuncHasRecipient: true,
399
399
  exchangeData: swapData,
400
400
  targetExchange: this.augustusRFQAddress,
401
+ returnAmountPos: undefined,
401
402
  };
402
403
  }
403
404
 
@@ -38,6 +38,7 @@ import PoolABI from '../../abi/platypus/pool.json';
38
38
  import AvaxPoolABI from '../../abi/platypus/avax-pool.json';
39
39
  import AssetABI from '../../abi/platypus/asset.json';
40
40
  import OracleABI from '../../abi/platypus/oracle.json';
41
+ import { extractReturnAmountPosition } from '../../executor/utils';
41
42
 
42
43
  export class Platypus extends SimpleExchange implements IDex<PlatypusData> {
43
44
  static readonly erc20Interface = new Interface(ERC20ABI);
@@ -497,22 +498,34 @@ export class Platypus extends SimpleExchange implements IDex<PlatypusData> {
497
498
  data: PlatypusData,
498
499
  side: SwapSide,
499
500
  ): DexExchangeParam {
501
+ const iface = isETHAddress(srcToken)
502
+ ? Platypus.avaxPoolInterface
503
+ : isETHAddress(destToken)
504
+ ? Platypus.avaxPoolInterface
505
+ : Platypus.poolInterface;
506
+
507
+ const swapFunction = isETHAddress(srcToken)
508
+ ? 'swapFromETH'
509
+ : isETHAddress(destToken)
510
+ ? 'swapToETH'
511
+ : 'swap';
512
+
500
513
  const swapData = isETHAddress(srcToken)
501
- ? Platypus.avaxPoolInterface.encodeFunctionData('swapFromETH', [
514
+ ? iface.encodeFunctionData(swapFunction, [
502
515
  destToken,
503
516
  1,
504
517
  recipient,
505
518
  getLocalDeadlineAsFriendlyPlaceholder(),
506
519
  ])
507
520
  : isETHAddress(destToken)
508
- ? Platypus.avaxPoolInterface.encodeFunctionData('swapToETH', [
521
+ ? iface.encodeFunctionData(swapFunction, [
509
522
  srcToken,
510
523
  srcAmount,
511
524
  1,
512
525
  recipient,
513
526
  getLocalDeadlineAsFriendlyPlaceholder(),
514
527
  ])
515
- : Platypus.poolInterface.encodeFunctionData('swap', [
528
+ : iface.encodeFunctionData(swapFunction, [
516
529
  srcToken,
517
530
  destToken,
518
531
  srcAmount,
@@ -526,6 +539,10 @@ export class Platypus extends SimpleExchange implements IDex<PlatypusData> {
526
539
  dexFuncHasRecipient: true,
527
540
  exchangeData: swapData,
528
541
  targetExchange: data.pool,
542
+ returnAmountPos:
543
+ side === SwapSide.SELL
544
+ ? extractReturnAmountPosition(iface, swapFunction, 'actualToAmount')
545
+ : undefined,
529
546
  };
530
547
  }
531
548
 
@@ -181,6 +181,7 @@ export class PolygonMigrator
181
181
  dexFuncHasRecipient: false,
182
182
  exchangeData: swapData,
183
183
  targetExchange: this.migratorAddress,
184
+ returnAmountPos: undefined,
184
185
  };
185
186
  }
186
187
 
@@ -24,6 +24,7 @@ import { QuickPerpsConfig, Adapters } from './config';
24
24
  import { Vault } from './vault';
25
25
  import ERC20ABI from '../../abi/erc20.json';
26
26
  import { solidityPack } from 'ethers/lib/utils';
27
+ import { extractReturnAmountPosition } from '../../executor/utils';
27
28
 
28
29
  const QuickPerpsGasCost = 300 * 1000;
29
30
 
@@ -228,7 +229,9 @@ export class QuickPerps extends SimpleExchange implements IDex<QuickPerpsData> {
228
229
  data: QuickPerpsData,
229
230
  side: SwapSide,
230
231
  ): DexExchangeParam {
231
- const swapData = Vault.interface.encodeFunctionData('swap', [
232
+ const iface = Vault.interface;
233
+ const functionName = 'swap';
234
+ const swapData = iface.encodeFunctionData(functionName, [
232
235
  srcToken,
233
236
  destToken,
234
237
  recipient,
@@ -241,6 +244,13 @@ export class QuickPerps extends SimpleExchange implements IDex<QuickPerpsData> {
241
244
  targetExchange: this.params.vault,
242
245
  swappedAmountNotPresentInExchangeData: true,
243
246
  transferSrcTokenBeforeSwap: this.params.vault,
247
+ returnAmountPos:
248
+ side === SwapSide.SELL
249
+ ? extractReturnAmountPosition(
250
+ iface,
251
+ functionName,
252
+ )
253
+ : undefined,
244
254
  };
245
255
  }
246
256
 
@@ -104,6 +104,7 @@ export class Smoothy
104
104
  dexFuncHasRecipient: false,
105
105
  exchangeData: swapData,
106
106
  targetExchange: exchange,
107
+ returnAmountPos: undefined,
107
108
  };
108
109
  }
109
110
  }
@@ -683,6 +683,7 @@ export class Solidly extends UniswapV2 {
683
683
  transferSrcTokenBeforeSwap: data.isFeeTokenInRoute
684
684
  ? undefined
685
685
  : data.pools[0].address,
686
+ returnAmountPos: undefined,
686
687
  };
687
688
  }
688
689
  }
@@ -47,7 +47,6 @@ import { assert, DeepReadonly } from 'ts-essentials';
47
47
  import { uniswapV3Math } from './contract-math/uniswap-v3-math';
48
48
  import { Contract } from 'web3-eth-contract';
49
49
  import { AbiItem } from 'web3-utils';
50
- import { OptimalSwapExchange } from '@paraswap/core';
51
50
  import { TickMath } from './contract-math/TickMath';
52
51
  import { OnPoolCreatedCallback, SolidlyV3Factory } from './solidly-v3-factory';
53
52
 
@@ -725,6 +724,7 @@ export class SolidlyV3
725
724
  dexFuncHasRecipient: true,
726
725
  exchangeData: swapData,
727
726
  targetExchange: data.poolAddress,
727
+ returnAmountPos: undefined,
728
728
  };
729
729
  }
730
730
 
@@ -24,6 +24,7 @@ import { Interface } from 'ethers/lib/utils';
24
24
  import { SparkSDaiEventPool } from './spark-sdai-pool';
25
25
  import { BI_POWS } from '../../bigint-constants';
26
26
  import { SDAI_DEPOSIT_GAS_COST, SDAI_REDEEM_GAS_COST } from './constants';
27
+ import { extractReturnAmountPosition } from '../../executor/utils';
27
28
 
28
29
  export class Spark
29
30
  extends SimpleExchange
@@ -241,6 +242,15 @@ export class Spark
241
242
  dexFuncHasRecipient: true,
242
243
  exchangeData: swapData,
243
244
  targetExchange: exchange,
245
+ returnAmountPos: isSell
246
+ ? extractReturnAmountPosition(
247
+ this.sdaiInterface,
248
+ this.isDai(srcToken)
249
+ ? SparkSDaiFunctions.deposit
250
+ : SparkSDaiFunctions.redeem,
251
+ this.isDai(srcToken) ? 'shares' : 'assets',
252
+ )
253
+ : undefined,
244
254
  };
245
255
  }
246
256