@agenticprimitives/account-custody 1.0.0-alpha.4 → 1.0.0-alpha.6
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/dist/actions.d.ts +15 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +23 -3
- package/dist/actions.js.map +1 -1
- package/dist/quorum-slots.d.ts +23 -3
- package/dist/quorum-slots.d.ts.map +1 -1
- package/dist/quorum-slots.js +20 -5
- package/dist/quorum-slots.js.map +1 -1
- package/package.json +4 -4
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
|
package/dist/actions.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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[]' },
|
package/dist/actions.js.map
CHANGED
|
@@ -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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"}
|
package/dist/quorum-slots.d.ts
CHANGED
|
@@ -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
|
|
43
|
-
* `SignatureSlotRecovery.recoverFromSlot` decodes
|
|
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
|
|
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"}
|
package/dist/quorum-slots.js
CHANGED
|
@@ -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
|
|
37
|
-
* `SignatureSlotRecovery.recoverFromSlot` decodes
|
|
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;
|
package/dist/quorum-slots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorum-slots.js","sourceRoot":"","sources":["../src/quorum-slots.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,yEAAyE;AACzE,iEAAiE;AACjE,qEAAqE;AACrE,qCAAqC;AACrC,EAAE;AACF,2BAA2B;AAC3B,iEAAiE;AACjE,8EAA8E;AAC9E,4EAA4E;AAC5E,oFAAoF;AACpF,iFAAiF;AACjF,EAAE;AACF,wEAAwE;AACxE,2CAA2C;AAE3C,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,KAAK,GAGN,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"quorum-slots.js","sourceRoot":"","sources":["../src/quorum-slots.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,yEAAyE;AACzE,iEAAiE;AACjE,qEAAqE;AACrE,qCAAqC;AACrC,EAAE;AACF,2BAA2B;AAC3B,iEAAiE;AACjE,8EAA8E;AAC9E,4EAA4E;AAC5E,oFAAoF;AACpF,iFAAiF;AACjF,EAAE;AACF,wEAAwE;AACxE,2CAA2C;AAE3C,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,KAAK,GAGN,MAAM,MAAM,CAAC;AAoDd,SAAS,UAAU,CAAC,IAAgB;IAClC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC;IAC7C,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,MAAM,oBAAoB,GAAG;IAC3B,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACtC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9B,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9B,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;CACvC,CAAC;AAEX;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,qBAAqB,CACnC,CAAS,EACT,CAAS,EACT,QAAa,EACb,SAA4B;IAE5B,OAAO,mBAAmB,CACxB;QACE,EAAE,IAAI,EAAE,SAAS,EAAE;QACnB,EAAE,IAAI,EAAE,SAAS,EAAE;QACnB,EAAE,IAAI,EAAE,SAAS,EAAE;QACnB,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE;KACpD,EACD,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAA4B;IACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACtC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,MAAM,aAAa,GAAU,EAAE,CAAC;IAChC,MAAM,aAAa,GAAU,EAAE,CAAC;IAEhC,IAAI,aAAa,GAAG,cAAc,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACvC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAa,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7D,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAa,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACtD,aAAa,CAAC,IAAI,CAChB,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAC7E,CAAC;YACF,aAAa,IAAI,EAAE,GAAG,SAAS,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7D,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAa,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAClF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACxC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACnF,aAAa,IAAI,EAAE,GAAG,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,MAAM,GAAG,mBAAmB,CAChC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;IACF,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAY,CAAC;AAC7C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticprimitives/account-custody",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.6",
|
|
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.
|
|
35
|
-
"@agenticprimitives/types": "1.0.0-alpha.
|
|
34
|
+
"viem": "^2.52.2",
|
|
35
|
+
"@agenticprimitives/types": "1.0.0-alpha.6"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^22.7.0",
|
|
39
|
-
"vitest": "^
|
|
39
|
+
"vitest": "^4.1.8"
|
|
40
40
|
},
|
|
41
41
|
"keywords": [
|
|
42
42
|
"custody",
|