@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.
- package/CHANGELOG.md +255 -0
- package/LICENSE +674 -0
- package/README.md +315 -0
- package/build/main/index.d.ts +3 -0
- package/build/main/index.js +20 -0
- package/build/main/providers/cache-node.d.ts +10 -0
- package/build/main/providers/cache-node.js +33 -0
- package/build/main/providers/cache.d.ts +14 -0
- package/build/main/providers/cache.js +3 -0
- package/build/main/providers/caching/route/index.d.ts +2 -0
- package/build/main/providers/caching/route/index.js +19 -0
- package/build/main/providers/caching/route/model/cache-mode.d.ts +16 -0
- package/build/main/providers/caching/route/model/cache-mode.js +21 -0
- package/build/main/providers/caching/route/model/cached-route.d.ts +29 -0
- package/build/main/providers/caching/route/model/cached-route.js +77 -0
- package/build/main/providers/caching/route/model/cached-routes.d.ts +67 -0
- package/build/main/providers/caching/route/model/cached-routes.js +81 -0
- package/build/main/providers/caching/route/model/index.d.ts +3 -0
- package/build/main/providers/caching/route/model/index.js +20 -0
- package/build/main/providers/caching/route/route-caching-provider.d.ts +111 -0
- package/build/main/providers/caching/route/route-caching-provider.js +86 -0
- package/build/main/providers/caching-gas-provider.d.ts +23 -0
- package/build/main/providers/caching-gas-provider.js +41 -0
- package/build/main/providers/caching-subgraph-provider.d.ts +33 -0
- package/build/main/providers/caching-subgraph-provider.js +170 -0
- package/build/main/providers/caching-token-list-provider.d.ts +52 -0
- package/build/main/providers/caching-token-list-provider.js +147 -0
- package/build/main/providers/caching-token-provider.d.ts +24 -0
- package/build/main/providers/caching-token-provider.js +242 -0
- package/build/main/providers/eip-1559-gas-price-provider.d.ts +31 -0
- package/build/main/providers/eip-1559-gas-price-provider.js +71 -0
- package/build/main/providers/eth-estimate-gas-provider.d.ts +21 -0
- package/build/main/providers/eth-estimate-gas-provider.js +91 -0
- package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
- package/build/main/providers/eth-gas-station-info-gas-price-provider.js +36 -0
- package/build/main/providers/gas-price-provider.d.ts +10 -0
- package/build/main/providers/gas-price-provider.js +10 -0
- package/build/main/providers/index.d.ts +47 -0
- package/build/main/providers/index.js +64 -0
- package/build/main/providers/legacy-gas-price-provider.d.ts +7 -0
- package/build/main/providers/legacy-gas-price-provider.js +18 -0
- package/build/main/providers/multicall-provider.d.ts +83 -0
- package/build/main/providers/multicall-provider.js +15 -0
- package/build/main/providers/multicall-uniswap-provider.d.ts +37 -0
- package/build/main/providers/multicall-uniswap-provider.js +164 -0
- package/build/main/providers/on-chain-gas-price-provider.d.ts +19 -0
- package/build/main/providers/on-chain-gas-price-provider.js +37 -0
- package/build/main/providers/on-chain-quote-provider.d.ts +258 -0
- package/build/main/providers/on-chain-quote-provider.js +713 -0
- package/build/main/providers/pool-provider.d.ts +45 -0
- package/build/main/providers/pool-provider.js +73 -0
- package/build/main/providers/portion-provider.d.ts +86 -0
- package/build/main/providers/portion-provider.js +118 -0
- package/build/main/providers/provider.d.ts +38 -0
- package/build/main/providers/provider.js +3 -0
- package/build/main/providers/simulation-provider.d.ts +46 -0
- package/build/main/providers/simulation-provider.js +138 -0
- package/build/main/providers/static-gas-price-provider.d.ts +7 -0
- package/build/main/providers/static-gas-price-provider.js +13 -0
- package/build/main/providers/subgraph-provider-with-fallback.d.ts +11 -0
- package/build/main/providers/subgraph-provider-with-fallback.js +25 -0
- package/build/main/providers/subgraph-provider.d.ts +56 -0
- package/build/main/providers/subgraph-provider.js +287 -0
- package/build/main/providers/swap-router-provider.d.ts +30 -0
- package/build/main/providers/swap-router-provider.js +42 -0
- package/build/main/providers/tenderly-simulation-provider.d.ts +69 -0
- package/build/main/providers/tenderly-simulation-provider.js +458 -0
- package/build/main/providers/token-fee-fetcher.d.ts +31 -0
- package/build/main/providers/token-fee-fetcher.js +165 -0
- package/build/main/providers/token-properties-provider.d.ts +31 -0
- package/build/main/providers/token-properties-provider.js +118 -0
- package/build/main/providers/token-provider.d.ts +141 -0
- package/build/main/providers/token-provider.js +394 -0
- package/build/main/providers/token-validator-provider.d.ts +42 -0
- package/build/main/providers/token-validator-provider.js +99 -0
- package/build/main/providers/uri-subgraph-provider.d.ts +20 -0
- package/build/main/providers/uri-subgraph-provider.js +65 -0
- package/build/main/providers/v2/caching-pool-provider.d.ts +33 -0
- package/build/main/providers/v2/caching-pool-provider.js +89 -0
- package/build/main/providers/v2/caching-subgraph-provider.d.ts +19 -0
- package/build/main/providers/v2/caching-subgraph-provider.js +24 -0
- package/build/main/providers/v2/pool-provider.d.ts +63 -0
- package/build/main/providers/v2/pool-provider.js +148 -0
- package/build/main/providers/v2/quote-provider.d.ts +34 -0
- package/build/main/providers/v2/quote-provider.js +90 -0
- package/build/main/providers/v2/static-subgraph-provider.d.ts +19 -0
- package/build/main/providers/v2/static-subgraph-provider.js +171 -0
- package/build/main/providers/v2/subgraph-provider-with-fallback.d.ts +16 -0
- package/build/main/providers/v2/subgraph-provider-with-fallback.js +23 -0
- package/build/main/providers/v2/subgraph-provider.d.ts +53 -0
- package/build/main/providers/v2/subgraph-provider.js +344 -0
- package/build/main/providers/v2/uri-subgraph-provider.d.ts +4 -0
- package/build/main/providers/v2/uri-subgraph-provider.js +8 -0
- package/build/main/providers/v3/caching-pool-provider.d.ts +32 -0
- package/build/main/providers/v3/caching-pool-provider.js +84 -0
- package/build/main/providers/v3/caching-subgraph-provider.d.ts +19 -0
- package/build/main/providers/v3/caching-subgraph-provider.js +24 -0
- package/build/main/providers/v3/gas-data-provider.d.ts +39 -0
- package/build/main/providers/v3/gas-data-provider.js +26 -0
- package/build/main/providers/v3/pool-provider.d.ts +77 -0
- package/build/main/providers/v3/pool-provider.js +108 -0
- package/build/main/providers/v3/static-subgraph-provider.d.ts +21 -0
- package/build/main/providers/v3/static-subgraph-provider.js +217 -0
- package/build/main/providers/v3/subgraph-provider-with-fallback.d.ts +12 -0
- package/build/main/providers/v3/subgraph-provider-with-fallback.js +19 -0
- package/build/main/providers/v3/subgraph-provider.d.ts +45 -0
- package/build/main/providers/v3/subgraph-provider.js +46 -0
- package/build/main/providers/v3/uri-subgraph-provider.d.ts +4 -0
- package/build/main/providers/v3/uri-subgraph-provider.js +8 -0
- package/build/main/providers/v4/caching-pool-provider.d.ts +24 -0
- package/build/main/providers/v4/caching-pool-provider.js +81 -0
- package/build/main/providers/v4/caching-subgraph-provider.d.ts +19 -0
- package/build/main/providers/v4/caching-subgraph-provider.js +24 -0
- package/build/main/providers/v4/euler-swap-hooks-subgraph-provider.d.ts +25 -0
- package/build/main/providers/v4/euler-swap-hooks-subgraph-provider.js +160 -0
- package/build/main/providers/v4/pool-provider.d.ts +58 -0
- package/build/main/providers/v4/pool-provider.js +115 -0
- package/build/main/providers/v4/static-subgraph-provider.d.ts +15 -0
- package/build/main/providers/v4/static-subgraph-provider.js +78 -0
- package/build/main/providers/v4/subgraph-provider-with-fallback.d.ts +5 -0
- package/build/main/providers/v4/subgraph-provider-with-fallback.js +12 -0
- package/build/main/providers/v4/subgraph-provider.d.ts +63 -0
- package/build/main/providers/v4/subgraph-provider.js +63 -0
- package/build/main/providers/v4/uri-subgraph-provider.d.ts +4 -0
- package/build/main/providers/v4/uri-subgraph-provider.js +8 -0
- package/build/main/routers/alpha-router/alpha-router.d.ts +483 -0
- package/build/main/routers/alpha-router/alpha-router.js +1678 -0
- package/build/main/routers/alpha-router/config.d.ts +4 -0
- package/build/main/routers/alpha-router/config.js +131 -0
- package/build/main/routers/alpha-router/entities/index.d.ts +1 -0
- package/build/main/routers/alpha-router/entities/index.js +18 -0
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +208 -0
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +194 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +24 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.js +538 -0
- package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
- package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js +18 -0
- package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +12 -0
- package/build/main/routers/alpha-router/functions/compute-all-routes.js +133 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +126 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.js +1527 -0
- package/build/main/routers/alpha-router/gas-models/gas-costs.d.ts +12 -0
- package/build/main/routers/alpha-router/gas-models/gas-costs.js +200 -0
- package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +107 -0
- package/build/main/routers/alpha-router/gas-models/gas-model.js +117 -0
- package/build/main/routers/alpha-router/gas-models/index.d.ts +2 -0
- package/build/main/routers/alpha-router/gas-models/index.js +19 -0
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +161 -0
- package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +15 -0
- package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +191 -0
- package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +31 -0
- package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +169 -0
- package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +26 -0
- package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +41 -0
- package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.d.ts +15 -0
- package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js +40 -0
- package/build/main/routers/alpha-router/index.d.ts +4 -0
- package/build/main/routers/alpha-router/index.js +21 -0
- package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +77 -0
- package/build/main/routers/alpha-router/quoters/base-quoter.js +76 -0
- package/build/main/routers/alpha-router/quoters/index.d.ts +5 -0
- package/build/main/routers/alpha-router/quoters/index.js +22 -0
- package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +32 -0
- package/build/main/routers/alpha-router/quoters/mixed-quoter.js +154 -0
- package/build/main/routers/alpha-router/quoters/model/index.d.ts +1 -0
- package/build/main/routers/alpha-router/quoters/model/index.js +18 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js +3 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js +3 -0
- package/build/main/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
- package/build/main/routers/alpha-router/quoters/model/results/index.js +19 -0
- package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
- package/build/main/routers/alpha-router/quoters/v2-quoter.js +141 -0
- package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
- package/build/main/routers/alpha-router/quoters/v3-quoter.js +125 -0
- package/build/main/routers/alpha-router/quoters/v4-quoter.d.ts +18 -0
- package/build/main/routers/alpha-router/quoters/v4-quoter.js +122 -0
- package/build/main/routers/index.d.ts +4 -0
- package/build/main/routers/index.js +21 -0
- package/build/main/routers/legacy-router/bases.d.ts +213 -0
- package/build/main/routers/legacy-router/bases.js +124 -0
- package/build/main/routers/legacy-router/index.d.ts +1 -0
- package/build/main/routers/legacy-router/index.js +18 -0
- package/build/main/routers/legacy-router/legacy-router.d.ts +41 -0
- package/build/main/routers/legacy-router/legacy-router.js +291 -0
- package/build/main/routers/router.d.ts +195 -0
- package/build/main/routers/router.js +92 -0
- package/build/main/tsconfig.tsbuildinfo +1 -0
- package/build/main/types/other/factories/Erc20__factory.d.ts +45 -0
- package/build/main/types/other/factories/Erc20__factory.js +240 -0
- package/build/main/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
- package/build/main/types/other/factories/GasDataArbitrum__factory.js +58 -0
- package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
- package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js +156 -0
- package/build/main/types/other/factories/ITokenValidator__factory.d.ts +22 -0
- package/build/main/types/other/factories/ITokenValidator__factory.js +78 -0
- package/build/main/types/other/factories/MixedRouteQuoterV2__factory.d.ts +86 -0
- package/build/main/types/other/factories/MixedRouteQuoterV2__factory.js +477 -0
- package/build/main/types/other/factories/Permit2__factory.d.ts +87 -0
- package/build/main/types/other/factories/Permit2__factory.js +941 -0
- package/build/main/types/other/factories/StateView__factory.d.ts +32 -0
- package/build/main/types/other/factories/StateView__factory.js +383 -0
- package/build/main/types/other/factories/SwapRouter02__factory.d.ts +67 -0
- package/build/main/types/other/factories/SwapRouter02__factory.js +1103 -0
- package/build/main/types/other/factories/TokenFeeDetector__factory.d.ts +47 -0
- package/build/main/types/other/factories/TokenFeeDetector__factory.js +243 -0
- package/build/main/types/other/factories/V4Quoter__factory.d.ts +37 -0
- package/build/main/types/other/factories/V4Quoter__factory.js +312 -0
- package/build/main/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
- package/build/main/types/v2/factories/IUniswapV2Pair__factory.js +671 -0
- package/build/main/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
- package/build/main/types/v3/factories/IERC20Metadata__factory.js +242 -0
- package/build/main/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
- package/build/main/types/v3/factories/IQuoterV2__factory.js +220 -0
- package/build/main/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
- package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js +266 -0
- package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
- package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js +132 -0
- package/build/main/util/addresses.d.ts +32 -0
- package/build/main/util/addresses.js +113 -0
- package/build/main/util/amounts.d.ts +10 -0
- package/build/main/util/amounts.js +94 -0
- package/build/main/util/callData.d.ts +1 -0
- package/build/main/util/callData.js +6 -0
- package/build/main/util/chains.d.ts +69 -0
- package/build/main/util/chains.js +740 -0
- package/build/main/util/defaultBlocksToLive.d.ts +4 -0
- package/build/main/util/defaultBlocksToLive.js +58 -0
- package/build/main/util/gas-factory-helpers.d.ts +34 -0
- package/build/main/util/gas-factory-helpers.js +439 -0
- package/build/main/util/hooksOptions.d.ts +5 -0
- package/build/main/util/hooksOptions.js +10 -0
- package/build/main/util/index.d.ts +10 -0
- package/build/main/util/index.js +27 -0
- package/build/main/util/intent.d.ts +6 -0
- package/build/main/util/intent.js +13 -0
- package/build/main/util/l2FeeChains.d.ts +2 -0
- package/build/main/util/l2FeeChains.js +18 -0
- package/build/main/util/log.d.ts +3 -0
- package/build/main/util/log.js +97 -0
- package/build/main/util/methodParameters.d.ts +5 -0
- package/build/main/util/methodParameters.js +147 -0
- package/build/main/util/metric.d.ts +48 -0
- package/build/main/util/metric.js +59 -0
- package/build/main/util/mixedRouteFilterOutV4Pools.d.ts +3 -0
- package/build/main/util/mixedRouteFilterOutV4Pools.js +17 -0
- package/build/main/util/onchainQuoteProviderConfigs.d.ts +42 -0
- package/build/main/util/onchainQuoteProviderConfigs.js +72 -0
- package/build/main/util/pool.d.ts +5 -0
- package/build/main/util/pool.js +44 -0
- package/build/main/util/protocols.d.ts +2 -0
- package/build/main/util/protocols.js +20 -0
- package/build/main/util/routes.d.ts +11 -0
- package/build/main/util/routes.js +148 -0
- package/build/main/util/serializeRouteIds.d.ts +2 -0
- package/build/main/util/serializeRouteIds.js +12 -0
- package/build/main/util/tenderlySimulationErrorBreakDown.d.ts +3 -0
- package/build/main/util/tenderlySimulationErrorBreakDown.js +33 -0
- package/build/main/util/unsupported-tokens.d.ts +37 -0
- package/build/main/util/unsupported-tokens.js +1119 -0
- package/build/module/index.d.ts +3 -0
- package/build/module/index.js +4 -0
- package/build/module/providers/cache-node.d.ts +10 -0
- package/build/module/providers/cache-node.js +29 -0
- package/build/module/providers/cache.d.ts +14 -0
- package/build/module/providers/cache.js +2 -0
- package/build/module/providers/caching/route/index.d.ts +2 -0
- package/build/module/providers/caching/route/index.js +3 -0
- package/build/module/providers/caching/route/model/cache-mode.d.ts +16 -0
- package/build/module/providers/caching/route/model/cache-mode.js +18 -0
- package/build/module/providers/caching/route/model/cached-route.d.ts +29 -0
- package/build/module/providers/caching/route/model/cached-route.js +73 -0
- package/build/module/providers/caching/route/model/cached-routes.d.ts +67 -0
- package/build/module/providers/caching/route/model/cached-routes.js +74 -0
- package/build/module/providers/caching/route/model/index.d.ts +3 -0
- package/build/module/providers/caching/route/model/index.js +4 -0
- package/build/module/providers/caching/route/route-caching-provider.d.ts +111 -0
- package/build/module/providers/caching/route/route-caching-provider.js +82 -0
- package/build/module/providers/caching-gas-provider.d.ts +23 -0
- package/build/module/providers/caching-gas-provider.js +37 -0
- package/build/module/providers/caching-subgraph-provider.d.ts +33 -0
- package/build/module/providers/caching-subgraph-provider.js +166 -0
- package/build/module/providers/caching-token-list-provider.d.ts +52 -0
- package/build/module/providers/caching-token-list-provider.js +140 -0
- package/build/module/providers/caching-token-provider.d.ts +24 -0
- package/build/module/providers/caching-token-provider.js +235 -0
- package/build/module/providers/eip-1559-gas-price-provider.d.ts +31 -0
- package/build/module/providers/eip-1559-gas-price-provider.js +64 -0
- package/build/module/providers/eth-estimate-gas-provider.d.ts +21 -0
- package/build/module/providers/eth-estimate-gas-provider.js +99 -0
- package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
- package/build/module/providers/eth-gas-station-info-gas-price-provider.js +29 -0
- package/build/module/providers/gas-price-provider.d.ts +10 -0
- package/build/module/providers/gas-price-provider.js +6 -0
- package/build/module/providers/index.d.ts +47 -0
- package/build/module/providers/index.js +48 -0
- package/build/module/providers/legacy-gas-price-provider.d.ts +7 -0
- package/build/module/providers/legacy-gas-price-provider.js +14 -0
- package/build/module/providers/multicall-provider.d.ts +83 -0
- package/build/module/providers/multicall-provider.js +11 -0
- package/build/module/providers/multicall-uniswap-provider.d.ts +37 -0
- package/build/module/providers/multicall-uniswap-provider.js +157 -0
- package/build/module/providers/on-chain-gas-price-provider.d.ts +19 -0
- package/build/module/providers/on-chain-gas-price-provider.js +33 -0
- package/build/module/providers/on-chain-quote-provider.d.ts +258 -0
- package/build/module/providers/on-chain-quote-provider.js +707 -0
- package/build/module/providers/pool-provider.d.ts +45 -0
- package/build/module/providers/pool-provider.js +66 -0
- package/build/module/providers/portion-provider.d.ts +86 -0
- package/build/module/providers/portion-provider.js +114 -0
- package/build/module/providers/provider.d.ts +38 -0
- package/build/module/providers/provider.js +2 -0
- package/build/module/providers/simulation-provider.d.ts +46 -0
- package/build/module/providers/simulation-provider.js +140 -0
- package/build/module/providers/static-gas-price-provider.d.ts +7 -0
- package/build/module/providers/static-gas-price-provider.js +9 -0
- package/build/module/providers/subgraph-provider-with-fallback.d.ts +11 -0
- package/build/module/providers/subgraph-provider-with-fallback.js +21 -0
- package/build/module/providers/subgraph-provider.d.ts +56 -0
- package/build/module/providers/subgraph-provider.js +284 -0
- package/build/module/providers/swap-router-provider.d.ts +30 -0
- package/build/module/providers/swap-router-provider.js +38 -0
- package/build/module/providers/tenderly-simulation-provider.d.ts +69 -0
- package/build/module/providers/tenderly-simulation-provider.js +456 -0
- package/build/module/providers/token-fee-fetcher.d.ts +31 -0
- package/build/module/providers/token-fee-fetcher.js +161 -0
- package/build/module/providers/token-properties-provider.d.ts +31 -0
- package/build/module/providers/token-properties-provider.js +114 -0
- package/build/module/providers/token-provider.d.ts +141 -0
- package/build/module/providers/token-provider.js +381 -0
- package/build/module/providers/token-validator-provider.d.ts +42 -0
- package/build/module/providers/token-validator-provider.js +92 -0
- package/build/module/providers/uri-subgraph-provider.d.ts +20 -0
- package/build/module/providers/uri-subgraph-provider.js +58 -0
- package/build/module/providers/v2/caching-pool-provider.d.ts +33 -0
- package/build/module/providers/v2/caching-pool-provider.js +85 -0
- package/build/module/providers/v2/caching-subgraph-provider.d.ts +19 -0
- package/build/module/providers/v2/caching-subgraph-provider.js +20 -0
- package/build/module/providers/v2/pool-provider.d.ts +63 -0
- package/build/module/providers/v2/pool-provider.js +141 -0
- package/build/module/providers/v2/quote-provider.d.ts +34 -0
- package/build/module/providers/v2/quote-provider.js +86 -0
- package/build/module/providers/v2/static-subgraph-provider.d.ts +19 -0
- package/build/module/providers/v2/static-subgraph-provider.js +164 -0
- package/build/module/providers/v2/subgraph-provider-with-fallback.d.ts +16 -0
- package/build/module/providers/v2/subgraph-provider-with-fallback.js +19 -0
- package/build/module/providers/v2/subgraph-provider.d.ts +53 -0
- package/build/module/providers/v2/subgraph-provider.js +341 -0
- package/build/module/providers/v2/uri-subgraph-provider.d.ts +4 -0
- package/build/module/providers/v2/uri-subgraph-provider.js +4 -0
- package/build/module/providers/v3/caching-pool-provider.d.ts +32 -0
- package/build/module/providers/v3/caching-pool-provider.js +77 -0
- package/build/module/providers/v3/caching-subgraph-provider.d.ts +19 -0
- package/build/module/providers/v3/caching-subgraph-provider.js +20 -0
- package/build/module/providers/v3/gas-data-provider.d.ts +39 -0
- package/build/module/providers/v3/gas-data-provider.js +22 -0
- package/build/module/providers/v3/pool-provider.d.ts +77 -0
- package/build/module/providers/v3/pool-provider.js +101 -0
- package/build/module/providers/v3/static-subgraph-provider.d.ts +21 -0
- package/build/module/providers/v3/static-subgraph-provider.js +210 -0
- package/build/module/providers/v3/subgraph-provider-with-fallback.d.ts +12 -0
- package/build/module/providers/v3/subgraph-provider-with-fallback.js +15 -0
- package/build/module/providers/v3/subgraph-provider.d.ts +45 -0
- package/build/module/providers/v3/subgraph-provider.js +42 -0
- package/build/module/providers/v3/uri-subgraph-provider.d.ts +4 -0
- package/build/module/providers/v3/uri-subgraph-provider.js +4 -0
- package/build/module/providers/v4/caching-pool-provider.d.ts +24 -0
- package/build/module/providers/v4/caching-pool-provider.js +74 -0
- package/build/module/providers/v4/caching-subgraph-provider.d.ts +19 -0
- package/build/module/providers/v4/caching-subgraph-provider.js +20 -0
- package/build/module/providers/v4/euler-swap-hooks-subgraph-provider.d.ts +25 -0
- package/build/module/providers/v4/euler-swap-hooks-subgraph-provider.js +153 -0
- package/build/module/providers/v4/pool-provider.d.ts +58 -0
- package/build/module/providers/v4/pool-provider.js +106 -0
- package/build/module/providers/v4/static-subgraph-provider.d.ts +15 -0
- package/build/module/providers/v4/static-subgraph-provider.js +71 -0
- package/build/module/providers/v4/subgraph-provider-with-fallback.d.ts +5 -0
- package/build/module/providers/v4/subgraph-provider-with-fallback.js +8 -0
- package/build/module/providers/v4/subgraph-provider.d.ts +63 -0
- package/build/module/providers/v4/subgraph-provider.js +59 -0
- package/build/module/providers/v4/uri-subgraph-provider.d.ts +4 -0
- package/build/module/providers/v4/uri-subgraph-provider.js +4 -0
- package/build/module/routers/alpha-router/alpha-router.d.ts +483 -0
- package/build/module/routers/alpha-router/alpha-router.js +1680 -0
- package/build/module/routers/alpha-router/config.d.ts +4 -0
- package/build/module/routers/alpha-router/config.js +127 -0
- package/build/module/routers/alpha-router/entities/index.d.ts +1 -0
- package/build/module/routers/alpha-router/entities/index.js +2 -0
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +208 -0
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +184 -0
- package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +24 -0
- package/build/module/routers/alpha-router/functions/best-swap-route.js +528 -0
- package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +3 -0
- package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.js +14 -0
- package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +12 -0
- package/build/module/routers/alpha-router/functions/compute-all-routes.js +125 -0
- package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +126 -0
- package/build/module/routers/alpha-router/functions/get-candidate-pools.js +1516 -0
- package/build/module/routers/alpha-router/gas-models/gas-costs.d.ts +12 -0
- package/build/module/routers/alpha-router/gas-models/gas-costs.js +189 -0
- package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +107 -0
- package/build/module/routers/alpha-router/gas-models/gas-model.js +111 -0
- package/build/module/routers/alpha-router/gas-models/index.d.ts +2 -0
- package/build/module/routers/alpha-router/gas-models/index.js +3 -0
- package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
- package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +154 -0
- package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +15 -0
- package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +187 -0
- package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +31 -0
- package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +162 -0
- package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +26 -0
- package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +37 -0
- package/build/module/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.d.ts +15 -0
- package/build/module/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js +36 -0
- package/build/module/routers/alpha-router/index.d.ts +4 -0
- package/build/module/routers/alpha-router/index.js +5 -0
- package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +77 -0
- package/build/module/routers/alpha-router/quoters/base-quoter.js +69 -0
- package/build/module/routers/alpha-router/quoters/index.d.ts +5 -0
- package/build/module/routers/alpha-router/quoters/index.js +6 -0
- package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +32 -0
- package/build/module/routers/alpha-router/quoters/mixed-quoter.js +147 -0
- package/build/module/routers/alpha-router/quoters/model/index.d.ts +1 -0
- package/build/module/routers/alpha-router/quoters/model/index.js +2 -0
- package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
- package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.js +2 -0
- package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
- package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.js +2 -0
- package/build/module/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
- package/build/module/routers/alpha-router/quoters/model/results/index.js +3 -0
- package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
- package/build/module/routers/alpha-router/quoters/v2-quoter.js +138 -0
- package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
- package/build/module/routers/alpha-router/quoters/v3-quoter.js +118 -0
- package/build/module/routers/alpha-router/quoters/v4-quoter.d.ts +18 -0
- package/build/module/routers/alpha-router/quoters/v4-quoter.js +115 -0
- package/build/module/routers/index.d.ts +4 -0
- package/build/module/routers/index.js +5 -0
- package/build/module/routers/legacy-router/bases.d.ts +213 -0
- package/build/module/routers/legacy-router/bases.js +130 -0
- package/build/module/routers/legacy-router/index.d.ts +1 -0
- package/build/module/routers/legacy-router/index.js +2 -0
- package/build/module/routers/legacy-router/legacy-router.d.ts +41 -0
- package/build/module/routers/legacy-router/legacy-router.js +292 -0
- package/build/module/routers/router.d.ts +195 -0
- package/build/module/routers/router.js +79 -0
- package/build/module/tsconfig.module.tsbuildinfo +1 -0
- package/build/module/types/other/factories/Erc20__factory.d.ts +45 -0
- package/build/module/types/other/factories/Erc20__factory.js +236 -0
- package/build/module/types/other/factories/GasDataArbitrum__factory.d.ts +18 -0
- package/build/module/types/other/factories/GasDataArbitrum__factory.js +54 -0
- package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +41 -0
- package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.js +152 -0
- package/build/module/types/other/factories/ITokenValidator__factory.d.ts +22 -0
- package/build/module/types/other/factories/ITokenValidator__factory.js +74 -0
- package/build/module/types/other/factories/MixedRouteQuoterV2__factory.d.ts +86 -0
- package/build/module/types/other/factories/MixedRouteQuoterV2__factory.js +473 -0
- package/build/module/types/other/factories/Permit2__factory.d.ts +87 -0
- package/build/module/types/other/factories/Permit2__factory.js +937 -0
- package/build/module/types/other/factories/StateView__factory.d.ts +32 -0
- package/build/module/types/other/factories/StateView__factory.js +379 -0
- package/build/module/types/other/factories/SwapRouter02__factory.d.ts +67 -0
- package/build/module/types/other/factories/SwapRouter02__factory.js +1099 -0
- package/build/module/types/other/factories/TokenFeeDetector__factory.d.ts +47 -0
- package/build/module/types/other/factories/TokenFeeDetector__factory.js +239 -0
- package/build/module/types/other/factories/V4Quoter__factory.d.ts +37 -0
- package/build/module/types/other/factories/V4Quoter__factory.js +308 -0
- package/build/module/types/v2/factories/IUniswapV2Pair__factory.d.ts +35 -0
- package/build/module/types/v2/factories/IUniswapV2Pair__factory.js +667 -0
- package/build/module/types/v3/factories/IERC20Metadata__factory.d.ts +35 -0
- package/build/module/types/v3/factories/IERC20Metadata__factory.js +238 -0
- package/build/module/types/v3/factories/IQuoterV2__factory.d.ts +41 -0
- package/build/module/types/v3/factories/IQuoterV2__factory.js +216 -0
- package/build/module/types/v3/factories/IUniswapV3PoolState__factory.d.ts +22 -0
- package/build/module/types/v3/factories/IUniswapV3PoolState__factory.js +262 -0
- package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.d.ts +61 -0
- package/build/module/types/v3/factories/UniswapInterfaceMulticall__factory.js +128 -0
- package/build/module/util/addresses.d.ts +32 -0
- package/build/module/util/addresses.js +233 -0
- package/build/module/util/amounts.d.ts +10 -0
- package/build/module/util/amounts.js +82 -0
- package/build/module/util/callData.d.ts +1 -0
- package/build/module/util/callData.js +3 -0
- package/build/module/util/chains.d.ts +69 -0
- package/build/module/util/chains.js +732 -0
- package/build/module/util/defaultBlocksToLive.d.ts +4 -0
- package/build/module/util/defaultBlocksToLive.js +55 -0
- package/build/module/util/gas-factory-helpers.d.ts +34 -0
- package/build/module/util/gas-factory-helpers.js +421 -0
- package/build/module/util/hooksOptions.d.ts +5 -0
- package/build/module/util/hooksOptions.js +7 -0
- package/build/module/util/index.d.ts +10 -0
- package/build/module/util/index.js +11 -0
- package/build/module/util/intent.d.ts +6 -0
- package/build/module/util/intent.js +10 -0
- package/build/module/util/l2FeeChains.d.ts +2 -0
- package/build/module/util/l2FeeChains.js +15 -0
- package/build/module/util/log.d.ts +3 -0
- package/build/module/util/log.js +93 -0
- package/build/module/util/methodParameters.d.ts +5 -0
- package/build/module/util/methodParameters.js +145 -0
- package/build/module/util/metric.d.ts +48 -0
- package/build/module/util/metric.js +53 -0
- package/build/module/util/mixedRouteFilterOutV4Pools.d.ts +3 -0
- package/build/module/util/mixedRouteFilterOutV4Pools.js +12 -0
- package/build/module/util/onchainQuoteProviderConfigs.d.ts +42 -0
- package/build/module/util/onchainQuoteProviderConfigs.js +74 -0
- package/build/module/util/pool.d.ts +5 -0
- package/build/module/util/pool.js +41 -0
- package/build/module/util/protocols.d.ts +2 -0
- package/build/module/util/protocols.js +16 -0
- package/build/module/util/routes.d.ts +11 -0
- package/build/module/util/routes.js +136 -0
- package/build/module/util/serializeRouteIds.d.ts +2 -0
- package/build/module/util/serializeRouteIds.js +7 -0
- package/build/module/util/tenderlySimulationErrorBreakDown.d.ts +3 -0
- package/build/module/util/tenderlySimulationErrorBreakDown.js +29 -0
- package/build/module/util/unsupported-tokens.d.ts +37 -0
- package/build/module/util/unsupported-tokens.js +1116 -0
- package/package.json +129 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Protocol } from '@uniswap/router-sdk';
|
|
2
|
+
import { TradeType } from '@uniswap/sdk-core';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import { TokenValidationResult, } from '../../../providers';
|
|
5
|
+
import { log, metric, MetricLoggerUnit, routeToString, } from '../../../util';
|
|
6
|
+
import { V3RouteWithValidQuote } from '../entities';
|
|
7
|
+
import { computeAllV3Routes } from '../functions/compute-all-routes';
|
|
8
|
+
import { BaseQuoter } from './base-quoter';
|
|
9
|
+
export class V3Quoter extends BaseQuoter {
|
|
10
|
+
constructor(v3SubgraphProvider, v3PoolProvider, onChainQuoteProvider, tokenProvider, chainId, blockedTokenListProvider, tokenValidatorProvider) {
|
|
11
|
+
super(tokenProvider, chainId, Protocol.V3, blockedTokenListProvider, tokenValidatorProvider);
|
|
12
|
+
this.v3SubgraphProvider = v3SubgraphProvider;
|
|
13
|
+
this.v3PoolProvider = v3PoolProvider;
|
|
14
|
+
this.onChainQuoteProvider = onChainQuoteProvider;
|
|
15
|
+
}
|
|
16
|
+
async getRoutes(tokenIn, tokenOut, v3CandidatePools, _tradeType, routingConfig) {
|
|
17
|
+
const beforeGetRoutes = Date.now();
|
|
18
|
+
// Fetch all the pools that we will consider routing via. There are thousands
|
|
19
|
+
// of pools, so we filter them to a set of candidate pools that we expect will
|
|
20
|
+
// result in good prices.
|
|
21
|
+
const { poolAccessor, candidatePools } = v3CandidatePools;
|
|
22
|
+
const poolsRaw = poolAccessor.getAllPools();
|
|
23
|
+
// Drop any pools that contain fee on transfer tokens (not supported by v3) or have issues with being transferred.
|
|
24
|
+
const pools = await this.applyTokenValidatorToPools(poolsRaw, (token, tokenValidation) => {
|
|
25
|
+
// If there is no available validation result we assume the token is fine.
|
|
26
|
+
if (!tokenValidation) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
// Only filters out *intermediate* pools that involve tokens that we detect
|
|
30
|
+
// cant be transferred. This prevents us trying to route through tokens that may
|
|
31
|
+
// not be transferrable, but allows users to still swap those tokens if they
|
|
32
|
+
// specify.
|
|
33
|
+
//
|
|
34
|
+
if (tokenValidation == TokenValidationResult.STF &&
|
|
35
|
+
(token.equals(tokenIn) || token.equals(tokenOut))) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
// ROUTE-495 - bypass v3 pool FOT check for $ELMO token
|
|
39
|
+
if (tokenValidation == TokenValidationResult.FOT &&
|
|
40
|
+
token.wrapped.address.toLowerCase() ===
|
|
41
|
+
'0x335f4e66b9b61cee5ceade4e727fcec20156b2f0' &&
|
|
42
|
+
(token.equals(tokenIn) || token.equals(tokenOut))) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return (tokenValidation == TokenValidationResult.FOT ||
|
|
46
|
+
tokenValidation == TokenValidationResult.STF);
|
|
47
|
+
});
|
|
48
|
+
// Given all our candidate pools, compute all the possible ways to route from tokenIn to tokenOut.
|
|
49
|
+
const { maxSwapsPerPath } = routingConfig;
|
|
50
|
+
const routes = computeAllV3Routes(tokenIn, tokenOut, pools, maxSwapsPerPath);
|
|
51
|
+
metric.putMetric('V3GetRoutesLoad', Date.now() - beforeGetRoutes, MetricLoggerUnit.Milliseconds);
|
|
52
|
+
metric.putMetric(`V3GetRoutesLoad_Chain${this.chainId}`, Date.now() - beforeGetRoutes, MetricLoggerUnit.Milliseconds);
|
|
53
|
+
return {
|
|
54
|
+
routes,
|
|
55
|
+
candidatePools,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async getQuotes(routes, amounts, percents, quoteToken, tradeType, routingConfig, candidatePools, gasModel) {
|
|
59
|
+
const beforeGetQuotes = Date.now();
|
|
60
|
+
log.info('Starting to get V3 quotes');
|
|
61
|
+
if (gasModel === undefined) {
|
|
62
|
+
throw new Error('GasModel for V3RouteWithValidQuote is required to getQuotes');
|
|
63
|
+
}
|
|
64
|
+
if (routes.length == 0) {
|
|
65
|
+
return { routesWithValidQuotes: [], candidatePools };
|
|
66
|
+
}
|
|
67
|
+
// For all our routes, and all the fractional amounts, fetch quotes on-chain.
|
|
68
|
+
const quoteFn = tradeType == TradeType.EXACT_INPUT
|
|
69
|
+
? this.onChainQuoteProvider.getQuotesManyExactIn.bind(this.onChainQuoteProvider)
|
|
70
|
+
: this.onChainQuoteProvider.getQuotesManyExactOut.bind(this.onChainQuoteProvider);
|
|
71
|
+
const beforeQuotes = Date.now();
|
|
72
|
+
log.info(`Getting quotes for V3 for ${routes.length} routes with ${amounts.length} amounts per route.`);
|
|
73
|
+
const { routesWithQuotes } = await quoteFn(amounts, routes, routingConfig);
|
|
74
|
+
metric.putMetric('V3QuotesLoad', Date.now() - beforeQuotes, MetricLoggerUnit.Milliseconds);
|
|
75
|
+
metric.putMetric('V3QuotesFetched', _(routesWithQuotes)
|
|
76
|
+
.map(([, quotes]) => quotes.length)
|
|
77
|
+
.sum(), MetricLoggerUnit.Count);
|
|
78
|
+
const routesWithValidQuotes = [];
|
|
79
|
+
for (const routeWithQuote of routesWithQuotes) {
|
|
80
|
+
const [route, quotes] = routeWithQuote;
|
|
81
|
+
for (let i = 0; i < quotes.length; i++) {
|
|
82
|
+
const percent = percents[i];
|
|
83
|
+
const amountQuote = quotes[i];
|
|
84
|
+
const { quote, amount, sqrtPriceX96AfterList, initializedTicksCrossedList, gasEstimate, } = amountQuote;
|
|
85
|
+
if (!quote ||
|
|
86
|
+
!sqrtPriceX96AfterList ||
|
|
87
|
+
!initializedTicksCrossedList ||
|
|
88
|
+
!gasEstimate) {
|
|
89
|
+
log.debug({
|
|
90
|
+
route: routeToString(route),
|
|
91
|
+
amountQuote,
|
|
92
|
+
}, 'Dropping a null V3 quote for route.');
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const routeWithValidQuote = new V3RouteWithValidQuote({
|
|
96
|
+
route,
|
|
97
|
+
rawQuote: quote,
|
|
98
|
+
amount,
|
|
99
|
+
percent,
|
|
100
|
+
sqrtPriceX96AfterList,
|
|
101
|
+
initializedTicksCrossedList,
|
|
102
|
+
quoterGasEstimate: gasEstimate,
|
|
103
|
+
gasModel,
|
|
104
|
+
quoteToken,
|
|
105
|
+
tradeType,
|
|
106
|
+
v3PoolProvider: this.v3PoolProvider,
|
|
107
|
+
});
|
|
108
|
+
routesWithValidQuotes.push(routeWithValidQuote);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
metric.putMetric('V3GetQuotesLoad', Date.now() - beforeGetQuotes, MetricLoggerUnit.Milliseconds);
|
|
112
|
+
return {
|
|
113
|
+
routesWithValidQuotes,
|
|
114
|
+
candidatePools,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjMtcXVvdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL3F1b3RlcnMvdjMtcXVvdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUV2QixPQUFPLEVBT0wscUJBQXFCLEdBQ3RCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUVMLEdBQUcsRUFDSCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGFBQWEsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFPckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQTRDO0lBS3hFLFlBQ0Usa0JBQXVDLEVBQ3ZDLGNBQStCLEVBQy9CLG9CQUEyQyxFQUMzQyxhQUE2QixFQUM3QixPQUFnQixFQUNoQix3QkFBNkMsRUFDN0Msc0JBQWdEO1FBRWhELEtBQUssQ0FDSCxhQUFhLEVBQ2IsT0FBTyxFQUNQLFFBQVEsQ0FBQyxFQUFFLEVBQ1gsd0JBQXdCLEVBQ3hCLHNCQUFzQixDQUN2QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztJQUNuRCxDQUFDO0lBRVMsS0FBSyxDQUFDLFNBQVMsQ0FDdkIsT0FBYyxFQUNkLFFBQWUsRUFDZixn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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ChainId, Currency, TradeType } from '@uniswap/sdk-core';
|
|
2
|
+
import { IOnChainQuoteProvider, ITokenListProvider, ITokenProvider, ITokenValidatorProvider, IV4PoolProvider, IV4SubgraphProvider } from '../../../providers';
|
|
3
|
+
import { CurrencyAmount } from '../../../util';
|
|
4
|
+
import { V4Route } from '../../router';
|
|
5
|
+
import { AlphaRouterConfig } from '../alpha-router';
|
|
6
|
+
import { RouteWithValidQuote } from '../entities';
|
|
7
|
+
import { CandidatePoolsBySelectionCriteria, V4CandidatePools } from '../functions/get-candidate-pools';
|
|
8
|
+
import { IGasModel } from '../gas-models';
|
|
9
|
+
import { BaseQuoter } from './base-quoter';
|
|
10
|
+
import { GetQuotesResult, GetRoutesResult } from './model';
|
|
11
|
+
export declare class V4Quoter extends BaseQuoter<V4CandidatePools, V4Route, Currency> {
|
|
12
|
+
protected v4SubgraphProvider: IV4SubgraphProvider;
|
|
13
|
+
protected v4PoolProvider: IV4PoolProvider;
|
|
14
|
+
protected onChainQuoteProvider: IOnChainQuoteProvider;
|
|
15
|
+
constructor(v4SubgraphProvider: IV4SubgraphProvider, v4PoolProvider: IV4PoolProvider, onChainQuoteProvider: IOnChainQuoteProvider, tokenProvider: ITokenProvider, chainId: ChainId, blockedTokenListProvider?: ITokenListProvider, tokenValidatorProvider?: ITokenValidatorProvider);
|
|
16
|
+
protected getRoutes(currencyIn: Currency, currencyOut: Currency, v4CandidatePools: V4CandidatePools, _tradeType: TradeType, routingConfig: AlphaRouterConfig): Promise<GetRoutesResult<V4Route>>;
|
|
17
|
+
getQuotes(routes: V4Route[], amounts: CurrencyAmount[], percents: number[], quoteCurrency: Currency, tradeType: TradeType, routingConfig: AlphaRouterConfig, candidatePools?: CandidatePoolsBySelectionCriteria, gasModel?: IGasModel<RouteWithValidQuote>): Promise<GetQuotesResult>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Protocol } from '@uniswap/router-sdk';
|
|
2
|
+
import { TradeType } from '@uniswap/sdk-core';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import { TokenValidationResult, } from '../../../providers';
|
|
5
|
+
import { log, metric, MetricLoggerUnit, routeToString, } from '../../../util';
|
|
6
|
+
import { V4RouteWithValidQuote } from '../entities';
|
|
7
|
+
import { computeAllV4Routes } from '../functions/compute-all-routes';
|
|
8
|
+
import { BaseQuoter } from './base-quoter';
|
|
9
|
+
export class V4Quoter extends BaseQuoter {
|
|
10
|
+
constructor(v4SubgraphProvider, v4PoolProvider, onChainQuoteProvider, tokenProvider, chainId, blockedTokenListProvider, tokenValidatorProvider) {
|
|
11
|
+
super(tokenProvider, chainId, Protocol.V4, blockedTokenListProvider, tokenValidatorProvider);
|
|
12
|
+
this.v4SubgraphProvider = v4SubgraphProvider;
|
|
13
|
+
this.v4PoolProvider = v4PoolProvider;
|
|
14
|
+
this.onChainQuoteProvider = onChainQuoteProvider;
|
|
15
|
+
}
|
|
16
|
+
async getRoutes(currencyIn, currencyOut, v4CandidatePools, _tradeType, routingConfig) {
|
|
17
|
+
const beforeGetRoutes = Date.now();
|
|
18
|
+
// Fetch all the pools that we will consider routing via. There are thousands
|
|
19
|
+
// of pools, so we filter them to a set of candidate pools that we expect will
|
|
20
|
+
// result in good prices.
|
|
21
|
+
const { poolAccessor, candidatePools } = v4CandidatePools;
|
|
22
|
+
const poolsRaw = poolAccessor.getAllPools();
|
|
23
|
+
const manuallyRoutedPools = poolsRaw.filter((pool) => { var _a; return (_a = routingConfig.poolsToManuallyRouteThrough) === null || _a === void 0 ? void 0 : _a.includes(pool.poolId); });
|
|
24
|
+
// Drop any pools that contain fee on transfer tokens (not supported by v4) or have issues with being transferred.
|
|
25
|
+
const pools = await this.applyTokenValidatorToPools([...poolsRaw, ...manuallyRoutedPools], (token, tokenValidation) => {
|
|
26
|
+
// If there is no available validation result we assume the token is fine.
|
|
27
|
+
if (!tokenValidation) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
// Only filters out *intermediate* pools that involve tokens that we detect
|
|
31
|
+
// cant be transferred. This prevents us trying to route through tokens that may
|
|
32
|
+
// not be transferrable, but allows users to still swap those tokens if they
|
|
33
|
+
// specify.
|
|
34
|
+
//
|
|
35
|
+
if (tokenValidation == TokenValidationResult.STF &&
|
|
36
|
+
(token.equals(currencyIn) || token.equals(currencyOut))) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
return (tokenValidation == TokenValidationResult.FOT ||
|
|
40
|
+
tokenValidation == TokenValidationResult.STF);
|
|
41
|
+
});
|
|
42
|
+
// Given all our candidate pools, compute all the possible ways to route from currencyIn to tokenOut.
|
|
43
|
+
const { maxSwapsPerPath } = routingConfig;
|
|
44
|
+
const routes = computeAllV4Routes(currencyIn, currencyOut, pools, maxSwapsPerPath, routingConfig.hooksOptions);
|
|
45
|
+
metric.putMetric('V4GetRoutesLoad', Date.now() - beforeGetRoutes, MetricLoggerUnit.Milliseconds);
|
|
46
|
+
metric.putMetric(`V4GetRoutesLoad_Chain${this.chainId}`, Date.now() - beforeGetRoutes, MetricLoggerUnit.Milliseconds);
|
|
47
|
+
return {
|
|
48
|
+
routes,
|
|
49
|
+
candidatePools,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async getQuotes(routes, amounts, percents, quoteCurrency, tradeType, routingConfig, candidatePools, gasModel) {
|
|
53
|
+
const beforeGetQuotes = Date.now();
|
|
54
|
+
log.info('Starting to get V4 quotes');
|
|
55
|
+
if (gasModel === undefined) {
|
|
56
|
+
throw new Error('GasModel for V4RouteWithValidQuote is required to getQuotes');
|
|
57
|
+
}
|
|
58
|
+
if (routes.length == 0) {
|
|
59
|
+
return { routesWithValidQuotes: [], candidatePools };
|
|
60
|
+
}
|
|
61
|
+
// For all our routes, and all the fractional amounts, fetch quotes on-chain.
|
|
62
|
+
const quoteFn = tradeType == TradeType.EXACT_INPUT
|
|
63
|
+
? this.onChainQuoteProvider.getQuotesManyExactIn.bind(this.onChainQuoteProvider)
|
|
64
|
+
: this.onChainQuoteProvider.getQuotesManyExactOut.bind(this.onChainQuoteProvider);
|
|
65
|
+
const beforeQuotes = Date.now();
|
|
66
|
+
log.info(`Getting quotes for V4 for ${routes.length} routes with ${amounts.length} amounts per route.`);
|
|
67
|
+
const { routesWithQuotes } = await quoteFn(amounts, routes, routingConfig);
|
|
68
|
+
metric.putMetric('V4QuotesLoad', Date.now() - beforeQuotes, MetricLoggerUnit.Milliseconds);
|
|
69
|
+
metric.putMetric('V4QuotesFetched', _(routesWithQuotes)
|
|
70
|
+
.map(([, quotes]) => quotes.length)
|
|
71
|
+
.sum(), MetricLoggerUnit.Count);
|
|
72
|
+
const routesWithValidQuotes = [];
|
|
73
|
+
for (const routeWithQuote of routesWithQuotes) {
|
|
74
|
+
const [route, quotes] = routeWithQuote;
|
|
75
|
+
for (let i = 0; i < quotes.length; i++) {
|
|
76
|
+
const percent = percents[i];
|
|
77
|
+
const amountQuote = quotes[i];
|
|
78
|
+
const { quote, amount, sqrtPriceX96AfterList, initializedTicksCrossedList, gasEstimate, } = amountQuote;
|
|
79
|
+
if (!quote ||
|
|
80
|
+
!sqrtPriceX96AfterList ||
|
|
81
|
+
!initializedTicksCrossedList ||
|
|
82
|
+
!gasEstimate) {
|
|
83
|
+
log.debug({
|
|
84
|
+
route: routeToString(route),
|
|
85
|
+
amountQuote,
|
|
86
|
+
}, 'Dropping a null V4 quote for route.');
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const routeWithValidQuote = new V4RouteWithValidQuote({
|
|
90
|
+
route,
|
|
91
|
+
rawQuote: quote,
|
|
92
|
+
amount,
|
|
93
|
+
percent,
|
|
94
|
+
sqrtPriceX96AfterList,
|
|
95
|
+
initializedTicksCrossedList,
|
|
96
|
+
quoterGasEstimate: gasEstimate,
|
|
97
|
+
gasModel,
|
|
98
|
+
// TODO: ROUTE-306 make it unwrapped, once v4 gas model supports native quote currency
|
|
99
|
+
// For now it's ok to keep it wrapped,
|
|
100
|
+
// because the quote is the fairly accurate quote from the native currency routing
|
|
101
|
+
quoteToken: quoteCurrency.wrapped,
|
|
102
|
+
tradeType,
|
|
103
|
+
v4PoolProvider: this.v4PoolProvider,
|
|
104
|
+
});
|
|
105
|
+
routesWithValidQuotes.push(routeWithValidQuote);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
metric.putMetric('V4GetQuotesLoad', Date.now() - beforeGetQuotes, MetricLoggerUnit.Milliseconds);
|
|
109
|
+
return {
|
|
110
|
+
routesWithValidQuotes,
|
|
111
|
+
candidatePools,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQtcXVvdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL3F1b3RlcnMvdjQtcXVvdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUV2QixPQUFPLEVBT0wscUJBQXFCLEdBQ3RCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUVMLEdBQUcsRUFDSCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGFBQWEsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBT3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxPQUFPLFFBQVMsU0FBUSxVQUErQztJQUszRSxZQUNFLGtCQUF1QyxFQUN2QyxjQUErQixFQUMvQixvQkFBMkMsRUFDM0MsYUFBNkIsRUFDN0IsT0FBZ0IsRUFDaEIsd0JBQTZDLEVBQzdDLHNCQUFnRDtRQUVoRCxLQUFLLENBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCxRQUFRLENBQUMsRUFBRSxFQUNYLHdCQUF3QixFQUN4QixzQkFBc0IsQ0FDdkIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7SUFDbkQsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTLENBQ3ZCLFVBQW9CLEVBQ3BCLFdBQXFCLEVB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
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from '../util/metric';
|
|
2
|
+
export * from './alpha-router';
|
|
3
|
+
export * from './legacy-router';
|
|
4
|
+
export * from './router';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFVBQVUsQ0FBQyJ9
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { ChainId, Token } from '@uniswap/sdk-core';
|
|
2
|
+
import { ITokenProvider } from '../../providers/token-provider';
|
|
3
|
+
type ChainTokenList = {
|
|
4
|
+
readonly [chainId in ChainId]: Token[];
|
|
5
|
+
};
|
|
6
|
+
export declare const BASES_TO_CHECK_TRADES_AGAINST: (_tokenProvider: ITokenProvider) => ChainTokenList;
|
|
7
|
+
export declare const ADDITIONAL_BASES: (tokenProvider: ITokenProvider) => Promise<{
|
|
8
|
+
1?: {
|
|
9
|
+
[tokenAddress: string]: Token[];
|
|
10
|
+
} | undefined;
|
|
11
|
+
5?: {
|
|
12
|
+
[tokenAddress: string]: Token[];
|
|
13
|
+
} | undefined;
|
|
14
|
+
11155111?: {
|
|
15
|
+
[tokenAddress: string]: Token[];
|
|
16
|
+
} | undefined;
|
|
17
|
+
10?: {
|
|
18
|
+
[tokenAddress: string]: Token[];
|
|
19
|
+
} | undefined;
|
|
20
|
+
420?: {
|
|
21
|
+
[tokenAddress: string]: Token[];
|
|
22
|
+
} | undefined;
|
|
23
|
+
11155420?: {
|
|
24
|
+
[tokenAddress: string]: Token[];
|
|
25
|
+
} | undefined;
|
|
26
|
+
42161?: {
|
|
27
|
+
[tokenAddress: string]: Token[];
|
|
28
|
+
} | undefined;
|
|
29
|
+
421613?: {
|
|
30
|
+
[tokenAddress: string]: Token[];
|
|
31
|
+
} | undefined;
|
|
32
|
+
421614?: {
|
|
33
|
+
[tokenAddress: string]: Token[];
|
|
34
|
+
} | undefined;
|
|
35
|
+
137?: {
|
|
36
|
+
[tokenAddress: string]: Token[];
|
|
37
|
+
} | undefined;
|
|
38
|
+
80001?: {
|
|
39
|
+
[tokenAddress: string]: Token[];
|
|
40
|
+
} | undefined;
|
|
41
|
+
42220?: {
|
|
42
|
+
[tokenAddress: string]: Token[];
|
|
43
|
+
} | undefined;
|
|
44
|
+
44787?: {
|
|
45
|
+
[tokenAddress: string]: Token[];
|
|
46
|
+
} | undefined;
|
|
47
|
+
100?: {
|
|
48
|
+
[tokenAddress: string]: Token[];
|
|
49
|
+
} | undefined;
|
|
50
|
+
1284?: {
|
|
51
|
+
[tokenAddress: string]: Token[];
|
|
52
|
+
} | undefined;
|
|
53
|
+
56?: {
|
|
54
|
+
[tokenAddress: string]: Token[];
|
|
55
|
+
} | undefined;
|
|
56
|
+
43114?: {
|
|
57
|
+
[tokenAddress: string]: Token[];
|
|
58
|
+
} | undefined;
|
|
59
|
+
84531?: {
|
|
60
|
+
[tokenAddress: string]: Token[];
|
|
61
|
+
} | undefined;
|
|
62
|
+
84532?: {
|
|
63
|
+
[tokenAddress: string]: Token[];
|
|
64
|
+
} | undefined;
|
|
65
|
+
8453?: {
|
|
66
|
+
[tokenAddress: string]: Token[];
|
|
67
|
+
} | undefined;
|
|
68
|
+
7777777?: {
|
|
69
|
+
[tokenAddress: string]: Token[];
|
|
70
|
+
} | undefined;
|
|
71
|
+
999999999?: {
|
|
72
|
+
[tokenAddress: string]: Token[];
|
|
73
|
+
} | undefined;
|
|
74
|
+
30?: {
|
|
75
|
+
[tokenAddress: string]: Token[];
|
|
76
|
+
} | undefined;
|
|
77
|
+
81457?: {
|
|
78
|
+
[tokenAddress: string]: Token[];
|
|
79
|
+
} | undefined;
|
|
80
|
+
324?: {
|
|
81
|
+
[tokenAddress: string]: Token[];
|
|
82
|
+
} | undefined;
|
|
83
|
+
480?: {
|
|
84
|
+
[tokenAddress: string]: Token[];
|
|
85
|
+
} | undefined;
|
|
86
|
+
1301?: {
|
|
87
|
+
[tokenAddress: string]: Token[];
|
|
88
|
+
} | undefined;
|
|
89
|
+
130?: {
|
|
90
|
+
[tokenAddress: string]: Token[];
|
|
91
|
+
} | undefined;
|
|
92
|
+
10143?: {
|
|
93
|
+
[tokenAddress: string]: Token[];
|
|
94
|
+
} | undefined;
|
|
95
|
+
1868?: {
|
|
96
|
+
[tokenAddress: string]: Token[];
|
|
97
|
+
} | undefined;
|
|
98
|
+
143?: {
|
|
99
|
+
[tokenAddress: string]: Token[];
|
|
100
|
+
} | undefined;
|
|
101
|
+
196?: {
|
|
102
|
+
[tokenAddress: string]: Token[];
|
|
103
|
+
} | undefined;
|
|
104
|
+
6343?: {
|
|
105
|
+
[tokenAddress: string]: Token[];
|
|
106
|
+
} | undefined;
|
|
107
|
+
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Some tokens can only be swapped via certain pairs, so we override the list of bases that are considered for these
|
|
110
|
+
* tokens.
|
|
111
|
+
*/
|
|
112
|
+
export declare const CUSTOM_BASES: (tokenProvider: ITokenProvider) => Promise<{
|
|
113
|
+
1?: {
|
|
114
|
+
[tokenAddress: string]: Token[];
|
|
115
|
+
} | undefined;
|
|
116
|
+
5?: {
|
|
117
|
+
[tokenAddress: string]: Token[];
|
|
118
|
+
} | undefined;
|
|
119
|
+
11155111?: {
|
|
120
|
+
[tokenAddress: string]: Token[];
|
|
121
|
+
} | undefined;
|
|
122
|
+
10?: {
|
|
123
|
+
[tokenAddress: string]: Token[];
|
|
124
|
+
} | undefined;
|
|
125
|
+
420?: {
|
|
126
|
+
[tokenAddress: string]: Token[];
|
|
127
|
+
} | undefined;
|
|
128
|
+
11155420?: {
|
|
129
|
+
[tokenAddress: string]: Token[];
|
|
130
|
+
} | undefined;
|
|
131
|
+
42161?: {
|
|
132
|
+
[tokenAddress: string]: Token[];
|
|
133
|
+
} | undefined;
|
|
134
|
+
421613?: {
|
|
135
|
+
[tokenAddress: string]: Token[];
|
|
136
|
+
} | undefined;
|
|
137
|
+
421614?: {
|
|
138
|
+
[tokenAddress: string]: Token[];
|
|
139
|
+
} | undefined;
|
|
140
|
+
137?: {
|
|
141
|
+
[tokenAddress: string]: Token[];
|
|
142
|
+
} | undefined;
|
|
143
|
+
80001?: {
|
|
144
|
+
[tokenAddress: string]: Token[];
|
|
145
|
+
} | undefined;
|
|
146
|
+
42220?: {
|
|
147
|
+
[tokenAddress: string]: Token[];
|
|
148
|
+
} | undefined;
|
|
149
|
+
44787?: {
|
|
150
|
+
[tokenAddress: string]: Token[];
|
|
151
|
+
} | undefined;
|
|
152
|
+
100?: {
|
|
153
|
+
[tokenAddress: string]: Token[];
|
|
154
|
+
} | undefined;
|
|
155
|
+
1284?: {
|
|
156
|
+
[tokenAddress: string]: Token[];
|
|
157
|
+
} | undefined;
|
|
158
|
+
56?: {
|
|
159
|
+
[tokenAddress: string]: Token[];
|
|
160
|
+
} | undefined;
|
|
161
|
+
43114?: {
|
|
162
|
+
[tokenAddress: string]: Token[];
|
|
163
|
+
} | undefined;
|
|
164
|
+
84531?: {
|
|
165
|
+
[tokenAddress: string]: Token[];
|
|
166
|
+
} | undefined;
|
|
167
|
+
84532?: {
|
|
168
|
+
[tokenAddress: string]: Token[];
|
|
169
|
+
} | undefined;
|
|
170
|
+
8453?: {
|
|
171
|
+
[tokenAddress: string]: Token[];
|
|
172
|
+
} | undefined;
|
|
173
|
+
7777777?: {
|
|
174
|
+
[tokenAddress: string]: Token[];
|
|
175
|
+
} | undefined;
|
|
176
|
+
999999999?: {
|
|
177
|
+
[tokenAddress: string]: Token[];
|
|
178
|
+
} | undefined;
|
|
179
|
+
30?: {
|
|
180
|
+
[tokenAddress: string]: Token[];
|
|
181
|
+
} | undefined;
|
|
182
|
+
81457?: {
|
|
183
|
+
[tokenAddress: string]: Token[];
|
|
184
|
+
} | undefined;
|
|
185
|
+
324?: {
|
|
186
|
+
[tokenAddress: string]: Token[];
|
|
187
|
+
} | undefined;
|
|
188
|
+
480?: {
|
|
189
|
+
[tokenAddress: string]: Token[];
|
|
190
|
+
} | undefined;
|
|
191
|
+
1301?: {
|
|
192
|
+
[tokenAddress: string]: Token[];
|
|
193
|
+
} | undefined;
|
|
194
|
+
130?: {
|
|
195
|
+
[tokenAddress: string]: Token[];
|
|
196
|
+
} | undefined;
|
|
197
|
+
10143?: {
|
|
198
|
+
[tokenAddress: string]: Token[];
|
|
199
|
+
} | undefined;
|
|
200
|
+
1868?: {
|
|
201
|
+
[tokenAddress: string]: Token[];
|
|
202
|
+
} | undefined;
|
|
203
|
+
143?: {
|
|
204
|
+
[tokenAddress: string]: Token[];
|
|
205
|
+
} | undefined;
|
|
206
|
+
196?: {
|
|
207
|
+
[tokenAddress: string]: Token[];
|
|
208
|
+
} | undefined;
|
|
209
|
+
6343?: {
|
|
210
|
+
[tokenAddress: string]: Token[];
|
|
211
|
+
} | undefined;
|
|
212
|
+
}>;
|
|
213
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
+
import { ChainId } from '@uniswap/sdk-core';
|
|
3
|
+
import { BTC_BNB, BUSD_BNB, DAI_AVAX, DAI_BNB, DAI_MAINNET, DAI_UNICHAIN, USDB_BLAST, USDC_AVAX, USDC_BASE, USDC_BASE_SEPOLIA, USDC_BNB, USDC_MAINNET, USDC_MEGAETH_TESTNET, USDC_MONAD, USDC_SONEIUM, USDC_UNICHAIN, USDC_UNICHAIN_SEPOLIA, USDC_WORLDCHAIN, USDC_ZKSYNC, USDCE_ZKSYNC, USDT_BNB, USDT_MAINNET, USDT_MONAD_TESTNET, WBTC_MAINNET, WBTC_WORLDCHAIN, WLD_WORLDCHAIN, WMATIC_POLYGON, WMATIC_POLYGON_MUMBAI, } from '../../providers/token-provider';
|
|
4
|
+
import { WRAPPED_NATIVE_CURRENCY } from '../../util/chains';
|
|
5
|
+
export const BASES_TO_CHECK_TRADES_AGAINST = (_tokenProvider) => {
|
|
6
|
+
return {
|
|
7
|
+
[ChainId.MAINNET]: [
|
|
8
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.MAINNET],
|
|
9
|
+
DAI_MAINNET,
|
|
10
|
+
USDC_MAINNET,
|
|
11
|
+
USDT_MAINNET,
|
|
12
|
+
WBTC_MAINNET,
|
|
13
|
+
],
|
|
14
|
+
[ChainId.GOERLI]: [WRAPPED_NATIVE_CURRENCY[ChainId.GOERLI]],
|
|
15
|
+
[ChainId.SEPOLIA]: [WRAPPED_NATIVE_CURRENCY[ChainId.SEPOLIA]],
|
|
16
|
+
[ChainId.OPTIMISM]: [WRAPPED_NATIVE_CURRENCY[ChainId.OPTIMISM]],
|
|
17
|
+
[ChainId.OPTIMISM_GOERLI]: [
|
|
18
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.OPTIMISM_GOERLI],
|
|
19
|
+
],
|
|
20
|
+
[ChainId.OPTIMISM_SEPOLIA]: [
|
|
21
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.OPTIMISM_SEPOLIA],
|
|
22
|
+
],
|
|
23
|
+
[ChainId.ARBITRUM_ONE]: [WRAPPED_NATIVE_CURRENCY[ChainId.ARBITRUM_ONE]],
|
|
24
|
+
[ChainId.ARBITRUM_GOERLI]: [
|
|
25
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.ARBITRUM_GOERLI],
|
|
26
|
+
],
|
|
27
|
+
[ChainId.ARBITRUM_SEPOLIA]: [
|
|
28
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.ARBITRUM_SEPOLIA],
|
|
29
|
+
],
|
|
30
|
+
[ChainId.POLYGON]: [WMATIC_POLYGON],
|
|
31
|
+
[ChainId.POLYGON_MUMBAI]: [WMATIC_POLYGON_MUMBAI],
|
|
32
|
+
[ChainId.CELO]: [WRAPPED_NATIVE_CURRENCY[ChainId.CELO]],
|
|
33
|
+
[ChainId.CELO_ALFAJORES]: [WRAPPED_NATIVE_CURRENCY[ChainId.CELO_ALFAJORES]],
|
|
34
|
+
[ChainId.GNOSIS]: [WRAPPED_NATIVE_CURRENCY[ChainId.GNOSIS]],
|
|
35
|
+
[ChainId.MOONBEAM]: [WRAPPED_NATIVE_CURRENCY[ChainId.MOONBEAM]],
|
|
36
|
+
[ChainId.BNB]: [
|
|
37
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.BNB],
|
|
38
|
+
BUSD_BNB,
|
|
39
|
+
DAI_BNB,
|
|
40
|
+
USDC_BNB,
|
|
41
|
+
USDT_BNB,
|
|
42
|
+
BTC_BNB,
|
|
43
|
+
],
|
|
44
|
+
[ChainId.AVALANCHE]: [
|
|
45
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.AVALANCHE],
|
|
46
|
+
USDC_AVAX,
|
|
47
|
+
DAI_AVAX,
|
|
48
|
+
],
|
|
49
|
+
[ChainId.BASE]: [WRAPPED_NATIVE_CURRENCY[ChainId.BASE], USDC_BASE],
|
|
50
|
+
[ChainId.BASE_GOERLI]: [WRAPPED_NATIVE_CURRENCY[ChainId.BASE_GOERLI]],
|
|
51
|
+
[ChainId.ZORA]: [WRAPPED_NATIVE_CURRENCY[ChainId.ZORA]],
|
|
52
|
+
[ChainId.ZORA_SEPOLIA]: [WRAPPED_NATIVE_CURRENCY[ChainId.ZORA_SEPOLIA]],
|
|
53
|
+
[ChainId.ROOTSTOCK]: [WRAPPED_NATIVE_CURRENCY[ChainId.ROOTSTOCK]],
|
|
54
|
+
[ChainId.BLAST]: [WRAPPED_NATIVE_CURRENCY[ChainId.BLAST], USDB_BLAST],
|
|
55
|
+
[ChainId.ZKSYNC]: [
|
|
56
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.ZKSYNC],
|
|
57
|
+
USDCE_ZKSYNC,
|
|
58
|
+
USDC_ZKSYNC,
|
|
59
|
+
],
|
|
60
|
+
[ChainId.WORLDCHAIN]: [
|
|
61
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.WORLDCHAIN],
|
|
62
|
+
USDC_WORLDCHAIN,
|
|
63
|
+
WLD_WORLDCHAIN,
|
|
64
|
+
WBTC_WORLDCHAIN,
|
|
65
|
+
],
|
|
66
|
+
[ChainId.UNICHAIN_SEPOLIA]: [
|
|
67
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.UNICHAIN_SEPOLIA],
|
|
68
|
+
USDC_UNICHAIN_SEPOLIA,
|
|
69
|
+
],
|
|
70
|
+
[ChainId.UNICHAIN]: [
|
|
71
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.UNICHAIN],
|
|
72
|
+
DAI_UNICHAIN,
|
|
73
|
+
USDC_UNICHAIN,
|
|
74
|
+
],
|
|
75
|
+
[ChainId.MONAD_TESTNET]: [
|
|
76
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.MONAD_TESTNET],
|
|
77
|
+
USDT_MONAD_TESTNET,
|
|
78
|
+
],
|
|
79
|
+
[ChainId.MONAD]: [WRAPPED_NATIVE_CURRENCY[ChainId.MONAD], USDC_MONAD],
|
|
80
|
+
[ChainId.BASE_SEPOLIA]: [
|
|
81
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.BASE_SEPOLIA],
|
|
82
|
+
USDC_BASE_SEPOLIA,
|
|
83
|
+
],
|
|
84
|
+
[ChainId.SONEIUM]: [
|
|
85
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.SONEIUM],
|
|
86
|
+
USDC_SONEIUM,
|
|
87
|
+
],
|
|
88
|
+
[ChainId.MEGAETH_TESTNET]: [
|
|
89
|
+
WRAPPED_NATIVE_CURRENCY[ChainId.MEGAETH_TESTNET],
|
|
90
|
+
USDC_MEGAETH_TESTNET,
|
|
91
|
+
],
|
|
92
|
+
[ChainId.XLAYER]: [WRAPPED_NATIVE_CURRENCY[ChainId.XLAYER]],
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
const getBasePairByAddress = async (tokenProvider, _chainId, fromAddress, toAddress) => {
|
|
96
|
+
const accessor = await tokenProvider.getTokens([toAddress]);
|
|
97
|
+
const toToken = accessor.getTokenByAddress(toAddress);
|
|
98
|
+
if (!toToken)
|
|
99
|
+
return {};
|
|
100
|
+
return {
|
|
101
|
+
[fromAddress]: [toToken],
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
export const ADDITIONAL_BASES = async (tokenProvider) => {
|
|
105
|
+
return {
|
|
106
|
+
[ChainId.MAINNET]: {
|
|
107
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xA948E86885e12Fb09AfEF8C52142EBDbDf73cD18', '0x1f9840a85d5af5bf1d1762f925bdaddc4201f984')),
|
|
108
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x561a4717537ff4AF5c687328c0f7E90a319705C0', '0x1f9840a85d5af5bf1d1762f925bdaddc4201f984')),
|
|
109
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x956F47F50A910163D8BF957Cf5846D573E7f87CA', '0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B')),
|
|
110
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B', '0x956F47F50A910163D8BF957Cf5846D573E7f87CA')),
|
|
111
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x853d955acef822db058eb8505911ed77f175b99e', '0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0')),
|
|
112
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0', '0x853d955acef822db058eb8505911ed77f175b99e')),
|
|
113
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', '0xeb4c2781e4eba804ce9a9803c67d0893436bb27d')),
|
|
114
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xeb4c2781e4eba804ce9a9803c67d0893436bb27d', '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599')),
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Some tokens can only be swapped via certain pairs, so we override the list of bases that are considered for these
|
|
120
|
+
* tokens.
|
|
121
|
+
*/
|
|
122
|
+
export const CUSTOM_BASES = async (tokenProvider) => {
|
|
123
|
+
return {
|
|
124
|
+
[ChainId.MAINNET]: {
|
|
125
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xd46ba6d942050d489dbd938a2c909a5d5039a161', DAI_MAINNET.address)),
|
|
126
|
+
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xd46ba6d942050d489dbd938a2c909a5d5039a161', WRAPPED_NATIVE_CURRENCY[1].address)),
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcm91dGVycy9sZWdhY3ktcm91dGVyL2Jhc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE9BQU8sRUFDUCxXQUFXLEVBQ1gsWUFBWSxFQUVaLFVBQVUsRUFDVixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLFdBQVcsRUFDWCxZQUFZLEVBQ1osUUFBUSxFQUNSLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGVBQWUsRUFDZixjQUFjLEVBQ2QsY0FBYyxFQUNkLHFCQUFxQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBTTVELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQzNDLGNBQThCLEVBQ2QsRUFBRTtJQUNsQixPQUFPO1FBQ0wsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakIsdUJBQXVCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBRTtZQUN6QyxXQUFXO1lBQ1gsWUFBWTtZQUNaLFlBQVk7WUFDWixZQUFZO1NBQ2I7UUFDRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUM1RCxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUUsQ0FBQztR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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './legacy-router';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './legacy-router';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcm91dGVycy9sZWdhY3ktcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUMifQ==
|