@lightconexyz/lightcone-sdk 0.8.4-rc.57 → 0.8.4-rc.58

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 (53) hide show
  1. package/README.md +2 -2
  2. package/dist/domain/order/client.d.ts +2 -19
  3. package/dist/domain/order/client.d.ts.map +1 -1
  4. package/dist/domain/order/client.js +1 -56
  5. package/dist/domain/order/client.js.map +1 -1
  6. package/dist/domain/order/convert.d.ts +4 -4
  7. package/dist/domain/order/convert.d.ts.map +1 -1
  8. package/dist/domain/order/convert.js +4 -25
  9. package/dist/domain/order/convert.js.map +1 -1
  10. package/dist/domain/order/index.d.ts +3 -28
  11. package/dist/domain/order/index.d.ts.map +1 -1
  12. package/dist/domain/order/index.js +1 -30
  13. package/dist/domain/order/index.js.map +1 -1
  14. package/dist/domain/order/state.d.ts +1 -14
  15. package/dist/domain/order/state.d.ts.map +1 -1
  16. package/dist/domain/order/state.js +1 -79
  17. package/dist/domain/order/state.js.map +1 -1
  18. package/dist/domain/order/wire.d.ts +17 -52
  19. package/dist/domain/order/wire.d.ts.map +1 -1
  20. package/dist/domain/order/wire.js +24 -53
  21. package/dist/domain/order/wire.js.map +1 -1
  22. package/dist/privy/client.d.ts +1 -2
  23. package/dist/privy/client.d.ts.map +1 -1
  24. package/dist/privy/client.js +0 -10
  25. package/dist/privy/client.js.map +1 -1
  26. package/dist/privy/index.d.ts +7 -16
  27. package/dist/privy/index.d.ts.map +1 -1
  28. package/dist/privy/index.js +0 -31
  29. package/dist/privy/index.js.map +1 -1
  30. package/dist/program/envelope.d.ts +1 -24
  31. package/dist/program/envelope.d.ts.map +1 -1
  32. package/dist/program/envelope.js +1 -133
  33. package/dist/program/envelope.js.map +1 -1
  34. package/dist/program/orders.d.ts +3 -15
  35. package/dist/program/orders.d.ts.map +1 -1
  36. package/dist/program/orders.js +2 -22
  37. package/dist/program/orders.js.map +1 -1
  38. package/dist/shared/index.d.ts +2 -2
  39. package/dist/shared/index.d.ts.map +1 -1
  40. package/dist/shared/index.js +1 -6
  41. package/dist/shared/index.js.map +1 -1
  42. package/dist/shared/rejection.d.ts.map +1 -1
  43. package/dist/shared/rejection.js +0 -1
  44. package/dist/shared/rejection.js.map +1 -1
  45. package/dist/shared/scaling.d.ts +0 -1
  46. package/dist/shared/scaling.d.ts.map +1 -1
  47. package/dist/shared/scaling.js +0 -14
  48. package/dist/shared/scaling.js.map +1 -1
  49. package/dist/shared/types.d.ts +1 -25
  50. package/dist/shared/types.d.ts.map +1 -1
  51. package/dist/shared/types.js +1 -28
  52. package/dist/shared/types.js.map +1 -1
  53. package/package.json +1 -1
package/README.md CHANGED
@@ -761,6 +761,6 @@ When a request to the API origin fails with HTTP 401 and a restorer is registere
761
761
 
762
762
  The SDK stays credential-agnostic: what "restore" means belongs to the host. For classifying auth failures in your own code, use `isUnauthorized(error)` from the error module — it covers both bare 401s and 401s carrying a structured rejection envelope (`ApiRejectedDetails.httpStatus`).
763
763
 
764
- ## Trigger Orders
764
+ ## Supported order responses
765
765
 
766
- Trigger orders (stop-limit, take-profit-limit) are under development and not yet available. Internal types exist in the source for internal use only.
766
+ Refer to the [shared order-response contract](../README.md#supported-order-responses). `normalizeUserSnapshotOrder` normalizes a limit order. REST and WebSocket snapshots contain these orders alongside account metadata. Live order events carry `order_type: "limit"`. `convertSnapshotOrders` returns `UserOpenLimitOrders`.
@@ -3,7 +3,7 @@ import { Keypair, type PublicKey, type TransactionInstruction } from "@solana/we
3
3
  import type { ClientContext } from "../../context";
4
4
  import type { SignedOrder, CloseOrderStatusParams, BidOrderParams, AskOrderParams, OrderStatus as ProgramOrderStatus } from "../../program/types";
5
5
  import { type OrderBookId, type OrderbookRules, type PubkeyStr, type SubmitOrderRequest } from "../../shared";
6
- import { LimitOrderEnvelope, TriggerOrderEnvelope } from "../../program/envelope";
6
+ import { LimitOrderEnvelope } from "../../program/envelope";
7
7
  import { type UserMarketBalance, type UserSnapshotOrder, type UserOrderFillsResponse } from "./wire";
8
8
  export interface CancelBody {
9
9
  order_hash: string;
@@ -21,13 +21,6 @@ export interface CancelAllBody {
21
21
  }
22
22
  export declare function cancelAllBodyFromBase58(userPubkey: PubkeyStr, orderbookId: OrderBookId, timestamp: number, salt: string, signatureBase58: string): CancelAllBody;
23
23
  export declare function cancelAllBodySigned(userPubkey: PubkeyStr, orderbookId: OrderBookId, timestamp: number, salt: string, keypair: Keypair): CancelAllBody;
24
- export interface CancelTriggerBody {
25
- trigger_order_id: string;
26
- maker: PubkeyStr;
27
- signature: string;
28
- }
29
- export declare function cancelTriggerBodyFromBase58(triggerOrderId: string, maker: PubkeyStr, signatureBase58: string): CancelTriggerBody;
30
- export declare function cancelTriggerBodySigned(triggerOrderId: string, maker: PubkeyStr, keypair: Keypair): CancelTriggerBody;
31
24
  export interface FillInfo {
32
25
  counterparty: PubkeyStr;
33
26
  counterparty_order_hash: string;
@@ -54,13 +47,6 @@ export interface CancelAllSuccess {
54
47
  orderbook_id: OrderBookId;
55
48
  message: string;
56
49
  }
57
- export interface TriggerOrderResponse {
58
- trigger_order_id: string;
59
- order_hash: string;
60
- }
61
- export interface CancelTriggerSuccess {
62
- trigger_order_id: string;
63
- }
64
50
  export interface UserOrdersResponse {
65
51
  user_pubkey: PubkeyStr;
66
52
  orders: UserSnapshotOrder[];
@@ -74,14 +60,12 @@ export declare class Orders {
74
60
  statusPda(orderHash: Buffer): PublicKey;
75
61
  noncePda(user: PublicKey): PublicKey;
76
62
  limitOrder(): LimitOrderEnvelope;
77
- triggerOrder(): TriggerOrderEnvelope;
78
63
  generateCancelAllSalt(): string;
79
64
  submit(request: SubmitOrderRequest): Promise<SubmitOrderResponse>;
80
65
  cancel(body: CancelBody): Promise<CancelSuccess>;
81
66
  cancelAll(body: CancelAllBody): Promise<CancelAllSuccess>;
82
- submitTrigger(request: SubmitOrderRequest): Promise<TriggerOrderResponse>;
67
+ /** Validates exact signed amounts against current book rules before submission. */
83
68
  private preflightSubmit;
84
- cancelTrigger(body: CancelTriggerBody): Promise<CancelTriggerSuccess>;
85
69
  /**
86
70
  * Fetch the authenticated user's open orders. Wallet is resolved
87
71
  * server-side from the auth cookie, so no parameter is required.
@@ -112,7 +96,6 @@ export declare class Orders {
112
96
  getUserOrderFillsByWallet(walletAddress: string, marketPubkey?: string, limit?: number, cursor?: string): Promise<UserOrderFillsResponse>;
113
97
  cancelOrderSigned(orderHash: string, maker: PubkeyStr): Promise<CancelSuccess>;
114
98
  cancelAllSigned(userPubkey: PubkeyStr, timestamp: number, salt: string, orderbookId?: OrderBookId): Promise<CancelAllSuccess>;
115
- cancelTriggerSigned(triggerOrderId: string, maker: PubkeyStr): Promise<CancelTriggerSuccess>;
116
99
  cancelOrderIx(operator: PublicKey, market: PublicKey, order: SignedOrder): TransactionInstruction;
117
100
  incrementNonceIx(user: PublicKey): TransactionInstruction;
118
101
  closeOrderStatusIx(params: CloseOrderStatusParams): TransactionInstruction;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/order/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/order/client.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,6 @@ exports.cancelBodyFromBase58 = cancelBodyFromBase58;
8
8
  exports.cancelBodySigned = cancelBodySigned;
9
9
  exports.cancelAllBodyFromBase58 = cancelAllBodyFromBase58;
10
10
  exports.cancelAllBodySigned = cancelAllBodySigned;
11
- exports.cancelTriggerBodyFromBase58 = cancelTriggerBodyFromBase58;
12
- exports.cancelTriggerBodySigned = cancelTriggerBodySigned;
13
11
  const transaction_1 = require("../../program/transaction");
14
12
  const bs58_1 = __importDefault(require("bs58"));
15
13
  const context_1 = require("../../context");
@@ -51,17 +49,6 @@ function cancelAllBodySigned(userPubkey, orderbookId, timestamp, salt, keypair)
51
49
  const signature = (0, orders_1.signCancelAll)(userPubkey, orderbookId, timestamp, salt, keypair);
52
50
  return { user_pubkey: userPubkey, orderbook_id: orderbookId, signature, timestamp, salt };
53
51
  }
54
- function cancelTriggerBodyFromBase58(triggerOrderId, maker, signatureBase58) {
55
- return {
56
- trigger_order_id: triggerOrderId,
57
- maker,
58
- signature: Buffer.from(bs58_1.default.decode(signatureBase58)).toString("hex"),
59
- };
60
- }
61
- function cancelTriggerBodySigned(triggerOrderId, maker, keypair) {
62
- const signature = (0, orders_1.signCancelTriggerOrder)(triggerOrderId, keypair);
63
- return { trigger_order_id: triggerOrderId, maker, signature };
64
- }
65
52
  // ─── Sub-client ──────────────────────────────────────────────────────────────
66
53
  class Orders {
67
54
  client;
@@ -79,9 +66,6 @@ class Orders {
79
66
  limitOrder() {
80
67
  return envelope_1.LimitOrderEnvelope.new().depositSource(this.client.depositSource);
81
68
  }
82
- triggerOrder() {
83
- return envelope_1.TriggerOrderEnvelope.new().depositSource(this.client.depositSource);
84
- }
85
69
  // ── Helpers ──────────────────────────────────────────────────────────
86
70
  generateCancelAllSalt() {
87
71
  return (0, orders_1.generateCancelAllSalt)();
@@ -100,11 +84,7 @@ class Orders {
100
84
  const url = `${this.client.http.baseUrl()}/api/orders/cancel-all`;
101
85
  return this.client.http.post(url, body, http_1.RetryPolicy.None);
102
86
  }
103
- async submitTrigger(request) {
104
- await this.preflightSubmit(request);
105
- const url = `${this.client.http.baseUrl()}/api/orders/submit`;
106
- return this.client.http.post(url, request, http_1.RetryPolicy.None);
107
- }
87
+ /** Validates exact signed amounts against current book rules before submission. */
108
88
  async preflightSubmit(request) {
109
89
  const rules = await new client_1.Orderbooks(this.client).decimals(request.orderbook_id);
110
90
  if (request.side !== types_1.OrderSide.BID && request.side !== types_1.OrderSide.ASK) {
@@ -112,13 +92,6 @@ class Orders {
112
92
  }
113
93
  (0, shared_1.validateRawAmounts)(request.amount_in, request.amount_out, request.side, rules);
114
94
  (0, shared_1.validateSignedFields)(request.amount_in, request.amount_out, request.salt, request.nonce);
115
- if (request.trigger_price !== undefined) {
116
- (0, shared_1.validateTriggerPrice)(String(request.trigger_price), rules.priceDecimals);
117
- }
118
- }
119
- async cancelTrigger(body) {
120
- const url = `${this.client.http.baseUrl()}/api/orders/cancel`;
121
- return this.client.http.post(url, body, http_1.RetryPolicy.None);
122
95
  }
123
96
  /**
124
97
  * Fetch the authenticated user's open orders. Wallet is resolved
@@ -232,34 +205,6 @@ class Orders {
232
205
  }
233
206
  }
234
207
  }
235
- async cancelTriggerSigned(triggerOrderId, maker) {
236
- const strategy = (0, context_1.requireSigningStrategy)(this.client);
237
- switch (strategy.type) {
238
- case "native": {
239
- const body = cancelTriggerBodySigned(triggerOrderId, maker, strategy.keypair);
240
- return this.cancelTrigger(body);
241
- }
242
- case "walletAdapter": {
243
- const message = (0, orders_1.cancelTriggerOrderMessage)(triggerOrderId);
244
- const sigBytes = await strategy.signer
245
- .signMessage(message)
246
- .catch((err) => {
247
- const msg = err instanceof Error ? err.message : String(err);
248
- if ((0, signing_1.isUserCancellation)(msg))
249
- throw error_1.SdkError.userCancelled();
250
- throw error_1.SdkError.signing(msg);
251
- });
252
- const sigBs58 = bs58_1.default.encode(sigBytes);
253
- const body = cancelTriggerBodyFromBase58(triggerOrderId, maker, sigBs58);
254
- return this.cancelTrigger(body);
255
- }
256
- case "privy": {
257
- const privy = new privy_1.Privy(this.client);
258
- const result = await privy.signAndCancelTriggerOrder(strategy.walletId, triggerOrderId, maker);
259
- return { trigger_order_id: result.trigger_order_id };
260
- }
261
- }
262
- }
263
208
  // ── On-chain transaction builders ────────────────────────────────────
264
209
  cancelOrderIx(operator, market, order) {
265
210
  return (0, instructions_1.buildCancelOrderIx)(operator, market, order, this.client.programId);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/order/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { V1Transaction, type V1TransactionContext } from \"../../program/transaction\";\nimport bs58 from \"bs58\";\nimport { Keypair, type PublicKey, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { requireConnection, requireSigningStrategy } from \"../../context\";\nimport { SdkError } from \"../../error\";\nimport { ProgramSdkError } from \"../../program/error\";\nimport { RetryPolicy } from \"../../http\";\nimport { Privy } from \"../../privy\";\nimport { isUserCancellation } from \"../../shared/signing\";\nimport {\n buildCancelOrderIx,\n buildCloseOrderStatusIx,\n buildIncrementNonceIx,\n} from \"../../program/instructions\";\nimport {\n hashOrder as programHashOrder,\n signOrder as programSignOrder,\n signOrderFull,\n createBidOrder as programCreateBidOrder,\n createAskOrder as programCreateAskOrder,\n createSignedBidOrder as programCreateSignedBidOrder,\n createSignedAskOrder as programCreateSignedAskOrder,\n signCancelOrder,\n signCancelTriggerOrder,\n signCancelAll,\n cancelOrderMessage,\n cancelTriggerOrderMessage,\n cancelAllMessage,\n generateCancelAllSalt as programGenerateCancelAllSalt,\n} from \"../../program/orders\";\nimport {\n getOrderStatusPda,\n getUserNoncePda,\n} from \"../../program/pda\";\nimport {\n deserializeOrderStatus,\n deserializeUserNonce,\n} from \"../../program/accounts\";\nimport type {\n SignedOrder,\n CloseOrderStatusParams,\n BidOrderParams,\n AskOrderParams,\n OrderStatus as ProgramOrderStatus,\n} from \"../../program/types\";\nimport { OrderSide } from \"../../program/types\";\nimport {\n asOrderBookId,\n asPubkeyStr,\n validateRawAmounts,\n validateSignedFields,\n validateTriggerPrice,\n type OrderBookId,\n type OrderbookRules,\n type PubkeyStr,\n type SubmitOrderRequest,\n} from \"../../shared\";\nimport { LimitOrderEnvelope, TriggerOrderEnvelope } from \"../../program/envelope\";\nimport { Orderbooks } from \"../orderbook/client\";\nimport {\n normalizeUserOrdersPayload,\n type UserMarketBalance,\n type UserSnapshotOrder,\n type UserOrderFillsResponse,\n} from \"./wire\";\n\n// ─── Request types ───────────────────────────────────────────────────────────\n\nexport interface CancelBody {\n order_hash: string;\n maker: PubkeyStr;\n signature: string;\n}\n\nexport function cancelBodyFromBase58(\n orderHash: string,\n maker: PubkeyStr,\n signatureBase58: string\n): CancelBody {\n return {\n order_hash: orderHash,\n maker,\n signature: Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\"),\n };\n}\n\nexport function cancelBodySigned(\n orderHash: string,\n maker: PubkeyStr,\n keypair: Keypair\n): CancelBody {\n const signature = signCancelOrder(orderHash, keypair);\n return { order_hash: orderHash, maker, signature };\n}\n\nexport interface CancelAllBody {\n user_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n signature: string;\n timestamp: number;\n salt: string;\n}\n\nexport function cancelAllBodyFromBase58(\n userPubkey: PubkeyStr,\n orderbookId: OrderBookId,\n timestamp: number,\n salt: string,\n signatureBase58: string\n): CancelAllBody {\n return {\n user_pubkey: userPubkey,\n orderbook_id: orderbookId,\n signature: Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\"),\n timestamp,\n salt,\n };\n}\n\nexport function cancelAllBodySigned(\n userPubkey: PubkeyStr,\n orderbookId: OrderBookId,\n timestamp: number,\n salt: string,\n keypair: Keypair\n): CancelAllBody {\n const signature = signCancelAll(userPubkey, orderbookId, timestamp, salt, keypair);\n return { user_pubkey: userPubkey, orderbook_id: orderbookId, signature, timestamp, salt };\n}\n\nexport interface CancelTriggerBody {\n trigger_order_id: string;\n maker: PubkeyStr;\n signature: string;\n}\n\nexport function cancelTriggerBodyFromBase58(\n triggerOrderId: string,\n maker: PubkeyStr,\n signatureBase58: string\n): CancelTriggerBody {\n return {\n trigger_order_id: triggerOrderId,\n maker,\n signature: Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\"),\n };\n}\n\nexport function cancelTriggerBodySigned(\n triggerOrderId: string,\n maker: PubkeyStr,\n keypair: Keypair\n): CancelTriggerBody {\n const signature = signCancelTriggerOrder(triggerOrderId, keypair);\n return { trigger_order_id: triggerOrderId, maker, signature };\n}\n\n// ─── Response types ──────────────────────────────────────────────────────────\n\nexport interface FillInfo {\n counterparty: PubkeyStr;\n counterparty_order_hash: string;\n fill_amount: string;\n price: string;\n is_maker: boolean;\n}\n\nexport type SubmitOrderStatus = \"accepted\" | \"partial_fill\" | \"filled\";\n\nexport interface SubmitOrderResponse {\n order_hash: string;\n status: SubmitOrderStatus;\n remaining: string;\n filled: string;\n fills: FillInfo[];\n}\n\nexport interface CancelSuccess {\n order_hash: string;\n remaining: string;\n}\n\nexport interface CancelAllSuccess {\n cancelled_order_hashes: string[];\n count: number;\n user_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n message: string;\n}\n\nexport interface TriggerOrderResponse {\n trigger_order_id: string;\n order_hash: string;\n}\n\nexport interface CancelTriggerSuccess {\n trigger_order_id: string;\n}\n\nexport interface UserOrdersResponse {\n user_pubkey: PubkeyStr;\n orders: UserSnapshotOrder[];\n market_balances: UserMarketBalance[];\n next_cursor?: string;\n has_more: boolean;\n}\n\n// ─── Sub-client ──────────────────────────────────────────────────────────────\n\nexport class Orders {\n constructor(private readonly client: ClientContext) {}\n\n // ── PDA helpers ──────────────────────────────────────────────────────\n\n statusPda(orderHash: Buffer): PublicKey {\n return getOrderStatusPda(orderHash, this.client.programId)[0];\n }\n\n noncePda(user: PublicKey): PublicKey {\n return getUserNoncePda(user, this.client.programId)[0];\n }\n\n // ── Envelope factories ────────────────────────────────────────────────\n\n limitOrder(): LimitOrderEnvelope {\n return LimitOrderEnvelope.new().depositSource(this.client.depositSource);\n }\n\n triggerOrder(): TriggerOrderEnvelope {\n return TriggerOrderEnvelope.new().depositSource(this.client.depositSource);\n }\n\n // ── Helpers ──────────────────────────────────────────────────────────\n\n generateCancelAllSalt(): string {\n return programGenerateCancelAllSalt();\n }\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async submit(request: SubmitOrderRequest): Promise<SubmitOrderResponse> {\n await this.preflightSubmit(request);\n const url = `${this.client.http.baseUrl()}/api/orders/submit`;\n return this.client.http.post<SubmitOrderResponse, SubmitOrderRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async cancel(body: CancelBody): Promise<CancelSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel`;\n return this.client.http.post<CancelSuccess, CancelBody>(url, body, RetryPolicy.None);\n }\n\n async cancelAll(body: CancelAllBody): Promise<CancelAllSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel-all`;\n return this.client.http.post<CancelAllSuccess, CancelAllBody>(\n url,\n body,\n RetryPolicy.None\n );\n }\n\n async submitTrigger(request: SubmitOrderRequest): Promise<TriggerOrderResponse> {\n await this.preflightSubmit(request);\n const url = `${this.client.http.baseUrl()}/api/orders/submit`;\n return this.client.http.post<TriggerOrderResponse, SubmitOrderRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n private async preflightSubmit(request: SubmitOrderRequest): Promise<void> {\n const rules = await new Orderbooks(this.client).decimals(request.orderbook_id);\n if (request.side !== OrderSide.BID && request.side !== OrderSide.ASK) {\n throw ProgramSdkError.invalidSide(request.side);\n }\n validateRawAmounts(request.amount_in, request.amount_out, request.side, rules);\n validateSignedFields(request.amount_in, request.amount_out, request.salt, request.nonce);\n if (request.trigger_price !== undefined) {\n validateTriggerPrice(String(request.trigger_price), rules.priceDecimals);\n }\n }\n\n async cancelTrigger(body: CancelTriggerBody): Promise<CancelTriggerSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel`;\n return this.client.http.post<CancelTriggerSuccess, CancelTriggerBody>(\n url,\n body,\n RetryPolicy.None\n );\n }\n\n /**\n * Fetch the authenticated user's open orders. Wallet is resolved\n * server-side from the auth cookie, so no parameter is required.\n */\n async getUserOrders(\n limit?: number,\n cursor?: string\n ): Promise<UserOrdersResponse> {\n const url = buildUserOrdersAuthenticatedUrl(this.client.http.baseUrl(), limit, cursor);\n const response = await this.client.http.get<UserOrdersRawResponse>(url, RetryPolicy.Idempotent);\n return normalizeUserOrdersPayload(response);\n }\n\n /**\n * Same as {@link getUserOrders}, but uses the supplied `cookieHeader` for\n * this call instead of the SDK's process-wide cookie store. For\n * server-side cookie forwarding (SSR / route handlers).\n */\n async getUserOrdersWithCookies(\n limit: number | undefined,\n cursor: string | undefined,\n cookieHeader: string,\n ): Promise<UserOrdersResponse> {\n const url = buildUserOrdersAuthenticatedUrl(this.client.http.baseUrl(), limit, cursor);\n const response = await this.client.http.getWithCookies<UserOrdersRawResponse>(\n url,\n RetryPolicy.Idempotent,\n cookieHeader,\n );\n return normalizeUserOrdersPayload(response);\n }\n\n /**\n * Fetch the authenticated user's filled orders with nested fill events.\n * Wallet is resolved server-side from the auth cookie.\n */\n async getUserOrderFills(\n marketPubkey?: string,\n limit?: number,\n cursor?: string,\n ): Promise<UserOrderFillsResponse> {\n const url = buildUserOrderFillsAuthenticatedUrl(\n this.client.http.baseUrl(),\n marketPubkey,\n limit,\n cursor,\n );\n return this.client.http.get<UserOrderFillsResponse>(url, RetryPolicy.Idempotent);\n }\n\n /**\n * Same as {@link getUserOrderFills}, but uses the supplied `cookieHeader`\n * for this call instead of the SDK's process-wide cookie store. For\n * server-side cookie forwarding (SSR / route handlers).\n */\n async getUserOrderFillsWithCookies(\n marketPubkey: string | undefined,\n limit: number | undefined,\n cursor: string | undefined,\n cookieHeader: string,\n ): Promise<UserOrderFillsResponse> {\n const url = buildUserOrderFillsAuthenticatedUrl(\n this.client.http.baseUrl(),\n marketPubkey,\n limit,\n cursor,\n );\n return this.client.http.getWithCookies<UserOrderFillsResponse>(\n url,\n RetryPolicy.Idempotent,\n cookieHeader,\n );\n }\n\n /**\n * Public variant of {@link getUserOrderFills}. Takes the user's wallet\n * via the URL path (`GET /api/users/{wallet}/order-fills`) and requires\n * no auth.\n */\n async getUserOrderFillsByWallet(\n walletAddress: string,\n marketPubkey?: string,\n limit?: number,\n cursor?: string,\n ): Promise<UserOrderFillsResponse> {\n const url = buildUserOrderFillsByWalletUrl(\n this.client.http.baseUrl(),\n walletAddress,\n marketPubkey,\n limit,\n cursor,\n );\n return this.client.http.get<UserOrderFillsResponse>(url, RetryPolicy.Idempotent);\n }\n\n // ── Unified cancel (dispatches based on client signing strategy) ────\n\n async cancelOrderSigned(\n orderHash: string,\n maker: PubkeyStr\n ): Promise<CancelSuccess> {\n const strategy = requireSigningStrategy(this.client);\n\n switch (strategy.type) {\n case \"native\": {\n const body = cancelBodySigned(orderHash, maker, strategy.keypair);\n return this.cancel(body);\n }\n case \"walletAdapter\": {\n const message = cancelOrderMessage(orderHash);\n const sigBytes = await strategy.signer\n .signMessage(message)\n .catch((err: unknown) => {\n const msg = err instanceof Error ? err.message : String(err);\n if (isUserCancellation(msg)) throw SdkError.userCancelled();\n throw SdkError.signing(msg);\n });\n const sigBs58 = bs58.encode(sigBytes);\n const body = cancelBodyFromBase58(orderHash, maker, sigBs58);\n return this.cancel(body);\n }\n case \"privy\": {\n const privy = new Privy(this.client);\n const result = await privy.signAndCancelOrder(\n strategy.walletId,\n orderHash,\n maker as string\n );\n return {\n order_hash: result.order_hash,\n remaining: result.remaining,\n };\n }\n }\n }\n\n async cancelAllSigned(\n userPubkey: PubkeyStr,\n timestamp: number,\n salt: string,\n orderbookId?: OrderBookId\n ): Promise<CancelAllSuccess> {\n const strategy = requireSigningStrategy(this.client);\n const resolvedOrderbookId = orderbookId ?? (\"\" as OrderBookId);\n\n switch (strategy.type) {\n case \"native\": {\n const body = cancelAllBodySigned(\n userPubkey,\n resolvedOrderbookId,\n timestamp,\n salt,\n strategy.keypair\n );\n return this.cancelAll(body);\n }\n case \"walletAdapter\": {\n const message = cancelAllMessage(\n userPubkey as string,\n resolvedOrderbookId as string,\n timestamp,\n salt\n );\n const sigBytes = await strategy.signer\n .signMessage(new TextEncoder().encode(message))\n .catch((err: unknown) => {\n const msg = err instanceof Error ? err.message : String(err);\n if (isUserCancellation(msg)) throw SdkError.userCancelled();\n throw SdkError.signing(msg);\n });\n const sigBs58 = bs58.encode(sigBytes);\n const body = cancelAllBodyFromBase58(\n userPubkey,\n resolvedOrderbookId,\n timestamp,\n salt,\n sigBs58\n );\n return this.cancelAll(body);\n }\n case \"privy\": {\n const privy = new Privy(this.client);\n const result = await privy.signAndCancelAllOrders(\n strategy.walletId,\n userPubkey as string,\n resolvedOrderbookId as string,\n timestamp,\n salt\n );\n return {\n cancelled_order_hashes: result.cancelled_order_hashes,\n count: result.count,\n user_pubkey: asPubkeyStr(result.user_pubkey),\n orderbook_id: asOrderBookId(result.orderbook_id),\n message: result.message,\n };\n }\n }\n }\n\n async cancelTriggerSigned(\n triggerOrderId: string,\n maker: PubkeyStr\n ): Promise<CancelTriggerSuccess> {\n const strategy = requireSigningStrategy(this.client);\n\n switch (strategy.type) {\n case \"native\": {\n const body = cancelTriggerBodySigned(triggerOrderId, maker, strategy.keypair);\n return this.cancelTrigger(body);\n }\n case \"walletAdapter\": {\n const message = cancelTriggerOrderMessage(triggerOrderId);\n const sigBytes = await strategy.signer\n .signMessage(message)\n .catch((err: unknown) => {\n const msg = err instanceof Error ? err.message : String(err);\n if (isUserCancellation(msg)) throw SdkError.userCancelled();\n throw SdkError.signing(msg);\n });\n const sigBs58 = bs58.encode(sigBytes);\n const body = cancelTriggerBodyFromBase58(triggerOrderId, maker, sigBs58);\n return this.cancelTrigger(body);\n }\n case \"privy\": {\n const privy = new Privy(this.client);\n const result = await privy.signAndCancelTriggerOrder(\n strategy.walletId,\n triggerOrderId,\n maker as string\n );\n return { trigger_order_id: result.trigger_order_id };\n }\n }\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n cancelOrderIx(\n operator: PublicKey,\n market: PublicKey,\n order: SignedOrder\n ): TransactionInstruction {\n return buildCancelOrderIx(operator, market, order, this.client.programId);\n }\n\n incrementNonceIx(user: PublicKey): TransactionInstruction {\n return buildIncrementNonceIx(user, this.client.programId);\n }\n\n closeOrderStatusIx(params: CloseOrderStatusParams): TransactionInstruction {\n return buildCloseOrderStatusIx(params, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n cancelOrderTx(\n operator: PublicKey,\n market: PublicKey,\n order: SignedOrder,\n context: V1TransactionContext\n ): V1Transaction {\n const ix = this.cancelOrderIx(operator, market, order);\n return V1Transaction.compile([ix], operator, context);\n }\n\n incrementNonceTx(\n user: PublicKey,\n context: V1TransactionContext\n ): V1Transaction {\n const ix = this.incrementNonceIx(user);\n return V1Transaction.compile([ix], user, context);\n }\n\n closeOrderStatusTx(\n params: CloseOrderStatusParams,\n context: V1TransactionContext\n ): V1Transaction {\n const ix = this.closeOrderStatusIx(params);\n return V1Transaction.compile([ix], params.operator, context);\n }\n\n // ── Order helpers ────────────────────────────────────────────────────\n\n createBidOrder(params: BidOrderParams): Omit<SignedOrder, \"signature\"> {\n return programCreateBidOrder(params);\n }\n\n createAskOrder(params: AskOrderParams): Omit<SignedOrder, \"signature\"> {\n return programCreateAskOrder(params);\n }\n\n createSignedBidOrder(\n params: BidOrderParams,\n signer: Keypair,\n rules: OrderbookRules\n ): SignedOrder {\n return programCreateSignedBidOrder(params, signer, rules);\n }\n\n createSignedAskOrder(\n params: AskOrderParams,\n signer: Keypair,\n rules: OrderbookRules\n ): SignedOrder {\n return programCreateSignedAskOrder(params, signer, rules);\n }\n\n hashOrder(order: SignedOrder): Buffer {\n return programHashOrder(order);\n }\n\n signOrder(\n order: SignedOrder,\n signer: Keypair,\n rules: OrderbookRules\n ): Buffer {\n return programSignOrder(order, signer, rules);\n }\n\n signFullOrder(\n order: Omit<SignedOrder, \"signature\">,\n signer: Keypair,\n rules: OrderbookRules\n ): SignedOrder {\n return signOrderFull(order, signer, rules);\n }\n\n // ── On-chain account fetchers (require Connection) ──────────────────\n\n async getStatus(orderHash: Buffer): Promise<ProgramOrderStatus | null> {\n const connection = requireConnection(this.client);\n const pda = this.statusPda(orderHash);\n const accountInfo = await connection.getAccountInfo(pda);\n if (!accountInfo) {\n return null;\n }\n return deserializeOrderStatus(accountInfo.data as Buffer);\n }\n\n async getNonce(user: PublicKey): Promise<bigint> {\n const connection = requireConnection(this.client);\n const pda = this.noncePda(user);\n const accountInfo = await connection.getAccountInfo(pda);\n if (!accountInfo) {\n return 0n;\n }\n const userNonce = deserializeUserNonce(accountInfo.data as Buffer);\n return userNonce.nonce;\n }\n\n async currentNonce(user: PublicKey): Promise<number> {\n const nonce = await this.getNonce(user);\n if (nonce > 0xFFFFFFFFn) {\n throw ProgramSdkError.serialization(`Nonce exceeds u32 range: ${nonce}`);\n }\n return Number(nonce);\n }\n}\n\ninterface UserOrdersRawResponse {\n user_pubkey: PubkeyStr;\n orders?: UserSnapshotOrder[];\n market_balances: UserMarketBalance[];\n next_cursor?: string | null;\n has_more?: boolean;\n}\n\nfunction buildUserOrdersAuthenticatedUrl(\n baseUrl: string,\n limit: number | undefined,\n cursor: string | undefined,\n): string {\n const params = new URLSearchParams();\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor) params.set(\"cursor\", cursor);\n const qs = params.toString();\n return qs.length === 0\n ? `${baseUrl}/api/users/orders`\n : `${baseUrl}/api/users/orders?${qs}`;\n}\n\nfunction buildUserOrderFillsAuthenticatedUrl(\n baseUrl: string,\n marketPubkey: string | undefined,\n limit: number | undefined,\n cursor: string | undefined,\n): string {\n const params = new URLSearchParams();\n if (marketPubkey) params.set(\"market_pubkey\", marketPubkey);\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor) params.set(\"cursor\", cursor);\n const qs = params.toString();\n return qs.length === 0\n ? `${baseUrl}/api/users/order-fills`\n : `${baseUrl}/api/users/order-fills?${qs}`;\n}\n\nfunction buildUserOrderFillsByWalletUrl(\n baseUrl: string,\n walletAddress: string,\n marketPubkey: string | undefined,\n limit: number | undefined,\n cursor: string | undefined,\n): string {\n const params = new URLSearchParams();\n if (marketPubkey) params.set(\"market_pubkey\", marketPubkey);\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor) params.set(\"cursor\", cursor);\n const qs = params.toString();\n const path = `${baseUrl}/api/users/${encodeURIComponent(walletAddress)}/order-fills`;\n return qs.length === 0 ? path : `${path}?${qs}`;\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/order/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { V1Transaction, type V1TransactionContext } from \"../../program/transaction\";\nimport bs58 from \"bs58\";\nimport { Keypair, type PublicKey, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { requireConnection, requireSigningStrategy } from \"../../context\";\nimport { SdkError } from \"../../error\";\nimport { ProgramSdkError } from \"../../program/error\";\nimport { RetryPolicy } from \"../../http\";\nimport { Privy } from \"../../privy\";\nimport { isUserCancellation } from \"../../shared/signing\";\nimport {\n buildCancelOrderIx,\n buildCloseOrderStatusIx,\n buildIncrementNonceIx,\n} from \"../../program/instructions\";\nimport {\n hashOrder as programHashOrder,\n signOrder as programSignOrder,\n signOrderFull,\n createBidOrder as programCreateBidOrder,\n createAskOrder as programCreateAskOrder,\n createSignedBidOrder as programCreateSignedBidOrder,\n createSignedAskOrder as programCreateSignedAskOrder,\n signCancelOrder,\n signCancelAll,\n cancelOrderMessage,\n cancelAllMessage,\n generateCancelAllSalt as programGenerateCancelAllSalt,\n} from \"../../program/orders\";\nimport {\n getOrderStatusPda,\n getUserNoncePda,\n} from \"../../program/pda\";\nimport {\n deserializeOrderStatus,\n deserializeUserNonce,\n} from \"../../program/accounts\";\nimport type {\n SignedOrder,\n CloseOrderStatusParams,\n BidOrderParams,\n AskOrderParams,\n OrderStatus as ProgramOrderStatus,\n} from \"../../program/types\";\nimport { OrderSide } from \"../../program/types\";\nimport {\n asOrderBookId,\n asPubkeyStr,\n validateRawAmounts,\n validateSignedFields,\n type OrderBookId,\n type OrderbookRules,\n type PubkeyStr,\n type SubmitOrderRequest,\n} from \"../../shared\";\nimport { LimitOrderEnvelope } from \"../../program/envelope\";\nimport { Orderbooks } from \"../orderbook/client\";\nimport {\n normalizeUserOrdersPayload,\n type UserMarketBalance,\n type UserSnapshotOrder,\n type UserOrderFillsResponse,\n} from \"./wire\";\n\n// ─── Request types ───────────────────────────────────────────────────────────\n\nexport interface CancelBody {\n order_hash: string;\n maker: PubkeyStr;\n signature: string;\n}\n\nexport function cancelBodyFromBase58(\n orderHash: string,\n maker: PubkeyStr,\n signatureBase58: string\n): CancelBody {\n return {\n order_hash: orderHash,\n maker,\n signature: Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\"),\n };\n}\n\nexport function cancelBodySigned(\n orderHash: string,\n maker: PubkeyStr,\n keypair: Keypair\n): CancelBody {\n const signature = signCancelOrder(orderHash, keypair);\n return { order_hash: orderHash, maker, signature };\n}\n\nexport interface CancelAllBody {\n user_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n signature: string;\n timestamp: number;\n salt: string;\n}\n\nexport function cancelAllBodyFromBase58(\n userPubkey: PubkeyStr,\n orderbookId: OrderBookId,\n timestamp: number,\n salt: string,\n signatureBase58: string\n): CancelAllBody {\n return {\n user_pubkey: userPubkey,\n orderbook_id: orderbookId,\n signature: Buffer.from(bs58.decode(signatureBase58)).toString(\"hex\"),\n timestamp,\n salt,\n };\n}\n\nexport function cancelAllBodySigned(\n userPubkey: PubkeyStr,\n orderbookId: OrderBookId,\n timestamp: number,\n salt: string,\n keypair: Keypair\n): CancelAllBody {\n const signature = signCancelAll(userPubkey, orderbookId, timestamp, salt, keypair);\n return { user_pubkey: userPubkey, orderbook_id: orderbookId, signature, timestamp, salt };\n}\n\n// ─── Response types ──────────────────────────────────────────────────────────\n\nexport interface FillInfo {\n counterparty: PubkeyStr;\n counterparty_order_hash: string;\n fill_amount: string;\n price: string;\n is_maker: boolean;\n}\n\nexport type SubmitOrderStatus = \"accepted\" | \"partial_fill\" | \"filled\";\n\nexport interface SubmitOrderResponse {\n order_hash: string;\n status: SubmitOrderStatus;\n remaining: string;\n filled: string;\n fills: FillInfo[];\n}\n\nexport interface CancelSuccess {\n order_hash: string;\n remaining: string;\n}\n\nexport interface CancelAllSuccess {\n cancelled_order_hashes: string[];\n count: number;\n user_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n message: string;\n}\n\nexport interface UserOrdersResponse {\n user_pubkey: PubkeyStr;\n orders: UserSnapshotOrder[];\n market_balances: UserMarketBalance[];\n next_cursor?: string;\n has_more: boolean;\n}\n\n// ─── Sub-client ──────────────────────────────────────────────────────────────\n\nexport class Orders {\n constructor(private readonly client: ClientContext) {}\n\n // ── PDA helpers ──────────────────────────────────────────────────────\n\n statusPda(orderHash: Buffer): PublicKey {\n return getOrderStatusPda(orderHash, this.client.programId)[0];\n }\n\n noncePda(user: PublicKey): PublicKey {\n return getUserNoncePda(user, this.client.programId)[0];\n }\n\n // ── Envelope factories ────────────────────────────────────────────────\n\n limitOrder(): LimitOrderEnvelope {\n return LimitOrderEnvelope.new().depositSource(this.client.depositSource);\n }\n\n // ── Helpers ──────────────────────────────────────────────────────────\n\n generateCancelAllSalt(): string {\n return programGenerateCancelAllSalt();\n }\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async submit(request: SubmitOrderRequest): Promise<SubmitOrderResponse> {\n await this.preflightSubmit(request);\n const url = `${this.client.http.baseUrl()}/api/orders/submit`;\n return this.client.http.post<SubmitOrderResponse, SubmitOrderRequest>(\n url,\n request,\n RetryPolicy.None\n );\n }\n\n async cancel(body: CancelBody): Promise<CancelSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel`;\n return this.client.http.post<CancelSuccess, CancelBody>(url, body, RetryPolicy.None);\n }\n\n async cancelAll(body: CancelAllBody): Promise<CancelAllSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel-all`;\n return this.client.http.post<CancelAllSuccess, CancelAllBody>(\n url,\n body,\n RetryPolicy.None\n );\n }\n\n /** Validates exact signed amounts against current book rules before submission. */\n private async preflightSubmit(request: SubmitOrderRequest): Promise<void> {\n const rules = await new Orderbooks(this.client).decimals(request.orderbook_id);\n if (request.side !== OrderSide.BID && request.side !== OrderSide.ASK) {\n throw ProgramSdkError.invalidSide(request.side);\n }\n validateRawAmounts(request.amount_in, request.amount_out, request.side, rules);\n validateSignedFields(request.amount_in, request.amount_out, request.salt, request.nonce);\n }\n\n /**\n * Fetch the authenticated user's open orders. Wallet is resolved\n * server-side from the auth cookie, so no parameter is required.\n */\n async getUserOrders(\n limit?: number,\n cursor?: string\n ): Promise<UserOrdersResponse> {\n const url = buildUserOrdersAuthenticatedUrl(this.client.http.baseUrl(), limit, cursor);\n const response = await this.client.http.get<UserOrdersRawResponse>(url, RetryPolicy.Idempotent);\n return normalizeUserOrdersPayload(response);\n }\n\n /**\n * Same as {@link getUserOrders}, but uses the supplied `cookieHeader` for\n * this call instead of the SDK's process-wide cookie store. For\n * server-side cookie forwarding (SSR / route handlers).\n */\n async getUserOrdersWithCookies(\n limit: number | undefined,\n cursor: string | undefined,\n cookieHeader: string,\n ): Promise<UserOrdersResponse> {\n const url = buildUserOrdersAuthenticatedUrl(this.client.http.baseUrl(), limit, cursor);\n const response = await this.client.http.getWithCookies<UserOrdersRawResponse>(\n url,\n RetryPolicy.Idempotent,\n cookieHeader,\n );\n return normalizeUserOrdersPayload(response);\n }\n\n /**\n * Fetch the authenticated user's filled orders with nested fill events.\n * Wallet is resolved server-side from the auth cookie.\n */\n async getUserOrderFills(\n marketPubkey?: string,\n limit?: number,\n cursor?: string,\n ): Promise<UserOrderFillsResponse> {\n const url = buildUserOrderFillsAuthenticatedUrl(\n this.client.http.baseUrl(),\n marketPubkey,\n limit,\n cursor,\n );\n return this.client.http.get<UserOrderFillsResponse>(url, RetryPolicy.Idempotent);\n }\n\n /**\n * Same as {@link getUserOrderFills}, but uses the supplied `cookieHeader`\n * for this call instead of the SDK's process-wide cookie store. For\n * server-side cookie forwarding (SSR / route handlers).\n */\n async getUserOrderFillsWithCookies(\n marketPubkey: string | undefined,\n limit: number | undefined,\n cursor: string | undefined,\n cookieHeader: string,\n ): Promise<UserOrderFillsResponse> {\n const url = buildUserOrderFillsAuthenticatedUrl(\n this.client.http.baseUrl(),\n marketPubkey,\n limit,\n cursor,\n );\n return this.client.http.getWithCookies<UserOrderFillsResponse>(\n url,\n RetryPolicy.Idempotent,\n cookieHeader,\n );\n }\n\n /**\n * Public variant of {@link getUserOrderFills}. Takes the user's wallet\n * via the URL path (`GET /api/users/{wallet}/order-fills`) and requires\n * no auth.\n */\n async getUserOrderFillsByWallet(\n walletAddress: string,\n marketPubkey?: string,\n limit?: number,\n cursor?: string,\n ): Promise<UserOrderFillsResponse> {\n const url = buildUserOrderFillsByWalletUrl(\n this.client.http.baseUrl(),\n walletAddress,\n marketPubkey,\n limit,\n cursor,\n );\n return this.client.http.get<UserOrderFillsResponse>(url, RetryPolicy.Idempotent);\n }\n\n // ── Unified cancel (dispatches based on client signing strategy) ────\n\n async cancelOrderSigned(\n orderHash: string,\n maker: PubkeyStr\n ): Promise<CancelSuccess> {\n const strategy = requireSigningStrategy(this.client);\n\n switch (strategy.type) {\n case \"native\": {\n const body = cancelBodySigned(orderHash, maker, strategy.keypair);\n return this.cancel(body);\n }\n case \"walletAdapter\": {\n const message = cancelOrderMessage(orderHash);\n const sigBytes = await strategy.signer\n .signMessage(message)\n .catch((err: unknown) => {\n const msg = err instanceof Error ? err.message : String(err);\n if (isUserCancellation(msg)) throw SdkError.userCancelled();\n throw SdkError.signing(msg);\n });\n const sigBs58 = bs58.encode(sigBytes);\n const body = cancelBodyFromBase58(orderHash, maker, sigBs58);\n return this.cancel(body);\n }\n case \"privy\": {\n const privy = new Privy(this.client);\n const result = await privy.signAndCancelOrder(\n strategy.walletId,\n orderHash,\n maker as string\n );\n return {\n order_hash: result.order_hash,\n remaining: result.remaining,\n };\n }\n }\n }\n\n async cancelAllSigned(\n userPubkey: PubkeyStr,\n timestamp: number,\n salt: string,\n orderbookId?: OrderBookId\n ): Promise<CancelAllSuccess> {\n const strategy = requireSigningStrategy(this.client);\n const resolvedOrderbookId = orderbookId ?? (\"\" as OrderBookId);\n\n switch (strategy.type) {\n case \"native\": {\n const body = cancelAllBodySigned(\n userPubkey,\n resolvedOrderbookId,\n timestamp,\n salt,\n strategy.keypair\n );\n return this.cancelAll(body);\n }\n case \"walletAdapter\": {\n const message = cancelAllMessage(\n userPubkey as string,\n resolvedOrderbookId as string,\n timestamp,\n salt\n );\n const sigBytes = await strategy.signer\n .signMessage(new TextEncoder().encode(message))\n .catch((err: unknown) => {\n const msg = err instanceof Error ? err.message : String(err);\n if (isUserCancellation(msg)) throw SdkError.userCancelled();\n throw SdkError.signing(msg);\n });\n const sigBs58 = bs58.encode(sigBytes);\n const body = cancelAllBodyFromBase58(\n userPubkey,\n resolvedOrderbookId,\n timestamp,\n salt,\n sigBs58\n );\n return this.cancelAll(body);\n }\n case \"privy\": {\n const privy = new Privy(this.client);\n const result = await privy.signAndCancelAllOrders(\n strategy.walletId,\n userPubkey as string,\n resolvedOrderbookId as string,\n timestamp,\n salt\n );\n return {\n cancelled_order_hashes: result.cancelled_order_hashes,\n count: result.count,\n user_pubkey: asPubkeyStr(result.user_pubkey),\n orderbook_id: asOrderBookId(result.orderbook_id),\n message: result.message,\n };\n }\n }\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n cancelOrderIx(\n operator: PublicKey,\n market: PublicKey,\n order: SignedOrder\n ): TransactionInstruction {\n return buildCancelOrderIx(operator, market, order, this.client.programId);\n }\n\n incrementNonceIx(user: PublicKey): TransactionInstruction {\n return buildIncrementNonceIx(user, this.client.programId);\n }\n\n closeOrderStatusIx(params: CloseOrderStatusParams): TransactionInstruction {\n return buildCloseOrderStatusIx(params, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n cancelOrderTx(\n operator: PublicKey,\n market: PublicKey,\n order: SignedOrder,\n context: V1TransactionContext\n ): V1Transaction {\n const ix = this.cancelOrderIx(operator, market, order);\n return V1Transaction.compile([ix], operator, context);\n }\n\n incrementNonceTx(\n user: PublicKey,\n context: V1TransactionContext\n ): V1Transaction {\n const ix = this.incrementNonceIx(user);\n return V1Transaction.compile([ix], user, context);\n }\n\n closeOrderStatusTx(\n params: CloseOrderStatusParams,\n context: V1TransactionContext\n ): V1Transaction {\n const ix = this.closeOrderStatusIx(params);\n return V1Transaction.compile([ix], params.operator, context);\n }\n\n // ── Order helpers ────────────────────────────────────────────────────\n\n createBidOrder(params: BidOrderParams): Omit<SignedOrder, \"signature\"> {\n return programCreateBidOrder(params);\n }\n\n createAskOrder(params: AskOrderParams): Omit<SignedOrder, \"signature\"> {\n return programCreateAskOrder(params);\n }\n\n createSignedBidOrder(\n params: BidOrderParams,\n signer: Keypair,\n rules: OrderbookRules\n ): SignedOrder {\n return programCreateSignedBidOrder(params, signer, rules);\n }\n\n createSignedAskOrder(\n params: AskOrderParams,\n signer: Keypair,\n rules: OrderbookRules\n ): SignedOrder {\n return programCreateSignedAskOrder(params, signer, rules);\n }\n\n hashOrder(order: SignedOrder): Buffer {\n return programHashOrder(order);\n }\n\n signOrder(\n order: SignedOrder,\n signer: Keypair,\n rules: OrderbookRules\n ): Buffer {\n return programSignOrder(order, signer, rules);\n }\n\n signFullOrder(\n order: Omit<SignedOrder, \"signature\">,\n signer: Keypair,\n rules: OrderbookRules\n ): SignedOrder {\n return signOrderFull(order, signer, rules);\n }\n\n // ── On-chain account fetchers (require Connection) ──────────────────\n\n async getStatus(orderHash: Buffer): Promise<ProgramOrderStatus | null> {\n const connection = requireConnection(this.client);\n const pda = this.statusPda(orderHash);\n const accountInfo = await connection.getAccountInfo(pda);\n if (!accountInfo) {\n return null;\n }\n return deserializeOrderStatus(accountInfo.data as Buffer);\n }\n\n async getNonce(user: PublicKey): Promise<bigint> {\n const connection = requireConnection(this.client);\n const pda = this.noncePda(user);\n const accountInfo = await connection.getAccountInfo(pda);\n if (!accountInfo) {\n return 0n;\n }\n const userNonce = deserializeUserNonce(accountInfo.data as Buffer);\n return userNonce.nonce;\n }\n\n async currentNonce(user: PublicKey): Promise<number> {\n const nonce = await this.getNonce(user);\n if (nonce > 0xFFFFFFFFn) {\n throw ProgramSdkError.serialization(`Nonce exceeds u32 range: ${nonce}`);\n }\n return Number(nonce);\n }\n}\n\ninterface UserOrdersRawResponse {\n user_pubkey: PubkeyStr;\n orders?: UserSnapshotOrder[];\n market_balances: UserMarketBalance[];\n next_cursor?: string | null;\n has_more?: boolean;\n}\n\nfunction buildUserOrdersAuthenticatedUrl(\n baseUrl: string,\n limit: number | undefined,\n cursor: string | undefined,\n): string {\n const params = new URLSearchParams();\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor) params.set(\"cursor\", cursor);\n const qs = params.toString();\n return qs.length === 0\n ? `${baseUrl}/api/users/orders`\n : `${baseUrl}/api/users/orders?${qs}`;\n}\n\nfunction buildUserOrderFillsAuthenticatedUrl(\n baseUrl: string,\n marketPubkey: string | undefined,\n limit: number | undefined,\n cursor: string | undefined,\n): string {\n const params = new URLSearchParams();\n if (marketPubkey) params.set(\"market_pubkey\", marketPubkey);\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor) params.set(\"cursor\", cursor);\n const qs = params.toString();\n return qs.length === 0\n ? `${baseUrl}/api/users/order-fills`\n : `${baseUrl}/api/users/order-fills?${qs}`;\n}\n\nfunction buildUserOrderFillsByWalletUrl(\n baseUrl: string,\n walletAddress: string,\n marketPubkey: string | undefined,\n limit: number | undefined,\n cursor: string | undefined,\n): string {\n const params = new URLSearchParams();\n if (marketPubkey) params.set(\"market_pubkey\", marketPubkey);\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor) params.set(\"cursor\", cursor);\n const qs = params.toString();\n const path = `${baseUrl}/api/users/${encodeURIComponent(walletAddress)}/order-fills`;\n return qs.length === 0 ? path : `${path}?${qs}`;\n}\n"]}
@@ -1,8 +1,8 @@
1
- import type { LimitOrder, TriggerOrder } from "./index";
1
+ import type { LimitOrder } from "./index";
2
2
  import type { OrderUpdate, UserSnapshotOrder, UserSnapshotOrderCommon } from "./wire";
3
- import { UserOpenLimitOrders, UserTriggerOrders } from "./state";
3
+ import { UserOpenLimitOrders } from "./state";
4
4
  export declare function orderFromUpdate(update: OrderUpdate): LimitOrder;
5
5
  export declare function limitSnapshotToOrder(common: UserSnapshotOrderCommon, txSignature?: string): LimitOrder;
6
- export declare function triggerSnapshotToOrder(common: UserSnapshotOrderCommon, triggerOrderId: string, triggerPrice: string, triggerType: import("../../shared").TriggerType, timeInForce?: import("../../shared").TimeInForce): TriggerOrder;
7
- export declare function convertSnapshotOrders(orders: UserSnapshotOrder[]): [UserOpenLimitOrders, UserTriggerOrders];
6
+ /** Groups open limit orders from a decoded account snapshot. */
7
+ export declare function convertSnapshotOrders(orders: UserSnapshotOrder[]): UserOpenLimitOrders;
8
8
  //# sourceMappingURL=convert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/domain/order/convert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjE,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAmB/D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAkBtG;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,cAAc,EAAE,WAAW,EAC/C,WAAW,CAAC,EAAE,OAAO,cAAc,EAAE,WAAW,GAC/C,YAAY,CAcd;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAwB3G"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/domain/order/convert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAmB/D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAkBtG;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,CAUtF"}
@@ -5,10 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.orderFromUpdate = orderFromUpdate;
7
7
  exports.limitSnapshotToOrder = limitSnapshotToOrder;
8
- exports.triggerSnapshotToOrder = triggerSnapshotToOrder;
9
8
  exports.convertSnapshotOrders = convertSnapshotOrders;
10
9
  const decimal_js_1 = __importDefault(require("decimal.js"));
11
- const shared_1 = require("../../shared");
12
10
  const state_1 = require("./state");
13
11
  function orderFromUpdate(update) {
14
12
  const size = new decimal_js_1.default(update.order.filled).plus(update.order.remaining);
@@ -48,33 +46,14 @@ function limitSnapshotToOrder(common, txSignature) {
48
46
  outcomeIndex: common.outcome_index,
49
47
  };
50
48
  }
51
- function triggerSnapshotToOrder(common, triggerOrderId, triggerPrice, triggerType, timeInForce) {
52
- return {
53
- triggerOrderId,
54
- orderHash: common.order_hash,
55
- marketPubkey: common.market_pubkey,
56
- orderbookId: common.orderbook_id,
57
- triggerPrice,
58
- triggerType,
59
- side: common.side,
60
- amountIn: common.amount_in,
61
- amountOut: common.amount_out,
62
- timeInForce: timeInForce ?? shared_1.TimeInForce.Gtc,
63
- createdAt: new Date(common.created_at),
64
- };
65
- }
49
+ /** Groups open limit orders from a decoded account snapshot. */
66
50
  function convertSnapshotOrders(orders) {
67
51
  const openOrders = new state_1.UserOpenLimitOrders();
68
- const triggerOrders = new state_1.UserTriggerOrders();
69
52
  for (const snapshot of orders) {
70
- if (snapshot.order_type === "limit") {
71
- if (!new decimal_js_1.default(snapshot.remaining).isZero()) {
72
- openOrders.insert(limitSnapshotToOrder(snapshot, snapshot.tx_signature));
73
- }
74
- continue;
53
+ if (!new decimal_js_1.default(snapshot.remaining).isZero()) {
54
+ openOrders.insert(limitSnapshotToOrder(snapshot, snapshot.tx_signature));
75
55
  }
76
- triggerOrders.insert(triggerSnapshotToOrder(snapshot, snapshot.trigger_order_id, snapshot.trigger_price, snapshot.trigger_type, snapshot.time_in_force));
77
56
  }
78
- return [openOrders, triggerOrders];
57
+ return openOrders;
79
58
  }
80
59
  //# sourceMappingURL=convert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/domain/order/convert.ts"],"names":[],"mappings":"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","sourcesContent":["import Decimal from \"decimal.js\";\nimport { TimeInForce } from \"../../shared\";\nimport type { LimitOrder, TriggerOrder } from \"./index\";\nimport type { OrderUpdate, UserSnapshotOrder, UserSnapshotOrderCommon } from \"./wire\";\nimport { UserOpenLimitOrders, UserTriggerOrders } from \"./state\";\n\nexport function orderFromUpdate(update: OrderUpdate): LimitOrder {\n const size = new Decimal(update.order.filled).plus(update.order.remaining);\n\n return {\n marketPubkey: update.market_pubkey,\n orderbookId: update.orderbook_id,\n baseMint: update.order.base_mint,\n quoteMint: update.order.quote_mint,\n orderHash: update.order.order_hash,\n side: update.order.side,\n size: size.toString(),\n price: update.order.price,\n filledSize: update.order.filled,\n remainingSize: update.order.remaining,\n createdAt: new Date(update.order.created_at),\n txSignature: update.tx_signature,\n status: update.order.status,\n outcomeIndex: update.order.outcome_index,\n };\n}\n\nexport function limitSnapshotToOrder(common: UserSnapshotOrderCommon, txSignature?: string): LimitOrder {\n const size = new Decimal(common.filled).plus(common.remaining);\n return {\n marketPubkey: common.market_pubkey,\n orderbookId: common.orderbook_id,\n orderHash: common.order_hash,\n baseMint: common.base_mint,\n quoteMint: common.quote_mint,\n side: common.side,\n size: size.toString(),\n price: common.price,\n filledSize: common.filled,\n remainingSize: common.remaining,\n createdAt: new Date(common.created_at),\n txSignature,\n status: common.status,\n outcomeIndex: common.outcome_index,\n };\n}\n\nexport function triggerSnapshotToOrder(\n common: UserSnapshotOrderCommon,\n triggerOrderId: string,\n triggerPrice: string,\n triggerType: import(\"../../shared\").TriggerType,\n timeInForce?: import(\"../../shared\").TimeInForce\n): TriggerOrder {\n return {\n triggerOrderId,\n orderHash: common.order_hash,\n marketPubkey: common.market_pubkey,\n orderbookId: common.orderbook_id,\n triggerPrice,\n triggerType,\n side: common.side,\n amountIn: common.amount_in,\n amountOut: common.amount_out,\n timeInForce: timeInForce ?? TimeInForce.Gtc,\n createdAt: new Date(common.created_at),\n };\n}\n\nexport function convertSnapshotOrders(orders: UserSnapshotOrder[]): [UserOpenLimitOrders, UserTriggerOrders] {\n const openOrders = new UserOpenLimitOrders();\n const triggerOrders = new UserTriggerOrders();\n\n for (const snapshot of orders) {\n if (snapshot.order_type === \"limit\") {\n if (!new Decimal(snapshot.remaining).isZero()) {\n openOrders.insert(limitSnapshotToOrder(snapshot, snapshot.tx_signature));\n }\n continue;\n }\n\n triggerOrders.insert(\n triggerSnapshotToOrder(\n snapshot,\n snapshot.trigger_order_id,\n snapshot.trigger_price,\n snapshot.trigger_type,\n snapshot.time_in_force\n )\n );\n }\n\n return [openOrders, triggerOrders];\n}\n"]}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/domain/order/convert.ts"],"names":[],"mappings":";;;;;AAKA,0CAmBC;AAED,oDAkBC;AAGD,sDAUC;AAzDD,4DAAiC;AAGjC,mCAA8C;AAE9C,SAAgB,eAAe,CAAC,MAAmB;IACjD,MAAM,IAAI,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE3E,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;QAChC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;QAClC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;QAClC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;QACvB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;QACzB,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;QAC/B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;QACrC,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5C,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;QAC3B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;KACzC,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAA+B,EAAE,WAAoB;IACxF,MAAM,IAAI,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/D,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,aAAa,EAAE,MAAM,CAAC,SAAS;QAC/B,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACtC,WAAW;QACX,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,aAAa;KACnC,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,SAAgB,qBAAqB,CAAC,MAA2B;IAC/D,MAAM,UAAU,GAAG,IAAI,2BAAmB,EAAE,CAAC;IAE7C,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,oBAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import Decimal from \"decimal.js\";\nimport type { LimitOrder } from \"./index\";\nimport type { OrderUpdate, UserSnapshotOrder, UserSnapshotOrderCommon } from \"./wire\";\nimport { UserOpenLimitOrders } from \"./state\";\n\nexport function orderFromUpdate(update: OrderUpdate): LimitOrder {\n const size = new Decimal(update.order.filled).plus(update.order.remaining);\n\n return {\n marketPubkey: update.market_pubkey,\n orderbookId: update.orderbook_id,\n baseMint: update.order.base_mint,\n quoteMint: update.order.quote_mint,\n orderHash: update.order.order_hash,\n side: update.order.side,\n size: size.toString(),\n price: update.order.price,\n filledSize: update.order.filled,\n remainingSize: update.order.remaining,\n createdAt: new Date(update.order.created_at),\n txSignature: update.tx_signature,\n status: update.order.status,\n outcomeIndex: update.order.outcome_index,\n };\n}\n\nexport function limitSnapshotToOrder(common: UserSnapshotOrderCommon, txSignature?: string): LimitOrder {\n const size = new Decimal(common.filled).plus(common.remaining);\n return {\n marketPubkey: common.market_pubkey,\n orderbookId: common.orderbook_id,\n orderHash: common.order_hash,\n baseMint: common.base_mint,\n quoteMint: common.quote_mint,\n side: common.side,\n size: size.toString(),\n price: common.price,\n filledSize: common.filled,\n remainingSize: common.remaining,\n createdAt: new Date(common.created_at),\n txSignature,\n status: common.status,\n outcomeIndex: common.outcome_index,\n };\n}\n\n/** Groups open limit orders from a decoded account snapshot. */\nexport function convertSnapshotOrders(orders: UserSnapshotOrder[]): UserOpenLimitOrders {\n const openOrders = new UserOpenLimitOrders();\n\n for (const snapshot of orders) {\n if (!new Decimal(snapshot.remaining).isZero()) {\n openOrders.insert(limitSnapshotToOrder(snapshot, snapshot.tx_signature));\n }\n }\n\n return openOrders;\n}\n"]}
@@ -1,12 +1,11 @@
1
- import Decimal from "decimal.js";
2
- import { Side, type OrderBookId, type PubkeyStr, type TimeInForce, type TriggerType } from "../../shared";
1
+ import { Side, type OrderBookId, type PubkeyStr } from "../../shared";
3
2
  export * from "./client";
4
3
  export * from "./wire";
5
4
  export * from "./state";
6
5
  export { limitSnapshotToOrder, convertSnapshotOrders, orderFromUpdate } from "./convert";
6
+ /** Supported resting-order kind. */
7
7
  export declare enum OrderType {
8
- Limit = "limit",
9
- Trigger = "trigger"
8
+ Limit = "limit"
10
9
  }
11
10
  export declare function orderTypeLabel(orderType: OrderType): string;
12
11
  export declare enum OrderStatus {
@@ -32,28 +31,4 @@ export interface LimitOrder {
32
31
  status: OrderStatus;
33
32
  outcomeIndex: number;
34
33
  }
35
- export interface TriggerOrder {
36
- triggerOrderId: string;
37
- orderHash: string;
38
- marketPubkey: PubkeyStr;
39
- orderbookId: OrderBookId;
40
- triggerPrice: string;
41
- triggerType: TriggerType;
42
- side: Side;
43
- amountIn: string;
44
- amountOut: string;
45
- timeInForce: TimeInForce;
46
- createdAt: Date;
47
- }
48
- /**
49
- * Derive the limit price from pre-scaled amounts.
50
- *
51
- * `amountIn` and `amountOut` are already human-readable decimals
52
- * (scaled by the snapshot/websocket layer), so no further decimal
53
- * conversion is needed.
54
- *
55
- * For Ask: maker gives base, receives quote -> price = quote / base
56
- * For Bid: maker gives quote, receives base -> price = quote / base
57
- */
58
- export declare function triggerOrderLimitPrice(order: TriggerOrder): Decimal | undefined;
59
34
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/order/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE1G,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEzF,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAO3D;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,CAW/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/order/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtE,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEzF,oCAAoC;AACpC,oBAAY,SAAS;IACnB,KAAK,UAAU;CAChB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAK3D;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB"}
@@ -13,15 +13,9 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
13
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
16
  Object.defineProperty(exports, "__esModule", { value: true });
20
17
  exports.OrderStatus = exports.OrderType = exports.orderFromUpdate = exports.convertSnapshotOrders = exports.limitSnapshotToOrder = void 0;
21
18
  exports.orderTypeLabel = orderTypeLabel;
22
- exports.triggerOrderLimitPrice = triggerOrderLimitPrice;
23
- const decimal_js_1 = __importDefault(require("decimal.js"));
24
- const shared_1 = require("../../shared");
25
19
  __exportStar(require("./client"), exports);
26
20
  __exportStar(require("./wire"), exports);
27
21
  __exportStar(require("./state"), exports);
@@ -29,17 +23,15 @@ var convert_1 = require("./convert");
29
23
  Object.defineProperty(exports, "limitSnapshotToOrder", { enumerable: true, get: function () { return convert_1.limitSnapshotToOrder; } });
30
24
  Object.defineProperty(exports, "convertSnapshotOrders", { enumerable: true, get: function () { return convert_1.convertSnapshotOrders; } });
31
25
  Object.defineProperty(exports, "orderFromUpdate", { enumerable: true, get: function () { return convert_1.orderFromUpdate; } });
26
+ /** Supported resting-order kind. */
32
27
  var OrderType;
33
28
  (function (OrderType) {
34
29
  OrderType["Limit"] = "limit";
35
- OrderType["Trigger"] = "trigger";
36
30
  })(OrderType || (exports.OrderType = OrderType = {}));
37
31
  function orderTypeLabel(orderType) {
38
32
  switch (orderType) {
39
33
  case OrderType.Limit:
40
34
  return "Limit";
41
- case OrderType.Trigger:
42
- return "Trigger";
43
35
  }
44
36
  }
45
37
  var OrderStatus;
@@ -50,25 +42,4 @@ var OrderStatus;
50
42
  OrderStatus["Filled"] = "FILLED";
51
43
  OrderStatus["Pending"] = "PENDING";
52
44
  })(OrderStatus || (exports.OrderStatus = OrderStatus = {}));
53
- /**
54
- * Derive the limit price from pre-scaled amounts.
55
- *
56
- * `amountIn` and `amountOut` are already human-readable decimals
57
- * (scaled by the snapshot/websocket layer), so no further decimal
58
- * conversion is needed.
59
- *
60
- * For Ask: maker gives base, receives quote -> price = quote / base
61
- * For Bid: maker gives quote, receives base -> price = quote / base
62
- */
63
- function triggerOrderLimitPrice(order) {
64
- const amountIn = new decimal_js_1.default(order.amountIn);
65
- const amountOut = new decimal_js_1.default(order.amountOut);
66
- if (order.side === shared_1.Side.Ask && amountIn.greaterThan(0)) {
67
- return amountOut.div(amountIn);
68
- }
69
- if (order.side === shared_1.Side.Bid && amountOut.greaterThan(0)) {
70
- return amountIn.div(amountOut);
71
- }
72
- return undefined;
73
- }
74
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/order/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAaA,wCAOC;AAmDD,wDAWC;AAlFD,4DAAiC;AACjC,yCAA0G;AAE1G,2CAAyB;AACzB,yCAAuB;AACvB,0CAAwB;AACxB,qCAAyF;AAAhF,+GAAA,oBAAoB,OAAA;AAAE,gHAAA,qBAAqB,OAAA;AAAE,0GAAA,eAAe,OAAA;AAErE,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACrB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED,SAAgB,cAAc,CAAC,SAAoB;IACjD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,KAAK;YAClB,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS,CAAC,OAAO;YACpB,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAiCD;;;;;;;;;GASG;AACH,SAAgB,sBAAsB,CAAC,KAAmB;IACxD,MAAM,QAAQ,GAAG,IAAI,oBAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,oBAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAI,CAAC,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import Decimal from \"decimal.js\";\nimport { Side, type OrderBookId, type PubkeyStr, type TimeInForce, type TriggerType } from \"../../shared\";\n\nexport * from \"./client\";\nexport * from \"./wire\";\nexport * from \"./state\";\nexport { limitSnapshotToOrder, convertSnapshotOrders, orderFromUpdate } from \"./convert\";\n\nexport enum OrderType {\n Limit = \"limit\",\n Trigger = \"trigger\",\n}\n\nexport function orderTypeLabel(orderType: OrderType): string {\n switch (orderType) {\n case OrderType.Limit:\n return \"Limit\";\n case OrderType.Trigger:\n return \"Trigger\";\n }\n}\n\nexport enum OrderStatus {\n Open = \"OPEN\",\n Matching = \"MATCHING\",\n Cancelled = \"CANCELLED\",\n Filled = \"FILLED\",\n Pending = \"PENDING\",\n}\n\nexport interface LimitOrder {\n marketPubkey: PubkeyStr;\n orderbookId: OrderBookId;\n txSignature?: string;\n baseMint: PubkeyStr;\n quoteMint: PubkeyStr;\n orderHash: string;\n side: Side;\n size: string;\n price: string;\n filledSize: string;\n remainingSize: string;\n createdAt: Date;\n status: OrderStatus;\n outcomeIndex: number;\n}\n\nexport interface TriggerOrder {\n triggerOrderId: string;\n orderHash: string;\n marketPubkey: PubkeyStr;\n orderbookId: OrderBookId;\n triggerPrice: string;\n triggerType: TriggerType;\n side: Side;\n amountIn: string;\n amountOut: string;\n timeInForce: TimeInForce;\n createdAt: Date;\n}\n\n/**\n * Derive the limit price from pre-scaled amounts.\n *\n * `amountIn` and `amountOut` are already human-readable decimals\n * (scaled by the snapshot/websocket layer), so no further decimal\n * conversion is needed.\n *\n * For Ask: maker gives base, receives quote -> price = quote / base\n * For Bid: maker gives quote, receives base -> price = quote / base\n */\nexport function triggerOrderLimitPrice(order: TriggerOrder): Decimal | undefined {\n const amountIn = new Decimal(order.amountIn);\n const amountOut = new Decimal(order.amountOut);\n\n if (order.side === Side.Ask && amountIn.greaterThan(0)) {\n return amountOut.div(amountIn);\n }\n if (order.side === Side.Bid && amountOut.greaterThan(0)) {\n return amountIn.div(amountOut);\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/order/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAYA,wCAKC;AAfD,2CAAyB;AACzB,yCAAuB;AACvB,0CAAwB;AACxB,qCAAyF;AAAhF,+GAAA,oBAAoB,OAAA;AAAE,gHAAA,qBAAqB,OAAA;AAAE,0GAAA,eAAe,OAAA;AAErE,oCAAoC;AACpC,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,4BAAe,CAAA;AACjB,CAAC,EAFW,SAAS,yBAAT,SAAS,QAEpB;AAED,SAAgB,cAAc,CAAC,SAAoB;IACjD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,KAAK;YAClB,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB","sourcesContent":["import { Side, type OrderBookId, type PubkeyStr } from \"../../shared\";\n\nexport * from \"./client\";\nexport * from \"./wire\";\nexport * from \"./state\";\nexport { limitSnapshotToOrder, convertSnapshotOrders, orderFromUpdate } from \"./convert\";\n\n/** Supported resting-order kind. */\nexport enum OrderType {\n Limit = \"limit\",\n}\n\nexport function orderTypeLabel(orderType: OrderType): string {\n switch (orderType) {\n case OrderType.Limit:\n return \"Limit\";\n }\n}\n\nexport enum OrderStatus {\n Open = \"OPEN\",\n Matching = \"MATCHING\",\n Cancelled = \"CANCELLED\",\n Filled = \"FILLED\",\n Pending = \"PENDING\",\n}\n\nexport interface LimitOrder {\n marketPubkey: PubkeyStr;\n orderbookId: OrderBookId;\n txSignature?: string;\n baseMint: PubkeyStr;\n quoteMint: PubkeyStr;\n orderHash: string;\n side: Side;\n size: string;\n price: string;\n filledSize: string;\n remainingSize: string;\n createdAt: Date;\n status: OrderStatus;\n outcomeIndex: number;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { OrderBookId, PubkeyStr } from "../../shared";
2
- import type { LimitOrder, TriggerOrder } from "./index";
2
+ import type { LimitOrder } from "./index";
3
3
  import type { OrderUpdate } from "./wire";
4
4
  export declare class UserOpenLimitOrders {
5
5
  readonly orders: Map<PubkeyStr, Map<OrderBookId, LimitOrder[]>>;
@@ -12,17 +12,4 @@ export declare class UserOpenLimitOrders {
12
12
  clear(): void;
13
13
  isEmpty(): boolean;
14
14
  }
15
- export declare class UserTriggerOrders {
16
- readonly orders: Map<PubkeyStr, Map<OrderBookId, TriggerOrder[]>>;
17
- constructor();
18
- get(market: PubkeyStr, orderbookId: OrderBookId): TriggerOrder[] | undefined;
19
- getByMarket(market: PubkeyStr): Map<OrderBookId, TriggerOrder[]> | undefined;
20
- getById(triggerOrderId: string): TriggerOrder | undefined;
21
- insert(order: TriggerOrder): void;
22
- remove(triggerOrderId: string): TriggerOrder | undefined;
23
- clear(): void;
24
- isEmpty(): boolean;
25
- len(): number;
26
- all(): TriggerOrder[];
27
- }
28
15
  //# sourceMappingURL=state.d.ts.map