@xspswap/smart-order-router 1.1.6 → 1.1.7
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/build/main/providers/caching/route/model/cached-routes.d.ts +3 -2
- package/build/main/providers/caching/route/model/cached-routes.js +4 -4
- package/build/main/providers/caching/route/route-caching-provider.d.ts +2 -1
- package/build/main/providers/caching/route/route-caching-provider.js +6 -11
- package/build/main/providers/caching-gas-provider.d.ts +1 -1
- package/build/main/providers/caching-gas-provider.js +1 -1
- package/build/main/providers/caching-token-list-provider.d.ts +2 -1
- package/build/main/providers/caching-token-list-provider.js +2 -1
- package/build/main/providers/caching-token-provider.d.ts +2 -1
- package/build/main/providers/caching-token-provider.js +5 -6
- package/build/main/providers/eth-estimate-gas-provider.d.ts +1 -1
- package/build/main/providers/eth-estimate-gas-provider.js +1 -1
- package/build/main/providers/multicall-uniswap-provider.d.ts +1 -1
- package/build/main/providers/multicall-uniswap-provider.js +3 -3
- package/build/main/providers/on-chain-gas-price-provider.d.ts +1 -1
- package/build/main/providers/on-chain-quote-provider.d.ts +1 -1
- package/build/main/providers/on-chain-quote-provider.js +13 -24
- package/build/main/providers/simulation-provider.d.ts +2 -2
- package/build/main/providers/simulation-provider.js +6 -6
- package/build/main/providers/swap-router-provider.d.ts +2 -1
- package/build/main/providers/swap-router-provider.js +2 -3
- package/build/main/providers/tenderly-simulation-provider.d.ts +1 -1
- package/build/main/providers/tenderly-simulation-provider.js +7 -8
- package/build/main/providers/token-provider.d.ts +2 -3
- package/build/main/providers/token-provider.js +30 -32
- package/build/main/providers/token-validator-provider.d.ts +2 -1
- package/build/main/providers/token-validator-provider.js +2 -3
- package/build/main/providers/uri-subgraph-provider.d.ts +1 -1
- package/build/main/providers/uri-subgraph-provider.js +1 -1
- package/build/main/providers/v2/caching-pool-provider.d.ts +3 -5
- package/build/main/providers/v2/caching-pool-provider.js +3 -5
- package/build/main/providers/v2/caching-subgraph-provider.d.ts +1 -1
- package/build/main/providers/v2/pool-provider.d.ts +4 -13
- package/build/main/providers/v2/pool-provider.js +10 -12
- package/build/main/providers/v2/quote-provider.js +2 -2
- package/build/main/providers/v2/static-subgraph-provider.d.ts +2 -1
- package/build/main/providers/v2/static-subgraph-provider.js +7 -7
- package/build/main/providers/v2/subgraph-provider.d.ts +2 -1
- package/build/main/providers/v2/subgraph-provider.js +1 -1
- package/build/main/providers/v3/caching-pool-provider.d.ts +3 -5
- package/build/main/providers/v3/caching-pool-provider.js +3 -5
- package/build/main/providers/v3/caching-subgraph-provider.d.ts +1 -1
- package/build/main/providers/v3/pool-provider.d.ts +3 -5
- package/build/main/providers/v3/pool-provider.js +8 -14
- package/build/main/providers/v3/static-subgraph-provider.d.ts +2 -1
- package/build/main/providers/v3/static-subgraph-provider.js +25 -37
- package/build/main/providers/v3/subgraph-provider.d.ts +2 -1
- package/build/main/providers/v3/subgraph-provider.js +2 -2
- package/build/main/routers/alpha-router/alpha-router.d.ts +6 -25
- package/build/main/routers/alpha-router/alpha-router.js +38 -100
- package/build/main/routers/alpha-router/config.d.ts +1 -1
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +7 -9
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +8 -8
- package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +2 -1
- package/build/main/routers/alpha-router/functions/best-swap-route.js +1 -1
- package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +3 -4
- package/build/main/routers/alpha-router/functions/compute-all-routes.js +6 -6
- package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +5 -7
- package/build/main/routers/alpha-router/functions/get-candidate-pools.js +17 -19
- package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +2 -1
- package/build/main/routers/alpha-router/gas-models/gas-model.js +4 -4
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +4 -4
- package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +12 -13
- 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 +11 -11
- package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +5 -4
- package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +3 -5
- package/build/main/routers/alpha-router/quoters/base-quoter.js +2 -3
- package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +3 -4
- package/build/main/routers/alpha-router/quoters/mixed-quoter.js +14 -80
- package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +3 -4
- package/build/main/routers/alpha-router/quoters/v2-quoter.js +4 -9
- package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +4 -5
- package/build/main/routers/alpha-router/quoters/v3-quoter.js +10 -9
- package/build/main/routers/legacy-router/bases.d.ts +2 -1
- package/build/main/routers/legacy-router/bases.js +6 -7
- package/build/main/routers/legacy-router/legacy-router.d.ts +2 -1
- package/build/main/routers/legacy-router/legacy-router.js +5 -5
- package/build/main/routers/router.d.ts +4 -7
- package/build/main/routers/router.js +8 -8
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/main/util/addresses.d.ts +21 -0
- package/build/main/util/addresses.js +59 -6
- package/build/main/util/chains.d.ts +11 -2
- package/build/main/util/chains.js +37 -18
- package/build/main/util/gas-factory-helpers.d.ts +3 -2
- package/build/main/util/gas-factory-helpers.js +6 -10
- package/build/main/util/methodParameters.d.ts +2 -2
- package/build/main/util/methodParameters.js +5 -5
- package/build/main/util/protocols.d.ts +0 -2
- package/build/main/util/protocols.js +2 -14
- package/build/main/util/routes.js +10 -19
- package/build/module/providers/caching/route/model/cached-routes.d.ts +3 -2
- package/build/module/providers/caching/route/model/cached-routes.js +4 -4
- package/build/module/providers/caching/route/route-caching-provider.d.ts +2 -1
- package/build/module/providers/caching/route/route-caching-provider.js +7 -12
- package/build/module/providers/caching-gas-provider.d.ts +1 -1
- package/build/module/providers/caching-gas-provider.js +1 -1
- package/build/module/providers/caching-token-list-provider.d.ts +2 -1
- package/build/module/providers/caching-token-list-provider.js +2 -1
- package/build/module/providers/caching-token-provider.d.ts +2 -1
- package/build/module/providers/caching-token-provider.js +5 -6
- package/build/module/providers/eth-estimate-gas-provider.d.ts +1 -1
- package/build/module/providers/eth-estimate-gas-provider.js +1 -1
- package/build/module/providers/multicall-uniswap-provider.d.ts +1 -1
- package/build/module/providers/multicall-uniswap-provider.js +3 -3
- package/build/module/providers/on-chain-gas-price-provider.d.ts +1 -1
- package/build/module/providers/on-chain-quote-provider.d.ts +1 -1
- package/build/module/providers/on-chain-quote-provider.js +16 -27
- package/build/module/providers/simulation-provider.d.ts +2 -2
- package/build/module/providers/simulation-provider.js +6 -6
- package/build/module/providers/swap-router-provider.d.ts +2 -1
- package/build/module/providers/swap-router-provider.js +2 -3
- package/build/module/providers/tenderly-simulation-provider.d.ts +1 -1
- package/build/module/providers/tenderly-simulation-provider.js +7 -8
- package/build/module/providers/token-provider.d.ts +2 -3
- package/build/module/providers/token-provider.js +10 -12
- package/build/module/providers/token-validator-provider.d.ts +2 -1
- package/build/module/providers/token-validator-provider.js +3 -4
- package/build/module/providers/uri-subgraph-provider.d.ts +1 -1
- package/build/module/providers/uri-subgraph-provider.js +1 -1
- package/build/module/providers/v2/caching-pool-provider.d.ts +3 -5
- package/build/module/providers/v2/caching-pool-provider.js +3 -5
- package/build/module/providers/v2/caching-subgraph-provider.d.ts +1 -1
- package/build/module/providers/v2/pool-provider.d.ts +4 -13
- package/build/module/providers/v2/pool-provider.js +10 -12
- package/build/module/providers/v2/quote-provider.js +2 -2
- package/build/module/providers/v2/static-subgraph-provider.d.ts +2 -1
- package/build/module/providers/v2/static-subgraph-provider.js +5 -5
- package/build/module/providers/v2/subgraph-provider.d.ts +2 -1
- package/build/module/providers/v2/subgraph-provider.js +1 -1
- package/build/module/providers/v3/caching-pool-provider.d.ts +3 -5
- package/build/module/providers/v3/caching-pool-provider.js +3 -5
- package/build/module/providers/v3/caching-subgraph-provider.d.ts +1 -1
- package/build/module/providers/v3/pool-provider.d.ts +3 -5
- package/build/module/providers/v3/pool-provider.js +8 -14
- package/build/module/providers/v3/static-subgraph-provider.d.ts +2 -1
- package/build/module/providers/v3/static-subgraph-provider.js +24 -36
- package/build/module/providers/v3/subgraph-provider.d.ts +2 -1
- package/build/module/providers/v3/subgraph-provider.js +2 -2
- package/build/module/routers/alpha-router/alpha-router.d.ts +6 -25
- package/build/module/routers/alpha-router/alpha-router.js +40 -102
- package/build/module/routers/alpha-router/config.d.ts +1 -1
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +7 -9
- package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +8 -8
- package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +2 -1
- package/build/module/routers/alpha-router/functions/best-swap-route.js +1 -1
- package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +3 -4
- package/build/module/routers/alpha-router/functions/compute-all-routes.js +6 -6
- package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +5 -7
- package/build/module/routers/alpha-router/functions/get-candidate-pools.js +19 -21
- package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +2 -1
- package/build/module/routers/alpha-router/gas-models/gas-model.js +3 -3
- package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +4 -4
- package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +13 -14
- 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 -8
- package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +6 -5
- package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +3 -5
- package/build/module/routers/alpha-router/quoters/base-quoter.js +2 -3
- package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +3 -4
- package/build/module/routers/alpha-router/quoters/mixed-quoter.js +15 -81
- package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +3 -4
- package/build/module/routers/alpha-router/quoters/v2-quoter.js +4 -9
- package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +4 -5
- package/build/module/routers/alpha-router/quoters/v3-quoter.js +10 -9
- package/build/module/routers/legacy-router/bases.d.ts +2 -1
- package/build/module/routers/legacy-router/bases.js +7 -8
- package/build/module/routers/legacy-router/legacy-router.d.ts +2 -1
- package/build/module/routers/legacy-router/legacy-router.js +6 -6
- package/build/module/routers/router.d.ts +4 -7
- package/build/module/routers/router.js +8 -8
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/build/module/util/addresses.d.ts +21 -0
- package/build/module/util/addresses.js +66 -3
- package/build/module/util/chains.d.ts +11 -2
- package/build/module/util/chains.js +32 -13
- package/build/module/util/gas-factory-helpers.d.ts +3 -2
- package/build/module/util/gas-factory-helpers.js +8 -12
- package/build/module/util/methodParameters.d.ts +2 -2
- package/build/module/util/methodParameters.js +7 -7
- package/build/module/util/protocols.d.ts +0 -2
- package/build/module/util/protocols.js +1 -11
- package/build/module/util/routes.js +11 -20
- package/package.json +1 -1
- package/build/main/providers/v2-fathom/constants.d.ts +0 -2
- package/build/main/providers/v2-fathom/constants.js +0 -6
- package/build/main/providers/v2-fathom/static-subgraph-provider.d.ts +0 -22
- package/build/main/providers/v2-fathom/static-subgraph-provider.js +0 -169
- package/build/main/providers/v2-fathom/subgraph-provider.d.ts +0 -34
- package/build/main/providers/v2-fathom/subgraph-provider.js +0 -130
- package/build/main/providers/v2-fathom/utils.d.ts +0 -2
- package/build/main/providers/v2-fathom/utils.js +0 -14
- package/build/main/providers/v3/static-subgraph-provider-v3-uni.d.ts +0 -29
- package/build/main/providers/v3/static-subgraph-provider-v3-uni.js +0 -209
- package/build/module/providers/v2-fathom/constants.d.ts +0 -2
- package/build/module/providers/v2-fathom/constants.js +0 -3
- package/build/module/providers/v2-fathom/static-subgraph-provider.d.ts +0 -22
- package/build/module/providers/v2-fathom/static-subgraph-provider.js +0 -162
- package/build/module/providers/v2-fathom/subgraph-provider.d.ts +0 -34
- package/build/module/providers/v2-fathom/subgraph-provider.js +0 -131
- package/build/module/providers/v2-fathom/utils.d.ts +0 -2
- package/build/module/providers/v2-fathom/utils.js +0 -10
- package/build/module/providers/v3/static-subgraph-provider-v3-uni.d.ts +0 -29
- package/build/module/providers/v3/static-subgraph-provider-v3-uni.js +0 -202
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.StaticV2FathomSubgraphProvider = exports.FATHOM_V2_XDC_ADDITIONAL_BASES = void 0;
|
|
7
|
-
const sdk_core_1 = require("@x-swap-protocol/sdk-core");
|
|
8
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const log_1 = require("../../util/log");
|
|
10
|
-
const token_provider_1 = require("../token-provider");
|
|
11
|
-
const utils_1 = require("./utils");
|
|
12
|
-
const BASES_TO_CHECK_TRADES_AGAINST = {
|
|
13
|
-
[sdk_core_1.ChainId.XDC]: [token_provider_1.WXDC_XDC, token_provider_1.FXD_XDC],
|
|
14
|
-
[sdk_core_1.ChainId.APOTHEM]: [],
|
|
15
|
-
};
|
|
16
|
-
const ADDITIONAL_BASES = {
|
|
17
|
-
[sdk_core_1.ChainId.XDC]: {
|
|
18
|
-
[token_provider_1.WXDC_XDC.address]: [token_provider_1.USDT_XDC, token_provider_1.FXD_XDC],
|
|
19
|
-
[token_provider_1.FXD_XDC.address]: [token_provider_1.WXDC_XDC, token_provider_1.USDT_XDC, token_provider_1.EURS_XDC],
|
|
20
|
-
[token_provider_1.USDT_XDC.address]: [token_provider_1.WXDC_XDC, token_provider_1.FXD_XDC],
|
|
21
|
-
[token_provider_1.EURS_XDC.address]: [token_provider_1.FXD_XDC],
|
|
22
|
-
[token_provider_1.PLI_XDC.address]: [token_provider_1.WXDC_XDC],
|
|
23
|
-
},
|
|
24
|
-
[sdk_core_1.ChainId.APOTHEM]: {},
|
|
25
|
-
};
|
|
26
|
-
exports.FATHOM_V2_XDC_ADDITIONAL_BASES = ADDITIONAL_BASES[sdk_core_1.ChainId.XDC];
|
|
27
|
-
let paths = [];
|
|
28
|
-
const recFinder = (path, used, lastToken, dest, hops) => {
|
|
29
|
-
const hop = path.length;
|
|
30
|
-
if (hop < hops) {
|
|
31
|
-
if (!lastToken) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const additional = exports.FATHOM_V2_XDC_ADDITIONAL_BASES[lastToken.address];
|
|
35
|
-
if (additional) {
|
|
36
|
-
for (const ad of additional) {
|
|
37
|
-
const adToken = ad;
|
|
38
|
-
const newPair = [lastToken, adToken];
|
|
39
|
-
const newPath = [...path, newPair];
|
|
40
|
-
if (adToken.address === dest.address) {
|
|
41
|
-
paths.push(newPath);
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
if (!used[adToken.address]) {
|
|
45
|
-
recFinder(newPath, Object.assign(Object.assign({}, used), { [adToken.address]: true }), adToken, dest, hops);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Provider that does not get data from an external source and instead returns
|
|
53
|
-
* a hardcoded list of Subgraph pools.
|
|
54
|
-
*
|
|
55
|
-
* Since the pools are hardcoded, the liquidity/price values are dummys and should not
|
|
56
|
-
* be depended on.
|
|
57
|
-
*
|
|
58
|
-
* Useful for instances where other data sources are unavailable. E.g. subgraph not available.
|
|
59
|
-
*
|
|
60
|
-
* @export
|
|
61
|
-
* @class StaticV2SubgraphProvider
|
|
62
|
-
*/
|
|
63
|
-
class StaticV2FathomSubgraphProvider {
|
|
64
|
-
constructor(chainId) {
|
|
65
|
-
this.chainId = chainId;
|
|
66
|
-
}
|
|
67
|
-
async getPools(tokenIn, tokenOut) {
|
|
68
|
-
paths = [];
|
|
69
|
-
log_1.log.info('In static subgraph provider for V2');
|
|
70
|
-
const bases = BASES_TO_CHECK_TRADES_AGAINST[this.chainId];
|
|
71
|
-
const basePairs = lodash_1.default.flatMap(bases, (base) => bases.map((otherBase) => [base, otherBase]));
|
|
72
|
-
let pairs = [];
|
|
73
|
-
if (tokenIn && tokenOut) {
|
|
74
|
-
const additionalIn = ADDITIONAL_BASES[this.chainId][tokenIn.address];
|
|
75
|
-
const additionalOut = ADDITIONAL_BASES[this.chainId][tokenOut.address];
|
|
76
|
-
if (!additionalIn || !additionalOut) {
|
|
77
|
-
basePairs.push([tokenIn, tokenOut]);
|
|
78
|
-
if (additionalIn) {
|
|
79
|
-
basePairs.push(...additionalIn.map((v) => [tokenIn, v]));
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
basePairs.push(...bases.map((base) => [tokenIn, base]));
|
|
83
|
-
}
|
|
84
|
-
if (additionalOut) {
|
|
85
|
-
basePairs.push(...additionalOut.map((v) => [tokenOut, v]));
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
basePairs.push(...bases.map((base) => [tokenOut, base]));
|
|
89
|
-
}
|
|
90
|
-
pairs = (0, lodash_1.default)(basePairs)
|
|
91
|
-
.filter((tokens) => Boolean(tokens[0] && tokens[1]))
|
|
92
|
-
.filter(([tokenA, tokenB]) => tokenA.address !== tokenB.address && !tokenA.equals(tokenB))
|
|
93
|
-
.flatMap(([tokenA, tokenB]) => {
|
|
94
|
-
const additionalA = ADDITIONAL_BASES[this.chainId][tokenA.address];
|
|
95
|
-
// const additionalB = ADDITIONAL_BASES[this.chainId][tokenB.address];
|
|
96
|
-
if (additionalA) {
|
|
97
|
-
const additionalPool = additionalA.filter((v) => v.address.toLowerCase() === tokenB.address.toLowerCase());
|
|
98
|
-
const res = additionalPool.map((v) => {
|
|
99
|
-
return [tokenA, v];
|
|
100
|
-
});
|
|
101
|
-
return res;
|
|
102
|
-
}
|
|
103
|
-
return [[tokenA, tokenB]];
|
|
104
|
-
})
|
|
105
|
-
.value();
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
recFinder([], { [tokenIn.address]: true }, tokenIn, tokenOut, 5);
|
|
109
|
-
// console.log(
|
|
110
|
-
// paths.map((path) =>
|
|
111
|
-
// path
|
|
112
|
-
// .map(
|
|
113
|
-
// (p) => `(${p[0].symbol} - ${p[1].symbol} : ${p[2] / 10000}% )`
|
|
114
|
-
// )
|
|
115
|
-
// .join(' --> ')
|
|
116
|
-
// )
|
|
117
|
-
// );
|
|
118
|
-
const uniquePairs = {};
|
|
119
|
-
paths.forEach((path) => {
|
|
120
|
-
path.forEach((pool) => {
|
|
121
|
-
const id = `${pool[0].address}-${pool[1].address}`;
|
|
122
|
-
uniquePairs[id] = pool;
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
const direct = tokenIn && tokenOut ? [[tokenIn, tokenOut]] : [];
|
|
126
|
-
pairs = [...Object.values(uniquePairs), ...direct];
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
// pairs = _(basePairs)
|
|
130
|
-
// .filter((tokens): tokens is [Token, Token] =>
|
|
131
|
-
// Boolean(tokens[0] && tokens[1])
|
|
132
|
-
// )
|
|
133
|
-
// .filter(
|
|
134
|
-
// ([tokenA, tokenB]) =>
|
|
135
|
-
// tokenA.address !== tokenB.address && !tokenA.equals(tokenB)
|
|
136
|
-
// )
|
|
137
|
-
// .value();
|
|
138
|
-
const poolAddressSet = new Set();
|
|
139
|
-
const subgraphPools = (0, lodash_1.default)(pairs)
|
|
140
|
-
.map(([tokenA, tokenB]) => {
|
|
141
|
-
const poolAddress = (0, utils_1.getFathomPoolAddress)(tokenA, tokenB);
|
|
142
|
-
if (poolAddressSet.has(poolAddress)) {
|
|
143
|
-
return undefined;
|
|
144
|
-
}
|
|
145
|
-
poolAddressSet.add(poolAddress);
|
|
146
|
-
const [token0, token1] = tokenA.sortsBefore(tokenB)
|
|
147
|
-
? [tokenA, tokenB]
|
|
148
|
-
: [tokenB, tokenA];
|
|
149
|
-
return {
|
|
150
|
-
id: poolAddress,
|
|
151
|
-
liquidity: '100',
|
|
152
|
-
token0: {
|
|
153
|
-
id: token0.address,
|
|
154
|
-
},
|
|
155
|
-
token1: {
|
|
156
|
-
id: token1.address,
|
|
157
|
-
},
|
|
158
|
-
supply: 100,
|
|
159
|
-
reserve: 100,
|
|
160
|
-
reserveUSD: 100,
|
|
161
|
-
};
|
|
162
|
-
})
|
|
163
|
-
.compact()
|
|
164
|
-
.value();
|
|
165
|
-
return subgraphPools;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
exports.StaticV2FathomSubgraphProvider = StaticV2FathomSubgraphProvider;
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXN1YmdyYXBoLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy92Mi1mYXRob20vc3RhdGljLXN1YmdyYXBoLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdEQUEyRDtBQUMzRCxvREFBdUI7QUFFdkIsd0NBQXFDO0FBQ3JDLHNEQU0yQjtBQUczQixtQ0FBK0M7QUFNL0MsTUFBTSw2QkFBNkIsR0FBbUI7SUFDcEQsQ0FBQyxrQkFBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMseUJBQVEsRUFBRSx3QkFBTyxDQUFDO0lBQ2xDLENBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO0NBQ3RCLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUVsQjtJQUNGLENBQUMsa0JBQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNiLENBQUMseUJBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHlCQUFRLEVBQUUsd0JBQU8sQ0FBQztRQUN2QyxDQUFDLHdCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyx5QkFBUSxFQUFFLHlCQUFRLEVBQUUseUJBQVEsQ0FBQztRQUNqRCxDQUFDLHlCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyx5QkFBUSxFQUFFLHdCQUFPLENBQUM7UUFDdkMsQ0FBQyx5QkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsd0JBQU8sQ0FBQztRQUM3QixDQUFDLHdCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyx5QkFBUSxDQUFDO0tBQzlCO0lBQ0QsQ0FBQyxrQkFBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7Q0FDdEIsQ0FBQztBQUNXLFFBQUEsOEJBQThCLEdBQUcsZ0JBQWdCLENBQUMsa0JBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUU1RSxJQUFJLEtBQUssR0FBdUIsRUFBRSxDQUFDO0FBRW5D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
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ChainId, Token } from '@x-swap-protocol/sdk-core';
|
|
2
|
-
import { ProviderConfig } from '../provider';
|
|
3
|
-
export interface V2SubgraphPool {
|
|
4
|
-
id: string;
|
|
5
|
-
token0: {
|
|
6
|
-
id: string;
|
|
7
|
-
};
|
|
8
|
-
token1: {
|
|
9
|
-
id: string;
|
|
10
|
-
};
|
|
11
|
-
supply: number;
|
|
12
|
-
reserve: number;
|
|
13
|
-
reserveUSD: number;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Provider for getting V2 pools from the Subgraph
|
|
17
|
-
*
|
|
18
|
-
* @export
|
|
19
|
-
* @interface IV2SubgraphProvider
|
|
20
|
-
*/
|
|
21
|
-
export interface IV2SubgraphProvider {
|
|
22
|
-
getPools(tokenIn?: Token, tokenOut?: Token, providerConfig?: ProviderConfig): Promise<V2SubgraphPool[]>;
|
|
23
|
-
}
|
|
24
|
-
export declare class V2SubgraphProvider implements IV2SubgraphProvider {
|
|
25
|
-
private chainId;
|
|
26
|
-
private subgraphUrl;
|
|
27
|
-
private retries;
|
|
28
|
-
private timeout;
|
|
29
|
-
private rollback;
|
|
30
|
-
private pageSize;
|
|
31
|
-
private client;
|
|
32
|
-
constructor(chainId: ChainId, subgraphUrl: string, retries?: number, timeout?: number, rollback?: boolean, pageSize?: number);
|
|
33
|
-
getPools(_tokenIn?: Token, _tokenOut?: Token, providerConfig?: ProviderConfig): Promise<V2SubgraphPool[]>;
|
|
34
|
-
}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.V2SubgraphProvider = void 0;
|
|
7
|
-
const async_retry_1 = __importDefault(require("async-retry"));
|
|
8
|
-
const await_timeout_1 = __importDefault(require("await-timeout"));
|
|
9
|
-
const graphql_request_1 = require("graphql-request");
|
|
10
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
11
|
-
const log_1 = require("../../util/log");
|
|
12
|
-
const threshold = 0.025;
|
|
13
|
-
const PAGE_SIZE = 1000; // 1k is max possible query size from subgraph.
|
|
14
|
-
class V2SubgraphProvider {
|
|
15
|
-
constructor(chainId, subgraphUrl, retries = 2, timeout = 360000, rollback = true, pageSize = PAGE_SIZE) {
|
|
16
|
-
this.chainId = chainId;
|
|
17
|
-
this.subgraphUrl = subgraphUrl;
|
|
18
|
-
this.retries = retries;
|
|
19
|
-
this.timeout = timeout;
|
|
20
|
-
this.rollback = rollback;
|
|
21
|
-
this.pageSize = pageSize;
|
|
22
|
-
if (!subgraphUrl) {
|
|
23
|
-
throw new Error(`No subgraph url for chain id: ${this.chainId}`);
|
|
24
|
-
}
|
|
25
|
-
this.client = new graphql_request_1.GraphQLClient(this.subgraphUrl);
|
|
26
|
-
}
|
|
27
|
-
async getPools(_tokenIn, _tokenOut, providerConfig) {
|
|
28
|
-
let blockNumber = (providerConfig === null || providerConfig === void 0 ? void 0 : providerConfig.blockNumber)
|
|
29
|
-
? await providerConfig.blockNumber
|
|
30
|
-
: undefined;
|
|
31
|
-
// Due to limitations with the Subgraph API this is the only way to parameterize the query.
|
|
32
|
-
const query2 = (0, graphql_request_1.gql) `
|
|
33
|
-
query getPools($pageSize: Int!, $id: String) {
|
|
34
|
-
pairs(
|
|
35
|
-
first: $pageSize
|
|
36
|
-
${blockNumber ? `block: { number: ${blockNumber} }` : ``}
|
|
37
|
-
where: { id_gt: $id }
|
|
38
|
-
) {
|
|
39
|
-
id
|
|
40
|
-
token0 { id, symbol }
|
|
41
|
-
token1 { id, symbol }
|
|
42
|
-
totalSupply
|
|
43
|
-
trackedReserveETH
|
|
44
|
-
reserveUSD
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
`;
|
|
48
|
-
let pools = [];
|
|
49
|
-
log_1.log.info(`Getting V2 pools from the subgraph with page size ${this.pageSize}${(providerConfig === null || providerConfig === void 0 ? void 0 : providerConfig.blockNumber)
|
|
50
|
-
? ` as of block ${providerConfig === null || providerConfig === void 0 ? void 0 : providerConfig.blockNumber}`
|
|
51
|
-
: ''}.`);
|
|
52
|
-
await (0, async_retry_1.default)(async () => {
|
|
53
|
-
const timeout = new await_timeout_1.default();
|
|
54
|
-
const getPools = async () => {
|
|
55
|
-
let lastId = '';
|
|
56
|
-
let pairs = [];
|
|
57
|
-
let pairsPage = [];
|
|
58
|
-
do {
|
|
59
|
-
await (0, async_retry_1.default)(async () => {
|
|
60
|
-
const poolsResult = await this.client.request(query2, {
|
|
61
|
-
pageSize: this.pageSize,
|
|
62
|
-
id: lastId,
|
|
63
|
-
});
|
|
64
|
-
pairsPage = poolsResult.pairs;
|
|
65
|
-
pairs = pairs.concat(pairsPage);
|
|
66
|
-
lastId = pairs[pairs.length - 1].id;
|
|
67
|
-
}, {
|
|
68
|
-
retries: this.retries,
|
|
69
|
-
onRetry: (err, retry) => {
|
|
70
|
-
pools = [];
|
|
71
|
-
log_1.log.info({ err }, `Failed request for page of pools from subgraph. Retry attempt: ${retry}`);
|
|
72
|
-
},
|
|
73
|
-
});
|
|
74
|
-
} while (pairsPage.length > 0);
|
|
75
|
-
return pairs;
|
|
76
|
-
};
|
|
77
|
-
/* eslint-disable no-useless-catch */
|
|
78
|
-
try {
|
|
79
|
-
const getPoolsPromise = getPools();
|
|
80
|
-
const timerPromise = timeout.set(this.timeout).then(() => {
|
|
81
|
-
throw new Error(`Timed out getting pools from subgraph: ${this.timeout}`);
|
|
82
|
-
});
|
|
83
|
-
pools = await Promise.race([getPoolsPromise, timerPromise]);
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
catch (err) {
|
|
87
|
-
throw err;
|
|
88
|
-
}
|
|
89
|
-
finally {
|
|
90
|
-
timeout.clear();
|
|
91
|
-
}
|
|
92
|
-
/* eslint-enable no-useless-catch */
|
|
93
|
-
}, {
|
|
94
|
-
retries: this.retries,
|
|
95
|
-
onRetry: (err, retry) => {
|
|
96
|
-
if (this.rollback &&
|
|
97
|
-
blockNumber &&
|
|
98
|
-
lodash_1.default.includes(err.message, 'indexed up to')) {
|
|
99
|
-
blockNumber = blockNumber - 10;
|
|
100
|
-
log_1.log.info(`Detected subgraph indexing error. Rolled back block number to: ${blockNumber}`);
|
|
101
|
-
}
|
|
102
|
-
pools = [];
|
|
103
|
-
log_1.log.info({ err }, `Failed to get pools from subgraph. Retry attempt: ${retry}`);
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
// Filter pools that have tracked reserve ETH less than threshold.
|
|
107
|
-
// trackedReserveETH filters pools that do not involve a pool from this allowlist:
|
|
108
|
-
// https://github.com/Uniswap/v2-subgraph/blob/7c82235cad7aee4cfce8ea82f0030af3d224833e/src/mappings/pricing.ts#L43
|
|
109
|
-
// Which helps filter pools with manipulated prices/liquidity.
|
|
110
|
-
// TODO: Remove. Temporary fix to ensure tokens without trackedReserveETH are in the list.
|
|
111
|
-
const FEI = '0x956f47f50a910163d8bf957cf5846d573e7f87ca';
|
|
112
|
-
const poolsSanitized = pools
|
|
113
|
-
.filter((pool) => {
|
|
114
|
-
return (pool.token0.id == FEI ||
|
|
115
|
-
pool.token1.id == FEI ||
|
|
116
|
-
parseFloat(pool.trackedReserveETH) > threshold);
|
|
117
|
-
})
|
|
118
|
-
.map((pool) => {
|
|
119
|
-
return Object.assign(Object.assign({}, pool), { id: pool.id.toLowerCase(), token0: {
|
|
120
|
-
id: pool.token0.id.toLowerCase(),
|
|
121
|
-
}, token1: {
|
|
122
|
-
id: pool.token1.id.toLowerCase(),
|
|
123
|
-
}, supply: parseFloat(pool.totalSupply), reserve: parseFloat(pool.trackedReserveETH), reserveUSD: parseFloat(pool.reserveUSD) });
|
|
124
|
-
});
|
|
125
|
-
log_1.log.info(`Got ${pools.length} V2 pools from the subgraph. ${poolsSanitized.length} after filtering`);
|
|
126
|
-
return poolsSanitized;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
exports.V2SubgraphProvider = V2SubgraphProvider;
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZ3JhcGgtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3YyLWZhdGhvbS9zdWJncmFwaC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSw4REFBZ0M7QUFDaEMsa0VBQW9DO0FBQ3BDLHFEQUFxRDtBQUNyRCxvREFBdUI7QUFFdkIsd0NBQXFDO0FBK0JyQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFFeEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsK0NBQStDO0FBZ0J2RSxNQUFhLGtCQUFrQjtJQUc3QixZQUNVLE9BQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLFVBQVUsQ0FBQyxFQUNYLFVBQVUsTUFBTSxFQUNoQixXQUFXLElBQUksRUFDZixXQUFXLFNBQVM7UUFMcEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFJO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFPO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUU1QixJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLCtCQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUNuQixRQUFnQixFQUNoQixTQUFpQixFQUNqQixjQUErQjtRQUUvQixJQUFJLFdBQVcsR0FBRyxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxXQUFXO1lBQzNDLENBQUMsQ0FBQyxNQUFNLGNBQWMsQ0FBQyxXQUFXO1lBQ2xDLENBQUMs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
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFathomPoolAddress = void 0;
|
|
4
|
-
const address_1 = require("@ethersproject/address");
|
|
5
|
-
const solidity_1 = require("@ethersproject/solidity");
|
|
6
|
-
const constants_1 = require("./constants");
|
|
7
|
-
const getFathomPoolAddress = (tokenA, tokenB) => {
|
|
8
|
-
const [token0, token1] = tokenA.sortsBefore(tokenB)
|
|
9
|
-
? [tokenA, tokenB]
|
|
10
|
-
: [tokenB, tokenA];
|
|
11
|
-
return (0, address_1.getCreate2Address)(constants_1.FATHOM_FACTORY_ADDRESS, (0, solidity_1.keccak256)(['bytes'], [(0, solidity_1.pack)(['address', 'address'], [token0.address, token1.address])]), constants_1.FATHOM_INIT_CODE_HASH);
|
|
12
|
-
};
|
|
13
|
-
exports.getFathomPoolAddress = getFathomPoolAddress;
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3YyLWZhdGhvbS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBMkQ7QUFDM0Qsc0RBQTBEO0FBRzFELDJDQUE0RTtBQUVyRSxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBYSxFQUFFLE1BQWEsRUFBRSxFQUFFO0lBQ25FLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFckIsT0FBTyxJQUFBLDJCQUFpQixFQUN0QixrQ0FBc0IsRUFDdEIsSUFBQSxvQkFBUyxFQUNQLENBQUMsT0FBTyxDQUFDLEVBQ1QsQ0FBQyxJQUFBLGVBQUksRUFBQyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDakUsRUFDRCxpQ0FBcUIsQ0FDdEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQWJXLFFBQUEsb0JBQW9CLHdCQWEvQiJ9
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ChainId, Token } from '@x-swap-protocol/sdk-core';
|
|
2
|
-
import { FeeAmount } from '@x-swap-protocol/v3-sdk';
|
|
3
|
-
import { IV3PoolProvider } from './pool-provider';
|
|
4
|
-
import { IV3SubgraphProvider, V3SubgraphPool } from './subgraph-provider';
|
|
5
|
-
export declare const ADDITIONAL_BASES: {
|
|
6
|
-
[chainId in ChainId]: {
|
|
7
|
-
[tokenAddress: string]: [Token, FeeAmount][];
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
export declare const Uni_V3_XDC_ADDITIONAL_BASES: {
|
|
11
|
-
[tokenAddress: string]: [Token, FeeAmount][];
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Provider that uses a hardcoded list of V3 pools to generate a list of subgraph pools.
|
|
15
|
-
*
|
|
16
|
-
* Since the pools are hardcoded and the data does not come from the Subgraph, the TVL values
|
|
17
|
-
* are dummys and should not be depended on.
|
|
18
|
-
*
|
|
19
|
-
* Useful for instances where other data sources are unavailable. E.g. Subgraph not available.
|
|
20
|
-
*
|
|
21
|
-
* @export
|
|
22
|
-
* @class StaticV3SubgraphProvider
|
|
23
|
-
*/
|
|
24
|
-
export declare class StaticV3UniSubgraphProvider implements IV3SubgraphProvider {
|
|
25
|
-
private chainId;
|
|
26
|
-
private poolProvider;
|
|
27
|
-
constructor(chainId: ChainId, poolProvider: IV3PoolProvider);
|
|
28
|
-
getPools(tokenIn?: Token, tokenOut?: Token): Promise<V3SubgraphPool[]>;
|
|
29
|
-
}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.StaticV3UniSubgraphProvider = exports.Uni_V3_XDC_ADDITIONAL_BASES = exports.ADDITIONAL_BASES = void 0;
|
|
7
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
8
|
-
const sdk_core_1 = require("@x-swap-protocol/sdk-core");
|
|
9
|
-
const v3_sdk_1 = require("@x-swap-protocol/v3-sdk");
|
|
10
|
-
const jsbi_1 = __importDefault(require("jsbi"));
|
|
11
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
12
|
-
const amounts_1 = require("../../util/amounts");
|
|
13
|
-
const log_1 = require("../../util/log");
|
|
14
|
-
const token_provider_1 = require("../token-provider");
|
|
15
|
-
const BASES_TO_CHECK_TRADES_AGAINST = {
|
|
16
|
-
[sdk_core_1.ChainId.XDC]: [sdk_core_1.WETH9[sdk_core_1.ChainId.XDC], token_provider_1.USDC_XDC],
|
|
17
|
-
[sdk_core_1.ChainId.APOTHEM]: [sdk_core_1.WETH9[sdk_core_1.ChainId.APOTHEM]],
|
|
18
|
-
};
|
|
19
|
-
exports.ADDITIONAL_BASES = {
|
|
20
|
-
[sdk_core_1.ChainId.XDC]: {
|
|
21
|
-
[sdk_core_1.WETH9[sdk_core_1.ChainId.XDC].address]: [
|
|
22
|
-
[token_provider_1.USDC_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
23
|
-
[token_provider_1.GAMA_XDC, v3_sdk_1.FeeAmount.LOWEST],
|
|
24
|
-
[token_provider_1.stgUSDT_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
25
|
-
[token_provider_1.SRX_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
26
|
-
[token_provider_1.CGO_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
27
|
-
[token_provider_1.BBB_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
28
|
-
[token_provider_1.SRX_XDC, v3_sdk_1.FeeAmount.HIGH],
|
|
29
|
-
],
|
|
30
|
-
[token_provider_1.USDC_XDC.address]: [
|
|
31
|
-
[token_provider_1.CGO_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
32
|
-
[token_provider_1.WXDC_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
33
|
-
[token_provider_1.SRX_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
34
|
-
[token_provider_1.stgUSDT_XDC, v3_sdk_1.FeeAmount.LOW],
|
|
35
|
-
],
|
|
36
|
-
[token_provider_1.GAMA_XDC.address]: [
|
|
37
|
-
[token_provider_1.WXDC_XDC, v3_sdk_1.FeeAmount.LOWEST],
|
|
38
|
-
[token_provider_1.USDC_XDC, v3_sdk_1.FeeAmount.LOWEST],
|
|
39
|
-
],
|
|
40
|
-
[token_provider_1.stgUSDT_XDC.address]: [
|
|
41
|
-
[token_provider_1.WXDC_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
42
|
-
[token_provider_1.USDC_XDC, v3_sdk_1.FeeAmount.LOW],
|
|
43
|
-
],
|
|
44
|
-
[token_provider_1.CGO_XDC.address]: [
|
|
45
|
-
[token_provider_1.WXDC_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
46
|
-
[token_provider_1.USDC_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
47
|
-
],
|
|
48
|
-
[token_provider_1.BBB_XDC.address]: [[token_provider_1.WXDC_XDC, v3_sdk_1.FeeAmount.MEDIUM]],
|
|
49
|
-
[token_provider_1.SRX_XDC.address]: [
|
|
50
|
-
[token_provider_1.WXDC_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
51
|
-
[token_provider_1.USDC_XDC, v3_sdk_1.FeeAmount.MEDIUM],
|
|
52
|
-
[token_provider_1.WXDC_XDC, v3_sdk_1.FeeAmount.HIGH],
|
|
53
|
-
],
|
|
54
|
-
},
|
|
55
|
-
[sdk_core_1.ChainId.APOTHEM]: {},
|
|
56
|
-
};
|
|
57
|
-
exports.Uni_V3_XDC_ADDITIONAL_BASES = exports.ADDITIONAL_BASES[sdk_core_1.ChainId.XDC];
|
|
58
|
-
let paths = [];
|
|
59
|
-
const recFinder = (path, used, lastToken, dest, hops) => {
|
|
60
|
-
const hop = path.length;
|
|
61
|
-
// if (hop > 0) {
|
|
62
|
-
// lastToken = path[hop - 1]![1];
|
|
63
|
-
// }
|
|
64
|
-
if (hop < hops) {
|
|
65
|
-
if (!lastToken) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const additional = exports.Uni_V3_XDC_ADDITIONAL_BASES[lastToken.address];
|
|
69
|
-
if (additional) {
|
|
70
|
-
for (const ad of additional) {
|
|
71
|
-
const adToken = ad;
|
|
72
|
-
const newPair = [lastToken, ...adToken];
|
|
73
|
-
const newPath = [...path, newPair];
|
|
74
|
-
if (adToken[0].address === dest.address) {
|
|
75
|
-
paths.push(newPath);
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
if (!used[adToken[0].address]) {
|
|
79
|
-
recFinder(newPath, Object.assign(Object.assign({}, used), { [adToken[0].address]: true }), adToken[0], dest, hops);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* Provider that uses a hardcoded list of V3 pools to generate a list of subgraph pools.
|
|
87
|
-
*
|
|
88
|
-
* Since the pools are hardcoded and the data does not come from the Subgraph, the TVL values
|
|
89
|
-
* are dummys and should not be depended on.
|
|
90
|
-
*
|
|
91
|
-
* Useful for instances where other data sources are unavailable. E.g. Subgraph not available.
|
|
92
|
-
*
|
|
93
|
-
* @export
|
|
94
|
-
* @class StaticV3SubgraphProvider
|
|
95
|
-
*/
|
|
96
|
-
class StaticV3UniSubgraphProvider {
|
|
97
|
-
constructor(chainId, poolProvider) {
|
|
98
|
-
this.chainId = chainId;
|
|
99
|
-
this.poolProvider = poolProvider;
|
|
100
|
-
}
|
|
101
|
-
async getPools(tokenIn, tokenOut) {
|
|
102
|
-
paths = [];
|
|
103
|
-
log_1.log.info('In static subgraph provider for V3');
|
|
104
|
-
const bases = BASES_TO_CHECK_TRADES_AGAINST[this.chainId];
|
|
105
|
-
const basePairs = lodash_1.default.flatMap(bases, (base) => bases.map((otherBase) => [base, otherBase]));
|
|
106
|
-
let pairs = [];
|
|
107
|
-
if (tokenIn && tokenOut) {
|
|
108
|
-
const additionalIn = exports.ADDITIONAL_BASES[this.chainId][tokenIn.address];
|
|
109
|
-
const additionalOut = exports.ADDITIONAL_BASES[this.chainId][tokenOut.address];
|
|
110
|
-
if (!additionalIn || !additionalOut) {
|
|
111
|
-
basePairs.push([tokenIn, tokenOut]);
|
|
112
|
-
if (additionalIn) {
|
|
113
|
-
basePairs.push(...additionalIn.map((v) => [tokenIn, v[0]]));
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
basePairs.push(...bases.map((base) => [tokenIn, base]));
|
|
117
|
-
}
|
|
118
|
-
if (additionalOut) {
|
|
119
|
-
basePairs.push(...additionalOut.map((v) => [tokenOut, v[0]]));
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
basePairs.push(...bases.map((base) => [tokenOut, base]));
|
|
123
|
-
}
|
|
124
|
-
pairs = (0, lodash_1.default)(basePairs)
|
|
125
|
-
.filter((tokens) => Boolean(tokens[0] && tokens[1]))
|
|
126
|
-
.filter(([tokenA, tokenB]) => tokenA.address !== tokenB.address && !tokenA.equals(tokenB))
|
|
127
|
-
.flatMap(([tokenA, tokenB]) => {
|
|
128
|
-
const additionalA = exports.ADDITIONAL_BASES[this.chainId][tokenA.address];
|
|
129
|
-
// const additionalB = ADDITIONAL_BASES[this.chainId][tokenB.address];
|
|
130
|
-
if (additionalA) {
|
|
131
|
-
const additionalPool = additionalA.filter((v) => v[0].address.toLowerCase() === tokenB.address.toLowerCase());
|
|
132
|
-
const res = additionalPool.map((v) => {
|
|
133
|
-
return [tokenA, v[0], v[1]];
|
|
134
|
-
});
|
|
135
|
-
return res;
|
|
136
|
-
}
|
|
137
|
-
return [
|
|
138
|
-
[tokenA, tokenB, v3_sdk_1.FeeAmount.LOWEST],
|
|
139
|
-
[tokenA, tokenB, v3_sdk_1.FeeAmount.LOW],
|
|
140
|
-
[tokenA, tokenB, v3_sdk_1.FeeAmount.MEDIUM],
|
|
141
|
-
[tokenA, tokenB, v3_sdk_1.FeeAmount.HIGH],
|
|
142
|
-
];
|
|
143
|
-
})
|
|
144
|
-
.value();
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
recFinder([], { [tokenIn.address]: true }, tokenIn, tokenOut, 5);
|
|
148
|
-
// console.log(
|
|
149
|
-
// paths.map((path) =>
|
|
150
|
-
// path
|
|
151
|
-
// .map(
|
|
152
|
-
// (p) => `(${p[0].symbol} - ${p[1].symbol} : ${p[2] / 10000}% )`
|
|
153
|
-
// )
|
|
154
|
-
// .join(' --> ')
|
|
155
|
-
// )
|
|
156
|
-
// );
|
|
157
|
-
const uniquePairs = {};
|
|
158
|
-
paths.forEach((path) => {
|
|
159
|
-
path.forEach((pool) => {
|
|
160
|
-
const id = `${pool[0].address}-${pool[1].address}-${pool[2]}`;
|
|
161
|
-
uniquePairs[id] = pool;
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
const direct = tokenIn && tokenOut
|
|
165
|
-
? [
|
|
166
|
-
[tokenIn, tokenOut, v3_sdk_1.FeeAmount.LOWEST],
|
|
167
|
-
[tokenIn, tokenOut, v3_sdk_1.FeeAmount.LOW],
|
|
168
|
-
[tokenIn, tokenOut, v3_sdk_1.FeeAmount.MEDIUM],
|
|
169
|
-
[tokenIn, tokenOut, v3_sdk_1.FeeAmount.HIGH],
|
|
170
|
-
]
|
|
171
|
-
: [];
|
|
172
|
-
pairs = [...Object.values(uniquePairs), ...direct];
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
log_1.log.info(`V3-UNI Static subgraph provider about to get ${pairs.length} pools on-chain`);
|
|
176
|
-
const poolAccessor = await this.poolProvider.getPools(pairs);
|
|
177
|
-
const pools = poolAccessor.getAllPools();
|
|
178
|
-
const poolAddressSet = new Set();
|
|
179
|
-
const subgraphPools = (0, lodash_1.default)(pools)
|
|
180
|
-
.map((pool) => {
|
|
181
|
-
const { token0, token1, fee, liquidity } = pool;
|
|
182
|
-
const poolAddress = v3_sdk_1.Pool.getAddress(pool.token0, pool.token1, pool.fee, v3_sdk_1.UniV3Factory);
|
|
183
|
-
if (poolAddressSet.has(poolAddress)) {
|
|
184
|
-
return undefined;
|
|
185
|
-
}
|
|
186
|
-
poolAddressSet.add(poolAddress);
|
|
187
|
-
const liquidityNumber = jsbi_1.default.toNumber(liquidity);
|
|
188
|
-
return {
|
|
189
|
-
id: poolAddress,
|
|
190
|
-
feeTier: (0, amounts_1.unparseFeeAmount)(fee),
|
|
191
|
-
liquidity: liquidity.toString(),
|
|
192
|
-
token0: {
|
|
193
|
-
id: token0.address,
|
|
194
|
-
},
|
|
195
|
-
token1: {
|
|
196
|
-
id: token1.address,
|
|
197
|
-
},
|
|
198
|
-
// As a very rough proxy we just use liquidity for TVL.
|
|
199
|
-
tvlETH: liquidityNumber,
|
|
200
|
-
tvlUSD: liquidityNumber,
|
|
201
|
-
};
|
|
202
|
-
})
|
|
203
|
-
.compact()
|
|
204
|
-
.value();
|
|
205
|
-
return subgraphPools;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
exports.StaticV3UniSubgraphProvider = StaticV3UniSubgraphProvider;
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXN1YmdyYXBoLXByb3ZpZGVyLXYzLXVuaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvdjMvc3RhdGljLXN1YmdyYXBoLXByb3ZpZGVyLXYzLXVuaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2REFBNkQ7QUFDN0Qsd0RBQWtFO0FBQ2xFLG9EQUF3RTtBQUN4RSxnREFBd0I7QUFDeEIsb0RBQXVCO0FBRXZCLGdEQUFzRDtBQUN0RCx3Q0FBcUM7QUFDckMsc0RBUTJCO0FBUzNCLE1BQU0sNkJBQTZCLEdBQW1CO0lBQ3BELENBQUMsa0JBQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGdCQUFLLENBQUMsa0JBQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSx5QkFBUSxDQUFDO0lBQzdDLENBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGdCQUFLLENBQUMsa0JBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUM1QyxDQUFDO0FBRVcsUUFBQSxnQkFBZ0IsR0FFekI7SUFDRixDQUFDLGtCQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDYixDQUFDLGdCQUFLLENBQUMsa0JBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM1QixDQUFDLHlCQUFRLEVBQUUsa0JBQVMsQ0FBQyxNQUFNLENBQUM7WUFDNUIsQ0FBQyx5QkFBUSxFQUFFLGtCQUFTLENBQUMsTUFBTSxDQUFDO1lBQzVCLENBQUMsNEJBQVcsRUFBRSxrQkFBUyxDQUFDLE1BQU0sQ0FBQztZQUMvQixDQUFDLHdCQUFPLEVBQUUsa0JBQVMsQ0FBQyxNQUFNLENBQUM7WUFDM0IsQ0FBQyx3QkFBTyxFQUFFLGtCQUFTLENBQUMsTUFBTSxDQUFDO1lBQzNCLENBQUMsd0JBQU8sRUFBRSxrQkFBUyxDQUFDLE1BQU0sQ0FBQztZQUMzQixDQUFDLHdCQUFPLEVBQUUsa0JBQVMsQ0FBQyxJ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
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export const FATHOM_INIT_CODE_HASH = '0xa6d23746864049fd29713adbbf145eeecdddd2f9a91be053c057394dd5d7d9ad';
|
|
2
|
-
export const FATHOM_FACTORY_ADDRESS = '0x9fAb572F75008A42c6aF80b36Ab20C76a38ABc4B';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy92Mi1mYXRob20vY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUNoQyxvRUFBb0UsQ0FBQztBQUN2RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FDakMsNENBQTRDLENBQUMifQ==
|