@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,63 @@
|
|
|
1
|
+
import { ChainId, Currency } from '@ring-protocol/sdk-core';
|
|
2
|
+
import { ProviderConfig } from '../provider';
|
|
3
|
+
import { SubgraphProvider } from '../subgraph-provider';
|
|
4
|
+
export interface V4SubgraphPool {
|
|
5
|
+
id: string;
|
|
6
|
+
feeTier: string;
|
|
7
|
+
tickSpacing: string;
|
|
8
|
+
hooks: string;
|
|
9
|
+
liquidity: string;
|
|
10
|
+
token0: {
|
|
11
|
+
symbol?: string;
|
|
12
|
+
id: string;
|
|
13
|
+
name?: string;
|
|
14
|
+
decimals: string;
|
|
15
|
+
};
|
|
16
|
+
token1: {
|
|
17
|
+
symbol?: string;
|
|
18
|
+
id: string;
|
|
19
|
+
name?: string;
|
|
20
|
+
decimals: string;
|
|
21
|
+
};
|
|
22
|
+
tvlETH: number;
|
|
23
|
+
tvlUSD: number;
|
|
24
|
+
}
|
|
25
|
+
export declare type V4RawSubgraphPool = {
|
|
26
|
+
id: string;
|
|
27
|
+
feeTier: string;
|
|
28
|
+
tickSpacing: string;
|
|
29
|
+
hooks: string;
|
|
30
|
+
liquidity: string;
|
|
31
|
+
token0: {
|
|
32
|
+
symbol: string;
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
decimals: string;
|
|
36
|
+
};
|
|
37
|
+
token1: {
|
|
38
|
+
symbol: string;
|
|
39
|
+
id: string;
|
|
40
|
+
name: string;
|
|
41
|
+
decimals: string;
|
|
42
|
+
};
|
|
43
|
+
totalValueLockedUSD: string;
|
|
44
|
+
totalValueLockedETH: string;
|
|
45
|
+
totalValueLockedUSDUntracked: string;
|
|
46
|
+
};
|
|
47
|
+
export declare const SUBGRAPH_URL_BY_CHAIN: {
|
|
48
|
+
[chainId in ChainId]?: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Provider for getting V4 pools from the Subgraph
|
|
52
|
+
*
|
|
53
|
+
* @export
|
|
54
|
+
* @interface IV4SubgraphProvider
|
|
55
|
+
*/
|
|
56
|
+
export interface IV4SubgraphProvider {
|
|
57
|
+
getPools(currencyIn?: Currency, currencyOut?: Currency, providerConfig?: ProviderConfig): Promise<V4SubgraphPool[]>;
|
|
58
|
+
}
|
|
59
|
+
export declare class V4SubgraphProvider extends SubgraphProvider<V4RawSubgraphPool, V4SubgraphPool> implements IV4SubgraphProvider {
|
|
60
|
+
constructor(chainId: ChainId, retries?: number, timeout?: number, rollback?: boolean, trackedEthThreshold?: number, trackedZoraEthThreshold?: number, zoraHooks?: Set<string>, untrackedUsdThreshold?: number, subgraphUrlOverride?: string, bearerToken?: string);
|
|
61
|
+
protected mapSubgraphPool(rawPool: V4RawSubgraphPool): V4SubgraphPool;
|
|
62
|
+
protected getPoolFields(): string;
|
|
63
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.V4SubgraphProvider = exports.SUBGRAPH_URL_BY_CHAIN = void 0;
|
|
4
|
+
const router_sdk_1 = require("@ring-protocol/router-sdk");
|
|
5
|
+
const sdk_core_1 = require("@ring-protocol/sdk-core");
|
|
6
|
+
const subgraph_provider_1 = require("../subgraph-provider");
|
|
7
|
+
exports.SUBGRAPH_URL_BY_CHAIN = {
|
|
8
|
+
[sdk_core_1.ChainId.SEPOLIA]: '',
|
|
9
|
+
};
|
|
10
|
+
class V4SubgraphProvider extends subgraph_provider_1.SubgraphProvider {
|
|
11
|
+
constructor(chainId, retries = 2, timeout = 30000, rollback = true, trackedEthThreshold = 0.01, trackedZoraEthThreshold = 0.001, zoraHooks = new Set(), untrackedUsdThreshold = Number.MAX_VALUE, subgraphUrlOverride, bearerToken) {
|
|
12
|
+
super(router_sdk_1.Protocol.V4, chainId, retries, timeout, rollback, trackedEthThreshold, trackedZoraEthThreshold, zoraHooks, untrackedUsdThreshold, subgraphUrlOverride !== null && subgraphUrlOverride !== void 0 ? subgraphUrlOverride : exports.SUBGRAPH_URL_BY_CHAIN[chainId], bearerToken);
|
|
13
|
+
}
|
|
14
|
+
mapSubgraphPool(rawPool) {
|
|
15
|
+
return {
|
|
16
|
+
id: rawPool.id,
|
|
17
|
+
feeTier: rawPool.feeTier,
|
|
18
|
+
tickSpacing: rawPool.tickSpacing,
|
|
19
|
+
hooks: rawPool.hooks,
|
|
20
|
+
liquidity: rawPool.liquidity,
|
|
21
|
+
token0: {
|
|
22
|
+
symbol: rawPool.token0.symbol,
|
|
23
|
+
id: rawPool.token0.id,
|
|
24
|
+
name: rawPool.token0.name,
|
|
25
|
+
decimals: rawPool.token0.decimals,
|
|
26
|
+
},
|
|
27
|
+
token1: {
|
|
28
|
+
symbol: rawPool.token1.symbol,
|
|
29
|
+
id: rawPool.token1.id,
|
|
30
|
+
name: rawPool.token1.name,
|
|
31
|
+
decimals: rawPool.token1.decimals,
|
|
32
|
+
},
|
|
33
|
+
tvlETH: parseFloat(rawPool.totalValueLockedETH),
|
|
34
|
+
tvlUSD: parseFloat(rawPool.totalValueLockedUSD),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
// Override to include V4-specific fields
|
|
38
|
+
getPoolFields() {
|
|
39
|
+
return `
|
|
40
|
+
id
|
|
41
|
+
token0 {
|
|
42
|
+
symbol
|
|
43
|
+
id
|
|
44
|
+
name
|
|
45
|
+
decimals
|
|
46
|
+
}
|
|
47
|
+
token1 {
|
|
48
|
+
symbol
|
|
49
|
+
id
|
|
50
|
+
name
|
|
51
|
+
decimals
|
|
52
|
+
}
|
|
53
|
+
feeTier
|
|
54
|
+
tickSpacing
|
|
55
|
+
hooks
|
|
56
|
+
liquidity
|
|
57
|
+
totalValueLockedUSD
|
|
58
|
+
totalValueLockedETH
|
|
59
|
+
`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.V4SubgraphProvider = V4SubgraphProvider;
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZ3JhcGgtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3Y0L3N1YmdyYXBoLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBEQUFxRDtBQUNyRCxzREFBNEQ7QUFHNUQsNERBQXdEO0FBK0MzQyxRQUFBLHFCQUFxQixHQUFzQztJQUN0RSxDQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtDQUN0QixDQUFDO0FBZ0JGLE1BQWEsa0JBQ1gsU0FBUSxvQ0FBbUQ7SUFFM0QsWUFDRSxPQUFnQixFQUNoQixPQUFPLEdBQUcsQ0FBQyxFQUNYLE9BQU8sR0FBRyxLQUFLLEVBQ2YsUUFBUSxHQUFHLElBQUksRUFDZixtQkFBbUIsR0FBRyxJQUFJLEVBQzFCLHVCQUF1QixHQUFHLEtBQUssRUFDL0IsWUFBWSxJQUFJLEdBQUcsRUFBVSxFQUM3QixxQkFBcUIsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUN4QyxtQkFBNEIsRUFDNUIsV0FBb0I7UUFFcEIsS0FBSyxDQUNILHFCQUFRLENBQUMsRUFBRSxFQUNYLE9BQU8sRUFDUCxPQUFPLEVBQ1AsT0FBTyxFQUNQLFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsbUJBQW1CLGFBQW5CLG1CQUFtQixjQUFuQixtQkFBbUIsR0FBSSw2QkFBcUIsQ0FBQyxPQUFPLENBQUMsRUFDckQsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRWtCLGVBQWUsQ0FDaEMsT0FBMEI7UUFFMUIsT0FBTztZQUNMLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNkLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFDN0IsRUFBRSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDekIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUTthQUNsQztZQUNELE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUM3QixFQUFFLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyQixJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dCQUN6QixRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRO2FBQ2xDO1lBQ0QsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7WUFDL0MsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCx5Q0FBeUM7SUFDdEIsYUFBYTtRQUM5QixPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9CTixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaEZELGdEQWdGQyJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.V4URISubgraphProvider = void 0;
|
|
4
|
+
const uri_subgraph_provider_1 = require("../uri-subgraph-provider");
|
|
5
|
+
class V4URISubgraphProvider extends uri_subgraph_provider_1.URISubgraphProvider {
|
|
6
|
+
}
|
|
7
|
+
exports.V4URISubgraphProvider = V4URISubgraphProvider;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLXN1YmdyYXBoLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy92NC91cmktc3ViZ3JhcGgtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0VBQStEO0FBRy9ELE1BQWEscUJBQ1gsU0FBUSwyQ0FBbUM7Q0FDVjtBQUZuQyxzREFFbUMifQ==
|
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
import { BaseProvider } from '@ethersproject/providers';
|
|
2
|
+
import { Protocol } from '@ring-protocol/router-sdk';
|
|
3
|
+
import { ChainId, Currency, TradeType } from '@ring-protocol/sdk-core';
|
|
4
|
+
import { Position } from '@ring-protocol/v3-sdk';
|
|
5
|
+
import { CacheMode, IOnChainQuoteProvider, IRingV2PoolProvider, IRingV2QuoteProvider, IRingV2SubgraphProvider, IRouteCachingProvider, ISwapRouterProvider, ITokenPropertiesProvider, IV2QuoteProvider, IV2SubgraphProvider, IV4SubgraphProvider, RingswapMulticallProvider, SimulationStatus, Simulator, UniswapMulticallProvider } from '../../providers';
|
|
6
|
+
import { ITokenListProvider } from '../../providers/caching-token-list-provider';
|
|
7
|
+
import { IGasPriceProvider } from '../../providers/gas-price-provider';
|
|
8
|
+
import { IPortionProvider } from '../../providers/portion-provider';
|
|
9
|
+
import { ITokenProvider } from '../../providers/token-provider';
|
|
10
|
+
import { ITokenValidatorProvider } from '../../providers/token-validator-provider';
|
|
11
|
+
import { IV2PoolProvider } from '../../providers/v2/pool-provider';
|
|
12
|
+
import { ArbitrumGasData, IL2GasDataProvider } from '../../providers/v3/gas-data-provider';
|
|
13
|
+
import { IV3PoolProvider } from '../../providers/v3/pool-provider';
|
|
14
|
+
import { IV3SubgraphProvider } from '../../providers/v3/subgraph-provider';
|
|
15
|
+
import { IV4PoolProvider } from '../../providers/v4/pool-provider';
|
|
16
|
+
import { HooksOptions } from '../../util';
|
|
17
|
+
import { CurrencyAmount } from '../../util/amounts';
|
|
18
|
+
import { IRouter, ISwapToRatio, SwapAndAddConfig, SwapAndAddOptions, SwapOptions, SwapRoute, SwapToRatioResponse } from '../router';
|
|
19
|
+
import { UniversalRouterVersion } from '@ring-protocol/universal-router-sdk';
|
|
20
|
+
import { INTENT } from '../../util/intent';
|
|
21
|
+
import { MixedRouteWithValidQuote, RouteWithValidQuote, UniswapFewV3RouteWithValidQuote, UniswapFewV4RouteWithValidQuote, V3RouteWithValidQuote, V4RouteWithValidQuote } from './entities/route-with-valid-quote';
|
|
22
|
+
import { IOnChainGasModelFactory, IV2GasModelFactory } from './gas-models/gas-model';
|
|
23
|
+
import { MixedQuoter, V2Quoter, V3Quoter } from './quoters';
|
|
24
|
+
import { V4Quoter } from './quoters/v4-quoter';
|
|
25
|
+
import { UniswapFewV4Quoter } from './quoters/uniswap-few-v4-quoter';
|
|
26
|
+
import { UniswapFewV3Quoter } from './quoters/uniswap-few-v3-quoter';
|
|
27
|
+
import { IRingFewV2GasModelFactory } from './gas-models/ring-gas-model';
|
|
28
|
+
import { RingFewV2Quoter } from './quoters/few-v2-quoter';
|
|
29
|
+
export declare type AlphaRouterParams = {
|
|
30
|
+
/**
|
|
31
|
+
* The chain id for this instance of the Alpha Router.
|
|
32
|
+
*/
|
|
33
|
+
chainId: ChainId;
|
|
34
|
+
/**
|
|
35
|
+
* The Web3 provider for getting on-chain data.
|
|
36
|
+
*/
|
|
37
|
+
provider: BaseProvider;
|
|
38
|
+
/**
|
|
39
|
+
* The provider to use for making multicalls. Used for getting on-chain data
|
|
40
|
+
* like pools, tokens, quotes in batch.
|
|
41
|
+
*/
|
|
42
|
+
multicall2Provider?: UniswapMulticallProvider;
|
|
43
|
+
/**
|
|
44
|
+
* The provider for getting all pools that exist on RingSwap Few V2 from the Subgraph. The pools
|
|
45
|
+
* from this provider are filtered during the algorithm to a set of candidate pools.
|
|
46
|
+
*/
|
|
47
|
+
ringFewV2Multicall2Provider?: RingswapMulticallProvider;
|
|
48
|
+
/**
|
|
49
|
+
* The provider for getting all pools that exist on V4 from the Subgraph. The pools
|
|
50
|
+
* from this provider are filtered during the algorithm to a set of candidate pools.
|
|
51
|
+
*/
|
|
52
|
+
v4SubgraphProvider?: IV4SubgraphProvider;
|
|
53
|
+
/**
|
|
54
|
+
* The provider for getting data about V4 pools.
|
|
55
|
+
*/
|
|
56
|
+
v4PoolProvider?: IV4PoolProvider;
|
|
57
|
+
/**
|
|
58
|
+
* The provider for getting all pools that exist on V3 from the Subgraph. The pools
|
|
59
|
+
* from this provider are filtered during the algorithm to a set of candidate pools.
|
|
60
|
+
*/
|
|
61
|
+
v3SubgraphProvider?: IV3SubgraphProvider;
|
|
62
|
+
/**
|
|
63
|
+
* The provider for getting data about V3 pools.
|
|
64
|
+
*/
|
|
65
|
+
v3PoolProvider?: IV3PoolProvider;
|
|
66
|
+
/**
|
|
67
|
+
* The provider for getting V3 quotes.
|
|
68
|
+
*/
|
|
69
|
+
onChainQuoteProvider?: IOnChainQuoteProvider;
|
|
70
|
+
/**
|
|
71
|
+
* The provider for getting all pools that exist on V2 from the Subgraph. The pools
|
|
72
|
+
* from this provider are filtered during the algorithm to a set of candidate pools.
|
|
73
|
+
*/
|
|
74
|
+
v2SubgraphProvider?: IV2SubgraphProvider;
|
|
75
|
+
/**
|
|
76
|
+
* The provider for getting all pools that exist on RingSwap Few V2 from the Subgraph. The pools
|
|
77
|
+
* from this provider are filtered during the algorithm to a set of candidate pools.
|
|
78
|
+
*/
|
|
79
|
+
ringFewV2SubgraphProvider?: IRingV2SubgraphProvider;
|
|
80
|
+
/**
|
|
81
|
+
* The provider for getting data about V2 pools.
|
|
82
|
+
*/
|
|
83
|
+
v2PoolProvider?: IV2PoolProvider;
|
|
84
|
+
/**
|
|
85
|
+
* The provider for getting all pools that exist on RingSwap Few V2 from the Subgraph. The pools
|
|
86
|
+
* from this provider are filtered during the algorithm to a set of candidate pools.
|
|
87
|
+
*/
|
|
88
|
+
ringFewV2PoolProvider?: IRingV2PoolProvider;
|
|
89
|
+
/**
|
|
90
|
+
* The provider for getting V3 quotes.
|
|
91
|
+
*/
|
|
92
|
+
v2QuoteProvider?: IV2QuoteProvider;
|
|
93
|
+
/**
|
|
94
|
+
* The provider for getting data about RingSwap Few V2 pools.
|
|
95
|
+
*/
|
|
96
|
+
ringFewV2QuoteProvider?: IRingV2QuoteProvider;
|
|
97
|
+
/**
|
|
98
|
+
* The provider for getting data about Tokens.
|
|
99
|
+
*/
|
|
100
|
+
tokenProvider?: ITokenProvider;
|
|
101
|
+
/**
|
|
102
|
+
* The provider for getting the current gas price to use when account for gas in the
|
|
103
|
+
* algorithm.
|
|
104
|
+
*/
|
|
105
|
+
gasPriceProvider?: IGasPriceProvider;
|
|
106
|
+
/**
|
|
107
|
+
* A factory for generating a gas model that is used when estimating the gas used by
|
|
108
|
+
* V4 routes.
|
|
109
|
+
*/
|
|
110
|
+
v4GasModelFactory?: IOnChainGasModelFactory<V4RouteWithValidQuote>;
|
|
111
|
+
/**
|
|
112
|
+
* A factory for generating a gas model that is used when estimating the gas used by
|
|
113
|
+
* Uniswap Few V4 routes.
|
|
114
|
+
*/
|
|
115
|
+
uniswapFewV4GasModelFactory?: IOnChainGasModelFactory<UniswapFewV4RouteWithValidQuote>;
|
|
116
|
+
/**
|
|
117
|
+
* A factory for generating a gas model that is used when estimating the gas used by
|
|
118
|
+
* V3 routes.
|
|
119
|
+
*/
|
|
120
|
+
v3GasModelFactory?: IOnChainGasModelFactory<V3RouteWithValidQuote>;
|
|
121
|
+
/**
|
|
122
|
+
* A factory for generating a gas model that is used when estimating the gas used by
|
|
123
|
+
* Uniswap Few V3 routes.
|
|
124
|
+
*/
|
|
125
|
+
uniswapFewV3GasModelFactory?: IOnChainGasModelFactory<UniswapFewV3RouteWithValidQuote>;
|
|
126
|
+
/**
|
|
127
|
+
* A factory for generating a gas model that is used when estimating the gas used by
|
|
128
|
+
* V2 routes.
|
|
129
|
+
*/
|
|
130
|
+
v2GasModelFactory?: IV2GasModelFactory;
|
|
131
|
+
/**
|
|
132
|
+
* The provider for getting RingSwap Few V2 quotes.
|
|
133
|
+
*/
|
|
134
|
+
ringFewV2GasModelFactory?: IRingFewV2GasModelFactory;
|
|
135
|
+
/**
|
|
136
|
+
* A factory for generating a gas model that is used when estimating the gas used by
|
|
137
|
+
* V3 routes.
|
|
138
|
+
*/
|
|
139
|
+
mixedRouteGasModelFactory?: IOnChainGasModelFactory<MixedRouteWithValidQuote>;
|
|
140
|
+
/**
|
|
141
|
+
* A token list that specifies Token that should be blocked from routing through.
|
|
142
|
+
* Defaults to Uniswap's unsupported token list.
|
|
143
|
+
*/
|
|
144
|
+
blockedTokenListProvider?: ITokenListProvider;
|
|
145
|
+
/**
|
|
146
|
+
* Calls lens function on SwapRouter02 to determine ERC20 approval types for
|
|
147
|
+
* LP position tokens.
|
|
148
|
+
*/
|
|
149
|
+
swapRouterProvider?: ISwapRouterProvider;
|
|
150
|
+
/**
|
|
151
|
+
* A token validator for detecting fee-on-transfer tokens or tokens that can't be transferred.
|
|
152
|
+
*/
|
|
153
|
+
tokenValidatorProvider?: ITokenValidatorProvider;
|
|
154
|
+
/**
|
|
155
|
+
* Calls the arbitrum gas data contract to fetch constants for calculating the l1 fee.
|
|
156
|
+
*/
|
|
157
|
+
arbitrumGasDataProvider?: IL2GasDataProvider<ArbitrumGasData>;
|
|
158
|
+
/**
|
|
159
|
+
* Simulates swaps and returns new SwapRoute with updated gas estimates.
|
|
160
|
+
*/
|
|
161
|
+
simulator?: Simulator;
|
|
162
|
+
/**
|
|
163
|
+
* A provider for caching the best route given an amount, quoteToken, tradeType
|
|
164
|
+
*/
|
|
165
|
+
routeCachingProvider?: IRouteCachingProvider;
|
|
166
|
+
/**
|
|
167
|
+
* A provider for getting token properties for special tokens like fee-on-transfer tokens.
|
|
168
|
+
*/
|
|
169
|
+
tokenPropertiesProvider?: ITokenPropertiesProvider;
|
|
170
|
+
/**
|
|
171
|
+
* A provider for computing the portion-related data for routes and quotes.
|
|
172
|
+
*/
|
|
173
|
+
portionProvider?: IPortionProvider;
|
|
174
|
+
/**
|
|
175
|
+
* All the supported v2 chains configuration
|
|
176
|
+
*/
|
|
177
|
+
v2Supported?: ChainId[];
|
|
178
|
+
/**
|
|
179
|
+
* All the supported ring swap v2 chains configuration
|
|
180
|
+
*/
|
|
181
|
+
ringFewV2Supported?: ChainId[];
|
|
182
|
+
/**
|
|
183
|
+
* All the supported v4 chains configuration
|
|
184
|
+
*/
|
|
185
|
+
v4Supported?: ChainId[];
|
|
186
|
+
/**
|
|
187
|
+
* All the supported mixed chains configuration
|
|
188
|
+
*/
|
|
189
|
+
mixedSupported?: ChainId[];
|
|
190
|
+
/**
|
|
191
|
+
* The v4 pool params to be used for the v4 pool provider.
|
|
192
|
+
* fee tiers, tickspacings, and hook addresses
|
|
193
|
+
*/
|
|
194
|
+
v4PoolParams?: Array<[number, number, string]>;
|
|
195
|
+
/**
|
|
196
|
+
* We want to rollout the cached routes cache invalidation carefully.
|
|
197
|
+
* Because a wrong fix might impact prod success rate and/or latency.
|
|
198
|
+
*/
|
|
199
|
+
cachedRoutesCacheInvalidationFixRolloutPercentage?: number;
|
|
200
|
+
};
|
|
201
|
+
export declare class MapWithLowerCaseKey<V> extends Map<string, V> {
|
|
202
|
+
set(key: string, value: V): this;
|
|
203
|
+
}
|
|
204
|
+
export declare class LowerCaseStringArray extends Array<string> {
|
|
205
|
+
constructor(...items: string[]);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Determines the pools that the algorithm will consider when finding the optimal swap.
|
|
209
|
+
*
|
|
210
|
+
* All pools on each protocol are filtered based on the heuristics specified here to generate
|
|
211
|
+
* the set of candidate pools. The Top N pools are taken by Total Value Locked (TVL).
|
|
212
|
+
*
|
|
213
|
+
* Higher values here result in more pools to explore which results in higher latency.
|
|
214
|
+
*/
|
|
215
|
+
export declare type ProtocolPoolSelection = {
|
|
216
|
+
/**
|
|
217
|
+
* The top N pools by TVL out of all pools on the protocol.
|
|
218
|
+
*/
|
|
219
|
+
topN: number;
|
|
220
|
+
/**
|
|
221
|
+
* The top N pools by TVL of pools that consist of tokenIn and tokenOut.
|
|
222
|
+
*/
|
|
223
|
+
topNDirectSwaps: number;
|
|
224
|
+
/**
|
|
225
|
+
* The top N pools by TVL of pools where one token is tokenIn and the
|
|
226
|
+
* top N pools by TVL of pools where one token is tokenOut tokenOut.
|
|
227
|
+
*/
|
|
228
|
+
topNTokenInOut: number;
|
|
229
|
+
/**
|
|
230
|
+
* Given the topNTokenInOut pools, gets the top N pools that involve the other token.
|
|
231
|
+
* E.g. for a WETH -> USDC swap, if topNTokenInOut found WETH -> DAI and WETH -> USDT,
|
|
232
|
+
* a value of 2 would find the top 2 pools that involve DAI and top 2 pools that involve USDT.
|
|
233
|
+
*/
|
|
234
|
+
topNSecondHop: number;
|
|
235
|
+
/**
|
|
236
|
+
* Given the topNTokenInOut pools and a token address,
|
|
237
|
+
* gets the top N pools that involve the other token.
|
|
238
|
+
* If token address is not on the list, we default to topNSecondHop.
|
|
239
|
+
* E.g. for a WETH -> USDC swap, if topNTokenInOut found WETH -> DAI and WETH -> USDT,
|
|
240
|
+
* and there's a mapping USDT => 4, but no mapping for DAI
|
|
241
|
+
* it would find the top 4 pools that involve USDT, and find the topNSecondHop pools that involve DAI
|
|
242
|
+
*/
|
|
243
|
+
topNSecondHopForTokenAddress?: MapWithLowerCaseKey<number>;
|
|
244
|
+
/**
|
|
245
|
+
* List of token addresses to avoid using as a second hop.
|
|
246
|
+
* There might be multiple reasons why we would like to avoid a specific token,
|
|
247
|
+
* but the specific reason that we are trying to solve is when the pool is not synced properly
|
|
248
|
+
* e.g. when the pool has a rebasing token that isn't syncing the pool on every rebase.
|
|
249
|
+
*/
|
|
250
|
+
tokensToAvoidOnSecondHops?: LowerCaseStringArray;
|
|
251
|
+
/**
|
|
252
|
+
* The top N pools for token in and token out that involve a token from a list of
|
|
253
|
+
* hardcoded 'base tokens'. These are standard tokens such as WETH, USDC, DAI, etc.
|
|
254
|
+
* This is similar to how the legacy routing algorithm used by Uniswap would select
|
|
255
|
+
* pools and is intended to make the new pool selection algorithm close to a superset
|
|
256
|
+
* of the old algorithm.
|
|
257
|
+
*/
|
|
258
|
+
topNWithEachBaseToken: number;
|
|
259
|
+
/**
|
|
260
|
+
* Given the topNWithEachBaseToken pools, takes the top N pools from the full list.
|
|
261
|
+
* E.g. for a WETH -> USDC swap, if topNWithEachBaseToken found WETH -0.05-> DAI,
|
|
262
|
+
* WETH -0.01-> DAI, WETH -0.05-> USDC, WETH -0.3-> USDC, a value of 2 would reduce
|
|
263
|
+
* this set to the top 2 pools from that full list.
|
|
264
|
+
*/
|
|
265
|
+
topNWithBaseToken: number;
|
|
266
|
+
};
|
|
267
|
+
export declare type AlphaRouterConfig = {
|
|
268
|
+
/**
|
|
269
|
+
* The block number to use for all on-chain data. If not provided, the router will
|
|
270
|
+
* use the latest block returned by the provider.
|
|
271
|
+
*/
|
|
272
|
+
blockNumber?: number | Promise<number>;
|
|
273
|
+
/**
|
|
274
|
+
* The protocols to consider when finding the optimal swap. If not provided all protocols
|
|
275
|
+
* will be used.
|
|
276
|
+
*/
|
|
277
|
+
protocols?: Protocol[];
|
|
278
|
+
/**
|
|
279
|
+
* The protocols-version pools to be excluded from the mixed routes.
|
|
280
|
+
*/
|
|
281
|
+
excludedProtocolsFromMixed?: Protocol[];
|
|
282
|
+
/**
|
|
283
|
+
* Config for selecting which pools to consider routing via on V2.
|
|
284
|
+
*/
|
|
285
|
+
v2PoolSelection: ProtocolPoolSelection;
|
|
286
|
+
/**
|
|
287
|
+
* Config for selecting which pools to consider routing via on V3.
|
|
288
|
+
*/
|
|
289
|
+
v3PoolSelection: ProtocolPoolSelection;
|
|
290
|
+
/**
|
|
291
|
+
* Config for selecting which pools to consider routing via on V4.
|
|
292
|
+
*/
|
|
293
|
+
v4PoolSelection: ProtocolPoolSelection;
|
|
294
|
+
/**
|
|
295
|
+
* For each route, the maximum number of hops to consider. More hops will increase latency of the algorithm.
|
|
296
|
+
*/
|
|
297
|
+
maxSwapsPerPath: number;
|
|
298
|
+
/**
|
|
299
|
+
* The maximum number of splits in the returned route. A higher maximum will increase latency of the algorithm.
|
|
300
|
+
*/
|
|
301
|
+
maxSplits: number;
|
|
302
|
+
/**
|
|
303
|
+
* The minimum number of splits in the returned route.
|
|
304
|
+
* This parameters should always be set to 1. It is only included for testing purposes.
|
|
305
|
+
*/
|
|
306
|
+
minSplits: number;
|
|
307
|
+
/**
|
|
308
|
+
* Forces the returned swap to route across all protocols.
|
|
309
|
+
* This parameter should always be false. It is only included for testing purposes.
|
|
310
|
+
*/
|
|
311
|
+
forceCrossProtocol: boolean;
|
|
312
|
+
/**
|
|
313
|
+
* Force the alpha router to choose a mixed route swap.
|
|
314
|
+
* Default will be falsy. It is only included for testing purposes.
|
|
315
|
+
*/
|
|
316
|
+
forceMixedRoutes?: boolean;
|
|
317
|
+
/**
|
|
318
|
+
* The minimum percentage of the input token to use for each route in a split route.
|
|
319
|
+
* All routes will have a multiple of this value. For example is distribution percentage is 5,
|
|
320
|
+
* a potential return swap would be:
|
|
321
|
+
*
|
|
322
|
+
* 5% of input => Route 1
|
|
323
|
+
* 55% of input => Route 2
|
|
324
|
+
* 40% of input => Route 3
|
|
325
|
+
*/
|
|
326
|
+
distributionPercent: number;
|
|
327
|
+
/**
|
|
328
|
+
* Flag to indicate whether to use the cached routes or not.
|
|
329
|
+
* By default, the cached routes will be used.
|
|
330
|
+
*/
|
|
331
|
+
useCachedRoutes?: boolean;
|
|
332
|
+
/**
|
|
333
|
+
* Flag to indicate whether to write to the cached routes or not.
|
|
334
|
+
* By default, the cached routes will be written to.
|
|
335
|
+
*/
|
|
336
|
+
writeToCachedRoutes?: boolean;
|
|
337
|
+
/**
|
|
338
|
+
* Flag to indicate whether to use the CachedRoutes in optimistic mode.
|
|
339
|
+
* Optimistic mode means that we will allow blocksToLive greater than 1.
|
|
340
|
+
*/
|
|
341
|
+
optimisticCachedRoutes?: boolean;
|
|
342
|
+
/**
|
|
343
|
+
* Debug param that helps to see the short-term latencies improvements without impacting the main path.
|
|
344
|
+
*/
|
|
345
|
+
debugRouting?: boolean;
|
|
346
|
+
/**
|
|
347
|
+
* Flag that allow us to override the cache mode.
|
|
348
|
+
*/
|
|
349
|
+
overwriteCacheMode?: CacheMode;
|
|
350
|
+
/**
|
|
351
|
+
* Flag for token properties provider to enable fetching fee-on-transfer tokens.
|
|
352
|
+
*/
|
|
353
|
+
enableFeeOnTransferFeeFetching?: boolean;
|
|
354
|
+
/**
|
|
355
|
+
* Tenderly natively support save simulation failures if failed,
|
|
356
|
+
* we need this as a pass-through flag to enable/disable this feature.
|
|
357
|
+
*/
|
|
358
|
+
saveTenderlySimulationIfFailed?: boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Include an additional response field specifying the swap gas estimation in terms of a specific gas token.
|
|
361
|
+
* This requires a suitable Native/GasToken pool to exist on V3. If one does not exist this field will return null.
|
|
362
|
+
*/
|
|
363
|
+
gasToken?: string;
|
|
364
|
+
/**
|
|
365
|
+
* The version of the universal router to use.
|
|
366
|
+
*/
|
|
367
|
+
universalRouterVersion?: UniversalRouterVersion;
|
|
368
|
+
/**
|
|
369
|
+
* pass in routing-api intent to align the intent between routing-api and SOR
|
|
370
|
+
*/
|
|
371
|
+
intent?: INTENT;
|
|
372
|
+
/**
|
|
373
|
+
* boolean flag to control whether we should enable mixed route that connects ETH <-> WETH
|
|
374
|
+
*/
|
|
375
|
+
shouldEnableMixedRouteEthWeth?: boolean;
|
|
376
|
+
/**
|
|
377
|
+
* hashed router ids of the cached route, if the online routing lambda uses the cached route to serve the quote
|
|
378
|
+
*/
|
|
379
|
+
cachedRoutesRouteIds?: string;
|
|
380
|
+
/**
|
|
381
|
+
* enable mixed route with UR1_2 version backward compatibility issue
|
|
382
|
+
*/
|
|
383
|
+
enableMixedRouteWithUR1_2?: boolean;
|
|
384
|
+
/**
|
|
385
|
+
* enable debug mode for async routing lambda
|
|
386
|
+
*/
|
|
387
|
+
enableDebug?: boolean;
|
|
388
|
+
/**
|
|
389
|
+
* pass in hooks options for hooks routing toggles from the frontend
|
|
390
|
+
*/
|
|
391
|
+
hooksOptions?: HooksOptions;
|
|
392
|
+
};
|
|
393
|
+
export declare class AlphaRouter implements IRouter<AlphaRouterConfig>, ISwapToRatio<AlphaRouterConfig, SwapAndAddConfig> {
|
|
394
|
+
protected chainId: ChainId;
|
|
395
|
+
protected provider: BaseProvider;
|
|
396
|
+
protected multicall2Provider: UniswapMulticallProvider;
|
|
397
|
+
protected ringFewV2Multicall2Provider: RingswapMulticallProvider;
|
|
398
|
+
protected v4SubgraphProvider: IV4SubgraphProvider;
|
|
399
|
+
protected v4PoolProvider: IV4PoolProvider;
|
|
400
|
+
protected v3SubgraphProvider: IV3SubgraphProvider;
|
|
401
|
+
protected v3PoolProvider: IV3PoolProvider;
|
|
402
|
+
protected onChainQuoteProvider: IOnChainQuoteProvider;
|
|
403
|
+
protected v2SubgraphProvider: IV2SubgraphProvider;
|
|
404
|
+
protected ringFewV2SubgraphProvider: IRingV2SubgraphProvider;
|
|
405
|
+
protected v2QuoteProvider: IV2QuoteProvider;
|
|
406
|
+
protected ringFewV2QuoteProvider: IRingV2QuoteProvider;
|
|
407
|
+
protected v2PoolProvider: IV2PoolProvider;
|
|
408
|
+
protected ringFewV2PoolProvider: IRingV2PoolProvider;
|
|
409
|
+
protected tokenProvider: ITokenProvider;
|
|
410
|
+
protected gasPriceProvider: IGasPriceProvider;
|
|
411
|
+
protected swapRouterProvider: ISwapRouterProvider;
|
|
412
|
+
protected v4GasModelFactory: IOnChainGasModelFactory<V4RouteWithValidQuote>;
|
|
413
|
+
protected uniswapFewV4GasModelFactory: IOnChainGasModelFactory<UniswapFewV4RouteWithValidQuote>;
|
|
414
|
+
protected v3GasModelFactory: IOnChainGasModelFactory<V3RouteWithValidQuote>;
|
|
415
|
+
protected uniswapFewV3GasModelFactory: IOnChainGasModelFactory<UniswapFewV3RouteWithValidQuote>;
|
|
416
|
+
protected v2GasModelFactory: IV2GasModelFactory;
|
|
417
|
+
protected ringFewV2GasModelFactory: IRingFewV2GasModelFactory;
|
|
418
|
+
protected mixedRouteGasModelFactory: IOnChainGasModelFactory<MixedRouteWithValidQuote>;
|
|
419
|
+
protected tokenValidatorProvider?: ITokenValidatorProvider;
|
|
420
|
+
protected blockedTokenListProvider?: ITokenListProvider;
|
|
421
|
+
protected l2GasDataProvider?: IL2GasDataProvider<ArbitrumGasData>;
|
|
422
|
+
protected simulator?: Simulator;
|
|
423
|
+
protected v2Quoter: V2Quoter;
|
|
424
|
+
protected ringFewV2Quoter: RingFewV2Quoter;
|
|
425
|
+
protected v3Quoter: V3Quoter;
|
|
426
|
+
protected uniswapFewV3Quoter: UniswapFewV3Quoter;
|
|
427
|
+
protected v4Quoter: V4Quoter;
|
|
428
|
+
protected uniswapFewV4Quoter: UniswapFewV4Quoter;
|
|
429
|
+
protected mixedQuoter: MixedQuoter;
|
|
430
|
+
protected routeCachingProvider?: IRouteCachingProvider;
|
|
431
|
+
protected tokenPropertiesProvider: ITokenPropertiesProvider;
|
|
432
|
+
protected portionProvider: IPortionProvider;
|
|
433
|
+
protected v2Supported?: ChainId[];
|
|
434
|
+
protected ringFewV2Supported?: ChainId[];
|
|
435
|
+
protected v4Supported?: ChainId[];
|
|
436
|
+
protected mixedSupported?: ChainId[];
|
|
437
|
+
protected v4PoolParams?: Array<[number, number, string]>;
|
|
438
|
+
protected cachedRoutesCacheInvalidationFixRolloutPercentage?: number;
|
|
439
|
+
protected shouldEnableMixedRouteEthWeth?: boolean;
|
|
440
|
+
constructor({ chainId, provider, multicall2Provider, ringFewV2Multicall2Provider, v4SubgraphProvider, v4PoolProvider, v3PoolProvider, onChainQuoteProvider, v2PoolProvider, ringFewV2PoolProvider, v2QuoteProvider, ringFewV2QuoteProvider, v2SubgraphProvider, ringFewV2SubgraphProvider, tokenProvider, blockedTokenListProvider, v3SubgraphProvider, gasPriceProvider, v4GasModelFactory, uniswapFewV4GasModelFactory, v3GasModelFactory, uniswapFewV3GasModelFactory, v2GasModelFactory, ringFewV2GasModelFactory, mixedRouteGasModelFactory, swapRouterProvider, tokenValidatorProvider, arbitrumGasDataProvider, simulator, routeCachingProvider, tokenPropertiesProvider, portionProvider, v2Supported, ringFewV2Supported, v4Supported, mixedSupported, v4PoolParams, cachedRoutesCacheInvalidationFixRolloutPercentage, }: AlphaRouterParams);
|
|
441
|
+
routeToRatio(token0Balance: CurrencyAmount, token1Balance: CurrencyAmount, position: Position, swapAndAddConfig: SwapAndAddConfig, swapAndAddOptions?: SwapAndAddOptions, routingConfig?: Partial<AlphaRouterConfig>): Promise<SwapToRatioResponse>;
|
|
442
|
+
/**
|
|
443
|
+
* @inheritdoc IRouter
|
|
444
|
+
*/
|
|
445
|
+
route(amount: CurrencyAmount, quoteCurrency: Currency, tradeType: TradeType, swapConfig?: SwapOptions, partialRoutingConfig?: Partial<AlphaRouterConfig>): Promise<SwapRoute | null>;
|
|
446
|
+
/**
|
|
447
|
+
* Performs the caching intention for the given simulation status and route.
|
|
448
|
+
*
|
|
449
|
+
* @param currencyIn the currency in
|
|
450
|
+
* @param currencyOut the currency out
|
|
451
|
+
* @param tradeType the trade type
|
|
452
|
+
* @param amount the amount
|
|
453
|
+
* @param protocols the protocols
|
|
454
|
+
* @param blockNumber the block number
|
|
455
|
+
* @param routingConfig the routing config
|
|
456
|
+
* @param simulationStatus the simulation status
|
|
457
|
+
* @param simulationRoute the simulation route
|
|
458
|
+
*/
|
|
459
|
+
protected performCachingIntention(currencyIn: Currency, currencyOut: Currency, tradeType: TradeType, amount: CurrencyAmount, protocols: Protocol[], blockNumber: number, routingConfig: AlphaRouterConfig, simulationStatus: SimulationStatus, simulationRoute: RouteWithValidQuote[]): Promise<void>;
|
|
460
|
+
/**
|
|
461
|
+
* @param simulationStatus the status of the simulation
|
|
462
|
+
* @returns true if the route should be cached, false otherwise
|
|
463
|
+
*/
|
|
464
|
+
protected shouldCacheRoute(simulationStatus: SimulationStatus): boolean;
|
|
465
|
+
private setCachedRoutesAndLog;
|
|
466
|
+
private getSwapRouteFromCache;
|
|
467
|
+
private getUniswapFewTokenSwapRouteFromCache;
|
|
468
|
+
private getSwapRouteFromChain;
|
|
469
|
+
private getUniswapFewTokenSwapRouteFromChain;
|
|
470
|
+
private tradeTypeStr;
|
|
471
|
+
private tokenPairSymbolTradeTypeChainId;
|
|
472
|
+
private determineCurrencyInOutFromTradeType;
|
|
473
|
+
private getGasPriceWei;
|
|
474
|
+
private getGasModels;
|
|
475
|
+
private getAmountDistribution;
|
|
476
|
+
private buildSwapAndAddMethodParameters;
|
|
477
|
+
private emitPoolSelectionMetrics;
|
|
478
|
+
private calculateOptimalRatio;
|
|
479
|
+
userHasSufficientBalance(fromAddress: string, tradeType: TradeType, amount: CurrencyAmount, quote: CurrencyAmount): Promise<boolean>;
|
|
480
|
+
private absoluteValue;
|
|
481
|
+
private getBlockNumberPromise;
|
|
482
|
+
static isAllowedToEnterCachedRoutes(intent?: INTENT, hooksOptions?: HooksOptions, swapRouter?: boolean): boolean;
|
|
483
|
+
}
|