@openzeppelin/miden-multisig-client 0.13.4 → 0.14.3

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 (145) hide show
  1. package/README.md +10 -13
  2. package/dist/account/builder.d.ts +3 -3
  3. package/dist/account/builder.d.ts.map +1 -1
  4. package/dist/account/builder.js +10 -10
  5. package/dist/account/builder.js.map +1 -1
  6. package/dist/account/builder.test.js +16 -14
  7. package/dist/account/builder.test.js.map +1 -1
  8. package/dist/account/masm/account-components/auth.d.ts +4 -4
  9. package/dist/account/masm/account-components/auth.d.ts.map +1 -1
  10. package/dist/account/masm/account-components/auth.js +8 -12
  11. package/dist/account/masm/account-components/auth.js.map +1 -1
  12. package/dist/account/masm/auth.d.ts +4 -4
  13. package/dist/account/masm/auth.d.ts.map +1 -1
  14. package/dist/account/masm/auth.js +226 -124
  15. package/dist/account/masm/auth.js.map +1 -1
  16. package/dist/account/storage.d.ts.map +1 -1
  17. package/dist/account/storage.js +24 -6
  18. package/dist/account/storage.js.map +1 -1
  19. package/dist/account/storage.test.d.ts +2 -0
  20. package/dist/account/storage.test.d.ts.map +1 -0
  21. package/dist/account/storage.test.js +73 -0
  22. package/dist/account/storage.test.js.map +1 -0
  23. package/dist/client.d.ts +9 -9
  24. package/dist/client.d.ts.map +1 -1
  25. package/dist/client.js +24 -14
  26. package/dist/client.js.map +1 -1
  27. package/dist/client.test.js +45 -8
  28. package/dist/client.test.js.map +1 -1
  29. package/dist/index.d.ts +6 -12
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +6 -12
  32. package/dist/index.js.map +1 -1
  33. package/dist/multisig/proposal/execution.d.ts +3 -2
  34. package/dist/multisig/proposal/execution.d.ts.map +1 -1
  35. package/dist/multisig/proposal/execution.js +8 -12
  36. package/dist/multisig/proposal/execution.js.map +1 -1
  37. package/dist/multisig.d.ts +7 -4
  38. package/dist/multisig.d.ts.map +1 -1
  39. package/dist/multisig.js +53 -35
  40. package/dist/multisig.js.map +1 -1
  41. package/dist/multisig.test.js +17 -29
  42. package/dist/multisig.test.js.map +1 -1
  43. package/dist/procedures.d.ts +8 -8
  44. package/dist/procedures.js +8 -8
  45. package/dist/raw-client.d.ts +13 -0
  46. package/dist/raw-client.d.ts.map +1 -0
  47. package/dist/raw-client.js +42 -0
  48. package/dist/raw-client.js.map +1 -0
  49. package/dist/raw-client.test.d.ts +2 -0
  50. package/dist/raw-client.test.d.ts.map +1 -0
  51. package/dist/raw-client.test.js +89 -0
  52. package/dist/raw-client.test.js.map +1 -0
  53. package/dist/signers/ecdsa.d.ts +3 -1
  54. package/dist/signers/ecdsa.d.ts.map +1 -1
  55. package/dist/signers/ecdsa.js +15 -1
  56. package/dist/signers/ecdsa.js.map +1 -1
  57. package/dist/signers/ecdsa.test.js +27 -4
  58. package/dist/signers/ecdsa.test.js.map +1 -1
  59. package/dist/signers/falcon.d.ts +3 -1
  60. package/dist/signers/falcon.d.ts.map +1 -1
  61. package/dist/signers/falcon.js +15 -1
  62. package/dist/signers/falcon.js.map +1 -1
  63. package/dist/signers/falcon.test.js +39 -3
  64. package/dist/signers/falcon.test.js.map +1 -1
  65. package/dist/transaction/consumeNotes.d.ts +2 -2
  66. package/dist/transaction/consumeNotes.d.ts.map +1 -1
  67. package/dist/transaction/consumeNotes.js +5 -4
  68. package/dist/transaction/consumeNotes.js.map +1 -1
  69. package/dist/transaction/options.d.ts +1 -0
  70. package/dist/transaction/options.d.ts.map +1 -1
  71. package/dist/transaction/p2id.d.ts.map +1 -1
  72. package/dist/transaction/p2id.js +7 -10
  73. package/dist/transaction/p2id.js.map +1 -1
  74. package/dist/transaction/p2id.test.js +19 -9
  75. package/dist/transaction/p2id.test.js.map +1 -1
  76. package/dist/transaction/summary.d.ts +2 -2
  77. package/dist/transaction/summary.d.ts.map +1 -1
  78. package/dist/transaction/summary.js +4 -2
  79. package/dist/transaction/summary.js.map +1 -1
  80. package/dist/transaction/updateGuardian.d.ts +2 -2
  81. package/dist/transaction/updateGuardian.d.ts.map +1 -1
  82. package/dist/transaction/updateGuardian.js +8 -11
  83. package/dist/transaction/updateGuardian.js.map +1 -1
  84. package/dist/transaction/updateProcedureThreshold.d.ts +2 -2
  85. package/dist/transaction/updateProcedureThreshold.d.ts.map +1 -1
  86. package/dist/transaction/updateProcedureThreshold.js +8 -10
  87. package/dist/transaction/updateProcedureThreshold.js.map +1 -1
  88. package/dist/transaction/updateSigners.d.ts +2 -2
  89. package/dist/transaction/updateSigners.d.ts.map +1 -1
  90. package/dist/transaction/updateSigners.js +8 -10
  91. package/dist/transaction/updateSigners.js.map +1 -1
  92. package/dist/transaction.test.js +6 -6
  93. package/dist/transaction.test.js.map +1 -1
  94. package/dist/utils/key.d.ts.map +1 -1
  95. package/dist/utils/key.js +3 -3
  96. package/dist/utils/key.js.map +1 -1
  97. package/dist/utils/key.test.js +4 -2
  98. package/dist/utils/key.test.js.map +1 -1
  99. package/dist/utils/signature.d.ts +2 -0
  100. package/dist/utils/signature.d.ts.map +1 -1
  101. package/dist/utils/signature.js +10 -5
  102. package/dist/utils/signature.js.map +1 -1
  103. package/dist/utils/signature.test.js +9 -9
  104. package/dist/utils/signature.test.js.map +1 -1
  105. package/masm/account_components/auth/multisig.masm +2 -3
  106. package/masm/account_components/auth/multisig_ecdsa.masm +2 -3
  107. package/masm/account_components/auth/multisig_guardian.masm +2 -3
  108. package/masm/account_components/auth/multisig_guardian_ecdsa.masm +2 -3
  109. package/masm/auth/guardian.masm +30 -8
  110. package/masm/auth/guardian_ecdsa.masm +24 -7
  111. package/masm/auth/multisig.masm +86 -55
  112. package/masm/auth/multisig_ecdsa.masm +86 -54
  113. package/package.json +3 -3
  114. package/src/account/builder.test.ts +16 -14
  115. package/src/account/builder.ts +13 -12
  116. package/src/account/masm/account-components/auth.ts +8 -12
  117. package/src/account/masm/auth.ts +226 -124
  118. package/src/account/storage.test.ts +90 -0
  119. package/src/account/storage.ts +27 -6
  120. package/src/client.test.ts +52 -8
  121. package/src/client.ts +39 -16
  122. package/src/index.ts +6 -12
  123. package/src/multisig/proposal/execution.ts +18 -14
  124. package/src/multisig.test.ts +17 -29
  125. package/src/multisig.ts +61 -36
  126. package/src/procedures.ts +8 -8
  127. package/src/raw-client.test.ts +133 -0
  128. package/src/raw-client.ts +75 -0
  129. package/src/signers/ecdsa.test.ts +35 -4
  130. package/src/signers/ecdsa.ts +18 -2
  131. package/src/signers/falcon.test.ts +50 -3
  132. package/src/signers/falcon.ts +18 -2
  133. package/src/transaction/consumeNotes.ts +16 -5
  134. package/src/transaction/options.ts +1 -0
  135. package/src/transaction/p2id.test.ts +19 -9
  136. package/src/transaction/p2id.ts +8 -13
  137. package/src/transaction/summary.ts +11 -4
  138. package/src/transaction/updateGuardian.ts +22 -14
  139. package/src/transaction/updateProcedureThreshold.ts +20 -15
  140. package/src/transaction/updateSigners.ts +22 -14
  141. package/src/transaction.test.ts +6 -6
  142. package/src/utils/key.test.ts +4 -2
  143. package/src/utils/key.ts +7 -3
  144. package/src/utils/signature.test.ts +10 -10
  145. package/src/utils/signature.ts +12 -5
@@ -7,7 +7,7 @@ vi.mock('@miden-sdk/miden-sdk', () => ({
7
7
  })),
8
8
  Felt: vi.fn().mockImplementation((v) => ({ value: v })),
9
9
  FeltArray: vi.fn().mockImplementation((arr) => arr),
10
- Rpo256: {
10
+ Poseidon2: {
11
11
  hashElements: vi.fn().mockReturnValue({
12
12
  toHex: () => '0x' + 'h'.repeat(64),
13
13
  }),
@@ -39,13 +39,13 @@ describe('signature utilities', () => {
39
39
  vi.clearAllMocks();
40
40
  });
41
41
  describe('signatureHexToBytes', () => {
42
- it('prepends auth scheme byte (0 = RpoFalcon512)', () => {
42
+ it('prepends auth scheme byte (2 = Falcon Poseidon2)', () => {
43
43
  const result = signatureHexToBytes('deadbeef');
44
- expect(result[0]).toBe(0); // RpoFalcon512 scheme byte
44
+ expect(result[0]).toBe(2);
45
45
  });
46
46
  it('prepends auth scheme byte (1 = ECDSA)', () => {
47
47
  const result = signatureHexToBytes('deadbeef', 'ecdsa');
48
- expect(result[0]).toBe(1); // ECDSA scheme byte
48
+ expect(result[0]).toBe(1);
49
49
  });
50
50
  it('converts hex to bytes after prefix', () => {
51
51
  const result = signatureHexToBytes('deadbeef');
@@ -53,7 +53,7 @@ describe('signature utilities', () => {
53
53
  });
54
54
  it('handles 0x prefix', () => {
55
55
  const result = signatureHexToBytes('0xaabbccdd');
56
- expect(result[0]).toBe(0);
56
+ expect(result[0]).toBe(2);
57
57
  expect(result.slice(1)).toEqual(new Uint8Array([0xaa, 0xbb, 0xcc, 0xdd]));
58
58
  });
59
59
  it('returns correct length (input bytes + 1)', () => {
@@ -63,11 +63,11 @@ describe('signature utilities', () => {
63
63
  });
64
64
  it('handles empty signature', () => {
65
65
  const result = signatureHexToBytes('');
66
- expect(result).toEqual(new Uint8Array([0])); // Just the prefix
66
+ expect(result).toEqual(new Uint8Array([2]));
67
67
  });
68
68
  it('handles empty with 0x prefix', () => {
69
69
  const result = signatureHexToBytes('0x');
70
- expect(result).toEqual(new Uint8Array([0]));
70
+ expect(result).toEqual(new Uint8Array([2]));
71
71
  });
72
72
  });
73
73
  describe('buildSignatureAdviceEntry', () => {
@@ -81,12 +81,12 @@ describe('signature utilities', () => {
81
81
  expect(values).toBeDefined();
82
82
  });
83
83
  it('hashes pubkey commitment and message to produce key', async () => {
84
- const { Word, Signature, Rpo256 } = await import('@miden-sdk/miden-sdk');
84
+ const { Word, Signature, Poseidon2 } = await import('@miden-sdk/miden-sdk');
85
85
  const pubkeyCommitment = Word.fromHex('0x' + 'a'.repeat(64));
86
86
  const message = Word.fromHex('0x' + 'b'.repeat(64));
87
87
  const signature = Signature.deserialize(new Uint8Array([0, 1, 2, 3]));
88
88
  buildSignatureAdviceEntry(pubkeyCommitment, message, signature);
89
- expect(Rpo256.hashElements).toHaveBeenCalled();
89
+ expect(Poseidon2.hashElements).toHaveBeenCalled();
90
90
  });
91
91
  it('uses toPreparedSignature to get values', async () => {
92
92
  const { Word, Signature } = await import('@miden-sdk/miden-sdk');
@@ -1 +1 @@
1
- {"version":3,"file":"signature.test.js","sourceRoot":"","sources":["../../src/utils/signature.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signature.test.js","sourceRoot":"","sources":["../../src/utils/signature.test.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,11 @@
2
2
 
3
3
  use openzeppelin::auth::multisig
4
4
 
5
- type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
6
-
7
5
  pub use multisig::update_signers_and_threshold
8
6
  pub use multisig::update_procedure_threshold
9
7
 
10
- pub proc auth_tx_multisig(salt: BeWord)
8
+ @auth_script
9
+ pub proc auth_tx_multisig(salt: word)
11
10
  exec.multisig::auth_tx
12
11
  exec.multisig::assert_new_tx
13
12
  end
@@ -2,12 +2,11 @@
2
2
 
3
3
  use openzeppelin::auth::multisig_ecdsa
4
4
 
5
- type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
6
-
7
5
  pub use multisig_ecdsa::update_signers_and_threshold
8
6
  pub use multisig_ecdsa::update_procedure_threshold
9
7
 
10
- pub proc auth_tx_multisig_ecdsa(salt: BeWord)
8
+ @auth_script
9
+ pub proc auth_tx_multisig_ecdsa(salt: word)
11
10
  exec.multisig_ecdsa::auth_tx
12
11
  exec.multisig_ecdsa::assert_new_tx
13
12
  end
@@ -3,14 +3,13 @@
3
3
  use openzeppelin::auth::multisig
4
4
  use openzeppelin::auth::guardian
5
5
 
6
- type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
7
-
8
6
  pub use multisig::update_signers_and_threshold
9
7
  pub use multisig::update_procedure_threshold
10
8
  pub use guardian::update_guardian_public_key
11
9
  pub use guardian::verify_guardian_signature
12
10
 
13
- pub proc auth_tx_multisig_guardian(salt: BeWord)
11
+ @auth_script
12
+ pub proc auth_tx_multisig_guardian(salt: word)
14
13
  exec.multisig::auth_tx
15
14
  exec.guardian::verify_guardian_signature
16
15
  exec.multisig::assert_new_tx
@@ -3,14 +3,13 @@
3
3
  use openzeppelin::auth::multisig_ecdsa
4
4
  use openzeppelin::auth::guardian_ecdsa
5
5
 
6
- type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
7
-
8
6
  pub use multisig_ecdsa::update_signers_and_threshold
9
7
  pub use multisig_ecdsa::update_procedure_threshold
10
8
  pub use guardian_ecdsa::update_guardian_public_key
11
9
  pub use guardian_ecdsa::verify_guardian_signature
12
10
 
13
- pub proc auth_tx_multisig_guardian_ecdsa(salt: BeWord)
11
+ @auth_script
12
+ pub proc auth_tx_multisig_guardian_ecdsa(salt: word)
14
13
  exec.multisig_ecdsa::auth_tx
15
14
  exec.guardian_ecdsa::verify_guardian_signature
16
15
  exec.multisig_ecdsa::assert_new_tx
@@ -4,10 +4,9 @@
4
4
  # It can be used standalone or in conjunction with other auth components like multisig.
5
5
 
6
6
  use miden::protocol::active_account
7
+ use miden::protocol::auth::AUTH_UNAUTHORIZED_EVENT
7
8
  use miden::protocol::native_account
8
9
 
9
- type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
10
-
11
10
  # IMPORTANT SECURITY NOTES
12
11
  # --------------------------------------------------------------------------------
13
12
  # - The selector in `GUARDIAN_SELECTOR_SLOT` controls whether the extra GUARDIAN signature
@@ -33,6 +32,7 @@ type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
33
32
  # +---------------------+---------------+
34
33
  # | GUARDIAN SELECTOR (word) | 0 |
35
34
  # | GUARDIAN PUBLIC KEY MAP | 1 |
35
+ # | GUARDIAN SCHEME ID MAP | 2 |
36
36
  # +---------------------+---------------+
37
37
  #
38
38
  # - GUARDIAN_SELECTOR_SLOT (0):
@@ -42,7 +42,7 @@ type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
42
42
  # - GUARDIAN_PUBLIC_KEY_MAP_SLOT (1):
43
43
  # * A map from a fixed key [0, 0, 0, 0] to the single GUARDIAN public key:
44
44
  # [0, 0, 0, 0] => GUARDIAN_PUBLIC_KEY
45
- # * GUARDIAN_PUBLIC_KEY is a RPO Falcon 512 public key represented as a word.
45
+ # * GUARDIAN_PUBLIC_KEY is a Falcon Poseidon2 public key represented as a word.
46
46
 
47
47
  # CONSTANTS
48
48
  # =================================================================================================
@@ -57,12 +57,15 @@ const GUARDIAN_SELECTOR_SLOT=word("openzeppelin::guardian::selector")
57
57
  # [0, 0, 0, 0] => GUARDIAN_PUBLIC_KEY
58
58
  const GUARDIAN_PUBLIC_KEY_MAP_SLOT=word("openzeppelin::guardian::public_key")
59
59
 
60
+ # Map slot for GUARDIAN signature scheme IDs
61
+ # Uses exactly one scheme ID entry at index [0, 0, 0, 0]
62
+ # [0, 0, 0, 0] => [scheme_id, 0, 0, 0]
63
+ const GUARDIAN_SCHEME_ID_MAP_SLOT=word("openzeppelin::guardian::scheme_id")
64
+
60
65
  # Selector flag values
61
66
  const GUARDIAN_ON=[1, 0, 0, 0]
62
67
  const GUARDIAN_OFF=[0, 0, 0, 0]
63
-
64
- # The event emitted when a signature is not found for a required signer.
65
- const AUTH_UNAUTHORIZED_EVENT=event("miden::auth::unauthorized")
68
+ const FALCON_512_POSEIDON2_SCHEME_WORD=[2, 0, 0, 0]
66
69
 
67
70
  # GUARDIAN PROCEDURES
68
71
  # =================================================================================================
@@ -140,6 +143,24 @@ pub proc update_guardian_public_key
140
143
 
141
144
  dropw
142
145
  # => []
146
+
147
+ push.0.0.0.0
148
+ # => [MAP_KEY]
149
+
150
+ push.FALCON_512_POSEIDON2_SCHEME_WORD
151
+ # => [SCHEME_ID_WORD, MAP_KEY]
152
+
153
+ swapw
154
+ # => [MAP_KEY, SCHEME_ID_WORD]
155
+
156
+ push.GUARDIAN_SCHEME_ID_MAP_SLOT[0..2]
157
+ # => [scheme_id_slot_prefix, scheme_id_slot_suffix, MAP_KEY, SCHEME_ID_WORD]
158
+
159
+ exec.native_account::set_map_item
160
+ # => [OLD_MAP_VALUE]
161
+
162
+ dropw
163
+ # => []
143
164
  end
144
165
 
145
166
  #! Conditionally verify a "GUARDIAN" signature against a stored public key hash.
@@ -155,7 +176,7 @@ end
155
176
  #! - MSG is TX_SUMMARY_COMMITMENT provided by auth procedure
156
177
  #! - If selector is OFF (0), GUARDIAN verification is skipped
157
178
  #! - Selector value is read from initial storage state
158
- pub proc verify_guardian_signature(msg: BeWord) -> BeWord
179
+ pub proc verify_guardian_signature(msg: word)
159
180
  push.GUARDIAN_SELECTOR_SLOT[0..2]
160
181
  exec.active_account::get_item
161
182
  drop drop drop
@@ -165,7 +186,8 @@ pub proc verify_guardian_signature(msg: BeWord) -> BeWord
165
186
  if.true
166
187
  push.1
167
188
  push.GUARDIAN_PUBLIC_KEY_MAP_SLOT[0..2]
168
- exec.::miden::standards::auth::falcon512_rpo::verify_signatures
189
+ push.GUARDIAN_SCHEME_ID_MAP_SLOT[0..2]
190
+ exec.::miden::standards::auth::signature::verify_signatures
169
191
  push.1 neq
170
192
  if.true
171
193
  emit.AUTH_UNAUTHORIZED_EVENT
@@ -5,10 +5,9 @@
5
5
  # It can be used standalone or in conjunction with other auth components like multisig.
6
6
 
7
7
  use miden::protocol::active_account
8
+ use miden::protocol::auth::AUTH_UNAUTHORIZED_EVENT
8
9
  use miden::protocol::native_account
9
10
 
10
- type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
11
-
12
11
  # IMPORTANT SECURITY NOTES
13
12
  # --------------------------------------------------------------------------------
14
13
  # - The selector in `GUARDIAN_SELECTOR_SLOT` controls whether the extra GUARDIAN signature
@@ -57,13 +56,12 @@ const GUARDIAN_SELECTOR_SLOT=word("openzeppelin::guardian::selector")
57
56
  # Uses exactly one GUARDIAN public key at index [0, 0, 0, 0]
58
57
  # [0, 0, 0, 0] => GUARDIAN_PUBLIC_KEY
59
58
  const GUARDIAN_PUBLIC_KEY_MAP_SLOT=word("openzeppelin::guardian::public_key")
59
+ const GUARDIAN_SCHEME_ID_MAP_SLOT=word("openzeppelin::guardian::scheme_id")
60
60
 
61
61
  # Selector flag values
62
62
  const GUARDIAN_ON=[1, 0, 0, 0]
63
63
  const GUARDIAN_OFF=[0, 0, 0, 0]
64
-
65
- # The event emitted when a signature is not found for a required signer.
66
- const AUTH_UNAUTHORIZED_EVENT=event("miden::auth::unauthorized")
64
+ const ECDSA_K256_KECCAK_SCHEME_WORD=[1, 0, 0, 0]
67
65
 
68
66
  # GUARDIAN PROCEDURES
69
67
  # =================================================================================================
@@ -141,6 +139,24 @@ pub proc update_guardian_public_key
141
139
 
142
140
  dropw
143
141
  # => []
142
+
143
+ push.0.0.0.0
144
+ # => [MAP_KEY]
145
+
146
+ push.ECDSA_K256_KECCAK_SCHEME_WORD
147
+ # => [SCHEME_ID_WORD, MAP_KEY]
148
+
149
+ swapw
150
+ # => [MAP_KEY, SCHEME_ID_WORD]
151
+
152
+ push.GUARDIAN_SCHEME_ID_MAP_SLOT[0..2]
153
+ # => [scheme_id_slot_prefix, scheme_id_slot_suffix, MAP_KEY, SCHEME_ID_WORD]
154
+
155
+ exec.native_account::set_map_item
156
+ # => [OLD_MAP_VALUE]
157
+
158
+ dropw
159
+ # => []
144
160
  end
145
161
 
146
162
  #! Conditionally verify a "GUARDIAN" signature against a stored public key hash.
@@ -156,7 +172,7 @@ end
156
172
  #! - MSG is TX_SUMMARY_COMMITMENT provided by auth procedure
157
173
  #! - If selector is OFF (0), GUARDIAN verification is skipped
158
174
  #! - Selector value is read from initial storage state
159
- pub proc verify_guardian_signature(msg: BeWord) -> BeWord
175
+ pub proc verify_guardian_signature(msg: word)
160
176
  push.GUARDIAN_SELECTOR_SLOT[0..2]
161
177
  exec.active_account::get_item
162
178
  drop drop drop
@@ -166,7 +182,8 @@ pub proc verify_guardian_signature(msg: BeWord) -> BeWord
166
182
  if.true
167
183
  push.1
168
184
  push.GUARDIAN_PUBLIC_KEY_MAP_SLOT[0..2]
169
- exec.::miden::standards::auth::ecdsa_k256_keccak::verify_signatures
185
+ push.GUARDIAN_SCHEME_ID_MAP_SLOT[0..2]
186
+ exec.::miden::standards::auth::signature::verify_signatures
170
187
  push.1 neq
171
188
  if.true
172
189
  emit.AUTH_UNAUTHORIZED_EVENT
@@ -3,27 +3,23 @@
3
3
  # This library provides the reusable multisig procedures used by account wrappers.
4
4
 
5
5
  use miden::protocol::active_account
6
+ use miden::protocol::auth::AUTH_UNAUTHORIZED_EVENT
6
7
  use miden::protocol::native_account
7
8
  use miden::standards::auth
8
9
 
9
- type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
10
-
11
10
  # CONSTANTS
12
11
  # =================================================================================================
13
12
 
14
13
  # Auth Request Constants
15
14
 
16
- # The event emitted when a signature is not found for a required signer.
17
- const AUTH_UNAUTHORIZED_EVENT=event("miden::auth::unauthorized")
18
-
19
15
  # Storage Layout Constants
20
16
  #
21
- # +-------------------------------+----------+--------------+-------------------+
22
- # | THRESHOLD & APPROVERS CONFIG | PUB KEYS | EXECUTED TXS | PROC THRESHOLDS |
23
- # | (slot) | (map) | (map) | (map) |
24
- # +-------------------------------+----------+--------------+-------------------+
25
- # | 0 | 1 | 2 | 3 |
26
- # +-------------------------------+----------+--------------+-------------------+
17
+ # +-------------------------------+----------+------------+--------------+-------------------+
18
+ # | THRESHOLD & APPROVERS CONFIG | PUB KEYS | SCHEME IDS | EXECUTED TXS | PROC THRESHOLDS |
19
+ # | (slot) | (map) | (map) | (map) | (map) |
20
+ # +-------------------------------+----------+------------+--------------+-------------------+
21
+ # | 0 | 1 | 2 | 3 | 4 |
22
+ # +-------------------------------+----------+------------+--------------+-------------------+
27
23
 
28
24
  # The slot in this component's storage layout where the default signature threshold and
29
25
  # number of approvers are stored as:
@@ -35,6 +31,10 @@ const THRESHOLD_CONFIG_SLOT=word("openzeppelin::multisig::threshold_config")
35
31
  # Map entries: [key_index, 0, 0, 0] => APPROVER_PUBLIC_KEY
36
32
  const PUBLIC_KEYS_MAP_SLOT=word("openzeppelin::multisig::signer_public_keys")
37
33
 
34
+ # The slot in this component's storage layout where signer scheme IDs are stored.
35
+ # Map entries: [key_index, 0, 0, 0] => [scheme_id, 0, 0, 0]
36
+ const APPROVER_SCHEME_ID_SLOT=word("openzeppelin::multisig::signer_scheme_ids")
37
+
38
38
  # The slot in this component's storage layout where executed transactions are stored.
39
39
  # Map entries: transaction_message => [is_executed, 0, 0, 0]
40
40
  const EXECUTED_TXS_SLOT=word("openzeppelin::multisig::executed_transactions")
@@ -45,6 +45,7 @@ const PROC_THRESHOLD_ROOTS_SLOT=word("openzeppelin::multisig::procedure_threshol
45
45
 
46
46
  # Executed Transaction Flag Constant
47
47
  const IS_EXECUTED_FLAG=[1, 0, 0, 0]
48
+ const FALCON_512_POSEIDON2_SCHEME_WORD=[2, 0, 0, 0]
48
49
 
49
50
  # ERRORS
50
51
  const ERR_TX_ALREADY_EXECUTED="failed to approve multisig transaction as it was already executed"
@@ -69,7 +70,7 @@ const ERR_PROC_THRESHOLD_EXCEEDS_NUM_APPROVERS="procedure threshold exceeds numb
69
70
  #!
70
71
  #! Panics if:
71
72
  #! - the same transaction has already been executed
72
- pub proc assert_new_tx(msg: BeWord)
73
+ pub proc assert_new_tx(msg: word)
73
74
  push.IS_EXECUTED_FLAG
74
75
  # => [[0, 0, 0, is_executed], MSG]
75
76
 
@@ -113,17 +114,29 @@ proc cleanup_pubkey_mapping(init_num_of_approvers: u32, new_num_of_approvers: u3
113
114
  sub.1
114
115
  # => [i-1, new_num_of_approvers]
115
116
 
116
- dup
117
- # => [i-1, i-1, new_num_of_approvers]
118
-
119
- push.0.0.0
120
- # => [[0, 0, 0, i-1], i-1, new_num_of_approvers]
117
+ dup exec.create_approver_map_key
118
+ # => [APPROVER_MAP_KEY, i-1, new_num_of_approvers]
121
119
 
122
120
  padw swapw
123
- # => [[0, 0, 0, i-1], EMPTY_WORD, i-1, new_num_of_approvers]
121
+ # => [APPROVER_MAP_KEY, EMPTY_WORD, i-1, new_num_of_approvers]
124
122
 
125
123
  push.PUBLIC_KEYS_MAP_SLOT[0..2]
126
- # => [pub_key_slot_prefix, pub_key_slot_suffix, [0, 0, 0, i-1], EMPTY_WORD, i-1, new_num_of_approvers]
124
+ # => [pub_key_slot_prefix, pub_key_slot_suffix, APPROVER_MAP_KEY, EMPTY_WORD, i-1, new_num_of_approvers]
125
+
126
+ exec.native_account::set_map_item
127
+ # => [OLD_MAP_VALUE, i-1, new_num_of_approvers]
128
+
129
+ dropw
130
+ # => [i-1, new_num_of_approvers]
131
+
132
+ dup exec.create_approver_map_key
133
+ # => [APPROVER_MAP_KEY, i-1, new_num_of_approvers]
134
+
135
+ padw swapw
136
+ # => [APPROVER_MAP_KEY, EMPTY_WORD, i-1, new_num_of_approvers]
137
+
138
+ push.APPROVER_SCHEME_ID_SLOT[0..2]
139
+ # => [scheme_slot_prefix, scheme_slot_suffix, APPROVER_MAP_KEY, EMPTY_WORD, i-1, new_num_of_approvers]
127
140
 
128
141
  exec.native_account::set_map_item
129
142
  # => [OLD_MAP_VALUE, i-1, new_num_of_approvers]
@@ -140,15 +153,17 @@ proc cleanup_pubkey_mapping(init_num_of_approvers: u32, new_num_of_approvers: u3
140
153
  # => []
141
154
  end
142
155
 
156
+ proc create_approver_map_key
157
+ push.0.0.0 movup.3
158
+ # => [APPROVER_MAP_KEY]
159
+ end
160
+
143
161
  proc get_threshold_and_num_approvers
144
162
  push.THRESHOLD_CONFIG_SLOT[0..2]
145
163
  exec.active_account::get_initial_item
146
- # => [0, 0, num_approvers, threshold]
147
-
148
- drop drop
149
- # => [num_approvers, threshold]
164
+ # => [threshold, num_approvers]
150
165
 
151
- swap
166
+ movup.2 drop movup.2 drop
152
167
  # => [threshold, num_approvers]
153
168
  end
154
169
 
@@ -168,10 +183,10 @@ proc assert_proc_thresholds_lte_num_approvers(num_approvers: u32)
168
183
  push.PROC_THRESHOLD_ROOTS_SLOT[0..2]
169
184
  # => [proc_roots_slot_prefix, proc_roots_slot_suffix, PROC_ROOT, proc_index, num_approvers]
170
185
 
171
- exec.active_account::get_initial_map_item
172
- # => [[0, 0, 0, proc_threshold], proc_index, num_approvers]
186
+ exec.active_account::get_map_item
187
+ # => [[proc_threshold, 0, 0, 0], proc_index, num_approvers]
173
188
 
174
- drop drop drop
189
+ movdn.3 drop drop drop
175
190
  # => [proc_threshold, proc_index, num_approvers]
176
191
 
177
192
  dup.2
@@ -191,7 +206,7 @@ end
191
206
 
192
207
  # Internal storage helper used by the public `update_procedure_threshold`
193
208
  # entrypoint after it receives direct stack arguments.
194
- proc set_procedure_threshold(proc_threshold: u32, proc_root: BeWord)
209
+ proc set_procedure_threshold(proc_threshold: u32, proc_root: word)
195
210
  exec.get_threshold_and_num_approvers
196
211
  # => [threshold, num_approvers, proc_threshold, PROC_ROOT]
197
212
 
@@ -206,6 +221,7 @@ proc set_procedure_threshold(proc_threshold: u32, proc_root: BeWord)
206
221
  # => [proc_threshold, PROC_ROOT]
207
222
 
208
223
  push.0.0.0
224
+ movup.3
209
225
  swapw
210
226
  # => [PROC_ROOT, PROC_THRESHOLD_WORD]
211
227
 
@@ -238,7 +254,7 @@ end
238
254
  #! 0: new_num_of_approvers
239
255
  #! 1: init_num_of_approvers
240
256
  @locals(2)
241
- pub proc update_signers_and_threshold(multisig_config_hash: BeWord)
257
+ pub proc update_signers_and_threshold(multisig_config_hash: word)
242
258
  adv.push_mapval
243
259
  # => [MULTISIG_CONFIG_HASH, pad(12)]
244
260
 
@@ -246,10 +262,10 @@ pub proc update_signers_and_threshold(multisig_config_hash: BeWord)
246
262
  # => [MULTISIG_CONFIG, pad(12)]
247
263
 
248
264
  # store new_num_of_approvers for later
249
- dup.2 loc_store.0
265
+ dup.1 loc_store.0
250
266
  # => [MULTISIG_CONFIG, pad(12)]
251
267
 
252
- dup.3 dup.3
268
+ dup dup.2
253
269
  # => [num_approvers, threshold, MULTISIG_CONFIG, pad(12)]
254
270
 
255
271
  # make sure that the threshold is smaller than the number of approvers
@@ -257,7 +273,7 @@ pub proc update_signers_and_threshold(multisig_config_hash: BeWord)
257
273
  u32gt assertz.err=ERR_MALFORMED_MULTISIG_CONFIG
258
274
  # => [MULTISIG_CONFIG, pad(12)]
259
275
 
260
- dup.3 dup.3
276
+ dup dup.2
261
277
  # => [num_approvers, threshold, MULTISIG_CONFIG, pad(12)]
262
278
 
263
279
  # make sure that threshold or num_approvers are not zero
@@ -278,7 +294,7 @@ pub proc update_signers_and_threshold(multisig_config_hash: BeWord)
278
294
  # => [OLD_THRESHOLD_CONFIG, pad(12)]
279
295
 
280
296
  # store init_num_of_approvers for later
281
- drop drop loc_store.1 drop
297
+ drop loc_store.1 drop drop
282
298
  # => [pad(12)]
283
299
 
284
300
  loc_load.0
@@ -289,17 +305,35 @@ pub proc update_signers_and_threshold(multisig_config_hash: BeWord)
289
305
  sub.1
290
306
  # => [i-1, pad(12)]
291
307
 
292
- dup push.0.0.0
293
- # => [[0, 0, 0, i-1], i-1, pad(12)]
308
+ dup exec.create_approver_map_key
309
+ # => [APPROVER_MAP_KEY, i-1, pad(12)]
294
310
 
295
311
  padw adv_loadw
296
- # => [PUB_KEY, [0, 0, 0, i-1], i-1, pad(12)]
312
+ # => [PUB_KEY, APPROVER_MAP_KEY, i-1, pad(12)]
297
313
 
298
314
  swapw
299
- # => [[0, 0, 0, i-1], PUB_KEY, i-1, pad(12)]
315
+ # => [APPROVER_MAP_KEY, PUB_KEY, i-1, pad(12)]
300
316
 
301
317
  push.PUBLIC_KEYS_MAP_SLOT[0..2]
302
- # => [pub_key_slot_prefix, pub_key_slot_suffix, [0, 0, 0, i-1], PUB_KEY, i-1, pad(12)]
318
+ # => [pub_key_slot_prefix, pub_key_slot_suffix, APPROVER_MAP_KEY, PUB_KEY, i-1, pad(12)]
319
+
320
+ exec.native_account::set_map_item
321
+ # => [OLD_VALUE, i-1, pad(12)]
322
+
323
+ dropw
324
+ # => [i-1, pad(12)]
325
+
326
+ dup exec.create_approver_map_key
327
+ # => [APPROVER_MAP_KEY, i-1, pad(12)]
328
+
329
+ push.FALCON_512_POSEIDON2_SCHEME_WORD
330
+ # => [SCHEME_ID_WORD, APPROVER_MAP_KEY, i-1, pad(12)]
331
+
332
+ swapw
333
+ # => [APPROVER_MAP_KEY, [2, 0, 0, 0], i-1, pad(12)]
334
+
335
+ push.APPROVER_SCHEME_ID_SLOT[0..2]
336
+ # => [scheme_slot_prefix, scheme_slot_suffix, APPROVER_MAP_KEY, [2, 0, 0, 0], i-1, pad(12)]
303
337
 
304
338
  exec.native_account::set_map_item
305
339
  # => [OLD_VALUE, i-1, pad(12)]
@@ -332,7 +366,7 @@ end
332
366
  #! Outputs:
333
367
  #! Operand stack: []
334
368
  #! Invocation: call
335
- pub proc update_procedure_threshold(proc_threshold: u32, proc_root: BeWord)
369
+ pub proc update_procedure_threshold(proc_threshold: u32, proc_root: word)
336
370
  exec.set_procedure_threshold
337
371
  end
338
372
 
@@ -388,9 +422,9 @@ proc compute_transaction_threshold(default_threshold: u32) -> u32
388
422
  # 2b. get the override proc_threshold of that procedure
389
423
  # if the procedure has no override threshold, the returned map item will be [0, 0, 0, 0]
390
424
  exec.active_account::get_initial_map_item
391
- # => [[0, 0, 0, proc_threshold], num_procedures-1, transaction_threshold]
425
+ # => [[proc_threshold, 0, 0, 0], num_procedures-1, transaction_threshold]
392
426
 
393
- drop drop drop dup dup.3
427
+ movdn.3 drop drop drop dup dup.3
394
428
  # => [transaction_threshold, proc_threshold, proc_threshold, num_procedures-1, transaction_threshold]
395
429
 
396
430
  u32assert2.err="transaction threshold or procedure threshold are not u32"
@@ -459,18 +493,18 @@ end
459
493
  #!
460
494
  #! Invocation: exec
461
495
  @locals(1)
462
- pub proc auth_tx(salt: BeWord) -> BeWord
496
+ pub proc auth_tx(salt: word)
463
497
  exec.native_account::incr_nonce drop
464
498
  # => [SALT]
465
499
 
466
500
  # ------ Computing transaction summary ------
467
501
 
468
502
  exec.auth::create_tx_summary
469
- # => [SALT, OUTPUT_NOTES_COMMITMENT, INPUT_NOTES_COMMITMENT, ACCOUNT_DELTA_COMMITMENT]
503
+ # => [ACCOUNT_DELTA_COMMITMENT, INPUT_NOTES_COMMITMENT, OUTPUT_NOTES_COMMITMENT, SALT]
470
504
 
471
505
  # to build a tx_summary in the host, we need these four words in the advice provider
472
- exec.auth::adv_insert_hqword
473
- # => [SALT, OUTPUT_NOTES_COMMITMENT, INPUT_NOTES_COMMITMENT, ACCOUNT_DELTA_COMMITMENT]
506
+ adv.insert_hqword
507
+ # => [ACCOUNT_DELTA_COMMITMENT, INPUT_NOTES_COMMITMENT, OUTPUT_NOTES_COMMITMENT, SALT]
474
508
 
475
509
  # the commitment to the tx summary is the message that is signed
476
510
  exec.auth::hash_tx_summary
@@ -478,22 +512,19 @@ pub proc auth_tx(salt: BeWord) -> BeWord
478
512
 
479
513
  # ------ Verifying approver signatures ------
480
514
 
481
- push.THRESHOLD_CONFIG_SLOT[0..2]
482
- # => [config_slot_prefix, config_slot_suffix, TX_SUMMARY_COMMITMENT]
483
-
484
- exec.active_account::get_initial_item
485
- # => [0, 0, num_of_approvers, default_threshold, TX_SUMMARY_COMMITMENT]
486
-
487
- drop drop
488
- # => [num_of_approvers, default_threshold, TX_SUMMARY_COMMITMENT]
515
+ exec.get_threshold_and_num_approvers
516
+ # => [default_threshold, num_of_approvers, TX_SUMMARY_COMMITMENT]
489
517
 
490
- swap movdn.5
518
+ movdn.5
491
519
  # => [num_of_approvers, TX_SUMMARY_COMMITMENT, default_threshold]
492
520
 
493
521
  push.PUBLIC_KEYS_MAP_SLOT[0..2]
494
522
  # => [pub_key_slot_prefix, pub_key_slot_suffix, num_of_approvers, TX_SUMMARY_COMMITMENT, default_threshold]
495
523
 
496
- exec.::miden::standards::auth::falcon512_rpo::verify_signatures
524
+ push.APPROVER_SCHEME_ID_SLOT[0..2]
525
+ # => [scheme_id_slot_prefix, scheme_id_slot_suffix, pub_key_slot_prefix, pub_key_slot_suffix, num_of_approvers, TX_SUMMARY_COMMITMENT, default_threshold]
526
+
527
+ exec.::miden::standards::auth::signature::verify_signatures
497
528
  # => [num_verified_signatures, TX_SUMMARY_COMMITMENT, default_threshold]
498
529
 
499
530
  # ------ Checking threshold is >= num_verified_signatures ------