v-swap-smart-order-router 3.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +255 -0
- package/LICENSE +674 -0
- package/README.md +248 -0
- package/build/main/index.d.ts +3 -0
- package/build/main/index.js +20 -0
- package/build/main/providers/cache-node.d.ts +9 -0
- package/build/main/providers/cache-node.js +19 -0
- package/build/main/providers/cache.d.ts +13 -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 +26 -0
- package/build/main/providers/caching/route/model/cached-route.js +30 -0
- package/build/main/providers/caching/route/model/cached-routes.d.ts +63 -0
- package/build/main/providers/caching/route/model/cached-routes.js +73 -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 +91 -0
- package/build/main/providers/caching/route/route-caching-provider.js +65 -0
- package/build/main/providers/caching-gas-provider.d.ts +23 -0
- package/build/main/providers/caching-gas-provider.js +37 -0
- package/build/main/providers/caching-token-list-provider.d.ts +40 -0
- package/build/main/providers/caching-token-list-provider.js +123 -0
- package/build/main/providers/caching-token-provider.d.ts +25 -0
- package/build/main/providers/caching-token-provider.js +202 -0
- package/build/main/providers/eip-1559-gas-price-provider.d.ts +31 -0
- package/build/main/providers/eip-1559-gas-price-provider.js +66 -0
- package/build/main/providers/eth-estimate-gas-provider.d.ts +16 -0
- package/build/main/providers/eth-estimate-gas-provider.js +74 -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 +37 -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 +37 -0
- package/build/main/providers/index.js +54 -0
- package/build/main/providers/legacy-gas-price-provider.d.ts +7 -0
- package/build/main/providers/legacy-gas-price-provider.js +20 -0
- package/build/main/providers/multicall-provider.d.ts +82 -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 +163 -0
- package/build/main/providers/on-chain-gas-price-provider.d.ts +19 -0
- package/build/main/providers/on-chain-gas-price-provider.js +38 -0
- package/build/main/providers/on-chain-quote-provider.d.ts +221 -0
- package/build/main/providers/on-chain-quote-provider.js +523 -0
- package/build/main/providers/provider.d.ts +10 -0
- package/build/main/providers/provider.js +3 -0
- package/build/main/providers/simulation-provider.d.ts +42 -0
- package/build/main/providers/simulation-provider.js +130 -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/swap-router-provider.d.ts +31 -0
- package/build/main/providers/swap-router-provider.js +42 -0
- package/build/main/providers/tenderly-simulation-provider.d.ts +45 -0
- package/build/main/providers/tenderly-simulation-provider.js +254 -0
- package/build/main/providers/token-provider.d.ts +114 -0
- package/build/main/providers/token-provider.js +297 -0
- package/build/main/providers/token-validator-provider.d.ts +42 -0
- package/build/main/providers/token-validator-provider.js +95 -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 +34 -0
- package/build/main/providers/v2/caching-pool-provider.js +88 -0
- package/build/main/providers/v2/caching-subgraph-provider.d.ts +23 -0
- package/build/main/providers/v2/caching-subgraph-provider.js +34 -0
- package/build/main/providers/v2/pool-provider.d.ts +60 -0
- package/build/main/providers/v2/pool-provider.js +110 -0
- package/build/main/providers/v2/quote-provider.d.ts +33 -0
- package/build/main/providers/v2/quote-provider.js +91 -0
- package/build/main/providers/v2/static-subgraph-provider.d.ts +20 -0
- package/build/main/providers/v2/static-subgraph-provider.js +103 -0
- package/build/main/providers/v2/subgraph-provider-with-fallback.d.ts +19 -0
- package/build/main/providers/v2/subgraph-provider-with-fallback.js +35 -0
- package/build/main/providers/v2/subgraph-provider.d.ts +34 -0
- package/build/main/providers/v2/subgraph-provider.js +135 -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 +33 -0
- package/build/main/providers/v3/caching-pool-provider.js +77 -0
- package/build/main/providers/v3/caching-subgraph-provider.d.ts +23 -0
- package/build/main/providers/v3/caching-subgraph-provider.js +34 -0
- package/build/main/providers/v3/gas-data-provider.d.ts +57 -0
- package/build/main/providers/v3/gas-data-provider.js +66 -0
- package/build/main/providers/v3/pool-provider.d.ts +61 -0
- package/build/main/providers/v3/pool-provider.js +123 -0
- package/build/main/providers/v3/static-subgraph-provider.d.ts +21 -0
- package/build/main/providers/v3/static-subgraph-provider.js +203 -0
- package/build/main/providers/v3/subgraph-provider-with-fallback.d.ts +15 -0
- package/build/main/providers/v3/subgraph-provider-with-fallback.js +31 -0
- package/build/main/providers/v3/subgraph-provider.d.ts +37 -0
- package/build/main/providers/v3/subgraph-provider.js +145 -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/routers/alpha-router/alpha-router.d.ts +267 -0
- package/build/main/routers/alpha-router/alpha-router.js +825 -0
- package/build/main/routers/alpha-router/config.d.ts +4 -0
- package/build/main/routers/alpha-router/config.js +93 -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 +163 -0
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +143 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +19 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.js +364 -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 +8 -0
- package/build/main/routers/alpha-router/functions/compute-all-routes.js +72 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +78 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.js +761 -0
- package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +83 -0
- package/build/main/routers/alpha-router/gas-models/gas-model.js +68 -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 +25 -0
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +175 -0
- package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +29 -0
- package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +167 -0
- package/build/main/routers/alpha-router/gas-models/v3/gas-costs.d.ts +6 -0
- package/build/main/routers/alpha-router/gas-models/v3/gas-costs.js +110 -0
- package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +31 -0
- package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +288 -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 +68 -0
- package/build/main/routers/alpha-router/quoters/base-quoter.js +61 -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 +20 -0
- package/build/main/routers/alpha-router/quoters/mixed-quoter.js +130 -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 +21 -0
- package/build/main/routers/alpha-router/quoters/v2-quoter.js +122 -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/index.d.ts +4 -0
- package/build/main/routers/index.js +21 -0
- package/build/main/routers/legacy-router/bases.d.ts +136 -0
- package/build/main/routers/legacy-router/bases.js +87 -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 +42 -0
- package/build/main/routers/legacy-router/legacy-router.js +289 -0
- package/build/main/routers/router.d.ts +165 -0
- package/build/main/routers/router.js +52 -0
- package/build/main/tsconfig.tsbuildinfo +1 -0
- package/build/main/types/other/commons.d.ts +16 -0
- package/build/main/types/other/commons.js +6 -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/GasPriceOracle__factory.d.ts +46 -0
- package/build/main/types/other/factories/GasPriceOracle__factory.js +316 -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/Permit2__factory.d.ts +87 -0
- package/build/main/types/other/factories/Permit2__factory.js +936 -0
- package/build/main/types/other/factories/SwapRouter02__factory.d.ts +67 -0
- package/build/main/types/other/factories/SwapRouter02__factory.js +1098 -0
- package/build/main/types/v2/commons.d.ts +16 -0
- package/build/main/types/v2/commons.js +6 -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/commons.d.ts +16 -0
- package/build/main/types/v3/commons.js +6 -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 +127 -0
- package/build/main/util/addresses.d.ts +26 -0
- package/build/main/util/addresses.js +73 -0
- package/build/main/util/amounts.d.ts +8 -0
- package/build/main/util/amounts.js +51 -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 +77 -0
- package/build/main/util/chains.js +564 -0
- package/build/main/util/gas-factory-helpers.d.ts +24 -0
- package/build/main/util/gas-factory-helpers.js +308 -0
- package/build/main/util/index.d.ts +7 -0
- package/build/main/util/index.js +24 -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 +108 -0
- package/build/main/util/metric.d.ts +48 -0
- package/build/main/util/metric.js +59 -0
- package/build/main/util/protocols.d.ts +2 -0
- package/build/main/util/protocols.js +18 -0
- package/build/main/util/routes.d.ts +8 -0
- package/build/main/util/routes.js +60 -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 +9 -0
- package/build/module/providers/cache-node.js +15 -0
- package/build/module/providers/cache.d.ts +13 -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 +26 -0
- package/build/module/providers/caching/route/model/cached-route.js +26 -0
- package/build/module/providers/caching/route/model/cached-routes.d.ts +63 -0
- package/build/module/providers/caching/route/model/cached-routes.js +66 -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 +91 -0
- package/build/module/providers/caching/route/route-caching-provider.js +61 -0
- package/build/module/providers/caching-gas-provider.d.ts +23 -0
- package/build/module/providers/caching-gas-provider.js +33 -0
- package/build/module/providers/caching-token-list-provider.d.ts +40 -0
- package/build/module/providers/caching-token-list-provider.js +116 -0
- package/build/module/providers/caching-token-provider.d.ts +25 -0
- package/build/module/providers/caching-token-provider.js +195 -0
- package/build/module/providers/eip-1559-gas-price-provider.d.ts +31 -0
- package/build/module/providers/eip-1559-gas-price-provider.js +59 -0
- package/build/module/providers/eth-estimate-gas-provider.d.ts +16 -0
- package/build/module/providers/eth-estimate-gas-provider.js +82 -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 +30 -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 +37 -0
- package/build/module/providers/index.js +38 -0
- package/build/module/providers/legacy-gas-price-provider.d.ts +7 -0
- package/build/module/providers/legacy-gas-price-provider.js +16 -0
- package/build/module/providers/multicall-provider.d.ts +82 -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 +156 -0
- package/build/module/providers/on-chain-gas-price-provider.d.ts +19 -0
- package/build/module/providers/on-chain-gas-price-provider.js +34 -0
- package/build/module/providers/on-chain-quote-provider.d.ts +221 -0
- package/build/module/providers/on-chain-quote-provider.js +517 -0
- package/build/module/providers/provider.d.ts +10 -0
- package/build/module/providers/provider.js +2 -0
- package/build/module/providers/simulation-provider.d.ts +42 -0
- package/build/module/providers/simulation-provider.js +132 -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/swap-router-provider.d.ts +31 -0
- package/build/module/providers/swap-router-provider.js +38 -0
- package/build/module/providers/tenderly-simulation-provider.d.ts +45 -0
- package/build/module/providers/tenderly-simulation-provider.js +249 -0
- package/build/module/providers/token-provider.d.ts +114 -0
- package/build/module/providers/token-provider.js +285 -0
- package/build/module/providers/token-validator-provider.d.ts +42 -0
- package/build/module/providers/token-validator-provider.js +88 -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 +34 -0
- package/build/module/providers/v2/caching-pool-provider.js +81 -0
- package/build/module/providers/v2/caching-subgraph-provider.d.ts +23 -0
- package/build/module/providers/v2/caching-subgraph-provider.js +30 -0
- package/build/module/providers/v2/pool-provider.d.ts +60 -0
- package/build/module/providers/v2/pool-provider.js +103 -0
- package/build/module/providers/v2/quote-provider.d.ts +33 -0
- package/build/module/providers/v2/quote-provider.js +87 -0
- package/build/module/providers/v2/static-subgraph-provider.d.ts +20 -0
- package/build/module/providers/v2/static-subgraph-provider.js +96 -0
- package/build/module/providers/v2/subgraph-provider-with-fallback.d.ts +19 -0
- package/build/module/providers/v2/subgraph-provider-with-fallback.js +31 -0
- package/build/module/providers/v2/subgraph-provider.d.ts +34 -0
- package/build/module/providers/v2/subgraph-provider.js +136 -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 +33 -0
- package/build/module/providers/v3/caching-pool-provider.js +70 -0
- package/build/module/providers/v3/caching-subgraph-provider.d.ts +23 -0
- package/build/module/providers/v3/caching-subgraph-provider.js +30 -0
- package/build/module/providers/v3/gas-data-provider.d.ts +57 -0
- package/build/module/providers/v3/gas-data-provider.js +61 -0
- package/build/module/providers/v3/pool-provider.d.ts +61 -0
- package/build/module/providers/v3/pool-provider.js +116 -0
- package/build/module/providers/v3/static-subgraph-provider.d.ts +21 -0
- package/build/module/providers/v3/static-subgraph-provider.js +200 -0
- package/build/module/providers/v3/subgraph-provider-with-fallback.d.ts +15 -0
- package/build/module/providers/v3/subgraph-provider-with-fallback.js +27 -0
- package/build/module/providers/v3/subgraph-provider.d.ts +37 -0
- package/build/module/providers/v3/subgraph-provider.js +132 -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/routers/alpha-router/alpha-router.d.ts +267 -0
- package/build/module/routers/alpha-router/alpha-router.js +823 -0
- package/build/module/routers/alpha-router/config.d.ts +4 -0
- package/build/module/routers/alpha-router/config.js +89 -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 +163 -0
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +134 -0
- package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +19 -0
- package/build/module/routers/alpha-router/functions/best-swap-route.js +356 -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 +8 -0
- package/build/module/routers/alpha-router/functions/compute-all-routes.js +65 -0
- package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +78 -0
- package/build/module/routers/alpha-router/functions/get-candidate-pools.js +776 -0
- package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +83 -0
- package/build/module/routers/alpha-router/gas-models/gas-model.js +67 -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 +25 -0
- package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +168 -0
- package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +29 -0
- package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +160 -0
- package/build/module/routers/alpha-router/gas-models/v3/gas-costs.d.ts +6 -0
- package/build/module/routers/alpha-router/gas-models/v3/gas-costs.js +104 -0
- package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +31 -0
- package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +281 -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 +68 -0
- package/build/module/routers/alpha-router/quoters/base-quoter.js +54 -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 +20 -0
- package/build/module/routers/alpha-router/quoters/mixed-quoter.js +123 -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 +21 -0
- package/build/module/routers/alpha-router/quoters/v2-quoter.js +115 -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/index.d.ts +4 -0
- package/build/module/routers/index.js +5 -0
- package/build/module/routers/legacy-router/bases.d.ts +136 -0
- package/build/module/routers/legacy-router/bases.js +93 -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 +42 -0
- package/build/module/routers/legacy-router/legacy-router.js +290 -0
- package/build/module/routers/router.d.ts +165 -0
- package/build/module/routers/router.js +44 -0
- package/build/module/tsconfig.module.tsbuildinfo +1 -0
- package/build/module/types/other/commons.d.ts +16 -0
- package/build/module/types/other/commons.js +5 -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/GasPriceOracle__factory.d.ts +46 -0
- package/build/module/types/other/factories/GasPriceOracle__factory.js +312 -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/Permit2__factory.d.ts +87 -0
- package/build/module/types/other/factories/Permit2__factory.js +932 -0
- package/build/module/types/other/factories/SwapRouter02__factory.d.ts +67 -0
- package/build/module/types/other/factories/SwapRouter02__factory.js +1094 -0
- package/build/module/types/v2/commons.d.ts +16 -0
- package/build/module/types/v2/commons.js +5 -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/commons.d.ts +16 -0
- package/build/module/types/v3/commons.js +5 -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 +123 -0
- package/build/module/util/addresses.d.ts +26 -0
- package/build/module/util/addresses.js +98 -0
- package/build/module/util/amounts.d.ts +8 -0
- package/build/module/util/amounts.js +41 -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 +77 -0
- package/build/module/util/chains.js +556 -0
- package/build/module/util/gas-factory-helpers.d.ts +24 -0
- package/build/module/util/gas-factory-helpers.js +291 -0
- package/build/module/util/index.d.ts +7 -0
- package/build/module/util/index.js +8 -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 +106 -0
- package/build/module/util/metric.d.ts +48 -0
- package/build/module/util/metric.js +53 -0
- package/build/module/util/protocols.d.ts +2 -0
- package/build/module/util/protocols.js +14 -0
- package/build/module/util/routes.d.ts +8 -0
- package/build/module/util/routes.js +50 -0
- package/build/module/util/unsupported-tokens.d.ts +37 -0
- package/build/module/util/unsupported-tokens.js +1116 -0
- package/package.json +119 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './providers';
|
|
2
|
+
export * from './routers';
|
|
3
|
+
export * from './util';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxRQUFRLENBQUMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import NodeCache from 'node-cache';
|
|
2
|
+
import { ICache } from './cache';
|
|
3
|
+
export declare class NodeJSCache<T> implements ICache<T> {
|
|
4
|
+
private nodeCache;
|
|
5
|
+
constructor(nodeCache: NodeCache);
|
|
6
|
+
get(key: string): Promise<T | undefined>;
|
|
7
|
+
set(key: string, value: T): Promise<boolean>;
|
|
8
|
+
has(key: string): Promise<boolean>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class NodeJSCache {
|
|
2
|
+
constructor(nodeCache) {
|
|
3
|
+
this.nodeCache = nodeCache;
|
|
4
|
+
}
|
|
5
|
+
async get(key) {
|
|
6
|
+
return this.nodeCache.get(key);
|
|
7
|
+
}
|
|
8
|
+
async set(key, value) {
|
|
9
|
+
return this.nodeCache.set(key, value);
|
|
10
|
+
}
|
|
11
|
+
async has(key) {
|
|
12
|
+
return this.nodeCache.has(key);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGUtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUU1QyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBSSxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBUTtRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic cache used by providers. Allows caching of results to minimize
|
|
3
|
+
* round trips to external data sources.
|
|
4
|
+
*
|
|
5
|
+
* @export
|
|
6
|
+
* @interface ICache
|
|
7
|
+
* @template T
|
|
8
|
+
*/
|
|
9
|
+
export interface ICache<T> {
|
|
10
|
+
get(key: string): Promise<T | undefined>;
|
|
11
|
+
set(key: string, value: T): Promise<boolean>;
|
|
12
|
+
has(key: string): Promise<boolean>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './route-caching-provider';
|
|
2
|
+
export * from './model/';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2NhY2hpbmcvcm91dGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFVBQVUsQ0FBQyJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CacheMode enum that controls the way that the RouteCachingProvider works.
|
|
3
|
+
* - *Livemode*: This mode will set materialized routes into cache and fetch routes from cache.
|
|
4
|
+
* If the route exists in cache, it will be quoted and returned, otherwise it will materialized.
|
|
5
|
+
* - *Darkmode*: This mode indicates that the cache will not be used, it will not be inserted nor fetched.
|
|
6
|
+
* Routes will always be materialized.
|
|
7
|
+
* - *Tapcompare*: In this mode we will insert and fetch routes to/from cache, and we will also materialize the route.
|
|
8
|
+
* Ultimately the materialized route will be returned, but we will log some metrics comparing both.
|
|
9
|
+
*
|
|
10
|
+
* @enum {string}
|
|
11
|
+
*/
|
|
12
|
+
export declare enum CacheMode {
|
|
13
|
+
Livemode = "livemode",
|
|
14
|
+
Darkmode = "darkmode",
|
|
15
|
+
Tapcompare = "tapcompare"
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CacheMode enum that controls the way that the RouteCachingProvider works.
|
|
3
|
+
* - *Livemode*: This mode will set materialized routes into cache and fetch routes from cache.
|
|
4
|
+
* If the route exists in cache, it will be quoted and returned, otherwise it will materialized.
|
|
5
|
+
* - *Darkmode*: This mode indicates that the cache will not be used, it will not be inserted nor fetched.
|
|
6
|
+
* Routes will always be materialized.
|
|
7
|
+
* - *Tapcompare*: In this mode we will insert and fetch routes to/from cache, and we will also materialize the route.
|
|
8
|
+
* Ultimately the materialized route will be returned, but we will log some metrics comparing both.
|
|
9
|
+
*
|
|
10
|
+
* @enum {string}
|
|
11
|
+
*/
|
|
12
|
+
export var CacheMode;
|
|
13
|
+
(function (CacheMode) {
|
|
14
|
+
CacheMode["Livemode"] = "livemode";
|
|
15
|
+
CacheMode["Darkmode"] = "darkmode";
|
|
16
|
+
CacheMode["Tapcompare"] = "tapcompare";
|
|
17
|
+
})(CacheMode || (CacheMode = {}));
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtbW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy9yb3V0ZS9tb2RlbC9jYWNoZS1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLGtDQUFxQixDQUFBO0lBQ3JCLHNDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQiJ9
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Protocol } from '@uniswap/router-sdk';
|
|
2
|
+
import { Token } from '@uniswap/sdk-core';
|
|
3
|
+
import { MixedRoute, V2Route, V3Route } from '../../../../routers';
|
|
4
|
+
interface CachedRouteParams<Route extends V3Route | V2Route | MixedRoute> {
|
|
5
|
+
route: Route;
|
|
6
|
+
percent: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Class defining the route to cache
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @class CachedRoute
|
|
13
|
+
*/
|
|
14
|
+
export declare class CachedRoute<Route extends V3Route | V2Route | MixedRoute> {
|
|
15
|
+
readonly route: Route;
|
|
16
|
+
readonly percent: number;
|
|
17
|
+
/**
|
|
18
|
+
* @param route
|
|
19
|
+
* @param percent
|
|
20
|
+
*/
|
|
21
|
+
constructor({ route, percent }: CachedRouteParams<Route>);
|
|
22
|
+
get protocol(): Protocol;
|
|
23
|
+
get tokenIn(): Token;
|
|
24
|
+
get tokenOut(): Token;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class defining the route to cache
|
|
3
|
+
*
|
|
4
|
+
* @export
|
|
5
|
+
* @class CachedRoute
|
|
6
|
+
*/
|
|
7
|
+
export class CachedRoute {
|
|
8
|
+
/**
|
|
9
|
+
* @param route
|
|
10
|
+
* @param percent
|
|
11
|
+
*/
|
|
12
|
+
constructor({ route, percent }) {
|
|
13
|
+
this.route = route;
|
|
14
|
+
this.percent = percent;
|
|
15
|
+
}
|
|
16
|
+
get protocol() {
|
|
17
|
+
return this.route.protocol;
|
|
18
|
+
}
|
|
19
|
+
get tokenIn() {
|
|
20
|
+
return this.route.input;
|
|
21
|
+
}
|
|
22
|
+
get tokenOut() {
|
|
23
|
+
return this.route.output;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXJvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9jYWNoaW5nL3JvdXRlL21vZGVsL2NhY2hlZC1yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBSXRCOzs7T0FHRztJQUNILFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUE0QjtRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Protocol } from '@uniswap/router-sdk';
|
|
2
|
+
import { Token, TradeType } from '@uniswap/sdk-core';
|
|
3
|
+
import { MixedRoute, RouteWithValidQuote, V2Route, V3Route } from '../../../../routers';
|
|
4
|
+
import { ChainId } from '../../../../util';
|
|
5
|
+
import { CachedRoute } from './cached-route';
|
|
6
|
+
interface CachedRoutesParams {
|
|
7
|
+
routes: CachedRoute<V3Route | V2Route | MixedRoute>[];
|
|
8
|
+
chainId: ChainId;
|
|
9
|
+
tokenIn: Token;
|
|
10
|
+
tokenOut: Token;
|
|
11
|
+
protocolsCovered: Protocol[];
|
|
12
|
+
blockNumber: number;
|
|
13
|
+
tradeType: TradeType;
|
|
14
|
+
blocksToLive?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Class defining the route to cache
|
|
18
|
+
*
|
|
19
|
+
* @export
|
|
20
|
+
* @class CachedRoute
|
|
21
|
+
*/
|
|
22
|
+
export declare class CachedRoutes {
|
|
23
|
+
readonly routes: CachedRoute<V3Route | V2Route | MixedRoute>[];
|
|
24
|
+
readonly chainId: ChainId;
|
|
25
|
+
readonly tokenIn: Token;
|
|
26
|
+
readonly tokenOut: Token;
|
|
27
|
+
readonly protocolsCovered: Protocol[];
|
|
28
|
+
readonly blockNumber: number;
|
|
29
|
+
readonly tradeType: TradeType;
|
|
30
|
+
blocksToLive: number;
|
|
31
|
+
/**
|
|
32
|
+
* @param routes
|
|
33
|
+
* @param chainId
|
|
34
|
+
* @param tokenIn
|
|
35
|
+
* @param tokenOut
|
|
36
|
+
* @param protocolsCovered
|
|
37
|
+
* @param blockNumber
|
|
38
|
+
* @param tradeType
|
|
39
|
+
* @param blocksToLive
|
|
40
|
+
*/
|
|
41
|
+
constructor({ routes, chainId, tokenIn, tokenOut, protocolsCovered, blockNumber, tradeType, blocksToLive }: CachedRoutesParams);
|
|
42
|
+
/**
|
|
43
|
+
* Factory method that creates a `CachedRoutes` object from an array of RouteWithValidQuote.
|
|
44
|
+
*
|
|
45
|
+
* @public
|
|
46
|
+
* @static
|
|
47
|
+
* @param routes
|
|
48
|
+
* @param chainId
|
|
49
|
+
* @param tokenIn
|
|
50
|
+
* @param tokenOut
|
|
51
|
+
* @param protocolsCovered
|
|
52
|
+
* @param blockNumber
|
|
53
|
+
* @param tradeType
|
|
54
|
+
*/
|
|
55
|
+
static fromRoutesWithValidQuotes(routes: RouteWithValidQuote[], chainId: ChainId, tokenIn: Token, tokenOut: Token, protocolsCovered: Protocol[], blockNumber: number, tradeType: TradeType): CachedRoutes | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Function to determine if, given a block number, the CachedRoute is expired or not.
|
|
58
|
+
*
|
|
59
|
+
* @param currentBlockNumber
|
|
60
|
+
*/
|
|
61
|
+
notExpired(currentBlockNumber: number): boolean;
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { CachedRoute } from './cached-route';
|
|
3
|
+
/**
|
|
4
|
+
* Class defining the route to cache
|
|
5
|
+
*
|
|
6
|
+
* @export
|
|
7
|
+
* @class CachedRoute
|
|
8
|
+
*/
|
|
9
|
+
export class CachedRoutes {
|
|
10
|
+
/**
|
|
11
|
+
* @param routes
|
|
12
|
+
* @param chainId
|
|
13
|
+
* @param tokenIn
|
|
14
|
+
* @param tokenOut
|
|
15
|
+
* @param protocolsCovered
|
|
16
|
+
* @param blockNumber
|
|
17
|
+
* @param tradeType
|
|
18
|
+
* @param blocksToLive
|
|
19
|
+
*/
|
|
20
|
+
constructor({ routes, chainId, tokenIn, tokenOut, protocolsCovered, blockNumber, tradeType, blocksToLive = 0 }) {
|
|
21
|
+
this.routes = routes;
|
|
22
|
+
this.chainId = chainId;
|
|
23
|
+
this.tokenIn = tokenIn;
|
|
24
|
+
this.tokenOut = tokenOut;
|
|
25
|
+
this.protocolsCovered = protocolsCovered;
|
|
26
|
+
this.blockNumber = blockNumber;
|
|
27
|
+
this.tradeType = tradeType;
|
|
28
|
+
this.blocksToLive = blocksToLive;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Factory method that creates a `CachedRoutes` object from an array of RouteWithValidQuote.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
* @static
|
|
35
|
+
* @param routes
|
|
36
|
+
* @param chainId
|
|
37
|
+
* @param tokenIn
|
|
38
|
+
* @param tokenOut
|
|
39
|
+
* @param protocolsCovered
|
|
40
|
+
* @param blockNumber
|
|
41
|
+
* @param tradeType
|
|
42
|
+
*/
|
|
43
|
+
static fromRoutesWithValidQuotes(routes, chainId, tokenIn, tokenOut, protocolsCovered, blockNumber, tradeType) {
|
|
44
|
+
if (routes.length == 0)
|
|
45
|
+
return undefined;
|
|
46
|
+
const cachedRoutes = _.map(routes, (route) => new CachedRoute({ route: route.route, percent: route.percent }));
|
|
47
|
+
return new CachedRoutes({
|
|
48
|
+
routes: cachedRoutes,
|
|
49
|
+
chainId: chainId,
|
|
50
|
+
tokenIn: tokenIn,
|
|
51
|
+
tokenOut: tokenOut,
|
|
52
|
+
protocolsCovered: protocolsCovered,
|
|
53
|
+
blockNumber: blockNumber,
|
|
54
|
+
tradeType: tradeType
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Function to determine if, given a block number, the CachedRoute is expired or not.
|
|
59
|
+
*
|
|
60
|
+
* @param currentBlockNumber
|
|
61
|
+
*/
|
|
62
|
+
notExpired(currentBlockNumber) {
|
|
63
|
+
return (currentBlockNumber - this.blockNumber) <= this.blocksToLive;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLXJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy9yb3V0ZS9tb2RlbC9jYWNoZWQtcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUt2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFhN0M7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQVd2Qjs7Ozs7Ozs7O09BU0c7SUFDSCxZQUNFLEVBQ0UsTUFBTSxFQUNOLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FBRyxDQUFDLEVBQ0c7UUFFckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMseUJBQXlCLENBQ3JDLE1BQTZCLEVBQzdCLE9BQWdCLEVBQ2hCLE9BQWMsRUFDZCxRQUFlLEVBQ2YsZ0JBQTRCLEVBQzVCLFdBQW1CLEVBQ25CLFNBQW9CO1FBRXBCLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFekMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUEwQixFQUFFLEVBQUUsQ0FDaEUsSUFBSSxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ2hFLENBQUM7UUFFRixPQUFPLElBQUksWUFBWSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxXQUFXLEVBQUUsV0FBVztZQUN4QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxrQkFBMEI7UUFDMUMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3RFLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './cached-route';
|
|
2
|
+
export * from './cached-routes';
|
|
3
|
+
export * from './cache-mode';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2NhY2hpbmcvcm91dGUvbW9kZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDIn0=
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider for getting token data from a Token List.
|
|
3
|
+
*
|
|
4
|
+
* @export
|
|
5
|
+
* @interface IRouteCachingProvider
|
|
6
|
+
*/
|
|
7
|
+
import { Protocol } from '@uniswap/router-sdk';
|
|
8
|
+
import { Currency, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core';
|
|
9
|
+
import { ChainId } from '../../../util';
|
|
10
|
+
import { CacheMode } from './model';
|
|
11
|
+
import { CachedRoutes } from './model/cached-routes';
|
|
12
|
+
/**
|
|
13
|
+
* Abstract class for a RouteCachingProvider.
|
|
14
|
+
* Defines the base methods of how to interact with this interface, but not the implementation of how to cache.
|
|
15
|
+
*/
|
|
16
|
+
export declare abstract class IRouteCachingProvider {
|
|
17
|
+
/**
|
|
18
|
+
* Final implementation of the public `getCachedRoute` method, this is how code will interact with the implementation
|
|
19
|
+
*
|
|
20
|
+
* @public
|
|
21
|
+
* @readonly
|
|
22
|
+
* @param chainId
|
|
23
|
+
* @param amount
|
|
24
|
+
* @param quoteToken
|
|
25
|
+
* @param tradeType
|
|
26
|
+
* @param protocols
|
|
27
|
+
* @param blockNumber
|
|
28
|
+
*/
|
|
29
|
+
readonly getCachedRoute: (chainId: number, amount: CurrencyAmount<Currency>, quoteToken: Token, tradeType: TradeType, protocols: Protocol[], blockNumber: number) => Promise<CachedRoutes | undefined>;
|
|
30
|
+
/**
|
|
31
|
+
* Final implementation of the public `setCachedRoute` method.
|
|
32
|
+
* This method will set the blockToLive in the CachedRoutes object before calling the internal method to insert in cache.
|
|
33
|
+
*
|
|
34
|
+
* @public
|
|
35
|
+
* @readonly
|
|
36
|
+
* @param cachedRoutes The route to cache.
|
|
37
|
+
* @returns Promise<boolean> Indicates if the route was inserted into cache.
|
|
38
|
+
*/
|
|
39
|
+
readonly setCachedRoute: (cachedRoutes: CachedRoutes, amount: CurrencyAmount<Currency>) => Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Returns the CacheMode for the given cachedRoutes and amount
|
|
42
|
+
*
|
|
43
|
+
* @param cachedRoutes
|
|
44
|
+
* @param amount
|
|
45
|
+
*/
|
|
46
|
+
getCacheModeFromCachedRoutes(cachedRoutes: CachedRoutes, amount: CurrencyAmount<Currency>): Promise<CacheMode>;
|
|
47
|
+
/**
|
|
48
|
+
* Returns the CacheMode for the given combination of chainId, tokenIn, tokenOut and tradetype
|
|
49
|
+
*
|
|
50
|
+
* @public
|
|
51
|
+
* @abstract
|
|
52
|
+
* @param chainId
|
|
53
|
+
* @param tokenIn
|
|
54
|
+
* @param tokenOut
|
|
55
|
+
* @param tradeType
|
|
56
|
+
* @param amount
|
|
57
|
+
*/
|
|
58
|
+
abstract getCacheMode(chainId: ChainId, amount: CurrencyAmount<Currency>, quoteToken: Token, tradeType: TradeType, protocols: Protocol[]): Promise<CacheMode>;
|
|
59
|
+
private filterExpiredCachedRoutes;
|
|
60
|
+
/**
|
|
61
|
+
* Internal function to fetch the CachedRoute from the cache.
|
|
62
|
+
* Must be implemented.
|
|
63
|
+
*
|
|
64
|
+
* @param chainId
|
|
65
|
+
* @param amount
|
|
66
|
+
* @param quoteToken
|
|
67
|
+
* @param tradeType
|
|
68
|
+
* @param protocols
|
|
69
|
+
* @protected
|
|
70
|
+
*/
|
|
71
|
+
protected abstract _getCachedRoute(chainId: ChainId, amount: CurrencyAmount<Currency>, quoteToken: Token, tradeType: TradeType, protocols: Protocol[]): Promise<CachedRoutes | undefined>;
|
|
72
|
+
/**
|
|
73
|
+
* Internal function to insert the CachedRoute into cache.
|
|
74
|
+
* Must be implemented.
|
|
75
|
+
*
|
|
76
|
+
* @param cachedRoutes
|
|
77
|
+
* @param amount
|
|
78
|
+
* @protected
|
|
79
|
+
*/
|
|
80
|
+
protected abstract _setCachedRoute(cachedRoutes: CachedRoutes, amount: CurrencyAmount<Currency>): Promise<boolean>;
|
|
81
|
+
/**
|
|
82
|
+
* Internal function to getBlocksToLive for a given cachedRoute.
|
|
83
|
+
* This function is called before attempting to insert the route into cache.
|
|
84
|
+
* Must be implemented.
|
|
85
|
+
*
|
|
86
|
+
* @param cachedRoutes
|
|
87
|
+
* @param amount
|
|
88
|
+
* @protected
|
|
89
|
+
*/
|
|
90
|
+
protected abstract _getBlocksToLive(cachedRoutes: CachedRoutes, amount: CurrencyAmount<Currency>): Promise<number>;
|
|
91
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { TradeType } from '@uniswap/sdk-core';
|
|
2
|
+
import { CacheMode } from './model';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract class for a RouteCachingProvider.
|
|
5
|
+
* Defines the base methods of how to interact with this interface, but not the implementation of how to cache.
|
|
6
|
+
*/
|
|
7
|
+
export class IRouteCachingProvider {
|
|
8
|
+
constructor() {
|
|
9
|
+
/**
|
|
10
|
+
* Final implementation of the public `getCachedRoute` method, this is how code will interact with the implementation
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
* @readonly
|
|
14
|
+
* @param chainId
|
|
15
|
+
* @param amount
|
|
16
|
+
* @param quoteToken
|
|
17
|
+
* @param tradeType
|
|
18
|
+
* @param protocols
|
|
19
|
+
* @param blockNumber
|
|
20
|
+
*/
|
|
21
|
+
this.getCachedRoute = async (// Defined as a readonly member instead of a regular function to make it final.
|
|
22
|
+
chainId, amount, quoteToken, tradeType, protocols, blockNumber) => {
|
|
23
|
+
if (await this.getCacheMode(chainId, amount, quoteToken, tradeType, protocols) == CacheMode.Darkmode) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
const cachedRoute = await this._getCachedRoute(chainId, amount, quoteToken, tradeType, protocols);
|
|
27
|
+
return this.filterExpiredCachedRoutes(cachedRoute, blockNumber);
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Final implementation of the public `setCachedRoute` method.
|
|
31
|
+
* This method will set the blockToLive in the CachedRoutes object before calling the internal method to insert in cache.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
34
|
+
* @readonly
|
|
35
|
+
* @param cachedRoutes The route to cache.
|
|
36
|
+
* @returns Promise<boolean> Indicates if the route was inserted into cache.
|
|
37
|
+
*/
|
|
38
|
+
this.setCachedRoute = async (// Defined as a readonly member instead of a regular function to make it final.
|
|
39
|
+
cachedRoutes, amount) => {
|
|
40
|
+
if (await this.getCacheModeFromCachedRoutes(cachedRoutes, amount) == CacheMode.Darkmode) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
cachedRoutes.blocksToLive = await this._getBlocksToLive(cachedRoutes, amount);
|
|
44
|
+
return this._setCachedRoute(cachedRoutes, amount);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Returns the CacheMode for the given cachedRoutes and amount
|
|
49
|
+
*
|
|
50
|
+
* @param cachedRoutes
|
|
51
|
+
* @param amount
|
|
52
|
+
*/
|
|
53
|
+
getCacheModeFromCachedRoutes(cachedRoutes, amount) {
|
|
54
|
+
const quoteToken = cachedRoutes.tradeType == TradeType.EXACT_INPUT ? cachedRoutes.tokenOut : cachedRoutes.tokenIn;
|
|
55
|
+
return this.getCacheMode(cachedRoutes.chainId, amount, quoteToken, cachedRoutes.tradeType, cachedRoutes.protocolsCovered);
|
|
56
|
+
}
|
|
57
|
+
filterExpiredCachedRoutes(cachedRoutes, blockNumber) {
|
|
58
|
+
return (cachedRoutes === null || cachedRoutes === void 0 ? void 0 : cachedRoutes.notExpired(blockNumber)) ? cachedRoutes : undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtY2FjaGluZy1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy9yb3V0ZS9yb3V0ZS1jYWNoaW5nLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBbUMsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdwQzs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHFCQUFxQjtJQUEzQztRQUNFOzs7Ozs7Ozs7OztXQVdHO1FBQ2EsbUJBQWMsR0FBRyxLQUFLLEVBQUcsK0VBQStFO1FBQ3RILE9BQWUsRUFDZixNQUFnQyxFQUNoQyxVQUFpQixFQUNqQixTQUFvQixFQUNwQixTQUFxQixFQUNyQixXQUFtQixFQUNnQixFQUFFO1lBQ3JDLElBQUksTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUNwRyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFbEcsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQztRQUVGOzs7Ozs7OztXQVFHO1FBQ2EsbUJBQWMsR0FBRyxLQUFLLEVBQUcsK0VBQStFO1FBQ3RILFlBQTBCLEVBQzFCLE1BQWdDLEVBQ2QsRUFBRTtZQUNwQixJQUFJLE1BQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUN2RixPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsWUFBWSxDQUFDLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFOUUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUM7SUF3RkosQ0FBQztJQXRGQzs7Ozs7T0FLRztJQUNJLDRCQUE0QixDQUNqQyxZQUEwQixFQUMxQixNQUFnQztRQUVoQyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFFbEgsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUN0QixZQUFZLENBQUMsT0FBTyxFQUNwQixNQUFNLEVBQ04sVUFBVSxFQUNWLFlBQVksQ0FBQyxTQUFTLEVBQ3RCLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFxQk8seUJBQXlCLENBQy9CLFlBQXNDLEVBQ3RDLFdBQW1CO1FBRW5CLE9BQU8sQ0FBQSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxRSxDQUFDO0NBeUNGIn0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChainId } from '../util/chains';
|
|
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 implements 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(): Promise<GasPrice>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { log } from '../util/log';
|
|
2
|
+
/**
|
|
3
|
+
* Provider for getting gas price, with functionality for caching the results.
|
|
4
|
+
*
|
|
5
|
+
* @export
|
|
6
|
+
* @class CachingV3SubgraphProvider
|
|
7
|
+
*/
|
|
8
|
+
export class CachingGasStationProvider {
|
|
9
|
+
/**
|
|
10
|
+
* Creates an instance of CachingGasStationProvider.
|
|
11
|
+
* @param chainId The chain id to use.
|
|
12
|
+
* @param gasPriceProvider The provider to use to get the gas price when not in the cache.
|
|
13
|
+
* @param cache Cache instance to hold cached pools.
|
|
14
|
+
*/
|
|
15
|
+
constructor(chainId, gasPriceProvider, cache) {
|
|
16
|
+
this.chainId = chainId;
|
|
17
|
+
this.gasPriceProvider = gasPriceProvider;
|
|
18
|
+
this.cache = cache;
|
|
19
|
+
this.GAS_KEY = (chainId) => `gasPrice-${chainId}`;
|
|
20
|
+
}
|
|
21
|
+
async getGasPrice() {
|
|
22
|
+
const cachedGasPrice = await this.cache.get(this.GAS_KEY(this.chainId));
|
|
23
|
+
if (cachedGasPrice) {
|
|
24
|
+
log.info({ cachedGasPrice }, `Got gas station price from local cache: ${cachedGasPrice.gasPriceWei}.`);
|
|
25
|
+
return cachedGasPrice;
|
|
26
|
+
}
|
|
27
|
+
log.info('Gas station price local cache miss.');
|
|
28
|
+
const gasPrice = await this.gasPriceProvider.getGasPrice();
|
|
29
|
+
await this.cache.set(this.GAS_KEY(this.chainId), gasPrice);
|
|
30
|
+
return gasPrice;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGluZy1nYXMtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2NhY2hpbmctZ2FzLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLbEM7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8seUJBQXlCO0lBR3BDOzs7OztPQUtHO0lBQ0gsWUFDWSxPQUFnQixFQUNsQixnQkFBbUMsRUFDbkMsS0FBdUI7UUFGckIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNsQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBWHpCLFlBQU8sR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLFlBQVksT0FBTyxFQUFFLENBQUM7SUFZM0QsQ0FBQztJQUVHLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUV4RSxJQUFJLGNBQWMsRUFBRTtZQUNsQixHQUFHLENBQUMsSUFBSSxDQUNOLEVBQUUsY0FBYyxFQUFFLEVBQ2xCLDJDQUEyQyxjQUFjLENBQUMsV0FBVyxHQUFHLENBQ3pFLENBQUM7WUFFRixPQUFPLGNBQWMsQ0FBQztTQUN2QjtRQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUNoRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzRCxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Token } from '@uniswap/sdk-core';
|
|
2
|
+
import { TokenList } from '@uniswap/token-lists';
|
|
3
|
+
import { ChainId } from '../util/chains';
|
|
4
|
+
import { ICache } from './cache';
|
|
5
|
+
import { ITokenProvider, TokenAccessor } from './token-provider';
|
|
6
|
+
/**
|
|
7
|
+
* Provider for getting token data from a Token List.
|
|
8
|
+
*
|
|
9
|
+
* @export
|
|
10
|
+
* @interface ITokenListProvider
|
|
11
|
+
*/
|
|
12
|
+
export interface ITokenListProvider {
|
|
13
|
+
getTokenBySymbol(_symbol: string): Promise<Token | undefined>;
|
|
14
|
+
getTokenByAddress(address: string): Promise<Token | undefined>;
|
|
15
|
+
}
|
|
16
|
+
export declare class CachingTokenListProvider implements ITokenProvider, ITokenListProvider {
|
|
17
|
+
private tokenCache;
|
|
18
|
+
private CACHE_KEY;
|
|
19
|
+
private chainId;
|
|
20
|
+
private chainToTokenInfos;
|
|
21
|
+
private chainSymbolToTokenInfo;
|
|
22
|
+
private chainAddressToTokenInfo;
|
|
23
|
+
private tokenList;
|
|
24
|
+
/**
|
|
25
|
+
* Creates an instance of CachingTokenListProvider.
|
|
26
|
+
* Token metadata (e.g. symbol and decimals) generally don't change so can be cached indefinitely.
|
|
27
|
+
*
|
|
28
|
+
* @param chainId The chain id to use.
|
|
29
|
+
* @param tokenList The token list to get the tokens from.
|
|
30
|
+
* @param tokenCache Cache instance to hold cached tokens.
|
|
31
|
+
*/
|
|
32
|
+
constructor(chainId: ChainId | number, tokenList: TokenList, tokenCache: ICache<Token>);
|
|
33
|
+
static fromTokenListURI(chainId: ChainId | number, tokenListURI: string, tokenCache: ICache<Token>): Promise<CachingTokenListProvider>;
|
|
34
|
+
private static buildTokenList;
|
|
35
|
+
static fromTokenList(chainId: ChainId | number, tokenList: TokenList, tokenCache: ICache<Token>): Promise<CachingTokenListProvider>;
|
|
36
|
+
getTokens(_addresses: string[]): Promise<TokenAccessor>;
|
|
37
|
+
getTokenBySymbol(_symbol: string): Promise<Token | undefined>;
|
|
38
|
+
getTokenByAddress(address: string): Promise<Token | undefined>;
|
|
39
|
+
private buildToken;
|
|
40
|
+
}
|