@tixprotocol/tdp-sdk 0.2.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.
@@ -0,0 +1,563 @@
1
+ // ../tix-wire-schema/src/primitives.ts
2
+ import {
3
+ address as parseAddress,
4
+ blockhash as parseBlockhash,
5
+ signature as parseSignature
6
+ } from "@solana/kit";
7
+ import { z } from "zod";
8
+ var U64_MAX = 18446744073709551615n;
9
+ var I64_MAX = 9223372036854775807n;
10
+ var I64_MIN = -9223372036854775808n;
11
+ var U16_MAX = 65535;
12
+ var U32_MAX = 4294967295;
13
+ var BigIntU64 = z.bigint().nonnegative().max(U64_MAX);
14
+ var BigIntI64 = z.bigint().min(I64_MIN).max(I64_MAX);
15
+ var WireU64 = z.union([z.string().regex(/^\d+$/), z.number().int(), z.bigint()]).transform(BigInt).pipe(BigIntU64).transform(String);
16
+ var WireI64 = z.union([z.string().regex(/^-?\d+$/), z.number().int(), z.bigint()]).transform(BigInt).pipe(BigIntI64).transform(String);
17
+ var WireU16 = z.number().int().min(0).max(U16_MAX);
18
+ var WireU32 = z.number().int().min(0).max(U32_MAX);
19
+ var Base58Address = z.string().transform((value, ctx) => {
20
+ try {
21
+ return parseAddress(value);
22
+ } catch {
23
+ ctx.addIssue({
24
+ code: "custom",
25
+ message: "must be a base58-encoded Solana address"
26
+ });
27
+ return z.NEVER;
28
+ }
29
+ });
30
+ var Blockhash = z.string().transform((value, ctx) => {
31
+ try {
32
+ return parseBlockhash(value);
33
+ } catch {
34
+ ctx.addIssue({
35
+ code: "custom",
36
+ message: "must be a base58-encoded 32-byte Solana blockhash"
37
+ });
38
+ return z.NEVER;
39
+ }
40
+ });
41
+ var Signature = z.string().transform((value, ctx) => {
42
+ try {
43
+ return parseSignature(value);
44
+ } catch {
45
+ ctx.addIssue({
46
+ code: "custom",
47
+ message: "must be a base58-encoded 64-byte Solana signature"
48
+ });
49
+ return z.NEVER;
50
+ }
51
+ });
52
+
53
+ // ../tdp-schemas/src/solana/accounts.ts
54
+ import { z as z2 } from "zod";
55
+ var U64String = WireU64.transform(String);
56
+ var I64String = WireI64.transform(String);
57
+ var Address = Base58Address;
58
+ var ListingV1ResponseSchema = z2.object({
59
+ address: Address,
60
+ event_id: U64String,
61
+ ticket_id: U64String,
62
+ seller: Address,
63
+ ask_price_minor: U64String,
64
+ buyer_allow: Address,
65
+ payout_ata: Address,
66
+ expires_at: I64String,
67
+ listed_at: I64String,
68
+ permit_version: U64String,
69
+ active: z2.boolean()
70
+ });
71
+ var EventV1ResponseSchema = z2.object({
72
+ address: Address,
73
+ integrator: Address,
74
+ integrator_authority: Address,
75
+ royalty_bps: z2.number().int(),
76
+ min_royalty_floor: U64String,
77
+ royalty_recipients_count: z2.number().int(),
78
+ royalty_recipients: z2.array(
79
+ z2.object({ destination: Address, bps: z2.number().int() })
80
+ ),
81
+ total_supply: U64String,
82
+ minted: U64String,
83
+ flags: z2.number().int()
84
+ });
85
+ var PermitV1ResponseSchema = z2.object({
86
+ owner: Address,
87
+ status: z2.number().int(),
88
+ ticket_type_id: z2.number().int(),
89
+ version: U64String,
90
+ ticket_id: U64String,
91
+ listing_lock_expiry: I64String
92
+ });
93
+ var ProtocolConfigV1ResponseSchema = z2.object({
94
+ address: Address,
95
+ usdc_mint: Address,
96
+ default_royalty_vault: Address,
97
+ authority: Address,
98
+ usdc_decimals: z2.number().int(),
99
+ event_registration_fee_minor: U64String,
100
+ permit_fee_minor: U64String,
101
+ p2p_transfer_fee_minor: U64String,
102
+ resale_fee_bps: z2.number().int()
103
+ });
104
+
105
+ // ../tdp-schemas/src/tix-api/path-params.ts
106
+ import { z as z3 } from "zod";
107
+ var EventPathParametersSchema = z3.object({ eventId: WireU64 }).strict();
108
+ var TicketPathParametersSchema = EventPathParametersSchema.extend({
109
+ ticketId: WireU64
110
+ });
111
+ var IntegratorPathParametersSchema = z3.object({ identity: Base58Address }).strict();
112
+
113
+ // ../tdp-schemas/src/solana-data-api/routes.ts
114
+ import { z as z6 } from "zod";
115
+
116
+ // ../tdp-schemas/src/primitives/integrator-status-name.ts
117
+ import { z as z4 } from "zod";
118
+ var IntegratorStatusNameSchema = z4.enum(["Active", "Suspended"]);
119
+
120
+ // ../tdp-schemas/src/routes/define-client-route.ts
121
+ function defineClientRoute(spec) {
122
+ return {
123
+ ...spec,
124
+ // Normalize a missing path-params arg to {} so callers don't have to pass anything, even if
125
+ // there are no path-params args.
126
+ buildPath: (args) => spec.buildPath(
127
+ args ?? {}
128
+ ),
129
+ buildJsonPayload: (fields) => {
130
+ if (!spec.requestBodySchema) {
131
+ const msg = "This path should be impossible to reach; it's not possible to build a JSON payload for a bodyless route";
132
+ throw new TypeError(msg);
133
+ }
134
+ return JSON.stringify(spec.requestBodySchema.parse(fields));
135
+ },
136
+ buildHeaders: (headers) => spec.headersSchema.parse(headers),
137
+ /** The `?k=v` suffix for a route's query params, empty when the route declares none or every value is undefined. */
138
+ buildQueryString: (params) => {
139
+ const parsed = spec.queryParamsSchema?.parse(params) ?? {};
140
+ const search = new URLSearchParams(
141
+ Object.entries(parsed).filter(([, value]) => value !== void 0 && value !== null).map(([key, value]) => [key, String(value)])
142
+ ).toString();
143
+ return search ? `?${search}` : "";
144
+ }
145
+ };
146
+ }
147
+
148
+ // ../tdp-schemas/src/routes/request-schemas.ts
149
+ import { z as z5 } from "zod";
150
+ var MISSING_API_KEY_MESSAGE = "Invalid or missing API key in headers.";
151
+ var ApiKeyHeadersSchema = z5.object({
152
+ "x-api-key": z5.string(MISSING_API_KEY_MESSAGE).min(1, MISSING_API_KEY_MESSAGE)
153
+ });
154
+ var IdempotencyKeyHeadersSchema = z5.object({
155
+ "idempotency-key": z5.string().min(1).max(255)
156
+ });
157
+ var IdempotencyKeyAndApiKeyHeadersSchema = ApiKeyHeadersSchema.extend(
158
+ IdempotencyKeyHeadersSchema.shape
159
+ );
160
+ var NoPathParametersSchema = z5.record(z5.string(), z5.string()).nullish();
161
+ var NoHeadersSchema = z5.object({}).optional();
162
+
163
+ // ../tdp-schemas/src/solana-data-api/routes.ts
164
+ var GET_EVENT_ACCOUNT_ROUTE_KEY = "GET /events/{eventId}";
165
+ var GET_LISTING_ACCOUNT_ROUTE_KEY = "GET /listings/{eventId}/{ticketId}";
166
+ var GET_PERMIT_ROUTE_KEY = "GET /permits/{eventId}/{ticketId}";
167
+ var GET_PROTOCOL_CONFIG_ACCOUNT_ROUTE_KEY = "GET /protocol-config";
168
+ var GET_INTEGRATOR_ACCOUNT_ROUTE_KEY = "GET /integrators/{identity}";
169
+ var IntegratorAccountResponseSchema = z6.object({
170
+ integrator_pda: Base58Address,
171
+ integrator: z6.object({
172
+ authority: Base58Address,
173
+ status: IntegratorStatusNameSchema,
174
+ treasury_usdc: Base58Address,
175
+ balance: z6.object({
176
+ amount_minor: WireU64,
177
+ decimals: z6.number().int().min(0)
178
+ })
179
+ })
180
+ });
181
+ var solanaDataApiClientRoutes = {
182
+ "get-event-account": defineClientRoute({
183
+ name: "get-event-account",
184
+ method: "GET",
185
+ routeKey: GET_EVENT_ACCOUNT_ROUTE_KEY,
186
+ pathParamsSchema: EventPathParametersSchema,
187
+ buildPath: ({ baseApiUrl = "", eventId }) => `${baseApiUrl}/events/${eventId}`,
188
+ headersSchema: ApiKeyHeadersSchema,
189
+ responseBodySchema: EventV1ResponseSchema
190
+ }),
191
+ "get-listing-account": defineClientRoute({
192
+ name: "get-listing-account",
193
+ method: "GET",
194
+ routeKey: GET_LISTING_ACCOUNT_ROUTE_KEY,
195
+ pathParamsSchema: TicketPathParametersSchema,
196
+ buildPath: ({ baseApiUrl = "", eventId, ticketId }) => `${baseApiUrl}/listings/${eventId}/${ticketId}`,
197
+ headersSchema: ApiKeyHeadersSchema,
198
+ responseBodySchema: ListingV1ResponseSchema
199
+ }),
200
+ "get-permit": defineClientRoute({
201
+ name: "get-permit",
202
+ method: "GET",
203
+ routeKey: GET_PERMIT_ROUTE_KEY,
204
+ pathParamsSchema: TicketPathParametersSchema,
205
+ buildPath: ({ baseApiUrl = "", eventId, ticketId }) => `${baseApiUrl}/permits/${eventId}/${ticketId}`,
206
+ headersSchema: ApiKeyHeadersSchema,
207
+ responseBodySchema: PermitV1ResponseSchema
208
+ }),
209
+ "get-protocol-config-account": defineClientRoute({
210
+ name: "get-protocol-config-account",
211
+ method: "GET",
212
+ routeKey: GET_PROTOCOL_CONFIG_ACCOUNT_ROUTE_KEY,
213
+ pathParamsSchema: NoPathParametersSchema,
214
+ buildPath: ({ baseApiUrl = "" }) => `${baseApiUrl}/protocol-config`,
215
+ headersSchema: ApiKeyHeadersSchema,
216
+ responseBodySchema: ProtocolConfigV1ResponseSchema
217
+ }),
218
+ "get-integrator-account": defineClientRoute({
219
+ name: "get-integrator-account",
220
+ method: "GET",
221
+ routeKey: GET_INTEGRATOR_ACCOUNT_ROUTE_KEY,
222
+ pathParamsSchema: IntegratorPathParametersSchema,
223
+ buildPath: ({ baseApiUrl = "", identity }) => `${baseApiUrl}/integrators/${identity}`,
224
+ headersSchema: ApiKeyHeadersSchema,
225
+ responseBodySchema: IntegratorAccountResponseSchema
226
+ })
227
+ };
228
+ var responseBodySchemaByRouteKey = Object.fromEntries(
229
+ Object.values(solanaDataApiClientRoutes).map(
230
+ (route) => [route.routeKey, route.responseBodySchema]
231
+ )
232
+ );
233
+
234
+ // ../tdp-schemas/src/tix-indexer-api/metadata.ts
235
+ import { z as z7 } from "zod";
236
+ var PostIntegratorMetadataRequestBodySchema = z7.object({
237
+ name: z7.string().optional(),
238
+ start_at: z7.string().optional(),
239
+ on_sale_at: z7.string().optional(),
240
+ image_url: z7.string().optional(),
241
+ timezone: z7.string().optional(),
242
+ address: z7.string().optional(),
243
+ venue: z7.string().optional(),
244
+ genres: z7.array(z7.string()).optional()
245
+ }).strict();
246
+ var PostTixIndexerIntegratorMetadataResultSchema = z7.object({
247
+ status: z7.literal("ok"),
248
+ event_account: z7.string().min(1),
249
+ updated_at: z7.string().min(1)
250
+ }).strict();
251
+
252
+ // ../tdp-schemas/src/tix-indexer-api/read-responses.ts
253
+ import { z as z8 } from "zod";
254
+ var NullableStringSchema = z8.string().nullable();
255
+ var TixIndexerEventFoundSchema = z8.object({
256
+ event_account: z8.string().min(1),
257
+ event_id: WireU64.nullable(),
258
+ name: NullableStringSchema,
259
+ start_at: NullableStringSchema,
260
+ on_sale_at: NullableStringSchema,
261
+ image_url: NullableStringSchema,
262
+ active_listing_count: z8.number().nonnegative(),
263
+ tickets_issued_count: z8.number().nonnegative(),
264
+ integrator_identity: NullableStringSchema,
265
+ updated_at: NullableStringSchema,
266
+ found: z8.literal(true),
267
+ genres: z8.array(z8.string()).nullable()
268
+ }).strict();
269
+ var TixIndexerUpcomingEventsResultSchema = z8.object({
270
+ items: z8.array(
271
+ TixIndexerEventFoundSchema.extend({
272
+ timezone: NullableStringSchema,
273
+ address: NullableStringSchema,
274
+ venue: NullableStringSchema
275
+ })
276
+ ),
277
+ next_cursor: NullableStringSchema
278
+ }).strict();
279
+ var TixIndexerActiveListingsResultSchema = z8.object({
280
+ items: z8.array(
281
+ z8.object({
282
+ event_account: NullableStringSchema,
283
+ event_id: WireU64.nullable(),
284
+ listing_id: NullableStringSchema,
285
+ ticket_id: WireU64.nullable(),
286
+ seller: NullableStringSchema,
287
+ buyer_allow: NullableStringSchema,
288
+ ask_price_minor: NullableStringSchema,
289
+ payout_ata: NullableStringSchema,
290
+ expires_at: NullableStringSchema,
291
+ updated_at: NullableStringSchema
292
+ }).strict()
293
+ ),
294
+ next_cursor: NullableStringSchema
295
+ }).strict();
296
+
297
+ // ../tdp-schemas/src/tix-indexer-api/read-routes.ts
298
+ import { z as z9 } from "zod";
299
+ var GET_ACTIVE_LISTINGS_ROUTE_KEY = "GET /listings/active";
300
+ var GET_UPCOMING_EVENTS_ROUTE_KEY = "GET /events/upcoming";
301
+ var LimitCursorQuerySchema = z9.object({
302
+ limit: z9.coerce.number().int().min(1).max(500).optional(),
303
+ cursor: z9.string().min(1).optional()
304
+ });
305
+ var tixIndexerReadApiClientRoutes = {
306
+ "get-active-listings": defineClientRoute({
307
+ name: "get-active-listings",
308
+ method: "GET",
309
+ routeKey: GET_ACTIVE_LISTINGS_ROUTE_KEY,
310
+ pathParamsSchema: NoPathParametersSchema,
311
+ buildPath: ({ baseApiUrl = "" }) => `${baseApiUrl}/listings/active`,
312
+ headersSchema: ApiKeyHeadersSchema,
313
+ queryParamsSchema: LimitCursorQuerySchema,
314
+ responseBodySchema: TixIndexerActiveListingsResultSchema
315
+ }),
316
+ "get-upcoming-events": defineClientRoute({
317
+ name: "get-upcoming-events",
318
+ method: "GET",
319
+ routeKey: GET_UPCOMING_EVENTS_ROUTE_KEY,
320
+ pathParamsSchema: NoPathParametersSchema,
321
+ buildPath: ({ baseApiUrl = "" }) => `${baseApiUrl}/events/upcoming`,
322
+ headersSchema: ApiKeyHeadersSchema,
323
+ queryParamsSchema: LimitCursorQuerySchema,
324
+ responseBodySchema: TixIndexerUpcomingEventsResultSchema
325
+ })
326
+ };
327
+
328
+ // ../tdp-schemas/src/wallet-custody/addresses.ts
329
+ import { z as z10 } from "zod";
330
+ var WalletPathParametersSchema = z10.object({ subject: z10.string().min(1) }).strict();
331
+ var GetAddressResponseSchema = z10.object({ address: Base58Address });
332
+
333
+ // ../tix-wire-schema/src/instructions.ts
334
+ import { z as z11 } from "zod";
335
+
336
+ // ../tix-wire-schema/src/unique-permit-keys.ts
337
+ function requireUniquePermitKeys(keys, ctx) {
338
+ const stableKeys = keys.map(normalizeAnyPermitKey).map(({ eventId, ticketId }) => JSON.stringify([eventId, ticketId]));
339
+ if (new Set(stableKeys).size !== keys.length) {
340
+ ctx.addIssue({
341
+ code: "custom",
342
+ message: "All (event_id, ticket_id) pairs must be unique"
343
+ });
344
+ }
345
+ }
346
+ function normalizeAnyPermitKey(params) {
347
+ return {
348
+ eventId: "event_id" in params ? params.event_id : params.eventId,
349
+ ticketId: "ticket_id" in params ? params.ticket_id : params.ticketId
350
+ };
351
+ }
352
+
353
+ // ../tix-wire-schema/src/instructions.ts
354
+ var AcceptOfferV2ParamsSchema = z11.object({
355
+ event_id: WireU64,
356
+ ticket_id: WireU64,
357
+ permit_version: WireU64,
358
+ buyer: Base58Address,
359
+ /**
360
+ * *Authority* for the facilitating integrator's identity. The only required
361
+ * signature: its treasury funds the purchase, so there is no payer.
362
+ */
363
+ integrator_authority: Base58Address,
364
+ seller_payout: Base58Address,
365
+ royalty_destinations: z11.array(Base58Address),
366
+ ticket_type_config: Base58Address.nullable().optional(),
367
+ /**
368
+ * Identity of the facilitating integrator, which need not be the event's.
369
+ * Not the PDA, not *necessarily* the authority.
370
+ */
371
+ integrator_identity: Base58Address,
372
+ usdc_mint: Base58Address
373
+ });
374
+ var CancelListingV1ParamsSchema = z11.object({
375
+ event_id: WireU64,
376
+ ticket_id: WireU64,
377
+ canceller: Base58Address
378
+ });
379
+ var ListTicketV2ParamsSchema = z11.object({
380
+ seller: Base58Address,
381
+ storage_fee_payer: Base58Address,
382
+ listing_integrator_identity: Base58Address,
383
+ listing_integrator_authority: Base58Address,
384
+ usdc_mint: Base58Address,
385
+ event_id: WireU64,
386
+ ticket_id: WireU64,
387
+ ask_price_minor: WireU64,
388
+ buyer_allow: Base58Address.nullable().optional(),
389
+ payout_ata: Base58Address,
390
+ expires_at: WireI64,
391
+ ticket_type_config: Base58Address.nullable().optional()
392
+ });
393
+ var AcceptOfferV2InstructionBatchSchema = z11.object({
394
+ instruction: z11.literal("accept_offer_v2"),
395
+ params: z11.array(AcceptOfferV2ParamsSchema).min(1).superRefine(requireUniquePermitKeys)
396
+ });
397
+ var CancelListingV1InstructionBatchSchema = z11.object({
398
+ instruction: z11.literal("cancel_listing_v1"),
399
+ params: z11.array(CancelListingV1ParamsSchema).min(1).superRefine(requireUniquePermitKeys)
400
+ });
401
+ var ListTicketV2InstructionBatchSchema = z11.object({
402
+ instruction: z11.literal("list_ticket_v2"),
403
+ params: z11.array(ListTicketV2ParamsSchema).min(1).superRefine(requireUniquePermitKeys)
404
+ });
405
+ var TixWireInstructionBatchSchema = z11.discriminatedUnion(
406
+ "instruction",
407
+ [
408
+ AcceptOfferV2InstructionBatchSchema,
409
+ CancelListingV1InstructionBatchSchema,
410
+ ListTicketV2InstructionBatchSchema
411
+ ]
412
+ );
413
+
414
+ // ../tdp-schemas/src/primitives/transaction-submission-status.ts
415
+ import { z as z12 } from "zod";
416
+ var TransactionSubmissionStatusSchema = z12.enum([
417
+ "processing",
418
+ "confirmed",
419
+ "landed_with_error",
420
+ "expired"
421
+ ]);
422
+ var NullableTransactionSubmissionStatusSchema = TransactionSubmissionStatusSchema.nullable();
423
+
424
+ // ../tdp-schemas/src/wallet-custody/claim-offers.ts
425
+ import { z as z14 } from "zod";
426
+
427
+ // ../tdp-schemas/src/primitives/hashes.ts
428
+ import z13 from "zod";
429
+ var Sha256HexSchema = z13.hash("sha256", { enc: "hex" }).transform((v) => v);
430
+ var Sha256BaseUrlSchema = z13.hash("sha256", { enc: "base64url" }).transform((v) => v);
431
+ var HmacSha256BaseUrlSchema = z13.hash("sha256", { enc: "base64url" }).transform((v) => v);
432
+
433
+ // ../tdp-schemas/src/wallet-custody/const.ts
434
+ var MAX_PERMITS_PER_CLAIM_WALLET = 10;
435
+
436
+ // ../tdp-schemas/src/wallet-custody/claim-offers.ts
437
+ var AcceptClaimOffersSchema = AcceptOfferV2ParamsSchema.omit({
438
+ buyer: true,
439
+ integrator_identity: true,
440
+ integrator_authority: true
441
+ }).strict();
442
+ var AcceptClaimOffersRequestBodySchema = z14.object({
443
+ userSubject: z14.string().min(1),
444
+ userEmail: z14.email(),
445
+ offers: z14.array(AcceptClaimOffersSchema).min(1).max(MAX_PERMITS_PER_CLAIM_WALLET).superRefine(requireUniquePermitKeys)
446
+ });
447
+ var AcceptClaimOffersResponseSchema = z14.object({
448
+ status: NullableTransactionSubmissionStatusSchema,
449
+ claimWallet: z14.object({
450
+ address: Base58Address,
451
+ claimWalletId: Sha256HexSchema
452
+ }),
453
+ claimUrl: z14.url(),
454
+ failureReason: z14.string().min(1).optional()
455
+ });
456
+
457
+ // ../tix-wire-schema/src/transactions.ts
458
+ import {
459
+ getBase64Encoder,
460
+ getTransactionDecoder
461
+ } from "@solana/kit";
462
+ import { z as z15 } from "zod";
463
+ var Base64WireEncodedTransactionSchema = z15.base64().min(1).transform((value, ctx) => {
464
+ try {
465
+ getTransactionDecoder().decode(getBase64Encoder().encode(value));
466
+ return value;
467
+ } catch {
468
+ ctx.addIssue({
469
+ code: "custom",
470
+ message: "must be a base64-encoded Solana transaction string"
471
+ });
472
+ return z15.NEVER;
473
+ }
474
+ });
475
+
476
+ // ../tdp-schemas/src/wallet-custody/signing-responses.ts
477
+ import { z as z16 } from "zod";
478
+ var SignTransactionResponseSchema = z16.object({
479
+ custodialTransactionId: Sha256HexSchema,
480
+ signerAddress: Base58Address,
481
+ feePayerAddress: Base58Address,
482
+ signedTransaction: Base64WireEncodedTransactionSchema,
483
+ message: z16.string().min(1),
484
+ signature: Signature,
485
+ feePayerSignature: Signature,
486
+ requiredSigners: z16.array(Base58Address),
487
+ recentBlockhash: Blockhash
488
+ });
489
+
490
+ // ../tdp-schemas/src/wallet-custody/submission-responses.ts
491
+ import { z as z17 } from "zod";
492
+ var SubmitTenantTransactionResponseSchema = z17.object({
493
+ custodialTransactionId: Sha256HexSchema,
494
+ transactionSignature: Signature,
495
+ status: NullableTransactionSubmissionStatusSchema,
496
+ failureReason: z17.string().min(1).optional()
497
+ });
498
+
499
+ // ../tdp-schemas/src/wallet-custody/transaction-inputs.ts
500
+ import { z as z18 } from "zod";
501
+ var SignTenantTransactionRequestBodySchema = z18.object({
502
+ tixInstructions: TixWireInstructionBatchSchema
503
+ });
504
+ var AdditionalSignaturesSchema = z18.array(
505
+ z18.object({
506
+ address: Base58Address,
507
+ signature: Signature
508
+ })
509
+ ).default([]);
510
+ var SubmitTenantTransactionRequestBodySchema = z18.object({
511
+ signedTransaction: Base64WireEncodedTransactionSchema,
512
+ additionalSignatures: AdditionalSignaturesSchema
513
+ });
514
+
515
+ export {
516
+ WireU64,
517
+ WireI64,
518
+ WireU16,
519
+ WireU32,
520
+ Base58Address,
521
+ Blockhash,
522
+ Signature,
523
+ defineClientRoute,
524
+ ApiKeyHeadersSchema,
525
+ IdempotencyKeyAndApiKeyHeadersSchema,
526
+ NoPathParametersSchema,
527
+ ListingV1ResponseSchema,
528
+ EventV1ResponseSchema,
529
+ PermitV1ResponseSchema,
530
+ ProtocolConfigV1ResponseSchema,
531
+ EventPathParametersSchema,
532
+ TicketPathParametersSchema,
533
+ IntegratorPathParametersSchema,
534
+ IntegratorAccountResponseSchema,
535
+ solanaDataApiClientRoutes,
536
+ PostIntegratorMetadataRequestBodySchema,
537
+ PostTixIndexerIntegratorMetadataResultSchema,
538
+ TixIndexerUpcomingEventsResultSchema,
539
+ TixIndexerActiveListingsResultSchema,
540
+ LimitCursorQuerySchema,
541
+ tixIndexerReadApiClientRoutes,
542
+ WalletPathParametersSchema,
543
+ GetAddressResponseSchema,
544
+ AcceptOfferV2ParamsSchema,
545
+ CancelListingV1ParamsSchema,
546
+ ListTicketV2ParamsSchema,
547
+ AcceptOfferV2InstructionBatchSchema,
548
+ CancelListingV1InstructionBatchSchema,
549
+ ListTicketV2InstructionBatchSchema,
550
+ TixWireInstructionBatchSchema,
551
+ TransactionSubmissionStatusSchema,
552
+ NullableTransactionSubmissionStatusSchema,
553
+ AcceptClaimOffersSchema,
554
+ AcceptClaimOffersRequestBodySchema,
555
+ AcceptClaimOffersResponseSchema,
556
+ Base64WireEncodedTransactionSchema,
557
+ SignTransactionResponseSchema,
558
+ SubmitTenantTransactionResponseSchema,
559
+ SignTenantTransactionRequestBodySchema,
560
+ AdditionalSignaturesSchema,
561
+ SubmitTenantTransactionRequestBodySchema
562
+ };
563
+ //# sourceMappingURL=chunk-3SJAQTJ4.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/claim-offers.ts","../../tdp-schemas/src/primitives/hashes.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/submission-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 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 { 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 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(\n TixIndexerEventFoundSchema.extend({\n timezone: NullableStringSchema,\n address: NullableStringSchema,\n venue: NullableStringSchema,\n }),\n ),\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","import { z } from \"zod\";\nimport { defineClientRoute } from \"../routes/define-client-route\";\nimport {\n ApiKeyHeadersSchema,\n NoPathParametersSchema,\n} from \"../routes/request-schemas\";\nimport {\n TixIndexerActiveListingsResultSchema,\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\";\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 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: LimitCursorQuerySchema,\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} 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 {\n AcceptOfferV2ParamsSchema,\n requireUniquePermitKeys,\n} 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 { MAX_PERMITS_PER_CLAIM_WALLET } from \"./const\";\n\n/**\n * The accept params an integrator may supply on the composite claim route:\n * the wire params minus everything TDP derives — the `buyer` is the claim\n * wallet, and the integrator is the caller's own primary integrator wallet.\n * Note the primary integrator wallet must be a registered integrator\n * on-chain; i.e., a TIX-protocol integrator with a funded treasury.\n */\nexport const AcceptClaimOffersSchema = AcceptOfferV2ParamsSchema.omit({\n buyer: true,\n integrator_identity: true,\n integrator_authority: true,\n}).strict();\n\nexport const AcceptClaimOffersRequestBodySchema = z.object({\n userSubject: z.string().min(1),\n userEmail: z.email(),\n offers: z\n .array(AcceptClaimOffersSchema)\n .min(1)\n .max(MAX_PERMITS_PER_CLAIM_WALLET)\n .superRefine(requireUniquePermitKeys),\n});\n\nexport const AcceptClaimOffersResponseSchema = z.object({\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 AcceptClaimOffersResponse = z.infer<\n typeof AcceptClaimOffersResponseSchema\n>;\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","/**\n * This is an overestimate to cap unreasonable requests.\n * It can be made more accurate in the future.\n * The transaction will fail at submission time if it's too large anyway.\n */\nexport const MAX_PERMITS_PER_CLAIM_WALLET = 10;\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 { 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","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"]}