zklicensing 0.1.0-beta.1 → 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +132 -23
  2. package/build/archiveBootstrap.d.ts.map +1 -0
  3. package/build/archiveBootstrap.js +1 -1
  4. package/build/archiveBootstrap.js.map +1 -0
  5. package/build/buyClient.d.ts +2 -0
  6. package/build/buyClient.d.ts.map +1 -0
  7. package/build/buyClient.js +8 -2
  8. package/build/buyClient.js.map +1 -0
  9. package/build/contractInterface.d.ts.map +1 -0
  10. package/build/contractInterface.js +1 -1
  11. package/build/contractInterface.js.map +1 -0
  12. package/build/countryStats.d.ts +6 -1
  13. package/build/countryStats.d.ts.map +1 -0
  14. package/build/countryStats.js +33 -9
  15. package/build/countryStats.js.map +1 -0
  16. package/build/deployClient.d.ts.map +1 -0
  17. package/build/deployClient.js +1 -1
  18. package/build/deployClient.js.map +1 -0
  19. package/build/freezeClient.d.ts.map +1 -0
  20. package/build/freezeClient.js +1 -1
  21. package/build/freezeClient.js.map +1 -0
  22. package/build/generationClient.d.ts.map +1 -0
  23. package/build/generationClient.js +1 -1
  24. package/build/generationClient.js.map +1 -0
  25. package/build/index.d.ts.map +1 -0
  26. package/build/index.js +1 -1
  27. package/build/index.js.map +1 -0
  28. package/build/licenseProof.d.ts.map +1 -0
  29. package/build/licenseProof.js +1 -1
  30. package/build/licenseProof.js.map +1 -0
  31. package/build/licenseRecord.d.ts +10 -0
  32. package/build/licenseRecord.d.ts.map +1 -0
  33. package/build/licenseRecord.js +1 -1
  34. package/build/licenseRecord.js.map +1 -0
  35. package/build/licenseStore.d.ts +1 -1
  36. package/build/licenseStore.d.ts.map +1 -0
  37. package/build/licenseStore.js +4 -2
  38. package/build/licenseStore.js.map +1 -0
  39. package/build/manifestVerify.d.ts.map +1 -0
  40. package/build/manifestVerify.js +1 -1
  41. package/build/manifestVerify.js.map +1 -0
  42. package/build/migrateClient.d.ts +5 -21
  43. package/build/migrateClient.d.ts.map +1 -0
  44. package/build/migrateClient.js +29 -17
  45. package/build/migrateClient.js.map +1 -0
  46. package/build/ownership.d.ts.map +1 -0
  47. package/build/ownership.js +1 -1
  48. package/build/ownership.js.map +1 -0
  49. package/build/proveErrors.d.ts +35 -0
  50. package/build/proveErrors.d.ts.map +1 -0
  51. package/build/proveErrors.js +49 -0
  52. package/build/proveErrors.js.map +1 -0
  53. package/build/proveRetry.d.ts +38 -0
  54. package/build/proveRetry.d.ts.map +1 -0
  55. package/build/proveRetry.js +89 -0
  56. package/build/proveRetry.js.map +1 -0
  57. package/build/refundClient.d.ts.map +1 -0
  58. package/build/refundClient.js +1 -1
  59. package/build/refundClient.js.map +1 -0
  60. package/build/renewClient.d.ts +1 -0
  61. package/build/renewClient.d.ts.map +1 -0
  62. package/build/renewClient.js +9 -3
  63. package/build/renewClient.js.map +1 -0
  64. package/build/statsClient.d.ts +29 -0
  65. package/build/statsClient.d.ts.map +1 -0
  66. package/build/statsClient.js +34 -5
  67. package/build/statsClient.js.map +1 -0
  68. package/build/txBroadcastClient.d.ts +26 -0
  69. package/build/txBroadcastClient.d.ts.map +1 -0
  70. package/build/txBroadcastClient.js +20 -0
  71. package/build/txBroadcastClient.js.map +1 -0
  72. package/build/vendorAccountClient.d.ts +55 -0
  73. package/build/vendorAccountClient.d.ts.map +1 -0
  74. package/build/vendorAccountClient.js +44 -0
  75. package/build/vendorAccountClient.js.map +1 -0
  76. package/build/verifyCore.d.ts.map +1 -0
  77. package/build/verifyCore.js +1 -1
  78. package/build/verifyCore.js.map +1 -0
  79. package/build/verifyService.d.ts.map +1 -0
  80. package/build/verifyService.js +1 -1
  81. package/build/verifyService.js.map +1 -0
  82. package/build/zipToState.d.ts +2 -0
  83. package/build/zipToState.d.ts.map +1 -0
  84. package/build/zipToState.js +94 -0
  85. package/build/zipToState.js.map +1 -0
  86. package/package.json +19 -4
  87. package/src/archiveBootstrap.ts +285 -0
  88. package/src/buyClient.ts +259 -0
  89. package/src/contractInterface.d.ts +55 -0
  90. package/src/contractInterface.ts +242 -0
  91. package/src/countryStats.ts +171 -0
  92. package/src/deployClient.ts +388 -0
  93. package/src/freezeClient.ts +117 -0
  94. package/src/generationClient.ts +164 -0
  95. package/src/index.ts +392 -0
  96. package/src/licenseProof.d.ts +26 -0
  97. package/src/licenseProof.ts +48 -0
  98. package/src/licenseRecord.ts +91 -0
  99. package/src/licenseStore.ts +358 -0
  100. package/src/manifestVerify.ts +106 -0
  101. package/src/migrateClient.ts +82 -0
  102. package/src/ownership.ts +198 -0
  103. package/src/proveErrors.ts +70 -0
  104. package/src/refundClient.ts +144 -0
  105. package/src/renewClient.ts +209 -0
  106. package/src/statsClient.ts +190 -0
  107. package/src/txBroadcastClient.ts +48 -0
  108. package/src/vendorAccountClient.ts +106 -0
  109. package/src/verifyCore.ts +84 -0
  110. package/src/verifyService.ts +799 -0
  111. package/src/zipToState.ts +94 -0
package/README.md CHANGED
@@ -244,6 +244,16 @@ via `VITE_WALLETCONNECT_PROJECT_ID` to enable the mobile QR fallback.
244
244
 
245
245
  The main entry point (`zklicensing`) covers licence verification. Additional entry points are shipped alongside for integrators building a buy page, a vendor dashboard, or tax-report tooling — all browser-safe, no `fs`.
246
246
 
247
+ ### Per-app in-flight proving guard
248
+
249
+ `/prove/buy`, `/prove/buy-no-escrow`, `/prove/renew`, and `/prove/migrate` all mutate the same on-chain `licensesRoot` precondition. Two proofs assembled against the same pre-state root within one landing window are mutually exclusive — the chain admits whichever lands first, the second's precondition fails and the tx is dropped. Left unguarded, the second buyer pays the wallet-popup + fee for a doomed tx.
250
+
251
+ The keeper defends against this with a **per-app in-flight slot** shared across all four endpoints. While the slot is held, a second concurrent request for the same app receives an immediate `409 { error: "proving queue busy", retryAfterMs, queueDepth }` — before any circuit work or wallet prompt. The SDK surfaces this as a shared `ProveQueueBusyError` (from `zklicensing/prove-errors`) thrown by `proveBuy`, `proveRenew`, and `proveMigrate`. Callers wait `retryAfterMs`, then retry — no popup, no fee, no signed-tx-doomed-to-fail.
252
+
253
+ Each prove response carries an `appKey` field — the same value the keeper uses to key the slot. After the wallet returns a tx hash, the SDK client calls `notifyBroadcast({ keeperUrl, appId: appKey, txHash })` (from `zklicensing/tx-broadcast`, fire-and-forget) to extend the slot's TTL from signing-TTL to landing-TTL, giving the honest broadcast room to land before another prove goes through.
254
+
255
+ See [`zklicensing/prove-errors`](#zklicensingprove-errors--shared-typed-errors) and [`zklicensing/tx-broadcast`](#zklicensingtx-broadcast--broadcast-signal) below; each of `zklicensing/buy`, `zklicensing/renew`, `zklicensing/migrate` references this contract.
256
+
247
257
  ### `zklicensing/deploy` — deploy flow client
248
258
 
249
259
  Wraps the backend's `/prove/deploy` endpoint. The backend generates a throwaway zkApp keypair, bundles `deploy() + initialize()` as a single atomic tx, proves it, signs the zkApp AccountUpdate with the throwaway key, and returns the provenTxJson — the vendor's wallet only adds the fee-payer signature.
@@ -378,24 +388,49 @@ Wraps the backend's three-step buy roundtrip so a custom marketplace or CLI can
378
388
 
379
389
  ```ts
380
390
  import { deriveBuyIdentity, proveBuy, confirmBuy, pollBuyStatus } from 'zklicensing/buy';
391
+ import { ProveQueueBusyError } from 'zklicensing/prove-errors';
392
+ import { notifyBroadcast } from 'zklicensing/tx-broadcast';
381
393
 
382
394
  // 1. Derive the identity from the buyer's passphrase (deterministic).
383
395
  const { secretHash, licenseHash } = deriveBuyIdentity(passphrase);
384
396
 
385
- // 2. Ask the backend to compile + prove the buy tx.
386
- const { provenTxJson, expirySlot, purchaseAmount, verificationKeyHash } = await proveBuy({
387
- keeperUrl: 'https://zklicensing.com/api/keeper',
388
- secretHash,
389
- buyerAddress: 'B62q…',
390
- zkAppAddress: 'B62q…',
391
- duration: 0, // 0 = Monthly, 1 = Yearly, 2 = 5 Years
392
- buyerCountry: 'FI', // ISO 3166-1 alpha-2, required
393
- // Required only when a sales freeze is scheduled — see `zklicensing/freeze`
394
- // below. Ignored (safe to pass anyway) when no freeze is announced.
395
- refundWaiverAccepted: true,
396
- });
397
+ // 2. Ask the backend to compile + prove the buy tx. Retry on shared per-app
398
+ // queue-busy — server drives cadence via `retryAfterMs`, which caps at
399
+ // ~one slot (~90s at Mesa) once /tx-broadcast has fired. 10 attempts
400
+ // covers ~15 min of slot-by-slot polling — at 40 % fill that's < 1 %
401
+ // chance of exhausting before a block lands.
402
+ async function proveBuyWithRetry(): Promise<Awaited<ReturnType<typeof proveBuy>>> {
403
+ const MAX_ATTEMPTS = 10;
404
+ for (let n = 1; n <= MAX_ATTEMPTS; n++) {
405
+ try {
406
+ return await proveBuy({
407
+ keeperUrl: 'https://zklicensing.com/api/keeper',
408
+ secretHash,
409
+ buyerAddress: 'B62q…',
410
+ zkAppAddress: 'B62q…',
411
+ duration: 0, // 0 = Monthly, 1 = Yearly, 2 = 5 Years
412
+ buyerCountry: 'FI', // ISO 3166-1 alpha-2, required
413
+ // Required only when a sales freeze is scheduled — see `zklicensing/freeze`
414
+ // below. Ignored (safe to pass anyway) when no freeze is announced.
415
+ refundWaiverAccepted: true,
416
+ });
417
+ } catch (err) {
418
+ if (err instanceof ProveQueueBusyError && n < MAX_ATTEMPTS) {
419
+ await new Promise(r => setTimeout(r, err.retryAfterMs));
420
+ continue;
421
+ }
422
+ throw err;
423
+ }
424
+ }
425
+ throw new Error('unreachable');
426
+ }
427
+
428
+ const { provenTxJson, expirySlot, purchaseAmount, verificationKeyHash, appKey } = await proveBuyWithRetry();
397
429
 
398
430
  // 3. Send `provenTxJson` to the buyer's wallet for signing, obtain txHash.
431
+ // …then signal the keeper so the in-flight slot extends from signing-TTL
432
+ // to landing-TTL. Fire-and-forget; a network failure here is not fatal.
433
+ void notifyBroadcast({ keeperUrl, appId: appKey, txHash });
399
434
 
400
435
  // 4. Persist the pending record — the caller drives this only after the wallet returned.
401
436
  await confirmBuy({ keeperUrl, zkAppAddress, licenseHash, txHash });
@@ -416,21 +451,38 @@ Same shape as `zklicensing/buy`. `proveRenew` takes an explicit `waiverAccepted`
416
451
 
417
452
  ```ts
418
453
  import { proveRenew, confirmRenew } from 'zklicensing/renew';
454
+ import { ProveQueueBusyError } from 'zklicensing/prove-errors';
455
+ import { notifyBroadcast } from 'zklicensing/tx-broadcast';
419
456
 
420
- const { provenTxJson, newExpirySlot, renewAmount } = await proveRenew({
457
+ const proveArgs = {
421
458
  keeperUrl: 'https://zklicensing.com/api/keeper',
422
459
  licenseHash: '…',
423
460
  buyerAddress: 'B62q…',
424
461
  zkAppAddress: 'B62q…',
425
- duration: 0, // 0 = Monthly, 1 = Yearly, 2 = 5 Years
426
- waiverAccepted: true, // required — throws before the network call if false
427
- });
462
+ duration: 0 as 0 | 1 | 2, // 0 = Monthly, 1 = Yearly, 2 = 5 Years
463
+ waiverAccepted: true, // required — throws before the network call if false
464
+ };
465
+
466
+ const MAX_ATTEMPTS = 10; // ~15 min slot-by-slot coverage at Mesa/0.4
467
+ let proved;
468
+ for (let n = 1; n <= MAX_ATTEMPTS; n++) {
469
+ try { proved = await proveRenew(proveArgs); break; }
470
+ catch (err) {
471
+ if (err instanceof ProveQueueBusyError && n < MAX_ATTEMPTS) {
472
+ await new Promise(r => setTimeout(r, err.retryAfterMs));
473
+ continue;
474
+ }
475
+ throw err;
476
+ }
477
+ }
478
+ const { provenTxJson, newExpirySlot, renewAmount, appKey } = proved!;
428
479
 
429
480
  // Send `provenTxJson` to the wallet, obtain txHash, then:
481
+ void notifyBroadcast({ keeperUrl, appId: appKey, txHash }); // fire-and-forget
430
482
  await confirmRenew({ keeperUrl, zkAppAddress, licenseHash, txHash });
431
483
  ```
432
484
 
433
- `proveRenew` also refuses locally when the backend's sales freeze is in effect (fetched from `GET /health`), for the same reason as `proveBuy`.
485
+ `proveRenew` also refuses locally when the backend's sales freeze is in effect (fetched from `GET /health`), for the same reason as `proveBuy`. Concurrent-prove serialization is via the shared per-app in-flight guard — see [Per-app in-flight proving guard](#per-app-in-flight-proving-guard).
434
486
 
435
487
  ### `zklicensing/migrate` — cross-generation migrate client
436
488
 
@@ -446,9 +498,10 @@ The keeper 409s `/prove/renew` and `/prove/buy*` for any retired `zkAppAddress`,
446
498
 
447
499
  ```ts
448
500
  import { proveMigrate, ProveMigrateError } from 'zklicensing/migrate';
501
+ import { ProveQueueBusyError } from 'zklicensing/prove-errors';
449
502
 
450
503
  try {
451
- const { provenTxJson, ancestorGen, expirySlot, zkAppAddress } = await proveMigrate({
504
+ const { provenTxJson, ancestorGen, expirySlot, zkAppAddress, appKey } = await proveMigrate({
452
505
  keeperUrl: 'https://zklicensing.com/api/keeper',
453
506
  licenseHash: '…',
454
507
  appId: 'app_…',
@@ -456,17 +509,20 @@ try {
456
509
  });
457
510
  // Wallet signs provenTxJson → broadcast → poll landing → resume with renew.
458
511
  } catch (e) {
459
- if (e instanceof ProveMigrateError && e.status === 409 && e.retryAfterMs) {
460
- // "migration in flight" — another caller is proving right now.
461
- // Wait retryAfterMs before retrying rather than opening a second wallet prompt.
512
+ if (e instanceof ProveQueueBusyError) {
513
+ // Another root-mutating prove (buy / renew / migrate) is in flight on this app.
514
+ // Wait e.retryAfterMs, then retry — no wallet popup was opened.
515
+ }
516
+ if (e instanceof ProveMigrateError) {
517
+ // Terminal 4xx: 404 "license refunded or unknown", 409 "already migrated", etc.
462
518
  }
463
519
  throw e;
464
520
  }
465
521
  ```
466
522
 
467
- Single-flight is enforced keeper-side via a per-`licenseHash` in-flight marker: the second concurrent caller receives a 409 with `retryAfterMs` (surfaced on `ProveMigrateError`) before any wallet prompt, so the buyer never signs a transaction for a live-map that another proof is about to change.
523
+ Single-flight is enforced keeper-side by the shared per-app in-flight slot (see [§Per-app in-flight proving guard](#per-app-in-flight-proving-guard)) — not a per-`licenseHash` marker. The second concurrent caller on the same app receives an immediate `409 { error: "proving queue busy", retryAfterMs, queueDepth }` before any wallet prompt, whether the other request was a buy, renew, or migrate against the same `licensesRoot`. This is stricter than the previous per-`licenseHash` marker: two migrates of *different* licenses on the same app are also serialized, because both mutate the same root.
468
524
 
469
- Terminal 4xx surfaces: 404 "license refunded or unknown" (no leaf in any generation — stop), 409 "already migrated" (leaf already in the current live map — refresh the record).
525
+ Terminal 4xx surfaces (`ProveMigrateError`): 404 "license refunded or unknown" (no leaf in any generation — stop), 409 "already migrated" (leaf already in the current live map — refresh the record).
470
526
 
471
527
  ### `zklicensing/generation` — signed generation-list client
472
528
 
@@ -493,6 +549,16 @@ Rotation-friendly: the pin list is a set. Multiple pins can be listed during a k
493
549
 
494
550
  Optional out-of-band corroboration: an operator that publishes `https://<vendor-host>/.well-known/zklicensing/<appId>.json` under vendor TLS (with the same keeper-signed payload) can be cross-checked from the on-chain `zkappUri`. Per-app filename because a vendor may host several apps at one origin; the cross-check is opt-in per app — absence of the file (404) is not a failure signal, just "no corroboration published for this app." That's the caller's job, not this module's; the platform signature is the trust anchor.
495
551
 
552
+ #### Publishing the manifest (vendor side)
553
+
554
+ Vendors who want to enable the corroboration path host the same signed payload the keeper returns for their app. The vendor console exposes this as a one-click flow:
555
+
556
+ 1. Open the vendor dashboard, find the app card, and click **Download manifest**. This downloads the exact bytes served by `GET /apps/:appId` as `<appId>.json` — Ed25519 signature intact.
557
+ 2. Serve that file, unchanged, at `https://<vendor-host>/.well-known/zklicensing/<appId>.json` under the vendor's TLS certificate. Any static host works; no dynamic logic needed.
558
+ 3. Make sure the app's on-chain `zkappUri` points at `https://<vendor-host>` (the origin — the `.well-known` path is fixed). Callers derive the corroboration URL from that origin plus the appId they already have.
559
+
560
+ Re-download and re-publish after each retirement or redeploy: the `current` index changes, and the payload's `issuedAt` timestamp rolls forward. Serving a stale copy is not a security failure (the signature still verifies), but callers that compare `current` against the keeper's response will treat the vendor copy as behind.
561
+
496
562
  ### `zklicensing/refund` — refund flow client
497
563
 
498
564
  Same shape. The backend enforces the 14-day refund window and returns HTTP 409 when it has closed — the error surfaces through the thrown `Error` message, so the SDK doesn't second-guess it locally. Refunds stay open during a sales freeze (that's the whole point of freezing).
@@ -562,6 +628,49 @@ const breakdown = computeCountryBreakdown(apps, records, currentSlot, nowMs);
562
628
 
563
629
  Purchase revenue attributes to `createdAt` (falling back to slot-derived time for legacy records). Renewals attribute to the renewal slot. Refunded purchases contribute zero revenue but still count as licences.
564
630
 
631
+ ### `zklicensing/prove-errors` — shared typed errors
632
+
633
+ Typed error surface for the per-app in-flight guard shared across `proveBuy`, `proveRenew`, and `proveMigrate`. See [Per-app in-flight proving guard](#per-app-in-flight-proving-guard) for the wire contract.
634
+
635
+ ```ts
636
+ import { ProveQueueBusyError } from 'zklicensing/prove-errors';
637
+
638
+ try {
639
+ const proved = await proveBuy(args);
640
+ } catch (err) {
641
+ if (err instanceof ProveQueueBusyError) {
642
+ // err.status === 409
643
+ // err.retryAfterMs — ms to wait before retrying; server drives the cadence
644
+ // err.queueDepth — always 1 in v1 (forward-compat hook for a future queue)
645
+ await new Promise(r => setTimeout(r, err.retryAfterMs));
646
+ // retry — no wallet popup was opened, no fee was paid
647
+ }
648
+ throw err;
649
+ }
650
+ ```
651
+
652
+ Also exports `readErrorBody(resp)` + `tryQueueBusyFromBody(parsed)` — pure helpers used internally by the buy/renew/migrate clients to consume the response body exactly once and then classify it. Available for driver integrations that need to inspect a keeper 409 without re-parsing.
653
+
654
+ ### `zklicensing/tx-broadcast` — broadcast signal
655
+
656
+ Fire-and-forget `POST /tx-broadcast` from the SDK the moment the buyer's wallet returns a tx hash. Extends the in-flight slot from signing-TTL (~90 s) to landing-TTL (~11 min at Mesa/40 %) so the honest broadcast has room to land before the next prove goes through.
657
+
658
+ ```ts
659
+ import { notifyBroadcast } from 'zklicensing/tx-broadcast';
660
+
661
+ // After sendWithWallet returns:
662
+ void notifyBroadcast({
663
+ keeperUrl,
664
+ appId: appKey, // the `appKey` returned by proveBuy / proveRenew / proveMigrate
665
+ txHash,
666
+ });
667
+ ```
668
+
669
+ Contract:
670
+ - **Fire-and-forget.** Network failures are swallowed (optionally reported via `onError`); a missed extension only means the slot self-clears at signing-TTL, at worst delaying the next prove by seconds — not a correctness dependency.
671
+ - **First-come only.** The keeper accepts one extension per slot; a second call for the same slot returns `409 { ok: false, reason: 'already extended' }`. Combined with the corroboration strike (~11 min later, revert on non-observation) this keeps the endpoint DoS-safe despite being unauthenticated.
672
+ - **`appId` = `appKey`.** Slot keys are computed keeper-side (`slotKeyForApp(zkAppAddress, apps)`) — pass the `appKey` from the prove response verbatim rather than trying to reconstruct it.
673
+
565
674
  ### `zklicensing/record` — `LicenseRecord` type
566
675
 
567
676
  The off-chain record shape written by the backend. Import if you're building tooling that consumes the raw store (Node) or that consumes it via the analytics endpoints.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiveBootstrap.d.ts","sourceRoot":"","sources":["../src/archiveBootstrap.ts"],"names":[],"mappings":"AA4CA,eAAO,MAAM,gBAAgB,QAAS,CAAC;AACvC,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAE1C,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErD,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAU,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7H;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7H;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAS,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxF;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAQ,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC9G;IAAE,IAAI,EAAE,cAAc,CAAC;IAAW,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAU,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAW,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAIvH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAM9D;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAI,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,UAAe,GACrB,OAAO,CAAC,eAAe,CAAC,CAuF1B;AAED,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,eAAe,EAAE,GACxB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA8DhD;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,aAAa,GAAE,MAA2B,GACzC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBxB;AAID,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvE"}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2025-2026 zkLicensing project developers
2
- // All rights reserved.
2
+ // SPDX-License-Identifier: BUSL-1.1
3
3
  /**
4
4
  * archiveBootstrap.ts
5
5
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiveBootstrap.js","sourceRoot":"","sources":["../src/archiveBootstrap.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export type ProveBuyRequest = {
10
10
  zkAppAddress: string;
11
11
  duration: 0 | 1 | 2;
12
12
  buyerCountry: string;
13
+ buyerZip?: string;
13
14
  refundWaiverAccepted?: boolean;
14
15
  freezeAfterSlot?: number | null;
15
16
  fetcher?: typeof fetch;
@@ -25,6 +26,7 @@ export type ProveBuyResponse = {
25
26
  duration: number;
26
27
  durationLabel: string;
27
28
  generation: number;
29
+ appKey: string;
28
30
  };
29
31
  export type ConfirmBuyRequest = {
30
32
  keeperUrl: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buyClient.d.ts","sourceRoot":"","sources":["../src/buyClient.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAQF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAIjE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAO,MAAM,CAAC;IAOvB,WAAW,EAAK,MAAM,CAAC;IACvB,YAAY,EAAI,MAAM,CAAC;IACvB,YAAY,EAAI,MAAM,CAAC;IACvB,QAAQ,EAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,YAAY,EAAI,MAAM,CAAC;IAIvB,QAAQ,CAAC,EAAO,MAAM,CAAC;IASvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAG/B,eAAe,CAAC,EAAO,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,EAAQ,OAAO,KAAK,CAAC;IAC7B,MAAM,CAAC,EAAS,WAAW,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAS,MAAM,CAAC;IAC5B,UAAU,EAAW,MAAM,CAAC;IAC5B,WAAW,EAAU,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAS,MAAM,CAAC;IAC5B,cAAc,EAAO,MAAM,CAAC;IAC5B,QAAQ,EAAa,MAAM,CAAC;IAC5B,aAAa,EAAQ,MAAM,CAAC;IAI5B,UAAU,EAAW,MAAM,CAAC;IAK5B,MAAM,EAAe,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAK,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAG,MAAM,CAAC;IACrB,MAAM,EAAQ,MAAM,CAAC;IACrB,OAAO,CAAC,EAAM,OAAO,KAAK,CAAC;IAC3B,MAAM,CAAC,EAAO,WAAW,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAe,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpE,MAAM,CAAC,EAAc,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAQ,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAW,MAAM,CAAC;CAC7B,CAAC;AAiCF,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6D9E;AAMD,wBAAsB,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,CAc9E;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAO,MAAM,CAAC;IACvB,WAAW,EAAK,MAAM,CAAC;IACvB,OAAO,CAAC,EAAQ,OAAO,KAAK,CAAC;IAI7B,UAAU,CAAC,EAAK,MAAM,CAAC;IACvB,SAAS,CAAC,EAAM,MAAM,CAAC;IACvB,MAAM,CAAC,EAAS,WAAW,CAAC;IAC5B,MAAM,CAAC,EAAS,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;CAC7C,CAAC;AAKF,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CAmBlF"}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2025-2026 zkLicensing project developers
2
- // All rights reserved.
2
+ // SPDX-License-Identifier: BUSL-1.1
3
3
  /**
4
4
  * buyClient.ts
5
5
  *
@@ -16,6 +16,7 @@
16
16
  import { Encoding, Poseidon } from 'o1js';
17
17
  import { resolveFreezeState } from './freezeClient.js';
18
18
  import { REFUND_WINDOW_N, TOLERANCE_WINDOW_N } from './contractInterface.js';
19
+ import { readErrorBody, tryQueueBusyFromBody } from './proveErrors.js';
19
20
  // Derive the two hashes the buy flow keys off. Deterministic in the
20
21
  // passphrase — same passphrase always maps to the same licenseHash on a
21
22
  // given zkApp, so a buyer's passphrase choice locks in their license
@@ -97,6 +98,7 @@ export async function proveBuy(req) {
97
98
  zkAppAddress: req.zkAppAddress,
98
99
  duration: req.duration,
99
100
  buyerCountry: req.buyerCountry,
101
+ ...(req.buyerZip ? { buyerZip: req.buyerZip } : {}),
100
102
  ...(req.refundWaiverAccepted === true ? { refundWaiverAccepted: true } : {}),
101
103
  }),
102
104
  });
@@ -108,7 +110,11 @@ export async function proveBuy(req) {
108
110
  if (useNoEscrow && resp.status === 404) {
109
111
  throw new Error('Keeper does not offer /prove/buy-no-escrow — this vendor\'s zkApp does not support the escrowless (waiver) path; vendor must redeploy via the hardfork-migration flow');
110
112
  }
111
- throw new Error(await readJsonError(resp));
113
+ const parsed = await readErrorBody(resp);
114
+ const queueBusy = tryQueueBusyFromBody(parsed);
115
+ if (queueBusy)
116
+ throw queueBusy;
117
+ throw new Error(parsed.message);
112
118
  }
113
119
  return await resp.json();
114
120
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buyClient.js","sourceRoot":"","sources":["../src/buyClient.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,oCAAoC;AAEpC;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAOvE,oEAAoE;AACpE,wEAAwE;AACxE,qEAAqE;AACrE,uEAAuE;AACvE,0EAA0E;AAC1E,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;AACpF,CAAC;AAwED,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAc;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAA6B,CAAC;QAC1D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAClC,OAAO,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED,yDAAyD;AACzD,2DAA2D;AAC3D,EAAE;AACF,sBAAsB;AACtB,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,kDAAkD;AAClD,EAAE;AACF,oBAAoB;AACpB,+EAA+E;AAC/E,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,+CAA+C;AAC/C,4EAA4E;AAC5E,oCAAoC;AACpC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAoB;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;QACtC,SAAS,EAAQ,GAAG,CAAC,SAAS;QAC9B,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,OAAO;QACP,MAAM,EAAW,GAAG,CAAC,MAAM;KAC5B,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACpC,sEAAsE;QACtE,mEAAmE;QACnE,iEAAiE;QACjE,oEAAoE;QACpE,qEAAqE;QACrE,mEAAmE;QACnE,6DAA6D;QAC7D,oBAAoB;YAClB,MAAM,CAAC,WAAW,KAAK,IAAI;gBAC3B,MAAM,CAAC,WAAW,GAAG,eAAe,GAAG,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAC;QACrF,IAAI,oBAAoB,IAAI,GAAG,CAAC,oBAAoB,KAAK,IAAI,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CACb,sEAAsE,MAAM,CAAC,eAAe,wCAAwC,CACrI,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,oBAAoB,KAAK,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ,EAAE,EAAE;QACjE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,WAAW,EAAG,GAAG,CAAC,WAAW;YAC7B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,QAAQ,EAAM,GAAG,CAAC,QAAQ;YAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,GAAG,CAAC,oBAAoB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC;KACH,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,iEAAiE;QACjE,uEAAuE;QACvE,oEAAoE;QACpE,mEAAmE;QACnE,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,uKAAuK,CACxK,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,SAAS;YAAE,MAAM,SAAS,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,MAAM,IAAI,CAAC,IAAI,EAAsB,CAAC;AAC/C,CAAC;AAED,yEAAyE;AACzE,2EAA2E;AAC3E,2EAA2E;AAC3E,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAsB;IACrD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,WAAW,EAAG,GAAG,CAAC,WAAW;YAC7B,MAAM,EAAQ,GAAG,CAAC,MAAM;SACzB,CAAC;KACH,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAeD,0EAA0E;AAC1E,qEAAqE;AACrE,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;IAExG,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACnE,IAAI,MAAM,GAAc,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,EAAE;gBAAE,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAe,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC/E,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC1C,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractInterface.d.ts","sourceRoot":"","sources":["../src/contractInterface.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAA8B,KAAK,EAAa,aAAa,EAAkB,MAAM,EAAa,MAAM,MAAM,CAAC;AAgBtH,eAAO,MAAM,kBAAkB,EAAE,GAM/B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAErC,eAAO,MAAM,iBAAiB,EAAE,GAG9B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAEpC,eAAO,MAAM,iBAAiB,EAAE,GAI9B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAEpC,eAAO,MAAM,eAAe,EAAE,GAE5B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC;AASlC,eAAO,MAAM,oBAAoB,EAAE,GAIjC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAMvC,eAAO,MAAM,eAAe,QAAY,CAAC;AACzC,eAAO,MAAM,gBAAgB,SAAY,CAAC;AAC1C,eAAO,MAAM,iBAAiB,UAAa,CAAC;AAC5C,eAAO,MAAM,eAAe,QAAY,CAAC;AACzC,eAAO,MAAM,cAAc,OAAY,CAAC;AACxC,eAAO,MAAM,aAAa,QAAc,CAAC;AACzC,eAAO,MAAM,eAAe,MAAS,CAAC;AAStC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,KAAK,EAAE,KAAqB,CAAC;AAC1C,eAAO,MAAM,UAAU,EAAE,KAAiC,CAAC;AAM3D,eAAO,MAAM,eAAe,2CAA4C,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE3D,eAAO,MAAM,cAAc;;;;CAAuD,CAAC;AAEnF,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAK3E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAK3E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAExE;AAUD,qBAAa,0BAA2B,SAAQ,aAAa;IAC3D,MAAM,EAAE,GAAG,CAST;CACH;AAmBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAQhH;AAgBD,eAAO,MAAM,gCAAgC,EAAE,SAAS,MAAM,EAAQ,CAAC;AAKvE,wBAAsB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAU3F;AAuBD,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAU,CAAC;AAE5C,eAAO,MAAM,iBAAiB,EAAE,MAAgD,CAAC;AAEjF,eAAO,MAAM,+BAA+B,EAAE,MAAuF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2025-2026 zkLicensing project developers
2
- // All rights reserved.
2
+ // SPDX-License-Identifier: BUSL-1.1
3
3
  /**
4
4
  * contractInterface.ts
5
5
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractInterface.js","sourceRoot":"","sources":["../src/contractInterface.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,14 @@
18
18
  * Browser-safe: pure computation, no fs, no fetch.
19
19
  */
20
20
  import type { LicenseRecord } from './licenseRecord.js';
21
+ export { zipToState } from './zipToState.js';
21
22
  export type CountryBucket = {
22
23
  count: number;
23
24
  revenueMina: number;
25
+ states?: Record<string, {
26
+ count: number;
27
+ revenueMina: number;
28
+ }>;
24
29
  };
25
30
  export type CountryYearBreakdown = {
26
31
  aggregate: Record<string, CountryBucket>;
@@ -33,5 +38,5 @@ export type CountryBreakdown = {
33
38
  export declare function computeCountryBreakdown(apps: {
34
39
  appId: string;
35
40
  zkAppAddress: string;
36
- }[], records: LicenseRecord[], currentSlot: number, nowMs: number): CountryBreakdown;
41
+ }[], records: LicenseRecord[], currentSlot: number, nowMs: number, tzOffsetMinutes?: number): CountryBreakdown;
37
42
  //# sourceMappingURL=countryStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countryStats.d.ts","sourceRoot":"","sources":["../src/countryStats.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAW7C,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IAOpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,KAAK,EAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CAC1D,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAG,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAC9C,CAAC;AAOF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAAE,EAC/C,OAAO,EAAE,aAAa,EAAE,EACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,eAAe,GAAE,MAAU,GAC1B,gBAAgB,CAsGlB"}
@@ -1,5 +1,7 @@
1
1
  // Copyright (c) 2025-2026 zkLicensing project developers
2
- // All rights reserved.
2
+ // SPDX-License-Identifier: BUSL-1.1
3
+ import { zipToState } from './zipToState.js';
4
+ export { zipToState } from './zipToState.js';
3
5
  // LicensingApp charges a 2 % platform fee (200 basis points); the vendor
4
6
  // receives the remaining 9 800 bps. Keep this in sync with the on-chain
5
7
  // constant in LicensingApp.
@@ -7,10 +9,16 @@ const PLATFORM_FEE_BASIS_POINTS = 200n;
7
9
  const VENDOR_BPS = 10000n - PLATFORM_FEE_BASIS_POINTS;
8
10
  // 90 s/slot post-Mesa. Used only for slot→time fallback attribution.
9
11
  const SLOT_DURATION_MS = 90_000;
10
- export function computeCountryBreakdown(apps, records, currentSlot, nowMs) {
12
+ // tzOffsetMinutes: signed minutes east of UTC (e.g. +60 for CET, -480 for PST).
13
+ // Purchase/renewal timestamps are shifted by this offset before extracting the
14
+ // calendar year, so the "tax year" cut-over aligns with the operator's local
15
+ // clock instead of hardcoded UTC. Defaults to 0 (UTC) for callers who don't
16
+ // pass it — preserves the pre-tz behavior.
17
+ export function computeCountryBreakdown(apps, records, currentSlot, nowMs, tzOffsetMinutes = 0) {
11
18
  const appByAddress = new Map(apps.map(a => [a.zkAppAddress, a.appId]));
12
19
  const byYear = {};
13
20
  const yearSet = new Set();
21
+ const tzShiftMs = tzOffsetMinutes * 60_000;
14
22
  const ensureYear = (year) => {
15
23
  let yb = byYear[year];
16
24
  if (!yb) {
@@ -28,7 +36,7 @@ export function computeCountryBreakdown(apps, records, currentSlot, nowMs) {
28
36
  }
29
37
  return ab;
30
38
  };
31
- const add = (bucket, code, count, revenueNano) => {
39
+ const add = (bucket, code, count, revenueNano, state) => {
32
40
  let b = bucket[code];
33
41
  if (!b) {
34
42
  b = { count: 0, revenueMina: 0 };
@@ -36,12 +44,24 @@ export function computeCountryBreakdown(apps, records, currentSlot, nowMs) {
36
44
  }
37
45
  b.count += count;
38
46
  b.revenueMina += Number(revenueNano) / 1e9;
47
+ // State sub-bucket only for US rows whose ZIP resolved to a state.
48
+ // Non-US or unresolvable rows just add to the country total.
49
+ if (code === 'US' && state) {
50
+ const states = b.states ?? (b.states = {});
51
+ let sb = states[state];
52
+ if (!sb) {
53
+ sb = { count: 0, revenueMina: 0 };
54
+ states[state] = sb;
55
+ }
56
+ sb.count += count;
57
+ sb.revenueMina += Number(revenueNano) / 1e9;
58
+ }
39
59
  };
40
60
  const slotToYear = (slot) => {
41
61
  if (currentSlot <= 0)
42
62
  return null;
43
63
  const ms = nowMs - (currentSlot - slot) * SLOT_DURATION_MS;
44
- const y = new Date(ms).getUTCFullYear();
64
+ const y = new Date(ms + tzShiftMs).getUTCFullYear();
45
65
  return Number.isFinite(y) ? y : null;
46
66
  };
47
67
  for (const r of records) {
@@ -49,11 +69,15 @@ export function computeCountryBreakdown(apps, records, currentSlot, nowMs) {
49
69
  if (!appId)
50
70
  continue;
51
71
  const country = r.buyerCountry && /^[A-Z]{2}$/.test(r.buyerCountry) ? r.buyerCountry : '??';
72
+ // Only US rows carry a meaningful ZIP for sales-tax purposes; derive
73
+ // the state jurisdiction here and let `add` roll it up. Non-US ZIPs
74
+ // and unresolvable prefixes fall through to country-total only.
75
+ const state = country === 'US' && r.buyerZip ? zipToState(r.buyerZip) : undefined;
52
76
  // Purchase — attribute to the year of confirm-on-chain (createdAt).
53
77
  // Fallback: slot-derived time for legacy records that lack createdAt.
54
78
  let purchaseYear = null;
55
79
  if (r.createdAt) {
56
- const y = new Date(r.createdAt).getUTCFullYear();
80
+ const y = new Date(new Date(r.createdAt).getTime() + tzShiftMs).getUTCFullYear();
57
81
  if (Number.isFinite(y))
58
82
  purchaseYear = y;
59
83
  }
@@ -66,8 +90,8 @@ export function computeCountryBreakdown(apps, records, currentSlot, nowMs) {
66
90
  const purchaseCut = (!r.refunded && r.purchaseAmount && r.purchaseAmount !== '0')
67
91
  ? (BigInt(r.purchaseAmount) * VENDOR_BPS) / 10000n
68
92
  : 0n;
69
- add(ab, country, 1, purchaseCut);
70
- add(yb.aggregate, country, 1, purchaseCut);
93
+ add(ab, country, 1, purchaseCut, state);
94
+ add(yb.aggregate, country, 1, purchaseCut, state);
71
95
  }
72
96
  // Renewals — revenue only (no license count), attributed to renewal year.
73
97
  for (const rn of r.renewals ?? []) {
@@ -77,8 +101,8 @@ export function computeCountryBreakdown(apps, records, currentSlot, nowMs) {
77
101
  const yb = ensureYear(y);
78
102
  const ab = ensureAppBucket(yb, appId);
79
103
  const cut = (BigInt(rn.amount) * VENDOR_BPS) / 10000n;
80
- add(ab, country, 0, cut);
81
- add(yb.aggregate, country, 0, cut);
104
+ add(ab, country, 0, cut, state);
105
+ add(yb.aggregate, country, 0, cut, state);
82
106
  }
83
107
  }
84
108
  return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countryStats.js","sourceRoot":"","sources":["../src/countryStats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployClient.d.ts","sourceRoot":"","sources":["../src/deployClient.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2025-2026 zkLicensing project developers
2
- // All rights reserved.
2
+ // SPDX-License-Identifier: BUSL-1.1
3
3
  function baseUrl(url) {
4
4
  return url.replace(/\/+$/, '');
5
5
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployClient.js","sourceRoot":"","sources":["../src/deployClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freezeClient.d.ts","sourceRoot":"","sources":["../src/freezeClient.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAW,MAAM,CAAC;IACxB,OAAO,EAAU,MAAM,CAAC;IACxB,IAAI,EAAa,MAAM,CAAC;IACxB,WAAW,EAAM,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAGxB,WAAW,EAAM,OAAO,CAAC;IAKzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAM/B,WAAW,EAAM,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAgBF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAG,OAAO,KAAK,CAAC;IACxB,MAAM,CAAC,EAAI,WAAW,CAAC;CACxB,CAAC;AAKF,wBAAsB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAKzF;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAS,MAAM,CAAC;IAGzB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,EAAU,OAAO,KAAK,CAAC;IAC/B,MAAM,CAAC,EAAW,WAAW,CAAC;CAC/B,CAAC;AAOF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyB9F"}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2025-2026 zkLicensing project developers
2
- // All rights reserved.
2
+ // SPDX-License-Identifier: BUSL-1.1
3
3
  function baseUrl(url) {
4
4
  return url.replace(/\/+$/, '');
5
5
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freezeClient.js","sourceRoot":"","sources":["../src/freezeClient.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,oCAAoC;AA8CpC,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,aAAa;IACpB,yEAAyE;IACzE,sDAAsD;IACtD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAQD,qEAAqE;AACrE,wEAAwE;AACxE,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAA4B;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,OAAO,MAAM,IAAI,CAAC,IAAI,EAAkB,CAAC;AAC3C,CAAC;AAWD,yEAAyE;AACzE,oEAAoE;AACpE,yEAAyE;AACzE,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA+B;IACtE,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1F,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAI,IAAI,CAAC,OAAO;YACvB,MAAM,EAAK,IAAI,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,OAAO;YACL,WAAW,EAAM,MAAM,CAAC,WAAW,KAAK,IAAI;YAC5C,eAAe,EAAE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;YAC3F,WAAW,EAAM,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SACtE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,qEAAqE;QACrE,mBAAmB;QACnB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generationClient.d.ts","sourceRoot":"","sources":["../src/generationClient.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAW,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAQ,SAAS,GAAG,MAAM,CAAC;IACjC,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAI,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,sGAAsG;IACtG,OAAO,EAAM,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,EAAK,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAK,MAAM,CAAC;IACjB,uFAAuF;IACvF,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,MAAM,CAAC,EAAG,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,MAAM,CAAC,EAAG,WAAW,CAAC;CACvB;AA6CD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAc9F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,4BAA4B,CAChD,GAAG,EAAE,+BAA+B,GACnC,OAAO,CAAC,cAAc,CAAC,CAmBzB"}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2025-2026 zkLicensing project developers
2
- // All rights reserved.
2
+ // SPDX-License-Identifier: BUSL-1.1
3
3
  /**
4
4
  * generationClient.ts
5
5
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generationClient.js","sourceRoot":"","sources":["../src/generationClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,EAGf,MAAM,wBAAwB,CAAC;AAEhC,QAAA,MAAM,WAAW,QAAgB,CAAC;AAMlC,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAmB,GACzB,gBAAgB,GAAG,IAAI,CAUzB;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,gBAAgB,GACpB,IAAI,CAMN;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvB,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAKnB,MAAM,CAAC,EAAE,WAAW,CAAC;IAKrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAInB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IAGvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAI5B,SAAS,EAAE,UAAU,GAAG,YAAY,CAAC;CACtC;AAsHD,wBAAsB,aAAa,CACjC,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA8HvB;AAID,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC"}
package/build/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) 2025-2026 zkLicensing project developers
2
- // All rights reserved.
2
+ // SPDX-License-Identifier: BUSL-1.1
3
3
  /**
4
4
  * verifyLicense — client SDK.
5
5
  *