@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,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CachedRoutes = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const cached_route_1 = require("./cached-route");
|
|
9
|
+
/**
|
|
10
|
+
* Class defining the route to cache
|
|
11
|
+
*
|
|
12
|
+
* @export
|
|
13
|
+
* @class CachedRoute
|
|
14
|
+
*/
|
|
15
|
+
class CachedRoutes {
|
|
16
|
+
/**
|
|
17
|
+
* @param routes
|
|
18
|
+
* @param chainId
|
|
19
|
+
* @param currencyIn
|
|
20
|
+
* @param currencyOut
|
|
21
|
+
* @param protocolsCovered
|
|
22
|
+
* @param blockNumber
|
|
23
|
+
* @param tradeType
|
|
24
|
+
* @param originalAmount
|
|
25
|
+
* @param blocksToLive
|
|
26
|
+
*/
|
|
27
|
+
constructor({ routes, chainId, currencyIn, currencyOut, protocolsCovered, blockNumber, tradeType, originalAmount, blocksToLive = 0, }) {
|
|
28
|
+
this.routes = routes;
|
|
29
|
+
this.chainId = chainId;
|
|
30
|
+
this.currencyIn = currencyIn;
|
|
31
|
+
this.currencyOut = currencyOut;
|
|
32
|
+
this.protocolsCovered = protocolsCovered;
|
|
33
|
+
this.blockNumber = blockNumber;
|
|
34
|
+
this.tradeType = tradeType;
|
|
35
|
+
this.originalAmount = originalAmount;
|
|
36
|
+
this.blocksToLive = blocksToLive;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Factory method that creates a `CachedRoutes` object from an array of RouteWithValidQuote.
|
|
40
|
+
*
|
|
41
|
+
* @public
|
|
42
|
+
* @static
|
|
43
|
+
* @param routes
|
|
44
|
+
* @param chainId
|
|
45
|
+
* @param currencyIn
|
|
46
|
+
* @param currencyOut
|
|
47
|
+
* @param protocolsCovered
|
|
48
|
+
* @param blockNumber
|
|
49
|
+
* @param tradeType
|
|
50
|
+
* @param originalAmount
|
|
51
|
+
*/
|
|
52
|
+
static fromRoutesWithValidQuotes(routes, chainId, currencyIn, currencyOut, protocolsCovered, blockNumber, tradeType, originalAmount) {
|
|
53
|
+
if (routes.length == 0)
|
|
54
|
+
return undefined;
|
|
55
|
+
const cachedRoutes = lodash_1.default.map(routes, (route) => new cached_route_1.CachedRoute({ route: route.route, percent: route.percent }));
|
|
56
|
+
return new CachedRoutes({
|
|
57
|
+
routes: cachedRoutes,
|
|
58
|
+
chainId,
|
|
59
|
+
currencyIn,
|
|
60
|
+
currencyOut,
|
|
61
|
+
protocolsCovered,
|
|
62
|
+
blockNumber,
|
|
63
|
+
tradeType,
|
|
64
|
+
originalAmount,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Function to determine if, given a block number, the CachedRoute is expired or not.
|
|
69
|
+
*
|
|
70
|
+
* @param currentBlockNumber
|
|
71
|
+
* @param optimistic
|
|
72
|
+
*/
|
|
73
|
+
notExpired(currentBlockNumber, optimistic = false) {
|
|
74
|
+
// When it's not optimistic, we only allow the route of the existing block.
|
|
75
|
+
const blocksToLive = optimistic ? this.blocksToLive : 0;
|
|
76
|
+
const blocksDifference = currentBlockNumber - this.blockNumber;
|
|
77
|
+
return blocksDifference <= blocksToLive;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.CachedRoutes = CachedRoutes;
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy9yb3V0ZS9tb2RlbC9jYWNoZWQtcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLG9EQUF1QjtBQUl2QixpREFBNkM7QUFjN0M7Ozs7O0dBS0c7QUFDSCxNQUFhLFlBQVk7SUFZdkI7Ozs7Ozs7Ozs7T0FVRztJQUNILFlBQVksRUFDVixNQUFNLEVBQ04sT0FBTyxFQUNQLFVBQVUsRUFDVixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxTQUFTLEVBQ1QsY0FBYyxFQUNkLFlBQVksR0FBRyxDQUFDLEdBQ0c7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksTUFBTSxDQUFDLHlCQUF5QixDQUNyQyxNQUE2QixFQUM3QixPQUFnQixFQUNoQixVQUFvQixFQUNwQixXQUFxQixFQUNyQixnQkFBNEIsRUFDNUIsV0FBbUIsRUFDbkIsU0FBb0IsRUFDcEIsY0FBc0I7UUFFdEIsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUV6QyxNQUFNLFlBQVksR0FBRyxnQkFBQyxDQUFDLEdBQUcsQ0FDeEIsTUFBTSxFQUNOLENBQUMsS0FBMEIsRUFBRSxFQUFFLENBQzdCLElBQUksMEJBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDbEUsQ0FBQztRQUVGLE9BQU8sSUFBSSxZQUFZLENBQUM7WUFDdEIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsT0FBTztZQUNQLFVBQVU7WUFDVixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxTQUFTO1lBQ1QsY0FBYztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsQ0FBQyxrQkFBMEIsRUFBRSxVQUFVLEdBQUcsS0FBSztRQUM5RCwyRUFBMkU7UUFDM0UsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRS9ELE9BQU8sZ0JBQWdCLElBQUksWUFBWSxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQXRHRCxvQ0FzR0MifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
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("./cache-mode"), exports);
|
|
18
|
+
__exportStar(require("./cached-route"), exports);
|
|
19
|
+
__exportStar(require("./cached-routes"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2NhY2hpbmcvcm91dGUvbW9kZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE2QjtBQUM3QixpREFBK0I7QUFDL0Isa0RBQWdDIn0=
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider for getting currency data from a currency List.
|
|
3
|
+
*
|
|
4
|
+
* @export
|
|
5
|
+
* @interface IRouteCachingProvider
|
|
6
|
+
*/
|
|
7
|
+
import { Protocol } from '@uniswap/router-sdk';
|
|
8
|
+
import { ChainId, Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core';
|
|
9
|
+
import { AlphaRouterConfig } from '../../../routers';
|
|
10
|
+
import { SwapOptions } from '../../../routers/router';
|
|
11
|
+
import { CacheMode } from './model';
|
|
12
|
+
import { CachedRoutes } from './model/cached-routes';
|
|
13
|
+
/**
|
|
14
|
+
* Abstract class for a RouteCachingProvider.
|
|
15
|
+
* Defines the base methods of how to interact with this interface, but not the implementation of how to cache.
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class IRouteCachingProvider {
|
|
18
|
+
/**
|
|
19
|
+
* Final implementation of the public `getCachedRoute` method, this is how code will interact with the implementation
|
|
20
|
+
*
|
|
21
|
+
* @public
|
|
22
|
+
* @readonly
|
|
23
|
+
* @param chainId
|
|
24
|
+
* @param amount
|
|
25
|
+
* @param quoteCurrency
|
|
26
|
+
* @param tradeType
|
|
27
|
+
* @param protocols
|
|
28
|
+
* @param blockNumber
|
|
29
|
+
* @param optimistic
|
|
30
|
+
* @param alphaRouterConfig
|
|
31
|
+
* @param swapOptions
|
|
32
|
+
*/
|
|
33
|
+
readonly getCachedRoute: (chainId: number, amount: CurrencyAmount<Currency>, quoteCurrency: Currency, tradeType: TradeType, protocols: Protocol[], blockNumber: number, optimistic?: boolean, alphaRouterConfig?: AlphaRouterConfig, swapOptions?: SwapOptions) => Promise<CachedRoutes | undefined>;
|
|
34
|
+
/**
|
|
35
|
+
* Final implementation of the public `setCachedRoute` method.
|
|
36
|
+
* This method will set the blockToLive in the CachedRoutes object before calling the internal method to insert in cache.
|
|
37
|
+
*
|
|
38
|
+
* @public
|
|
39
|
+
* @readonly
|
|
40
|
+
* @param cachedRoutes The route to cache.
|
|
41
|
+
* @returns Promise<boolean> Indicates if the route was inserted into cache.
|
|
42
|
+
*/
|
|
43
|
+
readonly setCachedRoute: (cachedRoutes: CachedRoutes, amount: CurrencyAmount<Currency>) => Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Final implementation of the public `deleteCachedRoute` method.
|
|
46
|
+
* This method will delete the cached route from the cache.
|
|
47
|
+
*
|
|
48
|
+
* @public
|
|
49
|
+
* @readonly
|
|
50
|
+
* @param cachedRoutes the cached routes to delete
|
|
51
|
+
*/
|
|
52
|
+
readonly deleteCachedRoute: (cachedRoutes: CachedRoutes) => Promise<boolean>;
|
|
53
|
+
/**
|
|
54
|
+
* Returns the CacheMode for the given cachedRoutes and amount
|
|
55
|
+
*
|
|
56
|
+
* @param cachedRoutes
|
|
57
|
+
* @param amount
|
|
58
|
+
*/
|
|
59
|
+
getCacheModeFromCachedRoutes(cachedRoutes: CachedRoutes, amount: CurrencyAmount<Currency>): Promise<CacheMode>;
|
|
60
|
+
/**
|
|
61
|
+
* Returns the CacheMode for the given combination of chainId, currencyIn, currencyOut and tradetype
|
|
62
|
+
*
|
|
63
|
+
* @public
|
|
64
|
+
* @abstract
|
|
65
|
+
* @param chainId
|
|
66
|
+
* @param amount
|
|
67
|
+
* @param tradeType
|
|
68
|
+
*/
|
|
69
|
+
abstract getCacheMode(chainId: ChainId, amount: CurrencyAmount<Currency>, quoteCurrency: Currency, tradeType: TradeType, protocols: Protocol[]): Promise<CacheMode>;
|
|
70
|
+
protected filterExpiredCachedRoutes(cachedRoutes: CachedRoutes | undefined, blockNumber: number, optimistic: boolean): CachedRoutes | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Internal function to fetch the CachedRoute from the cache.
|
|
73
|
+
* Must be implemented.
|
|
74
|
+
*
|
|
75
|
+
* @param chainId
|
|
76
|
+
* @param amount
|
|
77
|
+
* @param quoteCurrency
|
|
78
|
+
* @param tradeType
|
|
79
|
+
* @param protocols
|
|
80
|
+
* @param currentBlockNumber
|
|
81
|
+
* @param optimistic
|
|
82
|
+
* @param alphaRouterConfig
|
|
83
|
+
* @param swapOptions
|
|
84
|
+
* @protected
|
|
85
|
+
*/
|
|
86
|
+
protected abstract _getCachedRoute(chainId: ChainId, amount: CurrencyAmount<Currency>, quoteCurrency: Currency, tradeType: TradeType, protocols: Protocol[], currentBlockNumber: number, optimistic: boolean, alphaRouterConfig?: AlphaRouterConfig, swapOptions?: SwapOptions): Promise<CachedRoutes | undefined>;
|
|
87
|
+
/**
|
|
88
|
+
* Internal function to insert the CachedRoute into cache.
|
|
89
|
+
* Must be implemented.
|
|
90
|
+
*
|
|
91
|
+
* @param cachedRoutes
|
|
92
|
+
* @param amount
|
|
93
|
+
* @protected
|
|
94
|
+
*/
|
|
95
|
+
protected abstract _setCachedRoute(cachedRoutes: CachedRoutes, amount: CurrencyAmount<Currency>): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* Internal function to getBlocksToLive for a given cachedRoute.
|
|
98
|
+
* This function is called before attempting to insert the route into cache.
|
|
99
|
+
* Must be implemented.
|
|
100
|
+
*
|
|
101
|
+
* @param cachedRoutes
|
|
102
|
+
* @param amount
|
|
103
|
+
* @protected
|
|
104
|
+
*/
|
|
105
|
+
protected abstract _getBlocksToLive(cachedRoutes: CachedRoutes, amount: CurrencyAmount<Currency>): Promise<number>;
|
|
106
|
+
/**
|
|
107
|
+
* Removes or invalidates a cached route from the cache.
|
|
108
|
+
* Must be implemented by subclasses.
|
|
109
|
+
*/
|
|
110
|
+
protected abstract _deleteCachedRoute(cachedRoutes: CachedRoutes): Promise<boolean>;
|
|
111
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IRouteCachingProvider = void 0;
|
|
4
|
+
const sdk_core_1 = require("@uniswap/sdk-core");
|
|
5
|
+
const model_1 = require("./model");
|
|
6
|
+
/**
|
|
7
|
+
* Abstract class for a RouteCachingProvider.
|
|
8
|
+
* Defines the base methods of how to interact with this interface, but not the implementation of how to cache.
|
|
9
|
+
*/
|
|
10
|
+
class IRouteCachingProvider {
|
|
11
|
+
constructor() {
|
|
12
|
+
/**
|
|
13
|
+
* Final implementation of the public `getCachedRoute` method, this is how code will interact with the implementation
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
16
|
+
* @readonly
|
|
17
|
+
* @param chainId
|
|
18
|
+
* @param amount
|
|
19
|
+
* @param quoteCurrency
|
|
20
|
+
* @param tradeType
|
|
21
|
+
* @param protocols
|
|
22
|
+
* @param blockNumber
|
|
23
|
+
* @param optimistic
|
|
24
|
+
* @param alphaRouterConfig
|
|
25
|
+
* @param swapOptions
|
|
26
|
+
*/
|
|
27
|
+
this.getCachedRoute = async (
|
|
28
|
+
// Defined as a readonly member instead of a regular function to make it final.
|
|
29
|
+
chainId, amount, quoteCurrency, tradeType, protocols, blockNumber, optimistic = false, alphaRouterConfig, swapOptions) => {
|
|
30
|
+
if ((await this.getCacheMode(chainId, amount, quoteCurrency, tradeType, protocols)) == model_1.CacheMode.Darkmode) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
const cachedRoute = await this._getCachedRoute(chainId, amount, quoteCurrency, tradeType, protocols, blockNumber, optimistic, alphaRouterConfig, swapOptions);
|
|
34
|
+
return this.filterExpiredCachedRoutes(cachedRoute, blockNumber, optimistic);
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Final implementation of the public `setCachedRoute` method.
|
|
38
|
+
* This method will set the blockToLive in the CachedRoutes object before calling the internal method to insert in cache.
|
|
39
|
+
*
|
|
40
|
+
* @public
|
|
41
|
+
* @readonly
|
|
42
|
+
* @param cachedRoutes The route to cache.
|
|
43
|
+
* @returns Promise<boolean> Indicates if the route was inserted into cache.
|
|
44
|
+
*/
|
|
45
|
+
this.setCachedRoute = async (
|
|
46
|
+
// Defined as a readonly member instead of a regular function to make it final.
|
|
47
|
+
cachedRoutes, amount) => {
|
|
48
|
+
if ((await this.getCacheModeFromCachedRoutes(cachedRoutes, amount)) ==
|
|
49
|
+
model_1.CacheMode.Darkmode) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
cachedRoutes.blocksToLive = await this._getBlocksToLive(cachedRoutes, amount);
|
|
53
|
+
return this._setCachedRoute(cachedRoutes, amount);
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Final implementation of the public `deleteCachedRoute` method.
|
|
57
|
+
* This method will delete the cached route from the cache.
|
|
58
|
+
*
|
|
59
|
+
* @public
|
|
60
|
+
* @readonly
|
|
61
|
+
* @param cachedRoutes the cached routes to delete
|
|
62
|
+
*/
|
|
63
|
+
this.deleteCachedRoute = async (cachedRoutes) => {
|
|
64
|
+
return this._deleteCachedRoute(cachedRoutes);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Returns the CacheMode for the given cachedRoutes and amount
|
|
69
|
+
*
|
|
70
|
+
* @param cachedRoutes
|
|
71
|
+
* @param amount
|
|
72
|
+
*/
|
|
73
|
+
getCacheModeFromCachedRoutes(cachedRoutes, amount) {
|
|
74
|
+
const quoteCurrency = cachedRoutes.tradeType == sdk_core_1.TradeType.EXACT_INPUT
|
|
75
|
+
? cachedRoutes.currencyOut
|
|
76
|
+
: cachedRoutes.currencyIn;
|
|
77
|
+
return this.getCacheMode(cachedRoutes.chainId, amount, quoteCurrency, cachedRoutes.tradeType, cachedRoutes.protocolsCovered);
|
|
78
|
+
}
|
|
79
|
+
filterExpiredCachedRoutes(cachedRoutes, blockNumber, optimistic) {
|
|
80
|
+
return (cachedRoutes === null || cachedRoutes === void 0 ? void 0 : cachedRoutes.notExpired(blockNumber, optimistic))
|
|
81
|
+
? cachedRoutes
|
|
82
|
+
: undefined;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.IRouteCachingProvider = IRouteCachingProvider;
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtY2FjaGluZy1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy9yb3V0ZS9yb3V0ZS1jYWNoaW5nLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLGdEQUsyQjtBQUszQixtQ0FBb0M7QUFHcEM7OztHQUdHO0FBQ0gsTUFBc0IscUJBQXFCO0lBQTNDO1FBQ0U7Ozs7Ozs7Ozs7Ozs7O1dBY0c7UUFDYSxtQkFBYyxHQUFHLEtBQUs7UUFDcEMsK0VBQStFO1FBQy9FLE9BQWUsRUFDZixNQUFnQyxFQUNoQyxhQUF1QixFQUN2QixTQUFvQixFQUNwQixTQUFxQixFQUNyQixXQUFtQixFQUNuQixVQUFVLEdBQUcsS0FBSyxFQUNsQixpQkFBcUMsRUFDckMsV0FBeUIsRUFDVSxFQUFFO1lBQ3JDLElBQ0UsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQ3RCLE9BQU8sRUFDUCxNQUFNLEVBQ04sYUFBYSxFQUNiLFNBQVMsRUFDVCxTQUFTLENBQ1YsQ0FBQyxJQUFJLGlCQUFTLENBQUMsUUFBUSxFQUN4QjtnQkFDQSxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FDNUMsT0FBTyxFQUNQLE1BQU0sRUFDTixhQUFhLEVBQ2IsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixXQUFXLENBQ1osQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7O1dBUUc7UUFDYSxtQkFBYyxHQUFHLEtBQUs7UUFDcEMsK0VBQStFO1FBQy9FLFlBQTBCLEVBQzFCLE1BQWdDLEVBQ2QsRUFBRTtZQUNwQixJQUNFLENBQUMsTUFBTSxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRCxpQkFBUyxDQUFDLFFBQVEsRUFDbEI7Z0JBQ0EsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELFlBQVksQ0FBQyxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQ3JELFlBQVksRUFDWixNQUFNLENBQ1AsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7V0FPRztRQUNhLHNCQUFpQixHQUFHLEtBQUssRUFDdkMsWUFBMEIsRUFDUixFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQWtISixDQUFDO0lBaEhDOzs7OztPQUtHO0lBQ0ksNEJBQTRCLENBQ2pDLFlBQTBCLEVBQzFCLE1BQWdDO1FBRWhDLE1BQU0sYUFBYSxHQUNqQixZQUFZLENBQUMsU0FBUyxJQUFJLG9CQUFTLENBQUMsV0FBVztZQUM3QyxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVc7WUFDMUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFFOUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUN0QixZQUFZLENBQUMsT0FBTyxFQUNwQixNQUFNLEVBQ04sYUFBYSxFQUNiLFlBQVksQ0FBQyxTQUFTLEVBQ3RCLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFtQlMseUJBQXlCLENBQ2pDLFlBQXNDLEVBQ3RDLFdBQW1CLEVBQ25CLFVBQW1CO1FBRW5CLE9BQU8sQ0FBQSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsVUFBVSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7WUFDdEQsQ0FBQyxDQUFDLFlBQVk7WUFDZCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0ErREY7QUFsTkQsc0RBa05DIn0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChainId } from '@uniswap/sdk-core';
|
|
2
|
+
import { ICache } from './cache';
|
|
3
|
+
import { GasPrice, IGasPriceProvider } from './gas-price-provider';
|
|
4
|
+
/**
|
|
5
|
+
* Provider for getting gas price, with functionality for caching the results.
|
|
6
|
+
*
|
|
7
|
+
* @export
|
|
8
|
+
* @class CachingV3SubgraphProvider
|
|
9
|
+
*/
|
|
10
|
+
export declare class CachingGasStationProvider extends IGasPriceProvider {
|
|
11
|
+
protected chainId: ChainId;
|
|
12
|
+
private gasPriceProvider;
|
|
13
|
+
private cache;
|
|
14
|
+
private GAS_KEY;
|
|
15
|
+
/**
|
|
16
|
+
* Creates an instance of CachingGasStationProvider.
|
|
17
|
+
* @param chainId The chain id to use.
|
|
18
|
+
* @param gasPriceProvider The provider to use to get the gas price when not in the cache.
|
|
19
|
+
* @param cache Cache instance to hold cached pools.
|
|
20
|
+
*/
|
|
21
|
+
constructor(chainId: ChainId, gasPriceProvider: IGasPriceProvider, cache: ICache<GasPrice>);
|
|
22
|
+
getGasPrice(latestBlockNumber: number, requestBlockNumber?: number): Promise<GasPrice>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CachingGasStationProvider = void 0;
|
|
4
|
+
const log_1 = require("../util/log");
|
|
5
|
+
const gas_price_provider_1 = require("./gas-price-provider");
|
|
6
|
+
/**
|
|
7
|
+
* Provider for getting gas price, with functionality for caching the results.
|
|
8
|
+
*
|
|
9
|
+
* @export
|
|
10
|
+
* @class CachingV3SubgraphProvider
|
|
11
|
+
*/
|
|
12
|
+
class CachingGasStationProvider extends gas_price_provider_1.IGasPriceProvider {
|
|
13
|
+
/**
|
|
14
|
+
* Creates an instance of CachingGasStationProvider.
|
|
15
|
+
* @param chainId The chain id to use.
|
|
16
|
+
* @param gasPriceProvider The provider to use to get the gas price when not in the cache.
|
|
17
|
+
* @param cache Cache instance to hold cached pools.
|
|
18
|
+
*/
|
|
19
|
+
constructor(chainId, gasPriceProvider, cache) {
|
|
20
|
+
super();
|
|
21
|
+
this.chainId = chainId;
|
|
22
|
+
this.gasPriceProvider = gasPriceProvider;
|
|
23
|
+
this.cache = cache;
|
|
24
|
+
this.GAS_KEY = (chainId, blockNumber) => `gasPrice-${chainId}-${blockNumber}`;
|
|
25
|
+
}
|
|
26
|
+
async getGasPrice(latestBlockNumber, requestBlockNumber) {
|
|
27
|
+
// If block number is specified in the request, we have to use that block number find any potential cache hits.
|
|
28
|
+
// Otherwise, we can use the latest block number.
|
|
29
|
+
const targetBlockNumber = requestBlockNumber !== null && requestBlockNumber !== void 0 ? requestBlockNumber : latestBlockNumber;
|
|
30
|
+
const cachedGasPrice = await this.cache.get(this.GAS_KEY(this.chainId, targetBlockNumber));
|
|
31
|
+
if (cachedGasPrice) {
|
|
32
|
+
log_1.log.info({ cachedGasPrice }, `Got gas station price from local cache: ${cachedGasPrice.gasPriceWei}.`);
|
|
33
|
+
return cachedGasPrice;
|
|
34
|
+
}
|
|
35
|
+
const gasPrice = await this.gasPriceProvider.getGasPrice(latestBlockNumber, requestBlockNumber);
|
|
36
|
+
await this.cache.set(this.GAS_KEY(this.chainId, targetBlockNumber), gasPrice);
|
|
37
|
+
return gasPrice;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.CachingGasStationProvider = CachingGasStationProvider;
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGluZy1nYXMtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2NhY2hpbmctZ2FzLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFDQUFrQztBQUdsQyw2REFBbUU7QUFFbkU7Ozs7O0dBS0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLHNDQUFpQjtJQUk5RDs7Ozs7T0FLRztJQUNILFlBQ1ksT0FBZ0IsRUFDbEIsZ0JBQW1DLEVBQ25DLEtBQXVCO1FBRS9CLEtBQUssRUFBRSxDQUFDO1FBSkUsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNsQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBWnpCLFlBQU8sR0FBRyxDQUFDLE9BQWdCLEVBQUUsV0FBbUIsRUFBRSxFQUFFLENBQzFELFlBQVksT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBY3ZDLENBQUM7SUFFZSxLQUFLLENBQUMsV0FBVyxDQUMvQixpQkFBeUIsRUFDekIsa0JBQTJCO1FBRTNCLCtHQUErRztRQUMvRyxpREFBaUQ7UUFDakQsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsYUFBbEIsa0JBQWtCLGNBQWxCLGtCQUFrQixHQUFJLGlCQUFpQixDQUFDO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUM5QyxDQUFDO1FBRUYsSUFBSSxjQUFjLEVBQUU7WUFDbEIsU0FBRyxDQUFDLElBQUksQ0FDTixFQUFFLGNBQWMsRUFBRSxFQUNsQiwyQ0FBMkMsY0FBYyxDQUFDLFdBQVcsR0FBRyxDQUN6RSxDQUFDO1lBRUYsT0FBTyxjQUFjLENBQUM7U0FDdkI7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQ3RELGlCQUFpQixFQUNqQixrQkFBa0IsQ0FDbkIsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxFQUM3QyxRQUFRLENBQ1QsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQWpERCw4REFpREMifQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Protocol } from '@uniswap/router-sdk';
|
|
2
|
+
import { ChainId, Currency, Token } from '@uniswap/sdk-core';
|
|
3
|
+
import { SubgraphPool } from '../routers/alpha-router/functions/get-candidate-pools';
|
|
4
|
+
import { ICache } from './cache';
|
|
5
|
+
import { ProviderConfig } from './provider';
|
|
6
|
+
import { V3SubgraphPool } from './v3/subgraph-provider';
|
|
7
|
+
type ChainTokenList = {
|
|
8
|
+
readonly [chainId in ChainId]: Currency[];
|
|
9
|
+
};
|
|
10
|
+
export declare const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList;
|
|
11
|
+
export interface IV3SubgraphProvider {
|
|
12
|
+
getPools(tokenIn?: Token, tokenOut?: Token, providerConfig?: ProviderConfig): Promise<V3SubgraphPool[]>;
|
|
13
|
+
}
|
|
14
|
+
export interface ISubgraphProvider<TSubgraphPool extends SubgraphPool> {
|
|
15
|
+
getPools(tokenIn?: Token, tokenOut?: Token, providerConfig?: ProviderConfig): Promise<TSubgraphPool[]>;
|
|
16
|
+
}
|
|
17
|
+
export declare abstract class CachingSubgraphProvider<TSubgraphPool extends SubgraphPool> implements ISubgraphProvider<TSubgraphPool> {
|
|
18
|
+
private chainId;
|
|
19
|
+
protected subgraphProvider: ISubgraphProvider<TSubgraphPool>;
|
|
20
|
+
private cache;
|
|
21
|
+
private protocol;
|
|
22
|
+
private SUBGRAPH_KEY;
|
|
23
|
+
/**
|
|
24
|
+
* Creates an instance of CachingV3SubgraphProvider.
|
|
25
|
+
* @param chainId The chain id to use.
|
|
26
|
+
* @param subgraphProvider The provider to use to get the subgraph pools when not in the cache.
|
|
27
|
+
* @param cache Cache instance to hold cached pools.
|
|
28
|
+
* @param protocol Subgraph protocol version
|
|
29
|
+
*/
|
|
30
|
+
constructor(chainId: ChainId, subgraphProvider: ISubgraphProvider<TSubgraphPool>, cache: ICache<TSubgraphPool[]>, protocol: Protocol);
|
|
31
|
+
getPools(): Promise<TSubgraphPool[]>;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CachingSubgraphProvider = exports.BASES_TO_CHECK_TRADES_AGAINST = void 0;
|
|
4
|
+
const sdk_core_1 = require("@uniswap/sdk-core");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const token_provider_1 = require("./token-provider");
|
|
7
|
+
exports.BASES_TO_CHECK_TRADES_AGAINST = {
|
|
8
|
+
[sdk_core_1.ChainId.MAINNET]: [
|
|
9
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.MAINNET),
|
|
10
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MAINNET],
|
|
11
|
+
token_provider_1.DAI_MAINNET,
|
|
12
|
+
token_provider_1.USDC_MAINNET,
|
|
13
|
+
token_provider_1.USDT_MAINNET,
|
|
14
|
+
token_provider_1.WBTC_MAINNET,
|
|
15
|
+
token_provider_1.WSTETH_MAINNET,
|
|
16
|
+
],
|
|
17
|
+
[sdk_core_1.ChainId.GOERLI]: [util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.GOERLI]],
|
|
18
|
+
[sdk_core_1.ChainId.SEPOLIA]: [
|
|
19
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.SEPOLIA),
|
|
20
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.SEPOLIA],
|
|
21
|
+
],
|
|
22
|
+
//v2 not deployed on [arbitrum, polygon, celo, gnosis, moonbeam, bnb, avalanche] and their testnets
|
|
23
|
+
[sdk_core_1.ChainId.OPTIMISM]: [
|
|
24
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.OPTIMISM),
|
|
25
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.OPTIMISM],
|
|
26
|
+
token_provider_1.USDC_OPTIMISM,
|
|
27
|
+
token_provider_1.DAI_OPTIMISM,
|
|
28
|
+
token_provider_1.USDT_OPTIMISM,
|
|
29
|
+
token_provider_1.WBTC_OPTIMISM,
|
|
30
|
+
token_provider_1.OP_OPTIMISM,
|
|
31
|
+
],
|
|
32
|
+
[sdk_core_1.ChainId.ARBITRUM_ONE]: [
|
|
33
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.ARBITRUM_ONE),
|
|
34
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ARBITRUM_ONE],
|
|
35
|
+
token_provider_1.WBTC_ARBITRUM,
|
|
36
|
+
token_provider_1.DAI_ARBITRUM,
|
|
37
|
+
token_provider_1.USDC_ARBITRUM,
|
|
38
|
+
token_provider_1.USDC_NATIVE_ARBITRUM,
|
|
39
|
+
token_provider_1.USDT_ARBITRUM,
|
|
40
|
+
token_provider_1.ARB_ARBITRUM,
|
|
41
|
+
],
|
|
42
|
+
[sdk_core_1.ChainId.ARBITRUM_GOERLI]: [],
|
|
43
|
+
[sdk_core_1.ChainId.ARBITRUM_SEPOLIA]: [],
|
|
44
|
+
[sdk_core_1.ChainId.OPTIMISM_GOERLI]: [],
|
|
45
|
+
[sdk_core_1.ChainId.OPTIMISM_SEPOLIA]: [],
|
|
46
|
+
[sdk_core_1.ChainId.POLYGON]: [
|
|
47
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.POLYGON),
|
|
48
|
+
token_provider_1.USDC_POLYGON,
|
|
49
|
+
token_provider_1.WETH_POLYGON,
|
|
50
|
+
token_provider_1.WMATIC_POLYGON,
|
|
51
|
+
],
|
|
52
|
+
[sdk_core_1.ChainId.POLYGON_MUMBAI]: [],
|
|
53
|
+
[sdk_core_1.ChainId.CELO]: [token_provider_1.CELO, token_provider_1.CUSD_CELO, token_provider_1.CEUR_CELO, token_provider_1.DAI_CELO],
|
|
54
|
+
[sdk_core_1.ChainId.CELO_ALFAJORES]: [],
|
|
55
|
+
[sdk_core_1.ChainId.GNOSIS]: [],
|
|
56
|
+
[sdk_core_1.ChainId.MOONBEAM]: [
|
|
57
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MOONBEAM],
|
|
58
|
+
token_provider_1.DAI_MOONBEAM,
|
|
59
|
+
token_provider_1.USDC_MOONBEAM,
|
|
60
|
+
token_provider_1.WBTC_MOONBEAM,
|
|
61
|
+
],
|
|
62
|
+
[sdk_core_1.ChainId.BNB]: [
|
|
63
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BNB),
|
|
64
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BNB],
|
|
65
|
+
token_provider_1.BUSD_BNB,
|
|
66
|
+
token_provider_1.DAI_BNB,
|
|
67
|
+
token_provider_1.USDC_BNB,
|
|
68
|
+
token_provider_1.USDT_BNB,
|
|
69
|
+
token_provider_1.BTC_BNB,
|
|
70
|
+
token_provider_1.ETH_BNB,
|
|
71
|
+
],
|
|
72
|
+
[sdk_core_1.ChainId.AVALANCHE]: [
|
|
73
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.AVALANCHE],
|
|
74
|
+
token_provider_1.USDC_AVAX,
|
|
75
|
+
token_provider_1.DAI_AVAX,
|
|
76
|
+
],
|
|
77
|
+
[sdk_core_1.ChainId.BASE_GOERLI]: [],
|
|
78
|
+
[sdk_core_1.ChainId.BASE]: [
|
|
79
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BASE),
|
|
80
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BASE],
|
|
81
|
+
token_provider_1.USDC_BASE,
|
|
82
|
+
],
|
|
83
|
+
[sdk_core_1.ChainId.ZORA]: [
|
|
84
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.ZORA),
|
|
85
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ZORA],
|
|
86
|
+
],
|
|
87
|
+
[sdk_core_1.ChainId.ZORA_SEPOLIA]: [util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ZORA_SEPOLIA]],
|
|
88
|
+
[sdk_core_1.ChainId.ROOTSTOCK]: [util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ROOTSTOCK]],
|
|
89
|
+
[sdk_core_1.ChainId.BLAST]: [
|
|
90
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BLAST),
|
|
91
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BLAST],
|
|
92
|
+
token_provider_1.USDB_BLAST,
|
|
93
|
+
],
|
|
94
|
+
[sdk_core_1.ChainId.ZKSYNC]: [
|
|
95
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ZKSYNC],
|
|
96
|
+
token_provider_1.USDCE_ZKSYNC,
|
|
97
|
+
token_provider_1.USDC_ZKSYNC,
|
|
98
|
+
],
|
|
99
|
+
[sdk_core_1.ChainId.WORLDCHAIN]: [
|
|
100
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.WORLDCHAIN),
|
|
101
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.WORLDCHAIN],
|
|
102
|
+
token_provider_1.USDC_WORLDCHAIN,
|
|
103
|
+
token_provider_1.WLD_WORLDCHAIN,
|
|
104
|
+
token_provider_1.WBTC_WORLDCHAIN,
|
|
105
|
+
],
|
|
106
|
+
[sdk_core_1.ChainId.UNICHAIN_SEPOLIA]: [
|
|
107
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.UNICHAIN_SEPOLIA),
|
|
108
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.UNICHAIN_SEPOLIA],
|
|
109
|
+
token_provider_1.USDC_UNICHAIN_SEPOLIA,
|
|
110
|
+
],
|
|
111
|
+
[sdk_core_1.ChainId.UNICHAIN]: [
|
|
112
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.UNICHAIN),
|
|
113
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.UNICHAIN],
|
|
114
|
+
token_provider_1.DAI_UNICHAIN,
|
|
115
|
+
token_provider_1.USDC_UNICHAIN,
|
|
116
|
+
],
|
|
117
|
+
[sdk_core_1.ChainId.BASE_SEPOLIA]: [
|
|
118
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BASE_SEPOLIA),
|
|
119
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BASE_SEPOLIA],
|
|
120
|
+
token_provider_1.USDC_BASE_SEPOLIA,
|
|
121
|
+
],
|
|
122
|
+
[sdk_core_1.ChainId.MONAD_TESTNET]: [
|
|
123
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.MONAD_TESTNET),
|
|
124
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MONAD_TESTNET],
|
|
125
|
+
token_provider_1.USDT_MONAD_TESTNET,
|
|
126
|
+
],
|
|
127
|
+
[sdk_core_1.ChainId.SONEIUM]: [
|
|
128
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.SONEIUM),
|
|
129
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.SONEIUM],
|
|
130
|
+
token_provider_1.USDC_SONEIUM,
|
|
131
|
+
],
|
|
132
|
+
[sdk_core_1.ChainId.MONAD]: [
|
|
133
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.MONAD),
|
|
134
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MONAD],
|
|
135
|
+
token_provider_1.USDC_MONAD,
|
|
136
|
+
],
|
|
137
|
+
[sdk_core_1.ChainId.MEGAETH_TESTNET]: [
|
|
138
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.MEGAETH_TESTNET),
|
|
139
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MEGAETH_TESTNET],
|
|
140
|
+
token_provider_1.USDC_MEGAETH_TESTNET,
|
|
141
|
+
],
|
|
142
|
+
[sdk_core_1.ChainId.XLAYER]: [util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.XLAYER]],
|
|
143
|
+
};
|
|
144
|
+
class CachingSubgraphProvider {
|
|
145
|
+
/**
|
|
146
|
+
* Creates an instance of CachingV3SubgraphProvider.
|
|
147
|
+
* @param chainId The chain id to use.
|
|
148
|
+
* @param subgraphProvider The provider to use to get the subgraph pools when not in the cache.
|
|
149
|
+
* @param cache Cache instance to hold cached pools.
|
|
150
|
+
* @param protocol Subgraph protocol version
|
|
151
|
+
*/
|
|
152
|
+
constructor(chainId, subgraphProvider, cache, protocol) {
|
|
153
|
+
this.chainId = chainId;
|
|
154
|
+
this.subgraphProvider = subgraphProvider;
|
|
155
|
+
this.cache = cache;
|
|
156
|
+
this.protocol = protocol;
|
|
157
|
+
this.SUBGRAPH_KEY = (chainId) => `subgraph-pools-${this.protocol}-${chainId}`;
|
|
158
|
+
}
|
|
159
|
+
async getPools() {
|
|
160
|
+
const cachedPools = await this.cache.get(this.SUBGRAPH_KEY(this.chainId));
|
|
161
|
+
if (cachedPools) {
|
|
162
|
+
return cachedPools;
|
|
163
|
+
}
|
|
164
|
+
const pools = await this.subgraphProvider.getPools();
|
|
165
|
+
await this.cache.set(this.SUBGRAPH_KEY(this.chainId), pools);
|
|
166
|
+
return pools;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.CachingSubgraphProvider = CachingSubgraphProvider;
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGluZy1zdWJncmFwaC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy1zdWJncmFwaC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxnREFBNkQ7QUFHN0Qsa0NBQWlFO0FBSWpFLHFEQWtEMEI7QUFPYixRQUFBLDZCQUE2QixHQUFtQjtJQUMzRCxDQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDakIsSUFBQSxvQkFBYSxFQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDO1FBQzlCLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFFO1FBQ3pDLDRCQUFXO1FBQ1gsNkJBQVk7UUFDWiw2QkFBWTtRQUNaLDZCQUFZO1FBQ1osK0JBQWM7S0FDZjtJQUNELENBQUMsa0JBQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsTUFBTSxDQUFFLENBQUM7SUFDNUQsQ0FBQyxrQkFBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLElBQUEsb0JBQWEsRUFBQyxrQkFBTyxDQUFDLE9BQU8sQ0FBQztRQUM5Qiw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLE9BQU8sQ0FBRTtLQUMxQztJQUNELG1HQUFtRztJQUNuRyxDQUFDLGtCQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDbEIsSUFBQSxvQkFBYSxFQUFDLGtCQUFPLENBQUMsUUFBUSxDQUFDO1FBQy9CLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsUUFBUSxDQUFFO1FBQzFDLDhCQUFhO1FBQ2IsNkJBQVk7UUFDWiw4QkFBYTtRQUNiLDhCQUFhO1FBQ2IsNEJBQVc7S0FDWjtJQUNELENBQUMsa0JBQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUN0QixJQUFBLG9CQUFhLEVBQUMsa0JBQU8sQ0FBQyxZQUFZLENBQUM7UUFDbkMsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxZQUFZLENBQUU7UUFDOUMsOEJBQWE7UUFDYiw2QkFBWTtRQUNaLDhCQUFhO1FBQ2IscUNBQW9CO1FBQ3BCLDhCQUFhO1FBQ2IsNkJBQVk7S0FDYjtJQUNELENBQUMsa0JBQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFO0lBQzdCLENBQUMsa0JBQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7SUFDOUIsQ0FBQyxrQkFBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUU7SUFDN0IsQ0FBQyxrQkFBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRTtJQUM5QixDQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDakIsSUFBQSxvQkFBYSxFQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDO1FBQzlCLDZCQUFZO1FBQ1osNkJBQVk7UUFDWiwrQkFBYztLQUNmO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUU7SUFDNUIsQ0FBQyxrQkFBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQUksRUFBRSwwQkFBUyxFQUFFLDBCQUFTLEVBQUUseUJBQVEsQ0FBQztJQUN0RCxDQUFDLGtCQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRTtJQUM1QixDQUFDLGtCQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtJQUNwQixDQUFDLGtCQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDbEIsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxRQUFRLENBQUM7UUFDekMsNkJBQVk7UUFDWiw4QkFBYTtRQUNiLDhCQUFhO0tBQ2Q7SUFDRCxDQUFDLGtCQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDYixJQUFBLG9CQUFhLEVBQUMsa0JBQU8sQ0FBQyxHQUFHLENBQUM7UUFDMUIsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxHQUFHLENBQUM7UUFDcEMseUJBQVE7UUFDUix3QkFBTztRQUNQLHlCQUFRO1FBQ1IseUJBQVE7UUFDUix3QkFBTztRQUNQLHdCQUFPO0tBQ1I7SUFDRCxDQUFDLGtCQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDbkIsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxTQUFTLENBQUM7UUFDMUMsMEJBQVM7UUFDVCx5QkFBUTtLQUNUO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUU7SUFDekIsQ0FBQyxrQkFBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2QsSUFBQSxvQkFBYSxFQUFDLGtCQUFPLENBQUMsSUFBSSxDQUFDO1FBQzNCLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3JDLDBCQUFTO0tBQ1Y7SUFDRCxDQUFDLGtCQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDZCxJQUFBLG9CQUFhLEVBQUMsa0JBQU8sQ0FBQyxJQUFJLENBQUM7UUFDM0IsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxJQUFJLENBQUU7S0FDdkM7SUFDRCxDQUFDLGtCQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLFlBQVksQ0FBRSxDQUFDO0lBQ3hFLENBQUMsa0JBQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsU0FBUyxDQUFFLENBQUM7SUFDbEUsQ0FBQyxrQkFBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBQSxvQkFBYSxFQUFDLGtCQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVCLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsS0FBSyxDQUFFO1FBQ3ZDLDJCQUFVO0tBQ1g7SUFDRCxDQUFDLGtCQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDaEIsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxNQUFNLENBQUU7UUFDeEMsNkJBQVk7UUFDWiw0QkFBVztLQUNaO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3BCLElBQUEsb0JBQWEsRUFBQyxrQkFBTyxDQUFDLFVBQVUsQ0FBQztRQUNqQyw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLFVBQVUsQ0FBRTtRQUM1QyxnQ0FBZTtRQUNmLCtCQUFjO1FBQ2QsZ0NBQWU7S0FDaEI7SUFDRCxDQUFDLGtCQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUMxQixJQUFBLG9CQUFhLEVBQUMsa0JBQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUN2Qyw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLGdCQUFnQixDQUFFO1FBQ2xELHNDQUFxQjtLQUN0QjtJQUNELENBQUMsa0JBQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNsQixJQUFBLG9CQUFhLEVBQUMsa0JBQU8sQ0FBQyxRQUFRLENBQUM7UUFDL0IsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxRQUFRLENBQUU7UUFDMUMsNkJBQVk7UUFDWiw4QkFBYTtLQUNkO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQ3RCLElBQUEsb0JBQWEsRUFBQyxrQkFBTyxDQUFDLFlBQVksQ0FBQztRQUNuQyw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLFlBQVksQ0FBRTtRQUM5QyxrQ0FBaUI7S0FDbEI7SUFDRCxDQUFDLGtCQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdkIsSUFBQSxvQkFBYSxFQUFDLGtCQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3BDLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsYUFBYSxDQUFFO1FBQy9DLG1DQUFrQjtLQUNuQjtJQUNELENBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNqQixJQUFBLG9CQUFhLEVBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUM7UUFDOUIsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUU7UUFDekMsNkJBQVk7S0FDYjtJQUNELENBQUMsa0JBQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUEsb0JBQWEsRUFBQyxrQkFBTyxDQUFDLEtBQUssQ0FBQztRQUM1Qiw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLEtBQUssQ0FBRTtRQUN2QywyQkFBVTtLQUNYO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ3pCLElBQUEsb0JBQWEsRUFBQyxrQkFBTyxDQUFDLGVBQWUsQ0FBQztRQUN0Qyw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLGVBQWUsQ0FBRTtRQUNqRCxxQ0FBb0I7S0FDckI7SUFDRCxDQUFDLGtCQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLE1BQU0sQ0FBRSxDQUFDO0NBQzdELENBQUM7QUFrQkYsTUFBc0IsdUJBQXVCO0lBTzNDOzs7Ozs7T0FNRztJQUNILFlBQ1UsT0FBZ0IsRUFDZCxnQkFBa0QsRUFDcEQsS0FBOEIsRUFDOUIsUUFBa0I7UUFIbEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0M7UUFDcEQsVUFBSyxHQUFMLEtBQUssQ0FBeUI7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWRwQixpQkFBWSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQzFDLGtCQUFrQixJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBYzNDLENBQUM7SUFFRSxLQUFLLENBQUMsUUFBUTtRQUNuQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFMUUsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXJELE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFN0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFsQ0QsMERBa0NDIn0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ChainId, Token } from '@uniswap/sdk-core';
|
|
2
|
+
import { TokenList } from '@uniswap/token-lists';
|
|
3
|
+
import { ICache } from './cache';
|
|
4
|
+
import { ITokenProvider, TokenAccessor } from './token-provider';
|
|
5
|
+
/**
|
|
6
|
+
* Provider for getting token data from a Token List.
|
|
7
|
+
*
|
|
8
|
+
* @export
|
|
9
|
+
* @interface ITokenListProvider
|
|
10
|
+
*/
|
|
11
|
+
export interface ITokenListProvider {
|
|
12
|
+
hasTokenBySymbol(_symbol: string): Promise<boolean>;
|
|
13
|
+
getTokenBySymbol(_symbol: string): Promise<Token | undefined>;
|
|
14
|
+
hasTokenByAddress(address: string): Promise<boolean>;
|
|
15
|
+
getTokenByAddress(address: string): Promise<Token | undefined>;
|
|
16
|
+
}
|
|
17
|
+
export declare class CachingTokenListProvider implements ITokenProvider, ITokenListProvider {
|
|
18
|
+
private tokenCache;
|
|
19
|
+
private CACHE_KEY;
|
|
20
|
+
private chainId;
|
|
21
|
+
private chainToTokenInfos;
|
|
22
|
+
private chainSymbolToTokenInfo;
|
|
23
|
+
private chainAddressToTokenInfo;
|
|
24
|
+
private tokenList;
|
|
25
|
+
private CHAIN_SYMBOL_KEY;
|
|
26
|
+
private CHAIN_ADDRESS_KEY;
|
|
27
|
+
/**
|
|
28
|
+
* Creates an instance of CachingTokenListProvider.
|
|
29
|
+
* Token metadata (e.g. symbol and decimals) generally don't change so can be cached indefinitely.
|
|
30
|
+
*
|
|
31
|
+
* @param chainId The chain id to use.
|
|
32
|
+
* @param tokenList The token list to get the tokens from.
|
|
33
|
+
* @param tokenCache Cache instance to hold cached tokens.
|
|
34
|
+
*/
|
|
35
|
+
constructor(chainId: ChainId | number, tokenList: TokenList, tokenCache: ICache<Token>);
|
|
36
|
+
static fromTokenListURI(chainId: ChainId | number, tokenListURI: string, tokenCache: ICache<Token>): Promise<CachingTokenListProvider>;
|
|
37
|
+
private static buildTokenList;
|
|
38
|
+
static fromTokenList(chainId: ChainId | number, tokenList: TokenList, tokenCache: ICache<Token>): Promise<CachingTokenListProvider>;
|
|
39
|
+
/**
|
|
40
|
+
* If no addresses array is specified, all tokens in the token list are
|
|
41
|
+
* returned.
|
|
42
|
+
*
|
|
43
|
+
* @param _addresses (optional) The token addresses to get.
|
|
44
|
+
* @returns Promise<TokenAccessor> A token accessor with methods for accessing the tokens.
|
|
45
|
+
*/
|
|
46
|
+
getTokens(_addresses?: string[]): Promise<TokenAccessor>;
|
|
47
|
+
hasTokenBySymbol(_symbol: string): Promise<boolean>;
|
|
48
|
+
getTokenBySymbol(_symbol: string): Promise<Token | undefined>;
|
|
49
|
+
hasTokenByAddress(address: string): Promise<boolean>;
|
|
50
|
+
getTokenByAddress(address: string): Promise<Token | undefined>;
|
|
51
|
+
private buildToken;
|
|
52
|
+
}
|