@fanx-protocol/smart-order-router 0.0.1
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 +273 -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 +89 -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 +88 -0
- package/build/main/providers/caching/route/route-caching-provider.js +72 -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 +37 -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 +108 -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 +19 -0
- package/build/main/providers/eth-estimate-gas-provider.js +94 -0
- package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
- package/build/main/providers/eth-gas-station-info-gas-price-provider.js +36 -0
- package/build/main/providers/gas-price-provider.d.ts +10 -0
- package/build/main/providers/gas-price-provider.js +10 -0
- package/build/main/providers/index.d.ts +38 -0
- package/build/main/providers/index.js +55 -0
- package/build/main/providers/legacy-gas-price-provider.d.ts +7 -0
- package/build/main/providers/legacy-gas-price-provider.js +18 -0
- package/build/main/providers/multicall-provider.d.ts +83 -0
- package/build/main/providers/multicall-provider.js +15 -0
- package/build/main/providers/multicall-uniswap-provider.d.ts +37 -0
- package/build/main/providers/multicall-uniswap-provider.js +164 -0
- package/build/main/providers/on-chain-gas-price-provider.d.ts +19 -0
- package/build/main/providers/on-chain-gas-price-provider.js +36 -0
- package/build/main/providers/on-chain-quote-provider.d.ts +258 -0
- package/build/main/providers/on-chain-quote-provider.js +693 -0
- package/build/main/providers/pool-provider.d.ts +44 -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 +43 -0
- package/build/main/providers/simulation-provider.js +136 -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 +51 -0
- package/build/main/providers/subgraph-provider.js +120 -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/token-fee-fetcher.d.ts +31 -0
- package/build/main/providers/token-fee-fetcher.js +108 -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 +38 -0
- package/build/main/providers/token-provider.js +175 -0
- package/build/main/providers/token-validator-provider.d.ts +42 -0
- package/build/main/providers/token-validator-provider.js +99 -0
- package/build/main/providers/uri-subgraph-provider.d.ts +20 -0
- package/build/main/providers/uri-subgraph-provider.js +65 -0
- package/build/main/providers/v2/caching-pool-provider.d.ts +33 -0
- package/build/main/providers/v2/caching-pool-provider.js +89 -0
- package/build/main/providers/v2/caching-subgraph-provider.d.ts +19 -0
- package/build/main/providers/v2/caching-subgraph-provider.js +24 -0
- package/build/main/providers/v2/pool-provider.d.ts +63 -0
- package/build/main/providers/v2/pool-provider.js +138 -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 +75 -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 +36 -0
- package/build/main/providers/v2/subgraph-provider.js +174 -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 +89 -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 +46 -0
- package/build/main/providers/v3/subgraph-provider.js +54 -0
- package/build/main/providers/v3/uri-subgraph-provider.d.ts +4 -0
- package/build/main/providers/v3/uri-subgraph-provider.js +8 -0
- package/build/main/routers/alpha-router/alpha-router.d.ts +347 -0
- package/build/main/routers/alpha-router/alpha-router.js +1219 -0
- package/build/main/routers/alpha-router/config.d.ts +4 -0
- package/build/main/routers/alpha-router/config.js +40 -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 +167 -0
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +166 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +22 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.js +534 -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 +9 -0
- package/build/main/routers/alpha-router/functions/compute-all-routes.js +104 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +100 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.js +1008 -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 +90 -0
- package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +106 -0
- package/build/main/routers/alpha-router/gas-models/gas-model.js +68 -0
- package/build/main/routers/alpha-router/gas-models/index.d.ts +2 -0
- package/build/main/routers/alpha-router/gas-models/index.js +19 -0
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +161 -0
- package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +15 -0
- package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +185 -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/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 +76 -0
- package/build/main/routers/alpha-router/quoters/base-quoter.js +76 -0
- package/build/main/routers/alpha-router/quoters/index.d.ts +5 -0
- package/build/main/routers/alpha-router/quoters/index.js +22 -0
- package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +28 -0
- package/build/main/routers/alpha-router/quoters/mixed-quoter.js +154 -0
- package/build/main/routers/alpha-router/quoters/model/index.d.ts +1 -0
- package/build/main/routers/alpha-router/quoters/model/index.js +18 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js +3 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js +3 -0
- package/build/main/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
- package/build/main/routers/alpha-router/quoters/model/results/index.js +19 -0
- package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
- package/build/main/routers/alpha-router/quoters/v2-quoter.js +140 -0
- package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
- package/build/main/routers/alpha-router/quoters/v3-quoter.js +117 -0
- package/build/main/routers/index.d.ts +3 -0
- package/build/main/routers/index.js +20 -0
- package/build/main/routers/router.d.ts +186 -0
- package/build/main/routers/router.js +55 -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/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/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 +24 -0
- package/build/main/util/addresses.js +76 -0
- package/build/main/util/amounts.d.ts +9 -0
- package/build/main/util/amounts.js +73 -0
- package/build/main/util/chains.d.ts +31 -0
- package/build/main/util/chains.js +97 -0
- package/build/main/util/gas-factory-helpers.d.ts +33 -0
- package/build/main/util/gas-factory-helpers.js +463 -0
- package/build/main/util/index.d.ts +7 -0
- package/build/main/util/index.js +24 -0
- package/build/main/util/l2FeeChains.d.ts +2 -0
- package/build/main/util/l2FeeChains.js +13 -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 +183 -0
- package/build/main/util/metric.d.ts +48 -0
- package/build/main/util/metric.js +59 -0
- package/build/main/util/onchainQuoteProviderConfigs.d.ts +42 -0
- package/build/main/util/onchainQuoteProviderConfigs.js +74 -0
- package/build/main/util/protocols.d.ts +2 -0
- package/build/main/util/protocols.js +20 -0
- package/build/main/util/routes.d.ts +11 -0
- package/build/main/util/routes.js +149 -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 +85 -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 +88 -0
- package/build/module/providers/caching/route/route-caching-provider.js +68 -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 +33 -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 +101 -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 +19 -0
- package/build/module/providers/eth-estimate-gas-provider.js +102 -0
- package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +19 -0
- package/build/module/providers/eth-gas-station-info-gas-price-provider.js +29 -0
- package/build/module/providers/gas-price-provider.d.ts +10 -0
- package/build/module/providers/gas-price-provider.js +6 -0
- package/build/module/providers/index.d.ts +38 -0
- package/build/module/providers/index.js +39 -0
- package/build/module/providers/legacy-gas-price-provider.d.ts +7 -0
- package/build/module/providers/legacy-gas-price-provider.js +14 -0
- package/build/module/providers/multicall-provider.d.ts +83 -0
- package/build/module/providers/multicall-provider.js +11 -0
- package/build/module/providers/multicall-uniswap-provider.d.ts +37 -0
- package/build/module/providers/multicall-uniswap-provider.js +157 -0
- package/build/module/providers/on-chain-gas-price-provider.d.ts +19 -0
- package/build/module/providers/on-chain-gas-price-provider.js +32 -0
- package/build/module/providers/on-chain-quote-provider.d.ts +258 -0
- package/build/module/providers/on-chain-quote-provider.js +687 -0
- package/build/module/providers/pool-provider.d.ts +44 -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 +43 -0
- package/build/module/providers/simulation-provider.js +138 -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 +51 -0
- package/build/module/providers/subgraph-provider.js +113 -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/token-fee-fetcher.d.ts +31 -0
- package/build/module/providers/token-fee-fetcher.js +104 -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 +38 -0
- package/build/module/providers/token-provider.js +164 -0
- package/build/module/providers/token-validator-provider.d.ts +42 -0
- package/build/module/providers/token-validator-provider.js +92 -0
- package/build/module/providers/uri-subgraph-provider.d.ts +20 -0
- package/build/module/providers/uri-subgraph-provider.js +58 -0
- package/build/module/providers/v2/caching-pool-provider.d.ts +33 -0
- package/build/module/providers/v2/caching-pool-provider.js +85 -0
- package/build/module/providers/v2/caching-subgraph-provider.d.ts +19 -0
- package/build/module/providers/v2/caching-subgraph-provider.js +20 -0
- package/build/module/providers/v2/pool-provider.d.ts +63 -0
- package/build/module/providers/v2/pool-provider.js +131 -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 +68 -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 +36 -0
- package/build/module/providers/v2/subgraph-provider.js +167 -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 +82 -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 +46 -0
- package/build/module/providers/v3/subgraph-provider.js +50 -0
- package/build/module/providers/v3/uri-subgraph-provider.d.ts +4 -0
- package/build/module/providers/v3/uri-subgraph-provider.js +4 -0
- package/build/module/routers/alpha-router/alpha-router.d.ts +347 -0
- package/build/module/routers/alpha-router/alpha-router.js +1229 -0
- package/build/module/routers/alpha-router/config.d.ts +4 -0
- package/build/module/routers/alpha-router/config.js +36 -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 +167 -0
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +157 -0
- package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +22 -0
- package/build/module/routers/alpha-router/functions/best-swap-route.js +526 -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 +9 -0
- package/build/module/routers/alpha-router/functions/compute-all-routes.js +97 -0
- package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +100 -0
- package/build/module/routers/alpha-router/functions/get-candidate-pools.js +998 -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 +79 -0
- package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +106 -0
- package/build/module/routers/alpha-router/gas-models/gas-model.js +102 -0
- package/build/module/routers/alpha-router/gas-models/index.d.ts +2 -0
- package/build/module/routers/alpha-router/gas-models/index.js +3 -0
- package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +24 -0
- package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +154 -0
- package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.d.ts +15 -0
- package/build/module/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js +181 -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/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 +76 -0
- package/build/module/routers/alpha-router/quoters/base-quoter.js +69 -0
- package/build/module/routers/alpha-router/quoters/index.d.ts +5 -0
- package/build/module/routers/alpha-router/quoters/index.js +6 -0
- package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +28 -0
- package/build/module/routers/alpha-router/quoters/mixed-quoter.js +152 -0
- package/build/module/routers/alpha-router/quoters/model/index.d.ts +1 -0
- package/build/module/routers/alpha-router/quoters/model/index.js +2 -0
- package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.d.ts +6 -0
- package/build/module/routers/alpha-router/quoters/model/results/get-quotes-result.js +2 -0
- package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +6 -0
- package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.js +2 -0
- package/build/module/routers/alpha-router/quoters/model/results/index.d.ts +2 -0
- package/build/module/routers/alpha-router/quoters/model/results/index.js +3 -0
- package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +24 -0
- package/build/module/routers/alpha-router/quoters/v2-quoter.js +137 -0
- package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +19 -0
- package/build/module/routers/alpha-router/quoters/v3-quoter.js +110 -0
- package/build/module/routers/index.d.ts +3 -0
- package/build/module/routers/index.js +4 -0
- package/build/module/routers/router.d.ts +186 -0
- package/build/module/routers/router.js +47 -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/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/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 +24 -0
- package/build/module/util/addresses.js +69 -0
- package/build/module/util/amounts.d.ts +9 -0
- package/build/module/util/amounts.js +62 -0
- package/build/module/util/chains.d.ts +31 -0
- package/build/module/util/chains.js +89 -0
- package/build/module/util/gas-factory-helpers.d.ts +33 -0
- package/build/module/util/gas-factory-helpers.js +446 -0
- package/build/module/util/index.d.ts +7 -0
- package/build/module/util/index.js +8 -0
- package/build/module/util/l2FeeChains.d.ts +2 -0
- package/build/module/util/l2FeeChains.js +10 -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 +181 -0
- package/build/module/util/metric.d.ts +48 -0
- package/build/module/util/metric.js +53 -0
- package/build/module/util/onchainQuoteProviderConfigs.d.ts +42 -0
- package/build/module/util/onchainQuoteProviderConfigs.js +76 -0
- package/build/module/util/protocols.d.ts +2 -0
- package/build/module/util/protocols.js +16 -0
- package/build/module/util/routes.d.ts +11 -0
- package/build/module/util/routes.js +137 -0
- package/build/module/util/unsupported-tokens.d.ts +37 -0
- package/build/module/util/unsupported-tokens.js +1116 -0
- package/package.json +133 -0
|
@@ -0,0 +1,117 @@
|
|
|
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.V3Quoter = void 0;
|
|
7
|
+
const router_sdk_1 = require("@fanx-protocol/router-sdk");
|
|
8
|
+
const sdk_core_1 = require("@fanx-protocol/sdk-core");
|
|
9
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
10
|
+
const providers_1 = require("../../../providers");
|
|
11
|
+
const util_1 = require("../../../util");
|
|
12
|
+
const entities_1 = require("../entities");
|
|
13
|
+
const compute_all_routes_1 = require("../functions/compute-all-routes");
|
|
14
|
+
const base_quoter_1 = require("./base-quoter");
|
|
15
|
+
class V3Quoter extends base_quoter_1.BaseQuoter {
|
|
16
|
+
constructor(v3SubgraphProvider, v3PoolProvider, onChainQuoteProvider, tokenProvider, chainId, blockedTokenListProvider, tokenValidatorProvider) {
|
|
17
|
+
super(tokenProvider, chainId, router_sdk_1.Protocol.V3, blockedTokenListProvider, tokenValidatorProvider);
|
|
18
|
+
this.v3SubgraphProvider = v3SubgraphProvider;
|
|
19
|
+
this.v3PoolProvider = v3PoolProvider;
|
|
20
|
+
this.onChainQuoteProvider = onChainQuoteProvider;
|
|
21
|
+
}
|
|
22
|
+
async getRoutes(tokenIn, tokenOut, v3CandidatePools, _tradeType, routingConfig) {
|
|
23
|
+
const beforeGetRoutes = Date.now();
|
|
24
|
+
// Fetch all the pools that we will consider routing via. There are thousands
|
|
25
|
+
// of pools, so we filter them to a set of candidate pools that we expect will
|
|
26
|
+
// result in good prices.
|
|
27
|
+
const { poolAccessor, candidatePools } = v3CandidatePools;
|
|
28
|
+
const poolsRaw = poolAccessor.getAllPools();
|
|
29
|
+
// Drop any pools that contain fee on transfer tokens (not supported by v3) or have issues with being transferred.
|
|
30
|
+
const pools = await this.applyTokenValidatorToPools(poolsRaw, (token, tokenValidation) => {
|
|
31
|
+
// If there is no available validation result we assume the token is fine.
|
|
32
|
+
if (!tokenValidation) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
// Only filters out *intermediate* pools that involve tokens that we detect
|
|
36
|
+
// cant be transferred. This prevents us trying to route through tokens that may
|
|
37
|
+
// not be transferrable, but allows users to still swap those tokens if they
|
|
38
|
+
// specify.
|
|
39
|
+
//
|
|
40
|
+
if (tokenValidation == providers_1.TokenValidationResult.STF &&
|
|
41
|
+
(token.equals(tokenIn) || token.equals(tokenOut))) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return (tokenValidation == providers_1.TokenValidationResult.FOT ||
|
|
45
|
+
tokenValidation == providers_1.TokenValidationResult.STF);
|
|
46
|
+
});
|
|
47
|
+
// Given all our candidate pools, compute all the possible ways to route from tokenIn to tokenOut.
|
|
48
|
+
const { maxSwapsPerPath } = routingConfig;
|
|
49
|
+
const routes = (0, compute_all_routes_1.computeAllV3Routes)(tokenIn, tokenOut, pools, maxSwapsPerPath);
|
|
50
|
+
util_1.metric.putMetric('V3GetRoutesLoad', Date.now() - beforeGetRoutes, util_1.MetricLoggerUnit.Milliseconds);
|
|
51
|
+
return {
|
|
52
|
+
routes,
|
|
53
|
+
candidatePools,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async getQuotes(routes, amounts, percents, quoteToken, tradeType, routingConfig, candidatePools, gasModel) {
|
|
57
|
+
const beforeGetQuotes = Date.now();
|
|
58
|
+
util_1.log.info('Starting to get V3 quotes');
|
|
59
|
+
if (gasModel === undefined) {
|
|
60
|
+
throw new Error('GasModel for V3RouteWithValidQuote is required to getQuotes');
|
|
61
|
+
}
|
|
62
|
+
if (routes.length == 0) {
|
|
63
|
+
return { routesWithValidQuotes: [], candidatePools };
|
|
64
|
+
}
|
|
65
|
+
// For all our routes, and all the fractional amounts, fetch quotes on-chain.
|
|
66
|
+
const quoteFn = tradeType == sdk_core_1.TradeType.EXACT_INPUT
|
|
67
|
+
? this.onChainQuoteProvider.getQuotesManyExactIn.bind(this.onChainQuoteProvider)
|
|
68
|
+
: this.onChainQuoteProvider.getQuotesManyExactOut.bind(this.onChainQuoteProvider);
|
|
69
|
+
const beforeQuotes = Date.now();
|
|
70
|
+
util_1.log.info(`Getting quotes for V3 for ${routes.length} routes with ${amounts.length} amounts per route.`);
|
|
71
|
+
const { routesWithQuotes } = await quoteFn(amounts, routes, routingConfig);
|
|
72
|
+
util_1.metric.putMetric('V3QuotesLoad', Date.now() - beforeQuotes, util_1.MetricLoggerUnit.Milliseconds);
|
|
73
|
+
util_1.metric.putMetric('V3QuotesFetched', (0, lodash_1.default)(routesWithQuotes)
|
|
74
|
+
.map(([, quotes]) => quotes.length)
|
|
75
|
+
.sum(), util_1.MetricLoggerUnit.Count);
|
|
76
|
+
const routesWithValidQuotes = [];
|
|
77
|
+
for (const routeWithQuote of routesWithQuotes) {
|
|
78
|
+
const [route, quotes] = routeWithQuote;
|
|
79
|
+
for (let i = 0; i < quotes.length; i++) {
|
|
80
|
+
const percent = percents[i];
|
|
81
|
+
const amountQuote = quotes[i];
|
|
82
|
+
const { quote, amount, sqrtPriceX96AfterList, initializedTicksCrossedList, gasEstimate, } = amountQuote;
|
|
83
|
+
if (!quote ||
|
|
84
|
+
!sqrtPriceX96AfterList ||
|
|
85
|
+
!initializedTicksCrossedList ||
|
|
86
|
+
!gasEstimate) {
|
|
87
|
+
util_1.log.debug({
|
|
88
|
+
route: (0, util_1.routeToString)(route),
|
|
89
|
+
amountQuote,
|
|
90
|
+
}, 'Dropping a null V3 quote for route.');
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
const routeWithValidQuote = new entities_1.V3RouteWithValidQuote({
|
|
94
|
+
route,
|
|
95
|
+
rawQuote: quote,
|
|
96
|
+
amount,
|
|
97
|
+
percent,
|
|
98
|
+
sqrtPriceX96AfterList,
|
|
99
|
+
initializedTicksCrossedList,
|
|
100
|
+
quoterGasEstimate: gasEstimate,
|
|
101
|
+
gasModel,
|
|
102
|
+
quoteToken,
|
|
103
|
+
tradeType,
|
|
104
|
+
v3PoolProvider: this.v3PoolProvider,
|
|
105
|
+
});
|
|
106
|
+
routesWithValidQuotes.push(routeWithValidQuote);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
util_1.metric.putMetric('V3GetQuotesLoad', Date.now() - beforeGetQuotes, util_1.MetricLoggerUnit.Milliseconds);
|
|
110
|
+
return {
|
|
111
|
+
routesWithValidQuotes,
|
|
112
|
+
candidatePools,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.V3Quoter = V3Quoter;
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjMtcXVvdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL3F1b3RlcnMvdjMtcXVvdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUFxRDtBQUNyRCxzREFBOEU7QUFDOUUsb0RBQXVCO0FBRXZCLGtEQVE0QjtBQUM1Qix3Q0FNdUI7QUFHdkIsMENBQW9EO0FBQ3BELHdFQUFxRTtBQU9yRSwrQ0FBMkM7QUFJM0MsTUFBYSxRQUFTLFNBQVEsd0JBQTRDO0lBS3hFLFlBQ0Usa0JBQXVDLEVBQ3ZDLGNBQStCLEVBQy9CLG9CQUEyQyxFQUMzQyxhQUE2QixFQUM3QixPQUFnQixFQUNoQix3QkFBNkMsRUFDN0Msc0JBQWdEO1FBRWhELEtBQUssQ0FDSCxhQUFhLEVBQ2IsT0FBTyxFQUNQLHFCQUFRLENBQUMsRUFBRSxFQUNYLHdCQUF3QixFQUN4QixzQkFBc0IsQ0FDdkIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7SUFDbkQsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTLENBQ3ZCLE9BQWMsRUFDZCxRQUFlLEVBQ2YsZ0JBQWtDLEVBQ2xDLFVBQXFCLEVBQ3JCLGFBQWdDO1FBRWhDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQyw2RUFBNkU7UUFDN0UsOEVBQThFO1FBQzlFLHlCQUF5QjtRQUN6QixNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxHQUFHLGdCQUFnQixDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU1QyxrSEFBa0g7UUFDbEgsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQ2pELFFBQVEsRUFDUixDQUNFLEtBQWUsRUFDZixlQUFrRCxFQUN6QyxFQUFFO1lBQ1gsMEVBQTBFO1lBQzFFLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCwyRUFBMkU7WUFDM0UsZ0ZBQWdGO1lBQ2hGLDRFQUE0RTtZQUM1RSxXQUFXO1lBQ1gsRUFBRTtZQUNGLElBQ0UsZUFBZSxJQUFJLGlDQUFxQixDQUFDLEdBQUc7Z0JBQzVDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQ2pEO2dCQUNBLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxPQUFPLENBQ0wsZUFBZSxJQUFJLGlDQUFxQixDQUFDLEdBQUc7Z0JBQzVDLGVBQWUsSUFBSSxpQ0FBcUIsQ0FBQyxHQUFHLENBQzdDLENBQUM7UUFDSixDQUFDLENBQ0YsQ0FBQztRQUVGLGtHQUFrRztRQUNsRyxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUEsdUNBQWtCLEVBQy9CLE9BQU8sRUFDUCxRQUFRLEVBQ1IsS0FBSyxFQUNMLGVBQWUsQ0FDaEIsQ0FBQztRQUVGLGFBQU0sQ0FBQyxTQUFTLENBQ2QsaUJBQWlCLEVBQ2pCLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxlQUFlLEVBQzVCLHVCQUFnQixDQUFDLFlBQVksQ0FDOUIsQ0FBQztRQUVGLE9BQU87WUFDTCxNQUFNO1lBQ04sY0FBYztTQUNmLENBQUM7SUFDSixDQUFDO0lBRWUsS0FBSyxDQUFDLFNBQVMsQ0FDN0IsTUFBaUIsRUFDakIsT0FBeUIsRUFDekIsUUFBa0IsRUFDbEIsVUFBaUIsRUFDakIsU0FBb0IsRUFDcEIsYUFBZ0MsRUFDaEMsY0FBa0QsRUFDbEQsUUFBMkM7UUFFM0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ25DLFVBQUcsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV0QyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FDYiw2REFBNkQsQ0FDOUQsQ0FBQztTQUNIO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxDQUFDO1NBQ3REO1FBRUQsNkVBQTZFO1FBQzdFLE1BQU0sT0FBTyxHQUNYLFNBQVMsSUFBSSxvQkFBUyxDQUFDLFdBQVc7WUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FDMUI7WUFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUMxQixDQUFDO1FBRVIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLFVBQUcsQ0FBQyxJQUFJLENBQ04sNkJBQTZCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixPQUFPLENBQUMsTUFBTSxxQkFBcUIsQ0FDOUYsQ0FBQztRQUVGLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUN4QyxPQUFPLEVBQ1AsTUFBTSxFQUNOLGFBQWEsQ0FDZCxDQUFDO1FBRUYsYUFBTSxDQUFDLFNBQVMsQ0FDZCxjQUFjLEVBQ2QsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFDekIsdUJBQWdCLENBQUMsWUFBWSxDQUM5QixDQUFDO1FBRUYsYUFBTSxDQUFDLFNBQVMsQ0FDZCxpQkFBaUIsRUFDakIsSUFBQSxnQkFBQyxFQUFDLGdCQUFnQixDQUFDO2FBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNsQyxHQUFHLEVBQUUsRUFDUix1QkFBZ0IsQ0FBQyxLQUFLLENBQ3ZCLENBQUM7UUFFRixNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUVqQyxLQUFLLE1BQU0sY0FBYyxJQUFJLGdCQUFnQixFQUFFO1lBQzdDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDO1lBRXZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFFLENBQUM7Z0JBQzdCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQztnQkFDL0IsTUFBTSxFQUNKLEtBQUssRUFDTCxNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLDJCQUEyQixFQUMzQixXQUFXLEdBQ1osR0FBRyxXQUFXLENBQUM7Z0JBRWhCLElBQ0UsQ0FBQyxLQUFLO29CQUNOLENBQUMscUJBQXFCO29CQUN0QixDQUFDLDJCQUEyQjtvQkFDNUIsQ0FBQyxXQUFXLEVBQ1o7b0JBQ0EsVUFBRyxDQUFDLEtBQUssQ0FDUDt3QkFDRSxLQUFLLEVBQUUsSUFBQSxvQkFBYSxFQUFDLEtBQUssQ0FBQzt3QkFDM0IsV0FBVztxQkFDWixFQUNELHFDQUFxQyxDQUN0QyxDQUFDO29CQUNGLFNBQVM7aUJBQ1Y7Z0JBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGdDQUFxQixDQUFDO29CQUNwRCxLQUFLO29CQUNMLFFBQVEsRUFBRSxLQUFLO29CQUNmLE1BQU07b0JBQ04sT0FBTztvQkFDUCxxQkFBcUI7b0JBQ3JCLDJCQUEyQjtvQkFDM0IsaUJBQWlCLEVBQUUsV0FBVztvQkFDOUIsUUFBUTtvQkFDUixVQUFVO29CQUNWLFNBQVM7b0JBQ1QsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2lCQUNwQyxDQUFDLENBQUM7Z0JBRUgscUJBQXFCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDakQ7U0FDRjtRQUVELGFBQU0sQ0FBQyxTQUFTLENBQ2QsaUJBQWlCLEVBQ2pCLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxlQUFlLEVBQzVCLHVCQUFnQixDQUFDLFlBQVksQ0FDOUIsQ0FBQztRQUVGLE9BQU87WUFDTCxxQkFBcUI7WUFDckIsY0FBYztTQUNmLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuTkQsNEJBbU5DIn0=
|
|
@@ -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("../util/metric"), exports);
|
|
18
|
+
__exportStar(require("./alpha-router"), exports);
|
|
19
|
+
__exportStar(require("./router"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQStCO0FBQy9CLGlEQUErQjtBQUMvQiwyQ0FBeUIifQ==
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
+
import { CondensedAddLiquidityOptions, MixedRouteSDK, Protocol, Trade } from '@fanx-protocol/router-sdk';
|
|
3
|
+
import { Currency, Fraction, Percent, Token, TradeType } from '@fanx-protocol/sdk-core';
|
|
4
|
+
import { SwapOptions as UniversalRouterSwapOptions, UniversalRouterVersion } from '@fanx-protocol/universal-router-sdk';
|
|
5
|
+
import { Route as V2RouteRaw } from '@fanx-protocol/v2-sdk';
|
|
6
|
+
import { MethodParameters as SDKMethodParameters, Pool, Position, Route as V3RouteRaw } from '@fanx-protocol/v3-sdk';
|
|
7
|
+
import { SimulationStatus } from '../providers';
|
|
8
|
+
import { CurrencyAmount } from '../util/amounts';
|
|
9
|
+
import { RouteWithValidQuote } from './alpha-router';
|
|
10
|
+
export declare class V3Route extends V3RouteRaw<Token, Token> {
|
|
11
|
+
protocol: Protocol.V3;
|
|
12
|
+
}
|
|
13
|
+
export declare class V2Route extends V2RouteRaw<Token, Token> {
|
|
14
|
+
protocol: Protocol.V2;
|
|
15
|
+
}
|
|
16
|
+
export declare class MixedRoute extends MixedRouteSDK<Currency, Currency> {
|
|
17
|
+
protocol: Protocol.MIXED;
|
|
18
|
+
}
|
|
19
|
+
export declare type SupportedRoutes = /* V4Route | */ V3Route | V2Route | MixedRoute;
|
|
20
|
+
export declare type SwapRoute = {
|
|
21
|
+
/**
|
|
22
|
+
* The quote for the swap.
|
|
23
|
+
* For EXACT_IN swaps this will be an amount of token out.
|
|
24
|
+
* For EXACT_OUT this will be an amount of token in.
|
|
25
|
+
*/
|
|
26
|
+
quote: CurrencyAmount;
|
|
27
|
+
/**
|
|
28
|
+
* The quote adjusted for the estimated gas used by the swap.
|
|
29
|
+
* This is computed by estimating the amount of gas used by the swap, converting
|
|
30
|
+
* this estimate to be in terms of the quote token, and subtracting that from the quote.
|
|
31
|
+
* i.e. quoteGasAdjusted = quote - estimatedGasUsedQuoteToken
|
|
32
|
+
*/
|
|
33
|
+
quoteGasAdjusted: CurrencyAmount;
|
|
34
|
+
/**
|
|
35
|
+
* The quote adjusted for the estimated gas used by the swap as well as the portion amount, if applicable.
|
|
36
|
+
* This is computed by estimating the amount of gas used by the swap, converting
|
|
37
|
+
* this estimate to be in terms of the quote token, and subtracting that from the quote.
|
|
38
|
+
* Then it uses the IPortionProvider.getPortionAdjustedQuote method to adjust the quote for the portion amount.
|
|
39
|
+
* i.e. quoteGasAdjusted = quote - estimatedGasUsedQuoteToken - portionAmount
|
|
40
|
+
*/
|
|
41
|
+
quoteGasAndPortionAdjusted?: CurrencyAmount;
|
|
42
|
+
/**
|
|
43
|
+
* The estimate of the gas used by the swap.
|
|
44
|
+
*/
|
|
45
|
+
estimatedGasUsed: BigNumber;
|
|
46
|
+
/**
|
|
47
|
+
* The estimate of the gas used by the swap in terms of the quote token.
|
|
48
|
+
*/
|
|
49
|
+
estimatedGasUsedQuoteToken: CurrencyAmount;
|
|
50
|
+
/**
|
|
51
|
+
* The estimate of the gas used by the swap in USD.
|
|
52
|
+
*/
|
|
53
|
+
estimatedGasUsedUSD: CurrencyAmount;
|
|
54
|
+
/**
|
|
55
|
+
* The estimate of the gas used by the swap in terms of the gas token if specified.
|
|
56
|
+
* will be undefined if no gas token is specified in the AlphaRouter config
|
|
57
|
+
*/
|
|
58
|
+
estimatedGasUsedGasToken?: CurrencyAmount;
|
|
59
|
+
gasPriceWei: BigNumber;
|
|
60
|
+
/**
|
|
61
|
+
* The Trade object representing the swap.
|
|
62
|
+
*/
|
|
63
|
+
trade: Trade<Currency, Currency, TradeType>;
|
|
64
|
+
/**
|
|
65
|
+
* The routes of the swap.
|
|
66
|
+
*/
|
|
67
|
+
route: RouteWithValidQuote[];
|
|
68
|
+
/**
|
|
69
|
+
* The block number used when computing the swap.
|
|
70
|
+
*/
|
|
71
|
+
blockNumber: BigNumber;
|
|
72
|
+
/**
|
|
73
|
+
* The calldata to execute the swap. Only returned if swapConfig was provided when calling the router.
|
|
74
|
+
*/
|
|
75
|
+
methodParameters?: MethodParameters;
|
|
76
|
+
/**
|
|
77
|
+
* Enum that is returned if simulation was requested
|
|
78
|
+
* 0 if simulation was not attempted
|
|
79
|
+
* 1 if simulation was attempted and failed
|
|
80
|
+
* 2 if simulation was successful (simulated gas estimates are returned)
|
|
81
|
+
*/
|
|
82
|
+
simulationStatus?: SimulationStatus;
|
|
83
|
+
/**
|
|
84
|
+
* Used internally within routing-api to see how many route requests
|
|
85
|
+
* hit the cached routes. This is used further down the line for future perf optimizations.
|
|
86
|
+
*/
|
|
87
|
+
hitsCachedRoute?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Portion amount either echoed from upstream routing-api for exact out or calculated from portionBips for exact in
|
|
90
|
+
*/
|
|
91
|
+
portionAmount?: CurrencyAmount;
|
|
92
|
+
};
|
|
93
|
+
export declare type MethodParameters = SDKMethodParameters & {
|
|
94
|
+
to: string;
|
|
95
|
+
};
|
|
96
|
+
export declare type SwapToRatioRoute = SwapRoute & {
|
|
97
|
+
optimalRatio: Fraction;
|
|
98
|
+
postSwapTargetPool: Pool;
|
|
99
|
+
};
|
|
100
|
+
export declare enum SwapToRatioStatus {
|
|
101
|
+
SUCCESS = 1,
|
|
102
|
+
NO_ROUTE_FOUND = 2,
|
|
103
|
+
NO_SWAP_NEEDED = 3
|
|
104
|
+
}
|
|
105
|
+
export declare type SwapToRatioSuccess = {
|
|
106
|
+
status: SwapToRatioStatus.SUCCESS;
|
|
107
|
+
result: SwapToRatioRoute;
|
|
108
|
+
};
|
|
109
|
+
export declare type SwapToRatioFail = {
|
|
110
|
+
status: SwapToRatioStatus.NO_ROUTE_FOUND;
|
|
111
|
+
error: string;
|
|
112
|
+
};
|
|
113
|
+
export declare type SwapToRatioNoSwapNeeded = {
|
|
114
|
+
status: SwapToRatioStatus.NO_SWAP_NEEDED;
|
|
115
|
+
};
|
|
116
|
+
export declare type SwapToRatioResponse = SwapToRatioSuccess | SwapToRatioFail | SwapToRatioNoSwapNeeded;
|
|
117
|
+
export declare enum SwapType {
|
|
118
|
+
UNIVERSAL_ROUTER = 0,
|
|
119
|
+
SWAP_ROUTER_02 = 1
|
|
120
|
+
}
|
|
121
|
+
export declare type SwapOptionsUniversalRouter = UniversalRouterSwapOptions & {
|
|
122
|
+
type: SwapType.UNIVERSAL_ROUTER;
|
|
123
|
+
version: UniversalRouterVersion;
|
|
124
|
+
simulate?: {
|
|
125
|
+
fromAddress: string;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
export declare type SwapOptionsSwapRouter02 = {
|
|
129
|
+
type: SwapType.SWAP_ROUTER_02;
|
|
130
|
+
recipient: string;
|
|
131
|
+
slippageTolerance: Percent;
|
|
132
|
+
deadline: number;
|
|
133
|
+
simulate?: {
|
|
134
|
+
fromAddress: string;
|
|
135
|
+
};
|
|
136
|
+
inputTokenPermit?: {
|
|
137
|
+
v: 0 | 1 | 27 | 28;
|
|
138
|
+
r: string;
|
|
139
|
+
s: string;
|
|
140
|
+
} & ({
|
|
141
|
+
amount: string;
|
|
142
|
+
deadline: string;
|
|
143
|
+
} | {
|
|
144
|
+
nonce: string;
|
|
145
|
+
expiry: string;
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
export declare type SwapOptions = SwapOptionsUniversalRouter | SwapOptionsSwapRouter02;
|
|
149
|
+
export declare type SwapAndAddConfig = {
|
|
150
|
+
maxIterations: number;
|
|
151
|
+
ratioErrorTolerance: Fraction;
|
|
152
|
+
};
|
|
153
|
+
export declare type SwapAndAddOptions = {
|
|
154
|
+
swapOptions: SwapOptionsSwapRouter02;
|
|
155
|
+
addLiquidityOptions: CondensedAddLiquidityOptions;
|
|
156
|
+
};
|
|
157
|
+
export declare type SwapAndAddParameters = {
|
|
158
|
+
initialBalanceTokenIn: CurrencyAmount;
|
|
159
|
+
initialBalanceTokenOut: CurrencyAmount;
|
|
160
|
+
preLiquidityPosition: Position;
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Provides functionality for finding optimal swap routes on the Uniswap protocol.
|
|
164
|
+
*
|
|
165
|
+
* @export
|
|
166
|
+
* @abstract
|
|
167
|
+
* @class IRouter
|
|
168
|
+
*/
|
|
169
|
+
export declare abstract class IRouter<RoutingConfig> {
|
|
170
|
+
/**
|
|
171
|
+
* Finds the optimal way to swap tokens, and returns the route as well as a quote for the swap.
|
|
172
|
+
* Considers split routes, multi-hop swaps, and gas costs.
|
|
173
|
+
*
|
|
174
|
+
* @abstract
|
|
175
|
+
* @param amount The amount specified by the user. For EXACT_IN swaps, this is the input token amount. For EXACT_OUT swaps, this is the output token.
|
|
176
|
+
* @param quoteCurrency The currency of the token we are returning a quote for. For EXACT_IN swaps, this is the output token. For EXACT_OUT, this is the input token.
|
|
177
|
+
* @param tradeType The type of the trade, either exact in or exact out.
|
|
178
|
+
* @param [swapOptions] Optional config for executing the swap. If provided, calldata for executing the swap will also be returned.
|
|
179
|
+
* @param [partialRoutingConfig] Optional config for finding the optimal route.
|
|
180
|
+
* @returns The swap route.
|
|
181
|
+
*/
|
|
182
|
+
abstract route(amount: CurrencyAmount, quoteCurrency: Currency, swapType: TradeType, swapOptions?: SwapOptions, partialRoutingConfig?: Partial<RoutingConfig>): Promise<SwapRoute | null>;
|
|
183
|
+
}
|
|
184
|
+
export declare abstract class ISwapToRatio<RoutingConfig, SwapAndAddConfig> {
|
|
185
|
+
abstract routeToRatio(token0Balance: CurrencyAmount, token1Balance: CurrencyAmount, position: Position, swapAndAddConfig: SwapAndAddConfig, swapAndAddOptions?: SwapAndAddOptions, routingConfig?: RoutingConfig): Promise<SwapToRatioResponse>;
|
|
186
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ISwapToRatio = exports.IRouter = exports.SwapType = exports.SwapToRatioStatus = exports.MixedRoute = exports.V2Route = exports.V3Route = void 0;
|
|
4
|
+
const router_sdk_1 = require("@fanx-protocol/router-sdk");
|
|
5
|
+
const v2_sdk_1 = require("@fanx-protocol/v2-sdk");
|
|
6
|
+
const v3_sdk_1 = require("@fanx-protocol/v3-sdk");
|
|
7
|
+
// export class V4Route extends V4RouteRaw<Currency, Currency> {
|
|
8
|
+
// protocol: Protocol.V4 = Protocol.V4;
|
|
9
|
+
// }
|
|
10
|
+
class V3Route extends v3_sdk_1.Route {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.protocol = router_sdk_1.Protocol.V3;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.V3Route = V3Route;
|
|
17
|
+
class V2Route extends v2_sdk_1.Route {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.protocol = router_sdk_1.Protocol.V2;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.V2Route = V2Route;
|
|
24
|
+
class MixedRoute extends router_sdk_1.MixedRouteSDK {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
this.protocol = router_sdk_1.Protocol.MIXED;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.MixedRoute = MixedRoute;
|
|
31
|
+
var SwapToRatioStatus;
|
|
32
|
+
(function (SwapToRatioStatus) {
|
|
33
|
+
SwapToRatioStatus[SwapToRatioStatus["SUCCESS"] = 1] = "SUCCESS";
|
|
34
|
+
SwapToRatioStatus[SwapToRatioStatus["NO_ROUTE_FOUND"] = 2] = "NO_ROUTE_FOUND";
|
|
35
|
+
SwapToRatioStatus[SwapToRatioStatus["NO_SWAP_NEEDED"] = 3] = "NO_SWAP_NEEDED";
|
|
36
|
+
})(SwapToRatioStatus = exports.SwapToRatioStatus || (exports.SwapToRatioStatus = {}));
|
|
37
|
+
var SwapType;
|
|
38
|
+
(function (SwapType) {
|
|
39
|
+
SwapType[SwapType["UNIVERSAL_ROUTER"] = 0] = "UNIVERSAL_ROUTER";
|
|
40
|
+
SwapType[SwapType["SWAP_ROUTER_02"] = 1] = "SWAP_ROUTER_02";
|
|
41
|
+
})(SwapType = exports.SwapType || (exports.SwapType = {}));
|
|
42
|
+
/**
|
|
43
|
+
* Provides functionality for finding optimal swap routes on the Uniswap protocol.
|
|
44
|
+
*
|
|
45
|
+
* @export
|
|
46
|
+
* @abstract
|
|
47
|
+
* @class IRouter
|
|
48
|
+
*/
|
|
49
|
+
class IRouter {
|
|
50
|
+
}
|
|
51
|
+
exports.IRouter = IRouter;
|
|
52
|
+
class ISwapToRatio {
|
|
53
|
+
}
|
|
54
|
+
exports.ISwapToRatio = ISwapToRatio;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRlcnMvcm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBEQUttQztBQVluQyxrREFBNEQ7QUFDNUQsa0RBSytCO0FBUS9CLGdFQUFnRTtBQUNoRSx5Q0FBeUM7QUFDekMsSUFBSTtBQUNKLE1BQWEsT0FBUSxTQUFRLGNBQXdCO0lBQXJEOztRQUNFLGFBQVEsR0FBZ0IscUJBQVEsQ0FBQyxFQUFFLENBQUM7SUFDdEMsQ0FBQztDQUFBO0FBRkQsMEJBRUM7QUFDRCxNQUFhLE9BQVEsU0FBUSxjQUF3QjtJQUFyRDs7UUFDRSxhQUFRLEdBQWdCLHFCQUFRLENBQUMsRUFBRSxDQUFDO0lBQ3RDLENBQUM7Q0FBQTtBQUZELDBCQUVDO0FBQ0QsTUFBYSxVQUFXLFNBQVEsMEJBQWlDO0lBQWpFOztRQUNFLGFBQVEsR0FBbUIscUJBQVEsQ0FBQyxLQUFLLENBQUM7SUFDNUMsQ0FBQztDQUFBO0FBRkQsZ0NBRUM7QUF1RkQsSUFBWSxpQkFJWDtBQUpELFdBQVksaUJBQWlCO0lBQzNCLCtEQUFXLENBQUE7SUFDWCw2RUFBa0IsQ0FBQTtJQUNsQiw2RUFBa0IsQ0FBQTtBQUNwQixDQUFDLEVBSlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFJNUI7QUFxQkQsSUFBWSxRQUdYO0FBSEQsV0FBWSxRQUFRO0lBQ2xCLCtEQUFnQixDQUFBO0lBQ2hCLDJEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUhXLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBR25CO0FBMkREOzs7Ozs7R0FNRztBQUNILE1BQXNCLE9BQU87Q0FvQjVCO0FBcEJELDBCQW9CQztBQUVELE1BQXNCLFlBQVk7Q0FTakM7QUFURCxvQ0FTQyJ9
|