@gainsnetwork/sdk 1.4.4 → 1.4.6-rc1

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.
@@ -424,6 +424,13 @@ export declare const pairs: {
424
424
  "DRIFT/USD": string;
425
425
  "MYX/USD": string;
426
426
  "NOM/USD": string;
427
+ "FLUID/USD": string;
428
+ "LQTY/USD": string;
429
+ "L3/USD": string;
430
+ "CAMP/USD": string;
431
+ "SOMI/USD": string;
432
+ "HEMI/USD": string;
433
+ "FF/USD": string;
427
434
  };
428
435
  export declare const syntheticPairs: Set<string>;
429
436
  export declare const parentToSyntheticPairMap: Map<string, string>;
package/lib/constants.js CHANGED
@@ -432,6 +432,13 @@ exports.pairs = {
432
432
  "DRIFT/USD": CRYPTO,
433
433
  "MYX/USD": CRYPTO,
434
434
  "NOM/USD": CRYPTO,
435
+ "FLUID/USD": CRYPTO,
436
+ "LQTY/USD": CRYPTO,
437
+ "L3/USD": CRYPTO,
438
+ "CAMP/USD": CRYPTO,
439
+ "SOMI/USD": CRYPTO,
440
+ "HEMI/USD": CRYPTO,
441
+ "FF/USD": CRYPTO,
435
442
  };
436
443
  exports.syntheticPairs = new Set([
437
444
  "BTCDEGEN/USD",
@@ -483,9 +490,9 @@ exports.delistedPairIxs = new Set([
483
490
  61, 63, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77, 78, 79, 95, 96, 97, 98,
484
491
  99, 101, 106, 111, 113, 114, 116, 118, 120, 122, 123, 125, 127, 130, 147, 152,
485
492
  160, 163, 170, 179, 182, 183, 188, 189, 190, 208, 209, 225, 229, 230, 231,
486
- 238, 239, 241, 250, 253, 254, 258, 270, 275, 276, 278, 279, 282, 285, 290,
487
- 294, 296, 305, 311, 330, 349, 352, 353, 354, 355, 357, 365, 366, 395, 396,
488
- 424,
493
+ 238, 239, 241, 250, 253, 254, 258, 270, 275, 276, 278, 279, 285, 290, 294,
494
+ 296, 305, 311, 330, 349, 352, 353, 354, 355, 357, 365, 366, 395, 396, 424,
495
+ 425, 426, 427, 428, 429, 430, 431,
489
496
  ]);
490
497
  exports.delistedGroupsIxs = new Set([]);
491
498
  exports.DEFAULT_PROTECTION_CLOSE_FACTOR = 1;
@@ -1,6 +1,7 @@
1
1
  import { TradeContainer, TradeContainerRaw } from "../../trade/types";
2
2
  import { Contracts, BlockTag } from "../../contracts/types";
3
3
  export type FetchOpenPairTradesOverrides = {
4
+ traders?: string[];
4
5
  batchSize?: number;
5
6
  useMulticall?: boolean;
6
7
  includeLimits?: boolean;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchOpenPairTradesRaw = exports.fetchOpenPairTrades = void 0;
4
4
  const ethcall_1 = require("ethcall");
5
+ const ethers_1 = require("ethers");
5
6
  const trade_1 = require("../../trade");
6
7
  const fetchOpenPairTrades = async (contracts, overrides = {}) => {
7
8
  const rawTrades = await (0, exports.fetchOpenPairTradesRaw)(contracts, overrides);
@@ -15,12 +16,11 @@ const fetchOpenPairTrades = async (contracts, overrides = {}) => {
15
16
  return rawTrades.map(rawTrade => _prepareTradeContainer(rawTrade.trade, rawTrade.tradeInfo, rawTrade.liquidationParams, rawTrade.initialAccFees, rawTrade.tradeFeesData, rawTrade.uiRealizedPnlData, collateralConfigs[parseInt(rawTrade.trade.collateralIndex.toString()) - 1]));
16
17
  };
17
18
  exports.fetchOpenPairTrades = fetchOpenPairTrades;
18
- // @todo rename
19
19
  const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
20
20
  if (!contracts) {
21
21
  return [];
22
22
  }
23
- const { batchSize = 50, includeLimits = true, useMulticall = false, includeUIRealizedPnlData = true, } = overrides;
23
+ const { batchSize = 50, includeLimits = true, useMulticall = false, includeUIRealizedPnlData = true, traders = [], } = overrides;
24
24
  const { gnsMultiCollatDiamond: multiCollatDiamondContract } = contracts;
25
25
  try {
26
26
  const multicallCtx = {
@@ -29,6 +29,8 @@ const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
29
29
  ...multiCollatDiamondContract.interface.fragments,
30
30
  ]),
31
31
  };
32
+ const validatedAddresses = _validateAddresses(traders || []);
33
+ const forTraders = validatedAddresses.length > 0;
32
34
  if (useMulticall) {
33
35
  await multicallCtx.provider.init(multiCollatDiamondContract.provider);
34
36
  }
@@ -36,11 +38,17 @@ const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
36
38
  let running = true;
37
39
  let offset = 0;
38
40
  while (running) {
39
- const [trades, tradeInfos, tradeLiquidationParams] = await Promise.all([
40
- multiCollatDiamondContract.getAllTrades(offset, offset + batchSize),
41
- multiCollatDiamondContract.getAllTradeInfos(offset, offset + batchSize),
42
- multiCollatDiamondContract.getAllTradesLiquidationParams(offset, offset + batchSize),
43
- ]);
41
+ const [trades, tradeInfos, tradeLiquidationParams] = await Promise.all(forTraders
42
+ ? [
43
+ multiCollatDiamondContract.getAllTradesForTraders(validatedAddresses, offset, offset + batchSize),
44
+ multiCollatDiamondContract.getAllTradeInfosForTraders(validatedAddresses, offset, offset + batchSize),
45
+ multiCollatDiamondContract.getAllTradesLiquidationParamsForTraders(validatedAddresses, offset, offset + batchSize),
46
+ ]
47
+ : [
48
+ multiCollatDiamondContract.getAllTrades(offset, offset + batchSize),
49
+ multiCollatDiamondContract.getAllTradeInfos(offset, offset + batchSize),
50
+ multiCollatDiamondContract.getAllTradesLiquidationParams(offset, offset + batchSize),
51
+ ]);
44
52
  const fundingFeesCallParams = [
45
53
  [],
46
54
  [], // indices
@@ -153,3 +161,12 @@ const _prepareTradeContainer = (trade, tradeInfo, tradeLiquidationParams, tradeI
153
161
  : undefined,
154
162
  };
155
163
  };
164
+ /**
165
+ * Filters out duplicate addresses. Throws error if an invalid address is provided.
166
+ * @param addresses
167
+ */
168
+ const _validateAddresses = (addresses) => {
169
+ return [
170
+ ...new Set(addresses.map(address => ethers_1.ethers.utils.getAddress(address))),
171
+ ];
172
+ };
@@ -521,4 +521,11 @@ const PAIR_INDEX_TO_DESCRIPTION = {
521
521
  [types_1.PairIndex.DRIFTUSD]: "Drift to US Dollar",
522
522
  [types_1.PairIndex.MYXUSD]: "MYX Finance to US Dollar",
523
523
  [types_1.PairIndex.NOMUSD]: "Nomina to US Dollar",
524
+ [types_1.PairIndex.FLUIDUSD]: "Fluid to US Dollar",
525
+ [types_1.PairIndex.LQTYUSD]: "Liquity to US Dollar",
526
+ [types_1.PairIndex.L3USD]: "Layer3 to US Dollar",
527
+ [types_1.PairIndex.CAMPUSD]: "Camp Network to US Dollar",
528
+ [types_1.PairIndex.SOMIUSD]: "Somnia to US Dollar",
529
+ [types_1.PairIndex.HEMIUSD]: "Hemi to US Dollar",
530
+ [types_1.PairIndex.FFUSD]: "Falcon Finance to US Dollar",
524
531
  };
@@ -748,5 +748,12 @@ export declare enum PairIndex {
748
748
  ORDERUSD = 421,
749
749
  DRIFTUSD = 422,
750
750
  MYXUSD = 423,
751
- NOMUSD = 424
751
+ NOMUSD = 424,
752
+ FLUIDUSD = 425,
753
+ LQTYUSD = 426,
754
+ L3USD = 427,
755
+ CAMPUSD = 428,
756
+ SOMIUSD = 429,
757
+ HEMIUSD = 430,
758
+ FFUSD = 431
752
759
  }
@@ -454,4 +454,11 @@ var PairIndex;
454
454
  PairIndex[PairIndex["DRIFTUSD"] = 422] = "DRIFTUSD";
455
455
  PairIndex[PairIndex["MYXUSD"] = 423] = "MYXUSD";
456
456
  PairIndex[PairIndex["NOMUSD"] = 424] = "NOMUSD";
457
+ PairIndex[PairIndex["FLUIDUSD"] = 425] = "FLUIDUSD";
458
+ PairIndex[PairIndex["LQTYUSD"] = 426] = "LQTYUSD";
459
+ PairIndex[PairIndex["L3USD"] = 427] = "L3USD";
460
+ PairIndex[PairIndex["CAMPUSD"] = 428] = "CAMPUSD";
461
+ PairIndex[PairIndex["SOMIUSD"] = 429] = "SOMIUSD";
462
+ PairIndex[PairIndex["HEMIUSD"] = 430] = "HEMIUSD";
463
+ PairIndex[PairIndex["FFUSD"] = 431] = "FFUSD";
457
464
  })(PairIndex = exports.PairIndex || (exports.PairIndex = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gainsnetwork/sdk",
3
- "version": "1.4.4",
3
+ "version": "1.4.6-rc1",
4
4
  "description": "Gains Network SDK",
5
5
  "main": "./lib/index.js",
6
6
  "files": [