@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.
Files changed (205) hide show
  1. package/build/main/providers/caching/route/model/cached-routes.d.ts +3 -2
  2. package/build/main/providers/caching/route/model/cached-routes.js +4 -4
  3. package/build/main/providers/caching/route/route-caching-provider.d.ts +2 -1
  4. package/build/main/providers/caching/route/route-caching-provider.js +6 -11
  5. package/build/main/providers/caching-gas-provider.d.ts +1 -1
  6. package/build/main/providers/caching-gas-provider.js +1 -1
  7. package/build/main/providers/caching-token-list-provider.d.ts +2 -1
  8. package/build/main/providers/caching-token-list-provider.js +2 -1
  9. package/build/main/providers/caching-token-provider.d.ts +2 -1
  10. package/build/main/providers/caching-token-provider.js +5 -6
  11. package/build/main/providers/eth-estimate-gas-provider.d.ts +1 -1
  12. package/build/main/providers/eth-estimate-gas-provider.js +1 -1
  13. package/build/main/providers/multicall-uniswap-provider.d.ts +1 -1
  14. package/build/main/providers/multicall-uniswap-provider.js +3 -3
  15. package/build/main/providers/on-chain-gas-price-provider.d.ts +1 -1
  16. package/build/main/providers/on-chain-quote-provider.d.ts +1 -1
  17. package/build/main/providers/on-chain-quote-provider.js +13 -24
  18. package/build/main/providers/simulation-provider.d.ts +2 -2
  19. package/build/main/providers/simulation-provider.js +6 -6
  20. package/build/main/providers/swap-router-provider.d.ts +2 -1
  21. package/build/main/providers/swap-router-provider.js +2 -3
  22. package/build/main/providers/tenderly-simulation-provider.d.ts +1 -1
  23. package/build/main/providers/tenderly-simulation-provider.js +7 -8
  24. package/build/main/providers/token-provider.d.ts +2 -3
  25. package/build/main/providers/token-provider.js +30 -32
  26. package/build/main/providers/token-validator-provider.d.ts +2 -1
  27. package/build/main/providers/token-validator-provider.js +2 -3
  28. package/build/main/providers/uri-subgraph-provider.d.ts +1 -1
  29. package/build/main/providers/uri-subgraph-provider.js +1 -1
  30. package/build/main/providers/v2/caching-pool-provider.d.ts +3 -5
  31. package/build/main/providers/v2/caching-pool-provider.js +3 -5
  32. package/build/main/providers/v2/caching-subgraph-provider.d.ts +1 -1
  33. package/build/main/providers/v2/pool-provider.d.ts +4 -13
  34. package/build/main/providers/v2/pool-provider.js +10 -12
  35. package/build/main/providers/v2/quote-provider.js +2 -2
  36. package/build/main/providers/v2/static-subgraph-provider.d.ts +2 -1
  37. package/build/main/providers/v2/static-subgraph-provider.js +7 -7
  38. package/build/main/providers/v2/subgraph-provider.d.ts +2 -1
  39. package/build/main/providers/v2/subgraph-provider.js +1 -1
  40. package/build/main/providers/v3/caching-pool-provider.d.ts +3 -5
  41. package/build/main/providers/v3/caching-pool-provider.js +3 -5
  42. package/build/main/providers/v3/caching-subgraph-provider.d.ts +1 -1
  43. package/build/main/providers/v3/pool-provider.d.ts +3 -5
  44. package/build/main/providers/v3/pool-provider.js +8 -14
  45. package/build/main/providers/v3/static-subgraph-provider.d.ts +2 -1
  46. package/build/main/providers/v3/static-subgraph-provider.js +25 -37
  47. package/build/main/providers/v3/subgraph-provider.d.ts +2 -1
  48. package/build/main/providers/v3/subgraph-provider.js +2 -2
  49. package/build/main/routers/alpha-router/alpha-router.d.ts +6 -25
  50. package/build/main/routers/alpha-router/alpha-router.js +38 -100
  51. package/build/main/routers/alpha-router/config.d.ts +1 -1
  52. package/build/main/routers/alpha-router/entities/route-with-valid-quote.d.ts +7 -9
  53. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js +8 -8
  54. package/build/main/routers/alpha-router/functions/best-swap-route.d.ts +2 -1
  55. package/build/main/routers/alpha-router/functions/best-swap-route.js +1 -1
  56. package/build/main/routers/alpha-router/functions/compute-all-routes.d.ts +3 -4
  57. package/build/main/routers/alpha-router/functions/compute-all-routes.js +6 -6
  58. package/build/main/routers/alpha-router/functions/get-candidate-pools.d.ts +5 -7
  59. package/build/main/routers/alpha-router/functions/get-candidate-pools.js +17 -19
  60. package/build/main/routers/alpha-router/gas-models/gas-model.d.ts +2 -1
  61. package/build/main/routers/alpha-router/gas-models/gas-model.js +4 -4
  62. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +4 -4
  63. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +12 -13
  64. package/build/main/routers/alpha-router/gas-models/v3/gas-costs.d.ts +1 -1
  65. package/build/main/routers/alpha-router/gas-models/v3/gas-costs.js +11 -11
  66. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +5 -4
  67. package/build/main/routers/alpha-router/quoters/base-quoter.d.ts +3 -5
  68. package/build/main/routers/alpha-router/quoters/base-quoter.js +2 -3
  69. package/build/main/routers/alpha-router/quoters/mixed-quoter.d.ts +3 -4
  70. package/build/main/routers/alpha-router/quoters/mixed-quoter.js +14 -80
  71. package/build/main/routers/alpha-router/quoters/v2-quoter.d.ts +3 -4
  72. package/build/main/routers/alpha-router/quoters/v2-quoter.js +4 -9
  73. package/build/main/routers/alpha-router/quoters/v3-quoter.d.ts +4 -5
  74. package/build/main/routers/alpha-router/quoters/v3-quoter.js +10 -9
  75. package/build/main/routers/legacy-router/bases.d.ts +2 -1
  76. package/build/main/routers/legacy-router/bases.js +6 -7
  77. package/build/main/routers/legacy-router/legacy-router.d.ts +2 -1
  78. package/build/main/routers/legacy-router/legacy-router.js +5 -5
  79. package/build/main/routers/router.d.ts +4 -7
  80. package/build/main/routers/router.js +8 -8
  81. package/build/main/tsconfig.tsbuildinfo +1 -1
  82. package/build/main/util/addresses.d.ts +21 -0
  83. package/build/main/util/addresses.js +59 -6
  84. package/build/main/util/chains.d.ts +11 -2
  85. package/build/main/util/chains.js +37 -18
  86. package/build/main/util/gas-factory-helpers.d.ts +3 -2
  87. package/build/main/util/gas-factory-helpers.js +6 -10
  88. package/build/main/util/methodParameters.d.ts +2 -2
  89. package/build/main/util/methodParameters.js +5 -5
  90. package/build/main/util/protocols.d.ts +0 -2
  91. package/build/main/util/protocols.js +2 -14
  92. package/build/main/util/routes.js +10 -19
  93. package/build/module/providers/caching/route/model/cached-routes.d.ts +3 -2
  94. package/build/module/providers/caching/route/model/cached-routes.js +4 -4
  95. package/build/module/providers/caching/route/route-caching-provider.d.ts +2 -1
  96. package/build/module/providers/caching/route/route-caching-provider.js +7 -12
  97. package/build/module/providers/caching-gas-provider.d.ts +1 -1
  98. package/build/module/providers/caching-gas-provider.js +1 -1
  99. package/build/module/providers/caching-token-list-provider.d.ts +2 -1
  100. package/build/module/providers/caching-token-list-provider.js +2 -1
  101. package/build/module/providers/caching-token-provider.d.ts +2 -1
  102. package/build/module/providers/caching-token-provider.js +5 -6
  103. package/build/module/providers/eth-estimate-gas-provider.d.ts +1 -1
  104. package/build/module/providers/eth-estimate-gas-provider.js +1 -1
  105. package/build/module/providers/multicall-uniswap-provider.d.ts +1 -1
  106. package/build/module/providers/multicall-uniswap-provider.js +3 -3
  107. package/build/module/providers/on-chain-gas-price-provider.d.ts +1 -1
  108. package/build/module/providers/on-chain-quote-provider.d.ts +1 -1
  109. package/build/module/providers/on-chain-quote-provider.js +16 -27
  110. package/build/module/providers/simulation-provider.d.ts +2 -2
  111. package/build/module/providers/simulation-provider.js +6 -6
  112. package/build/module/providers/swap-router-provider.d.ts +2 -1
  113. package/build/module/providers/swap-router-provider.js +2 -3
  114. package/build/module/providers/tenderly-simulation-provider.d.ts +1 -1
  115. package/build/module/providers/tenderly-simulation-provider.js +7 -8
  116. package/build/module/providers/token-provider.d.ts +2 -3
  117. package/build/module/providers/token-provider.js +10 -12
  118. package/build/module/providers/token-validator-provider.d.ts +2 -1
  119. package/build/module/providers/token-validator-provider.js +3 -4
  120. package/build/module/providers/uri-subgraph-provider.d.ts +1 -1
  121. package/build/module/providers/uri-subgraph-provider.js +1 -1
  122. package/build/module/providers/v2/caching-pool-provider.d.ts +3 -5
  123. package/build/module/providers/v2/caching-pool-provider.js +3 -5
  124. package/build/module/providers/v2/caching-subgraph-provider.d.ts +1 -1
  125. package/build/module/providers/v2/pool-provider.d.ts +4 -13
  126. package/build/module/providers/v2/pool-provider.js +10 -12
  127. package/build/module/providers/v2/quote-provider.js +2 -2
  128. package/build/module/providers/v2/static-subgraph-provider.d.ts +2 -1
  129. package/build/module/providers/v2/static-subgraph-provider.js +5 -5
  130. package/build/module/providers/v2/subgraph-provider.d.ts +2 -1
  131. package/build/module/providers/v2/subgraph-provider.js +1 -1
  132. package/build/module/providers/v3/caching-pool-provider.d.ts +3 -5
  133. package/build/module/providers/v3/caching-pool-provider.js +3 -5
  134. package/build/module/providers/v3/caching-subgraph-provider.d.ts +1 -1
  135. package/build/module/providers/v3/pool-provider.d.ts +3 -5
  136. package/build/module/providers/v3/pool-provider.js +8 -14
  137. package/build/module/providers/v3/static-subgraph-provider.d.ts +2 -1
  138. package/build/module/providers/v3/static-subgraph-provider.js +24 -36
  139. package/build/module/providers/v3/subgraph-provider.d.ts +2 -1
  140. package/build/module/providers/v3/subgraph-provider.js +2 -2
  141. package/build/module/routers/alpha-router/alpha-router.d.ts +6 -25
  142. package/build/module/routers/alpha-router/alpha-router.js +40 -102
  143. package/build/module/routers/alpha-router/config.d.ts +1 -1
  144. package/build/module/routers/alpha-router/entities/route-with-valid-quote.d.ts +7 -9
  145. package/build/module/routers/alpha-router/entities/route-with-valid-quote.js +8 -8
  146. package/build/module/routers/alpha-router/functions/best-swap-route.d.ts +2 -1
  147. package/build/module/routers/alpha-router/functions/best-swap-route.js +1 -1
  148. package/build/module/routers/alpha-router/functions/compute-all-routes.d.ts +3 -4
  149. package/build/module/routers/alpha-router/functions/compute-all-routes.js +6 -6
  150. package/build/module/routers/alpha-router/functions/get-candidate-pools.d.ts +5 -7
  151. package/build/module/routers/alpha-router/functions/get-candidate-pools.js +19 -21
  152. package/build/module/routers/alpha-router/gas-models/gas-model.d.ts +2 -1
  153. package/build/module/routers/alpha-router/gas-models/gas-model.js +3 -3
  154. package/build/module/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js +4 -4
  155. package/build/module/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js +13 -14
  156. package/build/module/routers/alpha-router/gas-models/v3/gas-costs.d.ts +1 -1
  157. package/build/module/routers/alpha-router/gas-models/v3/gas-costs.js +8 -8
  158. package/build/module/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js +6 -5
  159. package/build/module/routers/alpha-router/quoters/base-quoter.d.ts +3 -5
  160. package/build/module/routers/alpha-router/quoters/base-quoter.js +2 -3
  161. package/build/module/routers/alpha-router/quoters/mixed-quoter.d.ts +3 -4
  162. package/build/module/routers/alpha-router/quoters/mixed-quoter.js +15 -81
  163. package/build/module/routers/alpha-router/quoters/v2-quoter.d.ts +3 -4
  164. package/build/module/routers/alpha-router/quoters/v2-quoter.js +4 -9
  165. package/build/module/routers/alpha-router/quoters/v3-quoter.d.ts +4 -5
  166. package/build/module/routers/alpha-router/quoters/v3-quoter.js +10 -9
  167. package/build/module/routers/legacy-router/bases.d.ts +2 -1
  168. package/build/module/routers/legacy-router/bases.js +7 -8
  169. package/build/module/routers/legacy-router/legacy-router.d.ts +2 -1
  170. package/build/module/routers/legacy-router/legacy-router.js +6 -6
  171. package/build/module/routers/router.d.ts +4 -7
  172. package/build/module/routers/router.js +8 -8
  173. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  174. package/build/module/util/addresses.d.ts +21 -0
  175. package/build/module/util/addresses.js +66 -3
  176. package/build/module/util/chains.d.ts +11 -2
  177. package/build/module/util/chains.js +32 -13
  178. package/build/module/util/gas-factory-helpers.d.ts +3 -2
  179. package/build/module/util/gas-factory-helpers.js +8 -12
  180. package/build/module/util/methodParameters.d.ts +2 -2
  181. package/build/module/util/methodParameters.js +7 -7
  182. package/build/module/util/protocols.d.ts +0 -2
  183. package/build/module/util/protocols.js +1 -11
  184. package/build/module/util/routes.js +11 -20
  185. package/package.json +1 -1
  186. package/build/main/providers/v2-fathom/constants.d.ts +0 -2
  187. package/build/main/providers/v2-fathom/constants.js +0 -6
  188. package/build/main/providers/v2-fathom/static-subgraph-provider.d.ts +0 -22
  189. package/build/main/providers/v2-fathom/static-subgraph-provider.js +0 -169
  190. package/build/main/providers/v2-fathom/subgraph-provider.d.ts +0 -34
  191. package/build/main/providers/v2-fathom/subgraph-provider.js +0 -130
  192. package/build/main/providers/v2-fathom/utils.d.ts +0 -2
  193. package/build/main/providers/v2-fathom/utils.js +0 -14
  194. package/build/main/providers/v3/static-subgraph-provider-v3-uni.d.ts +0 -29
  195. package/build/main/providers/v3/static-subgraph-provider-v3-uni.js +0 -209
  196. package/build/module/providers/v2-fathom/constants.d.ts +0 -2
  197. package/build/module/providers/v2-fathom/constants.js +0 -3
  198. package/build/module/providers/v2-fathom/static-subgraph-provider.d.ts +0 -22
  199. package/build/module/providers/v2-fathom/static-subgraph-provider.js +0 -162
  200. package/build/module/providers/v2-fathom/subgraph-provider.d.ts +0 -34
  201. package/build/module/providers/v2-fathom/subgraph-provider.js +0 -131
  202. package/build/module/providers/v2-fathom/utils.d.ts +0 -2
  203. package/build/module/providers/v2-fathom/utils.js +0 -10
  204. package/build/module/providers/v3/static-subgraph-provider-v3-uni.d.ts +0 -29
  205. 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,2 +0,0 @@
1
- import { Token } from '@x-swap-protocol/sdk-core';
2
- export declare const getFathomPoolAddress: (tokenA: Token, tokenB: Token) => string;
@@ -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,2 +0,0 @@
1
- export declare const FATHOM_INIT_CODE_HASH = "0xa6d23746864049fd29713adbbf145eeecdddd2f9a91be053c057394dd5d7d9ad";
2
- export declare const FATHOM_FACTORY_ADDRESS = "0x9fAb572F75008A42c6aF80b36Ab20C76a38ABc4B";
@@ -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==