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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/lib/backend/globalTrades/index.d.ts +11 -0
  2. package/lib/backend/globalTrades/index.js +69 -0
  3. package/lib/backend/index.d.ts +2 -0
  4. package/lib/backend/index.js +18 -0
  5. package/lib/backend/tradingVariables/backend.types.d.ts +312 -0
  6. package/lib/backend/tradingVariables/backend.types.js +2 -0
  7. package/lib/backend/tradingVariables/converter.d.ts +30 -0
  8. package/lib/backend/tradingVariables/converter.js +329 -0
  9. package/lib/backend/tradingVariables/index.d.ts +3 -0
  10. package/lib/backend/tradingVariables/index.js +78 -0
  11. package/lib/backend/tradingVariables/types.d.ts +109 -0
  12. package/lib/backend/tradingVariables/types.js +14 -0
  13. package/lib/contracts/fetch/fees/borrowingFeesV2.d.ts +0 -1
  14. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  15. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  16. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
  17. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
  18. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +979 -0
  19. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +2 -0
  20. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +1058 -0
  21. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +2 -0
  22. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +7 -20
  23. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
  24. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
  25. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
  26. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
  27. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -0
  28. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -0
  29. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -0
  30. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -0
  31. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  32. package/lib/contracts/types/generated/GNSTrading.js +2 -0
  33. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
  34. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
  35. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +806 -0
  36. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +2 -0
  37. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +821 -0
  38. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +2 -0
  39. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  40. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
  41. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
  42. package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -0
  43. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  44. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
  45. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +88 -0
  46. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +1654 -0
  47. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +113 -0
  48. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +1742 -0
  49. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -0
  50. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -0
  51. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +7 -16
  52. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
  53. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
  54. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
  55. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
  56. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  57. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
  58. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  59. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
  60. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +82 -0
  61. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1273 -0
  62. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
  63. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
  64. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  65. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  66. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  67. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  68. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  69. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  70. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  71. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  72. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +7 -0
  73. package/lib/contracts/types/generated/factories/GToken__factory.js +4 -0
  74. package/lib/contracts/utils/index.d.ts +0 -3
  75. package/lib/contracts/utils/index.js +0 -3
  76. package/lib/contracts/utils/openTrades.js +14 -30
  77. package/lib/index.d.ts +1 -0
  78. package/lib/index.js +1 -0
  79. package/lib/markets/collateral/converter.d.ts +5 -0
  80. package/lib/markets/collateral/converter.js +11 -0
  81. package/lib/markets/collateral/index.d.ts +1 -0
  82. package/lib/markets/collateral/index.js +17 -0
  83. package/lib/markets/collateral/types.d.ts +7 -0
  84. package/lib/markets/collateral/types.js +2 -0
  85. package/lib/markets/index.d.ts +2 -0
  86. package/lib/markets/index.js +2 -0
  87. package/lib/markets/oi/converter.d.ts +63 -0
  88. package/lib/markets/oi/converter.js +103 -0
  89. package/lib/markets/oi/fetcher.d.ts +58 -0
  90. package/lib/markets/oi/fetcher.js +181 -0
  91. package/lib/markets/oi/index.d.ts +10 -0
  92. package/lib/markets/oi/index.js +37 -0
  93. package/lib/markets/oi/types.d.ts +82 -0
  94. package/lib/markets/oi/types.js +6 -0
  95. package/lib/markets/oi/validation.d.ts +80 -0
  96. package/lib/markets/oi/validation.js +172 -0
  97. package/lib/trade/fees/borrowing/index.d.ts +13 -2
  98. package/lib/trade/fees/borrowing/index.js +30 -14
  99. package/lib/trade/fees/borrowingV2/fetcher.d.ts +75 -0
  100. package/lib/trade/fees/borrowingV2/fetcher.js +193 -0
  101. package/lib/trade/fees/borrowingV2/index.d.ts +1 -0
  102. package/lib/trade/fees/borrowingV2/index.js +1 -0
  103. package/lib/trade/fees/converter.d.ts +48 -0
  104. package/lib/trade/fees/converter.js +110 -0
  105. package/lib/trade/fees/fundingFees/fetcher.d.ts +66 -0
  106. package/lib/trade/fees/fundingFees/fetcher.js +150 -0
  107. package/lib/trade/fees/fundingFees/index.d.ts +1 -0
  108. package/lib/trade/fees/fundingFees/index.js +4 -0
  109. package/lib/trade/fees/index.d.ts +2 -1
  110. package/lib/trade/fees/index.js +44 -35
  111. package/lib/trade/fees/tiers/converter.d.ts +54 -0
  112. package/lib/trade/fees/tiers/converter.js +81 -0
  113. package/lib/trade/fees/tiers/index.d.ts +1 -0
  114. package/lib/trade/fees/tiers/index.js +1 -0
  115. package/lib/trade/fees/trading/index.d.ts +22 -2
  116. package/lib/trade/fees/trading/index.js +44 -1
  117. package/lib/trade/fees/trading/types.d.ts +9 -0
  118. package/lib/trade/index.d.ts +1 -1
  119. package/lib/trade/index.js +1 -1
  120. package/lib/trade/liquidation/converter.d.ts +23 -0
  121. package/lib/trade/liquidation/converter.js +46 -0
  122. package/lib/trade/liquidation/index.d.ts +31 -0
  123. package/lib/trade/liquidation/index.js +187 -0
  124. package/lib/trade/liquidation/types.d.ts +44 -0
  125. package/lib/trade/liquidation/types.js +2 -0
  126. package/lib/trade/liquidation.d.ts +2 -32
  127. package/lib/trade/liquidation.js +8 -93
  128. package/lib/trade/pnl/converter.d.ts +47 -0
  129. package/lib/trade/pnl/converter.js +72 -0
  130. package/lib/trade/pnl/index.d.ts +86 -0
  131. package/lib/trade/pnl/index.js +201 -0
  132. package/lib/trade/pnl/types.d.ts +86 -0
  133. package/lib/trade/pnl/types.js +5 -0
  134. package/lib/trade/pnl.d.ts +3 -3
  135. package/lib/trade/pnl.js +2 -7
  136. package/lib/trade/priceImpact/close/index.d.ts +21 -0
  137. package/lib/trade/priceImpact/close/index.js +131 -0
  138. package/lib/trade/priceImpact/close/types.d.ts +43 -0
  139. package/lib/trade/priceImpact/close/types.js +5 -0
  140. package/lib/trade/priceImpact/cumulVol/converter.d.ts +31 -0
  141. package/lib/trade/priceImpact/cumulVol/converter.js +59 -0
  142. package/lib/trade/priceImpact/cumulVol/index.d.ts +107 -0
  143. package/lib/trade/priceImpact/cumulVol/index.js +228 -0
  144. package/lib/trade/priceImpact/index.d.ts +6 -2
  145. package/lib/trade/priceImpact/index.js +30 -3
  146. package/lib/trade/priceImpact/open/index.d.ts +22 -0
  147. package/lib/trade/priceImpact/open/index.js +76 -0
  148. package/lib/trade/priceImpact/open/types.d.ts +41 -0
  149. package/lib/trade/priceImpact/open/types.js +5 -0
  150. package/lib/trade/priceImpact/skew/fetcher.d.ts +63 -0
  151. package/lib/trade/priceImpact/skew/fetcher.js +168 -0
  152. package/lib/trade/priceImpact/skew/index.d.ts +1 -0
  153. package/lib/trade/priceImpact/skew/index.js +4 -0
  154. package/lib/trade/spread.d.ts +5 -18
  155. package/lib/trade/spread.js +17 -106
  156. package/lib/trade/types.d.ts +9 -7
  157. package/package.json +2 -2
@@ -0,0 +1,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 "../../contracts/fetch/fees/borrowingFeesV2";
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";
@@ -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.FUNDING_FEES_PRECISION = 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.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 = void 0;
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 converter_1 = require("./borrowingV2/converter");
32
- Object.defineProperty(exports, "convertBorrowingFeeParamsV2", { enumerable: true, get: function () { return converter_1.convertBorrowingFeeParams; } });
33
- Object.defineProperty(exports, "convertBorrowingFeeParamsArrayV2", { enumerable: true, get: function () { return converter_1.convertBorrowingFeeParamsArray; } });
34
- Object.defineProperty(exports, "convertPairBorrowingFeeDataV2", { enumerable: true, get: function () { return converter_1.convertPairBorrowingFeeData; } });
35
- Object.defineProperty(exports, "convertPairBorrowingFeeDataArrayV2", { enumerable: true, get: function () { return converter_1.convertPairBorrowingFeeDataArray; } });
36
- Object.defineProperty(exports, "convertTradeInitialAccFeesV2", { enumerable: true, get: function () { return converter_1.convertTradeInitialAccFees; } });
37
- Object.defineProperty(exports, "convertTradeInitialAccFeesArrayV2", { enumerable: true, get: function () { return converter_1.convertTradeInitialAccFeesArray; } });
38
- Object.defineProperty(exports, "createBorrowingV2Context", { enumerable: true, get: function () { return converter_1.createBorrowingV2Context; } });
39
- Object.defineProperty(exports, "isValidBorrowingRateV2", { enumerable: true, get: function () { return converter_1.isValidBorrowingRate; } });
40
- Object.defineProperty(exports, "borrowingRateToAPRV2", { enumerable: true, get: function () { return converter_1.borrowingRateToAPR; } });
41
- Object.defineProperty(exports, "aprToBorrowingRateV2", { enumerable: true, get: function () { return converter_1.aprToBorrowingRate; } });
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 borrowingFeesV2_1 = require("../../contracts/fetch/fees/borrowingFeesV2");
44
- Object.defineProperty(exports, "fetchBorrowingFeeParamsV2", { enumerable: true, get: function () { return borrowingFeesV2_1.fetchBorrowingFeeParamsV2; } });
45
- Object.defineProperty(exports, "fetchPairBorrowingFeeDataV2", { enumerable: true, get: function () { return borrowingFeesV2_1.fetchPairBorrowingFeeDataV2; } });
46
- Object.defineProperty(exports, "fetchTradeBorrowingFeesCollateralV2", { enumerable: true, get: function () { return borrowingFeesV2_1.fetchTradeBorrowingFeesCollateralV2; } });
47
- Object.defineProperty(exports, "fetchPairPendingAccBorrowingFeesV2", { enumerable: true, get: function () { return borrowingFeesV2_1.fetchPairPendingAccBorrowingFeesV2; } });
48
- Object.defineProperty(exports, "fetchAllBorrowingV2Data", { enumerable: true, get: function () { return borrowingFeesV2_1.fetchAllBorrowingV2Data; } });
49
- Object.defineProperty(exports, "createBorrowingV2ContextFromContract", { enumerable: true, get: function () { return borrowingFeesV2_1.createBorrowingV2ContextFromContract; } });
50
- Object.defineProperty(exports, "createBorrowingV2ContextFromArrays", { enumerable: true, get: function () { return borrowingFeesV2_1.createBorrowingV2ContextFromArrays; } });
51
- Object.defineProperty(exports, "fetchBorrowingV2DataForPairs", { enumerable: true, get: function () { return borrowingFeesV2_1.fetchBorrowingV2DataForPairs; } });
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 converter_2 = require("./fundingFees/converter");
64
- Object.defineProperty(exports, "convertFundingFeeParams", { enumerable: true, get: function () { return converter_2.convertFundingFeeParams; } });
65
- Object.defineProperty(exports, "convertFundingFeeParamsArray", { enumerable: true, get: function () { return converter_2.convertFundingFeeParamsArray; } });
66
- Object.defineProperty(exports, "convertPairFundingFeeData", { enumerable: true, get: function () { return converter_2.convertPairFundingFeeData; } });
67
- Object.defineProperty(exports, "convertPairFundingFeeDataArray", { enumerable: true, get: function () { return converter_2.convertPairFundingFeeDataArray; } });
68
- Object.defineProperty(exports, "convertPairGlobalParams", { enumerable: true, get: function () { return converter_2.convertPairGlobalParams; } });
69
- Object.defineProperty(exports, "convertPairGlobalParamsArray", { enumerable: true, get: function () { return converter_2.convertPairGlobalParamsArray; } });
70
- Object.defineProperty(exports, "convertTradeInitialAccFundingFees", { enumerable: true, get: function () { return converter_2.convertTradeInitialAccFundingFees; } });
71
- Object.defineProperty(exports, "createFundingFeeContext", { enumerable: true, get: function () { return converter_2.createFundingFeeContext; } });
72
- Object.defineProperty(exports, "isValidFundingRate", { enumerable: true, get: function () { return converter_2.isValidFundingRate; } });
73
- Object.defineProperty(exports, "fundingRateToAPR", { enumerable: true, get: function () { return converter_2.fundingRateToAPR; } });
74
- Object.defineProperty(exports, "aprToFundingRate", { enumerable: true, get: function () { return converter_2.aprToFundingRate; } });
75
- Object.defineProperty(exports, "calculateVelocityFromSkew", { enumerable: true, get: function () { return converter_2.calculateVelocityFromSkew; } });
76
- Object.defineProperty(exports, "FUNDING_FEES_PRECISION", { enumerable: true, get: function () { return converter_2.FUNDING_FEES_PRECISION; } });
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 };
@@ -1,5 +1,5 @@
1
1
  export * from "./fees";
2
- export * from "./pnl";
2
+ export * from "./pnl/index";
3
3
  export * from "./spread";
4
4
  export * from "./liquidation";
5
5
  export * from "./types";
@@ -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;