@ring-protocol/smart-order-router 0.5.0
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 +307 -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 +186 -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 +234 -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/fewV2/ring-caching-pool-provider.d.ts +33 -0
- package/build/main/providers/fewV2/ring-caching-pool-provider.js +89 -0
- package/build/main/providers/fewV2/ring-caching-subgraph-provider.d.ts +19 -0
- package/build/main/providers/fewV2/ring-caching-subgraph-provider.js +24 -0
- package/build/main/providers/fewV2/ring-pool-provider.d.ts +63 -0
- package/build/main/providers/fewV2/ring-pool-provider.js +148 -0
- package/build/main/providers/fewV2/ring-quote-provider.d.ts +34 -0
- package/build/main/providers/fewV2/ring-quote-provider.js +90 -0
- package/build/main/providers/fewV2/ring-static-subgraph-provider.d.ts +24 -0
- package/build/main/providers/fewV2/ring-static-subgraph-provider.js +284 -0
- package/build/main/providers/fewV2/ring-subgraph-provider-with-fallback.d.ts +16 -0
- package/build/main/providers/fewV2/ring-subgraph-provider-with-fallback.js +23 -0
- package/build/main/providers/fewV2/ring-subgraph-provider.d.ts +52 -0
- package/build/main/providers/fewV2/ring-subgraph-provider.js +183 -0
- package/build/main/providers/fewV2/ring-uri-subgraph-provider.d.ts +4 -0
- package/build/main/providers/fewV2/ring-uri-subgraph-provider.js +8 -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 +56 -0
- package/build/main/providers/index.js +73 -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-ringswap-provider.d.ts +35 -0
- package/build/main/providers/multicall-ringswap-provider.js +164 -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 +260 -0
- package/build/main/providers/on-chain-quote-provider.js +702 -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 +63 -0
- package/build/main/providers/tenderly-simulation-provider.js +446 -0
- package/build/main/providers/token-fee-fetcher.d.ts +31 -0
- package/build/main/providers/token-fee-fetcher.js +114 -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 +167 -0
- package/build/main/providers/token-provider.js +414 -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 +21 -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 +183 -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 +52 -0
- package/build/main/providers/v2/subgraph-provider.js +334 -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 +229 -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 +2267 -0
- package/build/main/routers/alpha-router/config.d.ts +4 -0
- package/build/main/routers/alpha-router/config.js +129 -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 +329 -0
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +319 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +25 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.js +597 -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 +16 -0
- package/build/main/routers/alpha-router/functions/compute-all-routes.js +158 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +192 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.js +3025 -0
- package/build/main/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.d.ts +31 -0
- package/build/main/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.js +169 -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 +111 -0
- package/build/main/routers/alpha-router/gas-models/gas-model.js +120 -0
- package/build/main/routers/alpha-router/gas-models/index.d.ts +5 -0
- package/build/main/routers/alpha-router/gas-models/index.js +22 -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/ring-gas-model.d.ts +111 -0
- package/build/main/routers/alpha-router/gas-models/ring-gas-model.js +169 -0
- package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +21 -0
- package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +366 -0
- package/build/main/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.d.ts +26 -0
- package/build/main/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.js +41 -0
- package/build/main/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.d.ts +15 -0
- package/build/main/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.js +40 -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 +78 -0
- package/build/main/routers/alpha-router/quoters/base-quoter.js +77 -0
- package/build/main/routers/alpha-router/quoters/few-v2-quoter.d.ts +24 -0
- package/build/main/routers/alpha-router/quoters/few-v2-quoter.js +141 -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 +34 -0
- package/build/main/routers/alpha-router/quoters/mixed-quoter.js +156 -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/uniswap-few-v3-quoter.d.ts +19 -0
- package/build/main/routers/alpha-router/quoters/uniswap-few-v3-quoter.js +118 -0
- package/build/main/routers/alpha-router/quoters/uniswap-few-v4-quoter.d.ts +18 -0
- package/build/main/routers/alpha-router/quoters/uniswap-few-v4-quoter.js +121 -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 +121 -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 +225 -0
- package/build/main/routers/legacy-router/bases.js +132 -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 +68 -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/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 +936 -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 +1098 -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/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 +34 -0
- package/build/main/util/addresses.js +140 -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 +75 -0
- package/build/main/util/chains.js +780 -0
- package/build/main/util/defaultBlocksToLive.d.ts +4 -0
- package/build/main/util/defaultBlocksToLive.js +57 -0
- package/build/main/util/fewAddress.d.ts +48 -0
- package/build/main/util/fewAddress.js +624 -0
- package/build/main/util/gas-factory-helpers.d.ts +38 -0
- package/build/main/util/gas-factory-helpers.js +596 -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 +176 -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 +46 -0
- package/build/main/util/protocols.d.ts +2 -0
- package/build/main/util/protocols.js +22 -0
- package/build/main/util/routes.d.ts +11 -0
- package/build/main/util/routes.js +159 -0
- package/build/main/util/serializeRouteIds.d.ts +2 -0
- package/build/main/util/serializeRouteIds.js +12 -0
- package/build/main/util/simple-perf-tracker.d.ts +27 -0
- package/build/main/util/simple-perf-tracker.js +171 -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 +182 -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 +227 -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/fewV2/ring-caching-pool-provider.d.ts +33 -0
- package/build/module/providers/fewV2/ring-caching-pool-provider.js +85 -0
- package/build/module/providers/fewV2/ring-caching-subgraph-provider.d.ts +19 -0
- package/build/module/providers/fewV2/ring-caching-subgraph-provider.js +20 -0
- package/build/module/providers/fewV2/ring-pool-provider.d.ts +63 -0
- package/build/module/providers/fewV2/ring-pool-provider.js +141 -0
- package/build/module/providers/fewV2/ring-quote-provider.d.ts +34 -0
- package/build/module/providers/fewV2/ring-quote-provider.js +86 -0
- package/build/module/providers/fewV2/ring-static-subgraph-provider.d.ts +24 -0
- package/build/module/providers/fewV2/ring-static-subgraph-provider.js +319 -0
- package/build/module/providers/fewV2/ring-subgraph-provider-with-fallback.d.ts +16 -0
- package/build/module/providers/fewV2/ring-subgraph-provider-with-fallback.js +19 -0
- package/build/module/providers/fewV2/ring-subgraph-provider.d.ts +52 -0
- package/build/module/providers/fewV2/ring-subgraph-provider.js +176 -0
- package/build/module/providers/fewV2/ring-uri-subgraph-provider.d.ts +4 -0
- package/build/module/providers/fewV2/ring-uri-subgraph-provider.js +4 -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 +56 -0
- package/build/module/providers/index.js +57 -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-ringswap-provider.d.ts +35 -0
- package/build/module/providers/multicall-ringswap-provider.js +157 -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 +260 -0
- package/build/module/providers/on-chain-quote-provider.js +696 -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 +63 -0
- package/build/module/providers/tenderly-simulation-provider.js +444 -0
- package/build/module/providers/token-fee-fetcher.d.ts +31 -0
- package/build/module/providers/token-fee-fetcher.js +110 -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 +167 -0
- package/build/module/providers/token-provider.js +401 -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 +21 -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 +178 -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 +52 -0
- package/build/module/providers/v2/subgraph-provider.js +331 -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 +224 -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 +2280 -0
- package/build/module/routers/alpha-router/config.d.ts +4 -0
- package/build/module/routers/alpha-router/config.js +125 -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 +329 -0
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +306 -0
- package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +25 -0
- package/build/module/routers/alpha-router/functions/best-swap-route.js +586 -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 +16 -0
- package/build/module/routers/alpha-router/functions/compute-all-routes.js +147 -0
- package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +192 -0
- package/build/module/routers/alpha-router/functions/get-candidate-pools.js +3010 -0
- package/build/module/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.d.ts +31 -0
- package/build/module/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.js +162 -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 +111 -0
- package/build/module/routers/alpha-router/gas-models/gas-model.js +114 -0
- package/build/module/routers/alpha-router/gas-models/index.d.ts +5 -0
- package/build/module/routers/alpha-router/gas-models/index.js +6 -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/ring-gas-model.d.ts +111 -0
- package/build/module/routers/alpha-router/gas-models/ring-gas-model.js +163 -0
- package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +21 -0
- package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +362 -0
- package/build/module/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.d.ts +26 -0
- package/build/module/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.js +37 -0
- package/build/module/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.d.ts +15 -0
- package/build/module/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.js +36 -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 +78 -0
- package/build/module/routers/alpha-router/quoters/base-quoter.js +70 -0
- package/build/module/routers/alpha-router/quoters/few-v2-quoter.d.ts +24 -0
- package/build/module/routers/alpha-router/quoters/few-v2-quoter.js +138 -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 +34 -0
- package/build/module/routers/alpha-router/quoters/mixed-quoter.js +149 -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/uniswap-few-v3-quoter.d.ts +19 -0
- package/build/module/routers/alpha-router/quoters/uniswap-few-v3-quoter.js +111 -0
- package/build/module/routers/alpha-router/quoters/uniswap-few-v4-quoter.d.ts +18 -0
- package/build/module/routers/alpha-router/quoters/uniswap-few-v4-quoter.js +114 -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 +114 -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 +225 -0
- package/build/module/routers/legacy-router/bases.js +138 -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 +58 -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/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 +932 -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 +1094 -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/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 +34 -0
- package/build/module/util/addresses.js +280 -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 +75 -0
- package/build/module/util/chains.js +772 -0
- package/build/module/util/defaultBlocksToLive.d.ts +4 -0
- package/build/module/util/defaultBlocksToLive.js +54 -0
- package/build/module/util/fewAddress.d.ts +48 -0
- package/build/module/util/fewAddress.js +627 -0
- package/build/module/util/gas-factory-helpers.d.ts +38 -0
- package/build/module/util/gas-factory-helpers.js +575 -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 +176 -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 +43 -0
- package/build/module/util/protocols.d.ts +2 -0
- package/build/module/util/protocols.js +18 -0
- package/build/module/util/routes.d.ts +11 -0
- package/build/module/util/routes.js +147 -0
- package/build/module/util/serializeRouteIds.d.ts +2 -0
- package/build/module/util/serializeRouteIds.js +7 -0
- package/build/module/util/simple-perf-tracker.d.ts +27 -0
- package/build/module/util/simple-perf-tracker.js +161 -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 +127 -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 '@ring-protocol/router-sdk';
|
|
8
|
+
import { ChainId, Currency, CurrencyAmount, TradeType } from '@ring-protocol/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("@ring-protocol/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtY2FjaGluZy1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy9yb3V0ZS9yb3V0ZS1jYWNoaW5nLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLHNEQUtpQztBQUlqQyxtQ0FBb0M7QUFHcEM7OztHQUdHO0FBQ0gsTUFBc0IscUJBQXFCO0lBQTNDO1FBQ0U7Ozs7Ozs7Ozs7Ozs7O1dBY0c7UUFDYSxtQkFBYyxHQUFHLEtBQUs7UUFDcEMsK0VBQStFO1FBQy9FLE9BQWUsRUFDZixNQUFnQyxFQUNoQyxhQUF1QixFQUN2QixTQUFvQixFQUNwQixTQUFxQixFQUNyQixXQUFtQixFQUNuQixVQUFVLEdBQUcsS0FBSyxFQUNsQixpQkFBcUMsRUFDckMsV0FBeUIsRUFDVSxFQUFFO1lBQ3JDLElBQ0UsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQ3RCLE9BQU8sRUFDUCxNQUFNLEVBQ04sYUFBYSxFQUNiLFNBQVMsRUFDVCxTQUFTLENBQ1YsQ0FBQyxJQUFJLGlCQUFTLENBQUMsUUFBUSxFQUN4QjtnQkFDQSxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FDNUMsT0FBTyxFQUNQLE1BQU0sRUFDTixhQUFhLEVBQ2IsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixXQUFXLENBQ1osQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7O1dBUUc7UUFDYSxtQkFBYyxHQUFHLEtBQUs7UUFDcEMsK0VBQStFO1FBQy9FLFlBQTBCLEVBQzFCLE1BQWdDLEVBQ2QsRUFBRTtZQUNwQixJQUNFLENBQUMsTUFBTSxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRCxpQkFBUyxDQUFDLFFBQVEsRUFDbEI7Z0JBQ0EsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELFlBQVksQ0FBQyxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQ3JELFlBQVksRUFDWixNQUFNLENBQ1AsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7V0FPRztRQUNhLHNCQUFpQixHQUFHLEtBQUssRUFDdkMsWUFBMEIsRUFDUixFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQWtISixDQUFDO0lBaEhDOzs7OztPQUtHO0lBQ0ksNEJBQTRCLENBQ2pDLFlBQTBCLEVBQzFCLE1BQWdDO1FBRWhDLE1BQU0sYUFBYSxHQUNqQixZQUFZLENBQUMsU0FBUyxJQUFJLG9CQUFTLENBQUMsV0FBVztZQUM3QyxDQUFDLENBQUMsWUFBWSxDQUFDLFdBQVc7WUFDMUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFFOUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUN0QixZQUFZLENBQUMsT0FBTyxFQUNwQixNQUFNLEVBQ04sYUFBYSxFQUNiLFlBQVksQ0FBQyxTQUFTLEVBQ3RCLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFtQlMseUJBQXlCLENBQ2pDLFlBQXNDLEVBQ3RDLFdBQW1CLEVBQ25CLFVBQW1CO1FBRW5CLE9BQU8sQ0FBQSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsVUFBVSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7WUFDdEQsQ0FBQyxDQUFDLFlBQVk7WUFDZCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0ErREY7QUFsTkQsc0RBa05DIn0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChainId } from '@ring-protocol/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 '@ring-protocol/router-sdk';
|
|
2
|
+
import { ChainId, Currency, Token } from '@ring-protocol/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
|
+
declare 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,186 @@
|
|
|
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("@ring-protocol/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.HYPER_MAINNET]: [
|
|
9
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.HYPER_MAINNET),
|
|
10
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.HYPER_MAINNET],
|
|
11
|
+
token_provider_1.USDT_HYPER_MAINNET,
|
|
12
|
+
],
|
|
13
|
+
[sdk_core_1.ChainId.MAINNET]: [
|
|
14
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.MAINNET),
|
|
15
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MAINNET],
|
|
16
|
+
token_provider_1.DAI_MAINNET,
|
|
17
|
+
token_provider_1.USDC_MAINNET,
|
|
18
|
+
token_provider_1.USDT_MAINNET,
|
|
19
|
+
token_provider_1.WBTC_MAINNET,
|
|
20
|
+
token_provider_1.WSTETH_MAINNET,
|
|
21
|
+
],
|
|
22
|
+
[sdk_core_1.ChainId.GOERLI]: [util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.GOERLI]],
|
|
23
|
+
[sdk_core_1.ChainId.SEPOLIA]: [
|
|
24
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.SEPOLIA),
|
|
25
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.SEPOLIA],
|
|
26
|
+
token_provider_1.USDC_SEPOLIA,
|
|
27
|
+
],
|
|
28
|
+
//v2 not deployed on [arbitrum, polygon, celo, gnosis, moonbeam, bnb, avalanche] and their testnets
|
|
29
|
+
[sdk_core_1.ChainId.OPTIMISM]: [
|
|
30
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.OPTIMISM),
|
|
31
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.OPTIMISM],
|
|
32
|
+
token_provider_1.USDC_OPTIMISM,
|
|
33
|
+
token_provider_1.DAI_OPTIMISM,
|
|
34
|
+
token_provider_1.USDT_OPTIMISM,
|
|
35
|
+
token_provider_1.WBTC_OPTIMISM,
|
|
36
|
+
token_provider_1.OP_OPTIMISM,
|
|
37
|
+
],
|
|
38
|
+
[sdk_core_1.ChainId.ARBITRUM_ONE]: [
|
|
39
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.ARBITRUM_ONE),
|
|
40
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ARBITRUM_ONE],
|
|
41
|
+
token_provider_1.WBTC_ARBITRUM,
|
|
42
|
+
token_provider_1.DAI_ARBITRUM,
|
|
43
|
+
token_provider_1.USDC_ARBITRUM,
|
|
44
|
+
token_provider_1.USDC_NATIVE_ARBITRUM,
|
|
45
|
+
token_provider_1.USDT_ARBITRUM,
|
|
46
|
+
token_provider_1.ARB_ARBITRUM,
|
|
47
|
+
],
|
|
48
|
+
[sdk_core_1.ChainId.ARBITRUM_GOERLI]: [],
|
|
49
|
+
[sdk_core_1.ChainId.ARBITRUM_SEPOLIA]: [],
|
|
50
|
+
[sdk_core_1.ChainId.OPTIMISM_GOERLI]: [],
|
|
51
|
+
[sdk_core_1.ChainId.OPTIMISM_SEPOLIA]: [],
|
|
52
|
+
[sdk_core_1.ChainId.POLYGON]: [
|
|
53
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.POLYGON),
|
|
54
|
+
token_provider_1.USDC_POLYGON,
|
|
55
|
+
token_provider_1.WETH_POLYGON,
|
|
56
|
+
token_provider_1.WMATIC_POLYGON,
|
|
57
|
+
],
|
|
58
|
+
[sdk_core_1.ChainId.POLYGON_MUMBAI]: [],
|
|
59
|
+
[sdk_core_1.ChainId.CELO]: [token_provider_1.CELO, token_provider_1.CUSD_CELO, token_provider_1.CEUR_CELO, token_provider_1.DAI_CELO],
|
|
60
|
+
[sdk_core_1.ChainId.CELO_ALFAJORES]: [],
|
|
61
|
+
[sdk_core_1.ChainId.GNOSIS]: [],
|
|
62
|
+
[sdk_core_1.ChainId.MOONBEAM]: [
|
|
63
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MOONBEAM],
|
|
64
|
+
token_provider_1.DAI_MOONBEAM,
|
|
65
|
+
token_provider_1.USDC_MOONBEAM,
|
|
66
|
+
token_provider_1.WBTC_MOONBEAM,
|
|
67
|
+
],
|
|
68
|
+
[sdk_core_1.ChainId.BNB]: [
|
|
69
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BNB),
|
|
70
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BNB],
|
|
71
|
+
token_provider_1.BUSD_BNB,
|
|
72
|
+
token_provider_1.DAI_BNB,
|
|
73
|
+
token_provider_1.USDC_BNB,
|
|
74
|
+
token_provider_1.USDT_BNB,
|
|
75
|
+
token_provider_1.BTC_BNB,
|
|
76
|
+
token_provider_1.ETH_BNB,
|
|
77
|
+
],
|
|
78
|
+
[sdk_core_1.ChainId.AVALANCHE]: [
|
|
79
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.AVALANCHE],
|
|
80
|
+
token_provider_1.USDC_AVAX,
|
|
81
|
+
token_provider_1.DAI_AVAX,
|
|
82
|
+
],
|
|
83
|
+
[sdk_core_1.ChainId.BASE_GOERLI]: [],
|
|
84
|
+
[sdk_core_1.ChainId.BASE]: [
|
|
85
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BASE),
|
|
86
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BASE],
|
|
87
|
+
token_provider_1.USDC_BASE,
|
|
88
|
+
],
|
|
89
|
+
[sdk_core_1.ChainId.ZORA]: [
|
|
90
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.ZORA),
|
|
91
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ZORA],
|
|
92
|
+
],
|
|
93
|
+
[sdk_core_1.ChainId.ZORA_SEPOLIA]: [util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ZORA_SEPOLIA]],
|
|
94
|
+
[sdk_core_1.ChainId.ROOTSTOCK]: [util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ROOTSTOCK]],
|
|
95
|
+
[sdk_core_1.ChainId.BLAST]: [
|
|
96
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BLAST),
|
|
97
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BLAST],
|
|
98
|
+
token_provider_1.USDB_BLAST,
|
|
99
|
+
],
|
|
100
|
+
[sdk_core_1.ChainId.ZKSYNC]: [
|
|
101
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.ZKSYNC],
|
|
102
|
+
token_provider_1.USDCE_ZKSYNC,
|
|
103
|
+
token_provider_1.USDC_ZKSYNC,
|
|
104
|
+
],
|
|
105
|
+
[sdk_core_1.ChainId.WORLDCHAIN]: [
|
|
106
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.WORLDCHAIN),
|
|
107
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.WORLDCHAIN],
|
|
108
|
+
token_provider_1.USDC_WORLDCHAIN,
|
|
109
|
+
token_provider_1.WLD_WORLDCHAIN,
|
|
110
|
+
token_provider_1.WBTC_WORLDCHAIN,
|
|
111
|
+
],
|
|
112
|
+
[sdk_core_1.ChainId.UNICHAIN_SEPOLIA]: [
|
|
113
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.UNICHAIN_SEPOLIA),
|
|
114
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.UNICHAIN_SEPOLIA],
|
|
115
|
+
token_provider_1.USDC_UNICHAIN_SEPOLIA,
|
|
116
|
+
],
|
|
117
|
+
[sdk_core_1.ChainId.UNICHAIN]: [
|
|
118
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.UNICHAIN),
|
|
119
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.UNICHAIN],
|
|
120
|
+
token_provider_1.DAI_UNICHAIN,
|
|
121
|
+
token_provider_1.USDC_UNICHAIN,
|
|
122
|
+
],
|
|
123
|
+
[sdk_core_1.ChainId.BASE_SEPOLIA]: [
|
|
124
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BASE_SEPOLIA),
|
|
125
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BASE_SEPOLIA],
|
|
126
|
+
token_provider_1.USDC_BASE_SEPOLIA,
|
|
127
|
+
],
|
|
128
|
+
[sdk_core_1.ChainId.MONAD_TESTNET]: [
|
|
129
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.MONAD_TESTNET),
|
|
130
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MONAD_TESTNET],
|
|
131
|
+
token_provider_1.USDT_MONAD_TESTNET,
|
|
132
|
+
],
|
|
133
|
+
[sdk_core_1.ChainId.SONEIUM]: [
|
|
134
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.SONEIUM),
|
|
135
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.SONEIUM],
|
|
136
|
+
token_provider_1.USDC_SONEIUM,
|
|
137
|
+
],
|
|
138
|
+
[sdk_core_1.ChainId.MONAD]: [
|
|
139
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.MONAD),
|
|
140
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.MONAD],
|
|
141
|
+
token_provider_1.USDC_MONAD,
|
|
142
|
+
],
|
|
143
|
+
// networks exclusive to ring swap
|
|
144
|
+
[sdk_core_1.ChainId.BLAST_SEPOLIA]: [
|
|
145
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.BLAST_SEPOLIA),
|
|
146
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.BLAST_SEPOLIA],
|
|
147
|
+
token_provider_1.USDB_BLAST_SEPOLIA,
|
|
148
|
+
],
|
|
149
|
+
[sdk_core_1.ChainId.STORY_ODYSSEY]: [
|
|
150
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.STORY_ODYSSEY),
|
|
151
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.STORY_ODYSSEY],
|
|
152
|
+
token_provider_1.SUSD_STORY_ODYSSEY,
|
|
153
|
+
],
|
|
154
|
+
[sdk_core_1.ChainId.STORY_MAINNET]: [
|
|
155
|
+
(0, util_1.nativeOnChain)(sdk_core_1.ChainId.STORY_MAINNET),
|
|
156
|
+
util_1.WRAPPED_NATIVE_CURRENCY[sdk_core_1.ChainId.STORY_MAINNET],
|
|
157
|
+
token_provider_1.USDC_STORY_MAINNET,
|
|
158
|
+
],
|
|
159
|
+
};
|
|
160
|
+
class CachingSubgraphProvider {
|
|
161
|
+
/**
|
|
162
|
+
* Creates an instance of CachingV3SubgraphProvider.
|
|
163
|
+
* @param chainId The chain id to use.
|
|
164
|
+
* @param subgraphProvider The provider to use to get the subgraph pools when not in the cache.
|
|
165
|
+
* @param cache Cache instance to hold cached pools.
|
|
166
|
+
* @param protocol Subgraph protocol version
|
|
167
|
+
*/
|
|
168
|
+
constructor(chainId, subgraphProvider, cache, protocol) {
|
|
169
|
+
this.chainId = chainId;
|
|
170
|
+
this.subgraphProvider = subgraphProvider;
|
|
171
|
+
this.cache = cache;
|
|
172
|
+
this.protocol = protocol;
|
|
173
|
+
this.SUBGRAPH_KEY = (chainId) => `subgraph-pools-${this.protocol}-${chainId}`;
|
|
174
|
+
}
|
|
175
|
+
async getPools() {
|
|
176
|
+
const cachedPools = await this.cache.get(this.SUBGRAPH_KEY(this.chainId));
|
|
177
|
+
if (cachedPools) {
|
|
178
|
+
return cachedPools;
|
|
179
|
+
}
|
|
180
|
+
const pools = await this.subgraphProvider.getPools();
|
|
181
|
+
await this.cache.set(this.SUBGRAPH_KEY(this.chainId), pools);
|
|
182
|
+
return pools;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.CachingSubgraphProvider = CachingSubgraphProvider;
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGluZy1zdWJncmFwaC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy1zdWJncmFwaC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxzREFBbUU7QUFHbkUsa0NBQWlFO0FBSWpFLHFEQXNEMEI7QUFPYixRQUFBLDZCQUE2QixHQUFtQjtJQUMzRCxDQUFDLGtCQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdkIsSUFBQSxvQkFBYSxFQUFDLGtCQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3BDLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsYUFBYSxDQUFFO1FBQy9DLG1DQUFrQjtLQUNuQjtJQUNELENBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNqQixJQUFBLG9CQUFhLEVBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUM7UUFDOUIsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUU7UUFDekMsNEJBQVc7UUFDWCw2QkFBWTtRQUNaLDZCQUFZO1FBQ1osNkJBQVk7UUFDWiwrQkFBYztLQUNmO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsOEJBQXVCLENBQUMsa0JBQU8sQ0FBQyxNQUFNLENBQUUsQ0FBQztJQUM1RCxDQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDakIsSUFBQSxvQkFBYSxFQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDO1FBQzlCLDhCQUF1QixDQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFFO1FBQ3pDLDZCQUFZO0tBQ2I7SUFDRCxtR0FBbUc7SUFDbkcsQ0FBQyxrQkFBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xCLElBQUEsb0JBQWEsRUFBQyxrQkFBTyxDQUFDLFFBQVEsQ0FBQztRQUMvQiw4QkFBdUIsQ0FBQyxrQkFBTyxDQUFDLFFBQVEsQ0FBRTtRQUMxQyw4QkFBYTtRQUNi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
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ChainId, Token } from '@ring-protocol/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
|
+
}
|