@openzeppelin/miden-multisig-client 0.13.4 → 0.14.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 (145) hide show
  1. package/README.md +10 -13
  2. package/dist/account/builder.d.ts +3 -3
  3. package/dist/account/builder.d.ts.map +1 -1
  4. package/dist/account/builder.js +10 -10
  5. package/dist/account/builder.js.map +1 -1
  6. package/dist/account/builder.test.js +16 -14
  7. package/dist/account/builder.test.js.map +1 -1
  8. package/dist/account/masm/account-components/auth.d.ts +4 -4
  9. package/dist/account/masm/account-components/auth.d.ts.map +1 -1
  10. package/dist/account/masm/account-components/auth.js +8 -12
  11. package/dist/account/masm/account-components/auth.js.map +1 -1
  12. package/dist/account/masm/auth.d.ts +4 -4
  13. package/dist/account/masm/auth.d.ts.map +1 -1
  14. package/dist/account/masm/auth.js +226 -124
  15. package/dist/account/masm/auth.js.map +1 -1
  16. package/dist/account/storage.d.ts.map +1 -1
  17. package/dist/account/storage.js +24 -6
  18. package/dist/account/storage.js.map +1 -1
  19. package/dist/account/storage.test.d.ts +2 -0
  20. package/dist/account/storage.test.d.ts.map +1 -0
  21. package/dist/account/storage.test.js +73 -0
  22. package/dist/account/storage.test.js.map +1 -0
  23. package/dist/client.d.ts +9 -9
  24. package/dist/client.d.ts.map +1 -1
  25. package/dist/client.js +24 -14
  26. package/dist/client.js.map +1 -1
  27. package/dist/client.test.js +45 -8
  28. package/dist/client.test.js.map +1 -1
  29. package/dist/index.d.ts +6 -12
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +6 -12
  32. package/dist/index.js.map +1 -1
  33. package/dist/multisig/proposal/execution.d.ts +3 -2
  34. package/dist/multisig/proposal/execution.d.ts.map +1 -1
  35. package/dist/multisig/proposal/execution.js +8 -12
  36. package/dist/multisig/proposal/execution.js.map +1 -1
  37. package/dist/multisig.d.ts +7 -4
  38. package/dist/multisig.d.ts.map +1 -1
  39. package/dist/multisig.js +53 -35
  40. package/dist/multisig.js.map +1 -1
  41. package/dist/multisig.test.js +17 -29
  42. package/dist/multisig.test.js.map +1 -1
  43. package/dist/procedures.d.ts +8 -8
  44. package/dist/procedures.js +8 -8
  45. package/dist/raw-client.d.ts +13 -0
  46. package/dist/raw-client.d.ts.map +1 -0
  47. package/dist/raw-client.js +42 -0
  48. package/dist/raw-client.js.map +1 -0
  49. package/dist/raw-client.test.d.ts +2 -0
  50. package/dist/raw-client.test.d.ts.map +1 -0
  51. package/dist/raw-client.test.js +89 -0
  52. package/dist/raw-client.test.js.map +1 -0
  53. package/dist/signers/ecdsa.d.ts +3 -1
  54. package/dist/signers/ecdsa.d.ts.map +1 -1
  55. package/dist/signers/ecdsa.js +15 -1
  56. package/dist/signers/ecdsa.js.map +1 -1
  57. package/dist/signers/ecdsa.test.js +27 -4
  58. package/dist/signers/ecdsa.test.js.map +1 -1
  59. package/dist/signers/falcon.d.ts +3 -1
  60. package/dist/signers/falcon.d.ts.map +1 -1
  61. package/dist/signers/falcon.js +15 -1
  62. package/dist/signers/falcon.js.map +1 -1
  63. package/dist/signers/falcon.test.js +39 -3
  64. package/dist/signers/falcon.test.js.map +1 -1
  65. package/dist/transaction/consumeNotes.d.ts +2 -2
  66. package/dist/transaction/consumeNotes.d.ts.map +1 -1
  67. package/dist/transaction/consumeNotes.js +5 -4
  68. package/dist/transaction/consumeNotes.js.map +1 -1
  69. package/dist/transaction/options.d.ts +1 -0
  70. package/dist/transaction/options.d.ts.map +1 -1
  71. package/dist/transaction/p2id.d.ts.map +1 -1
  72. package/dist/transaction/p2id.js +7 -10
  73. package/dist/transaction/p2id.js.map +1 -1
  74. package/dist/transaction/p2id.test.js +19 -9
  75. package/dist/transaction/p2id.test.js.map +1 -1
  76. package/dist/transaction/summary.d.ts +2 -2
  77. package/dist/transaction/summary.d.ts.map +1 -1
  78. package/dist/transaction/summary.js +4 -2
  79. package/dist/transaction/summary.js.map +1 -1
  80. package/dist/transaction/updateGuardian.d.ts +2 -2
  81. package/dist/transaction/updateGuardian.d.ts.map +1 -1
  82. package/dist/transaction/updateGuardian.js +8 -11
  83. package/dist/transaction/updateGuardian.js.map +1 -1
  84. package/dist/transaction/updateProcedureThreshold.d.ts +2 -2
  85. package/dist/transaction/updateProcedureThreshold.d.ts.map +1 -1
  86. package/dist/transaction/updateProcedureThreshold.js +8 -10
  87. package/dist/transaction/updateProcedureThreshold.js.map +1 -1
  88. package/dist/transaction/updateSigners.d.ts +2 -2
  89. package/dist/transaction/updateSigners.d.ts.map +1 -1
  90. package/dist/transaction/updateSigners.js +8 -10
  91. package/dist/transaction/updateSigners.js.map +1 -1
  92. package/dist/transaction.test.js +6 -6
  93. package/dist/transaction.test.js.map +1 -1
  94. package/dist/utils/key.d.ts.map +1 -1
  95. package/dist/utils/key.js +3 -3
  96. package/dist/utils/key.js.map +1 -1
  97. package/dist/utils/key.test.js +4 -2
  98. package/dist/utils/key.test.js.map +1 -1
  99. package/dist/utils/signature.d.ts +2 -0
  100. package/dist/utils/signature.d.ts.map +1 -1
  101. package/dist/utils/signature.js +10 -5
  102. package/dist/utils/signature.js.map +1 -1
  103. package/dist/utils/signature.test.js +9 -9
  104. package/dist/utils/signature.test.js.map +1 -1
  105. package/masm/account_components/auth/multisig.masm +2 -3
  106. package/masm/account_components/auth/multisig_ecdsa.masm +2 -3
  107. package/masm/account_components/auth/multisig_guardian.masm +2 -3
  108. package/masm/account_components/auth/multisig_guardian_ecdsa.masm +2 -3
  109. package/masm/auth/guardian.masm +30 -8
  110. package/masm/auth/guardian_ecdsa.masm +24 -7
  111. package/masm/auth/multisig.masm +86 -55
  112. package/masm/auth/multisig_ecdsa.masm +86 -54
  113. package/package.json +3 -3
  114. package/src/account/builder.test.ts +16 -14
  115. package/src/account/builder.ts +13 -12
  116. package/src/account/masm/account-components/auth.ts +8 -12
  117. package/src/account/masm/auth.ts +226 -124
  118. package/src/account/storage.test.ts +90 -0
  119. package/src/account/storage.ts +27 -6
  120. package/src/client.test.ts +52 -8
  121. package/src/client.ts +39 -16
  122. package/src/index.ts +6 -12
  123. package/src/multisig/proposal/execution.ts +18 -14
  124. package/src/multisig.test.ts +17 -29
  125. package/src/multisig.ts +61 -36
  126. package/src/procedures.ts +8 -8
  127. package/src/raw-client.test.ts +133 -0
  128. package/src/raw-client.ts +75 -0
  129. package/src/signers/ecdsa.test.ts +35 -4
  130. package/src/signers/ecdsa.ts +18 -2
  131. package/src/signers/falcon.test.ts +50 -3
  132. package/src/signers/falcon.ts +18 -2
  133. package/src/transaction/consumeNotes.ts +16 -5
  134. package/src/transaction/options.ts +1 -0
  135. package/src/transaction/p2id.test.ts +19 -9
  136. package/src/transaction/p2id.ts +8 -13
  137. package/src/transaction/summary.ts +11 -4
  138. package/src/transaction/updateGuardian.ts +22 -14
  139. package/src/transaction/updateProcedureThreshold.ts +20 -15
  140. package/src/transaction/updateSigners.ts +22 -14
  141. package/src/transaction.test.ts +6 -6
  142. package/src/utils/key.test.ts +4 -2
  143. package/src/utils/key.ts +7 -3
  144. package/src/utils/signature.test.ts +10 -10
  145. package/src/utils/signature.ts +12 -5
@@ -41,7 +41,7 @@ vi.mock('@miden-sdk/miden-sdk', () => ({
41
41
  insert: vi.fn(),
42
42
  })),
43
43
  FeltArray: vi.fn().mockImplementation((arr) => arr),
44
- Rpo256: {
44
+ Poseidon2: {
45
45
  hashElements: vi.fn().mockReturnValue({
46
46
  toHex: () => '0x' + 'e'.repeat(64),
47
47
  }),
@@ -108,6 +108,9 @@ function mockedAccount(commitmentHex, nonce = 0) {
108
108
  commitment: () => ({
109
109
  toHex: () => commitmentHex,
110
110
  }),
111
+ to_commitment: () => ({
112
+ toHex: () => commitmentHex,
113
+ }),
111
114
  nonce: () => ({
112
115
  asInt: () => BigInt(nonce),
113
116
  }),
@@ -167,6 +170,11 @@ describe('Multisig', () => {
167
170
  proveTransaction: vi.fn(),
168
171
  submitProvenTransaction: vi.fn(),
169
172
  applyTransaction: vi.fn(),
173
+ submitNewTransaction: vi.fn(),
174
+ submitNewTransactionWithProver: vi.fn(),
175
+ transactions: {
176
+ submit: vi.fn(),
177
+ },
170
178
  getConsumableNotes: vi.fn().mockResolvedValue([]),
171
179
  syncState: vi.fn(),
172
180
  getAccount: vi.fn().mockResolvedValue(null),
@@ -310,11 +318,7 @@ describe('Multisig', () => {
310
318
  guardianCommitment: '0x' + 'c'.repeat(64),
311
319
  };
312
320
  const multisig = new Multisig(mockAccount, config, guardian, mockSigner, mockWebClient, undefined, 'https://rpc.devnet.miden.io');
313
- mockWebClient.getAccount.mockResolvedValueOnce({
314
- commitment: () => ({
315
- toHex: () => '0x' + 'b'.repeat(64),
316
- }),
317
- });
321
+ mockWebClient.getAccount.mockResolvedValueOnce(mockedAccount('0x' + 'b'.repeat(64), 0));
318
322
  mockFetch.mockResolvedValueOnce({
319
323
  ok: true,
320
324
  json: async () => ({
@@ -444,11 +448,7 @@ describe('Multisig', () => {
444
448
  signerCommitments: ['0x' + 'a'.repeat(64)],
445
449
  guardianCommitment: '0x' + 'c'.repeat(64),
446
450
  };
447
- mockWebClient.getAccount.mockResolvedValueOnce({
448
- commitment: () => ({
449
- toHex: () => '0x' + 'b'.repeat(64),
450
- }),
451
- });
451
+ mockWebClient.getAccount.mockResolvedValueOnce(mockedAccount('0x' + 'b'.repeat(64), 0));
452
452
  const multisigWithRpc = new Multisig(mockAccount, config, guardian, mockSigner, mockWebClient, undefined, 'https://rpc.devnet.miden.io');
453
453
  await expect(multisigWithRpc.verifyStateCommitment()).resolves.toMatchObject({
454
454
  accountId: multisigWithRpc.accountId,
@@ -470,11 +470,7 @@ describe('Multisig', () => {
470
470
  signerCommitments: ['0x' + 'a'.repeat(64)],
471
471
  guardianCommitment: '0x' + 'c'.repeat(64),
472
472
  };
473
- mockWebClient.getAccount.mockResolvedValueOnce({
474
- commitment: () => ({
475
- toHex: () => '0x' + 'f'.repeat(64),
476
- }),
477
- });
473
+ mockWebClient.getAccount.mockResolvedValueOnce(mockedAccount('0x' + 'f'.repeat(64), 0));
478
474
  mockRpcGetAccountDetails.mockResolvedValueOnce({
479
475
  commitment: () => ({
480
476
  toHex: () => '0x' + 'b'.repeat(64),
@@ -2288,11 +2284,9 @@ describe('Multisig', () => {
2288
2284
  ack_scheme: 'ecdsa',
2289
2285
  }),
2290
2286
  });
2291
- mockWebClient.executeTransaction.mockResolvedValueOnce({});
2292
- mockWebClient.proveTransaction.mockResolvedValueOnce({});
2293
- mockWebClient.submitProvenTransaction.mockResolvedValueOnce(1n);
2294
- mockWebClient.applyTransaction.mockResolvedValueOnce(undefined);
2287
+ mockWebClient.transactions.submit.mockResolvedValueOnce({});
2295
2288
  await expect(multisig.executeProposal(proposalId)).resolves.toBeUndefined();
2289
+ expect(mockWebClient.transactions.submit).toHaveBeenCalledTimes(1);
2296
2290
  expect(vi.mocked(signatureHexToBytes)).toHaveBeenNthCalledWith(1, cosignerSignature, 'ecdsa');
2297
2291
  expect(vi.mocked(signatureHexToBytes)).toHaveBeenNthCalledWith(2, ackSignature, 'ecdsa');
2298
2292
  expect(vi.mocked(buildSignatureAdviceEntry)).toHaveBeenNthCalledWith(1, expect.anything(), expect.anything(), expect.anything(), cosignerPubkey, cosignerSignature);
@@ -2373,10 +2367,7 @@ describe('Multisig', () => {
2373
2367
  ack_scheme: 'ecdsa',
2374
2368
  }),
2375
2369
  });
2376
- mockWebClient.executeTransaction.mockResolvedValueOnce({});
2377
- mockWebClient.proveTransaction.mockResolvedValueOnce({});
2378
- mockWebClient.submitProvenTransaction.mockResolvedValueOnce(1n);
2379
- mockWebClient.applyTransaction.mockResolvedValueOnce(undefined);
2370
+ mockWebClient.transactions.submit.mockResolvedValueOnce({});
2380
2371
  await expect(multisig.executeProposal(proposalId)).resolves.toBeUndefined();
2381
2372
  expect(vi.mocked(signatureHexToBytes)).toHaveBeenNthCalledWith(1, cosignerSignature, 'ecdsa');
2382
2373
  expect(vi.mocked(signatureHexToBytes)).toHaveBeenNthCalledWith(2, ackSignature, 'ecdsa');
@@ -2423,12 +2414,9 @@ describe('Multisig', () => {
2423
2414
  ok: true,
2424
2415
  json: async () => ({ success: true, message: 'ok', ack_pubkey: '0x' + 'f'.repeat(64) }),
2425
2416
  });
2426
- mockWebClient.executeTransaction.mockResolvedValueOnce({});
2427
- mockWebClient.proveTransaction.mockResolvedValueOnce({});
2428
- mockWebClient.submitProvenTransaction.mockResolvedValueOnce(1n);
2429
- mockWebClient.applyTransaction.mockResolvedValueOnce(undefined);
2417
+ mockWebClient.transactions.submit.mockResolvedValueOnce({});
2430
2418
  await expect(multisig.executeProposal(proposalId)).resolves.toBeUndefined();
2431
- expect(mockWebClient.executeTransaction).toHaveBeenCalledTimes(1);
2419
+ expect(mockWebClient.transactions.submit).toHaveBeenCalledTimes(1);
2432
2420
  });
2433
2421
  it('should reject switch_guardian execution when endpoint commitment mismatches', async () => {
2434
2422
  const config = {