@gainsnetwork/sdk 1.3.0-rc4 → 1.3.0-rc7

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 (53) hide show
  1. package/lib/backend/globalTrades/index.js +10 -10
  2. package/lib/backend/tradingVariables/converter.js +58 -57
  3. package/lib/backend/tradingVariables/index.js +6 -7
  4. package/lib/constants.d.ts +4 -0
  5. package/lib/constants.js +5 -0
  6. package/lib/contracts/addresses.js +4 -1
  7. package/lib/contracts/index.d.ts +1 -1
  8. package/lib/contracts/index.js +3 -3
  9. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.d.ts +2 -10
  10. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +0 -5
  11. package/lib/contracts/utils/borrowingFees.js +9 -20
  12. package/lib/contracts/utils/openTrades.js +11 -20
  13. package/lib/contracts/utils/pairs.js +25 -30
  14. package/lib/markets/forex.js +1 -1
  15. package/lib/markets/leverage/builder.js +2 -2
  16. package/lib/markets/price/index.d.ts +1 -0
  17. package/lib/markets/price/index.js +1 -0
  18. package/lib/markets/price/types.d.ts +27 -0
  19. package/lib/pricing/depthBands.d.ts +1 -1
  20. package/lib/pricing/depthBands.js +7 -5
  21. package/lib/trade/fees/borrowing/builder.js +2 -3
  22. package/lib/trade/fees/borrowing/converter.js +5 -1
  23. package/lib/trade/fees/borrowing/index.js +5 -5
  24. package/lib/trade/fees/borrowingV2/builder.js +3 -4
  25. package/lib/trade/fees/borrowingV2/converter.js +1 -1
  26. package/lib/trade/fees/borrowingV2/fetcher.js +26 -32
  27. package/lib/trade/fees/borrowingV2/index.js +3 -3
  28. package/lib/trade/fees/converter.js +22 -22
  29. package/lib/trade/fees/fundingFees/builder.js +6 -7
  30. package/lib/trade/fees/fundingFees/converter.js +1 -1
  31. package/lib/trade/fees/fundingFees/fetcher.js +16 -25
  32. package/lib/trade/fees/fundingFees/index.js +2 -3
  33. package/lib/trade/fees/tiers/index.js +1 -2
  34. package/lib/trade/fees/trading/index.js +5 -3
  35. package/lib/trade/liquidation/builder.js +1 -2
  36. package/lib/trade/liquidation/index.js +4 -6
  37. package/lib/trade/oiWindows.js +1 -2
  38. package/lib/trade/pnl/builder.js +1 -2
  39. package/lib/trade/pnl/converter.js +1 -1
  40. package/lib/trade/pnl/index.js +4 -7
  41. package/lib/trade/priceImpact/close/builder.js +1 -2
  42. package/lib/trade/priceImpact/close/index.js +4 -1
  43. package/lib/trade/priceImpact/cumulVol/builder.js +20 -10
  44. package/lib/trade/priceImpact/cumulVol/index.d.ts +1 -1
  45. package/lib/trade/priceImpact/cumulVol/index.js +46 -14
  46. package/lib/trade/priceImpact/open/builder.js +1 -2
  47. package/lib/trade/priceImpact/open/index.js +7 -1
  48. package/lib/trade/priceImpact/skew/builder.js +2 -3
  49. package/lib/trade/priceImpact/skew/converter.js +1 -1
  50. package/lib/trade/priceImpact/skew/fetcher.js +24 -33
  51. package/lib/trade/types.d.ts +5 -1
  52. package/lib/trade/types.js +4 -0
  53. package/package.json +2 -2
@@ -25,11 +25,11 @@ const transformGlobalTrades = (rawTrades, pairs, currentAddress, collaterals) =>
25
25
  _allLimitOrders.set(t.trade.user, new Map());
26
26
  }
27
27
  const traderMap_all = _allLimitOrders.get(t.trade.user);
28
- if ((traderMap_all === null || traderMap_all === void 0 ? void 0 : traderMap_all.get(t.trade.pairIndex)) === undefined) {
29
- traderMap_all === null || traderMap_all === void 0 ? void 0 : traderMap_all.set(t.trade.pairIndex, new Map());
28
+ if (traderMap_all?.get(t.trade.pairIndex) === undefined) {
29
+ traderMap_all?.set(t.trade.pairIndex, new Map());
30
30
  }
31
- const traderPairMap_all = traderMap_all === null || traderMap_all === void 0 ? void 0 : traderMap_all.get(t.trade.pairIndex);
32
- traderPairMap_all === null || traderPairMap_all === void 0 ? void 0 : traderPairMap_all.set(t.trade.index, t);
31
+ const traderPairMap_all = traderMap_all?.get(t.trade.pairIndex);
32
+ traderPairMap_all?.set(t.trade.index, t);
33
33
  if (t.trade.user.toUpperCase() !== currentAddress.toUpperCase()) {
34
34
  continue;
35
35
  }
@@ -37,7 +37,7 @@ const transformGlobalTrades = (rawTrades, pairs, currentAddress, collaterals) =>
37
37
  _limitOrders.set(t.trade.pairIndex, new Map());
38
38
  }
39
39
  const traderPairMap = _limitOrders.get(t.trade.pairIndex);
40
- traderPairMap === null || traderPairMap === void 0 ? void 0 : traderPairMap.set(t.trade.index, t);
40
+ traderPairMap?.set(t.trade.index, t);
41
41
  }
42
42
  else {
43
43
  const t = r[s];
@@ -45,11 +45,11 @@ const transformGlobalTrades = (rawTrades, pairs, currentAddress, collaterals) =>
45
45
  _allTrades.set(t.trade.user, new Map());
46
46
  }
47
47
  const traderMap_all = _allTrades.get(t.trade.user);
48
- if ((traderMap_all === null || traderMap_all === void 0 ? void 0 : traderMap_all.get(t.trade.pairIndex)) === undefined) {
49
- traderMap_all === null || traderMap_all === void 0 ? void 0 : traderMap_all.set(t.trade.pairIndex, new Map());
48
+ if (traderMap_all?.get(t.trade.pairIndex) === undefined) {
49
+ traderMap_all?.set(t.trade.pairIndex, new Map());
50
50
  }
51
- const traderPairMap_all = traderMap_all === null || traderMap_all === void 0 ? void 0 : traderMap_all.get(t.trade.pairIndex);
52
- traderPairMap_all === null || traderPairMap_all === void 0 ? void 0 : traderPairMap_all.set(t.trade.index, t);
51
+ const traderPairMap_all = traderMap_all?.get(t.trade.pairIndex);
52
+ traderPairMap_all?.set(t.trade.index, t);
53
53
  if (t.trade.user.toUpperCase() !== currentAddress.toUpperCase()) {
54
54
  continue;
55
55
  }
@@ -57,7 +57,7 @@ const transformGlobalTrades = (rawTrades, pairs, currentAddress, collaterals) =>
57
57
  _trades.set(t.trade.pairIndex, new Map());
58
58
  }
59
59
  const traderPairMap = _trades.get(t.trade.pairIndex);
60
- traderPairMap === null || traderPairMap === void 0 ? void 0 : traderPairMap.set(t.trade.index, t);
60
+ traderPairMap?.set(t.trade.index, t);
61
61
  }
62
62
  }
63
63
  returnObject.trades = _trades;
@@ -6,38 +6,40 @@ Object.defineProperty(exports, "convertLiquidationParams", { enumerable: true, g
6
6
  const converter_1 = require("../../trade/priceImpact/skew/converter");
7
7
  const converter_2 = require("../../trade/priceImpact/cumulVol/converter");
8
8
  const depthBands_1 = require("../../pricing/depthBands");
9
- const convertFees = (fees) => fees === null || fees === void 0 ? void 0 : fees.map(fee => convertFee(fee));
9
+ const convertFees = (fees) => fees?.map(fee => convertFee(fee));
10
10
  exports.convertFees = convertFees;
11
- const convertCollateral = (collateral) => {
12
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
13
- return ({
14
- pairBorrowingFees: ((_a = collateral.borrowingFees) === null || _a === void 0 ? void 0 : _a.v1) !== undefined
15
- ? (0, exports.convertPairBorrowingFees)(collateral.borrowingFees.v1)
16
- : [],
17
- groupBorrowingFees: ((_b = collateral.borrowingFees) === null || _b === void 0 ? void 0 : _b.v1) !== undefined
18
- ? (0, exports.convertGroupBorrowingFees)(collateral.borrowingFees.v1)
19
- : [],
20
- collateral: collateral.collateral,
21
- collateralConfig: (0, exports.convertCollateralConfig)(collateral),
22
- collateralIndex: collateral.collateralIndex,
23
- gToken: collateral.gToken,
24
- isActive: true,
25
- prices: collateral.prices,
26
- symbol: collateral.symbol,
27
- pairBorrowingFeesV2: {
28
- params: (0, __1.convertBorrowingFeeParamsArrayV2)((_d = (_c = collateral.borrowingFees) === null || _c === void 0 ? void 0 : _c.v2) === null || _d === void 0 ? void 0 : _d.pairParams),
29
- data: (0, __1.convertPairBorrowingFeeDataArrayV2)((_f = (_e = collateral.borrowingFees) === null || _e === void 0 ? void 0 : _e.v2) === null || _f === void 0 ? void 0 : _f.pairData),
30
- },
31
- pairFundingFees: {
32
- globalParams: (0, __1.convertPairGlobalParamsArray)((_g = collateral.fundingFees) === null || _g === void 0 ? void 0 : _g.pairGlobalParams),
33
- params: (0, __1.convertFundingFeeParamsArray)((_h = collateral.fundingFees) === null || _h === void 0 ? void 0 : _h.pairParams),
34
- data: (0, __1.convertPairFundingFeeDataArray)((_j = collateral.fundingFees) === null || _j === void 0 ? void 0 : _j.pairData),
35
- },
36
- pairOis: (0, __1.convertPairOiArray)(collateral.pairOis, parseInt(collateral.collateralConfig.precision)),
37
- pairSkewDepths: (0, exports.convertPairSkewDepths)(collateral.pairSkewDepths),
38
- });
39
- };
40
- const convertCollaterals = (collaterals) => collaterals === null || collaterals === void 0 ? void 0 : collaterals.map(collateral => convertCollateral(collateral));
11
+ const convertCollateral = (collateral) => ({
12
+ pairBorrowingFees: collateral.borrowingFees?.v1 !== undefined
13
+ ? (0, exports.convertPairBorrowingFees)(collateral.borrowingFees.v1)
14
+ : [],
15
+ groupBorrowingFees: collateral.borrowingFees?.v1 !== undefined
16
+ ? (0, exports.convertGroupBorrowingFees)(collateral.borrowingFees.v1)
17
+ : [],
18
+ collateral: collateral.collateral,
19
+ collateralConfig: (0, exports.convertCollateralConfig)(collateral),
20
+ collateralIndex: collateral.collateralIndex,
21
+ gToken: collateral.gToken,
22
+ isActive: true,
23
+ prices: collateral.prices,
24
+ symbol: collateral.symbol,
25
+ pairBorrowingFeesV2: {
26
+ params: (0, __1.convertBorrowingFeeParamsArrayV2)(collateral.borrowingFees?.v2
27
+ ?.pairParams),
28
+ data: (0, __1.convertPairBorrowingFeeDataArrayV2)(collateral.borrowingFees?.v2
29
+ ?.pairData),
30
+ },
31
+ pairFundingFees: {
32
+ globalParams: (0, __1.convertPairGlobalParamsArray)(collateral.fundingFees
33
+ ?.pairGlobalParams),
34
+ params: (0, __1.convertFundingFeeParamsArray)(collateral.fundingFees
35
+ ?.pairParams),
36
+ data: (0, __1.convertPairFundingFeeDataArray)(collateral.fundingFees
37
+ ?.pairData),
38
+ },
39
+ pairOis: (0, __1.convertPairOiArray)(collateral.pairOis, parseInt(collateral.collateralConfig.precision)),
40
+ pairSkewDepths: (0, exports.convertPairSkewDepths)(collateral.pairSkewDepths),
41
+ });
42
+ const convertCollaterals = (collaterals) => collaterals?.map(collateral => convertCollateral(collateral));
41
43
  exports.convertCollaterals = convertCollaterals;
42
44
  const convertFee = (fee) => ({
43
45
  totalPositionSizeFeeP: parseFloat(fee.totalPositionSizeFeeP) / 1e12,
@@ -45,18 +47,19 @@ const convertFee = (fee) => ({
45
47
  oraclePositionSizeFeeP: parseFloat(fee.oraclePositionSizeFeeP) / 1e12,
46
48
  minPositionSizeUsd: parseFloat(fee.minPositionSizeUsd) / 1e3,
47
49
  });
48
- const convertOpenInterests = (interests) => interests === null || interests === void 0 ? void 0 : interests.map(interest => convertOpenInterest(interest));
50
+ const convertOpenInterests = (interests) => interests?.map(interest => convertOpenInterest(interest));
49
51
  exports.convertOpenInterests = convertOpenInterests;
50
52
  const convertOpenInterest = (interest) => ({
51
53
  long: parseFloat(interest.beforeV10.long) / 1e10,
52
54
  short: parseFloat(interest.beforeV10.short) / 1e10,
53
55
  max: parseFloat(interest.beforeV10.max) / 1e10,
54
56
  });
55
- const convertPairDepthBands = (pairDepthBands) => (pairDepthBands === null || pairDepthBands === void 0 ? void 0 : pairDepthBands.map(bands => (0, converter_2.convertPairDepthBandsFromSlots)(BigInt(bands.aboveSlot1), BigInt(bands.aboveSlot2), BigInt(bands.belowSlot1), BigInt(bands.belowSlot2)))) || [];
57
+ const convertPairDepthBands = (pairDepthBands) => pairDepthBands?.map(bands => (0, converter_2.convertPairDepthBandsFromSlots)(BigInt(bands.aboveSlot1), BigInt(bands.aboveSlot2), BigInt(bands.belowSlot1), BigInt(bands.belowSlot2))) || [];
56
58
  exports.convertPairDepthBands = convertPairDepthBands;
57
59
  const convertDepthBandsMapping = (mapping) => {
58
60
  // First decode the raw slots to get bands in basis points
59
61
  const bandsBps = (0, depthBands_1.decodeDepthBandsMapping)(BigInt(mapping.slot1), BigInt(mapping.slot2));
62
+ console.log("bandsBps", bandsBps);
60
63
  // Convert from basis points to 0-1 range
61
64
  return {
62
65
  bands: bandsBps.map(bps => bps / 10000),
@@ -69,7 +72,7 @@ const convertPairSkewDepths = (pairSkewDepths) => {
69
72
  return (0, converter_1.convertPairSkewDepths)(pairSkewDepths);
70
73
  };
71
74
  exports.convertPairSkewDepths = convertPairSkewDepths;
72
- const convertPairBorrowingFees = (pairParams) => pairParams === null || pairParams === void 0 ? void 0 : pairParams.pairs.map(pairParam => convertPairBorrowingFee(pairParam));
75
+ const convertPairBorrowingFees = (pairParams) => pairParams?.pairs.map(pairParam => convertPairBorrowingFee(pairParam));
73
76
  exports.convertPairBorrowingFees = convertPairBorrowingFees;
74
77
  const convertPairGroupBorrowingFee = (pairParam) => ({
75
78
  groupIndex: parseInt(pairParam.groupIndex),
@@ -93,9 +96,9 @@ const convertPairBorrowingFee = (pairParams) => ({
93
96
  short: parseFloat(pairParams.oi.beforeV10.short) / 1e10 || 0,
94
97
  },
95
98
  feeExponent: parseInt(pairParams.feeExponent) || 0,
96
- feePerBlockCap: (0, exports.convertFeePerBlockCap)(pairParams === null || pairParams === void 0 ? void 0 : pairParams.feePerBlockCap),
99
+ feePerBlockCap: (0, exports.convertFeePerBlockCap)(pairParams?.feePerBlockCap),
97
100
  });
98
- const convertGroupBorrowingFees = (pairParams) => pairParams === null || pairParams === void 0 ? void 0 : pairParams.groups.map(pairParam => convertGroupBorrowingFee(pairParam));
101
+ const convertGroupBorrowingFees = (pairParams) => pairParams?.groups.map(pairParam => convertGroupBorrowingFee(pairParam));
99
102
  exports.convertGroupBorrowingFees = convertGroupBorrowingFees;
100
103
  const convertGroupBorrowingFee = (pairParams) => ({
101
104
  oi: {
@@ -109,14 +112,16 @@ const convertGroupBorrowingFee = (pairParams) => ({
109
112
  accLastUpdatedBlock: parseInt(pairParams.accLastUpdatedBlock),
110
113
  feeExponent: parseInt(pairParams.feeExponent) || 0,
111
114
  });
112
- const convertTradingGroups = (groups) => groups === null || groups === void 0 ? void 0 : groups.map(group => convertTradingGroup(group));
115
+ const convertTradingGroups = (groups) => groups?.map(group => convertTradingGroup(group));
113
116
  exports.convertTradingGroups = convertTradingGroups;
114
117
  const convertTradingGroup = (group) => ({
115
118
  maxLeverage: parseFloat(group.maxLeverage) / 1e3,
116
119
  minLeverage: parseFloat(group.minLeverage) / 1e3,
117
120
  name: group.name,
118
121
  });
119
- const convertTradingPairs = (pairs) => pairs === null || pairs === void 0 ? void 0 : pairs.filter(pair => pair.from !== "").map((pair, index) => convertTradingPair(pair, index));
122
+ const convertTradingPairs = (pairs) => pairs
123
+ ?.filter(pair => pair.from !== "")
124
+ .map((pair, index) => convertTradingPair(pair, index));
120
125
  exports.convertTradingPairs = convertTradingPairs;
121
126
  const convertTradingPair = (pair, index) => ({
122
127
  name: (0, exports.convertPairName)(pair),
@@ -128,7 +133,7 @@ const convertTradingPair = (pair, index) => ({
128
133
  groupIndex: parseInt(pair.groupIndex),
129
134
  spreadP: parseFloat(pair.spreadP) / 1e10,
130
135
  });
131
- const convertTradesAndLimitOrders = (allItems, collaterals) => allItems === null || allItems === void 0 ? void 0 : allItems.map(item => {
136
+ const convertTradesAndLimitOrders = (allItems, collaterals) => allItems?.map(item => {
132
137
  return (0, exports.convertTradeContainer)(item, collaterals);
133
138
  });
134
139
  exports.convertTradesAndLimitOrders = convertTradesAndLimitOrders;
@@ -174,11 +179,10 @@ const convertPairFactor = (pairFactor) => ({
174
179
  });
175
180
  exports.convertPairFactor = convertPairFactor;
176
181
  const convertTrade = (trade, collaterals) => {
177
- var _a;
178
182
  const { long, user } = trade;
179
183
  const collateralIndex = parseInt(trade.collateralIndex);
180
184
  const collateral = collaterals[collateralIndex - 1];
181
- const decimals = ((_a = collateral === null || collateral === void 0 ? void 0 : collateral.collateralConfig) === null || _a === void 0 ? void 0 : _a.decimals) || 18;
185
+ const decimals = collateral?.collateralConfig?.decimals || 18;
182
186
  return {
183
187
  user,
184
188
  index: parseInt(trade.index),
@@ -188,7 +192,7 @@ const convertTrade = (trade, collaterals) => {
188
192
  isOpen: trade.isOpen,
189
193
  collateralIndex,
190
194
  tradeType: parseInt(trade.tradeType),
191
- collateralAmount: parseFloat(trade.collateralAmount) / Math.pow(10, decimals),
195
+ collateralAmount: parseFloat(trade.collateralAmount) / 10 ** decimals,
192
196
  openPrice: parseFloat(trade.openPrice) / 1e10,
193
197
  sl: parseFloat(trade.sl) / 1e10,
194
198
  tp: parseFloat(trade.tp) / 1e10,
@@ -272,7 +276,7 @@ const convertPairOi = (collateral) => ({
272
276
  });
273
277
  exports.convertPairOi = convertPairOi;
274
278
  const convertOiWindows = (oiWindows) => {
275
- return oiWindows === null || oiWindows === void 0 ? void 0 : oiWindows.map(pairWindows => {
279
+ return oiWindows?.map(pairWindows => {
276
280
  const converted = {};
277
281
  for (const [key, oiWindow] of Object.entries(pairWindows)) {
278
282
  converted[key] = (0, exports.convertPairOi)(oiWindow);
@@ -295,17 +299,14 @@ const convertCollateralConfig = (collateral) => ({
295
299
  decimals: collateral.collateralConfig.decimals,
296
300
  });
297
301
  exports.convertCollateralConfig = convertCollateralConfig;
298
- const convertFeeTiers = (feeTiersBackend) => {
299
- var _a;
300
- return ({
301
- tiers: feeTiersBackend === null || feeTiersBackend === void 0 ? void 0 : feeTiersBackend.tiers.map(tier => ({
302
- feeMultiplier: Number(tier.feeMultiplier) / 1e3,
303
- pointsThreshold: parseFloat(tier.pointsThreshold),
304
- })),
305
- multipliers: ((_a = feeTiersBackend === null || feeTiersBackend === void 0 ? void 0 : feeTiersBackend.multipliers) === null || _a === void 0 ? void 0 : _a.map(mult => parseFloat(mult) / 1e3)) || [],
306
- currentDay: (feeTiersBackend === null || feeTiersBackend === void 0 ? void 0 : feeTiersBackend.currentDay) || 0,
307
- });
308
- };
302
+ const convertFeeTiers = (feeTiersBackend) => ({
303
+ tiers: feeTiersBackend?.tiers.map(tier => ({
304
+ feeMultiplier: Number(tier.feeMultiplier) / 1e3,
305
+ pointsThreshold: parseFloat(tier.pointsThreshold),
306
+ })),
307
+ multipliers: feeTiersBackend?.multipliers?.map(mult => parseFloat(mult) / 1e3) || [],
308
+ currentDay: feeTiersBackend?.currentDay || 0,
309
+ });
309
310
  exports.convertFeeTiers = convertFeeTiers;
310
311
  const convertTraderFeeTiers = (traderFeeTiers) => ({
311
312
  traderEnrollment: {
@@ -330,11 +331,11 @@ const convertGlobalTradeFeeParams = (fee) => ({
330
331
  gTokenFeeP: parseFloat(fee.gTokenFeeP) / 1e5,
331
332
  });
332
333
  exports.convertGlobalTradeFeeParams = convertGlobalTradeFeeParams;
333
- const convertMaxLeverages = (maxLeverages) => maxLeverages === null || maxLeverages === void 0 ? void 0 : maxLeverages.map(maxLeverage => parseFloat(maxLeverage) / 1e3);
334
+ const convertMaxLeverages = (maxLeverages) => maxLeverages?.map(maxLeverage => parseFloat(maxLeverage) / 1e3);
334
335
  exports.convertMaxLeverages = convertMaxLeverages;
335
336
  const convertFeePerBlockCap = (feeCap) => ({
336
- minP: (feeCap === null || feeCap === void 0 ? void 0 : feeCap.minP) ? parseFloat(feeCap.minP.toString()) / 1e3 / 100 : 0,
337
- maxP: (feeCap === null || feeCap === void 0 ? void 0 : feeCap.maxP) ? parseFloat(feeCap.maxP.toString()) / 1e3 / 100 : 1,
337
+ minP: feeCap?.minP ? parseFloat(feeCap.minP.toString()) / 1e3 / 100 : 0,
338
+ maxP: feeCap?.maxP ? parseFloat(feeCap.maxP.toString()) / 1e3 / 100 : 1,
338
339
  });
339
340
  exports.convertFeePerBlockCap = convertFeePerBlockCap;
340
341
  const convertPairName = (pair) => {
@@ -18,7 +18,6 @@ exports.transformGlobalTradingVariables = void 0;
18
18
  const converter_1 = require("./converter");
19
19
  const trade_1 = require("../../trade");
20
20
  const transformGlobalTradingVariables = (rawData) => {
21
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
22
21
  const globalTradingVariables = {
23
22
  collaterals: (0, converter_1.convertCollaterals)(rawData.collaterals),
24
23
  pairs: (0, converter_1.convertTradingPairs)(rawData.pairs),
@@ -31,13 +30,13 @@ const transformGlobalTradingVariables = (rawData) => {
31
30
  stocksClosed: !rawData.isStocksOpen,
32
31
  indicesClosed: !rawData.isIndicesOpen,
33
32
  commoditiesClosed: !rawData.isCommoditiesOpen,
34
- pairDepthBands: ((_a = rawData.pairInfos) === null || _a === void 0 ? void 0 : _a.pairDepthBands) !== undefined
33
+ pairDepthBands: rawData.pairInfos?.pairDepthBands !== undefined
35
34
  ? (0, converter_1.convertPairDepthBands)(rawData.pairInfos.pairDepthBands)
36
35
  : [],
37
36
  depthBandsMapping: rawData.depthBandsMapping !== undefined
38
37
  ? (0, converter_1.convertDepthBandsMapping)(rawData.depthBandsMapping)
39
38
  : { bands: [] },
40
- pairMaxLeverages: ((_b = rawData.pairInfos) === null || _b === void 0 ? void 0 : _b.maxLeverages) !== undefined
39
+ pairMaxLeverages: rawData.pairInfos?.maxLeverages !== undefined
41
40
  ? (0, converter_1.convertMaxLeverages)(rawData.pairInfos.maxLeverages)
42
41
  : [],
43
42
  maxNegativePnlOnOpenP: (rawData.maxNegativePnlOnOpenP && rawData.maxNegativePnlOnOpenP / 1e10) ||
@@ -50,11 +49,11 @@ const transformGlobalTradingVariables = (rawData) => {
50
49
  : [],
51
50
  feeTiers: (0, converter_1.convertFeeTiers)(rawData.feeTiers),
52
51
  liquidationParams: {
53
- groups: ((_d = (_c = rawData.liquidationParams) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.map(liqParams => (0, trade_1.convertLiquidationParams)(liqParams))) || [],
54
- pairs: ((_f = (_e = rawData.liquidationParams) === null || _e === void 0 ? void 0 : _e.pairs) === null || _f === void 0 ? void 0 : _f.map(liqParams => (0, trade_1.convertLiquidationParams)(liqParams))) || [],
52
+ groups: rawData.liquidationParams?.groups?.map(liqParams => (0, trade_1.convertLiquidationParams)(liqParams)) || [],
53
+ pairs: rawData.liquidationParams?.pairs?.map(liqParams => (0, trade_1.convertLiquidationParams)(liqParams)) || [],
55
54
  },
56
55
  counterTradeSettings: (0, trade_1.convertCounterTradeSettingsArray)(rawData.counterTradeSettings),
57
- pairFactors: ((_h = (_g = rawData.pairInfos) === null || _g === void 0 ? void 0 : _g.pairFactors) === null || _h === void 0 ? void 0 : _h.map(factor => (0, converter_1.convertPairFactor)(factor))) || [],
56
+ pairFactors: rawData.pairInfos?.pairFactors?.map(factor => (0, converter_1.convertPairFactor)(factor)) || [],
58
57
  globalTradeFeeParams: rawData.globalTradeFeeParams
59
58
  ? (0, converter_1.convertGlobalTradeFeeParams)(rawData.globalTradeFeeParams)
60
59
  : undefined,
@@ -63,7 +62,7 @@ const transformGlobalTradingVariables = (rawData) => {
63
62
  const currentBlock = (rawData.currentBlock > -1 && rawData.currentBlock) || undefined;
64
63
  const l1BlockNumber = (rawData.currentL1Block > -1 && rawData.currentL1Block) || undefined;
65
64
  const pairIndexes = {};
66
- for (let i = 0; i < ((_j = rawData.pairs) === null || _j === void 0 ? void 0 : _j.length); i++) {
65
+ for (let i = 0; i < rawData.pairs?.length; i++) {
67
66
  pairIndexes[rawData.pairs[i].from + "/" + rawData.pairs[i].to] = i;
68
67
  }
69
68
  if (globalTradingVariables.collaterals !== undefined) {
@@ -413,6 +413,10 @@ export declare const pairs: {
413
413
  "BGSC/USD": string;
414
414
  "TAG/USD": string;
415
415
  "WLFI/USD": string;
416
+ "ASTER/USD": string;
417
+ "OKB/USD": string;
418
+ "CRO/USD": string;
419
+ "SKY/USD": string;
416
420
  };
417
421
  export declare const syntheticPairs: Set<string>;
418
422
  export declare const parentToSyntheticPairMap: Map<string, string>;
package/lib/constants.js CHANGED
@@ -421,6 +421,10 @@ exports.pairs = {
421
421
  "BGSC/USD": CRYPTO,
422
422
  "TAG/USD": CRYPTO,
423
423
  "WLFI/USD": CRYPTO,
424
+ "ASTER/USD": CRYPTO,
425
+ "OKB/USD": CRYPTO,
426
+ "CRO/USD": CRYPTO,
427
+ "SKY/USD": CRYPTO,
424
428
  };
425
429
  exports.syntheticPairs = new Set([
426
430
  "BTCDEGEN/USD",
@@ -474,6 +478,7 @@ exports.delistedPairIxs = new Set([
474
478
  160, 163, 170, 179, 182, 183, 188, 189, 190, 208, 209, 225, 229, 230, 231,
475
479
  238, 239, 241, 250, 253, 254, 258, 270, 275, 276, 278, 279, 282, 285, 290,
476
480
  294, 296, 305, 311, 330, 349, 352, 353, 354, 355, 357, 365, 366, 395, 396,
481
+ 415, 416, 417,
477
482
  ]);
478
483
  exports.delistedGroupsIxs = new Set([]);
479
484
  exports.DEFAULT_PROTECTION_CLOSE_FACTOR = 1;
@@ -15,7 +15,10 @@ const getContractAddressesForChain = (chainId, collateral = types_1.CollateralTy
15
15
  if (!_addresses[chainIdMapping][collateral]) {
16
16
  throw new Error(`Unknown collateral (${collateral}) for chain id (${chainId}). No known contracts have been deployed for this collateral.`);
17
17
  }
18
- return Object.assign(Object.assign({}, _addresses[chainIdMapping]["global"]), _addresses[chainIdMapping][collateral]);
18
+ return {
19
+ ..._addresses[chainIdMapping]["global"],
20
+ ..._addresses[chainIdMapping][collateral],
21
+ };
19
22
  };
20
23
  exports.getContractAddressesForChain = getContractAddressesForChain;
21
24
  const getCollateralByAddressForChain = (chainId, address) => {
@@ -11,4 +11,4 @@ export declare const COLLATERAL_TO_CHAIN_COLLATERAL_INDEX: Record<ChainId, Parti
11
11
  export declare const COLLATERAL_TO_COLLATERAL_INDEX: Record<CollateralTypes, number>;
12
12
  export * from "./utils";
13
13
  export * from "./addresses";
14
- export { CollateralTypes } from "./types";
14
+ export { CollateralTypes, ChainId } from "./types";
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.CollateralTypes = exports.COLLATERAL_TO_COLLATERAL_INDEX = exports.COLLATERAL_TO_CHAIN_COLLATERAL_INDEX = exports.getCollateralIndexAndContractsForChainByRequester = exports.getContractsForChainByRequester = exports.getContractsForChain = void 0;
17
+ exports.ChainId = exports.CollateralTypes = exports.COLLATERAL_TO_COLLATERAL_INDEX = exports.COLLATERAL_TO_CHAIN_COLLATERAL_INDEX = exports.getCollateralIndexAndContractsForChainByRequester = exports.getContractsForChainByRequester = exports.getContractsForChain = void 0;
18
18
  const addresses_1 = require("./addresses");
19
19
  const factories_1 = require("./types/generated/factories");
20
20
  const types_1 = require("./types");
@@ -34,11 +34,10 @@ const getContractsForChainByRequester = (chainId, requester, signerOrProvider) =
34
34
  };
35
35
  exports.getContractsForChainByRequester = getContractsForChainByRequester;
36
36
  const getCollateralIndexAndContractsForChainByRequester = (chainId, requester, signerOrProvider) => {
37
- var _a;
38
37
  const collateral = (0, addresses_1.getCollateralByAddressForChain)(chainId, requester);
39
38
  return {
40
39
  contracts: (0, exports.getContractsForChain)(chainId, signerOrProvider, collateral),
41
- collateralIndex: ((_a = exports.COLLATERAL_TO_CHAIN_COLLATERAL_INDEX[chainId]) === null || _a === void 0 ? void 0 : _a[collateral]) ||
40
+ collateralIndex: exports.COLLATERAL_TO_CHAIN_COLLATERAL_INDEX[chainId]?.[collateral] ||
42
41
  0,
43
42
  };
44
43
  };
@@ -83,3 +82,4 @@ __exportStar(require("./utils"), exports);
83
82
  __exportStar(require("./addresses"), exports);
84
83
  var types_2 = require("./types");
85
84
  Object.defineProperty(exports, "CollateralTypes", { enumerable: true, get: function () { return types_2.CollateralTypes; } });
85
+ Object.defineProperty(exports, "ChainId", { enumerable: true, get: function () { return types_2.ChainId; } });
@@ -3,14 +3,6 @@ import type { Provider } from "@ethersproject/providers";
3
3
  import type { GNSMultiCollatDiamond, GNSMultiCollatDiamondInterface } from "../GNSMultiCollatDiamond";
4
4
  export declare class GNSMultiCollatDiamond__factory {
5
5
  static readonly abi: ({
6
- inputs: never[];
7
- stateMutability: string;
8
- type: string;
9
- name?: undefined;
10
- outputs?: undefined;
11
- signature?: undefined;
12
- anonymous?: undefined;
13
- } | {
14
6
  inputs: {
15
7
  internalType: string;
16
8
  name: string;
@@ -18,8 +10,8 @@ export declare class GNSMultiCollatDiamond__factory {
18
10
  }[];
19
11
  name: string;
20
12
  type: string;
21
- stateMutability?: undefined;
22
13
  outputs?: undefined;
14
+ stateMutability?: undefined;
23
15
  signature?: undefined;
24
16
  anonymous?: undefined;
25
17
  } | {
@@ -158,8 +150,8 @@ export declare class GNSMultiCollatDiamond__factory {
158
150
  name: string;
159
151
  type: string;
160
152
  signature: string;
161
- stateMutability?: undefined;
162
153
  outputs?: undefined;
154
+ stateMutability?: undefined;
163
155
  } | {
164
156
  inputs: ({
165
157
  components: {
@@ -6,11 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GNSMultiCollatDiamond__factory = void 0;
7
7
  const ethers_1 = require("ethers");
8
8
  const _abi = [
9
- {
10
- inputs: [],
11
- stateMutability: "nonpayable",
12
- type: "constructor",
13
- },
14
9
  {
15
10
  inputs: [],
16
11
  name: "AboveMax",
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.fetchAllPairAndGroupBorrowingFees = exports.fetchGroupBorrowingFees = exports.fetchAllPairBorrowingFees = exports.getBorrowingGroupName = void 0;
13
4
  const trade_1 = require("../../trade");
@@ -31,24 +22,22 @@ const getBorrowingGroupName = (groupIndex) => {
31
22
  return groupNamesByIndex[groupIndex - 1] || "Unknown";
32
23
  };
33
24
  exports.getBorrowingGroupName = getBorrowingGroupName;
34
- const fetchAllPairBorrowingFees = (contract, collateralIndex) => __awaiter(void 0, void 0, void 0, function* () {
35
- const [pairs, pairOi, pairGroups] = yield contract.getAllBorrowingPairs(collateralIndex);
36
- const feeCaps = yield contract.getBorrowingPairFeePerBlockCaps(collateralIndex, [...Array(pairs.length).keys()]);
25
+ const fetchAllPairBorrowingFees = async (contract, collateralIndex) => {
26
+ const [pairs, pairOi, pairGroups] = await contract.getAllBorrowingPairs(collateralIndex);
27
+ const feeCaps = await contract.getBorrowingPairFeePerBlockCaps(collateralIndex, [...Array(pairs.length).keys()]);
37
28
  return (0, trade_1.convertPairBorrowingFees)([pairs, pairOi, pairGroups, feeCaps]);
38
- });
29
+ };
39
30
  exports.fetchAllPairBorrowingFees = fetchAllPairBorrowingFees;
40
- const fetchGroupBorrowingFees = (contract, collateralIndex, groupIxs) => __awaiter(void 0, void 0, void 0, function* () {
41
- return (0, trade_1.convertGroupBorrowingFees)(yield contract.getBorrowingGroups(collateralIndex, groupIxs));
42
- });
31
+ const fetchGroupBorrowingFees = async (contract, collateralIndex, groupIxs) => (0, trade_1.convertGroupBorrowingFees)(await contract.getBorrowingGroups(collateralIndex, groupIxs));
43
32
  exports.fetchGroupBorrowingFees = fetchGroupBorrowingFees;
44
- const fetchAllPairAndGroupBorrowingFees = (contract, collateralIndex) => __awaiter(void 0, void 0, void 0, function* () {
45
- const pairs = yield (0, exports.fetchAllPairBorrowingFees)(contract, collateralIndex);
33
+ const fetchAllPairAndGroupBorrowingFees = async (contract, collateralIndex) => {
34
+ const pairs = await (0, exports.fetchAllPairBorrowingFees)(contract, collateralIndex);
46
35
  const groupIxs = [
47
36
  ...new Set(pairs
48
37
  .map(value => value.groups.map(value => value.groupIndex))
49
38
  .reduce((acc, value) => acc.concat(value), [])),
50
39
  ].sort((a, b) => a - b);
51
- const groups = yield (0, exports.fetchGroupBorrowingFees)(contract, collateralIndex, groupIxs);
40
+ const groups = await (0, exports.fetchGroupBorrowingFees)(contract, collateralIndex, groupIxs);
52
41
  return { pairs, groups };
53
- });
42
+ };
54
43
  exports.fetchAllPairAndGroupBorrowingFees = fetchAllPairAndGroupBorrowingFees;
@@ -1,20 +1,11 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.fetchOpenPairTradesRaw = exports.fetchOpenPairTrades = void 0;
13
4
  const ethcall_1 = require("ethcall");
14
5
  const trade_1 = require("../../trade");
15
- const fetchOpenPairTrades = (contracts, overrides = {}) => __awaiter(void 0, void 0, void 0, function* () {
16
- const rawTrades = yield (0, exports.fetchOpenPairTradesRaw)(contracts, overrides);
17
- const collaterals = yield contracts.gnsMultiCollatDiamond.getCollaterals();
6
+ const fetchOpenPairTrades = async (contracts, overrides = {}) => {
7
+ const rawTrades = await (0, exports.fetchOpenPairTradesRaw)(contracts, overrides);
8
+ const collaterals = await contracts.gnsMultiCollatDiamond.getCollaterals();
18
9
  const collateralConfigs = collaterals.map(c => ({
19
10
  collateral: c.collateral,
20
11
  isActive: c.isActive,
@@ -22,10 +13,10 @@ const fetchOpenPairTrades = (contracts, overrides = {}) => __awaiter(void 0, voi
22
13
  precisionDelta: parseFloat(c.precisionDelta.toString()),
23
14
  }));
24
15
  return rawTrades.map(rawTrade => _prepareTradeContainer(rawTrade.trade, rawTrade.tradeInfo, rawTrade.liquidationParams, rawTrade.initialAccFees, rawTrade.tradeFeesData, rawTrade.uiRealizedPnlData, collateralConfigs[parseInt(rawTrade.trade.collateralIndex.toString()) - 1]));
25
- });
16
+ };
26
17
  exports.fetchOpenPairTrades = fetchOpenPairTrades;
27
18
  // @todo rename
28
- const fetchOpenPairTradesRaw = (contracts, overrides = {}) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
29
20
  if (!contracts) {
30
21
  return [];
31
22
  }
@@ -39,13 +30,13 @@ const fetchOpenPairTradesRaw = (contracts, overrides = {}) => __awaiter(void 0,
39
30
  ]),
40
31
  };
41
32
  if (useMulticall) {
42
- yield multicallCtx.provider.init(multiCollatDiamondContract.provider);
33
+ await multicallCtx.provider.init(multiCollatDiamondContract.provider);
43
34
  }
44
35
  let allOpenPairTrades = [];
45
36
  let running = true;
46
37
  let offset = 0;
47
38
  while (running) {
48
- const [trades, tradeInfos, tradeLiquidationParams] = yield Promise.all([
39
+ const [trades, tradeInfos, tradeLiquidationParams] = await Promise.all([
49
40
  multiCollatDiamondContract.getAllTrades(offset, offset + batchSize),
50
41
  multiCollatDiamondContract.getAllTradeInfos(offset, offset + batchSize),
51
42
  multiCollatDiamondContract.getAllTradesLiquidationParams(offset, offset + batchSize),
@@ -85,7 +76,7 @@ const fetchOpenPairTradesRaw = (contracts, overrides = {}) => __awaiter(void 0,
85
76
  uiRealizedPnlData: undefined,
86
77
  };
87
78
  });
88
- const [tradeFeesData, uiRealizedPnlData] = yield Promise.all([
79
+ const [tradeFeesData, uiRealizedPnlData] = await Promise.all([
89
80
  multiCollatDiamondContract.getTradeFeesDataArray(...fundingFeesCallParams),
90
81
  includeUIRealizedPnlData
91
82
  ? multiCollatDiamondContract.getTradeUiRealizedPnlDataArray(...fundingFeesCallParams)
@@ -100,13 +91,13 @@ const fetchOpenPairTradesRaw = (contracts, overrides = {}) => __awaiter(void 0,
100
91
  .map(({ collateralIndex, user, index }) => (useMulticall
101
92
  ? multicallCtx.diamond
102
93
  : multiCollatDiamondContract).getBorrowingInitialAccFees(collateralIndex, user, index));
103
- const initialAccFees = yield (useMulticall
94
+ const initialAccFees = await (useMulticall
104
95
  ? multicallCtx.provider.all(initialAccFeesPromises)
105
96
  : Promise.all(initialAccFeesPromises));
106
97
  initialAccFees.forEach((accFees, ix) => {
107
98
  openTrades[ix].initialAccFees = accFees;
108
99
  openTrades[ix].tradeFeesData = tradeFeesData[ix];
109
- openTrades[ix].uiRealizedPnlData = uiRealizedPnlData === null || uiRealizedPnlData === void 0 ? void 0 : uiRealizedPnlData[ix];
100
+ openTrades[ix].uiRealizedPnlData = uiRealizedPnlData?.[ix];
110
101
  });
111
102
  allOpenPairTrades = allOpenPairTrades.concat(openTrades);
112
103
  offset += batchSize + 1;
@@ -119,7 +110,7 @@ const fetchOpenPairTradesRaw = (contracts, overrides = {}) => __awaiter(void 0,
119
110
  console.error(`Unexpected error while fetching open pair trades!`);
120
111
  throw error;
121
112
  }
122
- });
113
+ };
123
114
  exports.fetchOpenPairTradesRaw = fetchOpenPairTradesRaw;
124
115
  const _prepareTradeContainer = (trade, tradeInfo, tradeLiquidationParams, tradeInitialAccFees, tradeFeesData, uiRealizedPnlData, collateralConfig) => {
125
116
  const precision = collateralConfig.precision;