@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.
- 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/contracts/fetch/fees/borrowingFeesV2.d.ts +0 -1
- 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/GNSMultiCollatDiamond.d.ts +7 -20
- 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/GNSMultiCollatDiamond__factory.js +7 -16
- 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/generated/factories/GToken__factory.d.ts +7 -0
- package/lib/contracts/types/generated/factories/GToken__factory.js +4 -0
- package/lib/contracts/utils/index.d.ts +0 -3
- package/lib/contracts/utils/index.js +0 -3
- package/lib/contracts/utils/openTrades.js +14 -30
- 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 +13 -2
- package/lib/trade/fees/borrowing/index.js +30 -14
- 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 +1 -0
- package/lib/trade/fees/borrowingV2/index.js +1 -0
- package/lib/trade/fees/converter.d.ts +48 -0
- package/lib/trade/fees/converter.js +110 -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 +1 -0
- package/lib/trade/fees/fundingFees/index.js +4 -0
- package/lib/trade/fees/index.d.ts +2 -1
- package/lib/trade/fees/index.js +44 -35
- 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 +1 -0
- package/lib/trade/fees/tiers/index.js +1 -0
- package/lib/trade/fees/trading/index.d.ts +22 -2
- package/lib/trade/fees/trading/index.js +44 -1
- package/lib/trade/fees/trading/types.d.ts +9 -0
- package/lib/trade/index.d.ts +1 -1
- package/lib/trade/index.js +1 -1
- 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/liquidation.d.ts +2 -32
- package/lib/trade/liquidation.js +8 -93
- 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/pnl.d.ts +3 -3
- package/lib/trade/pnl.js +2 -7
- 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 +6 -2
- package/lib/trade/priceImpact/index.js +30 -3
- 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/fetcher.d.ts +63 -0
- package/lib/trade/priceImpact/skew/fetcher.js +168 -0
- package/lib/trade/priceImpact/skew/index.d.ts +1 -0
- package/lib/trade/priceImpact/skew/index.js +4 -0
- package/lib/trade/spread.d.ts +5 -18
- package/lib/trade/spread.js +17 -106
- package/lib/trade/types.d.ts +9 -7
- package/package.json +2 -2
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.collateralToContractFormat = exports.priceToContractFormat = exports.fetchPairPendingAccFundingFeesBatch = exports.fetchTradeFeesDataBatch = exports.fetchTradeFeesData = exports.fetchTradeFundingFeesCollateral = exports.fetchPairPendingAccFundingFees = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* @dev Fetches pending accumulated funding fees for a specific pair
|
|
15
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
16
|
+
* @param collateralIndex Collateral index
|
|
17
|
+
* @param pairIndex Pair index
|
|
18
|
+
* @param currentPairPrice Current pair price (1e10)
|
|
19
|
+
* @returns Promise resolving to accumulated funding fees and current rate
|
|
20
|
+
*/
|
|
21
|
+
const fetchPairPendingAccFundingFees = (contract, collateralIndex, pairIndex, currentPairPrice) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
try {
|
|
23
|
+
const result = yield contract.getPairPendingAccFundingFees(collateralIndex, pairIndex, currentPairPrice);
|
|
24
|
+
return {
|
|
25
|
+
accFundingFeeLongP: Number(result.accFundingFeeLongP) / 1e20,
|
|
26
|
+
accFundingFeeShortP: Number(result.accFundingFeeShortP) / 1e20,
|
|
27
|
+
currentFundingRatePerSecondP: Number(result.currentFundingRatePerSecondP) / 1e18, // FUNDING_RATE_PER_SECOND_P precision
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error("Error fetching pair pending acc funding fees:", error);
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
exports.fetchPairPendingAccFundingFees = fetchPairPendingAccFundingFees;
|
|
36
|
+
/**
|
|
37
|
+
* @dev Fetches funding fees for a specific trade in collateral tokens
|
|
38
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
39
|
+
* @param trader Trader address
|
|
40
|
+
* @param index Trade index
|
|
41
|
+
* @param currentPairPrice Current pair price (1e10)
|
|
42
|
+
* @returns Promise resolving to funding fee in collateral tokens
|
|
43
|
+
*/
|
|
44
|
+
const fetchTradeFundingFeesCollateral = (contract, trader, index, currentPairPrice) => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
+
try {
|
|
46
|
+
const fundingFeeCollateral = yield contract.getTradeFundingFeesCollateral(trader, index, currentPairPrice);
|
|
47
|
+
// Convert from BigNumber to number (collateral precision already applied)
|
|
48
|
+
return Number(fundingFeeCollateral);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error("Error fetching trade funding fees:", error);
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
exports.fetchTradeFundingFeesCollateral = fetchTradeFundingFeesCollateral;
|
|
56
|
+
/**
|
|
57
|
+
* @dev Fetches trade fees data for a specific trade
|
|
58
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
59
|
+
* @param trader Trader address
|
|
60
|
+
* @param index Trade index
|
|
61
|
+
* @returns Promise resolving to trade fees data
|
|
62
|
+
*/
|
|
63
|
+
const fetchTradeFeesData = (contract, trader, index) => __awaiter(void 0, void 0, void 0, function* () {
|
|
64
|
+
try {
|
|
65
|
+
const feesData = yield contract.getTradeFeesData(trader, index);
|
|
66
|
+
return {
|
|
67
|
+
accPerOiLong: Number(feesData.initialAccFundingFeeP) / 1e20,
|
|
68
|
+
accPerOiShort: Number(feesData.initialAccFundingFeeP) / 1e20,
|
|
69
|
+
openBlock: 0, // Not available in this struct
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.error("Error fetching trade fees data:", error);
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
exports.fetchTradeFeesData = fetchTradeFeesData;
|
|
78
|
+
/**
|
|
79
|
+
* @dev Fetches trade fees data for multiple trades
|
|
80
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
81
|
+
* @param traders Array of trader addresses
|
|
82
|
+
* @param indices Array of trade indices
|
|
83
|
+
* @returns Promise resolving to array of trade fees data
|
|
84
|
+
*/
|
|
85
|
+
const fetchTradeFeesDataBatch = (contract, traders, indices) => __awaiter(void 0, void 0, void 0, function* () {
|
|
86
|
+
if (traders.length !== indices.length) {
|
|
87
|
+
throw new Error("Traders and indices arrays must have the same length");
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
const feesDatas = yield contract.getTradeFeesDataArray(traders, indices);
|
|
91
|
+
return feesDatas.map(feesData => ({
|
|
92
|
+
accPerOiLong: Number(feesData.initialAccFundingFeeP) / 1e20,
|
|
93
|
+
accPerOiShort: Number(feesData.initialAccFundingFeeP) / 1e20,
|
|
94
|
+
openBlock: 0,
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error("Error fetching trade fees data batch:", error);
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
exports.fetchTradeFeesDataBatch = fetchTradeFeesDataBatch;
|
|
103
|
+
/**
|
|
104
|
+
* @dev Fetches pending accumulated funding fees for multiple pairs
|
|
105
|
+
* @param contract GNSMultiCollatDiamond contract instance
|
|
106
|
+
* @param collateralIndices Array of collateral indices
|
|
107
|
+
* @param pairIndices Array of pair indices
|
|
108
|
+
* @param currentPairPrices Array of current pair prices (1e10)
|
|
109
|
+
* @returns Promise resolving to array of accumulated funding fees
|
|
110
|
+
*/
|
|
111
|
+
const fetchPairPendingAccFundingFeesBatch = (contract, collateralIndices, pairIndices, currentPairPrices) => __awaiter(void 0, void 0, void 0, function* () {
|
|
112
|
+
if (collateralIndices.length !== pairIndices.length ||
|
|
113
|
+
pairIndices.length !== currentPairPrices.length) {
|
|
114
|
+
throw new Error("All input arrays must have the same length");
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
// Fetch all in parallel
|
|
118
|
+
const promises = collateralIndices.map((collateralIndex, i) => contract.getPairPendingAccFundingFees(collateralIndex, pairIndices[i], currentPairPrices[i]));
|
|
119
|
+
const results = yield Promise.all(promises);
|
|
120
|
+
return results.map(result => ({
|
|
121
|
+
accFundingFeeLongP: Number(result.accFundingFeeLongP) / 1e20,
|
|
122
|
+
accFundingFeeShortP: Number(result.accFundingFeeShortP) / 1e20,
|
|
123
|
+
currentFundingRatePerSecondP: Number(result.currentFundingRatePerSecondP) / 1e18,
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
console.error("Error fetching pair pending acc funding fees batch:", error);
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
exports.fetchPairPendingAccFundingFeesBatch = fetchPairPendingAccFundingFeesBatch;
|
|
132
|
+
/**
|
|
133
|
+
* @dev Helper to convert price from number to contract format
|
|
134
|
+
* @param price Price as number
|
|
135
|
+
* @returns Price in contract format (1e10)
|
|
136
|
+
*/
|
|
137
|
+
const priceToContractFormat = (price) => {
|
|
138
|
+
return BigInt(Math.round(price * 1e10));
|
|
139
|
+
};
|
|
140
|
+
exports.priceToContractFormat = priceToContractFormat;
|
|
141
|
+
/**
|
|
142
|
+
* @dev Helper to convert collateral amount to contract format
|
|
143
|
+
* @param amount Amount as number
|
|
144
|
+
* @param decimals Collateral decimals (6 for USDC, 18 for others)
|
|
145
|
+
* @returns Amount in contract format
|
|
146
|
+
*/
|
|
147
|
+
const collateralToContractFormat = (amount, decimals) => {
|
|
148
|
+
return BigInt(Math.round(amount * Math.pow(10, decimals)));
|
|
149
|
+
};
|
|
150
|
+
exports.collateralToContractFormat = collateralToContractFormat;
|
|
@@ -133,3 +133,4 @@ export declare const getTradeFundingFeesCollateralSimple: (trade: {
|
|
|
133
133
|
}, initialAccFundingFeeP: number, currentAccFundingFeeP: number) => number;
|
|
134
134
|
export * as FundingFees from "./types";
|
|
135
135
|
export type { FundingFeeParams, PairFundingFeeData, PairGlobalParams, TradeInitialAccFundingFees, PairOiAfterV10, FundingRateCalculation, GetFundingFeeContext, TradeFundingFeeResult, PairPendingAccFundingFeesResult, PairAccumulatedFees, TradeInitialAccFees, } from "./types";
|
|
136
|
+
export * from "./fetcher";
|
|
@@ -26,6 +26,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
__setModuleDefault(result, mod);
|
|
27
27
|
return result;
|
|
28
28
|
};
|
|
29
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
30
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
31
|
+
};
|
|
29
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
33
|
exports.FundingFees = exports.getTradeFundingFeesCollateralSimple = exports.getTradeFundingFees = exports.getTradeFundingFeesCollateral = exports.getPairPendingAccFundingFees = exports.getLongShortAprMultiplier = exports.getAvgFundingRatePerSecondP = exports.getSecondsToReachZeroRate = exports.getCurrentFundingVelocityPerYear = void 0;
|
|
31
34
|
// Constants from contract
|
|
@@ -320,3 +323,4 @@ const getTradeFundingFeesCollateralSimple = (trade, tradeInfo, initialAccFunding
|
|
|
320
323
|
exports.getTradeFundingFeesCollateralSimple = getTradeFundingFeesCollateralSimple;
|
|
321
324
|
// Export namespace for types
|
|
322
325
|
exports.FundingFees = __importStar(require("./types"));
|
|
326
|
+
__exportStar(require("./fetcher"), exports);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export * from "./borrowing";
|
|
2
2
|
export * from "./tiers";
|
|
3
3
|
export * from "./trading";
|
|
4
|
+
export { convertTradeFeesData, convertTradeFeesDataArray, convertUiRealizedPnlData, convertUiRealizedPnlDataArray, encodeTradeFeesData, encodeUiRealizedPnlData, } from "./converter";
|
|
4
5
|
export { BorrowingFeeV2, borrowingFeeV2Utils, getPairPendingAccBorrowingFees as getPairPendingAccBorrowingFeesV2, getTradeBorrowingFeesCollateral as getTradeBorrowingFeesCollateralV2, getBorrowingFee as getBorrowingFeeV2, getPairBorrowingFees as getPairBorrowingFeesV2, MAX_BORROWING_RATE_PER_SECOND as MAX_BORROWING_RATE_PER_SECOND_V2, BORROWING_V2_PRECISION, } from "./borrowingV2";
|
|
5
6
|
export { convertBorrowingFeeParams as convertBorrowingFeeParamsV2, convertBorrowingFeeParamsArray as convertBorrowingFeeParamsArrayV2, convertPairBorrowingFeeData as convertPairBorrowingFeeDataV2, convertPairBorrowingFeeDataArray as convertPairBorrowingFeeDataArrayV2, convertTradeInitialAccFees as convertTradeInitialAccFeesV2, convertTradeInitialAccFeesArray as convertTradeInitialAccFeesArrayV2, createBorrowingV2Context, isValidBorrowingRate as isValidBorrowingRateV2, borrowingRateToAPR as borrowingRateToAPRV2, aprToBorrowingRate as aprToBorrowingRateV2, } from "./borrowingV2/converter";
|
|
6
|
-
export { fetchBorrowingFeeParamsV2, fetchPairBorrowingFeeDataV2, fetchTradeBorrowingFeesCollateralV2, fetchPairPendingAccBorrowingFeesV2, fetchAllBorrowingV2Data, createBorrowingV2ContextFromContract, createBorrowingV2ContextFromArrays, fetchBorrowingV2DataForPairs, } from "
|
|
7
|
+
export { fetchBorrowingFeeParamsV2, fetchPairBorrowingFeeDataV2, fetchTradeBorrowingFeesCollateralV2, fetchPairPendingAccBorrowingFeesV2, fetchAllBorrowingV2Data, createBorrowingV2ContextFromContract, createBorrowingV2ContextFromArrays, fetchBorrowingV2DataForPairs, } from "./borrowingV2/fetcher";
|
|
7
8
|
export { FundingFees, getCurrentFundingVelocityPerYear, getSecondsToReachZeroRate, getAvgFundingRatePerSecondP, getLongShortAprMultiplier, getPairPendingAccFundingFees, getTradeFundingFeesCollateral, getTradeFundingFeesCollateralSimple, getTradeFundingFees, } from "./fundingFees";
|
|
8
9
|
export { convertFundingFeeParams, convertFundingFeeParamsArray, convertPairFundingFeeData, convertPairFundingFeeDataArray, convertPairGlobalParams, convertPairGlobalParamsArray, convertTradeInitialAccFundingFees, createFundingFeeContext, isValidFundingRate, fundingRateToAPR, aprToFundingRate, calculateVelocityFromSkew, FUNDING_FEES_PRECISION, } from "./fundingFees/converter";
|
package/lib/trade/fees/index.js
CHANGED
|
@@ -14,10 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.isValidFundingRate = exports.createFundingFeeContext = exports.convertTradeInitialAccFundingFees = exports.convertPairGlobalParamsArray = exports.convertPairGlobalParams = exports.convertPairFundingFeeDataArray = exports.convertPairFundingFeeData = exports.convertFundingFeeParamsArray = exports.convertFundingFeeParams = exports.getTradeFundingFees = exports.getTradeFundingFeesCollateralSimple = exports.getTradeFundingFeesCollateral = exports.getPairPendingAccFundingFees = exports.getLongShortAprMultiplier = exports.getAvgFundingRatePerSecondP = exports.getSecondsToReachZeroRate = exports.getCurrentFundingVelocityPerYear = exports.FundingFees = exports.fetchBorrowingV2DataForPairs = exports.createBorrowingV2ContextFromArrays = exports.createBorrowingV2ContextFromContract = exports.fetchAllBorrowingV2Data = exports.fetchPairPendingAccBorrowingFeesV2 = exports.fetchTradeBorrowingFeesCollateralV2 = exports.fetchPairBorrowingFeeDataV2 = exports.fetchBorrowingFeeParamsV2 = exports.aprToBorrowingRateV2 = exports.borrowingRateToAPRV2 = exports.isValidBorrowingRateV2 = exports.createBorrowingV2Context = exports.convertTradeInitialAccFeesArrayV2 = exports.convertTradeInitialAccFeesV2 = exports.convertPairBorrowingFeeDataArrayV2 = exports.convertPairBorrowingFeeDataV2 = exports.convertBorrowingFeeParamsArrayV2 = exports.convertBorrowingFeeParamsV2 = exports.BORROWING_V2_PRECISION = exports.MAX_BORROWING_RATE_PER_SECOND_V2 = exports.getPairBorrowingFeesV2 = exports.getBorrowingFeeV2 = exports.getTradeBorrowingFeesCollateralV2 = exports.getPairPendingAccBorrowingFeesV2 = exports.borrowingFeeV2Utils = exports.BorrowingFeeV2 = exports.encodeUiRealizedPnlData = exports.encodeTradeFeesData = exports.convertUiRealizedPnlDataArray = exports.convertUiRealizedPnlData = exports.convertTradeFeesDataArray = exports.convertTradeFeesData = void 0;
|
|
18
|
+
exports.FUNDING_FEES_PRECISION = exports.calculateVelocityFromSkew = exports.aprToFundingRate = exports.fundingRateToAPR = void 0;
|
|
18
19
|
__exportStar(require("./borrowing"), exports);
|
|
19
20
|
__exportStar(require("./tiers"), exports);
|
|
20
21
|
__exportStar(require("./trading"), exports);
|
|
22
|
+
// TradeFeesData and UiRealizedPnlData converters
|
|
23
|
+
var converter_1 = require("./converter");
|
|
24
|
+
Object.defineProperty(exports, "convertTradeFeesData", { enumerable: true, get: function () { return converter_1.convertTradeFeesData; } });
|
|
25
|
+
Object.defineProperty(exports, "convertTradeFeesDataArray", { enumerable: true, get: function () { return converter_1.convertTradeFeesDataArray; } });
|
|
26
|
+
Object.defineProperty(exports, "convertUiRealizedPnlData", { enumerable: true, get: function () { return converter_1.convertUiRealizedPnlData; } });
|
|
27
|
+
Object.defineProperty(exports, "convertUiRealizedPnlDataArray", { enumerable: true, get: function () { return converter_1.convertUiRealizedPnlDataArray; } });
|
|
28
|
+
Object.defineProperty(exports, "encodeTradeFeesData", { enumerable: true, get: function () { return converter_1.encodeTradeFeesData; } });
|
|
29
|
+
Object.defineProperty(exports, "encodeUiRealizedPnlData", { enumerable: true, get: function () { return converter_1.encodeUiRealizedPnlData; } });
|
|
21
30
|
// Borrowing V2 exports with explicit naming to avoid conflicts
|
|
22
31
|
var borrowingV2_1 = require("./borrowingV2");
|
|
23
32
|
Object.defineProperty(exports, "BorrowingFeeV2", { enumerable: true, get: function () { return borrowingV2_1.BorrowingFeeV2; } });
|
|
@@ -28,27 +37,27 @@ Object.defineProperty(exports, "getBorrowingFeeV2", { enumerable: true, get: fun
|
|
|
28
37
|
Object.defineProperty(exports, "getPairBorrowingFeesV2", { enumerable: true, get: function () { return borrowingV2_1.getPairBorrowingFees; } });
|
|
29
38
|
Object.defineProperty(exports, "MAX_BORROWING_RATE_PER_SECOND_V2", { enumerable: true, get: function () { return borrowingV2_1.MAX_BORROWING_RATE_PER_SECOND; } });
|
|
30
39
|
Object.defineProperty(exports, "BORROWING_V2_PRECISION", { enumerable: true, get: function () { return borrowingV2_1.BORROWING_V2_PRECISION; } });
|
|
31
|
-
var
|
|
32
|
-
Object.defineProperty(exports, "convertBorrowingFeeParamsV2", { enumerable: true, get: function () { return
|
|
33
|
-
Object.defineProperty(exports, "convertBorrowingFeeParamsArrayV2", { enumerable: true, get: function () { return
|
|
34
|
-
Object.defineProperty(exports, "convertPairBorrowingFeeDataV2", { enumerable: true, get: function () { return
|
|
35
|
-
Object.defineProperty(exports, "convertPairBorrowingFeeDataArrayV2", { enumerable: true, get: function () { return
|
|
36
|
-
Object.defineProperty(exports, "convertTradeInitialAccFeesV2", { enumerable: true, get: function () { return
|
|
37
|
-
Object.defineProperty(exports, "convertTradeInitialAccFeesArrayV2", { enumerable: true, get: function () { return
|
|
38
|
-
Object.defineProperty(exports, "createBorrowingV2Context", { enumerable: true, get: function () { return
|
|
39
|
-
Object.defineProperty(exports, "isValidBorrowingRateV2", { enumerable: true, get: function () { return
|
|
40
|
-
Object.defineProperty(exports, "borrowingRateToAPRV2", { enumerable: true, get: function () { return
|
|
41
|
-
Object.defineProperty(exports, "aprToBorrowingRateV2", { enumerable: true, get: function () { return
|
|
40
|
+
var converter_2 = require("./borrowingV2/converter");
|
|
41
|
+
Object.defineProperty(exports, "convertBorrowingFeeParamsV2", { enumerable: true, get: function () { return converter_2.convertBorrowingFeeParams; } });
|
|
42
|
+
Object.defineProperty(exports, "convertBorrowingFeeParamsArrayV2", { enumerable: true, get: function () { return converter_2.convertBorrowingFeeParamsArray; } });
|
|
43
|
+
Object.defineProperty(exports, "convertPairBorrowingFeeDataV2", { enumerable: true, get: function () { return converter_2.convertPairBorrowingFeeData; } });
|
|
44
|
+
Object.defineProperty(exports, "convertPairBorrowingFeeDataArrayV2", { enumerable: true, get: function () { return converter_2.convertPairBorrowingFeeDataArray; } });
|
|
45
|
+
Object.defineProperty(exports, "convertTradeInitialAccFeesV2", { enumerable: true, get: function () { return converter_2.convertTradeInitialAccFees; } });
|
|
46
|
+
Object.defineProperty(exports, "convertTradeInitialAccFeesArrayV2", { enumerable: true, get: function () { return converter_2.convertTradeInitialAccFeesArray; } });
|
|
47
|
+
Object.defineProperty(exports, "createBorrowingV2Context", { enumerable: true, get: function () { return converter_2.createBorrowingV2Context; } });
|
|
48
|
+
Object.defineProperty(exports, "isValidBorrowingRateV2", { enumerable: true, get: function () { return converter_2.isValidBorrowingRate; } });
|
|
49
|
+
Object.defineProperty(exports, "borrowingRateToAPRV2", { enumerable: true, get: function () { return converter_2.borrowingRateToAPR; } });
|
|
50
|
+
Object.defineProperty(exports, "aprToBorrowingRateV2", { enumerable: true, get: function () { return converter_2.aprToBorrowingRate; } });
|
|
42
51
|
// Contract utilities re-exported for convenience
|
|
43
|
-
var
|
|
44
|
-
Object.defineProperty(exports, "fetchBorrowingFeeParamsV2", { enumerable: true, get: function () { return
|
|
45
|
-
Object.defineProperty(exports, "fetchPairBorrowingFeeDataV2", { enumerable: true, get: function () { return
|
|
46
|
-
Object.defineProperty(exports, "fetchTradeBorrowingFeesCollateralV2", { enumerable: true, get: function () { return
|
|
47
|
-
Object.defineProperty(exports, "fetchPairPendingAccBorrowingFeesV2", { enumerable: true, get: function () { return
|
|
48
|
-
Object.defineProperty(exports, "fetchAllBorrowingV2Data", { enumerable: true, get: function () { return
|
|
49
|
-
Object.defineProperty(exports, "createBorrowingV2ContextFromContract", { enumerable: true, get: function () { return
|
|
50
|
-
Object.defineProperty(exports, "createBorrowingV2ContextFromArrays", { enumerable: true, get: function () { return
|
|
51
|
-
Object.defineProperty(exports, "fetchBorrowingV2DataForPairs", { enumerable: true, get: function () { return
|
|
52
|
+
var fetcher_1 = require("./borrowingV2/fetcher");
|
|
53
|
+
Object.defineProperty(exports, "fetchBorrowingFeeParamsV2", { enumerable: true, get: function () { return fetcher_1.fetchBorrowingFeeParamsV2; } });
|
|
54
|
+
Object.defineProperty(exports, "fetchPairBorrowingFeeDataV2", { enumerable: true, get: function () { return fetcher_1.fetchPairBorrowingFeeDataV2; } });
|
|
55
|
+
Object.defineProperty(exports, "fetchTradeBorrowingFeesCollateralV2", { enumerable: true, get: function () { return fetcher_1.fetchTradeBorrowingFeesCollateralV2; } });
|
|
56
|
+
Object.defineProperty(exports, "fetchPairPendingAccBorrowingFeesV2", { enumerable: true, get: function () { return fetcher_1.fetchPairPendingAccBorrowingFeesV2; } });
|
|
57
|
+
Object.defineProperty(exports, "fetchAllBorrowingV2Data", { enumerable: true, get: function () { return fetcher_1.fetchAllBorrowingV2Data; } });
|
|
58
|
+
Object.defineProperty(exports, "createBorrowingV2ContextFromContract", { enumerable: true, get: function () { return fetcher_1.createBorrowingV2ContextFromContract; } });
|
|
59
|
+
Object.defineProperty(exports, "createBorrowingV2ContextFromArrays", { enumerable: true, get: function () { return fetcher_1.createBorrowingV2ContextFromArrays; } });
|
|
60
|
+
Object.defineProperty(exports, "fetchBorrowingV2DataForPairs", { enumerable: true, get: function () { return fetcher_1.fetchBorrowingV2DataForPairs; } });
|
|
52
61
|
// Funding Fees exports
|
|
53
62
|
var fundingFees_1 = require("./fundingFees");
|
|
54
63
|
Object.defineProperty(exports, "FundingFees", { enumerable: true, get: function () { return fundingFees_1.FundingFees; } });
|
|
@@ -60,17 +69,17 @@ Object.defineProperty(exports, "getPairPendingAccFundingFees", { enumerable: tru
|
|
|
60
69
|
Object.defineProperty(exports, "getTradeFundingFeesCollateral", { enumerable: true, get: function () { return fundingFees_1.getTradeFundingFeesCollateral; } });
|
|
61
70
|
Object.defineProperty(exports, "getTradeFundingFeesCollateralSimple", { enumerable: true, get: function () { return fundingFees_1.getTradeFundingFeesCollateralSimple; } });
|
|
62
71
|
Object.defineProperty(exports, "getTradeFundingFees", { enumerable: true, get: function () { return fundingFees_1.getTradeFundingFees; } });
|
|
63
|
-
var
|
|
64
|
-
Object.defineProperty(exports, "convertFundingFeeParams", { enumerable: true, get: function () { return
|
|
65
|
-
Object.defineProperty(exports, "convertFundingFeeParamsArray", { enumerable: true, get: function () { return
|
|
66
|
-
Object.defineProperty(exports, "convertPairFundingFeeData", { enumerable: true, get: function () { return
|
|
67
|
-
Object.defineProperty(exports, "convertPairFundingFeeDataArray", { enumerable: true, get: function () { return
|
|
68
|
-
Object.defineProperty(exports, "convertPairGlobalParams", { enumerable: true, get: function () { return
|
|
69
|
-
Object.defineProperty(exports, "convertPairGlobalParamsArray", { enumerable: true, get: function () { return
|
|
70
|
-
Object.defineProperty(exports, "convertTradeInitialAccFundingFees", { enumerable: true, get: function () { return
|
|
71
|
-
Object.defineProperty(exports, "createFundingFeeContext", { enumerable: true, get: function () { return
|
|
72
|
-
Object.defineProperty(exports, "isValidFundingRate", { enumerable: true, get: function () { return
|
|
73
|
-
Object.defineProperty(exports, "fundingRateToAPR", { enumerable: true, get: function () { return
|
|
74
|
-
Object.defineProperty(exports, "aprToFundingRate", { enumerable: true, get: function () { return
|
|
75
|
-
Object.defineProperty(exports, "calculateVelocityFromSkew", { enumerable: true, get: function () { return
|
|
76
|
-
Object.defineProperty(exports, "FUNDING_FEES_PRECISION", { enumerable: true, get: function () { return
|
|
72
|
+
var converter_3 = require("./fundingFees/converter");
|
|
73
|
+
Object.defineProperty(exports, "convertFundingFeeParams", { enumerable: true, get: function () { return converter_3.convertFundingFeeParams; } });
|
|
74
|
+
Object.defineProperty(exports, "convertFundingFeeParamsArray", { enumerable: true, get: function () { return converter_3.convertFundingFeeParamsArray; } });
|
|
75
|
+
Object.defineProperty(exports, "convertPairFundingFeeData", { enumerable: true, get: function () { return converter_3.convertPairFundingFeeData; } });
|
|
76
|
+
Object.defineProperty(exports, "convertPairFundingFeeDataArray", { enumerable: true, get: function () { return converter_3.convertPairFundingFeeDataArray; } });
|
|
77
|
+
Object.defineProperty(exports, "convertPairGlobalParams", { enumerable: true, get: function () { return converter_3.convertPairGlobalParams; } });
|
|
78
|
+
Object.defineProperty(exports, "convertPairGlobalParamsArray", { enumerable: true, get: function () { return converter_3.convertPairGlobalParamsArray; } });
|
|
79
|
+
Object.defineProperty(exports, "convertTradeInitialAccFundingFees", { enumerable: true, get: function () { return converter_3.convertTradeInitialAccFundingFees; } });
|
|
80
|
+
Object.defineProperty(exports, "createFundingFeeContext", { enumerable: true, get: function () { return converter_3.createFundingFeeContext; } });
|
|
81
|
+
Object.defineProperty(exports, "isValidFundingRate", { enumerable: true, get: function () { return converter_3.isValidFundingRate; } });
|
|
82
|
+
Object.defineProperty(exports, "fundingRateToAPR", { enumerable: true, get: function () { return converter_3.fundingRateToAPR; } });
|
|
83
|
+
Object.defineProperty(exports, "aprToFundingRate", { enumerable: true, get: function () { return converter_3.aprToFundingRate; } });
|
|
84
|
+
Object.defineProperty(exports, "calculateVelocityFromSkew", { enumerable: true, get: function () { return converter_3.calculateVelocityFromSkew; } });
|
|
85
|
+
Object.defineProperty(exports, "FUNDING_FEES_PRECISION", { enumerable: true, get: function () { return converter_3.FUNDING_FEES_PRECISION; } });
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dev Converters for fee tier data between contract and SDK formats
|
|
3
|
+
* @dev All BigNumber values are normalized to floats with appropriate precision
|
|
4
|
+
*/
|
|
5
|
+
import { IFeeTiers } from "../../../contracts/types/generated/GNSMultiCollatDiamond";
|
|
6
|
+
import { FeeTier, TraderInfo, TraderEnrollment } from "./types";
|
|
7
|
+
/**
|
|
8
|
+
* @dev Converts contract fee tier data to SDK format
|
|
9
|
+
* @param contractData Contract FeeTier struct
|
|
10
|
+
* @returns Normalized fee tier data
|
|
11
|
+
*/
|
|
12
|
+
export declare const convertFeeTier: (contractData: IFeeTiers.FeeTierStructOutput) => FeeTier;
|
|
13
|
+
/**
|
|
14
|
+
* @dev Converts array of fee tiers from contract format
|
|
15
|
+
* @param contractDataArray Array of contract FeeTier structs
|
|
16
|
+
* @returns Array of normalized fee tiers
|
|
17
|
+
*/
|
|
18
|
+
export declare const convertFeeTierArray: (contractDataArray: IFeeTiers.FeeTierStructOutput[]) => FeeTier[];
|
|
19
|
+
/**
|
|
20
|
+
* @dev Converts contract trader info to SDK format
|
|
21
|
+
* @param contractData Contract TraderInfo struct
|
|
22
|
+
* @returns Normalized trader info
|
|
23
|
+
*/
|
|
24
|
+
export declare const convertTraderInfo: (contractData: IFeeTiers.TraderInfoStructOutput) => TraderInfo;
|
|
25
|
+
/**
|
|
26
|
+
* @dev Converts contract trader enrollment to SDK format
|
|
27
|
+
* @param contractData Contract TraderEnrollment struct
|
|
28
|
+
* @returns Normalized trader enrollment
|
|
29
|
+
*/
|
|
30
|
+
export declare const convertTraderEnrollment: (contractData: IFeeTiers.TraderEnrollmentStructOutput) => TraderEnrollment;
|
|
31
|
+
/**
|
|
32
|
+
* @dev Converts the complete fee tiers configuration from contract format
|
|
33
|
+
* @param tiers Array of fee tiers from contract
|
|
34
|
+
* @param groupVolumeMultipliers Array of group volume multipliers
|
|
35
|
+
* @param currentDay Current day from contract
|
|
36
|
+
* @returns Complete fee tiers configuration
|
|
37
|
+
*/
|
|
38
|
+
export declare const convertFeeTiersConfig: (tiers: IFeeTiers.FeeTierStructOutput[], groupVolumeMultipliers: readonly bigint[], currentDay: bigint) => {
|
|
39
|
+
tiers: FeeTier[];
|
|
40
|
+
groupVolumeMultipliers: number[];
|
|
41
|
+
currentDay: number;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* @dev Converts trader's fee tier data from contract format
|
|
45
|
+
* @param traderInfo Trader info from contract
|
|
46
|
+
* @param traderDailyInfo Array of daily points info
|
|
47
|
+
* @param traderEnrollment Enrollment status from contract
|
|
48
|
+
* @returns Complete trader fee tier data
|
|
49
|
+
*/
|
|
50
|
+
export declare const convertTraderFeeTiersData: (traderInfo: IFeeTiers.TraderInfoStructOutput, traderDailyInfo: readonly bigint[], traderEnrollment: IFeeTiers.TraderEnrollmentStructOutput) => {
|
|
51
|
+
traderInfo: TraderInfo;
|
|
52
|
+
dailyPoints: number[];
|
|
53
|
+
traderEnrollment: TraderEnrollment;
|
|
54
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @dev Converters for fee tier data between contract and SDK formats
|
|
4
|
+
* @dev All BigNumber values are normalized to floats with appropriate precision
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.convertTraderFeeTiersData = exports.convertFeeTiersConfig = exports.convertTraderEnrollment = exports.convertTraderInfo = exports.convertFeeTierArray = exports.convertFeeTier = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* @dev Converts contract fee tier data to SDK format
|
|
10
|
+
* @param contractData Contract FeeTier struct
|
|
11
|
+
* @returns Normalized fee tier data
|
|
12
|
+
*/
|
|
13
|
+
const convertFeeTier = (contractData) => {
|
|
14
|
+
return {
|
|
15
|
+
feeMultiplier: Number(contractData.feeMultiplier) / 1e3,
|
|
16
|
+
pointsThreshold: Number(contractData.pointsThreshold) / 1e18, // Points in 1e18 precision
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
exports.convertFeeTier = convertFeeTier;
|
|
20
|
+
/**
|
|
21
|
+
* @dev Converts array of fee tiers from contract format
|
|
22
|
+
* @param contractDataArray Array of contract FeeTier structs
|
|
23
|
+
* @returns Array of normalized fee tiers
|
|
24
|
+
*/
|
|
25
|
+
const convertFeeTierArray = (contractDataArray) => {
|
|
26
|
+
return contractDataArray.map(exports.convertFeeTier);
|
|
27
|
+
};
|
|
28
|
+
exports.convertFeeTierArray = convertFeeTierArray;
|
|
29
|
+
/**
|
|
30
|
+
* @dev Converts contract trader info to SDK format
|
|
31
|
+
* @param contractData Contract TraderInfo struct
|
|
32
|
+
* @returns Normalized trader info
|
|
33
|
+
*/
|
|
34
|
+
const convertTraderInfo = (contractData) => {
|
|
35
|
+
return {
|
|
36
|
+
lastDayUpdated: Number(contractData.lastDayUpdated),
|
|
37
|
+
trailingPoints: Number(contractData.trailingPoints) / 1e18, // Points in 1e18 precision
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
exports.convertTraderInfo = convertTraderInfo;
|
|
41
|
+
/**
|
|
42
|
+
* @dev Converts contract trader enrollment to SDK format
|
|
43
|
+
* @param contractData Contract TraderEnrollment struct
|
|
44
|
+
* @returns Normalized trader enrollment
|
|
45
|
+
*/
|
|
46
|
+
const convertTraderEnrollment = (contractData) => {
|
|
47
|
+
return {
|
|
48
|
+
status: Number(contractData.status),
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
exports.convertTraderEnrollment = convertTraderEnrollment;
|
|
52
|
+
/**
|
|
53
|
+
* @dev Converts the complete fee tiers configuration from contract format
|
|
54
|
+
* @param tiers Array of fee tiers from contract
|
|
55
|
+
* @param groupVolumeMultipliers Array of group volume multipliers
|
|
56
|
+
* @param currentDay Current day from contract
|
|
57
|
+
* @returns Complete fee tiers configuration
|
|
58
|
+
*/
|
|
59
|
+
const convertFeeTiersConfig = (tiers, groupVolumeMultipliers, currentDay) => {
|
|
60
|
+
return {
|
|
61
|
+
tiers: (0, exports.convertFeeTierArray)(tiers),
|
|
62
|
+
groupVolumeMultipliers: groupVolumeMultipliers.map(m => Number(m) / 1e3),
|
|
63
|
+
currentDay: Number(currentDay),
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
exports.convertFeeTiersConfig = convertFeeTiersConfig;
|
|
67
|
+
/**
|
|
68
|
+
* @dev Converts trader's fee tier data from contract format
|
|
69
|
+
* @param traderInfo Trader info from contract
|
|
70
|
+
* @param traderDailyInfo Array of daily points info
|
|
71
|
+
* @param traderEnrollment Enrollment status from contract
|
|
72
|
+
* @returns Complete trader fee tier data
|
|
73
|
+
*/
|
|
74
|
+
const convertTraderFeeTiersData = (traderInfo, traderDailyInfo, traderEnrollment) => {
|
|
75
|
+
return {
|
|
76
|
+
traderInfo: (0, exports.convertTraderInfo)(traderInfo),
|
|
77
|
+
dailyPoints: traderDailyInfo.map(points => Number(points) / 1e18),
|
|
78
|
+
traderEnrollment: (0, exports.convertTraderEnrollment)(traderEnrollment),
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
exports.convertTraderFeeTiersData = convertTraderFeeTiersData;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FeeTiers, TraderFeeTiers } from "../../types";
|
|
2
2
|
import { FeeTier } from "./types";
|
|
3
3
|
export * from "./types";
|
|
4
|
+
export * from "./converter";
|
|
4
5
|
export declare const TRAILING_PERIOD_DAYS = 30;
|
|
5
6
|
export declare const FEE_MULTIPLIER_SCALE = 1;
|
|
6
7
|
export declare const MAX_FEE_TIERS = 8;
|
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.getTraderFeeMultiplier = exports.calculateFeeAmount = exports.computeFeeMultiplier = exports.getFeeMultiplier = exports.getFeeTiersCount = exports.getCurrentDay = exports.MAX_FEE_TIERS = exports.FEE_MULTIPLIER_SCALE = exports.TRAILING_PERIOD_DAYS = void 0;
|
|
18
18
|
const types_1 = require("./types");
|
|
19
19
|
__exportStar(require("./types"), exports);
|
|
20
|
+
__exportStar(require("./converter"), exports);
|
|
20
21
|
exports.TRAILING_PERIOD_DAYS = 30;
|
|
21
22
|
exports.FEE_MULTIPLIER_SCALE = 1;
|
|
22
23
|
exports.MAX_FEE_TIERS = 8;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @dev Trading fee calculations for opening and closing positions
|
|
3
3
|
*/
|
|
4
|
-
import { Fee, PairIndex } from "../../types";
|
|
5
|
-
import { GetTradeFeesContext, GetLiquidationFeesContext, GetClosingFeeContext, TradeFeesBreakdown } from "./types";
|
|
4
|
+
import { Fee, PairIndex, Trade, TradeInfo, TradeFeesData } from "../../types";
|
|
5
|
+
import { GetTradeFeesContext, GetLiquidationFeesContext, GetClosingFeeContext, TradeFeesBreakdown, TradeHoldingFees } from "./types";
|
|
6
|
+
import { ContractsVersion } from "../../../contracts/types";
|
|
7
|
+
import * as BorrowingFee from "../borrowing/types";
|
|
6
8
|
/**
|
|
7
9
|
* @dev Returns the total fee for a trade in collateral tokens
|
|
8
10
|
* @dev Mirrors the contract's getTotalTradeFeesCollateral function
|
|
@@ -30,5 +32,23 @@ export declare const getTotalTradeLiqFeesCollateral: (collateralIndex: number, t
|
|
|
30
32
|
* @deprecated Use getTotalTradeFeesCollateral instead
|
|
31
33
|
*/
|
|
32
34
|
export declare const getClosingFee: (collateralAmount: number, leverage: number, pairIndex: PairIndex, pairFee: Fee | undefined, _collateralPriceUsd?: number | undefined, isCounterTrade?: boolean, trader?: string, context?: GetClosingFeeContext) => number;
|
|
35
|
+
/**
|
|
36
|
+
* @dev Calculates total holding fees for a trade (funding + borrowing fees)
|
|
37
|
+
* @param trade The trade to calculate fees for
|
|
38
|
+
* @param tradeInfo Trade info containing contracts version
|
|
39
|
+
* @param tradeFeesData Trade fees data containing initial acc fees
|
|
40
|
+
* @param currentPairPrice Current pair price
|
|
41
|
+
* @param context Context with fee parameters
|
|
42
|
+
* @returns Object containing all holding fee components
|
|
43
|
+
*/
|
|
44
|
+
export declare const getTradePendingHoldingFeesCollateral: (trade: Trade, tradeInfo: TradeInfo, tradeFeesData: TradeFeesData, currentPairPrice: number, context: {
|
|
45
|
+
[key: string]: any;
|
|
46
|
+
contractsVersion?: ContractsVersion | undefined;
|
|
47
|
+
currentBlock?: number | undefined;
|
|
48
|
+
groups?: BorrowingFee.Group[] | undefined;
|
|
49
|
+
pairs?: BorrowingFee.Pair[] | undefined;
|
|
50
|
+
collateralPriceUsd?: number | undefined;
|
|
51
|
+
initialAccFees?: BorrowingFee.InitialAccFees | undefined;
|
|
52
|
+
}) => TradeHoldingFees;
|
|
33
53
|
export * from "./types";
|
|
34
54
|
export * from "./converter";
|
|
@@ -17,8 +17,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
17
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.getClosingFee = exports.getTotalTradeLiqFeesCollateral = exports.getTradeFeesCollateral = exports.getTotalTradeFeesCollateral = void 0;
|
|
20
|
+
exports.getTradePendingHoldingFeesCollateral = exports.getClosingFee = exports.getTotalTradeLiqFeesCollateral = exports.getTradeFeesCollateral = exports.getTotalTradeFeesCollateral = void 0;
|
|
21
21
|
const tiers_1 = require("../tiers");
|
|
22
|
+
const fundingFees_1 = require("../fundingFees");
|
|
23
|
+
const borrowingV2_1 = require("../borrowingV2");
|
|
24
|
+
const borrowing_1 = require("../borrowing");
|
|
25
|
+
const types_1 = require("../../../contracts/types");
|
|
22
26
|
/**
|
|
23
27
|
* @dev Returns the total fee for a trade in collateral tokens
|
|
24
28
|
* @dev Mirrors the contract's getTotalTradeFeesCollateral function
|
|
@@ -99,6 +103,45 @@ isCounterTrade = false, trader, context) => {
|
|
|
99
103
|
trader || "", pairIndex, positionSizeCollateral, isCounterTrade, context);
|
|
100
104
|
};
|
|
101
105
|
exports.getClosingFee = getClosingFee;
|
|
106
|
+
/**
|
|
107
|
+
* @dev Calculates total holding fees for a trade (funding + borrowing fees)
|
|
108
|
+
* @param trade The trade to calculate fees for
|
|
109
|
+
* @param tradeInfo Trade info containing contracts version
|
|
110
|
+
* @param tradeFeesData Trade fees data containing initial acc fees
|
|
111
|
+
* @param currentPairPrice Current pair price
|
|
112
|
+
* @param context Context with fee parameters
|
|
113
|
+
* @returns Object containing all holding fee components
|
|
114
|
+
*/
|
|
115
|
+
const getTradePendingHoldingFeesCollateral = (trade, tradeInfo, tradeFeesData, currentPairPrice, context) => {
|
|
116
|
+
var _a;
|
|
117
|
+
// Calculate funding fees (v10+ only)
|
|
118
|
+
const fundingFeeCollateral = ((_a = context.contractsVersion) !== null && _a !== void 0 ? _a : tradeInfo.contractsVersion) >=
|
|
119
|
+
types_1.ContractsVersion.V10
|
|
120
|
+
? (0, fundingFees_1.getTradeFundingFeesCollateral)(trade, tradeInfo, tradeFeesData, currentPairPrice, context)
|
|
121
|
+
: 0;
|
|
122
|
+
// Calculate borrowing fees v2
|
|
123
|
+
const borrowingFeeCollateral = (0, borrowingV2_1.getTradeBorrowingFeesCollateral)({
|
|
124
|
+
positionSizeCollateral: trade.collateralAmount * trade.leverage,
|
|
125
|
+
openPrice: trade.openPrice,
|
|
126
|
+
collateralIndex: trade.collateralIndex,
|
|
127
|
+
pairIndex: trade.pairIndex,
|
|
128
|
+
currentPairPrice,
|
|
129
|
+
initialAccBorrowingFeeP: tradeFeesData.initialAccBorrowingFeeP,
|
|
130
|
+
currentTimestamp: context.currentTimestamp,
|
|
131
|
+
}, context);
|
|
132
|
+
// Calculate v1 borrowing fees (some markets use v1 indefinitely)
|
|
133
|
+
const borrowingFeeCollateral_old = (0, borrowing_1.getBorrowingFee)(trade.collateralAmount * trade.leverage, trade.pairIndex, trade.long, context.initialAccFees || { accPairFee: 0, accGroupFee: 0, block: 0 }, // Use context initial fees or empty
|
|
134
|
+
context);
|
|
135
|
+
return {
|
|
136
|
+
fundingFeeCollateral,
|
|
137
|
+
borrowingFeeCollateral,
|
|
138
|
+
borrowingFeeCollateral_old,
|
|
139
|
+
totalFeeCollateral: fundingFeeCollateral +
|
|
140
|
+
borrowingFeeCollateral +
|
|
141
|
+
borrowingFeeCollateral_old,
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
exports.getTradePendingHoldingFeesCollateral = getTradePendingHoldingFeesCollateral;
|
|
102
145
|
// Export types
|
|
103
146
|
__exportStar(require("./types"), exports);
|
|
104
147
|
__exportStar(require("./converter"), exports);
|
|
@@ -36,4 +36,13 @@ export type GetLiquidationFeesContext = {
|
|
|
36
36
|
* @dev Legacy support
|
|
37
37
|
*/
|
|
38
38
|
export type GetClosingFeeContext = GetTradeFeesContext;
|
|
39
|
+
/**
|
|
40
|
+
* @dev Holding fees breakdown (funding + borrowing)
|
|
41
|
+
*/
|
|
42
|
+
export type TradeHoldingFees = {
|
|
43
|
+
fundingFeeCollateral: number;
|
|
44
|
+
borrowingFeeCollateral: number;
|
|
45
|
+
borrowingFeeCollateral_old: number;
|
|
46
|
+
totalFeeCollateral: number;
|
|
47
|
+
};
|
|
39
48
|
export type { GlobalTradeFeeParams };
|
package/lib/trade/index.d.ts
CHANGED
package/lib/trade/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./fees"), exports);
|
|
18
|
-
__exportStar(require("./pnl"), exports);
|
|
18
|
+
__exportStar(require("./pnl/index"), exports);
|
|
19
19
|
__exportStar(require("./spread"), exports);
|
|
20
20
|
__exportStar(require("./liquidation"), exports);
|
|
21
21
|
__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dev Converters for liquidation data between contract and SDK formats
|
|
3
|
+
*/
|
|
4
|
+
import { IPairsStorage } from "../../contracts/types/generated/GNSMultiCollatDiamond";
|
|
5
|
+
import { LiquidationParams } from "../types";
|
|
6
|
+
/**
|
|
7
|
+
* @dev Converts contract liquidation params to SDK format
|
|
8
|
+
* @param params Group liquidation params from contract
|
|
9
|
+
* @returns Normalized liquidation params
|
|
10
|
+
*/
|
|
11
|
+
export declare const convertLiquidationParams: (params: IPairsStorage.GroupLiquidationParamsStructOutput) => LiquidationParams;
|
|
12
|
+
/**
|
|
13
|
+
* @dev Converts array of liquidation params from contract
|
|
14
|
+
* @param paramsArray Array of group liquidation params
|
|
15
|
+
* @returns Array of normalized liquidation params
|
|
16
|
+
*/
|
|
17
|
+
export declare const convertLiquidationParamsArray: (paramsArray: IPairsStorage.GroupLiquidationParamsStructOutput[]) => LiquidationParams[];
|
|
18
|
+
/**
|
|
19
|
+
* @dev Converts liquidation params to contract format (for encoding)
|
|
20
|
+
* @param params SDK liquidation params
|
|
21
|
+
* @returns Contract-formatted liquidation params
|
|
22
|
+
*/
|
|
23
|
+
export declare const encodeLiquidationParams: (params: LiquidationParams) => IPairsStorage.GroupLiquidationParamsStruct;
|