@agenticprimitives/account-custody 0.1.0-alpha.3 → 1.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # @agenticprimitives/account-custody
2
2
 
3
- Custody-layer SDK for Smart Agent account safety and recovery.
3
+ **Custody is not authority.**
4
4
 
5
- This package owns the TypeScript surface around `CustodyPolicy`: ABI exports,
6
- `CustodyAction` argument builders, EIP-712 typed data, quorum signature packing,
7
- and custody-domain types.
5
+ Most stacks blur the two: the key that lets an agent act is also the key that controls the account, so a leaked session becomes a lost identity. This package exists to keep them apart. Credential add, replace, and remove on a Smart Agent are custody-policy operations — gated by trustee quorums, guardian quorums, multi-credential self-recovery, or multi-sig — and are never modeled as delegations ([ADR-0011](../../docs/architecture/decisions/0011-credential-recovery-and-re-association.md), [spec 221](../../specs/221-credential-recovery.md)). A delegated party can act within its caveats; it can never promote itself into custody.
6
+
7
+ The payoff is recovery without identity loss. `CustodyAction.RecoverAccount` performs an atomic add-new + remove-old credential rotation under the account's custody policy. The canonical Smart Agent address never changes; every delegation it ever issued stays valid; only the credential set moves. This package is the TypeScript surface for that machinery: the `CustodyPolicy` ABI, `CustodyAction` argument builders, EIP-712 typed data, quorum signature packing, and the custody-domain types.
8
+
9
+ > Part of [agenticprimitives](../../README.md) — the trust substrate for the agent economy: one canonical Smart Agent identity with custody, delegation, naming, credentials, and audit evidence designed as one system.
8
10
 
9
11
  ## Install
10
12
 
@@ -23,6 +25,17 @@ import {
23
25
  } from '@agenticprimitives/account-custody';
24
26
  ```
25
27
 
28
+ What you get:
29
+
30
+ - `custodyPolicyAbi` — the ABI for the on-chain `CustodyPolicy` ERC-7579 module ([`packages/contracts/src/custody/CustodyPolicy.sol`](../contracts/src/custody/CustodyPolicy.sol)), kept in lockstep with the deployed bytecode.
31
+ - `CustodyAction` enum (a mirror of the on-chain enum) plus per-action `buildXxxArgs` encoders — including `buildRecoverAccountArgs` for credential rotation.
32
+ - EIP-712 typed-data shapes for `ScheduleCustodyChangeRequest` / `ApplyCustodyChangeRequest` / `CancelScheduledChangeRequest`, with `custodyDomain({ chainId, verifyingContract })` — guaranteed to hash to the same `structHash` the Solidity computes.
33
+ - Quorum signature packing (`packQuorumSigs`) and custody-domain types: `Custodian`, `Trustee`, `CustodyCouncil`, `ScheduledChange`, `CustodyMode`, `RiskTier`.
34
+
35
+ ## How it's different
36
+
37
+ The common pattern for org control and recovery is a third-party multi-sig (Safe) plus a separate recovery product (Argent-style guardians) bolted onto an account they don't define. That works until the seams matter: the multi-sig's notion of "owner" and the recovery product's notion of "guardian" are different identity models, and neither knows about the delegations the account has issued. Here custody is a native ERC-7579 module on the same Smart Agent — quorums, trustees, scheduled changes, and recovery in one policy, designed alongside the delegation layer it explicitly firewalls ([spec 213](../../specs/213-custody-layer-carve-out.md)). No third-party multi-sig dependency; we ported the signature-packing patterns worth porting and own the rest.
38
+
26
39
  ## Boundary
27
40
 
28
41
  This package speaks custody vocabulary only:
@@ -33,8 +46,7 @@ This package speaks custody vocabulary only:
33
46
  - `CustodyAction`
34
47
  - `ScheduledChange`
35
48
 
36
- It does not own delegation caveats, MCP transport, passkey ceremonies, account
37
- deployment, or key-custody providers. See `CLAUDE.md` for routing.
49
+ It does not own delegation caveats, MCP transport, passkey ceremonies, account deployment, or key-custody providers (note: `key-custody` is *key* custody — KMS backends; this is *account* custody). See [`CLAUDE.md`](CLAUDE.md) for routing and [`spec.md`](spec.md) for the contract.
38
50
 
39
51
  ## Validate
40
52
 
@@ -42,3 +54,7 @@ deployment, or key-custody providers. See `CLAUDE.md` for routing.
42
54
  pnpm --filter @agenticprimitives/account-custody typecheck
43
55
  pnpm --filter @agenticprimitives/account-custody test
44
56
  ```
57
+
58
+ ## Status
59
+
60
+ Testnet/pilot-ready. Production launch is gated on the public checklist in the root README — including third-party contract audit and governance key rotation. Track every security finding live in [`docs/audits/findings.yaml`](../../docs/audits/findings.yaml).
package/dist/actions.d.ts CHANGED
@@ -42,15 +42,23 @@ export declare function buildApplySystemUpdateArgs(newImpl: Address): Hex;
42
42
  */
43
43
  export declare function buildChangeApprovalsRequiredArgs(tier: number, newCount: number): Hex;
44
44
  /**
45
- * Encode args for `AddPasskeyCredential(credentialIdDigest, x, y)`.
45
+ * Encode args for `AddPasskeyCredential(credentialIdDigest, x, y, rpIdHash)`.
46
46
  * Side effect on AgentAccount: also registers the PIA derived from
47
47
  * `(x, y)` as a first-class custodian.
48
48
  *
49
49
  * Wave 2C C-6 hardening: on-chain initializer rejects credentialIdDigest
50
50
  * == 0; this builder echoes that check at the wire-format boundary so
51
51
  * the demo never spends gas on a guaranteed-revert tx.
52
+ *
53
+ * H7-C.1 / CON-WEBAUTHN-001 (encoded shape updated 2026-06-01): the
54
+ * on-chain `CustodyPolicy.AddPasskeyCredential` decoder reads 4 fields
55
+ * `(bytes32, uint256, uint256, bytes32)` and forwards `rpIdHash` to
56
+ * `AgentAccount.addPasskey(...)`. `addPasskey` reverts on `rpIdHash ==
57
+ * bytes32(0)` (`InvalidRpIdHash`), so the SDK MUST require a non-zero
58
+ * rpIdHash here. Encoding only 3 fields produced silent-reverts in the
59
+ * inner userOp (Act 3 'AddPasskey Bob on Org' live debug).
52
60
  */
53
- export declare function buildAddPasskeyCredentialArgs(credentialIdDigest: Hex, x: bigint, y: bigint): Hex;
61
+ export declare function buildAddPasskeyCredentialArgs(credentialIdDigest: Hex, x: bigint, y: bigint, rpIdHash: Hex): Hex;
54
62
  /** Encode args for `RemovePasskeyCredential(credentialIdDigest)`. */
55
63
  export declare function buildRemovePasskeyCredentialArgs(credentialIdDigest: Hex): Hex;
56
64
  /**
@@ -67,6 +75,11 @@ export interface RecoveryPasskeyAdd {
67
75
  credentialIdDigest: Hex;
68
76
  x: bigint;
69
77
  y: bigint;
78
+ /** H7-C.1 / CON-WEBAUTHN-001: rpIdHash binds the passkey to its RP. Required
79
+ * by the on-chain `AgentAccountRecoveryPasskeyAdd` struct (IAgentAccount.sol).
80
+ * The recovery handler `CustodyPolicy._applyRecoverAccount` forwards this to
81
+ * `AgentAccount.addPasskey(...)` which reverts `InvalidRpIdHash()` on zero. */
82
+ rpIdHash: Hex;
70
83
  }
71
84
  /**
72
85
  * Encode args for `RecoverAccount(args)` — atomic add/remove of owners
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAQA,OAAO,EAAuB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAEnE,oBAAY,aAAa;IACvB,YAAY,IAAI;IAChB,eAAe,IAAI;IACnB,oBAAoB,IAAI;IACxB,uBAAuB,IAAI;IAC3B,UAAU,IAAI;IACd,aAAa,IAAI;IACjB,iBAAiB,IAAI;IACrB,iBAAiB,IAAI;IACrB,uBAAuB,IAAI;IAC3B,eAAe,IAAI;IACnB,mBAAmB,KAAK;IACxB,mBAAmB,KAAK;IACxB,kBAAkB,KAAK;IACvB,oBAAoB,KAAK;IACzB,cAAc,KAAK;IACnB,uBAAuB,KAAK;CAC7B;AAuCD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,GAAG,CAG7D;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,GAAG,CAGhE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAGzD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAG5D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAGtE;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAGtE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAGpE;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAGhE;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAOpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,kBAAkB,EAAE,GAAG,EACvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,GAAG,CAWL;AAED,qEAAqE;AACrE,wBAAgB,gCAAgC,CAAC,kBAAkB,EAAE,GAAG,GAAG,GAAG,CAG7E;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,SAAS,OAAO,EAAE,EACjC,gBAAgB,EAAE,SAAS,OAAO,EAAE,GACnC,GAAG,CAOL;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,GAAG,CAAC;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,SAAS,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5C,gCAAgC,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;CACnD,GAAG,GAAG,CAwDN"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAQA,OAAO,EAAuB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAEnE,oBAAY,aAAa;IACvB,YAAY,IAAI;IAChB,eAAe,IAAI;IACnB,oBAAoB,IAAI;IACxB,uBAAuB,IAAI;IAC3B,UAAU,IAAI;IACd,aAAa,IAAI;IACjB,iBAAiB,IAAI;IACrB,iBAAiB,IAAI;IACrB,uBAAuB,IAAI;IAC3B,eAAe,IAAI;IACnB,mBAAmB,KAAK;IACxB,mBAAmB,KAAK;IACxB,kBAAkB,KAAK;IACvB,oBAAoB,KAAK;IACzB,cAAc,KAAK;IACnB,uBAAuB,KAAK;CAC7B;AAuCD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,GAAG,CAG7D;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,GAAG,CAGhE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAGzD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAG5D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAGtE;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAGtE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAGpE;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAGhE;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAOpF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,6BAA6B,CAC3C,kBAAkB,EAAE,GAAG,EACvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,GAAG,GACZ,GAAG,CAeL;AAED,qEAAqE;AACrE,wBAAgB,gCAAgC,CAAC,kBAAkB,EAAE,GAAG,GAAG,GAAG,CAG7E;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,SAAS,OAAO,EAAE,EACjC,gBAAgB,EAAE,SAAS,OAAO,EAAE,GACnC,GAAG,CAOL;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,GAAG,CAAC;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV;;;oFAGgF;IAChF,QAAQ,EAAE,GAAG,CAAC;CACf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,SAAS,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5C,gCAAgC,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;CACnD,GAAG,GAAG,CAgEN"}
package/dist/actions.js CHANGED
@@ -108,22 +108,34 @@ export function buildChangeApprovalsRequiredArgs(tier, newCount) {
108
108
  return encodeAbiParameters([{ type: 'uint8' }, { type: 'uint8' }], [tier, newCount]);
109
109
  }
110
110
  /**
111
- * Encode args for `AddPasskeyCredential(credentialIdDigest, x, y)`.
111
+ * Encode args for `AddPasskeyCredential(credentialIdDigest, x, y, rpIdHash)`.
112
112
  * Side effect on AgentAccount: also registers the PIA derived from
113
113
  * `(x, y)` as a first-class custodian.
114
114
  *
115
115
  * Wave 2C C-6 hardening: on-chain initializer rejects credentialIdDigest
116
116
  * == 0; this builder echoes that check at the wire-format boundary so
117
117
  * the demo never spends gas on a guaranteed-revert tx.
118
+ *
119
+ * H7-C.1 / CON-WEBAUTHN-001 (encoded shape updated 2026-06-01): the
120
+ * on-chain `CustodyPolicy.AddPasskeyCredential` decoder reads 4 fields
121
+ * `(bytes32, uint256, uint256, bytes32)` and forwards `rpIdHash` to
122
+ * `AgentAccount.addPasskey(...)`. `addPasskey` reverts on `rpIdHash ==
123
+ * bytes32(0)` (`InvalidRpIdHash`), so the SDK MUST require a non-zero
124
+ * rpIdHash here. Encoding only 3 fields produced silent-reverts in the
125
+ * inner userOp (Act 3 'AddPasskey Bob on Org' live debug).
118
126
  */
119
- export function buildAddPasskeyCredentialArgs(credentialIdDigest, x, y) {
127
+ export function buildAddPasskeyCredentialArgs(credentialIdDigest, x, y, rpIdHash) {
120
128
  assertBytes32('AddPasskeyCredential.credentialIdDigest', credentialIdDigest);
121
129
  if (credentialIdDigest === ('0x' + '00'.repeat(32))) {
122
130
  throw new RangeError('[custody] AddPasskeyCredential.credentialIdDigest: must be non-zero (audit C-6)');
123
131
  }
124
132
  assertUint256('AddPasskeyCredential.x', x, 1n);
125
133
  assertUint256('AddPasskeyCredential.y', y, 1n);
126
- return encodeAbiParameters([{ type: 'bytes32' }, { type: 'uint256' }, { type: 'uint256' }], [credentialIdDigest, x, y]);
134
+ assertBytes32('AddPasskeyCredential.rpIdHash', rpIdHash);
135
+ if (rpIdHash === ('0x' + '00'.repeat(32))) {
136
+ throw new RangeError('[custody] AddPasskeyCredential.rpIdHash: must be non-zero (AgentAccount.addPasskey reverts on zero rpIdHash — H7-C.1)');
137
+ }
138
+ return encodeAbiParameters([{ type: 'bytes32' }, { type: 'uint256' }, { type: 'uint256' }, { type: 'bytes32' }], [credentialIdDigest, x, y, rpIdHash]);
127
139
  }
128
140
  /** Encode args for `RemovePasskeyCredential(credentialIdDigest)`. */
129
141
  export function buildRemovePasskeyCredentialArgs(credentialIdDigest) {
@@ -171,6 +183,10 @@ export function buildRecoverAccountArgs(args) {
171
183
  }
172
184
  assertUint256('RecoverAccount.addPasskeys.x', p.x, 1n);
173
185
  assertUint256('RecoverAccount.addPasskeys.y', p.y, 1n);
186
+ assertBytes32('RecoverAccount.addPasskeys.rpIdHash', p.rpIdHash);
187
+ if (p.rpIdHash === ('0x' + '00'.repeat(32))) {
188
+ throw new RangeError('[custody] RecoverAccount.addPasskeys: rpIdHash must be non-zero (H7-C.1 — AgentAccount.addPasskey reverts on zero)');
189
+ }
174
190
  }
175
191
  for (const d of removePasskeyCredentialIdDigests) {
176
192
  assertBytes32('RecoverAccount.removePasskeyCredentialIdDigests', d);
@@ -194,6 +210,10 @@ export function buildRecoverAccountArgs(args) {
194
210
  { name: 'credentialIdDigest', type: 'bytes32' },
195
211
  { name: 'x', type: 'uint256' },
196
212
  { name: 'y', type: 'uint256' },
213
+ // H7-C.1 / CON-WEBAUTHN-001: AgentAccountRecoveryPasskeyAdd struct
214
+ // gained rpIdHash. Off-chain encoder was missing it (drift bug
215
+ // fixed 2026-06-01, same class as PRs #91, #92, #95).
216
+ { name: 'rpIdHash', type: 'bytes32' },
197
217
  ],
198
218
  },
199
219
  { name: 'removePasskeyCredentialIdDigests', type: 'bytes32[]' },
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
@@ -33,16 +33,36 @@ export type PasskeySlot = {
33
33
  /** P-256 public key. Re-derived and asserted equal to `pia` inside SignatureSlotRecovery. */
34
34
  x: bigint;
35
35
  y: bigint;
36
+ /** H7-C.1 / CON-WEBAUTHN-001: rpIdHash binds the assertion to the RP the
37
+ * authenticator was registered against. Required by the on-chain decoder
38
+ * at `SignatureSlotRecovery.recoverFromSlot` (line 172, 4-field tuple) —
39
+ * prior to 2026-06-01 this was missing from the encoder, producing a
40
+ * 3-field blob the decoder couldn't parse → empty revert. */
41
+ rpIdHash: Hex;
36
42
  /** Decoded WebAuthn assertion produced by the browser ceremony. */
37
43
  assertion: WebAuthnAssertion;
38
44
  };
39
45
  export type QuorumSlot = EcdsaSlot | ContractSigSlot | ApprovedHashSlot | PasskeySlot;
40
46
  /**
41
47
  * Encode a v=2 passkey slot's tail body as `abi.encode(uint256 x,
42
- * uint256 y, WebAuthnLib.Assertion assertion)` — the shape
43
- * `SignatureSlotRecovery.recoverFromSlot` decodes for v=2 slots.
48
+ * uint256 y, bytes32 rpIdHash, WebAuthnLib.Assertion assertion)` — the
49
+ * shape `SignatureSlotRecovery.recoverFromSlot` decodes (line 172-173)
50
+ * for v=2 slots.
51
+ *
52
+ * H7-C.1 / CON-WEBAUTHN-001 (encoder updated 2026-06-01): the on-chain
53
+ * decoder added `bytes32 rpIdHash` between `(x, y)` and the assertion,
54
+ * but this off-chain encoder was left at 3 fields. `abi.decode` of a
55
+ * 3-field blob into a 4-field tuple underflows → EMPTY revert from
56
+ * the EntryPoint (no UserOperationRevertReason emitted). Live-debug
57
+ * symptom (Act 3 'AddPasskey Bob on Org' with Alice signing via
58
+ * passkey): user sees the opaque 'inner userOp reverted (no
59
+ * UserOperationEvent…)' chain. SIWE/EOA path used v=27/28 slots
60
+ * which don't hit this decoder — that's why it worked.
61
+ *
62
+ * Same drift class as PRs #91 (direct-deploy ABI) and #92
63
+ * (AddPasskeyCredential args).
44
64
  */
45
- export declare function encodePasskeyTailBody(x: bigint, y: bigint, assertion: WebAuthnAssertion): Hex;
65
+ export declare function encodePasskeyTailBody(x: bigint, y: bigint, rpIdHash: Hex, assertion: WebAuthnAssertion): Hex;
46
66
  /**
47
67
  * Pack a sorted set of slots into the bytes blob CustodyPolicy expects.
48
68
  * Slot encoding follows Safe's convention; dynamic tails (v=0 + v=2)
@@ -1 +1 @@
1
- {"version":3,"file":"quorum-slots.d.ts","sourceRoot":"","sources":["../src/quorum-slots.ts"],"names":[],"mappings":"AAmBA,OAAO,EAML,KAAK,OAAO,EACZ,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAEd,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,kBAAkB,EAAE,GAAG,CAAC;CACzB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,SAAS,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,uEAAuE;IACvE,MAAM,EAAE,OAAO,CAAC;IAChB,sDAAsD;IACtD,aAAa,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,6EAA6E;IAC7E,GAAG,EAAE,OAAO,CAAC;IACb,6FAA6F;IAC7F,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,mEAAmE;IACnE,SAAS,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAiBtF;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,iBAAiB,GAC3B,GAAG,CASL;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAiDhE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAO7D"}
1
+ {"version":3,"file":"quorum-slots.d.ts","sourceRoot":"","sources":["../src/quorum-slots.ts"],"names":[],"mappings":"AAmBA,OAAO,EAML,KAAK,OAAO,EACZ,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAEd,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,GAAG,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,kBAAkB,EAAE,GAAG,CAAC;CACzB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,SAAS,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,uEAAuE;IACvE,MAAM,EAAE,OAAO,CAAC;IAChB,sDAAsD;IACtD,aAAa,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,6EAA6E;IAC7E,GAAG,EAAE,OAAO,CAAC;IACb,6FAA6F;IAC7F,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV;;;;kEAI8D;IAC9D,QAAQ,EAAE,GAAG,CAAC;IACd,mEAAmE;IACnE,SAAS,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAiBtF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,iBAAiB,GAC3B,GAAG,CAUL;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAiDhE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAO7D"}
@@ -33,15 +33,30 @@ const ASSERTION_COMPONENTS = [
33
33
  ];
34
34
  /**
35
35
  * Encode a v=2 passkey slot's tail body as `abi.encode(uint256 x,
36
- * uint256 y, WebAuthnLib.Assertion assertion)` — the shape
37
- * `SignatureSlotRecovery.recoverFromSlot` decodes for v=2 slots.
36
+ * uint256 y, bytes32 rpIdHash, WebAuthnLib.Assertion assertion)` — the
37
+ * shape `SignatureSlotRecovery.recoverFromSlot` decodes (line 172-173)
38
+ * for v=2 slots.
39
+ *
40
+ * H7-C.1 / CON-WEBAUTHN-001 (encoder updated 2026-06-01): the on-chain
41
+ * decoder added `bytes32 rpIdHash` between `(x, y)` and the assertion,
42
+ * but this off-chain encoder was left at 3 fields. `abi.decode` of a
43
+ * 3-field blob into a 4-field tuple underflows → EMPTY revert from
44
+ * the EntryPoint (no UserOperationRevertReason emitted). Live-debug
45
+ * symptom (Act 3 'AddPasskey Bob on Org' with Alice signing via
46
+ * passkey): user sees the opaque 'inner userOp reverted (no
47
+ * UserOperationEvent…)' chain. SIWE/EOA path used v=27/28 slots
48
+ * which don't hit this decoder — that's why it worked.
49
+ *
50
+ * Same drift class as PRs #91 (direct-deploy ABI) and #92
51
+ * (AddPasskeyCredential args).
38
52
  */
39
- export function encodePasskeyTailBody(x, y, assertion) {
53
+ export function encodePasskeyTailBody(x, y, rpIdHash, assertion) {
40
54
  return encodeAbiParameters([
41
55
  { type: 'uint256' },
42
56
  { type: 'uint256' },
57
+ { type: 'bytes32' },
43
58
  { type: 'tuple', components: ASSERTION_COMPONENTS },
44
- ], [x, y, assertion]);
59
+ ], [x, y, rpIdHash, assertion]);
45
60
  }
46
61
  /**
47
62
  * Pack a sorted set of slots into the bytes blob CustodyPolicy expects.
@@ -89,7 +104,7 @@ export function packQuorumSigs(slots) {
89
104
  const r = padHex(slot.pia, { size: 32 });
90
105
  const s = padHex(toHex(BigInt(runningOffset)), { size: 32 });
91
106
  slotFragments.push(concat([r, s, '0x02']));
92
- const blob = encodePasskeyTailBody(slot.x, slot.y, slot.assertion);
107
+ const blob = encodePasskeyTailBody(slot.x, slot.y, slot.rpIdHash, slot.assertion);
93
108
  const blobBytes = (blob.length - 2) / 2;
94
109
  tailFragments.push(concat([padHex(toHex(BigInt(blobBytes)), { size: 32 }), blob]));
95
110
  runningOffset += 32 + blobBytes;
@@ -1 +1 @@
1
- {"version":3,"file":"quorum-slots.js","sourceRoot":"","sources":["../src/quorum-slots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quorum-slots.js","sourceRoot":"","sources":["../src/quorum-slots.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticprimitives/account-custody",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "1.0.0-alpha.11",
4
4
  "description": "Custody-layer SDK: CustodyPolicy ABI, CustodyAction enum + arg builders, EIP-712 typed-data helpers, and Custodian/Trustee/CustodyCouncil types. Speaks custody-domain vocabulary only — no delegation / steward / caveat concepts (those belong in @agenticprimitives/delegation).",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -31,12 +31,12 @@
31
31
  "access": "public"
32
32
  },
33
33
  "peerDependencies": {
34
- "viem": "^2.50.0",
35
- "@agenticprimitives/types": "0.1.0-alpha.3"
34
+ "viem": "^2.52.2",
35
+ "@agenticprimitives/types": "1.0.0-alpha.11"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^22.7.0",
39
- "vitest": "^2.1.0"
39
+ "vitest": "^4.1.8"
40
40
  },
41
41
  "keywords": [
42
42
  "custody",