@kumbaya_xyz/smart-order-router 4.22.38

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 (522) hide show
  1. package/CHANGELOG.md +255 -0
  2. package/LICENSE +674 -0
  3. package/README.md +315 -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 +10 -0
  7. package/build/main/providers/cache-node.js +33 -0
  8. package/build/main/providers/cache.d.ts +14 -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 +29 -0
  15. package/build/main/providers/caching/route/model/cached-route.js +77 -0
  16. package/build/main/providers/caching/route/model/cached-routes.d.ts +67 -0
  17. package/build/main/providers/caching/route/model/cached-routes.js +81 -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 +111 -0
  21. package/build/main/providers/caching/route/route-caching-provider.js +86 -0
  22. package/build/main/providers/caching-gas-provider.d.ts +23 -0
  23. package/build/main/providers/caching-gas-provider.js +41 -0
  24. package/build/main/providers/caching-subgraph-provider.d.ts +33 -0
  25. package/build/main/providers/caching-subgraph-provider.js +170 -0
  26. package/build/main/providers/caching-token-list-provider.d.ts +52 -0
  27. package/build/main/providers/caching-token-list-provider.js +147 -0
  28. package/build/main/providers/caching-token-provider.d.ts +24 -0
  29. package/build/main/providers/caching-token-provider.js +242 -0
  30. package/build/main/providers/eip-1559-gas-price-provider.d.ts +31 -0
  31. package/build/main/providers/eip-1559-gas-price-provider.js +71 -0
  32. package/build/main/providers/eth-estimate-gas-provider.d.ts +21 -0
  33. package/build/main/providers/eth-estimate-gas-provider.js +91 -0
  34. package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  35. package/build/main/providers/eth-gas-station-info-gas-price-provider.js +36 -0
  36. package/build/main/providers/gas-price-provider.d.ts +10 -0
  37. package/build/main/providers/gas-price-provider.js +10 -0
  38. package/build/main/providers/index.d.ts +47 -0
  39. package/build/main/providers/index.js +64 -0
  40. package/build/main/providers/legacy-gas-price-provider.d.ts +7 -0
  41. package/build/main/providers/legacy-gas-price-provider.js +18 -0
  42. package/build/main/providers/multicall-provider.d.ts +83 -0
  43. package/build/main/providers/multicall-provider.js +15 -0
  44. package/build/main/providers/multicall-uniswap-provider.d.ts +37 -0
  45. package/build/main/providers/multicall-uniswap-provider.js +164 -0
  46. package/build/main/providers/on-chain-gas-price-provider.d.ts +19 -0
  47. package/build/main/providers/on-chain-gas-price-provider.js +37 -0
  48. package/build/main/providers/on-chain-quote-provider.d.ts +258 -0
  49. package/build/main/providers/on-chain-quote-provider.js +713 -0
  50. package/build/main/providers/pool-provider.d.ts +45 -0
  51. package/build/main/providers/pool-provider.js +73 -0
  52. package/build/main/providers/portion-provider.d.ts +86 -0
  53. package/build/main/providers/portion-provider.js +118 -0
  54. package/build/main/providers/provider.d.ts +38 -0
  55. package/build/main/providers/provider.js +3 -0
  56. package/build/main/providers/simulation-provider.d.ts +46 -0
  57. package/build/main/providers/simulation-provider.js +138 -0
  58. package/build/main/providers/static-gas-price-provider.d.ts +7 -0
  59. package/build/main/providers/static-gas-price-provider.js +13 -0
  60. package/build/main/providers/subgraph-provider-with-fallback.d.ts +11 -0
  61. package/build/main/providers/subgraph-provider-with-fallback.js +25 -0
  62. package/build/main/providers/subgraph-provider.d.ts +56 -0
  63. package/build/main/providers/subgraph-provider.js +287 -0
  64. package/build/main/providers/swap-router-provider.d.ts +30 -0
  65. package/build/main/providers/swap-router-provider.js +42 -0
  66. package/build/main/providers/tenderly-simulation-provider.d.ts +69 -0
  67. package/build/main/providers/tenderly-simulation-provider.js +458 -0
  68. package/build/main/providers/token-fee-fetcher.d.ts +31 -0
  69. package/build/main/providers/token-fee-fetcher.js +165 -0
  70. package/build/main/providers/token-properties-provider.d.ts +31 -0
  71. package/build/main/providers/token-properties-provider.js +118 -0
  72. package/build/main/providers/token-provider.d.ts +141 -0
  73. package/build/main/providers/token-provider.js +394 -0
  74. package/build/main/providers/token-validator-provider.d.ts +42 -0
  75. package/build/main/providers/token-validator-provider.js +99 -0
  76. package/build/main/providers/uri-subgraph-provider.d.ts +20 -0
  77. package/build/main/providers/uri-subgraph-provider.js +65 -0
  78. package/build/main/providers/v2/caching-pool-provider.d.ts +33 -0
  79. package/build/main/providers/v2/caching-pool-provider.js +89 -0
  80. package/build/main/providers/v2/caching-subgraph-provider.d.ts +19 -0
  81. package/build/main/providers/v2/caching-subgraph-provider.js +24 -0
  82. package/build/main/providers/v2/pool-provider.d.ts +63 -0
  83. package/build/main/providers/v2/pool-provider.js +148 -0
  84. package/build/main/providers/v2/quote-provider.d.ts +34 -0
  85. package/build/main/providers/v2/quote-provider.js +90 -0
  86. package/build/main/providers/v2/static-subgraph-provider.d.ts +19 -0
  87. package/build/main/providers/v2/static-subgraph-provider.js +171 -0
  88. package/build/main/providers/v2/subgraph-provider-with-fallback.d.ts +16 -0
  89. package/build/main/providers/v2/subgraph-provider-with-fallback.js +23 -0
  90. package/build/main/providers/v2/subgraph-provider.d.ts +53 -0
  91. package/build/main/providers/v2/subgraph-provider.js +344 -0
  92. package/build/main/providers/v2/uri-subgraph-provider.d.ts +4 -0
  93. package/build/main/providers/v2/uri-subgraph-provider.js +8 -0
  94. package/build/main/providers/v3/caching-pool-provider.d.ts +32 -0
  95. package/build/main/providers/v3/caching-pool-provider.js +84 -0
  96. package/build/main/providers/v3/caching-subgraph-provider.d.ts +19 -0
  97. package/build/main/providers/v3/caching-subgraph-provider.js +24 -0
  98. package/build/main/providers/v3/gas-data-provider.d.ts +39 -0
  99. package/build/main/providers/v3/gas-data-provider.js +26 -0
  100. package/build/main/providers/v3/pool-provider.d.ts +77 -0
  101. package/build/main/providers/v3/pool-provider.js +108 -0
  102. package/build/main/providers/v3/static-subgraph-provider.d.ts +21 -0
  103. package/build/main/providers/v3/static-subgraph-provider.js +217 -0
  104. package/build/main/providers/v3/subgraph-provider-with-fallback.d.ts +12 -0
  105. package/build/main/providers/v3/subgraph-provider-with-fallback.js +19 -0
  106. package/build/main/providers/v3/subgraph-provider.d.ts +45 -0
  107. package/build/main/providers/v3/subgraph-provider.js +46 -0
  108. package/build/main/providers/v3/uri-subgraph-provider.d.ts +4 -0
  109. package/build/main/providers/v3/uri-subgraph-provider.js +8 -0
  110. package/build/main/providers/v4/caching-pool-provider.d.ts +24 -0
  111. package/build/main/providers/v4/caching-pool-provider.js +81 -0
  112. package/build/main/providers/v4/caching-subgraph-provider.d.ts +19 -0
  113. package/build/main/providers/v4/caching-subgraph-provider.js +24 -0
  114. package/build/main/providers/v4/euler-swap-hooks-subgraph-provider.d.ts +25 -0
  115. package/build/main/providers/v4/euler-swap-hooks-subgraph-provider.js +160 -0
  116. package/build/main/providers/v4/pool-provider.d.ts +58 -0
  117. package/build/main/providers/v4/pool-provider.js +115 -0
  118. package/build/main/providers/v4/static-subgraph-provider.d.ts +15 -0
  119. package/build/main/providers/v4/static-subgraph-provider.js +78 -0
  120. package/build/main/providers/v4/subgraph-provider-with-fallback.d.ts +5 -0
  121. package/build/main/providers/v4/subgraph-provider-with-fallback.js +12 -0
  122. package/build/main/providers/v4/subgraph-provider.d.ts +63 -0
  123. package/build/main/providers/v4/subgraph-provider.js +63 -0
  124. package/build/main/providers/v4/uri-subgraph-provider.d.ts +4 -0
  125. package/build/main/providers/v4/uri-subgraph-provider.js +8 -0
  126. package/build/main/routers/alpha-router/alpha-router.d.ts +483 -0
  127. package/build/main/routers/alpha-router/alpha-router.js +1678 -0
  128. package/build/main/routers/alpha-router/config.d.ts +4 -0
  129. package/build/main/routers/alpha-router/config.js +131 -0
  130. package/build/main/routers/alpha-router/entities/index.d.ts +1 -0
  131. package/build/main/routers/alpha-router/entities/index.js +18 -0
  132. package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +208 -0
  133. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +194 -0
  134. package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +24 -0
  135. package/build/main/routers/alpha-router/functions/best-swap-route.js +538 -0
  136. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  137. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js +18 -0
  138. package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +12 -0
  139. package/build/main/routers/alpha-router/functions/compute-all-routes.js +133 -0
  140. package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +126 -0
  141. package/build/main/routers/alpha-router/functions/get-candidate-pools.js +1527 -0
  142. package/build/main/routers/alpha-router/gas-models/gas-costs.d.ts +12 -0
  143. package/build/main/routers/alpha-router/gas-models/gas-costs.js +200 -0
  144. package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +107 -0
  145. package/build/main/routers/alpha-router/gas-models/gas-model.js +117 -0
  146. package/build/main/routers/alpha-router/gas-models/index.d.ts +2 -0
  147. package/build/main/routers/alpha-router/gas-models/index.js +19 -0
  148. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
  149. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +161 -0
  150. package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +15 -0
  151. package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +191 -0
  152. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +31 -0
  153. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +169 -0
  154. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +26 -0
  155. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +41 -0
  156. package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.d.ts +15 -0
  157. package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js +40 -0
  158. package/build/main/routers/alpha-router/index.d.ts +4 -0
  159. package/build/main/routers/alpha-router/index.js +21 -0
  160. package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +77 -0
  161. package/build/main/routers/alpha-router/quoters/base-quoter.js +76 -0
  162. package/build/main/routers/alpha-router/quoters/index.d.ts +5 -0
  163. package/build/main/routers/alpha-router/quoters/index.js +22 -0
  164. package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +32 -0
  165. package/build/main/routers/alpha-router/quoters/mixed-quoter.js +154 -0
  166. package/build/main/routers/alpha-router/quoters/model/index.d.ts +1 -0
  167. package/build/main/routers/alpha-router/quoters/model/index.js +18 -0
  168. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  169. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js +3 -0
  170. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  171. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js +3 -0
  172. package/build/main/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  173. package/build/main/routers/alpha-router/quoters/model/results/index.js +19 -0
  174. package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
  175. package/build/main/routers/alpha-router/quoters/v2-quoter.js +141 -0
  176. package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  177. package/build/main/routers/alpha-router/quoters/v3-quoter.js +125 -0
  178. package/build/main/routers/alpha-router/quoters/v4-quoter.d.ts +18 -0
  179. package/build/main/routers/alpha-router/quoters/v4-quoter.js +122 -0
  180. package/build/main/routers/index.d.ts +4 -0
  181. package/build/main/routers/index.js +21 -0
  182. package/build/main/routers/legacy-router/bases.d.ts +213 -0
  183. package/build/main/routers/legacy-router/bases.js +124 -0
  184. package/build/main/routers/legacy-router/index.d.ts +1 -0
  185. package/build/main/routers/legacy-router/index.js +18 -0
  186. package/build/main/routers/legacy-router/legacy-router.d.ts +41 -0
  187. package/build/main/routers/legacy-router/legacy-router.js +291 -0
  188. package/build/main/routers/router.d.ts +195 -0
  189. package/build/main/routers/router.js +92 -0
  190. package/build/main/tsconfig.tsbuildinfo +1 -0
  191. package/build/main/types/other/factories/Erc20__factory.d.ts +45 -0
  192. package/build/main/types/other/factories/Erc20__factory.js +240 -0
  193. package/build/main/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  194. package/build/main/types/other/factories/GasDataArbitrum__factory.js +58 -0
  195. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  196. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js +156 -0
  197. package/build/main/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  198. package/build/main/types/other/factories/ITokenValidator__factory.js +78 -0
  199. package/build/main/types/other/factories/MixedRouteQuoterV2__factory.d.ts +86 -0
  200. package/build/main/types/other/factories/MixedRouteQuoterV2__factory.js +477 -0
  201. package/build/main/types/other/factories/Permit2__factory.d.ts +87 -0
  202. package/build/main/types/other/factories/Permit2__factory.js +941 -0
  203. package/build/main/types/other/factories/StateView__factory.d.ts +32 -0
  204. package/build/main/types/other/factories/StateView__factory.js +383 -0
  205. package/build/main/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  206. package/build/main/types/other/factories/SwapRouter02__factory.js +1103 -0
  207. package/build/main/types/other/factories/TokenFeeDetector__factory.d.ts +47 -0
  208. package/build/main/types/other/factories/TokenFeeDetector__factory.js +243 -0
  209. package/build/main/types/other/factories/V4Quoter__factory.d.ts +37 -0
  210. package/build/main/types/other/factories/V4Quoter__factory.js +312 -0
  211. package/build/main/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  212. package/build/main/types/v2/factories/IUniswapV2Pair__factory.js +671 -0
  213. package/build/main/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  214. package/build/main/types/v3/factories/IERC20Metadata__factory.js +242 -0
  215. package/build/main/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  216. package/build/main/types/v3/factories/IQuoterV2__factory.js +220 -0
  217. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  218. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js +266 -0
  219. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  220. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js +132 -0
  221. package/build/main/util/addresses.d.ts +32 -0
  222. package/build/main/util/addresses.js +113 -0
  223. package/build/main/util/amounts.d.ts +10 -0
  224. package/build/main/util/amounts.js +94 -0
  225. package/build/main/util/callData.d.ts +1 -0
  226. package/build/main/util/callData.js +6 -0
  227. package/build/main/util/chains.d.ts +69 -0
  228. package/build/main/util/chains.js +740 -0
  229. package/build/main/util/defaultBlocksToLive.d.ts +4 -0
  230. package/build/main/util/defaultBlocksToLive.js +58 -0
  231. package/build/main/util/gas-factory-helpers.d.ts +34 -0
  232. package/build/main/util/gas-factory-helpers.js +439 -0
  233. package/build/main/util/hooksOptions.d.ts +5 -0
  234. package/build/main/util/hooksOptions.js +10 -0
  235. package/build/main/util/index.d.ts +10 -0
  236. package/build/main/util/index.js +27 -0
  237. package/build/main/util/intent.d.ts +6 -0
  238. package/build/main/util/intent.js +13 -0
  239. package/build/main/util/l2FeeChains.d.ts +2 -0
  240. package/build/main/util/l2FeeChains.js +18 -0
  241. package/build/main/util/log.d.ts +3 -0
  242. package/build/main/util/log.js +97 -0
  243. package/build/main/util/methodParameters.d.ts +5 -0
  244. package/build/main/util/methodParameters.js +147 -0
  245. package/build/main/util/metric.d.ts +48 -0
  246. package/build/main/util/metric.js +59 -0
  247. package/build/main/util/mixedRouteFilterOutV4Pools.d.ts +3 -0
  248. package/build/main/util/mixedRouteFilterOutV4Pools.js +17 -0
  249. package/build/main/util/onchainQuoteProviderConfigs.d.ts +42 -0
  250. package/build/main/util/onchainQuoteProviderConfigs.js +72 -0
  251. package/build/main/util/pool.d.ts +5 -0
  252. package/build/main/util/pool.js +44 -0
  253. package/build/main/util/protocols.d.ts +2 -0
  254. package/build/main/util/protocols.js +20 -0
  255. package/build/main/util/routes.d.ts +11 -0
  256. package/build/main/util/routes.js +148 -0
  257. package/build/main/util/serializeRouteIds.d.ts +2 -0
  258. package/build/main/util/serializeRouteIds.js +12 -0
  259. package/build/main/util/tenderlySimulationErrorBreakDown.d.ts +3 -0
  260. package/build/main/util/tenderlySimulationErrorBreakDown.js +33 -0
  261. package/build/main/util/unsupported-tokens.d.ts +37 -0
  262. package/build/main/util/unsupported-tokens.js +1119 -0
  263. package/build/module/index.d.ts +3 -0
  264. package/build/module/index.js +4 -0
  265. package/build/module/providers/cache-node.d.ts +10 -0
  266. package/build/module/providers/cache-node.js +29 -0
  267. package/build/module/providers/cache.d.ts +14 -0
  268. package/build/module/providers/cache.js +2 -0
  269. package/build/module/providers/caching/route/index.d.ts +2 -0
  270. package/build/module/providers/caching/route/index.js +3 -0
  271. package/build/module/providers/caching/route/model/cache-mode.d.ts +16 -0
  272. package/build/module/providers/caching/route/model/cache-mode.js +18 -0
  273. package/build/module/providers/caching/route/model/cached-route.d.ts +29 -0
  274. package/build/module/providers/caching/route/model/cached-route.js +73 -0
  275. package/build/module/providers/caching/route/model/cached-routes.d.ts +67 -0
  276. package/build/module/providers/caching/route/model/cached-routes.js +74 -0
  277. package/build/module/providers/caching/route/model/index.d.ts +3 -0
  278. package/build/module/providers/caching/route/model/index.js +4 -0
  279. package/build/module/providers/caching/route/route-caching-provider.d.ts +111 -0
  280. package/build/module/providers/caching/route/route-caching-provider.js +82 -0
  281. package/build/module/providers/caching-gas-provider.d.ts +23 -0
  282. package/build/module/providers/caching-gas-provider.js +37 -0
  283. package/build/module/providers/caching-subgraph-provider.d.ts +33 -0
  284. package/build/module/providers/caching-subgraph-provider.js +166 -0
  285. package/build/module/providers/caching-token-list-provider.d.ts +52 -0
  286. package/build/module/providers/caching-token-list-provider.js +140 -0
  287. package/build/module/providers/caching-token-provider.d.ts +24 -0
  288. package/build/module/providers/caching-token-provider.js +235 -0
  289. package/build/module/providers/eip-1559-gas-price-provider.d.ts +31 -0
  290. package/build/module/providers/eip-1559-gas-price-provider.js +64 -0
  291. package/build/module/providers/eth-estimate-gas-provider.d.ts +21 -0
  292. package/build/module/providers/eth-estimate-gas-provider.js +99 -0
  293. package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
  294. package/build/module/providers/eth-gas-station-info-gas-price-provider.js +29 -0
  295. package/build/module/providers/gas-price-provider.d.ts +10 -0
  296. package/build/module/providers/gas-price-provider.js +6 -0
  297. package/build/module/providers/index.d.ts +47 -0
  298. package/build/module/providers/index.js +48 -0
  299. package/build/module/providers/legacy-gas-price-provider.d.ts +7 -0
  300. package/build/module/providers/legacy-gas-price-provider.js +14 -0
  301. package/build/module/providers/multicall-provider.d.ts +83 -0
  302. package/build/module/providers/multicall-provider.js +11 -0
  303. package/build/module/providers/multicall-uniswap-provider.d.ts +37 -0
  304. package/build/module/providers/multicall-uniswap-provider.js +157 -0
  305. package/build/module/providers/on-chain-gas-price-provider.d.ts +19 -0
  306. package/build/module/providers/on-chain-gas-price-provider.js +33 -0
  307. package/build/module/providers/on-chain-quote-provider.d.ts +258 -0
  308. package/build/module/providers/on-chain-quote-provider.js +707 -0
  309. package/build/module/providers/pool-provider.d.ts +45 -0
  310. package/build/module/providers/pool-provider.js +66 -0
  311. package/build/module/providers/portion-provider.d.ts +86 -0
  312. package/build/module/providers/portion-provider.js +114 -0
  313. package/build/module/providers/provider.d.ts +38 -0
  314. package/build/module/providers/provider.js +2 -0
  315. package/build/module/providers/simulation-provider.d.ts +46 -0
  316. package/build/module/providers/simulation-provider.js +140 -0
  317. package/build/module/providers/static-gas-price-provider.d.ts +7 -0
  318. package/build/module/providers/static-gas-price-provider.js +9 -0
  319. package/build/module/providers/subgraph-provider-with-fallback.d.ts +11 -0
  320. package/build/module/providers/subgraph-provider-with-fallback.js +21 -0
  321. package/build/module/providers/subgraph-provider.d.ts +56 -0
  322. package/build/module/providers/subgraph-provider.js +284 -0
  323. package/build/module/providers/swap-router-provider.d.ts +30 -0
  324. package/build/module/providers/swap-router-provider.js +38 -0
  325. package/build/module/providers/tenderly-simulation-provider.d.ts +69 -0
  326. package/build/module/providers/tenderly-simulation-provider.js +456 -0
  327. package/build/module/providers/token-fee-fetcher.d.ts +31 -0
  328. package/build/module/providers/token-fee-fetcher.js +161 -0
  329. package/build/module/providers/token-properties-provider.d.ts +31 -0
  330. package/build/module/providers/token-properties-provider.js +114 -0
  331. package/build/module/providers/token-provider.d.ts +141 -0
  332. package/build/module/providers/token-provider.js +381 -0
  333. package/build/module/providers/token-validator-provider.d.ts +42 -0
  334. package/build/module/providers/token-validator-provider.js +92 -0
  335. package/build/module/providers/uri-subgraph-provider.d.ts +20 -0
  336. package/build/module/providers/uri-subgraph-provider.js +58 -0
  337. package/build/module/providers/v2/caching-pool-provider.d.ts +33 -0
  338. package/build/module/providers/v2/caching-pool-provider.js +85 -0
  339. package/build/module/providers/v2/caching-subgraph-provider.d.ts +19 -0
  340. package/build/module/providers/v2/caching-subgraph-provider.js +20 -0
  341. package/build/module/providers/v2/pool-provider.d.ts +63 -0
  342. package/build/module/providers/v2/pool-provider.js +141 -0
  343. package/build/module/providers/v2/quote-provider.d.ts +34 -0
  344. package/build/module/providers/v2/quote-provider.js +86 -0
  345. package/build/module/providers/v2/static-subgraph-provider.d.ts +19 -0
  346. package/build/module/providers/v2/static-subgraph-provider.js +164 -0
  347. package/build/module/providers/v2/subgraph-provider-with-fallback.d.ts +16 -0
  348. package/build/module/providers/v2/subgraph-provider-with-fallback.js +19 -0
  349. package/build/module/providers/v2/subgraph-provider.d.ts +53 -0
  350. package/build/module/providers/v2/subgraph-provider.js +341 -0
  351. package/build/module/providers/v2/uri-subgraph-provider.d.ts +4 -0
  352. package/build/module/providers/v2/uri-subgraph-provider.js +4 -0
  353. package/build/module/providers/v3/caching-pool-provider.d.ts +32 -0
  354. package/build/module/providers/v3/caching-pool-provider.js +77 -0
  355. package/build/module/providers/v3/caching-subgraph-provider.d.ts +19 -0
  356. package/build/module/providers/v3/caching-subgraph-provider.js +20 -0
  357. package/build/module/providers/v3/gas-data-provider.d.ts +39 -0
  358. package/build/module/providers/v3/gas-data-provider.js +22 -0
  359. package/build/module/providers/v3/pool-provider.d.ts +77 -0
  360. package/build/module/providers/v3/pool-provider.js +101 -0
  361. package/build/module/providers/v3/static-subgraph-provider.d.ts +21 -0
  362. package/build/module/providers/v3/static-subgraph-provider.js +210 -0
  363. package/build/module/providers/v3/subgraph-provider-with-fallback.d.ts +12 -0
  364. package/build/module/providers/v3/subgraph-provider-with-fallback.js +15 -0
  365. package/build/module/providers/v3/subgraph-provider.d.ts +45 -0
  366. package/build/module/providers/v3/subgraph-provider.js +42 -0
  367. package/build/module/providers/v3/uri-subgraph-provider.d.ts +4 -0
  368. package/build/module/providers/v3/uri-subgraph-provider.js +4 -0
  369. package/build/module/providers/v4/caching-pool-provider.d.ts +24 -0
  370. package/build/module/providers/v4/caching-pool-provider.js +74 -0
  371. package/build/module/providers/v4/caching-subgraph-provider.d.ts +19 -0
  372. package/build/module/providers/v4/caching-subgraph-provider.js +20 -0
  373. package/build/module/providers/v4/euler-swap-hooks-subgraph-provider.d.ts +25 -0
  374. package/build/module/providers/v4/euler-swap-hooks-subgraph-provider.js +153 -0
  375. package/build/module/providers/v4/pool-provider.d.ts +58 -0
  376. package/build/module/providers/v4/pool-provider.js +106 -0
  377. package/build/module/providers/v4/static-subgraph-provider.d.ts +15 -0
  378. package/build/module/providers/v4/static-subgraph-provider.js +71 -0
  379. package/build/module/providers/v4/subgraph-provider-with-fallback.d.ts +5 -0
  380. package/build/module/providers/v4/subgraph-provider-with-fallback.js +8 -0
  381. package/build/module/providers/v4/subgraph-provider.d.ts +63 -0
  382. package/build/module/providers/v4/subgraph-provider.js +59 -0
  383. package/build/module/providers/v4/uri-subgraph-provider.d.ts +4 -0
  384. package/build/module/providers/v4/uri-subgraph-provider.js +4 -0
  385. package/build/module/routers/alpha-router/alpha-router.d.ts +483 -0
  386. package/build/module/routers/alpha-router/alpha-router.js +1680 -0
  387. package/build/module/routers/alpha-router/config.d.ts +4 -0
  388. package/build/module/routers/alpha-router/config.js +127 -0
  389. package/build/module/routers/alpha-router/entities/index.d.ts +1 -0
  390. package/build/module/routers/alpha-router/entities/index.js +2 -0
  391. package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +208 -0
  392. package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +184 -0
  393. package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +24 -0
  394. package/build/module/routers/alpha-router/functions/best-swap-route.js +528 -0
  395. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
  396. package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.js +14 -0
  397. package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +12 -0
  398. package/build/module/routers/alpha-router/functions/compute-all-routes.js +125 -0
  399. package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +126 -0
  400. package/build/module/routers/alpha-router/functions/get-candidate-pools.js +1516 -0
  401. package/build/module/routers/alpha-router/gas-models/gas-costs.d.ts +12 -0
  402. package/build/module/routers/alpha-router/gas-models/gas-costs.js +189 -0
  403. package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +107 -0
  404. package/build/module/routers/alpha-router/gas-models/gas-model.js +111 -0
  405. package/build/module/routers/alpha-router/gas-models/index.d.ts +2 -0
  406. package/build/module/routers/alpha-router/gas-models/index.js +3 -0
  407. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
  408. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +154 -0
  409. package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +15 -0
  410. package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +187 -0
  411. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +31 -0
  412. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +162 -0
  413. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +26 -0
  414. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +37 -0
  415. package/build/module/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.d.ts +15 -0
  416. package/build/module/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js +36 -0
  417. package/build/module/routers/alpha-router/index.d.ts +4 -0
  418. package/build/module/routers/alpha-router/index.js +5 -0
  419. package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +77 -0
  420. package/build/module/routers/alpha-router/quoters/base-quoter.js +69 -0
  421. package/build/module/routers/alpha-router/quoters/index.d.ts +5 -0
  422. package/build/module/routers/alpha-router/quoters/index.js +6 -0
  423. package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +32 -0
  424. package/build/module/routers/alpha-router/quoters/mixed-quoter.js +147 -0
  425. package/build/module/routers/alpha-router/quoters/model/index.d.ts +1 -0
  426. package/build/module/routers/alpha-router/quoters/model/index.js +2 -0
  427. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
  428. package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.js +2 -0
  429. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
  430. package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.js +2 -0
  431. package/build/module/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
  432. package/build/module/routers/alpha-router/quoters/model/results/index.js +3 -0
  433. package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
  434. package/build/module/routers/alpha-router/quoters/v2-quoter.js +138 -0
  435. package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
  436. package/build/module/routers/alpha-router/quoters/v3-quoter.js +118 -0
  437. package/build/module/routers/alpha-router/quoters/v4-quoter.d.ts +18 -0
  438. package/build/module/routers/alpha-router/quoters/v4-quoter.js +115 -0
  439. package/build/module/routers/index.d.ts +4 -0
  440. package/build/module/routers/index.js +5 -0
  441. package/build/module/routers/legacy-router/bases.d.ts +213 -0
  442. package/build/module/routers/legacy-router/bases.js +130 -0
  443. package/build/module/routers/legacy-router/index.d.ts +1 -0
  444. package/build/module/routers/legacy-router/index.js +2 -0
  445. package/build/module/routers/legacy-router/legacy-router.d.ts +41 -0
  446. package/build/module/routers/legacy-router/legacy-router.js +292 -0
  447. package/build/module/routers/router.d.ts +195 -0
  448. package/build/module/routers/router.js +79 -0
  449. package/build/module/tsconfig.module.tsbuildinfo +1 -0
  450. package/build/module/types/other/factories/Erc20__factory.d.ts +45 -0
  451. package/build/module/types/other/factories/Erc20__factory.js +236 -0
  452. package/build/module/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
  453. package/build/module/types/other/factories/GasDataArbitrum__factory.js +54 -0
  454. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
  455. package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.js +152 -0
  456. package/build/module/types/other/factories/ITokenValidator__factory.d.ts +22 -0
  457. package/build/module/types/other/factories/ITokenValidator__factory.js +74 -0
  458. package/build/module/types/other/factories/MixedRouteQuoterV2__factory.d.ts +86 -0
  459. package/build/module/types/other/factories/MixedRouteQuoterV2__factory.js +473 -0
  460. package/build/module/types/other/factories/Permit2__factory.d.ts +87 -0
  461. package/build/module/types/other/factories/Permit2__factory.js +937 -0
  462. package/build/module/types/other/factories/StateView__factory.d.ts +32 -0
  463. package/build/module/types/other/factories/StateView__factory.js +379 -0
  464. package/build/module/types/other/factories/SwapRouter02__factory.d.ts +67 -0
  465. package/build/module/types/other/factories/SwapRouter02__factory.js +1099 -0
  466. package/build/module/types/other/factories/TokenFeeDetector__factory.d.ts +47 -0
  467. package/build/module/types/other/factories/TokenFeeDetector__factory.js +239 -0
  468. package/build/module/types/other/factories/V4Quoter__factory.d.ts +37 -0
  469. package/build/module/types/other/factories/V4Quoter__factory.js +308 -0
  470. package/build/module/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
  471. package/build/module/types/v2/factories/IUniswapV2Pair__factory.js +667 -0
  472. package/build/module/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
  473. package/build/module/types/v3/factories/IERC20Metadata__factory.js +238 -0
  474. package/build/module/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
  475. package/build/module/types/v3/factories/IQuoterV2__factory.js +216 -0
  476. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
  477. package/build/module/types/v3/factories/IUniswapV3PoolState__factory.js +262 -0
  478. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
  479. package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.js +128 -0
  480. package/build/module/util/addresses.d.ts +32 -0
  481. package/build/module/util/addresses.js +233 -0
  482. package/build/module/util/amounts.d.ts +10 -0
  483. package/build/module/util/amounts.js +82 -0
  484. package/build/module/util/callData.d.ts +1 -0
  485. package/build/module/util/callData.js +3 -0
  486. package/build/module/util/chains.d.ts +69 -0
  487. package/build/module/util/chains.js +732 -0
  488. package/build/module/util/defaultBlocksToLive.d.ts +4 -0
  489. package/build/module/util/defaultBlocksToLive.js +55 -0
  490. package/build/module/util/gas-factory-helpers.d.ts +34 -0
  491. package/build/module/util/gas-factory-helpers.js +421 -0
  492. package/build/module/util/hooksOptions.d.ts +5 -0
  493. package/build/module/util/hooksOptions.js +7 -0
  494. package/build/module/util/index.d.ts +10 -0
  495. package/build/module/util/index.js +11 -0
  496. package/build/module/util/intent.d.ts +6 -0
  497. package/build/module/util/intent.js +10 -0
  498. package/build/module/util/l2FeeChains.d.ts +2 -0
  499. package/build/module/util/l2FeeChains.js +15 -0
  500. package/build/module/util/log.d.ts +3 -0
  501. package/build/module/util/log.js +93 -0
  502. package/build/module/util/methodParameters.d.ts +5 -0
  503. package/build/module/util/methodParameters.js +145 -0
  504. package/build/module/util/metric.d.ts +48 -0
  505. package/build/module/util/metric.js +53 -0
  506. package/build/module/util/mixedRouteFilterOutV4Pools.d.ts +3 -0
  507. package/build/module/util/mixedRouteFilterOutV4Pools.js +12 -0
  508. package/build/module/util/onchainQuoteProviderConfigs.d.ts +42 -0
  509. package/build/module/util/onchainQuoteProviderConfigs.js +74 -0
  510. package/build/module/util/pool.d.ts +5 -0
  511. package/build/module/util/pool.js +41 -0
  512. package/build/module/util/protocols.d.ts +2 -0
  513. package/build/module/util/protocols.js +16 -0
  514. package/build/module/util/routes.d.ts +11 -0
  515. package/build/module/util/routes.js +136 -0
  516. package/build/module/util/serializeRouteIds.d.ts +2 -0
  517. package/build/module/util/serializeRouteIds.js +7 -0
  518. package/build/module/util/tenderlySimulationErrorBreakDown.d.ts +3 -0
  519. package/build/module/util/tenderlySimulationErrorBreakDown.js +29 -0
  520. package/build/module/util/unsupported-tokens.d.ts +37 -0
  521. package/build/module/util/unsupported-tokens.js +1116 -0
  522. package/package.json +129 -0
@@ -0,0 +1,12 @@
1
+ import { BigNumber } from '@ethersproject/bignumber';
2
+ import { ChainId, Currency } from '@uniswap/sdk-core';
3
+ import { V3Route, V4Route } from '../../router';
4
+ export declare const COST_PER_UNINIT_TICK: BigNumber;
5
+ export declare const BASE_SWAP_COST: (id: ChainId) => BigNumber;
6
+ export declare const COST_PER_INIT_TICK: (id: ChainId) => BigNumber;
7
+ export declare const COST_PER_HOP: (id: ChainId) => BigNumber;
8
+ export declare const SINGLE_HOP_OVERHEAD: (_id: ChainId) => BigNumber;
9
+ export declare const TOKEN_OVERHEAD: (id: ChainId, route: V3Route | V4Route) => BigNumber;
10
+ export declare const NATIVE_WRAP_OVERHEAD: (id: ChainId) => BigNumber;
11
+ export declare const NATIVE_UNWRAP_OVERHEAD: (id: ChainId) => BigNumber;
12
+ export declare const NATIVE_OVERHEAD: (chainId: ChainId, amount: Currency, quote: Currency) => BigNumber;
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NATIVE_OVERHEAD = exports.NATIVE_UNWRAP_OVERHEAD = exports.NATIVE_WRAP_OVERHEAD = exports.TOKEN_OVERHEAD = exports.SINGLE_HOP_OVERHEAD = exports.COST_PER_HOP = exports.COST_PER_INIT_TICK = exports.BASE_SWAP_COST = exports.COST_PER_UNINIT_TICK = void 0;
4
+ const bignumber_1 = require("@ethersproject/bignumber");
5
+ const router_sdk_1 = require("@uniswap/router-sdk");
6
+ const sdk_core_1 = require("@uniswap/sdk-core");
7
+ const providers_1 = require("../../../providers");
8
+ // Cost for crossing an uninitialized tick.
9
+ exports.COST_PER_UNINIT_TICK = bignumber_1.BigNumber.from(0);
10
+ //l2 execution fee on optimism is roughly the same as mainnet
11
+ const BASE_SWAP_COST = (id) => {
12
+ switch (id) {
13
+ case sdk_core_1.ChainId.MAINNET:
14
+ case sdk_core_1.ChainId.GOERLI:
15
+ case sdk_core_1.ChainId.SEPOLIA:
16
+ case sdk_core_1.ChainId.OPTIMISM:
17
+ case sdk_core_1.ChainId.OPTIMISM_GOERLI:
18
+ case sdk_core_1.ChainId.OPTIMISM_SEPOLIA:
19
+ case sdk_core_1.ChainId.BNB:
20
+ case sdk_core_1.ChainId.AVALANCHE:
21
+ case sdk_core_1.ChainId.BASE:
22
+ case sdk_core_1.ChainId.BASE_GOERLI:
23
+ case sdk_core_1.ChainId.ZORA:
24
+ case sdk_core_1.ChainId.ZORA_SEPOLIA:
25
+ case sdk_core_1.ChainId.ROOTSTOCK:
26
+ case sdk_core_1.ChainId.BLAST:
27
+ case sdk_core_1.ChainId.ZKSYNC:
28
+ case sdk_core_1.ChainId.WORLDCHAIN:
29
+ case sdk_core_1.ChainId.UNICHAIN_SEPOLIA:
30
+ case sdk_core_1.ChainId.UNICHAIN:
31
+ case sdk_core_1.ChainId.BASE_SEPOLIA:
32
+ case sdk_core_1.ChainId.MONAD_TESTNET: // TODO: double check on monad gas
33
+ case sdk_core_1.ChainId.MONAD: // TODO: double check on monad gas
34
+ case sdk_core_1.ChainId.SONEIUM:
35
+ return bignumber_1.BigNumber.from(2000);
36
+ case sdk_core_1.ChainId.MEGAETH_TESTNET:
37
+ // Measured: USDC/USDT swap with 0 ticks = 87,610 gas
38
+ return bignumber_1.BigNumber.from(80000);
39
+ case sdk_core_1.ChainId.ARBITRUM_ONE:
40
+ case sdk_core_1.ChainId.ARBITRUM_GOERLI:
41
+ case sdk_core_1.ChainId.ARBITRUM_SEPOLIA:
42
+ return bignumber_1.BigNumber.from(5000);
43
+ case sdk_core_1.ChainId.POLYGON:
44
+ case sdk_core_1.ChainId.POLYGON_MUMBAI:
45
+ return bignumber_1.BigNumber.from(2000);
46
+ case sdk_core_1.ChainId.CELO:
47
+ case sdk_core_1.ChainId.CELO_ALFAJORES:
48
+ return bignumber_1.BigNumber.from(2000);
49
+ //TODO determine if sufficient
50
+ case sdk_core_1.ChainId.GNOSIS:
51
+ return bignumber_1.BigNumber.from(2000);
52
+ case sdk_core_1.ChainId.MOONBEAM:
53
+ case sdk_core_1.ChainId.XLAYER:
54
+ return bignumber_1.BigNumber.from(2000);
55
+ }
56
+ };
57
+ exports.BASE_SWAP_COST = BASE_SWAP_COST;
58
+ const COST_PER_INIT_TICK = (id) => {
59
+ switch (id) {
60
+ case sdk_core_1.ChainId.MAINNET:
61
+ case sdk_core_1.ChainId.GOERLI:
62
+ case sdk_core_1.ChainId.SEPOLIA:
63
+ case sdk_core_1.ChainId.BNB:
64
+ case sdk_core_1.ChainId.AVALANCHE:
65
+ return bignumber_1.BigNumber.from(31000);
66
+ case sdk_core_1.ChainId.OPTIMISM:
67
+ case sdk_core_1.ChainId.OPTIMISM_GOERLI:
68
+ case sdk_core_1.ChainId.OPTIMISM_SEPOLIA:
69
+ case sdk_core_1.ChainId.BASE:
70
+ case sdk_core_1.ChainId.BASE_GOERLI:
71
+ case sdk_core_1.ChainId.ZORA:
72
+ case sdk_core_1.ChainId.ZORA_SEPOLIA:
73
+ case sdk_core_1.ChainId.ROOTSTOCK:
74
+ case sdk_core_1.ChainId.BLAST:
75
+ case sdk_core_1.ChainId.ZKSYNC:
76
+ case sdk_core_1.ChainId.WORLDCHAIN:
77
+ case sdk_core_1.ChainId.UNICHAIN_SEPOLIA:
78
+ case sdk_core_1.ChainId.UNICHAIN:
79
+ case sdk_core_1.ChainId.BASE_SEPOLIA:
80
+ case sdk_core_1.ChainId.MONAD_TESTNET: // TODO: double check on monad gas
81
+ case sdk_core_1.ChainId.MONAD: // TODO: double check on monad gas
82
+ case sdk_core_1.ChainId.SONEIUM:
83
+ return bignumber_1.BigNumber.from(31000);
84
+ case sdk_core_1.ChainId.MEGAETH_TESTNET:
85
+ // Measured: difference between 0-tick and 1-tick swaps ~300k-400k
86
+ return bignumber_1.BigNumber.from(350000);
87
+ case sdk_core_1.ChainId.ARBITRUM_ONE:
88
+ case sdk_core_1.ChainId.ARBITRUM_GOERLI:
89
+ case sdk_core_1.ChainId.ARBITRUM_SEPOLIA:
90
+ return bignumber_1.BigNumber.from(31000);
91
+ case sdk_core_1.ChainId.POLYGON:
92
+ case sdk_core_1.ChainId.POLYGON_MUMBAI:
93
+ return bignumber_1.BigNumber.from(31000);
94
+ case sdk_core_1.ChainId.CELO:
95
+ case sdk_core_1.ChainId.CELO_ALFAJORES:
96
+ return bignumber_1.BigNumber.from(31000);
97
+ case sdk_core_1.ChainId.GNOSIS:
98
+ return bignumber_1.BigNumber.from(31000);
99
+ case sdk_core_1.ChainId.MOONBEAM:
100
+ case sdk_core_1.ChainId.XLAYER:
101
+ return bignumber_1.BigNumber.from(31000);
102
+ }
103
+ };
104
+ exports.COST_PER_INIT_TICK = COST_PER_INIT_TICK;
105
+ const COST_PER_HOP = (id) => {
106
+ switch (id) {
107
+ case sdk_core_1.ChainId.MAINNET:
108
+ case sdk_core_1.ChainId.GOERLI:
109
+ case sdk_core_1.ChainId.SEPOLIA:
110
+ case sdk_core_1.ChainId.BNB:
111
+ case sdk_core_1.ChainId.OPTIMISM:
112
+ case sdk_core_1.ChainId.OPTIMISM_GOERLI:
113
+ case sdk_core_1.ChainId.OPTIMISM_SEPOLIA:
114
+ case sdk_core_1.ChainId.AVALANCHE:
115
+ case sdk_core_1.ChainId.BASE:
116
+ case sdk_core_1.ChainId.BASE_GOERLI:
117
+ case sdk_core_1.ChainId.ZORA:
118
+ case sdk_core_1.ChainId.ZORA_SEPOLIA:
119
+ case sdk_core_1.ChainId.ROOTSTOCK:
120
+ case sdk_core_1.ChainId.BLAST:
121
+ case sdk_core_1.ChainId.ZKSYNC:
122
+ case sdk_core_1.ChainId.WORLDCHAIN:
123
+ case sdk_core_1.ChainId.UNICHAIN_SEPOLIA:
124
+ case sdk_core_1.ChainId.UNICHAIN:
125
+ case sdk_core_1.ChainId.BASE_SEPOLIA:
126
+ case sdk_core_1.ChainId.MONAD_TESTNET: // TODO: double check on monad gas
127
+ case sdk_core_1.ChainId.MONAD: // TODO: double check on monad gas
128
+ case sdk_core_1.ChainId.SONEIUM:
129
+ return bignumber_1.BigNumber.from(80000);
130
+ case sdk_core_1.ChainId.MEGAETH_TESTNET:
131
+ // Measured: multi-hop overhead based on pool gas estimates
132
+ return bignumber_1.BigNumber.from(100000);
133
+ case sdk_core_1.ChainId.ARBITRUM_ONE:
134
+ case sdk_core_1.ChainId.ARBITRUM_GOERLI:
135
+ case sdk_core_1.ChainId.ARBITRUM_SEPOLIA:
136
+ return bignumber_1.BigNumber.from(80000);
137
+ case sdk_core_1.ChainId.POLYGON:
138
+ case sdk_core_1.ChainId.POLYGON_MUMBAI:
139
+ return bignumber_1.BigNumber.from(80000);
140
+ case sdk_core_1.ChainId.CELO:
141
+ case sdk_core_1.ChainId.CELO_ALFAJORES:
142
+ return bignumber_1.BigNumber.from(80000);
143
+ case sdk_core_1.ChainId.GNOSIS:
144
+ return bignumber_1.BigNumber.from(80000);
145
+ case sdk_core_1.ChainId.MOONBEAM:
146
+ case sdk_core_1.ChainId.XLAYER:
147
+ return bignumber_1.BigNumber.from(80000);
148
+ }
149
+ };
150
+ exports.COST_PER_HOP = COST_PER_HOP;
151
+ const SINGLE_HOP_OVERHEAD = (_id) => {
152
+ return bignumber_1.BigNumber.from(15000);
153
+ };
154
+ exports.SINGLE_HOP_OVERHEAD = SINGLE_HOP_OVERHEAD;
155
+ const TOKEN_OVERHEAD = (id, route) => {
156
+ const currencies = route.protocol === router_sdk_1.Protocol.V4 ? route.currencyPath : route.tokenPath;
157
+ let overhead = bignumber_1.BigNumber.from(0);
158
+ if (id == sdk_core_1.ChainId.MAINNET) {
159
+ // AAVE's transfer contains expensive governance snapshotting logic. We estimate
160
+ // it at around 150k.
161
+ if (currencies.some((t) => t.equals(providers_1.AAVE_MAINNET))) {
162
+ overhead = overhead.add(150000);
163
+ }
164
+ // LDO's reaches out to an external token controller which adds a large overhead
165
+ // of around 150k.
166
+ if (currencies.some((t) => t.equals(providers_1.LIDO_MAINNET))) {
167
+ overhead = overhead.add(150000);
168
+ }
169
+ }
170
+ return overhead;
171
+ };
172
+ exports.TOKEN_OVERHEAD = TOKEN_OVERHEAD;
173
+ // TODO: change per chain
174
+ const NATIVE_WRAP_OVERHEAD = (id) => {
175
+ switch (id) {
176
+ default:
177
+ return bignumber_1.BigNumber.from(27938);
178
+ }
179
+ };
180
+ exports.NATIVE_WRAP_OVERHEAD = NATIVE_WRAP_OVERHEAD;
181
+ const NATIVE_UNWRAP_OVERHEAD = (id) => {
182
+ switch (id) {
183
+ default:
184
+ return bignumber_1.BigNumber.from(36000);
185
+ }
186
+ };
187
+ exports.NATIVE_UNWRAP_OVERHEAD = NATIVE_UNWRAP_OVERHEAD;
188
+ const NATIVE_OVERHEAD = (chainId, amount, quote) => {
189
+ if (amount.isNative) {
190
+ // need to wrap eth in
191
+ return (0, exports.NATIVE_WRAP_OVERHEAD)(chainId);
192
+ }
193
+ if (quote.isNative) {
194
+ // need to unwrap eth out
195
+ return (0, exports.NATIVE_UNWRAP_OVERHEAD)(chainId);
196
+ }
197
+ return bignumber_1.BigNumber.from(0);
198
+ };
199
+ exports.NATIVE_OVERHEAD = NATIVE_OVERHEAD;
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzLWNvc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2dhcy1tb2RlbHMvZ2FzLWNvc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUFxRDtBQUNyRCxvREFBK0M7QUFDL0MsZ0RBQXNEO0FBRXRELGtEQUFnRTtBQUdoRSwyQ0FBMkM7QUFDOUIsUUFBQSxvQkFBb0IsR0FBRyxxQkFBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV0RCw2REFBNkQ7QUFDdEQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUFXLEVBQWEsRUFBRTtJQUN2RCxRQUFRLEVBQUUsRUFBRTtRQUNWLEtBQUssa0JBQU8sQ0FBQyxPQUFPLENBQUM7UUFDckIsS0FBSyxrQkFBTyxDQUFDLE1BQU0sQ0FBQztRQUNwQixLQUFLLGtCQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3JCLEtBQUssa0JBQU8sQ0FBQyxRQUFRLENBQUM7UUFDdEIsS0FBSyxrQkFBTyxDQUFDLGVBQWUsQ0FBQztRQUM3QixLQUFLLGtCQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDOUIsS0FBSyxrQkFBTyxDQUFDLEdBQUcsQ0FBQztRQUNqQixLQUFLLGtCQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLEtBQUssa0JBQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEIsS0FBSyxrQkFBTyxDQUFDLFdBQVcsQ0FBQztRQUN6QixLQUFLLGtCQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2xCLEtBQUssa0JBQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUIsS0FBSyxrQkFBTyxDQUFDLFNBQVMsQ0FBQztRQUN2QixLQUFLLGtCQUFPLENBQUMsS0FBSyxDQUFDO1FBQ25CLEtBQUssa0JBQU8sQ0FBQyxNQUFNLENBQUM7UUFDcEIsS0FBSyxrQkFBTyxDQUFDLFVBQVUsQ0FBQztRQUN4QixLQUFLLGtCQUFPLENBQUMsZ0JBQWdCLENBQUM7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
@@ -0,0 +1,107 @@
1
+ import { BigNumber } from '@ethersproject/bignumber';
2
+ import { ChainId, CurrencyAmount as CurrencyAmountRaw, Token } from '@uniswap/sdk-core';
3
+ import { Pair } from '@uniswap/v2-sdk';
4
+ import { Pool } from '@uniswap/v3-sdk';
5
+ import { ProviderConfig } from '../../../providers/provider';
6
+ import { IV2PoolProvider } from '../../../providers/v2/pool-provider';
7
+ import { ArbitrumGasData, IL2GasDataProvider } from '../../../providers/v3/gas-data-provider';
8
+ import { CurrencyAmount } from '../../../util/amounts';
9
+ import { MixedRouteWithValidQuote, RouteWithValidQuote, V2RouteWithValidQuote, V3RouteWithValidQuote, V4RouteWithValidQuote } from '../entities/route-with-valid-quote';
10
+ export declare const usdGasTokensByChain: {
11
+ [chainId in ChainId]?: Token[];
12
+ };
13
+ export type L1ToL2GasCosts = {
14
+ gasUsedL1: BigNumber;
15
+ gasUsedL1OnL2: BigNumber;
16
+ gasCostL1USD: CurrencyAmount;
17
+ gasCostL1QuoteToken: CurrencyAmount;
18
+ };
19
+ export type GasModelProviderConfig = ProviderConfig & {
20
+ additionalGasOverhead?: BigNumber;
21
+ gasToken?: Token;
22
+ };
23
+ export type BuildOnChainGasModelFactoryType = {
24
+ chainId: ChainId;
25
+ gasPriceWei: BigNumber;
26
+ pools: LiquidityCalculationPools;
27
+ amountToken: Token;
28
+ quoteToken: Token;
29
+ v2poolProvider: IV2PoolProvider;
30
+ l2GasDataProvider?: IL2GasDataProvider<ArbitrumGasData>;
31
+ providerConfig?: GasModelProviderConfig;
32
+ };
33
+ export type BuildV2GasModelFactoryType = {
34
+ chainId: ChainId;
35
+ gasPriceWei: BigNumber;
36
+ poolProvider: IV2PoolProvider;
37
+ token: Token;
38
+ l2GasDataProvider?: IL2GasDataProvider<ArbitrumGasData>;
39
+ providerConfig?: GasModelProviderConfig;
40
+ };
41
+ export type LiquidityCalculationPools = {
42
+ usdPool: Pool;
43
+ nativeAndQuoteTokenV3Pool: Pool | null;
44
+ nativeAndAmountTokenV3Pool: Pool | null;
45
+ nativeAndSpecifiedGasTokenV3Pool: Pool | null;
46
+ };
47
+ export type GasModelType = {
48
+ v2GasModel?: IGasModel<V2RouteWithValidQuote>;
49
+ v3GasModel: IGasModel<V3RouteWithValidQuote>;
50
+ v4GasModel: IGasModel<V4RouteWithValidQuote>;
51
+ mixedRouteGasModel: IGasModel<MixedRouteWithValidQuote>;
52
+ };
53
+ /**
54
+ * Contains functions for generating gas estimates for given routes.
55
+ *
56
+ * We generally compute gas estimates off-chain because
57
+ * 1/ Calling eth_estimateGas for a swaps requires the caller to have
58
+ * the full balance token being swapped, and approvals.
59
+ * 2/ Tracking gas used using a wrapper contract is not accurate with Multicall
60
+ * due to EIP-2929
61
+ * 3/ For V2 we simulate all our swaps off-chain so have no way to track gas used.
62
+ *
63
+ * Generally these models should be optimized to return quickly by performing any
64
+ * long running operations (like fetching external data) outside of the functions defined.
65
+ * This is because the functions in the model are called once for every route and every
66
+ * amount that is considered in the algorithm so it is important to minimize the number of
67
+ * long running operations.
68
+ */
69
+ export type IGasModel<TRouteWithValidQuote extends RouteWithValidQuote> = {
70
+ estimateGasCost(routeWithValidQuote: TRouteWithValidQuote): {
71
+ gasEstimate: BigNumber;
72
+ gasCostInToken: CurrencyAmount;
73
+ gasCostInUSD: CurrencyAmount;
74
+ gasCostInGasToken?: CurrencyAmount;
75
+ };
76
+ calculateL1GasFees?(routes: TRouteWithValidQuote[]): Promise<L1ToL2GasCosts>;
77
+ };
78
+ /**
79
+ * Factory for building gas models that can be used with any route to generate
80
+ * gas estimates.
81
+ *
82
+ * Factory model is used so that any supporting data can be fetched once and
83
+ * returned as part of the model.
84
+ *
85
+ * @export
86
+ * @abstract
87
+ * @class IV2GasModelFactory
88
+ */
89
+ export declare abstract class IV2GasModelFactory {
90
+ abstract buildGasModel({ chainId, gasPriceWei, poolProvider, token, providerConfig, }: BuildV2GasModelFactoryType): Promise<IGasModel<V2RouteWithValidQuote>>;
91
+ }
92
+ /**
93
+ * Factory for building gas models that can be used with any route to generate
94
+ * gas estimates.
95
+ *
96
+ * Factory model is used so that any supporting data can be fetched once and
97
+ * returned as part of the model.
98
+ *
99
+ * @export
100
+ * @abstract
101
+ * @class IOnChainGasModelFactory
102
+ */
103
+ export declare abstract class IOnChainGasModelFactory<TRouteWithValidQuote extends RouteWithValidQuote> {
104
+ abstract buildGasModel({ chainId, gasPriceWei, pools, amountToken, quoteToken, v2poolProvider, l2GasDataProvider, providerConfig, }: BuildOnChainGasModelFactoryType): Promise<IGasModel<TRouteWithValidQuote>>;
105
+ protected totalInitializedTicksCrossed(initializedTicksCrossedList: number[]): number;
106
+ }
107
+ export declare const getQuoteThroughNativePool: (chainId: ChainId, nativeTokenAmount: CurrencyAmountRaw<Token>, nativeTokenPool: Pool | Pair) => CurrencyAmount;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getQuoteThroughNativePool = exports.IOnChainGasModelFactory = exports.IV2GasModelFactory = exports.usdGasTokensByChain = void 0;
4
+ const sdk_core_1 = require("@uniswap/sdk-core");
5
+ const token_provider_1 = require("../../../providers/token-provider");
6
+ const util_1 = require("../../../util");
7
+ // When adding new usd gas tokens, ensure the tokens are ordered
8
+ // from tokens with highest decimals to lowest decimals. For example,
9
+ // DAI_AVAX has 18 decimals and comes before USDC_AVAX which has 6 decimals.
10
+ exports.usdGasTokensByChain = {
11
+ [sdk_core_1.ChainId.MAINNET]: [token_provider_1.DAI_MAINNET, token_provider_1.USDC_MAINNET, token_provider_1.USDT_MAINNET],
12
+ [sdk_core_1.ChainId.ARBITRUM_ONE]: [
13
+ token_provider_1.DAI_ARBITRUM,
14
+ token_provider_1.USDC_ARBITRUM,
15
+ token_provider_1.USDC_NATIVE_ARBITRUM,
16
+ token_provider_1.USDT_ARBITRUM,
17
+ ],
18
+ [sdk_core_1.ChainId.OPTIMISM]: [
19
+ token_provider_1.DAI_OPTIMISM,
20
+ token_provider_1.USDC_OPTIMISM,
21
+ token_provider_1.USDC_NATIVE_OPTIMISM,
22
+ token_provider_1.USDT_OPTIMISM,
23
+ ],
24
+ [sdk_core_1.ChainId.OPTIMISM_GOERLI]: [
25
+ token_provider_1.DAI_OPTIMISM_GOERLI,
26
+ token_provider_1.USDC_OPTIMISM_GOERLI,
27
+ token_provider_1.USDT_OPTIMISM_GOERLI,
28
+ ],
29
+ [sdk_core_1.ChainId.OPTIMISM_SEPOLIA]: [
30
+ token_provider_1.DAI_OPTIMISM_SEPOLIA,
31
+ token_provider_1.USDC_OPTIMISM_SEPOLIA,
32
+ token_provider_1.USDT_OPTIMISM_SEPOLIA,
33
+ ],
34
+ [sdk_core_1.ChainId.ARBITRUM_GOERLI]: [token_provider_1.USDC_ARBITRUM_GOERLI],
35
+ [sdk_core_1.ChainId.ARBITRUM_SEPOLIA]: [token_provider_1.USDC_ARBITRUM_SEPOLIA],
36
+ [sdk_core_1.ChainId.GOERLI]: [token_provider_1.DAI_GOERLI, token_provider_1.USDC_GOERLI, token_provider_1.USDT_GOERLI, token_provider_1.WBTC_GOERLI],
37
+ [sdk_core_1.ChainId.SEPOLIA]: [token_provider_1.USDC_SEPOLIA, token_provider_1.DAI_SEPOLIA],
38
+ [sdk_core_1.ChainId.POLYGON]: [token_provider_1.USDC_POLYGON, token_provider_1.USDC_NATIVE_POLYGON],
39
+ [sdk_core_1.ChainId.POLYGON_MUMBAI]: [token_provider_1.DAI_POLYGON_MUMBAI],
40
+ [sdk_core_1.ChainId.CELO]: [token_provider_1.CUSD_CELO, token_provider_1.USDC_CELO, token_provider_1.USDC_NATIVE_CELO, token_provider_1.USDC_WORMHOLE_CELO],
41
+ [sdk_core_1.ChainId.CELO_ALFAJORES]: [token_provider_1.CUSD_CELO_ALFAJORES],
42
+ [sdk_core_1.ChainId.GNOSIS]: [token_provider_1.USDC_ETHEREUM_GNOSIS],
43
+ [sdk_core_1.ChainId.MOONBEAM]: [token_provider_1.USDC_MOONBEAM],
44
+ [sdk_core_1.ChainId.BNB]: [token_provider_1.USDT_BNB, token_provider_1.USDC_BNB, token_provider_1.DAI_BNB],
45
+ [sdk_core_1.ChainId.AVALANCHE]: [
46
+ token_provider_1.DAI_AVAX,
47
+ token_provider_1.USDC_AVAX,
48
+ token_provider_1.USDC_NATIVE_AVAX,
49
+ token_provider_1.USDC_BRIDGED_AVAX,
50
+ ],
51
+ [sdk_core_1.ChainId.BASE]: [token_provider_1.USDC_BASE, token_provider_1.USDC_NATIVE_BASE],
52
+ [sdk_core_1.ChainId.BLAST]: [token_provider_1.USDB_BLAST],
53
+ [sdk_core_1.ChainId.ZORA]: [token_provider_1.USDC_ZORA],
54
+ [sdk_core_1.ChainId.ZKSYNC]: [token_provider_1.DAI_ZKSYNC, token_provider_1.USDCE_ZKSYNC, token_provider_1.USDC_ZKSYNC],
55
+ [sdk_core_1.ChainId.WORLDCHAIN]: [token_provider_1.USDC_WORLDCHAIN],
56
+ [sdk_core_1.ChainId.UNICHAIN_SEPOLIA]: [token_provider_1.USDC_UNICHAIN_SEPOLIA],
57
+ [sdk_core_1.ChainId.MONAD_TESTNET]: [token_provider_1.USDT_MONAD_TESTNET],
58
+ [sdk_core_1.ChainId.MONAD]: [token_provider_1.USDC_MONAD],
59
+ [sdk_core_1.ChainId.BASE_SEPOLIA]: [token_provider_1.USDC_BASE_SEPOLIA],
60
+ [sdk_core_1.ChainId.UNICHAIN]: [token_provider_1.DAI_UNICHAIN, token_provider_1.USDC_UNICHAIN],
61
+ [sdk_core_1.ChainId.SONEIUM]: [token_provider_1.USDC_SONEIUM],
62
+ };
63
+ /**
64
+ * Factory for building gas models that can be used with any route to generate
65
+ * gas estimates.
66
+ *
67
+ * Factory model is used so that any supporting data can be fetched once and
68
+ * returned as part of the model.
69
+ *
70
+ * @export
71
+ * @abstract
72
+ * @class IV2GasModelFactory
73
+ */
74
+ class IV2GasModelFactory {
75
+ }
76
+ exports.IV2GasModelFactory = IV2GasModelFactory;
77
+ /**
78
+ * Factory for building gas models that can be used with any route to generate
79
+ * gas estimates.
80
+ *
81
+ * Factory model is used so that any supporting data can be fetched once and
82
+ * returned as part of the model.
83
+ *
84
+ * @export
85
+ * @abstract
86
+ * @class IOnChainGasModelFactory
87
+ */
88
+ class IOnChainGasModelFactory {
89
+ totalInitializedTicksCrossed(initializedTicksCrossedList) {
90
+ let ticksCrossed = 0;
91
+ for (let i = 0; i < initializedTicksCrossedList.length; i++) {
92
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
93
+ if (initializedTicksCrossedList[i] > 0) {
94
+ // Quoter returns Array<number of calls to crossTick + 1>, so we need to subtract 1 here.
95
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
96
+ ticksCrossed += initializedTicksCrossedList[i] - 1;
97
+ }
98
+ }
99
+ return ticksCrossed;
100
+ }
101
+ }
102
+ exports.IOnChainGasModelFactory = IOnChainGasModelFactory;
103
+ // Determines if native currency is token0
104
+ // Gets the native price of the pool, dependent on 0 or 1
105
+ // quotes across the pool
106
+ const getQuoteThroughNativePool = (chainId, nativeTokenAmount, nativeTokenPool) => {
107
+ const nativeCurrency = util_1.WRAPPED_NATIVE_CURRENCY[chainId];
108
+ const isToken0 = nativeTokenPool.token0.equals(nativeCurrency);
109
+ // returns mid price in terms of the native currency (the ratio of token/nativeToken)
110
+ const nativeTokenPrice = isToken0
111
+ ? nativeTokenPool.token0Price
112
+ : nativeTokenPool.token1Price;
113
+ // return gas cost in terms of the non native currency
114
+ return nativeTokenPrice.quote(nativeTokenAmount);
115
+ };
116
+ exports.getQuoteThroughNativePool = getQuoteThroughNativePool;
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2dhcy1tb2RlbHMvZ2FzLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGdEQUkyQjtBQUszQixzRUEwRDJDO0FBTTNDLHdDQUF3RDtBQVV4RCxnRUFBZ0U7QUFDaEUscUVBQXFFO0FBQ3JFLDRFQUE0RTtBQUMvRCxRQUFBLG1CQUFtQixHQUF1QztJQUNyRSxDQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyw0QkFBVyxFQUFFLDZCQUFZLEVBQUUsNkJBQVksQ0FBQztJQUM1RCxDQUFDLGtCQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDdEIsNkJBQVk7UUFDWiw4QkFBYTtRQUNiLHFDQUFvQjtRQUNwQiw4QkFBYTtLQUNkO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xCLDZCQUFZO1FBQ1osOEJBQWE7UUFDYixxQ0FBb0I7UUFDcEIsOEJBQWE7S0FDZDtJQUNELENBQUMsa0JBQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN6QixvQ0FBbUI7UUFDbkIscUNBQW9CO1FBQ3BCLHFDQUFvQjtLQUNyQjtJQUNELENBQUMsa0JBQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQzFCLHFDQUFvQjtRQUNwQixzQ0FBcUI7UUFDckIsc0NBQXFCO0tBQ3RCO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMscUNBQW9CLENBQUM7SUFDakQsQ0FBQyxrQkFBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxzQ0FBcUIsQ0FBQztJQUNuRCxDQUFDLGtCQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQywyQkFBVSxFQUFFLDRCQUFXLEVBQUUsNEJBQVcsRUFBRSw0QkFBVyxDQUFDO0lBQ3JFLENBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUMs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
@@ -0,0 +1,2 @@
1
+ export * from './gas-model';
2
+ export * from './v3/v3-heuristic-gas-model';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./gas-model"), exports);
18
+ __exportStar(require("./v3/v3-heuristic-gas-model"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcm91dGVycy9hbHBoYS1yb3V0ZXIvZ2FzLW1vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDhEQUE0QyJ9
@@ -0,0 +1,24 @@
1
+ import { MixedRouteWithValidQuote } from '../../entities/route-with-valid-quote';
2
+ import { BuildOnChainGasModelFactoryType, IGasModel, IOnChainGasModelFactory } from '../gas-model';
3
+ /**
4
+ * Computes a gas estimate for a mixed route swap using heuristics.
5
+ * Considers number of hops in the route, number of ticks crossed
6
+ * and the typical base cost for a swap.
7
+ *
8
+ * We get the number of ticks crossed in a swap from the MixedRouteQuoterV1
9
+ * contract.
10
+ *
11
+ * We compute gas estimates off-chain because
12
+ * 1/ Calling eth_estimateGas for a swaps requires the caller to have
13
+ * the full balance token being swapped, and approvals.
14
+ * 2/ Tracking gas used using a wrapper contract is not accurate with Multicall
15
+ * due to EIP-2929. We would have to make a request for every swap we wanted to estimate.
16
+ * 3/ For V2 we simulate all our swaps off-chain so have no way to track gas used.
17
+ *
18
+ * @export
19
+ * @class MixedRouteHeuristicGasModelFactory
20
+ */
21
+ export declare class MixedRouteHeuristicGasModelFactory extends IOnChainGasModelFactory<MixedRouteWithValidQuote> {
22
+ buildGasModel({ chainId, gasPriceWei, pools, quoteToken, v2poolProvider: V2poolProvider, providerConfig, }: BuildOnChainGasModelFactoryType): Promise<IGasModel<MixedRouteWithValidQuote>>;
23
+ private estimateGas;
24
+ }