@openzeppelin/miden-multisig-client 0.13.1 → 0.13.2

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 (275) hide show
  1. package/README.md +98 -119
  2. package/dist/account/builder.d.ts +18 -0
  3. package/dist/account/builder.d.ts.map +1 -1
  4. package/dist/account/builder.js +59 -29
  5. package/dist/account/builder.js.map +1 -1
  6. package/dist/account/builder.test.js +108 -32
  7. package/dist/account/builder.test.js.map +1 -1
  8. package/dist/account/index.d.ts +1 -1
  9. package/dist/account/index.d.ts.map +1 -1
  10. package/dist/account/index.js +1 -1
  11. package/dist/account/index.js.map +1 -1
  12. package/dist/account/masm/account-components/auth.d.ts +5 -0
  13. package/dist/account/masm/account-components/auth.d.ts.map +1 -0
  14. package/dist/account/masm/account-components/auth.js +67 -0
  15. package/dist/account/masm/account-components/auth.js.map +1 -0
  16. package/dist/account/masm/auth.d.ts +5 -0
  17. package/dist/account/masm/auth.d.ts.map +1 -0
  18. package/dist/account/masm/auth.js +1395 -0
  19. package/dist/account/masm/auth.js.map +1 -0
  20. package/dist/account/masm/index.d.ts +3 -0
  21. package/dist/account/masm/index.d.ts.map +1 -0
  22. package/dist/account/masm/index.js +5 -0
  23. package/dist/account/masm/index.js.map +1 -0
  24. package/dist/account/masm.d.ts +1 -4
  25. package/dist/account/masm.d.ts.map +1 -1
  26. package/dist/account/masm.js +3 -1034
  27. package/dist/account/masm.js.map +1 -1
  28. package/dist/account/storage.d.ts +2 -2
  29. package/dist/account/storage.d.ts.map +1 -1
  30. package/dist/account/storage.js +18 -16
  31. package/dist/account/storage.js.map +1 -1
  32. package/dist/client.d.ts +67 -9
  33. package/dist/client.d.ts.map +1 -1
  34. package/dist/client.js +73 -22
  35. package/dist/client.js.map +1 -1
  36. package/dist/client.test.js +31 -32
  37. package/dist/client.test.js.map +1 -1
  38. package/dist/index.d.ts +54 -12
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +53 -9
  41. package/dist/index.js.map +1 -1
  42. package/dist/inspector.d.ts +32 -6
  43. package/dist/inspector.d.ts.map +1 -1
  44. package/dist/inspector.js +58 -23
  45. package/dist/inspector.js.map +1 -1
  46. package/dist/inspector.test.js +18 -18
  47. package/dist/inspector.test.js.map +1 -1
  48. package/dist/multisig/proposal/execution.d.ts +4 -4
  49. package/dist/multisig/proposal/execution.d.ts.map +1 -1
  50. package/dist/multisig/proposal/execution.js +42 -31
  51. package/dist/multisig/proposal/execution.js.map +1 -1
  52. package/dist/multisig/proposal/parser.d.ts +3 -3
  53. package/dist/multisig/proposal/parser.d.ts.map +1 -1
  54. package/dist/multisig/proposal/parser.js +23 -23
  55. package/dist/multisig/proposal/parser.js.map +1 -1
  56. package/dist/multisig/signing.d.ts +3 -3
  57. package/dist/multisig/signing.d.ts.map +1 -1
  58. package/dist/multisig/signing.js +3 -3
  59. package/dist/multisig/signing.js.map +1 -1
  60. package/dist/multisig.d.ts +188 -48
  61. package/dist/multisig.d.ts.map +1 -1
  62. package/dist/multisig.js +650 -308
  63. package/dist/multisig.js.map +1 -1
  64. package/dist/multisig.test.js +1680 -241
  65. package/dist/multisig.test.js.map +1 -1
  66. package/dist/procedures.d.ts +46 -24
  67. package/dist/procedures.d.ts.map +1 -1
  68. package/dist/procedures.js +46 -21
  69. package/dist/procedures.js.map +1 -1
  70. package/dist/proposal/factory.d.ts +18 -0
  71. package/dist/proposal/factory.d.ts.map +1 -0
  72. package/dist/proposal/factory.js +99 -0
  73. package/dist/proposal/factory.js.map +1 -0
  74. package/dist/proposal/metadata.d.ts +5 -12
  75. package/dist/proposal/metadata.d.ts.map +1 -1
  76. package/dist/proposal/metadata.js +118 -174
  77. package/dist/proposal/metadata.js.map +1 -1
  78. package/dist/proposal/signatures.d.ts +10 -0
  79. package/dist/proposal/signatures.d.ts.map +1 -0
  80. package/dist/proposal/signatures.js +54 -0
  81. package/dist/proposal/signatures.js.map +1 -0
  82. package/dist/signer.d.ts +2 -0
  83. package/dist/signer.d.ts.map +1 -1
  84. package/dist/signer.js +2 -0
  85. package/dist/signer.js.map +1 -1
  86. package/dist/signers/ecdsa.d.ts +3 -0
  87. package/dist/signers/ecdsa.d.ts.map +1 -1
  88. package/dist/signers/ecdsa.js +8 -4
  89. package/dist/signers/ecdsa.js.map +1 -1
  90. package/dist/signers/ecdsa.test.d.ts +2 -0
  91. package/dist/signers/ecdsa.test.d.ts.map +1 -0
  92. package/dist/signers/ecdsa.test.js +65 -0
  93. package/dist/signers/ecdsa.test.js.map +1 -0
  94. package/dist/signers/falcon.d.ts +3 -0
  95. package/dist/signers/falcon.d.ts.map +1 -1
  96. package/dist/signers/falcon.js +8 -4
  97. package/dist/signers/falcon.js.map +1 -1
  98. package/dist/signers/falcon.test.js +12 -0
  99. package/dist/signers/falcon.test.js.map +1 -1
  100. package/dist/signers/miden-wallet.d.ts +3 -1
  101. package/dist/signers/miden-wallet.d.ts.map +1 -1
  102. package/dist/signers/miden-wallet.js +11 -2
  103. package/dist/signers/miden-wallet.js.map +1 -1
  104. package/dist/signers/miden-wallet.test.js +26 -0
  105. package/dist/signers/miden-wallet.test.js.map +1 -1
  106. package/dist/signers/para.d.ts +3 -3
  107. package/dist/signers/para.d.ts.map +1 -1
  108. package/dist/signers/para.js +15 -6
  109. package/dist/signers/para.js.map +1 -1
  110. package/dist/signers/para.test.js +39 -0
  111. package/dist/signers/para.test.js.map +1 -1
  112. package/dist/transaction/consumeNotes.d.ts.map +1 -1
  113. package/dist/transaction/consumeNotes.js +1 -0
  114. package/dist/transaction/consumeNotes.js.map +1 -1
  115. package/dist/transaction/index.d.ts +2 -1
  116. package/dist/transaction/index.d.ts.map +1 -1
  117. package/dist/transaction/index.js +2 -1
  118. package/dist/transaction/index.js.map +1 -1
  119. package/dist/transaction/options.d.ts +1 -1
  120. package/dist/transaction/options.d.ts.map +1 -1
  121. package/dist/transaction/p2id.d.ts +1 -0
  122. package/dist/transaction/p2id.d.ts.map +1 -1
  123. package/dist/transaction/p2id.js +9 -3
  124. package/dist/transaction/p2id.js.map +1 -1
  125. package/dist/transaction/updateGuardian.d.ts +7 -0
  126. package/dist/transaction/updateGuardian.d.ts.map +1 -0
  127. package/dist/transaction/{updatePsm.js → updateGuardian.js} +15 -29
  128. package/dist/transaction/updateGuardian.js.map +1 -0
  129. package/dist/transaction/updateProcedureThreshold.d.ts +9 -0
  130. package/dist/transaction/updateProcedureThreshold.d.ts.map +1 -0
  131. package/dist/transaction/updateProcedureThreshold.js +55 -0
  132. package/dist/transaction/updateProcedureThreshold.js.map +1 -0
  133. package/dist/transaction/updateSigners.d.ts.map +1 -1
  134. package/dist/transaction/updateSigners.js +5 -23
  135. package/dist/transaction/updateSigners.js.map +1 -1
  136. package/dist/transaction.d.ts +2 -1
  137. package/dist/transaction.d.ts.map +1 -1
  138. package/dist/transaction.js +2 -1
  139. package/dist/transaction.js.map +1 -1
  140. package/dist/types/proposal.d.ts +32 -15
  141. package/dist/types/proposal.d.ts.map +1 -1
  142. package/dist/types.d.ts +24 -7
  143. package/dist/types.d.ts.map +1 -1
  144. package/dist/utils/digest.d.ts +5 -0
  145. package/dist/utils/digest.d.ts.map +1 -1
  146. package/dist/utils/digest.js +34 -1
  147. package/dist/utils/digest.js.map +1 -1
  148. package/dist/utils/digest.test.d.ts +2 -0
  149. package/dist/utils/digest.test.d.ts.map +1 -0
  150. package/dist/utils/digest.test.js +48 -0
  151. package/dist/utils/digest.test.js.map +1 -0
  152. package/dist/utils/signature.d.ts +3 -1
  153. package/dist/utils/signature.d.ts.map +1 -1
  154. package/dist/utils/signature.js +31 -6
  155. package/dist/utils/signature.js.map +1 -1
  156. package/dist/utils/word.test.js +1 -52
  157. package/dist/utils/word.test.js.map +1 -1
  158. package/masm/account_components/auth/multisig.masm +13 -0
  159. package/masm/account_components/auth/multisig_ecdsa.masm +13 -0
  160. package/masm/account_components/auth/multisig_guardian.masm +17 -0
  161. package/masm/account_components/auth/multisig_guardian_ecdsa.masm +17 -0
  162. package/masm/auth/guardian.masm +177 -0
  163. package/masm/auth/guardian_ecdsa.masm +178 -0
  164. package/masm/{multisig.masm → auth/multisig.masm} +149 -55
  165. package/masm/{multisig_ecdsa.masm → auth/multisig_ecdsa.masm} +148 -56
  166. package/package.json +11 -9
  167. package/src/account/builder.test.ts +165 -0
  168. package/src/account/builder.ts +71 -34
  169. package/src/account/index.ts +1 -1
  170. package/src/account/masm/account-components/auth.ts +70 -0
  171. package/src/account/masm/auth.ts +1398 -0
  172. package/src/account/masm/index.ts +5 -0
  173. package/src/account/masm.ts +3 -1040
  174. package/src/account/storage.ts +18 -16
  175. package/src/client.test.ts +31 -35
  176. package/src/client.ts +98 -26
  177. package/src/index.ts +84 -22
  178. package/src/inspector.test.ts +17 -17
  179. package/src/inspector.ts +63 -29
  180. package/src/multisig/proposal/execution.ts +66 -49
  181. package/src/multisig/proposal/parser.ts +26 -26
  182. package/src/multisig/signing.ts +4 -4
  183. package/src/multisig.test.ts +2097 -248
  184. package/src/multisig.ts +882 -388
  185. package/src/procedures.ts +50 -26
  186. package/src/proposal/factory.ts +171 -0
  187. package/src/proposal/metadata.ts +165 -0
  188. package/src/proposal/signatures.ts +68 -0
  189. package/src/signer.ts +2 -0
  190. package/src/signers/ecdsa.test.ts +80 -0
  191. package/src/signers/ecdsa.ts +15 -4
  192. package/src/signers/falcon.test.ts +19 -0
  193. package/src/signers/falcon.ts +16 -5
  194. package/src/signers/miden-wallet.test.ts +47 -0
  195. package/src/signers/miden-wallet.ts +18 -1
  196. package/src/signers/para.test.ts +57 -0
  197. package/src/signers/para.ts +26 -7
  198. package/src/transaction/consumeNotes.ts +1 -0
  199. package/src/transaction/index.ts +2 -2
  200. package/src/transaction/options.ts +1 -2
  201. package/src/transaction/p2id.test.ts +190 -0
  202. package/src/transaction/p2id.ts +11 -5
  203. package/src/transaction/rpoRandomCoin.test.ts +64 -0
  204. package/src/transaction/rpoRandomCoin.ts +24 -0
  205. package/src/transaction/{updatePsm.ts → updateGuardian.ts} +19 -32
  206. package/src/transaction/updateProcedureThreshold.ts +97 -0
  207. package/src/transaction/updateSigners.ts +12 -27
  208. package/src/transaction.ts +5 -3
  209. package/src/types/proposal.ts +43 -11
  210. package/src/types.ts +29 -11
  211. package/src/utils/digest.test.ts +55 -0
  212. package/src/utils/digest.ts +51 -1
  213. package/src/utils/signature.ts +47 -9
  214. package/src/utils/word.test.ts +1 -55
  215. package/dist/account.d.ts +0 -104
  216. package/dist/account.d.ts.map +0 -1
  217. package/dist/account.js +0 -136
  218. package/dist/account.js.map +0 -1
  219. package/dist/builder.d.ts +0 -54
  220. package/dist/builder.d.ts.map +0 -1
  221. package/dist/builder.js +0 -78
  222. package/dist/builder.js.map +0 -1
  223. package/dist/http.d.ts +0 -64
  224. package/dist/http.d.ts.map +0 -1
  225. package/dist/http.js +0 -162
  226. package/dist/http.js.map +0 -1
  227. package/dist/keystore.d.ts +0 -65
  228. package/dist/keystore.d.ts.map +0 -1
  229. package/dist/keystore.js +0 -121
  230. package/dist/keystore.js.map +0 -1
  231. package/dist/miden.d.ts +0 -9
  232. package/dist/miden.d.ts.map +0 -1
  233. package/dist/miden.js +0 -26
  234. package/dist/miden.js.map +0 -1
  235. package/dist/multisig/metadata.d.ts +0 -18
  236. package/dist/multisig/metadata.d.ts.map +0 -1
  237. package/dist/multisig/metadata.js +0 -100
  238. package/dist/multisig/metadata.js.map +0 -1
  239. package/dist/multisig/metadata.test.d.ts +0 -2
  240. package/dist/multisig/metadata.test.d.ts.map +0 -1
  241. package/dist/multisig/metadata.test.js +0 -323
  242. package/dist/multisig/metadata.test.js.map +0 -1
  243. package/dist/proposal/exported.d.ts +0 -12
  244. package/dist/proposal/exported.d.ts.map +0 -1
  245. package/dist/proposal/exported.js +0 -88
  246. package/dist/proposal/exported.js.map +0 -1
  247. package/dist/signer.test.d.ts +0 -2
  248. package/dist/signer.test.d.ts.map +0 -1
  249. package/dist/signer.test.js +0 -123
  250. package/dist/signer.test.js.map +0 -1
  251. package/dist/transaction/p2id.interop.test.d.ts +0 -2
  252. package/dist/transaction/p2id.interop.test.d.ts.map +0 -1
  253. package/dist/transaction/p2id.interop.test.js +0 -36
  254. package/dist/transaction/p2id.interop.test.js.map +0 -1
  255. package/dist/transaction/updatePsm.d.ts +0 -7
  256. package/dist/transaction/updatePsm.d.ts.map +0 -1
  257. package/dist/transaction/updatePsm.js.map +0 -1
  258. package/dist/transport/http.d.ts +0 -64
  259. package/dist/transport/http.d.ts.map +0 -1
  260. package/dist/transport/http.js +0 -162
  261. package/dist/transport/http.js.map +0 -1
  262. package/dist/transport/index.d.ts +0 -5
  263. package/dist/transport/index.d.ts.map +0 -1
  264. package/dist/transport/index.js +0 -5
  265. package/dist/transport/index.js.map +0 -1
  266. package/dist/utils/state-validation.d.ts +0 -5
  267. package/dist/utils/state-validation.d.ts.map +0 -1
  268. package/dist/utils/state-validation.js +0 -30
  269. package/dist/utils/state-validation.js.map +0 -1
  270. package/dist/utils/validation.d.ts +0 -6
  271. package/dist/utils/validation.d.ts.map +0 -1
  272. package/dist/utils/validation.js +0 -52
  273. package/dist/utils/validation.js.map +0 -1
  274. package/masm/psm.masm +0 -178
  275. package/masm/psm_ecdsa.masm +0 -179
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Account builder for creating multisig accounts with GUARDIAN authentication.
3
+ *
4
+ * This module provides functionality to create multisig accounts.
5
+ */
6
+
1
7
  import {
2
8
  AccountBuilder,
3
9
  AccountComponent,
@@ -6,38 +12,63 @@ import {
6
12
  type WebClient,
7
13
  } from '@miden-sdk/miden-sdk';
8
14
  import type { MultisigConfig, CreateAccountResult } from '../types.js';
9
- import { buildMultisigStorageSlots, buildPsmStorageSlots } from './storage.js';
10
- import { MULTISIG_MASM, MULTISIG_ECDSA_MASM, PSM_MASM, PSM_ECDSA_MASM } from './masm.js';
15
+ import { buildMultisigStorageSlots, buildGuardianStorageSlots } from './storage.js';
16
+ import {
17
+ MULTISIG_ECDSA_MASM,
18
+ MULTISIG_MASM,
19
+ GUARDIAN_ECDSA_MASM,
20
+ GUARDIAN_MASM,
21
+ } from './masm/auth.js';
22
+ import {
23
+ MULTISIG_GUARDIAN_ACCOUNT_COMPONENT_MASM,
24
+ MULTISIG_GUARDIAN_ECDSA_ACCOUNT_COMPONENT_MASM,
25
+ } from './masm/account-components/auth.js';
26
+ import { normalizeSignerCommitment } from '../utils/signature.js';
11
27
 
28
+ /**
29
+ * Creates a multisig account with GUARDIAN authentication.
30
+ *
31
+ * @param webClient - Initialized Miden WebClient
32
+ * @param config - Multisig configuration
33
+ * @returns The created account and seed
34
+ */
12
35
  export async function createMultisigAccount(
13
36
  webClient: WebClient,
14
37
  config: MultisigConfig
15
38
  ): Promise<CreateAccountResult> {
16
39
  validateMultisigConfig(config);
17
-
18
40
  const signatureScheme = config.signatureScheme ?? 'falcon';
19
- const multisigSlots = buildMultisigStorageSlots(config);
20
- const psmSlots = buildPsmStorageSlots(config);
21
-
22
- const psmBuilder = webClient.createCodeBuilder();
23
- const psmMasm = signatureScheme === 'ecdsa' ? PSM_ECDSA_MASM : PSM_MASM;
24
- const psmCode = psmBuilder.compileAccountComponentCode(psmMasm);
25
- const psmComponent = AccountComponent
26
- .compile(psmCode, psmSlots)
27
- .withSupportsAllTypes();
28
-
41
+ const authSlots = [
42
+ ...buildMultisigStorageSlots(config),
43
+ ...buildGuardianStorageSlots(config),
44
+ ];
45
+ const guardianMasm = signatureScheme === 'ecdsa' ? GUARDIAN_ECDSA_MASM : GUARDIAN_MASM;
29
46
  const multisigMasm = signatureScheme === 'ecdsa' ? MULTISIG_ECDSA_MASM : MULTISIG_MASM;
30
- const psmLibraryPath = signatureScheme === 'ecdsa' ? 'openzeppelin::psm_ecdsa' : 'openzeppelin::psm';
31
- const multisigBuilder = webClient.createCodeBuilder();
32
- const psmLib = multisigBuilder.buildLibrary(psmLibraryPath, psmMasm);
33
- multisigBuilder.linkStaticLibrary(psmLib);
34
- const multisigCode = multisigBuilder.compileAccountComponentCode(multisigMasm);
35
- const multisigComponent = AccountComponent
36
- .compile(multisigCode, multisigSlots)
47
+ const authComponentMasm = signatureScheme === 'ecdsa'
48
+ ? MULTISIG_GUARDIAN_ECDSA_ACCOUNT_COMPONENT_MASM
49
+ : MULTISIG_GUARDIAN_ACCOUNT_COMPONENT_MASM;
50
+ const guardianLibraryPath = signatureScheme === 'ecdsa'
51
+ ? 'openzeppelin::auth::guardian_ecdsa'
52
+ : 'openzeppelin::auth::guardian';
53
+ const multisigLibraryPath = signatureScheme === 'ecdsa'
54
+ ? 'openzeppelin::auth::multisig_ecdsa'
55
+ : 'openzeppelin::auth::multisig';
56
+
57
+ const authBuilder = webClient.createCodeBuilder();
58
+ const guardianLib = authBuilder.buildLibrary(guardianLibraryPath, guardianMasm);
59
+ authBuilder.linkStaticLibrary(guardianLib);
60
+ const multisigLib = authBuilder.buildLibrary(multisigLibraryPath, multisigMasm);
61
+ authBuilder.linkStaticLibrary(multisigLib);
62
+ const authCode = authBuilder.compileAccountComponentCode(authComponentMasm);
63
+ const authComponent = AccountComponent
64
+ .compile(authCode, authSlots)
37
65
  .withSupportsAllTypes();
38
66
 
39
- const seed = new Uint8Array(32);
40
- crypto.getRandomValues(seed);
67
+ let seed = config.seed;
68
+ // Generate random seed if not provided
69
+ if (!seed) {
70
+ seed = crypto.getRandomValues(new Uint8Array(32));
71
+ }
41
72
 
42
73
  const storageMode = config.storageMode === 'public'
43
74
  ? AccountStorageMode.public()
@@ -46,8 +77,7 @@ export async function createMultisigAccount(
46
77
  const accountBuilder = new AccountBuilder(seed)
47
78
  .accountType(AccountType.RegularAccountUpdatableCode)
48
79
  .storageMode(storageMode)
49
- .withAuthComponent(multisigComponent)
50
- .withComponent(psmComponent)
80
+ .withAuthComponent(authComponent)
51
81
  .withBasicWalletComponent();
52
82
 
53
83
  const result = accountBuilder.build();
@@ -60,6 +90,12 @@ export async function createMultisigAccount(
60
90
  };
61
91
  }
62
92
 
93
+ /**
94
+ * Validates a multisig configuration.
95
+ *
96
+ * @param config - The configuration to validate
97
+ * @throws Error if configuration is invalid
98
+ */
63
99
  export function validateMultisigConfig(config: MultisigConfig): void {
64
100
  if (config.threshold === 0) {
65
101
  throw new Error('threshold must be greater than 0');
@@ -67,25 +103,26 @@ export function validateMultisigConfig(config: MultisigConfig): void {
67
103
  if (config.signerCommitments.length === 0) {
68
104
  throw new Error('at least one signer commitment is required');
69
105
  }
70
- for (const commitment of config.signerCommitments) {
71
- const stripped = commitment.startsWith('0x') || commitment.startsWith('0X')
72
- ? commitment.slice(2)
73
- : commitment;
74
- if (stripped.length > 64) {
75
- throw new Error(
76
- `signerCommitments must be 32-byte commitment hex (64 chars), got ${stripped.length} chars`
77
- );
106
+
107
+ const signerCommitments = new Set<string>();
108
+ for (const signerCommitment of config.signerCommitments) {
109
+ const normalizedCommitment = normalizeSignerCommitment(signerCommitment);
110
+ if (signerCommitments.has(normalizedCommitment)) {
111
+ throw new Error(`duplicate signer commitment: ${normalizedCommitment}`);
78
112
  }
113
+ signerCommitments.add(normalizedCommitment);
79
114
  }
115
+
80
116
  if (config.threshold > config.signerCommitments.length) {
81
117
  throw new Error(
82
118
  `threshold (${config.threshold}) cannot exceed number of signers (${config.signerCommitments.length})`
83
119
  );
84
120
  }
85
- if (!config.psmCommitment) {
86
- throw new Error('PSM commitment is required');
121
+ if (!config.guardianCommitment) {
122
+ throw new Error('GUARDIAN commitment is required');
87
123
  }
88
124
 
125
+ // Validate procedure thresholds if provided
89
126
  if (config.procedureThresholds) {
90
127
  const seen = new Set<string>();
91
128
  for (const pt of config.procedureThresholds) {
@@ -9,7 +9,7 @@ export {
9
9
 
10
10
  export {
11
11
  buildMultisigStorageSlots,
12
- buildPsmStorageSlots,
12
+ buildGuardianStorageSlots,
13
13
  storageLayoutBuilder,
14
14
  StorageLayoutBuilder,
15
15
  } from './storage.js';
@@ -0,0 +1,70 @@
1
+ // This file is generated by scripts/generate-masm.mjs from the MASM contract sources.
2
+ // Do not edit it by hand.
3
+
4
+ export const MULTISIG_ACCOUNT_COMPONENT_MASM = `# Multi-Signature RPO Falcon 512 Authentication Component
5
+
6
+ use openzeppelin::auth::multisig
7
+
8
+ type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
9
+
10
+ pub use multisig::update_signers_and_threshold
11
+ pub use multisig::update_procedure_threshold
12
+
13
+ pub proc auth_tx_multisig(salt: BeWord)
14
+ exec.multisig::auth_tx
15
+ exec.multisig::assert_new_tx
16
+ end
17
+ `;
18
+
19
+ export const MULTISIG_GUARDIAN_ACCOUNT_COMPONENT_MASM = `# Multi-Signature RPO Falcon 512 Authentication Component With GUARDIAN
20
+
21
+ use openzeppelin::auth::multisig
22
+ use openzeppelin::auth::guardian
23
+
24
+ type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
25
+
26
+ pub use multisig::update_signers_and_threshold
27
+ pub use multisig::update_procedure_threshold
28
+ pub use guardian::update_guardian_public_key
29
+ pub use guardian::verify_guardian_signature
30
+
31
+ pub proc auth_tx_multisig_guardian(salt: BeWord)
32
+ exec.multisig::auth_tx
33
+ exec.guardian::verify_guardian_signature
34
+ exec.multisig::assert_new_tx
35
+ end
36
+ `;
37
+
38
+ export const MULTISIG_ECDSA_ACCOUNT_COMPONENT_MASM = `# Multi-Signature ECDSA secp256k1 Authentication Component
39
+
40
+ use openzeppelin::auth::multisig_ecdsa
41
+
42
+ type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
43
+
44
+ pub use multisig_ecdsa::update_signers_and_threshold
45
+ pub use multisig_ecdsa::update_procedure_threshold
46
+
47
+ pub proc auth_tx_multisig_ecdsa(salt: BeWord)
48
+ exec.multisig_ecdsa::auth_tx
49
+ exec.multisig_ecdsa::assert_new_tx
50
+ end
51
+ `;
52
+
53
+ export const MULTISIG_GUARDIAN_ECDSA_ACCOUNT_COMPONENT_MASM = `# Multi-Signature ECDSA secp256k1 Authentication Component With GUARDIAN
54
+
55
+ use openzeppelin::auth::multisig_ecdsa
56
+ use openzeppelin::auth::guardian_ecdsa
57
+
58
+ type BeWord = struct @bigendian { a: felt, b: felt, c: felt, d: felt }
59
+
60
+ pub use multisig_ecdsa::update_signers_and_threshold
61
+ pub use multisig_ecdsa::update_procedure_threshold
62
+ pub use guardian_ecdsa::update_guardian_public_key
63
+ pub use guardian_ecdsa::verify_guardian_signature
64
+
65
+ pub proc auth_tx_multisig_guardian_ecdsa(salt: BeWord)
66
+ exec.multisig_ecdsa::auth_tx
67
+ exec.guardian_ecdsa::verify_guardian_signature
68
+ exec.multisig_ecdsa::assert_new_tx
69
+ end
70
+ `;