@gainsnetwork/sdk 0.0.0-v10.rc1 → 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.
- package/lib/backend/globalTrades/index.d.ts +11 -0
- package/lib/backend/globalTrades/index.js +69 -0
- package/lib/backend/index.d.ts +2 -0
- package/lib/backend/index.js +18 -0
- package/lib/backend/tradingVariables/backend.types.d.ts +312 -0
- package/lib/backend/tradingVariables/backend.types.js +2 -0
- package/lib/backend/tradingVariables/converter.d.ts +30 -0
- package/lib/backend/tradingVariables/converter.js +329 -0
- package/lib/backend/tradingVariables/index.d.ts +3 -0
- package/lib/backend/tradingVariables/index.js +78 -0
- package/lib/backend/tradingVariables/types.d.ts +109 -0
- package/lib/backend/tradingVariables/types.js +14 -0
- package/lib/constants.d.ts +8 -1
- package/lib/constants.js +8 -1
- package/lib/contracts/fetch/fees/borrowingFeesV2.d.ts +75 -0
- package/lib/contracts/fetch/fees/borrowingFeesV2.js +193 -0
- package/lib/contracts/fetch/fees/fundingFees.d.ts +66 -0
- package/lib/contracts/fetch/fees/fundingFees.js +150 -0
- package/lib/contracts/fetch/priceImpact/skew.d.ts +63 -0
- package/lib/contracts/fetch/priceImpact/skew.js +168 -0
- package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
- package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
- package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
- package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
- package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +979 -0
- package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +2 -0
- package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +1058 -0
- package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +2 -0
- package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
- package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
- package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
- package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
- package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -0
- package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -0
- package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -0
- package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -0
- package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
- package/lib/contracts/types/generated/GNSTrading.js +2 -0
- package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
- package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
- package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +806 -0
- package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +2 -0
- package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +821 -0
- package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +2 -0
- package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
- package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
- package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
- package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -0
- package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
- package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
- package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +88 -0
- package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +1654 -0
- package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +113 -0
- package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +1742 -0
- package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -0
- package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -0
- package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
- package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
- package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
- package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
- package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
- package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
- package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
- package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
- package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +82 -0
- package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1273 -0
- package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
- package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
- package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
- package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
- package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
- package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
- package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
- package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
- package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
- package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
- package/lib/contracts/types/index.d.ts +2 -1
- package/lib/contracts/types/index.js +1 -0
- package/lib/contracts/utils/openTrades.d.ts +1 -0
- package/lib/contracts/utils/openTrades.js +94 -56
- package/lib/contracts/utils/pairs.js +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/markets/collateral/converter.d.ts +5 -0
- package/lib/markets/collateral/converter.js +11 -0
- package/lib/markets/collateral/index.d.ts +1 -0
- package/lib/markets/collateral/index.js +17 -0
- package/lib/markets/collateral/types.d.ts +7 -0
- package/lib/markets/collateral/types.js +2 -0
- package/lib/markets/index.d.ts +2 -0
- package/lib/markets/index.js +2 -0
- package/lib/markets/oi/converter.d.ts +63 -0
- package/lib/markets/oi/converter.js +103 -0
- package/lib/markets/oi/fetcher.d.ts +58 -0
- package/lib/markets/oi/fetcher.js +181 -0
- package/lib/markets/oi/index.d.ts +10 -0
- package/lib/markets/oi/index.js +37 -0
- package/lib/markets/oi/types.d.ts +82 -0
- package/lib/markets/oi/types.js +6 -0
- package/lib/markets/oi/validation.d.ts +80 -0
- package/lib/markets/oi/validation.js +172 -0
- package/lib/trade/fees/borrowing/index.d.ts +22 -1
- package/lib/trade/fees/borrowing/index.js +39 -13
- package/lib/trade/fees/borrowingV2/converter.d.ts +66 -0
- package/lib/trade/fees/borrowingV2/converter.js +121 -0
- package/lib/trade/fees/borrowingV2/fetcher.d.ts +75 -0
- package/lib/trade/fees/borrowingV2/fetcher.js +193 -0
- package/lib/trade/fees/borrowingV2/index.d.ts +60 -0
- package/lib/trade/fees/borrowingV2/index.js +140 -0
- package/lib/trade/fees/borrowingV2/types.d.ts +79 -0
- package/lib/trade/fees/borrowingV2/types.js +5 -0
- package/lib/trade/fees/converter.d.ts +48 -0
- package/lib/trade/fees/converter.js +110 -0
- package/lib/trade/fees/fundingFees/converter.d.ts +102 -0
- package/lib/trade/fees/fundingFees/converter.js +196 -0
- package/lib/trade/fees/fundingFees/fetcher.d.ts +66 -0
- package/lib/trade/fees/fundingFees/fetcher.js +150 -0
- package/lib/trade/fees/fundingFees/index.d.ts +136 -0
- package/lib/trade/fees/fundingFees/index.js +326 -0
- package/lib/trade/fees/fundingFees/types.d.ts +77 -0
- package/lib/trade/fees/fundingFees/types.js +5 -0
- package/lib/trade/fees/index.d.ts +7 -2
- package/lib/trade/fees/index.js +67 -16
- package/lib/trade/fees/tiers/converter.d.ts +54 -0
- package/lib/trade/fees/tiers/converter.js +81 -0
- package/lib/trade/fees/tiers/index.d.ts +18 -0
- package/lib/trade/fees/tiers/index.js +45 -1
- package/lib/trade/fees/trading/converter.d.ts +30 -0
- package/lib/trade/fees/trading/converter.js +43 -0
- package/lib/trade/fees/trading/index.d.ts +54 -0
- package/lib/trade/fees/trading/index.js +147 -0
- package/lib/trade/fees/trading/types.d.ts +48 -0
- package/lib/trade/fees/trading/types.js +5 -0
- package/lib/trade/index.d.ts +3 -2
- package/lib/trade/index.js +3 -2
- package/lib/trade/liquidation/converter.d.ts +23 -0
- package/lib/trade/liquidation/converter.js +46 -0
- package/lib/trade/liquidation/index.d.ts +31 -0
- package/lib/trade/liquidation/index.js +187 -0
- package/lib/trade/liquidation/types.d.ts +44 -0
- package/lib/trade/liquidation/types.js +2 -0
- package/lib/trade/pnl/converter.d.ts +47 -0
- package/lib/trade/pnl/converter.js +72 -0
- package/lib/trade/pnl/index.d.ts +86 -0
- package/lib/trade/pnl/index.js +201 -0
- package/lib/trade/pnl/types.d.ts +86 -0
- package/lib/trade/pnl/types.js +5 -0
- package/lib/trade/priceImpact/close/index.d.ts +21 -0
- package/lib/trade/priceImpact/close/index.js +131 -0
- package/lib/trade/priceImpact/close/types.d.ts +43 -0
- package/lib/trade/priceImpact/close/types.js +5 -0
- package/lib/trade/priceImpact/cumulVol/converter.d.ts +31 -0
- package/lib/trade/priceImpact/cumulVol/converter.js +59 -0
- package/lib/trade/priceImpact/cumulVol/index.d.ts +107 -0
- package/lib/trade/priceImpact/cumulVol/index.js +228 -0
- package/lib/trade/priceImpact/index.d.ts +12 -0
- package/lib/trade/priceImpact/index.js +59 -0
- package/lib/trade/priceImpact/open/index.d.ts +22 -0
- package/lib/trade/priceImpact/open/index.js +76 -0
- package/lib/trade/priceImpact/open/types.d.ts +41 -0
- package/lib/trade/priceImpact/open/types.js +5 -0
- package/lib/trade/priceImpact/skew/converter.d.ts +77 -0
- package/lib/trade/priceImpact/skew/converter.js +171 -0
- package/lib/trade/priceImpact/skew/fetcher.d.ts +63 -0
- package/lib/trade/priceImpact/skew/fetcher.js +168 -0
- package/lib/trade/priceImpact/skew/index.d.ts +58 -0
- package/lib/trade/priceImpact/skew/index.js +179 -0
- package/lib/trade/priceImpact/skew/types.d.ts +55 -0
- package/lib/trade/priceImpact/skew/types.js +5 -0
- package/lib/trade/spread.d.ts +5 -18
- package/lib/trade/spread.js +17 -106
- package/lib/trade/types.d.ts +34 -9
- package/lib/trade/types.js +7 -0
- package/lib/trade/utils.d.ts +18 -0
- package/lib/trade/utils.js +30 -0
- package/package.json +2 -1
|
@@ -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,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 = {}));
|
package/lib/constants.d.ts
CHANGED
|
@@ -369,6 +369,13 @@ export declare const pairs: {
|
|
|
369
369
|
"WCT/USD": string;
|
|
370
370
|
"BIGTIME/USD": string;
|
|
371
371
|
"BABY/USD": string;
|
|
372
|
+
"COOKIE/USD": string;
|
|
373
|
+
"KMNO/USD": string;
|
|
374
|
+
"INIT/USD": string;
|
|
375
|
+
"SYRUP/USD": string;
|
|
376
|
+
"SIGN/USD": string;
|
|
377
|
+
"ZORA/USD": string;
|
|
378
|
+
"COIN/USD": string;
|
|
372
379
|
};
|
|
373
380
|
export declare const syntheticPairs: Set<string>;
|
|
374
381
|
export declare const parentToSyntheticPairMap: Map<string, string>;
|
|
@@ -398,6 +405,6 @@ export declare const stockSplits: {
|
|
|
398
405
|
};
|
|
399
406
|
};
|
|
400
407
|
export declare const delistedPairIxs: Set<number>;
|
|
401
|
-
export declare const delistedGroupsIxs: Set<
|
|
408
|
+
export declare const delistedGroupsIxs: Set<never>;
|
|
402
409
|
export declare const DEFAULT_PROTECTION_CLOSE_FACTOR = 1;
|
|
403
410
|
export declare const DEFAULT_CUMULATIVE_FACTOR = 1;
|
package/lib/constants.js
CHANGED
|
@@ -377,6 +377,13 @@ exports.pairs = {
|
|
|
377
377
|
"WCT/USD": CRYPTO,
|
|
378
378
|
"BIGTIME/USD": CRYPTO,
|
|
379
379
|
"BABY/USD": CRYPTO,
|
|
380
|
+
"COOKIE/USD": CRYPTO,
|
|
381
|
+
"KMNO/USD": CRYPTO,
|
|
382
|
+
"INIT/USD": CRYPTO,
|
|
383
|
+
"SYRUP/USD": CRYPTO,
|
|
384
|
+
"SIGN/USD": CRYPTO,
|
|
385
|
+
"ZORA/USD": CRYPTO,
|
|
386
|
+
"COIN/USD": STOCKS,
|
|
380
387
|
};
|
|
381
388
|
exports.syntheticPairs = new Set([
|
|
382
389
|
"BTCDEGEN/USD",
|
|
@@ -431,6 +438,6 @@ exports.delistedPairIxs = new Set([
|
|
|
431
438
|
231, 238, 239, 241, 250, 253, 254, 258, 270, 275, 276, 278, 279, 282, 285,
|
|
432
439
|
290, 294, 296, 305, 330, 349, 352, 353, 354, 355, 357, 365, 366,
|
|
433
440
|
]);
|
|
434
|
-
exports.delistedGroupsIxs = new Set([
|
|
441
|
+
exports.delistedGroupsIxs = new Set([]);
|
|
435
442
|
exports.DEFAULT_PROTECTION_CLOSE_FACTOR = 1;
|
|
436
443
|
exports.DEFAULT_CUMULATIVE_FACTOR = 1;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { GNSMultiCollatDiamond } from "../../types/generated";
|
|
2
|
+
import { BorrowingFeeV2 } from "../../../trade/fees/borrowingV2";
|
|
3
|
+
/**
|
|
4
|
+
* @dev Fetches borrowing fee parameters v2 for specific pairs
|
|
5
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
6
|
+
* @param collateralIndices Array of collateral indices
|
|
7
|
+
* @param pairIndices Array of pair indices
|
|
8
|
+
* @returns Promise resolving to array of borrowing fee parameters
|
|
9
|
+
*/
|
|
10
|
+
export declare const fetchBorrowingFeeParamsV2: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[]) => Promise<BorrowingFeeV2.BorrowingFeeParams[]>;
|
|
11
|
+
/**
|
|
12
|
+
* @dev Fetches pair borrowing fee data v2 for specific pairs
|
|
13
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
14
|
+
* @param collateralIndices Array of collateral indices
|
|
15
|
+
* @param pairIndices Array of pair indices
|
|
16
|
+
* @returns Promise resolving to array of pair borrowing fee data
|
|
17
|
+
*/
|
|
18
|
+
export declare const fetchPairBorrowingFeeDataV2: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[]) => Promise<BorrowingFeeV2.PairBorrowingFeeData[]>;
|
|
19
|
+
/**
|
|
20
|
+
* @dev Fetches borrowing fees in collateral tokens for a specific trade
|
|
21
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
22
|
+
* @param trader Address of the trader
|
|
23
|
+
* @param index Trade index
|
|
24
|
+
* @param currentPairPrice Current price of the trading pair (1e6 precision)
|
|
25
|
+
* @returns Promise resolving to borrowing fees in collateral tokens
|
|
26
|
+
*/
|
|
27
|
+
export declare const fetchTradeBorrowingFeesCollateralV2: (contract: GNSMultiCollatDiamond, trader: string, index: number, currentPairPrice: number) => Promise<number>;
|
|
28
|
+
/**
|
|
29
|
+
* @dev Fetches pending accumulated borrowing fees for a specific pair
|
|
30
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
31
|
+
* @param collateralIndex Index of the collateral
|
|
32
|
+
* @param pairIndex Index of the trading pair
|
|
33
|
+
* @param currentPairPrice Current price of the trading pair (1e6 precision)
|
|
34
|
+
* @returns Promise resolving to pending accumulated borrowing fee
|
|
35
|
+
*/
|
|
36
|
+
export declare const fetchPairPendingAccBorrowingFeesV2: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndex: number, currentPairPrice: number) => Promise<number>;
|
|
37
|
+
/**
|
|
38
|
+
* @dev Convenience function to fetch all borrowing v2 data for specific pairs
|
|
39
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
40
|
+
* @param collateralIndex Index of the collateral
|
|
41
|
+
* @param pairIndices Array of pair indices
|
|
42
|
+
* @returns Promise resolving to complete borrowing v2 data set
|
|
43
|
+
*/
|
|
44
|
+
export declare const fetchAllBorrowingV2Data: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndices: number[]) => Promise<{
|
|
45
|
+
params: BorrowingFeeV2.BorrowingFeeParams[];
|
|
46
|
+
data: BorrowingFeeV2.PairBorrowingFeeData[];
|
|
47
|
+
context: BorrowingFeeV2.GetBorrowingFeeV2Context;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* @dev Creates a complete borrowing v2 context from contract data
|
|
51
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
52
|
+
* @param collateralIndex Index of the collateral
|
|
53
|
+
* @param pairIndices Array of pair indices
|
|
54
|
+
* @param currentTimestamp Optional current timestamp for calculations
|
|
55
|
+
* @returns Promise resolving to complete borrowing v2 context
|
|
56
|
+
*/
|
|
57
|
+
export declare const createBorrowingV2ContextFromContract: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndices: number[], currentTimestamp?: number) => Promise<BorrowingFeeV2.GetBorrowingFeeV2Context>;
|
|
58
|
+
/**
|
|
59
|
+
* @dev Helper function to create context from already fetched arrays
|
|
60
|
+
* @param collateralIndices Array of collateral indices
|
|
61
|
+
* @param pairIndices Array of pair indices
|
|
62
|
+
* @param params Array of borrowing fee parameters
|
|
63
|
+
* @param data Array of pair borrowing fee data
|
|
64
|
+
* @param currentTimestamp Optional current timestamp
|
|
65
|
+
* @returns Complete borrowing v2 context
|
|
66
|
+
*/
|
|
67
|
+
export declare const createBorrowingV2ContextFromArrays: (collateralIndices: number[], pairIndices: number[], params: BorrowingFeeV2.BorrowingFeeParams[], data: BorrowingFeeV2.PairBorrowingFeeData[], currentTimestamp?: number) => BorrowingFeeV2.GetBorrowingFeeV2Context;
|
|
68
|
+
/**
|
|
69
|
+
* @dev Fetches borrowing v2 data for multiple collateral/pair combinations
|
|
70
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
71
|
+
* @param collateralIndices Array of collateral indices
|
|
72
|
+
* @param pairIndices Array of pair indices (must match collateralIndices length)
|
|
73
|
+
* @returns Promise resolving to complete borrowing v2 context
|
|
74
|
+
*/
|
|
75
|
+
export declare const fetchBorrowingV2DataForPairs: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[]) => Promise<BorrowingFeeV2.GetBorrowingFeeV2Context>;
|