@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.
Files changed (181) 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 +3 -0
  4. package/lib/backend/index.js +28 -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 +31 -0
  8. package/lib/backend/tradingVariables/converter.js +330 -0
  9. package/lib/backend/tradingVariables/index.d.ts +5 -0
  10. package/lib/backend/tradingVariables/index.js +95 -0
  11. package/lib/backend/tradingVariables/types.d.ts +109 -0
  12. package/lib/backend/tradingVariables/types.js +14 -0
  13. package/lib/constants.d.ts +10 -0
  14. package/lib/constants.js +11 -1
  15. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  16. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  17. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
  18. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
  19. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +979 -0
  20. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +2 -0
  21. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +1058 -0
  22. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +2 -0
  23. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +7 -20
  24. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
  25. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
  26. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
  27. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
  28. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -0
  29. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -0
  30. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -0
  31. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -0
  32. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  33. package/lib/contracts/types/generated/GNSTrading.js +2 -0
  34. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
  35. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
  36. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +806 -0
  37. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +2 -0
  38. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +821 -0
  39. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +2 -0
  40. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  41. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
  42. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
  43. package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -0
  44. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  45. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
  46. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +88 -0
  47. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +1654 -0
  48. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +113 -0
  49. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +1742 -0
  50. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -0
  51. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -0
  52. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +7 -16
  53. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
  54. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
  55. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
  56. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
  57. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  58. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
  59. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  60. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
  61. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +82 -0
  62. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1273 -0
  63. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
  64. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
  65. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  66. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  67. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  68. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  69. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  70. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  71. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  72. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  73. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +7 -0
  74. package/lib/contracts/types/generated/factories/GToken__factory.js +4 -0
  75. package/lib/contracts/utils/index.d.ts +0 -3
  76. package/lib/contracts/utils/index.js +0 -3
  77. package/lib/contracts/utils/openTrades.js +14 -30
  78. package/lib/contracts/utils/pairs.js +10 -0
  79. package/lib/index.d.ts +2 -0
  80. package/lib/index.js +5 -0
  81. package/lib/markets/collateral/converter.d.ts +5 -0
  82. package/lib/markets/collateral/converter.js +11 -0
  83. package/lib/markets/collateral/index.d.ts +1 -0
  84. package/lib/markets/collateral/index.js +17 -0
  85. package/lib/markets/collateral/types.d.ts +7 -0
  86. package/lib/markets/collateral/types.js +2 -0
  87. package/lib/markets/index.d.ts +2 -0
  88. package/lib/markets/index.js +2 -0
  89. package/lib/markets/oi/converter.d.ts +63 -0
  90. package/lib/markets/oi/converter.js +103 -0
  91. package/lib/markets/oi/fetcher.d.ts +58 -0
  92. package/lib/markets/oi/fetcher.js +181 -0
  93. package/lib/markets/oi/index.d.ts +10 -0
  94. package/lib/markets/oi/index.js +37 -0
  95. package/lib/markets/oi/types.d.ts +82 -0
  96. package/lib/markets/oi/types.js +6 -0
  97. package/lib/markets/oi/validation.d.ts +80 -0
  98. package/lib/markets/oi/validation.js +172 -0
  99. package/lib/trade/fees/borrowing/builder.d.ts +14 -0
  100. package/lib/trade/fees/borrowing/builder.js +33 -0
  101. package/lib/trade/fees/borrowing/index.d.ts +16 -4
  102. package/lib/trade/fees/borrowing/index.js +43 -18
  103. package/lib/trade/fees/borrowingV2/builder.d.ts +6 -0
  104. package/lib/trade/fees/borrowingV2/builder.js +24 -0
  105. package/lib/trade/fees/borrowingV2/converter.d.ts +12 -3
  106. package/lib/trade/fees/borrowingV2/converter.js +29 -18
  107. package/lib/{contracts/fetch/fees/borrowingFeesV2.d.ts → trade/fees/borrowingV2/fetcher.d.ts} +2 -3
  108. package/lib/{contracts/fetch/fees/borrowingFeesV2.js → trade/fees/borrowingV2/fetcher.js} +6 -14
  109. package/lib/trade/fees/borrowingV2/index.d.ts +6 -17
  110. package/lib/trade/fees/borrowingV2/index.js +10 -37
  111. package/lib/trade/fees/borrowingV2/types.d.ts +22 -6
  112. package/lib/trade/fees/converter.d.ts +48 -0
  113. package/lib/trade/fees/converter.js +110 -0
  114. package/lib/trade/fees/fundingFees/builder.d.ts +9 -0
  115. package/lib/trade/fees/fundingFees/builder.js +35 -0
  116. package/lib/{contracts/fetch/fees/fundingFees.d.ts → trade/fees/fundingFees/fetcher.d.ts} +2 -2
  117. package/lib/trade/fees/fundingFees/index.d.ts +13 -2
  118. package/lib/trade/fees/fundingFees/index.js +27 -3
  119. package/lib/trade/fees/fundingFees/pairContext.d.ts +33 -0
  120. package/lib/trade/fees/fundingFees/pairContext.js +17 -0
  121. package/lib/trade/fees/index.d.ts +3 -2
  122. package/lib/trade/fees/index.js +44 -36
  123. package/lib/trade/fees/tiers/converter.d.ts +54 -0
  124. package/lib/trade/fees/tiers/converter.js +81 -0
  125. package/lib/trade/fees/tiers/index.d.ts +1 -0
  126. package/lib/trade/fees/tiers/index.js +1 -0
  127. package/lib/trade/fees/trading/builder.d.ts +18 -0
  128. package/lib/trade/fees/trading/builder.js +20 -0
  129. package/lib/trade/fees/trading/holdingFees.d.ts +28 -0
  130. package/lib/trade/fees/trading/holdingFees.js +66 -0
  131. package/lib/trade/fees/trading/holdingFeesStructured.d.ts +28 -0
  132. package/lib/trade/fees/trading/holdingFeesStructured.js +66 -0
  133. package/lib/trade/fees/trading/index.d.ts +30 -2
  134. package/lib/trade/fees/trading/index.js +52 -1
  135. package/lib/trade/fees/trading/types.d.ts +9 -0
  136. package/lib/trade/index.d.ts +1 -1
  137. package/lib/trade/index.js +1 -1
  138. package/lib/trade/liquidation/builder.d.ts +25 -0
  139. package/lib/trade/liquidation/builder.js +59 -0
  140. package/lib/trade/liquidation/converter.d.ts +23 -0
  141. package/lib/trade/liquidation/converter.js +46 -0
  142. package/lib/trade/liquidation/index.d.ts +26 -0
  143. package/lib/trade/liquidation/index.js +142 -0
  144. package/lib/trade/liquidation/types.d.ts +59 -0
  145. package/lib/trade/liquidation/types.js +2 -0
  146. package/lib/trade/pnl/builder.d.ts +16 -0
  147. package/lib/trade/pnl/builder.js +44 -0
  148. package/lib/trade/pnl/converter.d.ts +47 -0
  149. package/lib/trade/pnl/converter.js +72 -0
  150. package/lib/trade/pnl/index.d.ts +77 -0
  151. package/lib/trade/pnl/index.js +270 -0
  152. package/lib/trade/pnl/types.d.ts +114 -0
  153. package/lib/trade/pnl/types.js +5 -0
  154. package/lib/trade/priceImpact/close/index.d.ts +21 -0
  155. package/lib/trade/priceImpact/close/index.js +131 -0
  156. package/lib/trade/priceImpact/close/types.d.ts +43 -0
  157. package/lib/trade/priceImpact/close/types.js +5 -0
  158. package/lib/trade/priceImpact/cumulVol/converter.d.ts +31 -0
  159. package/lib/trade/priceImpact/cumulVol/converter.js +59 -0
  160. package/lib/trade/priceImpact/cumulVol/index.d.ts +107 -0
  161. package/lib/trade/priceImpact/cumulVol/index.js +228 -0
  162. package/lib/trade/priceImpact/index.d.ts +6 -2
  163. package/lib/trade/priceImpact/index.js +30 -3
  164. package/lib/trade/priceImpact/open/index.d.ts +22 -0
  165. package/lib/trade/priceImpact/open/index.js +76 -0
  166. package/lib/trade/priceImpact/open/types.d.ts +41 -0
  167. package/lib/trade/priceImpact/open/types.js +5 -0
  168. package/lib/{contracts/fetch/priceImpact/skew.d.ts → trade/priceImpact/skew/fetcher.d.ts} +2 -2
  169. package/lib/{contracts/fetch/priceImpact/skew.js → trade/priceImpact/skew/fetcher.js} +6 -6
  170. package/lib/trade/priceImpact/skew/index.d.ts +1 -0
  171. package/lib/trade/priceImpact/skew/index.js +4 -0
  172. package/lib/trade/spread.d.ts +5 -18
  173. package/lib/trade/spread.js +17 -106
  174. package/lib/trade/types.d.ts +20 -8
  175. package/lib/trade/types.js +10 -0
  176. package/package.json +2 -2
  177. package/lib/trade/liquidation.d.ts +0 -42
  178. package/lib/trade/liquidation.js +0 -140
  179. package/lib/trade/pnl.d.ts +0 -10
  180. package/lib/trade/pnl.js +0 -38
  181. /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 "../../types/generated";
2
- import type { TradeInitialAccFees } from "../../../trade/fees/fundingFees";
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 (if not provided, uses simple calculation)
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
- }) | undefined) => number;
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 (if not provided, uses simple calculation)
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
- // If we have full context, calculate current accumulated funding fee
241
- if (context &&
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 { 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";
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 "../../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,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.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.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 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; } });
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 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; } });
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 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; } });
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;