@0xmonaco/types 1.0.53 → 1.0.55

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.
@@ -19,12 +19,16 @@ import type { MonacoWebSocket, MonacoWebSocketConfig, OrderbookEvent, OrderbookQ
19
19
  import type { WhitelistAPI } from "../whitelist";
20
20
  import type { WithdrawalsAPI } from "../withdrawals";
21
21
  import type { Network } from "./network";
22
+ /** REST signing migration selector. WebSocket and gRPC authentication are unchanged. */
23
+ export type RequestSigning = "legacy" | "rfc9421";
22
24
  /**
23
25
  * Configuration options for the Monaco SDK.
24
26
  *
25
27
  * The SDK requires a wallet client for signing operations and an RPC URL.
26
28
  */
27
29
  export interface SDKConfig {
30
+ /** Defaults to legacy. Opt in after deploying RFC 9421 server support; never auto-downgrades. */
31
+ requestSigning?: RequestSigning;
28
32
  /** Wallet client for signing operations (optional - can be set later via setWalletClient) */
29
33
  walletClient?: WalletClient;
30
34
  /**
@@ -11,9 +11,10 @@ export type WebSocketStatus = "connected" | "connecting" | "disconnected" | "rec
11
11
  export type StatusHandler = (status: WebSocketStatus) => void;
12
12
  /**
13
13
  * Why the connection was re-established. Delivered by
14
- * {@link MonacoWebSocketConfig.onResync} after the client has reconnected,
15
- * re-authenticated, and re-subscribed — the point where the app should refetch
16
- * REST snapshots and reconcile by `(id, updatedAt)`.
14
+ * {@link MonacoWebSocketConfig.onResync} after the socket reopens and sends its
15
+ * authentication/subscription requests. It does not wait for server acks or
16
+ * snapshots. The application owns channel-specific recovery; the SDK does not
17
+ * automatically refetch REST state.
17
18
  */
18
19
  export interface WebSocketResyncInfo {
19
20
  /** WebSocket close code of the connection that was lost. */
@@ -105,10 +106,10 @@ export interface MonacoWebSocketConfig {
105
106
  /** Callback for connection status changes */
106
107
  onStatusChange?: StatusHandler;
107
108
  /**
108
- * Called after every automatic reconnect once the live stream is resumed
109
- * (re-authenticated and re-subscribed). Refetch REST snapshots here and
110
- * reconcile by `(id, updatedAt)`, last-writer-wins; events that arrived while
111
- * the snapshot was in flight are newer than the snapshot rows they duplicate.
109
+ * Called after every automatic reconnect sends authentication/subscription
110
+ * requests, without waiting for acknowledgements or subscribe snapshots.
111
+ * Refetch and reconcile channel-specific state in this application callback;
112
+ * automatic reconnect does not itself perform REST recovery.
112
113
  */
113
114
  onResync?: ResyncHandler;
114
115
  /**
@@ -5,8 +5,8 @@
5
5
  * collateral, margin ratio, and maintenance requirement for a margin account.
6
6
  *
7
7
  * This is an authenticated channel - requires the signed session-key handshake.
8
- * Lag policy is Conflate: a lagging subscriber is fast-forwarded to the latest
9
- * state rather than disconnected, so there is no gap signal to reconcile. Each
8
+ * Detected broadcast lag closes the connection with 1013 and requires resync.
9
+ * A lost key or terminal update need not have a later replacement. Each
10
10
  * frame carries the account's full current health, so consume it as a
11
11
  * terminal-state snapshot per margin account, never as an additive delta.
12
12
  */
@@ -18,7 +18,7 @@ export interface AccountEventData {
18
18
  marginAccountId: string;
19
19
  /**
20
20
  * Monotonic per-account counter within one producer run. It advances only on
21
- * published frames, may SKIP values (at-most-once delivery, conflation), and
21
+ * published frames, may SKIP values (at-most-once publishing/delivery), and
22
22
  * resets to zero when the producer restarts — which can happen while your
23
23
  * WebSocket stays connected, because the socket is owned by a different
24
24
  * service. It is therefore never a gap detector and never a cross-restart
@@ -5,8 +5,8 @@
5
5
  * collateral, margin ratio, and maintenance requirement for a margin account.
6
6
  *
7
7
  * This is an authenticated channel - requires the signed session-key handshake.
8
- * Lag policy is Conflate: a lagging subscriber is fast-forwarded to the latest
9
- * state rather than disconnected, so there is no gap signal to reconcile. Each
8
+ * Detected broadcast lag closes the connection with 1013 and requires resync.
9
+ * A lost key or terminal update need not have a later replacement. Each
10
10
  * frame carries the account's full current health, so consume it as a
11
11
  * terminal-state snapshot per margin account, never as an additive delta.
12
12
  */
@@ -6,9 +6,8 @@
6
6
  * tick size, quantity step, order-size bounds, or (for perp markets) leverage
7
7
  * and margin-rate bounds.
8
8
  *
9
- * This is a public channel (no authentication). Lag policy is Conflate: a
10
- * lagging subscriber is fast-forwarded to the latest frame rather than
11
- * disconnected. Every frame carries the market's FULL current configuration
9
+ * This is a public channel (no authentication). Detected broadcast lag closes the
10
+ * connection with 1013 and requires resync. Every frame carries the market's FULL current configuration
12
11
  * (not just the changed fields), so consume it as a terminal-state snapshot per
13
12
  * market and never as an additive delta; `changedFields` names which fields the
14
13
  * mutation touched, for callers that want to react selectively.
@@ -6,9 +6,8 @@
6
6
  * tick size, quantity step, order-size bounds, or (for perp markets) leverage
7
7
  * and margin-rate bounds.
8
8
  *
9
- * This is a public channel (no authentication). Lag policy is Conflate: a
10
- * lagging subscriber is fast-forwarded to the latest frame rather than
11
- * disconnected. Every frame carries the market's FULL current configuration
9
+ * This is a public channel (no authentication). Detected broadcast lag closes the
10
+ * connection with 1013 and requires resync. Every frame carries the market's FULL current configuration
12
11
  * (not just the changed fields), so consume it as a terminal-state snapshot per
13
12
  * market and never as an additive delta; `changedFields` names which fields the
14
13
  * mutation touched, for callers that want to react selectively.
@@ -7,9 +7,8 @@
7
7
  * - all-markets (`market_stats`): one summary row per market in a single frame,
8
8
  * carried by `MarketStatsAllEvent`.
9
9
  *
10
- * Both are public channels (no authentication). Lag policy is Conflate: a
11
- * lagging subscriber is fast-forwarded to the latest frame rather than
12
- * disconnected. Each frame carries the market's full current stats, so consume
10
+ * Both are public channels (no authentication). Detected broadcast lag closes the
11
+ * connection with 1013 and requires resync. Each frame carries the market's full current stats, so consume
13
12
  * it as a terminal-state snapshot, never as an additive delta.
14
13
  *
15
14
  * Perp-only fields (index/mark price, open interest, funding) are optional and
@@ -7,9 +7,8 @@
7
7
  * - all-markets (`market_stats`): one summary row per market in a single frame,
8
8
  * carried by `MarketStatsAllEvent`.
9
9
  *
10
- * Both are public channels (no authentication). Lag policy is Conflate: a
11
- * lagging subscriber is fast-forwarded to the latest frame rather than
12
- * disconnected. Each frame carries the market's full current stats, so consume
10
+ * Both are public channels (no authentication). Detected broadcast lag closes the
11
+ * connection with 1013 and requires resync. Each frame carries the market's full current stats, so consume
13
12
  * it as a terminal-state snapshot, never as an additive delta.
14
13
  *
15
14
  * Perp-only fields (index/mark price, open interest, funding) are optional and
@@ -102,39 +102,38 @@ export interface CommonOrderEventData {
102
102
  /**
103
103
  * `true` when the order was admitted post-only (maker-only), so a subscriber
104
104
  * can confirm the flag was honoured without a round trip to `getOrder`.
105
- * Carried on the `OrderPlaced` acknowledgement, the taker fill, and the
106
- * resting order's lifecycle — `OrderPartiallyCancelled` (an in-place
107
- * reduction, which is how an MM's own `remainingQuantityTarget` replace is
108
- * announced), `OrderCancelled` and `OrderExpired`.
105
+ * Carried on the `OrderPlaced` acknowledgement, fills in **both roles** —
106
+ * the maker fill gained it in 0XM-2729 — and the resting order's lifecycle:
107
+ * `OrderPartiallyCancelled` (an in-place reduction, which is how an MM's own
108
+ * `remainingQuantityTarget` replace is announced), `OrderCancelled` and
109
+ * `OrderExpired`.
109
110
  *
110
- * Declared on the shared block, but two variants can never carry it, and
111
- * this optional field is the only thing that says so: a **maker fill**,
112
- * which is out of scope because a maker already learned the flag from its
113
- * own acknowledgement; and **`OrderRejected`**, which only ever describes a
114
- * MARKET order with no liquidity or an unfilled IOC/FOK — and post-only is
115
- * refused on both, so no post-only order can reach it.
111
+ * The maker fill is the one that matters: a post-only order that would have
112
+ * crossed is refused at admission and emits nothing, so an admitted
113
+ * post-only order can never produce a taker fill — it rests, and every fill
114
+ * it ever has is a maker fill. Until 0XM-2729 that meant the flag was absent
115
+ * on precisely the fills a post-only order produces; now the fill that
116
+ * partially fills or retires a post-only quote carries it.
116
117
  *
117
- * Only ever present as `true`: on a variant that CARRIES the field, an order
118
- * that is not post-only omits the key rather than sending `postOnly: false`,
119
- * exactly as the REST read model's `postOnly?: boolean` does, so
120
- * `event.data.postOnly ?? false` reads the same as REST *for that event*.
118
+ * Two variants never carry it, and a post-only order can reach neither.
119
+ * `OrderRejected` only describes a MARKET order with no liquidity or an
120
+ * unfilled IOC/FOK. And `OrderCancelled` has two server payloads: the
121
+ * resting-order cancellation listed above carries the field, while the one
122
+ * reporting an IOC or market order's REMAINDER after a partial fill is a
123
+ * different payload that declares no `post_only` at all. Post-only is
124
+ * refused on MARKET and IOC/FOK alike, so neither is reachable — which is
125
+ * why the single `OrderCancelledEvent` interface can declare the field
126
+ * without lying about any frame a post-only order actually produces.
121
127
  *
122
- * That equivalence is per-event, and it does NOT hold on a maker fill.
123
- * A post-only order rests and therefore fills as a maker, and the maker
124
- * payload never declares the field — so `?? false` there would return
125
- * `false` for an order REST reports as `true`. Absence on a maker fill
126
- * carries NO information. Track `postOnly` as order-level state learned from
127
- * the `OrderPlaced` acknowledgement (or a REST read) and carry it forward;
128
- * never re-derive it from whichever event arrived last.
129
- *
130
- * On a carrying variant, absent is not evidence the flag was dropped — it is
131
- * the ordinary shape of a non-post-only order, and also what an order placed
132
- * before the flag was persisted reports.
133
- *
134
- * A post-only order that WOULD have crossed the book is rejected before
135
- * acceptance and emits no event at all (see `clientOrderId`), so in practice
136
- * the flag reaches a subscriber on a resting order's lifecycle — never on a
137
- * taker fill, which an admitted post-only order cannot produce.
128
+ * Only ever present as `true`: an order that is not post-only omits the key
129
+ * rather than sending `postOnly: false`, exactly as the REST read model's
130
+ * `postOnly?: boolean` does — so `event.data.postOnly ?? false` reads the
131
+ * same as REST on every carrying variant, maker fills included. Absent is
132
+ * not evidence the flag was dropped: it is the ordinary shape of a
133
+ * non-post-only order, and also what an order placed before the flag was
134
+ * persisted reports (a maker fill emitted by a server predating 0XM-2729
135
+ * likewise omits it). The order-level value on the acknowledgement or a
136
+ * REST read remains the authority for such orders.
138
137
  * Wire: `post_only`.
139
138
  */
140
139
  postOnly?: boolean;
@@ -5,8 +5,8 @@
5
5
  * liquidation price, isolated margin, leverage).
6
6
  *
7
7
  * This is an authenticated channel - requires the signed session-key handshake.
8
- * Lag policy is Conflate: a lagging subscriber is fast-forwarded to the latest
9
- * state rather than disconnected, so there is no gap signal to reconcile.
8
+ * Detected broadcast lag closes the connection with 1013 and requires resync.
9
+ * A lost terminal position update need not have a later replacement.
10
10
  */
11
11
  /**
12
12
  * Position side. The server emits `LONG` or `SHORT` for an open position.
@@ -5,6 +5,6 @@
5
5
  * liquidation price, isolated margin, leverage).
6
6
  *
7
7
  * This is an authenticated channel - requires the signed session-key handshake.
8
- * Lag policy is Conflate: a lagging subscriber is fast-forwarded to the latest
9
- * state rather than disconnected, so there is no gap signal to reconcile.
8
+ * Detected broadcast lag closes the connection with 1013 and requires resync.
9
+ * A lost terminal position update need not have a later replacement.
10
10
  */
@@ -569,7 +569,7 @@ export interface paths {
569
569
  * @description Refresh session expiry.
570
570
  *
571
571
  * Extends the expiration of the current session. The request must be signed
572
- * by the session private key (standard X-Monaco-* headers); no body is
572
+ * by the session private key (RFC 9421 or legacy X-Monaco-* headers); no body is
573
573
  * required.
574
574
  */
575
575
  post: operations["refresh_session"];
@@ -593,7 +593,7 @@ export interface paths {
593
593
  * @description Revoke current session.
594
594
  *
595
595
  * Revoke the current authenticated session. The request must be signed by
596
- * the session private key (standard X-Monaco-* headers). The user will need
596
+ * the session private key (RFC 9421 or legacy X-Monaco-* headers). The user will need
597
597
  * to authenticate again to obtain a new session.
598
598
  */
599
599
  post: operations["revoke_session"];
@@ -2710,7 +2710,7 @@ export interface components {
2710
2710
  };
2711
2711
  BatchCreateError: {
2712
2712
  /**
2713
- * @description Machine-readable error code
2713
+ * @description Machine-readable error code. ORDER_SUBMISSION_CAPACITY_EXCEEDED refuses a new keyed submission when response-cache capacity is protected by pending durability or persistence. ORDER_SUBMISSION_UNAVAILABLE means the original response is temporarily unavailable or keyed admission is busy; it never authorizes duplicate execution. Retry the same key and payload; the 24-hour limit applies only to previously accepted keys.
2714
2714
  * @example INSUFFICIENT_BALANCE
2715
2715
  */
2716
2716
  code?: string | null;
@@ -2828,7 +2828,7 @@ export interface components {
2828
2828
  * @example quote-btc-1130-a
2829
2829
  */
2830
2830
  clientOrderId?: string | null;
2831
- /** @description Optional submission identity, distinct from clientOrderId. Use 1-64 characters from [A-Za-z0-9._:-], without whitespace. Scoped to your authenticated user/subaccount and application, shared by create and batch-create items. Retrying the same key and normalized order payload within 24 hours of the original acceptance returns the original committed submission result, even after a fill or cancellation, without executing again. Different payload returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS; per-item error in batches). Validation failures before acceptance do not reserve the key. The window does not extend on retries; after it expires the key may execute a new order, so never retry an unresolved submission after 24 hours. Generate a fresh key for each intended new order and retain it across transport retries. Without a key, a timeout or 5xx leaves the outcome unknown and must not be blindly retried. */
2831
+ /** @description Optional submission identity, distinct from clientOrderId. Use 1-64 characters from [A-Za-z0-9._:-], without whitespace. Scoped to your authenticated user/subaccount and application, shared by create and batch-create items. Retrying the same key and normalized order payload within 24 hours of the original acceptance returns the original committed submission result, even after a fill or cancellation, without executing again. A full response cache does not prevent new keyed submissions: durable responses may be evicted while exact key history remains retained. If response capacity is protected by pending durability or persistence, a new key is refused with ORDER_SUBMISSION_CAPACITY_EXCEEDED. A retry whose original response cannot currently be retrieved returns ORDER_SUBMISSION_UNAVAILABLE and never executes again. Both are HTTP 503 / gRPC UNAVAILABLE, or per-item errors in batches. Retry the same key and payload; for previously accepted keys, stay within 24 hours of the original acceptance. A capacity refusal does not accept or reserve a new key. Different payload returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS; per-item error in batches). Validation failures before acceptance do not reserve the key. The window does not extend on retries; after it expires the key may execute a new order, so never retry an unresolved submission after 24 hours. Generate a fresh key for each intended new order and retain it across transport retries. Without a key, a timeout or 5xx leaves the outcome unknown and must not be blindly retried. */
2832
2832
  idempotencyKey?: string | null;
2833
2833
  };
2834
2834
  BatchCreateOrdersRequest: {
@@ -3342,7 +3342,7 @@ export interface components {
3342
3342
  * @example quote-btc-1130-a
3343
3343
  */
3344
3344
  clientOrderId?: string | null;
3345
- /** @description Optional submission identity, distinct from clientOrderId. Use 1-64 characters from [A-Za-z0-9._:-], without whitespace. Scoped to your authenticated user/subaccount and application, shared by create and batch-create items. Retrying the same key and normalized order payload within 24 hours of the original acceptance returns the original committed submission result, even after a fill or cancellation, without executing again. Different payload returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS; per-item error in batches). Validation failures before acceptance do not reserve the key. The window does not extend on retries; after it expires the key may execute a new order, so never retry an unresolved submission after 24 hours. Generate a fresh key for each intended new order and retain it across transport retries. Without a key, a timeout or 5xx leaves the outcome unknown and must not be blindly retried. */
3345
+ /** @description Optional submission identity, distinct from clientOrderId. Use 1-64 characters from [A-Za-z0-9._:-], without whitespace. Scoped to your authenticated user/subaccount and application, shared by create and batch-create items. Retrying the same key and normalized order payload within 24 hours of the original acceptance returns the original committed submission result, even after a fill or cancellation, without executing again. A full response cache does not prevent new keyed submissions: durable responses may be evicted while exact key history remains retained. If response capacity is protected by pending durability or persistence, a new key is refused with ORDER_SUBMISSION_CAPACITY_EXCEEDED. A retry whose original response cannot currently be retrieved returns ORDER_SUBMISSION_UNAVAILABLE and never executes again. Both are HTTP 503 / gRPC UNAVAILABLE, or per-item errors in batches. Retry the same key and payload; for previously accepted keys, stay within 24 hours of the original acceptance. A capacity refusal does not accept or reserve a new key. Different payload returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS; per-item error in batches). Validation failures before acceptance do not reserve the key. The window does not extend on retries; after it expires the key may execute a new order, so never retry an unresolved submission after 24 hours. Generate a fresh key for each intended new order and retain it across transport retries. Without a key, a timeout or 5xx leaves the outcome unknown and must not be blindly retried. */
3346
3346
  idempotencyKey?: string | null;
3347
3347
  };
3348
3348
  CreateOrderResponse: {
@@ -4206,10 +4206,11 @@ export interface components {
4206
4206
  */
4207
4207
  totalQuoteVolumeLtd?: string | null;
4208
4208
  /**
4209
+ * Format: int64
4209
4210
  * @description Life-to-date cumulative number of trades (since market inception); 0 for a pair with no trades yet
4210
4211
  * @example 482931
4211
4212
  */
4212
- totalTradeCountLtd?: string | null;
4213
+ totalTradeCountLtd?: number | null;
4213
4214
  /**
4214
4215
  * @description Quote-token (notional) volume summed over the available candles in the rolling 24h window; null when quote volume is unavailable for the window
4215
4216
  * @example 117845632.18
@@ -4224,10 +4225,11 @@ export interface components {
4224
4225
  */
4225
4226
  totalQuoteVolumeLtd?: string | null;
4226
4227
  /**
4228
+ * Format: int64
4227
4229
  * @description Life-to-date cumulative number of trades summed across all trading pairs
4228
4230
  * @example 19284736
4229
4231
  */
4230
- totalTradeCountLtd?: string | null;
4232
+ totalTradeCountLtd?: number | null;
4231
4233
  };
4232
4234
  GetMovementsResponse: {
4233
4235
  movements?: components["schemas"]["LedgerMovement"][] | null;
@@ -6796,10 +6798,11 @@ export interface components {
6796
6798
  */
6797
6799
  totalQuoteVolumeLtd?: string | null;
6798
6800
  /**
6801
+ * Format: int64
6799
6802
  * @description Life-to-date cumulative number of trades (since market inception); 0 for a pair with no trades yet
6800
6803
  * @example 482931
6801
6804
  */
6802
- totalTradeCountLtd?: string | null;
6805
+ totalTradeCountLtd?: number | null;
6803
6806
  /**
6804
6807
  * @description Latest settled funding rate as a decimal fraction per funding window (the capped settled value); null for spot pairs and margin pairs with no settled funding window yet
6805
6808
  * @example 0.000125
@@ -8162,6 +8165,13 @@ export interface operations {
8162
8165
  };
8163
8166
  content?: never;
8164
8167
  };
8168
+ /** @description Portfolio analytics reader unavailable */
8169
+ 503: {
8170
+ headers: {
8171
+ [name: string]: unknown;
8172
+ };
8173
+ content?: never;
8174
+ };
8165
8175
  };
8166
8176
  };
8167
8177
  get_portfolio_assets: {
@@ -8256,6 +8266,13 @@ export interface operations {
8256
8266
  };
8257
8267
  content?: never;
8258
8268
  };
8269
+ /** @description Portfolio analytics reader unavailable */
8270
+ 503: {
8271
+ headers: {
8272
+ [name: string]: unknown;
8273
+ };
8274
+ content?: never;
8275
+ };
8259
8276
  };
8260
8277
  };
8261
8278
  get_portfolio_margin: {
@@ -9923,6 +9940,13 @@ export interface operations {
9923
9940
  "application/json": components["schemas"]["TransferCollateralToMarginAccountResponse"];
9924
9941
  };
9925
9942
  };
9943
+ /** @description Movement rate limit exceeded — withdrawals and collateral transfers share a per-user budget; retry after the interval in details.retryAfter */
9944
+ 429: {
9945
+ headers: {
9946
+ [name: string]: unknown;
9947
+ };
9948
+ content?: never;
9949
+ };
9926
9950
  };
9927
9951
  };
9928
9952
  transfer_collateral_from_margin_account: {
@@ -9953,6 +9977,13 @@ export interface operations {
9953
9977
  "application/json": components["schemas"]["TransferCollateralFromMarginAccountResponse"];
9954
9978
  };
9955
9979
  };
9980
+ /** @description Movement rate limit exceeded — withdrawals and collateral transfers share a per-user budget; retry after the interval in details.retryAfter */
9981
+ 429: {
9982
+ headers: {
9983
+ [name: string]: unknown;
9984
+ };
9985
+ content?: never;
9986
+ };
9956
9987
  };
9957
9988
  };
9958
9989
  get_margin_account_movements: {
@@ -10084,6 +10115,13 @@ export interface operations {
10084
10115
  "application/json": components["schemas"]["TransferCollateralToMarginAccountResponse"];
10085
10116
  };
10086
10117
  };
10118
+ /** @description Movement rate limit exceeded — withdrawals and collateral transfers share a per-user budget; retry after the interval in details.retryAfter */
10119
+ 429: {
10120
+ headers: {
10121
+ [name: string]: unknown;
10122
+ };
10123
+ content?: never;
10124
+ };
10087
10125
  };
10088
10126
  };
10089
10127
  transfer_collateral_from_parent_margin_account: {
@@ -10108,6 +10146,13 @@ export interface operations {
10108
10146
  "application/json": components["schemas"]["TransferCollateralFromMarginAccountResponse"];
10109
10147
  };
10110
10148
  };
10149
+ /** @description Movement rate limit exceeded — withdrawals and collateral transfers share a per-user budget; retry after the interval in details.retryAfter */
10150
+ 429: {
10151
+ headers: {
10152
+ [name: string]: unknown;
10153
+ };
10154
+ content?: never;
10155
+ };
10111
10156
  };
10112
10157
  };
10113
10158
  get_parent_margin_account_movements: {
@@ -10182,6 +10227,13 @@ export interface operations {
10182
10227
  "application/json": components["schemas"]["TransferCollateralToMarginAccountResponse"];
10183
10228
  };
10184
10229
  };
10230
+ /** @description Movement rate limit exceeded — withdrawals and collateral transfers share a per-user budget; retry after the interval in details.retryAfter */
10231
+ 429: {
10232
+ headers: {
10233
+ [name: string]: unknown;
10234
+ };
10235
+ content?: never;
10236
+ };
10185
10237
  };
10186
10238
  };
10187
10239
  simulate_risk_bucket_order_risk: {
@@ -10848,6 +10900,13 @@ export interface operations {
10848
10900
  };
10849
10901
  content?: never;
10850
10902
  };
10903
+ /** @description Order rate limit exceeded — the per-account item-weighted budget is spent; retry after the interval in details.retryAfter */
10904
+ 429: {
10905
+ headers: {
10906
+ [name: string]: unknown;
10907
+ };
10908
+ content?: never;
10909
+ };
10851
10910
  /** @description Internal server error or matching engine failure */
10852
10911
  500: {
10853
10912
  headers: {
@@ -10855,6 +10914,13 @@ export interface operations {
10855
10914
  };
10856
10915
  content?: never;
10857
10916
  };
10917
+ /** @description Keyed order submission temporarily unavailable; retry the same key and payload. For previously accepted keys, retry only within 24 hours of the original acceptance. A capacity refusal does not accept or reserve a new key. */
10918
+ 503: {
10919
+ headers: {
10920
+ [name: string]: unknown;
10921
+ };
10922
+ content?: never;
10923
+ };
10858
10924
  };
10859
10925
  };
10860
10926
  batch_cancel_orders: {
@@ -10893,6 +10959,13 @@ export interface operations {
10893
10959
  };
10894
10960
  content?: never;
10895
10961
  };
10962
+ /** @description Risk-reduction rate limit exceeded — each id counts against the 2x risk-reduction budget and the whole request is rejected; retry after the interval in details.retryAfter */
10963
+ 429: {
10964
+ headers: {
10965
+ [name: string]: unknown;
10966
+ };
10967
+ content?: never;
10968
+ };
10896
10969
  /** @description Internal server error or matching engine failure */
10897
10970
  500: {
10898
10971
  headers: {
@@ -11016,6 +11089,13 @@ export interface operations {
11016
11089
  };
11017
11090
  content?: never;
11018
11091
  };
11092
+ /** @description Order rate limit exceeded — each batch item counts against the per-account budget and the whole request is rejected; retry after the interval in details.retryAfter */
11093
+ 429: {
11094
+ headers: {
11095
+ [name: string]: unknown;
11096
+ };
11097
+ content?: never;
11098
+ };
11019
11099
  /** @description Internal server error */
11020
11100
  500: {
11021
11101
  headers: {
@@ -11061,6 +11141,13 @@ export interface operations {
11061
11141
  };
11062
11142
  content?: never;
11063
11143
  };
11144
+ /** @description Order rate limit exceeded — each batch item counts against the per-account budget and the whole request is rejected; retry after the interval in details.retryAfter */
11145
+ 429: {
11146
+ headers: {
11147
+ [name: string]: unknown;
11148
+ };
11149
+ content?: never;
11150
+ };
11064
11151
  /** @description Internal server error */
11065
11152
  500: {
11066
11153
  headers: {
@@ -11113,6 +11200,13 @@ export interface operations {
11113
11200
  };
11114
11201
  content?: never;
11115
11202
  };
11203
+ /** @description Risk-reduction rate limit exceeded — cancels draw the 2x risk-reduction budget; retry after the interval in details.retryAfter */
11204
+ 429: {
11205
+ headers: {
11206
+ [name: string]: unknown;
11207
+ };
11208
+ content?: never;
11209
+ };
11116
11210
  /** @description Internal server error */
11117
11211
  500: {
11118
11212
  headers: {
@@ -11195,6 +11289,13 @@ export interface operations {
11195
11289
  "application/json": components["schemas"]["CancelConditionalOrderResponse"];
11196
11290
  };
11197
11291
  };
11292
+ /** @description Risk-reduction rate limit exceeded — cancels draw the 2x risk-reduction budget; retry after the interval in details.retryAfter */
11293
+ 429: {
11294
+ headers: {
11295
+ [name: string]: unknown;
11296
+ };
11297
+ content?: never;
11298
+ };
11198
11299
  };
11199
11300
  };
11200
11301
  list_twap_orders: {
@@ -11389,6 +11490,13 @@ export interface operations {
11389
11490
  };
11390
11491
  content?: never;
11391
11492
  };
11493
+ /** @description Risk-reduction rate limit exceeded — cancels draw the 2x risk-reduction budget; retry after the interval in details.retryAfter */
11494
+ 429: {
11495
+ headers: {
11496
+ [name: string]: unknown;
11497
+ };
11498
+ content?: never;
11499
+ };
11392
11500
  /** @description Internal server error */
11393
11501
  500: {
11394
11502
  headers: {
@@ -11552,6 +11660,13 @@ export interface operations {
11552
11660
  };
11553
11661
  content?: never;
11554
11662
  };
11663
+ /** @description Order rate limit exceeded — the per-account item-weighted budget is spent; retry after the interval in details.retryAfter */
11664
+ 429: {
11665
+ headers: {
11666
+ [name: string]: unknown;
11667
+ };
11668
+ content?: never;
11669
+ };
11555
11670
  /** @description Internal server error */
11556
11671
  500: {
11557
11672
  headers: {
@@ -12439,6 +12554,13 @@ export interface operations {
12439
12554
  };
12440
12555
  content?: never;
12441
12556
  };
12557
+ /** @description Movement rate limit exceeded — withdrawals and collateral transfers share a per-user budget; retry after the interval in details.retryAfter */
12558
+ 429: {
12559
+ headers: {
12560
+ [name: string]: unknown;
12561
+ };
12562
+ content?: never;
12563
+ };
12442
12564
  /** @description Internal server error */
12443
12565
  500: {
12444
12566
  headers: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xmonaco/types",
3
- "version": "1.0.53",
3
+ "version": "1.0.55",
4
4
  "type": "module",
5
5
  "homepage": "https://docs.0xmonaco.com/sdk/typescript",
6
6
  "main": "./dist/index.js",
@@ -16,7 +16,7 @@
16
16
  "lint": "biome lint ."
17
17
  },
18
18
  "dependencies": {
19
- "@0xmonaco/contracts": "1.0.53",
19
+ "@0xmonaco/contracts": "1.0.55",
20
20
  "zod": "^4.1.12"
21
21
  },
22
22
  "peerDependencies": {