@usesigil/kit 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +230 -17
  2. package/dist/agent-errors.d.ts +3 -3
  3. package/dist/agent-errors.d.ts.map +1 -1
  4. package/dist/agent-errors.js +44 -8
  5. package/dist/agent-errors.js.map +1 -1
  6. package/dist/create-vault.d.ts.map +1 -1
  7. package/dist/create-vault.js +7 -11
  8. package/dist/create-vault.js.map +1 -1
  9. package/dist/errors/codes.d.ts +8 -2
  10. package/dist/errors/codes.d.ts.map +1 -1
  11. package/dist/errors/codes.js +7 -1
  12. package/dist/errors/codes.js.map +1 -1
  13. package/dist/errors/context.d.ts +17 -1
  14. package/dist/errors/context.d.ts.map +1 -1
  15. package/dist/errors/public.d.ts +1 -1
  16. package/dist/errors/public.d.ts.map +1 -1
  17. package/dist/errors/public.js +1 -1
  18. package/dist/errors/public.js.map +1 -1
  19. package/dist/generated/accounts/sessionAuthority.d.ts +24 -0
  20. package/dist/generated/accounts/sessionAuthority.d.ts.map +1 -1
  21. package/dist/generated/accounts/sessionAuthority.js +12 -2
  22. package/dist/generated/accounts/sessionAuthority.js.map +1 -1
  23. package/dist/generated/errors/sigil.d.ts +11 -7
  24. package/dist/generated/errors/sigil.d.ts.map +1 -1
  25. package/dist/generated/errors/sigil.js +13 -7
  26. package/dist/generated/errors/sigil.js.map +1 -1
  27. package/dist/generated/types/constraintEntry.d.ts +10 -0
  28. package/dist/generated/types/constraintEntry.d.ts.map +1 -1
  29. package/dist/generated/types/constraintEntry.js.map +1 -1
  30. package/dist/generated/types/constraintEntryZC.d.ts +27 -0
  31. package/dist/generated/types/constraintEntryZC.d.ts.map +1 -1
  32. package/dist/generated/types/constraintEntryZC.js +4 -2
  33. package/dist/generated/types/constraintEntryZC.js.map +1 -1
  34. package/dist/generated/types/constraintsChangeApplied.d.ts +11 -3
  35. package/dist/generated/types/constraintsChangeApplied.d.ts.map +1 -1
  36. package/dist/generated/types/constraintsChangeApplied.js +9 -3
  37. package/dist/generated/types/constraintsChangeApplied.js.map +1 -1
  38. package/dist/generated/types/constraintsChangeQueued.d.ts +11 -3
  39. package/dist/generated/types/constraintsChangeQueued.d.ts.map +1 -1
  40. package/dist/generated/types/constraintsChangeQueued.js +9 -3
  41. package/dist/generated/types/constraintsChangeQueued.js.map +1 -1
  42. package/dist/generated/types/discriminatorFormat.d.ts +8 -0
  43. package/dist/generated/types/discriminatorFormat.d.ts.map +1 -1
  44. package/dist/generated/types/discriminatorFormat.js +8 -0
  45. package/dist/generated/types/discriminatorFormat.js.map +1 -1
  46. package/dist/generated/types/instructionConstraintsCreated.d.ts +11 -3
  47. package/dist/generated/types/instructionConstraintsCreated.d.ts.map +1 -1
  48. package/dist/generated/types/instructionConstraintsCreated.js +9 -3
  49. package/dist/generated/types/instructionConstraintsCreated.js.map +1 -1
  50. package/dist/generated/types/postAssertionEntry.d.ts +6 -0
  51. package/dist/generated/types/postAssertionEntry.d.ts.map +1 -1
  52. package/dist/generated/types/postAssertionEntry.js +6 -0
  53. package/dist/generated/types/postAssertionEntry.js.map +1 -1
  54. package/dist/generated/types/postAssertionEntryZC.d.ts +22 -6
  55. package/dist/generated/types/postAssertionEntryZC.d.ts.map +1 -1
  56. package/dist/generated/types/postAssertionEntryZC.js +6 -2
  57. package/dist/generated/types/postAssertionEntryZC.js.map +1 -1
  58. package/dist/hooks.d.ts +114 -0
  59. package/dist/hooks.d.ts.map +1 -0
  60. package/dist/hooks.js +118 -0
  61. package/dist/hooks.js.map +1 -0
  62. package/dist/index.d.ts +8 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +13 -12
  65. package/dist/index.js.map +1 -1
  66. package/dist/plugin.d.ts +155 -0
  67. package/dist/plugin.d.ts.map +1 -0
  68. package/dist/plugin.js +130 -0
  69. package/dist/plugin.js.map +1 -0
  70. package/dist/presets.d.ts.map +1 -1
  71. package/dist/presets.js.map +1 -1
  72. package/dist/react/index.d.ts +69 -0
  73. package/dist/react/index.d.ts.map +1 -0
  74. package/dist/react/index.js +118 -0
  75. package/dist/react/index.js.map +1 -0
  76. package/dist/seal.d.ts +84 -31
  77. package/dist/seal.d.ts.map +1 -1
  78. package/dist/seal.js +194 -29
  79. package/dist/seal.js.map +1 -1
  80. package/dist/sigil.d.ts +187 -0
  81. package/dist/sigil.d.ts.map +1 -0
  82. package/dist/sigil.js +207 -0
  83. package/dist/sigil.js.map +1 -0
  84. package/dist/state-resolver.d.ts.map +1 -1
  85. package/dist/state-resolver.js +3 -3
  86. package/dist/state-resolver.js.map +1 -1
  87. package/dist/types.d.ts +3 -31
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js +45 -106
  90. package/dist/types.js.map +1 -1
  91. package/dist/vault-handle.d.ts +123 -0
  92. package/dist/vault-handle.d.ts.map +1 -0
  93. package/dist/vault-handle.js +136 -0
  94. package/dist/vault-handle.js.map +1 -0
  95. package/package.json +16 -2
package/dist/seal.js CHANGED
@@ -15,6 +15,8 @@
15
15
  */
16
16
  import { AccountRole } from "./kit-adapter.js";
17
17
  import { getSigilModuleLogger, setSigilModuleLogger } from "./logger.js";
18
+ import { newCorrelationId, invokeHook, composeHooks, } from "./hooks.js";
19
+ import { runPlugins, validatePluginList, } from "./plugin.js";
18
20
  import { VaultStatus } from "./generated/types/vaultStatus.js";
19
21
  import { getValidateAndAuthorizeInstructionAsync } from "./generated/instructions/validateAndAuthorize.js";
20
22
  import { getFinalizeSessionInstructionAsync } from "./generated/instructions/finalizeSession.js";
@@ -34,7 +36,7 @@ import { parseTokenBalance } from "./simulation.js";
34
36
  import { createVault, } from "./create-vault.js";
35
37
  import { SigilSdkDomainError } from "./errors/sdk.js";
36
38
  import { SigilRpcError } from "./errors/rpc.js";
37
- import { SIGIL_ERROR__SDK__VAULT_INACTIVE, SIGIL_ERROR__SDK__AGENT_NOT_REGISTERED, SIGIL_ERROR__SDK__AGENT_PAUSED, SIGIL_ERROR__SDK__AGENT_ZERO_CAPABILITY, SIGIL_ERROR__SDK__INVALID_AMOUNT, SIGIL_ERROR__SDK__INVALID_CONFIG, SIGIL_ERROR__SDK__INVALID_NETWORK, SIGIL_ERROR__SDK__INVALID_PARAMS, SIGIL_ERROR__SDK__SPL_TOKEN_OP_BLOCKED, SIGIL_ERROR__SDK__PROTOCOL_NOT_ALLOWED, SIGIL_ERROR__SDK__PROTOCOL_NOT_TARGETED, SIGIL_ERROR__SDK__INSTRUCTION_COUNT, SIGIL_ERROR__SDK__CAP_EXCEEDED, SIGIL_ERROR__SDK__ATA_NON_CANONICAL, SIGIL_ERROR__RPC__TX_FAILED, SIGIL_ERROR__RPC__TX_TOO_LARGE, } from "./errors/codes.js";
39
+ import { SIGIL_ERROR__SDK__VAULT_INACTIVE, SIGIL_ERROR__SDK__AGENT_NOT_REGISTERED, SIGIL_ERROR__SDK__AGENT_PAUSED, SIGIL_ERROR__SDK__AGENT_ZERO_CAPABILITY, SIGIL_ERROR__SDK__INVALID_AMOUNT, SIGIL_ERROR__SDK__INVALID_CONFIG, SIGIL_ERROR__SDK__INVALID_NETWORK, SIGIL_ERROR__SDK__INVALID_PARAMS, SIGIL_ERROR__SDK__SPL_TOKEN_OP_BLOCKED, SIGIL_ERROR__SDK__PROTOCOL_NOT_ALLOWED, SIGIL_ERROR__SDK__PROTOCOL_NOT_TARGETED, SIGIL_ERROR__SDK__INSTRUCTION_COUNT, SIGIL_ERROR__SDK__CAP_EXCEEDED, SIGIL_ERROR__SDK__ATA_NON_CANONICAL, SIGIL_ERROR__SDK__HOOK_ABORTED, SIGIL_ERROR__RPC__TX_FAILED, SIGIL_ERROR__RPC__TX_TOO_LARGE, } from "./errors/codes.js";
38
40
  // ─── Well-known program addresses to strip ──────────────────────────────────
39
41
  // PR 3.B F036: use canonical constants from types.ts instead of local dupes.
40
42
  import { TOKEN_PROGRAM_ADDRESS as TOKEN_PROGRAM, TOKEN_2022_PROGRAM_ADDRESS as TOKEN_2022_PROGRAM, COMPUTE_BUDGET_PROGRAM_ADDRESS as COMPUTE_BUDGET_PROGRAM, SYSTEM_PROGRAM_ADDRESS as SYSTEM_PROGRAM, } from "./types.js";
@@ -86,6 +88,35 @@ export async function seal(params) {
86
88
  const warnings = [];
87
89
  const net = normalizeNetwork(params.network);
88
90
  validateNetwork(net);
91
+ // ─── Sprint 2 B3: build hook context + invoke onBeforeBuild ──────────────
92
+ //
93
+ // Context is populated ONCE at the top of seal() so every subsequent hook
94
+ // invocation references the same `correlationId`. onBeforeBuild is the
95
+ // only hook that may abort: returning `{ skipSeal: true, reason }` throws
96
+ // SigilSdkDomainError(HOOK_ABORTED) before any RPC round-trip.
97
+ const _hookCtx = {
98
+ vault: params.vault,
99
+ agent: params.agent.address,
100
+ tokenMint: params.tokenMint,
101
+ amount: params.amount,
102
+ network: params.network,
103
+ correlationId: params.correlationId ?? newCorrelationId(),
104
+ };
105
+ if (params.hooks?.onBeforeBuild) {
106
+ const abortResult = await invokeHook(params.hooks, "onBeforeBuild", _hookCtx, params);
107
+ if (abortResult &&
108
+ typeof abortResult === "object" &&
109
+ "skipSeal" in abortResult &&
110
+ abortResult.skipSeal === true) {
111
+ throw new SigilSdkDomainError(SIGIL_ERROR__SDK__HOOK_ABORTED, `seal() aborted by onBeforeBuild hook: ${String(abortResult.reason)}`, {
112
+ context: {
113
+ hook: "onBeforeBuild",
114
+ reason: String(abortResult.reason),
115
+ correlationId: _hookCtx.correlationId,
116
+ },
117
+ });
118
+ }
119
+ }
89
120
  // Step 1: Resolve vault state (with stale cache detection)
90
121
  let state;
91
122
  if (params.cachedState) {
@@ -120,6 +151,45 @@ export async function seal(params) {
120
151
  if (agentEntry.paused) {
121
152
  throw new SigilSdkDomainError(SIGIL_ERROR__SDK__AGENT_PAUSED, `Agent ${params.agent.address} is paused in vault ${params.vault}`, { context: { vault: params.vault, agent: params.agent.address } });
122
153
  }
154
+ // ─── Sprint 2 (B4): run policy plugins ────────────────────────────────────
155
+ //
156
+ // Plugins receive a frozen, redacted snapshot of the resolved vault state.
157
+ // Design notes:
158
+ // - Ordering: AFTER resolveVaultState + vault-active + agent-registered
159
+ // + agent-not-paused gates. 2 of 3 real plugin categories (rate
160
+ // limiting, compliance) require state; running before state would
161
+ // degrade those to stateless-only.
162
+ // - Redaction: owner pubkey, full agents[] roster, vault_id, and raw
163
+ // SpendTracker epochs are intentionally NOT exposed. Plugins see
164
+ // only what's needed for policy decisions (budget + capability
165
+ // + vault status). Reduces malicious-plugin exfiltration surface.
166
+ // - Freeze: outer state + each nested object is frozen via
167
+ // Object.freeze. Mutation attempts throw in strict mode, silent
168
+ // no-op in sloppy — neither is a working bypass.
169
+ // - Rejection: runPlugins throws SigilSdkDomainError(PLUGIN_REJECTED)
170
+ // on first { allow: false } or plugin throw. The onError hook
171
+ // fires via executeAndConfirm's catch block on the way out.
172
+ if (params.plugins && params.plugins.length > 0) {
173
+ await runPlugins(params.plugins, {
174
+ vault: params.vault,
175
+ agent: params.agent.address,
176
+ tokenMint: params.tokenMint,
177
+ amount: params.amount,
178
+ network: params.network,
179
+ instructions: params.instructions,
180
+ correlationId: _hookCtx.correlationId,
181
+ state: Object.freeze({
182
+ globalBudget: Object.freeze({ ...state.globalBudget }),
183
+ agentBudget: state.agentBudget
184
+ ? Object.freeze({ ...state.agentBudget })
185
+ : null,
186
+ vaultStatus: state.vault.status,
187
+ capabilityTier: agentEntry.capability,
188
+ maxTransactionUsd: state.maxTransactionUsd,
189
+ resolvedAtTimestamp: state.resolvedAtTimestamp,
190
+ }),
191
+ });
192
+ }
123
193
  // Step 3: Determine spending from amount (ActionType eliminated in v6)
124
194
  const spending = params.amount > 0n;
125
195
  const U64_MAX = 18446744073709551615n;
@@ -423,6 +493,19 @@ export async function seal(params) {
423
493
  if (feeDestinationTokenAccount) {
424
494
  knownRecipients.add(feeDestinationTokenAccount);
425
495
  }
496
+ // ─── Sprint 2 (B3): onBeforeSign hook ──────────────────────────────────────
497
+ //
498
+ // Fires once the transaction is fully composed and size-verified, before
499
+ // seal() returns it to the caller (executeAndConfirm will then sign +
500
+ // send). Observe-only — mutations to compiledTx have no effect on what
501
+ // seal() returns. A hook throw is swallowed + logged via invokeHook's
502
+ // existing semantics (same as the other observe-only hooks).
503
+ //
504
+ // Single fire-point: composed hooks (from executeAndConfirm) propagate
505
+ // through clientSeal → seal() via the opts spread, so firing here
506
+ // covers all three entry paths (executeAndConfirm, SigilVault.execute,
507
+ // bare seal()) with exactly one invocation per seal.
508
+ await invokeHook(params.hooks, "onBeforeSign", _hookCtx, compiledTx);
426
509
  return {
427
510
  ok: true,
428
511
  transaction: compiledTx,
@@ -467,6 +550,14 @@ export function createSigilClient(config) {
467
550
  throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_CONFIG, "SigilClientConfig.agent is required", { context: { field: "agent", expected: "TransactionSigner" } });
468
551
  if (!config.network)
469
552
  throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_CONFIG, "SigilClientConfig.network is required", { context: { field: "network", expected: "'devnet' | 'mainnet'" } });
553
+ // Sprint 2 (B4): validate plugin list at client construction.
554
+ // plugin.ts docstring promises this runs in createSigilClient /
555
+ // Sigil.quickstart / Sigil.fromVault. The facade path validates via
556
+ // buildInternalState; the direct createSigilClient path must too, or
557
+ // malformed plugins silently load and only fail at first seal().
558
+ if (config.plugins !== undefined) {
559
+ validatePluginList(config.plugins);
560
+ }
470
561
  // C3 fix: install the consumer-supplied logger so leaf utilities (alt-
471
562
  // loader, shield, dashboard, tee/verify, etc.) route their warnings
472
563
  // through it. Without this call the factory silently drops
@@ -513,6 +604,11 @@ export function createSigilClient(config) {
513
604
  verifySigilAlt(addressLookupTables, sigilAlt, expected);
514
605
  }
515
606
  }
607
+ // Sprint 2 (B4): thread client-level plugins into bare seal(). Injected
608
+ // AFTER the `...opts` spread so per-call callers cannot override the
609
+ // client's plugin set for a single invocation. ClientSealOpts has no
610
+ // `plugins` field (by design) — TypeScript rejects per-call plugin
611
+ // passing at compile time.
516
612
  return seal({
517
613
  rpc,
518
614
  vault,
@@ -522,6 +618,7 @@ export function createSigilClient(config) {
522
618
  ...opts,
523
619
  blockhash: resolvedBlockhash,
524
620
  addressLookupTables,
621
+ ...(config.plugins ? { plugins: config.plugins } : {}),
525
622
  });
526
623
  }
527
624
  return {
@@ -531,16 +628,42 @@ export function createSigilClient(config) {
531
628
  network,
532
629
  seal: clientSeal,
533
630
  async executeAndConfirm(instructions, opts) {
631
+ // Sprint 2 B3: compose client-level and per-call hooks. Client hooks
632
+ // run first at every stage (onBeforeBuild → ... → onFinalize), then
633
+ // per-call hooks. composeHooks handles the conditional-merge when
634
+ // either side is absent.
635
+ const composedHooks = composeHooks(config.hooks, opts.hooks);
636
+ const correlationId = opts.correlationId ?? newCorrelationId();
637
+ const hookCtx = {
638
+ vault,
639
+ agent: agent.address,
640
+ tokenMint: opts.tokenMint,
641
+ amount: opts.amount,
642
+ network,
643
+ correlationId,
644
+ };
534
645
  try {
535
646
  // Calls the closure-captured clientSeal — no `this` dependency.
536
647
  // Safe to destructure: `const { executeAndConfirm } = client`.
537
- const result = await clientSeal(instructions, opts);
648
+ const result = await clientSeal(instructions, {
649
+ ...opts,
650
+ hooks: composedHooks,
651
+ correlationId,
652
+ });
538
653
  const encoded = await signAndEncode(agent, result.transaction);
539
654
  const signature = await sendAndConfirmTransaction(rpc, encoded, opts.confirmOptions);
655
+ // Sprint 2 B3: onAfterSend fires with the signature as soon as
656
+ // the RPC resolves. onFinalize fires last on the success path.
657
+ await invokeHook(composedHooks, "onAfterSend", hookCtx, signature);
658
+ await invokeHook(composedHooks, "onFinalize", hookCtx, { signature });
540
659
  return { signature, sealResult: result };
541
660
  }
542
661
  catch (err) {
543
662
  const sdkError = toSigilAgentError(err);
663
+ // Sprint 2 B3: onError fires in every failure path before the
664
+ // existing onErrorCallback telemetry hook. Error is always
665
+ // rethrown after both fire.
666
+ await invokeHook(composedHooks, "onError", hookCtx, err instanceof Error ? err : new Error(String(err)));
544
667
  onErrorCallback?.(sdkError, {
545
668
  action: opts.amount > 0n ? "spending" : "non-spending",
546
669
  tokenMint: opts.tokenMint,
@@ -567,6 +690,39 @@ export function createSigilClient(config) {
567
690
  },
568
691
  };
569
692
  }
693
+ /**
694
+ * Async factory: run the genesis-hash assertion + delegate to
695
+ * {@link createSigilClient}. Returns the factory's `SigilClientApi`
696
+ * (which properly wires plugins, hooks, and caches) — NOT the
697
+ * deprecated `SigilClient` class (which does not wire plugins/hooks).
698
+ *
699
+ * This is what `Sigil.quickstart()` / `Sigil.fromVault()` use under
700
+ * the hood to get both:
701
+ * - genesis-hash cluster safety (previously only on the class path)
702
+ * - working plugin + hook wiring (only on the factory path)
703
+ *
704
+ * @param config - Full client config. All fields (plugins, hooks,
705
+ * logger) are forwarded to the factory after the assertion passes.
706
+ * @throws `SigilRpcError` if `getGenesisHash()` fails after retries.
707
+ * @throws `SigilSdkDomainError(INVALID_CONFIG)` if the cluster hash
708
+ * does not match `config.network`.
709
+ */
710
+ export async function createSigilClientAsync(config) {
711
+ // Install logger FIRST so `assertGenesisHash` diagnostics route
712
+ // through it. createSigilClient will re-install it (idempotent).
713
+ if (config.logger) {
714
+ setSigilModuleLogger(config.logger);
715
+ }
716
+ if (config.skipGenesisAssertion === true) {
717
+ getSigilModuleLogger().warn("[createSigilClientAsync] skipGenesisAssertion=true — RPC cluster " +
718
+ `is NOT verified against configured network "${config.network}". ` +
719
+ "Only safe for local test harnesses.");
720
+ }
721
+ else {
722
+ await assertGenesisHash(config.rpc, config.network);
723
+ }
724
+ return createSigilClient(config);
725
+ }
570
726
  // ─── Genesis-hash assertion (D18 — closes F10 cluster mismatch) ─────────────
571
727
  //
572
728
  // Every @ usesigil / kit transaction assumes the RPC is on the cluster the
@@ -691,6 +847,13 @@ async function assertGenesisHash(rpc, network) {
691
847
  * const client = await SigilClient.create({ rpc, vault, agent, network });
692
848
  * ```
693
849
  */
850
+ /**
851
+ * Module-private construction token for SigilClient. `SigilClient.create()`
852
+ * is the only holder — direct `new SigilClient(config)` calls from outside
853
+ * the class body cannot obtain this symbol and fail the runtime guard in
854
+ * the private constructor.
855
+ */
856
+ const CLIENT_CONSTRUCT_TOKEN = Symbol("SigilClient.construct");
694
857
  export class SigilClient {
695
858
  blockhashCacheInstance;
696
859
  altCacheInstance;
@@ -700,23 +863,33 @@ export class SigilClient {
700
863
  agent;
701
864
  network;
702
865
  /**
703
- * @deprecated Use the async factory {@link SigilClient.create} instead.
704
- * The sync constructor skips the genesis-hash assertion and cannot
705
- * verify the RPC is on the cluster the SDK was configured for. Migrate
706
- * by awaiting `await SigilClient.create(config)` signature is
707
- * otherwise identical.
866
+ * Private constructor Sprint 2 carryover.
867
+ *
868
+ * Sprint 1 deprecated `new SigilClient(config)` in favor of the
869
+ * async factory `SigilClient.create(config)` which runs the
870
+ * genesis-hash assertion. Sprint 2 completes the migration by
871
+ * making the constructor `private`: external callers now get a TS
872
+ * compile error, and the runtime guard below throws on JS consumers
873
+ * that cast through `any` to bypass the compile-time check.
708
874
  *
709
- * Sync construction remains functional for back-compat and for tests
710
- * using stubbed RPCs that don't honor `getGenesisHash()`. When called
711
- * directly (not via `.create()`), emits a warning via the injected
712
- * logger so the bypass is observable.
875
+ * The class remains exported so:
876
+ * - `SigilClient.create()` static factory still works.
877
+ * - `instanceof SigilClient` checks in tests still resolve.
878
+ * - The type `SigilClient` is still a first-class position.
713
879
  *
714
- * @param _skipDeprecationWarning internal flag used by
715
- * `SigilClient.create()` to suppress the warning on the async path
716
- * (the async factory IS the recommended path; warning there would
717
- * be misleading log spam). Not part of the public API.
880
+ * @internalconstruction token is a module-private symbol only
881
+ * `SigilClient.create()` holds a reference to.
718
882
  */
719
- constructor(config, _skipDeprecationWarning = false) {
883
+ constructor(config, _constructToken = Symbol.for("SigilClient.forbid")) {
884
+ // Runtime guard: anyone who reaches this constructor without the
885
+ // exact module-private token (i.e., via `any`-cast or JS bypass)
886
+ // gets thrown out. `.create()` passes CLIENT_CONSTRUCT_TOKEN.
887
+ if (_constructToken !== CLIENT_CONSTRUCT_TOKEN) {
888
+ throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_CONFIG, "SigilClient: direct construction is not allowed. " +
889
+ "Use `await SigilClient.create(config)` — which also runs the " +
890
+ "genesis-hash assertion — or `createSigilClient(config)` for " +
891
+ "the factory variant.", { context: { field: "constructor", expected: "SigilClient.create" } });
892
+ }
720
893
  if (!config.rpc)
721
894
  throw new SigilSdkDomainError(SIGIL_ERROR__SDK__INVALID_CONFIG, "SigilClientConfig.rpc is required", { context: { field: "rpc", expected: "Rpc<SolanaRpcApi>" } });
722
895
  if (!config.vault)
@@ -738,14 +911,6 @@ export class SigilClient {
738
911
  if (config.logger) {
739
912
  setSigilModuleLogger(config.logger);
740
913
  }
741
- // Emit deprecation warning only when called directly (not via
742
- // the `.create()` async factory, which already performs the
743
- // genesis assertion the deprecation warning warns about).
744
- if (!_skipDeprecationWarning) {
745
- getSigilModuleLogger().warn("[SigilClient] sync constructor bypasses genesis-hash assertion. " +
746
- "Use `await SigilClient.create(config)` in production to verify the " +
747
- "RPC matches the configured network.");
748
- }
749
914
  }
750
915
  /**
751
916
  * Async factory — constructs a `SigilClient` and asserts the RPC's
@@ -783,11 +948,11 @@ export class SigilClient {
783
948
  // with a misconfigured RPC is ever returned to the caller.
784
949
  await assertGenesisHash(config.rpc, config.network);
785
950
  }
786
- // Pass `_skipDeprecationWarning: true` so the sync constructor
787
- // doesn't emit its "sync bypasses genesis assertion" warning — we
788
- // just performed the assertion above, so the warning would be
789
- // misleading log spam on every .create() call (C-review C4).
790
- return new SigilClient(config, true);
951
+ // Sprint 2 carryover: pass the module-private construction token
952
+ // so the private-ctor runtime guard accepts the call. External
953
+ // callers cannot obtain this symbol and are rejected forcing
954
+ // them through `.create()` which runs the genesis-hash assertion.
955
+ return new SigilClient(config, CLIENT_CONSTRUCT_TOKEN);
791
956
  }
792
957
  /**
793
958
  * Seal DeFi instructions with Sigil security.
package/dist/seal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"seal.js","sourceRoot":"","sources":["../src/seal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seal.js","sourceRoot":"","sources":["../src/seal.ts"],"names":[],"mappings":"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"}