@gainsnetwork/sdk 1.3.0-rc6 → 1.4.0-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.
Files changed (155) hide show
  1. package/lib/backend/globalTrades/index.js +10 -10
  2. package/lib/backend/tradingVariables/backend.types.d.ts +4 -11
  3. package/lib/backend/tradingVariables/converter.d.ts +3 -7
  4. package/lib/backend/tradingVariables/converter.js +63 -71
  5. package/lib/backend/tradingVariables/index.js +8 -10
  6. package/lib/backend/tradingVariables/types.d.ts +2 -4
  7. package/lib/constants.d.ts +4 -0
  8. package/lib/constants.js +6 -1
  9. package/lib/contracts/addresses.d.ts +1 -1
  10. package/lib/contracts/addresses.js +4 -8
  11. package/lib/contracts/addresses.json +0 -29
  12. package/lib/contracts/index.d.ts +1 -1
  13. package/lib/contracts/index.js +3 -3
  14. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +299 -608
  15. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +313 -1996
  16. package/lib/contracts/utils/borrowingFees.js +20 -9
  17. package/lib/contracts/utils/openTrades.js +20 -11
  18. package/lib/contracts/utils/pairs.d.ts +2 -13
  19. package/lib/contracts/utils/pairs.js +34 -80
  20. package/lib/index.d.ts +0 -1
  21. package/lib/index.js +0 -1
  22. package/lib/markets/forex.js +1 -1
  23. package/lib/markets/leverage/builder.js +2 -2
  24. package/lib/markets/price/index.d.ts +0 -1
  25. package/lib/markets/price/index.js +0 -1
  26. package/lib/markets/price/types.d.ts +0 -27
  27. package/lib/trade/fees/borrowing/builder.js +3 -2
  28. package/lib/trade/fees/borrowing/converter.js +1 -5
  29. package/lib/trade/fees/borrowing/index.js +5 -5
  30. package/lib/trade/fees/borrowingV2/builder.js +4 -3
  31. package/lib/trade/fees/borrowingV2/converter.js +1 -1
  32. package/lib/trade/fees/borrowingV2/fetcher.js +32 -26
  33. package/lib/trade/fees/borrowingV2/index.js +3 -3
  34. package/lib/trade/fees/converter.js +22 -22
  35. package/lib/trade/fees/fundingFees/builder.js +7 -6
  36. package/lib/trade/fees/fundingFees/converter.js +1 -1
  37. package/lib/trade/fees/fundingFees/fetcher.js +25 -16
  38. package/lib/trade/fees/fundingFees/index.js +3 -2
  39. package/lib/trade/fees/tiers/index.js +2 -1
  40. package/lib/trade/fees/trading/index.js +3 -5
  41. package/lib/trade/liquidation/builder.js +2 -1
  42. package/lib/trade/liquidation/index.js +6 -4
  43. package/lib/trade/liquidation.d.ts +12 -0
  44. package/lib/trade/liquidation.js +55 -0
  45. package/lib/trade/oiWindows.js +2 -1
  46. package/lib/trade/pnl/builder.js +2 -1
  47. package/lib/trade/pnl/converter.js +1 -1
  48. package/lib/trade/pnl/index.js +7 -4
  49. package/lib/trade/pnl.d.ts +10 -0
  50. package/lib/trade/pnl.js +33 -0
  51. package/lib/trade/priceImpact/close/builder.js +2 -1
  52. package/lib/trade/priceImpact/close/index.js +1 -4
  53. package/lib/trade/priceImpact/cumulVol/builder.js +11 -21
  54. package/lib/trade/priceImpact/cumulVol/converter.d.ts +0 -63
  55. package/lib/trade/priceImpact/cumulVol/converter.js +1 -97
  56. package/lib/trade/priceImpact/cumulVol/index.d.ts +6 -7
  57. package/lib/trade/priceImpact/cumulVol/index.js +41 -149
  58. package/lib/trade/priceImpact/open/builder.js +2 -1
  59. package/lib/trade/priceImpact/open/index.js +1 -7
  60. package/lib/trade/priceImpact/skew/builder.js +3 -2
  61. package/lib/trade/priceImpact/skew/converter.js +1 -1
  62. package/lib/trade/priceImpact/skew/fetcher.js +33 -24
  63. package/lib/trade/types.d.ts +5 -1
  64. package/lib/trade/types.js +4 -0
  65. package/package.json +2 -2
  66. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +0 -1911
  67. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +0 -2
  68. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +0 -1067
  69. package/lib/contracts/types/generated/GNSBorrowingFees.js +0 -2
  70. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +0 -979
  71. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +0 -2
  72. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +0 -1058
  73. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +0 -2
  74. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +0 -533
  75. package/lib/contracts/types/generated/GNSNftRewardsV6.js +0 -2
  76. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +0 -613
  77. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +0 -2
  78. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +0 -911
  79. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +0 -2
  80. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +0 -660
  81. package/lib/contracts/types/generated/GNSPairsStorageV6.js +0 -2
  82. package/lib/contracts/types/generated/GNSTrading.d.ts +0 -758
  83. package/lib/contracts/types/generated/GNSTrading.js +0 -2
  84. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +0 -875
  85. package/lib/contracts/types/generated/GNSTradingCallbacks.js +0 -2
  86. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +0 -806
  87. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +0 -2
  88. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +0 -821
  89. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +0 -2
  90. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +0 -1387
  91. package/lib/contracts/types/generated/GNSTradingStorage.js +0 -2
  92. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +0 -1838
  93. package/lib/contracts/types/generated/GTokenV6_3_2.js +0 -2
  94. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +0 -83
  95. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +0 -2691
  96. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +0 -88
  97. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +0 -1654
  98. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +0 -113
  99. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +0 -1742
  100. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +0 -124
  101. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +0 -1784
  102. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +0 -100
  103. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +0 -1116
  104. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +0 -100
  105. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +0 -1003
  106. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  107. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +0 -1485
  108. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  109. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +0 -1265
  110. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +0 -82
  111. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +0 -1273
  112. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +0 -82
  113. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +0 -1326
  114. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +0 -113
  115. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +0 -1428
  116. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +0 -96
  117. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +0 -2241
  118. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +0 -95
  119. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +0 -1071
  120. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +0 -110
  121. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +0 -2682
  122. package/lib/markets/oi/fetcher.d.ts +0 -58
  123. package/lib/markets/oi/fetcher.js +0 -181
  124. package/lib/markets/oi/validation.d.ts +0 -80
  125. package/lib/markets/oi/validation.js +0 -172
  126. package/lib/markets/price/signedPrices.d.ts +0 -36
  127. package/lib/markets/price/signedPrices.js +0 -181
  128. package/lib/pricing/depthBands/converter.d.ts +0 -65
  129. package/lib/pricing/depthBands/converter.js +0 -155
  130. package/lib/pricing/depthBands/decoder.d.ts +0 -32
  131. package/lib/pricing/depthBands/decoder.js +0 -109
  132. package/lib/pricing/depthBands/encoder.d.ts +0 -19
  133. package/lib/pricing/depthBands/encoder.js +0 -105
  134. package/lib/pricing/depthBands/index.d.ts +0 -8
  135. package/lib/pricing/depthBands/index.js +0 -26
  136. package/lib/pricing/depthBands/types.d.ts +0 -49
  137. package/lib/pricing/depthBands/types.js +0 -10
  138. package/lib/pricing/depthBands/validator.d.ts +0 -22
  139. package/lib/pricing/depthBands/validator.js +0 -113
  140. package/lib/pricing/depthBands.d.ts +0 -39
  141. package/lib/pricing/depthBands.js +0 -94
  142. package/lib/pricing/index.d.ts +0 -4
  143. package/lib/pricing/index.js +0 -20
  144. package/lib/trade/effectiveLeverage/builder.d.ts +0 -23
  145. package/lib/trade/effectiveLeverage/builder.js +0 -30
  146. package/lib/trade/fees/holdingFees/index.d.ts +0 -46
  147. package/lib/trade/fees/holdingFees/index.js +0 -105
  148. package/lib/trade/fees/holdingFees/types.d.ts +0 -23
  149. package/lib/trade/fees/holdingFees/types.js +0 -5
  150. package/lib/trade/fees/trading/holdingFees.d.ts +0 -28
  151. package/lib/trade/fees/trading/holdingFees.js +0 -66
  152. package/lib/trade/fees/trading/holdingFeesStructured.d.ts +0 -28
  153. package/lib/trade/fees/trading/holdingFeesStructured.js +0 -66
  154. package/lib/trade/priceImpact/cumulVol/types.d.ts +0 -11
  155. package/lib/trade/priceImpact/cumulVol/types.js +0 -2
@@ -1,4 +1,13 @@
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.fetchAllPairAndGroupBorrowingFees = exports.fetchGroupBorrowingFees = exports.fetchAllPairBorrowingFees = exports.getBorrowingGroupName = void 0;
4
13
  const trade_1 = require("../../trade");
@@ -22,22 +31,24 @@ const getBorrowingGroupName = (groupIndex) => {
22
31
  return groupNamesByIndex[groupIndex - 1] || "Unknown";
23
32
  };
24
33
  exports.getBorrowingGroupName = getBorrowingGroupName;
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()]);
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()]);
28
37
  return (0, trade_1.convertPairBorrowingFees)([pairs, pairOi, pairGroups, feeCaps]);
29
- };
38
+ });
30
39
  exports.fetchAllPairBorrowingFees = fetchAllPairBorrowingFees;
31
- const fetchGroupBorrowingFees = async (contract, collateralIndex, groupIxs) => (0, trade_1.convertGroupBorrowingFees)(await contract.getBorrowingGroups(collateralIndex, groupIxs));
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
+ });
32
43
  exports.fetchGroupBorrowingFees = fetchGroupBorrowingFees;
33
- const fetchAllPairAndGroupBorrowingFees = async (contract, collateralIndex) => {
34
- const pairs = await (0, exports.fetchAllPairBorrowingFees)(contract, collateralIndex);
44
+ const fetchAllPairAndGroupBorrowingFees = (contract, collateralIndex) => __awaiter(void 0, void 0, void 0, function* () {
45
+ const pairs = yield (0, exports.fetchAllPairBorrowingFees)(contract, collateralIndex);
35
46
  const groupIxs = [
36
47
  ...new Set(pairs
37
48
  .map(value => value.groups.map(value => value.groupIndex))
38
49
  .reduce((acc, value) => acc.concat(value), [])),
39
50
  ].sort((a, b) => a - b);
40
- const groups = await (0, exports.fetchGroupBorrowingFees)(contract, collateralIndex, groupIxs);
51
+ const groups = yield (0, exports.fetchGroupBorrowingFees)(contract, collateralIndex, groupIxs);
41
52
  return { pairs, groups };
42
- };
53
+ });
43
54
  exports.fetchAllPairAndGroupBorrowingFees = fetchAllPairAndGroupBorrowingFees;
@@ -1,11 +1,20 @@
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.fetchOpenPairTradesRaw = exports.fetchOpenPairTrades = void 0;
4
13
  const ethcall_1 = require("ethcall");
5
14
  const trade_1 = require("../../trade");
6
- const fetchOpenPairTrades = async (contracts, overrides = {}) => {
7
- const rawTrades = await (0, exports.fetchOpenPairTradesRaw)(contracts, overrides);
8
- const collaterals = await contracts.gnsMultiCollatDiamond.getCollaterals();
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();
9
18
  const collateralConfigs = collaterals.map(c => ({
10
19
  collateral: c.collateral,
11
20
  isActive: c.isActive,
@@ -13,10 +22,10 @@ const fetchOpenPairTrades = async (contracts, overrides = {}) => {
13
22
  precisionDelta: parseFloat(c.precisionDelta.toString()),
14
23
  }));
15
24
  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
- };
25
+ });
17
26
  exports.fetchOpenPairTrades = fetchOpenPairTrades;
18
27
  // @todo rename
19
- const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
28
+ const fetchOpenPairTradesRaw = (contracts, overrides = {}) => __awaiter(void 0, void 0, void 0, function* () {
20
29
  if (!contracts) {
21
30
  return [];
22
31
  }
@@ -30,13 +39,13 @@ const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
30
39
  ]),
31
40
  };
32
41
  if (useMulticall) {
33
- await multicallCtx.provider.init(multiCollatDiamondContract.provider);
42
+ yield multicallCtx.provider.init(multiCollatDiamondContract.provider);
34
43
  }
35
44
  let allOpenPairTrades = [];
36
45
  let running = true;
37
46
  let offset = 0;
38
47
  while (running) {
39
- const [trades, tradeInfos, tradeLiquidationParams] = await Promise.all([
48
+ const [trades, tradeInfos, tradeLiquidationParams] = yield Promise.all([
40
49
  multiCollatDiamondContract.getAllTrades(offset, offset + batchSize),
41
50
  multiCollatDiamondContract.getAllTradeInfos(offset, offset + batchSize),
42
51
  multiCollatDiamondContract.getAllTradesLiquidationParams(offset, offset + batchSize),
@@ -76,7 +85,7 @@ const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
76
85
  uiRealizedPnlData: undefined,
77
86
  };
78
87
  });
79
- const [tradeFeesData, uiRealizedPnlData] = await Promise.all([
88
+ const [tradeFeesData, uiRealizedPnlData] = yield Promise.all([
80
89
  multiCollatDiamondContract.getTradeFeesDataArray(...fundingFeesCallParams),
81
90
  includeUIRealizedPnlData
82
91
  ? multiCollatDiamondContract.getTradeUiRealizedPnlDataArray(...fundingFeesCallParams)
@@ -91,13 +100,13 @@ const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
91
100
  .map(({ collateralIndex, user, index }) => (useMulticall
92
101
  ? multicallCtx.diamond
93
102
  : multiCollatDiamondContract).getBorrowingInitialAccFees(collateralIndex, user, index));
94
- const initialAccFees = await (useMulticall
103
+ const initialAccFees = yield (useMulticall
95
104
  ? multicallCtx.provider.all(initialAccFeesPromises)
96
105
  : Promise.all(initialAccFeesPromises));
97
106
  initialAccFees.forEach((accFees, ix) => {
98
107
  openTrades[ix].initialAccFees = accFees;
99
108
  openTrades[ix].tradeFeesData = tradeFeesData[ix];
100
- openTrades[ix].uiRealizedPnlData = uiRealizedPnlData?.[ix];
109
+ openTrades[ix].uiRealizedPnlData = uiRealizedPnlData === null || uiRealizedPnlData === void 0 ? void 0 : uiRealizedPnlData[ix];
101
110
  });
102
111
  allOpenPairTrades = allOpenPairTrades.concat(openTrades);
103
112
  offset += batchSize + 1;
@@ -110,7 +119,7 @@ const fetchOpenPairTradesRaw = async (contracts, overrides = {}) => {
110
119
  console.error(`Unexpected error while fetching open pair trades!`);
111
120
  throw error;
112
121
  }
113
- };
122
+ });
114
123
  exports.fetchOpenPairTradesRaw = fetchOpenPairTradesRaw;
115
124
  const _prepareTradeContainer = (trade, tradeInfo, tradeLiquidationParams, tradeInitialAccFees, tradeFeesData, uiRealizedPnlData, collateralConfig) => {
116
125
  const precision = collateralConfig.precision;
@@ -1,18 +1,7 @@
1
- import { Pair, Fee, OpenInterest, PairIndex } from "../../trade/types";
1
+ import { Pair, Fee, OpenInterest, PairDepth, PairIndex } from "../../trade/types";
2
2
  import { Contracts } from "../../contracts/types";
3
3
  export declare const fetchPairs: (contracts: Contracts, pairIxs: PairIndex[]) => Promise<Pair[]>;
4
- export declare const fetchPairDepthBands: (contracts: Contracts, pairIxs: number[]) => Promise<any[]>;
5
- export declare const fetchPairDepthBandsDecoded: (contracts: Contracts, pairIxs: number[]) => Promise<{
6
- totalDepthAboveUsd: number[];
7
- totalDepthBelowUsd: number[];
8
- bandsAbove: number[][];
9
- bandsBelow: number[][];
10
- }>;
11
- export declare const fetchDepthBandsMapping: (contracts: Contracts) => Promise<{
12
- slot1: string;
13
- slot2: string;
14
- }>;
15
- export declare const fetchDepthBandsMappingDecoded: (contracts: Contracts) => Promise<number[]>;
4
+ export declare const fetchPairDepths: (contracts: Contracts, pairIxs: number[]) => Promise<PairDepth[]>;
16
5
  export declare const fetchFees: (contracts: Contracts, feeIxs: PairIndex[]) => Promise<Fee[]>;
17
6
  export declare const fetchOpenInterest: (contracts: Contracts, collateralIndex: number, pairIxs: number[]) => Promise<OpenInterest[]>;
18
7
  export declare const getPairDescription: (pairIndex: PairIndex) => string;
@@ -1,17 +1,26 @@
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPairDescription = exports.fetchOpenInterest = exports.fetchFees = exports.fetchDepthBandsMappingDecoded = exports.fetchDepthBandsMapping = exports.fetchPairDepthBandsDecoded = exports.fetchPairDepthBands = exports.fetchPairs = void 0;
12
+ exports.getPairDescription = exports.fetchOpenInterest = exports.fetchFees = exports.fetchPairDepths = exports.fetchPairs = void 0;
4
13
  /* eslint-disable @typescript-eslint/no-unsafe-call */
5
14
  /* eslint-disable @typescript-eslint/no-unsafe-return */
6
15
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
7
16
  const types_1 = require("../../trade/types");
8
- const fetchPairs = async (contracts, pairIxs) => {
17
+ const fetchPairs = (contracts, pairIxs) => __awaiter(void 0, void 0, void 0, function* () {
9
18
  if (!contracts) {
10
19
  return [];
11
20
  }
12
21
  const { gnsMultiCollatDiamond: multiCollatContract } = contracts;
13
22
  try {
14
- const pairs = await Promise.all(pairIxs.map(pairIndex => multiCollatContract.pairs(pairIndex)));
23
+ const pairs = yield Promise.all(pairIxs.map(pairIndex => multiCollatContract.pairs(pairIndex)));
15
24
  return pairs.map((pair, index) => {
16
25
  return {
17
26
  name: pair.from + "/" + pair.to,
@@ -29,94 +38,35 @@ const fetchPairs = async (contracts, pairIxs) => {
29
38
  console.error(`Unexpected error while fetching pairs!`);
30
39
  throw error;
31
40
  }
32
- };
41
+ });
33
42
  exports.fetchPairs = fetchPairs;
34
- const fetchPairDepthBands = async (contracts, pairIxs) => {
35
- if (!contracts || pairIxs.length === 0) {
36
- return [];
37
- }
38
- const { gnsMultiCollatDiamond: multiCollatContract } = contracts;
39
- try {
40
- // Returns array of PairDepthBands structs (encoded slots)
41
- // Using quoted signature for overloaded function
42
- const depthBands = await multiCollatContract["getPairDepthBands(uint256[])"](pairIxs);
43
- return depthBands;
44
- }
45
- catch (error) {
46
- console.error(`Unexpected error while fetching pair depth bands!`);
47
- throw error;
48
- }
49
- };
50
- exports.fetchPairDepthBands = fetchPairDepthBands;
51
- const fetchPairDepthBandsDecoded = async (contracts, pairIxs) => {
52
- if (!contracts || pairIxs.length === 0) {
53
- return {
54
- totalDepthAboveUsd: [],
55
- totalDepthBelowUsd: [],
56
- bandsAbove: [],
57
- bandsBelow: [],
58
- };
59
- }
60
- const { gnsMultiCollatDiamond: multiCollatContract } = contracts;
61
- try {
62
- // Returns decoded values
63
- // Using quoted signature for overloaded function
64
- const [totalDepthAboveUsd, totalDepthBelowUsd, bandsAbove, bandsBelow] = await multiCollatContract["getPairDepthBandsDecoded(uint256[])"](pairIxs);
65
- return {
66
- totalDepthAboveUsd: totalDepthAboveUsd.map((v) => parseFloat(v.toString())),
67
- totalDepthBelowUsd: totalDepthBelowUsd.map((v) => parseFloat(v.toString())),
68
- bandsAbove: bandsAbove.map((bands) => bands.map((b) => parseInt(b.toString()))),
69
- bandsBelow: bandsBelow.map((bands) => bands.map((b) => parseInt(b.toString()))),
70
- };
71
- }
72
- catch (error) {
73
- console.error(`Unexpected error while fetching decoded pair depth bands!`);
74
- throw error;
75
- }
76
- };
77
- exports.fetchPairDepthBandsDecoded = fetchPairDepthBandsDecoded;
78
- const fetchDepthBandsMapping = async (contracts) => {
79
- if (!contracts) {
80
- return { slot1: "0", slot2: "0" };
81
- }
82
- const { gnsMultiCollatDiamond: multiCollatContract } = contracts;
83
- try {
84
- // Returns two uint256 slots
85
- const [slot1, slot2] = await multiCollatContract.getDepthBandsMapping();
86
- return {
87
- slot1: slot1.toString(),
88
- slot2: slot2.toString(),
89
- };
90
- }
91
- catch (error) {
92
- console.error(`Unexpected error while fetching depth bands mapping!`);
93
- throw error;
94
- }
95
- };
96
- exports.fetchDepthBandsMapping = fetchDepthBandsMapping;
97
- const fetchDepthBandsMappingDecoded = async (contracts) => {
43
+ const fetchPairDepths = (contracts, pairIxs) => __awaiter(void 0, void 0, void 0, function* () {
98
44
  if (!contracts) {
99
45
  return [];
100
46
  }
101
47
  const { gnsMultiCollatDiamond: multiCollatContract } = contracts;
102
48
  try {
103
- // Returns array of 30 uint16 values
104
- const bands = await multiCollatContract.getDepthBandsMappingDecoded();
105
- return bands.map((b) => parseInt(b.toString()));
49
+ const pairParams = yield multiCollatContract.getPairDepths(pairIxs);
50
+ return pairParams.map(pair => {
51
+ return {
52
+ onePercentDepthAboveUsd: parseFloat(pair.onePercentDepthAboveUsd.toString()),
53
+ onePercentDepthBelowUsd: parseFloat(pair.onePercentDepthBelowUsd.toString()),
54
+ };
55
+ });
106
56
  }
107
57
  catch (error) {
108
- console.error(`Unexpected error while fetching decoded depth bands mapping!`);
58
+ console.error(`Unexpected error while fetching pairs!`);
109
59
  throw error;
110
60
  }
111
- };
112
- exports.fetchDepthBandsMappingDecoded = fetchDepthBandsMappingDecoded;
113
- const fetchFees = async (contracts, feeIxs) => {
61
+ });
62
+ exports.fetchPairDepths = fetchPairDepths;
63
+ const fetchFees = (contracts, feeIxs) => __awaiter(void 0, void 0, void 0, function* () {
114
64
  if (!contracts) {
115
65
  return [];
116
66
  }
117
67
  const { gnsMultiCollatDiamond: multiCollatContract } = contracts;
118
68
  try {
119
- const fees = await Promise.all(feeIxs.map(pairIndex => multiCollatContract.fees(pairIndex)));
69
+ const fees = yield Promise.all(feeIxs.map(pairIndex => multiCollatContract.fees(pairIndex)));
120
70
  return fees.map(fee => {
121
71
  return {
122
72
  totalPositionSizeFeeP: parseFloat(fee.totalPositionSizeFeeP.toString()) / 1e12,
@@ -130,13 +80,13 @@ const fetchFees = async (contracts, feeIxs) => {
130
80
  console.error(`Unexpected error while fetching pairs!`);
131
81
  throw error;
132
82
  }
133
- };
83
+ });
134
84
  exports.fetchFees = fetchFees;
135
- const fetchOpenInterest = async (contracts, collateralIndex, pairIxs) => {
85
+ const fetchOpenInterest = (contracts, collateralIndex, pairIxs) => __awaiter(void 0, void 0, void 0, function* () {
136
86
  if (pairIxs.length === 0) {
137
87
  return [];
138
88
  }
139
- const openInterests = (await contracts.gnsMultiCollatDiamond.getAllBorrowingPairs(collateralIndex))[1];
89
+ const openInterests = (yield contracts.gnsMultiCollatDiamond.getAllBorrowingPairs(collateralIndex))[1];
140
90
  return pairIxs.map(pairIndex => {
141
91
  const openInterest = openInterests[pairIndex];
142
92
  if (!openInterest) {
@@ -148,7 +98,7 @@ const fetchOpenInterest = async (contracts, collateralIndex, pairIxs) => {
148
98
  max: parseFloat(openInterest[2].toString()) / 1e10,
149
99
  };
150
100
  });
151
- };
101
+ });
152
102
  exports.fetchOpenInterest = fetchOpenInterest;
153
103
  const getPairDescription = (pairIndex) => {
154
104
  return PAIR_INDEX_TO_DESCRIPTION[pairIndex] || "";
@@ -569,4 +519,8 @@ const PAIR_INDEX_TO_DESCRIPTION = {
569
519
  [types_1.PairIndex.BGSCUSD]: "BugsCoin to US Dollar",
570
520
  [types_1.PairIndex.TAGUSD]: "TAGGER to US Dollar",
571
521
  [types_1.PairIndex.WLFIUSD]: "World Liberty Financial to US Dollar",
522
+ [types_1.PairIndex.ASTERUSD]: "Aster to US Dollar",
523
+ [types_1.PairIndex.OKBUSD]: "OKB to US Dollar",
524
+ [types_1.PairIndex.CROUSD]: "Cronos to US Dollar",
525
+ [types_1.PairIndex.SKYUSD]: "SKy to US Dollar",
572
526
  };
package/lib/index.d.ts CHANGED
@@ -5,6 +5,5 @@ export * from "./constants";
5
5
  export * from "./utils";
6
6
  export * from "./vault";
7
7
  export * from "./backend";
8
- export * from "./pricing";
9
8
  export * from "./trade/fees/borrowing/index";
10
9
  export { ContractsVersion } from "./contracts/types";
package/lib/index.js CHANGED
@@ -22,7 +22,6 @@ __exportStar(require("./constants"), exports);
22
22
  __exportStar(require("./utils"), exports);
23
23
  __exportStar(require("./vault"), exports);
24
24
  __exportStar(require("./backend"), exports);
25
- __exportStar(require("./pricing"), exports);
26
25
  // Not sure why this is needed, but it is. Barrel imports are not working.
27
26
  __exportStar(require("./trade/fees/borrowing/index"), exports);
28
27
  // Export ContractsVersion for frontend usage
@@ -33,7 +33,7 @@ const isForexLowLiquidity = (timestampToCheck, pair) => {
33
33
  const hour = now.hour;
34
34
  const minute = now.minute;
35
35
  const isInDST = now.isInDST;
36
- const groupIndex = pair?.groupIndex;
36
+ const groupIndex = pair === null || pair === void 0 ? void 0 : pair.groupIndex;
37
37
  if (groupIndex && extendedLowLiqGroupIds.includes(+groupIndex)) {
38
38
  return ((isInDST &&
39
39
  ((hour == 14 && minute >= 45) || (hour >= 15 && hour < 21))) ||
@@ -18,8 +18,8 @@ const buildMarketLeverageRestrictionsContext = (globalTradingVariables, pairInde
18
18
  return {
19
19
  groupMinLeverage: group.minLeverage,
20
20
  groupMaxLeverage: group.maxLeverage,
21
- pairMaxLeverage: pairMaxLeverages?.[pairIndex],
22
- counterTradeSettings: counterTradeSettings?.[pairIndex],
21
+ pairMaxLeverage: pairMaxLeverages === null || pairMaxLeverages === void 0 ? void 0 : pairMaxLeverages[pairIndex],
22
+ counterTradeSettings: counterTradeSettings === null || counterTradeSettings === void 0 ? void 0 : counterTradeSettings[pairIndex],
23
23
  };
24
24
  };
25
25
  exports.buildMarketLeverageRestrictionsContext = buildMarketLeverageRestrictionsContext;
@@ -4,4 +4,3 @@
4
4
  export * from "./types";
5
5
  export * from "./marketPrice";
6
6
  export * from "./builder";
7
- export * from "./signedPrices";
@@ -20,4 +20,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  __exportStar(require("./types"), exports);
21
21
  __exportStar(require("./marketPrice"), exports);
22
22
  __exportStar(require("./builder"), exports);
23
- __exportStar(require("./signedPrices"), exports);
@@ -21,30 +21,3 @@ export type MarketPriceContext = {
21
21
  oiShortToken: number;
22
22
  };
23
23
  };
24
- /**
25
- * @dev Types for signed prices data structure
26
- */
27
- export type SignedPricesResponse = {
28
- signedData: SignedPrices;
29
- missingPrices: number[];
30
- };
31
- export type SignedPrices = {
32
- signerId: number;
33
- expiryTs: number;
34
- fromBlock: number;
35
- isLookback: boolean;
36
- pairIndices: number[];
37
- prices: Price[];
38
- signature: string;
39
- };
40
- export type Price = {
41
- open: string;
42
- high: string;
43
- low: string;
44
- current: string;
45
- ts: number;
46
- };
47
- export type Oracle = {
48
- url: string;
49
- key?: string;
50
- };
@@ -13,8 +13,9 @@ exports.buildBorrowingV1Context = void 0;
13
13
  * @returns Full borrowing context with all pairs and groups or undefined if data not available
14
14
  */
15
15
  const buildBorrowingV1Context = (globalTradingVariables, collateralIndex, currentBlock) => {
16
+ var _a;
16
17
  const collateral = globalTradingVariables.collaterals[collateralIndex - 1];
17
- if (!collateral?.pairBorrowingFees || !collateral?.groupBorrowingFees) {
18
+ if (!(collateral === null || collateral === void 0 ? void 0 : collateral.pairBorrowingFees) || !(collateral === null || collateral === void 0 ? void 0 : collateral.groupBorrowingFees)) {
18
19
  return undefined;
19
20
  }
20
21
  const pairs = collateral.pairBorrowingFees;
@@ -26,7 +27,7 @@ const buildBorrowingV1Context = (globalTradingVariables, collateralIndex, curren
26
27
  currentBlock,
27
28
  pairs,
28
29
  groups,
29
- collateralPriceUsd: collateral.prices?.collateralPriceUsd || 1,
30
+ collateralPriceUsd: ((_a = collateral.prices) === null || _a === void 0 ? void 0 : _a.collateralPriceUsd) || 1,
30
31
  pairOis: collateral.pairOis,
31
32
  };
32
33
  };
@@ -14,11 +14,7 @@ const convertPairGroupBorrowingFee = (pairGroup) => ({
14
14
  block: pairGroup.block,
15
15
  });
16
16
  exports.convertPairGroupBorrowingFee = convertPairGroupBorrowingFee;
17
- const convertPairBorrowingFee = (pair, pairOi, pairGroup, feeCap) => ({
18
- ...(0, exports.convertGroupBorrowingData)(pair, pairOi),
19
- groups: pairGroup.map(value => (0, exports.convertPairGroupBorrowingFee)(value)),
20
- feePerBlockCap: (0, exports.convertFeePerBlockCap)(feeCap),
21
- });
17
+ const convertPairBorrowingFee = (pair, pairOi, pairGroup, feeCap) => (Object.assign(Object.assign({}, (0, exports.convertGroupBorrowingData)(pair, pairOi)), { groups: pairGroup.map(value => (0, exports.convertPairGroupBorrowingFee)(value)), feePerBlockCap: (0, exports.convertFeePerBlockCap)(feeCap) }));
22
18
  exports.convertPairBorrowingFee = convertPairBorrowingFee;
23
19
  const convertPairBorrowingFees = ([pairs, pairOi, pairGroups, feeCaps]) => pairs.map((value, ix) => (0, exports.convertPairBorrowingFee)(value, pairOi[ix], pairGroups[ix], feeCaps[ix]));
24
20
  exports.convertPairBorrowingFees = convertPairBorrowingFees;
@@ -48,7 +48,7 @@ const getBorrowingFee = (posDai, pairIndex, long, initialAccFees, currentPairPri
48
48
  return 0;
49
49
  }
50
50
  const pairGroups = pairs[pairIndex].groups;
51
- const firstPairGroup = pairGroups?.length > 0 ? pairGroups[0] : undefined;
51
+ const firstPairGroup = (pairGroups === null || pairGroups === void 0 ? void 0 : pairGroups.length) > 0 ? pairGroups[0] : undefined;
52
52
  let fee = 0;
53
53
  if (!firstPairGroup || firstPairGroup.block > initialAccFees.block) {
54
54
  const openInterest = (0, __1.getPairTotalOisDynamicCollateral)(pairIndex, {
@@ -215,13 +215,13 @@ collateralPriceUsd) => {
215
215
  };
216
216
  const getPendingAccFeesDelta = (blockDistance, feePerBlock, netOi, maxOi, feeExponent) => {
217
217
  return maxOi > 0 && feeExponent > 0
218
- ? feePerBlock * blockDistance * (netOi / maxOi) ** feeExponent
218
+ ? feePerBlock * blockDistance * Math.pow((netOi / maxOi), feeExponent)
219
219
  : 0;
220
220
  };
221
221
  const getFeePerBlockCaps = (cap) => {
222
222
  return {
223
- minP: cap?.minP || 0,
224
- maxP: cap?.maxP && cap.maxP > 0 ? cap.maxP : 1,
223
+ minP: (cap === null || cap === void 0 ? void 0 : cap.minP) || 0,
224
+ maxP: (cap === null || cap === void 0 ? void 0 : cap.maxP) && cap.maxP > 0 ? cap.maxP : 1,
225
225
  };
226
226
  };
227
227
  const getBorrowingDataActiveFeePerBlock = (val) => {
@@ -231,7 +231,7 @@ const getBorrowingDataActiveFeePerBlock = (val) => {
231
231
  // If minP > 0 then netOi has to be at least minP * maxOi
232
232
  // If maxP > 0 then netOi cannot be more than maxP * maxOi
233
233
  const effectiveOi = Math.min(Math.max(Math.abs(long - short), max * minP), max * maxP);
234
- return val.feePerBlock * (effectiveOi / max) ** val.feeExponent;
234
+ return val.feePerBlock * Math.pow((effectiveOi / max), val.feeExponent);
235
235
  };
236
236
  const getActiveFeePerBlock = (pair, group) => {
237
237
  const pairFeePerBlock = getBorrowingDataActiveFeePerBlock(pair);
@@ -5,12 +5,13 @@ exports.buildBorrowingV2Context = void 0;
5
5
  * @dev Builds borrowing v2 sub-context for a specific pair
6
6
  */
7
7
  const buildBorrowingV2Context = (globalTradingVariables, collateralIndex, pairIndex, currentTimestamp) => {
8
+ var _a, _b;
8
9
  const collateral = globalTradingVariables.collaterals[collateralIndex - 1];
9
- if (!collateral?.pairBorrowingFeesV2) {
10
+ if (!(collateral === null || collateral === void 0 ? void 0 : collateral.pairBorrowingFeesV2)) {
10
11
  return undefined;
11
12
  }
12
- const params = collateral.pairBorrowingFeesV2.params?.[pairIndex];
13
- const data = collateral.pairBorrowingFeesV2.data?.[pairIndex];
13
+ const params = (_a = collateral.pairBorrowingFeesV2.params) === null || _a === void 0 ? void 0 : _a[pairIndex];
14
+ const data = (_b = collateral.pairBorrowingFeesV2.data) === null || _b === void 0 ? void 0 : _b[pairIndex];
14
15
  if (!params || !data) {
15
16
  return undefined;
16
17
  }
@@ -116,7 +116,7 @@ exports.aprToBorrowingRate = aprToBorrowingRate;
116
116
  */
117
117
  const createCollateralScopedBorrowingContext = (collateralBorrowingData, currentTimestamp) => {
118
118
  const context = {
119
- currentTimestamp: currentTimestamp ?? Math.floor(Date.now() / 1000),
119
+ currentTimestamp: currentTimestamp !== null && currentTimestamp !== void 0 ? currentTimestamp : Math.floor(Date.now() / 1000),
120
120
  borrowingParams: {},
121
121
  borrowingData: {},
122
122
  };