aftermath-ts-sdk 1.3.27 → 1.3.28

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 (128) hide show
  1. package/dist/general/apiHelpers/objectsApiHelpers.d.ts.map +1 -1
  2. package/dist/general/apiHelpers/objectsApiHelpers.js +5 -4
  3. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts +3 -0
  4. package/dist/general/apiHelpers/transactionsApiHelpers.d.ts.map +1 -1
  5. package/dist/general/apiHelpers/transactionsApiHelpers.js +14 -2
  6. package/dist/general/providers/aftermath.d.ts +19 -19
  7. package/dist/general/providers/aftermath.d.ts.map +1 -1
  8. package/dist/general/providers/aftermath.js +20 -20
  9. package/dist/general/providers/aftermathApi.d.ts +0 -5
  10. package/dist/general/providers/aftermathApi.d.ts.map +1 -1
  11. package/dist/general/providers/aftermathApi.js +0 -5
  12. package/dist/general/types/castingTypes.d.ts +2 -2
  13. package/dist/general/types/castingTypes.d.ts.map +1 -1
  14. package/dist/general/types/configTypes.d.ts +6 -10
  15. package/dist/general/types/configTypes.d.ts.map +1 -1
  16. package/dist/general/types/generalTypes.d.ts +8 -0
  17. package/dist/general/types/generalTypes.d.ts.map +1 -1
  18. package/dist/general/types/moveErrorsInterface.d.ts +1 -1
  19. package/dist/general/types/moveErrorsInterface.d.ts.map +1 -1
  20. package/dist/general/utils/caller.d.ts +34 -2
  21. package/dist/general/utils/caller.d.ts.map +1 -1
  22. package/dist/general/utils/caller.js +111 -12
  23. package/dist/general/utils/casting.d.ts +4 -5
  24. package/dist/general/utils/casting.d.ts.map +1 -1
  25. package/dist/general/utils/casting.js +4 -5
  26. package/dist/general/utils/helpers.d.ts +1 -0
  27. package/dist/general/utils/helpers.d.ts.map +1 -1
  28. package/dist/general/utils/helpers.js +40 -9
  29. package/dist/general/wallet/wallet.d.ts +1 -1
  30. package/dist/general/wallet/wallet.d.ts.map +1 -1
  31. package/dist/packages/coin/coin.d.ts +5 -1
  32. package/dist/packages/coin/coin.d.ts.map +1 -1
  33. package/dist/packages/coin/coin.js +7 -1
  34. package/dist/packages/farms/api/farmsApiCasting.js +27 -27
  35. package/dist/packages/farms/farms.d.ts +1 -1
  36. package/dist/packages/farms/farms.d.ts.map +1 -1
  37. package/dist/packages/farms/farmsStakedPosition.d.ts +1 -1
  38. package/dist/packages/farms/farmsStakedPosition.d.ts.map +1 -1
  39. package/dist/packages/farms/farmsStakingPool.d.ts +1 -1
  40. package/dist/packages/farms/farmsStakingPool.d.ts.map +1 -1
  41. package/dist/packages/faucet/api/faucetApi.d.ts +9 -17
  42. package/dist/packages/faucet/api/faucetApi.d.ts.map +1 -1
  43. package/dist/packages/faucet/api/faucetApi.js +44 -49
  44. package/dist/packages/faucet/api/faucetApiCasting.d.ts.map +1 -1
  45. package/dist/packages/faucet/api/faucetApiCasting.js +10 -7
  46. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts +1 -4
  47. package/dist/packages/faucet/api/faucetApiCastingTypes.d.ts.map +1 -1
  48. package/dist/packages/faucet/faucet.d.ts +1 -1
  49. package/dist/packages/faucet/faucet.d.ts.map +1 -1
  50. package/dist/packages/faucet/faucet.js +1 -1
  51. package/dist/packages/faucet/faucetTypes.d.ts +2 -3
  52. package/dist/packages/faucet/faucetTypes.d.ts.map +1 -1
  53. package/dist/packages/leveragedStaking/api/leveragedStakingApiCasting.js +3 -3
  54. package/dist/packages/multisig/multisig.d.ts +1 -1
  55. package/dist/packages/multisig/multisig.d.ts.map +1 -1
  56. package/dist/packages/nftAmm/nftAmm.d.ts +1 -1
  57. package/dist/packages/nftAmm/nftAmm.d.ts.map +1 -1
  58. package/dist/packages/perpetuals/api/perpetualsApi.d.ts +12 -203
  59. package/dist/packages/perpetuals/api/perpetualsApi.d.ts.map +1 -1
  60. package/dist/packages/perpetuals/api/perpetualsApi.js +926 -615
  61. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts +10 -21
  62. package/dist/packages/perpetuals/api/perpetualsApiCasting.d.ts.map +1 -1
  63. package/dist/packages/perpetuals/api/perpetualsApiCasting.js +260 -238
  64. package/dist/packages/perpetuals/index.d.ts +1 -0
  65. package/dist/packages/perpetuals/index.d.ts.map +1 -1
  66. package/dist/packages/perpetuals/index.js +1 -0
  67. package/dist/packages/perpetuals/perpetuals.d.ts +830 -28
  68. package/dist/packages/perpetuals/perpetuals.d.ts.map +1 -1
  69. package/dist/packages/perpetuals/perpetuals.js +1013 -70
  70. package/dist/packages/perpetuals/perpetualsAccount.d.ts +754 -170
  71. package/dist/packages/perpetuals/perpetualsAccount.d.ts.map +1 -1
  72. package/dist/packages/perpetuals/perpetualsAccount.js +1270 -312
  73. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts +82 -149
  74. package/dist/packages/perpetuals/perpetualsCastingTypes.d.ts.map +1 -1
  75. package/dist/packages/perpetuals/perpetualsMarket.d.ts +327 -27
  76. package/dist/packages/perpetuals/perpetualsMarket.d.ts.map +1 -1
  77. package/dist/packages/perpetuals/perpetualsMarket.js +392 -79
  78. package/dist/packages/perpetuals/perpetualsTypes.d.ts +2662 -318
  79. package/dist/packages/perpetuals/perpetualsTypes.d.ts.map +1 -1
  80. package/dist/packages/perpetuals/perpetualsTypes.js +92 -82
  81. package/dist/packages/perpetuals/perpetualsVault.d.ts +438 -0
  82. package/dist/packages/perpetuals/perpetualsVault.d.ts.map +1 -0
  83. package/dist/packages/perpetuals/perpetualsVault.js +601 -0
  84. package/dist/packages/pools/api/poolsApiCasting.js +3 -3
  85. package/dist/packages/pools/pool.d.ts +1 -1
  86. package/dist/packages/pools/pool.d.ts.map +1 -1
  87. package/dist/packages/pools/pools.d.ts +1 -1
  88. package/dist/packages/pools/pools.d.ts.map +1 -1
  89. package/dist/packages/rewards/index.d.ts +2 -0
  90. package/dist/packages/rewards/index.d.ts.map +1 -0
  91. package/dist/packages/rewards/index.js +17 -0
  92. package/dist/packages/rewards/rewards.d.ts +21 -0
  93. package/dist/packages/rewards/rewards.d.ts.map +1 -0
  94. package/dist/packages/rewards/rewards.js +65 -0
  95. package/dist/packages/rewards/rewardsTypes.d.ts +169 -0
  96. package/dist/packages/rewards/rewardsTypes.d.ts.map +1 -0
  97. package/dist/packages/router/api/routerApiCasting.js +1 -1
  98. package/dist/packages/staking/api/stakingApiCasting.js +3 -3
  99. package/dist/packages/staking/staking.d.ts +1 -1
  100. package/dist/packages/staking/staking.d.ts.map +1 -1
  101. package/dist/packages/sui/sui.d.ts +1 -1
  102. package/dist/packages/sui/sui.d.ts.map +1 -1
  103. package/dist/packages/suiFrens/api/suiFrensApiCasting.js +4 -4
  104. package/dist/packages/suiFrens/stakedSuiFren.d.ts +1 -1
  105. package/dist/packages/suiFrens/stakedSuiFren.d.ts.map +1 -1
  106. package/dist/packages/suiFrens/suiFren.d.ts +1 -1
  107. package/dist/packages/suiFrens/suiFren.d.ts.map +1 -1
  108. package/dist/packages/suiFrens/suiFrens.d.ts +1 -1
  109. package/dist/packages/suiFrens/suiFrens.d.ts.map +1 -1
  110. package/dist/types.d.ts +1 -1
  111. package/dist/types.d.ts.map +1 -1
  112. package/dist/types.js +1 -1
  113. package/package.json +1 -1
  114. package/dist/packages/oracle/api/oracleApi.d.ts +0 -21
  115. package/dist/packages/oracle/api/oracleApi.d.ts.map +0 -1
  116. package/dist/packages/oracle/api/oracleApi.js +0 -76
  117. package/dist/packages/oracle/api/oracleApiCasting.d.ts +0 -6
  118. package/dist/packages/oracle/api/oracleApiCasting.d.ts.map +0 -1
  119. package/dist/packages/oracle/api/oracleApiCasting.js +0 -25
  120. package/dist/packages/oracle/oracle.d.ts +0 -15
  121. package/dist/packages/oracle/oracle.d.ts.map +0 -1
  122. package/dist/packages/oracle/oracle.js +0 -46
  123. package/dist/packages/oracle/oracleCastingTypes.d.ts +0 -11
  124. package/dist/packages/oracle/oracleCastingTypes.d.ts.map +0 -1
  125. package/dist/packages/oracle/oracleTypes.d.ts +0 -10
  126. package/dist/packages/oracle/oracleTypes.d.ts.map +0 -1
  127. package/dist/packages/oracle/oracleTypes.js +0 -2
  128. /package/dist/packages/{oracle/oracleCastingTypes.js → rewards/rewardsTypes.js} +0 -0
@@ -1,36 +1,235 @@
1
- import { PerpetualsAccount } from "../..";
1
+ import { AftermathApi } from "../..";
2
2
  import { Caller } from "../../general/utils/caller";
3
- import { CoinType, PerpetualsMarketId, PerpetualsMarketParams, PerpetualsMarketState, PerpetualsOrderData, PerpetualsOrderId, PerpetualsOrderPrice, PerpetualsOrderSide, PerpetualsOrderbook, Timestamp, PerpetualsMarketData, ApiPerpetualsMarket24hrVolumeResponse, ApiDataWithCursorBody, PerpetualsTradeHistoryWithCursor, CallerConfig } from "../../types";
3
+ import { CoinType, PerpetualsMarketId, PerpetualsMarketParams, PerpetualsMarketState, PerpetualsOrderData, PerpetualsOrderbook, PerpetualsPosition, Timestamp, PerpetualsMarketData, ApiPerpetualsMaxOrderSizeBody, ApiPerpetualsMarketOrderHistoryResponse, CallerConfig, Percentage, ApiPerpetualsPreviewPlaceOrderResponse, PerpetualsMarket24hrStats, SdkPerpetualsPlaceLimitOrderPreviewInputs, SdkPerpetualsPlaceMarketOrderPreviewInputs, ApiPerpetualsMarketOrderHistoryBody } from "../../types";
4
+ /**
5
+ * High-level wrapper around a single perpetuals market.
6
+ *
7
+ * This class provides:
8
+ *
9
+ * - Lightweight accessors for immutable market properties:
10
+ * - `marketId`, `indexPrice`, `collateralPrice`, `collateralCoinType`
11
+ * - `marketParams`, `marketState`
12
+ * - Read endpoints for:
13
+ * - Orderbook snapshots
14
+ * - 24h stats and order history
15
+ * - Market prices and derived funding metrics
16
+ * - Helpers for:
17
+ * - Order sizing (max size, lot/tick rounding)
18
+ * - Margin and collateral calculations
19
+ * - Constructing an “empty” position for a market
20
+ *
21
+ * Typical usage:
22
+ *
23
+ * ```ts
24
+ * const perps = new Perpetuals(config);
25
+ * const { markets } = await perps.getMarkets({ marketIds: ["0x..."] });
26
+ * const market = markets[0];
27
+ *
28
+ * const { orderbook } = await market.getOrderbook();
29
+ * const stats = await market.get24hrStats();
30
+ * const { basePrice, collateralPrice } = await market.getPrices();
31
+ * ```
32
+ */
4
33
  export declare class PerpetualsMarket extends Caller {
5
34
  marketData: PerpetualsMarketData;
35
+ readonly Provider?: AftermathApi | undefined;
36
+ /** Unique identifier for this perpetuals market (object ID on chain). */
6
37
  readonly marketId: PerpetualsMarketId;
38
+ /**
39
+ * Current oracle/index price for the market's underlying asset, quoted in
40
+ * the index unit (typically USD).
41
+ */
42
+ readonly indexPrice: number;
43
+ /**
44
+ * Current price of the collateral asset in USD (or the platform's base
45
+ * pricing unit).
46
+ */
47
+ readonly collateralPrice: number;
48
+ /** Sui type of the collateral coin (e.g. `"0x2::sui::SUI"`). */
7
49
  readonly collateralCoinType: CoinType;
50
+ /** Static market configuration parameters (lot size, tick size, margins, etc.). */
8
51
  readonly marketParams: PerpetualsMarketParams;
52
+ /** Dynamic market state (funding rates, open interest, etc.). */
9
53
  readonly marketState: PerpetualsMarketState;
10
- constructor(marketData: PerpetualsMarketData, config?: CallerConfig);
11
- getOrderbookPrice(): Promise<number | undefined>;
12
- get24hrVolume(): Promise<ApiPerpetualsMarket24hrVolumeResponse>;
13
- getPrice24hrsAgo(): Promise<number>;
14
- getOrderbook(): Promise<PerpetualsOrderbook>;
15
- getMaxOrderSizeUsd: (inputs: {
16
- account: PerpetualsAccount;
17
- indexPrice: number;
18
- side: PerpetualsOrderSide;
19
- leverage: number;
20
- price?: PerpetualsOrderPrice;
21
- }) => Promise<number>;
22
- getTradeHistory(inputs: ApiDataWithCursorBody<Timestamp>): Promise<PerpetualsTradeHistoryWithCursor>;
54
+ /**
55
+ * Create a new {@link PerpetualsMarket} wrapper from raw market data.
56
+ *
57
+ * @param marketData - Snapshot of market configuration and state.
58
+ * @param config - Optional {@link CallerConfig} (network, base URL, etc.).
59
+ * @param Provider - Optional shared {@link AftermathApi} provider instance.
60
+ *
61
+ * @remarks
62
+ * This class extends {@link Caller} with the `"perpetuals"` route prefix, meaning
63
+ * all HTTP requests resolve under `/perpetuals/...`.
64
+ */
65
+ constructor(marketData: PerpetualsMarketData, config?: CallerConfig, Provider?: AftermathApi | undefined);
66
+ /**
67
+ * Fetch the 24-hour volume and price change statistics for this market.
68
+ *
69
+ * Under the hood, this calls {@link Perpetuals.getMarkets24hrStats} and
70
+ * returns the first (and only) entry.
71
+ *
72
+ * @returns {@link PerpetualsMarket24hrStats}.
73
+ *
74
+ * @remarks
75
+ * This method creates a new {@link Perpetuals} instance using `this.config`.
76
+ * If you need shared Provider behavior, prefer calling `perps.getMarkets24hrStats`
77
+ * directly with the same Provider you initialized.
78
+ */
79
+ get24hrStats(): Promise<PerpetualsMarket24hrStats>;
80
+ /**
81
+ * Fetch the full orderbook snapshot for this market.
82
+ *
83
+ * @returns Object containing `orderbook`.
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * const { orderbook } = await market.getOrderbook();
88
+ * console.log(orderbook.bids[0], orderbook.asks[0]);
89
+ * ```
90
+ */
91
+ getOrderbook(): Promise<{
92
+ orderbook: PerpetualsOrderbook;
93
+ }>;
94
+ /**
95
+ * Compute the maximum order size that can be placed by a given account
96
+ * in this market, under optional leverage and price assumptions.
97
+ *
98
+ * This is a common frontend helper for:
99
+ * - "max size" buttons
100
+ * - input validation against risk limits
101
+ *
102
+ * **Note:** This is routed through the `account` namespace because it depends on
103
+ * the account's collateral and positions.
104
+ *
105
+ * @param inputs.accountId - Perpetuals account ID.
106
+ * @param inputs.side - Order side (Bid/Ask).
107
+ * @param inputs.leverage - Optional assumed leverage.
108
+ * @param inputs.price - Optional assumed price (e.g. for limit orders).
109
+ *
110
+ * @returns `{ maxOrderSize }` in base units (scaled integer as `bigint`).
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const { maxOrderSize } = await market.getMaxOrderSize({
115
+ * accountId: 123n,
116
+ * side: PerpetualsOrderSide.Bid,
117
+ * leverage: 5,
118
+ * });
119
+ * ```
120
+ */
121
+ getMaxOrderSize: (inputs: Omit<ApiPerpetualsMaxOrderSizeBody, "marketId">) => Promise<{
122
+ maxOrderSize: bigint;
123
+ }>;
124
+ /**
125
+ * Market-level preview of placing a market order.
126
+ *
127
+ * Unlike {@link PerpetualsAccount.getPlaceMarketOrderPreview}, this version:
128
+ * - Calls `account/previews/place-market-order`
129
+ * - Explicitly sets `accountId: undefined`, allowing a “generic” preview that
130
+ * doesn’t rely on a specific account’s on-chain positions/collateral.
131
+ *
132
+ * @param inputs - {@link SdkPerpetualsPlaceMarketOrderPreviewInputs}.
133
+ * @param abortSignal - Optional abort signal to cancel the request.
134
+ *
135
+ * @returns Either `{ error }` or a preview containing the simulated updated position,
136
+ * slippage, filled/posted sizes, collateral change, and execution price.
137
+ */
138
+ getPlaceMarketOrderPreview(inputs: SdkPerpetualsPlaceMarketOrderPreviewInputs, abortSignal?: AbortSignal): Promise<ApiPerpetualsPreviewPlaceOrderResponse>;
139
+ /**
140
+ * Market-level preview of placing a limit order.
141
+ *
142
+ * Similar to {@link getPlaceMarketOrderPreview}, this uses:
143
+ * - `account/previews/place-limit-order`
144
+ * - `accountId: undefined`
145
+ *
146
+ * @param inputs - {@link SdkPerpetualsPlaceLimitOrderPreviewInputs}.
147
+ * @param abortSignal - Optional abort signal to cancel the request.
148
+ *
149
+ * @returns Either `{ error }` or a preview describing the simulated post-order state.
150
+ */
151
+ getPlaceLimitOrderPreview(inputs: SdkPerpetualsPlaceLimitOrderPreviewInputs, abortSignal?: AbortSignal): Promise<ApiPerpetualsPreviewPlaceOrderResponse>;
152
+ /**
153
+ * Fetch paginated order history for this market.
154
+ *
155
+ * This is market-wide (public) history, not scoped to any account.
156
+ *
157
+ * @param inputs.beforeTimestampCursor - Optional pagination cursor.
158
+ * @param inputs.limit - Optional page size.
159
+ *
160
+ * @returns {@link ApiPerpetualsMarketOrderHistoryResponse} containing:
161
+ * - `orders`
162
+ * - `nextBeforeTimestampCursor`
163
+ */
164
+ getOrderHistory(inputs: Omit<ApiPerpetualsMarketOrderHistoryBody, "marketId">): Promise<ApiPerpetualsMarketOrderHistoryResponse>;
165
+ /**
166
+ * Fetch the current prices for this market.
167
+ *
168
+ * Internally calls {@link Perpetuals.getPrices} and returns the first result.
169
+ *
170
+ * @returns `{ marketId, basePrice, collateralPrice, midPrice, markPrice }`.
171
+ *
172
+ * @remarks
173
+ * This method instantiates a new {@link Perpetuals} client using `this.config`.
174
+ * If you rely on a shared Provider, call `perps.getPrices(...)` directly instead.
175
+ */
176
+ getPrices(): Promise<{
177
+ marketId: PerpetualsMarketId;
178
+ basePrice: number;
179
+ collateralPrice: number;
180
+ midPrice: number | undefined;
181
+ markPrice: number;
182
+ }>;
183
+ /**
184
+ * Compute the remaining time until the next funding event, in milliseconds.
185
+ *
186
+ * @returns `nextFundingTimeMs() - Date.now()`.
187
+ *
188
+ * @remarks
189
+ * If the next funding timestamp does not fit safely into a JS `number`,
190
+ * {@link nextFundingTimeMs} returns `Number.MAX_SAFE_INTEGER`, and the
191
+ * difference may be very large.
192
+ */
23
193
  timeUntilNextFundingMs: () => Timestamp;
194
+ /**
195
+ * Get the scheduled timestamp for the next funding event, in milliseconds.
196
+ *
197
+ * Safety behavior:
198
+ * - If `marketData.nextFundingTimestampMs` exceeds `Number.MAX_SAFE_INTEGER`,
199
+ * this returns `Number.MAX_SAFE_INTEGER`.
200
+ *
201
+ * @returns Next funding timestamp (ms) as a JS `number`.
202
+ */
24
203
  nextFundingTimeMs: () => Timestamp;
25
- estimatedFundingRate: (inputs: {
26
- indexPrice: number;
27
- }) => number;
28
- priceToOrderPrice: (inputs: {
29
- price: number;
30
- }) => PerpetualsOrderPrice;
31
- orderPriceToPrice: (inputs: {
32
- orderPrice: PerpetualsOrderPrice;
33
- }) => number;
204
+ /**
205
+ * Estimated funding rate per period for this market.
206
+ *
207
+ * This is read directly from `marketData.estimatedFundingRate`.
208
+ *
209
+ * @returns Estimated funding rate as a fraction (e.g. `0.01` = 1%).
210
+ */
211
+ estimatedFundingRate: () => Percentage;
212
+ /**
213
+ * Calculate the collateral required to support an order given leverage and prices.
214
+ *
215
+ * The computed collateral is based on the *remaining* unfilled size:
216
+ * `remaining = initialSize - filledSize`.
217
+ *
218
+ * USD requirement:
219
+ * ```text
220
+ * remainingBase * indexPrice * initialMarginRatio
221
+ * ```
222
+ * where `initialMarginRatio = 1 / leverage` (or 1 if leverage is falsy).
223
+ *
224
+ * @param inputs.leverage - Target leverage for the order (>= 1).
225
+ * @param inputs.orderData - Order data containing `initialSize` and `filledSize`.
226
+ * @param inputs.indexPrice - Index/oracle price of the base asset.
227
+ * @param inputs.collateralPrice - Price of the collateral asset.
228
+ *
229
+ * @returns Object with:
230
+ * - `collateralUsd`: required collateral in USD
231
+ * - `collateral`: required collateral in collateral coin units
232
+ */
34
233
  calcCollateralUsedForOrder: (inputs: {
35
234
  leverage: number;
36
235
  orderData: PerpetualsOrderData;
@@ -40,21 +239,122 @@ export declare class PerpetualsMarket extends Caller {
40
239
  collateral: number;
41
240
  collateralUsd: number;
42
241
  };
242
+ /**
243
+ * Get the base-asset lot size for this market as a `number`.
244
+ *
245
+ * Order sizes must be multiples of this lot size.
246
+ *
247
+ * @returns Lot size in base asset units.
248
+ */
43
249
  lotSize(): number;
250
+ /**
251
+ * Get the minimal price tick size for this market as a `number`.
252
+ *
253
+ * Limit prices must be multiples of this tick size.
254
+ *
255
+ * @returns Tick size in quote units (e.g. USD).
256
+ */
44
257
  tickSize(): number;
258
+ /**
259
+ * Get the maximum theoretical leverage for this market.
260
+ *
261
+ * Computed as:
262
+ * ```ts
263
+ * 1 / marginRatioInitial
264
+ * ```
265
+ *
266
+ * @returns Maximum leverage.
267
+ */
45
268
  maxLeverage(): number;
269
+ /**
270
+ * Get the initial margin ratio for this market.
271
+ *
272
+ * This is the minimum margin required when opening a position.
273
+ *
274
+ * @returns Initial margin ratio as a fraction (e.g. 0.05 = 20x).
275
+ */
46
276
  initialMarginRatio(): number;
277
+ /**
278
+ * Get the maintenance margin ratio for this market.
279
+ *
280
+ * Falling below this ratio may trigger liquidation.
281
+ *
282
+ * @returns Maintenance margin ratio as a fraction.
283
+ */
47
284
  maintenanceMarginRatio(): number;
48
- orderPrice(inputs: {
49
- orderId: PerpetualsOrderId;
50
- }): number;
285
+ /**
286
+ * Round a price to the nearest valid tick for this market.
287
+ *
288
+ * Rounding mode:
289
+ * - `floor: true` => round down
290
+ * - `ceil: true` => round up
291
+ * - neither => nearest tick (`Math.round`)
292
+ *
293
+ * @param inputs.price - Raw price to round.
294
+ * @param inputs.floor - Force floor rounding.
295
+ * @param inputs.ceil - Force ceil rounding.
296
+ * @returns Price snapped to the market tick size.
297
+ */
51
298
  roundToValidPrice: (inputs: {
52
299
  price: number;
300
+ floor?: boolean;
301
+ ceil?: boolean;
53
302
  }) => number;
303
+ /**
304
+ * Round a price to the nearest valid tick as a fixed-point `bigint` (1e9 precision).
305
+ *
306
+ * This is helpful when you need the on-chain representation directly
307
+ * (e.g. order price fields stored in 9-decimal fixed).
308
+ *
309
+ * @param inputs.price - Raw price as a JS number.
310
+ * @param inputs.floor - Force floor rounding.
311
+ * @param inputs.ceil - Force ceil rounding.
312
+ * @returns Tick-snapped price scaled by `1e9`.
313
+ */
314
+ roundToValidPriceBigInt: (inputs: {
315
+ price: number;
316
+ floor?: boolean;
317
+ ceil?: boolean;
318
+ }) => bigint;
319
+ /**
320
+ * Round a base-asset size to the nearest valid lot size for this market.
321
+ *
322
+ * Rounding mode:
323
+ * - `floor: true` => round down
324
+ * - `ceil: true` => round up
325
+ * - neither => nearest lot (`Math.round`)
326
+ *
327
+ * @param inputs.size - Raw size in base asset units.
328
+ * @param inputs.floor - Force floor rounding.
329
+ * @param inputs.ceil - Force ceil rounding.
330
+ * @returns Size snapped to the market lot size.
331
+ */
54
332
  roundToValidSize: (inputs: {
55
333
  size: number;
56
334
  floor?: boolean;
57
335
  ceil?: boolean;
58
336
  }) => number;
337
+ /**
338
+ * Round a base-asset size to the nearest valid lot as a fixed-point `bigint` (1e9 precision).
339
+ *
340
+ * @param inputs.size - Raw base size as a JS number.
341
+ * @param inputs.floor - Force floor rounding.
342
+ * @param inputs.ceil - Force ceil rounding.
343
+ * @returns Lot-snapped size scaled by `1e9`.
344
+ */
345
+ roundToValidSizeBigInt: (inputs: {
346
+ size: number;
347
+ floor?: boolean;
348
+ ceil?: boolean;
349
+ }) => bigint;
350
+ /**
351
+ * Construct an "empty" position object for this market.
352
+ *
353
+ * Useful when an account has no open position but downstream UI/calculations
354
+ * expect a {@link PerpetualsPosition}-shaped object.
355
+ *
356
+ * @returns A zeroed-out {@link PerpetualsPosition} for `this.marketId`.
357
+ */
358
+ emptyPosition: () => PerpetualsPosition;
59
359
  }
60
360
  //# sourceMappingURL=perpetualsMarket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"perpetualsMarket.d.ts","sourceRoot":"","sources":["../../../src/packages/perpetuals/perpetualsMarket.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD,OAAO,EAIN,QAAQ,EAKR,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EAGnB,SAAS,EAET,oBAAoB,EAIpB,qCAAqC,EACrC,qBAAqB,EACrB,gCAAgC,EAChC,YAAY,EACZ,MAAM,aAAa,CAAC;AAIrB,qBAAa,gBAAiB,SAAQ,MAAM;IAenC,UAAU,EAAE,oBAAoB;IAVxC,SAAgB,QAAQ,EAAE,kBAAkB,CAAC;IAC7C,SAAgB,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,SAAgB,YAAY,EAAE,sBAAsB,CAAC;IACrD,SAAgB,WAAW,EAAE,qBAAqB,CAAC;gBAO3C,UAAU,EAAE,oBAAoB,EACvC,MAAM,CAAC,EAAE,YAAY;IAiBf,iBAAiB;IAIjB,aAAa,IAAI,OAAO,CAAC,qCAAqC,CAAC;IAM/D,gBAAgB;IAIhB,YAAY;IAIZ,kBAAkB,GAAU,QAAQ;QAC1C,OAAO,EAAE,iBAAiB,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,oBAAoB,CAAC;KAC7B,KAAG,OAAO,CAAC,MAAM,CAAC,CAajB;IAMW,eAAe,CAAC,MAAM,EAAE,qBAAqB,CAAC,SAAS,CAAC;IAW9D,sBAAsB,QAAO,SAAS,CAE3C;IAEK,iBAAiB,QAAO,SAAS,CAMtC;IAOK,oBAAoB,GAAI,QAAQ;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAG,MAAM,CAWpE;IAEK,iBAAiB,GAAI,QAAQ;QACnC,KAAK,EAAE,MAAM,CAAC;KACd,KAAG,oBAAoB,CAStB;IAEK,iBAAiB,GAAI,QAAQ;QACnC,UAAU,EAAE,oBAAoB,CAAC;KACjC,KAAG,MAAM,CASR;IAEK,0BAA0B,GAAI,QAAQ;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,mBAAmB,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACxB,KAAG;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;KACtB,CAiBC;IAMK,OAAO;IAIP,QAAQ;IAIR,WAAW;IASX,kBAAkB;IAMlB,sBAAsB;IAUtB,UAAU,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAAG,MAAM;IAM1D,iBAAiB,GAAI,QAAQ;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,YAEnD;IAEK,gBAAgB,GAAI,QAAQ;QAClC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KACf,YASC;CAqGF"}
1
+ {"version":3,"file":"perpetualsMarket.d.ts","sourceRoot":"","sources":["../../../src/packages/perpetuals/perpetualsMarket.ts"],"names":[],"mappings":"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"}