@openzeppelin/miden-multisig-client 0.12.6 → 0.12.8

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 (89) hide show
  1. package/README.md +70 -75
  2. package/dist/account/builder.d.ts +0 -18
  3. package/dist/account/builder.d.ts.map +1 -1
  4. package/dist/account/builder.js +16 -24
  5. package/dist/account/builder.js.map +1 -1
  6. package/dist/account/masm.d.ts +2 -0
  7. package/dist/account/masm.d.ts.map +1 -1
  8. package/dist/account/masm.js +428 -1
  9. package/dist/account/masm.js.map +1 -1
  10. package/dist/account/storage.d.ts.map +1 -1
  11. package/dist/account/storage.js +5 -6
  12. package/dist/account/storage.js.map +1 -1
  13. package/dist/client.d.ts +5 -57
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +7 -53
  16. package/dist/client.js.map +1 -1
  17. package/dist/client.test.js +28 -0
  18. package/dist/client.test.js.map +1 -1
  19. package/dist/index.d.ts +3 -46
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -45
  22. package/dist/index.js.map +1 -1
  23. package/dist/inspector.d.ts +4 -30
  24. package/dist/inspector.d.ts.map +1 -1
  25. package/dist/inspector.js +13 -43
  26. package/dist/inspector.js.map +1 -1
  27. package/dist/multisig/helpers.d.ts.map +1 -1
  28. package/dist/multisig/helpers.js.map +1 -1
  29. package/dist/multisig.d.ts +39 -161
  30. package/dist/multisig.d.ts.map +1 -1
  31. package/dist/multisig.js +190 -241
  32. package/dist/multisig.js.map +1 -1
  33. package/dist/multisig.test.js +41 -31
  34. package/dist/multisig.test.js.map +1 -1
  35. package/dist/procedures.d.ts +20 -47
  36. package/dist/procedures.d.ts.map +1 -1
  37. package/dist/procedures.js +17 -50
  38. package/dist/procedures.js.map +1 -1
  39. package/dist/signer.d.ts +11 -26
  40. package/dist/signer.d.ts.map +1 -1
  41. package/dist/signer.js +41 -26
  42. package/dist/signer.js.map +1 -1
  43. package/dist/transaction/options.d.ts +2 -0
  44. package/dist/transaction/options.d.ts.map +1 -1
  45. package/dist/transaction/updatePsm.d.ts.map +1 -1
  46. package/dist/transaction/updatePsm.js +21 -3
  47. package/dist/transaction/updatePsm.js.map +1 -1
  48. package/dist/transaction/updateSigners.d.ts.map +1 -1
  49. package/dist/transaction/updateSigners.js +21 -3
  50. package/dist/transaction/updateSigners.js.map +1 -1
  51. package/dist/transaction.d.ts.map +1 -1
  52. package/dist/transaction.js +0 -2
  53. package/dist/transaction.js.map +1 -1
  54. package/dist/transaction.test.js +5 -0
  55. package/dist/transaction.test.js.map +1 -1
  56. package/dist/types/proposal.d.ts +16 -8
  57. package/dist/types/proposal.d.ts.map +1 -1
  58. package/dist/types.d.ts +18 -14
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/utils/signature.d.ts +10 -2
  61. package/dist/utils/signature.d.ts.map +1 -1
  62. package/dist/utils/signature.js +77 -5
  63. package/dist/utils/signature.js.map +1 -1
  64. package/dist/utils/signature.test.js +16 -1
  65. package/dist/utils/signature.test.js.map +1 -1
  66. package/masm/multisig_ecdsa.masm +424 -0
  67. package/masm/psm_ecdsa.masm +179 -0
  68. package/package.json +2 -2
  69. package/src/account/builder.ts +18 -25
  70. package/src/account/masm.ts +433 -2
  71. package/src/account/storage.ts +5 -6
  72. package/src/client.test.ts +36 -0
  73. package/src/client.ts +10 -59
  74. package/src/index.ts +13 -62
  75. package/src/inspector.ts +15 -44
  76. package/src/multisig/helpers.ts +1 -2
  77. package/src/multisig.test.ts +45 -34
  78. package/src/multisig.ts +246 -273
  79. package/src/procedures.ts +21 -56
  80. package/src/signer.ts +48 -28
  81. package/src/transaction/options.ts +2 -0
  82. package/src/transaction/updatePsm.ts +24 -3
  83. package/src/transaction/updateSigners.ts +25 -3
  84. package/src/transaction.test.ts +6 -0
  85. package/src/transaction.ts +0 -2
  86. package/src/types/proposal.ts +15 -8
  87. package/src/types.ts +26 -16
  88. package/src/utils/signature.test.ts +24 -1
  89. package/src/utils/signature.ts +86 -4
@@ -1,57 +1,30 @@
1
- /**
2
- * known procedure roots for multisig accounts.
3
- *
4
- * IMPORTANT: These values are extracted from the TypeScript SDK's compiled MASM output,
5
- * NOT from the Rust crate. The SDK may compile MASM differently, resulting in different
6
- * procedure roots. Use the debug output from builder.ts to update these values.
7
- */
8
- /**
9
- * Static mapping of procedure names to their deterministic roots.
10
- *
11
- * Component ordering: Multisig (auth) -> PSM -> BasicWallet
12
- */
1
+ import type { SignatureScheme } from '@openzeppelin/psm-client';
2
+ export declare const PROCEDURE_ROOTS_FALCON: {
3
+ readonly update_signers: "0x53d0ad381a193de0cf6af3730141e498274103dfc3b8c8e7367bd49d4a66c72b";
4
+ readonly auth_tx: "0x474c613b38001cc36d68557e9d881495d6a461a9027033445c7672c586509026";
5
+ readonly update_psm: "0xb103236807e5bf09c27efc2c5287ca8b03ab9efc1d852b62ebd31f5f1927ec26";
6
+ readonly verify_psm: "0x30727fc23c6105a678fea8b4c1920f35fa85c03f16a0cf98372c8f56701f8a87";
7
+ readonly send_asset: "0x0e406b067ed2bcd7de745ca6517f519fd1a9be245f913347ac673ca1db30c1d6";
8
+ readonly receive_asset: "0x6f4bdbdc4b13d7ed933d590d88ac9dfb98020c9e917697845b5e169395b76a01";
9
+ };
10
+ export declare const PROCEDURE_ROOTS_ECDSA: {
11
+ readonly update_signers: "0x930f9ea86d33c7b3b2d23c4e9ac2492add461359344ed25b1acd38f3713dd79c";
12
+ readonly auth_tx: "0x2bc7664a9dd47b36e7c8b8c3df03412798e4410173f36acfe03d191a38add053";
13
+ readonly update_psm: "0x26ec27195f1fd3eb622b851dfc9eab038bca87522cfc7ec209bfe507682303b1";
14
+ readonly verify_psm: "0xbeb9e08a83eca030968f2f137b5673136f21bc16c82fd408c2ce2495ccbdcd15";
15
+ readonly send_asset: "0xd6c130dba13c67ac4733915f24bea9d19f517f51a65c74ded7bcd27e066b400e";
16
+ readonly receive_asset: "0x016ab79593165e5b849776919e0c0298fb9dac880d593d93edd7134bdcdb4b6f";
17
+ };
13
18
  export declare const PROCEDURE_ROOTS: {
14
- /** Update signer list and threshold configuration */
15
19
  readonly update_signers: "0x53d0ad381a193de0cf6af3730141e498274103dfc3b8c8e7367bd49d4a66c72b";
16
- /** Authenticate transaction with multisig (Falcon512) */
17
20
  readonly auth_tx: "0x474c613b38001cc36d68557e9d881495d6a461a9027033445c7672c586509026";
18
- /** Update PSM public key */
19
21
  readonly update_psm: "0xb103236807e5bf09c27efc2c5287ca8b03ab9efc1d852b62ebd31f5f1927ec26";
20
- /** Verify PSM signature */
21
22
  readonly verify_psm: "0x30727fc23c6105a678fea8b4c1920f35fa85c03f16a0cf98372c8f56701f8a87";
22
- /** Send assets from account (move_asset_to_note) */
23
23
  readonly send_asset: "0x0e406b067ed2bcd7de745ca6517f519fd1a9be245f913347ac673ca1db30c1d6";
24
- /** Receive assets into account */
25
24
  readonly receive_asset: "0x6f4bdbdc4b13d7ed933d590d88ac9dfb98020c9e917697845b5e169395b76a01";
26
25
  };
27
- /**
28
- * Valid procedure names that can be used for threshold overrides.
29
- */
30
- export type ProcedureName = keyof typeof PROCEDURE_ROOTS;
31
- /**
32
- * Get the procedure root for a given procedure name.
33
- *
34
- * @param name - The procedure name
35
- * @returns The procedure root as a hex string
36
- *
37
- * @example
38
- * ```typescript
39
- * const root = getProcedureRoot('receive_asset');
40
- * // '0x6f4bdbdc4b13d7ed933d590d88ac9dfb98020c9e917697845b5e169395b76a01'
41
- * ```
42
- */
43
- export declare function getProcedureRoot(name: ProcedureName): string;
44
- /**
45
- * Check if a string is a valid procedure name.
46
- *
47
- * @param name - The string to check
48
- * @returns true if the string is a valid procedure name
49
- */
26
+ export type ProcedureName = keyof typeof PROCEDURE_ROOTS_FALCON;
27
+ export declare function getProcedureRoot(name: ProcedureName, scheme?: SignatureScheme): string;
50
28
  export declare function isProcedureName(name: string): name is ProcedureName;
51
- /**
52
- * Get all available procedure names.
53
- *
54
- * @returns Array of all valid procedure names
55
- */
56
- export declare function getProcedureNames(): ProcedureName[];
29
+ export declare function getProcedureNames(scheme?: SignatureScheme): ProcedureName[];
57
30
  //# sourceMappingURL=procedures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe;IAE1B,qDAAqD;;IAErD,yDAAyD;;IAIzD,4BAA4B;;IAE5B,2BAA2B;;IAI3B,oDAAoD;;IAEpD,kCAAkC;;CAE1B,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAEnD"}
1
+ {"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,eAAO,MAAM,sBAAsB;;;;;;;CAOzB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;CAOxB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;CAAyB,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAEhE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,GAAE,eAA0B,GAAG,MAAM,CAGhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAEnE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,eAA0B,GAAG,aAAa,EAAE,CAGrF"}
@@ -1,62 +1,29 @@
1
- /**
2
- * known procedure roots for multisig accounts.
3
- *
4
- * IMPORTANT: These values are extracted from the TypeScript SDK's compiled MASM output,
5
- * NOT from the Rust crate. The SDK may compile MASM differently, resulting in different
6
- * procedure roots. Use the debug output from builder.ts to update these values.
7
- */
8
- /**
9
- * Static mapping of procedure names to their deterministic roots.
10
- *
11
- * Component ordering: Multisig (auth) -> PSM -> BasicWallet
12
- */
13
- export const PROCEDURE_ROOTS = {
14
- // Multisig component procedures
15
- /** Update signer list and threshold configuration */
1
+ export const PROCEDURE_ROOTS_FALCON = {
16
2
  update_signers: '0x53d0ad381a193de0cf6af3730141e498274103dfc3b8c8e7367bd49d4a66c72b',
17
- /** Authenticate transaction with multisig (Falcon512) */
18
3
  auth_tx: '0x474c613b38001cc36d68557e9d881495d6a461a9027033445c7672c586509026',
19
- // PSM component procedures
20
- /** Update PSM public key */
21
4
  update_psm: '0xb103236807e5bf09c27efc2c5287ca8b03ab9efc1d852b62ebd31f5f1927ec26',
22
- /** Verify PSM signature */
23
5
  verify_psm: '0x30727fc23c6105a678fea8b4c1920f35fa85c03f16a0cf98372c8f56701f8a87',
24
- // BasicWallet procedures
25
- /** Send assets from account (move_asset_to_note) */
26
6
  send_asset: '0x0e406b067ed2bcd7de745ca6517f519fd1a9be245f913347ac673ca1db30c1d6',
27
- /** Receive assets into account */
28
7
  receive_asset: '0x6f4bdbdc4b13d7ed933d590d88ac9dfb98020c9e917697845b5e169395b76a01',
29
8
  };
30
- /**
31
- * Get the procedure root for a given procedure name.
32
- *
33
- * @param name - The procedure name
34
- * @returns The procedure root as a hex string
35
- *
36
- * @example
37
- * ```typescript
38
- * const root = getProcedureRoot('receive_asset');
39
- * // '0x6f4bdbdc4b13d7ed933d590d88ac9dfb98020c9e917697845b5e169395b76a01'
40
- * ```
41
- */
42
- export function getProcedureRoot(name) {
43
- return PROCEDURE_ROOTS[name];
9
+ export const PROCEDURE_ROOTS_ECDSA = {
10
+ update_signers: '0x930f9ea86d33c7b3b2d23c4e9ac2492add461359344ed25b1acd38f3713dd79c',
11
+ auth_tx: '0x2bc7664a9dd47b36e7c8b8c3df03412798e4410173f36acfe03d191a38add053',
12
+ update_psm: '0x26ec27195f1fd3eb622b851dfc9eab038bca87522cfc7ec209bfe507682303b1',
13
+ verify_psm: '0xbeb9e08a83eca030968f2f137b5673136f21bc16c82fd408c2ce2495ccbdcd15',
14
+ send_asset: '0xd6c130dba13c67ac4733915f24bea9d19f517f51a65c74ded7bcd27e066b400e',
15
+ receive_asset: '0x016ab79593165e5b849776919e0c0298fb9dac880d593d93edd7134bdcdb4b6f',
16
+ };
17
+ export const PROCEDURE_ROOTS = PROCEDURE_ROOTS_FALCON;
18
+ export function getProcedureRoot(name, scheme = 'falcon') {
19
+ const roots = scheme === 'ecdsa' ? PROCEDURE_ROOTS_ECDSA : PROCEDURE_ROOTS_FALCON;
20
+ return roots[name];
44
21
  }
45
- /**
46
- * Check if a string is a valid procedure name.
47
- *
48
- * @param name - The string to check
49
- * @returns true if the string is a valid procedure name
50
- */
51
22
  export function isProcedureName(name) {
52
- return name in PROCEDURE_ROOTS;
23
+ return name in PROCEDURE_ROOTS_FALCON;
53
24
  }
54
- /**
55
- * Get all available procedure names.
56
- *
57
- * @returns Array of all valid procedure names
58
- */
59
- export function getProcedureNames() {
60
- return Object.keys(PROCEDURE_ROOTS);
25
+ export function getProcedureNames(scheme = 'falcon') {
26
+ const roots = scheme === 'ecdsa' ? PROCEDURE_ROOTS_ECDSA : PROCEDURE_ROOTS_FALCON;
27
+ return Object.keys(roots);
61
28
  }
62
29
  //# sourceMappingURL=procedures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"procedures.js","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,gCAAgC;IAChC,qDAAqD;IACrD,cAAc,EAAE,oEAAoE;IACpF,yDAAyD;IACzD,OAAO,EAAE,oEAAoE;IAE7E,2BAA2B;IAC3B,4BAA4B;IAC5B,UAAU,EAAE,oEAAoE;IAChF,2BAA2B;IAC3B,UAAU,EAAE,oEAAoE;IAEhF,yBAAyB;IACzB,oDAAoD;IACpD,UAAU,EAAE,oEAAoE;IAChF,kCAAkC;IAClC,aAAa,EAAE,oEAAoE;CAC3E,CAAC;AAOX;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAClD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,IAAI,eAAe,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAoB,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"procedures.js","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,cAAc,EAAE,oEAAoE;IACpF,OAAO,EAAE,oEAAoE;IAC7E,UAAU,EAAE,oEAAoE;IAChF,UAAU,EAAE,oEAAoE;IAChF,UAAU,EAAE,oEAAoE;IAChF,aAAa,EAAE,oEAAoE;CAC3E,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,cAAc,EAAE,oEAAoE;IACpF,OAAO,EAAE,oEAAoE;IAC7E,UAAU,EAAE,oEAAoE;IAChF,UAAU,EAAE,oEAAoE;IAChF,UAAU,EAAE,oEAAoE;IAChF,aAAa,EAAE,oEAAoE;CAC3E,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAItD,MAAM,UAAU,gBAAgB,CAAC,IAAmB,EAAE,SAA0B,QAAQ;IACtF,MAAM,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAClF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,IAAI,sBAAsB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAA0B,QAAQ;IAClE,MAAM,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAClF,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAoB,CAAC;AAC/C,CAAC"}
package/dist/signer.d.ts CHANGED
@@ -1,36 +1,21 @@
1
- /**
2
- * Falcon Signer implementation for PSM client authentication.
3
- *
4
- * This implements the Signer interface using the Miden SDK's SecretKey
5
- * for Falcon signatures.
6
- */
7
1
  import { SecretKey } from '@demox-labs/miden-sdk';
8
- import type { Signer } from './types.js';
9
- /**
10
- * A Falcon signer that implements the Signer interface.
11
- *
12
- * @example
13
- * ```typescript
14
- * const secretKey = SecretKey.rpoFalconWithRNG(seed);
15
- * const signer = new FalconSigner(secretKey);
16
- * console.log(signer.commitment);
17
- * ```
18
- */
2
+ import type { Signer, SignatureScheme } from './types.js';
19
3
  export declare class FalconSigner implements Signer {
20
4
  readonly commitment: string;
21
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;
22
16
  private readonly secretKey;
23
17
  constructor(secretKey: SecretKey);
24
- /**
25
- * Signs an account ID with a timestamp.
26
- * @param accountId - The account ID to sign
27
- * @param timestamp - Unix timestamp in milliseconds (use Date.now())
28
- * @returns Hex-encoded Falcon signature
29
- */
30
18
  signAccountIdWithTimestamp(accountId: string, timestamp: number): string;
31
- /**
32
- * Signs a commitment/word for proposal signing.
33
- */
34
19
  signCommitment(commitmentHex: string): string;
35
20
  }
36
21
  //# sourceMappingURL=signer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAA4C,MAAM,uBAAuB,CAAC;AAC5F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC;;;;;;;;;GASG;AACH,qBAAa,YAAa,YAAW,MAAM;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,SAAS,EAAE,SAAS;IAShC;;;;;OAKG;IACH,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAqBxE;;OAEG;IACH,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,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"}
package/dist/signer.js CHANGED
@@ -1,24 +1,9 @@
1
- /**
2
- * Falcon Signer implementation for PSM client authentication.
3
- *
4
- * This implements the Signer interface using the Miden SDK's SecretKey
5
- * for Falcon signatures.
6
- */
7
1
  import { Word, AccountId, Felt, FeltArray, Rpo256 } from '@demox-labs/miden-sdk';
8
2
  import { bytesToHex } from './utils/encoding.js';
9
- /**
10
- * A Falcon signer that implements the Signer interface.
11
- *
12
- * @example
13
- * ```typescript
14
- * const secretKey = SecretKey.rpoFalconWithRNG(seed);
15
- * const signer = new FalconSigner(secretKey);
16
- * console.log(signer.commitment);
17
- * ```
18
- */
19
3
  export class FalconSigner {
20
4
  commitment;
21
5
  publicKey;
6
+ scheme = 'falcon';
22
7
  secretKey;
23
8
  constructor(secretKey) {
24
9
  this.secretKey = secretKey;
@@ -28,14 +13,7 @@ export class FalconSigner {
28
13
  const falconPubKey = serialized.slice(1);
29
14
  this.publicKey = bytesToHex(falconPubKey);
30
15
  }
31
- /**
32
- * Signs an account ID with a timestamp.
33
- * @param accountId - The account ID to sign
34
- * @param timestamp - Unix timestamp in milliseconds (use Date.now())
35
- * @returns Hex-encoded Falcon signature
36
- */
37
16
  signAccountIdWithTimestamp(accountId, timestamp) {
38
- // Parse the account ID from hex
39
17
  const paddedHex = accountId.startsWith('0x') ? accountId : `0x${accountId}`;
40
18
  const parsedAccountId = AccountId.fromHex(paddedHex);
41
19
  const prefix = parsedAccountId.prefix();
@@ -52,9 +30,6 @@ export class FalconSigner {
52
30
  const falconSignature = signatureBytes.slice(1);
53
31
  return bytesToHex(falconSignature);
54
32
  }
55
- /**
56
- * Signs a commitment/word for proposal signing.
57
- */
58
33
  signCommitment(commitmentHex) {
59
34
  const paddedHex = commitmentHex.startsWith('0x') ? commitmentHex : `0x${commitmentHex}`;
60
35
  const cleanHex = paddedHex.slice(2).padStart(64, '0');
@@ -65,4 +40,44 @@ export class FalconSigner {
65
40
  return bytesToHex(falconSignature);
66
41
  }
67
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
+ }
68
83
  //# sourceMappingURL=signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAa,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IACd,UAAU,CAAS;IACnB,SAAS,CAAS;IACV,SAAS,CAAY;IAEtC,YAAY,SAAoB;QAC9B,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;;;;;OAKG;IACH,0BAA0B,CAAC,SAAiB,EAAE,SAAiB;QAC7D,gCAAgC;QAChC,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5E,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAExC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;YAC9B,MAAM;YACN,MAAM;YACN,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACpB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9C,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;;OAEG;IACH,cAAc,CAAC,aAAqB;QAClC,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QACxF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC3C,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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import type { AdviceMap, Word } from '@demox-labs/miden-sdk';
2
+ import type { SignatureScheme } from '../types.js';
2
3
  export interface SignatureOptions {
3
4
  salt?: Word;
4
5
  signatureAdviceMap?: AdviceMap;
6
+ signatureScheme?: SignatureScheme;
5
7
  }
6
8
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/transaction/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/transaction/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"updatePsm.d.ts","sourceRoot":"","sources":["../../src/transaction/updatePsm.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAGlB,SAAS,EACT,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAoBrD,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CA8BtD"}
1
+ {"version":3,"file":"updatePsm.d.ts","sourceRoot":"","sources":["../../src/transaction/updatePsm.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAGlB,SAAS,EACT,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAsCrD,wBAAsB,gCAAgC,CACpD,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAiCtD"}
@@ -1,8 +1,8 @@
1
1
  import { AdviceMap, FeltArray, TransactionRequestBuilder, Word as WordType, } from '@demox-labs/miden-sdk';
2
- import { PSM_MASM } from '../account/masm.js';
2
+ import { PSM_ECDSA_MASM, PSM_MASM } from '../account/masm.js';
3
3
  import { normalizeHexWord } from '../utils/encoding.js';
4
4
  import { randomWord } from '../utils/random.js';
5
- function buildUpdatePsmScript(webClient) {
5
+ function buildUpdatePsmFalconScript(webClient) {
6
6
  const libBuilder = webClient.createScriptBuilder();
7
7
  const psmLib = libBuilder.buildLibrary('openzeppelin::psm', PSM_MASM);
8
8
  libBuilder.linkDynamicLibrary(psmLib);
@@ -17,8 +17,26 @@ end
17
17
  `;
18
18
  return libBuilder.compileTxScript(scriptSource);
19
19
  }
20
+ function buildUpdatePsmEcdsaScript(webClient) {
21
+ const libBuilder = webClient.createScriptBuilder();
22
+ const psmLib = libBuilder.buildLibrary('openzeppelin::psm_ecdsa', PSM_ECDSA_MASM);
23
+ libBuilder.linkDynamicLibrary(psmLib);
24
+ const scriptSource = `
25
+ use.openzeppelin::psm_ecdsa
26
+
27
+ begin
28
+ adv.push_mapval
29
+ dropw
30
+ call.psm_ecdsa::update_psm_public_key
31
+ end
32
+ `;
33
+ return libBuilder.compileTxScript(scriptSource);
34
+ }
20
35
  export async function buildUpdatePsmTransactionRequest(webClient, newPsmPubkey, options = {}) {
21
- const script = buildUpdatePsmScript(webClient);
36
+ const signatureScheme = options.signatureScheme ?? 'falcon';
37
+ const script = signatureScheme === 'ecdsa'
38
+ ? buildUpdatePsmEcdsaScript(webClient)
39
+ : buildUpdatePsmFalconScript(webClient);
22
40
  const authSaltHex = options.salt ? options.salt.toHex() : randomWord().toHex();
23
41
  const pubkeyWordForAdvice = WordType.fromHex(normalizeHexWord(newPsmPubkey));
24
42
  const pubkeyWordForFelts = WordType.fromHex(normalizeHexWord(newPsmPubkey));
@@ -1 +1 @@
1
- {"version":3,"file":"updatePsm.js","sourceRoot":"","sources":["../../src/transaction/updatePsm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EAET,yBAAyB,EAIzB,IAAI,IAAI,QAAQ,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,SAAS,oBAAoB,CAAC,SAAoB;IAChD,MAAM,UAAU,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IACtE,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG;;;;;;;;GAQpB,CAAC;IAEF,OAAO,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,SAAoB,EACpB,YAAoB,EACpB,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;IAE/E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEhF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3E,IAAI,SAAS,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAChD,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACzD,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1E,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE;QAC1B,IAAI,EAAE,iBAAiB;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"updatePsm.js","sourceRoot":"","sources":["../../src/transaction/updatePsm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateSigners.d.ts","sourceRoot":"","sources":["../../src/transaction/updateSigners.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,kBAAkB,EAGlB,SAAS,EACT,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAyCrD,wBAAsB,oCAAoC,CACxD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,CAAC,CAiCxE"}
1
+ {"version":3,"file":"updateSigners.d.ts","sourceRoot":"","sources":["../../src/transaction/updateSigners.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,kBAAkB,EAGlB,SAAS,EACT,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA4DrD,wBAAsB,oCAAoC,CACxD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,CAAC,CAoCxE"}
@@ -1,5 +1,5 @@
1
1
  import { AdviceMap, Felt, FeltArray, Rpo256, TransactionRequestBuilder, Word as WordType, } from '@demox-labs/miden-sdk';
2
- import { MULTISIG_MASM, PSM_MASM } from '../account/masm.js';
2
+ import { MULTISIG_ECDSA_MASM, MULTISIG_MASM, PSM_ECDSA_MASM, PSM_MASM } from '../account/masm.js';
3
3
  import { normalizeHexWord } from '../utils/encoding.js';
4
4
  import { randomWord } from '../utils/random.js';
5
5
  function buildMultisigConfigAdvice(threshold, signerCommitments) {
@@ -18,7 +18,7 @@ function buildMultisigConfigAdvice(threshold, signerCommitments) {
18
18
  const configHash = Rpo256.hashElements(payload);
19
19
  return { configHash, payload };
20
20
  }
21
- function buildUpdateSignersScript(webClient) {
21
+ function buildUpdateSignersFalconScript(webClient) {
22
22
  const libBuilder = webClient.createScriptBuilder();
23
23
  const psmLib = libBuilder.buildLibrary('openzeppelin::psm', PSM_MASM);
24
24
  libBuilder.linkStaticLibrary(psmLib);
@@ -27,6 +27,21 @@ function buildUpdateSignersScript(webClient) {
27
27
  const scriptSource = `
28
28
  use.auth::multisig
29
29
 
30
+ begin
31
+ call.multisig::update_signers_and_threshold
32
+ end
33
+ `;
34
+ return libBuilder.compileTxScript(scriptSource);
35
+ }
36
+ function buildUpdateSignersEcdsaScript(webClient) {
37
+ const libBuilder = webClient.createScriptBuilder();
38
+ const psmLib = libBuilder.buildLibrary('openzeppelin::psm_ecdsa', PSM_ECDSA_MASM);
39
+ libBuilder.linkStaticLibrary(psmLib);
40
+ const multisigLib = libBuilder.buildLibrary('auth::multisig', MULTISIG_ECDSA_MASM);
41
+ libBuilder.linkDynamicLibrary(multisigLib);
42
+ const scriptSource = `
43
+ use.auth::multisig
44
+
30
45
  begin
31
46
  call.multisig::update_signers_and_threshold
32
47
  end
@@ -34,12 +49,15 @@ end
34
49
  return libBuilder.compileTxScript(scriptSource);
35
50
  }
36
51
  export async function buildUpdateSignersTransactionRequest(webClient, threshold, signerCommitments, options = {}) {
52
+ const signatureScheme = options.signatureScheme ?? 'falcon';
37
53
  const { configHash: configHashForAdvice, payload } = buildMultisigConfigAdvice(threshold, signerCommitments);
38
54
  const { configHash: configHashForScript } = buildMultisigConfigAdvice(threshold, signerCommitments);
39
55
  const { configHash: configHashForReturn } = buildMultisigConfigAdvice(threshold, signerCommitments);
40
56
  const advice = new AdviceMap();
41
57
  advice.insert(configHashForAdvice, payload);
42
- const script = buildUpdateSignersScript(webClient);
58
+ const script = signatureScheme === 'ecdsa'
59
+ ? buildUpdateSignersEcdsaScript(webClient)
60
+ : buildUpdateSignersFalconScript(webClient);
43
61
  const authSaltHex = options.salt ? options.salt.toHex() : randomWord().toHex();
44
62
  const authSaltForBuilder = WordType.fromHex(normalizeHexWord(authSaltHex));
45
63
  let txBuilder = new TransactionRequestBuilder();
@@ -1 +1 @@
1
- {"version":3,"file":"updateSigners.js","sourceRoot":"","sources":["../../src/transaction/updateSigners.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateSigners.js","sourceRoot":"","sources":["../../src/transaction/updateSigners.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mCAAmC,GACpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oCAAoC,GACrC,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,GACpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oCAAoC,GACrC,MAAM,gCAAgC,CAAC"}
@@ -1,5 +1,3 @@
1
- // Backward-compatible entry point for transaction helpers.
2
- // The implementations now live in ./transaction/.
3
1
  export { buildConsumeNotesTransactionRequest, } from './transaction/consumeNotes.js';
4
2
  export { executeForSummary } from './transaction/summary.js';
5
3
  export { buildP2idTransactionRequest, } from './transaction/p2id.js';
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,kDAAkD;AAClD,OAAO,EACL,mCAAmC,GACpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oCAAoC,GACrC,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,GACpC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oCAAoC,GACrC,MAAM,gCAAgC,CAAC"}
@@ -98,6 +98,11 @@ describe('transaction utilities', () => {
98
98
  expect(result[0]).toBe(0); // RpoFalcon512 scheme byte
99
99
  expect(result.slice(1)).toEqual(new Uint8Array([0xde, 0xad, 0xbe, 0xef]));
100
100
  });
101
+ it('should prepend auth scheme byte (1 = ECDSA)', () => {
102
+ const result = signatureHexToBytes('deadbeef', 'ecdsa');
103
+ expect(result[0]).toBe(1); // ECDSA scheme byte
104
+ expect(result.slice(1)).toEqual(new Uint8Array([0xde, 0xad, 0xbe, 0xef]));
105
+ });
101
106
  it('should handle 0x prefix', () => {
102
107
  const result = signatureHexToBytes('0xaabbccdd');
103
108
  expect(result[0]).toBe(0);
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["../src/transaction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["../src/transaction.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { ProposalType as PsmProposalType } from '@openzeppelin/psm-client';
1
+ import type { ProposalType as PsmProposalType, SignatureScheme } from '@openzeppelin/psm-client';
2
2
  export type ProposalType = Exclude<PsmProposalType, 'custom'>;
3
- export type ProposalStatus = {
3
+ export type TransactionProposalStatus = {
4
4
  type: 'pending';
5
5
  signaturesCollected: number;
6
6
  signaturesRequired: number;
@@ -10,11 +10,12 @@ export type ProposalStatus = {
10
10
  } | {
11
11
  type: 'finalized';
12
12
  };
13
- export interface ProposalSignatureEntry {
13
+ export interface TransactionProposalSignature {
14
14
  signerId: string;
15
15
  signature: {
16
- scheme: 'falcon';
16
+ scheme: 'falcon' | 'ecdsa';
17
17
  signature: string;
18
+ publicKey?: string;
18
19
  };
19
20
  timestamp: string;
20
21
  }
@@ -49,16 +50,17 @@ export interface UnknownProposalMetadata extends BaseProposalMetadata {
49
50
  proposalType: 'unknown';
50
51
  }
51
52
  export type ProposalMetadata = UpdateSignersProposalMetadata | SwitchPsmProposalMetadata | ConsumeNotesProposalMetadata | P2IdProposalMetadata | UnknownProposalMetadata;
52
- export interface Proposal {
53
+ export interface TransactionProposal {
53
54
  id: string;
55
+ commitment: string;
54
56
  accountId: string;
55
57
  nonce: number;
56
- status: ProposalStatus;
58
+ status: TransactionProposalStatus;
57
59
  txSummary: string;
58
- signatures: ProposalSignatureEntry[];
60
+ signatures: TransactionProposalSignature[];
59
61
  metadata: ProposalMetadata;
60
62
  }
61
- export interface ExportedProposal {
63
+ export interface ExportedTransactionProposal {
62
64
  accountId: string;
63
65
  nonce: number;
64
66
  commitment: string;
@@ -70,5 +72,11 @@ export interface ExportedProposal {
70
72
  }>;
71
73
  metadata?: ProposalMetadata;
72
74
  }
75
+ export interface SignTransactionProposalParams {
76
+ commitment: string;
77
+ signature: string;
78
+ publicKey?: string;
79
+ scheme?: SignatureScheme;
80
+ }
73
81
  export {};
74
82
  //# sourceMappingURL=proposal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../src/types/proposal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChF,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,oBAAoB;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,YAAY,EAAE,YAAY,GAAG,eAAe,GAAG,kBAAkB,CAAC;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IACxE,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE,YAAY,EAAE,SAAS,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GACxB,6BAA6B,GAC7B,yBAAyB,GACzB,4BAA4B,GAC5B,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B"}
1
+ {"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../src/types/proposal.ts"],"names":[],"mappings":"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"}