@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
@@ -49,9 +49,27 @@ export interface UpdateProcedureThresholdProposalMetadata extends BaseProposalMe
49
49
  targetThreshold: number;
50
50
  }
51
51
 
52
+ /** `consume_notes` metadata version. Absence on the wire => v1 (issue #229). */
53
+ export const CONSUME_NOTES_METADATA_VERSION_V2 = 2 as const;
54
+
55
+ /** Max serialized v2 metadata, enforced at creation (FR-011). */
56
+ export const MAX_CONSUME_NOTES_METADATA_BYTES = 256 * 1024;
57
+
52
58
  export interface ConsumeNotesProposalMetadata extends BaseProposalMetadata {
53
59
  proposalType: 'consume_notes';
54
60
  noteIds: string[];
61
+ /** Absent or `1` => v1 (legacy), `2` => v2 (issue #229). */
62
+ metadataVersion?: 1 | 2;
63
+ /** v2: base64-encoded `note.serialize()` output, index-aligned with `noteIds`. */
64
+ notes?: string[];
65
+ }
66
+
67
+ export function isConsumeNotesV2(md: ConsumeNotesProposalMetadata): boolean {
68
+ return md.metadataVersion === CONSUME_NOTES_METADATA_VERSION_V2;
69
+ }
70
+
71
+ export function isConsumeNotesV1(md: ConsumeNotesProposalMetadata): boolean {
72
+ return md.metadataVersion === undefined || md.metadataVersion === 1;
55
73
  }
56
74
 
57
75
  export interface P2IdProposalMetadata extends BaseProposalMetadata {
@@ -40,6 +40,19 @@ export function uint8ArrayToBase64(bytes: Uint8Array): string {
40
40
  throw new Error('No base64 encoder available in this environment');
41
41
  }
42
42
 
43
+ /** Serialize a Miden `Note` to base64 (v2 `consume_notes` metadata, issue #229). */
44
+ export function noteToBase64(note: { serialize(): Uint8Array }): string {
45
+ return uint8ArrayToBase64(note.serialize());
46
+ }
47
+
48
+ /** Decode a base64 note. `noteCtor` is `Note` from `@miden-sdk/miden-sdk`. */
49
+ export function noteFromBase64<TNote>(
50
+ base64: string,
51
+ noteCtor: { deserialize(bytes: Uint8Array): TNote },
52
+ ): TNote {
53
+ return noteCtor.deserialize(base64ToUint8Array(base64));
54
+ }
55
+
43
56
  export function base64ToUint8Array(base64: string): Uint8Array {
44
57
  const binary =
45
58
  typeof atob === 'function'