v-swap-smart-order-router 3.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/CHANGELOG.md +255 -0
  2. package/LICENSE +674 -0
  3. package/README.md +248 -0
  4. package/build/main/index.d.ts +3 -0
  5. package/build/main/index.js +20 -0
  6. package/build/main/providers/cache-node.d.ts +9 -0
  7. package/build/main/providers/cache-node.js +19 -0
  8. package/build/main/providers/cache.d.ts +13 -0
  9. package/build/main/providers/cache.js +3 -0
  10. package/build/main/providers/caching/route/index.d.ts +2 -0
  11. package/build/main/providers/caching/route/index.js +19 -0
  12. package/build/main/providers/caching/route/model/cache-mode.d.ts +16 -0
  13. package/build/main/providers/caching/route/model/cache-mode.js +21 -0
  14. package/build/main/providers/caching/route/model/cached-route.d.ts +26 -0
  15. package/build/main/providers/caching/route/model/cached-route.js +30 -0
  16. package/build/main/providers/caching/route/model/cached-routes.d.ts +63 -0
  17. package/build/main/providers/caching/route/model/cached-routes.js +73 -0
  18. package/build/main/providers/caching/route/model/index.d.ts +3 -0
  19. package/build/main/providers/caching/route/model/index.js +20 -0
  20. package/build/main/providers/caching/route/route-caching-provider.d.ts +91 -0
  21. package/build/main/providers/caching/route/route-caching-provider.js +65 -0
  22. package/build/main/providers/caching-gas-provider.d.ts +23 -0
  23. package/build/main/providers/caching-gas-provider.js +37 -0
  24. package/build/main/providers/caching-token-list-provider.d.ts +40 -0
  25. package/build/main/providers/caching-token-list-provider.js +123 -0
  26. package/build/main/providers/caching-token-provider.d.ts +25 -0
  27. package/build/main/providers/caching-token-provider.js +202 -0
  28. package/build/main/providers/eip-1559-gas-price-provider.d.ts +31 -0
  29. package/build/main/providers/eip-1559-gas-price-provider.js +66 -0
  30. package/build/main/providers/eth-estimate-gas-provider.d.ts +16 -0
  31. package/build/main/providers/eth-estimate-gas-provider.js +74 -0
  32. package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  33. package/build/main/providers/eth-gas-station-info-gas-price-provider.js +37 -0
  34. package/build/main/providers/gas-price-provider.d.ts +10 -0
  35. package/build/main/providers/gas-price-provider.js +10 -0
  36. package/build/main/providers/index.d.ts +37 -0
  37. package/build/main/providers/index.js +54 -0
  38. package/build/main/providers/legacy-gas-price-provider.d.ts +7 -0
  39. package/build/main/providers/legacy-gas-price-provider.js +20 -0
  40. package/build/main/providers/multicall-provider.d.ts +82 -0
  41. package/build/main/providers/multicall-provider.js +15 -0
  42. package/build/main/providers/multicall-uniswap-provider.d.ts +37 -0
  43. package/build/main/providers/multicall-uniswap-provider.js +163 -0
  44. package/build/main/providers/on-chain-gas-price-provider.d.ts +19 -0
  45. package/build/main/providers/on-chain-gas-price-provider.js +38 -0
  46. package/build/main/providers/on-chain-quote-provider.d.ts +221 -0
  47. package/build/main/providers/on-chain-quote-provider.js +523 -0
  48. package/build/main/providers/provider.d.ts +10 -0
  49. package/build/main/providers/provider.js +3 -0
  50. package/build/main/providers/simulation-provider.d.ts +42 -0
  51. package/build/main/providers/simulation-provider.js +130 -0
  52. package/build/main/providers/static-gas-price-provider.d.ts +7 -0
  53. package/build/main/providers/static-gas-price-provider.js +13 -0
  54. package/build/main/providers/swap-router-provider.d.ts +31 -0
  55. package/build/main/providers/swap-router-provider.js +42 -0
  56. package/build/main/providers/tenderly-simulation-provider.d.ts +45 -0
  57. package/build/main/providers/tenderly-simulation-provider.js +254 -0
  58. package/build/main/providers/token-provider.d.ts +114 -0
  59. package/build/main/providers/token-provider.js +297 -0
  60. package/build/main/providers/token-validator-provider.d.ts +42 -0
  61. package/build/main/providers/token-validator-provider.js +95 -0
  62. package/build/main/providers/uri-subgraph-provider.d.ts +20 -0
  63. package/build/main/providers/uri-subgraph-provider.js +65 -0
  64. package/build/main/providers/v2/caching-pool-provider.d.ts +34 -0
  65. package/build/main/providers/v2/caching-pool-provider.js +88 -0
  66. package/build/main/providers/v2/caching-subgraph-provider.d.ts +23 -0
  67. package/build/main/providers/v2/caching-subgraph-provider.js +34 -0
  68. package/build/main/providers/v2/pool-provider.d.ts +60 -0
  69. package/build/main/providers/v2/pool-provider.js +110 -0
  70. package/build/main/providers/v2/quote-provider.d.ts +33 -0
  71. package/build/main/providers/v2/quote-provider.js +91 -0
  72. package/build/main/providers/v2/static-subgraph-provider.d.ts +20 -0
  73. package/build/main/providers/v2/static-subgraph-provider.js +103 -0
  74. package/build/main/providers/v2/subgraph-provider-with-fallback.d.ts +19 -0
  75. package/build/main/providers/v2/subgraph-provider-with-fallback.js +35 -0
  76. package/build/main/providers/v2/subgraph-provider.d.ts +34 -0
  77. package/build/main/providers/v2/subgraph-provider.js +135 -0
  78. package/build/main/providers/v2/uri-subgraph-provider.d.ts +4 -0
  79. package/build/main/providers/v2/uri-subgraph-provider.js +8 -0
  80. package/build/main/providers/v3/caching-pool-provider.d.ts +33 -0
  81. package/build/main/providers/v3/caching-pool-provider.js +77 -0
  82. package/build/main/providers/v3/caching-subgraph-provider.d.ts +23 -0
  83. package/build/main/providers/v3/caching-subgraph-provider.js +34 -0
  84. package/build/main/providers/v3/gas-data-provider.d.ts +57 -0
  85. package/build/main/providers/v3/gas-data-provider.js +66 -0
  86. package/build/main/providers/v3/pool-provider.d.ts +61 -0
  87. package/build/main/providers/v3/pool-provider.js +123 -0
  88. package/build/main/providers/v3/static-subgraph-provider.d.ts +21 -0
  89. package/build/main/providers/v3/static-subgraph-provider.js +203 -0
  90. package/build/main/providers/v3/subgraph-provider-with-fallback.d.ts +15 -0
  91. package/build/main/providers/v3/subgraph-provider-with-fallback.js +31 -0
  92. package/build/main/providers/v3/subgraph-provider.d.ts +37 -0
  93. package/build/main/providers/v3/subgraph-provider.js +145 -0
  94. package/build/main/providers/v3/uri-subgraph-provider.d.ts +4 -0
  95. package/build/main/providers/v3/uri-subgraph-provider.js +8 -0
  96. package/build/main/routers/alpha-router/alpha-router.d.ts +267 -0
  97. package/build/main/routers/alpha-router/alpha-router.js +825 -0
  98. package/build/main/routers/alpha-router/config.d.ts +4 -0
  99. package/build/main/routers/alpha-router/config.js +93 -0
  100. package/build/main/routers/alpha-router/entities/index.d.ts +1 -0
  101. package/build/main/routers/alpha-router/entities/index.js +18 -0
  102. package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +163 -0
  103. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +143 -0
  104. package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +19 -0
  105. package/build/main/routers/alpha-router/functions/best-swap-route.js +364 -0
  106. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  107. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js +18 -0
  108. package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +8 -0
  109. package/build/main/routers/alpha-router/functions/compute-all-routes.js +72 -0
  110. package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +78 -0
  111. package/build/main/routers/alpha-router/functions/get-candidate-pools.js +761 -0
  112. package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +83 -0
  113. package/build/main/routers/alpha-router/gas-models/gas-model.js +68 -0
  114. package/build/main/routers/alpha-router/gas-models/index.d.ts +2 -0
  115. package/build/main/routers/alpha-router/gas-models/index.js +19 -0
  116. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +25 -0
  117. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +175 -0
  118. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +29 -0
  119. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +167 -0
  120. package/build/main/routers/alpha-router/gas-models/v3/gas-costs.d.ts +6 -0
  121. package/build/main/routers/alpha-router/gas-models/v3/gas-costs.js +110 -0
  122. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +31 -0
  123. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +288 -0
  124. package/build/main/routers/alpha-router/index.d.ts +4 -0
  125. package/build/main/routers/alpha-router/index.js +21 -0
  126. package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +68 -0
  127. package/build/main/routers/alpha-router/quoters/base-quoter.js +61 -0
  128. package/build/main/routers/alpha-router/quoters/index.d.ts +5 -0
  129. package/build/main/routers/alpha-router/quoters/index.js +22 -0
  130. package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +20 -0
  131. package/build/main/routers/alpha-router/quoters/mixed-quoter.js +130 -0
  132. package/build/main/routers/alpha-router/quoters/model/index.d.ts +1 -0
  133. package/build/main/routers/alpha-router/quoters/model/index.js +18 -0
  134. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  135. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js +3 -0
  136. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  137. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js +3 -0
  138. package/build/main/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  139. package/build/main/routers/alpha-router/quoters/model/results/index.js +19 -0
  140. package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +21 -0
  141. package/build/main/routers/alpha-router/quoters/v2-quoter.js +122 -0
  142. package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  143. package/build/main/routers/alpha-router/quoters/v3-quoter.js +125 -0
  144. package/build/main/routers/index.d.ts +4 -0
  145. package/build/main/routers/index.js +21 -0
  146. package/build/main/routers/legacy-router/bases.d.ts +136 -0
  147. package/build/main/routers/legacy-router/bases.js +87 -0
  148. package/build/main/routers/legacy-router/index.d.ts +1 -0
  149. package/build/main/routers/legacy-router/index.js +18 -0
  150. package/build/main/routers/legacy-router/legacy-router.d.ts +42 -0
  151. package/build/main/routers/legacy-router/legacy-router.js +289 -0
  152. package/build/main/routers/router.d.ts +165 -0
  153. package/build/main/routers/router.js +52 -0
  154. package/build/main/tsconfig.tsbuildinfo +1 -0
  155. package/build/main/types/other/commons.d.ts +16 -0
  156. package/build/main/types/other/commons.js +6 -0
  157. package/build/main/types/other/factories/Erc20__factory.d.ts +45 -0
  158. package/build/main/types/other/factories/Erc20__factory.js +240 -0
  159. package/build/main/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  160. package/build/main/types/other/factories/GasDataArbitrum__factory.js +58 -0
  161. package/build/main/types/other/factories/GasPriceOracle__factory.d.ts +46 -0
  162. package/build/main/types/other/factories/GasPriceOracle__factory.js +316 -0
  163. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  164. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js +156 -0
  165. package/build/main/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  166. package/build/main/types/other/factories/ITokenValidator__factory.js +78 -0
  167. package/build/main/types/other/factories/Permit2__factory.d.ts +87 -0
  168. package/build/main/types/other/factories/Permit2__factory.js +936 -0
  169. package/build/main/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  170. package/build/main/types/other/factories/SwapRouter02__factory.js +1098 -0
  171. package/build/main/types/v2/commons.d.ts +16 -0
  172. package/build/main/types/v2/commons.js +6 -0
  173. package/build/main/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  174. package/build/main/types/v2/factories/IUniswapV2Pair__factory.js +671 -0
  175. package/build/main/types/v3/commons.d.ts +16 -0
  176. package/build/main/types/v3/commons.js +6 -0
  177. package/build/main/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  178. package/build/main/types/v3/factories/IERC20Metadata__factory.js +242 -0
  179. package/build/main/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  180. package/build/main/types/v3/factories/IQuoterV2__factory.js +220 -0
  181. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  182. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js +266 -0
  183. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  184. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js +127 -0
  185. package/build/main/util/addresses.d.ts +26 -0
  186. package/build/main/util/addresses.js +73 -0
  187. package/build/main/util/amounts.d.ts +8 -0
  188. package/build/main/util/amounts.js +51 -0
  189. package/build/main/util/callData.d.ts +1 -0
  190. package/build/main/util/callData.js +6 -0
  191. package/build/main/util/chains.d.ts +77 -0
  192. package/build/main/util/chains.js +564 -0
  193. package/build/main/util/gas-factory-helpers.d.ts +24 -0
  194. package/build/main/util/gas-factory-helpers.js +308 -0
  195. package/build/main/util/index.d.ts +7 -0
  196. package/build/main/util/index.js +24 -0
  197. package/build/main/util/log.d.ts +3 -0
  198. package/build/main/util/log.js +97 -0
  199. package/build/main/util/methodParameters.d.ts +5 -0
  200. package/build/main/util/methodParameters.js +108 -0
  201. package/build/main/util/metric.d.ts +48 -0
  202. package/build/main/util/metric.js +59 -0
  203. package/build/main/util/protocols.d.ts +2 -0
  204. package/build/main/util/protocols.js +18 -0
  205. package/build/main/util/routes.d.ts +8 -0
  206. package/build/main/util/routes.js +60 -0
  207. package/build/main/util/unsupported-tokens.d.ts +37 -0
  208. package/build/main/util/unsupported-tokens.js +1119 -0
  209. package/build/module/index.d.ts +3 -0
  210. package/build/module/index.js +4 -0
  211. package/build/module/providers/cache-node.d.ts +9 -0
  212. package/build/module/providers/cache-node.js +15 -0
  213. package/build/module/providers/cache.d.ts +13 -0
  214. package/build/module/providers/cache.js +2 -0
  215. package/build/module/providers/caching/route/index.d.ts +2 -0
  216. package/build/module/providers/caching/route/index.js +3 -0
  217. package/build/module/providers/caching/route/model/cache-mode.d.ts +16 -0
  218. package/build/module/providers/caching/route/model/cache-mode.js +18 -0
  219. package/build/module/providers/caching/route/model/cached-route.d.ts +26 -0
  220. package/build/module/providers/caching/route/model/cached-route.js +26 -0
  221. package/build/module/providers/caching/route/model/cached-routes.d.ts +63 -0
  222. package/build/module/providers/caching/route/model/cached-routes.js +66 -0
  223. package/build/module/providers/caching/route/model/index.d.ts +3 -0
  224. package/build/module/providers/caching/route/model/index.js +4 -0
  225. package/build/module/providers/caching/route/route-caching-provider.d.ts +91 -0
  226. package/build/module/providers/caching/route/route-caching-provider.js +61 -0
  227. package/build/module/providers/caching-gas-provider.d.ts +23 -0
  228. package/build/module/providers/caching-gas-provider.js +33 -0
  229. package/build/module/providers/caching-token-list-provider.d.ts +40 -0
  230. package/build/module/providers/caching-token-list-provider.js +116 -0
  231. package/build/module/providers/caching-token-provider.d.ts +25 -0
  232. package/build/module/providers/caching-token-provider.js +195 -0
  233. package/build/module/providers/eip-1559-gas-price-provider.d.ts +31 -0
  234. package/build/module/providers/eip-1559-gas-price-provider.js +59 -0
  235. package/build/module/providers/eth-estimate-gas-provider.d.ts +16 -0
  236. package/build/module/providers/eth-estimate-gas-provider.js +82 -0
  237. package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  238. package/build/module/providers/eth-gas-station-info-gas-price-provider.js +30 -0
  239. package/build/module/providers/gas-price-provider.d.ts +10 -0
  240. package/build/module/providers/gas-price-provider.js +6 -0
  241. package/build/module/providers/index.d.ts +37 -0
  242. package/build/module/providers/index.js +38 -0
  243. package/build/module/providers/legacy-gas-price-provider.d.ts +7 -0
  244. package/build/module/providers/legacy-gas-price-provider.js +16 -0
  245. package/build/module/providers/multicall-provider.d.ts +82 -0
  246. package/build/module/providers/multicall-provider.js +11 -0
  247. package/build/module/providers/multicall-uniswap-provider.d.ts +37 -0
  248. package/build/module/providers/multicall-uniswap-provider.js +156 -0
  249. package/build/module/providers/on-chain-gas-price-provider.d.ts +19 -0
  250. package/build/module/providers/on-chain-gas-price-provider.js +34 -0
  251. package/build/module/providers/on-chain-quote-provider.d.ts +221 -0
  252. package/build/module/providers/on-chain-quote-provider.js +517 -0
  253. package/build/module/providers/provider.d.ts +10 -0
  254. package/build/module/providers/provider.js +2 -0
  255. package/build/module/providers/simulation-provider.d.ts +42 -0
  256. package/build/module/providers/simulation-provider.js +132 -0
  257. package/build/module/providers/static-gas-price-provider.d.ts +7 -0
  258. package/build/module/providers/static-gas-price-provider.js +9 -0
  259. package/build/module/providers/swap-router-provider.d.ts +31 -0
  260. package/build/module/providers/swap-router-provider.js +38 -0
  261. package/build/module/providers/tenderly-simulation-provider.d.ts +45 -0
  262. package/build/module/providers/tenderly-simulation-provider.js +249 -0
  263. package/build/module/providers/token-provider.d.ts +114 -0
  264. package/build/module/providers/token-provider.js +285 -0
  265. package/build/module/providers/token-validator-provider.d.ts +42 -0
  266. package/build/module/providers/token-validator-provider.js +88 -0
  267. package/build/module/providers/uri-subgraph-provider.d.ts +20 -0
  268. package/build/module/providers/uri-subgraph-provider.js +58 -0
  269. package/build/module/providers/v2/caching-pool-provider.d.ts +34 -0
  270. package/build/module/providers/v2/caching-pool-provider.js +81 -0
  271. package/build/module/providers/v2/caching-subgraph-provider.d.ts +23 -0
  272. package/build/module/providers/v2/caching-subgraph-provider.js +30 -0
  273. package/build/module/providers/v2/pool-provider.d.ts +60 -0
  274. package/build/module/providers/v2/pool-provider.js +103 -0
  275. package/build/module/providers/v2/quote-provider.d.ts +33 -0
  276. package/build/module/providers/v2/quote-provider.js +87 -0
  277. package/build/module/providers/v2/static-subgraph-provider.d.ts +20 -0
  278. package/build/module/providers/v2/static-subgraph-provider.js +96 -0
  279. package/build/module/providers/v2/subgraph-provider-with-fallback.d.ts +19 -0
  280. package/build/module/providers/v2/subgraph-provider-with-fallback.js +31 -0
  281. package/build/module/providers/v2/subgraph-provider.d.ts +34 -0
  282. package/build/module/providers/v2/subgraph-provider.js +136 -0
  283. package/build/module/providers/v2/uri-subgraph-provider.d.ts +4 -0
  284. package/build/module/providers/v2/uri-subgraph-provider.js +4 -0
  285. package/build/module/providers/v3/caching-pool-provider.d.ts +33 -0
  286. package/build/module/providers/v3/caching-pool-provider.js +70 -0
  287. package/build/module/providers/v3/caching-subgraph-provider.d.ts +23 -0
  288. package/build/module/providers/v3/caching-subgraph-provider.js +30 -0
  289. package/build/module/providers/v3/gas-data-provider.d.ts +57 -0
  290. package/build/module/providers/v3/gas-data-provider.js +61 -0
  291. package/build/module/providers/v3/pool-provider.d.ts +61 -0
  292. package/build/module/providers/v3/pool-provider.js +116 -0
  293. package/build/module/providers/v3/static-subgraph-provider.d.ts +21 -0
  294. package/build/module/providers/v3/static-subgraph-provider.js +200 -0
  295. package/build/module/providers/v3/subgraph-provider-with-fallback.d.ts +15 -0
  296. package/build/module/providers/v3/subgraph-provider-with-fallback.js +27 -0
  297. package/build/module/providers/v3/subgraph-provider.d.ts +37 -0
  298. package/build/module/providers/v3/subgraph-provider.js +132 -0
  299. package/build/module/providers/v3/uri-subgraph-provider.d.ts +4 -0
  300. package/build/module/providers/v3/uri-subgraph-provider.js +4 -0
  301. package/build/module/routers/alpha-router/alpha-router.d.ts +267 -0
  302. package/build/module/routers/alpha-router/alpha-router.js +823 -0
  303. package/build/module/routers/alpha-router/config.d.ts +4 -0
  304. package/build/module/routers/alpha-router/config.js +89 -0
  305. package/build/module/routers/alpha-router/entities/index.d.ts +1 -0
  306. package/build/module/routers/alpha-router/entities/index.js +2 -0
  307. package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +163 -0
  308. package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +134 -0
  309. package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +19 -0
  310. package/build/module/routers/alpha-router/functions/best-swap-route.js +356 -0
  311. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  312. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.js +14 -0
  313. package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +8 -0
  314. package/build/module/routers/alpha-router/functions/compute-all-routes.js +65 -0
  315. package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +78 -0
  316. package/build/module/routers/alpha-router/functions/get-candidate-pools.js +776 -0
  317. package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +83 -0
  318. package/build/module/routers/alpha-router/gas-models/gas-model.js +67 -0
  319. package/build/module/routers/alpha-router/gas-models/index.d.ts +2 -0
  320. package/build/module/routers/alpha-router/gas-models/index.js +3 -0
  321. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +25 -0
  322. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +168 -0
  323. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +29 -0
  324. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +160 -0
  325. package/build/module/routers/alpha-router/gas-models/v3/gas-costs.d.ts +6 -0
  326. package/build/module/routers/alpha-router/gas-models/v3/gas-costs.js +104 -0
  327. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +31 -0
  328. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +281 -0
  329. package/build/module/routers/alpha-router/index.d.ts +4 -0
  330. package/build/module/routers/alpha-router/index.js +5 -0
  331. package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +68 -0
  332. package/build/module/routers/alpha-router/quoters/base-quoter.js +54 -0
  333. package/build/module/routers/alpha-router/quoters/index.d.ts +5 -0
  334. package/build/module/routers/alpha-router/quoters/index.js +6 -0
  335. package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +20 -0
  336. package/build/module/routers/alpha-router/quoters/mixed-quoter.js +123 -0
  337. package/build/module/routers/alpha-router/quoters/model/index.d.ts +1 -0
  338. package/build/module/routers/alpha-router/quoters/model/index.js +2 -0
  339. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  340. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.js +2 -0
  341. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  342. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.js +2 -0
  343. package/build/module/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  344. package/build/module/routers/alpha-router/quoters/model/results/index.js +3 -0
  345. package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +21 -0
  346. package/build/module/routers/alpha-router/quoters/v2-quoter.js +115 -0
  347. package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  348. package/build/module/routers/alpha-router/quoters/v3-quoter.js +118 -0
  349. package/build/module/routers/index.d.ts +4 -0
  350. package/build/module/routers/index.js +5 -0
  351. package/build/module/routers/legacy-router/bases.d.ts +136 -0
  352. package/build/module/routers/legacy-router/bases.js +93 -0
  353. package/build/module/routers/legacy-router/index.d.ts +1 -0
  354. package/build/module/routers/legacy-router/index.js +2 -0
  355. package/build/module/routers/legacy-router/legacy-router.d.ts +42 -0
  356. package/build/module/routers/legacy-router/legacy-router.js +290 -0
  357. package/build/module/routers/router.d.ts +165 -0
  358. package/build/module/routers/router.js +44 -0
  359. package/build/module/tsconfig.module.tsbuildinfo +1 -0
  360. package/build/module/types/other/commons.d.ts +16 -0
  361. package/build/module/types/other/commons.js +5 -0
  362. package/build/module/types/other/factories/Erc20__factory.d.ts +45 -0
  363. package/build/module/types/other/factories/Erc20__factory.js +236 -0
  364. package/build/module/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  365. package/build/module/types/other/factories/GasDataArbitrum__factory.js +54 -0
  366. package/build/module/types/other/factories/GasPriceOracle__factory.d.ts +46 -0
  367. package/build/module/types/other/factories/GasPriceOracle__factory.js +312 -0
  368. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  369. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.js +152 -0
  370. package/build/module/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  371. package/build/module/types/other/factories/ITokenValidator__factory.js +74 -0
  372. package/build/module/types/other/factories/Permit2__factory.d.ts +87 -0
  373. package/build/module/types/other/factories/Permit2__factory.js +932 -0
  374. package/build/module/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  375. package/build/module/types/other/factories/SwapRouter02__factory.js +1094 -0
  376. package/build/module/types/v2/commons.d.ts +16 -0
  377. package/build/module/types/v2/commons.js +5 -0
  378. package/build/module/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  379. package/build/module/types/v2/factories/IUniswapV2Pair__factory.js +667 -0
  380. package/build/module/types/v3/commons.d.ts +16 -0
  381. package/build/module/types/v3/commons.js +5 -0
  382. package/build/module/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  383. package/build/module/types/v3/factories/IERC20Metadata__factory.js +238 -0
  384. package/build/module/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  385. package/build/module/types/v3/factories/IQuoterV2__factory.js +216 -0
  386. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  387. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.js +262 -0
  388. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  389. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.js +123 -0
  390. package/build/module/util/addresses.d.ts +26 -0
  391. package/build/module/util/addresses.js +98 -0
  392. package/build/module/util/amounts.d.ts +8 -0
  393. package/build/module/util/amounts.js +41 -0
  394. package/build/module/util/callData.d.ts +1 -0
  395. package/build/module/util/callData.js +3 -0
  396. package/build/module/util/chains.d.ts +77 -0
  397. package/build/module/util/chains.js +556 -0
  398. package/build/module/util/gas-factory-helpers.d.ts +24 -0
  399. package/build/module/util/gas-factory-helpers.js +291 -0
  400. package/build/module/util/index.d.ts +7 -0
  401. package/build/module/util/index.js +8 -0
  402. package/build/module/util/log.d.ts +3 -0
  403. package/build/module/util/log.js +93 -0
  404. package/build/module/util/methodParameters.d.ts +5 -0
  405. package/build/module/util/methodParameters.js +106 -0
  406. package/build/module/util/metric.d.ts +48 -0
  407. package/build/module/util/metric.js +53 -0
  408. package/build/module/util/protocols.d.ts +2 -0
  409. package/build/module/util/protocols.js +14 -0
  410. package/build/module/util/routes.d.ts +8 -0
  411. package/build/module/util/routes.js +50 -0
  412. package/build/module/util/unsupported-tokens.d.ts +37 -0
  413. package/build/module/util/unsupported-tokens.js +1116 -0
  414. package/package.json +119 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.V3SubgraphProvider = exports.printV2SubgraphPool = exports.printV3SubgraphPool = void 0;
18
+ const async_retry_1 = __importDefault(require("async-retry"));
19
+ const await_timeout_1 = __importDefault(require("await-timeout"));
20
+ const graphql_request_1 = require("graphql-request");
21
+ const lodash_1 = __importDefault(require("lodash"));
22
+ const util_1 = require("../../util");
23
+ const printV3SubgraphPool = (s) => `${s.token0.id}/${s.token1.id}/${s.feeTier}`;
24
+ exports.printV3SubgraphPool = printV3SubgraphPool;
25
+ const printV2SubgraphPool = (s) => `${s.token0.id}/${s.token1.id}`;
26
+ exports.printV2SubgraphPool = printV2SubgraphPool;
27
+ const SUBGRAPH_URL_BY_CHAIN = {
28
+ [util_1.ChainId.MAINNET]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3',
29
+ [util_1.ChainId.RINKEBY]: 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-rinkeby',
30
+ [util_1.ChainId.OPTIMISM]: 'https://api.thegraph.com/subgraphs/name/ianlapham/optimism-post-regenesis',
31
+ [util_1.ChainId.ARBITRUM_ONE]: 'https://api.thegraph.com/subgraphs/name/ianlapham/arbitrum-minimal',
32
+ [util_1.ChainId.POLYGON]: 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-polygon',
33
+ [util_1.ChainId.CELO]: 'https://api.thegraph.com/subgraphs/name/jesse-sawa/uniswap-celo',
34
+ [util_1.ChainId.GÖRLI]: 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-gorli',
35
+ [util_1.ChainId.BSC]: 'https://api.thegraph.com/subgraphs/name/ilyamk/uniswap-v3---bnb-chain',
36
+ [util_1.ChainId.CFX]: "",
37
+ [util_1.ChainId.CFX_TEST]: "https://thegraph-espace.conflux123.xyz/subgraphs/name/ianlapham/uniswap-v3",
38
+ };
39
+ const PAGE_SIZE = 1000; // 1k is max possible query size from subgraph.
40
+ class V3SubgraphProvider {
41
+ constructor(chainId, retries = 2, timeout = 30000, rollback = true) {
42
+ this.chainId = chainId;
43
+ this.retries = retries;
44
+ this.timeout = timeout;
45
+ this.rollback = rollback;
46
+ const subgraphUrl = SUBGRAPH_URL_BY_CHAIN[this.chainId];
47
+ if (!subgraphUrl) {
48
+ throw new Error(`No subgraph url for chain id: ${this.chainId}`);
49
+ }
50
+ this.client = new graphql_request_1.GraphQLClient(subgraphUrl);
51
+ }
52
+ async getPools(_tokenIn, _tokenOut, providerConfig) {
53
+ let blockNumber = (providerConfig === null || providerConfig === void 0 ? void 0 : providerConfig.blockNumber)
54
+ ? await providerConfig.blockNumber
55
+ : undefined;
56
+ const query = (0, graphql_request_1.gql) `
57
+ query getPools($pageSize: Int!, $id: String) {
58
+ pools(
59
+ first: $pageSize
60
+ ${blockNumber ? `block: { number: ${blockNumber} }` : ``}
61
+ where: { id_gt: $id }
62
+ ) {
63
+ id
64
+ token0 {
65
+ symbol
66
+ id
67
+ }
68
+ token1 {
69
+ symbol
70
+ id
71
+ }
72
+ feeTier
73
+ liquidity
74
+ totalValueLockedUSD
75
+ totalValueLockedETH
76
+ }
77
+ }
78
+ `;
79
+ let pools = [];
80
+ util_1.log.info(`Getting V3 pools from the subgraph with page size ${PAGE_SIZE}${(providerConfig === null || providerConfig === void 0 ? void 0 : providerConfig.blockNumber)
81
+ ? ` as of block ${providerConfig === null || providerConfig === void 0 ? void 0 : providerConfig.blockNumber}`
82
+ : ''}.`);
83
+ await (0, async_retry_1.default)(async () => {
84
+ const timeout = new await_timeout_1.default();
85
+ const getPools = async () => {
86
+ let lastId = '';
87
+ let pools = [];
88
+ let poolsPage = [];
89
+ do {
90
+ const poolsResult = await this.client.request(query, {
91
+ pageSize: PAGE_SIZE,
92
+ id: lastId,
93
+ });
94
+ poolsPage = poolsResult.pools;
95
+ pools = pools.concat(poolsPage);
96
+ lastId = pools[pools.length - 1].id;
97
+ } while (poolsPage.length > 0);
98
+ return pools;
99
+ };
100
+ /* eslint-disable no-useless-catch */
101
+ try {
102
+ const getPoolsPromise = getPools();
103
+ const timerPromise = timeout.set(this.timeout).then(() => {
104
+ throw new Error(`Timed out getting pools from subgraph: ${this.timeout}`);
105
+ });
106
+ pools = await Promise.race([getPoolsPromise, timerPromise]);
107
+ return;
108
+ }
109
+ catch (err) {
110
+ throw err;
111
+ }
112
+ finally {
113
+ timeout.clear();
114
+ }
115
+ /* eslint-enable no-useless-catch */
116
+ }, {
117
+ retries: this.retries,
118
+ onRetry: (err, retry) => {
119
+ if (this.rollback &&
120
+ blockNumber &&
121
+ lodash_1.default.includes(err.message, 'indexed up to')) {
122
+ blockNumber = blockNumber - 10;
123
+ util_1.log.info(`Detected subgraph indexing error. Rolled back block number to: ${blockNumber}`);
124
+ }
125
+ pools = [];
126
+ util_1.log.info({ err }, `Failed to get pools from subgraph. Retry attempt: ${retry}`);
127
+ },
128
+ });
129
+ const poolsSanitized = pools
130
+ .filter((pool) => parseInt(pool.liquidity) > 0 ||
131
+ parseFloat(pool.totalValueLockedETH) > 0.01)
132
+ .map((pool) => {
133
+ const { totalValueLockedETH, totalValueLockedUSD } = pool, rest = __rest(pool, ["totalValueLockedETH", "totalValueLockedUSD"]);
134
+ return Object.assign(Object.assign({}, rest), { id: pool.id.toLowerCase(), token0: {
135
+ id: pool.token0.id.toLowerCase(),
136
+ }, token1: {
137
+ id: pool.token1.id.toLowerCase(),
138
+ }, tvlETH: parseFloat(totalValueLockedETH), tvlUSD: parseFloat(totalValueLockedUSD) });
139
+ });
140
+ util_1.log.info(`Got ${pools.length} V3 pools from the subgraph. ${poolsSanitized.length} after filtering`);
141
+ return poolsSanitized;
142
+ }
143
+ }
144
+ exports.V3SubgraphProvider = V3SubgraphProvider;
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZ3JhcGgtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3YzL3N1YmdyYXBoLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsOERBQWdDO0FBQ2hDLGtFQUFvQztBQUNwQyxxREFBcUQ7QUFDckQsb0RBQXVCO0FBRXZCLHFDQUEwQztBQWtDbkMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQWlCLEVBQUUsRUFBRSxDQUN2RCxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQURsQyxRQUFBLG1CQUFtQix1QkFDZTtBQUV4QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQ3ZELEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQURyQixRQUFBLG1CQUFtQix1QkFDRTtBQUVsQyxNQUFNLHFCQUFxQixHQUFzQztJQUMvRCxDQUFDLGNBQU8sQ0FBQyxPQUFPLENBQUMsRUFDZiw0REFBNEQ7SUFDOUQsQ0FBQyxjQUFPLENBQUMsT0FBTyxDQUFDLEVBQ2Ysc0VBQXNFO0lBQ3hFLENBQUMsY0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUNoQiwyRUFBMkU7SUFDN0UsQ0FBQyxjQUFPLENBQUMsWUFBWSxDQUFDLEVBQ3BCLG9FQUFvRTtJQUN0RSxDQUFDLGNBQU8sQ0FBQyxPQUFPLENBQUMsRUFDZixzRUFBc0U7SUFDeEUsQ0FBQyxjQUFPLENBQUMsSUFBSSxDQUFDLEVBQ1osaUVBQWlFO0lBQ25FLENBQUMsY0FBTyxDQUFDLEtBQUssQ0FBQyxFQUNiLG9FQUFvRTtJQUN0RSxDQUFDLGNBQU8sQ0FBQyxHQUFHLENBQUMsRUFDWCx1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
@@ -0,0 +1,4 @@
1
+ import { URISubgraphProvider } from '../uri-subgraph-provider';
2
+ import { IV3SubgraphProvider, V3SubgraphPool } from './subgraph-provider';
3
+ export declare class V3URISubgraphProvider extends URISubgraphProvider<V3SubgraphPool> implements IV3SubgraphProvider {
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.V3URISubgraphProvider = void 0;
4
+ const uri_subgraph_provider_1 = require("../uri-subgraph-provider");
5
+ class V3URISubgraphProvider extends uri_subgraph_provider_1.URISubgraphProvider {
6
+ }
7
+ exports.V3URISubgraphProvider = V3URISubgraphProvider;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLXN1YmdyYXBoLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy92My91cmktc3ViZ3JhcGgtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQStEO0FBSS9ELE1BQWEscUJBQ1gsU0FBUSwyQ0FBbUM7Q0FDVjtBQUZuQyxzREFFbUMifQ==
@@ -0,0 +1,267 @@
1
+ import { BaseProvider } from '@ethersproject/providers';
2
+ import { Protocol } from '@uniswap/router-sdk';
3
+ import { Currency, TradeType } from '@uniswap/sdk-core';
4
+ import { Position } from '@uniswap/v3-sdk';
5
+ import { IOnChainQuoteProvider, IRouteCachingProvider, ISwapRouterProvider, IV2QuoteProvider, IV2SubgraphProvider, Simulator, UniswapMulticallProvider } from '../../providers';
6
+ import { ITokenListProvider } from '../../providers/caching-token-list-provider';
7
+ import { IGasPriceProvider } from '../../providers/gas-price-provider';
8
+ import { ITokenProvider } from '../../providers/token-provider';
9
+ import { ITokenValidatorProvider } from '../../providers/token-validator-provider';
10
+ import { IV2PoolProvider } from '../../providers/v2/pool-provider';
11
+ import { ArbitrumGasData, IL2GasDataProvider, OptimismGasData } from '../../providers/v3/gas-data-provider';
12
+ import { IV3PoolProvider } from '../../providers/v3/pool-provider';
13
+ import { IV3SubgraphProvider } from '../../providers/v3/subgraph-provider';
14
+ import { CurrencyAmount } from '../../util/amounts';
15
+ import { ChainId } from '../../util/chains';
16
+ import { IRouter, ISwapToRatio, SwapAndAddConfig, SwapAndAddOptions, SwapOptions, SwapRoute, SwapToRatioResponse } from '../router';
17
+ import { IOnChainGasModelFactory, IV2GasModelFactory } from './gas-models/gas-model';
18
+ import { MixedQuoter, V2Quoter, V3Quoter } from './quoters';
19
+ export declare type AlphaRouterParams = {
20
+ /**
21
+ * The chain id for this instance of the Alpha Router.
22
+ */
23
+ chainId: ChainId;
24
+ /**
25
+ * The Web3 provider for getting on-chain data.
26
+ */
27
+ provider: BaseProvider;
28
+ /**
29
+ * The provider to use for making multicalls. Used for getting on-chain data
30
+ * like pools, tokens, quotes in batch.
31
+ */
32
+ multicall2Provider?: UniswapMulticallProvider;
33
+ /**
34
+ * The provider for getting all pools that exist on V3 from the Subgraph. The pools
35
+ * from this provider are filtered during the algorithm to a set of candidate pools.
36
+ */
37
+ v3SubgraphProvider?: IV3SubgraphProvider;
38
+ /**
39
+ * The provider for getting data about V3 pools.
40
+ */
41
+ v3PoolProvider?: IV3PoolProvider;
42
+ /**
43
+ * The provider for getting V3 quotes.
44
+ */
45
+ onChainQuoteProvider?: IOnChainQuoteProvider;
46
+ /**
47
+ * The provider for getting all pools that exist on V2 from the Subgraph. The pools
48
+ * from this provider are filtered during the algorithm to a set of candidate pools.
49
+ */
50
+ v2SubgraphProvider?: IV2SubgraphProvider;
51
+ /**
52
+ * The provider for getting data about V2 pools.
53
+ */
54
+ v2PoolProvider?: IV2PoolProvider;
55
+ /**
56
+ * The provider for getting V3 quotes.
57
+ */
58
+ v2QuoteProvider?: IV2QuoteProvider;
59
+ /**
60
+ * The provider for getting data about Tokens.
61
+ */
62
+ tokenProvider?: ITokenProvider;
63
+ /**
64
+ * The provider for getting the current gas price to use when account for gas in the
65
+ * algorithm.
66
+ */
67
+ gasPriceProvider?: IGasPriceProvider;
68
+ /**
69
+ * A factory for generating a gas model that is used when estimating the gas used by
70
+ * V3 routes.
71
+ */
72
+ v3GasModelFactory?: IOnChainGasModelFactory;
73
+ /**
74
+ * A factory for generating a gas model that is used when estimating the gas used by
75
+ * V2 routes.
76
+ */
77
+ v2GasModelFactory?: IV2GasModelFactory;
78
+ /**
79
+ * A factory for generating a gas model that is used when estimating the gas used by
80
+ * V3 routes.
81
+ */
82
+ mixedRouteGasModelFactory?: IOnChainGasModelFactory;
83
+ /**
84
+ * A token list that specifies Token that should be blocked from routing through.
85
+ * Defaults to Uniswap's unsupported token list.
86
+ */
87
+ blockedTokenListProvider?: ITokenListProvider;
88
+ /**
89
+ * Calls lens function on SwapRouter02 to determine ERC20 approval types for
90
+ * LP position tokens.
91
+ */
92
+ swapRouterProvider?: ISwapRouterProvider;
93
+ /**
94
+ * Calls the optimism gas oracle contract to fetch constants for calculating the l1 security fee.
95
+ */
96
+ optimismGasDataProvider?: IL2GasDataProvider<OptimismGasData>;
97
+ /**
98
+ * A token validator for detecting fee-on-transfer tokens or tokens that can't be transferred.
99
+ */
100
+ tokenValidatorProvider?: ITokenValidatorProvider;
101
+ /**
102
+ * Calls the arbitrum gas data contract to fetch constants for calculating the l1 fee.
103
+ */
104
+ arbitrumGasDataProvider?: IL2GasDataProvider<ArbitrumGasData>;
105
+ /**
106
+ * Simulates swaps and returns new SwapRoute with updated gas estimates.
107
+ */
108
+ simulator?: Simulator;
109
+ /**
110
+ * A provider for caching the best route given an amount, quoteToken, tradeType
111
+ */
112
+ routeCachingProvider?: IRouteCachingProvider;
113
+ };
114
+ export declare class MapWithLowerCaseKey<V> extends Map<string, V> {
115
+ set(key: string, value: V): this;
116
+ }
117
+ /**
118
+ * Determines the pools that the algorithm will consider when finding the optimal swap.
119
+ *
120
+ * All pools on each protocol are filtered based on the heuristics specified here to generate
121
+ * the set of candidate pools. The Top N pools are taken by Total Value Locked (TVL).
122
+ *
123
+ * Higher values here result in more pools to explore which results in higher latency.
124
+ */
125
+ export declare type ProtocolPoolSelection = {
126
+ /**
127
+ * The top N pools by TVL out of all pools on the protocol.
128
+ */
129
+ topN: number;
130
+ /**
131
+ * The top N pools by TVL of pools that consist of tokenIn and tokenOut.
132
+ */
133
+ topNDirectSwaps: number;
134
+ /**
135
+ * The top N pools by TVL of pools where one token is tokenIn and the
136
+ * top N pools by TVL of pools where one token is tokenOut tokenOut.
137
+ */
138
+ topNTokenInOut: number;
139
+ /**
140
+ * Given the topNTokenInOut pools, gets the top N pools that involve the other token.
141
+ * E.g. for a WETH -> USDC swap, if topNTokenInOut found WETH -> DAI and WETH -> USDT,
142
+ * a value of 2 would find the top 2 pools that involve DAI and top 2 pools that involve USDT.
143
+ */
144
+ topNSecondHop: number;
145
+ /**
146
+ * Given the topNTokenInOut pools and a token address,
147
+ * gets the top N pools that involve the other token.
148
+ * If token address is not on the list, we default to topNSecondHop.
149
+ * E.g. for a WETH -> USDC swap, if topNTokenInOut found WETH -> DAI and WETH -> USDT,
150
+ * and there's a mapping USDT => 4, but no mapping for DAI
151
+ * it would find the top 4 pools that involve USDT, and find the topNSecondHop pools that involve DAI
152
+ */
153
+ topNSecondHopForTokenAddress?: MapWithLowerCaseKey<number>;
154
+ /**
155
+ * The top N pools for token in and token out that involve a token from a list of
156
+ * hardcoded 'base tokens'. These are standard tokens such as WETH, USDC, DAI, etc.
157
+ * This is similar to how the legacy routing algorithm used by Uniswap would select
158
+ * pools and is intended to make the new pool selection algorithm close to a superset
159
+ * of the old algorithm.
160
+ */
161
+ topNWithEachBaseToken: number;
162
+ /**
163
+ * Given the topNWithEachBaseToken pools, takes the top N pools from the full list.
164
+ * E.g. for a WETH -> USDC swap, if topNWithEachBaseToken found WETH -0.05-> DAI,
165
+ * WETH -0.01-> DAI, WETH -0.05-> USDC, WETH -0.3-> USDC, a value of 2 would reduce
166
+ * this set to the top 2 pools from that full list.
167
+ */
168
+ topNWithBaseToken: number;
169
+ };
170
+ export declare type AlphaRouterConfig = {
171
+ /**
172
+ * The block number to use for all on-chain data. If not provided, the router will
173
+ * use the latest block returned by the provider.
174
+ */
175
+ blockNumber?: number | Promise<number>;
176
+ /**
177
+ * The protocols to consider when finding the optimal swap. If not provided all protocols
178
+ * will be used.
179
+ */
180
+ protocols?: Protocol[];
181
+ /**
182
+ * Config for selecting which pools to consider routing via on V2.
183
+ */
184
+ v2PoolSelection: ProtocolPoolSelection;
185
+ /**
186
+ * Config for selecting which pools to consider routing via on V3.
187
+ */
188
+ v3PoolSelection: ProtocolPoolSelection;
189
+ /**
190
+ * For each route, the maximum number of hops to consider. More hops will increase latency of the algorithm.
191
+ */
192
+ maxSwapsPerPath: number;
193
+ /**
194
+ * The maximum number of splits in the returned route. A higher maximum will increase latency of the algorithm.
195
+ */
196
+ maxSplits: number;
197
+ /**
198
+ * The minimum number of splits in the returned route.
199
+ * This parameters should always be set to 1. It is only included for testing purposes.
200
+ */
201
+ minSplits: number;
202
+ /**
203
+ * Forces the returned swap to route across all protocols.
204
+ * This parameter should always be false. It is only included for testing purposes.
205
+ */
206
+ forceCrossProtocol: boolean;
207
+ /**
208
+ * Force the alpha router to choose a mixed route swap.
209
+ * Default will be falsy. It is only included for testing purposes.
210
+ */
211
+ forceMixedRoutes?: boolean;
212
+ /**
213
+ * The minimum percentage of the input token to use for each route in a split route.
214
+ * All routes will have a multiple of this value. For example is distribution percentage is 5,
215
+ * a potential return swap would be:
216
+ *
217
+ * 5% of input => Route 1
218
+ * 55% of input => Route 2
219
+ * 40% of input => Route 3
220
+ */
221
+ distributionPercent: number;
222
+ };
223
+ export declare class AlphaRouter implements IRouter<AlphaRouterConfig>, ISwapToRatio<AlphaRouterConfig, SwapAndAddConfig> {
224
+ protected chainId: ChainId;
225
+ protected provider: BaseProvider;
226
+ protected multicall2Provider: UniswapMulticallProvider;
227
+ protected v3SubgraphProvider: IV3SubgraphProvider;
228
+ protected v3PoolProvider: IV3PoolProvider;
229
+ protected onChainQuoteProvider: IOnChainQuoteProvider;
230
+ protected v2SubgraphProvider: IV2SubgraphProvider;
231
+ protected v2QuoteProvider: IV2QuoteProvider;
232
+ protected v2PoolProvider: IV2PoolProvider;
233
+ protected tokenProvider: ITokenProvider;
234
+ protected gasPriceProvider: IGasPriceProvider;
235
+ protected swapRouterProvider: ISwapRouterProvider;
236
+ protected v3GasModelFactory: IOnChainGasModelFactory;
237
+ protected v2GasModelFactory: IV2GasModelFactory;
238
+ protected mixedRouteGasModelFactory: IOnChainGasModelFactory;
239
+ protected tokenValidatorProvider?: ITokenValidatorProvider;
240
+ protected blockedTokenListProvider?: ITokenListProvider;
241
+ protected l2GasDataProvider?: IL2GasDataProvider<OptimismGasData> | IL2GasDataProvider<ArbitrumGasData>;
242
+ protected simulator?: Simulator;
243
+ protected v2Quoter: V2Quoter;
244
+ protected v3Quoter: V3Quoter;
245
+ protected mixedQuoter: MixedQuoter;
246
+ protected routeCachingProvider?: IRouteCachingProvider;
247
+ constructor({ chainId, provider, multicall2Provider, v3PoolProvider, onChainQuoteProvider, v2PoolProvider, v2QuoteProvider, v2SubgraphProvider, tokenProvider, blockedTokenListProvider, v3SubgraphProvider, gasPriceProvider, v3GasModelFactory, v2GasModelFactory, mixedRouteGasModelFactory, swapRouterProvider, optimismGasDataProvider, tokenValidatorProvider, arbitrumGasDataProvider, simulator, routeCachingProvider, }: AlphaRouterParams);
248
+ routeToRatio(token0Balance: CurrencyAmount, token1Balance: CurrencyAmount, position: Position, swapAndAddConfig: SwapAndAddConfig, swapAndAddOptions?: SwapAndAddOptions, routingConfig?: Partial<AlphaRouterConfig>): Promise<SwapToRatioResponse>;
249
+ /**
250
+ * @inheritdoc IRouter
251
+ */
252
+ route(amount: CurrencyAmount, quoteCurrency: Currency, tradeType: TradeType, swapConfig?: SwapOptions, partialRoutingConfig?: Partial<AlphaRouterConfig>): Promise<SwapRoute | null>;
253
+ private getSwapRouteFromCache;
254
+ private getSwapRouteFromChain;
255
+ private tradeTypeStr;
256
+ private tokenPairSymbolTradeTypeChainId;
257
+ private determineCurrencyInOutFromTradeType;
258
+ private getGasPriceWei;
259
+ private getGasModels;
260
+ private getAmountDistribution;
261
+ private buildSwapAndAddMethodParameters;
262
+ private emitPoolSelectionMetrics;
263
+ private calculateOptimalRatio;
264
+ userHasSufficientBalance(fromAddress: string, tradeType: TradeType, amount: CurrencyAmount, quote: CurrencyAmount): Promise<boolean>;
265
+ private absoluteValue;
266
+ private getBlockNumberPromise;
267
+ }