@gainsnetwork/sdk 0.0.0-v10.rc2 → 0.0.0-v10.rc3

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 (157) hide show
  1. package/lib/backend/globalTrades/index.d.ts +11 -0
  2. package/lib/backend/globalTrades/index.js +69 -0
  3. package/lib/backend/index.d.ts +2 -0
  4. package/lib/backend/index.js +18 -0
  5. package/lib/backend/tradingVariables/backend.types.d.ts +312 -0
  6. package/lib/backend/tradingVariables/backend.types.js +2 -0
  7. package/lib/backend/tradingVariables/converter.d.ts +30 -0
  8. package/lib/backend/tradingVariables/converter.js +329 -0
  9. package/lib/backend/tradingVariables/index.d.ts +3 -0
  10. package/lib/backend/tradingVariables/index.js +78 -0
  11. package/lib/backend/tradingVariables/types.d.ts +109 -0
  12. package/lib/backend/tradingVariables/types.js +14 -0
  13. package/lib/contracts/fetch/fees/borrowingFeesV2.d.ts +0 -1
  14. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  15. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  16. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
  17. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
  18. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +979 -0
  19. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +2 -0
  20. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +1058 -0
  21. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +2 -0
  22. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +7 -20
  23. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
  24. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
  25. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
  26. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
  27. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -0
  28. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -0
  29. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -0
  30. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -0
  31. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  32. package/lib/contracts/types/generated/GNSTrading.js +2 -0
  33. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
  34. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
  35. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +806 -0
  36. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +2 -0
  37. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +821 -0
  38. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +2 -0
  39. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  40. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
  41. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
  42. package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -0
  43. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  44. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
  45. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +88 -0
  46. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +1654 -0
  47. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +113 -0
  48. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +1742 -0
  49. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -0
  50. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -0
  51. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +7 -16
  52. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
  53. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
  54. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
  55. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
  56. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  57. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
  58. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  59. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
  60. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +82 -0
  61. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1273 -0
  62. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
  63. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
  64. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  65. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  66. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  67. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  68. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  69. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  70. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  71. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  72. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +7 -0
  73. package/lib/contracts/types/generated/factories/GToken__factory.js +4 -0
  74. package/lib/contracts/utils/index.d.ts +0 -3
  75. package/lib/contracts/utils/index.js +0 -3
  76. package/lib/contracts/utils/openTrades.js +14 -30
  77. package/lib/index.d.ts +1 -0
  78. package/lib/index.js +1 -0
  79. package/lib/markets/collateral/converter.d.ts +5 -0
  80. package/lib/markets/collateral/converter.js +11 -0
  81. package/lib/markets/collateral/index.d.ts +1 -0
  82. package/lib/markets/collateral/index.js +17 -0
  83. package/lib/markets/collateral/types.d.ts +7 -0
  84. package/lib/markets/collateral/types.js +2 -0
  85. package/lib/markets/index.d.ts +2 -0
  86. package/lib/markets/index.js +2 -0
  87. package/lib/markets/oi/converter.d.ts +63 -0
  88. package/lib/markets/oi/converter.js +103 -0
  89. package/lib/markets/oi/fetcher.d.ts +58 -0
  90. package/lib/markets/oi/fetcher.js +181 -0
  91. package/lib/markets/oi/index.d.ts +10 -0
  92. package/lib/markets/oi/index.js +37 -0
  93. package/lib/markets/oi/types.d.ts +82 -0
  94. package/lib/markets/oi/types.js +6 -0
  95. package/lib/markets/oi/validation.d.ts +80 -0
  96. package/lib/markets/oi/validation.js +172 -0
  97. package/lib/trade/fees/borrowing/index.d.ts +13 -2
  98. package/lib/trade/fees/borrowing/index.js +30 -14
  99. package/lib/trade/fees/borrowingV2/fetcher.d.ts +75 -0
  100. package/lib/trade/fees/borrowingV2/fetcher.js +193 -0
  101. package/lib/trade/fees/borrowingV2/index.d.ts +1 -0
  102. package/lib/trade/fees/borrowingV2/index.js +1 -0
  103. package/lib/trade/fees/converter.d.ts +48 -0
  104. package/lib/trade/fees/converter.js +110 -0
  105. package/lib/trade/fees/fundingFees/fetcher.d.ts +66 -0
  106. package/lib/trade/fees/fundingFees/fetcher.js +150 -0
  107. package/lib/trade/fees/fundingFees/index.d.ts +1 -0
  108. package/lib/trade/fees/fundingFees/index.js +4 -0
  109. package/lib/trade/fees/index.d.ts +2 -1
  110. package/lib/trade/fees/index.js +44 -35
  111. package/lib/trade/fees/tiers/converter.d.ts +54 -0
  112. package/lib/trade/fees/tiers/converter.js +81 -0
  113. package/lib/trade/fees/tiers/index.d.ts +1 -0
  114. package/lib/trade/fees/tiers/index.js +1 -0
  115. package/lib/trade/fees/trading/index.d.ts +22 -2
  116. package/lib/trade/fees/trading/index.js +44 -1
  117. package/lib/trade/fees/trading/types.d.ts +9 -0
  118. package/lib/trade/index.d.ts +1 -1
  119. package/lib/trade/index.js +1 -1
  120. package/lib/trade/liquidation/converter.d.ts +23 -0
  121. package/lib/trade/liquidation/converter.js +46 -0
  122. package/lib/trade/liquidation/index.d.ts +31 -0
  123. package/lib/trade/liquidation/index.js +187 -0
  124. package/lib/trade/liquidation/types.d.ts +44 -0
  125. package/lib/trade/liquidation/types.js +2 -0
  126. package/lib/trade/liquidation.d.ts +2 -32
  127. package/lib/trade/liquidation.js +8 -93
  128. package/lib/trade/pnl/converter.d.ts +47 -0
  129. package/lib/trade/pnl/converter.js +72 -0
  130. package/lib/trade/pnl/index.d.ts +86 -0
  131. package/lib/trade/pnl/index.js +201 -0
  132. package/lib/trade/pnl/types.d.ts +86 -0
  133. package/lib/trade/pnl/types.js +5 -0
  134. package/lib/trade/pnl.d.ts +3 -3
  135. package/lib/trade/pnl.js +2 -7
  136. package/lib/trade/priceImpact/close/index.d.ts +21 -0
  137. package/lib/trade/priceImpact/close/index.js +131 -0
  138. package/lib/trade/priceImpact/close/types.d.ts +43 -0
  139. package/lib/trade/priceImpact/close/types.js +5 -0
  140. package/lib/trade/priceImpact/cumulVol/converter.d.ts +31 -0
  141. package/lib/trade/priceImpact/cumulVol/converter.js +59 -0
  142. package/lib/trade/priceImpact/cumulVol/index.d.ts +107 -0
  143. package/lib/trade/priceImpact/cumulVol/index.js +228 -0
  144. package/lib/trade/priceImpact/index.d.ts +6 -2
  145. package/lib/trade/priceImpact/index.js +30 -3
  146. package/lib/trade/priceImpact/open/index.d.ts +22 -0
  147. package/lib/trade/priceImpact/open/index.js +76 -0
  148. package/lib/trade/priceImpact/open/types.d.ts +41 -0
  149. package/lib/trade/priceImpact/open/types.js +5 -0
  150. package/lib/trade/priceImpact/skew/fetcher.d.ts +63 -0
  151. package/lib/trade/priceImpact/skew/fetcher.js +168 -0
  152. package/lib/trade/priceImpact/skew/index.d.ts +1 -0
  153. package/lib/trade/priceImpact/skew/index.js +4 -0
  154. package/lib/trade/spread.d.ts +5 -18
  155. package/lib/trade/spread.js +17 -106
  156. package/lib/trade/types.d.ts +9 -7
  157. package/package.json +2 -2
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertPairName = exports.convertFeePerBlockCap = exports.convertMaxLeverages = exports.convertGlobalTradeFeeParams = exports.convertTraderFeeTiers = exports.convertFeeTiers = exports.convertCollateralConfig = exports.convertOiWindowsSettings = exports.convertOiWindows = exports.convertPairOi = exports.convertContestLeaderboardEntry = exports.generateStockPairToActiveStockSplit = exports.convertTradeInitialAccFees = exports.convertTradeInfo = exports.convertTrade = exports.convertPairFactor = exports.convertTradeContainer = exports.convertTradesAndLimitOrders = exports.convertTradingPairs = exports.convertTradingGroups = exports.convertGroupBorrowingFees = exports.convertPairBorrowingFees = exports.convertPairDepths = exports.convertOpenInterests = exports.convertCollaterals = exports.convertFees = void 0;
4
+ const __1 = require("../../");
5
+ const convertFees = (fees) => fees === null || fees === void 0 ? void 0 : fees.map(fee => convertFee(fee));
6
+ exports.convertFees = convertFees;
7
+ const convertCollateral = (collateral) => {
8
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
9
+ return ({
10
+ pairBorrowingFees: ((_a = collateral.borrowingFees) === null || _a === void 0 ? void 0 : _a.v1) !== undefined
11
+ ? (0, exports.convertPairBorrowingFees)(collateral.borrowingFees.v1)
12
+ : [],
13
+ groupBorrowingFees: ((_b = collateral.borrowingFees) === null || _b === void 0 ? void 0 : _b.v1) !== undefined
14
+ ? (0, exports.convertGroupBorrowingFees)(collateral.borrowingFees.v1)
15
+ : [],
16
+ collateral: collateral.collateral,
17
+ collateralConfig: (0, exports.convertCollateralConfig)(collateral),
18
+ collateralIndex: collateral.collateralIndex,
19
+ gToken: collateral.gToken,
20
+ isActive: true,
21
+ prices: collateral.prices,
22
+ symbol: collateral.symbol,
23
+ pairBorrowingFeesV2: {
24
+ params: (0, __1.convertBorrowingFeeParamsArrayV2)((_d = (_c = collateral.borrowingFees) === null || _c === void 0 ? void 0 : _c.v2) === null || _d === void 0 ? void 0 : _d.pairParams),
25
+ data: (0, __1.convertPairBorrowingFeeDataArrayV2)((_f = (_e = collateral.borrowingFees) === null || _e === void 0 ? void 0 : _e.v2) === null || _f === void 0 ? void 0 : _f.pairData),
26
+ },
27
+ pairFundingFees: {
28
+ globalParams: (0, __1.convertPairGlobalParamsArray)((_g = collateral.fundingFees) === null || _g === void 0 ? void 0 : _g.pairGlobalParams),
29
+ params: (0, __1.convertFundingFeeParamsArray)((_h = collateral.fundingFees) === null || _h === void 0 ? void 0 : _h.pairParams),
30
+ data: (0, __1.convertPairFundingFeeDataArray)((_j = collateral.fundingFees) === null || _j === void 0 ? void 0 : _j.pairData),
31
+ },
32
+ pairOis: (0, __1.convertPairOiArray)(collateral.pairOis, collateral.collateralConfig.decimals),
33
+ });
34
+ };
35
+ const convertCollaterals = (collaterals) => collaterals === null || collaterals === void 0 ? void 0 : collaterals.map(collateral => convertCollateral(collateral));
36
+ exports.convertCollaterals = convertCollaterals;
37
+ const convertFee = (fee) => ({
38
+ totalPositionSizeFeeP: parseFloat(fee.totalPositionSizeFeeP) / 1e12,
39
+ totalLiqCollateralFeeP: parseFloat(fee.totalLiqCollateralFeeP) / 1e12,
40
+ oraclePositionSizeFeeP: parseFloat(fee.oraclePositionSizeFeeP) / 1e12,
41
+ minPositionSizeUsd: parseFloat(fee.minPositionSizeUsd) / 1e3,
42
+ });
43
+ const convertOpenInterests = (interests) => interests === null || interests === void 0 ? void 0 : interests.map(interest => convertOpenInterest(interest));
44
+ exports.convertOpenInterests = convertOpenInterests;
45
+ const convertOpenInterest = (interest) => ({
46
+ long: parseFloat(interest.beforeV10.long) / 1e10,
47
+ short: parseFloat(interest.beforeV10.short) / 1e10,
48
+ max: parseFloat(interest.beforeV10.max) / 1e10,
49
+ });
50
+ const convertPairDepths = (pairDepths) => pairDepths === null || pairDepths === void 0 ? void 0 : pairDepths.map(pairDepth => convertPairDepth(pairDepth));
51
+ exports.convertPairDepths = convertPairDepths;
52
+ const convertPairDepth = (pairDepth) => ({
53
+ onePercentDepthAboveUsd: parseInt(pairDepth.onePercentDepthAboveUsd),
54
+ onePercentDepthBelowUsd: parseInt(pairDepth.onePercentDepthBelowUsd),
55
+ });
56
+ const convertPairBorrowingFees = (pairParams) => pairParams === null || pairParams === void 0 ? void 0 : pairParams.pairs.map(pairParam => convertPairBorrowingFee(pairParam));
57
+ exports.convertPairBorrowingFees = convertPairBorrowingFees;
58
+ const convertPairGroupBorrowingFee = (pairParam) => ({
59
+ groupIndex: parseInt(pairParam.groupIndex),
60
+ initialAccFeeLong: parseFloat(pairParam.initialAccFeeLong) / 1e10,
61
+ initialAccFeeShort: parseFloat(pairParam.initialAccFeeShort) / 1e10,
62
+ pairAccFeeLong: parseFloat(pairParam.pairAccFeeLong) / 1e10,
63
+ pairAccFeeShort: parseFloat(pairParam.pairAccFeeShort) / 1e10,
64
+ prevGroupAccFeeLong: parseFloat(pairParam.prevGroupAccFeeLong) / 1e10,
65
+ prevGroupAccFeeShort: parseFloat(pairParam.prevGroupAccFeeShort) / 1e10,
66
+ block: parseInt(pairParam.block),
67
+ });
68
+ const convertPairBorrowingFee = (pairParams) => ({
69
+ groups: pairParams.groups.map(pairParam => convertPairGroupBorrowingFee(pairParam)),
70
+ feePerBlock: parseFloat(pairParams.feePerBlock) / 1e10,
71
+ accFeeLong: parseFloat(pairParams.accFeeLong) / 1e10,
72
+ accFeeShort: parseFloat(pairParams.accFeeShort) / 1e10,
73
+ accLastUpdatedBlock: parseInt(pairParams.accLastUpdatedBlock),
74
+ oi: {
75
+ max: parseFloat(pairParams.oi.beforeV10.max) / 1e10 || 0,
76
+ long: parseFloat(pairParams.oi.beforeV10.long) / 1e10 || 0,
77
+ short: parseFloat(pairParams.oi.beforeV10.short) / 1e10 || 0,
78
+ },
79
+ feeExponent: parseInt(pairParams.feeExponent) || 0,
80
+ feePerBlockCap: (0, exports.convertFeePerBlockCap)(pairParams === null || pairParams === void 0 ? void 0 : pairParams.feePerBlockCap),
81
+ });
82
+ const convertGroupBorrowingFees = (pairParams) => pairParams === null || pairParams === void 0 ? void 0 : pairParams.groups.map(pairParam => convertGroupBorrowingFee(pairParam));
83
+ exports.convertGroupBorrowingFees = convertGroupBorrowingFees;
84
+ const convertGroupBorrowingFee = (pairParams) => ({
85
+ oi: {
86
+ long: parseFloat(pairParams.oi.long) / 1e10,
87
+ short: parseFloat(pairParams.oi.short) / 1e10,
88
+ max: parseFloat(pairParams.oi.max) / 1e10 || 0,
89
+ },
90
+ feePerBlock: parseFloat(pairParams.feePerBlock) / 1e10,
91
+ accFeeLong: parseFloat(pairParams.accFeeLong) / 1e10,
92
+ accFeeShort: parseFloat(pairParams.accFeeShort) / 1e10,
93
+ accLastUpdatedBlock: parseInt(pairParams.accLastUpdatedBlock),
94
+ feeExponent: parseInt(pairParams.feeExponent) || 0,
95
+ });
96
+ const convertTradingGroups = (groups) => groups === null || groups === void 0 ? void 0 : groups.map(group => convertTradingGroup(group));
97
+ exports.convertTradingGroups = convertTradingGroups;
98
+ const convertTradingGroup = (group) => ({
99
+ maxLeverage: parseFloat(group.maxLeverage) / 1e3,
100
+ minLeverage: parseFloat(group.minLeverage) / 1e3,
101
+ name: group.name,
102
+ });
103
+ const convertTradingPairs = (pairs) => pairs === null || pairs === void 0 ? void 0 : pairs.filter(pair => pair.from !== "").map((pair, index) => convertTradingPair(pair, index));
104
+ exports.convertTradingPairs = convertTradingPairs;
105
+ const convertTradingPair = (pair, index) => ({
106
+ name: (0, exports.convertPairName)(pair),
107
+ description: (0, __1.getPairDescription)(index),
108
+ from: pair.from,
109
+ to: pair.to,
110
+ pairIndex: index,
111
+ feeIndex: parseInt(pair.feeIndex),
112
+ groupIndex: parseInt(pair.groupIndex),
113
+ spreadP: parseFloat(pair.spreadP) / 1e10 / 100,
114
+ });
115
+ const convertTradesAndLimitOrders = (allItems, collaterals) => allItems === null || allItems === void 0 ? void 0 : allItems.map(item => {
116
+ return (0, exports.convertTradeContainer)(item, collaterals);
117
+ });
118
+ exports.convertTradesAndLimitOrders = convertTradesAndLimitOrders;
119
+ const convertTradeContainer = (tradeContainer, collaterals) => {
120
+ const trade = (0, exports.convertTrade)(tradeContainer.trade, collaterals);
121
+ const collateralIndex = trade.collateralIndex;
122
+ return {
123
+ trade,
124
+ tradeInfo: (0, exports.convertTradeInfo)(tradeContainer.tradeInfo),
125
+ initialAccFees: tradeContainer.initialAccFees === undefined
126
+ ? {
127
+ accPairFee: 0,
128
+ accGroupFee: 0,
129
+ block: 0,
130
+ }
131
+ : (0, exports.convertTradeInitialAccFees)(tradeContainer.initialAccFees),
132
+ liquidationParams: tradeContainer.liquidationParams === undefined
133
+ ? {
134
+ maxLiqSpreadP: 0,
135
+ startLiqThresholdP: 0,
136
+ endLiqThresholdP: 0,
137
+ startLeverage: 0,
138
+ endLeverage: 0,
139
+ }
140
+ : (0, __1.convertLiquidationParams)(tradeContainer.liquidationParams),
141
+ tradeFeesData: tradeContainer.tradeFeesData
142
+ ? // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call
143
+ (0, __1.convertTradeFeesData)(tradeContainer.tradeFeesData, collaterals[collateralIndex - 1].collateralConfig)
144
+ : undefined,
145
+ uiRealizedPnlData: tradeContainer.uiRealizedPnlData
146
+ ? // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call
147
+ (0, __1.convertUiRealizedPnlData)(tradeContainer.uiRealizedPnlData, collaterals[collateralIndex - 1].collateralConfig)
148
+ : undefined,
149
+ };
150
+ };
151
+ exports.convertTradeContainer = convertTradeContainer;
152
+ const convertPairFactor = (pairFactor) => ({
153
+ cumulativeFactor: parseFloat(pairFactor.cumulativeFactor) / 1e10,
154
+ protectionCloseFactor: parseFloat(pairFactor.protectionCloseFactor) / 1e10,
155
+ protectionCloseFactorBlocks: parseInt(pairFactor.protectionCloseFactorBlocks),
156
+ exemptOnOpen: pairFactor.exemptOnOpen,
157
+ exemptAfterProtectionCloseFactor: pairFactor.exemptAfterProtectionCloseFactor,
158
+ });
159
+ exports.convertPairFactor = convertPairFactor;
160
+ const convertTrade = (trade, collaterals) => {
161
+ var _a;
162
+ const { long, user } = trade;
163
+ const collateralIndex = parseInt(trade.collateralIndex);
164
+ const collateral = collaterals[collateralIndex - 1];
165
+ const decimals = ((_a = collateral === null || collateral === void 0 ? void 0 : collateral.collateralConfig) === null || _a === void 0 ? void 0 : _a.decimals) || 18;
166
+ return {
167
+ user,
168
+ index: parseInt(trade.index),
169
+ pairIndex: parseInt(trade.pairIndex),
170
+ leverage: parseInt(trade.leverage) / 1e3,
171
+ long,
172
+ isOpen: trade.isOpen,
173
+ collateralIndex,
174
+ tradeType: parseInt(trade.tradeType),
175
+ collateralAmount: parseFloat(trade.collateralAmount) / Math.pow(10, decimals),
176
+ openPrice: parseFloat(trade.openPrice) / 1e10,
177
+ sl: parseFloat(trade.sl) / 1e10,
178
+ tp: parseFloat(trade.tp) / 1e10,
179
+ isCounterTrade: trade.isCounterTrade,
180
+ positionSizeToken: trade.positionSizeToken
181
+ ? parseFloat(trade.positionSizeToken) / Math.pow(10, decimals)
182
+ : undefined,
183
+ };
184
+ };
185
+ exports.convertTrade = convertTrade;
186
+ const convertTradeInfo = (tradeInfo) => ({
187
+ createdBlock: parseInt(tradeInfo.createdBlock),
188
+ tpLastUpdatedBlock: parseInt(tradeInfo.tpLastUpdatedBlock),
189
+ slLastUpdatedBlock: parseInt(tradeInfo.slLastUpdatedBlock),
190
+ maxSlippageP: parseFloat(tradeInfo.maxSlippageP) / 1e3 || 1,
191
+ lastOiUpdateTs: tradeInfo.lastOiUpdateTs,
192
+ collateralPriceUsd: tradeInfo.collateralPriceUsd && tradeInfo.collateralPriceUsd !== "0"
193
+ ? parseFloat(tradeInfo.collateralPriceUsd) / 1e8
194
+ : 1,
195
+ contractsVersion: parseInt(tradeInfo.contractsVersion),
196
+ lastPosIncreaseBlock: parseInt(tradeInfo.lastPosIncreaseBlock),
197
+ });
198
+ exports.convertTradeInfo = convertTradeInfo;
199
+ const convertTradeInitialAccFees = (initialAccFees) => ({
200
+ accPairFee: parseFloat(initialAccFees.accPairFee || "0") / 1e10,
201
+ accGroupFee: parseFloat(initialAccFees.accGroupFee || "0") / 1e10,
202
+ block: parseInt(initialAccFees.block || "0"),
203
+ });
204
+ exports.convertTradeInitialAccFees = convertTradeInitialAccFees;
205
+ const generateStockPairToActiveStockSplit = (pairs) => {
206
+ const result = new Map();
207
+ if (!pairs) {
208
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
209
+ return result;
210
+ }
211
+ const basePairFroms = new Set();
212
+ const splitPairFroms = new Set();
213
+ pairs.forEach(p => {
214
+ const from = p.from;
215
+ if (from.includes("_")) {
216
+ splitPairFroms.add(from);
217
+ }
218
+ else {
219
+ basePairFroms.add(from);
220
+ }
221
+ });
222
+ splitPairFroms.forEach(splitFrom => {
223
+ const [potentialSplitPairFromBase, potentialSplitPairFromSplitId] = splitFrom.split("_");
224
+ const currentHighestSplitPairIdForBasePair = result.get(potentialSplitPairFromBase);
225
+ if ((currentHighestSplitPairIdForBasePair &&
226
+ +potentialSplitPairFromSplitId >
227
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
228
+ +currentHighestSplitPairIdForBasePair.split("_")[1]) ||
229
+ (!currentHighestSplitPairIdForBasePair &&
230
+ basePairFroms.has(potentialSplitPairFromBase))) {
231
+ result.set(potentialSplitPairFromBase, splitFrom);
232
+ }
233
+ });
234
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
235
+ return result;
236
+ };
237
+ exports.generateStockPairToActiveStockSplit = generateStockPairToActiveStockSplit;
238
+ const convertContestLeaderboardEntry = (entry) => {
239
+ const [trader, numWins, numLosses, avgWin, avgLoss, daiProfit, pctProfit, daiVolume,] = entry;
240
+ return {
241
+ trader,
242
+ numWins,
243
+ numLosses,
244
+ avgWin,
245
+ avgLoss,
246
+ daiProfit,
247
+ pctProfit,
248
+ daiVolume,
249
+ };
250
+ };
251
+ exports.convertContestLeaderboardEntry = convertContestLeaderboardEntry;
252
+ // OiWindow values are normalized to USD 1e18
253
+ const convertPairOi = (collateral) => ({
254
+ oiLongUsd: parseFloat(collateral.oiLongUsd) / 1e18,
255
+ oiShortUsd: parseFloat(collateral.oiShortUsd) / 1e18,
256
+ });
257
+ exports.convertPairOi = convertPairOi;
258
+ const convertOiWindows = (oiWindows) => {
259
+ return oiWindows === null || oiWindows === void 0 ? void 0 : oiWindows.map(pairWindows => {
260
+ const converted = {};
261
+ for (const [key, oiWindow] of Object.entries(pairWindows)) {
262
+ converted[key] = (0, exports.convertPairOi)(oiWindow);
263
+ }
264
+ return converted;
265
+ });
266
+ };
267
+ exports.convertOiWindows = convertOiWindows;
268
+ const convertOiWindowsSettings = (oiWindowsSettings) => ({
269
+ startTs: oiWindowsSettings.startTs,
270
+ windowsDuration: oiWindowsSettings.windowsDuration,
271
+ windowsCount: oiWindowsSettings.windowsCount,
272
+ });
273
+ exports.convertOiWindowsSettings = convertOiWindowsSettings;
274
+ const convertCollateralConfig = (collateral) => ({
275
+ collateral: collateral.collateral,
276
+ isActive: collateral.isActive,
277
+ precision: parseInt(collateral.collateralConfig.precision),
278
+ precisionDelta: parseInt(collateral.collateralConfig.precisionDelta),
279
+ decimals: collateral.collateralConfig.decimals,
280
+ });
281
+ exports.convertCollateralConfig = convertCollateralConfig;
282
+ const convertFeeTiers = (feeTiersBackend) => {
283
+ var _a;
284
+ return ({
285
+ tiers: feeTiersBackend === null || feeTiersBackend === void 0 ? void 0 : feeTiersBackend.tiers.map(tier => ({
286
+ feeMultiplier: Number(tier.feeMultiplier) / 1e3,
287
+ pointsThreshold: parseFloat(tier.pointsThreshold),
288
+ })),
289
+ multipliers: ((_a = feeTiersBackend === null || feeTiersBackend === void 0 ? void 0 : feeTiersBackend.multipliers) === null || _a === void 0 ? void 0 : _a.map(mult => parseFloat(mult) / 1e3)) || [],
290
+ currentDay: (feeTiersBackend === null || feeTiersBackend === void 0 ? void 0 : feeTiersBackend.currentDay) || 0,
291
+ });
292
+ };
293
+ exports.convertFeeTiers = convertFeeTiers;
294
+ const convertTraderFeeTiers = (traderFeeTiers) => ({
295
+ traderEnrollment: {
296
+ status: traderFeeTiers.traderEnrollment.status,
297
+ },
298
+ traderInfo: {
299
+ lastDayUpdated: traderFeeTiers.traderInfo.lastDayUpdated,
300
+ trailingPoints: parseFloat(traderFeeTiers.traderInfo.trailingPoints) / 1e18,
301
+ },
302
+ inboundPoints: parseFloat(traderFeeTiers.inboundPoints) / 1e18,
303
+ outboundPoints: parseFloat(traderFeeTiers.outboundPoints) / 1e18,
304
+ lastDayUpdatedPoints: parseFloat(traderFeeTiers.lastDayUpdatedPoints) / 1e18,
305
+ expiredPoints: traderFeeTiers.expiredPoints.map(point => parseFloat(point) / 1e18),
306
+ unclaimedPoints: parseFloat(traderFeeTiers.unclaimedPoints) / 1e18,
307
+ });
308
+ exports.convertTraderFeeTiers = convertTraderFeeTiers;
309
+ const convertGlobalTradeFeeParams = (fee) => ({
310
+ referralFeeP: parseFloat(fee.referralFeeP) / 1e5,
311
+ govFeeP: parseFloat(fee.govFeeP) / 1e5,
312
+ triggerOrderFeeP: parseFloat(fee.triggerOrderFeeP) / 1e5,
313
+ gnsOtcFeeP: parseFloat(fee.gnsOtcFeeP) / 1e5,
314
+ gTokenFeeP: parseFloat(fee.gTokenFeeP) / 1e5,
315
+ });
316
+ exports.convertGlobalTradeFeeParams = convertGlobalTradeFeeParams;
317
+ const convertMaxLeverages = (maxLeverages) => maxLeverages === null || maxLeverages === void 0 ? void 0 : maxLeverages.map(maxLeverage => parseFloat(maxLeverage) / 1e3);
318
+ exports.convertMaxLeverages = convertMaxLeverages;
319
+ const convertFeePerBlockCap = (feeCap) => ({
320
+ minP: (feeCap === null || feeCap === void 0 ? void 0 : feeCap.minP) ? parseFloat(feeCap.minP.toString()) / 1e3 / 100 : 0,
321
+ maxP: (feeCap === null || feeCap === void 0 ? void 0 : feeCap.maxP) ? parseFloat(feeCap.maxP.toString()) / 1e3 / 100 : 1,
322
+ });
323
+ exports.convertFeePerBlockCap = convertFeePerBlockCap;
324
+ const convertPairName = (pair) => {
325
+ if (!pair)
326
+ return "";
327
+ return pair.from.split("_")[0] + "/" + pair.to;
328
+ };
329
+ exports.convertPairName = convertPairName;
@@ -0,0 +1,3 @@
1
+ import { TransformedGlobalTradingVariables } from "./types";
2
+ import { GlobalTradingVariablesBackend } from "./backend.types";
3
+ export declare const transformGlobalTradingVariables: (rawData: GlobalTradingVariablesBackend) => TransformedGlobalTradingVariables;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformGlobalTradingVariables = void 0;
4
+ const converter_1 = require("./converter");
5
+ const trade_1 = require("../../trade");
6
+ const transformGlobalTradingVariables = (rawData) => {
7
+ var _a, _b, _c, _d, _e, _f, _g;
8
+ const globalTradingVariables = {
9
+ collaterals: (0, converter_1.convertCollaterals)(rawData.collaterals),
10
+ pairs: (0, converter_1.convertTradingPairs)(rawData.pairs),
11
+ stockPairToActiveStockSplit: (0, converter_1.generateStockPairToActiveStockSplit)(rawData.pairs),
12
+ groups: (0, converter_1.convertTradingGroups)(rawData.groups),
13
+ fees: (0, converter_1.convertFees)(rawData.fees),
14
+ orderTimeout: rawData.marketOrdersTimeoutBlocks,
15
+ blockConfirmations: rawData.blockConfirmations,
16
+ forexClosed: !rawData.isForexOpen,
17
+ stocksClosed: !rawData.isStocksOpen,
18
+ indicesClosed: !rawData.isIndicesOpen,
19
+ commoditiesClosed: !rawData.isCommoditiesOpen,
20
+ pairDepths: ((_a = rawData.pairInfos) === null || _a === void 0 ? void 0 : _a.pairDepths) !== undefined
21
+ ? (0, converter_1.convertPairDepths)(rawData.pairInfos.pairDepths)
22
+ : [],
23
+ pairMaxLeverages: ((_b = rawData.pairInfos) === null || _b === void 0 ? void 0 : _b.maxLeverages) !== undefined
24
+ ? (0, converter_1.convertMaxLeverages)(rawData.pairInfos.maxLeverages)
25
+ : [],
26
+ maxNegativePnlOnOpenP: (rawData.maxNegativePnlOnOpenP && rawData.maxNegativePnlOnOpenP / 1e10) ||
27
+ undefined,
28
+ oiWindowsSettings: rawData.oiWindowsSettings !== undefined
29
+ ? (0, converter_1.convertOiWindowsSettings)(rawData.oiWindowsSettings)
30
+ : { startTs: 0, windowsDuration: 0, windowsCount: 0 },
31
+ oiWindows: rawData.oiWindows !== undefined
32
+ ? (0, converter_1.convertOiWindows)(rawData.oiWindows)
33
+ : [],
34
+ feeTiers: (0, converter_1.convertFeeTiers)(rawData.feeTiers),
35
+ liquidationParams: {
36
+ groups: ((_c = rawData.liquidationParams) === null || _c === void 0 ? void 0 : _c.groups.map(liqParams => (0, trade_1.convertLiquidationParams)(liqParams))) || [],
37
+ pairs: ((_d = rawData.liquidationParams) === null || _d === void 0 ? void 0 : _d.pairs.map(liqParams => (0, trade_1.convertLiquidationParams)(liqParams))) || [],
38
+ },
39
+ pairFactors: ((_f = (_e = rawData.pairInfos) === null || _e === void 0 ? void 0 : _e.pairFactors) === null || _f === void 0 ? void 0 : _f.map(factor => (0, converter_1.convertPairFactor)(factor))) || [],
40
+ globalTradeFeeParams: rawData.globalTradeFeeParams
41
+ ? (0, converter_1.convertGlobalTradeFeeParams)(rawData.globalTradeFeeParams)
42
+ : undefined,
43
+ congestionLevels: rawData.congestionLevels,
44
+ };
45
+ const currentBlock = (rawData.currentBlock > -1 && rawData.currentBlock) || undefined;
46
+ const l1BlockNumber = (rawData.currentL1Block > -1 && rawData.currentL1Block) || undefined;
47
+ const pairIndexes = {};
48
+ for (let i = 0; i < ((_g = rawData.pairs) === null || _g === void 0 ? void 0 : _g.length); i++) {
49
+ pairIndexes[rawData.pairs[i].from + "/" + rawData.pairs[i].to] = i;
50
+ }
51
+ if (globalTradingVariables.collaterals !== undefined) {
52
+ const { collaterals } = globalTradingVariables;
53
+ for (let i = 0; i < collaterals.length; i++) {
54
+ collaterals[i].tradingPairs = getTradingPairs(globalTradingVariables.pairs, collaterals);
55
+ }
56
+ }
57
+ return {
58
+ globalTradingVariables,
59
+ pairIndexes,
60
+ blockNumber: currentBlock,
61
+ l1BlockNumber,
62
+ };
63
+ };
64
+ exports.transformGlobalTradingVariables = transformGlobalTradingVariables;
65
+ // Orphaned function
66
+ const getTradingPairs = (pairs, collaterals) => {
67
+ const tradingPairs = new Map();
68
+ if (pairs) {
69
+ for (let j = 0; j < pairs.length; j++) {
70
+ const pair = pairs[j];
71
+ // pair is tradeable if any collateral is enabled (max oi > 0)
72
+ if (collaterals.some((collat) => collat.pairOis[j].maxCollateral > 0)) {
73
+ tradingPairs.set(j, pair);
74
+ }
75
+ }
76
+ }
77
+ return tradingPairs;
78
+ };
@@ -0,0 +1,109 @@
1
+ import { CollateralConfig } from "src/markets/collateral";
2
+ import { BorrowingFee, BorrowingFeeV2, Fee, FeeTiers, FundingFees, GlobalTradeFeeParams, LeaderboardTrader, LiquidationParams, OiWindows, OiWindowsSettings, Pair, PairDepth, PairFactor, PairIndexes, TradingGroup } from "../../trade";
3
+ import { UnifiedPairOi } from "src/markets";
4
+ export type TransformedGlobalTradingVariables = {
5
+ globalTradingVariables: GlobalTradingVariablesType;
6
+ pairIndexes: PairIndexes;
7
+ blockNumber: number | undefined;
8
+ l1BlockNumber: number | undefined;
9
+ };
10
+ /**
11
+ * @dev Processed collateral data from backend (wrapper of contract data)
12
+ */
13
+ export type TradingVariablesCollateral = {
14
+ pairBorrowingFees: BorrowingFee.Pair[];
15
+ groupBorrowingFees: BorrowingFee.Group[];
16
+ pairBorrowingFeesV2: {
17
+ params: BorrowingFeeV2.BorrowingFeeParams[];
18
+ data: BorrowingFeeV2.PairBorrowingFeeData[];
19
+ };
20
+ pairFundingFees: {
21
+ globalParams: FundingFees.PairGlobalParams[];
22
+ params: FundingFees.FundingFeeParams[];
23
+ data: FundingFees.PairFundingFeeData[];
24
+ };
25
+ collateral: string;
26
+ collateralIndex: number;
27
+ collateralConfig: CollateralConfig;
28
+ gToken: {
29
+ address: string;
30
+ currentBalanceCollateral: string;
31
+ marketCap: string;
32
+ maxBalanceCollateral: string;
33
+ };
34
+ tradingPairs?: Map<number, Pair>;
35
+ isActive: boolean;
36
+ prices: TokenPrices;
37
+ symbol: string;
38
+ pairOis: UnifiedPairOi[];
39
+ };
40
+ export type TokenPrices = {
41
+ collateralPriceUsd: number;
42
+ gnsPriceCollateral: number;
43
+ gnsPriceUsd: number;
44
+ };
45
+ export type GlobalTradingVariablesType = {
46
+ collaterals: TradingVariablesCollateral[];
47
+ paused?: boolean;
48
+ pairs?: Pair[];
49
+ stockPairToActiveStockSplit?: Map<string, string>;
50
+ groups?: TradingGroup[];
51
+ fees?: Fee[];
52
+ orderTimeout?: number;
53
+ crypto?: string[];
54
+ forex?: string[];
55
+ forexClosed?: boolean;
56
+ stocks?: string[];
57
+ stocksClosed?: boolean;
58
+ indices?: string[];
59
+ indicesClosed?: boolean;
60
+ commodities?: string[];
61
+ commoditiesClosed?: boolean;
62
+ blockConfirmations?: number;
63
+ pairDepths?: PairDepth[];
64
+ pairMaxLeverages?: number[];
65
+ maxNegativePnlOnOpenP?: number;
66
+ oiWindowsSettings?: OiWindowsSettings;
67
+ oiWindows?: OiWindows[];
68
+ collateralConfig?: CollateralConfig;
69
+ feeTiers?: FeeTiers;
70
+ liquidationParams: {
71
+ groups: LiquidationParams[];
72
+ pairs: LiquidationParams[];
73
+ };
74
+ pairFactors: PairFactor[];
75
+ globalTradeFeeParams?: GlobalTradeFeeParams;
76
+ congestionLevels: {
77
+ low: number;
78
+ high: number;
79
+ };
80
+ };
81
+ export interface LeaderboardTraderWithWinsLosses extends LeaderboardTrader {
82
+ wins?: number;
83
+ losses?: number;
84
+ }
85
+ export interface ILeaderboard {
86
+ ready: boolean;
87
+ bestTraders: LeaderboardTraderWithWinsLosses[];
88
+ }
89
+ export declare enum ORDER_TYPE {
90
+ LIMIT = "LIMIT",
91
+ STOP = "STOP",
92
+ MARKET = "MARKET"
93
+ }
94
+ export declare enum TRADE_TYPE {
95
+ LONG = "LONG",
96
+ SHORT = "SHORT"
97
+ }
98
+ export interface ActiveNews {
99
+ desc: string;
100
+ from: number;
101
+ to: number;
102
+ }
103
+ export interface BorrowingFeePerBlock {
104
+ pairFee: number;
105
+ minPairFee: number;
106
+ groupFee: number;
107
+ pairLong: boolean;
108
+ groupLong: boolean;
109
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRADE_TYPE = exports.ORDER_TYPE = void 0;
4
+ var ORDER_TYPE;
5
+ (function (ORDER_TYPE) {
6
+ ORDER_TYPE["LIMIT"] = "LIMIT";
7
+ ORDER_TYPE["STOP"] = "STOP";
8
+ ORDER_TYPE["MARKET"] = "MARKET";
9
+ })(ORDER_TYPE = exports.ORDER_TYPE || (exports.ORDER_TYPE = {}));
10
+ var TRADE_TYPE;
11
+ (function (TRADE_TYPE) {
12
+ TRADE_TYPE["LONG"] = "LONG";
13
+ TRADE_TYPE["SHORT"] = "SHORT";
14
+ })(TRADE_TYPE = exports.TRADE_TYPE || (exports.TRADE_TYPE = {}));
@@ -1,4 +1,3 @@
1
- /// <reference types="mocha" />
2
1
  import type { GNSMultiCollatDiamond } from "../../types/generated";
3
2
  import { BorrowingFeeV2 } from "../../../trade/fees/borrowingV2";
4
3
  /**