@tixprotocol/tdp-sdk 0.3.0 → 0.5.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.
package/README.md CHANGED
@@ -26,6 +26,27 @@ console.log(events.items);
26
26
 
27
27
  TDP API keys are private credentials. Do not expose them publicly.
28
28
 
29
+ ## Amounts
30
+
31
+ Every amount the client returns is in whole cents: `$1.00` is `100`. An on-chain amount finer than a cent rounds half up to the closest cent.
32
+ The HTTP API and the `tixInstructions` of `transactions.signIntegrator` use USDC minor units, and `client.utils` converts between the two.
33
+
34
+ ```ts
35
+ client.utils.usdcMinorToCents(25_000_000n); // 2500n, which is $25.00
36
+ client.utils.centsToUsdcMinor(2_500n); // 25000000n
37
+ ```
38
+
39
+ ## Upgrade from 0.3.x
40
+
41
+ - Pass `{ eventId }` to `indexer.listActiveListings`, including on subsequent pages for that event.
42
+ - Pass a numeric `limit` to `indexer.listActiveListings` and `indexer.listUpcomingEvents`.
43
+ - Keep each `orders.createAndSubmit` request within the six-listing limit.
44
+ - Remove calls to `transactions.signUser` and imports of `SignUserTransactionInput`; they are no longer part of the public SDK.
45
+ - Import `TdpApiError` and `TdpResponseValidationError` from `@tixprotocol/tdp-sdk/errors`. API errors expose optional `code` and `requestId` fields. `WalletCustodyApiError` remains a deprecated alias, but the error names have changed.
46
+ - Omit `subject` in `wallets.getIntegratorAddress` or `transactions.signIntegrator` to use the primary integrator wallet.
47
+ - Read your integrator wallet address with `integrator.getInfo()`.
48
+ - Call `events.list()` to list every indexed event with a start date, past and future, and `events.get({ eventId })` to read one by id.
49
+
29
50
  ## License
30
51
 
31
52
  Apache-2.0.
@@ -1,5 +1,5 @@
1
1
  // src/wallet-custody/http-error.ts
2
- var WalletCustodyApiError = class extends Error {
2
+ var TdpApiError = class extends Error {
3
3
  kind;
4
4
  route;
5
5
  method;
@@ -7,6 +7,8 @@ var WalletCustodyApiError = class extends Error {
7
7
  status;
8
8
  statusText;
9
9
  payload;
10
+ code;
11
+ requestId;
10
12
  validationError;
11
13
  constructor({
12
14
  kind,
@@ -16,13 +18,15 @@ var WalletCustodyApiError = class extends Error {
16
18
  status,
17
19
  statusText,
18
20
  payload,
21
+ code,
22
+ requestId,
19
23
  validationError
20
24
  }) {
21
25
  super(
22
26
  kind === "response-validation" ? `Wallet Custody API response failed validation: ${method} ${route} ${path} ${status} ${statusText}` : `Wallet Custody API request failed: ${method} ${route} ${path} ${status} ${statusText}`,
23
27
  { cause: validationError }
24
28
  );
25
- this.name = "WalletCustodyApiError";
29
+ this.name = "TdpApiError";
26
30
  this.kind = kind;
27
31
  this.route = route;
28
32
  this.method = method;
@@ -30,11 +34,19 @@ var WalletCustodyApiError = class extends Error {
30
34
  this.status = status;
31
35
  this.statusText = statusText;
32
36
  this.payload = payload;
37
+ this.code = code;
38
+ this.requestId = requestId;
33
39
  this.validationError = validationError;
34
40
  }
35
41
  };
42
+ var TdpResponseValidationError = class extends TdpApiError {
43
+ name = "TdpResponseValidationError";
44
+ };
45
+ var WalletCustodyApiError = TdpApiError;
36
46
 
37
47
  export {
48
+ TdpApiError,
49
+ TdpResponseValidationError,
38
50
  WalletCustodyApiError
39
51
  };
40
- //# sourceMappingURL=chunk-RLIW34CX.js.map
52
+ //# sourceMappingURL=chunk-7IWD2KHF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/wallet-custody/http-error.ts"],"sourcesContent":["import type { z } from \"zod\";\n\nexport type WalletCustodyApiErrorKind = \"http-status\" | \"response-validation\";\n\nexport class TdpApiError extends Error {\n readonly kind: WalletCustodyApiErrorKind;\n readonly route: string;\n readonly method: string;\n readonly path: string;\n readonly status: number;\n readonly statusText: string;\n readonly payload: unknown;\n readonly code?: string;\n readonly requestId?: string;\n readonly validationError?: z.ZodError;\n\n constructor({\n kind,\n route,\n method,\n path,\n status,\n statusText,\n payload,\n code,\n requestId,\n validationError,\n }: {\n kind: WalletCustodyApiErrorKind;\n route: string;\n method: string;\n path: string;\n status: number;\n statusText: string;\n payload: unknown;\n code?: string;\n requestId?: string;\n validationError?: z.ZodError;\n }) {\n super(\n kind === \"response-validation\"\n ? `Wallet Custody API response failed validation: ${method} ${route} ${path} ${status} ${statusText}`\n : `Wallet Custody API request failed: ${method} ${route} ${path} ${status} ${statusText}`,\n { cause: validationError },\n );\n\n this.name = \"TdpApiError\";\n this.kind = kind;\n this.route = route;\n this.method = method;\n this.path = path;\n this.status = status;\n this.statusText = statusText;\n this.payload = payload;\n this.code = code;\n this.requestId = requestId;\n this.validationError = validationError;\n }\n}\n\nexport class TdpResponseValidationError extends TdpApiError {\n override name = \"TdpResponseValidationError\";\n}\n\n/** @deprecated Renamed to TdpApiError in 0.4.0. */\nexport const WalletCustodyApiError = TdpApiError;\n/** @deprecated Renamed to TdpApiError in 0.4.0. */\nexport type WalletCustodyApiError = TdpApiError;\n"],"mappings":";AAIO,IAAM,cAAN,cAA0B,MAAM;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAWG;AACD;AAAA,MACE,SAAS,wBACL,kDAAkD,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,UAAU,KACjG,sCAAsC,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,UAAU;AAAA,MACzF,EAAE,OAAO,gBAAgB;AAAA,IAC3B;AAEA,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,SAAS;AACd,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,SAAK,aAAa;AAClB,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,YAAY;AACjB,SAAK,kBAAkB;AAAA,EACzB;AACF;AAEO,IAAM,6BAAN,cAAyC,YAAY;AAAA,EACjD,OAAO;AAClB;AAGO,IAAM,wBAAwB;","names":[]}
@@ -260,6 +260,9 @@ var TixIndexerEventFoundSchema = z8.object({
260
260
  start_at: NullableStringSchema,
261
261
  on_sale_at: NullableStringSchema,
262
262
  image_url: NullableStringSchema,
263
+ timezone: NullableStringSchema,
264
+ address: NullableStringSchema,
265
+ venue: NullableStringSchema,
263
266
  active_listing_count: z8.number().nonnegative(),
264
267
  tickets_issued_count: z8.number().nonnegative(),
265
268
  integrator_identity: NullableStringSchema,
@@ -268,13 +271,7 @@ var TixIndexerEventFoundSchema = z8.object({
268
271
  genres: z8.array(z8.string()).nullable()
269
272
  }).strict();
270
273
  var TixIndexerUpcomingEventsResultSchema = z8.object({
271
- items: z8.array(
272
- TixIndexerEventFoundSchema.extend({
273
- timezone: NullableStringSchema,
274
- address: NullableStringSchema,
275
- venue: NullableStringSchema
276
- })
277
- ),
274
+ items: z8.array(TixIndexerEventFoundSchema),
278
275
  next_cursor: NullableStringSchema
279
276
  }).strict();
280
277
  var TixIndexerActiveListingsResultSchema = z8.object({
@@ -294,17 +291,21 @@ var TixIndexerActiveListingsResultSchema = z8.object({
294
291
  ),
295
292
  next_cursor: NullableStringSchema
296
293
  }).strict();
294
+ var GetIntegratorResponseSchema = z8.object({ address: Base58Address });
297
295
 
298
296
  // ../tdp-schemas/src/tix-indexer-api/read-routes.ts
299
297
  import { z as z9 } from "zod";
300
298
  var GET_ACTIVE_LISTINGS_ROUTE_KEY = "GET /listings/active";
301
299
  var GET_UPCOMING_EVENTS_ROUTE_KEY = "GET /events/upcoming";
300
+ var GET_EVENTS_ROUTE_KEY = "GET /events";
301
+ var GET_EVENT_ROUTE_KEY = "GET /events/{eventId}";
302
+ var GET_INTEGRATOR_ROUTE_KEY = "GET /integrator";
302
303
  var LimitCursorQuerySchema = z9.object({
303
304
  limit: z9.coerce.number().int().min(1).max(500).optional(),
304
305
  cursor: z9.string().min(1).optional()
305
306
  });
306
307
  var ActiveListingsQuerySchema = LimitCursorQuerySchema.extend({
307
- eventId: WireU64.optional()
308
+ eventId: WireU64
308
309
  });
309
310
  var tixIndexerReadApiClientRoutes = {
310
311
  "get-active-listings": defineClientRoute({
@@ -326,6 +327,34 @@ var tixIndexerReadApiClientRoutes = {
326
327
  headersSchema: ApiKeyHeadersSchema,
327
328
  queryParamsSchema: LimitCursorQuerySchema,
328
329
  responseBodySchema: TixIndexerUpcomingEventsResultSchema
330
+ }),
331
+ "get-events": defineClientRoute({
332
+ name: "get-events",
333
+ method: "GET",
334
+ routeKey: GET_EVENTS_ROUTE_KEY,
335
+ pathParamsSchema: NoPathParametersSchema,
336
+ buildPath: ({ baseApiUrl = "" }) => `${baseApiUrl}/events`,
337
+ headersSchema: ApiKeyHeadersSchema,
338
+ queryParamsSchema: LimitCursorQuerySchema,
339
+ responseBodySchema: TixIndexerUpcomingEventsResultSchema
340
+ }),
341
+ "get-event": defineClientRoute({
342
+ name: "get-event",
343
+ method: "GET",
344
+ routeKey: GET_EVENT_ROUTE_KEY,
345
+ pathParamsSchema: EventPathParametersSchema,
346
+ buildPath: ({ baseApiUrl = "", eventId }) => `${baseApiUrl}/events/${eventId}`,
347
+ headersSchema: ApiKeyHeadersSchema,
348
+ responseBodySchema: TixIndexerEventFoundSchema
349
+ }),
350
+ "get-integrator": defineClientRoute({
351
+ name: "get-integrator",
352
+ method: "GET",
353
+ routeKey: GET_INTEGRATOR_ROUTE_KEY,
354
+ pathParamsSchema: NoPathParametersSchema,
355
+ buildPath: ({ baseApiUrl = "" }) => `${baseApiUrl}/integrator`,
356
+ headersSchema: ApiKeyHeadersSchema,
357
+ responseBodySchema: GetIntegratorResponseSchema
329
358
  })
330
359
  };
331
360
 
@@ -425,7 +454,7 @@ var TransactionSubmissionStatusSchema = z12.enum([
425
454
  ]);
426
455
  var NullableTransactionSubmissionStatusSchema = TransactionSubmissionStatusSchema.nullable();
427
456
 
428
- // ../tdp-schemas/src/wallet-custody/claim-offers.ts
457
+ // ../tdp-schemas/src/wallet-custody/submission-responses.ts
429
458
  import { z as z14 } from "zod";
430
459
 
431
460
  // ../tdp-schemas/src/primitives/hashes.ts
@@ -434,42 +463,42 @@ var Sha256HexSchema = z13.hash("sha256", { enc: "hex" }).transform((v) => v);
434
463
  var Sha256BaseUrlSchema = z13.hash("sha256", { enc: "base64url" }).transform((v) => v);
435
464
  var HmacSha256BaseUrlSchema = z13.hash("sha256", { enc: "base64url" }).transform((v) => v);
436
465
 
466
+ // ../tdp-schemas/src/wallet-custody/submission-responses.ts
467
+ var SubmitTenantTransactionResponseSchema = z14.object({
468
+ custodialTransactionId: Sha256HexSchema,
469
+ transactionSignature: Signature,
470
+ status: NullableTransactionSubmissionStatusSchema,
471
+ failureReason: z14.string().min(1).optional()
472
+ });
473
+ var TransactionPathParametersSchema = z14.object({ id: Sha256HexSchema }).strict();
474
+
475
+ // ../tdp-schemas/src/wallet-custody/orders.ts
476
+ import { z as z15 } from "zod";
477
+
437
478
  // ../tdp-schemas/src/wallet-custody/const.ts
438
- var MAX_PERMITS_PER_CLAIM_WALLET = 10;
479
+ var MAX_PERMITS_PER_CLAIM_WALLET = 6;
439
480
 
440
- // ../tdp-schemas/src/wallet-custody/claim-offers.ts
441
- var AcceptClaimOffersSchema = AcceptOfferV2ParamsSchema.omit({
442
- buyer: true,
443
- integrator_identity: true,
444
- integrator_authority: true
445
- }).strict();
446
- var AcceptClaimOffersRequestBodySchema = z14.object({
447
- userSubject: z14.string().min(1),
448
- userEmail: z14.email(),
449
- offers: z14.array(AcceptClaimOffersSchema).min(1).max(MAX_PERMITS_PER_CLAIM_WALLET).superRefine(requireUniquePermitKeys)
481
+ // ../tdp-schemas/src/wallet-custody/orders.ts
482
+ var OrderIdSchema = IdempotencyKeyHeadersSchema.shape["idempotency-key"];
483
+ var OrderPathParametersSchema = z15.object({ id: OrderIdSchema }).strict();
484
+ var CreateAndSubmitOrderListingSchema = TicketPathParametersSchema;
485
+ var CreateAndSubmitOrderRequestBodySchema = z15.object({
486
+ userId: z15.string().min(1),
487
+ userEmail: z15.email(),
488
+ listings: z15.array(CreateAndSubmitOrderListingSchema).min(1).max(MAX_PERMITS_PER_CLAIM_WALLET).superRefine(requireUniquePermitKeys)
450
489
  });
451
- var AcceptClaimOffersResponseSchema = z14.object({
490
+ var CreateAndSubmitOrderResponseSchema = z15.object({
491
+ id: OrderIdSchema,
452
492
  status: NullableTransactionSubmissionStatusSchema,
453
- claimWallet: z14.object({
493
+ claimWallet: z15.object({
454
494
  address: Base58Address,
455
495
  claimWalletId: Sha256HexSchema
456
496
  }),
457
- claimUrl: z14.url(),
458
- failureReason: z14.string().min(1).optional()
459
- });
460
-
461
- // ../tdp-schemas/src/wallet-custody/submission-responses.ts
462
- import { z as z15 } from "zod";
463
- var SubmitTenantTransactionResponseSchema = z15.object({
464
- custodialTransactionId: Sha256HexSchema,
465
- transactionSignature: Signature,
466
- status: NullableTransactionSubmissionStatusSchema,
497
+ claimUrl: z15.url(),
467
498
  failureReason: z15.string().min(1).optional()
468
499
  });
469
-
470
- // ../tdp-schemas/src/wallet-custody/purchase-status.ts
471
- var GetPurchaseStatusResponseSchema = SubmitTenantTransactionResponseSchema.extend(
472
- AcceptClaimOffersResponseSchema.pick({ claimWallet: true }).shape
500
+ var GetOrderResponseSchema = SubmitTenantTransactionResponseSchema.extend(
501
+ CreateAndSubmitOrderResponseSchema.pick({ id: true, claimWallet: true }).shape
473
502
  );
474
503
 
475
504
  // ../tix-wire-schema/src/transactions.ts
@@ -546,30 +575,29 @@ export {
546
575
  PostTixIndexerIntegratorMetadataResultSchema,
547
576
  TixIndexerUpcomingEventsResultSchema,
548
577
  TixIndexerActiveListingsResultSchema,
578
+ GetIntegratorResponseSchema,
549
579
  LimitCursorQuerySchema,
550
580
  tixIndexerReadApiClientRoutes,
551
581
  WalletPathParametersSchema,
552
582
  GetAddressResponseSchema,
553
- requireUniquePermitKeys,
554
- AcceptOfferV2ParamsSchema,
555
583
  CancelListingV1ParamsSchema,
556
584
  ListTicketV2ParamsSchema,
557
- AcceptOfferV2InstructionBatchSchema,
558
585
  CancelListingV1InstructionBatchSchema,
559
586
  ListTicketV2InstructionBatchSchema,
560
587
  TixWireInstructionBatchSchema,
561
588
  TransactionSubmissionStatusSchema,
562
589
  NullableTransactionSubmissionStatusSchema,
563
- MAX_PERMITS_PER_CLAIM_WALLET,
564
- AcceptClaimOffersSchema,
565
- AcceptClaimOffersRequestBodySchema,
566
- AcceptClaimOffersResponseSchema,
567
590
  SubmitTenantTransactionResponseSchema,
568
- GetPurchaseStatusResponseSchema,
591
+ TransactionPathParametersSchema,
592
+ OrderPathParametersSchema,
593
+ CreateAndSubmitOrderListingSchema,
594
+ CreateAndSubmitOrderRequestBodySchema,
595
+ CreateAndSubmitOrderResponseSchema,
596
+ GetOrderResponseSchema,
569
597
  Base64WireEncodedTransactionSchema,
570
598
  SignTransactionResponseSchema,
571
599
  SignTenantTransactionRequestBodySchema,
572
600
  AdditionalSignaturesSchema,
573
601
  SubmitTenantTransactionRequestBodySchema
574
602
  };
575
- //# sourceMappingURL=chunk-QXWVXLHK.js.map
603
+ //# sourceMappingURL=chunk-MZKCWS5T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../tix-wire-schema/src/primitives.ts","../../tdp-schemas/src/solana/accounts.ts","../../tdp-schemas/src/tix-api/path-params.ts","../../tdp-schemas/src/solana-data-api/routes.ts","../../tdp-schemas/src/primitives/integrator-status-name.ts","../../tdp-schemas/src/routes/define-client-route.ts","../../tdp-schemas/src/routes/request-schemas.ts","../../tdp-schemas/src/tix-indexer-api/metadata.ts","../../tdp-schemas/src/tix-indexer-api/read-responses.ts","../../tdp-schemas/src/tix-indexer-api/read-routes.ts","../../tdp-schemas/src/wallet-custody/addresses.ts","../../tix-wire-schema/src/instructions.ts","../../tix-wire-schema/src/unique-permit-keys.ts","../../tdp-schemas/src/primitives/transaction-submission-status.ts","../../tdp-schemas/src/wallet-custody/submission-responses.ts","../../tdp-schemas/src/primitives/hashes.ts","../../tdp-schemas/src/wallet-custody/orders.ts","../../tdp-schemas/src/wallet-custody/const.ts","../../tix-wire-schema/src/transactions.ts","../../tdp-schemas/src/wallet-custody/signing-responses.ts","../../tdp-schemas/src/wallet-custody/transaction-inputs.ts"],"sourcesContent":["import {\n address as parseAddress,\n blockhash as parseBlockhash,\n signature as parseSignature,\n} from \"@solana/kit\";\nimport { z } from \"zod\";\n\nexport const U64_MAX = 18_446_744_073_709_551_615n;\nexport const I64_MAX = 9_223_372_036_854_775_807n;\nexport const I64_MIN = -9_223_372_036_854_775_808n;\nexport const U16_MAX = 65_535;\nexport const U32_MAX = 4_294_967_295;\n\nexport const BigIntU64 = z.bigint().nonnegative().max(U64_MAX);\n\nexport const BigIntI64 = z.bigint().min(I64_MIN).max(I64_MAX);\n\nexport const WireU64 = z\n .union([z.string().regex(/^\\d+$/), z.number().int(), z.bigint()])\n .transform(BigInt)\n .pipe(BigIntU64)\n .transform(String);\n\nexport const WireI64 = z\n .union([z.string().regex(/^-?\\d+$/), z.number().int(), z.bigint()])\n .transform(BigInt)\n .pipe(BigIntI64)\n .transform(String);\n\n// u16/u32 fit within JavaScript's safe-integer range and use JSON numbers.\nexport const WireU16 = z.number().int().min(0).max(U16_MAX);\n\nexport const WireU32 = z.number().int().min(0).max(U32_MAX);\n\n/** A base58 Solana address. */\nexport const Base58Address = z.string().transform((value, ctx) => {\n try {\n return parseAddress(value);\n } catch {\n ctx.addIssue({\n code: \"custom\",\n message: \"must be a base58-encoded Solana address\",\n });\n return z.NEVER;\n }\n});\n\n/** A base58 Solana blockhash. */\nexport const Blockhash = z.string().transform((value, ctx) => {\n try {\n return parseBlockhash(value);\n } catch {\n ctx.addIssue({\n code: \"custom\",\n message: \"must be a base58-encoded 32-byte Solana blockhash\",\n });\n return z.NEVER;\n }\n});\n\n/** A base58 Solana signature. */\nexport const Signature = z.string().transform((value, ctx) => {\n try {\n return parseSignature(value);\n } catch {\n ctx.addIssue({\n code: \"custom\",\n message: \"must be a base58-encoded 64-byte Solana signature\",\n });\n return z.NEVER;\n }\n});\n","import {\n Base58Address,\n WireI64,\n WireU64,\n} from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { z } from \"zod\";\n\n/** Outbound integers: the decoded bigint becomes a JSON-safe decimal string. */\nconst U64String = WireU64.transform(String);\nconst I64String = WireI64.transform(String);\nconst Address = Base58Address;\n\n/** Decoded on-chain accounts, keyed by their address, with `discriminator` and padding dropped. */\nexport const ListingV1ResponseSchema = z.object({\n address: Address,\n event_id: U64String,\n ticket_id: U64String,\n seller: Address,\n ask_price_minor: U64String,\n buyer_allow: Address,\n payout_ata: Address,\n expires_at: I64String,\n listed_at: I64String,\n permit_version: U64String,\n active: z.boolean(),\n});\n\nexport const EventV1ResponseSchema = z.object({\n address: Address,\n integrator: Address,\n integrator_authority: Address,\n royalty_bps: z.number().int(),\n min_royalty_floor: U64String,\n royalty_recipients_count: z.number().int(),\n royalty_recipients: z.array(\n z.object({ destination: Address, bps: z.number().int() }),\n ),\n total_supply: U64String,\n minted: U64String,\n flags: z.number().int(),\n});\n\nexport const PermitV1ResponseSchema = z.object({\n owner: Address,\n status: z.number().int(),\n ticket_type_id: z.number().int(),\n ticket_type_config: Address,\n version: U64String,\n ticket_id: U64String,\n listing_lock_expiry: I64String,\n});\n\nexport const ProtocolConfigV1ResponseSchema = z.object({\n address: Address,\n usdc_mint: Address,\n default_royalty_vault: Address,\n authority: Address,\n usdc_decimals: z.number().int(),\n event_registration_fee_minor: U64String,\n permit_fee_minor: U64String,\n p2p_transfer_fee_minor: U64String,\n resale_fee_bps: z.number().int(),\n});\n","import { Base58Address, WireU64 } from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { z } from \"zod\";\n\nexport const EventPathParametersSchema = z\n .object({ eventId: WireU64 })\n .strict();\n\nexport const TicketPathParametersSchema = EventPathParametersSchema.extend({\n ticketId: WireU64,\n});\n\nexport const IntegratorPathParametersSchema = z\n .object({ identity: Base58Address })\n .strict();\n","import { Base58Address, WireU64 } from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { z } from \"zod\";\nimport { IntegratorStatusNameSchema } from \"../primitives/integrator-status-name\";\nimport { defineClientRoute } from \"../routes/define-client-route\";\nimport {\n ApiKeyHeadersSchema,\n NoPathParametersSchema,\n} from \"../routes/request-schemas\";\nimport {\n EventV1ResponseSchema,\n ListingV1ResponseSchema,\n PermitV1ResponseSchema,\n ProtocolConfigV1ResponseSchema,\n} from \"../solana/accounts\";\nimport {\n EventPathParametersSchema,\n IntegratorPathParametersSchema,\n TicketPathParametersSchema,\n} from \"../tix-api/path-params\";\n\nexport const GET_EVENT_ACCOUNT_ROUTE_KEY = \"GET /events/{eventId}\";\nexport const GET_LISTING_ACCOUNT_ROUTE_KEY =\n \"GET /listings/{eventId}/{ticketId}\";\nexport const GET_PERMIT_ROUTE_KEY = \"GET /permits/{eventId}/{ticketId}\";\nexport const GET_PROTOCOL_CONFIG_ACCOUNT_ROUTE_KEY = \"GET /protocol-config\";\nexport const GET_INTEGRATOR_ACCOUNT_ROUTE_KEY = \"GET /integrators/{identity}\";\n\n/** A registered integrator only; an unregistered identity is a 404, never a null. */\nexport const IntegratorAccountResponseSchema = z.object({\n integrator_pda: Base58Address,\n integrator: z.object({\n authority: Base58Address,\n status: IntegratorStatusNameSchema,\n treasury_usdc: Base58Address,\n balance: z.object({\n amount_minor: WireU64,\n decimals: z.number().int().min(0),\n }),\n }),\n});\n\nexport const solanaDataApiClientRoutes = {\n \"get-event-account\": defineClientRoute({\n name: \"get-event-account\",\n method: \"GET\",\n routeKey: GET_EVENT_ACCOUNT_ROUTE_KEY,\n pathParamsSchema: EventPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\", eventId }) =>\n `${baseApiUrl}/events/${eventId}`,\n headersSchema: ApiKeyHeadersSchema,\n responseBodySchema: EventV1ResponseSchema,\n }),\n \"get-listing-account\": defineClientRoute({\n name: \"get-listing-account\",\n method: \"GET\",\n routeKey: GET_LISTING_ACCOUNT_ROUTE_KEY,\n pathParamsSchema: TicketPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\", eventId, ticketId }) =>\n `${baseApiUrl}/listings/${eventId}/${ticketId}`,\n headersSchema: ApiKeyHeadersSchema,\n responseBodySchema: ListingV1ResponseSchema,\n }),\n \"get-permit\": defineClientRoute({\n name: \"get-permit\",\n method: \"GET\",\n routeKey: GET_PERMIT_ROUTE_KEY,\n pathParamsSchema: TicketPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\", eventId, ticketId }) =>\n `${baseApiUrl}/permits/${eventId}/${ticketId}`,\n headersSchema: ApiKeyHeadersSchema,\n responseBodySchema: PermitV1ResponseSchema,\n }),\n \"get-protocol-config-account\": defineClientRoute({\n name: \"get-protocol-config-account\",\n method: \"GET\",\n routeKey: GET_PROTOCOL_CONFIG_ACCOUNT_ROUTE_KEY,\n pathParamsSchema: NoPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\" }) => `${baseApiUrl}/protocol-config`,\n headersSchema: ApiKeyHeadersSchema,\n responseBodySchema: ProtocolConfigV1ResponseSchema,\n }),\n \"get-integrator-account\": defineClientRoute({\n name: \"get-integrator-account\",\n method: \"GET\",\n routeKey: GET_INTEGRATOR_ACCOUNT_ROUTE_KEY,\n pathParamsSchema: IntegratorPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\", identity }) =>\n `${baseApiUrl}/integrators/${identity}`,\n headersSchema: ApiKeyHeadersSchema,\n responseBodySchema: IntegratorAccountResponseSchema,\n }),\n} as const;\n\nexport const responseBodySchemaByRouteKey = Object.fromEntries(\n Object.values(solanaDataApiClientRoutes).map(\n (route) => [route.routeKey, route.responseBodySchema] as const,\n ),\n) as Record<string, z.ZodType<Record<string, unknown>>>;\n","import { z } from \"zod\";\n\nexport const IntegratorStatusNameSchema = z.enum([\"Active\", \"Suspended\"]);\nexport type IntegratorStatusName = z.infer<typeof IntegratorStatusNameSchema>;\n","import type { z } from \"zod\";\n\n/** This type detects schema drift by requiring mutual assignability. */\nexport type ExactTypeMatch<TExpected, TActual, TError> =\n TExpected extends TActual\n ? TActual extends TExpected\n ? unknown\n : TError\n : TError;\n\n/**\n * This function defines a client route's request builders and response schema.\n * Callers should omit `requestBodySchema` for bodyless routes.\n */\nexport function defineClientRoute<\n TPathParamsSchema extends z.ZodType,\n THeadersSchema extends z.ZodType,\n TResponseBodySchema extends z.ZodType,\n TMethod extends string,\n TRouteKey extends `${TMethod} ${string}`,\n TRequestBodySchema extends z.ZodType | undefined = undefined,\n TQueryParamsSchema extends z.ZodType | undefined = undefined,\n>(spec: {\n name: string;\n method: TMethod;\n routeKey: TRouteKey;\n pathParamsSchema: TPathParamsSchema;\n buildPath: (\n args: z.infer<TPathParamsSchema> & { baseApiUrl?: string },\n ) => string;\n headersSchema: THeadersSchema;\n requestBodySchema?: TRequestBodySchema;\n queryParamsSchema?: TQueryParamsSchema;\n responseBodySchema: TResponseBodySchema;\n}) {\n return {\n ...spec,\n // Normalize a missing path-params arg to {} so callers don't have to pass anything, even if\n // there are no path-params args.\n buildPath: (\n args?: z.infer<TPathParamsSchema> & { baseApiUrl?: string },\n ): string =>\n spec.buildPath(\n args ?? ({} as z.infer<TPathParamsSchema> & { baseApiUrl?: string }),\n ),\n buildJsonPayload: (fields: z.input<NonNullable<TRequestBodySchema>>) => {\n if (!spec.requestBodySchema) {\n const msg =\n \"This path should be impossible to reach; \" +\n \"it's not possible to build a JSON payload for a bodyless route\";\n throw new TypeError(msg);\n }\n return JSON.stringify(spec.requestBodySchema.parse(fields));\n },\n buildHeaders: (headers: z.input<THeadersSchema>) =>\n spec.headersSchema.parse(headers) as z.output<THeadersSchema>,\n /** The `?k=v` suffix for a route's query params, empty when the route declares none or every value is undefined. */\n buildQueryString: (params: z.input<NonNullable<TQueryParamsSchema>>) => {\n const parsed = spec.queryParamsSchema?.parse(params) ?? {};\n const search = new URLSearchParams(\n Object.entries(parsed as Record<string, unknown>)\n .filter(([, value]) => value !== undefined && value !== null)\n .map(([key, value]) => [key, String(value)]),\n ).toString();\n return search ? `?${search}` : \"\";\n },\n };\n}\n\n/** Structural supertype of every {@link defineClientRoute} result. */\nexport type AnyClientRoute = {\n name: string;\n method: string;\n routeKey: string;\n pathParamsSchema: z.ZodType;\n headersSchema: z.ZodType;\n requestBodySchema?: unknown;\n queryParamsSchema?: unknown;\n responseBodySchema: z.ZodType;\n buildPath: (args: never) => string;\n buildJsonPayload: (fields: never) => string;\n buildHeaders: (headers: never) => unknown;\n buildQueryString: (params: never) => string;\n};\n","import { z } from \"zod\";\n\nexport const MISSING_API_KEY_MESSAGE = \"Invalid or missing API key in headers.\";\n\nexport const ApiKeyHeadersSchema = z.object({\n \"x-api-key\": z\n .string(MISSING_API_KEY_MESSAGE)\n .min(1, MISSING_API_KEY_MESSAGE),\n});\n\nexport const IdempotencyKeyHeadersSchema = z.object({\n \"idempotency-key\": z.string().min(1).max(255),\n});\n\nexport const IdempotencyKeyAndApiKeyHeadersSchema = ApiKeyHeadersSchema.extend(\n IdempotencyKeyHeadersSchema.shape,\n);\n\n/** For routes that carry no path parameters (`null`/absent on the wire). */\nexport const NoPathParametersSchema = z\n .record(z.string(), z.string())\n .nullish();\n\n/** For routes with no headers. */\nexport const NoHeadersSchema = z.object({}).optional();\n","import { z } from \"zod\";\n\nexport const PostIntegratorMetadataRequestBodySchema = z\n .object({\n name: z.string().optional(),\n start_at: z.string().optional(),\n on_sale_at: z.string().optional(),\n image_url: z.string().optional(),\n timezone: z.string().optional(),\n address: z.string().optional(),\n venue: z.string().optional(),\n genres: z.array(z.string()).optional(),\n } satisfies z.ZodRawShape)\n .strict();\n\nexport const PostTixIndexerIntegratorMetadataResultSchema = z\n .object({\n status: z.literal(\"ok\"),\n event_account: z.string().min(1),\n updated_at: z.string().min(1),\n })\n .strict();\n\nexport type PostTixIndexerIntegratorMetadataResult = z.infer<\n typeof PostTixIndexerIntegratorMetadataResultSchema\n>;\n","import { Base58Address, WireU64 } from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { z } from \"zod\";\n\nconst NullableStringSchema = z.string().nullable();\n\nexport const TixIndexerEventFoundSchema = z\n .object({\n event_account: z.string().min(1),\n event_id: WireU64.nullable(),\n name: NullableStringSchema,\n start_at: NullableStringSchema,\n on_sale_at: NullableStringSchema,\n image_url: NullableStringSchema,\n timezone: NullableStringSchema,\n address: NullableStringSchema,\n venue: NullableStringSchema,\n active_listing_count: z.number().nonnegative(),\n tickets_issued_count: z.number().nonnegative(),\n integrator_identity: NullableStringSchema,\n updated_at: NullableStringSchema,\n found: z.literal(true),\n genres: z.array(z.string()).nullable(),\n })\n .strict();\n\nexport const TixIndexerUpcomingEventsResultSchema = z\n .object({\n items: z.array(TixIndexerEventFoundSchema),\n next_cursor: NullableStringSchema,\n })\n .strict();\n\nexport type TixIndexerUpcomingEventsResult = z.infer<\n typeof TixIndexerUpcomingEventsResultSchema\n>;\n\nexport const TixIndexerActiveListingsResultSchema = z\n .object({\n items: z.array(\n z\n .object({\n event_account: NullableStringSchema,\n event_id: WireU64.nullable(),\n listing_id: NullableStringSchema,\n ticket_id: WireU64.nullable(),\n seller: NullableStringSchema,\n buyer_allow: NullableStringSchema,\n ask_price_minor: NullableStringSchema,\n payout_ata: NullableStringSchema,\n expires_at: NullableStringSchema,\n updated_at: NullableStringSchema,\n })\n .strict(),\n ),\n next_cursor: NullableStringSchema,\n })\n .strict();\n\nexport type TixIndexerActiveListingsResult = z.infer<\n typeof TixIndexerActiveListingsResultSchema\n>;\n\n/** The wallet address of the API key's primary integrator. */\nexport const GetIntegratorResponseSchema = z.object({ address: Base58Address });\n\nexport type GetIntegratorResponse = z.infer<typeof GetIntegratorResponseSchema>;\n","import { WireU64 } from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { z } from \"zod\";\nimport { defineClientRoute } from \"../routes/define-client-route\";\nimport {\n ApiKeyHeadersSchema,\n NoPathParametersSchema,\n} from \"../routes/request-schemas\";\nimport { EventPathParametersSchema } from \"../tix-api/path-params\";\nimport {\n GetIntegratorResponseSchema,\n TixIndexerActiveListingsResultSchema,\n TixIndexerEventFoundSchema,\n TixIndexerUpcomingEventsResultSchema,\n} from \"./read-responses\";\n\nexport const GET_ACTIVE_LISTINGS_ROUTE_KEY = \"GET /listings/active\";\nexport const GET_UPCOMING_EVENTS_ROUTE_KEY = \"GET /events/upcoming\";\nexport const GET_EVENTS_ROUTE_KEY = \"GET /events\";\nexport const GET_EVENT_ROUTE_KEY = \"GET /events/{eventId}\";\nexport const GET_INTEGRATOR_ROUTE_KEY = \"GET /integrator\";\n\n/** Query-string values arrive as strings, hence the coercion. */\nexport const LimitCursorQuerySchema = z.object({\n limit: z.coerce.number().int().min(1).max(500).optional(),\n cursor: z.string().min(1).optional(),\n});\n\nexport const ActiveListingsQuerySchema = LimitCursorQuerySchema.extend({\n eventId: WireU64,\n});\n\nexport const tixIndexerReadApiClientRoutes = {\n \"get-active-listings\": defineClientRoute({\n name: \"get-active-listings\",\n method: \"GET\",\n routeKey: GET_ACTIVE_LISTINGS_ROUTE_KEY,\n pathParamsSchema: NoPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\" }) => `${baseApiUrl}/listings/active`,\n headersSchema: ApiKeyHeadersSchema,\n queryParamsSchema: ActiveListingsQuerySchema,\n responseBodySchema: TixIndexerActiveListingsResultSchema,\n }),\n \"get-upcoming-events\": defineClientRoute({\n name: \"get-upcoming-events\",\n method: \"GET\",\n routeKey: GET_UPCOMING_EVENTS_ROUTE_KEY,\n pathParamsSchema: NoPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\" }) => `${baseApiUrl}/events/upcoming`,\n headersSchema: ApiKeyHeadersSchema,\n queryParamsSchema: LimitCursorQuerySchema,\n responseBodySchema: TixIndexerUpcomingEventsResultSchema,\n }),\n \"get-events\": defineClientRoute({\n name: \"get-events\",\n method: \"GET\",\n routeKey: GET_EVENTS_ROUTE_KEY,\n pathParamsSchema: NoPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\" }) => `${baseApiUrl}/events`,\n headersSchema: ApiKeyHeadersSchema,\n queryParamsSchema: LimitCursorQuerySchema,\n responseBodySchema: TixIndexerUpcomingEventsResultSchema,\n }),\n \"get-event\": defineClientRoute({\n name: \"get-event\",\n method: \"GET\",\n routeKey: GET_EVENT_ROUTE_KEY,\n pathParamsSchema: EventPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\", eventId }) =>\n `${baseApiUrl}/events/${eventId}`,\n headersSchema: ApiKeyHeadersSchema,\n responseBodySchema: TixIndexerEventFoundSchema,\n }),\n \"get-integrator\": defineClientRoute({\n name: \"get-integrator\",\n method: \"GET\",\n routeKey: GET_INTEGRATOR_ROUTE_KEY,\n pathParamsSchema: NoPathParametersSchema,\n buildPath: ({ baseApiUrl = \"\" }) => `${baseApiUrl}/integrator`,\n headersSchema: ApiKeyHeadersSchema,\n responseBodySchema: GetIntegratorResponseSchema,\n }),\n} as const;\n","import { Base58Address } from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { z } from \"zod\";\n\nexport const WalletPathParametersSchema = z\n .object({ subject: z.string().min(1) })\n .strict();\nexport type UserWalletPathParameters = z.infer<\n typeof WalletPathParametersSchema\n>;\n\nexport const GetAddressResponseSchema = z.object({ address: Base58Address });\n","import { z } from \"zod\";\nimport { Base58Address, WireI64, WireU64 } from \"./primitives\";\nimport { requireUniquePermitKeys } from \"./unique-permit-keys\";\n\nexport { requireUniquePermitKeys } from \"./unique-permit-keys\";\n\nexport const AcceptOfferV2ParamsSchema = z.object({\n event_id: WireU64,\n ticket_id: WireU64,\n permit_version: WireU64,\n buyer: Base58Address,\n /**\n * *Authority* for the facilitating integrator's identity. The only required\n * signature: its treasury funds the purchase, so there is no payer.\n */\n integrator_authority: Base58Address,\n seller_payout: Base58Address,\n royalty_destinations: z.array(Base58Address),\n ticket_type_config: Base58Address.nullable().optional(),\n /**\n * Identity of the facilitating integrator, which need not be the event's.\n * Not the PDA, not *necessarily* the authority.\n */\n integrator_identity: Base58Address,\n usdc_mint: Base58Address,\n});\n\nexport const CancelListingV1ParamsSchema = z.object({\n event_id: WireU64,\n ticket_id: WireU64,\n canceller: Base58Address,\n});\n\nexport const ListTicketV2ParamsSchema = z.object({\n seller: Base58Address,\n storage_fee_payer: Base58Address,\n listing_integrator_identity: Base58Address,\n listing_integrator_authority: Base58Address,\n usdc_mint: Base58Address,\n event_id: WireU64,\n ticket_id: WireU64,\n ask_price_minor: WireU64,\n buyer_allow: Base58Address.nullable().optional(),\n payout_ata: Base58Address,\n expires_at: WireI64,\n ticket_type_config: Base58Address.nullable().optional(),\n});\n\nexport const AcceptOfferV2InstructionBatchSchema = z.object({\n instruction: z.literal(\"accept_offer_v2\"),\n params: z\n .array(AcceptOfferV2ParamsSchema)\n .min(1)\n .superRefine(requireUniquePermitKeys),\n});\n\nexport const CancelListingV1InstructionBatchSchema = z.object({\n instruction: z.literal(\"cancel_listing_v1\"),\n params: z\n .array(CancelListingV1ParamsSchema)\n .min(1)\n .superRefine(requireUniquePermitKeys),\n});\n\nexport const ListTicketV2InstructionBatchSchema = z.object({\n instruction: z.literal(\"list_ticket_v2\"),\n params: z\n .array(ListTicketV2ParamsSchema)\n .min(1)\n .superRefine(requireUniquePermitKeys),\n});\n\n/** The wallet custody API accepts batches of one supported TIX instruction kind. */\nexport const TixWireInstructionBatchSchema = z.discriminatedUnion(\n \"instruction\",\n [\n AcceptOfferV2InstructionBatchSchema,\n CancelListingV1InstructionBatchSchema,\n ListTicketV2InstructionBatchSchema,\n ],\n);\n\nexport type TixWireInstructionBatch = z.infer<\n typeof TixWireInstructionBatchSchema\n>;\nexport type TixInstructionTag = TixWireInstructionBatch[\"instruction\"];\nexport type TixWireInstructionBatchVariant<T extends TixInstructionTag> =\n Extract<TixWireInstructionBatch, { instruction: T }>;\nexport type TixWireInstructionParams<T extends TixInstructionTag> =\n TixWireInstructionBatchVariant<T>[\"params\"][number];\n","import type z from \"zod\";\nimport type { WireU64 } from \"./primitives\";\n\ntype WireU64Type = z.infer<typeof WireU64>;\n\nexport type PermitKey = ReturnType<typeof toPermitKey>;\n\nexport type AnyPermitKeyInput =\n | { event_id: WireU64Type; ticket_id: WireU64Type }\n | { eventId: WireU64Type; ticketId: WireU64Type };\n\nexport function toPermitKey(params: AnyPermitKeyInput) {\n const { eventId, ticketId } = normalizeAnyPermitKey(params);\n return `event_id:${eventId}#ticket_id:${ticketId}` as const;\n}\n\nexport function requireUniquePermitKeys(\n keys: AnyPermitKeyInput[],\n ctx: z.RefinementCtx,\n) {\n const stableKeys = keys\n .map(normalizeAnyPermitKey)\n .map(({ eventId, ticketId }) => JSON.stringify([eventId, ticketId]));\n\n if (new Set(stableKeys).size !== keys.length) {\n ctx.addIssue({\n code: \"custom\",\n message: \"All (event_id, ticket_id) pairs must be unique\",\n });\n }\n}\n\nexport function normalizeAnyPermitKey(params: AnyPermitKeyInput) {\n return {\n eventId: \"event_id\" in params ? params.event_id : params.eventId,\n ticketId: \"ticket_id\" in params ? params.ticket_id : params.ticketId,\n };\n}\n","import { z } from \"zod\";\n\nexport const TransactionSubmissionStatusSchema = z.enum([\n \"processing\",\n \"confirmed\",\n \"landed_with_error\",\n \"expired\",\n]);\nexport type TransactionSubmissionStatus = z.infer<\n typeof TransactionSubmissionStatusSchema\n>;\n\n/** A null status means no submission has been recorded. */\nexport const NullableTransactionSubmissionStatusSchema =\n TransactionSubmissionStatusSchema.nullable();\nexport type NullableTransactionSubmissionStatus = z.infer<\n typeof NullableTransactionSubmissionStatusSchema\n>;\n","import { Signature } from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { z } from \"zod\";\nimport { Sha256HexSchema } from \"../primitives/hashes\";\nimport { NullableTransactionSubmissionStatusSchema } from \"../primitives/transaction-submission-status\";\n\nexport const SubmitTenantTransactionResponseSchema = z.object({\n custodialTransactionId: Sha256HexSchema,\n transactionSignature: Signature,\n status: NullableTransactionSubmissionStatusSchema,\n failureReason: z.string().min(1).optional(),\n});\n\nexport const TransactionPathParametersSchema = z\n .object({ id: Sha256HexSchema })\n .strict();\n","import z from \"zod\";\nimport type { Brand } from \"./brand\";\n\nexport type Sha256Hex = Brand<string, \"Sha256Hex\">;\nexport type Sha256Base64Url = Brand<string, \"Sha256Base64Url\">;\nexport type HmacSha256Base64Url = Brand<string, \"HmacSha256Base64Url\">;\n\nexport const Sha256HexSchema = z\n .hash(\"sha256\", { enc: \"hex\" })\n .transform((v) => v as Sha256Hex);\n\nexport const Sha256BaseUrlSchema = z\n .hash(\"sha256\", { enc: \"base64url\" })\n .transform((v) => v as Sha256Base64Url);\n\n/**\n * Functionally the exact same as {@link Sha256BaseUrlSchema}, but with a branded type for when\n * the hash is known to be produced from `createHmac`.\n *\n * To clarify: this performs no additional checks, it only brands the output differently.\n */\nexport const HmacSha256BaseUrlSchema = z\n .hash(\"sha256\", { enc: \"base64url\" })\n .transform((v) => v as HmacSha256Base64Url);\n","import { requireUniquePermitKeys } from \"@kyd-labs/tix-wire-schema/instructions\";\nimport { Base58Address } from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { z } from \"zod\";\nimport { Sha256HexSchema } from \"../primitives/hashes\";\nimport { NullableTransactionSubmissionStatusSchema } from \"../primitives/transaction-submission-status\";\nimport { IdempotencyKeyHeadersSchema } from \"../routes/request-schemas\";\nimport { TicketPathParametersSchema } from \"../tix-api/path-params\";\nimport { MAX_PERMITS_PER_CLAIM_WALLET } from \"./const\";\nimport { SubmitTenantTransactionResponseSchema } from \"./submission-responses\";\n\n/** An order's id is the idempotency key of the `POST /orders` request that created it. */\nexport const OrderIdSchema =\n IdempotencyKeyHeadersSchema.shape[\"idempotency-key\"];\n\nexport const OrderPathParametersSchema = z\n .object({ id: OrderIdSchema })\n .strict();\n\n/** A listed ticket to buy. The server reads its listing, permit, event and the protocol config. */\nexport const CreateAndSubmitOrderListingSchema = TicketPathParametersSchema;\n\nexport const CreateAndSubmitOrderRequestBodySchema = z.object({\n userId: z.string().min(1),\n userEmail: z.email(),\n listings: z\n .array(CreateAndSubmitOrderListingSchema)\n .min(1)\n .max(MAX_PERMITS_PER_CLAIM_WALLET)\n .superRefine(requireUniquePermitKeys),\n});\n\nexport const CreateAndSubmitOrderResponseSchema = z.object({\n id: OrderIdSchema,\n status: NullableTransactionSubmissionStatusSchema,\n claimWallet: z.object({\n address: Base58Address,\n claimWalletId: Sha256HexSchema,\n }),\n claimUrl: z.url(),\n failureReason: z.string().min(1).optional(),\n});\n\nexport type CreateAndSubmitOrderResponse = z.infer<\n typeof CreateAndSubmitOrderResponseSchema\n>;\n\nexport const GetOrderResponseSchema =\n SubmitTenantTransactionResponseSchema.extend(\n CreateAndSubmitOrderResponseSchema.pick({ id: true, claimWallet: true })\n .shape,\n );\n\nexport type GetOrderResponse = z.infer<typeof GetOrderResponseSchema>;\n","/** KYD accepts at most this many tickets in one claim, so a claim wallet may hold no more. */\nexport const MAX_PERMITS_PER_CLAIM_WALLET = 6;\n","import {\n type Base64EncodedWireTransaction,\n getBase64Encoder,\n getTransactionDecoder,\n} from \"@solana/kit\";\nimport { z } from \"zod\";\n\nexport const Base64WireEncodedTransactionSchema = z\n .base64()\n .min(1)\n .transform((value, ctx) => {\n try {\n getTransactionDecoder().decode(getBase64Encoder().encode(value));\n return value as Base64EncodedWireTransaction;\n } catch {\n ctx.addIssue({\n code: \"custom\",\n message: \"must be a base64-encoded Solana transaction string\",\n });\n return z.NEVER;\n }\n });\n","import {\n Base58Address,\n Blockhash,\n Signature,\n} from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { Base64WireEncodedTransactionSchema } from \"@kyd-labs/tix-wire-schema/transactions\";\nimport { z } from \"zod\";\nimport { Sha256HexSchema } from \"../primitives/hashes\";\nexport const SignTransactionResponseSchema = z.object({\n custodialTransactionId: Sha256HexSchema,\n signerAddress: Base58Address,\n feePayerAddress: Base58Address,\n signedTransaction: Base64WireEncodedTransactionSchema,\n message: z.string().min(1),\n signature: Signature,\n feePayerSignature: Signature,\n requiredSigners: z.array(Base58Address),\n recentBlockhash: Blockhash,\n});\n","import { TixWireInstructionBatchSchema } from \"@kyd-labs/tix-wire-schema/instructions\";\nimport { Base58Address, Signature } from \"@kyd-labs/tix-wire-schema/primitives\";\nimport { Base64WireEncodedTransactionSchema } from \"@kyd-labs/tix-wire-schema/transactions\";\nimport { z } from \"zod\";\n\nexport const SignTenantTransactionRequestBodySchema = z.object({\n tixInstructions: TixWireInstructionBatchSchema,\n});\n\nexport const AdditionalSignaturesSchema = z\n .array(\n z.object({\n address: Base58Address,\n signature: Signature,\n }),\n )\n .default([]);\n\nexport const SubmitTenantTransactionRequestBodySchema = z.object({\n signedTransaction: Base64WireEncodedTransactionSchema,\n additionalSignatures: AdditionalSignaturesSchema,\n});\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z"]}
package/dist/errors.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
 
3
3
  type WalletCustodyApiErrorKind = "http-status" | "response-validation";
4
- declare class WalletCustodyApiError extends Error {
4
+ declare class TdpApiError extends Error {
5
5
  readonly kind: WalletCustodyApiErrorKind;
6
6
  readonly route: string;
7
7
  readonly method: string;
@@ -9,8 +9,10 @@ declare class WalletCustodyApiError extends Error {
9
9
  readonly status: number;
10
10
  readonly statusText: string;
11
11
  readonly payload: unknown;
12
+ readonly code?: string;
13
+ readonly requestId?: string;
12
14
  readonly validationError?: z.ZodError;
13
- constructor({ kind, route, method, path, status, statusText, payload, validationError, }: {
15
+ constructor({ kind, route, method, path, status, statusText, payload, code, requestId, validationError, }: {
14
16
  kind: WalletCustodyApiErrorKind;
15
17
  route: string;
16
18
  method: string;
@@ -18,8 +20,17 @@ declare class WalletCustodyApiError extends Error {
18
20
  status: number;
19
21
  statusText: string;
20
22
  payload: unknown;
23
+ code?: string;
24
+ requestId?: string;
21
25
  validationError?: z.ZodError;
22
26
  });
23
27
  }
28
+ declare class TdpResponseValidationError extends TdpApiError {
29
+ name: string;
30
+ }
31
+ /** @deprecated Renamed to TdpApiError in 0.4.0. */
32
+ declare const WalletCustodyApiError: typeof TdpApiError;
33
+ /** @deprecated Renamed to TdpApiError in 0.4.0. */
34
+ type WalletCustodyApiError = TdpApiError;
24
35
 
25
- export { WalletCustodyApiError, type WalletCustodyApiErrorKind };
36
+ export { TdpApiError, TdpResponseValidationError, WalletCustodyApiError, type WalletCustodyApiErrorKind };
package/dist/errors.js CHANGED
@@ -1,7 +1,11 @@
1
1
  import {
2
+ TdpApiError,
3
+ TdpResponseValidationError,
2
4
  WalletCustodyApiError
3
- } from "./chunk-RLIW34CX.js";
5
+ } from "./chunk-7IWD2KHF.js";
4
6
  export {
7
+ TdpApiError,
8
+ TdpResponseValidationError,
5
9
  WalletCustodyApiError
6
10
  };
7
11
  //# sourceMappingURL=errors.js.map