@openzeppelin/miden-multisig-client 0.14.5 → 0.14.8

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 (99) hide show
  1. package/README.md +99 -0
  2. package/dist/client.d.ts +21 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +20 -0
  5. package/dist/client.js.map +1 -1
  6. package/dist/client.test.js +77 -0
  7. package/dist/client.test.js.map +1 -1
  8. package/dist/index.d.ts +6 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +6 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/lookupAuth.d.ts +29 -0
  13. package/dist/lookupAuth.d.ts.map +1 -0
  14. package/dist/lookupAuth.js +85 -0
  15. package/dist/lookupAuth.js.map +1 -0
  16. package/dist/lookupAuth.test.d.ts +2 -0
  17. package/dist/lookupAuth.test.d.ts.map +1 -0
  18. package/dist/lookupAuth.test.js +137 -0
  19. package/dist/lookupAuth.test.js.map +1 -0
  20. package/dist/multisig/config.d.ts +8 -0
  21. package/dist/multisig/config.d.ts.map +1 -0
  22. package/dist/multisig/config.js +8 -0
  23. package/dist/multisig/config.js.map +1 -0
  24. package/dist/multisig/consumeNotesErrors.d.ts +48 -0
  25. package/dist/multisig/consumeNotesErrors.d.ts.map +1 -0
  26. package/dist/multisig/consumeNotesErrors.js +58 -0
  27. package/dist/multisig/consumeNotesErrors.js.map +1 -0
  28. package/dist/multisig/consumeNotesErrors.test.d.ts +2 -0
  29. package/dist/multisig/consumeNotesErrors.test.d.ts.map +1 -0
  30. package/dist/multisig/consumeNotesErrors.test.js +28 -0
  31. package/dist/multisig/consumeNotesErrors.test.js.map +1 -0
  32. package/dist/multisig.d.ts.map +1 -1
  33. package/dist/multisig.js +63 -4
  34. package/dist/multisig.js.map +1 -1
  35. package/dist/proposal/metadata.d.ts.map +1 -1
  36. package/dist/proposal/metadata.js +4 -0
  37. package/dist/proposal/metadata.js.map +1 -1
  38. package/dist/proposal/metadata.test.d.ts +2 -0
  39. package/dist/proposal/metadata.test.d.ts.map +1 -0
  40. package/dist/proposal/metadata.test.js +43 -0
  41. package/dist/proposal/metadata.test.js.map +1 -0
  42. package/dist/signers/ecdsa.d.ts +5 -0
  43. package/dist/signers/ecdsa.d.ts.map +1 -1
  44. package/dist/signers/ecdsa.js +9 -0
  45. package/dist/signers/ecdsa.js.map +1 -1
  46. package/dist/signers/falcon.d.ts +5 -0
  47. package/dist/signers/falcon.d.ts.map +1 -1
  48. package/dist/signers/falcon.js +9 -0
  49. package/dist/signers/falcon.js.map +1 -1
  50. package/dist/signers/miden-wallet.d.ts +5 -0
  51. package/dist/signers/miden-wallet.d.ts.map +1 -1
  52. package/dist/signers/miden-wallet.js +12 -0
  53. package/dist/signers/miden-wallet.js.map +1 -1
  54. package/dist/signers/miden-wallet.test.js +36 -0
  55. package/dist/signers/miden-wallet.test.js.map +1 -1
  56. package/dist/signers/para.d.ts +5 -0
  57. package/dist/signers/para.d.ts.map +1 -1
  58. package/dist/signers/para.js +9 -0
  59. package/dist/signers/para.js.map +1 -1
  60. package/dist/signers/para.test.js +19 -0
  61. package/dist/signers/para.test.js.map +1 -1
  62. package/dist/transaction/consumeNotes.d.ts +13 -1
  63. package/dist/transaction/consumeNotes.d.ts.map +1 -1
  64. package/dist/transaction/consumeNotes.js +30 -13
  65. package/dist/transaction/consumeNotes.js.map +1 -1
  66. package/dist/types/proposal.d.ts +10 -0
  67. package/dist/types/proposal.d.ts.map +1 -1
  68. package/dist/types/proposal.js +10 -1
  69. package/dist/types/proposal.js.map +1 -1
  70. package/dist/types/proposal.test.d.ts +2 -0
  71. package/dist/types/proposal.test.d.ts.map +1 -0
  72. package/dist/types/proposal.test.js +56 -0
  73. package/dist/types/proposal.test.js.map +1 -0
  74. package/dist/utils/encoding.d.ts +8 -0
  75. package/dist/utils/encoding.d.ts.map +1 -1
  76. package/dist/utils/encoding.js +8 -0
  77. package/dist/utils/encoding.js.map +1 -1
  78. package/package.json +3 -3
  79. package/src/client.test.ts +97 -0
  80. package/src/client.ts +36 -0
  81. package/src/index.ts +30 -1
  82. package/src/lookupAuth.test.ts +184 -0
  83. package/src/lookupAuth.ts +93 -0
  84. package/src/multisig/config.ts +7 -0
  85. package/src/multisig/consumeNotesErrors.test.ts +43 -0
  86. package/src/multisig/consumeNotesErrors.ts +74 -0
  87. package/src/multisig.ts +81 -7
  88. package/src/proposal/metadata.test.ts +47 -0
  89. package/src/proposal/metadata.ts +4 -0
  90. package/src/signers/ecdsa.ts +10 -0
  91. package/src/signers/falcon.ts +10 -0
  92. package/src/signers/miden-wallet.test.ts +48 -0
  93. package/src/signers/miden-wallet.ts +13 -0
  94. package/src/signers/para.test.ts +26 -0
  95. package/src/signers/para.ts +10 -0
  96. package/src/transaction/consumeNotes.ts +40 -17
  97. package/src/types/proposal.test.ts +68 -0
  98. package/src/types/proposal.ts +18 -0
  99. package/src/utils/encoding.ts +13 -0
@@ -0,0 +1,137 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ const hashCalls = [];
3
+ vi.mock('@miden-sdk/miden-sdk', () => {
4
+ const Felt = vi.fn().mockImplementation((value) => ({
5
+ __felt: true,
6
+ value,
7
+ }));
8
+ const FeltArray = vi.fn().mockImplementation((felts) => felts);
9
+ const makeWord = (felts, hex = '0xMOCKED') => ({
10
+ __word: true,
11
+ felts,
12
+ toFelts: () => felts,
13
+ toHex: () => hex,
14
+ });
15
+ const Word = {
16
+ fromHex: vi.fn().mockImplementation((hex) => {
17
+ // Deterministic four-felt decomposition: split hex into 4 8-byte pieces.
18
+ // The values are not real Word semantics, but they let us assert the
19
+ // implementation passes them through in order.
20
+ const stripped = hex.startsWith('0x') ? hex.slice(2) : hex;
21
+ const padded = stripped.padStart(64, '0');
22
+ const felts = [];
23
+ for (let i = 0; i < 4; i += 1) {
24
+ const piece = padded.slice(i * 16, (i + 1) * 16);
25
+ felts.push({ __felt: true, value: BigInt('0x' + piece) });
26
+ }
27
+ return makeWord(felts, hex);
28
+ }),
29
+ };
30
+ const Rpo256 = {
31
+ hashElements: vi.fn().mockImplementation((felts) => {
32
+ hashCalls.push({ input: [...felts] });
33
+ // Synthesize a fake digest: 4 felts derived from the input length and
34
+ // first felt's value, so each call's output is distinguishable.
35
+ const seed = felts.length === 0 ? 0n : felts[0].value;
36
+ return makeWord([
37
+ { __felt: true, value: seed ^ BigInt(felts.length) },
38
+ { __felt: true, value: seed + 1n },
39
+ { __felt: true, value: seed + 2n },
40
+ { __felt: true, value: seed + 3n },
41
+ ], '0xfakehash');
42
+ }),
43
+ };
44
+ return { Felt, FeltArray, Rpo256, Word };
45
+ });
46
+ const DOMAIN_TAG_BYTES = new TextEncoder().encode('guardian.lookup.v1');
47
+ function bytesToExpectedFelts(bytes) {
48
+ const out = [];
49
+ for (let offset = 0; offset < bytes.length; offset += 8) {
50
+ let value = 0n;
51
+ for (let i = 0; i < 8; i += 1) {
52
+ const byte = offset + i < bytes.length ? bytes[offset + i] : 0;
53
+ value |= BigInt(byte) << BigInt(8 * i);
54
+ }
55
+ out.push(value);
56
+ }
57
+ return out;
58
+ }
59
+ let lookupAuthDigest;
60
+ let _resetLookupDomainTagCacheForTesting;
61
+ beforeEach(async () => {
62
+ hashCalls.length = 0;
63
+ // Re-import to pick up a fresh cached domain tag per test, in addition to
64
+ // the explicit reset, so test ordering does not change behavior.
65
+ const mod = await import('./lookupAuth.js');
66
+ lookupAuthDigest = mod.lookupAuthDigest;
67
+ _resetLookupDomainTagCacheForTesting = mod._resetLookupDomainTagCacheForTesting;
68
+ _resetLookupDomainTagCacheForTesting();
69
+ });
70
+ describe('lookupAuthDigest', () => {
71
+ it('hashes the domain-tag bytes via the same 8-byte LE chunking as Rust', () => {
72
+ const keyCommitmentHex = '0x' + 'aa'.repeat(32);
73
+ lookupAuthDigest(1_700_000_000_000, keyCommitmentHex);
74
+ // First Rpo256.hashElements call must be the domain-tag computation
75
+ // (3 felts for "guardian.lookup.v1" — 18 bytes → ceil(18/8) = 3 chunks).
76
+ expect(hashCalls.length).toBeGreaterThanOrEqual(2);
77
+ const tagCall = hashCalls[0];
78
+ const expected = bytesToExpectedFelts(DOMAIN_TAG_BYTES);
79
+ expect(tagCall.input).toHaveLength(expected.length);
80
+ expect(tagCall.input.length).toBe(3);
81
+ for (let i = 0; i < expected.length; i += 1) {
82
+ expect(tagCall.input[i].value).toBe(expected[i]);
83
+ }
84
+ });
85
+ it('caches the domain-tag computation across calls', () => {
86
+ const keyCommitmentHex = '0x' + 'bb'.repeat(32);
87
+ lookupAuthDigest(1_700_000_000_000, keyCommitmentHex);
88
+ const callsAfterFirst = hashCalls.length;
89
+ lookupAuthDigest(1_700_000_000_001, keyCommitmentHex);
90
+ const callsAfterSecond = hashCalls.length;
91
+ // Second invocation should perform exactly one Rpo256.hashElements call
92
+ // (the message hash); the domain-tag hash is cached.
93
+ expect(callsAfterSecond - callsAfterFirst).toBe(1);
94
+ });
95
+ it('passes 9 felts in [tag, timestamp, key_commitment] order to the message hash', () => {
96
+ const keyCommitmentHex = '0x' + '01'.repeat(32);
97
+ const timestamp = 1700000000000n;
98
+ lookupAuthDigest(timestamp, keyCommitmentHex);
99
+ const messageCall = hashCalls[hashCalls.length - 1];
100
+ expect(messageCall.input).toHaveLength(9);
101
+ // Felt 4 is the timestamp, reinterpreted as u64 (no change for positive).
102
+ expect(messageCall.input[4].value).toBe(timestamp);
103
+ // Felts 5..8 are the key-commitment felts, derived deterministically by
104
+ // the mocked Word.fromHex from the hex representation.
105
+ const expectedKcWord = '01'.repeat(32);
106
+ for (let i = 0; i < 4; i += 1) {
107
+ const piece = expectedKcWord.slice(i * 16, (i + 1) * 16);
108
+ expect(messageCall.input[5 + i].value).toBe(BigInt('0x' + piece));
109
+ }
110
+ });
111
+ it('reinterprets a negative timestamp via two-complement u64 cast', () => {
112
+ const keyCommitmentHex = '0x' + 'cc'.repeat(32);
113
+ lookupAuthDigest(-1, keyCommitmentHex);
114
+ const messageCall = hashCalls[hashCalls.length - 1];
115
+ // -1 cast to u64 is 0xFFFFFFFFFFFFFFFF.
116
+ expect(messageCall.input[4].value).toBe(0xffffffffffffffffn);
117
+ });
118
+ it('produces distinct digest inputs for distinct commitments', () => {
119
+ lookupAuthDigest(1_700_000_000_000, '0x' + '01'.repeat(32));
120
+ lookupAuthDigest(1_700_000_000_000, '0x' + '02'.repeat(32));
121
+ // Call 0 is the cached domain-tag hash. Calls 1 and 2 are the two message
122
+ // hashes; the second call hits the domain-tag cache so it does not produce
123
+ // an extra hash call.
124
+ const messageCallA = hashCalls[1];
125
+ const messageCallB = hashCalls[2];
126
+ expect(messageCallA.input[5].value).not.toBe(messageCallB.input[5].value);
127
+ });
128
+ it('produces distinct digest inputs for distinct timestamps', () => {
129
+ const keyCommitmentHex = '0x' + '01'.repeat(32);
130
+ lookupAuthDigest(1_700_000_000_000, keyCommitmentHex);
131
+ lookupAuthDigest(1_700_000_000_001, keyCommitmentHex);
132
+ const messageCallA = hashCalls[1];
133
+ const messageCallB = hashCalls[2];
134
+ expect(messageCallA.input[4].value).not.toBe(messageCallB.input[4].value);
135
+ });
136
+ });
137
+ //# sourceMappingURL=lookupAuth.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookupAuth.test.js","sourceRoot":"","sources":["../src/lookupAuth.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Whether this build accepts v1 `consume_notes` metadata (issue #229).
3
+ * Mirrors the Rust `legacy-consume-notes` Cargo feature. Flip to `false`
4
+ * in the cut-over release; v1 proposals will then be refused with
5
+ * `UnsupportedMetadataVersionError`.
6
+ */
7
+ export declare const LEGACY_CONSUME_NOTES_ENABLED = true;
8
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/multisig/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,OAAO,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Whether this build accepts v1 `consume_notes` metadata (issue #229).
3
+ * Mirrors the Rust `legacy-consume-notes` Cargo feature. Flip to `false`
4
+ * in the cut-over release; v1 proposals will then be refused with
5
+ * `UnsupportedMetadataVersionError`.
6
+ */
7
+ export const LEGACY_CONSUME_NOTES_ENABLED = true;
8
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/multisig/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Stable error identifiers for the `consume_notes` v2 metadata flow
3
+ * (issue #229). These string codes are pinned identical to the Rust
4
+ * SDK's `MultisigError::code()` values per spec FR-021 / FR-022, so
5
+ * cross-SDK tests and operator diagnostics share one taxonomy.
6
+ */
7
+ export type ConsumeNotesErrorCode = 'consume_notes_note_binding_mismatch' | 'consume_notes_unsupported_metadata_version' | 'consume_notes_metadata_oversize' | 'consume_notes_legacy_note_missing';
8
+ /**
9
+ * v2 metadata's embedded `notes` array did not match its declared
10
+ * `noteIds` — either a length mismatch, or an embedded note whose
11
+ * `note.id()` did not match the corresponding `noteIds[i]`. Spec FR-007.
12
+ */
13
+ export declare class NoteBindingMismatchError extends Error {
14
+ readonly code: ConsumeNotesErrorCode;
15
+ constructor(message: string);
16
+ }
17
+ /**
18
+ * `metadataVersion` is a value the client does not support — either a
19
+ * legacy (v1) proposal on a cut-over client, or an unrecognized future
20
+ * version. Spec FR-009 / FR-019.
21
+ */
22
+ export declare class UnsupportedMetadataVersionError extends Error {
23
+ readonly code: ConsumeNotesErrorCode;
24
+ readonly found: number | undefined;
25
+ constructor(found: number | undefined, message?: string);
26
+ }
27
+ /**
28
+ * Serialized v2 metadata exceeded the per-proposal cap
29
+ * (`MAX_CONSUME_NOTES_METADATA_BYTES`, 256 KiB). Raised at proposal-
30
+ * creation time before any signature collection begins. Spec FR-011.
31
+ */
32
+ export declare class ConsumeNotesMetadataOversizeError extends Error {
33
+ readonly code: ConsumeNotesErrorCode;
34
+ readonly limit: number;
35
+ readonly actual: number;
36
+ constructor(limit: number, actual: number);
37
+ }
38
+ /**
39
+ * v1 (legacy) verification path: the cosigner's local Miden store did
40
+ * not contain the referenced note. This is the exact failure issue #229
41
+ * exists to eliminate; on v2 proposals it is not reachable.
42
+ */
43
+ export declare class LegacyConsumeNotesNoteMissingError extends Error {
44
+ readonly code: ConsumeNotesErrorCode;
45
+ readonly noteId: string;
46
+ constructor(noteId: string);
47
+ }
48
+ //# sourceMappingURL=consumeNotesErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumeNotesErrors.d.ts","sourceRoot":"","sources":["../../src/multisig/consumeNotesErrors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAC7B,qCAAqC,GACrC,4CAA4C,GAC5C,iCAAiC,GACjC,mCAAmC,CAAC;AAExC;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAyC;gBACjE,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAgD;IACpF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;gBACvB,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAQxD;AAED;;;;GAIG;AACH,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAqC;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM1C;AAED;;;;GAIG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;IAC3D,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAuC;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,MAAM;CAK3B"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * v2 metadata's embedded `notes` array did not match its declared
3
+ * `noteIds` — either a length mismatch, or an embedded note whose
4
+ * `note.id()` did not match the corresponding `noteIds[i]`. Spec FR-007.
5
+ */
6
+ export class NoteBindingMismatchError extends Error {
7
+ code = 'consume_notes_note_binding_mismatch';
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'NoteBindingMismatchError';
11
+ }
12
+ }
13
+ /**
14
+ * `metadataVersion` is a value the client does not support — either a
15
+ * legacy (v1) proposal on a cut-over client, or an unrecognized future
16
+ * version. Spec FR-009 / FR-019.
17
+ */
18
+ export class UnsupportedMetadataVersionError extends Error {
19
+ code = 'consume_notes_unsupported_metadata_version';
20
+ found;
21
+ constructor(found, message) {
22
+ super(message ??
23
+ `unsupported consume_notes metadata version: ${found === undefined ? 'absent' : String(found)}`);
24
+ this.name = 'UnsupportedMetadataVersionError';
25
+ this.found = found;
26
+ }
27
+ }
28
+ /**
29
+ * Serialized v2 metadata exceeded the per-proposal cap
30
+ * (`MAX_CONSUME_NOTES_METADATA_BYTES`, 256 KiB). Raised at proposal-
31
+ * creation time before any signature collection begins. Spec FR-011.
32
+ */
33
+ export class ConsumeNotesMetadataOversizeError extends Error {
34
+ code = 'consume_notes_metadata_oversize';
35
+ limit;
36
+ actual;
37
+ constructor(limit, actual) {
38
+ super(`consume_notes metadata exceeds size limit: limit=${limit} bytes, actual=${actual} bytes`);
39
+ this.name = 'ConsumeNotesMetadataOversizeError';
40
+ this.limit = limit;
41
+ this.actual = actual;
42
+ }
43
+ }
44
+ /**
45
+ * v1 (legacy) verification path: the cosigner's local Miden store did
46
+ * not contain the referenced note. This is the exact failure issue #229
47
+ * exists to eliminate; on v2 proposals it is not reachable.
48
+ */
49
+ export class LegacyConsumeNotesNoteMissingError extends Error {
50
+ code = 'consume_notes_legacy_note_missing';
51
+ noteId;
52
+ constructor(noteId) {
53
+ super(`consume_notes legacy verification: note not found in local store: ${noteId}`);
54
+ this.name = 'LegacyConsumeNotesNoteMissingError';
55
+ this.noteId = noteId;
56
+ }
57
+ }
58
+ //# sourceMappingURL=consumeNotesErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumeNotesErrors.js","sourceRoot":"","sources":["../../src/multisig/consumeNotesErrors.ts"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,IAAI,GAA0B,qCAAqC,CAAC;IAC7E,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,GAA0B,4CAA4C,CAAC;IAC3E,KAAK,CAAqB;IACnC,YAAY,KAAyB,EAAE,OAAgB;QACrD,KAAK,CACH,OAAO;YACL,+CAA+C,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IACjD,IAAI,GAA0B,iCAAiC,CAAC;IAChE,KAAK,CAAS;IACd,MAAM,CAAS;IACxB,YAAY,KAAa,EAAE,MAAc;QACvC,KAAK,CAAC,oDAAoD,KAAK,kBAAkB,MAAM,QAAQ,CAAC,CAAC;QACjG,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,kCAAmC,SAAQ,KAAK;IAClD,IAAI,GAA0B,mCAAmC,CAAC;IAClE,MAAM,CAAS;IACxB,YAAY,MAAc;QACxB,KAAK,CAAC,qEAAqE,MAAM,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=consumeNotesErrors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumeNotesErrors.test.d.ts","sourceRoot":"","sources":["../../src/multisig/consumeNotesErrors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { ConsumeNotesMetadataOversizeError, LegacyConsumeNotesNoteMissingError, NoteBindingMismatchError, UnsupportedMetadataVersionError, } from './consumeNotesErrors.js';
3
+ describe('consume_notes error taxonomy (issue #229)', () => {
4
+ it('pins stable codes identical to the Rust SDK', () => {
5
+ expect(new NoteBindingMismatchError('x').code).toBe('consume_notes_note_binding_mismatch');
6
+ expect(new UnsupportedMetadataVersionError(99).code).toBe('consume_notes_unsupported_metadata_version');
7
+ expect(new ConsumeNotesMetadataOversizeError(1, 2).code).toBe('consume_notes_metadata_oversize');
8
+ expect(new LegacyConsumeNotesNoteMissingError('0xabc').code).toBe('consume_notes_legacy_note_missing');
9
+ });
10
+ it('preserves structured error fields for programmatic branching', () => {
11
+ const oversize = new ConsumeNotesMetadataOversizeError(262_144, 300_000);
12
+ expect(oversize.limit).toBe(262_144);
13
+ expect(oversize.actual).toBe(300_000);
14
+ const missing = new LegacyConsumeNotesNoteMissingError('0xnoteid');
15
+ expect(missing.noteId).toBe('0xnoteid');
16
+ const unsupported = new UnsupportedMetadataVersionError(99);
17
+ expect(unsupported.found).toBe(99);
18
+ const absent = new UnsupportedMetadataVersionError(undefined);
19
+ expect(absent.found).toBeUndefined();
20
+ });
21
+ it('extends Error so instanceof Error and instanceof <subclass> both work', () => {
22
+ const err = new NoteBindingMismatchError('boom');
23
+ expect(err).toBeInstanceOf(Error);
24
+ expect(err).toBeInstanceOf(NoteBindingMismatchError);
25
+ expect(err.name).toBe('NoteBindingMismatchError');
26
+ });
27
+ });
28
+ //# sourceMappingURL=consumeNotesErrors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumeNotesErrors.test.js","sourceRoot":"","sources":["../../src/multisig/consumeNotesErrors.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AAEjC,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC3F,MAAM,CAAC,IAAI,+BAA+B,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CACvD,4CAA4C,CAC7C,CAAC;QACF,MAAM,CAAC,IAAI,iCAAiC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3D,iCAAiC,CAClC,CAAC;QACF,MAAM,CAAC,IAAI,kCAAkC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAC/D,mCAAmC,CACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,QAAQ,GAAG,IAAI,iCAAiC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAI,kCAAkC,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExC,MAAM,WAAW,GAAG,IAAI,+BAA+B,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,GAAG,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"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"}
package/dist/multisig.js CHANGED
@@ -5,8 +5,13 @@
5
5
  * for proposal management.
6
6
  */
7
7
  import { GuardianHttpClient } from '@openzeppelin/guardian-client';
8
- import { Account, AccountId, AdviceMap, Endpoint, FeltArray, RpcClient, Signature, TransactionSummary, Word, } from '@miden-sdk/miden-sdk';
8
+ import { Account, AccountId, AdviceMap, Endpoint, FeltArray, Note, RpcClient, Signature, TransactionSummary, Word, } from '@miden-sdk/miden-sdk';
9
9
  import { executeForSummary, buildUpdateSignersTransactionRequest, buildUpdateProcedureThresholdTransactionRequest, buildUpdateGuardianTransactionRequest, buildConsumeNotesTransactionRequest, buildP2idTransactionRequest, } from './transaction.js';
10
+ import { buildConsumeNotesTransactionRequestFromNotes } from './transaction/consumeNotes.js';
11
+ import { CONSUME_NOTES_METADATA_VERSION_V2, MAX_CONSUME_NOTES_METADATA_BYTES, } from './types/proposal.js';
12
+ import { LEGACY_CONSUME_NOTES_ENABLED } from './multisig/config.js';
13
+ import { ConsumeNotesMetadataOversizeError, LegacyConsumeNotesNoteMissingError, NoteBindingMismatchError, UnsupportedMetadataVersionError, } from './multisig/consumeNotesErrors.js';
14
+ import { noteFromBase64, noteToBase64 } from './utils/encoding.js';
10
15
  import { base64ToUint8Array, uint8ArrayToBase64, normalizeHexWord, } from './utils/encoding.js';
11
16
  import { buildSignatureAdviceEntry, normalizeSignerCommitment, signatureHexToBytes, tryComputeEcdsaCommitmentHex, } from './utils/signature.js';
12
17
  import { computeCommitmentFromTxSummary, accountIdToHex } from './multisig/helpers.js';
@@ -493,17 +498,39 @@ export class Multisig {
493
498
  if (noteIds.length === 0) {
494
499
  throw new Error('At least one note ID is required');
495
500
  }
496
- const { request, salt } = await buildConsumeNotesTransactionRequest(webClient, noteIds);
501
+ // Fetch notes locally (proposer has them per FR-012); embed for v2 verification.
502
+ const rawClient = await getRawMidenClient(webClient);
503
+ const fetchedNotes = [];
504
+ for (const noteIdHex of noteIds) {
505
+ const inputNoteRecord = await rawClient.getInputNote(noteIdHex);
506
+ if (!inputNoteRecord) {
507
+ throw new LegacyConsumeNotesNoteMissingError(noteIdHex);
508
+ }
509
+ fetchedNotes.push(inputNoteRecord.toNote());
510
+ }
511
+ const embeddedNotes = fetchedNotes.map((n) => noteToBase64(n));
512
+ const { request, salt } = buildConsumeNotesTransactionRequestFromNotes(fetchedNotes);
497
513
  const summary = await executeForSummary(webClient, this._accountId, request);
498
514
  const summaryBase64 = uint8ArrayToBase64(summary.serialize());
499
515
  const proposalNonce = nonce ?? Date.now();
500
516
  const metadata = {
501
517
  proposalType: 'consume_notes',
502
518
  noteIds,
519
+ metadataVersion: CONSUME_NOTES_METADATA_VERSION_V2,
520
+ notes: embeddedNotes,
503
521
  saltHex: salt.toHex(),
504
522
  requiredSignatures: this.getEffectiveThreshold('consume_notes'),
505
523
  description: `Consume ${noteIds.length} note(s)`,
506
524
  };
525
+ // FR-011: enforce metadata size cap on the wire-encoded form (what GUARDIAN
526
+ // actually persists), matching the Rust side which measures
527
+ // `ProposalMetadataPayload`. Sizing the local in-memory `metadata` would
528
+ // miss codec divergence.
529
+ const encoded = ProposalMetadataCodec.toGuardian(metadata);
530
+ const metadataSize = new TextEncoder().encode(JSON.stringify(encoded)).length;
531
+ if (metadataSize > MAX_CONSUME_NOTES_METADATA_BYTES) {
532
+ throw new ConsumeNotesMetadataOversizeError(MAX_CONSUME_NOTES_METADATA_BYTES, metadataSize);
533
+ }
507
534
  return this.createProposal(proposalNonce, summaryBase64, metadata);
508
535
  }
509
536
  /**
@@ -914,8 +941,40 @@ export class Multisig {
914
941
  return request;
915
942
  }
916
943
  case 'consume_notes': {
917
- const { request } = await buildConsumeNotesTransactionRequest(webClient, metadata.noteIds, { salt, signatureAdviceMap });
918
- return request;
944
+ // v1/v2 dispatch for issue #229 / FR-009.
945
+ const version = metadata.metadataVersion;
946
+ if (version === CONSUME_NOTES_METADATA_VERSION_V2) {
947
+ const embedded = metadata.notes ?? [];
948
+ if (embedded.length !== metadata.noteIds.length) {
949
+ throw new NoteBindingMismatchError(`consume_notes v2: notes.length=${embedded.length} does not match noteIds.length=${metadata.noteIds.length}`);
950
+ }
951
+ const decoded = [];
952
+ for (let i = 0; i < embedded.length; i++) {
953
+ const note = noteFromBase64(embedded[i], Note);
954
+ // Normalize both sides; matches the file's other hex comparisons.
955
+ const embeddedId = normalizeHexWord(note.id().toString());
956
+ const declaredId = normalizeHexWord(metadata.noteIds[i]);
957
+ if (embeddedId !== declaredId) {
958
+ throw new NoteBindingMismatchError(`consume_notes v2: notes[${i}] id ${embeddedId} != noteIds[${i}] ${declaredId}`);
959
+ }
960
+ decoded.push(note);
961
+ }
962
+ const { request } = buildConsumeNotesTransactionRequestFromNotes(decoded, {
963
+ salt,
964
+ signatureAdviceMap,
965
+ });
966
+ return request;
967
+ }
968
+ if (version === undefined || version === 1) {
969
+ if (!LEGACY_CONSUME_NOTES_ENABLED) {
970
+ // Preserve explicit `1` vs absent so the error tells the
971
+ // operator which legacy shape was rejected.
972
+ throw new UnsupportedMetadataVersionError(version);
973
+ }
974
+ const { request } = await buildConsumeNotesTransactionRequest(webClient, metadata.noteIds, { salt, signatureAdviceMap });
975
+ return request;
976
+ }
977
+ throw new UnsupportedMetadataVersionError(version);
919
978
  }
920
979
  case 'p2id': {
921
980
  const { request } = buildP2idTransactionRequest(this._accountId, metadata.recipientId, metadata.faucetId, BigInt(metadata.amount), { salt, signatureAdviceMap });
@@ -1 +1 @@
1
- {"version":3,"file":"multisig.js","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multisig.js","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"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"}