@paraswap/dex-lib 3.8.2 → 3.8.3-integral-dex

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 (403) hide show
  1. package/.vscode/launch.json +13 -0
  2. package/.vscode/settings.json +3 -0
  3. package/build/abi/AaveV1_lending_pool.json +27 -0
  4. package/build/abi/Uncompressor.json +250 -0
  5. package/build/abi/integral/factory.json +333 -0
  6. package/build/abi/integral/oracle.json +501 -0
  7. package/build/abi/integral/pool.json +1041 -0
  8. package/build/abi/integral/relayer.json +1536 -0
  9. package/build/abi/oswap/oswap.abi.json +452 -0
  10. package/build/abi/platypus/asset.json +490 -0
  11. package/build/abi/platypus/avax-pool.json +820 -0
  12. package/build/abi/platypus/oracle.json +119 -0
  13. package/build/abi/platypus/pool.json +677 -0
  14. package/build/abi/smardex/all/smardex-router.json +648 -0
  15. package/build/abi/smardex/layer-1/smardex-factory.json +242 -0
  16. package/build/abi/smardex/layer-1/smardex-pool.json +506 -0
  17. package/build/abi/smardex/layer-2/smardex-factory.json +185 -0
  18. package/build/abi/smardex/layer-2/smardex-pool.json +578 -0
  19. package/build/abi/swaap-v1/pool.json +1346 -0
  20. package/build/config.js +1 -1
  21. package/build/dex/aave-v1/aave-v1.d.ts +33 -0
  22. package/build/dex/aave-v1/aave-v1.js +158 -0
  23. package/build/dex/aave-v1/aave-v1.js.map +1 -0
  24. package/build/dex/aave-v1/config.d.ts +11 -0
  25. package/build/dex/aave-v1/config.js +20 -0
  26. package/build/dex/aave-v1/config.js.map +1 -0
  27. package/build/dex/aave-v1/tokens-mainnet.json +134 -0
  28. package/build/dex/aave-v1/tokens.d.ts +3 -0
  29. package/build/dex/aave-v1/tokens.js +50 -0
  30. package/build/dex/aave-v1/tokens.js.map +1 -0
  31. package/build/dex/aave-v1/types.d.ts +12 -0
  32. package/build/dex/aave-v1/types.js +3 -0
  33. package/build/dex/aave-v1/types.js.map +1 -0
  34. package/build/dex/bProtocol.d.ts +18 -0
  35. package/build/dex/bProtocol.js +39 -0
  36. package/build/dex/bProtocol.js.map +1 -0
  37. package/build/dex/bancor.d.ts +26 -0
  38. package/build/dex/bancor.js +58 -0
  39. package/build/dex/bancor.js.map +1 -0
  40. package/build/dex/compound.d.ts +18 -0
  41. package/build/dex/compound.js +46 -0
  42. package/build/dex/compound.js.map +1 -0
  43. package/build/dex/curve-v1-factory/config.js +10 -47
  44. package/build/dex/curve-v1-factory/config.js.map +1 -1
  45. package/build/dex/curve-v1-factory/curve-v1-factory.d.ts +2 -2
  46. package/build/dex/curve-v1-factory/curve-v1-factory.js +36 -96
  47. package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
  48. package/build/dex/curve-v1-factory/price-handlers/functions/constants.js.map +1 -1
  49. package/build/dex/curve-v1-factory/price-handlers/functions/get_dx.js +1 -13
  50. package/build/dex/curve-v1-factory/price-handlers/functions/get_dx.js.map +1 -1
  51. package/build/dex/curve-v1-factory/state-polling-pools/custom-pool-polling.d.ts +2 -2
  52. package/build/dex/curve-v1-factory/state-polling-pools/custom-pool-polling.js +1 -1
  53. package/build/dex/curve-v1-factory/state-polling-pools/custom-pool-polling.js.map +1 -1
  54. package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.js +1 -1
  55. package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.js.map +1 -1
  56. package/build/dex/curve-v1-factory/state-polling-pools/pool-polling-base.d.ts +3 -4
  57. package/build/dex/curve-v1-factory/state-polling-pools/pool-polling-base.js +9 -24
  58. package/build/dex/curve-v1-factory/state-polling-pools/pool-polling-base.js.map +1 -1
  59. package/build/dex/curve-v1-factory/types.d.ts +4 -20
  60. package/build/dex/curve-v1-factory/types.js +3 -11
  61. package/build/dex/curve-v1-factory/types.js.map +1 -1
  62. package/build/dex/curve-v1-stable-ng/config.js +0 -18
  63. package/build/dex/curve-v1-stable-ng/config.js.map +1 -1
  64. package/build/dex/curve-v2.d.ts +58 -0
  65. package/build/dex/curve-v2.js +180 -0
  66. package/build/dex/curve-v2.js.map +1 -0
  67. package/build/dex/dodo-v1.d.ts +33 -0
  68. package/build/dex/dodo-v1.js +63 -0
  69. package/build/dex/dodo-v1.js.map +1 -0
  70. package/build/dex/etherfi/etherfi.d.ts +26 -0
  71. package/build/dex/etherfi/etherfi.js +96 -0
  72. package/build/dex/etherfi/etherfi.js.map +1 -0
  73. package/build/dex/index.js +21 -3
  74. package/build/dex/index.js.map +1 -1
  75. package/build/dex/integral/config.d.ts +4 -0
  76. package/build/dex/integral/config.js +20 -0
  77. package/build/dex/integral/config.js.map +1 -0
  78. package/build/dex/integral/context.d.ts +40 -0
  79. package/build/dex/integral/context.js +158 -0
  80. package/build/dex/integral/context.js.map +1 -0
  81. package/build/dex/integral/helpers.d.ts +17 -0
  82. package/build/dex/integral/helpers.js +157 -0
  83. package/build/dex/integral/helpers.js.map +1 -0
  84. package/build/dex/integral/integral-factory.d.ts +21 -0
  85. package/build/dex/integral/integral-factory.js +92 -0
  86. package/build/dex/integral/integral-factory.js.map +1 -0
  87. package/build/dex/integral/integral-pool.d.ts +46 -0
  88. package/build/dex/integral/integral-pool.js +143 -0
  89. package/build/dex/integral/integral-pool.js.map +1 -0
  90. package/build/dex/integral/integral-pricing.d.ts +18 -0
  91. package/build/dex/integral/integral-pricing.js +114 -0
  92. package/build/dex/integral/integral-pricing.js.map +1 -0
  93. package/build/dex/integral/integral-relayer.d.ts +39 -0
  94. package/build/dex/integral/integral-relayer.js +189 -0
  95. package/build/dex/integral/integral-relayer.js.map +1 -0
  96. package/build/dex/integral/integral-token.d.ts +24 -0
  97. package/build/dex/integral/integral-token.js +56 -0
  98. package/build/dex/integral/integral-token.js.map +1 -0
  99. package/build/dex/integral/integral.d.ts +41 -0
  100. package/build/dex/integral/integral.js +377 -0
  101. package/build/dex/integral/integral.js.map +1 -0
  102. package/build/dex/integral/types.d.ts +84 -0
  103. package/build/dex/integral/types.js +9 -0
  104. package/build/dex/integral/types.js.map +1 -0
  105. package/build/dex/integral/utils-e2e.d.ts +9 -0
  106. package/build/dex/integral/utils-e2e.js +131 -0
  107. package/build/dex/integral/utils-e2e.js.map +1 -0
  108. package/build/dex/integral/utils.d.ts +17 -0
  109. package/build/dex/integral/utils.js +94 -0
  110. package/build/dex/integral/utils.js.map +1 -0
  111. package/build/dex/lido.d.ts +19 -0
  112. package/build/dex/lido.js +42 -0
  113. package/build/dex/lido.js.map +1 -0
  114. package/build/dex/onebit.d.ts +25 -0
  115. package/build/dex/onebit.js +42 -0
  116. package/build/dex/onebit.js.map +1 -0
  117. package/build/dex/oswap/config.d.ts +5 -0
  118. package/build/dex/oswap/config.js +31 -0
  119. package/build/dex/oswap/config.js.map +1 -0
  120. package/build/dex/oswap/oswap-pool.d.ts +51 -0
  121. package/build/dex/oswap/oswap-pool.js +150 -0
  122. package/build/dex/oswap/oswap-pool.js.map +1 -0
  123. package/build/dex/oswap/oswap.d.ts +46 -0
  124. package/build/dex/oswap/oswap.js +266 -0
  125. package/build/dex/oswap/oswap.js.map +1 -0
  126. package/build/dex/oswap/types.d.ts +20 -0
  127. package/build/dex/oswap/types.js +3 -0
  128. package/build/dex/oswap/types.js.map +1 -0
  129. package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js +0 -3
  130. package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js.map +1 -1
  131. package/build/dex/platypus/asset.d.ts +14 -0
  132. package/build/dex/platypus/asset.js +97 -0
  133. package/build/dex/platypus/asset.js.map +1 -0
  134. package/build/dex/platypus/config.d.ts +11 -0
  135. package/build/dex/platypus/config.js +69 -0
  136. package/build/dex/platypus/config.js.map +1 -0
  137. package/build/dex/platypus/platypus.d.ts +62 -0
  138. package/build/dex/platypus/platypus.js +442 -0
  139. package/build/dex/platypus/platypus.js.map +1 -0
  140. package/build/dex/platypus/pool-avax.d.ts +8 -0
  141. package/build/dex/platypus/pool-avax.js +54 -0
  142. package/build/dex/platypus/pool-avax.js.map +1 -0
  143. package/build/dex/platypus/pool-base.d.ts +19 -0
  144. package/build/dex/platypus/pool-base.js +86 -0
  145. package/build/dex/platypus/pool-base.js.map +1 -0
  146. package/build/dex/platypus/pool-pure.d.ts +8 -0
  147. package/build/dex/platypus/pool-pure.js +37 -0
  148. package/build/dex/platypus/pool-pure.js.map +1 -0
  149. package/build/dex/platypus/pool-subscriber.d.ts +14 -0
  150. package/build/dex/platypus/pool-subscriber.js +167 -0
  151. package/build/dex/platypus/pool-subscriber.js.map +1 -0
  152. package/build/dex/platypus/pool.d.ts +8 -0
  153. package/build/dex/platypus/pool.js +58 -0
  154. package/build/dex/platypus/pool.js.map +1 -0
  155. package/build/dex/platypus/types.d.ts +92 -0
  156. package/build/dex/platypus/types.js +10 -0
  157. package/build/dex/platypus/types.js.map +1 -0
  158. package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
  159. package/build/dex/quickswap/spiritswap-v3.js +19 -0
  160. package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
  161. package/build/dex/sdai/config.d.ts +11 -0
  162. package/build/dex/sdai/config.js +21 -0
  163. package/build/dex/sdai/config.js.map +1 -0
  164. package/build/dex/sdai/constants.d.ts +2 -0
  165. package/build/dex/sdai/constants.js +6 -0
  166. package/build/dex/sdai/constants.js.map +1 -0
  167. package/build/dex/sdai/scripts/validate-state.d.ts +1 -0
  168. package/build/dex/sdai/scripts/validate-state.js +102 -0
  169. package/build/dex/sdai/scripts/validate-state.js.map +1 -0
  170. package/build/dex/sdai/sdai-pool.d.ts +16 -0
  171. package/build/dex/sdai/sdai-pool.js +85 -0
  172. package/build/dex/sdai/sdai-pool.js.map +1 -0
  173. package/build/dex/sdai/sdai.d.ts +51 -0
  174. package/build/dex/sdai/sdai.js +172 -0
  175. package/build/dex/sdai/sdai.js.map +1 -0
  176. package/build/dex/sdai/types.d.ts +21 -0
  177. package/build/dex/sdai/types.js +11 -0
  178. package/build/dex/sdai/types.js.map +1 -0
  179. package/build/dex/sdai/utils.d.ts +4 -0
  180. package/build/dex/sdai/utils.js +39 -0
  181. package/build/dex/sdai/utils.js.map +1 -0
  182. package/build/dex/smardex/config.d.ts +4 -0
  183. package/build/dex/smardex/config.js +64 -0
  184. package/build/dex/smardex/config.js.map +1 -0
  185. package/build/dex/smardex/constants.d.ts +18 -0
  186. package/build/dex/smardex/constants.js +33 -0
  187. package/build/dex/smardex/constants.js.map +1 -0
  188. package/build/dex/smardex/sdk/constants.d.ts +6 -0
  189. package/build/dex/smardex/sdk/constants.js +13 -0
  190. package/build/dex/smardex/sdk/constants.js.map +1 -0
  191. package/build/dex/smardex/sdk/core.d.ts +113 -0
  192. package/build/dex/smardex/sdk/core.js +499 -0
  193. package/build/dex/smardex/sdk/core.js.map +1 -0
  194. package/build/dex/smardex/sdk/errors.d.ts +15 -0
  195. package/build/dex/smardex/sdk/errors.js +22 -0
  196. package/build/dex/smardex/sdk/errors.js.map +1 -0
  197. package/build/dex/smardex/sdk/types.d.ts +62 -0
  198. package/build/dex/smardex/sdk/types.js +3 -0
  199. package/build/dex/smardex/sdk/types.js.map +1 -0
  200. package/build/dex/smardex/sdk/utils.d.ts +44 -0
  201. package/build/dex/smardex/sdk/utils.js +133 -0
  202. package/build/dex/smardex/sdk/utils.js.map +1 -0
  203. package/build/dex/smardex/smardex-event-pool.d.ts +28 -0
  204. package/build/dex/smardex/smardex-event-pool.js +119 -0
  205. package/build/dex/smardex/smardex-event-pool.js.map +1 -0
  206. package/build/dex/smardex/smardex.d.ts +65 -0
  207. package/build/dex/smardex/smardex.js +519 -0
  208. package/build/dex/smardex/smardex.js.map +1 -0
  209. package/build/dex/smardex/types.d.ts +55 -0
  210. package/build/dex/smardex/types.js +3 -0
  211. package/build/dex/smardex/types.js.map +1 -0
  212. package/build/dex/smoothy.d.ts +26 -0
  213. package/build/dex/smoothy.js +48 -0
  214. package/build/dex/smoothy.js.map +1 -0
  215. package/build/dex/solidly/forks-override/cone.d.ts +22 -0
  216. package/build/dex/solidly/forks-override/cone.js +53 -0
  217. package/build/dex/solidly/forks-override/cone.js.map +1 -0
  218. package/build/dex/solidly/forks-override/solisnek.d.ts +8 -0
  219. package/build/dex/solidly/forks-override/solisnek.js +15 -0
  220. package/build/dex/solidly/forks-override/solisnek.js.map +1 -0
  221. package/build/dex/stable-pool.d.ts +28 -0
  222. package/build/dex/stable-pool.js +62 -0
  223. package/build/dex/stable-pool.js.map +1 -0
  224. package/build/dex/swaap-v1/config.d.ts +17 -0
  225. package/build/dex/swaap-v1/config.js +56 -0
  226. package/build/dex/swaap-v1/config.js.map +1 -0
  227. package/build/dex/swaap-v1/constants.d.ts +6 -0
  228. package/build/dex/swaap-v1/constants.js +17 -0
  229. package/build/dex/swaap-v1/constants.js.map +1 -0
  230. package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +25 -0
  231. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +62 -0
  232. package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +1 -0
  233. package/build/dex/swaap-v1/libraries/Const.d.ts +18 -0
  234. package/build/dex/swaap-v1/libraries/Const.js +26 -0
  235. package/build/dex/swaap-v1/libraries/Const.js.map +1 -0
  236. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +77 -0
  237. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +316 -0
  238. package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +1 -0
  239. package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +75 -0
  240. package/build/dex/swaap-v1/libraries/LogExpMath.js +418 -0
  241. package/build/dex/swaap-v1/libraries/LogExpMath.js.map +1 -0
  242. package/build/dex/swaap-v1/libraries/MathMMM.d.ts +185 -0
  243. package/build/dex/swaap-v1/libraries/MathMMM.js +453 -0
  244. package/build/dex/swaap-v1/libraries/MathMMM.js.map +1 -0
  245. package/build/dex/swaap-v1/libraries/Num.d.ts +31 -0
  246. package/build/dex/swaap-v1/libraries/Num.js +167 -0
  247. package/build/dex/swaap-v1/libraries/Num.js.map +1 -0
  248. package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +23 -0
  249. package/build/dex/swaap-v1/libraries/PoolQuotations.js +131 -0
  250. package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +1 -0
  251. package/build/dex/swaap-v1/libraries/Struct.d.ts +56 -0
  252. package/build/dex/swaap-v1/libraries/Struct.js +3 -0
  253. package/build/dex/swaap-v1/libraries/Struct.js.map +1 -0
  254. package/build/dex/swaap-v1/swaap-v1-pool.d.ts +45 -0
  255. package/build/dex/swaap-v1/swaap-v1-pool.js +656 -0
  256. package/build/dex/swaap-v1/swaap-v1-pool.js.map +1 -0
  257. package/build/dex/swaap-v1/swaap-v1.d.ts +61 -0
  258. package/build/dex/swaap-v1/swaap-v1.js +369 -0
  259. package/build/dex/swaap-v1/swaap-v1.js.map +1 -0
  260. package/build/dex/swaap-v1/types.d.ts +106 -0
  261. package/build/dex/swaap-v1/types.js +9 -0
  262. package/build/dex/swaap-v1/types.js.map +1 -0
  263. package/build/dex/trader-joe-v2.1.d.ts +43 -0
  264. package/build/dex/trader-joe-v2.1.js +79 -0
  265. package/build/dex/trader-joe-v2.1.js.map +1 -0
  266. package/build/dex/uniswap-v3/contract-math/Oracle.js +4 -4
  267. package/build/dex/uniswap-v3/contract-math/Oracle.js.map +1 -1
  268. package/build/executor/compressor/Compressor.d.ts +23 -0
  269. package/build/executor/compressor/Compressor.js +144 -0
  270. package/build/executor/compressor/Compressor.js.map +1 -0
  271. package/build/executor/compressor/compress.d.ts +17 -0
  272. package/build/executor/compressor/compress.js +187 -0
  273. package/build/executor/compressor/compress.js.map +1 -0
  274. package/build/executor/compressor/compress_functions/addressSubstitution.d.ts +6 -0
  275. package/build/executor/compressor/compress_functions/addressSubstitution.js +29 -0
  276. package/build/executor/compressor/compress_functions/addressSubstitution.js.map +1 -0
  277. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.d.ts +10 -0
  278. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.js +40 -0
  279. package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.js.map +1 -0
  280. package/build/executor/compressor/compress_functions/byteSubstitution.d.ts +11 -0
  281. package/build/executor/compressor/compress_functions/byteSubstitution.js +64 -0
  282. package/build/executor/compressor/compress_functions/byteSubstitution.js.map +1 -0
  283. package/build/executor/compressor/compress_functions/ffSubstitution.d.ts +7 -0
  284. package/build/executor/compressor/compress_functions/ffSubstitution.js +54 -0
  285. package/build/executor/compressor/compress_functions/ffSubstitution.js.map +1 -0
  286. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.d.ts +8 -0
  287. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.js +67 -0
  288. package/build/executor/compressor/compress_functions/findLongestAndSubstitute.js.map +1 -0
  289. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.d.ts +8 -0
  290. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.js +61 -0
  291. package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.js.map +1 -0
  292. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.d.ts +6 -0
  293. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.js +37 -0
  294. package/build/executor/compressor/compress_functions/reverseAddressSubstitution.js.map +1 -0
  295. package/build/executor/compressor/compress_functions/searchUnusedBytes.d.ts +9 -0
  296. package/build/executor/compressor/compress_functions/searchUnusedBytes.js +33 -0
  297. package/build/executor/compressor/compress_functions/searchUnusedBytes.js.map +1 -0
  298. package/build/executor/compressor/fetchSaved.d.ts +0 -0
  299. package/build/executor/compressor/fetchSaved.js +17 -0
  300. package/build/executor/compressor/fetchSaved.js.map +1 -0
  301. package/build/executor/compressor/utils/computeCostL2.d.ts +2 -0
  302. package/build/executor/compressor/utils/computeCostL2.js +14 -0
  303. package/build/executor/compressor/utils/computeCostL2.js.map +1 -0
  304. package/build/executor/compressor/utils/findLongestDuplicatedString.d.ts +2 -0
  305. package/build/executor/compressor/utils/findLongestDuplicatedString.js +30 -0
  306. package/build/executor/compressor/utils/findLongestDuplicatedString.js.map +1 -0
  307. package/build/executor/compressor/utils/getAllIndexes.d.ts +2 -0
  308. package/build/executor/compressor/utils/getAllIndexes.js +12 -0
  309. package/build/executor/compressor/utils/getAllIndexes.js.map +1 -0
  310. package/build/executor/compressor/utils/getByteForAddress.d.ts +2 -0
  311. package/build/executor/compressor/utils/getByteForAddress.js +14 -0
  312. package/build/executor/compressor/utils/getByteForAddress.js.map +1 -0
  313. package/build/executor/compressor/utils/intTo2Bytes.d.ts +2 -0
  314. package/build/executor/compressor/utils/intTo2Bytes.js +14 -0
  315. package/build/executor/compressor/utils/intTo2Bytes.js.map +1 -0
  316. package/build/executor/compressor/utils/intTo3Bytes.d.ts +2 -0
  317. package/build/executor/compressor/utils/intTo3Bytes.js +18 -0
  318. package/build/executor/compressor/utils/intTo3Bytes.js.map +1 -0
  319. package/build/executor/compressor/utils/intToByte.d.ts +2 -0
  320. package/build/executor/compressor/utils/intToByte.js +10 -0
  321. package/build/executor/compressor/utils/intToByte.js.map +1 -0
  322. package/build/generic-swap-transaction-builder.js +3 -1
  323. package/build/generic-swap-transaction-builder.js.map +1 -1
  324. package/build/router/simpleswap.js +3 -1
  325. package/build/router/simpleswap.js.map +1 -1
  326. package/package.json +2 -2
  327. package/src/abi/BProtocol.json +1155 -0
  328. package/src/abi/Jarvis.json +1172 -0
  329. package/src/abi/MStableAsset.json +1545 -0
  330. package/src/abi/OneInchLp.json +1304 -0
  331. package/src/abi/Onebit.json +736 -0
  332. package/src/abi/Shell.json +1294 -0
  333. package/src/abi/TraderJoeV2Router.json +50 -0
  334. package/src/abi/integral/factory.json +333 -0
  335. package/src/abi/integral/oracle.json +501 -0
  336. package/src/abi/integral/pool.json +1041 -0
  337. package/src/abi/integral/relayer.json +1536 -0
  338. package/src/abi/zrx.v2.json +1967 -0
  339. package/src/abi/zrx.v3.json +3454 -0
  340. package/src/abi/zrx.v4.json +2193 -0
  341. package/src/config.ts +1 -1
  342. package/src/dex/OneInchLp.ts +84 -0
  343. package/src/dex/bProtocol/bProtocol-e2e.test.ts +93 -0
  344. package/src/dex/bProtocol/bProtocol.ts +108 -0
  345. package/src/dex/bProtocol/types.ts +13 -0
  346. package/src/dex/curve-v1-factory/config.ts +10 -47
  347. package/src/dex/curve-v1-factory/curve-v1-factory-e2e.test.ts +16 -92
  348. package/src/dex/curve-v1-factory/curve-v1-factory-integration.test.ts +5 -125
  349. package/src/dex/curve-v1-factory/curve-v1-factory.ts +45 -137
  350. package/src/dex/curve-v1-factory/price-handlers/functions/constants.ts +2 -0
  351. package/src/dex/curve-v1-factory/price-handlers/functions/get_dx.ts +1 -24
  352. package/src/dex/curve-v1-factory/state-polling-pools/custom-pool-polling.ts +2 -3
  353. package/src/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.ts +0 -1
  354. package/src/dex/curve-v1-factory/state-polling-pools/pool-polling-base.ts +10 -31
  355. package/src/dex/curve-v1-factory/types.ts +6 -22
  356. package/src/dex/curve-v1-stable-ng/config.ts +0 -18
  357. package/src/dex/curve-v1-stable-ng/curve-v1-stable-ng-e2e.test.ts +0 -17
  358. package/src/dex/index.ts +20 -3
  359. package/src/dex/integral/config.ts +20 -0
  360. package/src/dex/integral/context.ts +287 -0
  361. package/src/dex/integral/integral-e2e.test.ts +86 -0
  362. package/src/dex/integral/integral-events.test.ts +412 -0
  363. package/src/dex/integral/integral-factory.ts +146 -0
  364. package/src/dex/integral/integral-integration.test.ts +221 -0
  365. package/src/dex/integral/integral-pool.ts +198 -0
  366. package/src/dex/integral/integral-pricing.ts +190 -0
  367. package/src/dex/integral/integral-relayer.ts +285 -0
  368. package/src/dex/integral/integral-token.ts +95 -0
  369. package/src/dex/integral/integral.ts +523 -0
  370. package/src/dex/integral/test-artifacts/configs.json +1 -0
  371. package/src/dex/integral/test-artifacts/logs.json +1 -0
  372. package/src/dex/integral/test-artifacts/states.json +1 -0
  373. package/src/dex/integral/types.ts +88 -0
  374. package/src/dex/integral/utils-e2e.ts +194 -0
  375. package/src/dex/integral/utils.ts +146 -0
  376. package/src/dex/jarvis.ts +262 -0
  377. package/src/dex/mStable.ts +147 -0
  378. package/src/dex/onebit/onebit.ts +113 -0
  379. package/src/dex/onebit/types.ts +17 -0
  380. package/src/dex/paraswap-limit-orders/paraswap-limit-orders-e2e.test.ts +68 -152
  381. package/src/dex/paraswap-limit-orders/paraswap-limit-orders.ts +0 -3
  382. package/src/dex/shell.ts +84 -0
  383. package/src/dex/trader-joe-v2.ts +148 -0
  384. package/src/dex/uniswap-v3/contract-math/Oracle.ts +5 -4
  385. package/src/dex/zerox/config.ts +31 -0
  386. package/src/dex/zerox/index.ts +328 -0
  387. package/src/dex/zerox/order.ts +62 -0
  388. package/src/dex/zerox/types.ts +82 -0
  389. package/src/dex/zerox/zerox-e2e.test.ts +110 -0
  390. package/src/generic-swap-transaction-builder.ts +3 -1
  391. package/src/router/simpleswap.ts +3 -1
  392. package/tests/constants-e2e.ts +2 -2
  393. package/tests/utils-e2e.ts +0 -2
  394. package/.idea/aws.xml +0 -17
  395. package/.idea/codeStyles/Project.xml +0 -19
  396. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  397. package/.idea/misc.xml +0 -6
  398. package/.idea/modules.xml +0 -8
  399. package/.idea/paraswap-dex-lib.iml +0 -9
  400. package/.idea/prettier.xml +0 -7
  401. package/.idea/vcs.xml +0 -6
  402. package/src/abi/curve-v1-factory/CurveV1Router.abi.json +0 -331
  403. package/src/dex/curve-v1-factory/optimizer.ts +0 -61
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Compound = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const constants_1 = require("../constants");
9
+ const simple_exchange_1 = require("./simple-exchange");
10
+ const Compound_CETH_json_1 = __importDefault(require("../abi/Compound_CETH.json")); // CETH abi
11
+ const utils_1 = require("../utils");
12
+ var CompoundFunctions;
13
+ (function (CompoundFunctions) {
14
+ CompoundFunctions["redeem"] = "redeem";
15
+ CompoundFunctions["mint"] = "mint";
16
+ })(CompoundFunctions || (CompoundFunctions = {}));
17
+ class Compound extends simple_exchange_1.SimpleExchange {
18
+ constructor(dexHelper) {
19
+ super(dexHelper, 'compound');
20
+ this.cethInterface = new abi_1.Interface(Compound_CETH_json_1.default);
21
+ }
22
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
23
+ const cToken = data.fromCToken ? srcToken : destToken; // Warning
24
+ const payload = this.abiCoder.encodeParameter({
25
+ ParentStruct: {
26
+ cToken: 'address',
27
+ },
28
+ }, { cToken });
29
+ return {
30
+ // target exchange is not used by the contract
31
+ targetExchange: constants_1.NULL_ADDRESS,
32
+ payload,
33
+ networkFee: '0',
34
+ };
35
+ }
36
+ async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
37
+ const cToken = data.fromCToken ? srcToken : destToken;
38
+ const swapData = (0, utils_1.isETHAddress)(srcToken)
39
+ ? this.cethInterface.encodeFunctionData(CompoundFunctions.mint)
40
+ : this.erc20Interface.encodeFunctionData(data.fromCToken ? CompoundFunctions.redeem : CompoundFunctions.mint, [srcAmount]);
41
+ return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, cToken, undefined, undefined, undefined, data.fromCToken);
42
+ }
43
+ }
44
+ exports.Compound = Compound;
45
+ Compound.dexKeys = ['compound'];
46
+ //# sourceMappingURL=compound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compound.js","sourceRoot":"","sources":["../../src/dex/compound.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAC7D,4CAAsD;AAGtD,uDAAmD;AACnD,mFAA6C,CAAC,WAAW;AACzD,oCAAwC;AAQxC,IAAK,iBAGJ;AAHD,WAAK,iBAAiB;IACpB,sCAAiB,CAAA;IACjB,kCAAa,CAAA;AACf,CAAC,EAHI,iBAAiB,KAAjB,iBAAiB,QAGrB;AAED,MAAa,QACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,eAAS,CAAC,4BAAsB,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAkB,EAClB,IAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;QAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,MAAM,EAAE,SAAS;aAClB;SACF,EACD,EAAE,MAAM,EAAE,CACX,CAAC;QAEF,OAAO;YACL,8CAA8C;YAC9C,cAAc,EAAE,wBAAY;YAC5B,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAkB,EAClB,IAAc;QAEd,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CACpC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EACnE,CAAC,SAAS,CAAC,CACZ,CAAC;QAEN,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAS,EACT,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;;AAnEH,4BAoEC;AAhEQ,gBAAO,GAAG,CAAC,UAAU,CAAC,CAAC"}
@@ -19,7 +19,6 @@ const CurveV1FactoryConfig = {
19
19
  maxPlainCoins: constants_2.FACTORY_MAX_PLAIN_COINS,
20
20
  },
21
21
  ],
22
- router: '0x16C6521Dff6baB339122a0FE25a9116693265353',
23
22
  stateUpdatePeriodMs: 5 * 1000,
24
23
  disabledPools: new Set([
25
24
  '0x28B0Cf1baFB707F2c6826d10caf6DD901a6540C5', // It is rug pool token
@@ -216,8 +215,11 @@ const CurveV1FactoryConfig = {
216
215
  address: '0x722272D36ef0Da72FF51c5A65Db7b870E2e8D4ee',
217
216
  maxPlainCoins: constants_2.FACTORY_MAX_PLAIN_COINS,
218
217
  },
218
+ {
219
+ address: '0x1764ee18e8B3ccA4787249Ceb249356192594585',
220
+ isStableNg: true,
221
+ },
219
222
  ],
220
- router: '0x0DCDED3545D565bA3B19E683431381007245d983',
221
223
  stateUpdatePeriodMs: 2 * 1000,
222
224
  disabledPools: new Set([
223
225
  '0x666Dc3b4baBfd063FaF965BD020024AF0dC51B64',
@@ -329,7 +331,6 @@ const CurveV1FactoryConfig = {
329
331
  maxPlainCoins: constants_2.FACTORY_MAX_PLAIN_COINS,
330
332
  },
331
333
  ],
332
- router: '0x0DCDED3545D565bA3B19E683431381007245d983',
333
334
  stateUpdatePeriodMs: 2 * 1000,
334
335
  disabledPools: new Set([]),
335
336
  disabledImplementations: new Set([]),
@@ -450,7 +451,6 @@ const CurveV1FactoryConfig = {
450
451
  maxPlainCoins: constants_2.FACTORY_MAX_PLAIN_COINS,
451
452
  },
452
453
  ],
453
- router: '0x0DCDED3545D565bA3B19E683431381007245d983',
454
454
  stateUpdatePeriodMs: 2 * 1000,
455
455
  // FIX: This must be removed when we go for full CurveV1 event based support
456
456
  disabledPools: new Set(['0x16a7da911a4dd1d83f3ff066fe28f3c792c50d90']),
@@ -537,7 +537,6 @@ const CurveV1FactoryConfig = {
537
537
  maxPlainCoins: constants_2.FACTORY_MAX_PLAIN_COINS,
538
538
  },
539
539
  ],
540
- router: '0x2191718CD32d02B8E60BAdFFeA33E4B5DD9A0A0D',
541
540
  stateUpdatePeriodMs: 2 * 1000,
542
541
  disabledPools: new Set([]),
543
542
  disabledImplementations: new Set([]),
@@ -669,7 +668,6 @@ const CurveV1FactoryConfig = {
669
668
  maxPlainCoins: constants_2.FACTORY_MAX_PLAIN_COINS,
670
669
  },
671
670
  ],
672
- router: '0x0DCDED3545D565bA3B19E683431381007245d983',
673
671
  stateUpdatePeriodMs: 2 * 1000,
674
672
  disabledPools: new Set([]),
675
673
  disabledImplementations: new Set([]),
@@ -782,7 +780,6 @@ const CurveV1FactoryConfig = {
782
780
  maxPlainCoins: constants_2.FACTORY_MAX_PLAIN_COINS,
783
781
  },
784
782
  ],
785
- router: '0x4f37A9d177470499A2dD084621020b023fcffc1F',
786
783
  stateUpdatePeriodMs: 2 * 1000,
787
784
  disabledPools: new Set([]),
788
785
  disabledImplementations: new Set([]),
@@ -821,10 +818,13 @@ exports.Adapters = {
821
818
  index: 3,
822
819
  },
823
820
  ],
824
- [constants_1.SwapSide.BUY]: [
821
+ },
822
+ [constants_1.Network.BSC]: {
823
+ [constants_1.SwapSide.SELL]: [
824
+ // use for beltfi (deprecated)
825
825
  {
826
- name: 'BuyAdapter02',
827
- index: 5,
826
+ name: 'BscAdapter01',
827
+ index: 2,
828
828
  },
829
829
  ],
830
830
  },
@@ -835,12 +835,6 @@ exports.Adapters = {
835
835
  index: 3,
836
836
  },
837
837
  ],
838
- [constants_1.SwapSide.BUY]: [
839
- {
840
- name: 'PolygonBuyAdapter',
841
- index: 10,
842
- },
843
- ],
844
838
  },
845
839
  [constants_1.Network.AVALANCHE]: {
846
840
  [constants_1.SwapSide.SELL]: [
@@ -849,12 +843,6 @@ exports.Adapters = {
849
843
  index: 5,
850
844
  },
851
845
  ],
852
- [constants_1.SwapSide.BUY]: [
853
- {
854
- name: 'AvalancheBuyAdapter',
855
- index: 9,
856
- },
857
- ],
858
846
  },
859
847
  [constants_1.Network.FANTOM]: {
860
848
  [constants_1.SwapSide.SELL]: [
@@ -863,12 +851,6 @@ exports.Adapters = {
863
851
  index: 3,
864
852
  },
865
853
  ],
866
- [constants_1.SwapSide.BUY]: [
867
- {
868
- name: 'FantomBuyAdapter',
869
- index: 6,
870
- },
871
- ],
872
854
  },
873
855
  [constants_1.Network.ARBITRUM]: {
874
856
  [constants_1.SwapSide.SELL]: [
@@ -877,12 +859,6 @@ exports.Adapters = {
877
859
  index: 6,
878
860
  },
879
861
  ],
880
- [constants_1.SwapSide.BUY]: [
881
- {
882
- name: 'ArbitrumBuyAdapter',
883
- index: 12,
884
- },
885
- ],
886
862
  },
887
863
  [constants_1.Network.OPTIMISM]: {
888
864
  [constants_1.SwapSide.SELL]: [
@@ -891,12 +867,6 @@ exports.Adapters = {
891
867
  index: 5,
892
868
  },
893
869
  ],
894
- [constants_1.SwapSide.BUY]: [
895
- {
896
- name: 'OptimismBuyAdapter',
897
- index: 8,
898
- },
899
- ],
900
870
  },
901
871
  [constants_1.Network.BASE]: {
902
872
  [constants_1.SwapSide.SELL]: [
@@ -905,12 +875,6 @@ exports.Adapters = {
905
875
  index: 3,
906
876
  },
907
877
  ],
908
- [constants_1.SwapSide.BUY]: [
909
- {
910
- name: 'BaseBuyAdapter',
911
- index: 9,
912
- },
913
- ],
914
878
  },
915
879
  };
916
880
  // This become quite ugly :(
@@ -962,7 +926,6 @@ const configAddressesNormalizer = (config) => {
962
926
  address: e.address.toLowerCase(),
963
927
  }))
964
928
  : _config.factories,
965
- router: _config.router,
966
929
  stateUpdatePeriodMs: _config.stateUpdatePeriodMs,
967
930
  factoryPoolImplementations,
968
931
  customPools,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/curve-v1-factory/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/curve-v1-factory/config.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, Exchan
6
6
  import { Network } from '../../constants';
7
7
  import { IDex } from '../idex';
8
8
  import { IDexHelper } from '../../dex-helper/idex-helper';
9
- import { CurveV1FactoryData, CurveV1FactoryDirectSwap, CurveV1FactoryIfaces, DirectCurveV1FactoryParamV6, DirectCurveV1Param, ImplementationNames } from './types';
9
+ import { CurveV1FactoryData, CurveV1FactoryDirectSwap, CurveV1FactoryIfaces, DirectCurveV1FactoryParamV6, DirectCurveV1Param } from './types';
10
10
  import { SimpleExchange } from '../simple-exchange';
11
11
  import { CurveV1FactoryPoolManager } from './curve-v1-pool-manager';
12
12
  export declare const DefaultCoinsABI: AbiItem;
@@ -29,7 +29,7 @@ export declare class CurveV1Factory extends SimpleExchange implements IDex<Curve
29
29
  readonly SRC_TOKEN_DEX_TRANSFERS = 1;
30
30
  readonly DEST_TOKEN_DEX_TRANSFERS = 1;
31
31
  readonly directSwapIface: Interface;
32
- protected factoryImplementationsSupportBuySide: Set<ImplementationNames>;
32
+ protected buySideSupported: boolean;
33
33
  static dexKeysWithNetwork: {
34
34
  key: string;
35
35
  networks: Network[];
@@ -40,7 +40,6 @@ const config_1 = require("./config");
40
40
  const constants_2 = require("./constants");
41
41
  const curve_v1_pool_manager_1 = require("./curve-v1-pool-manager");
42
42
  const Curve_json_1 = __importDefault(require("../../abi/Curve.json"));
43
- const CurveV1Router_abi_json_1 = __importDefault(require("../../abi/curve-v1-factory/CurveV1Router.abi.json"));
44
43
  const DirectSwap_json_1 = __importDefault(require("../../abi/DirectSwap.json"));
45
44
  const FactoryCurveV1_json_1 = __importDefault(require("../../abi/curve-v1-factory/FactoryCurveV1.json"));
46
45
  const ThreePool_json_1 = __importDefault(require("../../abi/curve-v1-factory/ThreePool.json"));
@@ -54,7 +53,6 @@ const price_handler_1 = require("./price-handlers/price-handler");
54
53
  const utils_2 = require("ethers/lib/utils");
55
54
  const encoder_1 = require("../../lib/curve/encoder");
56
55
  const packer_1 = require("../curve-v1/packer");
57
- const utils_3 = require("../../executor/utils");
58
56
  exports.DefaultCoinsABI = {
59
57
  type: 'function',
60
58
  name: 'coins',
@@ -91,16 +89,12 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
91
89
  this.SRC_TOKEN_DEX_TRANSFERS = 1;
92
90
  this.DEST_TOKEN_DEX_TRANSFERS = 1;
93
91
  this.directSwapIface = new abi_1.Interface(DirectSwap_json_1.default);
94
- this.factoryImplementationsSupportBuySide = new Set([
95
- types_1.FactoryImplementationNames.FACTORY_PLAIN_2_CRV_EMA,
96
- types_1.FactoryImplementationNames.FACTORY_STABLE_NG,
97
- ]);
92
+ this.buySideSupported = false;
98
93
  this.logger = dexHelper.getLogger(`${this.dexKey}-${this.network}`);
99
94
  this.factoryAddresses =
100
95
  this.config.factories?.map(e => e.address.toLowerCase()) || [];
101
96
  this.ifaces = {
102
97
  exchangeRouter: new abi_1.Interface(Curve_json_1.default),
103
- curveV1Router: new abi_1.Interface(CurveV1Router_abi_json_1.default),
104
98
  factory: new abi_1.Interface(FactoryCurveV1_json_1.default),
105
99
  erc20: new abi_1.Interface(erc20_json_1.default),
106
100
  threePool: new abi_1.Interface(ThreePool_json_1.default),
@@ -371,6 +365,9 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
371
365
  return `${this.dexKey}_${poolAddress}_${isMeta}`;
372
366
  }
373
367
  async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
368
+ if (!this.buySideSupported && side === core_1.SwapSide.BUY) {
369
+ return [];
370
+ }
374
371
  const _srcToken = this.needWrapNative
375
372
  ? this.dexHelper.config.wrapETH(srcToken)
376
373
  : srcToken;
@@ -382,10 +379,7 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
382
379
  if (srcTokenAddress === destTokenAddress) {
383
380
  return [];
384
381
  }
385
- let pools = this.poolManager.getPoolsForPair(srcTokenAddress, destTokenAddress);
386
- if (side === core_1.SwapSide.BUY) {
387
- pools = pools.filter(pool => this.factoryImplementationsSupportBuySide.has(pool.implementationName));
388
- }
382
+ const pools = this.poolManager.getPoolsForPair(srcTokenAddress, destTokenAddress);
389
383
  return pools.map(pool => this.getPoolIdentifier(pool.address, pool.isMetaPool));
390
384
  }
391
385
  async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools, transferFees = {
@@ -395,6 +389,9 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
395
389
  destDexFee: 0,
396
390
  }) {
397
391
  try {
392
+ if (!this.buySideSupported && side === core_1.SwapSide.BUY) {
393
+ return null;
394
+ }
398
395
  const _isSrcTokenTransferFeeToBeExchanged = (0, utils_1.isSrcTokenTransferFeeToBeExchanged)(transferFees);
399
396
  const _srcToken = this.needWrapNative
400
397
  ? this.dexHelper.config.wrapETH(srcToken)
@@ -417,9 +414,6 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
417
414
  else {
418
415
  pools = this.poolManager.getPoolsForPair(srcTokenAddress, destTokenAddress, _isSrcTokenTransferFeeToBeExchanged);
419
416
  }
420
- if (side === core_1.SwapSide.BUY) {
421
- pools = pools.filter(pool => this.factoryImplementationsSupportBuySide.has(pool.implementationName));
422
- }
423
417
  if (pools.length <= 0) {
424
418
  return null;
425
419
  }
@@ -456,7 +450,7 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
456
450
  }
457
451
  let outputs = this.poolManager
458
452
  .getPriceHandler(pool.implementationAddress)
459
- .getOutputs(side, state, amountsWithUnitAndFee, poolData.path[0].i, poolData.path[0].j, poolData.path[0].underlyingSwap);
453
+ .getOutputs(side, state, amountsWithUnitAndFee, poolData.i, poolData.j, poolData.underlyingSwap);
460
454
  outputs = (0, token_transfer_fee_1.applyTransferFee)(outputs, side, transferFees.destDexFee, this.DEST_TOKEN_DEX_TRANSFERS);
461
455
  return {
462
456
  prices: [0n, ...outputs.slice(1)],
@@ -486,10 +480,9 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
486
480
  CALLDATA_GAS_COST.BOOL);
487
481
  }
488
482
  getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
489
- if (data.path.length > 1) {
490
- throw new Error('Multihop is not supported by v5');
491
- }
492
- const { i, j, underlyingSwap } = data.path[0];
483
+ if (!this.buySideSupported && side === core_1.SwapSide.BUY)
484
+ throw new Error(`Buy not supported`);
485
+ const { i, j, underlyingSwap } = data;
493
486
  const payload = this.abiCoder.encodeParameter({
494
487
  ParentStruct: {
495
488
  i: 'int128',
@@ -499,7 +492,7 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
499
492
  },
500
493
  }, { i, j, deadline: 0, underlyingSwap });
501
494
  return {
502
- targetExchange: data.path[0].exchange,
495
+ targetExchange: data.exchange,
503
496
  payload,
504
497
  networkFee: '0',
505
498
  };
@@ -520,7 +513,7 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
520
513
  (0, ts_essentials_1.assert)(optimalSwapExchange.data !== undefined, `preProcessTransaction: data field is missing`);
521
514
  let isApproved;
522
515
  try {
523
- isApproved = await this.dexHelper.augustusApprovals.hasApproval(options.executionContractAddress, this.dexHelper.config.wrapETH(srcToken).address, optimalSwapExchange.data.path[0].exchange);
516
+ isApproved = await this.dexHelper.augustusApprovals.hasApproval(options.executionContractAddress, this.dexHelper.config.wrapETH(srcToken).address, optimalSwapExchange.data.exchange);
524
517
  }
525
518
  catch (e) {
526
519
  this.logger.error(`preProcessTransaction failed to retrieve allowance info: `, e);
@@ -542,9 +535,6 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
542
535
  if (contractMethod !== constants_2.DIRECT_METHOD_NAME) {
543
536
  throw new Error(`Invalid contract method ${contractMethod}`);
544
537
  }
545
- if (data.path.length > 1) {
546
- throw new Error('Multihop is not supported by v5');
547
- }
548
538
  (0, ts_essentials_1.assert)(side === core_1.SwapSide.SELL, 'Buy not supported');
549
539
  let isApproved = !!data.isApproved;
550
540
  if (data.isApproved === undefined) {
@@ -553,16 +543,16 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
553
543
  const swapParams = [
554
544
  srcToken,
555
545
  destToken,
556
- data.path[0].exchange,
546
+ data.exchange,
557
547
  srcAmount,
558
548
  destAmount,
559
549
  expectedAmount,
560
550
  feePercent,
561
- data.path[0].i.toString(),
562
- data.path[0].j.toString(),
551
+ data.i.toString(),
552
+ data.j.toString(),
563
553
  partner,
564
554
  isApproved,
565
- data.path[0].underlyingSwap
555
+ data.underlyingSwap
566
556
  ? types_1.CurveV1SwapType.EXCHANGE_UNDERLYING
567
557
  : types_1.CurveV1SwapType.EXCHANGE,
568
558
  beneficiary,
@@ -586,20 +576,17 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
586
576
  if (contractMethod !== constants_2.DIRECT_METHOD_NAME_V6) {
587
577
  throw new Error(`Invalid contract method ${contractMethod}`);
588
578
  }
589
- if (data.path.length > 1) {
590
- throw new Error('Multihop is not supported by direct method');
591
- }
592
579
  (0, ts_essentials_1.assert)(side === core_1.SwapSide.SELL, 'Buy not supported');
593
580
  const metadata = (0, utils_2.hexConcat)([
594
581
  (0, utils_2.hexZeroPad)((0, utils_1.uuidToBytes16)(uuid), 16),
595
582
  (0, utils_2.hexZeroPad)((0, utils_2.hexlify)(blockNumber), 16),
596
583
  ]);
597
584
  const swapParams = [
598
- (0, encoder_1.packCurveData)(data.path[0].exchange, !data.isApproved, // approve flag, if not approved then set to true
599
- (0, utils_1.isETHAddress)(destToken) ? 0 : (0, utils_1.isETHAddress)(srcToken) ? 3 : 0, data.path[0].underlyingSwap
585
+ (0, encoder_1.packCurveData)(data.exchange, !data.isApproved, // approve flag, if not approved then set to true
586
+ (0, utils_1.isETHAddress)(destToken) ? 0 : (0, utils_1.isETHAddress)(srcToken) ? 3 : 0, data.underlyingSwap
600
587
  ? types_1.CurveV1SwapType.EXCHANGE_UNDERLYING
601
588
  : types_1.CurveV1SwapType.EXCHANGE).toString(),
602
- (0, packer_1.encodeCurveAssets)(data.path[0].i, data.path[0].j).toString(),
589
+ (0, packer_1.encodeCurveAssets)(data.i, data.j).toString(),
603
590
  srcToken,
604
591
  destToken,
605
592
  fromAmount,
@@ -626,10 +613,9 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
626
613
  return [constants_2.DIRECT_METHOD_NAME];
627
614
  }
628
615
  async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
629
- if (data.path.length > 1) {
630
- throw new Error('Multihop is not supported by v5');
631
- }
632
- const { exchange, i, j, underlyingSwap } = data.path[0];
616
+ if (!this.buySideSupported && side === core_1.SwapSide.BUY)
617
+ throw new Error(`Buy not supported`);
618
+ const { exchange, i, j, underlyingSwap } = data;
633
619
  const defaultArgs = [i, j, srcAmount, constants_2.MIN_AMOUNT_TO_RECEIVE];
634
620
  const swapMethod = underlyingSwap
635
621
  ? types_1.CurveSwapFunctions.exchange_underlying
@@ -641,68 +627,22 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
641
627
  return [constants_2.DIRECT_METHOD_NAME_V6];
642
628
  }
643
629
  getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
644
- if (data.path.length === 1) {
645
- // Single pool encoding
646
- const { exchange, i, j, underlyingSwap } = data.path[0];
647
- const minAmountToReceive = side === core_1.SwapSide.SELL ? constants_2.MIN_AMOUNT_TO_RECEIVE : destAmount;
648
- const defaultArgs = [i, j, srcAmount, minAmountToReceive];
649
- const swapMethod = underlyingSwap
650
- ? types_1.CurveSwapFunctions.exchange_underlying
651
- : types_1.CurveSwapFunctions.exchange;
652
- const exchangeData = this.ifaces.exchangeRouter.encodeFunctionData(swapMethod, defaultArgs);
653
- return {
654
- exchangeData,
655
- needWrapNative: this.needWrapNative,
656
- sendEthButSupportsInsertFromAmount: true,
657
- dexFuncHasRecipient: false,
658
- targetExchange: exchange,
659
- returnAmountPos: undefined,
660
- };
661
- }
662
- // Multihop case encoding
663
- // Curve Ng Router exchange function params description https://github.com/curvefi/curve-router-ng/blob/master/contracts/Router.vy#L180
664
- const pathLength = 11;
665
- const swapParamsLength = 5;
666
- const poolsLength = 5;
667
- const path = data.path
668
- .map((item, index) => index === 0
669
- ? [item.tokenIn, item.exchange, item.tokenOut] // we need tokenIn only for the first item because there is no prev pool
670
- : [item.exchange, item.tokenOut])
671
- .flat();
672
- while (path.length < pathLength) {
673
- path.push(constants_1.NULL_ADDRESS);
674
- }
675
- const swapParams = data.path.map(item => [
676
- item.i,
677
- item.j,
678
- item.underlyingSwap
679
- ? types_1.CurveRouterSwapType.exchange_underlying
680
- : types_1.CurveRouterSwapType.exchange,
681
- types_1.CurveRouterPoolType.stable,
682
- item.n_coins,
683
- ]);
684
- while (swapParams.length < swapParamsLength) {
685
- swapParams.push([0, 0, 0, 0, 0]);
686
- }
687
- const pools = [];
688
- while (pools.length < poolsLength) {
689
- pools.push(constants_1.NULL_ADDRESS);
690
- }
691
- const exchangeData = this.ifaces.curveV1Router.encodeFunctionData(`exchange(address[${pathLength}], uint256[5][${swapParamsLength}], uint256, uint256, address[${poolsLength}], address)`, [
692
- path,
693
- swapParams,
694
- srcAmount,
695
- side === core_1.SwapSide.SELL ? constants_2.MIN_AMOUNT_TO_RECEIVE : destAmount,
696
- pools,
697
- recipient,
698
- ]);
630
+ if (!this.buySideSupported && side === core_1.SwapSide.BUY)
631
+ throw new Error(`Buy not supported`);
632
+ const { exchange, i, j, underlyingSwap } = data;
633
+ const minAmountToReceive = side === core_1.SwapSide.SELL ? constants_2.MIN_AMOUNT_TO_RECEIVE : destAmount;
634
+ const defaultArgs = [i, j, srcAmount, minAmountToReceive];
635
+ const swapMethod = underlyingSwap
636
+ ? types_1.CurveSwapFunctions.exchange_underlying
637
+ : types_1.CurveSwapFunctions.exchange;
638
+ const exchangeData = this.ifaces.exchangeRouter.encodeFunctionData(swapMethod, defaultArgs);
699
639
  return {
700
640
  exchangeData,
701
641
  needWrapNative: this.needWrapNative,
702
642
  sendEthButSupportsInsertFromAmount: true,
703
- dexFuncHasRecipient: true,
704
- targetExchange: this.config.router,
705
- returnAmountPos: (0, utils_3.extractReturnAmountPosition)(this.ifaces.curveV1Router, `exchange(address[${pathLength}], uint256[5][${swapParamsLength}], uint256, uint256, address[${poolsLength}], address)`),
643
+ dexFuncHasRecipient: false,
644
+ targetExchange: exchange,
645
+ returnAmountPos: undefined,
706
646
  };
707
647
  }
708
648
  async updatePoolState() {