@synthra-swap/smart-order-router 3.15.33 → 3.16.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/README.md +21 -21
- package/build/main/providers/caching/route/model/cached-route.d.ts +5 -5
- package/build/main/providers/caching/route/model/cached-routes.d.ts +5 -5
- package/build/main/providers/caching/route/model/cached-routes.js +1 -1
- package/build/main/providers/caching/route/route-caching-provider.d.ts +2 -2
- package/build/main/providers/caching/route/route-caching-provider.js +3 -3
- package/build/main/providers/caching-gas-provider.d.ts +1 -1
- package/build/main/providers/caching-token-list-provider.d.ts +2 -2
- package/build/main/providers/caching-token-list-provider.js +3 -3
- package/build/main/providers/caching-token-provider.d.ts +1 -1
- package/build/main/providers/caching-token-provider.js +34 -34
- package/build/main/providers/eth-estimate-gas-provider.d.ts +2 -4
- package/build/main/providers/eth-estimate-gas-provider.js +4 -5
- package/build/main/providers/index.d.ts +1 -10
- package/build/main/providers/index.js +2 -11
- package/build/main/providers/multicall-uniswap-provider.d.ts +1 -1
- package/build/main/providers/multicall-uniswap-provider.js +2 -2
- package/build/main/providers/on-chain-gas-price-provider.d.ts +1 -1
- package/build/main/providers/on-chain-gas-price-provider.js +5 -5
- package/build/main/providers/on-chain-quote-provider.d.ts +11 -19
- package/build/main/providers/on-chain-quote-provider.js +18 -39
- package/build/main/providers/simulation-provider.d.ts +1 -1
- package/build/main/providers/simulation-provider.js +6 -6
- package/build/main/providers/swap-router-provider.d.ts +2 -2
- package/build/main/providers/tenderly-simulation-provider.d.ts +2 -4
- package/build/main/providers/tenderly-simulation-provider.js +13 -14
- package/build/main/providers/token-provider.d.ts +1 -1
- package/build/main/providers/token-provider.js +112 -112
- package/build/main/providers/token-validator-provider.d.ts +1 -1
- package/build/main/providers/uri-subgraph-provider.d.ts +3 -5
- package/build/main/providers/uri-subgraph-provider.js +2 -3
- package/build/main/providers/v3/caching-pool-provider.d.ts +2 -2
- package/build/main/providers/v3/caching-subgraph-provider.d.ts +1 -1
- package/build/main/providers/v3/gas-data-provider.d.ts +1 -1
- package/build/main/providers/v3/gas-data-provider.js +3 -3
- package/build/main/providers/v3/pool-provider.d.ts +2 -2
- package/build/main/providers/v3/pool-provider.js +15 -7
- package/build/main/providers/v3/static-subgraph-provider.d.ts +1 -1
- package/build/main/providers/v3/static-subgraph-provider.js +48 -47
- package/build/main/providers/v3/subgraph-provider-with-fallback.d.ts +1 -1
- package/build/main/providers/v3/subgraph-provider.d.ts +1 -3
- package/build/main/providers/v3/subgraph-provider.js +12 -14
- package/build/main/routers/alpha-router/alpha-router.d.ts +17 -54
- package/build/main/routers/alpha-router/alpha-router.js +92 -170
- package/build/main/routers/alpha-router/config.d.ts +1 -2
- package/build/main/routers/alpha-router/config.js +11 -39
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +5 -93
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +5 -93
- package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +1 -1
- package/build/main/routers/alpha-router/functions/best-swap-route.js +12 -39
- package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +1 -1
- package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js +3 -3
- package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +4 -7
- package/build/main/routers/alpha-router/functions/compute-all-routes.js +2 -28
- package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +3 -39
- package/build/main/routers/alpha-router/functions/get-candidate-pools.js +28 -433
- package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +8 -29
- package/build/main/routers/alpha-router/gas-models/gas-model.js +28 -39
- package/build/main/routers/alpha-router/gas-models/v3/gas-costs.d.ts +1 -1
- package/build/main/routers/alpha-router/gas-models/v3/gas-costs.js +75 -69
- package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +1 -1
- package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +41 -42
- package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +5 -6
- package/build/main/routers/alpha-router/quoters/base-quoter.js +1 -1
- package/build/main/routers/alpha-router/quoters/index.d.ts +1 -3
- package/build/main/routers/alpha-router/quoters/index.js +2 -4
- package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +2 -2
- package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +1 -1
- package/build/main/routers/alpha-router/quoters/v3-quoter.js +3 -3
- package/build/main/routers/index.d.ts +1 -1
- package/build/main/routers/index.js +2 -2
- package/build/main/routers/router.d.ts +4 -11
- package/build/main/routers/router.js +5 -20
- package/build/main/routers/synthra-router/config.d.ts +5 -0
- package/build/main/routers/synthra-router/config.js +30 -0
- package/build/main/routers/synthra-router/index.d.ts +3 -0
- package/build/main/routers/{legacy-router → synthra-router}/index.js +4 -2
- package/build/main/routers/synthra-router/synthra-router.d.ts +31 -0
- package/build/main/routers/synthra-router/synthra-router.js +437 -0
- package/build/main/routers/synthra-router/types.d.ts +158 -0
- package/build/main/routers/synthra-router/types.js +3 -0
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/main/types/v3/factories/{IUniswapV3PoolState__factory.d.ts → ISynthraV3PoolState__factory.d.ts} +4 -4
- package/build/main/types/v3/factories/{IUniswapV3PoolState__factory.js → ISynthraV3PoolState__factory.js} +5 -5
- package/build/main/types/v3/factories/{UniswapInterfaceMulticall__factory.d.ts → SynthraInterfaceMulticall__factory.d.ts} +7 -7
- package/build/main/types/v3/factories/{UniswapInterfaceMulticall__factory.js → SynthraInterfaceMulticall__factory.js} +8 -8
- package/build/main/util/addresses.d.ts +1 -4
- package/build/main/util/addresses.js +29 -53
- package/build/main/util/amounts.d.ts +3 -3
- package/build/main/util/amounts.js +12 -12
- package/build/main/util/chains.d.ts +2 -31
- package/build/main/util/chains.js +83 -511
- package/build/main/util/gas-factory-helpers.d.ts +8 -11
- package/build/main/util/gas-factory-helpers.js +57 -103
- package/build/main/util/index.d.ts +0 -1
- package/build/main/util/index.js +1 -2
- package/build/main/util/methodParameters.d.ts +2 -2
- package/build/main/util/methodParameters.js +10 -57
- package/build/main/util/router-sdk.d.ts +21 -0
- package/build/main/util/router-sdk.js +24 -0
- package/build/main/util/routes.d.ts +4 -5
- package/build/main/util/routes.js +9 -19
- package/build/main/util/token-list.d.ts +28 -0
- package/build/main/util/token-list.js +14 -0
- package/build/module/providers/caching/route/model/cached-route.d.ts +5 -5
- package/build/module/providers/caching/route/model/cached-routes.d.ts +5 -5
- package/build/module/providers/caching/route/model/cached-routes.js +1 -1
- package/build/module/providers/caching/route/route-caching-provider.d.ts +2 -2
- package/build/module/providers/caching/route/route-caching-provider.js +1 -1
- package/build/module/providers/caching-gas-provider.d.ts +1 -1
- package/build/module/providers/caching-token-list-provider.d.ts +2 -2
- package/build/module/providers/caching-token-list-provider.js +2 -2
- package/build/module/providers/caching-token-provider.d.ts +1 -1
- package/build/module/providers/caching-token-provider.js +1 -1
- package/build/module/providers/eth-estimate-gas-provider.d.ts +2 -4
- package/build/module/providers/eth-estimate-gas-provider.js +4 -5
- package/build/module/providers/index.d.ts +1 -10
- package/build/module/providers/index.js +2 -11
- package/build/module/providers/multicall-uniswap-provider.d.ts +1 -1
- package/build/module/providers/multicall-uniswap-provider.js +2 -2
- package/build/module/providers/on-chain-gas-price-provider.d.ts +1 -1
- package/build/module/providers/on-chain-gas-price-provider.js +1 -1
- package/build/module/providers/on-chain-quote-provider.d.ts +11 -19
- package/build/module/providers/on-chain-quote-provider.js +17 -38
- package/build/module/providers/simulation-provider.d.ts +1 -1
- package/build/module/providers/simulation-provider.js +3 -3
- package/build/module/providers/swap-router-provider.d.ts +2 -2
- package/build/module/providers/tenderly-simulation-provider.d.ts +2 -4
- package/build/module/providers/tenderly-simulation-provider.js +6 -7
- package/build/module/providers/token-provider.d.ts +1 -1
- package/build/module/providers/token-provider.js +3 -3
- package/build/module/providers/token-validator-provider.d.ts +1 -1
- package/build/module/providers/uri-subgraph-provider.d.ts +3 -5
- package/build/module/providers/uri-subgraph-provider.js +2 -3
- package/build/module/providers/v3/caching-pool-provider.d.ts +2 -2
- package/build/module/providers/v3/caching-subgraph-provider.d.ts +1 -1
- package/build/module/providers/v3/gas-data-provider.d.ts +1 -1
- package/build/module/providers/v3/gas-data-provider.js +1 -1
- package/build/module/providers/v3/pool-provider.d.ts +2 -2
- package/build/module/providers/v3/pool-provider.js +13 -5
- package/build/module/providers/v3/static-subgraph-provider.d.ts +1 -1
- package/build/module/providers/v3/static-subgraph-provider.js +5 -4
- package/build/module/providers/v3/subgraph-provider-with-fallback.d.ts +1 -1
- package/build/module/providers/v3/subgraph-provider.d.ts +1 -3
- package/build/module/providers/v3/subgraph-provider.js +2 -3
- package/build/module/routers/alpha-router/alpha-router.d.ts +17 -54
- package/build/module/routers/alpha-router/alpha-router.js +74 -145
- package/build/module/routers/alpha-router/config.d.ts +1 -2
- package/build/module/routers/alpha-router/config.js +2 -30
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +5 -93
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +3 -89
- package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +1 -1
- package/build/module/routers/alpha-router/functions/best-swap-route.js +8 -35
- package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.d.ts +1 -1
- package/build/module/routers/alpha-router/functions/calculate-ratio-amount-in.js +1 -1
- package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +4 -7
- package/build/module/routers/alpha-router/functions/compute-all-routes.js +2 -26
- package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +3 -39
- package/build/module/routers/alpha-router/functions/get-candidate-pools.js +5 -418
- package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +8 -29
- package/build/module/routers/alpha-router/gas-models/gas-model.js +7 -18
- package/build/module/routers/alpha-router/gas-models/v3/gas-costs.d.ts +1 -1
- package/build/module/routers/alpha-router/gas-models/v3/gas-costs.js +8 -2
- package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.d.ts +1 -1
- package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +27 -28
- package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +5 -6
- package/build/module/routers/alpha-router/quoters/base-quoter.js +1 -1
- package/build/module/routers/alpha-router/quoters/index.d.ts +1 -3
- package/build/module/routers/alpha-router/quoters/index.js +2 -4
- package/build/module/routers/alpha-router/quoters/model/results/get-routes-result.d.ts +2 -2
- package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +1 -1
- package/build/module/routers/alpha-router/quoters/v3-quoter.js +1 -1
- package/build/module/routers/index.d.ts +1 -1
- package/build/module/routers/index.js +2 -2
- package/build/module/routers/router.d.ts +4 -11
- package/build/module/routers/router.js +3 -16
- package/build/module/routers/synthra-router/config.d.ts +5 -0
- package/build/module/routers/synthra-router/config.js +27 -0
- package/build/module/routers/synthra-router/index.d.ts +3 -0
- package/build/module/routers/synthra-router/index.js +4 -0
- package/build/module/routers/synthra-router/synthra-router.d.ts +31 -0
- package/build/module/routers/synthra-router/synthra-router.js +447 -0
- package/build/module/routers/synthra-router/types.d.ts +158 -0
- package/build/module/routers/synthra-router/types.js +2 -0
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/build/module/types/v3/factories/{IUniswapV3PoolState__factory.d.ts → ISynthraV3PoolState__factory.d.ts} +4 -4
- package/build/module/types/v3/factories/{IUniswapV3PoolState__factory.js → ISynthraV3PoolState__factory.js} +3 -3
- package/build/module/types/v3/factories/{UniswapInterfaceMulticall__factory.d.ts → SynthraInterfaceMulticall__factory.d.ts} +7 -7
- package/build/module/types/v3/factories/{UniswapInterfaceMulticall__factory.js → SynthraInterfaceMulticall__factory.js} +6 -6
- package/build/module/util/addresses.d.ts +1 -4
- package/build/module/util/addresses.js +7 -82
- package/build/module/util/amounts.d.ts +3 -3
- package/build/module/util/amounts.js +3 -3
- package/build/module/util/chains.d.ts +2 -31
- package/build/module/util/chains.js +3 -435
- package/build/module/util/gas-factory-helpers.d.ts +8 -11
- package/build/module/util/gas-factory-helpers.js +31 -76
- package/build/module/util/index.d.ts +0 -1
- package/build/module/util/index.js +1 -2
- package/build/module/util/methodParameters.d.ts +2 -2
- package/build/module/util/methodParameters.js +7 -54
- package/build/module/util/router-sdk.d.ts +21 -0
- package/build/module/util/router-sdk.js +19 -0
- package/build/module/util/routes.d.ts +4 -5
- package/build/module/util/routes.js +8 -18
- package/build/module/util/token-list.d.ts +28 -0
- package/build/module/util/token-list.js +11 -0
- package/package.json +13 -26
- package/build/main/providers/eth-gas-station-info-gas-price-provider.d.ts +0 -19
- package/build/main/providers/eth-gas-station-info-gas-price-provider.js +0 -37
- package/build/main/providers/v2/caching-pool-provider.d.ts +0 -33
- package/build/main/providers/v2/caching-pool-provider.js +0 -88
- package/build/main/providers/v2/caching-subgraph-provider.d.ts +0 -23
- package/build/main/providers/v2/caching-subgraph-provider.js +0 -34
- package/build/main/providers/v2/pool-provider.d.ts +0 -59
- package/build/main/providers/v2/pool-provider.js +0 -111
- package/build/main/providers/v2/quote-provider.d.ts +0 -33
- package/build/main/providers/v2/quote-provider.js +0 -91
- package/build/main/providers/v2/static-subgraph-provider.d.ts +0 -19
- package/build/main/providers/v2/static-subgraph-provider.js +0 -97
- package/build/main/providers/v2/subgraph-provider-with-fallback.d.ts +0 -19
- package/build/main/providers/v2/subgraph-provider-with-fallback.js +0 -35
- package/build/main/providers/v2/subgraph-provider.d.ts +0 -33
- package/build/main/providers/v2/subgraph-provider.js +0 -134
- package/build/main/providers/v2/uri-subgraph-provider.d.ts +0 -4
- package/build/main/providers/v2/uri-subgraph-provider.js +0 -8
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +0 -25
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +0 -175
- package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +0 -29
- package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +0 -167
- package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +0 -20
- package/build/main/routers/alpha-router/quoters/mixed-quoter.js +0 -130
- package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +0 -21
- package/build/main/routers/alpha-router/quoters/v2-quoter.js +0 -122
- package/build/main/routers/legacy-router/bases.d.ts +0 -183
- package/build/main/routers/legacy-router/bases.js +0 -81
- package/build/main/routers/legacy-router/index.d.ts +0 -1
- package/build/main/routers/legacy-router/legacy-router.d.ts +0 -41
- package/build/main/routers/legacy-router/legacy-router.js +0 -289
- package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +0 -41
- package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js +0 -156
- package/build/main/types/v2/commons.d.ts +0 -16
- package/build/main/types/v2/commons.js +0 -6
- package/build/main/types/v2/factories/IUniswapV2Pair__factory.d.ts +0 -35
- package/build/main/types/v2/factories/IUniswapV2Pair__factory.js +0 -671
- package/build/main/util/protocols.d.ts +0 -2
- package/build/main/util/protocols.js +0 -18
- package/build/main/util/unsupported-tokens.d.ts +0 -37
- package/build/main/util/unsupported-tokens.js +0 -1119
- package/build/module/providers/eth-gas-station-info-gas-price-provider.d.ts +0 -19
- package/build/module/providers/eth-gas-station-info-gas-price-provider.js +0 -30
- package/build/module/providers/v2/caching-pool-provider.d.ts +0 -33
- package/build/module/providers/v2/caching-pool-provider.js +0 -81
- package/build/module/providers/v2/caching-subgraph-provider.d.ts +0 -23
- package/build/module/providers/v2/caching-subgraph-provider.js +0 -30
- package/build/module/providers/v2/pool-provider.d.ts +0 -59
- package/build/module/providers/v2/pool-provider.js +0 -104
- package/build/module/providers/v2/quote-provider.d.ts +0 -33
- package/build/module/providers/v2/quote-provider.js +0 -87
- package/build/module/providers/v2/static-subgraph-provider.d.ts +0 -19
- package/build/module/providers/v2/static-subgraph-provider.js +0 -90
- package/build/module/providers/v2/subgraph-provider-with-fallback.d.ts +0 -19
- package/build/module/providers/v2/subgraph-provider-with-fallback.js +0 -31
- package/build/module/providers/v2/subgraph-provider.d.ts +0 -33
- package/build/module/providers/v2/subgraph-provider.js +0 -135
- package/build/module/providers/v2/uri-subgraph-provider.d.ts +0 -4
- package/build/module/providers/v2/uri-subgraph-provider.js +0 -4
- package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.d.ts +0 -25
- package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +0 -168
- package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.d.ts +0 -29
- package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +0 -160
- package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +0 -20
- package/build/module/routers/alpha-router/quoters/mixed-quoter.js +0 -123
- package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +0 -21
- package/build/module/routers/alpha-router/quoters/v2-quoter.js +0 -115
- package/build/module/routers/legacy-router/bases.d.ts +0 -183
- package/build/module/routers/legacy-router/bases.js +0 -87
- package/build/module/routers/legacy-router/index.d.ts +0 -1
- package/build/module/routers/legacy-router/index.js +0 -2
- package/build/module/routers/legacy-router/legacy-router.d.ts +0 -41
- package/build/module/routers/legacy-router/legacy-router.js +0 -290
- package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.d.ts +0 -41
- package/build/module/types/other/factories/IMixedRouteQuoterV1__factory.js +0 -152
- package/build/module/types/v2/commons.d.ts +0 -16
- package/build/module/types/v2/commons.js +0 -5
- package/build/module/types/v2/factories/IUniswapV2Pair__factory.d.ts +0 -35
- package/build/module/types/v2/factories/IUniswapV2Pair__factory.js +0 -667
- package/build/module/util/protocols.d.ts +0 -2
- package/build/module/util/protocols.js +0 -14
- package/build/module/util/unsupported-tokens.d.ts +0 -37
- package/build/module/util/unsupported-tokens.js +0 -1116
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ChainId, Token, TradeType } from '@synthra-swap/sdk-core';
|
|
2
|
-
import { IOnChainQuoteProvider, ITokenListProvider, ITokenProvider, ITokenValidatorProvider, IV2PoolProvider, IV2SubgraphProvider, IV3PoolProvider, IV3SubgraphProvider } from '../../../providers';
|
|
3
|
-
import { CurrencyAmount } from '../../../util';
|
|
4
|
-
import { MixedRoute } from '../../router';
|
|
5
|
-
import { AlphaRouterConfig } from '../alpha-router';
|
|
6
|
-
import { MixedRouteWithValidQuote } from '../entities';
|
|
7
|
-
import { CandidatePoolsBySelectionCriteria } from '../functions/get-candidate-pools';
|
|
8
|
-
import { IGasModel } from '../gas-models';
|
|
9
|
-
import { BaseQuoter } from './base-quoter';
|
|
10
|
-
import { GetQuotesResult, GetRoutesResult } from './model';
|
|
11
|
-
export declare class MixedQuoter extends BaseQuoter<MixedRoute> {
|
|
12
|
-
protected v3SubgraphProvider: IV3SubgraphProvider;
|
|
13
|
-
protected v3PoolProvider: IV3PoolProvider;
|
|
14
|
-
protected v2SubgraphProvider: IV2SubgraphProvider;
|
|
15
|
-
protected v2PoolProvider: IV2PoolProvider;
|
|
16
|
-
protected onChainQuoteProvider: IOnChainQuoteProvider;
|
|
17
|
-
constructor(v3SubgraphProvider: IV3SubgraphProvider, v3PoolProvider: IV3PoolProvider, v2SubgraphProvider: IV2SubgraphProvider, v2PoolProvider: IV2PoolProvider, onChainQuoteProvider: IOnChainQuoteProvider, tokenProvider: ITokenProvider, chainId: ChainId, blockedTokenListProvider?: ITokenListProvider, tokenValidatorProvider?: ITokenValidatorProvider);
|
|
18
|
-
protected getRoutes(tokenIn: Token, tokenOut: Token, tradeType: TradeType, routingConfig: AlphaRouterConfig): Promise<GetRoutesResult<MixedRoute>>;
|
|
19
|
-
getQuotes(routes: MixedRoute[], amounts: CurrencyAmount[], percents: number[], quoteToken: Token, tradeType: TradeType, routingConfig: AlphaRouterConfig, candidatePools?: CandidatePoolsBySelectionCriteria, gasModel?: IGasModel<MixedRouteWithValidQuote>): Promise<GetQuotesResult>;
|
|
20
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { TradeType } from '@synthra-swap/sdk-core';
|
|
2
|
-
import _ from 'lodash';
|
|
3
|
-
import { TokenValidationResult, } from '../../../providers';
|
|
4
|
-
import { log, metric, MetricLoggerUnit, routeToString, } from '../../../util';
|
|
5
|
-
import { MixedRouteWithValidQuote } from '../entities';
|
|
6
|
-
import { computeAllMixedRoutes } from '../functions/compute-all-routes';
|
|
7
|
-
import { getMixedRouteCandidatePools, } from '../functions/get-candidate-pools';
|
|
8
|
-
import { BaseQuoter } from './base-quoter';
|
|
9
|
-
export class MixedQuoter extends BaseQuoter {
|
|
10
|
-
constructor(v3SubgraphProvider, v3PoolProvider, v2SubgraphProvider, v2PoolProvider, onChainQuoteProvider, tokenProvider, chainId, blockedTokenListProvider, tokenValidatorProvider) {
|
|
11
|
-
super(tokenProvider, chainId, blockedTokenListProvider, tokenValidatorProvider);
|
|
12
|
-
this.v3SubgraphProvider = v3SubgraphProvider;
|
|
13
|
-
this.v3PoolProvider = v3PoolProvider;
|
|
14
|
-
this.v2SubgraphProvider = v2SubgraphProvider;
|
|
15
|
-
this.v2PoolProvider = v2PoolProvider;
|
|
16
|
-
this.onChainQuoteProvider = onChainQuoteProvider;
|
|
17
|
-
}
|
|
18
|
-
async getRoutes(tokenIn, tokenOut, tradeType, routingConfig) {
|
|
19
|
-
if (tradeType != TradeType.EXACT_INPUT) {
|
|
20
|
-
throw new Error('Mixed route quotes are not supported for EXACT_OUTPUT');
|
|
21
|
-
}
|
|
22
|
-
const { V2poolAccessor, V3poolAccessor, candidatePools: mixedRouteCandidatePools, } = await getMixedRouteCandidatePools({
|
|
23
|
-
tokenIn,
|
|
24
|
-
tokenOut,
|
|
25
|
-
tokenProvider: this.tokenProvider,
|
|
26
|
-
blockedTokenListProvider: this.blockedTokenListProvider,
|
|
27
|
-
v3poolProvider: this.v3PoolProvider,
|
|
28
|
-
v2poolProvider: this.v2PoolProvider,
|
|
29
|
-
routeType: tradeType,
|
|
30
|
-
v3subgraphProvider: this.v3SubgraphProvider,
|
|
31
|
-
v2subgraphProvider: this.v2SubgraphProvider,
|
|
32
|
-
routingConfig,
|
|
33
|
-
chainId: this.chainId,
|
|
34
|
-
});
|
|
35
|
-
const V3poolsRaw = V3poolAccessor.getAllPools();
|
|
36
|
-
const V2poolsRaw = V2poolAccessor.getAllPools();
|
|
37
|
-
const poolsRaw = [...V3poolsRaw, ...V2poolsRaw];
|
|
38
|
-
const candidatePools = mixedRouteCandidatePools;
|
|
39
|
-
// Drop any pools that contain fee on transfer tokens (not supported by v3) or have issues with being transferred.
|
|
40
|
-
const pools = await this.applyTokenValidatorToPools(poolsRaw, (token, tokenValidation) => {
|
|
41
|
-
// If there is no available validation result we assume the token is fine.
|
|
42
|
-
if (!tokenValidation) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
// Only filters out *intermediate* pools that involve tokens that we detect
|
|
46
|
-
// cant be transferred. This prevents us trying to route through tokens that may
|
|
47
|
-
// not be transferrable, but allows users to still swap those tokens if they
|
|
48
|
-
// specify.
|
|
49
|
-
//
|
|
50
|
-
if (tokenValidation == TokenValidationResult.STF &&
|
|
51
|
-
(token.equals(tokenIn) || token.equals(tokenOut))) {
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
return (tokenValidation == TokenValidationResult.FOT ||
|
|
55
|
-
tokenValidation == TokenValidationResult.STF);
|
|
56
|
-
});
|
|
57
|
-
const { maxSwapsPerPath } = routingConfig;
|
|
58
|
-
const routes = computeAllMixedRoutes(tokenIn, tokenOut, pools, maxSwapsPerPath);
|
|
59
|
-
return {
|
|
60
|
-
routes,
|
|
61
|
-
candidatePools,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
async getQuotes(routes, amounts, percents, quoteToken, tradeType, routingConfig, candidatePools, gasModel) {
|
|
65
|
-
log.info('Starting to get mixed quotes');
|
|
66
|
-
if (gasModel === undefined) {
|
|
67
|
-
throw new Error('GasModel for MixedRouteWithValidQuote is required to getQuotes');
|
|
68
|
-
}
|
|
69
|
-
if (routes.length == 0) {
|
|
70
|
-
return { routesWithValidQuotes: [], candidatePools };
|
|
71
|
-
}
|
|
72
|
-
// For all our routes, and all the fractional amounts, fetch quotes on-chain.
|
|
73
|
-
const quoteFn = this.onChainQuoteProvider.getQuotesManyExactIn.bind(this.onChainQuoteProvider);
|
|
74
|
-
const beforeQuotes = Date.now();
|
|
75
|
-
log.info(`Getting quotes for mixed for ${routes.length} routes with ${amounts.length} amounts per route.`);
|
|
76
|
-
const { routesWithQuotes } = await quoteFn(amounts, routes, {
|
|
77
|
-
blockNumber: routingConfig.blockNumber,
|
|
78
|
-
});
|
|
79
|
-
metric.putMetric('MixedQuotesLoad', Date.now() - beforeQuotes, MetricLoggerUnit.Milliseconds);
|
|
80
|
-
metric.putMetric('MixedQuotesFetched', _(routesWithQuotes)
|
|
81
|
-
.map(([, quotes]) => quotes.length)
|
|
82
|
-
.sum(), MetricLoggerUnit.Count);
|
|
83
|
-
const routesWithValidQuotes = [];
|
|
84
|
-
for (const routeWithQuote of routesWithQuotes) {
|
|
85
|
-
const [route, quotes] = routeWithQuote;
|
|
86
|
-
for (let i = 0; i < quotes.length; i++) {
|
|
87
|
-
const percent = percents[i];
|
|
88
|
-
const amountQuote = quotes[i];
|
|
89
|
-
const { quote, amount, sqrtPriceX96AfterList, initializedTicksCrossedList, gasEstimate, } = amountQuote;
|
|
90
|
-
if (!quote ||
|
|
91
|
-
!sqrtPriceX96AfterList ||
|
|
92
|
-
!initializedTicksCrossedList ||
|
|
93
|
-
!gasEstimate) {
|
|
94
|
-
log.debug({
|
|
95
|
-
route: routeToString(route),
|
|
96
|
-
amountQuote,
|
|
97
|
-
}, 'Dropping a null mixed quote for route.');
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
const routeWithValidQuote = new MixedRouteWithValidQuote({
|
|
101
|
-
route,
|
|
102
|
-
rawQuote: quote,
|
|
103
|
-
amount,
|
|
104
|
-
percent,
|
|
105
|
-
sqrtPriceX96AfterList,
|
|
106
|
-
initializedTicksCrossedList,
|
|
107
|
-
quoterGasEstimate: gasEstimate,
|
|
108
|
-
mixedRouteGasModel: gasModel,
|
|
109
|
-
quoteToken,
|
|
110
|
-
tradeType,
|
|
111
|
-
v3PoolProvider: this.v3PoolProvider,
|
|
112
|
-
v2PoolProvider: this.v2PoolProvider,
|
|
113
|
-
});
|
|
114
|
-
routesWithValidQuotes.push(routeWithValidQuote);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return {
|
|
118
|
-
routesWithValidQuotes,
|
|
119
|
-
candidatePools,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWl4ZWQtcXVvdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL3F1b3RlcnMvbWl4ZWQtcXVvdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0UsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE9BQU8sRUFTTCxxQkFBcUIsR0FDdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBRUwsR0FBRyxFQUNILE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsYUFBYSxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBRUwsMkJBQTJCLEdBQzVCLE1BQU0sa0NBQWtDLENBQUM7QUFHMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLE9BQU8sV0FBWSxTQUFRLFVBQXNCO0lBT3JELFlBQ0Usa0JBQXVDLEVBQ3ZDLGNBQStCLEVBQy9CLGtCQUF1QyxFQUN2QyxjQUErQixFQUMvQixvQkFBMkMsRUFDM0MsYUFBNkIsRUFDN0IsT0FBZ0IsRUFDaEIsd0JBQTZDLEVBQzdDLHNCQUFnRDtRQUVoRCxLQUFLLENBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCx3QkFBd0IsRUFDeEIsc0JBQXNCLENBQ3ZCLENBQUM7UUFDRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElB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
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
-
import { ChainId, Token, TradeType } from '@synthra-swap/sdk-core';
|
|
3
|
-
import { ITokenListProvider, ITokenProvider, ITokenValidatorProvider, IV2PoolProvider, IV2QuoteProvider, IV2SubgraphProvider } from '../../../providers';
|
|
4
|
-
import { CurrencyAmount } from '../../../util';
|
|
5
|
-
import { V2Route } from '../../router';
|
|
6
|
-
import { AlphaRouterConfig } from '../alpha-router';
|
|
7
|
-
import { V2RouteWithValidQuote } from '../entities';
|
|
8
|
-
import { CandidatePoolsBySelectionCriteria } from '../functions/get-candidate-pools';
|
|
9
|
-
import { IGasModel, IV2GasModelFactory } from '../gas-models';
|
|
10
|
-
import { BaseQuoter } from './base-quoter';
|
|
11
|
-
import { GetQuotesResult } from './model/results/get-quotes-result';
|
|
12
|
-
import { GetRoutesResult } from './model/results/get-routes-result';
|
|
13
|
-
export declare class V2Quoter extends BaseQuoter<V2Route> {
|
|
14
|
-
protected v2SubgraphProvider: IV2SubgraphProvider;
|
|
15
|
-
protected v2PoolProvider: IV2PoolProvider;
|
|
16
|
-
protected v2QuoteProvider: IV2QuoteProvider;
|
|
17
|
-
protected v2GasModelFactory: IV2GasModelFactory;
|
|
18
|
-
constructor(v2SubgraphProvider: IV2SubgraphProvider, v2PoolProvider: IV2PoolProvider, v2QuoteProvider: IV2QuoteProvider, v2GasModelFactory: IV2GasModelFactory, tokenProvider: ITokenProvider, chainId: ChainId, blockedTokenListProvider?: ITokenListProvider, tokenValidatorProvider?: ITokenValidatorProvider);
|
|
19
|
-
protected getRoutes(tokenIn: Token, tokenOut: Token, tradeType: TradeType, routingConfig: AlphaRouterConfig): Promise<GetRoutesResult<V2Route>>;
|
|
20
|
-
getQuotes(routes: V2Route[], amounts: CurrencyAmount[], percents: number[], quoteToken: Token, tradeType: TradeType, _routingConfig: AlphaRouterConfig, candidatePools?: CandidatePoolsBySelectionCriteria, _gasModel?: IGasModel<V2RouteWithValidQuote>, gasPriceWei?: BigNumber): Promise<GetQuotesResult>;
|
|
21
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { TradeType } from '@synthra-swap/sdk-core';
|
|
2
|
-
import _ from 'lodash';
|
|
3
|
-
import { TokenValidationResult, } from '../../../providers';
|
|
4
|
-
import { log, metric, MetricLoggerUnit, routeToString, } from '../../../util';
|
|
5
|
-
import { V2RouteWithValidQuote } from '../entities';
|
|
6
|
-
import { computeAllV2Routes } from '../functions/compute-all-routes';
|
|
7
|
-
import { getV2CandidatePools, } from '../functions/get-candidate-pools';
|
|
8
|
-
import { BaseQuoter } from './base-quoter';
|
|
9
|
-
export class V2Quoter extends BaseQuoter {
|
|
10
|
-
constructor(v2SubgraphProvider, v2PoolProvider, v2QuoteProvider, v2GasModelFactory, tokenProvider, chainId, blockedTokenListProvider, tokenValidatorProvider) {
|
|
11
|
-
super(tokenProvider, chainId, blockedTokenListProvider, tokenValidatorProvider);
|
|
12
|
-
this.v2SubgraphProvider = v2SubgraphProvider;
|
|
13
|
-
this.v2PoolProvider = v2PoolProvider;
|
|
14
|
-
this.v2QuoteProvider = v2QuoteProvider;
|
|
15
|
-
this.v2GasModelFactory = v2GasModelFactory;
|
|
16
|
-
}
|
|
17
|
-
async getRoutes(tokenIn, tokenOut, tradeType, routingConfig) {
|
|
18
|
-
// Fetch all the pools that we will consider routing via. There are thousands
|
|
19
|
-
// of pools, so we filter them to a set of candidate pools that we expect will
|
|
20
|
-
// result in good prices.
|
|
21
|
-
const { poolAccessor, candidatePools } = await getV2CandidatePools({
|
|
22
|
-
tokenIn,
|
|
23
|
-
tokenOut,
|
|
24
|
-
tokenProvider: this.tokenProvider,
|
|
25
|
-
blockedTokenListProvider: this.blockedTokenListProvider,
|
|
26
|
-
poolProvider: this.v2PoolProvider,
|
|
27
|
-
routeType: tradeType,
|
|
28
|
-
subgraphProvider: this.v2SubgraphProvider,
|
|
29
|
-
routingConfig,
|
|
30
|
-
chainId: this.chainId,
|
|
31
|
-
});
|
|
32
|
-
const poolsRaw = poolAccessor.getAllPools();
|
|
33
|
-
// Drop any pools that contain tokens that can not be transferred according to the token validator.
|
|
34
|
-
const pools = await this.applyTokenValidatorToPools(poolsRaw, (token, tokenValidation) => {
|
|
35
|
-
// If there is no available validation result we assume the token is fine.
|
|
36
|
-
if (!tokenValidation) {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
// Only filters out *intermediate* pools that involve tokens that we detect
|
|
40
|
-
// cant be transferred. This prevents us trying to route through tokens that may
|
|
41
|
-
// not be transferrable, but allows users to still swap those tokens if they
|
|
42
|
-
// specify.
|
|
43
|
-
if (tokenValidation == TokenValidationResult.STF &&
|
|
44
|
-
(token.equals(tokenIn) || token.equals(tokenOut))) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
return tokenValidation == TokenValidationResult.STF;
|
|
48
|
-
});
|
|
49
|
-
// Given all our candidate pools, compute all the possible ways to route from tokenIn to tokenOut.
|
|
50
|
-
const { maxSwapsPerPath } = routingConfig;
|
|
51
|
-
const routes = computeAllV2Routes(tokenIn, tokenOut, pools, maxSwapsPerPath);
|
|
52
|
-
return {
|
|
53
|
-
routes,
|
|
54
|
-
candidatePools,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
async getQuotes(routes, amounts, percents, quoteToken, tradeType, _routingConfig, candidatePools, _gasModel, gasPriceWei) {
|
|
58
|
-
log.info('Starting to get V2 quotes');
|
|
59
|
-
if (gasPriceWei === undefined) {
|
|
60
|
-
throw new Error('GasPriceWei for V2Routes 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 == TradeType.EXACT_INPUT
|
|
67
|
-
? this.v2QuoteProvider.getQuotesManyExactIn.bind(this.v2QuoteProvider)
|
|
68
|
-
: this.v2QuoteProvider.getQuotesManyExactOut.bind(this.v2QuoteProvider);
|
|
69
|
-
const beforeQuotes = Date.now();
|
|
70
|
-
log.info(`Getting quotes for V2 for ${routes.length} routes with ${amounts.length} amounts per route.`);
|
|
71
|
-
const { routesWithQuotes } = await quoteFn(amounts, routes);
|
|
72
|
-
const v2GasModel = await this.v2GasModelFactory.buildGasModel({
|
|
73
|
-
chainId: this.chainId,
|
|
74
|
-
gasPriceWei,
|
|
75
|
-
poolProvider: this.v2PoolProvider,
|
|
76
|
-
token: quoteToken,
|
|
77
|
-
});
|
|
78
|
-
metric.putMetric('V2QuotesLoad', Date.now() - beforeQuotes, MetricLoggerUnit.Milliseconds);
|
|
79
|
-
metric.putMetric('V2QuotesFetched', _(routesWithQuotes)
|
|
80
|
-
.map(([, quotes]) => quotes.length)
|
|
81
|
-
.sum(), MetricLoggerUnit.Count);
|
|
82
|
-
const routesWithValidQuotes = [];
|
|
83
|
-
for (const routeWithQuote of routesWithQuotes) {
|
|
84
|
-
const [route, quotes] = routeWithQuote;
|
|
85
|
-
for (let i = 0; i < quotes.length; i++) {
|
|
86
|
-
const percent = percents[i];
|
|
87
|
-
const amountQuote = quotes[i];
|
|
88
|
-
const { quote, amount } = amountQuote;
|
|
89
|
-
if (!quote) {
|
|
90
|
-
log.debug({
|
|
91
|
-
route: routeToString(route),
|
|
92
|
-
amountQuote,
|
|
93
|
-
}, 'Dropping a null V2 quote for route.');
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
const routeWithValidQuote = new V2RouteWithValidQuote({
|
|
97
|
-
route,
|
|
98
|
-
rawQuote: quote,
|
|
99
|
-
amount,
|
|
100
|
-
percent,
|
|
101
|
-
gasModel: v2GasModel,
|
|
102
|
-
quoteToken,
|
|
103
|
-
tradeType,
|
|
104
|
-
v2PoolProvider: this.v2PoolProvider,
|
|
105
|
-
});
|
|
106
|
-
routesWithValidQuotes.push(routeWithValidQuote);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
routesWithValidQuotes,
|
|
111
|
-
candidatePools,
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjItcXVvdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL3F1b3RlcnMvdjItcXVvdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBNEIsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0UsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE9BQU8sRUFPTCxxQkFBcUIsR0FDdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBRUwsR0FBRyxFQUNILE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsYUFBYSxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBRUwsbUJBQW1CLEdBQ3BCLE1BQU0sa0NBQWtDLENBQUM7QUFHMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQW1CO0lBTS9DLFlBQ0Usa0JBQXVDLEVBQ3ZDLGNBQStCLEVBQy9CLGVBQWlDLEVBQ2pDLGlCQUFxQyxFQUNyQyxhQUE2QixFQUM3QixPQUFnQixFQUNoQix3QkFBNkMsRUFDN0Msc0JBQWdEO1FBRWhELEtBQUssQ0FDSCxhQUFhLEVBQ2IsT0FBTyxFQUNQLHdCQUF3QixFQUN4QixzQkFBc0IsQ0FDdkIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDN0MsQ0FBQztJQUVTLEtBQUssQ0FBQyxT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
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { ChainId, Token } from '@synthra-swap/sdk-core';
|
|
2
|
-
import { ITokenProvider } from '../../providers/token-provider';
|
|
3
|
-
declare type ChainTokenList = {
|
|
4
|
-
readonly [chainId in ChainId]: Token[];
|
|
5
|
-
};
|
|
6
|
-
export declare const BASES_TO_CHECK_TRADES_AGAINST: (_tokenProvider: ITokenProvider) => ChainTokenList;
|
|
7
|
-
export declare const ADDITIONAL_BASES: (tokenProvider: ITokenProvider) => Promise<{
|
|
8
|
-
1?: {
|
|
9
|
-
[tokenAddress: string]: Token[];
|
|
10
|
-
} | undefined;
|
|
11
|
-
5?: {
|
|
12
|
-
[tokenAddress: string]: Token[];
|
|
13
|
-
} | undefined;
|
|
14
|
-
11155111?: {
|
|
15
|
-
[tokenAddress: string]: Token[];
|
|
16
|
-
} | undefined;
|
|
17
|
-
10?: {
|
|
18
|
-
[tokenAddress: string]: Token[];
|
|
19
|
-
} | undefined;
|
|
20
|
-
420?: {
|
|
21
|
-
[tokenAddress: string]: Token[];
|
|
22
|
-
} | undefined;
|
|
23
|
-
11155420?: {
|
|
24
|
-
[tokenAddress: string]: Token[];
|
|
25
|
-
} | undefined;
|
|
26
|
-
42161?: {
|
|
27
|
-
[tokenAddress: string]: Token[];
|
|
28
|
-
} | undefined;
|
|
29
|
-
421613?: {
|
|
30
|
-
[tokenAddress: string]: Token[];
|
|
31
|
-
} | undefined;
|
|
32
|
-
421614?: {
|
|
33
|
-
[tokenAddress: string]: Token[];
|
|
34
|
-
} | undefined;
|
|
35
|
-
137?: {
|
|
36
|
-
[tokenAddress: string]: Token[];
|
|
37
|
-
} | undefined;
|
|
38
|
-
80001?: {
|
|
39
|
-
[tokenAddress: string]: Token[];
|
|
40
|
-
} | undefined;
|
|
41
|
-
42220?: {
|
|
42
|
-
[tokenAddress: string]: Token[];
|
|
43
|
-
} | undefined;
|
|
44
|
-
44787?: {
|
|
45
|
-
[tokenAddress: string]: Token[];
|
|
46
|
-
} | undefined;
|
|
47
|
-
100?: {
|
|
48
|
-
[tokenAddress: string]: Token[];
|
|
49
|
-
} | undefined;
|
|
50
|
-
1284?: {
|
|
51
|
-
[tokenAddress: string]: Token[];
|
|
52
|
-
} | undefined;
|
|
53
|
-
56?: {
|
|
54
|
-
[tokenAddress: string]: Token[];
|
|
55
|
-
} | undefined;
|
|
56
|
-
43114?: {
|
|
57
|
-
[tokenAddress: string]: Token[];
|
|
58
|
-
} | undefined;
|
|
59
|
-
84531?: {
|
|
60
|
-
[tokenAddress: string]: Token[];
|
|
61
|
-
} | undefined;
|
|
62
|
-
8453?: {
|
|
63
|
-
[tokenAddress: string]: Token[];
|
|
64
|
-
} | undefined;
|
|
65
|
-
7777777?: {
|
|
66
|
-
[tokenAddress: string]: Token[];
|
|
67
|
-
} | undefined;
|
|
68
|
-
999999999?: {
|
|
69
|
-
[tokenAddress: string]: Token[];
|
|
70
|
-
} | undefined;
|
|
71
|
-
30?: {
|
|
72
|
-
[tokenAddress: string]: Token[];
|
|
73
|
-
} | undefined;
|
|
74
|
-
81457?: {
|
|
75
|
-
[tokenAddress: string]: Token[];
|
|
76
|
-
} | undefined;
|
|
77
|
-
4386?: {
|
|
78
|
-
[tokenAddress: string]: Token[];
|
|
79
|
-
} | undefined;
|
|
80
|
-
1270?: {
|
|
81
|
-
[tokenAddress: string]: Token[];
|
|
82
|
-
} | undefined;
|
|
83
|
-
42000?: {
|
|
84
|
-
[tokenAddress: string]: Token[];
|
|
85
|
-
} | undefined;
|
|
86
|
-
5042002?: {
|
|
87
|
-
[tokenAddress: string]: Token[];
|
|
88
|
-
} | undefined;
|
|
89
|
-
46630?: {
|
|
90
|
-
[tokenAddress: string]: Token[];
|
|
91
|
-
} | undefined;
|
|
92
|
-
}>;
|
|
93
|
-
/**
|
|
94
|
-
* Some tokens can only be swapped via certain pairs, so we override the list of bases that are considered for these
|
|
95
|
-
* tokens.
|
|
96
|
-
*/
|
|
97
|
-
export declare const CUSTOM_BASES: (tokenProvider: ITokenProvider) => Promise<{
|
|
98
|
-
1?: {
|
|
99
|
-
[tokenAddress: string]: Token[];
|
|
100
|
-
} | undefined;
|
|
101
|
-
5?: {
|
|
102
|
-
[tokenAddress: string]: Token[];
|
|
103
|
-
} | undefined;
|
|
104
|
-
11155111?: {
|
|
105
|
-
[tokenAddress: string]: Token[];
|
|
106
|
-
} | undefined;
|
|
107
|
-
10?: {
|
|
108
|
-
[tokenAddress: string]: Token[];
|
|
109
|
-
} | undefined;
|
|
110
|
-
420?: {
|
|
111
|
-
[tokenAddress: string]: Token[];
|
|
112
|
-
} | undefined;
|
|
113
|
-
11155420?: {
|
|
114
|
-
[tokenAddress: string]: Token[];
|
|
115
|
-
} | undefined;
|
|
116
|
-
42161?: {
|
|
117
|
-
[tokenAddress: string]: Token[];
|
|
118
|
-
} | undefined;
|
|
119
|
-
421613?: {
|
|
120
|
-
[tokenAddress: string]: Token[];
|
|
121
|
-
} | undefined;
|
|
122
|
-
421614?: {
|
|
123
|
-
[tokenAddress: string]: Token[];
|
|
124
|
-
} | undefined;
|
|
125
|
-
137?: {
|
|
126
|
-
[tokenAddress: string]: Token[];
|
|
127
|
-
} | undefined;
|
|
128
|
-
80001?: {
|
|
129
|
-
[tokenAddress: string]: Token[];
|
|
130
|
-
} | undefined;
|
|
131
|
-
42220?: {
|
|
132
|
-
[tokenAddress: string]: Token[];
|
|
133
|
-
} | undefined;
|
|
134
|
-
44787?: {
|
|
135
|
-
[tokenAddress: string]: Token[];
|
|
136
|
-
} | undefined;
|
|
137
|
-
100?: {
|
|
138
|
-
[tokenAddress: string]: Token[];
|
|
139
|
-
} | undefined;
|
|
140
|
-
1284?: {
|
|
141
|
-
[tokenAddress: string]: Token[];
|
|
142
|
-
} | undefined;
|
|
143
|
-
56?: {
|
|
144
|
-
[tokenAddress: string]: Token[];
|
|
145
|
-
} | undefined;
|
|
146
|
-
43114?: {
|
|
147
|
-
[tokenAddress: string]: Token[];
|
|
148
|
-
} | undefined;
|
|
149
|
-
84531?: {
|
|
150
|
-
[tokenAddress: string]: Token[];
|
|
151
|
-
} | undefined;
|
|
152
|
-
8453?: {
|
|
153
|
-
[tokenAddress: string]: Token[];
|
|
154
|
-
} | undefined;
|
|
155
|
-
7777777?: {
|
|
156
|
-
[tokenAddress: string]: Token[];
|
|
157
|
-
} | undefined;
|
|
158
|
-
999999999?: {
|
|
159
|
-
[tokenAddress: string]: Token[];
|
|
160
|
-
} | undefined;
|
|
161
|
-
30?: {
|
|
162
|
-
[tokenAddress: string]: Token[];
|
|
163
|
-
} | undefined;
|
|
164
|
-
81457?: {
|
|
165
|
-
[tokenAddress: string]: Token[];
|
|
166
|
-
} | undefined;
|
|
167
|
-
4386?: {
|
|
168
|
-
[tokenAddress: string]: Token[];
|
|
169
|
-
} | undefined;
|
|
170
|
-
1270?: {
|
|
171
|
-
[tokenAddress: string]: Token[];
|
|
172
|
-
} | undefined;
|
|
173
|
-
42000?: {
|
|
174
|
-
[tokenAddress: string]: Token[];
|
|
175
|
-
} | undefined;
|
|
176
|
-
5042002?: {
|
|
177
|
-
[tokenAddress: string]: Token[];
|
|
178
|
-
} | undefined;
|
|
179
|
-
46630?: {
|
|
180
|
-
[tokenAddress: string]: Token[];
|
|
181
|
-
} | undefined;
|
|
182
|
-
}>;
|
|
183
|
-
export {};
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
-
import { ChainId } from '@synthra-swap/sdk-core';
|
|
3
|
-
import { BTC_BNB, BUSD_BNB, DAI_AVAX, DAI_BNB, DAI_MAINNET, USDC_AVAX, USDC_BASE, USDC_BNB, USDC_HELIOS, USDC_ROBINHOOD, USDC_IRYS, USDC_MAINNET, USDC_UOMI, USDT_ARC, USDT_BNB, USDT_MAINNET, WBTC_MAINNET, WMATIC_POLYGON, WMATIC_POLYGON_MUMBAI, } from '../../providers/token-provider';
|
|
4
|
-
import { WRAPPED_NATIVE_CURRENCY } from '../../util/chains';
|
|
5
|
-
export const BASES_TO_CHECK_TRADES_AGAINST = (_tokenProvider) => {
|
|
6
|
-
return {
|
|
7
|
-
[ChainId.MAINNET]: [
|
|
8
|
-
WRAPPED_NATIVE_CURRENCY[ChainId.MAINNET],
|
|
9
|
-
DAI_MAINNET,
|
|
10
|
-
USDC_MAINNET,
|
|
11
|
-
USDT_MAINNET,
|
|
12
|
-
WBTC_MAINNET,
|
|
13
|
-
],
|
|
14
|
-
[ChainId.GOERLI]: [WRAPPED_NATIVE_CURRENCY[ChainId.GOERLI]],
|
|
15
|
-
[ChainId.SEPOLIA]: [WRAPPED_NATIVE_CURRENCY[ChainId.SEPOLIA]],
|
|
16
|
-
[ChainId.OPTIMISM]: [WRAPPED_NATIVE_CURRENCY[ChainId.OPTIMISM]],
|
|
17
|
-
[ChainId.OPTIMISM_GOERLI]: [
|
|
18
|
-
WRAPPED_NATIVE_CURRENCY[ChainId.OPTIMISM_GOERLI],
|
|
19
|
-
],
|
|
20
|
-
[ChainId.ARBITRUM_ONE]: [WRAPPED_NATIVE_CURRENCY[ChainId.ARBITRUM_ONE]],
|
|
21
|
-
[ChainId.ARBITRUM_GOERLI]: [
|
|
22
|
-
WRAPPED_NATIVE_CURRENCY[ChainId.ARBITRUM_GOERLI],
|
|
23
|
-
],
|
|
24
|
-
[ChainId.POLYGON]: [WMATIC_POLYGON],
|
|
25
|
-
[ChainId.POLYGON_MUMBAI]: [WMATIC_POLYGON_MUMBAI],
|
|
26
|
-
[ChainId.CELO]: [WRAPPED_NATIVE_CURRENCY[ChainId.CELO]],
|
|
27
|
-
[ChainId.CELO_ALFAJORES]: [WRAPPED_NATIVE_CURRENCY[ChainId.CELO_ALFAJORES]],
|
|
28
|
-
[ChainId.GNOSIS]: [WRAPPED_NATIVE_CURRENCY[ChainId.GNOSIS]],
|
|
29
|
-
[ChainId.MOONBEAM]: [WRAPPED_NATIVE_CURRENCY[ChainId.MOONBEAM]],
|
|
30
|
-
[ChainId.BNB]: [
|
|
31
|
-
WRAPPED_NATIVE_CURRENCY[ChainId.BNB],
|
|
32
|
-
BUSD_BNB,
|
|
33
|
-
DAI_BNB,
|
|
34
|
-
USDC_BNB,
|
|
35
|
-
USDT_BNB,
|
|
36
|
-
BTC_BNB,
|
|
37
|
-
],
|
|
38
|
-
[ChainId.AVALANCHE]: [
|
|
39
|
-
WRAPPED_NATIVE_CURRENCY[ChainId.AVALANCHE],
|
|
40
|
-
USDC_AVAX,
|
|
41
|
-
DAI_AVAX,
|
|
42
|
-
],
|
|
43
|
-
[ChainId.BASE]: [WRAPPED_NATIVE_CURRENCY[ChainId.BASE], USDC_BASE],
|
|
44
|
-
[ChainId.BASE_GOERLI]: [WRAPPED_NATIVE_CURRENCY[ChainId.BASE_GOERLI]],
|
|
45
|
-
[ChainId.UOMI]: [WRAPPED_NATIVE_CURRENCY[ChainId.UOMI], USDC_UOMI],
|
|
46
|
-
[ChainId.IRYS]: [WRAPPED_NATIVE_CURRENCY[ChainId.IRYS], USDC_IRYS],
|
|
47
|
-
[ChainId.HELIOS]: [WRAPPED_NATIVE_CURRENCY[ChainId.HELIOS], USDC_HELIOS],
|
|
48
|
-
[ChainId.ARC]: [WRAPPED_NATIVE_CURRENCY[ChainId.ARC], USDT_ARC],
|
|
49
|
-
[ChainId.ROBINHOOD]: [WRAPPED_NATIVE_CURRENCY[ChainId.ROBINHOOD], USDC_ROBINHOOD],
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
const getBasePairByAddress = async (tokenProvider, _chainId, fromAddress, toAddress) => {
|
|
53
|
-
const accessor = await tokenProvider.getTokens([toAddress]);
|
|
54
|
-
const toToken = accessor.getTokenByAddress(toAddress);
|
|
55
|
-
if (!toToken)
|
|
56
|
-
return {};
|
|
57
|
-
return {
|
|
58
|
-
[fromAddress]: [toToken],
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
export const ADDITIONAL_BASES = async (tokenProvider) => {
|
|
62
|
-
return {
|
|
63
|
-
[ChainId.MAINNET]: {
|
|
64
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xA948E86885e12Fb09AfEF8C52142EBDbDf73cD18', '0x1f9840a85d5af5bf1d1762f925bdaddc4201f984')),
|
|
65
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x561a4717537ff4AF5c687328c0f7E90a319705C0', '0x1f9840a85d5af5bf1d1762f925bdaddc4201f984')),
|
|
66
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x956F47F50A910163D8BF957Cf5846D573E7f87CA', '0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B')),
|
|
67
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B', '0x956F47F50A910163D8BF957Cf5846D573E7f87CA')),
|
|
68
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x853d955acef822db058eb8505911ed77f175b99e', '0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0')),
|
|
69
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0', '0x853d955acef822db058eb8505911ed77f175b99e')),
|
|
70
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599', '0xeb4c2781e4eba804ce9a9803c67d0893436bb27d')),
|
|
71
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xeb4c2781e4eba804ce9a9803c67d0893436bb27d', '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599')),
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Some tokens can only be swapped via certain pairs, so we override the list of bases that are considered for these
|
|
77
|
-
* tokens.
|
|
78
|
-
*/
|
|
79
|
-
export const CUSTOM_BASES = async (tokenProvider) => {
|
|
80
|
-
return {
|
|
81
|
-
[ChainId.MAINNET]: {
|
|
82
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xd46ba6d942050d489dbd938a2c909a5d5039a161', DAI_MAINNET.address)),
|
|
83
|
-
...(await getBasePairByAddress(tokenProvider, ChainId.MAINNET, '0xd46ba6d942050d489dbd938a2c909a5d5039a161', WRAPPED_NATIVE_CURRENCY[1].address)),
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcm91dGVycy9sZWdhY3ktcm91dGVyL2Jhc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFTLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE9BQU8sRUFDUCxXQUFXLEVBRVgsU0FBUyxFQUNULFNBQVMsRUFDVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLGNBQWMsRUFDZCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxFQUNkLHFCQUFxQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBTTVELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQzNDLGNBQThCLEVBQ2QsRUFBRTtJQUNsQixPQUFPO1FBQ0wsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakIsdUJBQXVCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBRTtZQUN6QyxXQUFXO1lBQ1gsWUFBWTtZQUNaLFlBQVk7WUFDWixZQUFZO1NBQ2I7UUFDRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUM1RCxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUUsQ0FBQztRQUM5RCxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUUsQ0FBQztRQUNoRSxDQUFDLE9BQU8sQ0FBQyxlQUFl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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './legacy-router';
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './legacy-router';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcm91dGVycy9sZWdhY3ktcm91dGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUMifQ==
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { ChainId, Currency, TradeType } from '@synthra-swap/sdk-core';
|
|
2
|
-
import { IOnChainQuoteProvider } from '../../providers';
|
|
3
|
-
import { IMulticallProvider } from '../../providers/multicall-provider';
|
|
4
|
-
import { ITokenProvider } from '../../providers/token-provider';
|
|
5
|
-
import { IV3PoolProvider } from '../../providers/v3/pool-provider';
|
|
6
|
-
import { CurrencyAmount } from '../../util/amounts';
|
|
7
|
-
import { SwapOptionsSwapRouter02, SwapRoute } from '../router';
|
|
8
|
-
export declare type LegacyRouterParams = {
|
|
9
|
-
chainId: ChainId;
|
|
10
|
-
multicall2Provider: IMulticallProvider;
|
|
11
|
-
poolProvider: IV3PoolProvider;
|
|
12
|
-
quoteProvider: IOnChainQuoteProvider;
|
|
13
|
-
tokenProvider: ITokenProvider;
|
|
14
|
-
};
|
|
15
|
-
export declare type LegacyRoutingConfig = {
|
|
16
|
-
blockNumber?: number;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Replicates the router implemented in the V3 interface.
|
|
20
|
-
* Code is mostly a copy from https://github.com/Uniswap/uniswap-interface/blob/0190b5a408c13016c87e1030ffc59326c085f389/src/hooks/useBestV3Trade.ts#L22-L23
|
|
21
|
-
* with React/Redux hooks removed, and refactoring to allow re-use in other routers.
|
|
22
|
-
*/
|
|
23
|
-
export declare class LegacyRouter {
|
|
24
|
-
protected chainId: ChainId;
|
|
25
|
-
protected multicall2Provider: IMulticallProvider;
|
|
26
|
-
protected poolProvider: IV3PoolProvider;
|
|
27
|
-
protected quoteProvider: IOnChainQuoteProvider;
|
|
28
|
-
protected tokenProvider: ITokenProvider;
|
|
29
|
-
constructor({ chainId, multicall2Provider, poolProvider, quoteProvider, tokenProvider, }: LegacyRouterParams);
|
|
30
|
-
route(amount: CurrencyAmount, quoteCurrency: Currency, swapType: TradeType, swapConfig?: SwapOptionsSwapRouter02, partialRoutingConfig?: Partial<LegacyRoutingConfig>): Promise<SwapRoute | null>;
|
|
31
|
-
routeExactIn(currencyIn: Currency, currencyOut: Currency, amountIn: CurrencyAmount, swapConfig?: SwapOptionsSwapRouter02, routingConfig?: LegacyRoutingConfig): Promise<SwapRoute | null>;
|
|
32
|
-
routeExactOut(currencyIn: Currency, currencyOut: Currency, amountOut: CurrencyAmount, swapConfig?: SwapOptionsSwapRouter02, routingConfig?: LegacyRoutingConfig): Promise<SwapRoute | null>;
|
|
33
|
-
private findBestRouteExactIn;
|
|
34
|
-
private findBestRouteExactOut;
|
|
35
|
-
private getBestQuote;
|
|
36
|
-
private getAllRoutes;
|
|
37
|
-
private getAllPossiblePairings;
|
|
38
|
-
private computeAllRoutes;
|
|
39
|
-
private buildTrade;
|
|
40
|
-
private buildMethodParameters;
|
|
41
|
-
}
|