@lightconexyz/lightcone-sdk 0.8.4-rc.56 → 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 (61) hide show
  1. package/README.md +18 -2
  2. package/dist/client.d.ts +7 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +11 -1
  5. package/dist/client.js.map +1 -1
  6. package/dist/domain/order/client.d.ts +2 -19
  7. package/dist/domain/order/client.d.ts.map +1 -1
  8. package/dist/domain/order/client.js +1 -56
  9. package/dist/domain/order/client.js.map +1 -1
  10. package/dist/domain/order/convert.d.ts +4 -4
  11. package/dist/domain/order/convert.d.ts.map +1 -1
  12. package/dist/domain/order/convert.js +4 -25
  13. package/dist/domain/order/convert.js.map +1 -1
  14. package/dist/domain/order/index.d.ts +3 -28
  15. package/dist/domain/order/index.d.ts.map +1 -1
  16. package/dist/domain/order/index.js +1 -30
  17. package/dist/domain/order/index.js.map +1 -1
  18. package/dist/domain/order/state.d.ts +1 -14
  19. package/dist/domain/order/state.d.ts.map +1 -1
  20. package/dist/domain/order/state.js +1 -79
  21. package/dist/domain/order/state.js.map +1 -1
  22. package/dist/domain/order/wire.d.ts +17 -52
  23. package/dist/domain/order/wire.d.ts.map +1 -1
  24. package/dist/domain/order/wire.js +24 -53
  25. package/dist/domain/order/wire.js.map +1 -1
  26. package/dist/http/client.d.ts +16 -1
  27. package/dist/http/client.d.ts.map +1 -1
  28. package/dist/http/client.js +42 -6
  29. package/dist/http/client.js.map +1 -1
  30. package/dist/privy/client.d.ts +1 -2
  31. package/dist/privy/client.d.ts.map +1 -1
  32. package/dist/privy/client.js +0 -10
  33. package/dist/privy/client.js.map +1 -1
  34. package/dist/privy/index.d.ts +7 -16
  35. package/dist/privy/index.d.ts.map +1 -1
  36. package/dist/privy/index.js +0 -31
  37. package/dist/privy/index.js.map +1 -1
  38. package/dist/program/envelope.d.ts +1 -24
  39. package/dist/program/envelope.d.ts.map +1 -1
  40. package/dist/program/envelope.js +1 -133
  41. package/dist/program/envelope.js.map +1 -1
  42. package/dist/program/orders.d.ts +3 -15
  43. package/dist/program/orders.d.ts.map +1 -1
  44. package/dist/program/orders.js +2 -22
  45. package/dist/program/orders.js.map +1 -1
  46. package/dist/shared/index.d.ts +2 -2
  47. package/dist/shared/index.d.ts.map +1 -1
  48. package/dist/shared/index.js +1 -6
  49. package/dist/shared/index.js.map +1 -1
  50. package/dist/shared/rejection.d.ts.map +1 -1
  51. package/dist/shared/rejection.js +0 -1
  52. package/dist/shared/rejection.js.map +1 -1
  53. package/dist/shared/scaling.d.ts +0 -1
  54. package/dist/shared/scaling.d.ts.map +1 -1
  55. package/dist/shared/scaling.js +0 -14
  56. package/dist/shared/scaling.js.map +1 -1
  57. package/dist/shared/types.d.ts +1 -25
  58. package/dist/shared/types.d.ts.map +1 -1
  59. package/dist/shared/types.js +1 -28
  60. package/dist/shared/types.js.map +1 -1
  61. package/package.json +1 -1
package/README.md CHANGED
@@ -14,6 +14,7 @@ TypeScript SDK for the Lightcone impact market protocol on Solana.
14
14
  - [Step 6: Exit a Position](#step-6-exit-a-position)
15
15
  - [Step 7: Withdraw](#step-7-withdraw)
16
16
  - [Authentication](#authentication)
17
+ - [API Key](#api-key)
17
18
  - [Environment Configuration](#environment-configuration)
18
19
  - [Examples](#examples)
19
20
  - [Error Handling](#error-handling)
@@ -519,6 +520,21 @@ const positions = await client
519
520
 
520
521
  In browsers, use the ordinary methods. The browser supplies the cookie through `credentials: "include"`.
521
522
 
523
+ ## API Key
524
+
525
+ Configure an API key for native or server-side submit, cancel, and cancel-all requests. Public reads and authentication need no API key. The key identifies an API Consumer; user authentication, wallet ownership, and signed-order validation still apply.
526
+
527
+ ```ts
528
+ const client = LightconeClient.builder()
529
+ .env(LightconeEnv.Staging)
530
+ .apiKey(process.env.LIGHTCONE_API_KEY!)
531
+ .build();
532
+ ```
533
+
534
+ The SDK attaches `x-lightcone-api-key` only to POST `/api/orders/submit`, `/api/orders/cancel`, and `/api/orders/cancel-all` on the configured API origin. It never forwards the key to another origin or logs it. HTTPS is required except for loopback development. Keep keys out of source control and browsers. Browser builds reject API-key configuration; web users trade with their existing Privy session.
535
+
536
+ Cloudflare limits these trading attempts by public source IP, not by API key: direct API callers share 500 attempts per 10-second window per IP. A 429 response does not revoke credentials. Public reads and WebSocket messages are outside this trading limit. Revocation reaches all backend process caches within 24 hours; new keys work immediately through a database lookup on cache miss.
537
+
522
538
  ## Environment Configuration
523
539
 
524
540
  The SDK defaults to the **production** environment. Use `LightconeEnv` to target a different deployment:
@@ -745,6 +761,6 @@ When a request to the API origin fails with HTTP 401 and a restorer is registere
745
761
 
746
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`).
747
763
 
748
- ## Trigger Orders
764
+ ## Supported order responses
749
765
 
750
- 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`.
package/dist/client.d.ts CHANGED
@@ -172,6 +172,7 @@ export declare class LightconeClientBuilder {
172
172
  private rpcFetchValue?;
173
173
  private primaryRpcUrlValue?;
174
174
  private backupRpcUrlValue?;
175
+ private apiKeyValue?;
175
176
  /**
176
177
  * Set the deployment environment. Configures the API URL, WebSocket URL,
177
178
  * RPC URL, and program ID for the given environment.
@@ -182,6 +183,12 @@ export declare class LightconeClientBuilder {
182
183
  env(environment: LightconeEnv): LightconeClientBuilder;
183
184
  baseUrl(url: string): LightconeClientBuilder;
184
185
  withBaseUrl(url: string): LightconeClientBuilder;
186
+ /**
187
+ * Set the API key sent as `x-lightcone-api-key` on submit, cancel, and cancel-all POST requests to
188
+ * the API origin. Keep it server-side: it identifies an API Consumer, never
189
+ * a user, and the SDK never logs it.
190
+ */
191
+ apiKey(key: string): LightconeClientBuilder;
185
192
  wsUrl(url: string): LightconeClientBuilder;
186
193
  withWsUrl(url: string): LightconeClientBuilder;
187
194
  auth(credentials: AuthCredentials): LightconeClientBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -295,6 +295,7 @@ class LightconeClientBuilder {
295
295
  rpcFetchValue;
296
296
  primaryRpcUrlValue = (0, env_1.rpcUrl)(env_1.LightconeEnv.Prod);
297
297
  backupRpcUrlValue;
298
+ apiKeyValue;
298
299
  /**
299
300
  * Set the deployment environment. Configures the API URL, WebSocket URL,
300
301
  * RPC URL, and program ID for the given environment.
@@ -316,6 +317,15 @@ class LightconeClientBuilder {
316
317
  this.baseUrlValue = url;
317
318
  return this;
318
319
  }
320
+ /**
321
+ * Set the API key sent as `x-lightcone-api-key` on submit, cancel, and cancel-all POST requests to
322
+ * the API origin. Keep it server-side: it identifies an API Consumer, never
323
+ * a user, and the SDK never logs it.
324
+ */
325
+ apiKey(key) {
326
+ this.apiKeyValue = key;
327
+ return this;
328
+ }
319
329
  wsUrl(url) {
320
330
  return this.withWsUrl(url);
321
331
  }
@@ -377,7 +387,7 @@ class LightconeClientBuilder {
377
387
  }
378
388
  build() {
379
389
  return new LightconeClient({
380
- http: new http_1.LightconeHttp(this.baseUrlValue),
390
+ http: new http_1.LightconeHttp(this.baseUrlValue, { apiKey: this.apiKeyValue }),
381
391
  wsConfig: {
382
392
  url: this.wsUrlValue,
383
393
  reconnect: true,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n V1Transaction,\n validateV1Resources,\n type V1ResourceConfig,\n type V1TransactionContext,\n} from \"./program/transaction\";\nimport { Connection, Keypair, PublicKey } from \"@solana/web3.js\";\nimport { Auth, type AuthCredentials } from \"./auth\";\nimport type { ClientContext } from \"./context\";\nimport {\n signAndSubmitTx as signAndSubmitTxFn,\n signAndSubmitTxConfirmed as signAndSubmitTxConfirmedFn,\n signAndSubmitTxConfirmedWithSlot as signAndSubmitTxConfirmedWithSlotFn,\n signAndSubmitPreparedTxConfirmedWithSlot as signAndSubmitPreparedTxConfirmedWithSlotFn,\n} from \"./context\";\nimport type { ConfirmedTransaction } from \"./context\";\nimport type { FaucetRequest, FaucetResponse } from \"./domain/faucet\";\nimport { Markets } from \"./domain/market\";\nimport { Metrics } from \"./domain/metrics\";\nimport { Notifications } from \"./domain/notification\";\nimport { Orders } from \"./domain/order\";\nimport { Orderbooks } from \"./domain/orderbook\";\nimport { Positions } from \"./domain/position\";\nimport { PriceHistoryClient } from \"./domain/price_history\";\nimport { Referrals } from \"./domain/referral\";\nimport { Trades } from \"./domain/trade\";\nimport { LightconeHttp, RetryPolicy, type CredentialRestorer } from \"./http\";\nimport { LightconeEnv, apiUrl, wsUrl, rpcUrl, programId as envProgramId } from \"./env\";\nimport { Privy } from \"./privy\";\nimport { Rpc } from \"./rpc\";\nimport { RpcFailoverState } from \"./rpcFailover\";\nimport { DepositSource, type OrderbookRules, type PubkeyStr } from \"./shared\";\nimport { type ExternalSigner, type SigningStrategy } from \"./shared/signing\";\nimport { WsClient, type WsConfig } from \"./ws\";\n\nclass AuthState {\n private credentialsValue: AuthCredentials | undefined;\n\n constructor(initial?: AuthCredentials) {\n this.credentialsValue = initial;\n }\n\n getCredentials(): AuthCredentials | undefined {\n return this.credentialsValue;\n }\n\n setCredentials(credentials: AuthCredentials | undefined): void {\n this.credentialsValue = credentials;\n }\n\n async clearCaches(): Promise<void> {\n // No caches to clear — decimals are derived locally from orderbook metadata.\n }\n}\n\nexport class LightconeClient implements ClientContext {\n readonly transactionResources?: V1ResourceConfig;\n readonly rpcFetch?: typeof fetch;\n readonly http: LightconeHttp;\n readonly programId: PublicKey;\n readonly primaryConnection?: Connection;\n readonly backupConnection?: Connection;\n readonly rpcFailoverState: RpcFailoverState;\n private depositSourceValue: DepositSource;\n private signingStrategyValue?: SigningStrategy;\n private transactionSponsorshipEnabledValue: boolean;\n private orderNonceValue: number | undefined;\n private readonly wsConfigValue: WsConfig;\n private readonly authStateStore: AuthState;\n readonly orderbookRulesCache: Map<string, Promise<OrderbookRules>>;\n\n /** @deprecated Use primaryConnection — kept for ClientContext compat. */\n get connection(): Connection | undefined {\n return this.primaryConnection;\n }\n\n constructor(params: {\n http: LightconeHttp;\n wsConfig: WsConfig;\n programId?: PublicKey;\n primaryConnection?: Connection;\n backupConnection?: Connection;\n rpcFailoverState?: RpcFailoverState;\n depositSource?: DepositSource;\n signingStrategy?: SigningStrategy;\n transactionSponsorshipEnabled?: boolean;\n transactionResources?: V1ResourceConfig;\n rpcFetch?: typeof fetch;\n orderNonce?: number;\n authCredentials?: AuthCredentials;\n authState?: AuthState;\n orderbookRulesCache?: Map<string, Promise<OrderbookRules>>;\n }) {\n if (params.transactionResources) validateV1Resources(params.transactionResources);\n this.transactionResources = params.transactionResources\n ? Object.freeze({ ...params.transactionResources })\n : undefined;\n this.rpcFetch = params.rpcFetch;\n this.http = params.http;\n this.programId = params.programId ?? envProgramId(LightconeEnv.Prod);\n this.primaryConnection = params.primaryConnection;\n this.backupConnection = params.backupConnection;\n this.rpcFailoverState =\n params.rpcFailoverState ?? new RpcFailoverState();\n this.depositSourceValue = params.depositSource ?? DepositSource.Global;\n this.signingStrategyValue = params.signingStrategy;\n this.transactionSponsorshipEnabledValue =\n params.transactionSponsorshipEnabled ?? false;\n this.orderNonceValue = params.orderNonce;\n this.wsConfigValue = params.wsConfig;\n this.authStateStore =\n params.authState ??\n new AuthState(params.authCredentials);\n this.orderbookRulesCache = params.orderbookRulesCache ?? new Map();\n }\n\n // ── Deposit source ──────────────────────────────────────────────────\n\n get depositSource(): DepositSource {\n return this.depositSourceValue;\n }\n\n setDepositSource(source: DepositSource): void {\n this.depositSourceValue = source;\n }\n\n // ── Signing strategy ────────────────────────────────────────────────\n\n get signingStrategy(): SigningStrategy | undefined {\n return this.signingStrategyValue;\n }\n\n /**\n * Cached authenticated identity shared by domain sub-clients.\n *\n * This is distinct from the HTTP cookie token and may be expired; fund-moving\n * operations must re-check its lifetime and wallet before signing.\n */\n get authCredentials(): AuthCredentials | undefined {\n return this.authStateStore.getCredentials();\n }\n\n setSigningStrategy(strategy: SigningStrategy): void {\n this.signingStrategyValue = strategy;\n }\n\n clearSigningStrategy(): void {\n this.signingStrategyValue = undefined;\n }\n\n /** Return the client-wide trusted assertion that an external sponsor pays fees. */\n get transactionSponsorshipEnabled(): boolean {\n return this.transactionSponsorshipEnabledValue;\n }\n\n /** Replace the Transaction Sponsorship Capability for subsequent submissions. */\n setTransactionSponsorshipEnabled(enabled: boolean): void {\n this.transactionSponsorshipEnabledValue = enabled;\n }\n\n // ── Nonce cache ──────────────────────────────────────────────────────\n\n orderNonce(): number | undefined {\n return this.orderNonceValue;\n }\n\n setOrderNonce(nonce: number): void {\n this.orderNonceValue = nonce;\n }\n\n clearOrderNonce(): void {\n this.orderNonceValue = undefined;\n }\n\n // ── Auth token (cookie) ─────────────────────────────────────────────\n\n /**\n * Get the current `lightcone-token` cookie value, if any. Populated by the SDK\n * after a successful login, then attached on every authed request. Useful\n * for forwarding the token through the `*WithCookies` methods, or\n * persisting the session across processes.\n */\n async authToken(): Promise<string | undefined> {\n return this.http.authTokenRef()();\n }\n\n /**\n * Clear the cached `lightcone-token`. Subsequent authed calls will go out\n * without a `Cookie` header (and 401) unless they use a\n * `*WithCookies` variant.\n */\n async clearAuthToken(): Promise<void> {\n await this.http.clearAuthToken();\n }\n\n /**\n * Register the credential restorer consulted when a request fails with\n * HTTP 401: it attempts to restore credentials (e.g. refresh the app's\n * auth session so the auth cookie is valid again); on success the\n * transport replays the request once IF it declared itself retry-safe\n * (RetryPolicy.None mutations are never auto-replayed). See {@link CredentialRestorer}.\n * Without a restorer, 401s propagate to callers unchanged.\n *\n * Common use: set once at app startup, alongside the signing strategy.\n */\n setCredentialRestorer(restorer: CredentialRestorer): void {\n this.http.setCredentialRestorer(restorer);\n }\n\n /** Remove the credential restorer (e.g. in tests); 401s propagate again. */\n clearCredentialRestorer(): void {\n this.http.clearCredentialRestorer();\n }\n\n /** Fetch a fresh context with configured v1 transaction resources. */\n transactionContext(): Promise<V1TransactionContext> {\n return this.rpc().transactionContext();\n }\n\n /** Fetch a fresh context with explicit limits and total priority fee lamports. */\n transactionContextWithResources(\n resources: V1ResourceConfig\n ): Promise<V1TransactionContext> {\n return this.rpc().transactionContextWithResources(resources);\n }\n\n // ── Transaction signing + submission ────────────────────────────────\n\n async signAndSubmitTx(tx: V1Transaction): Promise<string> {\n return signAndSubmitTxFn(this, tx);\n }\n\n /**\n * Sign and submit a transaction, then wait until it reaches `confirmed`\n * commitment on-chain. Prefer this over {@link signAndSubmitTx} when a\n * follow-up transaction depends on this one's state.\n */\n async signAndSubmitTxConfirmed(tx: V1Transaction): Promise<string> {\n return signAndSubmitTxConfirmedFn(this, tx);\n }\n\n /** Sign, submit, confirm, and return the transaction's processing slot. */\n async signAndSubmitTxConfirmedWithSlot(\n tx: V1Transaction\n ): Promise<ConfirmedTransaction> {\n return signAndSubmitTxConfirmedWithSlotFn(this, tx);\n }\n\n /**\n * Sign, submit, and confirm a fee-prepared transaction without replacing its\n * message. Privy and wallet-adapter message mutation are rejected. A confirmation\n * timeout leaves the outcome unknown; inspect authoritative state before retrying.\n */\n async signAndSubmitPreparedTxConfirmedWithSlot(\n tx: V1Transaction\n ): Promise<ConfirmedTransaction> {\n return signAndSubmitPreparedTxConfirmedWithSlotFn(this, tx);\n }\n\n static builder(): LightconeClientBuilder {\n return new LightconeClientBuilder();\n }\n\n // ── Sub-client accessors ─────────────────────────────────────────────\n\n markets(): Markets {\n return new Markets(this);\n }\n\n orderbooks(): Orderbooks {\n return new Orderbooks(this);\n }\n\n orders(): Orders {\n return new Orders(this);\n }\n\n positions(): Positions {\n return new Positions(this);\n }\n\n trades(): Trades {\n return new Trades(this);\n }\n\n priceHistory(): PriceHistoryClient {\n return new PriceHistoryClient(this);\n }\n\n notifications(): Notifications {\n return new Notifications(this);\n }\n\n /**\n * Metrics sub-client — platform / market / orderbook / category / deposit-token\n * volume metrics, market leaderboard, and time-series history.\n */\n metrics(): Metrics {\n return new Metrics(this);\n }\n\n /**\n * Request testnet SOL and whitelisted deposit tokens for a wallet.\n *\n * Only active on environments whose backend has the faucet enabled (typically\n * local and staging).\n *\n * `POST /api/claim`\n */\n async claim(walletAddress: PubkeyStr): Promise<FaucetResponse> {\n const url = `${this.http.baseUrl()}/api/claim`;\n return this.http.post<FaucetResponse, FaucetRequest>(\n url,\n { wallet_address: walletAddress },\n RetryPolicy.None\n );\n }\n\n auth(): Auth {\n return new Auth({\n http: this.http,\n authState: this.authStateStore,\n });\n }\n\n privy(): Privy {\n return new Privy(this);\n }\n\n referrals(): Referrals {\n return new Referrals(this);\n }\n\n rpc(): Rpc {\n return new Rpc(this);\n }\n\n wsConfig(): WsConfig {\n return this.wsConfigValue;\n }\n\n ws(): WsClient {\n return new WsClient(this.wsConfigValue, this.http.authTokenRef());\n }\n\n /**\n * Return a client whose Transaction Sponsorship Capability starts at this value.\n * Later runtime changes remain local to each clone, matching other mutable settings.\n */\n clone(): LightconeClient {\n return new LightconeClient({\n http: this.http,\n wsConfig: { ...this.wsConfigValue },\n programId: this.programId,\n primaryConnection: this.primaryConnection\n ? new Connection(this.primaryConnection.rpcEndpoint, { commitment: \"confirmed\", fetch: this.rpcFetch })\n : undefined,\n backupConnection: this.backupConnection\n ? new Connection(this.backupConnection.rpcEndpoint, { commitment: \"confirmed\", fetch: this.rpcFetch })\n : undefined,\n rpcFailoverState: this.rpcFailoverState,\n depositSource: this.depositSourceValue,\n signingStrategy: this.signingStrategyValue,\n transactionSponsorshipEnabled: this.transactionSponsorshipEnabledValue,\n transactionResources: this.transactionResources,\n rpcFetch: this.rpcFetch,\n orderNonce: this.orderNonceValue,\n authState: this.authStateStore,\n orderbookRulesCache: this.orderbookRulesCache,\n });\n }\n}\n\nexport class LightconeClientBuilder {\n private baseUrlValue: string = apiUrl(LightconeEnv.Prod);\n private wsUrlValue: string = wsUrl(LightconeEnv.Prod);\n private authCredentials?: AuthCredentials;\n private programIdValue: PublicKey = envProgramId(LightconeEnv.Prod);\n private depositSourceValue: DepositSource = DepositSource.Global;\n private signingStrategyValue?: SigningStrategy;\n private transactionSponsorshipEnabledValue = false;\n private transactionResourcesValue?: V1ResourceConfig;\n private rpcFetchValue?: typeof fetch;\n private primaryRpcUrlValue?: string = rpcUrl(LightconeEnv.Prod);\n private backupRpcUrlValue?: string;\n\n /**\n * Set the deployment environment. Configures the API URL, WebSocket URL,\n * RPC URL, and program ID for the given environment.\n *\n * Individual URL overrides (e.g. `.baseUrl()`) take precedence when\n * called **after** `.env()`.\n */\n env(environment: LightconeEnv): LightconeClientBuilder {\n this.baseUrlValue = apiUrl(environment);\n this.wsUrlValue = wsUrl(environment);\n this.programIdValue = envProgramId(environment);\n this.primaryRpcUrlValue = rpcUrl(environment);\n return this;\n }\n\n baseUrl(url: string): LightconeClientBuilder {\n return this.withBaseUrl(url);\n }\n\n withBaseUrl(url: string): LightconeClientBuilder {\n this.baseUrlValue = url;\n return this;\n }\n\n wsUrl(url: string): LightconeClientBuilder {\n return this.withWsUrl(url);\n }\n\n withWsUrl(url: string): LightconeClientBuilder {\n this.wsUrlValue = url;\n return this;\n }\n\n auth(credentials: AuthCredentials): LightconeClientBuilder {\n return this.withAuth(credentials);\n }\n\n withAuth(credentials: AuthCredentials): LightconeClientBuilder {\n this.authCredentials = credentials;\n return this;\n }\n\n programId(id: PublicKey): LightconeClientBuilder {\n this.programIdValue = id;\n return this;\n }\n\n depositSource(source: DepositSource): LightconeClientBuilder {\n this.depositSourceValue = source;\n return this;\n }\n\n nativeSigner(keypair: Keypair): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"native\", keypair };\n return this;\n }\n\n externalSigner(signer: ExternalSigner): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"walletAdapter\", signer };\n return this;\n }\n\n privyWalletId(\n walletId: string,\n walletAddress?: string\n ): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"privy\", walletId, walletAddress };\n return this;\n }\n\n /** Set the initial trusted Transaction Sponsorship Capability; defaults to false. */\n transactionSponsorship(enabled: boolean): LightconeClientBuilder {\n this.transactionSponsorshipEnabledValue = enabled;\n return this;\n }\n\n /** Set explicit v1 limits and total priority fee lamports for fluent builders and SOL plans. */\n transactionResources(resources: V1ResourceConfig): LightconeClientBuilder {\n validateV1Resources(resources);\n this.transactionResourcesValue = Object.freeze({ ...resources });\n return this;\n }\n\n /** Set the one-attempt fetch transport for v1 RPC, for example to add RPC authentication headers. */\n rpcFetch(transport: typeof fetch): LightconeClientBuilder {\n this.rpcFetchValue = transport;\n return this;\n }\n\n rpcUrl(url: string): LightconeClientBuilder {\n this.primaryRpcUrlValue = url;\n return this;\n }\n\n /** Set a backup Solana RPC URL for automatic failover. */\n backupRpcUrl(url: string): LightconeClientBuilder {\n this.backupRpcUrlValue = url;\n return this;\n }\n\n build(): LightconeClient {\n return new LightconeClient({\n http: new LightconeHttp(this.baseUrlValue),\n wsConfig: {\n url: this.wsUrlValue,\n reconnect: true,\n maxReconnectAttempts: 10,\n baseReconnectDelayMs: 1_000,\n pingIntervalMs: 30_000,\n pongTimeoutMs: 10_000,\n },\n programId: this.programIdValue,\n depositSource: this.depositSourceValue,\n signingStrategy: this.signingStrategyValue,\n transactionSponsorshipEnabled: this.transactionSponsorshipEnabledValue,\n primaryConnection: this.primaryRpcUrlValue\n ? new Connection(this.primaryRpcUrlValue, { commitment: \"confirmed\", fetch: this.rpcFetchValue })\n : undefined,\n backupConnection: this.backupRpcUrlValue\n ? new Connection(this.backupRpcUrlValue, { commitment: \"confirmed\", fetch: this.rpcFetchValue })\n : undefined,\n transactionResources: this.transactionResourcesValue,\n rpcFetch: this.rpcFetchValue,\n authCredentials: this.authCredentials,\n });\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n V1Transaction,\n validateV1Resources,\n type V1ResourceConfig,\n type V1TransactionContext,\n} from \"./program/transaction\";\nimport { Connection, Keypair, PublicKey } from \"@solana/web3.js\";\nimport { Auth, type AuthCredentials } from \"./auth\";\nimport type { ClientContext } from \"./context\";\nimport {\n signAndSubmitTx as signAndSubmitTxFn,\n signAndSubmitTxConfirmed as signAndSubmitTxConfirmedFn,\n signAndSubmitTxConfirmedWithSlot as signAndSubmitTxConfirmedWithSlotFn,\n signAndSubmitPreparedTxConfirmedWithSlot as signAndSubmitPreparedTxConfirmedWithSlotFn,\n} from \"./context\";\nimport type { ConfirmedTransaction } from \"./context\";\nimport type { FaucetRequest, FaucetResponse } from \"./domain/faucet\";\nimport { Markets } from \"./domain/market\";\nimport { Metrics } from \"./domain/metrics\";\nimport { Notifications } from \"./domain/notification\";\nimport { Orders } from \"./domain/order\";\nimport { Orderbooks } from \"./domain/orderbook\";\nimport { Positions } from \"./domain/position\";\nimport { PriceHistoryClient } from \"./domain/price_history\";\nimport { Referrals } from \"./domain/referral\";\nimport { Trades } from \"./domain/trade\";\nimport { LightconeHttp, RetryPolicy, type CredentialRestorer } from \"./http\";\nimport { LightconeEnv, apiUrl, wsUrl, rpcUrl, programId as envProgramId } from \"./env\";\nimport { Privy } from \"./privy\";\nimport { Rpc } from \"./rpc\";\nimport { RpcFailoverState } from \"./rpcFailover\";\nimport { DepositSource, type OrderbookRules, type PubkeyStr } from \"./shared\";\nimport { type ExternalSigner, type SigningStrategy } from \"./shared/signing\";\nimport { WsClient, type WsConfig } from \"./ws\";\n\nclass AuthState {\n private credentialsValue: AuthCredentials | undefined;\n\n constructor(initial?: AuthCredentials) {\n this.credentialsValue = initial;\n }\n\n getCredentials(): AuthCredentials | undefined {\n return this.credentialsValue;\n }\n\n setCredentials(credentials: AuthCredentials | undefined): void {\n this.credentialsValue = credentials;\n }\n\n async clearCaches(): Promise<void> {\n // No caches to clear — decimals are derived locally from orderbook metadata.\n }\n}\n\nexport class LightconeClient implements ClientContext {\n readonly transactionResources?: V1ResourceConfig;\n readonly rpcFetch?: typeof fetch;\n readonly http: LightconeHttp;\n readonly programId: PublicKey;\n readonly primaryConnection?: Connection;\n readonly backupConnection?: Connection;\n readonly rpcFailoverState: RpcFailoverState;\n private depositSourceValue: DepositSource;\n private signingStrategyValue?: SigningStrategy;\n private transactionSponsorshipEnabledValue: boolean;\n private orderNonceValue: number | undefined;\n private readonly wsConfigValue: WsConfig;\n private readonly authStateStore: AuthState;\n readonly orderbookRulesCache: Map<string, Promise<OrderbookRules>>;\n\n /** @deprecated Use primaryConnection — kept for ClientContext compat. */\n get connection(): Connection | undefined {\n return this.primaryConnection;\n }\n\n constructor(params: {\n http: LightconeHttp;\n wsConfig: WsConfig;\n programId?: PublicKey;\n primaryConnection?: Connection;\n backupConnection?: Connection;\n rpcFailoverState?: RpcFailoverState;\n depositSource?: DepositSource;\n signingStrategy?: SigningStrategy;\n transactionSponsorshipEnabled?: boolean;\n transactionResources?: V1ResourceConfig;\n rpcFetch?: typeof fetch;\n orderNonce?: number;\n authCredentials?: AuthCredentials;\n authState?: AuthState;\n orderbookRulesCache?: Map<string, Promise<OrderbookRules>>;\n }) {\n if (params.transactionResources) validateV1Resources(params.transactionResources);\n this.transactionResources = params.transactionResources\n ? Object.freeze({ ...params.transactionResources })\n : undefined;\n this.rpcFetch = params.rpcFetch;\n this.http = params.http;\n this.programId = params.programId ?? envProgramId(LightconeEnv.Prod);\n this.primaryConnection = params.primaryConnection;\n this.backupConnection = params.backupConnection;\n this.rpcFailoverState =\n params.rpcFailoverState ?? new RpcFailoverState();\n this.depositSourceValue = params.depositSource ?? DepositSource.Global;\n this.signingStrategyValue = params.signingStrategy;\n this.transactionSponsorshipEnabledValue =\n params.transactionSponsorshipEnabled ?? false;\n this.orderNonceValue = params.orderNonce;\n this.wsConfigValue = params.wsConfig;\n this.authStateStore =\n params.authState ??\n new AuthState(params.authCredentials);\n this.orderbookRulesCache = params.orderbookRulesCache ?? new Map();\n }\n\n // ── Deposit source ──────────────────────────────────────────────────\n\n get depositSource(): DepositSource {\n return this.depositSourceValue;\n }\n\n setDepositSource(source: DepositSource): void {\n this.depositSourceValue = source;\n }\n\n // ── Signing strategy ────────────────────────────────────────────────\n\n get signingStrategy(): SigningStrategy | undefined {\n return this.signingStrategyValue;\n }\n\n /**\n * Cached authenticated identity shared by domain sub-clients.\n *\n * This is distinct from the HTTP cookie token and may be expired; fund-moving\n * operations must re-check its lifetime and wallet before signing.\n */\n get authCredentials(): AuthCredentials | undefined {\n return this.authStateStore.getCredentials();\n }\n\n setSigningStrategy(strategy: SigningStrategy): void {\n this.signingStrategyValue = strategy;\n }\n\n clearSigningStrategy(): void {\n this.signingStrategyValue = undefined;\n }\n\n /** Return the client-wide trusted assertion that an external sponsor pays fees. */\n get transactionSponsorshipEnabled(): boolean {\n return this.transactionSponsorshipEnabledValue;\n }\n\n /** Replace the Transaction Sponsorship Capability for subsequent submissions. */\n setTransactionSponsorshipEnabled(enabled: boolean): void {\n this.transactionSponsorshipEnabledValue = enabled;\n }\n\n // ── Nonce cache ──────────────────────────────────────────────────────\n\n orderNonce(): number | undefined {\n return this.orderNonceValue;\n }\n\n setOrderNonce(nonce: number): void {\n this.orderNonceValue = nonce;\n }\n\n clearOrderNonce(): void {\n this.orderNonceValue = undefined;\n }\n\n // ── Auth token (cookie) ─────────────────────────────────────────────\n\n /**\n * Get the current `lightcone-token` cookie value, if any. Populated by the SDK\n * after a successful login, then attached on every authed request. Useful\n * for forwarding the token through the `*WithCookies` methods, or\n * persisting the session across processes.\n */\n async authToken(): Promise<string | undefined> {\n return this.http.authTokenRef()();\n }\n\n /**\n * Clear the cached `lightcone-token`. Subsequent authed calls will go out\n * without a `Cookie` header (and 401) unless they use a\n * `*WithCookies` variant.\n */\n async clearAuthToken(): Promise<void> {\n await this.http.clearAuthToken();\n }\n\n /**\n * Register the credential restorer consulted when a request fails with\n * HTTP 401: it attempts to restore credentials (e.g. refresh the app's\n * auth session so the auth cookie is valid again); on success the\n * transport replays the request once IF it declared itself retry-safe\n * (RetryPolicy.None mutations are never auto-replayed). See {@link CredentialRestorer}.\n * Without a restorer, 401s propagate to callers unchanged.\n *\n * Common use: set once at app startup, alongside the signing strategy.\n */\n setCredentialRestorer(restorer: CredentialRestorer): void {\n this.http.setCredentialRestorer(restorer);\n }\n\n /** Remove the credential restorer (e.g. in tests); 401s propagate again. */\n clearCredentialRestorer(): void {\n this.http.clearCredentialRestorer();\n }\n\n /** Fetch a fresh context with configured v1 transaction resources. */\n transactionContext(): Promise<V1TransactionContext> {\n return this.rpc().transactionContext();\n }\n\n /** Fetch a fresh context with explicit limits and total priority fee lamports. */\n transactionContextWithResources(\n resources: V1ResourceConfig\n ): Promise<V1TransactionContext> {\n return this.rpc().transactionContextWithResources(resources);\n }\n\n // ── Transaction signing + submission ────────────────────────────────\n\n async signAndSubmitTx(tx: V1Transaction): Promise<string> {\n return signAndSubmitTxFn(this, tx);\n }\n\n /**\n * Sign and submit a transaction, then wait until it reaches `confirmed`\n * commitment on-chain. Prefer this over {@link signAndSubmitTx} when a\n * follow-up transaction depends on this one's state.\n */\n async signAndSubmitTxConfirmed(tx: V1Transaction): Promise<string> {\n return signAndSubmitTxConfirmedFn(this, tx);\n }\n\n /** Sign, submit, confirm, and return the transaction's processing slot. */\n async signAndSubmitTxConfirmedWithSlot(\n tx: V1Transaction\n ): Promise<ConfirmedTransaction> {\n return signAndSubmitTxConfirmedWithSlotFn(this, tx);\n }\n\n /**\n * Sign, submit, and confirm a fee-prepared transaction without replacing its\n * message. Privy and wallet-adapter message mutation are rejected. A confirmation\n * timeout leaves the outcome unknown; inspect authoritative state before retrying.\n */\n async signAndSubmitPreparedTxConfirmedWithSlot(\n tx: V1Transaction\n ): Promise<ConfirmedTransaction> {\n return signAndSubmitPreparedTxConfirmedWithSlotFn(this, tx);\n }\n\n static builder(): LightconeClientBuilder {\n return new LightconeClientBuilder();\n }\n\n // ── Sub-client accessors ─────────────────────────────────────────────\n\n markets(): Markets {\n return new Markets(this);\n }\n\n orderbooks(): Orderbooks {\n return new Orderbooks(this);\n }\n\n orders(): Orders {\n return new Orders(this);\n }\n\n positions(): Positions {\n return new Positions(this);\n }\n\n trades(): Trades {\n return new Trades(this);\n }\n\n priceHistory(): PriceHistoryClient {\n return new PriceHistoryClient(this);\n }\n\n notifications(): Notifications {\n return new Notifications(this);\n }\n\n /**\n * Metrics sub-client — platform / market / orderbook / category / deposit-token\n * volume metrics, market leaderboard, and time-series history.\n */\n metrics(): Metrics {\n return new Metrics(this);\n }\n\n /**\n * Request testnet SOL and whitelisted deposit tokens for a wallet.\n *\n * Only active on environments whose backend has the faucet enabled (typically\n * local and staging).\n *\n * `POST /api/claim`\n */\n async claim(walletAddress: PubkeyStr): Promise<FaucetResponse> {\n const url = `${this.http.baseUrl()}/api/claim`;\n return this.http.post<FaucetResponse, FaucetRequest>(\n url,\n { wallet_address: walletAddress },\n RetryPolicy.None\n );\n }\n\n auth(): Auth {\n return new Auth({\n http: this.http,\n authState: this.authStateStore,\n });\n }\n\n privy(): Privy {\n return new Privy(this);\n }\n\n referrals(): Referrals {\n return new Referrals(this);\n }\n\n rpc(): Rpc {\n return new Rpc(this);\n }\n\n wsConfig(): WsConfig {\n return this.wsConfigValue;\n }\n\n ws(): WsClient {\n return new WsClient(this.wsConfigValue, this.http.authTokenRef());\n }\n\n /**\n * Return a client whose Transaction Sponsorship Capability starts at this value.\n * Later runtime changes remain local to each clone, matching other mutable settings.\n */\n clone(): LightconeClient {\n return new LightconeClient({\n http: this.http,\n wsConfig: { ...this.wsConfigValue },\n programId: this.programId,\n primaryConnection: this.primaryConnection\n ? new Connection(this.primaryConnection.rpcEndpoint, { commitment: \"confirmed\", fetch: this.rpcFetch })\n : undefined,\n backupConnection: this.backupConnection\n ? new Connection(this.backupConnection.rpcEndpoint, { commitment: \"confirmed\", fetch: this.rpcFetch })\n : undefined,\n rpcFailoverState: this.rpcFailoverState,\n depositSource: this.depositSourceValue,\n signingStrategy: this.signingStrategyValue,\n transactionSponsorshipEnabled: this.transactionSponsorshipEnabledValue,\n transactionResources: this.transactionResources,\n rpcFetch: this.rpcFetch,\n orderNonce: this.orderNonceValue,\n authState: this.authStateStore,\n orderbookRulesCache: this.orderbookRulesCache,\n });\n }\n}\n\nexport class LightconeClientBuilder {\n private baseUrlValue: string = apiUrl(LightconeEnv.Prod);\n private wsUrlValue: string = wsUrl(LightconeEnv.Prod);\n private authCredentials?: AuthCredentials;\n private programIdValue: PublicKey = envProgramId(LightconeEnv.Prod);\n private depositSourceValue: DepositSource = DepositSource.Global;\n private signingStrategyValue?: SigningStrategy;\n private transactionSponsorshipEnabledValue = false;\n private transactionResourcesValue?: V1ResourceConfig;\n private rpcFetchValue?: typeof fetch;\n private primaryRpcUrlValue?: string = rpcUrl(LightconeEnv.Prod);\n private backupRpcUrlValue?: string;\n private apiKeyValue?: string;\n\n /**\n * Set the deployment environment. Configures the API URL, WebSocket URL,\n * RPC URL, and program ID for the given environment.\n *\n * Individual URL overrides (e.g. `.baseUrl()`) take precedence when\n * called **after** `.env()`.\n */\n env(environment: LightconeEnv): LightconeClientBuilder {\n this.baseUrlValue = apiUrl(environment);\n this.wsUrlValue = wsUrl(environment);\n this.programIdValue = envProgramId(environment);\n this.primaryRpcUrlValue = rpcUrl(environment);\n return this;\n }\n\n baseUrl(url: string): LightconeClientBuilder {\n return this.withBaseUrl(url);\n }\n\n withBaseUrl(url: string): LightconeClientBuilder {\n this.baseUrlValue = url;\n return this;\n }\n\n /**\n * Set the API key sent as `x-lightcone-api-key` on submit, cancel, and cancel-all POST requests to\n * the API origin. Keep it server-side: it identifies an API Consumer, never\n * a user, and the SDK never logs it.\n */\n apiKey(key: string): LightconeClientBuilder {\n this.apiKeyValue = key;\n return this;\n }\n\n wsUrl(url: string): LightconeClientBuilder {\n return this.withWsUrl(url);\n }\n\n withWsUrl(url: string): LightconeClientBuilder {\n this.wsUrlValue = url;\n return this;\n }\n\n auth(credentials: AuthCredentials): LightconeClientBuilder {\n return this.withAuth(credentials);\n }\n\n withAuth(credentials: AuthCredentials): LightconeClientBuilder {\n this.authCredentials = credentials;\n return this;\n }\n\n programId(id: PublicKey): LightconeClientBuilder {\n this.programIdValue = id;\n return this;\n }\n\n depositSource(source: DepositSource): LightconeClientBuilder {\n this.depositSourceValue = source;\n return this;\n }\n\n nativeSigner(keypair: Keypair): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"native\", keypair };\n return this;\n }\n\n externalSigner(signer: ExternalSigner): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"walletAdapter\", signer };\n return this;\n }\n\n privyWalletId(\n walletId: string,\n walletAddress?: string\n ): LightconeClientBuilder {\n this.signingStrategyValue = { type: \"privy\", walletId, walletAddress };\n return this;\n }\n\n /** Set the initial trusted Transaction Sponsorship Capability; defaults to false. */\n transactionSponsorship(enabled: boolean): LightconeClientBuilder {\n this.transactionSponsorshipEnabledValue = enabled;\n return this;\n }\n\n /** Set explicit v1 limits and total priority fee lamports for fluent builders and SOL plans. */\n transactionResources(resources: V1ResourceConfig): LightconeClientBuilder {\n validateV1Resources(resources);\n this.transactionResourcesValue = Object.freeze({ ...resources });\n return this;\n }\n\n /** Set the one-attempt fetch transport for v1 RPC, for example to add RPC authentication headers. */\n rpcFetch(transport: typeof fetch): LightconeClientBuilder {\n this.rpcFetchValue = transport;\n return this;\n }\n\n rpcUrl(url: string): LightconeClientBuilder {\n this.primaryRpcUrlValue = url;\n return this;\n }\n\n /** Set a backup Solana RPC URL for automatic failover. */\n backupRpcUrl(url: string): LightconeClientBuilder {\n this.backupRpcUrlValue = url;\n return this;\n }\n\n build(): LightconeClient {\n return new LightconeClient({\n http: new LightconeHttp(this.baseUrlValue, { apiKey: this.apiKeyValue }),\n wsConfig: {\n url: this.wsUrlValue,\n reconnect: true,\n maxReconnectAttempts: 10,\n baseReconnectDelayMs: 1_000,\n pingIntervalMs: 30_000,\n pongTimeoutMs: 10_000,\n },\n programId: this.programIdValue,\n depositSource: this.depositSourceValue,\n signingStrategy: this.signingStrategyValue,\n transactionSponsorshipEnabled: this.transactionSponsorshipEnabledValue,\n primaryConnection: this.primaryRpcUrlValue\n ? new Connection(this.primaryRpcUrlValue, { commitment: \"confirmed\", fetch: this.rpcFetchValue })\n : undefined,\n backupConnection: this.backupRpcUrlValue\n ? new Connection(this.backupRpcUrlValue, { commitment: \"confirmed\", fetch: this.rpcFetchValue })\n : undefined,\n transactionResources: this.transactionResourcesValue,\n rpcFetch: this.rpcFetchValue,\n authCredentials: this.authCredentials,\n });\n }\n}\n"]}
@@ -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"]}