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

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 (238) 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 +20 -0
  14. package/lib/constants.js +24 -3
  15. package/lib/contracts/addresses.json +20 -0
  16. package/lib/contracts/index.js +3 -1
  17. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  18. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  19. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
  20. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
  21. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +979 -0
  22. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +2 -0
  23. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +1058 -0
  24. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +2 -0
  25. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +7 -20
  26. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
  27. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
  28. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
  29. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
  30. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -0
  31. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -0
  32. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -0
  33. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -0
  34. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  35. package/lib/contracts/types/generated/GNSTrading.js +2 -0
  36. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
  37. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
  38. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +806 -0
  39. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +2 -0
  40. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +821 -0
  41. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +2 -0
  42. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  43. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
  44. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
  45. package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -0
  46. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  47. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
  48. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +88 -0
  49. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +1654 -0
  50. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +113 -0
  51. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +1742 -0
  52. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -0
  53. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -0
  54. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +7 -16
  55. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
  56. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
  57. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
  58. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
  59. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  60. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
  61. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  62. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
  63. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +82 -0
  64. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1273 -0
  65. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
  66. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
  67. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  68. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  69. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  70. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  71. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  72. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  73. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  74. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  75. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +7 -0
  76. package/lib/contracts/types/generated/factories/GToken__factory.js +4 -0
  77. package/lib/contracts/types/index.d.ts +2 -1
  78. package/lib/contracts/types/index.js +1 -0
  79. package/lib/contracts/utils/index.d.ts +0 -3
  80. package/lib/contracts/utils/index.js +0 -3
  81. package/lib/contracts/utils/openTrades.js +14 -30
  82. package/lib/contracts/utils/pairs.js +20 -0
  83. package/lib/index.d.ts +2 -0
  84. package/lib/index.js +5 -0
  85. package/lib/markets/collateral/converter.d.ts +5 -0
  86. package/lib/markets/collateral/converter.js +11 -0
  87. package/lib/markets/collateral/index.d.ts +1 -0
  88. package/lib/markets/collateral/index.js +17 -0
  89. package/lib/markets/collateral/types.d.ts +7 -0
  90. package/lib/markets/collateral/types.js +2 -0
  91. package/lib/markets/holdingFees/index.d.ts +46 -0
  92. package/lib/markets/holdingFees/index.js +105 -0
  93. package/lib/markets/holdingFees/types.d.ts +23 -0
  94. package/lib/markets/holdingFees/types.js +5 -0
  95. package/lib/markets/index.d.ts +5 -0
  96. package/lib/markets/index.js +5 -0
  97. package/lib/markets/leverage/builder.d.ts +12 -0
  98. package/lib/markets/leverage/builder.js +25 -0
  99. package/lib/markets/leverage/getMarketLeverageRestrictions.d.ts +7 -0
  100. package/lib/markets/leverage/getMarketLeverageRestrictions.js +38 -0
  101. package/lib/markets/leverage/index.d.ts +3 -0
  102. package/lib/markets/leverage/index.js +19 -0
  103. package/lib/markets/leverage/types.d.ts +15 -0
  104. package/lib/markets/leverage/types.js +2 -0
  105. package/lib/markets/oi/converter.d.ts +62 -0
  106. package/lib/markets/oi/converter.js +102 -0
  107. package/lib/markets/oi/fetcher.d.ts +58 -0
  108. package/lib/markets/oi/fetcher.js +181 -0
  109. package/lib/markets/oi/index.d.ts +49 -0
  110. package/lib/markets/oi/index.js +77 -0
  111. package/lib/markets/oi/types.d.ts +73 -0
  112. package/lib/markets/oi/types.js +6 -0
  113. package/lib/markets/oi/validation.d.ts +80 -0
  114. package/lib/markets/oi/validation.js +172 -0
  115. package/lib/markets/price/builder.d.ts +25 -0
  116. package/lib/markets/price/builder.js +69 -0
  117. package/lib/markets/price/index.d.ts +6 -0
  118. package/lib/markets/price/index.js +22 -0
  119. package/lib/markets/price/marketPrice.d.ts +12 -0
  120. package/lib/markets/price/marketPrice.js +34 -0
  121. package/lib/markets/price/types.d.ts +23 -0
  122. package/lib/markets/price/types.js +5 -0
  123. package/lib/trade/counterTrade/index.d.ts +2 -0
  124. package/lib/trade/counterTrade/index.js +18 -0
  125. package/lib/trade/counterTrade/types.d.ts +7 -0
  126. package/lib/trade/counterTrade/types.js +2 -0
  127. package/lib/trade/counterTrade/validateCounterTrade.d.ts +10 -0
  128. package/lib/trade/counterTrade/validateCounterTrade.js +29 -0
  129. package/lib/trade/effectiveLeverage/builder.d.ts +23 -0
  130. package/lib/trade/effectiveLeverage/builder.js +30 -0
  131. package/lib/trade/effectiveLeverage/getTradeNewEffectiveLeverage.d.ts +23 -0
  132. package/lib/trade/effectiveLeverage/getTradeNewEffectiveLeverage.js +64 -0
  133. package/lib/trade/effectiveLeverage/index.d.ts +3 -0
  134. package/lib/trade/effectiveLeverage/index.js +22 -0
  135. package/lib/trade/effectiveLeverage/types.d.ts +33 -0
  136. package/lib/trade/effectiveLeverage/types.js +2 -0
  137. package/lib/trade/fees/borrowing/builder.d.ts +14 -0
  138. package/lib/trade/fees/borrowing/builder.js +33 -0
  139. package/lib/trade/fees/borrowing/index.d.ts +15 -4
  140. package/lib/trade/fees/borrowing/index.js +42 -18
  141. package/lib/trade/fees/borrowingV2/builder.d.ts +6 -0
  142. package/lib/trade/fees/borrowingV2/builder.js +24 -0
  143. package/lib/trade/fees/borrowingV2/converter.d.ts +12 -3
  144. package/lib/trade/fees/borrowingV2/converter.js +29 -18
  145. package/lib/{contracts/fetch/fees/borrowingFeesV2.d.ts → trade/fees/borrowingV2/fetcher.d.ts} +2 -3
  146. package/lib/{contracts/fetch/fees/borrowingFeesV2.js → trade/fees/borrowingV2/fetcher.js} +6 -14
  147. package/lib/trade/fees/borrowingV2/index.d.ts +6 -17
  148. package/lib/trade/fees/borrowingV2/index.js +10 -37
  149. package/lib/trade/fees/borrowingV2/types.d.ts +22 -6
  150. package/lib/trade/fees/converter.d.ts +48 -0
  151. package/lib/trade/fees/converter.js +114 -0
  152. package/lib/trade/fees/fundingFees/builder.d.ts +9 -0
  153. package/lib/trade/fees/fundingFees/builder.js +35 -0
  154. package/lib/{contracts/fetch/fees/fundingFees.d.ts → trade/fees/fundingFees/fetcher.d.ts} +2 -2
  155. package/lib/trade/fees/fundingFees/index.d.ts +28 -39
  156. package/lib/trade/fees/fundingFees/index.js +33 -46
  157. package/lib/trade/fees/fundingFees/pairContext.d.ts +33 -0
  158. package/lib/trade/fees/fundingFees/pairContext.js +17 -0
  159. package/lib/trade/fees/holdingFees/index.d.ts +46 -0
  160. package/lib/trade/fees/holdingFees/index.js +105 -0
  161. package/lib/trade/fees/holdingFees/types.d.ts +23 -0
  162. package/lib/trade/fees/holdingFees/types.js +5 -0
  163. package/lib/trade/fees/index.d.ts +4 -2
  164. package/lib/trade/fees/index.js +45 -36
  165. package/lib/trade/fees/tiers/converter.d.ts +54 -0
  166. package/lib/trade/fees/tiers/converter.js +81 -0
  167. package/lib/trade/fees/tiers/index.d.ts +1 -0
  168. package/lib/trade/fees/tiers/index.js +1 -0
  169. package/lib/trade/fees/trading/builder.d.ts +18 -0
  170. package/lib/trade/fees/trading/builder.js +20 -0
  171. package/lib/trade/fees/trading/converter.d.ts +2 -0
  172. package/lib/trade/fees/trading/converter.js +5 -1
  173. package/lib/trade/fees/trading/holdingFees.d.ts +28 -0
  174. package/lib/trade/fees/trading/holdingFees.js +66 -0
  175. package/lib/trade/fees/trading/holdingFeesStructured.d.ts +28 -0
  176. package/lib/trade/fees/trading/holdingFeesStructured.js +66 -0
  177. package/lib/trade/fees/trading/index.d.ts +30 -2
  178. package/lib/trade/fees/trading/index.js +52 -1
  179. package/lib/trade/fees/trading/types.d.ts +9 -0
  180. package/lib/trade/index.d.ts +3 -1
  181. package/lib/trade/index.js +3 -1
  182. package/lib/trade/liquidation/builder.d.ts +25 -0
  183. package/lib/trade/liquidation/builder.js +59 -0
  184. package/lib/trade/liquidation/converter.d.ts +23 -0
  185. package/lib/trade/liquidation/converter.js +46 -0
  186. package/lib/trade/liquidation/index.d.ts +16 -0
  187. package/lib/trade/liquidation/index.js +123 -0
  188. package/lib/trade/liquidation/types.d.ts +42 -0
  189. package/lib/trade/liquidation/types.js +2 -0
  190. package/lib/trade/pnl/builder.d.ts +16 -0
  191. package/lib/trade/pnl/builder.js +44 -0
  192. package/lib/trade/pnl/converter.d.ts +47 -0
  193. package/lib/trade/pnl/converter.js +72 -0
  194. package/lib/trade/pnl/index.d.ts +88 -0
  195. package/lib/trade/pnl/index.js +286 -0
  196. package/lib/trade/pnl/types.d.ts +75 -0
  197. package/lib/trade/pnl/types.js +5 -0
  198. package/lib/trade/priceImpact/close/builder.d.ts +23 -0
  199. package/lib/trade/priceImpact/close/builder.js +45 -0
  200. package/lib/trade/priceImpact/close/index.d.ts +22 -0
  201. package/lib/trade/priceImpact/close/index.js +123 -0
  202. package/lib/trade/priceImpact/close/types.d.ts +44 -0
  203. package/lib/trade/priceImpact/close/types.js +5 -0
  204. package/lib/trade/priceImpact/cumulVol/builder.d.ts +22 -0
  205. package/lib/trade/priceImpact/cumulVol/builder.js +43 -0
  206. package/lib/trade/priceImpact/cumulVol/converter.d.ts +31 -0
  207. package/lib/trade/priceImpact/cumulVol/converter.js +59 -0
  208. package/lib/trade/priceImpact/cumulVol/index.d.ts +108 -0
  209. package/lib/trade/priceImpact/cumulVol/index.js +235 -0
  210. package/lib/trade/priceImpact/index.d.ts +17 -4
  211. package/lib/trade/priceImpact/index.js +57 -9
  212. package/lib/trade/priceImpact/open/builder.d.ts +21 -0
  213. package/lib/trade/priceImpact/open/builder.js +43 -0
  214. package/lib/trade/priceImpact/open/index.d.ts +23 -0
  215. package/lib/trade/priceImpact/open/index.js +74 -0
  216. package/lib/trade/priceImpact/open/types.d.ts +42 -0
  217. package/lib/trade/priceImpact/open/types.js +5 -0
  218. package/lib/trade/priceImpact/skew/builder.d.ts +12 -0
  219. package/lib/trade/priceImpact/skew/builder.js +28 -0
  220. package/lib/trade/priceImpact/skew/converter.d.ts +11 -42
  221. package/lib/trade/priceImpact/skew/converter.js +19 -109
  222. package/lib/{contracts/fetch/priceImpact/skew.d.ts → trade/priceImpact/skew/fetcher.d.ts} +9 -12
  223. package/lib/{contracts/fetch/priceImpact/skew.js → trade/priceImpact/skew/fetcher.js} +23 -22
  224. package/lib/trade/priceImpact/skew/index.d.ts +8 -5
  225. package/lib/trade/priceImpact/skew/index.js +18 -20
  226. package/lib/trade/priceImpact/skew/types.d.ts +2 -15
  227. package/lib/trade/spread.d.ts +5 -18
  228. package/lib/trade/spread.js +17 -106
  229. package/lib/trade/types.d.ts +30 -8
  230. package/lib/trade/types.js +20 -0
  231. package/lib/vault/index.d.ts +3 -1
  232. package/lib/vault/index.js +2 -2
  233. package/package.json +2 -2
  234. package/lib/trade/liquidation.d.ts +0 -42
  235. package/lib/trade/liquidation.js +0 -140
  236. package/lib/trade/pnl.d.ts +0 -10
  237. package/lib/trade/pnl.js +0 -38
  238. /package/lib/{contracts/fetch/fees/fundingFees.js → trade/fees/fundingFees/fetcher.js} +0 -0
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMarketLeverageRestrictions = void 0;
4
+ /**
5
+ * Gets the leverage restrictions for a trading pair, including both regular and counter trade limits
6
+ * @param context Context containing group limits, pair overrides, and counter trade settings
7
+ * @returns Object with regular and counter trade leverage restrictions
8
+ */
9
+ const getMarketLeverageRestrictions = (context) => {
10
+ const { groupMinLeverage, groupMaxLeverage, pairMaxLeverage, counterTradeSettings, } = context;
11
+ // Calculate regular trade leverage limits
12
+ let regularMin = groupMinLeverage;
13
+ let regularMax = pairMaxLeverage === undefined || pairMaxLeverage === 0
14
+ ? groupMaxLeverage
15
+ : pairMaxLeverage;
16
+ // If max is less than min, set both to 0 (pair is effectively disabled)
17
+ if (regularMax < regularMin) {
18
+ regularMin = 0;
19
+ regularMax = 0;
20
+ }
21
+ // Calculate counter trade leverage limits if settings exist
22
+ let counterTradeLimits = null;
23
+ if (counterTradeSettings) {
24
+ // Counter trades use the group's min leverage but have their own max leverage
25
+ counterTradeLimits = {
26
+ min: groupMinLeverage,
27
+ max: counterTradeSettings.maxLeverage,
28
+ };
29
+ }
30
+ return {
31
+ regular: {
32
+ min: regularMin,
33
+ max: regularMax,
34
+ },
35
+ counterTrade: counterTradeLimits,
36
+ };
37
+ };
38
+ exports.getMarketLeverageRestrictions = getMarketLeverageRestrictions;
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export * from "./getMarketLeverageRestrictions";
3
+ export * from "./builder";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./getMarketLeverageRestrictions"), exports);
19
+ __exportStar(require("./builder"), exports);
@@ -0,0 +1,15 @@
1
+ import { CounterTradeSettings } from "../../trade/types";
2
+ export type LeverageRestrictions = {
3
+ min: number;
4
+ max: number;
5
+ };
6
+ export type MarketLeverageRestrictions = {
7
+ regular: LeverageRestrictions;
8
+ counterTrade: LeverageRestrictions | null;
9
+ };
10
+ export type GetMarketLeverageRestrictionsContext = {
11
+ groupMinLeverage: number;
12
+ groupMaxLeverage: number;
13
+ pairMaxLeverage?: number;
14
+ counterTradeSettings?: CounterTradeSettings;
15
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @dev Converters for OI data between contract and SDK formats
3
+ * @dev Handles the three OI storage systems and precision conversions
4
+ */
5
+ import { IBorrowingFees, IPriceImpact } from "../../contracts/types/generated/GNSMultiCollatDiamond";
6
+ import { UnifiedPairOi, ComputedOi } from "./types";
7
+ /**
8
+ * @dev Converts pre-v10 OI from contract format
9
+ * @param contractOi Contract OpenInterest struct from BorrowingFeesStorage
10
+ * @returns Normalized OI with long/short values
11
+ */
12
+ export declare const convertBeforeV10Collateral: (contractOi: IBorrowingFees.OpenInterestStructOutput) => {
13
+ long: number;
14
+ short: number;
15
+ };
16
+ /**
17
+ * @dev Converts post-v10 collateral OI from contract format
18
+ * @param contractOi Contract PairOiCollateral struct
19
+ * @param precision Collateral precision for conversion
20
+ * @returns Normalized OI with long/short values
21
+ */
22
+ export declare const convertCollateralOi: (contractOi: IPriceImpact.PairOiCollateralStructOutput, precision: number) => {
23
+ long: number;
24
+ short: number;
25
+ };
26
+ /**
27
+ * @dev Converts post-v10 token OI from contract format
28
+ * @param contractOi Contract PairOiToken struct
29
+ * @returns Normalized OI with long/short values (1e18 precision)
30
+ */
31
+ export declare const convertTokenOi: (contractOi: IPriceImpact.PairOiTokenStructOutput) => {
32
+ long: number;
33
+ short: number;
34
+ };
35
+ /**
36
+ * @dev Converts all OI data for a pair into unified structure
37
+ * @param beforeV10 Pre-v10 OI from BorrowingFeesStorage
38
+ * @param afterV10Collateral Post-v10 collateral OI from PriceImpactStorage
39
+ * @param afterV10Token Post-v10 token OI from PriceImpactStorage
40
+ * @param maxOi Maximum OI allowed (from BorrowingFeesStorage)
41
+ * @param collateralPrecision Precision for collateral conversions
42
+ * @returns Unified PairOi structure
43
+ */
44
+ export declare const convertPairOi: (beforeV10: IBorrowingFees.OpenInterestStructOutput, afterV10Collateral: IPriceImpact.PairOiCollateralStructOutput, afterV10Token: IPriceImpact.PairOiTokenStructOutput, collateralPrecision: number) => UnifiedPairOi;
45
+ /**
46
+ * @dev Batch converter for multiple pairs
47
+ * @param pairs Array of OI data for multiple pairs
48
+ * @param collateralPrecision Precision for collateral conversions
49
+ * @returns Array of unified PairOi structures
50
+ */
51
+ export declare const convertPairOiArray: (pairs: Array<{
52
+ beforeV10: IBorrowingFees.OpenInterestStructOutput;
53
+ collateral: IPriceImpact.PairOiCollateralStructOutput;
54
+ token: IPriceImpact.PairOiTokenStructOutput;
55
+ }>, collateralPrecision: number) => UnifiedPairOi[];
56
+ /**
57
+ * @dev Computes derived OI values from unified structure
58
+ * @param pairOi Unified pair OI data
59
+ * @param tokenPriceCollateral Current token price in collateral units
60
+ * @returns Computed values including total OI and skew
61
+ */
62
+ export declare const computeOiValues: (pairOi: UnifiedPairOi, tokenPriceCollateral: number) => ComputedOi;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /**
3
+ * @dev Converters for OI data between contract and SDK formats
4
+ * @dev Handles the three OI storage systems and precision conversions
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.computeOiValues = exports.convertPairOiArray = exports.convertPairOi = exports.convertTokenOi = exports.convertCollateralOi = exports.convertBeforeV10Collateral = void 0;
8
+ /**
9
+ * @dev Converts pre-v10 OI from contract format
10
+ * @param contractOi Contract OpenInterest struct from BorrowingFeesStorage
11
+ * @returns Normalized OI with long/short values
12
+ */
13
+ const convertBeforeV10Collateral = (contractOi) => {
14
+ return {
15
+ long: Number(contractOi.long) / 1e10,
16
+ short: Number(contractOi.short) / 1e10,
17
+ };
18
+ };
19
+ exports.convertBeforeV10Collateral = convertBeforeV10Collateral;
20
+ /**
21
+ * @dev Converts post-v10 collateral OI from contract format
22
+ * @param contractOi Contract PairOiCollateral struct
23
+ * @param precision Collateral precision for conversion
24
+ * @returns Normalized OI with long/short values
25
+ */
26
+ const convertCollateralOi = (contractOi, precision) => {
27
+ return {
28
+ long: Number(contractOi.oiLongCollateral) / precision,
29
+ short: Number(contractOi.oiShortCollateral) / precision,
30
+ };
31
+ };
32
+ exports.convertCollateralOi = convertCollateralOi;
33
+ /**
34
+ * @dev Converts post-v10 token OI from contract format
35
+ * @param contractOi Contract PairOiToken struct
36
+ * @returns Normalized OI with long/short values (1e18 precision)
37
+ */
38
+ const convertTokenOi = (contractOi) => {
39
+ return {
40
+ long: Number(contractOi.oiLongToken) / 1e18,
41
+ short: Number(contractOi.oiShortToken) / 1e18,
42
+ };
43
+ };
44
+ exports.convertTokenOi = convertTokenOi;
45
+ /**
46
+ * @dev Converts all OI data for a pair into unified structure
47
+ * @param beforeV10 Pre-v10 OI from BorrowingFeesStorage
48
+ * @param afterV10Collateral Post-v10 collateral OI from PriceImpactStorage
49
+ * @param afterV10Token Post-v10 token OI from PriceImpactStorage
50
+ * @param maxOi Maximum OI allowed (from BorrowingFeesStorage)
51
+ * @param collateralPrecision Precision for collateral conversions
52
+ * @returns Unified PairOi structure
53
+ */
54
+ const convertPairOi = (beforeV10, afterV10Collateral, afterV10Token, collateralPrecision) => {
55
+ return {
56
+ maxCollateral: Number(beforeV10.max) / 1e10,
57
+ beforeV10Collateral: (0, exports.convertBeforeV10Collateral)(beforeV10),
58
+ collateral: (0, exports.convertCollateralOi)(afterV10Collateral, collateralPrecision),
59
+ token: (0, exports.convertTokenOi)(afterV10Token),
60
+ };
61
+ };
62
+ exports.convertPairOi = convertPairOi;
63
+ /**
64
+ * @dev Batch converter for multiple pairs
65
+ * @param pairs Array of OI data for multiple pairs
66
+ * @param collateralPrecision Precision for collateral conversions
67
+ * @returns Array of unified PairOi structures
68
+ */
69
+ const convertPairOiArray = (pairs, collateralPrecision) => {
70
+ return pairs.map(p => (0, exports.convertPairOi)(p.beforeV10, p.collateral, p.token, collateralPrecision));
71
+ };
72
+ exports.convertPairOiArray = convertPairOiArray;
73
+ /**
74
+ * @dev Computes derived OI values from unified structure
75
+ * @param pairOi Unified pair OI data
76
+ * @param tokenPriceCollateral Current token price in collateral units
77
+ * @returns Computed values including total OI and skew
78
+ */
79
+ const computeOiValues = (pairOi, tokenPriceCollateral) => {
80
+ // Static total (used for admin operations)
81
+ const totalStaticLong = pairOi.beforeV10Collateral.long + pairOi.collateral.long;
82
+ const totalStaticShort = pairOi.beforeV10Collateral.short + pairOi.collateral.short;
83
+ // Dynamic total (used for real-time calculations)
84
+ const tokenLongCollateral = pairOi.token.long * tokenPriceCollateral;
85
+ const tokenShortCollateral = pairOi.token.short * tokenPriceCollateral;
86
+ const totalDynamicLong = pairOi.beforeV10Collateral.long + tokenLongCollateral;
87
+ const totalDynamicShort = pairOi.beforeV10Collateral.short + tokenShortCollateral;
88
+ // Skew (v10+ only, in tokens)
89
+ const skewToken = pairOi.token.long - pairOi.token.short;
90
+ return {
91
+ totalStaticCollateral: {
92
+ long: totalStaticLong,
93
+ short: totalStaticShort,
94
+ },
95
+ totalDynamicCollateral: {
96
+ long: totalDynamicLong,
97
+ short: totalDynamicShort,
98
+ },
99
+ skewToken,
100
+ };
101
+ };
102
+ exports.computeOiValues = computeOiValues;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @dev Fetchers for retrieving OI data from contracts
3
+ * @dev Consolidates the three OI storage systems into unified format
4
+ */
5
+ import { ethers } from "ethers";
6
+ import { ChainId } from "../../contracts/types";
7
+ import { UnifiedPairOi } from "./types";
8
+ /**
9
+ * @dev Fetches all OI data for a single pair
10
+ * @param chainId Target chain
11
+ * @param collateralIndex Collateral type
12
+ * @param pairIndex Trading pair
13
+ * @param signer Ethers signer
14
+ * @returns Unified PairOi structure with all OI data
15
+ */
16
+ export declare function fetchPairOi(chainId: ChainId, collateralIndex: number, pairIndex: number, signer: ethers.Signer): Promise<UnifiedPairOi>;
17
+ /**
18
+ * @dev Fetches OI data for multiple pairs efficiently
19
+ * @param chainId Target chain
20
+ * @param collateralIndex Collateral type
21
+ * @param pairIndices Array of trading pairs
22
+ * @param signer Ethers signer
23
+ * @returns Array of unified PairOi structures
24
+ */
25
+ export declare function fetchMultiplePairOi(chainId: ChainId, collateralIndex: number, pairIndices: number[], signer: ethers.Signer): Promise<UnifiedPairOi[]>;
26
+ /**
27
+ * @dev Creates OI context for fee calculations
28
+ * @param chainId Target chain
29
+ * @param collateralIndex Collateral type
30
+ * @param pairIndex Trading pair
31
+ * @param signer Ethers signer
32
+ * @returns OI data formatted for SDK calculations
33
+ */
34
+ export declare function createOiContext(chainId: ChainId, collateralIndex: number, pairIndex: number, signer: ethers.Signer): Promise<{
35
+ pairOi: UnifiedPairOi;
36
+ currentPrice: number;
37
+ computed: {
38
+ totalDynamicOi: {
39
+ long: number;
40
+ short: number;
41
+ };
42
+ totalStaticOi: {
43
+ long: number;
44
+ short: number;
45
+ };
46
+ skew: number;
47
+ };
48
+ }>;
49
+ /**
50
+ * @dev Fetches only the OI data needed for specific use cases
51
+ * @param chainId Target chain
52
+ * @param collateralIndex Collateral type
53
+ * @param pairIndex Trading pair
54
+ * @param useCase Which OI systems to fetch
55
+ * @param signer Ethers signer
56
+ * @returns Partial OI data based on use case
57
+ */
58
+ export declare function fetchOiForUseCase(chainId: ChainId, collateralIndex: number, pairIndex: number, useCase: "skew" | "funding" | "borrowingV1" | "limits", signer: ethers.Signer): Promise<Partial<UnifiedPairOi>>;
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ /**
3
+ * @dev Fetchers for retrieving OI data from contracts
4
+ * @dev Consolidates the three OI storage systems into unified format
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.fetchOiForUseCase = exports.createOiContext = exports.fetchMultiplePairOi = exports.fetchPairOi = void 0;
17
+ const ethers_1 = require("ethers");
18
+ const contracts_1 = require("../../contracts");
19
+ const generated_1 = require("../../contracts/types/generated");
20
+ const converter_1 = require("./converter");
21
+ /**
22
+ * @dev Fetches all OI data for a single pair
23
+ * @param chainId Target chain
24
+ * @param collateralIndex Collateral type
25
+ * @param pairIndex Trading pair
26
+ * @param signer Ethers signer
27
+ * @returns Unified PairOi structure with all OI data
28
+ */
29
+ function fetchPairOi(chainId, collateralIndex, pairIndex, signer) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const addresses = (0, contracts_1.getContractAddressesForChain)(chainId);
32
+ const diamond = generated_1.GNSMultiCollatDiamond__factory.connect(addresses.gnsMultiCollatDiamond, signer);
33
+ // Fetch all three OI types in parallel
34
+ const [beforeV10Raw, afterV10Collateral, afterV10Token, maxOi, collateral] = yield Promise.all([
35
+ diamond.getPairOisBeforeV10Collateral(collateralIndex, pairIndex),
36
+ diamond.getPairOiAfterV10Collateral(collateralIndex, pairIndex),
37
+ diamond.getPairOiAfterV10Token(collateralIndex, pairIndex),
38
+ diamond.getPairMaxOi(collateralIndex, pairIndex),
39
+ diamond.getCollateral(collateralIndex),
40
+ ]);
41
+ // Convert the beforeV10 format to match expected structure
42
+ const beforeV10 = {
43
+ long: beforeV10Raw.longOi,
44
+ short: beforeV10Raw.shortOi,
45
+ max: maxOi,
46
+ __placeholder: ethers_1.ethers.BigNumber.from(0),
47
+ };
48
+ return (0, converter_1.convertPairOi)(beforeV10, afterV10Collateral, afterV10Token, Number(collateral.precision));
49
+ });
50
+ }
51
+ exports.fetchPairOi = fetchPairOi;
52
+ /**
53
+ * @dev Fetches OI data for multiple pairs efficiently
54
+ * @param chainId Target chain
55
+ * @param collateralIndex Collateral type
56
+ * @param pairIndices Array of trading pairs
57
+ * @param signer Ethers signer
58
+ * @returns Array of unified PairOi structures
59
+ */
60
+ function fetchMultiplePairOi(chainId, collateralIndex, pairIndices, signer) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const addresses = (0, contracts_1.getContractAddressesForChain)(chainId);
63
+ const diamond = generated_1.GNSMultiCollatDiamond__factory.connect(addresses.gnsMultiCollatDiamond, signer);
64
+ // Get collateral precision once
65
+ const collateral = yield diamond.getCollateral(collateralIndex);
66
+ const precision = Number(collateral.precision);
67
+ // Batch fetch all OI data
68
+ const promises = pairIndices.map((pairIndex) => __awaiter(this, void 0, void 0, function* () {
69
+ const [beforeV10Raw, afterV10Collateral, afterV10Token, maxOi] = yield Promise.all([
70
+ diamond.getPairOisBeforeV10Collateral(collateralIndex, pairIndex),
71
+ diamond.getPairOiAfterV10Collateral(collateralIndex, pairIndex),
72
+ diamond.getPairOiAfterV10Token(collateralIndex, pairIndex),
73
+ diamond.getPairMaxOi(collateralIndex, pairIndex),
74
+ ]);
75
+ // Convert the beforeV10 format to match expected structure
76
+ const beforeV10 = {
77
+ long: beforeV10Raw.longOi,
78
+ short: beforeV10Raw.shortOi,
79
+ max: maxOi,
80
+ __placeholder: ethers_1.ethers.BigNumber.from(0),
81
+ };
82
+ return {
83
+ beforeV10: beforeV10,
84
+ collateral: afterV10Collateral,
85
+ token: afterV10Token,
86
+ };
87
+ }));
88
+ const results = yield Promise.all(promises);
89
+ return (0, converter_1.convertPairOiArray)(results, precision);
90
+ });
91
+ }
92
+ exports.fetchMultiplePairOi = fetchMultiplePairOi;
93
+ /**
94
+ * @dev Creates OI context for fee calculations
95
+ * @param chainId Target chain
96
+ * @param collateralIndex Collateral type
97
+ * @param pairIndex Trading pair
98
+ * @param signer Ethers signer
99
+ * @returns OI data formatted for SDK calculations
100
+ */
101
+ function createOiContext(chainId, collateralIndex, pairIndex, signer) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ // Fetch OI data
104
+ const pairOi = yield fetchPairOi(chainId, collateralIndex, pairIndex, signer);
105
+ // For now, use a placeholder price - in real usage, this would come from price feeds
106
+ // The actual price should be fetched from the price aggregator or oracle
107
+ const currentPrice = 1; // Placeholder - replace with actual price fetching
108
+ // Compute derived values
109
+ const totalDynamicOi = {
110
+ long: pairOi.beforeV10Collateral.long + pairOi.token.long * currentPrice,
111
+ short: pairOi.beforeV10Collateral.short + pairOi.token.short * currentPrice,
112
+ };
113
+ const totalStaticOi = {
114
+ long: pairOi.beforeV10Collateral.long + pairOi.collateral.long,
115
+ short: pairOi.beforeV10Collateral.short + pairOi.collateral.short,
116
+ };
117
+ const skew = pairOi.token.long - pairOi.token.short;
118
+ return {
119
+ pairOi,
120
+ currentPrice,
121
+ computed: {
122
+ totalDynamicOi,
123
+ totalStaticOi,
124
+ skew,
125
+ },
126
+ };
127
+ });
128
+ }
129
+ exports.createOiContext = createOiContext;
130
+ /**
131
+ * @dev Fetches only the OI data needed for specific use cases
132
+ * @param chainId Target chain
133
+ * @param collateralIndex Collateral type
134
+ * @param pairIndex Trading pair
135
+ * @param useCase Which OI systems to fetch
136
+ * @param signer Ethers signer
137
+ * @returns Partial OI data based on use case
138
+ */
139
+ function fetchOiForUseCase(chainId, collateralIndex, pairIndex, useCase, signer) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ const addresses = (0, contracts_1.getContractAddressesForChain)(chainId);
142
+ const diamond = generated_1.GNSMultiCollatDiamond__factory.connect(addresses.gnsMultiCollatDiamond, signer);
143
+ switch (useCase) {
144
+ case "skew":
145
+ case "funding": {
146
+ // Only need token OI
147
+ const tokenOi = yield diamond.getPairOiAfterV10Token(collateralIndex, pairIndex);
148
+ return {
149
+ token: (0, converter_1.convertTokenOi)(tokenOi),
150
+ };
151
+ }
152
+ case "borrowingV1": {
153
+ // Need beforeV10 and token (for dynamic calculation)
154
+ const [beforeV10Raw, tokenOi, collateral, maxOi] = yield Promise.all([
155
+ diamond.getPairOisBeforeV10Collateral(collateralIndex, pairIndex),
156
+ diamond.getPairOiAfterV10Token(collateralIndex, pairIndex),
157
+ diamond.getCollateral(collateralIndex),
158
+ diamond.getPairMaxOi(collateralIndex, pairIndex),
159
+ ]);
160
+ // Convert the beforeV10 format to match expected structure
161
+ const beforeV10 = {
162
+ long: beforeV10Raw.longOi,
163
+ short: beforeV10Raw.shortOi,
164
+ max: maxOi,
165
+ __placeholder: ethers_1.ethers.BigNumber.from(0),
166
+ };
167
+ return {
168
+ beforeV10Collateral: (0, converter_1.convertBeforeV10Collateral)(beforeV10, Number(collateral.precision)),
169
+ token: (0, converter_1.convertTokenOi)(tokenOi),
170
+ };
171
+ }
172
+ case "limits": {
173
+ // Need all OI for limit checks
174
+ return fetchPairOi(chainId, collateralIndex, pairIndex, signer);
175
+ }
176
+ default:
177
+ throw new Error(`Unknown use case: ${String(useCase)}`);
178
+ }
179
+ });
180
+ }
181
+ exports.fetchOiForUseCase = fetchOiForUseCase;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @dev Main export file for OI module
3
+ * @dev Provides unified Open Interest management functionality
4
+ */
5
+ import { GenericPairOiContext } from "./types";
6
+ export declare const getPairTotalOisCollateral: (pairIndex: number, context: GenericPairOiContext) => {
7
+ long: number;
8
+ short: number;
9
+ };
10
+ /**
11
+ * @dev Returns pair total dynamic open interest (before v10 + after v10) in collateral tokens
12
+ * @param pairIndex index of pair
13
+ * @param context contains UnifiedPairOi array and current pair price
14
+ * @returns dynamic OI for long and short sides in collateral precision
15
+ */
16
+ export declare const getPairTotalOisDynamicCollateral: (pairIndex: number, context: GenericPairOiContext & {
17
+ currentPairPrice: number;
18
+ }) => {
19
+ long: number;
20
+ short: number;
21
+ };
22
+ /**
23
+ * @dev Returns pair total dynamic open interest (before v10 + after v10) in collateral tokens on one side only
24
+ * @param pairIndex index of pair
25
+ * @param long true if long, false if short
26
+ * @param context contains UnifiedPairOi array and current pair price
27
+ * @returns dynamic OI for the specified side in collateral precision
28
+ */
29
+ export declare const getPairTotalOiDynamicCollateral: (pairIndex: number, long: boolean, context: GenericPairOiContext & {
30
+ currentPairPrice: number;
31
+ }) => number;
32
+ /**
33
+ * @dev Returns pair open interest skew (v10 only) in tokens
34
+ * @param pairIndex index of pair
35
+ * @param context contains UnifiedPairOi array
36
+ * @returns skew in token amount (positive = more longs, negative = more shorts)
37
+ */
38
+ export declare const getPairV10OiTokenSkewCollateral: (pairIndex: number, context: GenericPairOiContext) => number;
39
+ /**
40
+ * @dev Returns pair dynamic skew (v10 only) in collateral tokens
41
+ * @param pairIndex index of pair
42
+ * @param context contains UnifiedPairOi array and current pair price
43
+ * @returns dynamic skew in collateral precision
44
+ */
45
+ export declare const getPairV10OiDynamicSkewCollateral: (pairIndex: number, context: GenericPairOiContext & {
46
+ currentPairPrice: number;
47
+ }) => number;
48
+ export { UnifiedPairOi, GroupOi, ComputedOi } from "./types";
49
+ export { convertBeforeV10Collateral, convertCollateralOi, convertTokenOi, convertPairOi, convertPairOiArray, computeOiValues, } from "./converter";
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * @dev Main export file for OI module
4
+ * @dev Provides unified Open Interest management functionality
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.computeOiValues = exports.convertPairOiArray = exports.convertPairOi = exports.convertTokenOi = exports.convertCollateralOi = exports.convertBeforeV10Collateral = exports.getPairV10OiDynamicSkewCollateral = exports.getPairV10OiTokenSkewCollateral = exports.getPairTotalOiDynamicCollateral = exports.getPairTotalOisDynamicCollateral = exports.getPairTotalOisCollateral = void 0;
8
+ const getPairTotalOisCollateral = (pairIndex, context) => {
9
+ return {
10
+ long: context.pairOis[pairIndex].beforeV10Collateral.long +
11
+ context.pairOis[pairIndex].collateral.long,
12
+ short: context.pairOis[pairIndex].beforeV10Collateral.short +
13
+ context.pairOis[pairIndex].collateral.short,
14
+ };
15
+ };
16
+ exports.getPairTotalOisCollateral = getPairTotalOisCollateral;
17
+ /**
18
+ * @dev Returns pair total dynamic open interest (before v10 + after v10) in collateral tokens
19
+ * @param pairIndex index of pair
20
+ * @param context contains UnifiedPairOi array and current pair price
21
+ * @returns dynamic OI for long and short sides in collateral precision
22
+ */
23
+ const getPairTotalOisDynamicCollateral = (pairIndex, context) => {
24
+ const pairOi = context.pairOis[pairIndex];
25
+ // We have to use the initial collateral OIs for pre-v10 trades because we don't have OIs in token amount
26
+ const oiLongCollateralDynamicAfterV10 = pairOi.beforeV10Collateral.long +
27
+ pairOi.token.long * context.currentPairPrice;
28
+ const oiShortCollateralDynamicAfterV10 = pairOi.beforeV10Collateral.short +
29
+ pairOi.token.short * context.currentPairPrice;
30
+ return {
31
+ long: oiLongCollateralDynamicAfterV10,
32
+ short: oiShortCollateralDynamicAfterV10,
33
+ };
34
+ };
35
+ exports.getPairTotalOisDynamicCollateral = getPairTotalOisDynamicCollateral;
36
+ /**
37
+ * @dev Returns pair total dynamic open interest (before v10 + after v10) in collateral tokens on one side only
38
+ * @param pairIndex index of pair
39
+ * @param long true if long, false if short
40
+ * @param context contains UnifiedPairOi array and current pair price
41
+ * @returns dynamic OI for the specified side in collateral precision
42
+ */
43
+ const getPairTotalOiDynamicCollateral = (pairIndex, long, context) => {
44
+ const dynamicOis = (0, exports.getPairTotalOisDynamicCollateral)(pairIndex, context);
45
+ return long ? dynamicOis.long : dynamicOis.short;
46
+ };
47
+ exports.getPairTotalOiDynamicCollateral = getPairTotalOiDynamicCollateral;
48
+ /**
49
+ * @dev Returns pair open interest skew (v10 only) in tokens
50
+ * @param pairIndex index of pair
51
+ * @param context contains UnifiedPairOi array
52
+ * @returns skew in token amount (positive = more longs, negative = more shorts)
53
+ */
54
+ const getPairV10OiTokenSkewCollateral = (pairIndex, context) => {
55
+ const pairOi = context.pairOis[pairIndex];
56
+ return pairOi.token.long - pairOi.token.short;
57
+ };
58
+ exports.getPairV10OiTokenSkewCollateral = getPairV10OiTokenSkewCollateral;
59
+ /**
60
+ * @dev Returns pair dynamic skew (v10 only) in collateral tokens
61
+ * @param pairIndex index of pair
62
+ * @param context contains UnifiedPairOi array and current pair price
63
+ * @returns dynamic skew in collateral precision
64
+ */
65
+ const getPairV10OiDynamicSkewCollateral = (pairIndex, context) => {
66
+ return ((0, exports.getPairV10OiTokenSkewCollateral)(pairIndex, context) *
67
+ context.currentPairPrice);
68
+ };
69
+ exports.getPairV10OiDynamicSkewCollateral = getPairV10OiDynamicSkewCollateral;
70
+ // Converters
71
+ var converter_1 = require("./converter");
72
+ Object.defineProperty(exports, "convertBeforeV10Collateral", { enumerable: true, get: function () { return converter_1.convertBeforeV10Collateral; } });
73
+ Object.defineProperty(exports, "convertCollateralOi", { enumerable: true, get: function () { return converter_1.convertCollateralOi; } });
74
+ Object.defineProperty(exports, "convertTokenOi", { enumerable: true, get: function () { return converter_1.convertTokenOi; } });
75
+ Object.defineProperty(exports, "convertPairOi", { enumerable: true, get: function () { return converter_1.convertPairOi; } });
76
+ Object.defineProperty(exports, "convertPairOiArray", { enumerable: true, get: function () { return converter_1.convertPairOiArray; } });
77
+ Object.defineProperty(exports, "computeOiValues", { enumerable: true, get: function () { return converter_1.computeOiValues; } });