@acta-markets/ts-sdk 0.0.23-beta → 0.0.24-beta

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.
package/README.md CHANGED
@@ -8,10 +8,10 @@ Generated by Codama.
8
8
 
9
9
  ## Package
10
10
 
11
- Published package: `@acta-markets/ts-sdk@0.0.6-beta` (ESM-first, CJS fallback)
11
+ Published package: `@acta-markets/ts-sdk@0.0.24-beta` (ESM-first, CJS fallback)
12
12
 
13
13
  ```bash
14
- yarn add @acta-markets/ts-sdk@0.0.6-beta
14
+ yarn add @acta-markets/ts-sdk@0.0.24-beta
15
15
  ```
16
16
 
17
17
  ## Tooling
@@ -103,6 +103,7 @@ class ActaWsClient extends TypedEventEmitter {
103
103
  connectionState = "disconnected";
104
104
  sessionId = null;
105
105
  lastAuthSessionId = null;
106
+ makerPda = null;
106
107
  helloSent = false;
107
108
  welcomeReceived = false;
108
109
  pendingMessages = [];
@@ -147,6 +148,7 @@ class ActaWsClient extends TypedEventEmitter {
147
148
  this.authRequested = false;
148
149
  this.pendingResumeSessionId = null;
149
150
  this.lastAuthSessionId = null;
151
+ this.makerPda = null;
150
152
  this.shouldReconnect = this.options.autoReconnect;
151
153
  this.doConnect();
152
154
  }
@@ -200,6 +202,9 @@ class ActaWsClient extends TypedEventEmitter {
200
202
  getSessionId() {
201
203
  return this.sessionId;
202
204
  }
205
+ getMakerPda() {
206
+ return this.makerPda;
207
+ }
203
208
  async createRfq(request) {
204
209
  this.ensureAuthenticated();
205
210
  (0, wirePolicy_1.assertWsU64Safe)(request.strike, "strike");
@@ -340,12 +345,12 @@ class ActaWsClient extends TypedEventEmitter {
340
345
  });
341
346
  return requestId;
342
347
  }
343
- /** Maker-only: get balances per deposited token (total, locked, available). */
344
- getMakerBalances() {
348
+ /** Maker-only: one-shot MM dashboard bootstrap. */
349
+ getMmSummary() {
345
350
  this.ensureAuthenticated();
346
351
  const requestId = this.nextRequestId();
347
352
  this.send({
348
- type: "GetMakerBalances",
353
+ type: "GetMmSummary",
349
354
  data: { request_id: requestId },
350
355
  });
351
356
  return requestId;
@@ -400,6 +405,7 @@ class ActaWsClient extends TypedEventEmitter {
400
405
  const data = {
401
406
  request_id: requestId,
402
407
  active_only: args?.active_only ?? true,
408
+ ...(args?.limit !== undefined ? { limit: args.limit } : {}),
403
409
  };
404
410
  this.send({ type: "GetMyQuotes", data });
405
411
  return requestId;
@@ -724,7 +730,7 @@ class ActaWsClient extends TypedEventEmitter {
724
730
  void this.handleAuthRequest(message.data.challenge);
725
731
  break;
726
732
  case "AuthSuccess":
727
- this.handleAuthSuccess(message.data.session_id, message.data.expires_at);
733
+ this.handleAuthSuccess(message.data.session_id, message.data.expires_at, message.data.maker_pda ?? null);
728
734
  break;
729
735
  case "AuthError":
730
736
  this.handleAuthError(message.data.reason, message.data.message);
@@ -733,6 +739,7 @@ class ActaWsClient extends TypedEventEmitter {
733
739
  this.sessionId = null;
734
740
  this.pendingResumeSessionId = null;
735
741
  this.lastAuthSessionId = null;
742
+ this.makerPda = null;
736
743
  this.startAuthSent = false;
737
744
  this.setConnectionState("connecting");
738
745
  this.emit("logoutSuccess");
@@ -780,9 +787,6 @@ class ActaWsClient extends TypedEventEmitter {
780
787
  case "MyCaps":
781
788
  this.emit("myCaps", message.data);
782
789
  break;
783
- case "MakerBalances":
784
- this.emit("makerBalances", message.data);
785
- break;
786
790
  case "MakerPositions":
787
791
  this.emit("makerPositions", message.data);
788
792
  break;
@@ -795,6 +799,18 @@ class ActaWsClient extends TypedEventEmitter {
795
799
  case "MyQuotes":
796
800
  this.emit("myQuotes", message.data);
797
801
  break;
802
+ case "MmSummary":
803
+ this.emit("mmSummary", message.data);
804
+ break;
805
+ case "QuoteRejected":
806
+ this.emit("quoteRejected", message.data);
807
+ break;
808
+ case "BatchQuotesAck":
809
+ this.emit("batchQuotesAck", message.data);
810
+ break;
811
+ case "CancelAllQuotesAck":
812
+ this.emit("cancelAllQuotesAck", message.data);
813
+ break;
798
814
  case "MyActiveRfqs":
799
815
  this.handleMyActiveRfqs(message.data);
800
816
  break;
@@ -1050,14 +1066,15 @@ class ActaWsClient extends TypedEventEmitter {
1050
1066
  this.send(msg);
1051
1067
  }
1052
1068
  }
1053
- handleAuthSuccess(sessionId, expiresAt) {
1069
+ handleAuthSuccess(sessionId, expiresAt, makerPda) {
1054
1070
  this.sessionId = sessionId;
1055
1071
  this.pendingResumeSessionId = null;
1056
1072
  if (expiresAt !== null) {
1057
1073
  this.lastAuthSessionId = sessionId;
1058
1074
  }
1075
+ this.makerPda = makerPda;
1059
1076
  this.setConnectionState("authenticated");
1060
- this.emit("authenticated", sessionId, expiresAt);
1077
+ this.emit("authenticated", sessionId, expiresAt, makerPda);
1061
1078
  if (this.subscribedChannels.size > 0) {
1062
1079
  const channels = Array.from(this.subscribedChannels);
1063
1080
  const request_id = this.nextRequestId();
@@ -1141,7 +1158,7 @@ class ActaWsClient extends TypedEventEmitter {
1141
1158
  }
1142
1159
  handlePositionUpdated(data) {
1143
1160
  this.state.positions.set(data.position.pda, data.position);
1144
- this.emit("positionUpdated", data.position, data.update_type);
1161
+ this.emit("positionUpdated", data.position, data.update_type, data);
1145
1162
  }
1146
1163
  handleChainEvent(event) {
1147
1164
  this.emit("chainEvent", event);
@@ -2,7 +2,7 @@
2
2
  import type { AuthProvider } from "./auth";
3
3
  import type { SignerLike } from "../chain/orders";
4
4
  import type { Address } from "@solana/addresses";
5
- import type { ActiveRfqInfo, ChainEventMessage, EarnSummaryData, TokenMarketsInfoData, GlobalStats, MarketDescriptorInfo, MarketInfo, MyActiveRfqInfo, MyActiveRfqsMessage, OrderStatusMessage, PositionInfo, QuoteAcknowledgedMessage, QuoteBestStatusMessage, QuoteCancelledMessage, QuoteMessage, ReplaceQuoteMessage, QuoteRefreshRequestedMessage, QuoteOutbidMessage, QuoteReceivedMessage, QuoteSelectedMessage, QuotesUpdateMessage, RfqBroadcastMessage, RfqClosedMessage, RfqCreatedMessage, RfqSkippedMessage, RfqRequestMessage, RfqAvailableAgainMessage, QuoteExpiredMessage, QuoteFilledMessage, IndicativePricesMessage, IndicativePricesRequestMessage, IndicativePricesResponseMessage, GetIndicativePricesMessage, MakerBalancesMessage, MakerMarketsMessage, MakerPositionsMessage, MyCapsMessage, MyQuotesMessage, MyTradesMessage, RequestId, ServerError, ServerMessage, SnapshotMessage, StatsDelta, SubscriptionsMessage, TokenInfo, TradeInfo, UuidString, VersionMismatchMessage, WelcomeMessage, WsChannel, InviteRedeemedData, ReferralCodeClaimedData, MyReferralInfoData } from "./types";
5
+ import type { ActiveRfqInfo, ChainEventMessage, EarnSummaryData, TokenMarketsInfoData, GlobalStats, MarketDescriptorInfo, MarketInfo, MyActiveRfqInfo, MyActiveRfqsMessage, OrderStatusMessage, PositionInfo, PositionUpdatedMessage, QuoteAcknowledgedMessage, QuoteBestStatusMessage, QuoteCancelledMessage, QuoteMessage, ReplaceQuoteMessage, QuoteRefreshRequestedMessage, QuoteOutbidMessage, QuoteReceivedMessage, QuoteSelectedMessage, QuotesUpdateMessage, RfqBroadcastMessage, RfqClosedMessage, RfqCreatedMessage, RfqSkippedMessage, RfqRequestMessage, RfqAvailableAgainMessage, QuoteExpiredMessage, QuoteFilledMessage, IndicativePricesMessage, IndicativePricesRequestMessage, IndicativePricesResponseMessage, GetIndicativePricesMessage, CancelAllQuotesAckMessage, BatchQuotesAckMessage, QuoteRejectedMessage, MakerMarketsMessage, MakerPositionsMessage, MmSummaryData, MyCapsMessage, MyQuotesMessage, MyTradesMessage, RequestId, ServerError, ServerMessage, SnapshotMessage, StatsDelta, SubscriptionsMessage, TokenInfo, TradeInfo, UuidString, VersionMismatchMessage, WelcomeMessage, WsChannel, InviteRedeemedData, ReferralCodeClaimedData, MyReferralInfoData } from "./types";
6
6
  export type ConnectionState = "disconnected" | "connecting" | "authenticating" | "authenticated" | "error";
7
7
  export type ClientRole = "taker" | "maker";
8
8
  export type PendingMessagesOverflowPolicy = "drop_oldest" | "drop_newest" | "throw";
@@ -56,7 +56,7 @@ export type ActaWsClientEvents = {
56
56
  connected: () => void;
57
57
  welcome: (msg: WelcomeMessage) => void;
58
58
  versionMismatch: (msg: VersionMismatchMessage) => void;
59
- authenticated: (sessionId: string, expiresAt: number | null) => void;
59
+ authenticated: (sessionId: string, expiresAt: number | null, makerPda: string | null) => void;
60
60
  authError: (reason: string, message?: string) => void;
61
61
  logoutSuccess: () => void;
62
62
  disconnected: (code: number, reason: string) => void;
@@ -110,12 +110,15 @@ export type ActaWsClientEvents = {
110
110
  quoteCancelled: (msg: QuoteCancelledMessage) => void;
111
111
  rfqAvailableAgain: (msg: RfqAvailableAgainMessage) => void;
112
112
  quoteExpired: (msg: QuoteExpiredMessage) => void;
113
+ quoteRejected: (msg: QuoteRejectedMessage) => void;
114
+ batchQuotesAck: (msg: BatchQuotesAckMessage) => void;
115
+ cancelAllQuotesAck: (msg: CancelAllQuotesAckMessage) => void;
113
116
  indicativePrices: (msg: IndicativePricesMessage) => void;
114
117
  indicativePricesRequest: (msg: IndicativePricesRequestMessage) => void;
115
- makerBalances: (msg: MakerBalancesMessage) => void;
116
118
  makerPositions: (msg: MakerPositionsMessage) => void;
117
119
  myTrades: (msg: MyTradesMessage) => void;
118
120
  myCaps: (msg: MyCapsMessage) => void;
121
+ mmSummary: (msg: MmSummaryData) => void;
119
122
  makerMarkets: (msg: MakerMarketsMessage) => void;
120
123
  myQuotes: (msg: MyQuotesMessage) => void;
121
124
  myActiveRfqs: (msg: MyActiveRfqsMessage) => void;
@@ -126,7 +129,7 @@ export type ActaWsClientEvents = {
126
129
  orderConfirmed: (orderId: string, positionPda: string) => void;
127
130
  orderFailed: (orderId: string, reason: string) => void;
128
131
  tradeExecuted: (trade: TradeInfo, delta?: StatsDelta | null) => void;
129
- positionUpdated: (position: PositionInfo, updateType: string) => void;
132
+ positionUpdated: (position: PositionInfo, updateType: string, msg: PositionUpdatedMessage) => void;
130
133
  marketCreated: (market: MarketInfo) => void;
131
134
  marketFinalized: (marketPda: string, settlementPrice: number) => void;
132
135
  chainEvent: (event: ChainEventMessage) => void;
@@ -184,6 +187,7 @@ export declare class ActaWsClient extends TypedEventEmitter<ActaWsClientEvents>
184
187
  private connectionState;
185
188
  private sessionId;
186
189
  private lastAuthSessionId;
190
+ private makerPda;
187
191
  private helloSent;
188
192
  private welcomeReceived;
189
193
  private pendingMessages;
@@ -207,6 +211,7 @@ export declare class ActaWsClient extends TypedEventEmitter<ActaWsClientEvents>
207
211
  getConnectionState(): ConnectionState;
208
212
  isAuthenticated(): boolean;
209
213
  getSessionId(): string | null;
214
+ getMakerPda(): string | null;
210
215
  createRfq(request: Omit<RfqRequestMessage, "timeout_seconds"> & {
211
216
  timeoutSeconds?: number;
212
217
  clientRequestId?: string;
@@ -249,8 +254,8 @@ export declare class ActaWsClient extends TypedEventEmitter<ActaWsClientEvents>
249
254
  }): RequestId;
250
255
  getEarnSummary(): RequestId;
251
256
  getTokenMarketsInfo(underlyingMint: string): RequestId;
252
- /** Maker-only: get balances per deposited token (total, locked, available). */
253
- getMakerBalances(): RequestId;
257
+ /** Maker-only: one-shot MM dashboard bootstrap. */
258
+ getMmSummary(): RequestId;
254
259
  /** Maker-only: get open positions with optional filters. */
255
260
  getMakerPositions(args?: {
256
261
  market?: string;
@@ -279,6 +284,7 @@ export declare class ActaWsClient extends TypedEventEmitter<ActaWsClientEvents>
279
284
  /** Maker-only: get submitted quotes with status. */
280
285
  getMyQuotes(args?: {
281
286
  active_only?: boolean;
287
+ limit?: number;
282
288
  }): RequestId;
283
289
  logout(): void;
284
290
  /**
package/dist/ws/client.js CHANGED
@@ -100,6 +100,7 @@ export class ActaWsClient extends TypedEventEmitter {
100
100
  connectionState = "disconnected";
101
101
  sessionId = null;
102
102
  lastAuthSessionId = null;
103
+ makerPda = null;
103
104
  helloSent = false;
104
105
  welcomeReceived = false;
105
106
  pendingMessages = [];
@@ -144,6 +145,7 @@ export class ActaWsClient extends TypedEventEmitter {
144
145
  this.authRequested = false;
145
146
  this.pendingResumeSessionId = null;
146
147
  this.lastAuthSessionId = null;
148
+ this.makerPda = null;
147
149
  this.shouldReconnect = this.options.autoReconnect;
148
150
  this.doConnect();
149
151
  }
@@ -197,6 +199,9 @@ export class ActaWsClient extends TypedEventEmitter {
197
199
  getSessionId() {
198
200
  return this.sessionId;
199
201
  }
202
+ getMakerPda() {
203
+ return this.makerPda;
204
+ }
200
205
  async createRfq(request) {
201
206
  this.ensureAuthenticated();
202
207
  assertWsU64Safe(request.strike, "strike");
@@ -337,12 +342,12 @@ export class ActaWsClient extends TypedEventEmitter {
337
342
  });
338
343
  return requestId;
339
344
  }
340
- /** Maker-only: get balances per deposited token (total, locked, available). */
341
- getMakerBalances() {
345
+ /** Maker-only: one-shot MM dashboard bootstrap. */
346
+ getMmSummary() {
342
347
  this.ensureAuthenticated();
343
348
  const requestId = this.nextRequestId();
344
349
  this.send({
345
- type: "GetMakerBalances",
350
+ type: "GetMmSummary",
346
351
  data: { request_id: requestId },
347
352
  });
348
353
  return requestId;
@@ -397,6 +402,7 @@ export class ActaWsClient extends TypedEventEmitter {
397
402
  const data = {
398
403
  request_id: requestId,
399
404
  active_only: args?.active_only ?? true,
405
+ ...(args?.limit !== undefined ? { limit: args.limit } : {}),
400
406
  };
401
407
  this.send({ type: "GetMyQuotes", data });
402
408
  return requestId;
@@ -721,7 +727,7 @@ export class ActaWsClient extends TypedEventEmitter {
721
727
  void this.handleAuthRequest(message.data.challenge);
722
728
  break;
723
729
  case "AuthSuccess":
724
- this.handleAuthSuccess(message.data.session_id, message.data.expires_at);
730
+ this.handleAuthSuccess(message.data.session_id, message.data.expires_at, message.data.maker_pda ?? null);
725
731
  break;
726
732
  case "AuthError":
727
733
  this.handleAuthError(message.data.reason, message.data.message);
@@ -730,6 +736,7 @@ export class ActaWsClient extends TypedEventEmitter {
730
736
  this.sessionId = null;
731
737
  this.pendingResumeSessionId = null;
732
738
  this.lastAuthSessionId = null;
739
+ this.makerPda = null;
733
740
  this.startAuthSent = false;
734
741
  this.setConnectionState("connecting");
735
742
  this.emit("logoutSuccess");
@@ -777,9 +784,6 @@ export class ActaWsClient extends TypedEventEmitter {
777
784
  case "MyCaps":
778
785
  this.emit("myCaps", message.data);
779
786
  break;
780
- case "MakerBalances":
781
- this.emit("makerBalances", message.data);
782
- break;
783
787
  case "MakerPositions":
784
788
  this.emit("makerPositions", message.data);
785
789
  break;
@@ -792,6 +796,18 @@ export class ActaWsClient extends TypedEventEmitter {
792
796
  case "MyQuotes":
793
797
  this.emit("myQuotes", message.data);
794
798
  break;
799
+ case "MmSummary":
800
+ this.emit("mmSummary", message.data);
801
+ break;
802
+ case "QuoteRejected":
803
+ this.emit("quoteRejected", message.data);
804
+ break;
805
+ case "BatchQuotesAck":
806
+ this.emit("batchQuotesAck", message.data);
807
+ break;
808
+ case "CancelAllQuotesAck":
809
+ this.emit("cancelAllQuotesAck", message.data);
810
+ break;
795
811
  case "MyActiveRfqs":
796
812
  this.handleMyActiveRfqs(message.data);
797
813
  break;
@@ -1047,14 +1063,15 @@ export class ActaWsClient extends TypedEventEmitter {
1047
1063
  this.send(msg);
1048
1064
  }
1049
1065
  }
1050
- handleAuthSuccess(sessionId, expiresAt) {
1066
+ handleAuthSuccess(sessionId, expiresAt, makerPda) {
1051
1067
  this.sessionId = sessionId;
1052
1068
  this.pendingResumeSessionId = null;
1053
1069
  if (expiresAt !== null) {
1054
1070
  this.lastAuthSessionId = sessionId;
1055
1071
  }
1072
+ this.makerPda = makerPda;
1056
1073
  this.setConnectionState("authenticated");
1057
- this.emit("authenticated", sessionId, expiresAt);
1074
+ this.emit("authenticated", sessionId, expiresAt, makerPda);
1058
1075
  if (this.subscribedChannels.size > 0) {
1059
1076
  const channels = Array.from(this.subscribedChannels);
1060
1077
  const request_id = this.nextRequestId();
@@ -1138,7 +1155,7 @@ export class ActaWsClient extends TypedEventEmitter {
1138
1155
  }
1139
1156
  handlePositionUpdated(data) {
1140
1157
  this.state.positions.set(data.position.pda, data.position);
1141
- this.emit("positionUpdated", data.position, data.update_type);
1158
+ this.emit("positionUpdated", data.position, data.update_type, data);
1142
1159
  }
1143
1160
  handleChainEvent(event) {
1144
1161
  this.emit("chainEvent", event);
@@ -23,10 +23,10 @@ export type MyActiveRfqState = string;
23
23
  export type HelloFeatureFlag = string;
24
24
  /** Values: "covered_call" | "cash_secured_put". */
25
25
  export type PositionType = string;
26
- /** Values: "none" | "open" | "funded" | "liquidated" | "settled". */
27
- export type PositionStatus = string;
26
+ export type PositionStatus = "none" | "open" | "funded" | "liquidated" | "settled";
28
27
  /** Values: "pending" | "best" | "outbid" | "filled" | "expired". */
29
28
  export type MakerQuoteStatus = string;
29
+ export type QuoteRejectReasonValue = "invalid_strike" | "market_expired" | "quote_expiry_too_short" | "invalid_signature" | "maker_not_registered" | "order_id_mismatch" | "cap_exceeded" | "rfq_not_found" | "rfq_not_active" | "duplicate_order_id";
30
30
  /** Values: "expired" | "expiring_soon". */
31
31
  export type QuoteRefreshReason = string;
32
32
  /** Values: "requested" | "risk_check" | "rfq_accepted". */
@@ -149,9 +149,6 @@ export type ClientMessage = {
149
149
  } | {
150
150
  type: "GetMarketsForMaker";
151
151
  data: GetMarketsForMakerMessage;
152
- } | {
153
- type: "GetMakerBalances";
154
- data: GetMakerBalancesMessage;
155
152
  } | {
156
153
  type: "GetTokenCaps";
157
154
  data: GetTokenCapsMessage;
@@ -161,6 +158,9 @@ export type ClientMessage = {
161
158
  } | {
162
159
  type: "GetEarnSummary";
163
160
  data: GetEarnSummaryMessage;
161
+ } | {
162
+ type: "GetMmSummary";
163
+ data: GetMmSummaryMessage;
164
164
  } | {
165
165
  type: "GetTokenMarketsInfo";
166
166
  data: GetTokenMarketsInfoMessage;
@@ -276,7 +276,7 @@ export type GetMyActiveRfqsMessage = {
276
276
  export type GetActiveRfqsMessage = {
277
277
  request_id: RequestId;
278
278
  };
279
- export type GetMakerBalancesMessage = {
279
+ export type GetMmSummaryMessage = {
280
280
  request_id: RequestId;
281
281
  };
282
282
  export type GetSubscriptionsMessage = {
@@ -296,6 +296,7 @@ export type GetMakerPositionsMessage = {
296
296
  export type GetMyQuotesMessage = {
297
297
  request_id: RequestId;
298
298
  active_only?: boolean;
299
+ limit?: WsU32;
299
300
  };
300
301
  export type GetMarketsForMakerMessage = {
301
302
  request_id: RequestId;
@@ -386,6 +387,7 @@ export type ServerMessage = {
386
387
  data: {
387
388
  session_id: string;
388
389
  expires_at: WsI64 | null;
390
+ maker_pda?: string | null;
389
391
  };
390
392
  } | {
391
393
  type: "AuthError";
@@ -444,6 +446,15 @@ export type ServerMessage = {
444
446
  } | {
445
447
  type: "QuoteExpired";
446
448
  data: QuoteExpiredMessage;
449
+ } | {
450
+ type: "QuoteRejected";
451
+ data: QuoteRejectedMessage;
452
+ } | {
453
+ type: "BatchQuotesAck";
454
+ data: BatchQuotesAckMessage;
455
+ } | {
456
+ type: "CancelAllQuotesAck";
457
+ data: CancelAllQuotesAckMessage;
447
458
  } | {
448
459
  type: "ActiveRfqs";
449
460
  data: {
@@ -459,15 +470,15 @@ export type ServerMessage = {
459
470
  } | {
460
471
  type: "MakerMarkets";
461
472
  data: MakerMarketsMessage;
462
- } | {
463
- type: "MakerBalances";
464
- data: MakerBalancesMessage;
465
473
  } | {
466
474
  type: "TokenCaps";
467
475
  data: TokenCapsMessage;
468
476
  } | {
469
477
  type: "MyCaps";
470
478
  data: MyCapsMessage;
479
+ } | {
480
+ type: "MmSummary";
481
+ data: MmSummaryData;
471
482
  } | {
472
483
  type: "Subscriptions";
473
484
  data: SubscriptionsMessage;
@@ -881,6 +892,27 @@ export type QuoteExpiredMessage = {
881
892
  order_id: OrderIdHex32;
882
893
  reason: QuoteExpiredReason;
883
894
  };
895
+ export type QuoteRejectedMessage = {
896
+ rfq_id: UuidString;
897
+ order_id: OrderIdHex32;
898
+ reason: QuoteRejectReasonValue;
899
+ message?: string | null;
900
+ };
901
+ export type BatchQuoteResult = {
902
+ status: "acknowledged";
903
+ data: QuoteAcknowledgedMessage;
904
+ } | {
905
+ status: "rejected";
906
+ data: QuoteRejectedMessage;
907
+ };
908
+ export type BatchQuotesAckMessage = {
909
+ results: BatchQuoteResult[];
910
+ };
911
+ export type CancelAllQuotesAckMessage = {
912
+ request_id: RequestId;
913
+ cancelled_count: WsU32;
914
+ cancelled_order_ids: OrderIdHex32[];
915
+ };
884
916
  export type MakerPositionsMessage = {
885
917
  request_id: RequestId;
886
918
  positions: MakerPositionInfo[];
@@ -889,7 +921,11 @@ export type MakerPositionInfo = {
889
921
  pda: string;
890
922
  market: string;
891
923
  underlying_mint: string;
924
+ underlying_symbol: string;
925
+ underlying_decimals: number;
892
926
  quote_mint: string;
927
+ quote_symbol: string;
928
+ quote_decimals: number;
893
929
  position_type: PositionType;
894
930
  status: PositionStatus;
895
931
  strike: WsU64;
@@ -897,10 +933,10 @@ export type MakerPositionInfo = {
897
933
  price: WsU64;
898
934
  /** Net premium amount from on-chain position state (quote token base units). */
899
935
  total_premium: WsU64;
900
- collateral_locked: WsU64;
901
936
  created_at: WsU64;
902
937
  expiry_ts: WsU64;
903
938
  is_otm?: boolean;
939
+ settlement_price?: WsU64 | null;
904
940
  };
905
941
  export type MyQuotesMessage = {
906
942
  request_id: RequestId;
@@ -910,6 +946,12 @@ export type MakerQuoteInfo = {
910
946
  rfq_id: UuidString;
911
947
  order_id: OrderIdHex32;
912
948
  market: string;
949
+ underlying_mint: string;
950
+ underlying_symbol: string;
951
+ underlying_decimals: number;
952
+ quote_mint: string;
953
+ quote_symbol: string;
954
+ quote_decimals: number;
913
955
  strike: WsU64;
914
956
  price: WsU64;
915
957
  quantity: WsU64;
@@ -917,6 +959,7 @@ export type MakerQuoteInfo = {
917
959
  /** "pending" | "best" | "outbid" | "filled" | "expired" | "cancelled" */
918
960
  status: MakerQuoteStatus;
919
961
  created_at: WsU64;
962
+ selected?: boolean | null;
920
963
  };
921
964
  export type MakerMarketsMessage = {
922
965
  request_id: RequestId;
@@ -937,15 +980,6 @@ export type MarketStats = {
937
980
  volume_24h: WsU64;
938
981
  trades_24h: WsU32;
939
982
  };
940
- export type MakerBalancesMessage = {
941
- request_id: RequestId;
942
- balances_by_mint: Record<string, MakerMintBalance>;
943
- };
944
- export type MakerMintBalance = {
945
- total: WsU64;
946
- locked_as_collateral: WsU64;
947
- available: WsU64;
948
- };
949
983
  export type GetTokenCapsMessage = {
950
984
  request_id: RequestId;
951
985
  include_markets?: boolean;
@@ -1004,10 +1038,27 @@ export type MakerNotionalCapInfo = {
1004
1038
  export type MakerBalanceCapInfo = {
1005
1039
  mint: string;
1006
1040
  symbol: string;
1041
+ decimals: number;
1007
1042
  deposited: WsU64;
1008
1043
  committed: WsU64;
1009
1044
  available: WsU64;
1010
1045
  };
1046
+ /** Lightweight caps snapshot attached to owner-direct `PositionUpdated` events. */
1047
+ export type MakerCapsSnapshot = {
1048
+ positions: MakerPositionCapInfo;
1049
+ notional: MakerNotionalCapInfo[];
1050
+ balances: MakerBalanceCapInfo[];
1051
+ };
1052
+ export type MmSummaryData = {
1053
+ request_id: RequestId;
1054
+ maker_pda: string;
1055
+ caps: MyCapsMessage;
1056
+ positions: MakerPositionInfo[];
1057
+ active_quotes: MakerQuoteInfo[];
1058
+ markets: MakerMarketInfo[];
1059
+ tokens: TokenInfo[];
1060
+ computed_at: WsU64;
1061
+ };
1011
1062
  export type SubscriptionsMessage = {
1012
1063
  request_id: RequestId;
1013
1064
  channels: WsChannel[];
@@ -1198,6 +1249,7 @@ export type TradeExecutedMessage = {
1198
1249
  export type PositionUpdatedMessage = {
1199
1250
  position: PositionInfo;
1200
1251
  update_type: PositionUpdateType;
1252
+ caps_snapshot: MakerCapsSnapshot;
1201
1253
  };
1202
1254
  /** Values: "created" | "funded" | "settled" | "liquidated". */
1203
1255
  export type PositionUpdateType = string;
@@ -1269,6 +1321,12 @@ export type MakerTradeInfo = {
1269
1321
  id: UuidString;
1270
1322
  rfq_id: UuidString;
1271
1323
  market_pda: string;
1324
+ underlying_mint: string;
1325
+ underlying_symbol: string;
1326
+ underlying_decimals: number;
1327
+ quote_mint: string;
1328
+ quote_symbol: string;
1329
+ quote_decimals: number;
1272
1330
  position_type: PositionType;
1273
1331
  taker: string;
1274
1332
  strike: WsU64;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acta-markets/ts-sdk",
3
- "version": "0.0.23-beta",
3
+ "version": "0.0.24-beta",
4
4
  "description": "TypeScript SDK for Acta Protocol",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",