@gainsnetwork/sdk 0.0.0-v10.rc2 → 0.0.0-v10.rc4
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 +3 -0
- package/lib/backend/index.js +28 -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 +31 -0
- package/lib/backend/tradingVariables/converter.js +330 -0
- package/lib/backend/tradingVariables/index.d.ts +5 -0
- package/lib/backend/tradingVariables/index.js +95 -0
- package/lib/backend/tradingVariables/types.d.ts +109 -0
- package/lib/backend/tradingVariables/types.js +14 -0
- package/lib/constants.d.ts +10 -0
- package/lib/constants.js +11 -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/contracts/utils/pairs.js +10 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +5 -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/builder.d.ts +14 -0
- package/lib/trade/fees/borrowing/builder.js +33 -0
- package/lib/trade/fees/borrowing/index.d.ts +16 -4
- package/lib/trade/fees/borrowing/index.js +43 -18
- package/lib/trade/fees/borrowingV2/builder.d.ts +6 -0
- package/lib/trade/fees/borrowingV2/builder.js +24 -0
- package/lib/trade/fees/borrowingV2/converter.d.ts +12 -3
- package/lib/trade/fees/borrowingV2/converter.js +29 -18
- package/lib/{contracts/fetch/fees/borrowingFeesV2.d.ts → trade/fees/borrowingV2/fetcher.d.ts} +2 -3
- package/lib/{contracts/fetch/fees/borrowingFeesV2.js → trade/fees/borrowingV2/fetcher.js} +6 -14
- package/lib/trade/fees/borrowingV2/index.d.ts +6 -17
- package/lib/trade/fees/borrowingV2/index.js +10 -37
- package/lib/trade/fees/borrowingV2/types.d.ts +22 -6
- package/lib/trade/fees/converter.d.ts +48 -0
- package/lib/trade/fees/converter.js +110 -0
- package/lib/trade/fees/fundingFees/builder.d.ts +9 -0
- package/lib/trade/fees/fundingFees/builder.js +35 -0
- package/lib/{contracts/fetch/fees/fundingFees.d.ts → trade/fees/fundingFees/fetcher.d.ts} +2 -2
- package/lib/trade/fees/fundingFees/index.d.ts +13 -2
- package/lib/trade/fees/fundingFees/index.js +27 -3
- package/lib/trade/fees/fundingFees/pairContext.d.ts +33 -0
- package/lib/trade/fees/fundingFees/pairContext.js +17 -0
- package/lib/trade/fees/index.d.ts +3 -2
- package/lib/trade/fees/index.js +44 -36
- 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/builder.d.ts +18 -0
- package/lib/trade/fees/trading/builder.js +20 -0
- package/lib/trade/fees/trading/holdingFees.d.ts +28 -0
- package/lib/trade/fees/trading/holdingFees.js +66 -0
- package/lib/trade/fees/trading/holdingFeesStructured.d.ts +28 -0
- package/lib/trade/fees/trading/holdingFeesStructured.js +66 -0
- package/lib/trade/fees/trading/index.d.ts +30 -2
- package/lib/trade/fees/trading/index.js +52 -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/builder.d.ts +25 -0
- package/lib/trade/liquidation/builder.js +59 -0
- package/lib/trade/liquidation/converter.d.ts +23 -0
- package/lib/trade/liquidation/converter.js +46 -0
- package/lib/trade/liquidation/index.d.ts +26 -0
- package/lib/trade/liquidation/index.js +142 -0
- package/lib/trade/liquidation/types.d.ts +59 -0
- package/lib/trade/liquidation/types.js +2 -0
- package/lib/trade/pnl/builder.d.ts +16 -0
- package/lib/trade/pnl/builder.js +44 -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 +77 -0
- package/lib/trade/pnl/index.js +270 -0
- package/lib/trade/pnl/types.d.ts +114 -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 +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/{contracts/fetch/priceImpact/skew.d.ts → trade/priceImpact/skew/fetcher.d.ts} +2 -2
- package/lib/{contracts/fetch/priceImpact/skew.js → trade/priceImpact/skew/fetcher.js} +6 -6
- 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 +20 -8
- package/lib/trade/types.js +10 -0
- package/package.json +2 -2
- package/lib/trade/liquidation.d.ts +0 -42
- package/lib/trade/liquidation.js +0 -140
- package/lib/trade/pnl.d.ts +0 -10
- package/lib/trade/pnl.js +0 -38
- /package/lib/{contracts/fetch/fees/fundingFees.js → trade/fees/fundingFees/fetcher.js} +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @dev Converters for fee data between contract and SDK formats
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.encodeUiRealizedPnlData = exports.encodeTradeFeesData = exports.convertUiRealizedPnlDataArray = exports.convertUiRealizedPnlData = exports.convertTradeFeesDataArray = exports.convertTradeFeesData = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @dev Converts contract TradeFeesData to SDK format
|
|
9
|
+
* @param data Trade fees data from contract
|
|
10
|
+
* @param collateralConfig Config for the collateral (contains decimals)
|
|
11
|
+
* @returns Normalized trade fees data
|
|
12
|
+
*/
|
|
13
|
+
const convertTradeFeesData = (data, collateralConfig) => {
|
|
14
|
+
const decimals = collateralConfig.decimals || 18;
|
|
15
|
+
return {
|
|
16
|
+
realizedTradingFeesCollateral: parseFloat(data.realizedTradingFeesCollateral.toString()) /
|
|
17
|
+
Math.pow(10, decimals),
|
|
18
|
+
realizedPnlCollateral: parseFloat(data.realizedPnlCollateral.toString()) / Math.pow(10, decimals),
|
|
19
|
+
manuallyRealizedNegativePnlCollateral: parseFloat(data.manuallyRealizedNegativePnlCollateral.toString()) /
|
|
20
|
+
Math.pow(10, decimals),
|
|
21
|
+
alreadyTransferredNegativePnlCollateral: parseFloat(data.alreadyTransferredNegativePnlCollateral.toString()) /
|
|
22
|
+
Math.pow(10, decimals),
|
|
23
|
+
virtualAvailableCollateralInDiamond: parseFloat(data.virtualAvailableCollateralInDiamond.toString()) /
|
|
24
|
+
Math.pow(10, decimals),
|
|
25
|
+
initialAccFundingFeeP: parseFloat(data.initialAccFundingFeeP.toString()) / 1e10,
|
|
26
|
+
initialAccBorrowingFeeP: parseFloat(data.initialAccBorrowingFeeP.toString()) / 1e10,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
exports.convertTradeFeesData = convertTradeFeesData;
|
|
30
|
+
/**
|
|
31
|
+
* @dev Converts array of TradeFeesData from contract
|
|
32
|
+
* @param dataArray Array of trade fees data
|
|
33
|
+
* @param collateralConfig Config for the collateral
|
|
34
|
+
* @returns Array of normalized trade fees data
|
|
35
|
+
*/
|
|
36
|
+
const convertTradeFeesDataArray = (dataArray, collateralConfig) => {
|
|
37
|
+
return dataArray.map(data => (0, exports.convertTradeFeesData)(data, collateralConfig));
|
|
38
|
+
};
|
|
39
|
+
exports.convertTradeFeesDataArray = convertTradeFeesDataArray;
|
|
40
|
+
/**
|
|
41
|
+
* @dev Converts contract UiRealizedPnlData to SDK format
|
|
42
|
+
* @param data UI realized PnL data from contract
|
|
43
|
+
* @param collateralConfig Config for the collateral (contains decimals)
|
|
44
|
+
* @returns Normalized UI realized PnL data
|
|
45
|
+
*/
|
|
46
|
+
const convertUiRealizedPnlData = (data, collateralConfig) => {
|
|
47
|
+
const decimals = collateralConfig.decimals || 18;
|
|
48
|
+
return {
|
|
49
|
+
realizedTradingFeesCollateral: parseFloat(data.realizedTradingFeesCollateral.toString()) /
|
|
50
|
+
Math.pow(10, decimals),
|
|
51
|
+
realizedOldBorrowingFeesCollateral: parseFloat(data.realizedOldBorrowingFeesCollateral.toString()) /
|
|
52
|
+
Math.pow(10, decimals),
|
|
53
|
+
realizedNewBorrowingFeesCollateral: parseFloat(data.realizedNewBorrowingFeesCollateral.toString()) /
|
|
54
|
+
Math.pow(10, decimals),
|
|
55
|
+
realizedFundingFeesCollateral: parseFloat(data.realizedFundingFeesCollateral.toString()) /
|
|
56
|
+
Math.pow(10, decimals),
|
|
57
|
+
realizedPnlPartialCloseCollateral: parseFloat(data.realizedPnlPartialCloseCollateral.toString()) /
|
|
58
|
+
Math.pow(10, decimals),
|
|
59
|
+
pnlWithdrawnCollateral: parseFloat(data.pnlWithdrawnCollateral.toString()) / Math.pow(10, decimals),
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
exports.convertUiRealizedPnlData = convertUiRealizedPnlData;
|
|
63
|
+
/**
|
|
64
|
+
* @dev Converts array of UiRealizedPnlData from contract
|
|
65
|
+
* @param dataArray Array of UI realized PnL data
|
|
66
|
+
* @param collateralConfig Config for the collateral
|
|
67
|
+
* @returns Array of normalized UI realized PnL data
|
|
68
|
+
*/
|
|
69
|
+
const convertUiRealizedPnlDataArray = (dataArray, collateralConfig) => {
|
|
70
|
+
return dataArray.map(data => (0, exports.convertUiRealizedPnlData)(data, collateralConfig));
|
|
71
|
+
};
|
|
72
|
+
exports.convertUiRealizedPnlDataArray = convertUiRealizedPnlDataArray;
|
|
73
|
+
/**
|
|
74
|
+
* @dev Converts TradeFeesData to contract format (for encoding)
|
|
75
|
+
* @param data SDK trade fees data
|
|
76
|
+
* @param collateralConfig Config for the collateral
|
|
77
|
+
* @returns Contract-formatted trade fees data
|
|
78
|
+
*/
|
|
79
|
+
const encodeTradeFeesData = (data, collateralConfig) => {
|
|
80
|
+
const decimals = collateralConfig.decimals || 18;
|
|
81
|
+
return {
|
|
82
|
+
realizedTradingFeesCollateral: Math.round(data.realizedTradingFeesCollateral * Math.pow(10, decimals)),
|
|
83
|
+
realizedPnlCollateral: Math.round(data.realizedPnlCollateral * Math.pow(10, decimals)),
|
|
84
|
+
manuallyRealizedNegativePnlCollateral: Math.round(data.manuallyRealizedNegativePnlCollateral * Math.pow(10, decimals)),
|
|
85
|
+
alreadyTransferredNegativePnlCollateral: Math.round(data.alreadyTransferredNegativePnlCollateral * Math.pow(10, decimals)),
|
|
86
|
+
virtualAvailableCollateralInDiamond: Math.round(data.virtualAvailableCollateralInDiamond * Math.pow(10, decimals)),
|
|
87
|
+
__placeholder: 0,
|
|
88
|
+
initialAccFundingFeeP: Math.round(data.initialAccFundingFeeP * 1e10),
|
|
89
|
+
initialAccBorrowingFeeP: Math.round(data.initialAccBorrowingFeeP * 1e10),
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
exports.encodeTradeFeesData = encodeTradeFeesData;
|
|
93
|
+
/**
|
|
94
|
+
* @dev Converts UiRealizedPnlData to contract format (for encoding)
|
|
95
|
+
* @param data SDK UI realized PnL data
|
|
96
|
+
* @param collateralConfig Config for the collateral
|
|
97
|
+
* @returns Contract-formatted UI realized PnL data
|
|
98
|
+
*/
|
|
99
|
+
const encodeUiRealizedPnlData = (data, collateralConfig) => {
|
|
100
|
+
const decimals = collateralConfig.decimals || 18;
|
|
101
|
+
return {
|
|
102
|
+
realizedTradingFeesCollateral: Math.round(data.realizedTradingFeesCollateral * Math.pow(10, decimals)),
|
|
103
|
+
realizedOldBorrowingFeesCollateral: Math.round(data.realizedOldBorrowingFeesCollateral * Math.pow(10, decimals)),
|
|
104
|
+
realizedNewBorrowingFeesCollateral: Math.round(data.realizedNewBorrowingFeesCollateral * Math.pow(10, decimals)),
|
|
105
|
+
realizedFundingFeesCollateral: Math.round(data.realizedFundingFeesCollateral * Math.pow(10, decimals)),
|
|
106
|
+
realizedPnlPartialCloseCollateral: Math.round(data.realizedPnlPartialCloseCollateral * Math.pow(10, decimals)),
|
|
107
|
+
pnlWithdrawnCollateral: Math.round(data.pnlWithdrawnCollateral * Math.pow(10, decimals)),
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
exports.encodeUiRealizedPnlData = encodeUiRealizedPnlData;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dev Builder functions for funding fees context
|
|
3
|
+
*/
|
|
4
|
+
import { GlobalTradingVariablesType } from "../../../backend/tradingVariables/types";
|
|
5
|
+
import { GetPairFundingFeeContext } from "./pairContext";
|
|
6
|
+
/**
|
|
7
|
+
* @dev Builds funding fees sub-context for a specific pair
|
|
8
|
+
*/
|
|
9
|
+
export declare const buildFundingContext: (globalTradingVariables: GlobalTradingVariablesType, collateralIndex: number, pairIndex: number, currentTimestamp: number) => GetPairFundingFeeContext | undefined;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @dev Builder functions for funding fees context
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.buildFundingContext = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @dev Builds funding fees sub-context for a specific pair
|
|
9
|
+
*/
|
|
10
|
+
const buildFundingContext = (globalTradingVariables, collateralIndex, pairIndex, currentTimestamp) => {
|
|
11
|
+
var _a, _b, _c, _d, _e;
|
|
12
|
+
const collateral = globalTradingVariables.collaterals[collateralIndex - 1];
|
|
13
|
+
if (!(collateral === null || collateral === void 0 ? void 0 : collateral.pairFundingFees)) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const params = (_a = collateral.pairFundingFees.params) === null || _a === void 0 ? void 0 : _a[pairIndex];
|
|
17
|
+
const data = (_b = collateral.pairFundingFees.data) === null || _b === void 0 ? void 0 : _b[pairIndex];
|
|
18
|
+
const pairOi = (_c = collateral.pairOis) === null || _c === void 0 ? void 0 : _c[pairIndex];
|
|
19
|
+
if (!params || !data) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
params,
|
|
24
|
+
data,
|
|
25
|
+
pairOi: pairOi
|
|
26
|
+
? {
|
|
27
|
+
oiLongToken: ((_d = pairOi.token) === null || _d === void 0 ? void 0 : _d.long) || 0,
|
|
28
|
+
oiShortToken: ((_e = pairOi.token) === null || _e === void 0 ? void 0 : _e.short) || 0,
|
|
29
|
+
}
|
|
30
|
+
: undefined,
|
|
31
|
+
currentTimestamp,
|
|
32
|
+
// TODO: Add net exposure when available
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
exports.buildFundingContext = buildFundingContext;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { GNSMultiCollatDiamond } from "
|
|
2
|
-
import type { TradeInitialAccFees } from "
|
|
1
|
+
import type { GNSMultiCollatDiamond } from "../../../contracts/types/generated";
|
|
2
|
+
import type { TradeInitialAccFees } from ".";
|
|
3
3
|
/**
|
|
4
4
|
* @dev Fetches pending accumulated funding fees for a specific pair
|
|
5
5
|
* @param contract GNSMultiCollatDiamond contract instance
|
|
@@ -62,7 +62,7 @@ export declare const getPairPendingAccFundingFees: (params: FundingFeeParams, da
|
|
|
62
62
|
* @param tradeInfo Trade info (contracts version)
|
|
63
63
|
* @param tradeFeesData Trade fees data containing initial acc funding fee
|
|
64
64
|
* @param currentPairPrice Current pair price
|
|
65
|
-
* @param context Optional context with funding fee data (
|
|
65
|
+
* @param context Optional context with funding fee data (full or pair-specific)
|
|
66
66
|
* @returns Funding fee in collateral tokens
|
|
67
67
|
*/
|
|
68
68
|
export declare const getTradeFundingFeesCollateral: (trade: {
|
|
@@ -92,7 +92,14 @@ export declare const getTradeFundingFeesCollateral: (trade: {
|
|
|
92
92
|
[pairIndex: number]: number;
|
|
93
93
|
};
|
|
94
94
|
} | undefined;
|
|
95
|
-
}) |
|
|
95
|
+
}) | {
|
|
96
|
+
currentTimestamp: number;
|
|
97
|
+
params: FundingFeeParams;
|
|
98
|
+
data: PairFundingFeeData;
|
|
99
|
+
pairOi?: PairOiAfterV10 | undefined;
|
|
100
|
+
netExposureToken?: number | undefined;
|
|
101
|
+
netExposureUsd?: number | undefined;
|
|
102
|
+
} | undefined) => number;
|
|
96
103
|
/**
|
|
97
104
|
* @dev Main function to calculate funding fees for a trade within context
|
|
98
105
|
* @param context Funding fee context with params and data
|
|
@@ -133,3 +140,7 @@ export declare const getTradeFundingFeesCollateralSimple: (trade: {
|
|
|
133
140
|
}, initialAccFundingFeeP: number, currentAccFundingFeeP: number) => number;
|
|
134
141
|
export * as FundingFees from "./types";
|
|
135
142
|
export type { FundingFeeParams, PairFundingFeeData, PairGlobalParams, TradeInitialAccFundingFees, PairOiAfterV10, FundingRateCalculation, GetFundingFeeContext, TradeFundingFeeResult, PairPendingAccFundingFeesResult, PairAccumulatedFees, TradeInitialAccFees, } from "./types";
|
|
143
|
+
export type { GetPairFundingFeeContext } from "./pairContext";
|
|
144
|
+
export * from "./fetcher";
|
|
145
|
+
export * from "./pairContext";
|
|
146
|
+
export * from "./builder";
|
|
@@ -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
|
|
@@ -227,7 +230,7 @@ exports.getPairPendingAccFundingFees = getPairPendingAccFundingFees;
|
|
|
227
230
|
* @param tradeInfo Trade info (contracts version)
|
|
228
231
|
* @param tradeFeesData Trade fees data containing initial acc funding fee
|
|
229
232
|
* @param currentPairPrice Current pair price
|
|
230
|
-
* @param context Optional context with funding fee data (
|
|
233
|
+
* @param context Optional context with funding fee data (full or pair-specific)
|
|
231
234
|
* @returns Funding fee in collateral tokens
|
|
232
235
|
*/
|
|
233
236
|
const getTradeFundingFeesCollateral = (trade, tradeInfo, tradeFeesData, currentPairPrice, context) => {
|
|
@@ -237,8 +240,26 @@ const getTradeFundingFeesCollateral = (trade, tradeInfo, tradeFeesData, currentP
|
|
|
237
240
|
return 0;
|
|
238
241
|
}
|
|
239
242
|
const positionSizeCollateral = trade.collateralAmount * trade.leverage;
|
|
240
|
-
|
|
241
|
-
|
|
243
|
+
if (!context) {
|
|
244
|
+
return 0; // Cannot calculate without context
|
|
245
|
+
}
|
|
246
|
+
// Check if we have a pair-specific context
|
|
247
|
+
if ("params" in context && "data" in context) {
|
|
248
|
+
// Pair-specific context
|
|
249
|
+
const { params, data, pairOi, netExposureToken, netExposureUsd } = context;
|
|
250
|
+
if (!params.fundingFeesEnabled) {
|
|
251
|
+
return 0;
|
|
252
|
+
}
|
|
253
|
+
// Calculate pending accumulated fees
|
|
254
|
+
const { accFundingFeeLongP, accFundingFeeShortP } = (0, exports.getPairPendingAccFundingFees)(params, data, currentPairPrice, pairOi || { oiLongToken: 0, oiShortToken: 0 }, netExposureToken || 0, netExposureUsd || 0, context.currentTimestamp);
|
|
255
|
+
const currentAccFundingFeeP = trade.long
|
|
256
|
+
? accFundingFeeLongP
|
|
257
|
+
: accFundingFeeShortP;
|
|
258
|
+
const fundingFeeDelta = currentAccFundingFeeP - tradeFeesData.initialAccFundingFeeP;
|
|
259
|
+
return (positionSizeCollateral * fundingFeeDelta) / trade.openPrice;
|
|
260
|
+
}
|
|
261
|
+
// Full context - original logic
|
|
262
|
+
if ("fundingParams" in context &&
|
|
242
263
|
trade.collateralIndex !== undefined &&
|
|
243
264
|
trade.pairIndex !== undefined) {
|
|
244
265
|
const params = (_a = context.fundingParams[trade.collateralIndex]) === null || _a === void 0 ? void 0 : _a[trade.pairIndex];
|
|
@@ -320,3 +341,6 @@ const getTradeFundingFeesCollateralSimple = (trade, tradeInfo, initialAccFunding
|
|
|
320
341
|
exports.getTradeFundingFeesCollateralSimple = getTradeFundingFeesCollateralSimple;
|
|
321
342
|
// Export namespace for types
|
|
322
343
|
exports.FundingFees = __importStar(require("./types"));
|
|
344
|
+
__exportStar(require("./fetcher"), exports);
|
|
345
|
+
__exportStar(require("./pairContext"), exports);
|
|
346
|
+
__exportStar(require("./builder"), exports);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dev Pair-specific funding fee types and utilities
|
|
3
|
+
*/
|
|
4
|
+
import { FundingFeeParams, PairFundingFeeData, PairGlobalParams, PairOiAfterV10, PairPendingAccFundingFeesResult } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* @dev Context for pair-specific funding fee calculations
|
|
7
|
+
*/
|
|
8
|
+
export type GetPairFundingFeeContext = {
|
|
9
|
+
currentTimestamp: number;
|
|
10
|
+
params: FundingFeeParams;
|
|
11
|
+
data: PairFundingFeeData;
|
|
12
|
+
globalParams?: PairGlobalParams;
|
|
13
|
+
pairOi?: PairOiAfterV10;
|
|
14
|
+
netExposureToken?: number;
|
|
15
|
+
netExposureUsd?: number;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @dev Input for pair-specific trade funding fee calculation
|
|
19
|
+
*/
|
|
20
|
+
export type PairTradeFundingFeeInput = {
|
|
21
|
+
positionSizeCollateral: number;
|
|
22
|
+
openPrice: number;
|
|
23
|
+
long: boolean;
|
|
24
|
+
currentPairPrice: number;
|
|
25
|
+
initialAccFundingFeeP: number;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* @dev Calculate pending accumulated funding fees for a pair using pair-specific context
|
|
29
|
+
* @param currentPairPrice Current price of the pair
|
|
30
|
+
* @param context Pair-specific funding context
|
|
31
|
+
* @returns Pending accumulated funding fees
|
|
32
|
+
*/
|
|
33
|
+
export declare const getPairPendingAccFundingFees: (currentPairPrice: number, context: GetPairFundingFeeContext) => PairPendingAccFundingFeesResult;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @dev Pair-specific funding fee types and utilities
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getPairPendingAccFundingFees = void 0;
|
|
7
|
+
const index_1 = require("./index");
|
|
8
|
+
/**
|
|
9
|
+
* @dev Calculate pending accumulated funding fees for a pair using pair-specific context
|
|
10
|
+
* @param currentPairPrice Current price of the pair
|
|
11
|
+
* @param context Pair-specific funding context
|
|
12
|
+
* @returns Pending accumulated funding fees
|
|
13
|
+
*/
|
|
14
|
+
const getPairPendingAccFundingFees = (currentPairPrice, context) => {
|
|
15
|
+
return (0, index_1.getPairPendingAccFundingFees)(context.params, context.data, currentPairPrice, context.pairOi || { oiLongToken: 0, oiShortToken: 0 }, context.netExposureToken || 0, context.netExposureUsd || 0, context.currentTimestamp);
|
|
16
|
+
};
|
|
17
|
+
exports.getPairPendingAccFundingFees = getPairPendingAccFundingFees;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export * from "./borrowing";
|
|
2
2
|
export * from "./tiers";
|
|
3
3
|
export * from "./trading";
|
|
4
|
-
export {
|
|
4
|
+
export { convertTradeFeesData, convertTradeFeesDataArray, convertUiRealizedPnlData, convertUiRealizedPnlDataArray, encodeTradeFeesData, encodeUiRealizedPnlData, } from "./converter";
|
|
5
|
+
export { BorrowingFeeV2, borrowingFeeV2Utils, getPairPendingAccBorrowingFees as getPairPendingAccBorrowingFeesV2, getTradeBorrowingFeesCollateral as getTradeBorrowingFeesCollateralV2, 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,41 +14,49 @@ 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.fundingRateToAPR = 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.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 = 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; } });
|
|
24
33
|
Object.defineProperty(exports, "borrowingFeeV2Utils", { enumerable: true, get: function () { return borrowingV2_1.borrowingFeeV2Utils; } });
|
|
25
34
|
Object.defineProperty(exports, "getPairPendingAccBorrowingFeesV2", { enumerable: true, get: function () { return borrowingV2_1.getPairPendingAccBorrowingFees; } });
|
|
26
35
|
Object.defineProperty(exports, "getTradeBorrowingFeesCollateralV2", { enumerable: true, get: function () { return borrowingV2_1.getTradeBorrowingFeesCollateral; } });
|
|
27
|
-
Object.defineProperty(exports, "getBorrowingFeeV2", { enumerable: true, get: function () { return borrowingV2_1.getBorrowingFee; } });
|
|
28
36
|
Object.defineProperty(exports, "getPairBorrowingFeesV2", { enumerable: true, get: function () { return borrowingV2_1.getPairBorrowingFees; } });
|
|
29
37
|
Object.defineProperty(exports, "MAX_BORROWING_RATE_PER_SECOND_V2", { enumerable: true, get: function () { return borrowingV2_1.MAX_BORROWING_RATE_PER_SECOND; } });
|
|
30
38
|
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
|
|
39
|
+
var converter_2 = require("./borrowingV2/converter");
|
|
40
|
+
Object.defineProperty(exports, "convertBorrowingFeeParamsV2", { enumerable: true, get: function () { return converter_2.convertBorrowingFeeParams; } });
|
|
41
|
+
Object.defineProperty(exports, "convertBorrowingFeeParamsArrayV2", { enumerable: true, get: function () { return converter_2.convertBorrowingFeeParamsArray; } });
|
|
42
|
+
Object.defineProperty(exports, "convertPairBorrowingFeeDataV2", { enumerable: true, get: function () { return converter_2.convertPairBorrowingFeeData; } });
|
|
43
|
+
Object.defineProperty(exports, "convertPairBorrowingFeeDataArrayV2", { enumerable: true, get: function () { return converter_2.convertPairBorrowingFeeDataArray; } });
|
|
44
|
+
Object.defineProperty(exports, "convertTradeInitialAccFeesV2", { enumerable: true, get: function () { return converter_2.convertTradeInitialAccFees; } });
|
|
45
|
+
Object.defineProperty(exports, "convertTradeInitialAccFeesArrayV2", { enumerable: true, get: function () { return converter_2.convertTradeInitialAccFeesArray; } });
|
|
46
|
+
Object.defineProperty(exports, "createBorrowingV2Context", { enumerable: true, get: function () { return converter_2.createBorrowingV2Context; } });
|
|
47
|
+
Object.defineProperty(exports, "isValidBorrowingRateV2", { enumerable: true, get: function () { return converter_2.isValidBorrowingRate; } });
|
|
48
|
+
Object.defineProperty(exports, "borrowingRateToAPRV2", { enumerable: true, get: function () { return converter_2.borrowingRateToAPR; } });
|
|
49
|
+
Object.defineProperty(exports, "aprToBorrowingRateV2", { enumerable: true, get: function () { return converter_2.aprToBorrowingRate; } });
|
|
42
50
|
// 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
|
|
51
|
+
var fetcher_1 = require("./borrowingV2/fetcher");
|
|
52
|
+
Object.defineProperty(exports, "fetchBorrowingFeeParamsV2", { enumerable: true, get: function () { return fetcher_1.fetchBorrowingFeeParamsV2; } });
|
|
53
|
+
Object.defineProperty(exports, "fetchPairBorrowingFeeDataV2", { enumerable: true, get: function () { return fetcher_1.fetchPairBorrowingFeeDataV2; } });
|
|
54
|
+
Object.defineProperty(exports, "fetchTradeBorrowingFeesCollateralV2", { enumerable: true, get: function () { return fetcher_1.fetchTradeBorrowingFeesCollateralV2; } });
|
|
55
|
+
Object.defineProperty(exports, "fetchPairPendingAccBorrowingFeesV2", { enumerable: true, get: function () { return fetcher_1.fetchPairPendingAccBorrowingFeesV2; } });
|
|
56
|
+
Object.defineProperty(exports, "fetchAllBorrowingV2Data", { enumerable: true, get: function () { return fetcher_1.fetchAllBorrowingV2Data; } });
|
|
57
|
+
Object.defineProperty(exports, "createBorrowingV2ContextFromContract", { enumerable: true, get: function () { return fetcher_1.createBorrowingV2ContextFromContract; } });
|
|
58
|
+
Object.defineProperty(exports, "createBorrowingV2ContextFromArrays", { enumerable: true, get: function () { return fetcher_1.createBorrowingV2ContextFromArrays; } });
|
|
59
|
+
Object.defineProperty(exports, "fetchBorrowingV2DataForPairs", { enumerable: true, get: function () { return fetcher_1.fetchBorrowingV2DataForPairs; } });
|
|
52
60
|
// Funding Fees exports
|
|
53
61
|
var fundingFees_1 = require("./fundingFees");
|
|
54
62
|
Object.defineProperty(exports, "FundingFees", { enumerable: true, get: function () { return fundingFees_1.FundingFees; } });
|
|
@@ -60,17 +68,17 @@ Object.defineProperty(exports, "getPairPendingAccFundingFees", { enumerable: tru
|
|
|
60
68
|
Object.defineProperty(exports, "getTradeFundingFeesCollateral", { enumerable: true, get: function () { return fundingFees_1.getTradeFundingFeesCollateral; } });
|
|
61
69
|
Object.defineProperty(exports, "getTradeFundingFeesCollateralSimple", { enumerable: true, get: function () { return fundingFees_1.getTradeFundingFeesCollateralSimple; } });
|
|
62
70
|
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
|
|
71
|
+
var converter_3 = require("./fundingFees/converter");
|
|
72
|
+
Object.defineProperty(exports, "convertFundingFeeParams", { enumerable: true, get: function () { return converter_3.convertFundingFeeParams; } });
|
|
73
|
+
Object.defineProperty(exports, "convertFundingFeeParamsArray", { enumerable: true, get: function () { return converter_3.convertFundingFeeParamsArray; } });
|
|
74
|
+
Object.defineProperty(exports, "convertPairFundingFeeData", { enumerable: true, get: function () { return converter_3.convertPairFundingFeeData; } });
|
|
75
|
+
Object.defineProperty(exports, "convertPairFundingFeeDataArray", { enumerable: true, get: function () { return converter_3.convertPairFundingFeeDataArray; } });
|
|
76
|
+
Object.defineProperty(exports, "convertPairGlobalParams", { enumerable: true, get: function () { return converter_3.convertPairGlobalParams; } });
|
|
77
|
+
Object.defineProperty(exports, "convertPairGlobalParamsArray", { enumerable: true, get: function () { return converter_3.convertPairGlobalParamsArray; } });
|
|
78
|
+
Object.defineProperty(exports, "convertTradeInitialAccFundingFees", { enumerable: true, get: function () { return converter_3.convertTradeInitialAccFundingFees; } });
|
|
79
|
+
Object.defineProperty(exports, "createFundingFeeContext", { enumerable: true, get: function () { return converter_3.createFundingFeeContext; } });
|
|
80
|
+
Object.defineProperty(exports, "isValidFundingRate", { enumerable: true, get: function () { return converter_3.isValidFundingRate; } });
|
|
81
|
+
Object.defineProperty(exports, "fundingRateToAPR", { enumerable: true, get: function () { return converter_3.fundingRateToAPR; } });
|
|
82
|
+
Object.defineProperty(exports, "aprToFundingRate", { enumerable: true, get: function () { return converter_3.aprToFundingRate; } });
|
|
83
|
+
Object.defineProperty(exports, "calculateVelocityFromSkew", { enumerable: true, get: function () { return converter_3.calculateVelocityFromSkew; } });
|
|
84
|
+
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;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dev Trading fees context builder module
|
|
3
|
+
* @dev Provides builder functions for creating trading fee contexts
|
|
4
|
+
*/
|
|
5
|
+
import { Fee, GlobalTradeFeeParams } from "../../types";
|
|
6
|
+
import { GlobalTradingVariablesType } from "src/backend/tradingVariables/types";
|
|
7
|
+
/**
|
|
8
|
+
* @dev Sub-context for trading fees
|
|
9
|
+
*/
|
|
10
|
+
export type TradingFeesSubContext = {
|
|
11
|
+
fee: Fee;
|
|
12
|
+
globalTradeFeeParams: GlobalTradeFeeParams;
|
|
13
|
+
traderFeeMultiplier?: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @dev Builds trading fees sub-context
|
|
17
|
+
*/
|
|
18
|
+
export declare const buildTradingFeesContext: (globalTradingVariables: GlobalTradingVariablesType, pairIndex: number, traderFeeMultiplier?: number) => TradingFeesSubContext;
|