@paraswap/dex-lib 4.0.3-Cables.0 → 4.0.3-Cables.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/build/dex/cables/cables.d.ts +3 -2
- package/build/dex/cables/cables.js +34 -156
- package/build/dex/cables/cables.js.map +1 -1
- package/build/dex/cables/rate-fetcher.d.ts +0 -1
- package/build/dex/cables/rate-fetcher.js +0 -4
- package/build/dex/cables/rate-fetcher.js.map +1 -1
- package/build/dex/cables/types.d.ts +6 -20
- package/build/dex/cables/types.js +1 -9
- package/build/dex/cables/types.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/cables/cables-integration.test.ts +1 -1
- package/src/dex/cables/cables.ts +51 -233
- package/src/dex/cables/rate-fetcher.ts +0 -7
- package/src/dex/cables/types.ts +5 -22
|
@@ -7,6 +7,7 @@ import { IDex } from '../idex';
|
|
|
7
7
|
import { SimpleExchange } from '../simple-exchange';
|
|
8
8
|
import { CablesData } from './types';
|
|
9
9
|
import { Interface } from 'ethers/lib/utils';
|
|
10
|
+
import { BebopData } from '../bebop/types';
|
|
10
11
|
export declare class Cables extends SimpleExchange implements IDex<any> {
|
|
11
12
|
readonly network: Network;
|
|
12
13
|
readonly dexKey: string;
|
|
@@ -24,12 +25,12 @@ export declare class Cables extends SimpleExchange implements IDex<any> {
|
|
|
24
25
|
hasConstantPriceLargeAmounts: boolean;
|
|
25
26
|
constructor(network: Network, dexKey: string, dexHelper: IDexHelper, mainnetRFQAddress?: string, rfqInterface?: Interface);
|
|
26
27
|
preProcessTransaction?(optimalSwapExchange: OptimalSwapExchange<CablesData>, srcToken: Token, destToken: Token, side: SwapSide, options: PreprocessTransactionOptions): Promise<[OptimalSwapExchange<CablesData>, ExchangeTxInfo]>;
|
|
28
|
+
getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: BebopData, side: SwapSide): AdapterExchangeParam;
|
|
27
29
|
getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: CablesData, side: SwapSide): DexExchangeParam;
|
|
28
|
-
getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: CablesData, side: SwapSide): AdapterExchangeParam;
|
|
29
30
|
normalizeToken(token: Token): Token;
|
|
30
31
|
normalizeTokenAddress(address: Address): Address;
|
|
31
32
|
getTokenFromAddress(address: Address): Token;
|
|
32
|
-
getPoolIdentifier(srcAddress: Address, destAddress: Address
|
|
33
|
+
getPoolIdentifier(srcAddress: Address, destAddress: Address): string;
|
|
33
34
|
getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
34
35
|
calculateOrderPrice(amounts: bigint[], orderbook: string[][], baseToken: Token, quoteToken: Token, isInputQuote: boolean): bigint[];
|
|
35
36
|
calculatePriceSwap(prices: string[][], requiredQty: number, qtyMode: Boolean): number;
|
|
@@ -52,7 +52,6 @@ const utils_2 = require("ethers/lib/utils");
|
|
|
52
52
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
53
53
|
const ethers_1 = require("ethers");
|
|
54
54
|
const bigint_constants_1 = require("../../bigint-constants");
|
|
55
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
56
55
|
class Cables extends simple_exchange_1.SimpleExchange {
|
|
57
56
|
network;
|
|
58
57
|
dexKey;
|
|
@@ -100,9 +99,6 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
100
99
|
blacklistIntervalMs: constants_2.CABLES_API_BLACKLIST_POLLING_INTERVAL_MS,
|
|
101
100
|
blacklistCacheTTLSecs: constants_2.CABLES_BLACKLIST_CACHES_TTL_S,
|
|
102
101
|
blacklistCacheKey: constants_2.CABLES_BLACKLIST_CACHE_KEY,
|
|
103
|
-
tokensHandleResponseCallback: async () => {
|
|
104
|
-
await this.setTokensMap();
|
|
105
|
-
},
|
|
106
102
|
},
|
|
107
103
|
});
|
|
108
104
|
}
|
|
@@ -186,6 +182,13 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
186
182
|
throw new Error(message);
|
|
187
183
|
}
|
|
188
184
|
}
|
|
185
|
+
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
186
|
+
return {
|
|
187
|
+
targetExchange: this.mainnetRFQAddress,
|
|
188
|
+
payload: '0x',
|
|
189
|
+
networkFee: '0',
|
|
190
|
+
};
|
|
191
|
+
}
|
|
189
192
|
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
|
|
190
193
|
const { quoteData } = data;
|
|
191
194
|
(0, ts_essentials_1.assert)(quoteData !== undefined, `${this.dexKey}-${this.network}: quoteData undefined`);
|
|
@@ -220,46 +223,6 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
220
223
|
insertFromAmountPos: filledAmountPos,
|
|
221
224
|
};
|
|
222
225
|
}
|
|
223
|
-
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
224
|
-
const { quoteData } = data;
|
|
225
|
-
(0, ts_essentials_1.assert)(quoteData !== undefined, `${this.dexKey}-${this.network}: quoteData undefined`);
|
|
226
|
-
const params = [
|
|
227
|
-
{
|
|
228
|
-
nonceAndMeta: quoteData.nonceAndMeta,
|
|
229
|
-
expiry: quoteData.expiry,
|
|
230
|
-
makerAsset: quoteData.makerAsset,
|
|
231
|
-
takerAsset: quoteData.takerAsset,
|
|
232
|
-
maker: quoteData.maker,
|
|
233
|
-
taker: quoteData.taker,
|
|
234
|
-
makerAmount: quoteData.makerAmount,
|
|
235
|
-
takerAmount: quoteData.takerAmount,
|
|
236
|
-
},
|
|
237
|
-
quoteData.signature,
|
|
238
|
-
];
|
|
239
|
-
const payload = this.abiCoder.encodeParameter({
|
|
240
|
-
ParentStruct: {
|
|
241
|
-
order: {
|
|
242
|
-
nonceAndMeta: 'uint256',
|
|
243
|
-
expiry: 'uint128',
|
|
244
|
-
makerAsset: 'address',
|
|
245
|
-
takerAsset: 'address',
|
|
246
|
-
maker: 'address',
|
|
247
|
-
taker: 'address',
|
|
248
|
-
makerAmount: 'uint256',
|
|
249
|
-
takerAmount: 'uint256',
|
|
250
|
-
},
|
|
251
|
-
signature: 'bytes',
|
|
252
|
-
},
|
|
253
|
-
}, {
|
|
254
|
-
order: params[0],
|
|
255
|
-
signature: params[1],
|
|
256
|
-
});
|
|
257
|
-
return {
|
|
258
|
-
targetExchange: this.mainnetRFQAddress,
|
|
259
|
-
payload,
|
|
260
|
-
networkFee: '0',
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
226
|
normalizeToken(token) {
|
|
264
227
|
return {
|
|
265
228
|
...token,
|
|
@@ -272,25 +235,24 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
272
235
|
getTokenFromAddress(address) {
|
|
273
236
|
return this.tokensMap[this.normalizeAddress(address)];
|
|
274
237
|
}
|
|
275
|
-
getPoolIdentifier(srcAddress, destAddress
|
|
238
|
+
getPoolIdentifier(srcAddress, destAddress) {
|
|
276
239
|
return `${this.dexKey}_${srcAddress}_${destAddress}`.toLowerCase();
|
|
277
|
-
return `${this.dexKey}_${srcAddress}_${destAddress}_${mm}`.toLowerCase();
|
|
278
240
|
}
|
|
279
241
|
async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
|
|
280
|
-
await this.setTokensMap();
|
|
281
242
|
if (!srcToken || !destToken) {
|
|
282
243
|
return [];
|
|
283
244
|
}
|
|
284
245
|
if (srcToken.address.toLowerCase() === destToken.address.toLowerCase()) {
|
|
285
246
|
return [];
|
|
286
247
|
}
|
|
287
|
-
const
|
|
248
|
+
const normalizedSrcToken = this.normalizeToken(srcToken);
|
|
249
|
+
const normalizedDestToken = this.normalizeToken(destToken);
|
|
250
|
+
const pairData = await this.getPairData(normalizedSrcToken, normalizedDestToken);
|
|
288
251
|
if (!pairData) {
|
|
289
252
|
return [];
|
|
290
253
|
}
|
|
291
|
-
const tokensAddr = (await this.getCachedTokensAddr()) || {};
|
|
292
254
|
return [
|
|
293
|
-
this.getPoolIdentifier(
|
|
255
|
+
this.getPoolIdentifier(normalizedSrcToken.address, normalizedDestToken.address),
|
|
294
256
|
];
|
|
295
257
|
}
|
|
296
258
|
calculateOrderPrice(amounts, orderbook, baseToken, quoteToken, isInputQuote) {
|
|
@@ -360,11 +322,6 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
360
322
|
}
|
|
361
323
|
}
|
|
362
324
|
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools, transferFees, isFirstSwap) {
|
|
363
|
-
const isRestricted = await this.isRestricted();
|
|
364
|
-
if (isRestricted) {
|
|
365
|
-
return null;
|
|
366
|
-
}
|
|
367
|
-
await this.setTokensMap();
|
|
368
325
|
try {
|
|
369
326
|
const normalizedSrcToken = this.normalizeToken(srcToken);
|
|
370
327
|
const normalizedDestToken = this.normalizeToken(destToken);
|
|
@@ -373,17 +330,18 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
373
330
|
normalizedDestToken.address.toLowerCase()) {
|
|
374
331
|
return null;
|
|
375
332
|
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
normalizedSrcToken.symbol = this.tokensMap[symbol].symbol;
|
|
380
|
-
}
|
|
381
|
-
if (normalizedDestToken.address === normalizedTokenAddress) {
|
|
382
|
-
normalizedDestToken.symbol = this.tokensMap[symbol].symbol;
|
|
383
|
-
}
|
|
333
|
+
const isRestricted = await this.isRestricted();
|
|
334
|
+
if (isRestricted) {
|
|
335
|
+
return null;
|
|
384
336
|
}
|
|
337
|
+
await this.setTokensMap();
|
|
338
|
+
normalizedSrcToken.symbol =
|
|
339
|
+
this.tokensMap[normalizedSrcToken.address].symbol;
|
|
340
|
+
normalizedDestToken.symbol =
|
|
341
|
+
this.tokensMap[normalizedDestToken.address].symbol;
|
|
385
342
|
// ---------- Pools ----------
|
|
386
|
-
let pools =
|
|
343
|
+
let pools = limitPools ||
|
|
344
|
+
(await this.getPoolIdentifiers(srcToken, destToken, side, blockNumber));
|
|
387
345
|
if (pools.length === 0)
|
|
388
346
|
return null;
|
|
389
347
|
// ---------- Prices ----------
|
|
@@ -459,7 +417,7 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
459
417
|
return null;
|
|
460
418
|
}
|
|
461
419
|
releaseResources() {
|
|
462
|
-
if (this.rateFetcher) {
|
|
420
|
+
if (!this.dexHelper.config.isSlave && this.rateFetcher) {
|
|
463
421
|
this.rateFetcher.stop();
|
|
464
422
|
}
|
|
465
423
|
}
|
|
@@ -479,85 +437,7 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
479
437
|
}
|
|
480
438
|
}
|
|
481
439
|
async getTopPoolsForToken(tokenAddress, limit) {
|
|
482
|
-
|
|
483
|
-
const denormalizedTokenAddress = isETH ? constants_1.NULL_ADDRESS : tokenAddress;
|
|
484
|
-
const tokens = (await this.getCachedTokens());
|
|
485
|
-
const token = Object.values(tokens).find(token => token.address.toLowerCase() === denormalizedTokenAddress.toLowerCase());
|
|
486
|
-
if (!token) {
|
|
487
|
-
return [];
|
|
488
|
-
}
|
|
489
|
-
const pairs = (await this.getCachedPairs());
|
|
490
|
-
const connectorTokens = Object.keys(pairs)
|
|
491
|
-
.filter(pairKey => {
|
|
492
|
-
const { base, quote } = pairs[pairKey];
|
|
493
|
-
if (base.toLowerCase() === token.symbol?.toLowerCase() ||
|
|
494
|
-
quote.toLowerCase() === token.symbol?.toLowerCase()) {
|
|
495
|
-
return true;
|
|
496
|
-
}
|
|
497
|
-
return false;
|
|
498
|
-
})
|
|
499
|
-
.map(pairKey => {
|
|
500
|
-
const { base, quote } = pairs[pairKey];
|
|
501
|
-
if (base.toLowerCase() === token.symbol?.toLowerCase()) {
|
|
502
|
-
return tokens[quote];
|
|
503
|
-
}
|
|
504
|
-
if (quote.toLowerCase() === token.symbol?.toLowerCase()) {
|
|
505
|
-
return tokens[base];
|
|
506
|
-
}
|
|
507
|
-
});
|
|
508
|
-
if (connectorTokens.length === 0) {
|
|
509
|
-
return [];
|
|
510
|
-
}
|
|
511
|
-
connectorTokens.push(token);
|
|
512
|
-
const tokensBalanceMultiCall = connectorTokens.map(token => {
|
|
513
|
-
let erc20BalanceCalldata;
|
|
514
|
-
if (token?.address.toLowerCase() === constants_1.NULL_ADDRESS) {
|
|
515
|
-
erc20BalanceCalldata = this.dexHelper.multiContract.methods
|
|
516
|
-
.getEthBalance(this.mainnetRFQAddress)
|
|
517
|
-
.encodeABI();
|
|
518
|
-
}
|
|
519
|
-
else {
|
|
520
|
-
erc20BalanceCalldata = this.erc20Interface.encodeFunctionData('balanceOf', [this.mainnetRFQAddress]);
|
|
521
|
-
}
|
|
522
|
-
return {
|
|
523
|
-
target: token?.address.toLowerCase() === constants_1.NULL_ADDRESS
|
|
524
|
-
? this.dexHelper.config.data.multicallV2Address.toLowerCase()
|
|
525
|
-
: token?.address,
|
|
526
|
-
callData: erc20BalanceCalldata,
|
|
527
|
-
};
|
|
528
|
-
});
|
|
529
|
-
const res = (await this.dexHelper.multiContract.methods
|
|
530
|
-
.aggregate(tokensBalanceMultiCall)
|
|
531
|
-
.call()).returnData;
|
|
532
|
-
const balances = res.map((item) => {
|
|
533
|
-
if (item === '0x') {
|
|
534
|
-
return 0n;
|
|
535
|
-
}
|
|
536
|
-
return BigInt(item.toString());
|
|
537
|
-
});
|
|
538
|
-
const connectorsPricesUSD = await Promise.all(connectorTokens.map(async (token, index) => this.dexHelper.getTokenUSDPrice(token, balances[index])));
|
|
539
|
-
const extendedConnectors = connectorTokens.map((token, index) => ({
|
|
540
|
-
...token,
|
|
541
|
-
usdPrice: connectorsPricesUSD[index],
|
|
542
|
-
}));
|
|
543
|
-
const tokenUSDPrice = lodash_1.default.last(extendedConnectors).usdPrice;
|
|
544
|
-
extendedConnectors.pop(); // to remove token which was added before
|
|
545
|
-
const connectors = extendedConnectors.map(connector => {
|
|
546
|
-
return {
|
|
547
|
-
exchange: this.dexKey,
|
|
548
|
-
address: this.mainnetRFQAddress,
|
|
549
|
-
connectorTokens: [
|
|
550
|
-
{
|
|
551
|
-
address: connector.address === constants_1.NULL_ADDRESS
|
|
552
|
-
? constants_1.ETHER_ADDRESS
|
|
553
|
-
: connector.address,
|
|
554
|
-
decimals: connector.decimals,
|
|
555
|
-
},
|
|
556
|
-
],
|
|
557
|
-
liquidityUSD: Number(connector.usdPrice) + Number(tokenUSDPrice),
|
|
558
|
-
};
|
|
559
|
-
});
|
|
560
|
-
return lodash_1.default.slice(lodash_1.default.sortBy(connectors, [pool => -1 * pool.liquidityUSD]), 0, limit);
|
|
440
|
+
return [];
|
|
561
441
|
}
|
|
562
442
|
/**
|
|
563
443
|
* CACHED UTILS
|
|
@@ -592,26 +472,24 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
592
472
|
return foundEntry ? foundEntry[0] : undefined;
|
|
593
473
|
};
|
|
594
474
|
async getPairData(srcToken, destToken) {
|
|
595
|
-
|
|
596
|
-
const normalizedDestToken = this.normalizeToken(destToken);
|
|
597
|
-
if (normalizedSrcToken.address === normalizedDestToken.address) {
|
|
475
|
+
if (srcToken.address === destToken.address) {
|
|
598
476
|
return null;
|
|
599
477
|
}
|
|
600
478
|
const cachedTokens = await this.getCachedTokens();
|
|
601
|
-
|
|
602
|
-
|
|
479
|
+
srcToken.symbol = this.findKeyByAddress(cachedTokens, srcToken.address);
|
|
480
|
+
destToken.symbol = this.findKeyByAddress(cachedTokens, destToken.address);
|
|
603
481
|
const cachedPairs = await this.getCachedPairs();
|
|
604
482
|
const potentialPairs = [
|
|
605
483
|
{
|
|
606
|
-
base:
|
|
607
|
-
quote:
|
|
608
|
-
identifier: this.getPairString(
|
|
484
|
+
base: srcToken.symbol,
|
|
485
|
+
quote: destToken.symbol,
|
|
486
|
+
identifier: this.getPairString(srcToken, destToken),
|
|
609
487
|
isSrcBase: true,
|
|
610
488
|
},
|
|
611
489
|
{
|
|
612
|
-
base:
|
|
613
|
-
quote:
|
|
614
|
-
identifier: this.getPairString(
|
|
490
|
+
base: destToken.symbol,
|
|
491
|
+
quote: srcToken.symbol,
|
|
492
|
+
identifier: this.getPairString(destToken, srcToken),
|
|
615
493
|
isSrcBase: false,
|
|
616
494
|
},
|
|
617
495
|
];
|
|
@@ -625,7 +503,7 @@ class Cables extends simple_exchange_1.SimpleExchange {
|
|
|
625
503
|
return null;
|
|
626
504
|
}
|
|
627
505
|
async isBlacklisted(txOrigin) {
|
|
628
|
-
const cachedBlacklist = await this.dexHelper.cache.get(this.dexKey, this.network,
|
|
506
|
+
const cachedBlacklist = await this.dexHelper.cache.get(this.dexKey, this.network, this.rateFetcher.blacklistCacheKey);
|
|
629
507
|
if (cachedBlacklist) {
|
|
630
508
|
const blacklist = JSON.parse(cachedBlacklist);
|
|
631
509
|
return blacklist.includes(txOrigin.toLowerCase());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cables.js","sourceRoot":"","sources":["../../../src/dex/cables/cables.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cables.js","sourceRoot":"","sources":["../../../src/dex/cables/cables.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,6 @@ export declare class CablesRateFetcher {
|
|
|
20
20
|
blacklistFetcher: Fetcher<CablesBlacklistResponse>;
|
|
21
21
|
blacklistCacheKey: string;
|
|
22
22
|
blacklistCacheTTL: number;
|
|
23
|
-
tokensHandleResponseCallback: () => Promise<void>;
|
|
24
23
|
constructor(dexHelper: IDexHelper, dexKey: string, network: Network, logger: Logger, config: CablesRateFetcherConfig);
|
|
25
24
|
/**
|
|
26
25
|
* Utils
|
|
@@ -21,7 +21,6 @@ class CablesRateFetcher {
|
|
|
21
21
|
blacklistFetcher;
|
|
22
22
|
blacklistCacheKey;
|
|
23
23
|
blacklistCacheTTL;
|
|
24
|
-
tokensHandleResponseCallback;
|
|
25
24
|
constructor(dexHelper, dexKey, network, logger, config) {
|
|
26
25
|
this.dexHelper = dexHelper;
|
|
27
26
|
this.dexKey = dexKey;
|
|
@@ -35,8 +34,6 @@ class CablesRateFetcher {
|
|
|
35
34
|
this.pricesCacheTTL = config.rateConfig.pricesCacheTTLSecs;
|
|
36
35
|
this.blacklistCacheKey = config.rateConfig.blacklistCacheKey;
|
|
37
36
|
this.blacklistCacheTTL = config.rateConfig.blacklistCacheTTLSecs;
|
|
38
|
-
this.tokensHandleResponseCallback =
|
|
39
|
-
config.rateConfig.tokensHandleResponseCallback;
|
|
40
37
|
this.pairsFetcher = new fetcher_1.Fetcher(dexHelper.httpRequest, {
|
|
41
38
|
info: {
|
|
42
39
|
requestOptions: config.rateConfig.pairsReqParams,
|
|
@@ -119,7 +116,6 @@ class CablesRateFetcher {
|
|
|
119
116
|
const tokens = res.tokens[networkId];
|
|
120
117
|
const normalizedTokens = this.normalizeAddressesToLowerCase(tokens);
|
|
121
118
|
this.dexHelper.cache.setex(this.dexKey, this.network, this.tokensCacheKey, this.tokensCacheTTL, JSON.stringify(normalizedTokens));
|
|
122
|
-
await this.tokensHandleResponseCallback();
|
|
123
119
|
}
|
|
124
120
|
}
|
|
125
121
|
exports.CablesRateFetcher = CablesRateFetcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-fetcher.js","sourceRoot":"","sources":["../../../src/dex/cables/rate-fetcher.ts"],"names":[],"mappings":";;;AAEA,uDAAoD;AACpD,qDAAuD;AAUvD,6CAKsB;AAEtB,MAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"rate-fetcher.js","sourceRoot":"","sources":["../../../src/dex/cables/rate-fetcher.ts"],"names":[],"mappings":";;;AAEA,uDAAoD;AACpD,qDAAuD;AAUvD,6CAKsB;AAEtB,MAAa,iBAAiB;IAkBlB;IACA;IACA;IACA;IApBH,aAAa,CAAgC;IAC7C,cAAc,CAAS;IACvB,cAAc,CAAS;IAEvB,YAAY,CAA+B;IAC3C,aAAa,CAAS;IACtB,aAAa,CAAS;IAEtB,aAAa,CAAgC;IAC7C,cAAc,CAAS;IACvB,cAAc,CAAS;IAEvB,gBAAgB,CAAmC;IACnD,iBAAiB,CAAS;IAC1B,iBAAiB,CAAS;IAEjC,YACU,SAAqB,EACrB,MAAc,EACd,OAAgB,EAChB,MAAc,EACtB,MAA+B;QAJvB,cAAS,GAAT,SAAS,CAAY;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAQ;QAGtB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAE3D,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAEzD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAE3D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAEjE,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAO,CAC7B,SAAS,CAAC,WAAW,EACrB;YACE,IAAI,EAAE;gBACJ,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc;gBAChD,MAAM,EAAE,CAAC,IAAa,EAAE,EAAE;oBACxB,OAAO,IAAA,4BAAe,EACpB,IAAI,EACJ,mCAAsB,CACvB,CAAC;gBACJ,CAAC;aACF;YACD,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7C,EACD,MAAM,CAAC,UAAU,CAAC,eAAe,EACjC,MAAM,CACP,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAO,CAC9B,SAAS,CAAC,WAAW,EACrB;YACE,IAAI,EAAE;gBACJ,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe;gBACjD,MAAM,EAAE,CAAC,IAAa,EAAE,EAAE;oBACxB,OAAO,IAAA,4BAAe,EACpB,IAAI,EACJ,oCAAuB,CACxB,CAAC;gBACJ,CAAC;aACF;YACD,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9C,EACD,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAClC,MAAM,CACP,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,iBAAO,CACjC,SAAS,CAAC,WAAW,EACrB;YACE,IAAI,EAAE;gBACJ,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,kBAAkB;gBACpD,MAAM,EAAE,CAAC,IAAa,EAAE,EAAE;oBACxB,OAAO,IAAA,4BAAe,EACpB,IAAI,EACJ,uCAA0B,CAC3B,CAAC;gBACJ,CAAC;aACF;YACD,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;SACjD,EACD,MAAM,CAAC,UAAU,CAAC,mBAAmB,EACrC,MAAM,CACP,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAO,CAC9B,SAAS,CAAC,WAAW,EACrB;YACE,IAAI,EAAE;gBACJ,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe;gBACjD,MAAM,EAAE,CAAC,IAAa,EAAE,EAAE;oBACxB,OAAO,IAAA,4BAAe,EACpB,IAAI,EACJ,oCAAuB,CACxB,CAAC;gBACJ,CAAC;aACF;YACD,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9C,EACD,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAClC,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;IACD,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAEO,mBAAmB,CAAC,GAAwB;QAClD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,gBAAgB,GAAkC,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC/B,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CACjC,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,GAAyB;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,GAA4B;QAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED,iCAAiC;IACzB,6BAA6B,GAAG,CACtC,QAA6C,EAC7C,EAAE;QACF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAClC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,GAAyB;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAErC,MAAM,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAEpE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CACjC,CAAC;IACJ,CAAC;CACF;AA/LD,8CA+LC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { RequestHeaders } from '../../dex-helper';
|
|
2
2
|
import { Token } from '../../types';
|
|
3
|
-
import { Method } from '../../dex-helper/irequest-wrapper';
|
|
4
3
|
import { AugustusRFQOrderData } from '../augustus-rfq';
|
|
5
4
|
export type CablesRFQResponse = {
|
|
6
5
|
order: AugustusRFQOrderData;
|
|
@@ -9,19 +8,6 @@ export type CablesRFQResponse = {
|
|
|
9
8
|
export type CablesData = {
|
|
10
9
|
quoteData?: AugustusRFQOrderData;
|
|
11
10
|
};
|
|
12
|
-
export declare enum OrderbookSide {
|
|
13
|
-
bids = "bids",
|
|
14
|
-
asks = "asks"
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Utils
|
|
18
|
-
*/
|
|
19
|
-
export type CablesAPIParameters = {
|
|
20
|
-
url: string;
|
|
21
|
-
method: Method;
|
|
22
|
-
};
|
|
23
|
-
export declare class CablesRfqError extends Error {
|
|
24
|
-
}
|
|
25
11
|
/**
|
|
26
12
|
* Types
|
|
27
13
|
*/
|
|
@@ -30,22 +16,22 @@ export type PairData = {
|
|
|
30
16
|
quote: string;
|
|
31
17
|
liquidityUSD: number;
|
|
32
18
|
};
|
|
33
|
-
|
|
34
|
-
|
|
19
|
+
type PriceAndAmount = [string, string];
|
|
20
|
+
type PriceData = {
|
|
35
21
|
bids: PriceAndAmount[];
|
|
36
22
|
asks: PriceAndAmount[];
|
|
37
23
|
};
|
|
38
|
-
|
|
24
|
+
type PriceDataMap = {
|
|
39
25
|
[network: string]: {
|
|
40
26
|
[pair: string]: PriceData;
|
|
41
27
|
};
|
|
42
28
|
};
|
|
43
|
-
|
|
29
|
+
type TokenDataMap = {
|
|
44
30
|
[network: string]: {
|
|
45
31
|
[token: string]: Token;
|
|
46
32
|
};
|
|
47
33
|
};
|
|
48
|
-
|
|
34
|
+
type PairsDataMap = {
|
|
49
35
|
[network: string]: {
|
|
50
36
|
[token: string]: PairData;
|
|
51
37
|
};
|
|
@@ -102,7 +88,6 @@ export type CablesRateFetcherConfig = {
|
|
|
102
88
|
pairsCacheTTLSecs: number;
|
|
103
89
|
pricesCacheTTLSecs: number;
|
|
104
90
|
tokensCacheTTLSecs: number;
|
|
105
|
-
tokensHandleResponseCallback: () => Promise<void>;
|
|
106
91
|
};
|
|
107
92
|
};
|
|
108
93
|
export type RestrictData = {
|
|
@@ -112,3 +97,4 @@ export type RestrictData = {
|
|
|
112
97
|
export declare class SlippageError extends Error {
|
|
113
98
|
isSlippageError: boolean;
|
|
114
99
|
}
|
|
100
|
+
export {};
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SlippageError =
|
|
4
|
-
var OrderbookSide;
|
|
5
|
-
(function (OrderbookSide) {
|
|
6
|
-
OrderbookSide["bids"] = "bids";
|
|
7
|
-
OrderbookSide["asks"] = "asks";
|
|
8
|
-
})(OrderbookSide || (exports.OrderbookSide = OrderbookSide = {}));
|
|
9
|
-
class CablesRfqError extends Error {
|
|
10
|
-
}
|
|
11
|
-
exports.CablesRfqError = CablesRfqError;
|
|
3
|
+
exports.SlippageError = void 0;
|
|
12
4
|
class SlippageError extends Error {
|
|
13
5
|
isSlippageError = true;
|
|
14
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/cables/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/cables/types.ts"],"names":[],"mappings":";;;AA8GA,MAAa,aAAc,SAAQ,KAAK;IACtC,eAAe,GAAG,IAAI,CAAC;CACxB;AAFD,sCAEC"}
|
package/package.json
CHANGED
|
@@ -294,7 +294,7 @@ describe('Cables', function () {
|
|
|
294
294
|
);
|
|
295
295
|
});
|
|
296
296
|
|
|
297
|
-
describe('getTopPoolsForToken', () => {
|
|
297
|
+
describe.skip('getTopPoolsForToken', () => {
|
|
298
298
|
it('USDC getTopPoolsForToken', async function () {
|
|
299
299
|
// We have to check without calling initializePricing, because
|
|
300
300
|
// pool-tracker is not calling that function
|
package/src/dex/cables/cables.ts
CHANGED
|
@@ -56,6 +56,7 @@ import BigNumber from 'bignumber.js';
|
|
|
56
56
|
import { ethers } from 'ethers';
|
|
57
57
|
import { BI_MAX_UINT256 } from '../../bigint-constants';
|
|
58
58
|
import _ from 'lodash';
|
|
59
|
+
import { BebopData } from '../bebop/types';
|
|
59
60
|
|
|
60
61
|
export class Cables extends SimpleExchange implements IDex<any> {
|
|
61
62
|
public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
|
|
@@ -116,10 +117,6 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
116
117
|
blacklistIntervalMs: CABLES_API_BLACKLIST_POLLING_INTERVAL_MS,
|
|
117
118
|
blacklistCacheTTLSecs: CABLES_BLACKLIST_CACHES_TTL_S,
|
|
118
119
|
blacklistCacheKey: CABLES_BLACKLIST_CACHE_KEY,
|
|
119
|
-
|
|
120
|
-
tokensHandleResponseCallback: async () => {
|
|
121
|
-
await this.setTokensMap();
|
|
122
|
-
},
|
|
123
120
|
},
|
|
124
121
|
},
|
|
125
122
|
);
|
|
@@ -255,6 +252,21 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
255
252
|
}
|
|
256
253
|
}
|
|
257
254
|
|
|
255
|
+
getAdapterParam(
|
|
256
|
+
srcToken: string,
|
|
257
|
+
destToken: string,
|
|
258
|
+
srcAmount: string,
|
|
259
|
+
destAmount: string,
|
|
260
|
+
data: BebopData,
|
|
261
|
+
side: SwapSide,
|
|
262
|
+
): AdapterExchangeParam {
|
|
263
|
+
return {
|
|
264
|
+
targetExchange: this.mainnetRFQAddress,
|
|
265
|
+
payload: '0x',
|
|
266
|
+
networkFee: '0',
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
|
|
258
270
|
getDexParam(
|
|
259
271
|
srcToken: Address,
|
|
260
272
|
destToken: Address,
|
|
@@ -315,64 +327,6 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
315
327
|
};
|
|
316
328
|
}
|
|
317
329
|
|
|
318
|
-
getAdapterParam(
|
|
319
|
-
srcToken: string,
|
|
320
|
-
destToken: string,
|
|
321
|
-
srcAmount: string,
|
|
322
|
-
destAmount: string,
|
|
323
|
-
data: CablesData,
|
|
324
|
-
side: SwapSide,
|
|
325
|
-
): AdapterExchangeParam {
|
|
326
|
-
const { quoteData } = data;
|
|
327
|
-
|
|
328
|
-
assert(
|
|
329
|
-
quoteData !== undefined,
|
|
330
|
-
`${this.dexKey}-${this.network}: quoteData undefined`,
|
|
331
|
-
);
|
|
332
|
-
|
|
333
|
-
const params = [
|
|
334
|
-
{
|
|
335
|
-
nonceAndMeta: quoteData.nonceAndMeta,
|
|
336
|
-
expiry: quoteData.expiry,
|
|
337
|
-
makerAsset: quoteData.makerAsset,
|
|
338
|
-
takerAsset: quoteData.takerAsset,
|
|
339
|
-
maker: quoteData.maker,
|
|
340
|
-
taker: quoteData.taker,
|
|
341
|
-
makerAmount: quoteData.makerAmount,
|
|
342
|
-
takerAmount: quoteData.takerAmount,
|
|
343
|
-
},
|
|
344
|
-
quoteData.signature,
|
|
345
|
-
];
|
|
346
|
-
|
|
347
|
-
const payload = this.abiCoder.encodeParameter(
|
|
348
|
-
{
|
|
349
|
-
ParentStruct: {
|
|
350
|
-
order: {
|
|
351
|
-
nonceAndMeta: 'uint256',
|
|
352
|
-
expiry: 'uint128',
|
|
353
|
-
makerAsset: 'address',
|
|
354
|
-
takerAsset: 'address',
|
|
355
|
-
maker: 'address',
|
|
356
|
-
taker: 'address',
|
|
357
|
-
makerAmount: 'uint256',
|
|
358
|
-
takerAmount: 'uint256',
|
|
359
|
-
},
|
|
360
|
-
signature: 'bytes',
|
|
361
|
-
},
|
|
362
|
-
},
|
|
363
|
-
{
|
|
364
|
-
order: params[0],
|
|
365
|
-
signature: params[1],
|
|
366
|
-
},
|
|
367
|
-
);
|
|
368
|
-
|
|
369
|
-
return {
|
|
370
|
-
targetExchange: this.mainnetRFQAddress,
|
|
371
|
-
payload,
|
|
372
|
-
networkFee: '0',
|
|
373
|
-
};
|
|
374
|
-
}
|
|
375
|
-
|
|
376
330
|
normalizeToken(token: Token): Token {
|
|
377
331
|
return {
|
|
378
332
|
...token,
|
|
@@ -388,9 +342,8 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
388
342
|
return this.tokensMap[this.normalizeAddress(address)];
|
|
389
343
|
}
|
|
390
344
|
|
|
391
|
-
getPoolIdentifier(srcAddress: Address, destAddress: Address
|
|
345
|
+
getPoolIdentifier(srcAddress: Address, destAddress: Address) {
|
|
392
346
|
return `${this.dexKey}_${srcAddress}_${destAddress}`.toLowerCase();
|
|
393
|
-
return `${this.dexKey}_${srcAddress}_${destAddress}_${mm}`.toLowerCase();
|
|
394
347
|
}
|
|
395
348
|
|
|
396
349
|
async getPoolIdentifiers(
|
|
@@ -399,8 +352,6 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
399
352
|
side: SwapSide,
|
|
400
353
|
blockNumber: number,
|
|
401
354
|
): Promise<string[]> {
|
|
402
|
-
await this.setTokensMap();
|
|
403
|
-
|
|
404
355
|
if (!srcToken || !destToken) {
|
|
405
356
|
return [];
|
|
406
357
|
}
|
|
@@ -409,18 +360,22 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
409
360
|
return [];
|
|
410
361
|
}
|
|
411
362
|
|
|
412
|
-
const
|
|
363
|
+
const normalizedSrcToken = this.normalizeToken(srcToken);
|
|
364
|
+
const normalizedDestToken = this.normalizeToken(destToken);
|
|
365
|
+
|
|
366
|
+
const pairData = await this.getPairData(
|
|
367
|
+
normalizedSrcToken,
|
|
368
|
+
normalizedDestToken,
|
|
369
|
+
);
|
|
413
370
|
|
|
414
371
|
if (!pairData) {
|
|
415
372
|
return [];
|
|
416
373
|
}
|
|
417
374
|
|
|
418
|
-
const tokensAddr = (await this.getCachedTokensAddr()) || {};
|
|
419
|
-
|
|
420
375
|
return [
|
|
421
376
|
this.getPoolIdentifier(
|
|
422
|
-
|
|
423
|
-
|
|
377
|
+
normalizedSrcToken.address,
|
|
378
|
+
normalizedDestToken.address,
|
|
424
379
|
),
|
|
425
380
|
];
|
|
426
381
|
}
|
|
@@ -530,13 +485,6 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
530
485
|
transferFees?: TransferFeeParams,
|
|
531
486
|
isFirstSwap?: boolean,
|
|
532
487
|
): Promise<ExchangePrices<CablesData> | null> {
|
|
533
|
-
const isRestricted = await this.isRestricted();
|
|
534
|
-
if (isRestricted) {
|
|
535
|
-
return null;
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
await this.setTokensMap();
|
|
539
|
-
|
|
540
488
|
try {
|
|
541
489
|
const normalizedSrcToken = this.normalizeToken(srcToken);
|
|
542
490
|
const normalizedDestToken = this.normalizeToken(destToken);
|
|
@@ -548,25 +496,22 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
548
496
|
return null;
|
|
549
497
|
}
|
|
550
498
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
if (normalizedSrcToken.address === normalizedTokenAddress) {
|
|
556
|
-
normalizedSrcToken.symbol = this.tokensMap[symbol].symbol;
|
|
557
|
-
}
|
|
558
|
-
if (normalizedDestToken.address === normalizedTokenAddress) {
|
|
559
|
-
normalizedDestToken.symbol = this.tokensMap[symbol].symbol;
|
|
560
|
-
}
|
|
499
|
+
const isRestricted = await this.isRestricted();
|
|
500
|
+
if (isRestricted) {
|
|
501
|
+
return null;
|
|
561
502
|
}
|
|
562
503
|
|
|
504
|
+
await this.setTokensMap();
|
|
505
|
+
|
|
506
|
+
normalizedSrcToken.symbol =
|
|
507
|
+
this.tokensMap[normalizedSrcToken.address].symbol;
|
|
508
|
+
normalizedDestToken.symbol =
|
|
509
|
+
this.tokensMap[normalizedDestToken.address!].symbol;
|
|
510
|
+
|
|
563
511
|
// ---------- Pools ----------
|
|
564
|
-
let pools =
|
|
565
|
-
|
|
566
|
-
destToken,
|
|
567
|
-
side,
|
|
568
|
-
blockNumber,
|
|
569
|
-
);
|
|
512
|
+
let pools =
|
|
513
|
+
limitPools ||
|
|
514
|
+
(await this.getPoolIdentifiers(srcToken, destToken, side, blockNumber));
|
|
570
515
|
if (pools.length === 0) return null;
|
|
571
516
|
|
|
572
517
|
// ---------- Prices ----------
|
|
@@ -663,7 +608,7 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
663
608
|
}
|
|
664
609
|
|
|
665
610
|
releaseResources?(): AsyncOrSync<void> {
|
|
666
|
-
if (this.rateFetcher) {
|
|
611
|
+
if (!this.dexHelper.config.isSlave && this.rateFetcher) {
|
|
667
612
|
this.rateFetcher.stop();
|
|
668
613
|
}
|
|
669
614
|
}
|
|
@@ -690,125 +635,7 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
690
635
|
tokenAddress: Address,
|
|
691
636
|
limit: number,
|
|
692
637
|
): Promise<PoolLiquidity[]> {
|
|
693
|
-
|
|
694
|
-
const denormalizedTokenAddress = isETH ? NULL_ADDRESS : tokenAddress;
|
|
695
|
-
|
|
696
|
-
const tokens = (await this.getCachedTokens()) as { [key: string]: Token };
|
|
697
|
-
const token = Object.values(tokens).find(
|
|
698
|
-
token =>
|
|
699
|
-
token.address.toLowerCase() === denormalizedTokenAddress.toLowerCase(),
|
|
700
|
-
);
|
|
701
|
-
|
|
702
|
-
if (!token) {
|
|
703
|
-
return [];
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
const pairs = (await this.getCachedPairs()) as {
|
|
707
|
-
[key: string]: { base: string; quote: string };
|
|
708
|
-
};
|
|
709
|
-
|
|
710
|
-
const connectorTokens = Object.keys(pairs)
|
|
711
|
-
.filter(pairKey => {
|
|
712
|
-
const { base, quote } = pairs[pairKey];
|
|
713
|
-
|
|
714
|
-
if (
|
|
715
|
-
base.toLowerCase() === token.symbol?.toLowerCase() ||
|
|
716
|
-
quote.toLowerCase() === token.symbol?.toLowerCase()
|
|
717
|
-
) {
|
|
718
|
-
return true;
|
|
719
|
-
}
|
|
720
|
-
|
|
721
|
-
return false;
|
|
722
|
-
})
|
|
723
|
-
.map(pairKey => {
|
|
724
|
-
const { base, quote } = pairs[pairKey];
|
|
725
|
-
|
|
726
|
-
if (base.toLowerCase() === token.symbol?.toLowerCase()) {
|
|
727
|
-
return tokens[quote];
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
if (quote.toLowerCase() === token.symbol?.toLowerCase()) {
|
|
731
|
-
return tokens[base];
|
|
732
|
-
}
|
|
733
|
-
});
|
|
734
|
-
|
|
735
|
-
if (connectorTokens.length === 0) {
|
|
736
|
-
return [];
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
connectorTokens.push(token);
|
|
740
|
-
|
|
741
|
-
const tokensBalanceMultiCall = connectorTokens.map(token => {
|
|
742
|
-
let erc20BalanceCalldata;
|
|
743
|
-
if (token?.address.toLowerCase() === NULL_ADDRESS) {
|
|
744
|
-
erc20BalanceCalldata = this.dexHelper.multiContract.methods
|
|
745
|
-
.getEthBalance(this.mainnetRFQAddress)
|
|
746
|
-
.encodeABI();
|
|
747
|
-
} else {
|
|
748
|
-
erc20BalanceCalldata = this.erc20Interface.encodeFunctionData(
|
|
749
|
-
'balanceOf',
|
|
750
|
-
[this.mainnetRFQAddress],
|
|
751
|
-
);
|
|
752
|
-
}
|
|
753
|
-
|
|
754
|
-
return {
|
|
755
|
-
target:
|
|
756
|
-
token?.address.toLowerCase() === NULL_ADDRESS
|
|
757
|
-
? this.dexHelper.config.data.multicallV2Address.toLowerCase()
|
|
758
|
-
: token?.address,
|
|
759
|
-
callData: erc20BalanceCalldata,
|
|
760
|
-
};
|
|
761
|
-
});
|
|
762
|
-
|
|
763
|
-
const res = (
|
|
764
|
-
await this.dexHelper.multiContract.methods
|
|
765
|
-
.aggregate(tokensBalanceMultiCall)
|
|
766
|
-
.call()
|
|
767
|
-
).returnData;
|
|
768
|
-
|
|
769
|
-
const balances = res.map((item: any) => {
|
|
770
|
-
if (item === '0x') {
|
|
771
|
-
return 0n;
|
|
772
|
-
}
|
|
773
|
-
return BigInt(item.toString());
|
|
774
|
-
});
|
|
775
|
-
|
|
776
|
-
const connectorsPricesUSD = await Promise.all(
|
|
777
|
-
connectorTokens.map(async (token, index) =>
|
|
778
|
-
this.dexHelper.getTokenUSDPrice(token!, balances[index]),
|
|
779
|
-
),
|
|
780
|
-
);
|
|
781
|
-
|
|
782
|
-
const extendedConnectors = connectorTokens.map((token, index) => ({
|
|
783
|
-
...token,
|
|
784
|
-
usdPrice: connectorsPricesUSD[index],
|
|
785
|
-
}));
|
|
786
|
-
|
|
787
|
-
const tokenUSDPrice = _.last(extendedConnectors)!.usdPrice;
|
|
788
|
-
extendedConnectors.pop(); // to remove token which was added before
|
|
789
|
-
|
|
790
|
-
const connectors = extendedConnectors.map(connector => {
|
|
791
|
-
return {
|
|
792
|
-
exchange: this.dexKey,
|
|
793
|
-
address: this.mainnetRFQAddress,
|
|
794
|
-
connectorTokens: [
|
|
795
|
-
{
|
|
796
|
-
address:
|
|
797
|
-
connector.address === NULL_ADDRESS
|
|
798
|
-
? ETHER_ADDRESS
|
|
799
|
-
: connector!.address,
|
|
800
|
-
decimals: connector!.decimals,
|
|
801
|
-
},
|
|
802
|
-
],
|
|
803
|
-
liquidityUSD: Number(connector!.usdPrice) + Number(tokenUSDPrice),
|
|
804
|
-
};
|
|
805
|
-
});
|
|
806
|
-
|
|
807
|
-
return _.slice(
|
|
808
|
-
_.sortBy(connectors as PoolLiquidity[], [pool => -1 * pool.liquidityUSD]),
|
|
809
|
-
0,
|
|
810
|
-
limit,
|
|
811
|
-
);
|
|
638
|
+
return [];
|
|
812
639
|
}
|
|
813
640
|
|
|
814
641
|
/**
|
|
@@ -871,37 +698,28 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
871
698
|
};
|
|
872
699
|
|
|
873
700
|
async getPairData(srcToken: Token, destToken: Token): Promise<any> {
|
|
874
|
-
|
|
875
|
-
const normalizedDestToken = this.normalizeToken(destToken);
|
|
876
|
-
|
|
877
|
-
if (normalizedSrcToken.address === normalizedDestToken.address) {
|
|
701
|
+
if (srcToken.address === destToken.address) {
|
|
878
702
|
return null;
|
|
879
703
|
}
|
|
880
704
|
|
|
881
705
|
const cachedTokens = await this.getCachedTokens();
|
|
882
706
|
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
normalizedSrcToken.address,
|
|
886
|
-
);
|
|
887
|
-
normalizedDestToken.symbol = this.findKeyByAddress(
|
|
888
|
-
cachedTokens,
|
|
889
|
-
normalizedDestToken.address,
|
|
890
|
-
);
|
|
707
|
+
srcToken.symbol = this.findKeyByAddress(cachedTokens, srcToken.address);
|
|
708
|
+
destToken.symbol = this.findKeyByAddress(cachedTokens, destToken.address);
|
|
891
709
|
|
|
892
710
|
const cachedPairs = await this.getCachedPairs();
|
|
893
711
|
|
|
894
712
|
const potentialPairs = [
|
|
895
713
|
{
|
|
896
|
-
base:
|
|
897
|
-
quote:
|
|
898
|
-
identifier: this.getPairString(
|
|
714
|
+
base: srcToken.symbol,
|
|
715
|
+
quote: destToken.symbol,
|
|
716
|
+
identifier: this.getPairString(srcToken, destToken),
|
|
899
717
|
isSrcBase: true,
|
|
900
718
|
},
|
|
901
719
|
{
|
|
902
|
-
base:
|
|
903
|
-
quote:
|
|
904
|
-
identifier: this.getPairString(
|
|
720
|
+
base: destToken.symbol,
|
|
721
|
+
quote: srcToken.symbol,
|
|
722
|
+
identifier: this.getPairString(destToken, srcToken),
|
|
905
723
|
isSrcBase: false,
|
|
906
724
|
},
|
|
907
725
|
];
|
|
@@ -920,7 +738,7 @@ export class Cables extends SimpleExchange implements IDex<any> {
|
|
|
920
738
|
const cachedBlacklist = await this.dexHelper.cache.get(
|
|
921
739
|
this.dexKey,
|
|
922
740
|
this.network,
|
|
923
|
-
|
|
741
|
+
this.rateFetcher.blacklistCacheKey,
|
|
924
742
|
);
|
|
925
743
|
|
|
926
744
|
if (cachedBlacklist) {
|
|
@@ -35,8 +35,6 @@ export class CablesRateFetcher {
|
|
|
35
35
|
public blacklistCacheKey: string;
|
|
36
36
|
public blacklistCacheTTL: number;
|
|
37
37
|
|
|
38
|
-
tokensHandleResponseCallback: () => Promise<void>;
|
|
39
|
-
|
|
40
38
|
constructor(
|
|
41
39
|
private dexHelper: IDexHelper,
|
|
42
40
|
private dexKey: string,
|
|
@@ -56,9 +54,6 @@ export class CablesRateFetcher {
|
|
|
56
54
|
this.blacklistCacheKey = config.rateConfig.blacklistCacheKey;
|
|
57
55
|
this.blacklistCacheTTL = config.rateConfig.blacklistCacheTTLSecs;
|
|
58
56
|
|
|
59
|
-
this.tokensHandleResponseCallback =
|
|
60
|
-
config.rateConfig.tokensHandleResponseCallback;
|
|
61
|
-
|
|
62
57
|
this.pairsFetcher = new Fetcher<CablesPairsResponse>(
|
|
63
58
|
dexHelper.httpRequest,
|
|
64
59
|
{
|
|
@@ -213,7 +208,5 @@ export class CablesRateFetcher {
|
|
|
213
208
|
this.tokensCacheTTL,
|
|
214
209
|
JSON.stringify(normalizedTokens),
|
|
215
210
|
);
|
|
216
|
-
|
|
217
|
-
await this.tokensHandleResponseCallback();
|
|
218
211
|
}
|
|
219
212
|
}
|
package/src/dex/cables/types.ts
CHANGED
|
@@ -11,21 +11,6 @@ export type CablesRFQResponse = {
|
|
|
11
11
|
export type CablesData = {
|
|
12
12
|
quoteData?: AugustusRFQOrderData;
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
export enum OrderbookSide {
|
|
16
|
-
bids = 'bids',
|
|
17
|
-
asks = 'asks',
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Utils
|
|
22
|
-
*/
|
|
23
|
-
export type CablesAPIParameters = {
|
|
24
|
-
url: string;
|
|
25
|
-
method: Method;
|
|
26
|
-
};
|
|
27
|
-
export class CablesRfqError extends Error {}
|
|
28
|
-
|
|
29
14
|
/**
|
|
30
15
|
* Types
|
|
31
16
|
*/
|
|
@@ -35,26 +20,26 @@ export type PairData = {
|
|
|
35
20
|
liquidityUSD: number;
|
|
36
21
|
};
|
|
37
22
|
|
|
38
|
-
|
|
23
|
+
type PriceAndAmount = [string, string];
|
|
39
24
|
|
|
40
|
-
|
|
25
|
+
type PriceData = {
|
|
41
26
|
bids: PriceAndAmount[];
|
|
42
27
|
asks: PriceAndAmount[];
|
|
43
28
|
};
|
|
44
29
|
|
|
45
|
-
|
|
30
|
+
type PriceDataMap = {
|
|
46
31
|
[network: string]: {
|
|
47
32
|
[pair: string]: PriceData;
|
|
48
33
|
};
|
|
49
34
|
};
|
|
50
35
|
|
|
51
|
-
|
|
36
|
+
type TokenDataMap = {
|
|
52
37
|
[network: string]: {
|
|
53
38
|
[token: string]: Token;
|
|
54
39
|
};
|
|
55
40
|
};
|
|
56
41
|
|
|
57
|
-
|
|
42
|
+
type PairsDataMap = {
|
|
58
43
|
[network: string]: {
|
|
59
44
|
[token: string]: PairData;
|
|
60
45
|
};
|
|
@@ -115,8 +100,6 @@ export type CablesRateFetcherConfig = {
|
|
|
115
100
|
pairsCacheTTLSecs: number;
|
|
116
101
|
pricesCacheTTLSecs: number;
|
|
117
102
|
tokensCacheTTLSecs: number;
|
|
118
|
-
|
|
119
|
-
tokensHandleResponseCallback: () => Promise<void>;
|
|
120
103
|
};
|
|
121
104
|
};
|
|
122
105
|
|