@openzeppelin/miden-multisig-client 0.12.8 → 0.13.1

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 (237) hide show
  1. package/README.md +42 -4
  2. package/dist/account/builder.d.ts +1 -1
  3. package/dist/account/builder.d.ts.map +1 -1
  4. package/dist/account/builder.js +7 -5
  5. package/dist/account/builder.js.map +1 -1
  6. package/dist/account/builder.test.d.ts +2 -0
  7. package/dist/account/builder.test.d.ts.map +1 -0
  8. package/dist/account/builder.test.js +39 -0
  9. package/dist/account/builder.test.js.map +1 -0
  10. package/dist/account/masm.d.ts +3 -3
  11. package/dist/account/masm.d.ts.map +1 -1
  12. package/dist/account/masm.js +101 -98
  13. package/dist/account/masm.js.map +1 -1
  14. package/dist/account/storage.d.ts +1 -1
  15. package/dist/account/storage.d.ts.map +1 -1
  16. package/dist/account/storage.js +17 -7
  17. package/dist/account/storage.js.map +1 -1
  18. package/dist/client.d.ts +1 -1
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +2 -2
  21. package/dist/client.js.map +1 -1
  22. package/dist/client.test.js +4 -4
  23. package/dist/client.test.js.map +1 -1
  24. package/dist/index.d.ts +8 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +6 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/inspector.d.ts +1 -1
  29. package/dist/inspector.d.ts.map +1 -1
  30. package/dist/inspector.js +16 -10
  31. package/dist/inspector.js.map +1 -1
  32. package/dist/inspector.test.js +33 -22
  33. package/dist/inspector.test.js.map +1 -1
  34. package/dist/multisig/helpers.d.ts +1 -1
  35. package/dist/multisig/helpers.d.ts.map +1 -1
  36. package/dist/multisig/helpers.js +1 -1
  37. package/dist/multisig/helpers.js.map +1 -1
  38. package/dist/multisig/helpers.test.js +2 -2
  39. package/dist/multisig/helpers.test.js.map +1 -1
  40. package/dist/multisig/proposal/execution.d.ts +19 -0
  41. package/dist/multisig/proposal/execution.d.ts.map +1 -0
  42. package/dist/multisig/proposal/execution.js +158 -0
  43. package/dist/multisig/proposal/execution.js.map +1 -0
  44. package/dist/multisig/proposal/parser.d.ts +17 -0
  45. package/dist/multisig/proposal/parser.d.ts.map +1 -0
  46. package/dist/multisig/proposal/parser.js +147 -0
  47. package/dist/multisig/proposal/parser.js.map +1 -0
  48. package/dist/multisig/signing.d.ts +5 -0
  49. package/dist/multisig/signing.d.ts.map +1 -0
  50. package/dist/multisig/signing.js +14 -0
  51. package/dist/multisig/signing.js.map +1 -0
  52. package/dist/multisig.d.ts +10 -13
  53. package/dist/multisig.d.ts.map +1 -1
  54. package/dist/multisig.js +128 -337
  55. package/dist/multisig.js.map +1 -1
  56. package/dist/multisig.test.js +8 -4
  57. package/dist/multisig.test.js.map +1 -1
  58. package/dist/proposal/exported.d.ts +12 -0
  59. package/dist/proposal/exported.d.ts.map +1 -0
  60. package/dist/proposal/exported.js +88 -0
  61. package/dist/proposal/exported.js.map +1 -0
  62. package/dist/proposal/metadata.d.ts +15 -0
  63. package/dist/proposal/metadata.d.ts.map +1 -0
  64. package/dist/proposal/metadata.js +212 -0
  65. package/dist/proposal/metadata.js.map +1 -0
  66. package/dist/signer.d.ts +2 -20
  67. package/dist/signer.d.ts.map +1 -1
  68. package/dist/signer.js +2 -82
  69. package/dist/signer.js.map +1 -1
  70. package/dist/signer.test.js +22 -16
  71. package/dist/signer.test.js.map +1 -1
  72. package/dist/signers/ecdsa.d.ts +12 -0
  73. package/dist/signers/ecdsa.d.ts.map +1 -0
  74. package/dist/signers/ecdsa.js +30 -0
  75. package/dist/signers/ecdsa.js.map +1 -0
  76. package/dist/signers/falcon.d.ts +12 -0
  77. package/dist/signers/falcon.d.ts.map +1 -0
  78. package/dist/signers/falcon.js +31 -0
  79. package/dist/signers/falcon.js.map +1 -0
  80. package/dist/signers/falcon.test.d.ts +2 -0
  81. package/dist/signers/falcon.test.d.ts.map +1 -0
  82. package/dist/signers/falcon.test.js +113 -0
  83. package/dist/signers/falcon.test.js.map +1 -0
  84. package/dist/signers/index.d.ts +5 -0
  85. package/dist/signers/index.d.ts.map +1 -0
  86. package/dist/signers/index.js +5 -0
  87. package/dist/signers/index.js.map +1 -0
  88. package/dist/signers/miden-wallet.d.ts +16 -0
  89. package/dist/signers/miden-wallet.d.ts.map +1 -0
  90. package/dist/signers/miden-wallet.js +35 -0
  91. package/dist/signers/miden-wallet.js.map +1 -0
  92. package/dist/signers/miden-wallet.test.d.ts +2 -0
  93. package/dist/signers/miden-wallet.test.d.ts.map +1 -0
  94. package/dist/signers/miden-wallet.test.js +107 -0
  95. package/dist/signers/miden-wallet.test.js.map +1 -0
  96. package/dist/signers/para.d.ts +21 -0
  97. package/dist/signers/para.d.ts.map +1 -0
  98. package/dist/signers/para.js +43 -0
  99. package/dist/signers/para.js.map +1 -0
  100. package/dist/signers/para.test.d.ts +2 -0
  101. package/dist/signers/para.test.d.ts.map +1 -0
  102. package/dist/signers/para.test.js +88 -0
  103. package/dist/signers/para.test.js.map +1 -0
  104. package/dist/transaction/consumeNotes.d.ts +3 -3
  105. package/dist/transaction/consumeNotes.d.ts.map +1 -1
  106. package/dist/transaction/consumeNotes.js +11 -7
  107. package/dist/transaction/consumeNotes.js.map +1 -1
  108. package/dist/transaction/options.d.ts +2 -2
  109. package/dist/transaction/options.d.ts.map +1 -1
  110. package/dist/transaction/p2id.d.ts +1 -1
  111. package/dist/transaction/p2id.d.ts.map +1 -1
  112. package/dist/transaction/p2id.interop.test.d.ts +2 -0
  113. package/dist/transaction/p2id.interop.test.d.ts.map +1 -0
  114. package/dist/transaction/p2id.interop.test.js +36 -0
  115. package/dist/transaction/p2id.interop.test.js.map +1 -0
  116. package/dist/transaction/p2id.js +5 -5
  117. package/dist/transaction/p2id.js.map +1 -1
  118. package/dist/transaction/p2id.test.d.ts +2 -0
  119. package/dist/transaction/p2id.test.d.ts.map +1 -0
  120. package/dist/transaction/p2id.test.js +138 -0
  121. package/dist/transaction/p2id.test.js.map +1 -0
  122. package/dist/transaction/rpoRandomCoin.d.ts +7 -0
  123. package/dist/transaction/rpoRandomCoin.d.ts.map +1 -0
  124. package/dist/transaction/rpoRandomCoin.js +17 -0
  125. package/dist/transaction/rpoRandomCoin.js.map +1 -0
  126. package/dist/transaction/rpoRandomCoin.test.d.ts +2 -0
  127. package/dist/transaction/rpoRandomCoin.test.d.ts.map +1 -0
  128. package/dist/transaction/rpoRandomCoin.test.js +52 -0
  129. package/dist/transaction/rpoRandomCoin.test.js.map +1 -0
  130. package/dist/transaction/summary.d.ts +1 -1
  131. package/dist/transaction/summary.d.ts.map +1 -1
  132. package/dist/transaction/summary.js +1 -1
  133. package/dist/transaction/summary.js.map +1 -1
  134. package/dist/transaction/updatePsm.d.ts +1 -1
  135. package/dist/transaction/updatePsm.d.ts.map +1 -1
  136. package/dist/transaction/updatePsm.js +5 -5
  137. package/dist/transaction/updatePsm.js.map +1 -1
  138. package/dist/transaction/updateSigners.d.ts +1 -1
  139. package/dist/transaction/updateSigners.d.ts.map +1 -1
  140. package/dist/transaction/updateSigners.js +5 -5
  141. package/dist/transaction/updateSigners.js.map +1 -1
  142. package/dist/transaction.test.js +1 -1
  143. package/dist/transaction.test.js.map +1 -1
  144. package/dist/types.d.ts +1 -1
  145. package/dist/types.d.ts.map +1 -1
  146. package/dist/utils/digest.d.ts +6 -0
  147. package/dist/utils/digest.d.ts.map +1 -0
  148. package/dist/utils/digest.js +22 -0
  149. package/dist/utils/digest.js.map +1 -0
  150. package/dist/utils/ecdsa.d.ts +8 -0
  151. package/dist/utils/ecdsa.d.ts.map +1 -0
  152. package/dist/utils/ecdsa.js +60 -0
  153. package/dist/utils/ecdsa.js.map +1 -0
  154. package/dist/utils/ecdsa.test.d.ts +2 -0
  155. package/dist/utils/ecdsa.test.d.ts.map +1 -0
  156. package/dist/utils/ecdsa.test.js +85 -0
  157. package/dist/utils/ecdsa.test.js.map +1 -0
  158. package/dist/utils/index.d.ts +1 -0
  159. package/dist/utils/index.d.ts.map +1 -1
  160. package/dist/utils/index.js +1 -0
  161. package/dist/utils/index.js.map +1 -1
  162. package/dist/utils/key.d.ts +10 -0
  163. package/dist/utils/key.d.ts.map +1 -0
  164. package/dist/utils/key.js +38 -0
  165. package/dist/utils/key.js.map +1 -0
  166. package/dist/utils/key.test.d.ts +2 -0
  167. package/dist/utils/key.test.d.ts.map +1 -0
  168. package/dist/utils/key.test.js +80 -0
  169. package/dist/utils/key.test.js.map +1 -0
  170. package/dist/utils/random.d.ts +1 -1
  171. package/dist/utils/random.d.ts.map +1 -1
  172. package/dist/utils/random.js +1 -1
  173. package/dist/utils/random.js.map +1 -1
  174. package/dist/utils/signature.d.ts +2 -1
  175. package/dist/utils/signature.d.ts.map +1 -1
  176. package/dist/utils/signature.js +6 -3
  177. package/dist/utils/signature.js.map +1 -1
  178. package/dist/utils/signature.test.js +11 -11
  179. package/dist/utils/signature.test.js.map +1 -1
  180. package/dist/utils/state-validation.d.ts +5 -0
  181. package/dist/utils/state-validation.d.ts.map +1 -0
  182. package/dist/utils/state-validation.js +30 -0
  183. package/dist/utils/state-validation.js.map +1 -0
  184. package/dist/utils/validation.d.ts +6 -0
  185. package/dist/utils/validation.d.ts.map +1 -0
  186. package/dist/utils/validation.js +52 -0
  187. package/dist/utils/validation.js.map +1 -0
  188. package/dist/utils/word.d.ts +6 -1
  189. package/dist/utils/word.d.ts.map +1 -1
  190. package/dist/utils/word.js +11 -0
  191. package/dist/utils/word.js.map +1 -1
  192. package/dist/utils/word.test.js +54 -3
  193. package/dist/utils/word.test.js.map +1 -1
  194. package/package.json +4 -5
  195. package/src/account/builder.ts +7 -5
  196. package/src/account/masm.ts +103 -99
  197. package/src/account/storage.ts +19 -7
  198. package/src/client.test.ts +4 -4
  199. package/src/client.ts +3 -3
  200. package/src/index.ts +8 -1
  201. package/src/inspector.test.ts +38 -25
  202. package/src/inspector.ts +18 -10
  203. package/src/multisig/helpers.test.ts +2 -2
  204. package/src/multisig/helpers.ts +2 -1
  205. package/src/multisig/proposal/execution.ts +364 -0
  206. package/src/multisig/proposal/parser.ts +191 -0
  207. package/src/multisig/signing.ts +24 -0
  208. package/src/multisig.test.ts +8 -4
  209. package/src/multisig.ts +176 -434
  210. package/src/signer.ts +2 -95
  211. package/src/signers/ecdsa.ts +35 -0
  212. package/src/{signer.test.ts → signers/falcon.test.ts} +29 -33
  213. package/src/signers/falcon.ts +36 -0
  214. package/src/signers/index.ts +4 -0
  215. package/src/signers/miden-wallet.test.ts +119 -0
  216. package/src/signers/miden-wallet.ts +49 -0
  217. package/src/signers/para.test.ts +103 -0
  218. package/src/signers/para.ts +60 -0
  219. package/src/transaction/consumeNotes.ts +14 -10
  220. package/src/transaction/options.ts +2 -2
  221. package/src/transaction/p2id.ts +3 -8
  222. package/src/transaction/summary.ts +2 -2
  223. package/src/transaction/updatePsm.ts +5 -6
  224. package/src/transaction/updateSigners.ts +5 -6
  225. package/src/transaction.test.ts +1 -1
  226. package/src/types.ts +1 -1
  227. package/src/utils/digest.ts +25 -0
  228. package/src/utils/ecdsa.test.ts +104 -0
  229. package/src/utils/ecdsa.ts +77 -0
  230. package/src/utils/index.ts +1 -0
  231. package/src/utils/key.test.ts +89 -0
  232. package/src/utils/key.ts +49 -0
  233. package/src/utils/random.ts +1 -1
  234. package/src/utils/signature.test.ts +11 -11
  235. package/src/utils/signature.ts +10 -3
  236. package/src/utils/word.test.ts +57 -3
  237. package/src/utils/word.ts +13 -1
@@ -0,0 +1,212 @@
1
+ import { normalizeHexWord } from '../utils/encoding.js';
2
+ export class ProposalMetadataCodec {
3
+ static fromPsm(psm, context) {
4
+ if (!psm?.proposalType) {
5
+ throw new Error(`${context}: missing proposalType`);
6
+ }
7
+ const base = {
8
+ description: typeof psm.description === 'string' ? psm.description : '',
9
+ saltHex: this.optionalWordHex(psm.salt, 'salt', context),
10
+ };
11
+ switch (psm.proposalType) {
12
+ case 'add_signer':
13
+ case 'remove_signer':
14
+ case 'change_threshold':
15
+ return this.validate({
16
+ ...base,
17
+ proposalType: psm.proposalType,
18
+ targetThreshold: this.positiveInteger(psm.targetThreshold, 'targetThreshold', context),
19
+ targetSignerCommitments: this.wordHexList(psm.signerCommitments, 'targetSignerCommitments', context, false),
20
+ }, context);
21
+ case 'switch_psm':
22
+ return this.validate({
23
+ ...base,
24
+ proposalType: 'switch_psm',
25
+ newPsmPubkey: this.wordHex(psm.newPsmPubkey, 'newPsmPubkey', context),
26
+ newPsmEndpoint: this.requiredString(psm.newPsmEndpoint, 'newPsmEndpoint', context),
27
+ targetThreshold: psm.targetThreshold === undefined
28
+ ? undefined
29
+ : this.positiveInteger(psm.targetThreshold, 'targetThreshold', context),
30
+ targetSignerCommitments: psm.signerCommitments === undefined
31
+ ? undefined
32
+ : this.wordHexList(psm.signerCommitments, 'targetSignerCommitments', context, false),
33
+ }, context);
34
+ case 'consume_notes':
35
+ return this.validate({
36
+ ...base,
37
+ proposalType: 'consume_notes',
38
+ noteIds: this.wordHexList(psm.noteIds, 'noteIds', context, false),
39
+ }, context);
40
+ case 'p2id':
41
+ return this.validate({
42
+ ...base,
43
+ proposalType: 'p2id',
44
+ recipientId: this.requiredString(psm.recipientId, 'recipientId', context),
45
+ faucetId: this.requiredString(psm.faucetId, 'faucetId', context),
46
+ amount: this.positiveAmount(psm.amount, 'amount', context),
47
+ }, context);
48
+ default:
49
+ throw new Error(`${context}: unsupported proposal type ${String(psm.proposalType)}`);
50
+ }
51
+ }
52
+ static toPsm(metadata) {
53
+ const validated = this.validate(metadata, 'Invalid proposal metadata');
54
+ const base = {
55
+ proposalType: validated.proposalType,
56
+ description: validated.description,
57
+ salt: validated.saltHex,
58
+ };
59
+ switch (validated.proposalType) {
60
+ case 'add_signer':
61
+ case 'remove_signer':
62
+ case 'change_threshold':
63
+ return {
64
+ ...base,
65
+ targetThreshold: validated.targetThreshold,
66
+ signerCommitments: validated.targetSignerCommitments,
67
+ };
68
+ case 'switch_psm':
69
+ return {
70
+ ...base,
71
+ targetThreshold: validated.targetThreshold,
72
+ signerCommitments: validated.targetSignerCommitments,
73
+ newPsmPubkey: validated.newPsmPubkey,
74
+ newPsmEndpoint: validated.newPsmEndpoint,
75
+ };
76
+ case 'consume_notes':
77
+ return {
78
+ ...base,
79
+ noteIds: validated.noteIds,
80
+ };
81
+ case 'p2id':
82
+ return {
83
+ ...base,
84
+ recipientId: validated.recipientId,
85
+ faucetId: validated.faucetId,
86
+ amount: validated.amount,
87
+ };
88
+ case 'unknown':
89
+ return base;
90
+ }
91
+ }
92
+ static validate(metadata, context) {
93
+ const description = this.description(metadata.description, context);
94
+ const saltHex = this.optionalWordHex(metadata.saltHex, 'saltHex', context);
95
+ switch (metadata.proposalType) {
96
+ case 'add_signer':
97
+ case 'remove_signer':
98
+ case 'change_threshold':
99
+ return {
100
+ proposalType: metadata.proposalType,
101
+ description,
102
+ saltHex,
103
+ targetThreshold: this.positiveInteger(metadata.targetThreshold, 'targetThreshold', context),
104
+ targetSignerCommitments: this.wordHexList(metadata.targetSignerCommitments, 'targetSignerCommitments', context, false),
105
+ };
106
+ case 'switch_psm':
107
+ return {
108
+ proposalType: 'switch_psm',
109
+ description,
110
+ saltHex,
111
+ newPsmPubkey: this.wordHex(metadata.newPsmPubkey, 'newPsmPubkey', context),
112
+ newPsmEndpoint: this.requiredString(metadata.newPsmEndpoint, 'newPsmEndpoint', context),
113
+ targetThreshold: metadata.targetThreshold === undefined
114
+ ? undefined
115
+ : this.positiveInteger(metadata.targetThreshold, 'targetThreshold', context),
116
+ targetSignerCommitments: metadata.targetSignerCommitments === undefined
117
+ ? undefined
118
+ : this.wordHexList(metadata.targetSignerCommitments, 'targetSignerCommitments', context, false),
119
+ };
120
+ case 'consume_notes':
121
+ return {
122
+ proposalType: 'consume_notes',
123
+ description,
124
+ saltHex,
125
+ noteIds: this.wordHexList(metadata.noteIds, 'noteIds', context, false),
126
+ };
127
+ case 'p2id':
128
+ return {
129
+ proposalType: 'p2id',
130
+ description,
131
+ saltHex,
132
+ recipientId: this.requiredString(metadata.recipientId, 'recipientId', context),
133
+ faucetId: this.requiredString(metadata.faucetId, 'faucetId', context),
134
+ amount: this.positiveAmount(metadata.amount, 'amount', context),
135
+ };
136
+ case 'unknown':
137
+ return {
138
+ proposalType: 'unknown',
139
+ description,
140
+ saltHex,
141
+ };
142
+ }
143
+ }
144
+ static description(value, context) {
145
+ if (typeof value !== 'string') {
146
+ throw new Error(`${context}: description must be a string`);
147
+ }
148
+ return value;
149
+ }
150
+ static requiredString(value, field, context) {
151
+ if (typeof value !== 'string' || value.trim().length === 0) {
152
+ throw new Error(`${context}: missing ${field}`);
153
+ }
154
+ return value;
155
+ }
156
+ static positiveInteger(value, field, context) {
157
+ if (!Number.isSafeInteger(value) || value < 1) {
158
+ throw new Error(`${context}: ${field} must be a positive integer`);
159
+ }
160
+ return value;
161
+ }
162
+ static positiveAmount(value, field, context) {
163
+ if (typeof value !== 'string' || value.length === 0) {
164
+ throw new Error(`${context}: missing ${field}`);
165
+ }
166
+ try {
167
+ if (BigInt(value) < 1n) {
168
+ throw new Error(`${context}: ${field} must be greater than 0`);
169
+ }
170
+ }
171
+ catch {
172
+ throw new Error(`${context}: ${field} must be a valid integer string`);
173
+ }
174
+ return value;
175
+ }
176
+ static optionalWordHex(value, field, context) {
177
+ if (value === undefined) {
178
+ return undefined;
179
+ }
180
+ return this.wordHex(value, field, context);
181
+ }
182
+ static wordHex(value, field, context) {
183
+ if (typeof value !== 'string') {
184
+ throw new Error(`${context}: ${field} must be a 32-byte hex string`);
185
+ }
186
+ const hex = value.startsWith('0x') || value.startsWith('0X') ? value.slice(2) : value;
187
+ if (hex.length !== 64 || !/^[0-9a-fA-F]+$/.test(hex)) {
188
+ throw new Error(`${context}: ${field} must be a 32-byte hex string`);
189
+ }
190
+ return normalizeHexWord(value);
191
+ }
192
+ static wordHexList(value, field, context, allowEmpty) {
193
+ if (!Array.isArray(value)) {
194
+ throw new Error(`${context}: ${field} must be an array`);
195
+ }
196
+ if (!allowEmpty && value.length === 0) {
197
+ throw new Error(`${context}: ${field} must not be empty`);
198
+ }
199
+ const seen = new Set();
200
+ const items = [];
201
+ for (const item of value) {
202
+ const normalized = this.wordHex(item, field, context);
203
+ if (seen.has(normalized)) {
204
+ throw new Error(`${context}: duplicate ${field} entry ${normalized}`);
205
+ }
206
+ seen.add(normalized);
207
+ items.push(normalized);
208
+ }
209
+ return items;
210
+ }
211
+ }
212
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"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"}
package/dist/signer.d.ts CHANGED
@@ -1,21 +1,3 @@
1
- import { SecretKey } from '@demox-labs/miden-sdk';
2
- import type { Signer, SignatureScheme } from './types.js';
3
- export declare class FalconSigner implements Signer {
4
- readonly commitment: string;
5
- readonly publicKey: string;
6
- readonly scheme: SignatureScheme;
7
- private readonly secretKey;
8
- constructor(secretKey: SecretKey);
9
- signAccountIdWithTimestamp(accountId: string, timestamp: number): string;
10
- signCommitment(commitmentHex: string): string;
11
- }
12
- export declare class EcdsaSigner implements Signer {
13
- readonly commitment: string;
14
- readonly publicKey: string;
15
- readonly scheme: SignatureScheme;
16
- private readonly secretKey;
17
- constructor(secretKey: SecretKey);
18
- signAccountIdWithTimestamp(accountId: string, timestamp: number): string;
19
- signCommitment(commitmentHex: string): string;
20
- }
1
+ export { FalconSigner } from './signers/falcon.js';
2
+ export { EcdsaSigner } from './signers/ecdsa.js';
21
3
  //# sourceMappingURL=signer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA4C,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG1D,qBAAa,YAAa,YAAW,MAAM;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,SAAS,EAAE,SAAS;IAShC,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAoBxE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAS9C;AAED,qBAAa,WAAY,YAAW,MAAM;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,SAAS,EAAE,SAAS;IAShC,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAoBxE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAS9C"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/signer.js CHANGED
@@ -1,83 +1,3 @@
1
- import { Word, AccountId, Felt, FeltArray, Rpo256 } from '@demox-labs/miden-sdk';
2
- import { bytesToHex } from './utils/encoding.js';
3
- export class FalconSigner {
4
- commitment;
5
- publicKey;
6
- scheme = 'falcon';
7
- secretKey;
8
- constructor(secretKey) {
9
- this.secretKey = secretKey;
10
- const pubKey = secretKey.publicKey();
11
- this.commitment = pubKey.toCommitment().toHex();
12
- const serialized = pubKey.serialize();
13
- const falconPubKey = serialized.slice(1);
14
- this.publicKey = bytesToHex(falconPubKey);
15
- }
16
- signAccountIdWithTimestamp(accountId, timestamp) {
17
- const paddedHex = accountId.startsWith('0x') ? accountId : `0x${accountId}`;
18
- const parsedAccountId = AccountId.fromHex(paddedHex);
19
- const prefix = parsedAccountId.prefix();
20
- const suffix = parsedAccountId.suffix();
21
- const feltArray = new FeltArray([
22
- prefix,
23
- suffix,
24
- new Felt(BigInt(timestamp)),
25
- new Felt(BigInt(0)),
26
- ]);
27
- const digest = Rpo256.hashElements(feltArray);
28
- const signature = this.secretKey.sign(digest);
29
- const signatureBytes = signature.serialize();
30
- const falconSignature = signatureBytes.slice(1);
31
- return bytesToHex(falconSignature);
32
- }
33
- signCommitment(commitmentHex) {
34
- const paddedHex = commitmentHex.startsWith('0x') ? commitmentHex : `0x${commitmentHex}`;
35
- const cleanHex = paddedHex.slice(2).padStart(64, '0');
36
- const word = Word.fromHex(`0x${cleanHex}`);
37
- const signature = this.secretKey.sign(word);
38
- const signatureBytes = signature.serialize();
39
- const falconSignature = signatureBytes.slice(1);
40
- return bytesToHex(falconSignature);
41
- }
42
- }
43
- export class EcdsaSigner {
44
- commitment;
45
- publicKey;
46
- scheme = 'ecdsa';
47
- secretKey;
48
- constructor(secretKey) {
49
- this.secretKey = secretKey;
50
- const pubKey = secretKey.publicKey();
51
- this.commitment = pubKey.toCommitment().toHex();
52
- const serialized = pubKey.serialize();
53
- const ecdsaPubKey = serialized.slice(1);
54
- this.publicKey = bytesToHex(ecdsaPubKey);
55
- }
56
- signAccountIdWithTimestamp(accountId, timestamp) {
57
- const paddedHex = accountId.startsWith('0x') ? accountId : `0x${accountId}`;
58
- const parsedAccountId = AccountId.fromHex(paddedHex);
59
- const prefix = parsedAccountId.prefix();
60
- const suffix = parsedAccountId.suffix();
61
- const feltArray = new FeltArray([
62
- prefix,
63
- suffix,
64
- new Felt(BigInt(timestamp)),
65
- new Felt(BigInt(0)),
66
- ]);
67
- const digest = Rpo256.hashElements(feltArray);
68
- const signature = this.secretKey.sign(digest);
69
- const signatureBytes = signature.serialize();
70
- const ecdsaSignature = signatureBytes.slice(1);
71
- return bytesToHex(ecdsaSignature);
72
- }
73
- signCommitment(commitmentHex) {
74
- const paddedHex = commitmentHex.startsWith('0x') ? commitmentHex : `0x${commitmentHex}`;
75
- const cleanHex = paddedHex.slice(2).padStart(64, '0');
76
- const word = Word.fromHex(`0x${cleanHex}`);
77
- const signature = this.secretKey.sign(word);
78
- const signatureBytes = signature.serialize();
79
- const ecdsaSignature = signatureBytes.slice(1);
80
- return bytesToHex(ecdsaSignature);
81
- }
82
- }
1
+ export { FalconSigner } from './signers/falcon.js';
2
+ export { EcdsaSigner } from './signers/ecdsa.js';
83
3
  //# sourceMappingURL=signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { describe, it, expect, vi, beforeEach } from 'vitest';
2
2
  import { FalconSigner } from './signer.js';
3
+ import { RequestAuthPayload } from '@openzeppelin/psm-client';
3
4
  // Mock the Miden SDK
4
- vi.mock('@demox-labs/miden-sdk', () => {
5
+ vi.mock('@miden-sdk/miden-sdk', () => {
5
6
  const mockSignature = {
6
7
  serialize: () => new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
7
8
  };
@@ -16,7 +17,7 @@ vi.mock('@demox-labs/miden-sdk', () => {
16
17
  sign: vi.fn().mockReturnValue(mockSignature),
17
18
  };
18
19
  return {
19
- SecretKey: {
20
+ AuthSecretKey: {
20
21
  rpoFalconWithRNG: vi.fn().mockReturnValue(mockSecretKey),
21
22
  },
22
23
  Word: {
@@ -36,6 +37,7 @@ vi.mock('@demox-labs/miden-sdk', () => {
36
37
  Rpo256: {
37
38
  hashElements: vi.fn().mockReturnValue({
38
39
  toHex: () => '0x' + 'b'.repeat(64),
40
+ toFelts: () => [1, 2, 3, 4],
39
41
  }),
40
42
  },
41
43
  };
@@ -45,8 +47,8 @@ describe('FalconSigner', () => {
45
47
  let signer;
46
48
  beforeEach(async () => {
47
49
  vi.clearAllMocks();
48
- const { SecretKey } = await import('@demox-labs/miden-sdk');
49
- mockSecretKey = SecretKey.rpoFalconWithRNG(new Uint8Array(32));
50
+ const { AuthSecretKey } = await import('@miden-sdk/miden-sdk');
51
+ mockSecretKey = AuthSecretKey.rpoFalconWithRNG(new Uint8Array(32));
50
52
  signer = new FalconSigner(mockSecretKey);
51
53
  });
52
54
  describe('constructor', () => {
@@ -61,33 +63,37 @@ describe('FalconSigner', () => {
61
63
  expect(mockSecretKey.publicKey).toHaveBeenCalled();
62
64
  });
63
65
  });
64
- describe('signAccountIdWithTimestamp', () => {
66
+ describe('signRequest', () => {
65
67
  it('handles account ID with 0x prefix', () => {
66
- const signature = signer.signAccountIdWithTimestamp('0x' + 'a'.repeat(30), 1700000000);
68
+ const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
69
+ const signature = signer.signRequest('0x' + 'a'.repeat(30), 1700000000, payload);
67
70
  expect(signature).toMatch(/^0x[a-f0-9]+$/);
68
71
  });
69
72
  it('handles account ID without 0x prefix', () => {
70
- const signature = signer.signAccountIdWithTimestamp('a'.repeat(30), 1700000000);
73
+ const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
74
+ const signature = signer.signRequest('a'.repeat(30), 1700000000, payload);
71
75
  expect(signature).toMatch(/^0x[a-f0-9]+$/);
72
76
  });
73
77
  it('calls sign method with hashed digest', () => {
74
- signer.signAccountIdWithTimestamp('0x' + 'a'.repeat(30), 1700000000);
78
+ const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
79
+ signer.signRequest('0x' + 'a'.repeat(30), 1700000000, payload);
75
80
  expect(mockSecretKey.sign).toHaveBeenCalled();
76
81
  });
77
82
  it('returns signature without first byte', () => {
78
83
  // Signature serialized is [0, 1, 2, ...9], slice(1) returns [1, 2, ...9]
79
- const signature = signer.signAccountIdWithTimestamp('0x' + 'a'.repeat(30), 1700000000);
84
+ const payload = RequestAuthPayload.fromRequest({ op: 'get_state' });
85
+ const signature = signer.signRequest('0x' + 'a'.repeat(30), 1700000000, payload);
80
86
  expect(signature).toBe('0x010203040506070809');
81
87
  });
82
88
  it('includes timestamp in signed payload', async () => {
83
- const { Felt, FeltArray } = await import('@demox-labs/miden-sdk');
84
- signer.signAccountIdWithTimestamp('0x' + 'a'.repeat(30), 1700000000);
85
- // Verify FeltArray was called with timestamp in the third position
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);
86
92
  expect(FeltArray).toHaveBeenCalledWith(expect.arrayContaining([
87
- expect.anything(), // prefix
88
- expect.anything(), // suffix
89
- expect.anything(), // timestamp
90
- expect.anything(), // zero padding
93
+ expect.anything(),
94
+ expect.anything(),
95
+ expect.anything(),
96
+ expect.anything(),
91
97
  ]));
92
98
  });
93
99
  });
@@ -1 +1 @@
1
- {"version":3,"file":"signer.test.js","sourceRoot":"","sources":["../src/signer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAqB;AACrB,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACpC,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAChE,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;YACnB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;SACnC,CAAC;QACF,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACxF,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC;QACjD,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC;KAC7C,CAAC;IAEF,OAAO;QACL,SAAS,EAAE;YACT,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC;SACzD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;gBAC/B,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG;gBAChB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC5B,CAAC,CAAC;SACJ;QACD,SAAS,EAAE;YACT,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,CAAC,CAAC;SACJ;QACD,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC;QAC1D,MAAM,EAAE;YACN,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACpC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aACnC,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,aAAkB,CAAC;IACvB,IAAI,MAAoB,CAAC;IAEzB,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC5D,aAAa,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,yEAAyE;YACzE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YACvF,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YAChF,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,0BAA0B,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,yEAAyE;YACzE,MAAM,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YACvF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YAClE,MAAM,CAAC,0BAA0B,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YACrE,mEAAmE;YACnE,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC;gBAC5D,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS;gBAC5B,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS;gBAC5B,MAAM,CAAC,QAAQ,EAAE,EAAE,YAAY;gBAC/B,MAAM,CAAC,QAAQ,EAAE,EAAE,eAAe;aACnC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"signer.test.js","sourceRoot":"","sources":["../src/signer.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { AuthSecretKey } from '@miden-sdk/miden-sdk';
2
+ import type { Signer, SignatureScheme } from '../types.js';
3
+ export declare class EcdsaSigner implements Signer {
4
+ readonly commitment: string;
5
+ readonly publicKey: string;
6
+ readonly scheme: SignatureScheme;
7
+ private readonly secretKey;
8
+ constructor(secretKey: AuthSecretKey);
9
+ signAccountIdWithTimestamp(accountId: string, timestamp: number): Promise<string>;
10
+ signCommitment(commitmentHex: string): Promise<string>;
11
+ }
12
+ //# sourceMappingURL=ecdsa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../src/signers/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI3D,qBAAa,WAAY,YAAW,MAAM;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAQ9B,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjF,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO7D"}
@@ -0,0 +1,30 @@
1
+ import { bytesToHex, normalizeHexWord } from '../utils/encoding.js';
2
+ import { AuthDigest } from '../utils/digest.js';
3
+ export class EcdsaSigner {
4
+ commitment;
5
+ publicKey;
6
+ scheme = 'ecdsa';
7
+ secretKey;
8
+ constructor(secretKey) {
9
+ this.secretKey = secretKey;
10
+ const pubKey = secretKey.publicKey();
11
+ const serialized = pubKey.serialize();
12
+ this.publicKey = bytesToHex(serialized.slice(1));
13
+ this.commitment = normalizeHexWord(pubKey.toCommitment().toHex());
14
+ }
15
+ async signAccountIdWithTimestamp(accountId, timestamp) {
16
+ const digest = AuthDigest.fromAccountIdWithTimestamp(accountId, timestamp);
17
+ const signature = this.secretKey.sign(digest);
18
+ const signatureBytes = signature.serialize();
19
+ const ecdsaSignature = signatureBytes.slice(1);
20
+ return bytesToHex(ecdsaSignature);
21
+ }
22
+ async signCommitment(commitmentHex) {
23
+ const word = AuthDigest.fromCommitmentHex(commitmentHex);
24
+ const signature = this.secretKey.sign(word);
25
+ const signatureBytes = signature.serialize();
26
+ const ecdsaSignature = signatureBytes.slice(1);
27
+ return bytesToHex(ecdsaSignature);
28
+ }
29
+ }
30
+ //# sourceMappingURL=ecdsa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../src/signers/ecdsa.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,OAAO,WAAW;IACb,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,MAAM,GAAoB,OAAO,CAAC;IAC1B,SAAS,CAAgB;IAE1C,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,SAAiB,EAAE,SAAiB;QACnE,MAAM,MAAM,GAAG,UAAU,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,aAAqB;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { AuthSecretKey } from '@miden-sdk/miden-sdk';
2
+ import type { Signer, SignatureScheme } from '../types.js';
3
+ export declare class FalconSigner implements Signer {
4
+ readonly commitment: string;
5
+ readonly publicKey: string;
6
+ readonly scheme: SignatureScheme;
7
+ private readonly secretKey;
8
+ constructor(secretKey: AuthSecretKey);
9
+ signAccountIdWithTimestamp(accountId: string, timestamp: number): Promise<string>;
10
+ signCommitment(commitmentHex: string): Promise<string>;
11
+ }
12
+ //# sourceMappingURL=falcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"falcon.d.ts","sourceRoot":"","sources":["../../src/signers/falcon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI3D,qBAAa,YAAa,YAAW,MAAM;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,SAAS,EAAE,aAAa;IAS9B,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjF,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO7D"}
@@ -0,0 +1,31 @@
1
+ import { bytesToHex } from '../utils/encoding.js';
2
+ import { AuthDigest } from '../utils/digest.js';
3
+ export class FalconSigner {
4
+ commitment;
5
+ publicKey;
6
+ scheme = 'falcon';
7
+ secretKey;
8
+ constructor(secretKey) {
9
+ this.secretKey = secretKey;
10
+ const pubKey = secretKey.publicKey();
11
+ this.commitment = pubKey.toCommitment().toHex();
12
+ const serialized = pubKey.serialize();
13
+ const falconPubKey = serialized.slice(1);
14
+ this.publicKey = bytesToHex(falconPubKey);
15
+ }
16
+ async signAccountIdWithTimestamp(accountId, timestamp) {
17
+ const digest = AuthDigest.fromAccountIdWithTimestamp(accountId, timestamp);
18
+ const signature = this.secretKey.sign(digest);
19
+ const signatureBytes = signature.serialize();
20
+ const falconSignature = signatureBytes.slice(1);
21
+ return bytesToHex(falconSignature);
22
+ }
23
+ async signCommitment(commitmentHex) {
24
+ const word = AuthDigest.fromCommitmentHex(commitmentHex);
25
+ const signature = this.secretKey.sign(word);
26
+ const signatureBytes = signature.serialize();
27
+ const falconSignature = signatureBytes.slice(1);
28
+ return bytesToHex(falconSignature);
29
+ }
30
+ }
31
+ //# sourceMappingURL=falcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"falcon.js","sourceRoot":"","sources":["../../src/signers/falcon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,OAAO,YAAY;IACd,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,MAAM,GAAoB,QAAQ,CAAC;IAC3B,SAAS,CAAgB;IAE1C,YAAY,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,SAAiB,EAAE,SAAiB;QACnE,MAAM,MAAM,GAAG,UAAU,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,aAAqB;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=falcon.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"falcon.test.d.ts","sourceRoot":"","sources":["../../src/signers/falcon.test.ts"],"names":[],"mappings":""}