@gainsnetwork/sdk 0.0.0-v10.rc1 → 0.0.0-v10.rc11

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 (210) 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 +318 -0
  6. package/lib/backend/tradingVariables/backend.types.js +2 -0
  7. package/lib/backend/tradingVariables/converter.d.ts +34 -0
  8. package/lib/backend/tradingVariables/converter.js +338 -0
  9. package/lib/backend/tradingVariables/index.d.ts +5 -0
  10. package/lib/backend/tradingVariables/index.js +96 -0
  11. package/lib/backend/tradingVariables/types.d.ts +113 -0
  12. package/lib/backend/tradingVariables/types.js +14 -0
  13. package/lib/constants.d.ts +18 -1
  14. package/lib/constants.js +19 -2
  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/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/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
  52. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
  53. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
  54. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
  55. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  56. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
  57. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  58. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
  59. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +82 -0
  60. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1273 -0
  61. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
  62. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
  63. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  64. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  65. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  66. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  67. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  68. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  69. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  70. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  71. package/lib/contracts/types/index.d.ts +2 -1
  72. package/lib/contracts/types/index.js +1 -0
  73. package/lib/contracts/utils/openTrades.d.ts +1 -0
  74. package/lib/contracts/utils/openTrades.js +94 -56
  75. package/lib/contracts/utils/pairs.js +17 -0
  76. package/lib/index.d.ts +2 -0
  77. package/lib/index.js +5 -0
  78. package/lib/markets/collateral/converter.d.ts +5 -0
  79. package/lib/markets/collateral/converter.js +11 -0
  80. package/lib/markets/collateral/index.d.ts +1 -0
  81. package/lib/markets/collateral/index.js +17 -0
  82. package/lib/markets/collateral/types.d.ts +7 -0
  83. package/lib/markets/collateral/types.js +2 -0
  84. package/lib/markets/index.d.ts +3 -0
  85. package/lib/markets/index.js +3 -0
  86. package/lib/markets/oi/converter.d.ts +63 -0
  87. package/lib/markets/oi/converter.js +103 -0
  88. package/lib/markets/oi/fetcher.d.ts +58 -0
  89. package/lib/markets/oi/fetcher.js +181 -0
  90. package/lib/markets/oi/index.d.ts +10 -0
  91. package/lib/markets/oi/index.js +37 -0
  92. package/lib/markets/oi/types.d.ts +82 -0
  93. package/lib/markets/oi/types.js +6 -0
  94. package/lib/markets/oi/validation.d.ts +80 -0
  95. package/lib/markets/oi/validation.js +172 -0
  96. package/lib/markets/price/builder.d.ts +25 -0
  97. package/lib/markets/price/builder.js +69 -0
  98. package/lib/markets/price/index.d.ts +6 -0
  99. package/lib/markets/price/index.js +22 -0
  100. package/lib/markets/price/marketPrice.d.ts +12 -0
  101. package/lib/markets/price/marketPrice.js +34 -0
  102. package/lib/markets/price/types.d.ts +23 -0
  103. package/lib/markets/price/types.js +5 -0
  104. package/lib/trade/fees/borrowing/builder.d.ts +14 -0
  105. package/lib/trade/fees/borrowing/builder.js +33 -0
  106. package/lib/trade/fees/borrowing/index.d.ts +24 -2
  107. package/lib/trade/fees/borrowing/index.js +51 -16
  108. package/lib/trade/fees/borrowingV2/builder.d.ts +6 -0
  109. package/lib/trade/fees/borrowingV2/builder.js +24 -0
  110. package/lib/trade/fees/borrowingV2/converter.d.ts +75 -0
  111. package/lib/trade/fees/borrowingV2/converter.js +132 -0
  112. package/lib/trade/fees/borrowingV2/fetcher.d.ts +75 -0
  113. package/lib/trade/fees/borrowingV2/fetcher.js +185 -0
  114. package/lib/trade/fees/borrowingV2/index.d.ts +48 -0
  115. package/lib/trade/fees/borrowingV2/index.js +112 -0
  116. package/lib/trade/fees/borrowingV2/types.d.ts +95 -0
  117. package/lib/trade/fees/borrowingV2/types.js +5 -0
  118. package/lib/trade/fees/converter.d.ts +48 -0
  119. package/lib/trade/fees/converter.js +114 -0
  120. package/lib/trade/fees/fundingFees/builder.d.ts +9 -0
  121. package/lib/trade/fees/fundingFees/builder.js +35 -0
  122. package/lib/trade/fees/fundingFees/converter.d.ts +102 -0
  123. package/lib/trade/fees/fundingFees/converter.js +196 -0
  124. package/lib/trade/fees/fundingFees/fetcher.d.ts +66 -0
  125. package/lib/trade/fees/fundingFees/fetcher.js +150 -0
  126. package/lib/trade/fees/fundingFees/index.d.ts +124 -0
  127. package/lib/trade/fees/fundingFees/index.js +309 -0
  128. package/lib/trade/fees/fundingFees/pairContext.d.ts +33 -0
  129. package/lib/trade/fees/fundingFees/pairContext.js +17 -0
  130. package/lib/trade/fees/fundingFees/types.d.ts +77 -0
  131. package/lib/trade/fees/fundingFees/types.js +5 -0
  132. package/lib/trade/fees/index.d.ts +7 -2
  133. package/lib/trade/fees/index.js +66 -16
  134. package/lib/trade/fees/tiers/converter.d.ts +54 -0
  135. package/lib/trade/fees/tiers/converter.js +81 -0
  136. package/lib/trade/fees/tiers/index.d.ts +18 -0
  137. package/lib/trade/fees/tiers/index.js +45 -1
  138. package/lib/trade/fees/trading/builder.d.ts +18 -0
  139. package/lib/trade/fees/trading/builder.js +20 -0
  140. package/lib/trade/fees/trading/converter.d.ts +32 -0
  141. package/lib/trade/fees/trading/converter.js +47 -0
  142. package/lib/trade/fees/trading/holdingFees.d.ts +28 -0
  143. package/lib/trade/fees/trading/holdingFees.js +66 -0
  144. package/lib/trade/fees/trading/holdingFeesStructured.d.ts +28 -0
  145. package/lib/trade/fees/trading/holdingFeesStructured.js +66 -0
  146. package/lib/trade/fees/trading/index.d.ts +62 -0
  147. package/lib/trade/fees/trading/index.js +155 -0
  148. package/lib/trade/fees/trading/types.d.ts +48 -0
  149. package/lib/trade/fees/trading/types.js +5 -0
  150. package/lib/trade/index.d.ts +3 -2
  151. package/lib/trade/index.js +3 -2
  152. package/lib/trade/liquidation/builder.d.ts +25 -0
  153. package/lib/trade/liquidation/builder.js +59 -0
  154. package/lib/trade/liquidation/converter.d.ts +23 -0
  155. package/lib/trade/liquidation/converter.js +46 -0
  156. package/lib/trade/liquidation/index.d.ts +16 -0
  157. package/lib/trade/liquidation/index.js +123 -0
  158. package/lib/trade/liquidation/types.d.ts +42 -0
  159. package/lib/trade/liquidation/types.js +2 -0
  160. package/lib/trade/pnl/builder.d.ts +16 -0
  161. package/lib/trade/pnl/builder.js +44 -0
  162. package/lib/trade/pnl/converter.d.ts +47 -0
  163. package/lib/trade/pnl/converter.js +72 -0
  164. package/lib/trade/pnl/index.d.ts +88 -0
  165. package/lib/trade/pnl/index.js +286 -0
  166. package/lib/trade/pnl/types.d.ts +75 -0
  167. package/lib/trade/pnl/types.js +5 -0
  168. package/lib/trade/priceImpact/close/builder.d.ts +23 -0
  169. package/lib/trade/priceImpact/close/builder.js +45 -0
  170. package/lib/trade/priceImpact/close/index.d.ts +22 -0
  171. package/lib/trade/priceImpact/close/index.js +137 -0
  172. package/lib/trade/priceImpact/close/types.d.ts +44 -0
  173. package/lib/trade/priceImpact/close/types.js +5 -0
  174. package/lib/trade/priceImpact/cumulVol/builder.d.ts +22 -0
  175. package/lib/trade/priceImpact/cumulVol/builder.js +43 -0
  176. package/lib/trade/priceImpact/cumulVol/converter.d.ts +31 -0
  177. package/lib/trade/priceImpact/cumulVol/converter.js +59 -0
  178. package/lib/trade/priceImpact/cumulVol/index.d.ts +108 -0
  179. package/lib/trade/priceImpact/cumulVol/index.js +231 -0
  180. package/lib/trade/priceImpact/index.d.ts +13 -0
  181. package/lib/trade/priceImpact/index.js +64 -0
  182. package/lib/trade/priceImpact/open/builder.d.ts +21 -0
  183. package/lib/trade/priceImpact/open/builder.js +43 -0
  184. package/lib/trade/priceImpact/open/index.d.ts +23 -0
  185. package/lib/trade/priceImpact/open/index.js +79 -0
  186. package/lib/trade/priceImpact/open/types.d.ts +42 -0
  187. package/lib/trade/priceImpact/open/types.js +5 -0
  188. package/lib/trade/priceImpact/skew/builder.d.ts +12 -0
  189. package/lib/trade/priceImpact/skew/builder.js +28 -0
  190. package/lib/trade/priceImpact/skew/converter.d.ts +46 -0
  191. package/lib/trade/priceImpact/skew/converter.js +81 -0
  192. package/lib/trade/priceImpact/skew/fetcher.d.ts +60 -0
  193. package/lib/trade/priceImpact/skew/fetcher.js +169 -0
  194. package/lib/trade/priceImpact/skew/index.d.ts +60 -0
  195. package/lib/trade/priceImpact/skew/index.js +173 -0
  196. package/lib/trade/priceImpact/skew/types.d.ts +42 -0
  197. package/lib/trade/priceImpact/skew/types.js +5 -0
  198. package/lib/trade/spread.d.ts +5 -18
  199. package/lib/trade/spread.js +17 -106
  200. package/lib/trade/types.d.ts +44 -9
  201. package/lib/trade/types.js +17 -0
  202. package/lib/trade/utils.d.ts +18 -0
  203. package/lib/trade/utils.js +30 -0
  204. package/lib/vault/index.d.ts +3 -1
  205. package/lib/vault/index.js +2 -2
  206. package/package.json +2 -1
  207. package/lib/trade/liquidation.d.ts +0 -12
  208. package/lib/trade/liquidation.js +0 -55
  209. package/lib/trade/pnl.d.ts +0 -10
  210. package/lib/trade/pnl.js +0 -33
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @dev Funding fees calculations for v10+ trades
3
+ * @dev Based on skew-based funding rate model with velocity and APR multipliers
4
+ */
5
+ import { FundingFeeParams, PairFundingFeeData, GetFundingFeeContext, TradeFundingFeeResult, PairPendingAccFundingFeesResult, PairOiAfterV10 } from "./types";
6
+ import { GetPairFundingFeeContext } from "./pairContext";
7
+ /**
8
+ * @dev Calculates current funding velocity per year based on skew
9
+ * @param netExposureToken Net exposure (long - short) in tokens
10
+ * @param netExposureUsd Net exposure in USD
11
+ * @param skewCoefficientPerYear Skew coefficient per year from params
12
+ * @param absoluteVelocityPerYearCap Cap on velocity per year
13
+ * @param thetaThresholdUsd Minimum exposure USD to start charging funding fees
14
+ * @returns Current yearly funding velocity
15
+ */
16
+ export declare const getCurrentFundingVelocityPerYear: (netExposureToken: number, netExposureUsd: number, skewCoefficientPerYear: number, absoluteVelocityPerYearCap: number, thetaThresholdUsd: number) => number;
17
+ /**
18
+ * @dev Calculates seconds until funding rate reaches zero
19
+ * @param lastFundingRatePerSecondP Last funding rate per second
20
+ * @param currentVelocityPerYear Current velocity per year
21
+ * @returns Seconds until rate reaches zero
22
+ */
23
+ export declare const getSecondsToReachZeroRate: (lastFundingRatePerSecondP: number, currentVelocityPerYear: number) => number;
24
+ /**
25
+ * @dev Calculates average and current funding rate per second
26
+ * @param lastFundingRatePerSecondP Last funding rate per second
27
+ * @param absoluteRatePerSecondCap Absolute cap on funding rate per second
28
+ * @param currentVelocityPerYear Current velocity per year
29
+ * @param secondsSinceLastUpdate Seconds elapsed since last update
30
+ * @returns Average and current funding rate per second
31
+ */
32
+ export declare const getAvgFundingRatePerSecondP: (lastFundingRatePerSecondP: number, absoluteRatePerSecondCap: number, currentVelocityPerYear: number, secondsSinceLastUpdate: number) => {
33
+ avgFundingRatePerSecondP: number;
34
+ currentFundingRatePerSecondP: number;
35
+ };
36
+ /**
37
+ * @dev Calculates APR multipliers for long and short sides based on OI ratio
38
+ * @param avgFundingRatePerSecondP Average funding rate per second
39
+ * @param pairOiLongToken Long OI in tokens
40
+ * @param pairOiShortToken Short OI in tokens
41
+ * @param aprMultiplierEnabled Whether APR multiplier is enabled
42
+ * @returns Long and short APR multipliers
43
+ */
44
+ export declare const getLongShortAprMultiplier: (avgFundingRatePerSecondP: number, pairOiLongToken: number, pairOiShortToken: number, aprMultiplierEnabled: boolean) => {
45
+ longAprMultiplier: number;
46
+ shortAprMultiplier: number;
47
+ };
48
+ /**
49
+ * @dev Calculates pending accumulated funding fees for a pair
50
+ * @param params Funding fee parameters
51
+ * @param data Current funding fee data
52
+ * @param currentPairPrice Current pair price
53
+ * @param pairOiToken Pair OI after v10
54
+ * @param netExposureToken Net exposure in tokens
55
+ * @param netExposureUsd Net exposure in USD
56
+ * @param currentTimestamp Current timestamp
57
+ * @returns Pending accumulated funding fees and current rate
58
+ */
59
+ export declare const getPairPendingAccFundingFees: (params: FundingFeeParams, data: PairFundingFeeData, currentPairPrice: number, pairOiToken: PairOiAfterV10, netExposureToken: number, netExposureUsd: number, currentTimestamp: number) => PairPendingAccFundingFeesResult;
60
+ /**
61
+ * @dev Calculates funding fees for a specific trade
62
+ * @param trade Trade parameters (collateral amount, leverage, open price, long/short)
63
+ * @param tradeInfo Trade info (contracts version)
64
+ * @param tradeFeesData Trade fees data containing initial acc funding fee
65
+ * @param currentPairPrice Current pair price
66
+ * @param context Pair-specific funding fee context
67
+ * @returns Funding fee in collateral tokens
68
+ */
69
+ export declare const getTradeFundingFeesCollateral: (trade: {
70
+ collateralAmount: number;
71
+ leverage: number;
72
+ openPrice: number;
73
+ long: boolean;
74
+ }, tradeInfo: {
75
+ contractsVersion: number;
76
+ }, tradeFeesData: {
77
+ initialAccFundingFeeP: number;
78
+ }, currentPairPrice: number, context: GetPairFundingFeeContext) => number;
79
+ /**
80
+ * @dev Main function to calculate funding fees for a trade within context
81
+ * @param input Trade funding fee input parameters
82
+ * @param context Funding fee context with params and data
83
+ * @returns Complete funding fee calculation result
84
+ */
85
+ export declare const getTradeFundingFees: (input: {
86
+ collateralIndex: number;
87
+ pairIndex: number;
88
+ trade: {
89
+ collateralAmount: number;
90
+ leverage: number;
91
+ openPrice: number;
92
+ long: boolean;
93
+ };
94
+ tradeInfo: {
95
+ contractsVersion: number;
96
+ };
97
+ initialAccFundingFeeP: number;
98
+ currentPairPrice: number;
99
+ pairOiToken: PairOiAfterV10;
100
+ netExposureToken: number;
101
+ netExposureUsd: number;
102
+ }, context: GetFundingFeeContext) => TradeFundingFeeResult;
103
+ /**
104
+ * @dev Simple version of getTradeFundingFeesCollateral for backward compatibility
105
+ * @param trade Trade parameters
106
+ * @param tradeInfo Trade info with contracts version
107
+ * @param initialAccFundingFeeP Initial accumulated funding fee
108
+ * @param currentAccFundingFeeP Current accumulated funding fee
109
+ * @returns Funding fee in collateral tokens
110
+ */
111
+ export declare const getTradeFundingFeesCollateralSimple: (trade: {
112
+ collateralAmount: number;
113
+ leverage: number;
114
+ openPrice: number;
115
+ long: boolean;
116
+ }, tradeInfo: {
117
+ contractsVersion: number;
118
+ }, initialAccFundingFeeP: number, currentAccFundingFeeP: number) => number;
119
+ export * as FundingFees from "./types";
120
+ export type { FundingFeeParams, PairFundingFeeData, PairGlobalParams, TradeInitialAccFundingFees, PairOiAfterV10, FundingRateCalculation, GetFundingFeeContext, TradeFundingFeeResult, PairPendingAccFundingFeesResult, PairAccumulatedFees, TradeInitialAccFees, } from "./types";
121
+ export type { GetPairFundingFeeContext } from "./pairContext";
122
+ export * from "./fetcher";
123
+ export * from "./pairContext";
124
+ export * from "./builder";
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+ /**
3
+ * @dev Funding fees calculations for v10+ trades
4
+ * @dev Based on skew-based funding rate model with velocity and APR multipliers
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
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
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.FundingFees = exports.getTradeFundingFeesCollateralSimple = exports.getTradeFundingFees = exports.getTradeFundingFeesCollateral = exports.getPairPendingAccFundingFees = exports.getLongShortAprMultiplier = exports.getAvgFundingRatePerSecondP = exports.getSecondsToReachZeroRate = exports.getCurrentFundingVelocityPerYear = void 0;
34
+ const types_1 = require("../../../contracts/types");
35
+ // Constants from contract
36
+ const FUNDING_APR_MULTIPLIER_CAP = 100; // Smaller side can earn up to 100x more APR
37
+ const ONE_YEAR = 365 * 24 * 60 * 60; // 1 year in seconds
38
+ /**
39
+ * @dev Calculates current funding velocity per year based on skew
40
+ * @param netExposureToken Net exposure (long - short) in tokens
41
+ * @param netExposureUsd Net exposure in USD
42
+ * @param skewCoefficientPerYear Skew coefficient per year from params
43
+ * @param absoluteVelocityPerYearCap Cap on velocity per year
44
+ * @param thetaThresholdUsd Minimum exposure USD to start charging funding fees
45
+ * @returns Current yearly funding velocity
46
+ */
47
+ const getCurrentFundingVelocityPerYear = (netExposureToken, netExposureUsd, skewCoefficientPerYear, absoluteVelocityPerYearCap, thetaThresholdUsd) => {
48
+ // If no exposure or skew coefficient 0 or velocity cap 0, velocity is 0
49
+ if (netExposureToken === 0 ||
50
+ skewCoefficientPerYear === 0 ||
51
+ absoluteVelocityPerYearCap === 0) {
52
+ return 0;
53
+ }
54
+ // Check theta threshold
55
+ const absNetExposureUsd = Math.abs(netExposureUsd);
56
+ if (absNetExposureUsd < thetaThresholdUsd) {
57
+ return 0;
58
+ }
59
+ // Calculate absolute velocity
60
+ const absoluteVelocityPerYear = Math.abs(netExposureToken) * skewCoefficientPerYear;
61
+ // Apply cap
62
+ const cappedAbsoluteVelocity = Math.min(absoluteVelocityPerYear, absoluteVelocityPerYearCap);
63
+ // Return with proper sign
64
+ return netExposureToken < 0
65
+ ? -cappedAbsoluteVelocity
66
+ : cappedAbsoluteVelocity;
67
+ };
68
+ exports.getCurrentFundingVelocityPerYear = getCurrentFundingVelocityPerYear;
69
+ /**
70
+ * @dev Calculates seconds until funding rate reaches zero
71
+ * @param lastFundingRatePerSecondP Last funding rate per second
72
+ * @param currentVelocityPerYear Current velocity per year
73
+ * @returns Seconds until rate reaches zero
74
+ */
75
+ const getSecondsToReachZeroRate = (lastFundingRatePerSecondP, currentVelocityPerYear) => {
76
+ if (currentVelocityPerYear === 0) {
77
+ throw new Error("Velocity cannot be zero when calculating time to reach zero rate");
78
+ }
79
+ const secondsToReachZeroRate = (-lastFundingRatePerSecondP * ONE_YEAR) / currentVelocityPerYear;
80
+ if (secondsToReachZeroRate < 0) {
81
+ throw new Error("Invalid calculation: seconds to reach zero rate cannot be negative");
82
+ }
83
+ return secondsToReachZeroRate;
84
+ };
85
+ exports.getSecondsToReachZeroRate = getSecondsToReachZeroRate;
86
+ /**
87
+ * @dev Calculates average and current funding rate per second
88
+ * @param lastFundingRatePerSecondP Last funding rate per second
89
+ * @param absoluteRatePerSecondCap Absolute cap on funding rate per second
90
+ * @param currentVelocityPerYear Current velocity per year
91
+ * @param secondsSinceLastUpdate Seconds elapsed since last update
92
+ * @returns Average and current funding rate per second
93
+ */
94
+ const getAvgFundingRatePerSecondP = (lastFundingRatePerSecondP, absoluteRatePerSecondCap, currentVelocityPerYear, secondsSinceLastUpdate) => {
95
+ // If cap is 0, there are no funding fees
96
+ if (absoluteRatePerSecondCap === 0) {
97
+ return { avgFundingRatePerSecondP: 0, currentFundingRatePerSecondP: 0 };
98
+ }
99
+ // If velocity is 0 or no time elapsed, funding rate is still the same
100
+ if (currentVelocityPerYear === 0 || secondsSinceLastUpdate === 0) {
101
+ return {
102
+ avgFundingRatePerSecondP: lastFundingRatePerSecondP,
103
+ currentFundingRatePerSecondP: lastFundingRatePerSecondP,
104
+ };
105
+ }
106
+ const ratePerSecondCap = absoluteRatePerSecondCap * (currentVelocityPerYear < 0 ? -1 : 1);
107
+ // If rate is already at cap, just return it
108
+ if (ratePerSecondCap === lastFundingRatePerSecondP) {
109
+ return {
110
+ avgFundingRatePerSecondP: ratePerSecondCap,
111
+ currentFundingRatePerSecondP: ratePerSecondCap,
112
+ };
113
+ }
114
+ const secondsToReachCap = ((ratePerSecondCap - lastFundingRatePerSecondP) * ONE_YEAR) /
115
+ currentVelocityPerYear;
116
+ if (secondsSinceLastUpdate > secondsToReachCap) {
117
+ // Rate reached cap during this period
118
+ const currentFundingRatePerSecondP = ratePerSecondCap;
119
+ // Weighted average: time to cap at average rate + time at cap
120
+ const avgFundingRatePerSecondP_1 = (lastFundingRatePerSecondP + ratePerSecondCap) / 2;
121
+ const avgFundingRatePerSecondP = (avgFundingRatePerSecondP_1 * secondsToReachCap +
122
+ ratePerSecondCap * (secondsSinceLastUpdate - secondsToReachCap)) /
123
+ secondsSinceLastUpdate;
124
+ return { avgFundingRatePerSecondP, currentFundingRatePerSecondP };
125
+ }
126
+ else {
127
+ // Rate didn't reach cap
128
+ const currentFundingRatePerSecondP = lastFundingRatePerSecondP +
129
+ (secondsSinceLastUpdate * currentVelocityPerYear) / ONE_YEAR;
130
+ const avgFundingRatePerSecondP = (lastFundingRatePerSecondP + currentFundingRatePerSecondP) / 2;
131
+ return { avgFundingRatePerSecondP, currentFundingRatePerSecondP };
132
+ }
133
+ };
134
+ exports.getAvgFundingRatePerSecondP = getAvgFundingRatePerSecondP;
135
+ /**
136
+ * @dev Calculates APR multipliers for long and short sides based on OI ratio
137
+ * @param avgFundingRatePerSecondP Average funding rate per second
138
+ * @param pairOiLongToken Long OI in tokens
139
+ * @param pairOiShortToken Short OI in tokens
140
+ * @param aprMultiplierEnabled Whether APR multiplier is enabled
141
+ * @returns Long and short APR multipliers
142
+ */
143
+ const getLongShortAprMultiplier = (avgFundingRatePerSecondP, pairOiLongToken, pairOiShortToken, aprMultiplierEnabled) => {
144
+ // If funding rate is 0, multipliers don't matter
145
+ if (avgFundingRatePerSecondP === 0) {
146
+ return { longAprMultiplier: 1, shortAprMultiplier: 1 };
147
+ }
148
+ const longsEarned = avgFundingRatePerSecondP < 0;
149
+ let longAprMultiplier = 1;
150
+ let shortAprMultiplier = 1;
151
+ if (aprMultiplierEnabled) {
152
+ if (longsEarned && pairOiLongToken > 0) {
153
+ longAprMultiplier = pairOiShortToken / pairOiLongToken;
154
+ }
155
+ else if (!longsEarned && pairOiShortToken > 0) {
156
+ shortAprMultiplier = pairOiLongToken / pairOiShortToken;
157
+ }
158
+ // Apply cap
159
+ longAprMultiplier = Math.min(longAprMultiplier, FUNDING_APR_MULTIPLIER_CAP);
160
+ shortAprMultiplier = Math.min(shortAprMultiplier, FUNDING_APR_MULTIPLIER_CAP);
161
+ }
162
+ return { longAprMultiplier, shortAprMultiplier };
163
+ };
164
+ exports.getLongShortAprMultiplier = getLongShortAprMultiplier;
165
+ /**
166
+ * @dev Calculates pending accumulated funding fees for a pair
167
+ * @param params Funding fee parameters
168
+ * @param data Current funding fee data
169
+ * @param currentPairPrice Current pair price
170
+ * @param pairOiToken Pair OI after v10
171
+ * @param netExposureToken Net exposure in tokens
172
+ * @param netExposureUsd Net exposure in USD
173
+ * @param currentTimestamp Current timestamp
174
+ * @returns Pending accumulated funding fees and current rate
175
+ */
176
+ const getPairPendingAccFundingFees = (params, data, currentPairPrice, pairOiToken, netExposureToken, netExposureUsd, currentTimestamp) => {
177
+ let accFundingFeeLongP = data.accFundingFeeLongP;
178
+ let accFundingFeeShortP = data.accFundingFeeShortP;
179
+ // If funding fees are disabled, return current values
180
+ if (!params.fundingFeesEnabled) {
181
+ return {
182
+ accFundingFeeLongP,
183
+ accFundingFeeShortP,
184
+ currentFundingRatePerSecondP: data.lastFundingRatePerSecondP,
185
+ };
186
+ }
187
+ const secondsSinceLastUpdate = currentTimestamp - data.lastFundingUpdateTs;
188
+ // Calculate current velocity
189
+ const currentVelocityPerYear = (0, exports.getCurrentFundingVelocityPerYear)(netExposureToken, netExposureUsd, params.skewCoefficientPerYear, params.absoluteVelocityPerYearCap, params.thetaThresholdUsd);
190
+ // Get average and current funding rates
191
+ const { avgFundingRatePerSecondP, currentFundingRatePerSecondP } = (0, exports.getAvgFundingRatePerSecondP)(data.lastFundingRatePerSecondP, params.absoluteRatePerSecondCap, currentVelocityPerYear, secondsSinceLastUpdate);
192
+ // Check if we need to handle rate sign change
193
+ const rateChangedSign = params.aprMultiplierEnabled &&
194
+ ((currentFundingRatePerSecondP > 0 && data.lastFundingRatePerSecondP < 0) ||
195
+ (currentFundingRatePerSecondP < 0 && data.lastFundingRatePerSecondP > 0));
196
+ if (rateChangedSign) {
197
+ // Split calculation into two periods: before and after sign change
198
+ // 1. From last update to rate = 0
199
+ const secondsToReachZeroRate = (0, exports.getSecondsToReachZeroRate)(data.lastFundingRatePerSecondP, currentVelocityPerYear);
200
+ const avgFundingRatePerSecondP_1 = data.lastFundingRatePerSecondP / 2;
201
+ const fundingFeesDeltaP_1 = avgFundingRatePerSecondP_1 * secondsToReachZeroRate * currentPairPrice;
202
+ const { longAprMultiplier: longMultiplier1, shortAprMultiplier: shortMultiplier1, } = (0, exports.getLongShortAprMultiplier)(avgFundingRatePerSecondP_1, pairOiToken.oiLongToken, pairOiToken.oiShortToken, true);
203
+ accFundingFeeLongP += fundingFeesDeltaP_1 * longMultiplier1;
204
+ accFundingFeeShortP -= fundingFeesDeltaP_1 * shortMultiplier1;
205
+ // 2. From rate = 0 to current rate
206
+ const avgFundingRatePerSecondP_2 = currentFundingRatePerSecondP / 2;
207
+ const fundingFeesDeltaP_2 = avgFundingRatePerSecondP_2 *
208
+ (secondsSinceLastUpdate - secondsToReachZeroRate) *
209
+ currentPairPrice;
210
+ const { longAprMultiplier: longMultiplier2, shortAprMultiplier: shortMultiplier2, } = (0, exports.getLongShortAprMultiplier)(avgFundingRatePerSecondP_2, pairOiToken.oiLongToken, pairOiToken.oiShortToken, true);
211
+ accFundingFeeLongP += fundingFeesDeltaP_2 * longMultiplier2;
212
+ accFundingFeeShortP -= fundingFeesDeltaP_2 * shortMultiplier2;
213
+ }
214
+ else {
215
+ // Single period calculation
216
+ const fundingFeesDeltaP = avgFundingRatePerSecondP * secondsSinceLastUpdate * currentPairPrice;
217
+ const { longAprMultiplier, shortAprMultiplier } = (0, exports.getLongShortAprMultiplier)(avgFundingRatePerSecondP, pairOiToken.oiLongToken, pairOiToken.oiShortToken, params.aprMultiplierEnabled);
218
+ accFundingFeeLongP += fundingFeesDeltaP * longAprMultiplier;
219
+ accFundingFeeShortP -= fundingFeesDeltaP * shortAprMultiplier;
220
+ }
221
+ return {
222
+ accFundingFeeLongP,
223
+ accFundingFeeShortP,
224
+ currentFundingRatePerSecondP,
225
+ };
226
+ };
227
+ exports.getPairPendingAccFundingFees = getPairPendingAccFundingFees;
228
+ /**
229
+ * @dev Calculates funding fees for a specific trade
230
+ * @param trade Trade parameters (collateral amount, leverage, open price, long/short)
231
+ * @param tradeInfo Trade info (contracts version)
232
+ * @param tradeFeesData Trade fees data containing initial acc funding fee
233
+ * @param currentPairPrice Current pair price
234
+ * @param context Pair-specific funding fee context
235
+ * @returns Funding fee in collateral tokens
236
+ */
237
+ const getTradeFundingFeesCollateral = (trade, tradeInfo, tradeFeesData, currentPairPrice, context) => {
238
+ if (tradeInfo.contractsVersion < types_1.ContractsVersion.V10) {
239
+ return 0;
240
+ }
241
+ const positionSizeCollateral = trade.collateralAmount * trade.leverage;
242
+ if (!context.params.fundingFeesEnabled) {
243
+ return 0;
244
+ }
245
+ // Calculate pending accumulated fees
246
+ const { accFundingFeeLongP, accFundingFeeShortP } = (0, exports.getPairPendingAccFundingFees)(context.params, context.data, currentPairPrice, context.pairOi || { oiLongToken: 0, oiShortToken: 0 }, context.netExposureToken || 0, context.netExposureUsd || 0, context.currentTimestamp);
247
+ const currentAccFundingFeeP = trade.long
248
+ ? accFundingFeeLongP
249
+ : accFundingFeeShortP;
250
+ const fundingFeeDelta = currentAccFundingFeeP - tradeFeesData.initialAccFundingFeeP;
251
+ return (positionSizeCollateral * fundingFeeDelta) / trade.openPrice / 100;
252
+ };
253
+ exports.getTradeFundingFeesCollateral = getTradeFundingFeesCollateral;
254
+ /**
255
+ * @dev Main function to calculate funding fees for a trade within context
256
+ * @param input Trade funding fee input parameters
257
+ * @param context Funding fee context with params and data
258
+ * @returns Complete funding fee calculation result
259
+ */
260
+ const getTradeFundingFees = (input, context) => {
261
+ var _a, _b;
262
+ // Get params and data from context
263
+ const params = (_a = context.fundingParams[input.collateralIndex]) === null || _a === void 0 ? void 0 : _a[input.pairIndex];
264
+ const data = (_b = context.fundingData[input.collateralIndex]) === null || _b === void 0 ? void 0 : _b[input.pairIndex];
265
+ if (!params || !data) {
266
+ throw new Error(`Missing funding fee data for collateral ${input.collateralIndex} pair ${input.pairIndex}`);
267
+ }
268
+ // Calculate pending accumulated fees
269
+ const { accFundingFeeLongP, accFundingFeeShortP } = (0, exports.getPairPendingAccFundingFees)(params, data, input.currentPairPrice, input.pairOiToken, input.netExposureToken, input.netExposureUsd, context.currentTimestamp);
270
+ const currentAccFundingFeeP = input.trade.long
271
+ ? accFundingFeeLongP
272
+ : accFundingFeeShortP;
273
+ // Calculate funding fee in collateral
274
+ const fundingFeeCollateral = (0, exports.getTradeFundingFeesCollateralSimple)(input.trade, input.tradeInfo, input.initialAccFundingFeeP, currentAccFundingFeeP);
275
+ // Calculate funding fee as percentage
276
+ const fundingFeeP = input.trade.collateralAmount > 0
277
+ ? (fundingFeeCollateral / input.trade.collateralAmount) * 100
278
+ : 0;
279
+ return {
280
+ fundingFeeCollateral,
281
+ fundingFeeP,
282
+ currentAccFundingFeeP,
283
+ initialAccFundingFeeP: input.initialAccFundingFeeP,
284
+ };
285
+ };
286
+ exports.getTradeFundingFees = getTradeFundingFees;
287
+ /**
288
+ * @dev Simple version of getTradeFundingFeesCollateral for backward compatibility
289
+ * @param trade Trade parameters
290
+ * @param tradeInfo Trade info with contracts version
291
+ * @param initialAccFundingFeeP Initial accumulated funding fee
292
+ * @param currentAccFundingFeeP Current accumulated funding fee
293
+ * @returns Funding fee in collateral tokens
294
+ */
295
+ const getTradeFundingFeesCollateralSimple = (trade, tradeInfo, initialAccFundingFeeP, currentAccFundingFeeP) => {
296
+ // Funding fees are only charged on post-v10 trades
297
+ if (tradeInfo.contractsVersion < types_1.ContractsVersion.V10) {
298
+ return 0;
299
+ }
300
+ const positionSizeCollateral = trade.collateralAmount * trade.leverage;
301
+ const fundingFeeDelta = currentAccFundingFeeP - initialAccFundingFeeP;
302
+ return (positionSizeCollateral * fundingFeeDelta) / trade.openPrice / 100;
303
+ };
304
+ exports.getTradeFundingFeesCollateralSimple = getTradeFundingFeesCollateralSimple;
305
+ // Export namespace for types
306
+ exports.FundingFees = __importStar(require("./types"));
307
+ __exportStar(require("./fetcher"), exports);
308
+ __exportStar(require("./pairContext"), exports);
309
+ __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;
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @dev Funding fees types for v10+ trades
3
+ */
4
+ export type FundingFeeParams = {
5
+ skewCoefficientPerYear: number;
6
+ absoluteVelocityPerYearCap: number;
7
+ absoluteRatePerSecondCap: number;
8
+ thetaThresholdUsd: number;
9
+ fundingFeesEnabled: boolean;
10
+ aprMultiplierEnabled: boolean;
11
+ };
12
+ export type PairFundingFeeData = {
13
+ accFundingFeeLongP: number;
14
+ accFundingFeeShortP: number;
15
+ lastFundingRatePerSecondP: number;
16
+ lastFundingUpdateTs: number;
17
+ };
18
+ export type PairGlobalParams = {
19
+ maxSkewCollateral: number;
20
+ };
21
+ export type TradeInitialAccFundingFees = {
22
+ initialAccFundingFeeP: number;
23
+ };
24
+ export type PairAccumulatedFees = {
25
+ accPerOiLong: number;
26
+ accPerOiShort: number;
27
+ lastUpdateBlock: number;
28
+ };
29
+ export type TradeInitialAccFees = {
30
+ accPerOiLong: number;
31
+ accPerOiShort: number;
32
+ openBlock: number;
33
+ };
34
+ export type PairOiAfterV10 = {
35
+ oiLongToken: number;
36
+ oiShortToken: number;
37
+ };
38
+ export type FundingRateCalculation = {
39
+ pairOiToken: PairOiAfterV10;
40
+ netExposureToken: number;
41
+ netExposureUsd: number;
42
+ currentVelocityPerYear: number;
43
+ avgFundingRatePerSecondP: number;
44
+ currentFundingRatePerSecondP: number;
45
+ secondsSinceLastUpdate: number;
46
+ longAprMultiplier: number;
47
+ shortAprMultiplier: number;
48
+ };
49
+ export type GetFundingFeeContext = {
50
+ currentTimestamp: number;
51
+ fundingParams: {
52
+ [collateralIndex: number]: {
53
+ [pairIndex: number]: FundingFeeParams;
54
+ };
55
+ };
56
+ fundingData: {
57
+ [collateralIndex: number]: {
58
+ [pairIndex: number]: PairFundingFeeData;
59
+ };
60
+ };
61
+ globalParams?: {
62
+ [collateralIndex: number]: {
63
+ [pairIndex: number]: PairGlobalParams;
64
+ };
65
+ };
66
+ };
67
+ export type TradeFundingFeeResult = {
68
+ fundingFeeCollateral: number;
69
+ fundingFeeP: number;
70
+ currentAccFundingFeeP: number;
71
+ initialAccFundingFeeP: number;
72
+ };
73
+ export type PairPendingAccFundingFeesResult = {
74
+ accFundingFeeLongP: number;
75
+ accFundingFeeShortP: number;
76
+ currentFundingRatePerSecondP: number;
77
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * @dev Funding fees types for v10+ trades
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,9 @@
1
- import { Fee, PairIndex } from "../types";
2
- export declare const getClosingFee: (posDai: number, leverage: number, pairIndex: PairIndex, pairFee: Fee | undefined, collateralPriceUsd?: number | undefined, feeMultiplier?: number | undefined) => number;
3
1
  export * from "./borrowing";
4
2
  export * from "./tiers";
3
+ export * from "./trading";
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";
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";
7
+ export { fetchBorrowingFeeParamsV2, fetchPairBorrowingFeeDataV2, fetchTradeBorrowingFeesCollateralV2, fetchPairPendingAccBorrowingFeesV2, fetchAllBorrowingV2Data, createBorrowingV2ContextFromContract, createBorrowingV2ContextFromArrays, fetchBorrowingV2DataForPairs, } from "./borrowingV2/fetcher";
8
+ export { FundingFees, getCurrentFundingVelocityPerYear, getSecondsToReachZeroRate, getAvgFundingRatePerSecondP, getLongShortAprMultiplier, getPairPendingAccFundingFees, getTradeFundingFeesCollateral, getTradeFundingFeesCollateralSimple, getTradeFundingFees, } from "./fundingFees";
9
+ export { convertFundingFeeParams, convertFundingFeeParamsArray, convertPairFundingFeeData, convertPairFundingFeeDataArray, convertPairGlobalParams, convertPairGlobalParamsArray, convertTradeInitialAccFundingFees, createFundingFeeContext, isValidFundingRate, fundingRateToAPR, aprToFundingRate, calculateVelocityFromSkew, FUNDING_FEES_PRECISION, } from "./fundingFees/converter";