@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.
@@ -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, mm?: string): string;
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, mm) {
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 pairData = await this.getPairData(srcToken, destToken);
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(tokensAddr[pairData.base.toLowerCase()], tokensAddr[pairData.quote.toLowerCase()]),
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
- for (const symbol of Object.keys(this.tokensMap)) {
377
- const normalizedTokenAddress = this.tokensMap[symbol].address.toLowerCase();
378
- if (normalizedSrcToken.address === normalizedTokenAddress) {
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 = await this.getPoolIdentifiers(srcToken, destToken, side, blockNumber);
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
- const isETH = tokenAddress.toLowerCase() === constants_1.ETHER_ADDRESS;
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
- const normalizedSrcToken = this.normalizeToken(srcToken);
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
- normalizedSrcToken.symbol = this.findKeyByAddress(cachedTokens, normalizedSrcToken.address);
602
- normalizedDestToken.symbol = this.findKeyByAddress(cachedTokens, normalizedDestToken.address);
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: normalizedSrcToken.symbol,
607
- quote: normalizedDestToken.symbol,
608
- identifier: this.getPairString(normalizedSrcToken, normalizedDestToken),
484
+ base: srcToken.symbol,
485
+ quote: destToken.symbol,
486
+ identifier: this.getPairString(srcToken, destToken),
609
487
  isSrcBase: true,
610
488
  },
611
489
  {
612
- base: normalizedDestToken.symbol,
613
- quote: normalizedSrcToken.symbol,
614
- identifier: this.getPairString(normalizedDestToken, normalizedSrcToken),
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, constants_2.CABLES_BLACKLIST_CACHE_KEY);
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":"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"}
1
+ {"version":3,"file":"rate-fetcher.js","sourceRoot":"","sources":["../../../src/dex/cables/rate-fetcher.ts"],"names":[],"mappings":"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"}
@@ -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
- export type PriceAndAmount = [string, string];
34
- export type PriceData = {
19
+ type PriceAndAmount = [string, string];
20
+ type PriceData = {
35
21
  bids: PriceAndAmount[];
36
22
  asks: PriceAndAmount[];
37
23
  };
38
- export type PriceDataMap = {
24
+ type PriceDataMap = {
39
25
  [network: string]: {
40
26
  [pair: string]: PriceData;
41
27
  };
42
28
  };
43
- export type TokenDataMap = {
29
+ type TokenDataMap = {
44
30
  [network: string]: {
45
31
  [token: string]: Token;
46
32
  };
47
33
  };
48
- export type PairsDataMap = {
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 = exports.CablesRfqError = exports.OrderbookSide = void 0;
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":";;;AAcA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,8BAAa,CAAA;IACb,8BAAa,CAAA;AACf,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AASD,MAAa,cAAe,SAAQ,KAAK;CAAG;AAA5C,wCAA4C;AAqG5C,MAAa,aAAc,SAAQ,KAAK;IACtC,eAAe,GAAG,IAAI,CAAC;CACxB;AAFD,sCAEC"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "4.0.3-Cables.0",
3
+ "version": "4.0.3-Cables.1",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -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
@@ -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, mm?: string) {
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 pairData = await this.getPairData(srcToken, destToken);
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
- tokensAddr[pairData.base.toLowerCase()],
423
- tokensAddr[pairData.quote.toLowerCase()],
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
- for (const symbol of Object.keys(this.tokensMap)) {
552
- const normalizedTokenAddress =
553
- this.tokensMap[symbol].address.toLowerCase();
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 = await this.getPoolIdentifiers(
565
- srcToken,
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
- const isETH = tokenAddress.toLowerCase() === ETHER_ADDRESS;
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
- const normalizedSrcToken = this.normalizeToken(srcToken);
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
- normalizedSrcToken.symbol = this.findKeyByAddress(
884
- cachedTokens,
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: normalizedSrcToken.symbol,
897
- quote: normalizedDestToken.symbol,
898
- identifier: this.getPairString(normalizedSrcToken, normalizedDestToken),
714
+ base: srcToken.symbol,
715
+ quote: destToken.symbol,
716
+ identifier: this.getPairString(srcToken, destToken),
899
717
  isSrcBase: true,
900
718
  },
901
719
  {
902
- base: normalizedDestToken.symbol,
903
- quote: normalizedSrcToken.symbol,
904
- identifier: this.getPairString(normalizedDestToken, normalizedSrcToken),
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
- CABLES_BLACKLIST_CACHE_KEY,
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
  }
@@ -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
- export type PriceAndAmount = [string, string];
23
+ type PriceAndAmount = [string, string];
39
24
 
40
- export type PriceData = {
25
+ type PriceData = {
41
26
  bids: PriceAndAmount[];
42
27
  asks: PriceAndAmount[];
43
28
  };
44
29
 
45
- export type PriceDataMap = {
30
+ type PriceDataMap = {
46
31
  [network: string]: {
47
32
  [pair: string]: PriceData;
48
33
  };
49
34
  };
50
35
 
51
- export type TokenDataMap = {
36
+ type TokenDataMap = {
52
37
  [network: string]: {
53
38
  [token: string]: Token;
54
39
  };
55
40
  };
56
41
 
57
- export type PairsDataMap = {
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