@gainsnetwork/sdk 0.2.69 → 0.2.70-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/lib/constants.d.ts +13 -0
  2. package/lib/constants.js +16 -2
  3. package/lib/contracts/utils/pairs.js +13 -0
  4. package/lib/trade/types.d.ts +14 -1
  5. package/lib/trade/types.js +13 -0
  6. package/package.json +1 -1
  7. package/lib/contracts/fetch/fees/borrowingFeesV2.d.ts +0 -76
  8. package/lib/contracts/fetch/fees/borrowingFeesV2.js +0 -193
  9. package/lib/contracts/fetch/fees/fundingFees.d.ts +0 -66
  10. package/lib/contracts/fetch/fees/fundingFees.js +0 -150
  11. package/lib/contracts/fetch/priceImpact/skew.d.ts +0 -63
  12. package/lib/contracts/fetch/priceImpact/skew.js +0 -168
  13. package/lib/trade/fees/borrowingV2/converter.d.ts +0 -66
  14. package/lib/trade/fees/borrowingV2/converter.js +0 -121
  15. package/lib/trade/fees/borrowingV2/index.d.ts +0 -59
  16. package/lib/trade/fees/borrowingV2/index.js +0 -139
  17. package/lib/trade/fees/borrowingV2/types.d.ts +0 -79
  18. package/lib/trade/fees/borrowingV2/types.js +0 -5
  19. package/lib/trade/fees/fundingFees/converter.d.ts +0 -102
  20. package/lib/trade/fees/fundingFees/converter.js +0 -196
  21. package/lib/trade/fees/fundingFees/index.d.ts +0 -135
  22. package/lib/trade/fees/fundingFees/index.js +0 -322
  23. package/lib/trade/fees/fundingFees/types.d.ts +0 -77
  24. package/lib/trade/fees/fundingFees/types.js +0 -5
  25. package/lib/trade/fees/trading/converter.d.ts +0 -30
  26. package/lib/trade/fees/trading/converter.js +0 -43
  27. package/lib/trade/fees/trading/index.d.ts +0 -34
  28. package/lib/trade/fees/trading/index.js +0 -104
  29. package/lib/trade/fees/trading/types.d.ts +0 -39
  30. package/lib/trade/fees/trading/types.js +0 -5
  31. package/lib/trade/priceImpact/index.d.ts +0 -8
  32. package/lib/trade/priceImpact/index.js +0 -32
  33. package/lib/trade/priceImpact/skew/converter.d.ts +0 -77
  34. package/lib/trade/priceImpact/skew/converter.js +0 -171
  35. package/lib/trade/priceImpact/skew/index.d.ts +0 -57
  36. package/lib/trade/priceImpact/skew/index.js +0 -175
  37. package/lib/trade/priceImpact/skew/types.d.ts +0 -55
  38. package/lib/trade/priceImpact/skew/types.js +0 -5
  39. package/lib/trade/utils.d.ts +0 -18
  40. package/lib/trade/utils.js +0 -30
@@ -1,79 +0,0 @@
1
- /**
2
- * @dev Types for borrowing v2 fees system (simplified rate-based model)
3
- */
4
- /**
5
- * @dev Borrowing fee parameters for a specific pair/collateral combination
6
- */
7
- export type BorrowingFeeParams = {
8
- /**
9
- * @dev Borrowing rate % per second
10
- * @dev Raw contract value divided by 1e10
11
- * @dev Max: ~0.0000317097 => 1,000% APR
12
- */
13
- borrowingRatePerSecondP: number;
14
- };
15
- /**
16
- * @dev Accumulated borrowing fee data for a specific pair/collateral combination
17
- */
18
- export type PairBorrowingFeeData = {
19
- /**
20
- * @dev Accumulated borrowing fees % weighted by pair price
21
- * @dev Unit: fee collateral per 100 units of OI in pair amount
22
- */
23
- accBorrowingFeeP: number;
24
- /**
25
- * @dev Timestamp of last accumulated borrowing fees update
26
- */
27
- lastBorrowingUpdateTs: number;
28
- };
29
- /**
30
- * @dev Trade-specific borrowing fee data stored when position is opened
31
- */
32
- export type TradeInitialAccFees = {
33
- /**
34
- * @dev Initial accumulated borrowing fee when trade was opened (normalized float)
35
- * @dev Raw contract value divided by 1e20
36
- * @dev Used to calculate how much borrowing fees the trade owes
37
- */
38
- initialAccBorrowingFeeP: number;
39
- };
40
- /**
41
- * @dev Context required for borrowing v2 fee calculations
42
- */
43
- export type GetBorrowingFeeV2Context = {
44
- /**
45
- * @dev Current timestamp (defaults to Date.now() / 1000)
46
- */
47
- currentTimestamp?: number;
48
- /**
49
- * @dev Borrowing fee parameters for pairs
50
- * @dev Indexed by: params[collateralIndex][pairIndex]
51
- */
52
- borrowingParams: Record<number, Record<number, BorrowingFeeParams>>;
53
- /**
54
- * @dev Borrowing fee data for pairs
55
- * @dev Indexed by: data[collateralIndex][pairIndex]
56
- */
57
- borrowingData: Record<number, Record<number, PairBorrowingFeeData>>;
58
- };
59
- /**
60
- * @dev Input for calculating pending borrowing fees for a pair
61
- */
62
- export type PairBorrowingFeeInput = {
63
- collateralIndex: number;
64
- pairIndex: number;
65
- currentPairPrice: number;
66
- currentTimestamp?: number;
67
- };
68
- /**
69
- * @dev Input for calculating borrowing fees for a specific trade
70
- */
71
- export type TradeBorrowingFeeInput = {
72
- positionSizeCollateral: number;
73
- openPrice: number;
74
- collateralIndex: number;
75
- pairIndex: number;
76
- currentPairPrice: number;
77
- initialAccBorrowingFeeP: number;
78
- currentTimestamp?: number;
79
- };
@@ -1,5 +0,0 @@
1
- "use strict";
2
- /**
3
- * @dev Types for borrowing v2 fees system (simplified rate-based model)
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,102 +0,0 @@
1
- /**
2
- * @dev Converters for funding fees data between contract and SDK formats
3
- * @dev All BigNumber values are normalized to floats with appropriate precision
4
- */
5
- import { IFundingFees } from "../../../contracts/types/generated/GNSMultiCollatDiamond";
6
- import { FundingFeeParams, PairFundingFeeData, PairGlobalParams, TradeInitialAccFundingFees, GetFundingFeeContext } from "./types";
7
- export declare const FUNDING_FEES_PRECISION: {
8
- SKEW_COEFFICIENT_PER_YEAR: number;
9
- ABSOLUTE_VELOCITY_PER_YEAR_CAP: number;
10
- ABSOLUTE_RATE_PER_SECOND_CAP: number;
11
- ACC_FUNDING_FEE_P: number;
12
- FUNDING_RATE_PER_SECOND_P: number;
13
- };
14
- /**
15
- * @dev Converts contract funding fee params to SDK format
16
- * @param contractParams Contract funding fee params struct
17
- * @returns Normalized funding fee params
18
- */
19
- export declare const convertFundingFeeParams: (contractParams: IFundingFees.FundingFeeParamsStruct) => FundingFeeParams;
20
- /**
21
- * @dev Converts array of contract funding fee params to SDK format
22
- * @param contractParamsArray Array of contract funding fee params
23
- * @returns Array of normalized funding fee params
24
- */
25
- export declare const convertFundingFeeParamsArray: (contractParamsArray: IFundingFees.FundingFeeParamsStruct[]) => FundingFeeParams[];
26
- /**
27
- * @dev Converts contract pair funding fee data to SDK format
28
- * @param contractData Contract pair funding fee data struct
29
- * @returns Normalized pair funding fee data
30
- */
31
- export declare const convertPairFundingFeeData: (contractData: IFundingFees.PairFundingFeeDataStruct) => PairFundingFeeData;
32
- /**
33
- * @dev Converts array of contract pair funding fee data to SDK format
34
- * @param contractDataArray Array of contract pair funding fee data
35
- * @returns Array of normalized pair funding fee data
36
- */
37
- export declare const convertPairFundingFeeDataArray: (contractDataArray: IFundingFees.PairFundingFeeDataStruct[]) => PairFundingFeeData[];
38
- /**
39
- * @dev Converts contract pair global params to SDK format
40
- * @param contractParams Contract pair global params struct
41
- * @returns Normalized pair global params
42
- */
43
- export declare const convertPairGlobalParams: (contractParams: IFundingFees.PairGlobalParamsStruct) => PairGlobalParams;
44
- /**
45
- * @dev Converts array of contract pair global params to SDK format
46
- * @param contractParamsArray Array of contract pair global params
47
- * @returns Array of normalized pair global params
48
- */
49
- export declare const convertPairGlobalParamsArray: (contractParamsArray: IFundingFees.PairGlobalParamsStruct[]) => PairGlobalParams[];
50
- /**
51
- * @dev Converts contract trade initial acc funding fees to SDK format
52
- * @param contractFees Contract trade fees data (only funding fee part)
53
- * @returns Normalized trade initial acc funding fees
54
- */
55
- export declare const convertTradeInitialAccFundingFees: (contractFees: {
56
- initialAccFundingFeeP: bigint | number | string;
57
- }) => TradeInitialAccFundingFees;
58
- /**
59
- * @dev Creates a funding fee context from arrays of data
60
- * @param collateralIndices Array of collateral indices
61
- * @param pairIndices Array of pair indices
62
- * @param params Array of funding fee parameters
63
- * @param data Array of pair funding fee data
64
- * @param globalParams Optional array of global parameters
65
- * @param currentTimestamp Optional current timestamp
66
- * @returns Complete funding fee context
67
- */
68
- export declare const createFundingFeeContext: (collateralIndices: number[], pairIndices: number[], params: FundingFeeParams[], data: PairFundingFeeData[], globalParams?: PairGlobalParams[], currentTimestamp?: number) => GetFundingFeeContext;
69
- /**
70
- * @dev Validates funding rate is within allowed bounds
71
- * @param absoluteRatePerSecondCap Rate cap (normalized)
72
- * @returns Whether the rate is valid
73
- */
74
- export declare const isValidFundingRate: (absoluteRatePerSecondCap: number) => boolean;
75
- /**
76
- * @dev Converts funding rate per second to APR
77
- * @param ratePerSecondP Funding rate per second (normalized)
78
- * @returns APR as percentage
79
- */
80
- export declare const fundingRateToAPR: (ratePerSecondP: number) => number;
81
- /**
82
- * @dev Converts APR to funding rate per second
83
- * @param apr APR as percentage
84
- * @returns Funding rate per second (normalized)
85
- */
86
- export declare const aprToFundingRate: (apr: number) => number;
87
- /**
88
- * @dev Calculates velocity per year from skew coefficient
89
- * @param skewRatio Current skew ratio (net exposure / total OI)
90
- * @param skewCoefficientPerYear Skew coefficient per year (normalized)
91
- * @returns Velocity per year
92
- */
93
- export declare const calculateVelocityFromSkew: (skewRatio: number, skewCoefficientPerYear: number) => number;
94
- /**
95
- * @dev Creates a GetFundingFeeContext from arrays (alias for consistency)
96
- * @param collateralIndices Array of collateral indices
97
- * @param pairIndices Array of pair indices
98
- * @param params Array of funding fee parameters
99
- * @param data Array of pair funding fee data
100
- * @returns Complete funding fee context
101
- */
102
- export declare const createGetFundingFeeContext: (collateralIndices: number[], pairIndices: number[], params: FundingFeeParams[], data: PairFundingFeeData[]) => GetFundingFeeContext;
@@ -1,196 +0,0 @@
1
- "use strict";
2
- /**
3
- * @dev Converters for funding fees 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.createGetFundingFeeContext = exports.calculateVelocityFromSkew = exports.aprToFundingRate = exports.fundingRateToAPR = exports.isValidFundingRate = exports.createFundingFeeContext = exports.convertTradeInitialAccFundingFees = exports.convertPairGlobalParamsArray = exports.convertPairGlobalParams = exports.convertPairFundingFeeDataArray = exports.convertPairFundingFeeData = exports.convertFundingFeeParamsArray = exports.convertFundingFeeParams = exports.FUNDING_FEES_PRECISION = void 0;
8
- // Precision constants from contract
9
- exports.FUNDING_FEES_PRECISION = {
10
- SKEW_COEFFICIENT_PER_YEAR: 1e26,
11
- ABSOLUTE_VELOCITY_PER_YEAR_CAP: 1e7,
12
- ABSOLUTE_RATE_PER_SECOND_CAP: 1e10,
13
- ACC_FUNDING_FEE_P: 1e20,
14
- FUNDING_RATE_PER_SECOND_P: 1e18, // Funding rate per second precision
15
- };
16
- /**
17
- * @dev Converts contract funding fee params to SDK format
18
- * @param contractParams Contract funding fee params struct
19
- * @returns Normalized funding fee params
20
- */
21
- const convertFundingFeeParams = (contractParams) => {
22
- return {
23
- skewCoefficientPerYear: Number(contractParams.skewCoefficientPerYear) /
24
- exports.FUNDING_FEES_PRECISION.SKEW_COEFFICIENT_PER_YEAR,
25
- absoluteVelocityPerYearCap: Number(contractParams.absoluteVelocityPerYearCap) /
26
- exports.FUNDING_FEES_PRECISION.ABSOLUTE_VELOCITY_PER_YEAR_CAP,
27
- absoluteRatePerSecondCap: Number(contractParams.absoluteRatePerSecondCap) /
28
- exports.FUNDING_FEES_PRECISION.ABSOLUTE_RATE_PER_SECOND_CAP,
29
- thetaThresholdUsd: Number(contractParams.thetaThresholdUsd),
30
- fundingFeesEnabled: Boolean(contractParams.fundingFeesEnabled),
31
- aprMultiplierEnabled: Boolean(contractParams.aprMultiplierEnabled),
32
- };
33
- };
34
- exports.convertFundingFeeParams = convertFundingFeeParams;
35
- /**
36
- * @dev Converts array of contract funding fee params to SDK format
37
- * @param contractParamsArray Array of contract funding fee params
38
- * @returns Array of normalized funding fee params
39
- */
40
- const convertFundingFeeParamsArray = (contractParamsArray) => {
41
- return contractParamsArray.map(exports.convertFundingFeeParams);
42
- };
43
- exports.convertFundingFeeParamsArray = convertFundingFeeParamsArray;
44
- /**
45
- * @dev Converts contract pair funding fee data to SDK format
46
- * @param contractData Contract pair funding fee data struct
47
- * @returns Normalized pair funding fee data
48
- */
49
- const convertPairFundingFeeData = (contractData) => {
50
- return {
51
- accFundingFeeLongP: Number(contractData.accFundingFeeLongP) /
52
- exports.FUNDING_FEES_PRECISION.ACC_FUNDING_FEE_P,
53
- accFundingFeeShortP: Number(contractData.accFundingFeeShortP) /
54
- exports.FUNDING_FEES_PRECISION.ACC_FUNDING_FEE_P,
55
- lastFundingRatePerSecondP: Number(contractData.lastFundingRatePerSecondP) /
56
- exports.FUNDING_FEES_PRECISION.FUNDING_RATE_PER_SECOND_P,
57
- lastFundingUpdateTs: Number(contractData.lastFundingUpdateTs),
58
- };
59
- };
60
- exports.convertPairFundingFeeData = convertPairFundingFeeData;
61
- /**
62
- * @dev Converts array of contract pair funding fee data to SDK format
63
- * @param contractDataArray Array of contract pair funding fee data
64
- * @returns Array of normalized pair funding fee data
65
- */
66
- const convertPairFundingFeeDataArray = (contractDataArray) => {
67
- return contractDataArray.map(exports.convertPairFundingFeeData);
68
- };
69
- exports.convertPairFundingFeeDataArray = convertPairFundingFeeDataArray;
70
- /**
71
- * @dev Converts contract pair global params to SDK format
72
- * @param contractParams Contract pair global params struct
73
- * @returns Normalized pair global params
74
- */
75
- const convertPairGlobalParams = (contractParams) => {
76
- return {
77
- maxSkewCollateral: Number(contractParams.maxSkewCollateral),
78
- };
79
- };
80
- exports.convertPairGlobalParams = convertPairGlobalParams;
81
- /**
82
- * @dev Converts array of contract pair global params to SDK format
83
- * @param contractParamsArray Array of contract pair global params
84
- * @returns Array of normalized pair global params
85
- */
86
- const convertPairGlobalParamsArray = (contractParamsArray) => {
87
- return contractParamsArray.map(exports.convertPairGlobalParams);
88
- };
89
- exports.convertPairGlobalParamsArray = convertPairGlobalParamsArray;
90
- /**
91
- * @dev Converts contract trade initial acc funding fees to SDK format
92
- * @param contractFees Contract trade fees data (only funding fee part)
93
- * @returns Normalized trade initial acc funding fees
94
- */
95
- const convertTradeInitialAccFundingFees = (contractFees) => {
96
- return {
97
- initialAccFundingFeeP: Number(contractFees.initialAccFundingFeeP) /
98
- exports.FUNDING_FEES_PRECISION.ACC_FUNDING_FEE_P,
99
- };
100
- };
101
- exports.convertTradeInitialAccFundingFees = convertTradeInitialAccFundingFees;
102
- /**
103
- * @dev Creates a funding fee context from arrays of data
104
- * @param collateralIndices Array of collateral indices
105
- * @param pairIndices Array of pair indices
106
- * @param params Array of funding fee parameters
107
- * @param data Array of pair funding fee data
108
- * @param globalParams Optional array of global parameters
109
- * @param currentTimestamp Optional current timestamp
110
- * @returns Complete funding fee context
111
- */
112
- const createFundingFeeContext = (collateralIndices, pairIndices, params, data, globalParams, currentTimestamp) => {
113
- const context = {
114
- currentTimestamp: currentTimestamp !== null && currentTimestamp !== void 0 ? currentTimestamp : Math.floor(Date.now() / 1000),
115
- fundingParams: {},
116
- fundingData: {},
117
- globalParams: globalParams ? {} : undefined,
118
- };
119
- // Build nested objects indexed by collateralIndex and pairIndex
120
- for (let i = 0; i < collateralIndices.length; i++) {
121
- const collateralIndex = collateralIndices[i];
122
- const pairIndex = pairIndices[i];
123
- // Initialize collateral index objects if they don't exist
124
- if (!context.fundingParams[collateralIndex]) {
125
- context.fundingParams[collateralIndex] = {};
126
- }
127
- if (!context.fundingData[collateralIndex]) {
128
- context.fundingData[collateralIndex] = {};
129
- }
130
- if (globalParams && context.globalParams) {
131
- if (!context.globalParams[collateralIndex]) {
132
- context.globalParams[collateralIndex] = {};
133
- }
134
- }
135
- // Store data
136
- context.fundingParams[collateralIndex][pairIndex] = params[i];
137
- context.fundingData[collateralIndex][pairIndex] = data[i];
138
- if (globalParams && context.globalParams) {
139
- context.globalParams[collateralIndex][pairIndex] = globalParams[i];
140
- }
141
- }
142
- return context;
143
- };
144
- exports.createFundingFeeContext = createFundingFeeContext;
145
- /**
146
- * @dev Validates funding rate is within allowed bounds
147
- * @param absoluteRatePerSecondCap Rate cap (normalized)
148
- * @returns Whether the rate is valid
149
- */
150
- const isValidFundingRate = (absoluteRatePerSecondCap) => {
151
- // Convert back to contract precision for validation
152
- const contractValue = absoluteRatePerSecondCap *
153
- exports.FUNDING_FEES_PRECISION.ABSOLUTE_RATE_PER_SECOND_CAP;
154
- return contractValue <= 3170979; // MAX_FUNDING_RATE_PER_SECOND from contract
155
- };
156
- exports.isValidFundingRate = isValidFundingRate;
157
- /**
158
- * @dev Converts funding rate per second to APR
159
- * @param ratePerSecondP Funding rate per second (normalized)
160
- * @returns APR as percentage
161
- */
162
- const fundingRateToAPR = (ratePerSecondP) => {
163
- return ratePerSecondP * 365 * 24 * 60 * 60 * 100;
164
- };
165
- exports.fundingRateToAPR = fundingRateToAPR;
166
- /**
167
- * @dev Converts APR to funding rate per second
168
- * @param apr APR as percentage
169
- * @returns Funding rate per second (normalized)
170
- */
171
- const aprToFundingRate = (apr) => {
172
- return apr / (365 * 24 * 60 * 60 * 100);
173
- };
174
- exports.aprToFundingRate = aprToFundingRate;
175
- /**
176
- * @dev Calculates velocity per year from skew coefficient
177
- * @param skewRatio Current skew ratio (net exposure / total OI)
178
- * @param skewCoefficientPerYear Skew coefficient per year (normalized)
179
- * @returns Velocity per year
180
- */
181
- const calculateVelocityFromSkew = (skewRatio, skewCoefficientPerYear) => {
182
- return Math.abs(skewRatio) * skewCoefficientPerYear;
183
- };
184
- exports.calculateVelocityFromSkew = calculateVelocityFromSkew;
185
- /**
186
- * @dev Creates a GetFundingFeeContext from arrays (alias for consistency)
187
- * @param collateralIndices Array of collateral indices
188
- * @param pairIndices Array of pair indices
189
- * @param params Array of funding fee parameters
190
- * @param data Array of pair funding fee data
191
- * @returns Complete funding fee context
192
- */
193
- const createGetFundingFeeContext = (collateralIndices, pairIndices, params, data) => {
194
- return (0, exports.createFundingFeeContext)(collateralIndices, pairIndices, params, data);
195
- };
196
- exports.createGetFundingFeeContext = createGetFundingFeeContext;
@@ -1,135 +0,0 @@
1
- /**
2
- * @dev Funding fees calculations for v10+ trades
3
- * @dev Based on skew-based funding rate model with velocity and APR multipliers
4
- */
5
- import { FundingFeeParams, PairFundingFeeData, GetFundingFeeContext, TradeFundingFeeResult, PairPendingAccFundingFeesResult, PairOiAfterV10 } from "./types";
6
- /**
7
- * @dev Calculates current funding velocity per year based on skew
8
- * @param netExposureToken Net exposure (long - short) in tokens
9
- * @param netExposureUsd Net exposure in USD
10
- * @param skewCoefficientPerYear Skew coefficient per year from params
11
- * @param absoluteVelocityPerYearCap Cap on velocity per year
12
- * @param thetaThresholdUsd Minimum exposure USD to start charging funding fees
13
- * @returns Current yearly funding velocity
14
- */
15
- export declare const getCurrentFundingVelocityPerYear: (netExposureToken: number, netExposureUsd: number, skewCoefficientPerYear: number, absoluteVelocityPerYearCap: number, thetaThresholdUsd: number) => number;
16
- /**
17
- * @dev Calculates seconds until funding rate reaches zero
18
- * @param lastFundingRatePerSecondP Last funding rate per second
19
- * @param currentVelocityPerYear Current velocity per year
20
- * @returns Seconds until rate reaches zero
21
- */
22
- export declare const getSecondsToReachZeroRate: (lastFundingRatePerSecondP: number, currentVelocityPerYear: number) => number;
23
- /**
24
- * @dev Calculates average and current funding rate per second
25
- * @param lastFundingRatePerSecondP Last funding rate per second
26
- * @param absoluteRatePerSecondCap Absolute cap on funding rate per second
27
- * @param currentVelocityPerYear Current velocity per year
28
- * @param secondsSinceLastUpdate Seconds elapsed since last update
29
- * @returns Average and current funding rate per second
30
- */
31
- export declare const getAvgFundingRatePerSecondP: (lastFundingRatePerSecondP: number, absoluteRatePerSecondCap: number, currentVelocityPerYear: number, secondsSinceLastUpdate: number) => {
32
- avgFundingRatePerSecondP: number;
33
- currentFundingRatePerSecondP: number;
34
- };
35
- /**
36
- * @dev Calculates APR multipliers for long and short sides based on OI ratio
37
- * @param avgFundingRatePerSecondP Average funding rate per second
38
- * @param pairOiLongToken Long OI in tokens
39
- * @param pairOiShortToken Short OI in tokens
40
- * @param aprMultiplierEnabled Whether APR multiplier is enabled
41
- * @returns Long and short APR multipliers
42
- */
43
- export declare const getLongShortAprMultiplier: (avgFundingRatePerSecondP: number, pairOiLongToken: number, pairOiShortToken: number, aprMultiplierEnabled: boolean) => {
44
- longAprMultiplier: number;
45
- shortAprMultiplier: number;
46
- };
47
- /**
48
- * @dev Calculates pending accumulated funding fees for a pair
49
- * @param params Funding fee parameters
50
- * @param data Current funding fee data
51
- * @param currentPairPrice Current pair price
52
- * @param pairOiToken Pair OI after v10
53
- * @param netExposureToken Net exposure in tokens
54
- * @param netExposureUsd Net exposure in USD
55
- * @param currentTimestamp Current timestamp
56
- * @returns Pending accumulated funding fees and current rate
57
- */
58
- export declare const getPairPendingAccFundingFees: (params: FundingFeeParams, data: PairFundingFeeData, currentPairPrice: number, pairOiToken: PairOiAfterV10, netExposureToken: number, netExposureUsd: number, currentTimestamp: number) => PairPendingAccFundingFeesResult;
59
- /**
60
- * @dev Calculates funding fees for a specific trade (SDK version following contract pattern)
61
- * @param trade Trade parameters (collateral amount, leverage, open price, long/short, collateralIndex, pairIndex)
62
- * @param tradeInfo Trade info (contracts version)
63
- * @param tradeFeesData Trade fees data containing initial acc funding fee
64
- * @param currentPairPrice Current pair price
65
- * @param context Optional context with funding fee data (if not provided, uses simple calculation)
66
- * @returns Funding fee in collateral tokens
67
- */
68
- export declare const getTradeFundingFeesCollateral: (trade: {
69
- collateralAmount: number;
70
- leverage: number;
71
- openPrice: number;
72
- long: boolean;
73
- collateralIndex?: number;
74
- pairIndex?: number;
75
- }, tradeInfo: {
76
- contractsVersion: number;
77
- }, tradeFeesData: {
78
- initialAccFundingFeeP: number;
79
- }, currentPairPrice: number, context?: (GetFundingFeeContext & {
80
- pairOiAfterV10?: {
81
- [collateralIndex: number]: {
82
- [pairIndex: number]: PairOiAfterV10;
83
- };
84
- } | undefined;
85
- netExposureToken?: {
86
- [collateralIndex: number]: {
87
- [pairIndex: number]: number;
88
- };
89
- } | undefined;
90
- netExposureUsd?: {
91
- [collateralIndex: number]: {
92
- [pairIndex: number]: number;
93
- };
94
- } | undefined;
95
- }) | undefined) => number;
96
- /**
97
- * @dev Main function to calculate funding fees for a trade within context
98
- * @param context Funding fee context with params and data
99
- * @param collateralIndex Collateral index
100
- * @param pairIndex Pair index
101
- * @param trade Trade details
102
- * @param tradeInfo Trade info (contracts version)
103
- * @param initialAccFundingFeeP Initial accumulated funding fee
104
- * @param currentPairPrice Current pair price
105
- * @param pairOiToken Pair OI after v10
106
- * @param netExposureToken Net exposure in tokens
107
- * @param netExposureUsd Net exposure in USD
108
- * @returns Complete funding fee calculation result
109
- */
110
- export declare const getTradeFundingFees: (context: GetFundingFeeContext, collateralIndex: number, pairIndex: number, trade: {
111
- collateralAmount: number;
112
- leverage: number;
113
- openPrice: number;
114
- long: boolean;
115
- }, tradeInfo: {
116
- contractsVersion: number;
117
- }, initialAccFundingFeeP: number, currentPairPrice: number, pairOiToken: PairOiAfterV10, netExposureToken: number, netExposureUsd: number) => TradeFundingFeeResult;
118
- /**
119
- * @dev Simple version of getTradeFundingFeesCollateral for backward compatibility
120
- * @param trade Trade parameters
121
- * @param tradeInfo Trade info with contracts version
122
- * @param initialAccFundingFeeP Initial accumulated funding fee
123
- * @param currentAccFundingFeeP Current accumulated funding fee
124
- * @returns Funding fee in collateral tokens
125
- */
126
- export declare const getTradeFundingFeesCollateralSimple: (trade: {
127
- collateralAmount: number;
128
- leverage: number;
129
- openPrice: number;
130
- long: boolean;
131
- }, tradeInfo: {
132
- contractsVersion: number;
133
- }, initialAccFundingFeeP: number, currentAccFundingFeeP: number) => number;
134
- export * as FundingFees from "./types";
135
- export type { FundingFeeParams, PairFundingFeeData, PairGlobalParams, TradeInitialAccFundingFees, PairOiAfterV10, FundingRateCalculation, GetFundingFeeContext, TradeFundingFeeResult, PairPendingAccFundingFeesResult, PairAccumulatedFees, TradeInitialAccFees, } from "./types";