@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,4 +1,3 @@
|
|
|
1
|
-
import { ChainId } from '@synthra-swap/sdk
|
|
1
|
+
import { ChainId } from '@synthra-swap/sdk/core';
|
|
2
2
|
import { AlphaRouterConfig } from './alpha-router';
|
|
3
3
|
export declare const DEFAULT_ROUTING_CONFIG_BY_CHAIN: (chainId: ChainId) => AlphaRouterConfig;
|
|
4
|
-
export declare const ETH_GAS_STATION_API_URL = "https://ethgasstation.info/api/ethgasAPI.json";
|
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
3
|
+
exports.DEFAULT_ROUTING_CONFIG_BY_CHAIN = void 0;
|
|
4
|
+
const core_1 = require("@synthra-swap/sdk/core");
|
|
5
5
|
const DEFAULT_ROUTING_CONFIG_BY_CHAIN = (chainId) => {
|
|
6
6
|
switch (chainId) {
|
|
7
7
|
// Optimism
|
|
8
|
-
case
|
|
9
|
-
case
|
|
10
|
-
case
|
|
11
|
-
case
|
|
8
|
+
case core_1.ChainId.OPTIMISM:
|
|
9
|
+
case core_1.ChainId.OPTIMISM_GOERLI:
|
|
10
|
+
case core_1.ChainId.BASE:
|
|
11
|
+
case core_1.ChainId.BASE_GOERLI:
|
|
12
12
|
return {
|
|
13
|
-
v2PoolSelection: {
|
|
14
|
-
topN: 3,
|
|
15
|
-
topNDirectSwaps: 1,
|
|
16
|
-
topNTokenInOut: 5,
|
|
17
|
-
topNSecondHop: 2,
|
|
18
|
-
topNWithEachBaseToken: 2,
|
|
19
|
-
topNWithBaseToken: 6,
|
|
20
|
-
},
|
|
21
13
|
v3PoolSelection: {
|
|
22
14
|
topN: 2,
|
|
23
15
|
topNDirectSwaps: 2,
|
|
@@ -30,24 +22,15 @@ const DEFAULT_ROUTING_CONFIG_BY_CHAIN = (chainId) => {
|
|
|
30
22
|
minSplits: 1,
|
|
31
23
|
maxSplits: 7,
|
|
32
24
|
distributionPercent: 10,
|
|
33
|
-
forceCrossProtocol: false,
|
|
34
25
|
};
|
|
35
26
|
// Arbitrum calls have lower gas limits and tend to timeout more, which causes us to reduce the multicall
|
|
36
27
|
// batch size and send more multicalls per quote. To reduce the amount of requests each quote sends, we
|
|
37
28
|
// have to adjust the routing config so we explore fewer routes.
|
|
38
|
-
case
|
|
39
|
-
case
|
|
40
|
-
case
|
|
41
|
-
case
|
|
29
|
+
case core_1.ChainId.ARBITRUM_ONE:
|
|
30
|
+
case core_1.ChainId.ARBITRUM_GOERLI:
|
|
31
|
+
case core_1.ChainId.CELO:
|
|
32
|
+
case core_1.ChainId.CELO_ALFAJORES:
|
|
42
33
|
return {
|
|
43
|
-
v2PoolSelection: {
|
|
44
|
-
topN: 3,
|
|
45
|
-
topNDirectSwaps: 1,
|
|
46
|
-
topNTokenInOut: 5,
|
|
47
|
-
topNSecondHop: 2,
|
|
48
|
-
topNWithEachBaseToken: 2,
|
|
49
|
-
topNWithBaseToken: 6,
|
|
50
|
-
},
|
|
51
34
|
v3PoolSelection: {
|
|
52
35
|
topN: 2,
|
|
53
36
|
topNDirectSwaps: 2,
|
|
@@ -60,18 +43,9 @@ const DEFAULT_ROUTING_CONFIG_BY_CHAIN = (chainId) => {
|
|
|
60
43
|
minSplits: 1,
|
|
61
44
|
maxSplits: 7,
|
|
62
45
|
distributionPercent: 25,
|
|
63
|
-
forceCrossProtocol: false,
|
|
64
46
|
};
|
|
65
47
|
default:
|
|
66
48
|
return {
|
|
67
|
-
v2PoolSelection: {
|
|
68
|
-
topN: 3,
|
|
69
|
-
topNDirectSwaps: 1,
|
|
70
|
-
topNTokenInOut: 5,
|
|
71
|
-
topNSecondHop: 2,
|
|
72
|
-
topNWithEachBaseToken: 2,
|
|
73
|
-
topNWithBaseToken: 6,
|
|
74
|
-
},
|
|
75
49
|
v3PoolSelection: {
|
|
76
50
|
topN: 2,
|
|
77
51
|
topNDirectSwaps: 2,
|
|
@@ -84,10 +58,8 @@ const DEFAULT_ROUTING_CONFIG_BY_CHAIN = (chainId) => {
|
|
|
84
58
|
minSplits: 1,
|
|
85
59
|
maxSplits: 7,
|
|
86
60
|
distributionPercent: 5,
|
|
87
|
-
forceCrossProtocol: false,
|
|
88
61
|
};
|
|
89
62
|
}
|
|
90
63
|
};
|
|
91
64
|
exports.DEFAULT_ROUTING_CONFIG_BY_CHAIN = DEFAULT_ROUTING_CONFIG_BY_CHAIN;
|
|
92
|
-
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBaUQ7QUFJMUMsTUFBTSwrQkFBK0IsR0FBRyxDQUM3QyxPQUFnQixFQUNHLEVBQUU7SUFDckIsUUFBUSxPQUFPLEVBQUU7UUFDZixXQUFXO1FBQ1gsS0FBSyxrQkFBTyxDQUFDLFFBQVEsQ0FBQztRQUN0QixLQUFLLGtCQUFPLENBQUMsZUFBZSxDQUFDO1FBQzdCLEtBQUssa0JBQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEIsS0FBSyxrQkFBTyxDQUFDLFdBQVc7WUFDdEIsT0FBTztnQkFDTCxlQUFlLEVBQUU7b0JBQ2YsSUFBSSxFQUFFLENBQUM7b0JBQ1AsZUFBZSxFQUFFLENBQUM7b0JBQ2xCLGNBQWMsRUFBRSxDQUFDO29CQUNqQixhQUFhLEVBQUUsQ0FBQztvQkFDaEIscUJBQXFCLEVBQUUsQ0FBQztvQkFDeEIsaUJBQWlCLEVBQUUsQ0FBQztpQkFDckI7Z0JBQ0QsZUFBZSxFQUFFO29CQUNmLElBQUksRUFBRSxDQUFDO29CQUNQLGVBQWUsRUFBRSxDQUFDO29CQUNsQixjQUFjLEVBQUUsQ0FBQztvQkFDakIsYUFBYSxFQUFFLENBQUM7b0JBQ2hCLHFCQUFxQixFQUFFLENBQUM7b0JBQ3hCLGlCQUFpQixFQUFFLENBQUM7aUJBQ3JCO2dCQUNELGVBQWUsRUFBRSxDQUFDO2dCQUNsQixTQUFTLEVBQUUsQ0FBQztnQkFDWixTQUFTLEVBQUUsQ0FBQztnQkFDWixtQkFBbUIsRUFBRSxFQUFFO2dCQUN2QixrQkFBa0IsRUFBRSxLQUFLO2FBQzFCLENBQUM7UUFDSix5R0FBeUc7UUFDekcsdUdBQXVHO1FBQ3ZHLGdFQUFnRTtRQUNoRSxLQUFLLGtCQUFPLENBQUMsWUFBWSxDQUFDO1FBQzFCLEtBQUssa0JBQU8sQ0FBQyxlQUFlLENBQUM7UUFDN0IsS0FBSyxrQkFBTyxDQUFDLElBQUksQ0FBQztRQUNsQixLQUFLLGtCQUFPLENBQUMsY0FBYztZQUN6QixPQUFPO2dCQUNMLGVBQWUsRUFBRTtvQkFDZixJQUFJLEVBQUUsQ0FBQztvQkFDUCxlQUFlLEVBQUUsQ0FBQztvQkFDbEIsY0FBYyxFQUFFLENBQUM7b0JBQ2pCLGFBQWEsRUFBRSxDQUFDO29CQUNoQixxQkFBcUIsRUFBRSxDQUFDO29CQUN4QixpQkFBaUIsRUFBRSxDQUFDO2lCQUNyQjtnQkFDRCxlQUFlLEVBQUU7b0JBQ2YsSUFBSSxFQUFFLENBQUM7b0JBQ1AsZUFBZSxFQUFFLENBQUM7b0JBQ2xCLGNBQWMsRUFBRSxDQUFDO29CQUNqQixhQUFhLEVBQUUsQ0FBQztvQkFDaEIscUJBQXFCLEVBQUUsQ0FBQztvQkFDeEIsaUJBQWlCLEVBQUUsQ0FBQztpQkFDckI7Z0JBQ0QsZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxDQUFDO2dCQUNaLG1CQUFtQixFQUFFLEVBQUU7Z0JBQ3ZCLGtCQUFrQixFQUFFLEtBQUs7YUFDMUIsQ0FBQztRQUNKO1lBQ0UsT0FBTztnQkFDTCxlQUFlLEVBQUU7b0JBQ2YsSUFBSSxFQUFFLENBQUM7b0JBQ1AsZUFBZSxFQUFFLENBQUM7b0JBQ2xCLGNBQWMsRUFBRSxDQUFDO29CQUNqQixhQUFhLEVBQUUsQ0FBQztvQkFDaEIscUJBQXFCLEVBQUUsQ0FBQztvQkFDeEIsaUJBQWlCLEVBQUUsQ0FBQztpQkFDckI7Z0JBQ0QsZUFBZSxFQUFFO29CQUNmLElBQUksRUFBRSxDQUFDO29CQUNQLGVBQWUsRUFBRSxDQUFDO29CQUNsQixjQUFjLEVBQUUsQ0FBQztvQkFDakIsYUFBYSxFQUFFLENBQUM7b0JBQ2hCLHFCQUFxQixFQUFFLENBQUM7b0JBQ3hCLGlCQUFpQixFQUFFLENBQUM7aUJBQ3JCO2dCQUNELGVBQWUsRUFBRSxDQUFDO2dCQUNsQixTQUFTLEVBQUUsQ0FBQztnQkFDWixTQUFTLEVBQUUsQ0FBQztnQkFDWixtQkFBbUIsRUFBRSxDQUFDO2dCQUN0QixrQkFBa0IsRUFBRSxLQUFLO2FBQzFCLENBQUM7S0FDTDtBQUNILENBQUMsQ0FBQztBQXZGVyxRQUFBLCtCQUErQixtQ0F1RjFDO0FBQ1csUUFBQSx1QkFBdUIsR0FDbEMsK0NBQStDLENBQUMifQ==
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBaUQ7QUFJMUMsTUFBTSwrQkFBK0IsR0FBRyxDQUM3QyxPQUFnQixFQUNHLEVBQUU7SUFDckIsUUFBUSxPQUFPLEVBQUU7UUFDZixXQUFXO1FBQ1gsS0FBSyxjQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3RCLEtBQUssY0FBTyxDQUFDLGVBQWUsQ0FBQztRQUM3QixLQUFLLGNBQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEIsS0FBSyxjQUFPLENBQUMsV0FBVztZQUN0QixPQUFPO2dCQUNMLGVBQWUsRUFBRTtvQkFDZixJQUFJLEVBQUUsQ0FBQztvQkFDUCxlQUFlLEVBQUUsQ0FBQztvQkFDbEIsY0FBYyxFQUFFLENBQUM7b0JBQ2pCLGFBQWEsRUFBRSxDQUFDO29CQUNoQixxQkFBcUIsRUFBRSxDQUFDO29CQUN4QixpQkFBaUIsRUFBRSxDQUFDO2lCQUNyQjtnQkFDRCxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLENBQUM7Z0JBQ1osbUJBQW1CLEVBQUUsRUFBRTthQUN4QixDQUFDO1FBQ0oseUdBQXlHO1FBQ3pHLHVHQUF1RztRQUN2RyxnRUFBZ0U7UUFDaEUsS0FBSyxjQUFPLENBQUMsWUFBWSxDQUFDO1FBQzFCLEtBQUssY0FBTyxDQUFDLGVBQWUsQ0FBQztRQUM3QixLQUFLLGNBQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEIsS0FBSyxjQUFPLENBQUMsY0FBYztZQUN6QixPQUFPO2dCQUNMLGVBQWUsRUFBRTtvQkFDZixJQUFJLEVBQUUsQ0FBQztvQkFDUCxlQUFlLEVBQUUsQ0FBQztvQkFDbEIsY0FBYyxFQUFFLENBQUM7b0JBQ2pCLGFBQWEsRUFBRSxDQUFDO29CQUNoQixxQkFBcUIsRUFBRSxDQUFDO29CQUN4QixpQkFBaUIsRUFBRSxDQUFDO2lCQUNyQjtnQkFDRCxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLENBQUM7Z0JBQ1osbUJBQW1CLEVBQUUsRUFBRTthQUN4QixDQUFDO1FBQ0o7WUFDRSxPQUFPO2dCQUNMLGVBQWUsRUFBRTtvQkFDZixJQUFJLEVBQUUsQ0FBQztvQkFDUCxlQUFlLEVBQUUsQ0FBQztvQkFDbEIsY0FBYyxFQUFFLENBQUM7b0JBQ2pCLGFBQWEsRUFBRSxDQUFDO29CQUNoQixxQkFBcUIsRUFBRSxDQUFDO29CQUN4QixpQkFBaUIsRUFBRSxDQUFDO2lCQUNyQjtnQkFDRCxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLENBQUM7Z0JBQ1osbUJBQW1CLEVBQUUsQ0FBQzthQUN2QixDQUFDO0tBQ0w7QUFDSCxDQUFDLENBQUM7QUE1RFcsUUFBQSwrQkFBK0IsbUNBNEQxQyJ9
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
-
import { Token, TradeType } from '@synthra-swap/sdk
|
|
3
|
-
import { Protocol } from '
|
|
4
|
-
import { IV2PoolProvider } from '../../../providers/v2/pool-provider';
|
|
2
|
+
import { Token, TradeType } from '@synthra-swap/sdk/core';
|
|
3
|
+
import { Protocol } from '../../../util/router-sdk';
|
|
5
4
|
import { IV3PoolProvider } from '../../../providers/v3/pool-provider';
|
|
6
5
|
import { CurrencyAmount } from '../../../util/amounts';
|
|
7
|
-
import {
|
|
6
|
+
import { V3Route } from '../../router';
|
|
8
7
|
import { IGasModel } from '../gas-models/gas-model';
|
|
9
8
|
/**
|
|
10
9
|
* Represents a route, a quote for swapping some amount on it, and other
|
|
@@ -14,7 +13,7 @@ import { IGasModel } from '../gas-models/gas-model';
|
|
|
14
13
|
* @interface IRouteWithValidQuote
|
|
15
14
|
* @template Route
|
|
16
15
|
*/
|
|
17
|
-
export interface IRouteWithValidQuote<Route extends V3Route
|
|
16
|
+
export interface IRouteWithValidQuote<Route extends V3Route> {
|
|
18
17
|
amount: CurrencyAmount;
|
|
19
18
|
percent: number;
|
|
20
19
|
quoteAdjustedForGas: CurrencyAmount;
|
|
@@ -27,53 +26,10 @@ export interface IRouteWithValidQuote<Route extends V3Route | V2Route | MixedRou
|
|
|
27
26
|
poolAddresses: string[];
|
|
28
27
|
tokenPath: Token[];
|
|
29
28
|
}
|
|
30
|
-
export declare type IV2RouteWithValidQuote = {
|
|
31
|
-
protocol: Protocol.V2;
|
|
32
|
-
} & IRouteWithValidQuote<V2Route>;
|
|
33
29
|
export declare type IV3RouteWithValidQuote = {
|
|
34
30
|
protocol: Protocol.V3;
|
|
35
31
|
} & IRouteWithValidQuote<V3Route>;
|
|
36
|
-
export declare type
|
|
37
|
-
protocol: Protocol.MIXED;
|
|
38
|
-
} & IRouteWithValidQuote<MixedRoute>;
|
|
39
|
-
export declare type RouteWithValidQuote = V2RouteWithValidQuote | V3RouteWithValidQuote | MixedRouteWithValidQuote;
|
|
40
|
-
export declare type V2RouteWithValidQuoteParams = {
|
|
41
|
-
amount: CurrencyAmount;
|
|
42
|
-
rawQuote: BigNumber;
|
|
43
|
-
percent: number;
|
|
44
|
-
route: V2Route;
|
|
45
|
-
gasModel: IGasModel<V2RouteWithValidQuote>;
|
|
46
|
-
quoteToken: Token;
|
|
47
|
-
tradeType: TradeType;
|
|
48
|
-
v2PoolProvider: IV2PoolProvider;
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Represents a quote for swapping on a V2 only route. Contains all information
|
|
52
|
-
* such as the route used, the amount specified by the user, the type of quote
|
|
53
|
-
* (exact in or exact out), the quote itself, and gas estimates.
|
|
54
|
-
*
|
|
55
|
-
* @export
|
|
56
|
-
* @class V2RouteWithValidQuote
|
|
57
|
-
*/
|
|
58
|
-
export declare class V2RouteWithValidQuote implements IV2RouteWithValidQuote {
|
|
59
|
-
readonly protocol = Protocol.V2;
|
|
60
|
-
amount: CurrencyAmount;
|
|
61
|
-
rawQuote: BigNumber;
|
|
62
|
-
quote: CurrencyAmount;
|
|
63
|
-
quoteAdjustedForGas: CurrencyAmount;
|
|
64
|
-
percent: number;
|
|
65
|
-
route: V2Route;
|
|
66
|
-
quoteToken: Token;
|
|
67
|
-
gasModel: IGasModel<V2RouteWithValidQuote>;
|
|
68
|
-
gasEstimate: BigNumber;
|
|
69
|
-
gasCostInToken: CurrencyAmount;
|
|
70
|
-
gasCostInUSD: CurrencyAmount;
|
|
71
|
-
tradeType: TradeType;
|
|
72
|
-
poolAddresses: string[];
|
|
73
|
-
tokenPath: Token[];
|
|
74
|
-
toString(): string;
|
|
75
|
-
constructor({ amount, rawQuote, percent, route, gasModel, quoteToken, tradeType, v2PoolProvider, }: V2RouteWithValidQuoteParams);
|
|
76
|
-
}
|
|
32
|
+
export declare type RouteWithValidQuote = V3RouteWithValidQuote;
|
|
77
33
|
export declare type V3RouteWithValidQuoteParams = {
|
|
78
34
|
amount: CurrencyAmount;
|
|
79
35
|
rawQuote: BigNumber;
|
|
@@ -117,47 +73,3 @@ export declare class V3RouteWithValidQuote implements IV3RouteWithValidQuote {
|
|
|
117
73
|
toString(): string;
|
|
118
74
|
constructor({ amount, rawQuote, sqrtPriceX96AfterList, initializedTicksCrossedList, quoterGasEstimate, percent, route, gasModel, quoteToken, tradeType, v3PoolProvider, }: V3RouteWithValidQuoteParams);
|
|
119
75
|
}
|
|
120
|
-
export declare type MixedRouteWithValidQuoteParams = {
|
|
121
|
-
amount: CurrencyAmount;
|
|
122
|
-
rawQuote: BigNumber;
|
|
123
|
-
sqrtPriceX96AfterList: BigNumber[];
|
|
124
|
-
initializedTicksCrossedList: number[];
|
|
125
|
-
quoterGasEstimate: BigNumber;
|
|
126
|
-
percent: number;
|
|
127
|
-
route: MixedRoute;
|
|
128
|
-
mixedRouteGasModel: IGasModel<MixedRouteWithValidQuote>;
|
|
129
|
-
quoteToken: Token;
|
|
130
|
-
tradeType: TradeType;
|
|
131
|
-
v3PoolProvider: IV3PoolProvider;
|
|
132
|
-
v2PoolProvider: IV2PoolProvider;
|
|
133
|
-
};
|
|
134
|
-
/**
|
|
135
|
-
* Represents a quote for swapping on a Mixed Route. Contains all information
|
|
136
|
-
* such as the route used, the amount specified by the user, the type of quote
|
|
137
|
-
* (exact in or exact out), the quote itself, and gas estimates.
|
|
138
|
-
*
|
|
139
|
-
* @export
|
|
140
|
-
* @class MixedRouteWithValidQuote
|
|
141
|
-
*/
|
|
142
|
-
export declare class MixedRouteWithValidQuote implements IMixedRouteWithValidQuote {
|
|
143
|
-
readonly protocol = Protocol.MIXED;
|
|
144
|
-
amount: CurrencyAmount;
|
|
145
|
-
rawQuote: BigNumber;
|
|
146
|
-
quote: CurrencyAmount;
|
|
147
|
-
quoteAdjustedForGas: CurrencyAmount;
|
|
148
|
-
sqrtPriceX96AfterList: BigNumber[];
|
|
149
|
-
initializedTicksCrossedList: number[];
|
|
150
|
-
quoterGasEstimate: BigNumber;
|
|
151
|
-
percent: number;
|
|
152
|
-
route: MixedRoute;
|
|
153
|
-
quoteToken: Token;
|
|
154
|
-
gasModel: IGasModel<MixedRouteWithValidQuote>;
|
|
155
|
-
gasEstimate: BigNumber;
|
|
156
|
-
gasCostInToken: CurrencyAmount;
|
|
157
|
-
gasCostInUSD: CurrencyAmount;
|
|
158
|
-
tradeType: TradeType;
|
|
159
|
-
poolAddresses: string[];
|
|
160
|
-
tokenPath: Token[];
|
|
161
|
-
toString(): string;
|
|
162
|
-
constructor({ amount, rawQuote, sqrtPriceX96AfterList, initializedTicksCrossedList, quoterGasEstimate, percent, route, mixedRouteGasModel, quoteToken, tradeType, v3PoolProvider, v2PoolProvider, }: MixedRouteWithValidQuoteParams);
|
|
163
|
-
}
|
|
@@ -3,53 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
const
|
|
8
|
-
const router_sdk_1 = require("
|
|
9
|
-
const v3_sdk_1 = require("@uniswap/v3-sdk");
|
|
6
|
+
exports.V3RouteWithValidQuote = void 0;
|
|
7
|
+
const core_1 = require("@synthra-swap/sdk/core");
|
|
8
|
+
const router_sdk_1 = require("../../../util/router-sdk");
|
|
10
9
|
const lodash_1 = __importDefault(require("lodash"));
|
|
11
10
|
const amounts_1 = require("../../../util/amounts");
|
|
12
11
|
const routes_1 = require("../../../util/routes");
|
|
13
|
-
/**
|
|
14
|
-
* Represents a quote for swapping on a V2 only route. Contains all information
|
|
15
|
-
* such as the route used, the amount specified by the user, the type of quote
|
|
16
|
-
* (exact in or exact out), the quote itself, and gas estimates.
|
|
17
|
-
*
|
|
18
|
-
* @export
|
|
19
|
-
* @class V2RouteWithValidQuote
|
|
20
|
-
*/
|
|
21
|
-
class V2RouteWithValidQuote {
|
|
22
|
-
constructor({ amount, rawQuote, percent, route, gasModel, quoteToken, tradeType, v2PoolProvider, }) {
|
|
23
|
-
this.protocol = router_sdk_1.Protocol.V2;
|
|
24
|
-
this.amount = amount;
|
|
25
|
-
this.rawQuote = rawQuote;
|
|
26
|
-
this.quote = amounts_1.CurrencyAmount.fromRawAmount(quoteToken, rawQuote.toString());
|
|
27
|
-
this.percent = percent;
|
|
28
|
-
this.route = route;
|
|
29
|
-
this.gasModel = gasModel;
|
|
30
|
-
this.quoteToken = quoteToken;
|
|
31
|
-
this.tradeType = tradeType;
|
|
32
|
-
const { gasEstimate, gasCostInToken, gasCostInUSD } = this.gasModel.estimateGasCost(this);
|
|
33
|
-
this.gasCostInToken = gasCostInToken;
|
|
34
|
-
this.gasCostInUSD = gasCostInUSD;
|
|
35
|
-
this.gasEstimate = gasEstimate;
|
|
36
|
-
// If its exact out, we need to request *more* of the input token to account for the gas.
|
|
37
|
-
if (this.tradeType == sdk_core_1.TradeType.EXACT_INPUT) {
|
|
38
|
-
const quoteGasAdjusted = this.quote.subtract(gasCostInToken);
|
|
39
|
-
this.quoteAdjustedForGas = quoteGasAdjusted;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
const quoteGasAdjusted = this.quote.add(gasCostInToken);
|
|
43
|
-
this.quoteAdjustedForGas = quoteGasAdjusted;
|
|
44
|
-
}
|
|
45
|
-
this.poolAddresses = lodash_1.default.map(route.pairs, (p) => v2PoolProvider.getPoolAddress(p.token0, p.token1).poolAddress);
|
|
46
|
-
this.tokenPath = this.route.path;
|
|
47
|
-
}
|
|
48
|
-
toString() {
|
|
49
|
-
return `${this.percent.toFixed(2)}% QuoteGasAdj[${this.quoteAdjustedForGas.toExact()}] Quote[${this.quote.toExact()}] Gas[${this.gasEstimate.toString()}] = ${(0, routes_1.routeToString)(this.route)}`;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
exports.V2RouteWithValidQuote = V2RouteWithValidQuote;
|
|
53
12
|
/**
|
|
54
13
|
* Represents a quote for swapping on a V3 only route. Contains all information
|
|
55
14
|
* such as the route used, the amount specified by the user, the type of quote
|
|
@@ -77,7 +36,7 @@ class V3RouteWithValidQuote {
|
|
|
77
36
|
this.gasCostInUSD = gasCostInUSD;
|
|
78
37
|
this.gasEstimate = gasEstimate;
|
|
79
38
|
// If its exact out, we need to request *more* of the input token to account for the gas.
|
|
80
|
-
if (this.tradeType ==
|
|
39
|
+
if (this.tradeType == core_1.TradeType.EXACT_INPUT) {
|
|
81
40
|
const quoteGasAdjusted = this.quote.subtract(gasCostInToken);
|
|
82
41
|
this.quoteAdjustedForGas = quoteGasAdjusted;
|
|
83
42
|
}
|
|
@@ -93,51 +52,4 @@ class V3RouteWithValidQuote {
|
|
|
93
52
|
}
|
|
94
53
|
}
|
|
95
54
|
exports.V3RouteWithValidQuote = V3RouteWithValidQuote;
|
|
96
|
-
|
|
97
|
-
* Represents a quote for swapping on a Mixed Route. Contains all information
|
|
98
|
-
* such as the route used, the amount specified by the user, the type of quote
|
|
99
|
-
* (exact in or exact out), the quote itself, and gas estimates.
|
|
100
|
-
*
|
|
101
|
-
* @export
|
|
102
|
-
* @class MixedRouteWithValidQuote
|
|
103
|
-
*/
|
|
104
|
-
class MixedRouteWithValidQuote {
|
|
105
|
-
constructor({ amount, rawQuote, sqrtPriceX96AfterList, initializedTicksCrossedList, quoterGasEstimate, percent, route, mixedRouteGasModel, quoteToken, tradeType, v3PoolProvider, v2PoolProvider, }) {
|
|
106
|
-
this.protocol = router_sdk_1.Protocol.MIXED;
|
|
107
|
-
this.amount = amount;
|
|
108
|
-
this.rawQuote = rawQuote;
|
|
109
|
-
this.sqrtPriceX96AfterList = sqrtPriceX96AfterList;
|
|
110
|
-
this.initializedTicksCrossedList = initializedTicksCrossedList;
|
|
111
|
-
this.quoterGasEstimate = quoterGasEstimate;
|
|
112
|
-
this.quote = amounts_1.CurrencyAmount.fromRawAmount(quoteToken, rawQuote.toString());
|
|
113
|
-
this.percent = percent;
|
|
114
|
-
this.route = route;
|
|
115
|
-
this.gasModel = mixedRouteGasModel;
|
|
116
|
-
this.quoteToken = quoteToken;
|
|
117
|
-
this.tradeType = tradeType;
|
|
118
|
-
const { gasEstimate, gasCostInToken, gasCostInUSD } = this.gasModel.estimateGasCost(this);
|
|
119
|
-
this.gasCostInToken = gasCostInToken;
|
|
120
|
-
this.gasCostInUSD = gasCostInUSD;
|
|
121
|
-
this.gasEstimate = gasEstimate;
|
|
122
|
-
// If its exact out, we need to request *more* of the input token to account for the gas.
|
|
123
|
-
if (this.tradeType == sdk_core_1.TradeType.EXACT_INPUT) {
|
|
124
|
-
const quoteGasAdjusted = this.quote.subtract(gasCostInToken);
|
|
125
|
-
this.quoteAdjustedForGas = quoteGasAdjusted;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
const quoteGasAdjusted = this.quote.add(gasCostInToken);
|
|
129
|
-
this.quoteAdjustedForGas = quoteGasAdjusted;
|
|
130
|
-
}
|
|
131
|
-
this.poolAddresses = lodash_1.default.map(route.pools, (p) => {
|
|
132
|
-
return p instanceof v3_sdk_1.Pool
|
|
133
|
-
? v3PoolProvider.getPoolAddress(p.token0, p.token1, p.fee).poolAddress
|
|
134
|
-
: v2PoolProvider.getPoolAddress(p.token0, p.token1).poolAddress;
|
|
135
|
-
});
|
|
136
|
-
this.tokenPath = this.route.path;
|
|
137
|
-
}
|
|
138
|
-
toString() {
|
|
139
|
-
return `${this.percent.toFixed(2)}% QuoteGasAdj[${this.quoteAdjustedForGas.toExact()}] Quote[${this.quote.toExact()}] Gas[${this.gasEstimate.toString()}] = ${(0, routes_1.routeToString)(this.route)}`;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
exports.MixedRouteWithValidQuote = MixedRouteWithValidQuote;
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtd2l0aC12YWxpZC1xdW90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yb3V0ZXJzL2FscGhhLXJvdXRlci9lbnRpdGllcy9yb3V0ZS13aXRoLXZhbGlkLXF1b3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHFEQUEwRDtBQUMxRCxvREFBK0M7QUFDL0MsNENBQXVDO0FBQ3ZDLG9EQUF1QjtBQUl2QixtREFBdUQ7QUFDdkQsaURBQXFEO0FBMERyRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxxQkFBcUI7SUEwQmhDLFlBQVksRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLE9BQU8sRUFDUCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsY0FBYyxHQUNjO1FBbENkLGFBQVEsR0FBRyxxQkFBUSxDQUFDLEVBQUUsQ0FBQztRQW1DckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyx3QkFBYyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLEdBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFD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
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtd2l0aC12YWxpZC1xdW90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yb3V0ZXJzL2FscGhhLXJvdXRlci9lbnRpdGllcy9yb3V0ZS13aXRoLXZhbGlkLXF1b3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLGlEQUEwRDtBQUMxRCx5REFBb0Q7QUFDcEQsb0RBQXVCO0FBR3ZCLG1EQUF1RDtBQUN2RCxpREFBcUQ7QUFnRHJEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLHFCQUFxQjtJQTRCaEMsWUFBWSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IscUJBQXFCLEVBQ3JCLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsT0FBTyxFQUNQLEtBQUssRUFDTCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFNBQVMsRUFDVCxjQUFjLEdBQ2M7UUF2Q2QsYUFBUSxHQUFHLHFCQUFRLENBQUMsRUFBRSxDQUFDO1FBd0NyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLDJCQUEyQixDQUFDO1FBQy9ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLHdCQUFjLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUzQixNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsR0FDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFFL0IseUZBQXlGO1FBQ3pGLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxnQkFBUyxDQUFDLFdBQVcsRUFBRTtZQUMzQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztTQUM3QzthQUFNO1lBQ0wsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFDLENBQUMsR0FBRyxDQUN4QixLQUFLLENBQUMsS0FBSyxFQUNYLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUN2RSxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBeERNLFFBQVE7UUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQzVCLENBQUMsQ0FDRixpQkFBaUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxXQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFBLHNCQUFhLEVBQ3pJLElBQUksQ0FBQyxLQUFLLENBQ1gsRUFBRSxDQUFDO0lBQ04sQ0FBQztDQW1ERjtBQTdFRCxzREE2RUMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
-
import { ChainId, TradeType } from '@synthra-swap/sdk
|
|
2
|
+
import { ChainId, TradeType } from '@synthra-swap/sdk/core';
|
|
3
3
|
import { CurrencyAmount } from '../../../util/amounts';
|
|
4
4
|
import { AlphaRouterConfig } from '../alpha-router';
|
|
5
5
|
import { IGasModel } from '../gas-models';
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getBestSwapRouteBy = exports.getBestSwapRoute = void 0;
|
|
7
7
|
const bignumber_1 = require("@ethersproject/bignumber");
|
|
8
|
-
const
|
|
9
|
-
const router_sdk_1 = require("
|
|
8
|
+
const core_1 = require("@synthra-swap/sdk/core");
|
|
9
|
+
const router_sdk_1 = require("../../../util/router-sdk");
|
|
10
10
|
const jsbi_1 = __importDefault(require("jsbi"));
|
|
11
11
|
const lodash_1 = __importDefault(require("lodash"));
|
|
12
12
|
const fixed_reverse_heap_1 = __importDefault(require("mnemonist/fixed-reverse-heap"));
|
|
@@ -19,19 +19,6 @@ const routes_1 = require("../../../util/routes");
|
|
|
19
19
|
const gas_models_1 = require("../gas-models");
|
|
20
20
|
async function getBestSwapRoute(amount, percents, routesWithValidQuotes, routeType, chainId, routingConfig, gasModel) {
|
|
21
21
|
const now = Date.now();
|
|
22
|
-
const { forceMixedRoutes } = routingConfig;
|
|
23
|
-
/// Like with forceCrossProtocol, we apply that logic here when determining the bestSwapRoute
|
|
24
|
-
if (forceMixedRoutes) {
|
|
25
|
-
log_1.log.info({
|
|
26
|
-
forceMixedRoutes: forceMixedRoutes,
|
|
27
|
-
}, 'Forcing mixed routes by filtering out other route types');
|
|
28
|
-
routesWithValidQuotes = lodash_1.default.filter(routesWithValidQuotes, (quotes) => {
|
|
29
|
-
return quotes.protocol === router_sdk_1.Protocol.MIXED;
|
|
30
|
-
});
|
|
31
|
-
if (!routesWithValidQuotes) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
22
|
// Build a map of percentage of the input to list of valid quotes.
|
|
36
23
|
// Quotes can be null for a variety of reasons (not enough liquidity etc), so we drop them here too.
|
|
37
24
|
const percentToQuotes = {};
|
|
@@ -80,7 +67,7 @@ async function getBestSwapRouteBy(routeType, percentToQuotes, percents, chainId,
|
|
|
80
67
|
// Build a map of percentage to sorted list of quotes, with the biggest quote being first in the list.
|
|
81
68
|
const percentToSortedQuotes = lodash_1.default.mapValues(percentToQuotes, (routeQuotes) => {
|
|
82
69
|
return routeQuotes.sort((routeQuoteA, routeQuoteB) => {
|
|
83
|
-
if (routeType ==
|
|
70
|
+
if (routeType == core_1.TradeType.EXACT_INPUT) {
|
|
84
71
|
return by(routeQuoteA).greaterThan(by(routeQuoteB)) ? -1 : 1;
|
|
85
72
|
}
|
|
86
73
|
else {
|
|
@@ -88,7 +75,7 @@ async function getBestSwapRouteBy(routeType, percentToQuotes, percents, chainId,
|
|
|
88
75
|
}
|
|
89
76
|
});
|
|
90
77
|
});
|
|
91
|
-
const quoteCompFn = routeType ==
|
|
78
|
+
const quoteCompFn = routeType == core_1.TradeType.EXACT_INPUT
|
|
92
79
|
? (a, b) => a.greaterThan(b)
|
|
93
80
|
: (a, b) => a.lessThan(b);
|
|
94
81
|
const sumFn = (currencyAmounts) => {
|
|
@@ -104,8 +91,8 @@ async function getBestSwapRouteBy(routeType, percentToQuotes, percents, chainId,
|
|
|
104
91
|
const bestSwapsPerSplit = new fixed_reverse_heap_1.default(Array, (a, b) => {
|
|
105
92
|
return quoteCompFn(a.quote, b.quote) ? -1 : 1;
|
|
106
93
|
}, 3);
|
|
107
|
-
const { minSplits, maxSplits
|
|
108
|
-
if (!percentToSortedQuotes[100] || minSplits > 1
|
|
94
|
+
const { minSplits, maxSplits } = routingConfig;
|
|
95
|
+
if (!percentToSortedQuotes[100] || minSplits > 1) {
|
|
109
96
|
log_1.log.info({
|
|
110
97
|
percentToSortedQuotes: lodash_1.default.mapValues(percentToSortedQuotes, (p) => p.length),
|
|
111
98
|
}, 'Did not find a valid route without any splits. Continuing search anyway.');
|
|
@@ -191,7 +178,7 @@ async function getBestSwapRouteBy(routeType, percentToQuotes, percents, chainId,
|
|
|
191
178
|
// Find the best route in the complimentary percentage that doesn't re-use a pool already
|
|
192
179
|
// used in the current route. Re-using pools is not allowed as each swap through a pool changes its liquidity,
|
|
193
180
|
// so it would make the quotes inaccurate.
|
|
194
|
-
const routeWithQuoteA = findFirstRouteNotUsingUsedPools(curRoutes, candidateRoutesA
|
|
181
|
+
const routeWithQuoteA = findFirstRouteNotUsingUsedPools(curRoutes, candidateRoutesA);
|
|
195
182
|
if (!routeWithQuoteA) {
|
|
196
183
|
continue;
|
|
197
184
|
}
|
|
@@ -212,7 +199,7 @@ async function getBestSwapRouteBy(routeType, percentToQuotes, percents, chainId,
|
|
|
212
199
|
gasCostL1QuoteToken = gasCostL1.gasCostL1QuoteToken;
|
|
213
200
|
}
|
|
214
201
|
}
|
|
215
|
-
const quoteAfterL1Adjust = routeType ==
|
|
202
|
+
const quoteAfterL1Adjust = routeType == core_1.TradeType.EXACT_INPUT
|
|
216
203
|
? quoteNew.subtract(gasCostL1QuoteToken)
|
|
217
204
|
: quoteNew.add(gasCostL1QuoteToken);
|
|
218
205
|
bestSwapsPerSplit.push({
|
|
@@ -308,7 +295,7 @@ async function getBestSwapRouteBy(routeType, percentToQuotes, percents, chainId,
|
|
|
308
295
|
const estimatedGasUsedQuoteToken = sumFn(lodash_1.default.map(bestSwap, (routeWithValidQuote) => routeWithValidQuote.gasCostInToken)).add(gasCostL1QuoteToken);
|
|
309
296
|
const quote = sumFn(lodash_1.default.map(bestSwap, (routeWithValidQuote) => routeWithValidQuote.quote));
|
|
310
297
|
// Adjust the quoteGasAdjusted for the l1 fee
|
|
311
|
-
if (routeType ==
|
|
298
|
+
if (routeType == core_1.TradeType.EXACT_INPUT) {
|
|
312
299
|
const quoteGasAdjustedForL1 = quoteGasAdjusted.subtract(gasCostL1QuoteToken);
|
|
313
300
|
quoteGasAdjusted = quoteGasAdjustedForL1;
|
|
314
301
|
}
|
|
@@ -330,7 +317,7 @@ async function getBestSwapRouteBy(routeType, percentToQuotes, percents, chainId,
|
|
|
330
317
|
exports.getBestSwapRouteBy = getBestSwapRouteBy;
|
|
331
318
|
// We do not allow pools to be re-used across split routes, as swapping through a pool changes the pools state.
|
|
332
319
|
// Given a list of used routes, this function finds the first route in the list of candidate routes that does not re-use an already used pool.
|
|
333
|
-
const findFirstRouteNotUsingUsedPools = (usedRoutes, candidateRouteQuotes
|
|
320
|
+
const findFirstRouteNotUsingUsedPools = (usedRoutes, candidateRouteQuotes) => {
|
|
334
321
|
const poolAddressSet = new Set();
|
|
335
322
|
const usedPoolAddresses = (0, lodash_1.default)(usedRoutes)
|
|
336
323
|
.flatMap((r) => r.poolAddresses)
|
|
@@ -338,27 +325,13 @@ const findFirstRouteNotUsingUsedPools = (usedRoutes, candidateRouteQuotes, force
|
|
|
338
325
|
for (const poolAddress of usedPoolAddresses) {
|
|
339
326
|
poolAddressSet.add(poolAddress);
|
|
340
327
|
}
|
|
341
|
-
const protocolsSet = new Set();
|
|
342
|
-
const usedProtocols = (0, lodash_1.default)(usedRoutes)
|
|
343
|
-
.flatMap((r) => r.protocol)
|
|
344
|
-
.uniq()
|
|
345
|
-
.value();
|
|
346
|
-
for (const protocol of usedProtocols) {
|
|
347
|
-
protocolsSet.add(protocol);
|
|
348
|
-
}
|
|
349
328
|
for (const routeQuote of candidateRouteQuotes) {
|
|
350
|
-
const { poolAddresses
|
|
329
|
+
const { poolAddresses } = routeQuote;
|
|
351
330
|
if (poolAddresses.some((poolAddress) => poolAddressSet.has(poolAddress))) {
|
|
352
331
|
continue;
|
|
353
332
|
}
|
|
354
|
-
// This code is just for debugging. Allows us to force a cross-protocol split route by skipping
|
|
355
|
-
// consideration of routes that come from the same protocol as a used route.
|
|
356
|
-
const needToForce = forceCrossProtocol && protocolsSet.size == 1;
|
|
357
|
-
if (needToForce && protocolsSet.has(protocol)) {
|
|
358
|
-
continue;
|
|
359
|
-
}
|
|
360
333
|
return routeQuote;
|
|
361
334
|
}
|
|
362
335
|
return null;
|
|
363
336
|
};
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdC1zd2FwLXJvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2Z1bmN0aW9ucy9iZXN0LXN3YXAtcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0RBQXFEO0FBQ3JELHFEQUE0RDtBQUM1RCxvREFBK0M7QUFDL0MsZ0RBQXdCO0FBQ3hCLG9EQUF1QjtBQUN2QixzRkFBNEQ7QUFDNUQsNERBQW9DO0FBRXBDLHdDQUEyQztBQUMzQyxtREFBdUQ7QUFDdkQsMkNBQXdDO0FBQ3hDLGlEQUFnRTtBQUNoRSxpREFBMkU7QUFFM0UsOENBQStFO0FBZ0J4RSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLE1BQXNCLEVBQ3RCLFFBQWtCLEVBQ2xCLHFCQUE0QyxFQUM1QyxTQUFvQixFQUNwQixPQUFnQixFQUNoQixhQUFnQyxFQUNoQyxRQUEyQztJQUUzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFdkIsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsYUFBYSxDQUFDO0lBRTNDLDZGQUE2RjtJQUM3RixJQUFJLGdCQUFnQixFQUFFO1FBQ3BCLFNBQUcsQ0FBQyxJQUFJLENBQ047WUFDRSxnQkFBZ0IsRUFBRSxnQkFBZ0I7U0FDbkMsRUFDRCx5REFBeUQsQ0FDMUQsQ0FBQztRQUNGLHFCQUFxQixHQUFHLGdCQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakUsT0FBTyxNQUFNLENBQUMsUUFBUSxLQUFLLHFCQUFRLENBQUMsS0FBSyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7S0FDRjtJQUVELGtFQUFrRTtJQUNsRSxvR0FBb0c7SUFDcEcsTUFBTSxlQUFlLEdBQWlELEVB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
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdC1zd2FwLXJvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2Z1bmN0aW9ucy9iZXN0LXN3YXAtcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0RBQXFEO0FBQ3JELGlEQUE0RDtBQUM1RCx5REFBb0Q7QUFDcEQsZ0RBQXdCO0FBQ3hCLG9EQUF1QjtBQUN2QixzRkFBNEQ7QUFDNUQsNERBQW9DO0FBRXBDLHdDQUEyQztBQUMzQyxtREFBdUQ7QUFDdkQsMkNBQXdDO0FBQ3hDLGlEQUFnRTtBQUNoRSxpREFBMkU7QUFFM0UsOENBQStFO0FBZ0J4RSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLE1BQXNCLEVBQ3RCLFFBQWtCLEVBQ2xCLHFCQUE0QyxFQUM1QyxTQUFvQixFQUNwQixPQUFnQixFQUNoQixhQUFnQyxFQUNoQyxRQUEyQztJQUUzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFdkIsa0VBQWtFO0lBQ2xFLG9HQUFvRztJQUNwRyxNQUFNLGVBQWUsR0FBaUQsRUFBRSxDQUFDO0lBQ3pFLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxxQkFBcUIsRUFBRTtRQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pELGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDbkQ7UUFDRCxlQUFlLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDekU7SUFFRCxlQUFNLENBQUMsU0FBUyxDQUNkLGlDQUFpQyxFQUNqQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUNoQix5QkFBZ0IsQ0FBQyxZQUFZLENBQzlCLENBQUM7SUFFRix5RUFBeUU7SUFDekUsTUFB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
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Fraction } from '@synthra-swap/sdk
|
|
1
|
+
import { Fraction } from '@synthra-swap/sdk/core';
|
|
2
2
|
import { CurrencyAmount } from '../../../util/amounts';
|
|
3
3
|
export declare function calculateRatioAmountIn(optimalRatio: Fraction, inputTokenPrice: Fraction, inputBalance: CurrencyAmount, outputBalance: CurrencyAmount): CurrencyAmount;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.calculateRatioAmountIn = void 0;
|
|
4
|
-
const
|
|
4
|
+
const core_1 = require("@synthra-swap/sdk/core");
|
|
5
5
|
const amounts_1 = require("../../../util/amounts");
|
|
6
6
|
function calculateRatioAmountIn(optimalRatio, inputTokenPrice, inputBalance, outputBalance) {
|
|
7
7
|
// formula: amountToSwap = (inputBalance - (optimalRatio * outputBalance)) / ((optimalRatio * inputTokenPrice) + 1))
|
|
8
|
-
const amountToSwapRaw = new
|
|
8
|
+
const amountToSwapRaw = new core_1.Fraction(inputBalance.quotient)
|
|
9
9
|
.subtract(optimalRatio.multiply(outputBalance.quotient))
|
|
10
10
|
.divide(optimalRatio.multiply(inputTokenPrice).add(1));
|
|
11
11
|
if (amountToSwapRaw.lessThan(0)) {
|
|
@@ -15,4 +15,4 @@ function calculateRatioAmountIn(optimalRatio, inputTokenPrice, inputBalance, out
|
|
|
15
15
|
return amounts_1.CurrencyAmount.fromRawAmount(inputBalance.currency, amountToSwapRaw.quotient);
|
|
16
16
|
}
|
|
17
17
|
exports.calculateRatioAmountIn = calculateRatioAmountIn;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLXJhdGlvLWFtb3VudC1pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yb3V0ZXJzL2FscGhhLXJvdXRlci9mdW5jdGlvbnMvY2FsY3VsYXRlLXJhdGlvLWFtb3VudC1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBa0Q7QUFFbEQsbURBQXVEO0FBRXZELFNBQWdCLHNCQUFzQixDQUNwQyxZQUFzQixFQUN0QixlQUF5QixFQUN6QixZQUE0QixFQUM1QixhQUE2QjtJQUU3QixvSEFBb0g7SUFDcEgsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztTQUN4RCxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekQsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQy9CLDJEQUEyRDtRQUMzRCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7S0FDbEU7SUFFRCxPQUFPLHdCQUFjLENBQUMsYUFBYSxDQUNqQyxZQUFZLENBQUMsUUFBUSxFQUNyQixlQUFlLENBQUMsUUFBUSxDQUN6QixDQUFDO0FBQ0osQ0FBQztBQXBCRCx3REFvQkMifQ==
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { Token } from '@synthra-swap/sdk
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { MixedRoute, V2Route, V3Route } from '../../router';
|
|
1
|
+
import { Token } from '@synthra-swap/sdk/core';
|
|
2
|
+
import { Pool } from '@synthra-swap/sdk/v3';
|
|
3
|
+
import { V3Route } from '../../router';
|
|
5
4
|
export declare function computeAllV3Routes(tokenIn: Token, tokenOut: Token, pools: Pool[], maxHops: number): V3Route[];
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function computeAllMixedRoutes(tokenIn: Token, tokenOut: Token, parts: (Pool | Pair)[], maxHops: number): MixedRoute[];
|
|
8
|
-
export declare function computeAllRoutes<TPool extends Pair | Pool, TRoute extends V3Route | V2Route | MixedRoute>(tokenIn: Token, tokenOut: Token, buildRoute: (route: TPool[], tokenIn: Token, tokenOut: Token) => TRoute, pools: TPool[], maxHops: number): TRoute[];
|
|
5
|
+
export declare function computeAllRoutes<TPool extends Pool, TRoute extends V3Route>(tokenIn: Token, tokenOut: Token, buildRoute: (route: TPool[], tokenIn: Token, tokenOut: Token) => TRoute, pools: TPool[], maxHops: number): TRoute[];
|