@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,323 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { fromPsmMetadata, toPsmMetadata } from './metadata.js';
3
- describe('metadata conversion', () => {
4
- describe('fromPsmMetadata', () => {
5
- it('returns undefined for null/undefined input', () => {
6
- expect(fromPsmMetadata(undefined)).toBeUndefined();
7
- expect(fromPsmMetadata(null)).toBeUndefined();
8
- });
9
- it('converts P2ID metadata from PSM shape', () => {
10
- const raw = {
11
- proposalType: 'p2id',
12
- recipientId: '0xabc',
13
- faucetId: '0xf00',
14
- amount: '42',
15
- description: 'send funds',
16
- saltHex: '0xsalt',
17
- };
18
- const meta = fromPsmMetadata(raw);
19
- expect(meta).toEqual({
20
- proposalType: 'p2id',
21
- recipientId: '0xabc',
22
- faucetId: '0xf00',
23
- amount: '42',
24
- description: 'send funds',
25
- saltHex: '0xsalt',
26
- });
27
- });
28
- it('converts consume_notes metadata', () => {
29
- const raw = {
30
- proposalType: 'consume_notes',
31
- noteIds: ['0xnote1', '0xnote2'],
32
- description: 'consume notes',
33
- saltHex: '0xsalt',
34
- };
35
- const meta = fromPsmMetadata(raw);
36
- expect(meta).toEqual({
37
- proposalType: 'consume_notes',
38
- noteIds: ['0xnote1', '0xnote2'],
39
- description: 'consume notes',
40
- saltHex: '0xsalt',
41
- });
42
- });
43
- it('converts switch_psm metadata', () => {
44
- const raw = {
45
- proposalType: 'switch_psm',
46
- newPsmPubkey: '0xpubkey',
47
- newPsmEndpoint: 'http://new-psm.com',
48
- description: 'switch PSM',
49
- saltHex: '0xsalt',
50
- };
51
- const meta = fromPsmMetadata(raw);
52
- expect(meta).toEqual({
53
- proposalType: 'switch_psm',
54
- newPsmPubkey: '0xpubkey',
55
- newPsmEndpoint: 'http://new-psm.com',
56
- description: 'switch PSM',
57
- saltHex: '0xsalt',
58
- });
59
- });
60
- it('converts add_signer metadata', () => {
61
- const raw = {
62
- proposalType: 'add_signer',
63
- targetThreshold: 2,
64
- targetSignerCommitments: ['0x1', '0x2'],
65
- description: 'add signer',
66
- saltHex: '0xsalt',
67
- };
68
- const meta = fromPsmMetadata(raw);
69
- expect(meta).toEqual({
70
- proposalType: 'add_signer',
71
- targetThreshold: 2,
72
- targetSignerCommitments: ['0x1', '0x2'],
73
- description: 'add signer',
74
- saltHex: '0xsalt',
75
- });
76
- });
77
- it('converts remove_signer metadata', () => {
78
- const raw = {
79
- proposalType: 'remove_signer',
80
- targetThreshold: 1,
81
- targetSignerCommitments: ['0x1'],
82
- description: 'remove signer',
83
- };
84
- const meta = fromPsmMetadata(raw);
85
- expect(meta).toEqual({
86
- proposalType: 'remove_signer',
87
- targetThreshold: 1,
88
- targetSignerCommitments: ['0x1'],
89
- description: 'remove signer',
90
- saltHex: undefined,
91
- });
92
- });
93
- it('converts change_threshold metadata', () => {
94
- const raw = {
95
- proposalType: 'change_threshold',
96
- targetThreshold: 3,
97
- targetSignerCommitments: ['0x1', '0x2', '0x3'],
98
- };
99
- const meta = fromPsmMetadata(raw);
100
- expect(meta).toEqual({
101
- proposalType: 'change_threshold',
102
- targetThreshold: 3,
103
- targetSignerCommitments: ['0x1', '0x2', '0x3'],
104
- description: '',
105
- saltHex: undefined,
106
- });
107
- });
108
- it('infers p2id from recipientId field', () => {
109
- const raw = {
110
- recipientId: '0xabc',
111
- faucetId: '0xf00',
112
- amount: '42',
113
- };
114
- const meta = fromPsmMetadata(raw);
115
- expect(meta?.proposalType).toBe('p2id');
116
- });
117
- it('infers p2id from faucetId field', () => {
118
- const raw = {
119
- faucetId: '0xf00',
120
- amount: '42',
121
- };
122
- const meta = fromPsmMetadata(raw);
123
- expect(meta?.proposalType).toBe('p2id');
124
- });
125
- it('infers p2id from amount field', () => {
126
- const raw = {
127
- amount: '42',
128
- };
129
- const meta = fromPsmMetadata(raw);
130
- expect(meta?.proposalType).toBe('p2id');
131
- });
132
- it('infers consume_notes from noteIds field', () => {
133
- const raw = {
134
- noteIds: ['0xnote1'],
135
- };
136
- const meta = fromPsmMetadata(raw);
137
- expect(meta?.proposalType).toBe('consume_notes');
138
- });
139
- it('infers switch_psm from newPsmPubkey field', () => {
140
- const raw = {
141
- newPsmPubkey: '0xpubkey',
142
- };
143
- const meta = fromPsmMetadata(raw);
144
- expect(meta?.proposalType).toBe('switch_psm');
145
- });
146
- it('infers change_threshold from targetSignerCommitments field', () => {
147
- const raw = {
148
- targetSignerCommitments: ['0x1', '0x2'],
149
- targetThreshold: 2,
150
- };
151
- const meta = fromPsmMetadata(raw);
152
- expect(meta?.proposalType).toBe('change_threshold');
153
- });
154
- it('returns undefined when proposalType cannot be inferred', () => {
155
- const raw = {
156
- unknownField: 'value',
157
- };
158
- const meta = fromPsmMetadata(raw);
159
- expect(meta).toBeUndefined();
160
- });
161
- it('returns undefined for empty noteIds array', () => {
162
- const raw = {
163
- noteIds: [],
164
- };
165
- const meta = fromPsmMetadata(raw);
166
- expect(meta).toBeUndefined();
167
- });
168
- it('defaults missing optional fields', () => {
169
- const raw = {
170
- proposalType: 'p2id',
171
- };
172
- const meta = fromPsmMetadata(raw);
173
- expect(meta).toEqual({
174
- proposalType: 'p2id',
175
- recipientId: '',
176
- faucetId: '',
177
- amount: '0',
178
- description: '',
179
- saltHex: undefined,
180
- });
181
- });
182
- });
183
- describe('toPsmMetadata', () => {
184
- it('returns undefined for undefined input', () => {
185
- expect(toPsmMetadata(undefined)).toBeUndefined();
186
- });
187
- it('maps add_signer to PSM metadata', () => {
188
- const meta = toPsmMetadata({
189
- proposalType: 'add_signer',
190
- targetThreshold: 2,
191
- targetSignerCommitments: ['0x1', '0x2'],
192
- saltHex: '0xsalt',
193
- description: 'add signer',
194
- });
195
- expect(meta).toEqual({
196
- proposalType: 'add_signer',
197
- targetThreshold: 2,
198
- targetSignerCommitments: ['0x1', '0x2'],
199
- saltHex: '0xsalt',
200
- description: 'add signer',
201
- });
202
- });
203
- it('maps remove_signer to PSM metadata', () => {
204
- const meta = toPsmMetadata({
205
- proposalType: 'remove_signer',
206
- targetThreshold: 1,
207
- targetSignerCommitments: ['0x1'],
208
- description: '',
209
- });
210
- expect(meta).toEqual({
211
- proposalType: 'remove_signer',
212
- targetThreshold: 1,
213
- targetSignerCommitments: ['0x1'],
214
- saltHex: undefined,
215
- description: '',
216
- });
217
- });
218
- it('maps change_threshold to PSM metadata', () => {
219
- const meta = toPsmMetadata({
220
- proposalType: 'change_threshold',
221
- targetThreshold: 3,
222
- targetSignerCommitments: ['0x1', '0x2', '0x3'],
223
- description: '',
224
- });
225
- expect(meta).toEqual({
226
- proposalType: 'change_threshold',
227
- targetThreshold: 3,
228
- targetSignerCommitments: ['0x1', '0x2', '0x3'],
229
- saltHex: undefined,
230
- description: '',
231
- });
232
- });
233
- it('maps p2id to PSM metadata', () => {
234
- const meta = toPsmMetadata({
235
- proposalType: 'p2id',
236
- recipientId: '0xabc',
237
- faucetId: '0xf00',
238
- amount: '42',
239
- description: 'send funds',
240
- saltHex: '0xsalt',
241
- });
242
- expect(meta).toEqual({
243
- proposalType: 'p2id',
244
- recipientId: '0xabc',
245
- faucetId: '0xf00',
246
- amount: '42',
247
- description: 'send funds',
248
- saltHex: '0xsalt',
249
- });
250
- });
251
- it('maps consume_notes to PSM metadata', () => {
252
- const meta = toPsmMetadata({
253
- proposalType: 'consume_notes',
254
- noteIds: ['0xnote1', '0xnote2'],
255
- description: 'consume',
256
- });
257
- expect(meta).toEqual({
258
- proposalType: 'consume_notes',
259
- noteIds: ['0xnote1', '0xnote2'],
260
- description: 'consume',
261
- saltHex: undefined,
262
- });
263
- });
264
- it('maps switch_psm to PSM metadata', () => {
265
- const meta = toPsmMetadata({
266
- proposalType: 'switch_psm',
267
- newPsmPubkey: '0xpubkey',
268
- newPsmEndpoint: 'http://new.com',
269
- targetThreshold: 2,
270
- targetSignerCommitments: ['0x1', '0x2'],
271
- description: '',
272
- });
273
- expect(meta).toEqual({
274
- proposalType: 'switch_psm',
275
- newPsmPubkey: '0xpubkey',
276
- newPsmEndpoint: 'http://new.com',
277
- targetThreshold: 2,
278
- targetSignerCommitments: ['0x1', '0x2'],
279
- description: '',
280
- saltHex: undefined,
281
- });
282
- });
283
- });
284
- describe('roundtrip', () => {
285
- it('p2id metadata survives roundtrip', () => {
286
- const original = {
287
- proposalType: 'p2id',
288
- recipientId: '0xabc',
289
- faucetId: '0xf00',
290
- amount: '42',
291
- description: 'test',
292
- saltHex: '0xsalt',
293
- };
294
- const psm = toPsmMetadata(original);
295
- const roundtripped = fromPsmMetadata(psm);
296
- expect(roundtripped).toEqual(original);
297
- });
298
- it('consume_notes metadata survives roundtrip', () => {
299
- const original = {
300
- proposalType: 'consume_notes',
301
- noteIds: ['0xnote1', '0xnote2'],
302
- description: 'test',
303
- saltHex: '0xsalt',
304
- };
305
- const psm = toPsmMetadata(original);
306
- const roundtripped = fromPsmMetadata(psm);
307
- expect(roundtripped).toEqual(original);
308
- });
309
- it('add_signer metadata survives roundtrip', () => {
310
- const original = {
311
- proposalType: 'add_signer',
312
- targetThreshold: 2,
313
- targetSignerCommitments: ['0x1', '0x2'],
314
- description: 'test',
315
- saltHex: '0xsalt',
316
- };
317
- const psm = toPsmMetadata(original);
318
- const roundtripped = fromPsmMetadata(psm);
319
- expect(roundtripped).toEqual(original);
320
- });
321
- });
322
- });
323
- //# sourceMappingURL=metadata.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.test.js","sourceRoot":"","sources":["../../src/multisig/metadata.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { ExportedProposal } from '../types/proposal.js';
2
- export declare class ExportedProposalEnvelope {
3
- static fromJson(json: string): ExportedProposal;
4
- static fromUnknown(value: unknown): ExportedProposal;
5
- private static object;
6
- private static string;
7
- private static nonce;
8
- private static metadata;
9
- private static signatures;
10
- private static hexString;
11
- }
12
- //# sourceMappingURL=exported.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exported.d.ts","sourceRoot":"","sources":["../../src/proposal/exported.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAG/E,qBAAa,wBAAwB;IACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAW/C,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IA+BpD,OAAO,CAAC,MAAM,CAAC,MAAM;IAQrB,OAAO,CAAC,MAAM,CAAC,MAAM;IAQrB,OAAO,CAAC,MAAM,CAAC,KAAK;IAQpB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAQvB,OAAO,CAAC,MAAM,CAAC,UAAU;IAiCzB,OAAO,CAAC,MAAM,CAAC,SAAS;CAOzB"}
@@ -1,88 +0,0 @@
1
- import { computeCommitmentFromTxSummary } from '../multisig/helpers.js';
2
- import { ProposalMetadataCodec } from './metadata.js';
3
- export class ExportedProposalEnvelope {
4
- static fromJson(json) {
5
- let parsed;
6
- try {
7
- parsed = JSON.parse(json);
8
- }
9
- catch {
10
- throw new Error('Invalid proposal JSON: failed to parse JSON');
11
- }
12
- return this.fromUnknown(parsed);
13
- }
14
- static fromUnknown(value) {
15
- const context = 'Invalid proposal JSON';
16
- const object = this.object(value, context);
17
- const accountId = this.string(object.accountId, 'accountId', context);
18
- const nonce = this.nonce(object.nonce, context);
19
- const commitment = this.string(object.commitment, 'commitment', context);
20
- const txSummaryBase64 = this.string(object.txSummaryBase64, 'txSummaryBase64', context);
21
- const metadata = ProposalMetadataCodec.validate(this.metadata(object.metadata, context), context);
22
- if (metadata.proposalType === 'unknown') {
23
- throw new Error(`${context}: metadata must describe a supported proposal type`);
24
- }
25
- const computedCommitment = computeCommitmentFromTxSummary(txSummaryBase64);
26
- if (computedCommitment !== commitment) {
27
- throw new Error('Invalid proposal: commitment does not match tx_summary');
28
- }
29
- return {
30
- accountId,
31
- nonce,
32
- commitment: computedCommitment,
33
- txSummaryBase64,
34
- signatures: this.signatures(object.signatures, context),
35
- metadata,
36
- };
37
- }
38
- static object(value, context) {
39
- if (typeof value !== 'object' || value === null || Array.isArray(value)) {
40
- throw new Error(`${context}: expected an object`);
41
- }
42
- return value;
43
- }
44
- static string(value, field, context) {
45
- if (typeof value !== 'string' || value.length === 0) {
46
- throw new Error(`${context}: missing ${field}`);
47
- }
48
- return value;
49
- }
50
- static nonce(value, context) {
51
- if (!Number.isSafeInteger(value) || value < 0) {
52
- throw new Error(`${context}: nonce must be a non-negative integer`);
53
- }
54
- return value;
55
- }
56
- static metadata(value, context) {
57
- if (value === undefined) {
58
- throw new Error(`${context}: missing metadata`);
59
- }
60
- return value;
61
- }
62
- static signatures(value, context) {
63
- if (!Array.isArray(value)) {
64
- throw new Error(`${context}: signatures must be an array`);
65
- }
66
- return value.map((signature, index) => {
67
- const signatureObject = this.object(signature, `${context}: signatures[${index}]`);
68
- const commitment = this.string(signatureObject.commitment, 'commitment', `${context}: signatures[${index}]`);
69
- const signatureHex = this.hexString(signatureObject.signatureHex, 'signatureHex', `${context}: signatures[${index}]`);
70
- const timestampValue = signatureObject.timestamp;
71
- if (timestampValue !== undefined && typeof timestampValue !== 'string') {
72
- throw new Error(`${context}: signatures[${index}].timestamp must be a string`);
73
- }
74
- return {
75
- commitment,
76
- signatureHex,
77
- timestamp: timestampValue,
78
- };
79
- });
80
- }
81
- static hexString(value, field, context) {
82
- if (typeof value !== 'string' || !/^0x[0-9a-fA-F]+$/.test(value)) {
83
- throw new Error(`${context}: ${field} must be a hex string`);
84
- }
85
- return value;
86
- }
87
- }
88
- //# sourceMappingURL=exported.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exported.js","sourceRoot":"","sources":["../../src/proposal/exported.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=signer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signer.test.d.ts","sourceRoot":"","sources":["../src/signer.test.ts"],"names":[],"mappings":""}
@@ -1,123 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { FalconSigner } from './signer.js';
3
- import { RequestAuthPayload } from '@openzeppelin/psm-client';
4
- // Mock the Miden SDK
5
- vi.mock('@miden-sdk/miden-sdk', () => {
6
- const mockSignature = {
7
- serialize: () => new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
8
- };
9
- const mockPublicKey = {
10
- toCommitment: () => ({
11
- toHex: () => '0x' + 'a'.repeat(64),
12
- }),
13
- serialize: () => new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
14
- };
15
- const mockSecretKey = {
16
- publicKey: vi.fn().mockReturnValue(mockPublicKey),
17
- sign: vi.fn().mockReturnValue(mockSignature),
18
- };
19
- return {
20
- AuthSecretKey: {
21
- rpoFalconWithRNG: vi.fn().mockReturnValue(mockSecretKey),
22
- },
23
- Word: {
24
- fromHex: vi.fn((hex) => ({
25
- toHex: () => hex,
26
- toFelts: () => [1, 2, 3, 4],
27
- })),
28
- },
29
- AccountId: {
30
- fromHex: vi.fn((hex) => ({
31
- prefix: () => ({ asInt: () => BigInt(1) }),
32
- suffix: () => ({ asInt: () => BigInt(2) }),
33
- })),
34
- },
35
- Felt: vi.fn().mockImplementation((v) => ({ value: v })),
36
- FeltArray: vi.fn().mockImplementation((arr) => arr),
37
- Rpo256: {
38
- hashElements: vi.fn().mockReturnValue({
39
- toHex: () => '0x' + 'b'.repeat(64),
40
- toFelts: () => [1, 2, 3, 4],
41
- }),
42
- },
43
- };
44
- });
45
- describe('FalconSigner', () => {
46
- let mockSecretKey;
47
- let signer;
48
- beforeEach(async () => {
49
- vi.clearAllMocks();
50
- const { AuthSecretKey } = await import('@miden-sdk/miden-sdk');
51
- mockSecretKey = AuthSecretKey.rpoFalconWithRNG(new Uint8Array(32));
52
- signer = new FalconSigner(mockSecretKey);
53
- });
54
- describe('constructor', () => {
55
- it('extracts commitment from public key', () => {
56
- expect(signer.commitment).toBe('0x' + 'a'.repeat(64));
57
- });
58
- it('extracts public key without first byte', () => {
59
- // Public key serialized is [0, 1, 2, ...15], slice(1) removes first byte
60
- expect(signer.publicKey).toBe('0x0102030405060708090a0b0c0d0e0f');
61
- });
62
- it('calls publicKey method on secret key', () => {
63
- expect(mockSecretKey.publicKey).toHaveBeenCalled();
64
- });
65
- });
66
- describe('signRequest', () => {
67
- it('handles account ID with 0x prefix', () => {
68
- const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
69
- const signature = signer.signRequest('0x' + 'a'.repeat(30), 1700000000, payload);
70
- expect(signature).toMatch(/^0x[a-f0-9]+$/);
71
- });
72
- it('handles account ID without 0x prefix', () => {
73
- const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
74
- const signature = signer.signRequest('a'.repeat(30), 1700000000, payload);
75
- expect(signature).toMatch(/^0x[a-f0-9]+$/);
76
- });
77
- it('calls sign method with hashed digest', () => {
78
- const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
79
- signer.signRequest('0x' + 'a'.repeat(30), 1700000000, payload);
80
- expect(mockSecretKey.sign).toHaveBeenCalled();
81
- });
82
- it('returns signature without first byte', () => {
83
- // Signature serialized is [0, 1, 2, ...9], slice(1) returns [1, 2, ...9]
84
- const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
85
- const signature = signer.signRequest('0x' + 'a'.repeat(30), 1700000000, payload);
86
- expect(signature).toBe('0x010203040506070809');
87
- });
88
- it('includes timestamp in signed payload', async () => {
89
- const { FeltArray } = await import('@miden-sdk/miden-sdk');
90
- const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
91
- signer.signRequest('0x' + 'a'.repeat(30), 1700000000, payload);
92
- expect(FeltArray).toHaveBeenCalledWith(expect.arrayContaining([
93
- expect.anything(),
94
- expect.anything(),
95
- expect.anything(),
96
- expect.anything(),
97
- ]));
98
- });
99
- });
100
- describe('signCommitment', () => {
101
- it('handles commitment with 0x prefix', () => {
102
- const signature = signer.signCommitment('0x' + 'c'.repeat(64));
103
- expect(signature).toMatch(/^0x[a-f0-9]+$/);
104
- });
105
- it('handles commitment without 0x prefix', () => {
106
- const signature = signer.signCommitment('c'.repeat(64));
107
- expect(signature).toMatch(/^0x[a-f0-9]+$/);
108
- });
109
- it('pads short commitment hex to 64 characters', () => {
110
- const signature = signer.signCommitment('abc');
111
- expect(signature).toMatch(/^0x[a-f0-9]+$/);
112
- });
113
- it('calls sign method with word from hex', () => {
114
- signer.signCommitment('0x' + 'c'.repeat(64));
115
- expect(mockSecretKey.sign).toHaveBeenCalled();
116
- });
117
- it('returns signature without first byte', () => {
118
- const signature = signer.signCommitment('0x' + 'c'.repeat(64));
119
- expect(signature).toBe('0x010203040506070809');
120
- });
121
- });
122
- });
123
- //# sourceMappingURL=signer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signer.test.js","sourceRoot":"","sources":["../src/signer.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=p2id.interop.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"p2id.interop.test.d.ts","sourceRoot":"","sources":["../../src/transaction/p2id.interop.test.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- import { beforeAll, describe, expect, it } from 'vitest';
2
- import { readFile } from 'node:fs/promises';
3
- describe('P2ID serial derivation interop', () => {
4
- let sdk;
5
- beforeAll(async () => {
6
- const nativeFetch = globalThis.fetch.bind(globalThis);
7
- globalThis.fetch = async (input, init) => {
8
- const url = typeof input === 'string'
9
- ? input
10
- : input instanceof URL
11
- ? input.href
12
- : input.url;
13
- if (url.startsWith('file://')) {
14
- const bytes = await readFile(new URL(url));
15
- return new Response(bytes, {
16
- headers: { 'content-type': 'application/wasm' },
17
- });
18
- }
19
- return nativeFetch(input, init);
20
- };
21
- sdk = await import('@miden-sdk/miden-sdk');
22
- });
23
- it('matches the Rust vector for seed-plus-four-zeros derivation', () => {
24
- const { Word, Felt, FeltArray, Rpo256 } = sdk;
25
- const salt = Word.fromHex('0x0000000000000001000000000000000200000000000000030000000000000004');
26
- const serial = Rpo256.hashElements(new FeltArray([
27
- ...salt.toFelts(),
28
- new Felt(0n),
29
- new Felt(0n),
30
- new Felt(0n),
31
- new Felt(0n),
32
- ]));
33
- expect(serial.toHex()).toBe('0x7e70954b9746a1d5843b290cc4c6bf2239237eaa422619fe476c33b4383e5d7b');
34
- });
35
- });
36
- //# sourceMappingURL=p2id.interop.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"p2id.interop.test.js","sourceRoot":"","sources":["../../src/transaction/p2id.interop.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,IAAI,GAAa,CAAC;IAElB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtD,UAAU,CAAC,KAAK,GAAG,KAAK,EAAE,KAAwB,EAAE,IAAkB,EAAE,EAAE;YACxE,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ;gBACnC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,KAAK,YAAY,GAAG;oBACpB,CAAC,CAAC,KAAK,CAAC,IAAI;oBACZ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YAEhB,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3C,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACzB,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;iBAChD,CAAC,CAAC;YACL,CAAC;YAED,OAAO,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,GAAG,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CACvB,oEAAoE,CACrE,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;YAC/C,GAAG,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,EAAE,CAAC;SACb,CAAC,CAAC,CAAC;QAEJ,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CACzB,oEAAoE,CACrE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import { TransactionRequest, WebClient, Word } from '@miden-sdk/miden-sdk';
2
- import type { SignatureOptions } from './options.js';
3
- export declare function buildUpdatePsmTransactionRequest(webClient: WebClient, newPsmPubkey: string, options?: SignatureOptions): Promise<{
4
- request: TransactionRequest;
5
- salt: Word;
6
- }>;
7
- //# sourceMappingURL=updatePsm.d.ts.map