@lightconexyz/lightcone-sdk 0.2.43 → 0.4.0

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 (67) hide show
  1. package/README.md +22 -37
  2. package/dist/client.d.ts +19 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +49 -0
  5. package/dist/client.js.map +1 -1
  6. package/dist/context.d.ts +7 -0
  7. package/dist/context.d.ts.map +1 -1
  8. package/dist/context.js +79 -0
  9. package/dist/context.js.map +1 -1
  10. package/dist/domain/market/builders.d.ts +37 -0
  11. package/dist/domain/market/builders.d.ts.map +1 -0
  12. package/dist/domain/market/builders.js +114 -0
  13. package/dist/domain/market/builders.js.map +1 -0
  14. package/dist/domain/market/client.d.ts +3 -0
  15. package/dist/domain/market/client.d.ts.map +1 -1
  16. package/dist/domain/market/client.js +8 -0
  17. package/dist/domain/market/client.js.map +1 -1
  18. package/dist/domain/market/index.d.ts +1 -0
  19. package/dist/domain/market/index.d.ts.map +1 -1
  20. package/dist/domain/market/index.js +1 -0
  21. package/dist/domain/market/index.js.map +1 -1
  22. package/dist/domain/order/client.d.ts +8 -1
  23. package/dist/domain/order/client.d.ts.map +1 -1
  24. package/dist/domain/order/client.js +109 -0
  25. package/dist/domain/order/client.js.map +1 -1
  26. package/dist/domain/order/wire.d.ts +15 -0
  27. package/dist/domain/order/wire.d.ts.map +1 -1
  28. package/dist/domain/order/wire.js.map +1 -1
  29. package/dist/domain/position/builders.d.ts +179 -0
  30. package/dist/domain/position/builders.d.ts.map +1 -0
  31. package/dist/domain/position/builders.js +501 -0
  32. package/dist/domain/position/builders.js.map +1 -0
  33. package/dist/domain/position/client.d.ts +15 -1
  34. package/dist/domain/position/client.d.ts.map +1 -1
  35. package/dist/domain/position/client.js +90 -0
  36. package/dist/domain/position/client.js.map +1 -1
  37. package/dist/domain/position/index.d.ts +1 -0
  38. package/dist/domain/position/index.d.ts.map +1 -1
  39. package/dist/domain/position/index.js +1 -0
  40. package/dist/domain/position/index.js.map +1 -1
  41. package/dist/error.d.ts +4 -1
  42. package/dist/error.d.ts.map +1 -1
  43. package/dist/error.js +9 -0
  44. package/dist/error.js.map +1 -1
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +4 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/prelude.d.ts +5 -2
  50. package/dist/prelude.d.ts.map +1 -1
  51. package/dist/prelude.js +16 -1
  52. package/dist/prelude.js.map +1 -1
  53. package/dist/privy/index.js +25 -25
  54. package/dist/privy/index.js.map +1 -1
  55. package/dist/program/envelope.d.ts +20 -15
  56. package/dist/program/envelope.d.ts.map +1 -1
  57. package/dist/program/envelope.js +99 -31
  58. package/dist/program/envelope.js.map +1 -1
  59. package/dist/shared/index.d.ts +1 -0
  60. package/dist/shared/index.d.ts.map +1 -1
  61. package/dist/shared/index.js +3 -1
  62. package/dist/shared/index.js.map +1 -1
  63. package/dist/shared/signing.d.ts +17 -0
  64. package/dist/shared/signing.d.ts.map +1 -0
  65. package/dist/shared/signing.js +13 -0
  66. package/dist/shared/signing.js.map +1 -0
  67. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/domain/market/builders.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublicKey, Transaction, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { signAndSubmitTx } from \"../../context\";\nimport { SdkError } from \"../../error\";\nimport {\n buildMintCompleteSetIx,\n buildMergeCompleteSetIx,\n} from \"../../program/instructions\";\n\nfunction requireField<T>(value: T | undefined, field: string): T {\n if (value === undefined) {\n throw SdkError.validation(`${field} is required`);\n }\n return value;\n}\n\n// ─── MintCompleteSetBuilder ─────────────────────────────────────────────────\n\nexport class MintCompleteSetBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n numOutcomes(n: number): this {\n this.numOutcomesValue = n;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n\n return buildMintCompleteSetIx(\n { user, market, depositMint, amount },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n\n// ─── MergeCompleteSetBuilder ────────────────────────────────────────────────\n\nexport class MergeCompleteSetBuilder {\n private readonly client: ClientContext;\n private userValue?: PublicKey;\n private marketValue?: PublicKey;\n private mintValue?: PublicKey;\n private amountValue?: bigint;\n private numOutcomesValue?: number;\n\n constructor(client: ClientContext) {\n this.client = client;\n }\n\n user(user: PublicKey): this {\n this.userValue = user;\n return this;\n }\n\n market(market: PublicKey): this {\n this.marketValue = market;\n return this;\n }\n\n mint(mint: PublicKey): this {\n this.mintValue = mint;\n return this;\n }\n\n amount(amount: bigint): this {\n this.amountValue = amount;\n return this;\n }\n\n numOutcomes(n: number): this {\n this.numOutcomesValue = n;\n return this;\n }\n\n buildIx(): TransactionInstruction {\n const user = requireField(this.userValue, \"user\");\n const market = requireField(this.marketValue, \"market\");\n const depositMint = requireField(this.mintValue, \"mint\");\n const amount = requireField(this.amountValue, \"amount\");\n const numOutcomes = requireField(this.numOutcomesValue, \"num_outcomes\");\n\n return buildMergeCompleteSetIx(\n { user, market, depositMint, amount },\n numOutcomes,\n this.client.programId,\n );\n }\n\n buildTx(): Transaction {\n const user = requireField(this.userValue, \"user\");\n const ix = this.buildIx();\n return new Transaction({ feePayer: user }).add(ix);\n }\n\n async signAndSubmit(): Promise<string> {\n const tx = this.buildTx();\n return signAndSubmitTx(this.client, tx);\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { Transaction, type PublicKey, type TransactionInstruction } from "@solana/web3.js";
2
2
  import type { ClientContext } from "../../context";
3
+ import { MintCompleteSetBuilder, MergeCompleteSetBuilder } from "./builders";
3
4
  import type { Market as ProgramMarket, MintCompleteSetParams, MergeCompleteSetParams } from "../../program/types";
4
5
  import { type Market } from "./index";
5
6
  import type { MarketSearchResult } from "./wire";
@@ -22,6 +23,8 @@ export declare class Markets {
22
23
  mergeCompleteSetIx(params: MergeCompleteSetParams, numOutcomes: number): TransactionInstruction;
23
24
  mintCompleteSetTx(params: MintCompleteSetParams, numOutcomes: number): Transaction;
24
25
  mergeCompleteSetTx(params: MergeCompleteSetParams, numOutcomes: number): Transaction;
26
+ mintCompleteSet(): MintCompleteSetBuilder;
27
+ mergeCompleteSet(): MergeCompleteSetBuilder;
25
28
  getOnchain(market: PublicKey): Promise<ProgramMarket>;
26
29
  getByIdOnchain(marketId: bigint): Promise<ProgramMarket>;
27
30
  nextId(): Promise<bigint>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/market/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAcnD,OAAO,KAAK,EACV,MAAM,IAAI,aAAa,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAyC,MAAM,QAAQ,CAAC;AAExF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAIlD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAMhC,iBAAiB,CACf,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM;IAIT,mBAAmB,CACjB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,EACtB,WAAW,EAAE,MAAM,GAClB,SAAS,EAAE;IAWR,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B5D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAOpE,QAAQ,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAU/C,iBAAiB,CACf,MAAM,EAAE,qBAAqB,EAC7B,WAAW,EAAE,MAAM,GAClB,sBAAsB;IAIzB,kBAAkB,CAChB,MAAM,EAAE,sBAAsB,EAC9B,WAAW,EAAE,MAAM,GAClB,sBAAsB;IAMzB,iBAAiB,CACf,MAAM,EAAE,qBAAqB,EAC7B,WAAW,EAAE,MAAM,GAClB,WAAW;IAKd,kBAAkB,CAChB,MAAM,EAAE,sBAAsB,EAC9B,WAAW,EAAE,MAAM,GAClB,WAAW;IAOR,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IASrD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKxD,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;CAMhC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/market/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAa7E,OAAO,KAAK,EACV,MAAM,IAAI,aAAa,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAyC,MAAM,QAAQ,CAAC;AAExF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAIlD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAMhC,iBAAiB,CACf,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM;IAIT,mBAAmB,CACjB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,EACtB,WAAW,EAAE,MAAM,GAClB,SAAS,EAAE;IAWR,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B5D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAOpE,QAAQ,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAU/C,iBAAiB,CACf,MAAM,EAAE,qBAAqB,EAC7B,WAAW,EAAE,MAAM,GAClB,sBAAsB;IAIzB,kBAAkB,CAChB,MAAM,EAAE,sBAAsB,EAC9B,WAAW,EAAE,MAAM,GAClB,sBAAsB;IAMzB,iBAAiB,CACf,MAAM,EAAE,qBAAqB,EAC7B,WAAW,EAAE,MAAM,GAClB,WAAW;IAKd,kBAAkB,CAChB,MAAM,EAAE,sBAAsB,EAC9B,WAAW,EAAE,MAAM,GAClB,WAAW;IAOd,eAAe,IAAI,sBAAsB;IAIzC,gBAAgB,IAAI,uBAAuB;IAMrC,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IASrD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKxD,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;CAMhC"}
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Markets = void 0;
37
37
  const web3_js_1 = require("@solana/web3.js");
38
38
  const context_1 = require("../../context");
39
+ const builders_1 = require("./builders");
39
40
  const error_1 = require("../../error");
40
41
  const http_1 = require("../../http");
41
42
  const instructions_1 = require("../../program/instructions");
@@ -132,6 +133,13 @@ class Markets {
132
133
  const ix = this.mergeCompleteSetIx(params, numOutcomes);
133
134
  return new web3_js_1.Transaction({ feePayer: params.user }).add(ix);
134
135
  }
136
+ // ── Builder factories ──────────────────────────────────────────────
137
+ mintCompleteSet() {
138
+ return new builders_1.MintCompleteSetBuilder(this.client);
139
+ }
140
+ mergeCompleteSet() {
141
+ return new builders_1.MergeCompleteSetBuilder(this.client);
142
+ }
135
143
  // ── On-chain account fetchers (require Connection) ──────────────────
136
144
  async getOnchain(market) {
137
145
  const connection = (0, context_1.requireConnection)(this.client);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/market/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction, type PublicKey, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { requireConnection } from \"../../context\";\nimport { SdkError } from \"../../error\";\nimport { RetryPolicy } from \"../../http\";\nimport {\n buildMintCompleteSetIx,\n buildMergeCompleteSetIx,\n} from \"../../program/instructions\";\nimport {\n getMarketPda,\n getAllConditionalMintPdas,\n} from \"../../program/pda\";\nimport { deserializeMarket as deserializeProgramMarket } from \"../../program/accounts\";\nimport { deriveConditionId } from \"../../program/utils\";\nimport type {\n Market as ProgramMarket,\n MintCompleteSetParams,\n MergeCompleteSetParams,\n} from \"../../program/types\";\nimport { marketFromWire } from \"./convert\";\nimport { Status, type Market } from \"./index\";\nimport type { MarketSearchResult, MarketsResponse, SingleMarketResponse } from \"./wire\";\n\nexport interface MarketsResult {\n markets: Market[];\n validationErrors: string[];\n}\n\nexport class Markets {\n constructor(private readonly client: ClientContext) {}\n\n // ── PDA helpers ──────────────────────────────────────────────────────\n\n pda(marketId: bigint): PublicKey {\n return getMarketPda(marketId, this.client.programId)[0];\n }\n\n // ── Market helpers ───────────────────────────────────────────────────\n\n deriveConditionId(\n oracle: PublicKey,\n questionId: Buffer,\n numOutcomes: number\n ): Buffer {\n return deriveConditionId(oracle, questionId, numOutcomes);\n }\n\n getConditionalMints(\n market: PublicKey,\n depositMint: PublicKey,\n numOutcomes: number\n ): PublicKey[] {\n return getAllConditionalMintPdas(\n market,\n depositMint,\n numOutcomes,\n this.client.programId\n ).map(([mint]) => mint);\n }\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async get(cursor?: number, limit?: number): Promise<MarketsResult> {\n const search = new URLSearchParams();\n if (cursor !== undefined) search.set(\"cursor\", String(cursor));\n if (limit !== undefined) search.set(\"limit\", String(limit));\n\n const suffix = search.size > 0 ? `?${search.toString()}` : \"\";\n const url = `${this.client.http.baseUrl()}/api/markets${suffix}`;\n\n const response = await this.client.http.get<MarketsResponse>(url, RetryPolicy.Idempotent);\n const markets: Market[] = [];\n const validationErrors: string[] = [];\n\n for (const marketWire of response.markets) {\n try {\n const market = marketFromWire(marketWire);\n if (market.status === Status.Active || market.status === Status.Resolved) {\n markets.push(market);\n }\n } catch (error) {\n validationErrors.push(error instanceof Error ? error.message : String(error));\n }\n }\n\n return { markets, validationErrors };\n }\n\n async getBySlug(slug: string): Promise<Market> {\n const url = `${this.client.http.baseUrl()}/api/markets/by-slug/${encodeURIComponent(slug)}`;\n const response = await this.client.http.get<SingleMarketResponse>(url, RetryPolicy.Idempotent);\n\n try {\n return marketFromWire(response.market);\n } catch (error) {\n throw SdkError.validation(error instanceof Error ? error.message : String(error));\n }\n }\n\n async getByPubkey(pubkey: string): Promise<Market> {\n const url = `${this.client.http.baseUrl()}/api/markets/${encodeURIComponent(pubkey)}`;\n const response = await this.client.http.get<SingleMarketResponse>(url, RetryPolicy.Idempotent);\n\n try {\n return marketFromWire(response.market);\n } catch (error) {\n throw SdkError.validation(error instanceof Error ? error.message : String(error));\n }\n }\n\n async search(query: string, limit?: number): Promise<MarketSearchResult[]> {\n const encoded = encodeURIComponent(query);\n const suffix = limit !== undefined ? `?limit=${limit}` : \"\";\n const url = `${this.client.http.baseUrl()}/api/markets/search/by-query/${encoded}${suffix}`;\n return this.client.http.get<MarketSearchResult[]>(url, RetryPolicy.Idempotent);\n }\n\n async featured(): Promise<MarketSearchResult[]> {\n const url = `${this.client.http.baseUrl()}/api/markets/search/featured`;\n const result = await this.client.http.get<MarketSearchResult[]>(url, RetryPolicy.Idempotent);\n return result.filter(\n (item) => item.market_status === Status.Active || item.market_status === Status.Resolved\n );\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n mintCompleteSetIx(\n params: MintCompleteSetParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildMintCompleteSetIx(params, numOutcomes, this.client.programId);\n }\n\n mergeCompleteSetIx(\n params: MergeCompleteSetParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildMergeCompleteSetIx(params, numOutcomes, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n mintCompleteSetTx(\n params: MintCompleteSetParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.mintCompleteSetIx(params, numOutcomes);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n mergeCompleteSetTx(\n params: MergeCompleteSetParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.mergeCompleteSetIx(params, numOutcomes);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n // ── On-chain account fetchers (require Connection) ──────────────────\n\n async getOnchain(market: PublicKey): Promise<ProgramMarket> {\n const connection = requireConnection(this.client);\n const accountInfo = await connection.getAccountInfo(market);\n if (!accountInfo) {\n throw new Error(`Market not found at ${market.toBase58()}`);\n }\n return deserializeProgramMarket(accountInfo.data as Buffer);\n }\n\n async getByIdOnchain(marketId: bigint): Promise<ProgramMarket> {\n const marketPda = this.pda(marketId);\n return this.getOnchain(marketPda);\n }\n\n async nextId(): Promise<bigint> {\n const { Rpc } = await import(\"../../rpc\");\n const rpc = new Rpc(this.client);\n const exchange = await rpc.getExchange();\n return exchange.marketCount;\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/market/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction, type PublicKey, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { requireConnection } from \"../../context\";\nimport { MintCompleteSetBuilder, MergeCompleteSetBuilder } from \"./builders\";\nimport { SdkError } from \"../../error\";\nimport { RetryPolicy } from \"../../http\";\nimport {\n buildMintCompleteSetIx,\n buildMergeCompleteSetIx,\n} from \"../../program/instructions\";\nimport {\n getMarketPda,\n getAllConditionalMintPdas,\n} from \"../../program/pda\";\nimport { deserializeMarket as deserializeProgramMarket } from \"../../program/accounts\";\nimport { deriveConditionId } from \"../../program/utils\";\nimport type {\n Market as ProgramMarket,\n MintCompleteSetParams,\n MergeCompleteSetParams,\n} from \"../../program/types\";\nimport { marketFromWire } from \"./convert\";\nimport { Status, type Market } from \"./index\";\nimport type { MarketSearchResult, MarketsResponse, SingleMarketResponse } from \"./wire\";\n\nexport interface MarketsResult {\n markets: Market[];\n validationErrors: string[];\n}\n\nexport class Markets {\n constructor(private readonly client: ClientContext) {}\n\n // ── PDA helpers ──────────────────────────────────────────────────────\n\n pda(marketId: bigint): PublicKey {\n return getMarketPda(marketId, this.client.programId)[0];\n }\n\n // ── Market helpers ───────────────────────────────────────────────────\n\n deriveConditionId(\n oracle: PublicKey,\n questionId: Buffer,\n numOutcomes: number\n ): Buffer {\n return deriveConditionId(oracle, questionId, numOutcomes);\n }\n\n getConditionalMints(\n market: PublicKey,\n depositMint: PublicKey,\n numOutcomes: number\n ): PublicKey[] {\n return getAllConditionalMintPdas(\n market,\n depositMint,\n numOutcomes,\n this.client.programId\n ).map(([mint]) => mint);\n }\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async get(cursor?: number, limit?: number): Promise<MarketsResult> {\n const search = new URLSearchParams();\n if (cursor !== undefined) search.set(\"cursor\", String(cursor));\n if (limit !== undefined) search.set(\"limit\", String(limit));\n\n const suffix = search.size > 0 ? `?${search.toString()}` : \"\";\n const url = `${this.client.http.baseUrl()}/api/markets${suffix}`;\n\n const response = await this.client.http.get<MarketsResponse>(url, RetryPolicy.Idempotent);\n const markets: Market[] = [];\n const validationErrors: string[] = [];\n\n for (const marketWire of response.markets) {\n try {\n const market = marketFromWire(marketWire);\n if (market.status === Status.Active || market.status === Status.Resolved) {\n markets.push(market);\n }\n } catch (error) {\n validationErrors.push(error instanceof Error ? error.message : String(error));\n }\n }\n\n return { markets, validationErrors };\n }\n\n async getBySlug(slug: string): Promise<Market> {\n const url = `${this.client.http.baseUrl()}/api/markets/by-slug/${encodeURIComponent(slug)}`;\n const response = await this.client.http.get<SingleMarketResponse>(url, RetryPolicy.Idempotent);\n\n try {\n return marketFromWire(response.market);\n } catch (error) {\n throw SdkError.validation(error instanceof Error ? error.message : String(error));\n }\n }\n\n async getByPubkey(pubkey: string): Promise<Market> {\n const url = `${this.client.http.baseUrl()}/api/markets/${encodeURIComponent(pubkey)}`;\n const response = await this.client.http.get<SingleMarketResponse>(url, RetryPolicy.Idempotent);\n\n try {\n return marketFromWire(response.market);\n } catch (error) {\n throw SdkError.validation(error instanceof Error ? error.message : String(error));\n }\n }\n\n async search(query: string, limit?: number): Promise<MarketSearchResult[]> {\n const encoded = encodeURIComponent(query);\n const suffix = limit !== undefined ? `?limit=${limit}` : \"\";\n const url = `${this.client.http.baseUrl()}/api/markets/search/by-query/${encoded}${suffix}`;\n return this.client.http.get<MarketSearchResult[]>(url, RetryPolicy.Idempotent);\n }\n\n async featured(): Promise<MarketSearchResult[]> {\n const url = `${this.client.http.baseUrl()}/api/markets/search/featured`;\n const result = await this.client.http.get<MarketSearchResult[]>(url, RetryPolicy.Idempotent);\n return result.filter(\n (item) => item.market_status === Status.Active || item.market_status === Status.Resolved\n );\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n mintCompleteSetIx(\n params: MintCompleteSetParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildMintCompleteSetIx(params, numOutcomes, this.client.programId);\n }\n\n mergeCompleteSetIx(\n params: MergeCompleteSetParams,\n numOutcomes: number\n ): TransactionInstruction {\n return buildMergeCompleteSetIx(params, numOutcomes, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n mintCompleteSetTx(\n params: MintCompleteSetParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.mintCompleteSetIx(params, numOutcomes);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n mergeCompleteSetTx(\n params: MergeCompleteSetParams,\n numOutcomes: number\n ): Transaction {\n const ix = this.mergeCompleteSetIx(params, numOutcomes);\n return new Transaction({ feePayer: params.user }).add(ix);\n }\n\n // ── Builder factories ──────────────────────────────────────────────\n\n mintCompleteSet(): MintCompleteSetBuilder {\n return new MintCompleteSetBuilder(this.client);\n }\n\n mergeCompleteSet(): MergeCompleteSetBuilder {\n return new MergeCompleteSetBuilder(this.client);\n }\n\n // ── On-chain account fetchers (require Connection) ──────────────────\n\n async getOnchain(market: PublicKey): Promise<ProgramMarket> {\n const connection = requireConnection(this.client);\n const accountInfo = await connection.getAccountInfo(market);\n if (!accountInfo) {\n throw new Error(`Market not found at ${market.toBase58()}`);\n }\n return deserializeProgramMarket(accountInfo.data as Buffer);\n }\n\n async getByIdOnchain(marketId: bigint): Promise<ProgramMarket> {\n const marketPda = this.pda(marketId);\n return this.getOnchain(marketPda);\n }\n\n async nextId(): Promise<bigint> {\n const { Rpc } = await import(\"../../rpc\");\n const rpc = new Rpc(this.client);\n const exchange = await rpc.getExchange();\n return exchange.marketCount;\n }\n}\n"]}
@@ -2,6 +2,7 @@ import type { OrderBookId, PubkeyStr } from "../../shared";
2
2
  import type { OrderBookPair } from "../orderbook";
3
3
  import type { Outcome } from "./outcome";
4
4
  import type { ConditionalToken, DepositAsset, TokenMetadata } from "./tokens";
5
+ export * from "./builders";
5
6
  export * from "./client";
6
7
  export * from "./wire";
7
8
  export * from "./outcome";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/market/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,oBAAY,MAAM;IAChB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAahE;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC9C;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAMpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/market/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9E,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,oBAAY,MAAM;IAChB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAahE;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC9C;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAMpD"}
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.MarketValidationError = exports.Status = exports.tryMarketFromWire = exports.marketFromWire = void 0;
18
18
  exports.statusFromWire = statusFromWire;
19
+ __exportStar(require("./builders"), exports);
19
20
  __exportStar(require("./client"), exports);
20
21
  __exportStar(require("./wire"), exports);
21
22
  __exportStar(require("./outcome"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/market/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBA,wCAaC;AA1BD,2CAAyB;AACzB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,qCAA8D;AAArD,yGAAA,cAAc,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAE1C,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;IACrB,iCAAuB,CAAA;AACzB,CAAC,EALW,MAAM,sBAAN,MAAM,QAKjB;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,OAAO;YACjB,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,MAAM,CAAC,MAAM;YAChB,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,MAAM,CAAC,QAAQ;YAClB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,KAAK,MAAM,CAAC,SAAS;YACnB,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AA4BD,MAAa,qBAAsB,SAAQ,KAAK;IACrC,YAAY,CAAS;IACrB,OAAO,CAAW;IAE3B,YAAY,YAAoB,EAAE,OAAiB;QACjD,KAAK,CAAC,6BAA6B,YAAY,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAVD,sDAUC","sourcesContent":["import type { OrderBookId, PubkeyStr } from \"../../shared\";\nimport type { OrderBookPair } from \"../orderbook\";\nimport type { Outcome } from \"./outcome\";\nimport type { ConditionalToken, DepositAsset, TokenMetadata } from \"./tokens\";\n\nexport * from \"./client\";\nexport * from \"./wire\";\nexport * from \"./outcome\";\nexport * from \"./tokens\";\nexport { marketFromWire, tryMarketFromWire } from \"./convert\";\n\nexport enum Status {\n Pending = \"Pending\",\n Active = \"Active\",\n Resolved = \"Resolved\",\n Cancelled = \"Cancelled\",\n}\n\nexport function statusFromWire(value: string): Status | undefined {\n switch (value) {\n case Status.Pending:\n return Status.Pending;\n case Status.Active:\n return Status.Active;\n case Status.Resolved:\n return Status.Resolved;\n case Status.Cancelled:\n return Status.Cancelled;\n default:\n return undefined;\n }\n}\n\nexport interface Market {\n id: number;\n pubkey: PubkeyStr;\n name: string;\n bannerImageUrl: string;\n iconUrl: string;\n featuredRank?: number;\n volume: string;\n slug: string;\n status: Status;\n createdAt: Date;\n activatedAt?: Date;\n settledAt?: Date;\n winningOutcome?: number;\n description: string;\n definition: string;\n category?: string;\n tags: string[];\n depositAssets: DepositAsset[];\n conditionalTokens: ConditionalToken[];\n outcomes: Outcome[];\n orderbookPairs: OrderBookPair[];\n orderbookIds: OrderBookId[];\n tokenMetadata: Record<string, TokenMetadata>;\n}\n\nexport class MarketValidationError extends Error {\n readonly marketPubkey: string;\n readonly details: string[];\n\n constructor(marketPubkey: string, details: string[]) {\n super(`Market validation errors (${marketPubkey}): ${details.join(\"; \")}`);\n this.name = \"MarketValidationError\";\n this.marketPubkey = marketPubkey;\n this.details = details;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/market/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAmBA,wCAaC;AA3BD,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,qCAA8D;AAArD,yGAAA,cAAc,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAE1C,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;IACrB,iCAAuB,CAAA;AACzB,CAAC,EALW,MAAM,sBAAN,MAAM,QAKjB;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,OAAO;YACjB,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,MAAM,CAAC,MAAM;YAChB,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK,MAAM,CAAC,QAAQ;YAClB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,KAAK,MAAM,CAAC,SAAS;YACnB,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AA4BD,MAAa,qBAAsB,SAAQ,KAAK;IACrC,YAAY,CAAS;IACrB,OAAO,CAAW;IAE3B,YAAY,YAAoB,EAAE,OAAiB;QACjD,KAAK,CAAC,6BAA6B,YAAY,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAVD,sDAUC","sourcesContent":["import type { OrderBookId, PubkeyStr } from \"../../shared\";\nimport type { OrderBookPair } from \"../orderbook\";\nimport type { Outcome } from \"./outcome\";\nimport type { ConditionalToken, DepositAsset, TokenMetadata } from \"./tokens\";\n\nexport * from \"./builders\";\nexport * from \"./client\";\nexport * from \"./wire\";\nexport * from \"./outcome\";\nexport * from \"./tokens\";\nexport { marketFromWire, tryMarketFromWire } from \"./convert\";\n\nexport enum Status {\n Pending = \"Pending\",\n Active = \"Active\",\n Resolved = \"Resolved\",\n Cancelled = \"Cancelled\",\n}\n\nexport function statusFromWire(value: string): Status | undefined {\n switch (value) {\n case Status.Pending:\n return Status.Pending;\n case Status.Active:\n return Status.Active;\n case Status.Resolved:\n return Status.Resolved;\n case Status.Cancelled:\n return Status.Cancelled;\n default:\n return undefined;\n }\n}\n\nexport interface Market {\n id: number;\n pubkey: PubkeyStr;\n name: string;\n bannerImageUrl: string;\n iconUrl: string;\n featuredRank?: number;\n volume: string;\n slug: string;\n status: Status;\n createdAt: Date;\n activatedAt?: Date;\n settledAt?: Date;\n winningOutcome?: number;\n description: string;\n definition: string;\n category?: string;\n tags: string[];\n depositAssets: DepositAsset[];\n conditionalTokens: ConditionalToken[];\n outcomes: Outcome[];\n orderbookPairs: OrderBookPair[];\n orderbookIds: OrderBookId[];\n tokenMetadata: Record<string, TokenMetadata>;\n}\n\nexport class MarketValidationError extends Error {\n readonly marketPubkey: string;\n readonly details: string[];\n\n constructor(marketPubkey: string, details: string[]) {\n super(`Market validation errors (${marketPubkey}): ${details.join(\"; \")}`);\n this.name = \"MarketValidationError\";\n this.marketPubkey = marketPubkey;\n this.details = details;\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import { Keypair, Transaction, type PublicKey, type TransactionInstruction } from "@solana/web3.js";
2
2
  import type { ClientContext } from "../../context";
3
3
  import type { SignedOrder, BidOrderParams, AskOrderParams, OrderStatus as ProgramOrderStatus } from "../../program/types";
4
- import type { OrderBookId, PubkeyStr } from "../../shared";
4
+ import { type OrderBookId, type PubkeyStr } from "../../shared";
5
+ import { LimitOrderEnvelope, TriggerOrderEnvelope } from "../../program/envelope";
5
6
  import type { UserSnapshotBalance, UserSnapshotOrder } from "./wire";
6
7
  export interface CancelBody {
7
8
  order_hash: string;
@@ -49,6 +50,7 @@ export type PlaceResponse = ({
49
50
  status: "rejected";
50
51
  error?: string;
51
52
  details?: string;
53
+ reason?: string;
52
54
  order_hash?: string;
53
55
  remaining?: string;
54
56
  filled?: string;
@@ -181,6 +183,8 @@ export declare class Orders {
181
183
  constructor(client: ClientContext);
182
184
  statusPda(orderHash: Buffer): PublicKey;
183
185
  noncePda(user: PublicKey): PublicKey;
186
+ limitOrder(): LimitOrderEnvelope;
187
+ triggerOrder(): TriggerOrderEnvelope;
184
188
  generateCancelAllSalt(): string;
185
189
  submit(request: object): Promise<SubmitOrderResponse>;
186
190
  cancel(body: CancelBody): Promise<CancelSuccess>;
@@ -188,6 +192,9 @@ export declare class Orders {
188
192
  submitTrigger(request: object): Promise<TriggerOrderResponse>;
189
193
  cancelTrigger(body: CancelTriggerBody): Promise<CancelTriggerSuccess>;
190
194
  getUserOrders(walletAddress: string, limit?: number, cursor?: string): Promise<UserOrdersResponse>;
195
+ cancelOrderSigned(orderHash: string, maker: PubkeyStr): Promise<CancelSuccess>;
196
+ cancelAllSigned(userPubkey: PubkeyStr, timestamp: number, salt: string, orderbookId?: OrderBookId): Promise<CancelAllSuccess>;
197
+ cancelTriggerSigned(triggerOrderId: string, maker: PubkeyStr): Promise<CancelTriggerSuccess>;
191
198
  cancelOrderIx(maker: PublicKey, market: PublicKey, order: SignedOrder): TransactionInstruction;
192
199
  incrementNonceIx(user: PublicKey): TransactionInstruction;
193
200
  cancelOrderTx(maker: PublicKey, market: PublicKey, order: SignedOrder): Transaction;
@@ -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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"}
@@ -15,10 +15,14 @@ const web3_js_1 = require("@solana/web3.js");
15
15
  const context_1 = require("../../context");
16
16
  const error_1 = require("../../error");
17
17
  const http_1 = require("../../http");
18
+ const privy_1 = require("../../privy");
19
+ const signing_1 = require("../../shared/signing");
18
20
  const instructions_1 = require("../../program/instructions");
19
21
  const orders_1 = require("../../program/orders");
20
22
  const pda_1 = require("../../program/pda");
21
23
  const accounts_1 = require("../../program/accounts");
24
+ const shared_1 = require("../../shared");
25
+ const envelope_1 = require("../../program/envelope");
22
26
  function cancelBodyFromBase58(orderHash, maker, signatureBase58) {
23
27
  return {
24
28
  order_hash: orderHash,
@@ -67,6 +71,13 @@ class Orders {
67
71
  noncePda(user) {
68
72
  return (0, pda_1.getUserNoncePda)(user, this.client.programId)[0];
69
73
  }
74
+ // ── Envelope factories ────────────────────────────────────────────────
75
+ limitOrder() {
76
+ return envelope_1.LimitOrderEnvelope.new().depositSource(this.client.depositSource);
77
+ }
78
+ triggerOrder() {
79
+ return envelope_1.TriggerOrderEnvelope.new().depositSource(this.client.depositSource);
80
+ }
70
81
  // ── Helpers ──────────────────────────────────────────────────────────
71
82
  generateCancelAllSalt() {
72
83
  return (0, orders_1.generateCancelAllSalt)();
@@ -159,6 +170,104 @@ class Orders {
159
170
  has_more: response.has_more ?? false,
160
171
  };
161
172
  }
173
+ // ── Unified cancel (dispatches based on client signing strategy) ────
174
+ async cancelOrderSigned(orderHash, maker) {
175
+ const strategy = (0, context_1.requireSigningStrategy)(this.client);
176
+ switch (strategy.type) {
177
+ case "native": {
178
+ const body = cancelBodySigned(orderHash, maker, strategy.keypair);
179
+ return this.cancel(body);
180
+ }
181
+ case "walletAdapter": {
182
+ const message = (0, orders_1.cancelOrderMessage)(orderHash);
183
+ const sigBytes = await strategy.signer
184
+ .signMessage(message)
185
+ .catch((err) => {
186
+ const msg = err instanceof Error ? err.message : String(err);
187
+ if ((0, signing_1.isUserCancellation)(msg))
188
+ throw error_1.SdkError.userCancelled();
189
+ throw error_1.SdkError.signing(msg);
190
+ });
191
+ const sigBs58 = bs58_1.default.encode(sigBytes);
192
+ const body = cancelBodyFromBase58(orderHash, maker, sigBs58);
193
+ return this.cancel(body);
194
+ }
195
+ case "privy": {
196
+ const privy = new privy_1.Privy(this.client);
197
+ const result = await privy.signAndCancelOrder(strategy.walletId, orderHash, maker);
198
+ if ("order_hash" in result) {
199
+ return { order_hash: result.order_hash, remaining: Number(result.remaining ?? 0) };
200
+ }
201
+ throw error_1.SdkError.from(new Error("Unexpected cancel response"));
202
+ }
203
+ }
204
+ }
205
+ async cancelAllSigned(userPubkey, timestamp, salt, orderbookId) {
206
+ const strategy = (0, context_1.requireSigningStrategy)(this.client);
207
+ const resolvedOrderbookId = orderbookId ?? "";
208
+ switch (strategy.type) {
209
+ case "native": {
210
+ const body = cancelAllBodySigned(userPubkey, resolvedOrderbookId, timestamp, salt, strategy.keypair);
211
+ return this.cancelAll(body);
212
+ }
213
+ case "walletAdapter": {
214
+ const message = (0, orders_1.cancelAllMessage)(userPubkey, resolvedOrderbookId, timestamp, salt);
215
+ const sigBytes = await strategy.signer
216
+ .signMessage(new TextEncoder().encode(message))
217
+ .catch((err) => {
218
+ const msg = err instanceof Error ? err.message : String(err);
219
+ if ((0, signing_1.isUserCancellation)(msg))
220
+ throw error_1.SdkError.userCancelled();
221
+ throw error_1.SdkError.signing(msg);
222
+ });
223
+ const sigBs58 = bs58_1.default.encode(sigBytes);
224
+ const body = cancelAllBodyFromBase58(userPubkey, resolvedOrderbookId, timestamp, salt, sigBs58);
225
+ return this.cancelAll(body);
226
+ }
227
+ case "privy": {
228
+ const privy = new privy_1.Privy(this.client);
229
+ const result = await privy.signAndCancelAllOrders(strategy.walletId, userPubkey, resolvedOrderbookId, timestamp, salt);
230
+ return {
231
+ cancelled_order_hashes: result.cancelled_order_hashes,
232
+ count: result.count,
233
+ user_pubkey: (0, shared_1.asPubkeyStr)(result.user_pubkey),
234
+ orderbook_id: (0, shared_1.asOrderBookId)(result.orderbook_id),
235
+ message: result.message,
236
+ };
237
+ }
238
+ }
239
+ }
240
+ async cancelTriggerSigned(triggerOrderId, maker) {
241
+ const strategy = (0, context_1.requireSigningStrategy)(this.client);
242
+ switch (strategy.type) {
243
+ case "native": {
244
+ const body = cancelTriggerBodySigned(triggerOrderId, maker, strategy.keypair);
245
+ return this.cancelTrigger(body);
246
+ }
247
+ case "walletAdapter": {
248
+ const message = (0, orders_1.cancelTriggerOrderMessage)(triggerOrderId);
249
+ const sigBytes = await strategy.signer
250
+ .signMessage(message)
251
+ .catch((err) => {
252
+ const msg = err instanceof Error ? err.message : String(err);
253
+ if ((0, signing_1.isUserCancellation)(msg))
254
+ throw error_1.SdkError.userCancelled();
255
+ throw error_1.SdkError.signing(msg);
256
+ });
257
+ const sigBs58 = bs58_1.default.encode(sigBytes);
258
+ const body = cancelTriggerBodyFromBase58(triggerOrderId, maker, sigBs58);
259
+ return this.cancelTrigger(body);
260
+ }
261
+ case "privy": {
262
+ const privy = new privy_1.Privy(this.client);
263
+ const result = await privy.signAndCancelTriggerOrder(strategy.walletId, triggerOrderId, maker);
264
+ if ("trigger_order_id" in result) {
265
+ return { trigger_order_id: result.trigger_order_id };
266
+ }
267
+ throw error_1.SdkError.from(new Error("Unexpected cancel-trigger response"));
268
+ }
269
+ }
270
+ }
162
271
  // ── On-chain transaction builders ────────────────────────────────────
163
272
  cancelOrderIx(maker, market, order) {
164
273
  return (0, instructions_1.buildCancelOrderIx)(maker, 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 bs58 from \"bs58\";\nimport { Keypair, Transaction, type PublicKey, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { requireConnection } from \"../../context\";\nimport { SdkError } from \"../../error\";\nimport { RetryPolicy } from \"../../http\";\nimport {\n buildCancelOrderIx,\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 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 BidOrderParams,\n AskOrderParams,\n OrderStatus as ProgramOrderStatus,\n} from \"../../program/types\";\nimport type { OrderBookId, PubkeyStr } from \"../../shared\";\nimport type { UserSnapshotBalance, UserSnapshotOrder } 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 interface SubmitOrderResponse {\n order_hash: string;\n remaining: string;\n filled: string;\n fills: FillInfo[];\n}\n\nexport type PlaceResponse =\n | ({ status: \"accepted\" } & SubmitOrderResponse)\n | ({ status: \"partial_fill\" } & SubmitOrderResponse)\n | ({ status: \"filled\" } & SubmitOrderResponse)\n | {\n status: \"rejected\";\n error?: string;\n details?: string;\n order_hash?: string;\n remaining?: string;\n filled?: string;\n }\n | { status: \"error\"; error?: string }\n | { status: \"bad_request\"; error?: string; details?: string }\n | { status: \"not_found\"; error?: string }\n | { status: \"forbidden\"; error?: string }\n | { status: \"internal_error\"; error?: string; details?: string }\n | { status: \"configuration_error\"; error?: string };\n\nexport interface CancelSuccess {\n order_hash: string;\n remaining: number;\n}\n\nexport type CancelResponse =\n | { status: \"cancelled\"; order_hash: string; remaining: number }\n | { status: \"error\"; error: string }\n | { status: \"bad_request\"; error: string }\n | { status: \"not_found\"; error: string }\n | { status: \"forbidden\"; error: string }\n | { status: \"internal_error\"; error: string; details?: string };\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 type CancelAllResponse =\n | ({ status: \"success\" } & CancelAllSuccess)\n | { status: \"error\"; message: string }\n | { status: \"bad_request\"; error: string }\n | { status: \"not_found\"; error: string }\n | { status: \"forbidden\"; error: string }\n | { status: \"internal_error\"; error: string; details?: string };\n\nexport interface TriggerOrderResponse {\n trigger_order_id: string;\n order_hash: string;\n}\n\nexport type TriggerSubmitResponse =\n | ({ status: \"accepted\" } & TriggerOrderResponse)\n | { status: \"error\"; error: string }\n | { status: \"bad_request\"; error: string }\n | { status: \"not_found\"; error: string }\n | { status: \"forbidden\"; error: string }\n | { status: \"internal_error\"; error: string; details?: string };\n\nexport interface CancelTriggerSuccess {\n trigger_order_id: string;\n}\n\nexport type CancelTriggerResponse =\n | ({ status: \"cancelled\" } & CancelTriggerSuccess)\n | { status: \"error\"; error: string }\n | { status: \"bad_request\"; error: string }\n | { status: \"not_found\"; error: string }\n | { status: \"forbidden\"; error: string }\n | { status: \"internal_error\"; error: string; details?: string };\n\nexport interface UserOrdersResponse {\n user_pubkey: PubkeyStr;\n orders: UserSnapshotOrder[];\n balances: UserSnapshotBalance[];\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 // ── Helpers ──────────────────────────────────────────────────────────\n\n generateCancelAllSalt(): string {\n return programGenerateCancelAllSalt();\n }\n\n // ── HTTP methods ─────────────────────────────────────────────────────\n\n async submit(request: object): Promise<SubmitOrderResponse> {\n const url = `${this.client.http.baseUrl()}/api/orders/submit`;\n const raw = await this.client.http.post<PlaceResponse, object>(url, request, RetryPolicy.None);\n\n switch (raw.status) {\n case \"accepted\":\n case \"partial_fill\":\n case \"filled\":\n return raw;\n case \"rejected\": {\n const message = [raw.error, raw.details].filter(Boolean).join(\": \") || \"Rejected\";\n throw SdkError.from(new Error(message));\n }\n case \"bad_request\":\n case \"internal_error\":\n throw SdkError.from(new Error([raw.error, raw.details].filter(Boolean).join(\": \")));\n case \"error\":\n case \"not_found\":\n case \"forbidden\":\n case \"configuration_error\":\n throw SdkError.from(new Error(raw.error || \"Unknown error\"));\n default:\n throw SdkError.from(new Error(\"Unknown submit response\"));\n }\n }\n\n async cancel(body: CancelBody): Promise<CancelSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel`;\n const response = await this.client.http.post<CancelResponse, CancelBody>(url, body, RetryPolicy.None);\n\n if (response.status === \"cancelled\") {\n return { order_hash: response.order_hash, remaining: response.remaining };\n }\n\n if (response.status === \"internal_error\") {\n throw SdkError.from(new Error([response.error, response.details].filter(Boolean).join(\": \")));\n }\n\n throw SdkError.from(new Error(response.error));\n }\n\n async cancelAll(body: CancelAllBody): Promise<CancelAllSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel-all`;\n const response = await this.client.http.post<CancelAllResponse, CancelAllBody>(\n url,\n body,\n RetryPolicy.None\n );\n\n if (response.status === \"success\") {\n return response;\n }\n\n if (response.status === \"error\") {\n throw SdkError.from(new Error(response.message));\n }\n\n if (response.status === \"internal_error\") {\n throw SdkError.from(new Error([response.error, response.details].filter(Boolean).join(\": \")));\n }\n\n throw SdkError.from(new Error(response.error));\n }\n\n async submitTrigger(request: object): Promise<TriggerOrderResponse> {\n const url = `${this.client.http.baseUrl()}/api/orders/submit`;\n const response = await this.client.http.post<TriggerSubmitResponse, object>(\n url,\n request,\n RetryPolicy.None\n );\n\n if (response.status === \"accepted\") {\n return response;\n }\n\n if (response.status === \"internal_error\") {\n throw SdkError.from(new Error([response.error, response.details].filter(Boolean).join(\": \")));\n }\n\n throw SdkError.from(new Error(response.error));\n }\n\n async cancelTrigger(body: CancelTriggerBody): Promise<CancelTriggerSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel`;\n const response = await this.client.http.post<CancelTriggerResponse, CancelTriggerBody>(\n url,\n body,\n RetryPolicy.None\n );\n\n if (response.status === \"cancelled\") {\n return response;\n }\n\n if (response.status === \"internal_error\") {\n throw SdkError.from(new Error([response.error, response.details].filter(Boolean).join(\": \")));\n }\n\n throw SdkError.from(new Error(response.error));\n }\n\n async getUserOrders(\n walletAddress: string,\n limit?: number,\n cursor?: string\n ): Promise<UserOrdersResponse> {\n const params = new URLSearchParams({ wallet_address: walletAddress });\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor) params.set(\"cursor\", cursor);\n\n const url = `${this.client.http.baseUrl()}/api/users/orders?${params.toString()}`;\n const response = await this.client.http.get<{\n user_pubkey: PubkeyStr;\n orders?: UserSnapshotOrder[];\n balances?: UserSnapshotBalance[];\n next_cursor?: string | null;\n has_more?: boolean;\n }>(url, RetryPolicy.Idempotent);\n\n return {\n user_pubkey: response.user_pubkey,\n orders: response.orders ?? [],\n balances: response.balances ?? [],\n next_cursor: response.next_cursor ?? undefined,\n has_more: response.has_more ?? false,\n };\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n cancelOrderIx(\n maker: PublicKey,\n market: PublicKey,\n order: SignedOrder\n ): TransactionInstruction {\n return buildCancelOrderIx(maker, market, order, this.client.programId);\n }\n\n incrementNonceIx(user: PublicKey): TransactionInstruction {\n return buildIncrementNonceIx(user, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n cancelOrderTx(\n maker: PublicKey,\n market: PublicKey,\n order: SignedOrder\n ): Transaction {\n const ix = this.cancelOrderIx(maker, market, order);\n return new Transaction({ feePayer: maker }).add(ix);\n }\n\n incrementNonceTx(user: PublicKey): Transaction {\n const ix = this.incrementNonceIx(user);\n return new Transaction({ feePayer: user }).add(ix);\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(params: BidOrderParams, signer: Keypair): SignedOrder {\n return programCreateSignedBidOrder(params, signer);\n }\n\n createSignedAskOrder(params: AskOrderParams, signer: Keypair): SignedOrder {\n return programCreateSignedAskOrder(params, signer);\n }\n\n hashOrder(order: SignedOrder): Buffer {\n return programHashOrder(order);\n }\n\n signOrder(order: SignedOrder, signer: Keypair): Buffer {\n return programSignOrder(order, signer);\n }\n\n signFullOrder(\n order: Omit<SignedOrder, \"signature\">,\n signer: Keypair\n ): SignedOrder {\n return signOrderFull(order, signer);\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 new Error(`Nonce exceeds u32 range: ${nonce}`);\n }\n return Number(nonce);\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/order/client.ts"],"names":[],"mappings":"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","sourcesContent":["import bs58 from \"bs58\";\nimport { Keypair, Transaction, type PublicKey, type TransactionInstruction } from \"@solana/web3.js\";\nimport type { ClientContext } from \"../../context\";\nimport { requireConnection, requireSigningStrategy } from \"../../context\";\nimport { SdkError } from \"../../error\";\nimport { RetryPolicy } from \"../../http\";\nimport { Privy } from \"../../privy\";\nimport { isUserCancellation } from \"../../shared/signing\";\nimport {\n buildCancelOrderIx,\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 BidOrderParams,\n AskOrderParams,\n OrderStatus as ProgramOrderStatus,\n} from \"../../program/types\";\nimport { asOrderBookId, asPubkeyStr, type OrderBookId, type PubkeyStr } from \"../../shared\";\nimport { LimitOrderEnvelope, TriggerOrderEnvelope } from \"../../program/envelope\";\nimport type { UserSnapshotBalance, UserSnapshotOrder } 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 interface SubmitOrderResponse {\n order_hash: string;\n remaining: string;\n filled: string;\n fills: FillInfo[];\n}\n\nexport type PlaceResponse =\n | ({ status: \"accepted\" } & SubmitOrderResponse)\n | ({ status: \"partial_fill\" } & SubmitOrderResponse)\n | ({ status: \"filled\" } & SubmitOrderResponse)\n | {\n status: \"rejected\";\n error?: string;\n details?: string;\n reason?: string;\n order_hash?: string;\n remaining?: string;\n filled?: string;\n }\n | { status: \"error\"; error?: string }\n | { status: \"bad_request\"; error?: string; details?: string }\n | { status: \"not_found\"; error?: string }\n | { status: \"forbidden\"; error?: string }\n | { status: \"internal_error\"; error?: string; details?: string }\n | { status: \"configuration_error\"; error?: string };\n\nexport interface CancelSuccess {\n order_hash: string;\n remaining: number;\n}\n\nexport type CancelResponse =\n | { status: \"cancelled\"; order_hash: string; remaining: number }\n | { status: \"error\"; error: string }\n | { status: \"bad_request\"; error: string }\n | { status: \"not_found\"; error: string }\n | { status: \"forbidden\"; error: string }\n | { status: \"internal_error\"; error: string; details?: string };\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 type CancelAllResponse =\n | ({ status: \"success\" } & CancelAllSuccess)\n | { status: \"error\"; message: string }\n | { status: \"bad_request\"; error: string }\n | { status: \"not_found\"; error: string }\n | { status: \"forbidden\"; error: string }\n | { status: \"internal_error\"; error: string; details?: string };\n\nexport interface TriggerOrderResponse {\n trigger_order_id: string;\n order_hash: string;\n}\n\nexport type TriggerSubmitResponse =\n | ({ status: \"accepted\" } & TriggerOrderResponse)\n | { status: \"error\"; error: string }\n | { status: \"bad_request\"; error: string }\n | { status: \"not_found\"; error: string }\n | { status: \"forbidden\"; error: string }\n | { status: \"internal_error\"; error: string; details?: string };\n\nexport interface CancelTriggerSuccess {\n trigger_order_id: string;\n}\n\nexport type CancelTriggerResponse =\n | ({ status: \"cancelled\" } & CancelTriggerSuccess)\n | { status: \"error\"; error: string }\n | { status: \"bad_request\"; error: string }\n | { status: \"not_found\"; error: string }\n | { status: \"forbidden\"; error: string }\n | { status: \"internal_error\"; error: string; details?: string };\n\nexport interface UserOrdersResponse {\n user_pubkey: PubkeyStr;\n orders: UserSnapshotOrder[];\n balances: UserSnapshotBalance[];\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: object): Promise<SubmitOrderResponse> {\n const url = `${this.client.http.baseUrl()}/api/orders/submit`;\n const raw = await this.client.http.post<PlaceResponse, object>(url, request, RetryPolicy.None);\n\n switch (raw.status) {\n case \"accepted\":\n case \"partial_fill\":\n case \"filled\":\n return raw;\n case \"rejected\": {\n const message = [raw.error, raw.details].filter(Boolean).join(\": \") || \"Rejected\";\n throw SdkError.from(new Error(message));\n }\n case \"bad_request\":\n case \"internal_error\":\n throw SdkError.from(new Error([raw.error, raw.details].filter(Boolean).join(\": \")));\n case \"error\":\n case \"not_found\":\n case \"forbidden\":\n case \"configuration_error\":\n throw SdkError.from(new Error(raw.error || \"Unknown error\"));\n default:\n throw SdkError.from(new Error(\"Unknown submit response\"));\n }\n }\n\n async cancel(body: CancelBody): Promise<CancelSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel`;\n const response = await this.client.http.post<CancelResponse, CancelBody>(url, body, RetryPolicy.None);\n\n if (response.status === \"cancelled\") {\n return { order_hash: response.order_hash, remaining: response.remaining };\n }\n\n if (response.status === \"internal_error\") {\n throw SdkError.from(new Error([response.error, response.details].filter(Boolean).join(\": \")));\n }\n\n throw SdkError.from(new Error(response.error));\n }\n\n async cancelAll(body: CancelAllBody): Promise<CancelAllSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel-all`;\n const response = await this.client.http.post<CancelAllResponse, CancelAllBody>(\n url,\n body,\n RetryPolicy.None\n );\n\n if (response.status === \"success\") {\n return response;\n }\n\n if (response.status === \"error\") {\n throw SdkError.from(new Error(response.message));\n }\n\n if (response.status === \"internal_error\") {\n throw SdkError.from(new Error([response.error, response.details].filter(Boolean).join(\": \")));\n }\n\n throw SdkError.from(new Error(response.error));\n }\n\n async submitTrigger(request: object): Promise<TriggerOrderResponse> {\n const url = `${this.client.http.baseUrl()}/api/orders/submit`;\n const response = await this.client.http.post<TriggerSubmitResponse, object>(\n url,\n request,\n RetryPolicy.None\n );\n\n if (response.status === \"accepted\") {\n return response;\n }\n\n if (response.status === \"internal_error\") {\n throw SdkError.from(new Error([response.error, response.details].filter(Boolean).join(\": \")));\n }\n\n throw SdkError.from(new Error(response.error));\n }\n\n async cancelTrigger(body: CancelTriggerBody): Promise<CancelTriggerSuccess> {\n const url = `${this.client.http.baseUrl()}/api/orders/cancel`;\n const response = await this.client.http.post<CancelTriggerResponse, CancelTriggerBody>(\n url,\n body,\n RetryPolicy.None\n );\n\n if (response.status === \"cancelled\") {\n return response;\n }\n\n if (response.status === \"internal_error\") {\n throw SdkError.from(new Error([response.error, response.details].filter(Boolean).join(\": \")));\n }\n\n throw SdkError.from(new Error(response.error));\n }\n\n async getUserOrders(\n walletAddress: string,\n limit?: number,\n cursor?: string\n ): Promise<UserOrdersResponse> {\n const params = new URLSearchParams({ wallet_address: walletAddress });\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (cursor) params.set(\"cursor\", cursor);\n\n const url = `${this.client.http.baseUrl()}/api/users/orders?${params.toString()}`;\n const response = await this.client.http.get<{\n user_pubkey: PubkeyStr;\n orders?: UserSnapshotOrder[];\n balances?: UserSnapshotBalance[];\n next_cursor?: string | null;\n has_more?: boolean;\n }>(url, RetryPolicy.Idempotent);\n\n return {\n user_pubkey: response.user_pubkey,\n orders: response.orders ?? [],\n balances: response.balances ?? [],\n next_cursor: response.next_cursor ?? undefined,\n has_more: response.has_more ?? false,\n };\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 if (\"order_hash\" in result) {\n return { order_hash: result.order_hash, remaining: Number(result.remaining ?? 0) };\n }\n throw SdkError.from(new Error(\"Unexpected cancel response\"));\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 if (\"trigger_order_id\" in result) {\n return { trigger_order_id: result.trigger_order_id };\n }\n throw SdkError.from(new Error(\"Unexpected cancel-trigger response\"));\n }\n }\n }\n\n // ── On-chain transaction builders ────────────────────────────────────\n\n cancelOrderIx(\n maker: PublicKey,\n market: PublicKey,\n order: SignedOrder\n ): TransactionInstruction {\n return buildCancelOrderIx(maker, market, order, this.client.programId);\n }\n\n incrementNonceIx(user: PublicKey): TransactionInstruction {\n return buildIncrementNonceIx(user, this.client.programId);\n }\n\n // ── Transaction builders (_tx convenience wrappers) ─────────────────\n\n cancelOrderTx(\n maker: PublicKey,\n market: PublicKey,\n order: SignedOrder\n ): Transaction {\n const ix = this.cancelOrderIx(maker, market, order);\n return new Transaction({ feePayer: maker }).add(ix);\n }\n\n incrementNonceTx(user: PublicKey): Transaction {\n const ix = this.incrementNonceIx(user);\n return new Transaction({ feePayer: user }).add(ix);\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(params: BidOrderParams, signer: Keypair): SignedOrder {\n return programCreateSignedBidOrder(params, signer);\n }\n\n createSignedAskOrder(params: AskOrderParams, signer: Keypair): SignedOrder {\n return programCreateSignedAskOrder(params, signer);\n }\n\n hashOrder(order: SignedOrder): Buffer {\n return programHashOrder(order);\n }\n\n signOrder(order: SignedOrder, signer: Keypair): Buffer {\n return programSignOrder(order, signer);\n }\n\n signFullOrder(\n order: Omit<SignedOrder, \"signature\">,\n signer: Keypair\n ): SignedOrder {\n return signOrderFull(order, signer);\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 new Error(`Nonce exceeds u32 range: ${nonce}`);\n }\n return Number(nonce);\n }\n}\n"]}
@@ -16,6 +16,16 @@ export interface GlobalDepositBalance {
16
16
  mint: PubkeyStr;
17
17
  balance: string;
18
18
  }
19
+ export interface GlobalDepositUpdate {
20
+ mint: PubkeyStr;
21
+ balance: string;
22
+ timestamp: string;
23
+ }
24
+ export interface NonceUpdate {
25
+ user_pubkey: PubkeyStr;
26
+ new_nonce: number;
27
+ timestamp: string;
28
+ }
19
29
  export interface UserOrderUpdateBalance {
20
30
  outcomes: ConditionalBalance[];
21
31
  }
@@ -74,6 +84,7 @@ export interface UserSnapshot {
74
84
  balances: Record<string, UserSnapshotBalance>;
75
85
  global_deposits: GlobalDepositBalance[];
76
86
  notifications: Notification[];
87
+ nonce?: number;
77
88
  }
78
89
  export interface TriggerOrderUpdate {
79
90
  trigger_order_id: string;
@@ -114,6 +125,10 @@ export type UserUpdate = ({
114
125
  } & OrderEvent) | ({
115
126
  event_type: "balance_update";
116
127
  } & UserBalanceUpdate) | ({
128
+ event_type: "global_deposit_update";
129
+ } & GlobalDepositUpdate) | ({
130
+ event_type: "nonce_update";
131
+ } & NonceUpdate) | ({
117
132
  event_type: "notification";
118
133
  } & NotificationUpdate);
119
134
  export type AuthUpdate = {
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/order/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,SAAS,EACT,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GACzB,CAAC;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,CAAC,GAC1E,CAAC;IACC,UAAU,EAAE,SAAS,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B,GAAG,uBAAuB,CAAC,CAAC;AAEjC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC9C,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAClB,CAAC;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAAG,WAAW,CAAC,GACvC,CAAC;IAAE,UAAU,EAAE,SAAS,CAAA;CAAE,GAAG,kBAAkB,CAAC,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE;QAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAClB,CAAC;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,YAAY,CAAC,GAC3C,CAAC;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,CAAC,GACtC,CAAC;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,GAAG,iBAAiB,CAAC,GACtD,CAAC;IAAE,UAAU,EAAE,cAAc,CAAA;CAAE,GAAG,kBAAkB,CAAC,CAAC;AAE1D,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9C;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/order/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,SAAS,EACT,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GACzB,CAAC;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,CAAC,GAC1E,CAAC;IACC,UAAU,EAAE,SAAS,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B,GAAG,uBAAuB,CAAC,CAAC;AAEjC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC9C,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAClB,CAAC;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAAG,WAAW,CAAC,GACvC,CAAC;IAAE,UAAU,EAAE,SAAS,CAAA;CAAE,GAAG,kBAAkB,CAAC,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE;QAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAClB,CAAC;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,YAAY,CAAC,GAC3C,CAAC;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,CAAC,GACtC,CAAC;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,GAAG,iBAAiB,CAAC,GACtD,CAAC;IAAE,UAAU,EAAE,uBAAuB,CAAA;CAAE,GAAG,mBAAmB,CAAC,GAC/D,CAAC;IAAE,UAAU,EAAE,cAAc,CAAA;CAAE,GAAG,WAAW,CAAC,GAC9C,CAAC;IAAE,UAAU,EAAE,cAAc,CAAA;CAAE,GAAG,kBAAkB,CAAC,CAAC;AAE1D,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9C;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/order/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n OrderBookId,\n OrderUpdateType,\n PubkeyStr,\n Side,\n TimeInForce,\n TriggerResultStatus,\n TriggerStatus,\n TriggerType,\n TriggerUpdateType,\n} from \"../../shared\";\nimport type { Notification } from \"../notification\";\nimport type { OrderStatus } from \"./index\";\n\nexport interface ConditionalBalance {\n outcome_index: number;\n conditional_token: PubkeyStr;\n idle: string;\n on_book: string;\n}\n\nexport interface UserSnapshotBalance {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n outcomes: ConditionalBalance[];\n}\n\nexport interface GlobalDepositBalance {\n mint: PubkeyStr;\n balance: string;\n}\n\nexport interface UserOrderUpdateBalance {\n outcomes: ConditionalBalance[];\n}\n\nexport interface WsOrder {\n order_hash: string;\n price: string;\n is_maker: boolean;\n remaining: string;\n filled: string;\n fill_amount: string;\n side: Side;\n created_at: number;\n base_mint: PubkeyStr;\n quote_mint: PubkeyStr;\n outcome_index: number;\n status: OrderStatus;\n balance?: UserOrderUpdateBalance;\n}\n\nexport interface OrderUpdate {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n timestamp: string;\n tx_signature?: string;\n type?: OrderUpdateType;\n order: WsOrder;\n}\n\nexport interface UserSnapshotOrderCommon {\n order_hash: string;\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n side: Side;\n amount_in: string;\n amount_out: string;\n remaining: string;\n filled: string;\n price: string;\n created_at: number;\n expiration: number;\n base_mint: PubkeyStr;\n quote_mint: PubkeyStr;\n outcome_index: number;\n status: OrderStatus;\n}\n\nexport type UserSnapshotOrder =\n | ({ order_type: \"limit\"; tx_signature?: string } & UserSnapshotOrderCommon)\n | ({\n order_type: \"trigger\";\n trigger_order_id: string;\n trigger_price: string;\n trigger_type: TriggerType;\n time_in_force?: TimeInForce;\n } & UserSnapshotOrderCommon);\n\nexport interface UserSnapshot {\n orders: UserSnapshotOrder[];\n balances: Record<string, UserSnapshotBalance>;\n global_deposits: GlobalDepositBalance[];\n notifications: Notification[];\n}\n\nexport interface TriggerOrderUpdate {\n trigger_order_id: string;\n user_pubkey?: PubkeyStr;\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n trigger_price: string;\n trigger_above: boolean;\n status: TriggerStatus;\n type?: TriggerUpdateType;\n order_hash: string;\n side: Side;\n result_status?: TriggerResultStatus;\n result_filled?: string;\n result_remaining?: string;\n timestamp: string;\n}\n\nexport type OrderEvent =\n | ({ order_type: \"limit\" } & OrderUpdate)\n | ({ order_type: \"trigger\" } & TriggerOrderUpdate);\n\nexport interface NotificationUpdate {\n notification: Notification;\n}\n\nexport interface UserBalanceUpdate {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n balance: { outcomes: ConditionalBalance[] };\n timestamp: string;\n}\n\nexport type UserUpdate =\n | ({ event_type: \"snapshot\" } & UserSnapshot)\n | ({ event_type: \"order\" } & OrderEvent)\n | ({ event_type: \"balance_update\" } & UserBalanceUpdate)\n | ({ event_type: \"notification\" } & NotificationUpdate);\n\nexport type AuthUpdate =\n | { status: \"authenticated\"; wallet: PubkeyStr }\n | { status: \"anonymous\" }\n | { status: \"failed\"; code: string; message?: string };\n"]}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/order/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n OrderBookId,\n OrderUpdateType,\n PubkeyStr,\n Side,\n TimeInForce,\n TriggerResultStatus,\n TriggerStatus,\n TriggerType,\n TriggerUpdateType,\n} from \"../../shared\";\nimport type { Notification } from \"../notification\";\nimport type { OrderStatus } from \"./index\";\n\nexport interface ConditionalBalance {\n outcome_index: number;\n conditional_token: PubkeyStr;\n idle: string;\n on_book: string;\n}\n\nexport interface UserSnapshotBalance {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n outcomes: ConditionalBalance[];\n}\n\nexport interface GlobalDepositBalance {\n mint: PubkeyStr;\n balance: string;\n}\n\nexport interface GlobalDepositUpdate {\n mint: PubkeyStr;\n balance: string;\n timestamp: string;\n}\n\nexport interface NonceUpdate {\n user_pubkey: PubkeyStr;\n new_nonce: number;\n timestamp: string;\n}\n\nexport interface UserOrderUpdateBalance {\n outcomes: ConditionalBalance[];\n}\n\nexport interface WsOrder {\n order_hash: string;\n price: string;\n is_maker: boolean;\n remaining: string;\n filled: string;\n fill_amount: string;\n side: Side;\n created_at: number;\n base_mint: PubkeyStr;\n quote_mint: PubkeyStr;\n outcome_index: number;\n status: OrderStatus;\n balance?: UserOrderUpdateBalance;\n}\n\nexport interface OrderUpdate {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n timestamp: string;\n tx_signature?: string;\n type?: OrderUpdateType;\n order: WsOrder;\n}\n\nexport interface UserSnapshotOrderCommon {\n order_hash: string;\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n side: Side;\n amount_in: string;\n amount_out: string;\n remaining: string;\n filled: string;\n price: string;\n created_at: number;\n expiration: number;\n base_mint: PubkeyStr;\n quote_mint: PubkeyStr;\n outcome_index: number;\n status: OrderStatus;\n}\n\nexport type UserSnapshotOrder =\n | ({ order_type: \"limit\"; tx_signature?: string } & UserSnapshotOrderCommon)\n | ({\n order_type: \"trigger\";\n trigger_order_id: string;\n trigger_price: string;\n trigger_type: TriggerType;\n time_in_force?: TimeInForce;\n } & UserSnapshotOrderCommon);\n\nexport interface UserSnapshot {\n orders: UserSnapshotOrder[];\n balances: Record<string, UserSnapshotBalance>;\n global_deposits: GlobalDepositBalance[];\n notifications: Notification[];\n nonce?: number;\n}\n\nexport interface TriggerOrderUpdate {\n trigger_order_id: string;\n user_pubkey?: PubkeyStr;\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n trigger_price: string;\n trigger_above: boolean;\n status: TriggerStatus;\n type?: TriggerUpdateType;\n order_hash: string;\n side: Side;\n result_status?: TriggerResultStatus;\n result_filled?: string;\n result_remaining?: string;\n timestamp: string;\n}\n\nexport type OrderEvent =\n | ({ order_type: \"limit\" } & OrderUpdate)\n | ({ order_type: \"trigger\" } & TriggerOrderUpdate);\n\nexport interface NotificationUpdate {\n notification: Notification;\n}\n\nexport interface UserBalanceUpdate {\n market_pubkey: PubkeyStr;\n orderbook_id: OrderBookId;\n balance: { outcomes: ConditionalBalance[] };\n timestamp: string;\n}\n\nexport type UserUpdate =\n | ({ event_type: \"snapshot\" } & UserSnapshot)\n | ({ event_type: \"order\" } & OrderEvent)\n | ({ event_type: \"balance_update\" } & UserBalanceUpdate)\n | ({ event_type: \"global_deposit_update\" } & GlobalDepositUpdate)\n | ({ event_type: \"nonce_update\" } & NonceUpdate)\n | ({ event_type: \"notification\" } & NotificationUpdate);\n\nexport type AuthUpdate =\n | { status: \"authenticated\"; wallet: PubkeyStr }\n | { status: \"anonymous\" }\n | { status: \"failed\"; code: string; message?: string };\n"]}