@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
@@ -3,7 +3,7 @@
3
3
  * @dev All BigNumber values are normalized to floats with appropriate precision
4
4
  */
5
5
  import { IPriceImpact } from "../../../contracts/types/generated/GNSMultiCollatDiamond";
6
- import { PairOiToken, PairOiCollateral, SkewDepth, SkewPriceImpactContext } from "./types";
6
+ import { PairOiToken, PairOiCollateral } from "./types";
7
7
  /**
8
8
  * @dev Converts contract pair OI token data to SDK format
9
9
  * @param contractData Contract pair OI token struct
@@ -31,47 +31,16 @@ export declare const convertPairOiCollateral: (contractData: IPriceImpact.PairOi
31
31
  */
32
32
  export declare const convertPairOiCollateralArray: (contractDataArray: IPriceImpact.PairOiCollateralStruct[], collateralDecimals: number[]) => PairOiCollateral[];
33
33
  /**
34
- * @dev Normalizes skew depth from contract format
35
- * @param depth Skew depth from contract (in collateral wei)
36
- * @param collateralDecimals Number of decimals for the collateral
37
- * @returns Normalized skew depth
34
+ * @dev Converts skew depth from contract format to SDK format
35
+ * @param depth Skew depth from contract (in token units with 1e18 precision)
36
+ * @returns Normalized skew depth in tokens
38
37
  */
39
- export declare const normalizeSkewDepth: (depth: bigint | number | string, collateralDecimals: number) => number;
38
+ export declare const convertSkewDepth: (depth: string) => number;
40
39
  /**
41
- * @dev Creates a skew depth object
42
- * @param collateralIndex Collateral index
43
- * @param pairIndex Pair index
44
- * @param depth Normalized depth value
45
- * @returns Skew depth object
40
+ * @dev Converts array of skew depths from contract format to SDK format
41
+ * @param depths Array of skew depths from contract (in token units with 1e18 precision)
42
+ * @returns Object mapping pair index to normalized depth
46
43
  */
47
- export declare const createSkewDepth: (collateralIndex: number, pairIndex: number, depth: number) => SkewDepth;
48
- /**
49
- * @dev Creates skew price impact context from arrays of data
50
- * @param collateralIndices Array of collateral indices
51
- * @param pairIndices Array of pair indices
52
- * @param skewDepths Array of normalized skew depths
53
- * @param pairOiTokens Array of pair OI token data
54
- * @returns Complete skew price impact context
55
- */
56
- export declare const createSkewPriceImpactContext: (collateralIndices: number[], pairIndices: number[], skewDepths: number[], pairOiTokens: PairOiToken[]) => SkewPriceImpactContext;
57
- /**
58
- * @dev Validates skew depth is within reasonable bounds
59
- * @param depth Normalized skew depth
60
- * @param minDepth Minimum allowed depth (default: 0)
61
- * @param maxDepth Maximum allowed depth (default: 1e12)
62
- * @returns Whether depth is valid
63
- */
64
- export declare const isValidSkewDepth: (depth: number, minDepth?: number, maxDepth?: number) => boolean;
65
- /**
66
- * @dev Converts contract skew depths array to normalized values
67
- * @param contractDepths Array of depths from contract
68
- * @param collateralDecimals Array of decimals for each collateral
69
- * @returns Array of normalized depths
70
- */
71
- export declare const convertSkewDepthsArray: (contractDepths: Array<bigint | number | string>, collateralDecimals: number[]) => number[];
72
- /**
73
- * @dev Merges multiple contexts into one
74
- * @param contexts Array of contexts to merge
75
- * @returns Merged context
76
- */
77
- export declare const mergeSkewPriceImpactContexts: (contexts: SkewPriceImpactContext[]) => SkewPriceImpactContext;
44
+ export declare const convertPairSkewDepths: (depths: string[]) => {
45
+ [pairIndex: number]: number;
46
+ };
@@ -4,7 +4,7 @@
4
4
  * @dev All BigNumber values are normalized to floats with appropriate precision
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.mergeSkewPriceImpactContexts = exports.convertSkewDepthsArray = exports.isValidSkewDepth = exports.createSkewPriceImpactContext = exports.createSkewDepth = exports.normalizeSkewDepth = exports.convertPairOiCollateralArray = exports.convertPairOiCollateral = exports.convertPairOiTokenArray = exports.convertPairOiToken = void 0;
7
+ exports.convertPairSkewDepths = exports.convertSkewDepth = exports.convertPairOiCollateralArray = exports.convertPairOiCollateral = exports.convertPairOiTokenArray = exports.convertPairOiToken = void 0;
8
8
  /**
9
9
  * @dev Converts contract pair OI token data to SDK format
10
10
  * @param contractData Contract pair OI token struct
@@ -55,117 +55,27 @@ const convertPairOiCollateralArray = (contractDataArray, collateralDecimals) =>
55
55
  };
56
56
  exports.convertPairOiCollateralArray = convertPairOiCollateralArray;
57
57
  /**
58
- * @dev Normalizes skew depth from contract format
59
- * @param depth Skew depth from contract (in collateral wei)
60
- * @param collateralDecimals Number of decimals for the collateral
61
- * @returns Normalized skew depth
58
+ * @dev Converts skew depth from contract format to SDK format
59
+ * @param depth Skew depth from contract (in token units with 1e18 precision)
60
+ * @returns Normalized skew depth in tokens
62
61
  */
63
- const normalizeSkewDepth = (depth, collateralDecimals) => {
64
- const divisor = Math.pow(10, collateralDecimals);
65
- return Number(depth) / divisor;
66
- };
67
- exports.normalizeSkewDepth = normalizeSkewDepth;
68
- /**
69
- * @dev Creates a skew depth object
70
- * @param collateralIndex Collateral index
71
- * @param pairIndex Pair index
72
- * @param depth Normalized depth value
73
- * @returns Skew depth object
74
- */
75
- const createSkewDepth = (collateralIndex, pairIndex, depth) => {
76
- return {
77
- collateralIndex,
78
- pairIndex,
79
- depth,
80
- };
81
- };
82
- exports.createSkewDepth = createSkewDepth;
83
- /**
84
- * @dev Creates skew price impact context from arrays of data
85
- * @param collateralIndices Array of collateral indices
86
- * @param pairIndices Array of pair indices
87
- * @param skewDepths Array of normalized skew depths
88
- * @param pairOiTokens Array of pair OI token data
89
- * @returns Complete skew price impact context
90
- */
91
- const createSkewPriceImpactContext = (collateralIndices, pairIndices, skewDepths, pairOiTokens) => {
92
- if (collateralIndices.length !== pairIndices.length ||
93
- pairIndices.length !== skewDepths.length ||
94
- skewDepths.length !== pairOiTokens.length) {
95
- throw new Error("All input arrays must have the same length");
96
- }
97
- const context = {
98
- skewDepths: {},
99
- pairOiTokens: {},
100
- };
101
- // Build nested objects indexed by collateralIndex and pairIndex
102
- for (let i = 0; i < collateralIndices.length; i++) {
103
- const collateralIndex = collateralIndices[i];
104
- const pairIndex = pairIndices[i];
105
- // Initialize collateral index objects if they don't exist
106
- if (!context.skewDepths[collateralIndex]) {
107
- context.skewDepths[collateralIndex] = {};
108
- }
109
- if (!context.pairOiTokens[collateralIndex]) {
110
- context.pairOiTokens[collateralIndex] = {};
111
- }
112
- // Store data
113
- context.skewDepths[collateralIndex][pairIndex] = skewDepths[i];
114
- context.pairOiTokens[collateralIndex][pairIndex] = pairOiTokens[i];
115
- }
116
- return context;
117
- };
118
- exports.createSkewPriceImpactContext = createSkewPriceImpactContext;
119
- /**
120
- * @dev Validates skew depth is within reasonable bounds
121
- * @param depth Normalized skew depth
122
- * @param minDepth Minimum allowed depth (default: 0)
123
- * @param maxDepth Maximum allowed depth (default: 1e12)
124
- * @returns Whether depth is valid
125
- */
126
- const isValidSkewDepth = (depth, minDepth = 0, maxDepth = 1e12) => {
127
- return depth >= minDepth && depth <= maxDepth;
128
- };
129
- exports.isValidSkewDepth = isValidSkewDepth;
130
- /**
131
- * @dev Converts contract skew depths array to normalized values
132
- * @param contractDepths Array of depths from contract
133
- * @param collateralDecimals Array of decimals for each collateral
134
- * @returns Array of normalized depths
135
- */
136
- const convertSkewDepthsArray = (contractDepths, collateralDecimals) => {
137
- if (contractDepths.length !== collateralDecimals.length) {
138
- throw new Error("Contract depths array and collateral decimals array must have the same length");
139
- }
140
- return contractDepths.map((depth, index) => (0, exports.normalizeSkewDepth)(depth, collateralDecimals[index]));
62
+ const convertSkewDepth = (depth) => {
63
+ // Token depths are always stored with 1e18 precision in the contract
64
+ return Number(depth) / 1e18;
141
65
  };
142
- exports.convertSkewDepthsArray = convertSkewDepthsArray;
66
+ exports.convertSkewDepth = convertSkewDepth;
143
67
  /**
144
- * @dev Merges multiple contexts into one
145
- * @param contexts Array of contexts to merge
146
- * @returns Merged context
68
+ * @dev Converts array of skew depths from contract format to SDK format
69
+ * @param depths Array of skew depths from contract (in token units with 1e18 precision)
70
+ * @returns Object mapping pair index to normalized depth
147
71
  */
148
- const mergeSkewPriceImpactContexts = (contexts) => {
149
- const merged = {
150
- skewDepths: {},
151
- pairOiTokens: {},
152
- };
153
- for (const context of contexts) {
154
- // Merge skew depths
155
- for (const collateralIndex in context.skewDepths) {
156
- if (!merged.skewDepths[collateralIndex]) {
157
- merged.skewDepths[collateralIndex] = {};
158
- }
159
- Object.assign(merged.skewDepths[collateralIndex], context.skewDepths[collateralIndex]);
160
- }
161
- // Merge pair OI tokens
162
- for (const collateralIndex in context.pairOiTokens) {
163
- if (!merged.pairOiTokens[collateralIndex]) {
164
- merged.pairOiTokens[collateralIndex] = {};
165
- }
166
- Object.assign(merged.pairOiTokens[collateralIndex], context.pairOiTokens[collateralIndex]);
72
+ const convertPairSkewDepths = (depths) => {
73
+ const result = {};
74
+ depths.forEach((depth, index) => {
75
+ if (depth && depth !== "0") {
76
+ result[index] = (0, exports.convertSkewDepth)(depth);
167
77
  }
168
- }
169
- return merged;
78
+ });
79
+ return result;
170
80
  };
171
- exports.mergeSkewPriceImpactContexts = mergeSkewPriceImpactContexts;
81
+ exports.convertPairSkewDepths = convertPairSkewDepths;
@@ -1,5 +1,5 @@
1
- import type { GNSMultiCollatDiamond } from "../../types/generated";
2
- import type { PairOiToken, SkewPriceImpactContext } from "../../../trade/priceImpact";
1
+ import type { GNSMultiCollatDiamond } from "../../../contracts/types/generated";
2
+ import type { PairOiToken, SkewPriceImpactContext } from "./types";
3
3
  /**
4
4
  * @dev Fetches pair open interest in tokens for a specific pair
5
5
  * @param contract GNSMultiCollatDiamond contract instance
@@ -21,28 +21,25 @@ export declare const fetchPairOisAfterV10Token: (contract: GNSMultiCollatDiamond
21
21
  * @param contract GNSMultiCollatDiamond contract instance
22
22
  * @param collateralIndex Collateral index
23
23
  * @param pairIndex Pair index
24
- * @param collateralDecimals Number of decimals for the collateral
25
24
  * @returns Promise resolving to normalized skew depth
26
25
  */
27
- export declare const fetchPairSkewDepth: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndex: number, collateralDecimals: number) => Promise<number>;
26
+ export declare const fetchPairSkewDepth: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndex: number) => Promise<number>;
28
27
  /**
29
28
  * @dev Fetches skew depths for multiple pairs
30
29
  * @param contract GNSMultiCollatDiamond contract instance
31
30
  * @param collateralIndices Array of collateral indices
32
31
  * @param pairIndices Array of pair indices
33
- * @param collateralDecimals Array of collateral decimals for each pair
34
32
  * @returns Promise resolving to array of normalized skew depths
35
33
  */
36
- export declare const fetchPairSkewDepths: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[], collateralDecimals: number[]) => Promise<number[]>;
34
+ export declare const fetchPairSkewDepths: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[]) => Promise<number[]>;
37
35
  /**
38
- * @dev Fetches complete skew price impact context for multiple pairs
36
+ * @dev Fetches skew price impact context for a single pair
39
37
  * @param contract GNSMultiCollatDiamond contract instance
40
- * @param collateralIndices Array of collateral indices
41
- * @param pairIndices Array of pair indices
42
- * @param collateralDecimals Array of collateral decimals for each pair
43
- * @returns Promise resolving to complete skew price impact context
38
+ * @param collateralIndex Collateral index
39
+ * @param pairIndex Pair index
40
+ * @returns Promise resolving to skew price impact context
44
41
  */
45
- export declare const fetchSkewPriceImpactContext: (contract: GNSMultiCollatDiamond, collateralIndices: number[], pairIndices: number[], collateralDecimals: number[]) => Promise<SkewPriceImpactContext>;
42
+ export declare const fetchSkewPriceImpactContext: (contract: GNSMultiCollatDiamond, collateralIndex: number, pairIndex: number) => Promise<SkewPriceImpactContext>;
46
43
  /**
47
44
  * @dev Fetches collateral decimals for given collateral indices
48
45
  * @param contract GNSMultiCollatDiamond contract instance
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.calculateTradeSkewPriceImpact = exports.fetchCollateralDecimals = exports.fetchSkewPriceImpactContext = exports.fetchPairSkewDepths = exports.fetchPairSkewDepth = exports.fetchPairOisAfterV10Token = exports.fetchPairOiAfterV10Token = void 0;
13
- const priceImpact_1 = require("../../../trade/priceImpact");
13
+ const converter_1 = require("./converter");
14
14
  /**
15
15
  * @dev Fetches pair open interest in tokens for a specific pair
16
16
  * @param contract GNSMultiCollatDiamond contract instance
@@ -21,7 +21,7 @@ const priceImpact_1 = require("../../../trade/priceImpact");
21
21
  const fetchPairOiAfterV10Token = (contract, collateralIndex, pairIndex) => __awaiter(void 0, void 0, void 0, function* () {
22
22
  try {
23
23
  const contractData = yield contract.getPairOiAfterV10Token(collateralIndex, pairIndex);
24
- return (0, priceImpact_1.convertPairOiToken)(contractData);
24
+ return (0, converter_1.convertPairOiToken)(contractData);
25
25
  }
26
26
  catch (error) {
27
27
  console.error("Error fetching pair OI token:", error);
@@ -42,7 +42,7 @@ const fetchPairOisAfterV10Token = (contract, collateralIndices, pairIndices) =>
42
42
  }
43
43
  try {
44
44
  const contractDataArray = yield contract.getPairOisAfterV10Token(collateralIndices, pairIndices);
45
- return contractDataArray.map(priceImpact_1.convertPairOiToken);
45
+ return contractDataArray.map(converter_1.convertPairOiToken);
46
46
  }
47
47
  catch (error) {
48
48
  console.error("Error fetching pair OIs token:", error);
@@ -55,13 +55,13 @@ exports.fetchPairOisAfterV10Token = fetchPairOisAfterV10Token;
55
55
  * @param contract GNSMultiCollatDiamond contract instance
56
56
  * @param collateralIndex Collateral index
57
57
  * @param pairIndex Pair index
58
- * @param collateralDecimals Number of decimals for the collateral
59
58
  * @returns Promise resolving to normalized skew depth
60
59
  */
61
- const fetchPairSkewDepth = (contract, collateralIndex, pairIndex, collateralDecimals) => __awaiter(void 0, void 0, void 0, function* () {
60
+ const fetchPairSkewDepth = (contract, collateralIndex, pairIndex) => __awaiter(void 0, void 0, void 0, function* () {
62
61
  try {
63
62
  const contractDepth = yield contract.getPairSkewDepth(collateralIndex, pairIndex);
64
- return (0, priceImpact_1.normalizeSkewDepth)(contractDepth.toBigInt(), collateralDecimals);
63
+ // Token depths are always 1e18 precision
64
+ return (0, converter_1.convertSkewDepth)(contractDepth.toString());
65
65
  }
66
66
  catch (error) {
67
67
  console.error("Error fetching skew depth:", error);
@@ -74,17 +74,16 @@ exports.fetchPairSkewDepth = fetchPairSkewDepth;
74
74
  * @param contract GNSMultiCollatDiamond contract instance
75
75
  * @param collateralIndices Array of collateral indices
76
76
  * @param pairIndices Array of pair indices
77
- * @param collateralDecimals Array of collateral decimals for each pair
78
77
  * @returns Promise resolving to array of normalized skew depths
79
78
  */
80
- const fetchPairSkewDepths = (contract, collateralIndices, pairIndices, collateralDecimals) => __awaiter(void 0, void 0, void 0, function* () {
81
- if (collateralIndices.length !== pairIndices.length ||
82
- pairIndices.length !== collateralDecimals.length) {
79
+ const fetchPairSkewDepths = (contract, collateralIndices, pairIndices) => __awaiter(void 0, void 0, void 0, function* () {
80
+ if (collateralIndices.length !== pairIndices.length) {
83
81
  throw new Error("All input arrays must have the same length");
84
82
  }
85
83
  try {
86
84
  const contractDepths = yield contract.getPairSkewDepths(collateralIndices, pairIndices);
87
- return contractDepths.map((depth, i) => (0, priceImpact_1.normalizeSkewDepth)(depth.toBigInt(), collateralDecimals[i]));
85
+ // Token depths are always 1e18 precision
86
+ return contractDepths.map(depth => (0, converter_1.convertSkewDepth)(depth.toString()));
88
87
  }
89
88
  catch (error) {
90
89
  console.error("Error fetching skew depths:", error);
@@ -93,21 +92,23 @@ const fetchPairSkewDepths = (contract, collateralIndices, pairIndices, collatera
93
92
  });
94
93
  exports.fetchPairSkewDepths = fetchPairSkewDepths;
95
94
  /**
96
- * @dev Fetches complete skew price impact context for multiple pairs
95
+ * @dev Fetches skew price impact context for a single pair
97
96
  * @param contract GNSMultiCollatDiamond contract instance
98
- * @param collateralIndices Array of collateral indices
99
- * @param pairIndices Array of pair indices
100
- * @param collateralDecimals Array of collateral decimals for each pair
101
- * @returns Promise resolving to complete skew price impact context
97
+ * @param collateralIndex Collateral index
98
+ * @param pairIndex Pair index
99
+ * @returns Promise resolving to skew price impact context
102
100
  */
103
- const fetchSkewPriceImpactContext = (contract, collateralIndices, pairIndices, collateralDecimals) => __awaiter(void 0, void 0, void 0, function* () {
101
+ const fetchSkewPriceImpactContext = (contract, collateralIndex, pairIndex) => __awaiter(void 0, void 0, void 0, function* () {
104
102
  try {
105
- // Fetch OI data and skew depths in parallel
106
- const [pairOiTokens, skewDepths] = yield Promise.all([
107
- (0, exports.fetchPairOisAfterV10Token)(contract, collateralIndices, pairIndices),
108
- (0, exports.fetchPairSkewDepths)(contract, collateralIndices, pairIndices, collateralDecimals),
103
+ // Fetch OI data and skew depth in parallel
104
+ const [pairOiToken, skewDepth] = yield Promise.all([
105
+ (0, exports.fetchPairOiAfterV10Token)(contract, collateralIndex, pairIndex),
106
+ (0, exports.fetchPairSkewDepth)(contract, collateralIndex, pairIndex),
109
107
  ]);
110
- return (0, priceImpact_1.createSkewPriceImpactContext)(collateralIndices, pairIndices, skewDepths, pairOiTokens);
108
+ return {
109
+ skewDepth,
110
+ pairOiToken,
111
+ };
111
112
  }
112
113
  catch (error) {
113
114
  console.error("Error fetching skew price impact context:", error);
@@ -10,10 +10,10 @@ import { PairOiToken, SkewPriceImpactInput, SkewPriceImpactResult, SkewPriceImpa
10
10
  */
11
11
  export declare const getNetSkewToken: (pairOi: PairOiToken) => number;
12
12
  /**
13
- * @dev Calculates net skew in collateral tokens
13
+ * @dev Calculates net skew in collateral
14
14
  * @param netSkewToken Net skew in tokens
15
15
  * @param currentPrice Current pair price
16
- * @returns Net skew in collateral tokens
16
+ * @returns Net skew in collateral
17
17
  */
18
18
  export declare const getNetSkewCollateral: (netSkewToken: number, currentPrice: number) => number;
19
19
  /**
@@ -27,18 +27,18 @@ export declare const getTradeSkewDirection: (long: boolean, open: boolean) => bo
27
27
  * @dev Core skew price impact calculation
28
28
  * @param existingSkewToken Current net skew in tokens (signed)
29
29
  * @param tradeSizeToken Trade size in tokens (always positive)
30
- * @param skewDepth Skew depth in collateral tokens
30
+ * @param skewDepth Skew depth in tokens
31
31
  * @param tradeIncreasesSkew Whether trade increases skew in its direction
32
32
  * @returns Price impact percentage (can be positive or negative)
33
33
  */
34
34
  export declare const calculateSkewPriceImpactP: (existingSkewToken: number, tradeSizeToken: number, skewDepth: number, tradeIncreasesSkew: boolean) => number;
35
35
  /**
36
36
  * @dev Main function to calculate skew price impact for a trade
37
- * @param context Skew price impact context with depths and OI data
38
37
  * @param input Trade parameters
38
+ * @param context Skew price impact context with depths and OI data
39
39
  * @returns Skew price impact result
40
40
  */
41
- export declare const getTradeSkewPriceImpact: (context: SkewPriceImpactContext, input: SkewPriceImpactInput) => SkewPriceImpactResult;
41
+ export declare const getTradeSkewPriceImpact: (input: SkewPriceImpactInput, context: SkewPriceImpactContext) => SkewPriceImpactResult;
42
42
  /**
43
43
  * @dev Calculate skew price impact for a trade with all parameters
44
44
  * @param params Trade parameters including price and version checks
@@ -55,3 +55,6 @@ export declare const getTradeSkewPriceImpactWithChecks: (params: TradeSkewParams
55
55
  */
56
56
  export declare const calculatePartialSizeToken: (originalSizeCollateral: number, deltaCollateral: number, originalSizeToken: number) => number;
57
57
  export * as SkewPriceImpact from "./types";
58
+ export * from "./converter";
59
+ export * from "./builder";
60
+ export * from "./fetcher";
@@ -26,9 +26,13 @@ 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.SkewPriceImpact = exports.calculatePartialSizeToken = exports.getTradeSkewPriceImpactWithChecks = exports.getTradeSkewPriceImpact = exports.calculateSkewPriceImpactP = exports.getTradeSkewDirection = exports.getNetSkewCollateral = exports.getNetSkewToken = void 0;
31
34
  const utils_1 = require("../../utils");
35
+ const types_1 = require("../../../contracts/types");
32
36
  // Constants
33
37
  const PRICE_IMPACT_DIVIDER = 2; // Half price impact to match cumulative volume impact scale
34
38
  /**
@@ -41,10 +45,10 @@ const getNetSkewToken = (pairOi) => {
41
45
  };
42
46
  exports.getNetSkewToken = getNetSkewToken;
43
47
  /**
44
- * @dev Calculates net skew in collateral tokens
48
+ * @dev Calculates net skew in collateral
45
49
  * @param netSkewToken Net skew in tokens
46
50
  * @param currentPrice Current pair price
47
- * @returns Net skew in collateral tokens
51
+ * @returns Net skew in collateral
48
52
  */
49
53
  const getNetSkewCollateral = (netSkewToken, currentPrice) => {
50
54
  return netSkewToken * currentPrice;
@@ -66,7 +70,7 @@ exports.getTradeSkewDirection = getTradeSkewDirection;
66
70
  * @dev Core skew price impact calculation
67
71
  * @param existingSkewToken Current net skew in tokens (signed)
68
72
  * @param tradeSizeToken Trade size in tokens (always positive)
69
- * @param skewDepth Skew depth in collateral tokens
73
+ * @param skewDepth Skew depth in tokens
70
74
  * @param tradeIncreasesSkew Whether trade increases skew in its direction
71
75
  * @returns Price impact percentage (can be positive or negative)
72
76
  */
@@ -80,29 +84,20 @@ const calculateSkewPriceImpactP = (existingSkewToken, tradeSizeToken, skewDepth,
80
84
  const signedTradeSize = tradeSizeToken * tradeSkewMultiplier;
81
85
  // Formula: (existingSkew + tradeSize/2) / skewDepth
82
86
  const numerator = signedExistingSkew + signedTradeSize / 2;
83
- const priceImpactP = (numerator / skewDepth) * 100; // Convert to percentage
87
+ const priceImpactP = numerator / skewDepth;
84
88
  // Apply divider to match cumulative volume impact scale
85
89
  return priceImpactP / PRICE_IMPACT_DIVIDER;
86
90
  };
87
91
  exports.calculateSkewPriceImpactP = calculateSkewPriceImpactP;
88
92
  /**
89
93
  * @dev Main function to calculate skew price impact for a trade
90
- * @param context Skew price impact context with depths and OI data
91
94
  * @param input Trade parameters
95
+ * @param context Skew price impact context with depths and OI data
92
96
  * @returns Skew price impact result
93
97
  */
94
- const getTradeSkewPriceImpact = (context, input) => {
95
- var _a, _b;
96
- // Get skew depth for the pair
97
- const skewDepth = (_a = context.skewDepths[input.collateralIndex]) === null || _a === void 0 ? void 0 : _a[input.pairIndex];
98
- if (skewDepth === undefined) {
99
- throw new Error(`Missing skew depth for collateral ${input.collateralIndex} pair ${input.pairIndex}`);
100
- }
101
- // Get pair OI data
102
- const pairOi = (_b = context.pairOiTokens[input.collateralIndex]) === null || _b === void 0 ? void 0 : _b[input.pairIndex];
103
- if (!pairOi) {
104
- throw new Error(`Missing pair OI data for collateral ${input.collateralIndex} pair ${input.pairIndex}`);
105
- }
98
+ const getTradeSkewPriceImpact = (input, context) => {
99
+ // Get skew depth and pair OI from simplified context
100
+ const { skewDepth, pairOiToken: pairOi } = context;
106
101
  // Calculate net skew
107
102
  const netSkewToken = (0, exports.getNetSkewToken)(pairOi);
108
103
  // Determine trade direction impact
@@ -136,7 +131,7 @@ exports.getTradeSkewPriceImpact = getTradeSkewPriceImpact;
136
131
  */
137
132
  const getTradeSkewPriceImpactWithChecks = (params, context) => {
138
133
  // v10+ trades only
139
- if (params.contractsVersion < 10) {
134
+ if (params.contractsVersion < types_1.ContractsVersion.V10) {
140
135
  return 0;
141
136
  }
142
137
  // Counter trades don't pay skew impact
@@ -146,13 +141,13 @@ const getTradeSkewPriceImpactWithChecks = (params, context) => {
146
141
  // Calculate position size in tokens
147
142
  const positionSizeToken = (0, utils_1.calculatePositionSizeToken)(params.positionSizeCollateral, params.currentPrice);
148
143
  // Get skew price impact
149
- const result = (0, exports.getTradeSkewPriceImpact)(context, {
144
+ const result = (0, exports.getTradeSkewPriceImpact)({
150
145
  collateralIndex: params.collateralIndex,
151
146
  pairIndex: params.pairIndex,
152
147
  long: params.long,
153
148
  open: params.open,
154
149
  positionSizeToken,
155
- });
150
+ }, context);
156
151
  return result.priceImpactP;
157
152
  };
158
153
  exports.getTradeSkewPriceImpactWithChecks = getTradeSkewPriceImpactWithChecks;
@@ -173,3 +168,6 @@ const calculatePartialSizeToken = (originalSizeCollateral, deltaCollateral, orig
173
168
  exports.calculatePartialSizeToken = calculatePartialSizeToken;
174
169
  // Export namespace for types
175
170
  exports.SkewPriceImpact = __importStar(require("./types"));
171
+ __exportStar(require("./converter"), exports);
172
+ __exportStar(require("./builder"), exports);
173
+ __exportStar(require("./fetcher"), exports);
@@ -9,11 +9,6 @@ export type PairOiCollateral = {
9
9
  oiLongCollateral: number;
10
10
  oiShortCollateral: number;
11
11
  };
12
- export type SkewDepth = {
13
- collateralIndex: number;
14
- pairIndex: number;
15
- depth: number;
16
- };
17
12
  export type SkewPriceImpactInput = {
18
13
  collateralIndex: number;
19
14
  pairIndex: number;
@@ -28,16 +23,8 @@ export type SkewPriceImpactResult = {
28
23
  tradeDirection: "increase" | "decrease" | "neutral";
29
24
  };
30
25
  export type SkewPriceImpactContext = {
31
- skewDepths: {
32
- [collateralIndex: number]: {
33
- [pairIndex: number]: number;
34
- };
35
- };
36
- pairOiTokens: {
37
- [collateralIndex: number]: {
38
- [pairIndex: number]: PairOiToken;
39
- };
40
- };
26
+ skewDepth: number;
27
+ pairOiToken: PairOiToken;
41
28
  };
42
29
  export type TradeSkewParams = {
43
30
  collateralIndex: number;
@@ -1,18 +1,5 @@
1
- import { LiquidationParams, OiWindows, OiWindowsSettings, PairDepth, PairFactor, UserPriceImpact } from "./types";
2
- import { ContractsVersion } from "../contracts/types";
3
- export type SpreadContext = {
4
- isOpen?: boolean;
5
- isPnlPositive?: boolean;
6
- createdBlock?: number;
7
- liquidationParams?: LiquidationParams | undefined;
8
- currentBlock?: number | undefined;
9
- contractsVersion?: ContractsVersion | undefined;
10
- protectionCloseFactorWhitelist?: boolean;
11
- userPriceImpact?: UserPriceImpact | undefined;
12
- } & Partial<PairFactor>;
13
- export declare const getProtectionCloseFactor: (spreadCtx: SpreadContext | undefined) => number;
14
- export declare const isProtectionCloseFactorActive: (spreadCtx: SpreadContext | undefined) => boolean | undefined;
15
- export declare const getCumulativeFactor: (spreadCtx: SpreadContext | undefined) => number;
16
- export declare const getLegacyFactor: (spreadCtx: SpreadContext | undefined) => number;
17
- export declare const getSpreadWithPriceImpactP: (pairSpreadP: number, buy: boolean, collateral: number, leverage: number, pairDepth: PairDepth | undefined, oiWindowsSettings?: OiWindowsSettings | undefined, oiWindows?: OiWindows | undefined, spreadCtx?: SpreadContext | undefined) => number;
18
- export declare const getSpreadP: (pairSpreadP: number | undefined, isLiquidation?: boolean | undefined, liquidationParams?: LiquidationParams | undefined, userPriceImpact?: UserPriceImpact | undefined) => number;
1
+ /**
2
+ * @dev Pure spread calculations without price impact
3
+ * @dev For price impact calculations, see priceImpact module
4
+ */
5
+ export { getSpreadWithPriceImpactP, getSpreadWithCumulVolPriceImpactP, getTradeCumulVolPriceImpactP, getCumulVolPriceImpact, getProtectionCloseFactor, isProtectionCloseFactorActive, getCumulativeFactor, getLegacyFactor, getFixedSpreadP, getSpreadP, CumulVolContext as SpreadContext, } from "./priceImpact/cumulVol";