@openzeppelin/miden-multisig-client 0.13.1 → 0.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/proposal/factory.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,8 @@
1
- import type { ProposalMetadata as PsmProposalMetadata } from '@openzeppelin/psm-client';
2
- import type { ProposalMetadata } from '../types/proposal.js';
1
+ import type { ProposalMetadata as GuardianProposalMetadata } from '@openzeppelin/guardian-client';
2
+ import type { ProposalMetadata } from '../types.js';
3
3
  export declare class ProposalMetadataCodec {
4
- static fromPsm(psm: PsmProposalMetadata | undefined, context: string): ProposalMetadata;
5
- static toPsm(metadata: ProposalMetadata): PsmProposalMetadata;
6
- static validate(metadata: ProposalMetadata, context: string): ProposalMetadata;
7
- private static description;
8
- private static requiredString;
9
- private static positiveInteger;
10
- private static positiveAmount;
11
- private static optionalWordHex;
12
- private static wordHex;
13
- private static wordHexList;
4
+ static toGuardian(metadata: ProposalMetadata): GuardianProposalMetadata;
5
+ static fromGuardian(guardian?: GuardianProposalMetadata): ProposalMetadata;
6
+ static validate(metadata: ProposalMetadata): ProposalMetadata;
14
7
  }
15
8
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,qBAAa,qBAAqB;IAChC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAiEvF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAgB,GAAG,mBAAmB;IA0C7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAwE9E,OAAO,CAAC,MAAM,CAAC,WAAW;IAQ1B,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B,OAAO,CAAC,MAAM,CAAC,eAAe;IAQ9B,OAAO,CAAC,MAAM,CAAC,cAAc;IAgB7B,OAAO,CAAC,MAAM,CAAC,eAAe;IAY9B,OAAO,CAAC,MAAM,CAAC,OAAO;IAatB,OAAO,CAAC,MAAM,CAAC,WAAW;CA2B3B"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,qBAAa,qBAAqB;IAChC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB;IAgDvE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,wBAAwB,GAAG,gBAAgB;IA0E1E,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB;CAqC9D"}
@@ -1,212 +1,156 @@
1
- import { normalizeHexWord } from '../utils/encoding.js';
1
+ import { isProcedureName } from '../procedures.js';
2
2
  export class ProposalMetadataCodec {
3
- static fromPsm(psm, context) {
4
- if (!psm?.proposalType) {
5
- throw new Error(`${context}: missing proposalType`);
6
- }
3
+ static toGuardian(metadata) {
7
4
  const base = {
8
- description: typeof psm.description === 'string' ? psm.description : '',
9
- saltHex: this.optionalWordHex(psm.salt, 'salt', context),
5
+ proposalType: metadata.proposalType,
6
+ description: metadata.description,
7
+ salt: metadata.saltHex,
8
+ requiredSignatures: metadata.requiredSignatures,
10
9
  };
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);
10
+ switch (metadata.proposalType) {
34
11
  case 'consume_notes':
35
- return this.validate({
12
+ return {
36
13
  ...base,
37
- proposalType: 'consume_notes',
38
- noteIds: this.wordHexList(psm.noteIds, 'noteIds', context, false),
39
- }, context);
14
+ noteIds: metadata.noteIds,
15
+ };
40
16
  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
17
  return {
64
18
  ...base,
65
- targetThreshold: validated.targetThreshold,
66
- signerCommitments: validated.targetSignerCommitments,
19
+ recipientId: metadata.recipientId,
20
+ faucetId: metadata.faucetId,
21
+ amount: metadata.amount,
67
22
  };
68
- case 'switch_psm':
23
+ case 'switch_guardian':
69
24
  return {
70
25
  ...base,
71
- targetThreshold: validated.targetThreshold,
72
- signerCommitments: validated.targetSignerCommitments,
73
- newPsmPubkey: validated.newPsmPubkey,
74
- newPsmEndpoint: validated.newPsmEndpoint,
26
+ targetThreshold: metadata.targetThreshold,
27
+ signerCommitments: metadata.targetSignerCommitments,
28
+ newGuardianPubkey: metadata.newGuardianPubkey,
29
+ newGuardianEndpoint: metadata.newGuardianEndpoint,
75
30
  };
76
- case 'consume_notes':
31
+ case 'update_procedure_threshold':
77
32
  return {
78
33
  ...base,
79
- noteIds: validated.noteIds,
34
+ targetThreshold: metadata.targetThreshold,
35
+ targetProcedure: metadata.targetProcedure,
80
36
  };
81
- case 'p2id':
37
+ case 'add_signer':
38
+ case 'remove_signer':
39
+ case 'change_threshold':
82
40
  return {
83
41
  ...base,
84
- recipientId: validated.recipientId,
85
- faucetId: validated.faucetId,
86
- amount: validated.amount,
42
+ targetThreshold: metadata.targetThreshold,
43
+ signerCommitments: metadata.targetSignerCommitments,
87
44
  };
88
45
  case 'unknown':
89
46
  return base;
90
47
  }
91
48
  }
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':
49
+ static fromGuardian(guardian) {
50
+ if (!guardian?.proposalType) {
51
+ throw new Error('Missing proposal metadata.proposalType');
52
+ }
53
+ const base = {
54
+ description: guardian.description ?? '',
55
+ saltHex: guardian.salt,
56
+ requiredSignatures: guardian.requiredSignatures,
57
+ };
58
+ switch (guardian.proposalType) {
59
+ case 'p2id':
60
+ if (!guardian.recipientId || !guardian.faucetId || !guardian.amount) {
61
+ throw new Error('p2id proposal is missing required metadata fields');
62
+ }
107
63
  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),
64
+ ...base,
65
+ proposalType: 'p2id',
66
+ recipientId: guardian.recipientId,
67
+ faucetId: guardian.faucetId,
68
+ amount: guardian.amount,
119
69
  };
120
70
  case 'consume_notes':
71
+ if (!guardian.noteIds || guardian.noteIds.length === 0) {
72
+ throw new Error('consume_notes proposal is missing noteIds');
73
+ }
121
74
  return {
75
+ ...base,
122
76
  proposalType: 'consume_notes',
123
- description,
124
- saltHex,
125
- noteIds: this.wordHexList(metadata.noteIds, 'noteIds', context, false),
77
+ noteIds: guardian.noteIds,
126
78
  };
127
- case 'p2id':
79
+ case 'switch_guardian':
80
+ if (!guardian.newGuardianPubkey || !guardian.newGuardianEndpoint) {
81
+ throw new Error('switch_guardian proposal is missing required metadata fields');
82
+ }
128
83
  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),
84
+ ...base,
85
+ proposalType: 'switch_guardian',
86
+ newGuardianPubkey: guardian.newGuardianPubkey,
87
+ newGuardianEndpoint: guardian.newGuardianEndpoint,
88
+ targetThreshold: guardian.targetThreshold,
89
+ targetSignerCommitments: guardian.signerCommitments,
135
90
  };
136
- case 'unknown':
91
+ case 'update_procedure_threshold':
92
+ if (guardian.targetThreshold === undefined || !guardian.targetProcedure) {
93
+ throw new Error('update_procedure_threshold proposal is missing required metadata fields');
94
+ }
95
+ if (!isProcedureName(guardian.targetProcedure)) {
96
+ throw new Error(`unknown target procedure: ${guardian.targetProcedure}`);
97
+ }
137
98
  return {
138
- proposalType: 'unknown',
139
- description,
140
- saltHex,
99
+ ...base,
100
+ proposalType: 'update_procedure_threshold',
101
+ targetProcedure: guardian.targetProcedure,
102
+ targetThreshold: guardian.targetThreshold,
141
103
  };
104
+ case 'add_signer':
105
+ case 'remove_signer':
106
+ case 'change_threshold':
107
+ if (guardian.targetThreshold === undefined || !guardian.signerCommitments || guardian.signerCommitments.length === 0) {
108
+ throw new Error(`${guardian.proposalType} proposal is missing required metadata fields`);
109
+ }
110
+ return {
111
+ ...base,
112
+ proposalType: guardian.proposalType,
113
+ targetThreshold: guardian.targetThreshold,
114
+ targetSignerCommitments: guardian.signerCommitments,
115
+ };
116
+ default:
117
+ throw new Error(`Unsupported proposal type: ${guardian.proposalType}`);
142
118
  }
143
119
  }
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);
120
+ static validate(metadata) {
121
+ switch (metadata.proposalType) {
122
+ case 'add_signer':
123
+ case 'remove_signer':
124
+ case 'change_threshold':
125
+ if (metadata.targetThreshold === undefined ||
126
+ !metadata.targetSignerCommitments ||
127
+ metadata.targetSignerCommitments.length === 0) {
128
+ throw new Error(`${metadata.proposalType} proposal metadata is incomplete`);
129
+ }
130
+ return metadata;
131
+ case 'switch_guardian':
132
+ if (!metadata.newGuardianPubkey || !metadata.newGuardianEndpoint) {
133
+ throw new Error('switch_guardian proposal metadata is incomplete');
134
+ }
135
+ return metadata;
136
+ case 'update_procedure_threshold':
137
+ if (!metadata.targetProcedure || metadata.targetThreshold === undefined) {
138
+ throw new Error('update_procedure_threshold proposal metadata is incomplete');
139
+ }
140
+ return metadata;
141
+ case 'consume_notes':
142
+ if (!metadata.noteIds || metadata.noteIds.length === 0) {
143
+ throw new Error('consume_notes proposal metadata is incomplete');
144
+ }
145
+ return metadata;
146
+ case 'p2id':
147
+ if (!metadata.recipientId || !metadata.faucetId || !metadata.amount) {
148
+ throw new Error('p2id proposal metadata is incomplete');
149
+ }
150
+ return metadata;
151
+ case 'unknown':
152
+ throw new Error('unknown proposal type is not supported');
208
153
  }
209
- return items;
210
154
  }
211
155
  }
212
156
  //# sourceMappingURL=metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/proposal/metadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,OAAO,qBAAqB;IAChC,MAAM,CAAC,UAAU,CAAC,QAA0B;QAC1C,MAAM,IAAI,GAA6B;YACrC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,QAAQ,CAAC,OAAO;YACtB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;SAChD,CAAC;QAEF,QAAQ,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC9B,KAAK,eAAe;gBAClB,OAAO;oBACL,GAAG,IAAI;oBACP,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO;oBACL,GAAG,IAAI;oBACP,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC;YACJ,KAAK,iBAAiB;gBACpB,OAAO;oBACL,GAAG,IAAI;oBACP,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,iBAAiB,EAAE,QAAQ,CAAC,uBAAuB;oBACnD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;oBAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;iBAClD,CAAC;YACJ,KAAK,4BAA4B;gBAC/B,OAAO;oBACL,GAAG,IAAI;oBACP,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,eAAe,EAAE,QAAQ,CAAC,eAAe;iBAC1C,CAAC;YACJ,KAAK,YAAY,CAAC;YAClB,KAAK,eAAe,CAAC;YACrB,KAAK,kBAAkB;gBACrB,OAAO;oBACL,GAAG,IAAI;oBACP,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,iBAAiB,EAAE,QAAQ,CAAC,uBAAuB;iBACpD,CAAC;YACJ,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,QAAmC;QACrD,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG;YACX,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;YACvC,OAAO,EAAE,QAAQ,CAAC,IAAI;YACtB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;SAChD,CAAC;QAEF,QAAQ,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC9B,KAAK,MAAM;gBACT,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACvE,CAAC;gBACD,OAAO;oBACL,GAAG,IAAI;oBACP,YAAY,EAAE,MAAM;oBACpB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC;YACJ,KAAK,eAAe;gBAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,CAAC;gBACD,OAAO;oBACL,GAAG,IAAI;oBACP,YAAY,EAAE,eAAe;oBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAC;YACJ,KAAK,iBAAiB;gBACpB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;gBAClF,CAAC;gBACD,OAAO;oBACL,GAAG,IAAI;oBACP,YAAY,EAAE,iBAAiB;oBAC/B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;oBAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;oBACjD,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,uBAAuB,EAAE,QAAQ,CAAC,iBAAiB;iBACpD,CAAC;YACJ,KAAK,4BAA4B;gBAC/B,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;oBACxE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;gBAC7F,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO;oBACL,GAAG,IAAI;oBACP,YAAY,EAAE,4BAA4B;oBAC1C,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,eAAe,EAAE,QAAQ,CAAC,eAAe;iBAC1C,CAAC;YACJ,KAAK,YAAY,CAAC;YAClB,KAAK,eAAe,CAAC;YACrB,KAAK,kBAAkB;gBACrB,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,QAAQ,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrH,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,YAAY,+CAA+C,CAAC,CAAC;gBAC3F,CAAC;gBACD,OAAO;oBACL,GAAG,IAAI;oBACP,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,eAAe,EAAE,QAAQ,CAAC,eAAe;oBACzC,uBAAuB,EAAE,QAAQ,CAAC,iBAAiB;iBACpD,CAAC;YACJ;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,YAAsB,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAA0B;QACxC,QAAQ,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC9B,KAAK,YAAY,CAAC;YAClB,KAAK,eAAe,CAAC;YACrB,KAAK,kBAAkB;gBACrB,IACE,QAAQ,CAAC,eAAe,KAAK,SAAS;oBACtC,CAAC,QAAQ,CAAC,uBAAuB;oBACjC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAC7C,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,YAAY,kCAAkC,CAAC,CAAC;gBAC9E,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,KAAK,iBAAiB;gBACpB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,KAAK,4BAA4B;gBAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBACxE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,KAAK,eAAe;gBAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,KAAK,MAAM;gBACT,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,KAAK,SAAS;gBACZ,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { ProposalSignatureEntry } from '../types.js';
2
+ export declare class ProposalSignatures {
3
+ private readonly signatures;
4
+ constructor(signatures: ProposalSignatureEntry[], signerCommitments: string[], context: string);
5
+ entries(): ProposalSignatureEntry[];
6
+ count(): number;
7
+ hasSigner(signerId: string): boolean;
8
+ static mergeEntries(entryGroups: ProposalSignatureEntry[][]): ProposalSignatureEntry[];
9
+ }
10
+ //# sourceMappingURL=signatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../src/proposal/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;gBAGpD,UAAU,EAAE,sBAAsB,EAAE,EACpC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,OAAO,EAAE,MAAM;IAkCjB,OAAO,IAAI,sBAAsB,EAAE;IAInC,KAAK,IAAI,MAAM;IAIf,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKpC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,sBAAsB,EAAE,EAAE,GAAG,sBAAsB,EAAE;CAWvF"}
@@ -0,0 +1,54 @@
1
+ import { canonicalizeSignature, normalizeSignerCommitment } from '../utils/signature.js';
2
+ export class ProposalSignatures {
3
+ signatures;
4
+ constructor(signatures, signerCommitments, context) {
5
+ const expectedSigners = new Set();
6
+ for (const signerCommitment of signerCommitments) {
7
+ let normalizedCommitment;
8
+ try {
9
+ normalizedCommitment = normalizeSignerCommitment(signerCommitment);
10
+ }
11
+ catch (error) {
12
+ const message = error instanceof Error ? error.message : String(error);
13
+ throw new Error(`${context}: ${message}`);
14
+ }
15
+ expectedSigners.add(normalizedCommitment);
16
+ }
17
+ const signaturesBySigner = new Map();
18
+ for (const signature of signatures) {
19
+ let canonicalized;
20
+ try {
21
+ canonicalized = canonicalizeSignature(signature, expectedSigners);
22
+ }
23
+ catch (error) {
24
+ const message = error instanceof Error ? error.message : String(error);
25
+ throw new Error(`${context}: ${message}`);
26
+ }
27
+ if (signaturesBySigner.has(canonicalized.signerId)) {
28
+ throw new Error(`${context}: duplicate signatures for signer ${canonicalized.signerId}`);
29
+ }
30
+ signaturesBySigner.set(canonicalized.signerId, canonicalized);
31
+ }
32
+ this.signatures = Array.from(signaturesBySigner.values());
33
+ }
34
+ entries() {
35
+ return [...this.signatures];
36
+ }
37
+ count() {
38
+ return this.signatures.length;
39
+ }
40
+ hasSigner(signerId) {
41
+ const normalizedSigner = normalizeSignerCommitment(signerId);
42
+ return this.signatures.some((signature) => signature.signerId === normalizedSigner);
43
+ }
44
+ static mergeEntries(entryGroups) {
45
+ const signaturesBySigner = new Map();
46
+ for (const group of entryGroups) {
47
+ for (const signature of group) {
48
+ signaturesBySigner.set(signature.signerId, signature);
49
+ }
50
+ }
51
+ return Array.from(signaturesBySigner.values());
52
+ }
53
+ }
54
+ //# sourceMappingURL=signatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../src/proposal/signatures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEzF,MAAM,OAAO,kBAAkB;IACZ,UAAU,CAA2B;IAEtD,YACE,UAAoC,EACpC,iBAA2B,EAC3B,OAAe;QAEf,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YACjD,IAAI,oBAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,oBAAoB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkC,CAAC;QACrE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,aAAqC,CAAC;YAC1C,IAAI,CAAC;gBACH,aAAa,GAAG,qBAAqB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,qCAAqC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3F,CAAC;YAED,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,WAAuC;QACzD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkC,CAAC;QAErE,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC9B,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;CACF"}
package/dist/signer.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { FalconSigner } from './signers/falcon.js';
2
2
  export { EcdsaSigner } from './signers/ecdsa.js';
3
+ export { ParaSigner, type ParaSigningContext } from './signers/para.js';
4
+ export { MidenWalletSigner, type WalletSigningContext } from './signers/miden-wallet.js';
3
5
  //# sourceMappingURL=signer.d.ts.map
@@ -1 +1 @@
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"}
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;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/signer.js CHANGED
@@ -1,3 +1,5 @@
1
1
  export { FalconSigner } from './signers/falcon.js';
2
2
  export { EcdsaSigner } from './signers/ecdsa.js';
3
+ export { ParaSigner } from './signers/para.js';
4
+ export { MidenWalletSigner } from './signers/miden-wallet.js';
3
5
  //# sourceMappingURL=signer.js.map
@@ -1 +1 @@
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
+ {"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;AACjD,OAAO,EAAE,UAAU,EAA2B,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAA6B,MAAM,2BAA2B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { RequestAuthPayload } from '@openzeppelin/guardian-client';
1
2
  import { AuthSecretKey } from '@miden-sdk/miden-sdk';
2
3
  import type { Signer, SignatureScheme } from '../types.js';
3
4
  export declare class EcdsaSigner implements Signer {
@@ -7,6 +8,8 @@ export declare class EcdsaSigner implements Signer {
7
8
  private readonly secretKey;
8
9
  constructor(secretKey: AuthSecretKey);
9
10
  signAccountIdWithTimestamp(accountId: string, timestamp: number): Promise<string>;
11
+ signRequest(accountId: string, timestamp: number, requestPayload: RequestAuthPayload): Promise<string>;
10
12
  signCommitment(commitmentHex: string): Promise<string>;
13
+ private signWord;
11
14
  }
12
15
  //# sourceMappingURL=ecdsa.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../src/signers/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,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;IAKjF,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,kBAAkB,GACjC,OAAO,CAAC,MAAM,CAAC;IAKZ,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5D,OAAO,CAAC,QAAQ;CAMjB"}
@@ -14,13 +14,17 @@ export class EcdsaSigner {
14
14
  }
15
15
  async signAccountIdWithTimestamp(accountId, timestamp) {
16
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);
17
+ return this.signWord(digest);
18
+ }
19
+ async signRequest(accountId, timestamp, requestPayload) {
20
+ const digest = AuthDigest.fromRequest(accountId, timestamp, requestPayload);
21
+ return this.signWord(digest);
21
22
  }
22
23
  async signCommitment(commitmentHex) {
23
24
  const word = AuthDigest.fromCommitmentHex(commitmentHex);
25
+ return this.signWord(word);
26
+ }
27
+ signWord(word) {
24
28
  const signature = this.secretKey.sign(word);
25
29
  const signatureBytes = signature.serialize();
26
30
  const ecdsaSignature = signatureBytes.slice(1);
@@ -1 +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"}
1
+ {"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../src/signers/ecdsa.ts"],"names":[],"mappings":"AAGA,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,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,SAAiB,EACjB,cAAkC;QAElC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,aAAqB;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,QAAQ,CAAC,IAAqD;QACpE,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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ecdsa.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdsa.test.d.ts","sourceRoot":"","sources":["../../src/signers/ecdsa.test.ts"],"names":[],"mappings":""}