@openzeppelin/miden-multisig-client 0.13.3 → 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 +10 -4
  38. package/dist/multisig.d.ts.map +1 -1
  39. package/dist/multisig.js +97 -71
  40. package/dist/multisig.js.map +1 -1
  41. package/dist/multisig.test.js +481 -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 +572 -29
  125. package/src/multisig.ts +121 -83
  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
@@ -1,4 +1,4 @@
1
- import { AccountId, AdviceMap, FeltArray, Signature, TransactionSummary, Word, } from '@miden-sdk/miden-sdk';
1
+ import { AdviceMap, FeltArray, Signature, TransactionSummary, Word, } from '@miden-sdk/miden-sdk';
2
2
  import { buildConsumeNotesTransactionRequest, buildP2idTransactionRequest, buildUpdateGuardianTransactionRequest, buildUpdateProcedureThresholdTransactionRequest, buildUpdateSignersTransactionRequest, } from '../../transaction.js';
3
3
  import { base64ToUint8Array, normalizeHexWord } from '../../utils/encoding.js';
4
4
  import { buildSignatureAdviceEntry, signatureHexToBytes, tryComputeEcdsaCommitmentHex, } from '../../utils/signature.js';
@@ -13,7 +13,7 @@ export async function executeProposalWorkflow(params) {
13
13
  await appendGuardianAckAdvice(params.guardian, executionSource.delta, params.guardianCommitment, params.guardianPublicKey, params.signatureScheme, executionData.txCommitmentHex, adviceMap);
14
14
  }
15
15
  const finalRequest = await buildFinalRequest(params, executionData.saltHex, adviceMap);
16
- await submitTransaction(params.webClient, params.accountId, finalRequest);
16
+ await submitTransaction(params.midenClient, params.accountId, finalRequest);
17
17
  }
18
18
  export async function createTransactionProposalRequest(params) {
19
19
  ensureProposalReady(params.proposal, params.threshold, params.getEffectiveThreshold);
@@ -118,14 +118,14 @@ async function buildFinalRequest(params, saltHex, adviceMap) {
118
118
  if (!metadata.noteIds || metadata.noteIds.length === 0) {
119
119
  throw new Error('Proposal missing noteIds. Was it created with createConsumeNotesProposal?');
120
120
  }
121
- const { request } = await buildConsumeNotesTransactionRequest(params.webClient, metadata.noteIds, { salt: normalizedSalt, signatureAdviceMap: adviceMap });
121
+ const { request } = await buildConsumeNotesTransactionRequest(params.midenClient, metadata.noteIds, { salt: normalizedSalt, signatureAdviceMap: adviceMap });
122
122
  return request;
123
123
  }
124
124
  case 'switch_guardian': {
125
125
  if (!metadata.newGuardianPubkey) {
126
126
  throw new Error('Proposal missing newGuardianPubkey. Was it created with createSwitchGuardianProposal?');
127
127
  }
128
- const { request } = await buildUpdateGuardianTransactionRequest(params.webClient, metadata.newGuardianPubkey, {
128
+ const { request } = await buildUpdateGuardianTransactionRequest(params.midenClient, metadata.newGuardianPubkey, {
129
129
  salt: normalizedSalt,
130
130
  signatureAdviceMap: adviceMap,
131
131
  signatureScheme: params.signatureScheme,
@@ -133,7 +133,7 @@ async function buildFinalRequest(params, saltHex, adviceMap) {
133
133
  return request;
134
134
  }
135
135
  case 'update_procedure_threshold': {
136
- const { request } = await buildUpdateProcedureThresholdTransactionRequest(params.webClient, metadata.targetProcedure, metadata.targetThreshold, {
136
+ const { request } = await buildUpdateProcedureThresholdTransactionRequest(params.midenClient, metadata.targetProcedure, metadata.targetThreshold, {
137
137
  salt: normalizedSalt,
138
138
  signatureAdviceMap: adviceMap,
139
139
  signatureScheme: params.signatureScheme,
@@ -150,7 +150,7 @@ async function buildFinalRequest(params, saltHex, adviceMap) {
150
150
  case 'unknown':
151
151
  throw new Error('Cannot execute proposal with unknown type. The proposal must have been imported without proper metadata.');
152
152
  default: {
153
- const { request } = await buildUpdateSignersTransactionRequest(params.webClient, metadata.targetThreshold, metadata.targetSignerCommitments, {
153
+ const { request } = await buildUpdateSignersTransactionRequest(params.midenClient, metadata.targetThreshold, metadata.targetSignerCommitments, {
154
154
  salt: normalizedSalt,
155
155
  signatureAdviceMap: adviceMap,
156
156
  signatureScheme: params.signatureScheme,
@@ -159,11 +159,7 @@ async function buildFinalRequest(params, saltHex, adviceMap) {
159
159
  }
160
160
  }
161
161
  }
162
- async function submitTransaction(webClient, accountIdHex, request) {
163
- const accountId = AccountId.fromHex(accountIdHex);
164
- const result = await webClient.executeTransaction(accountId, request);
165
- const proven = await webClient.proveTransaction(result, null);
166
- const submissionHeight = await webClient.submitProvenTransaction(proven, result);
167
- await webClient.applyTransaction(result, submissionHeight);
162
+ async function submitTransaction(midenClient, accountIdHex, request) {
163
+ await midenClient.transactions.submit(accountIdHex, request);
168
164
  }
169
165
  //# sourceMappingURL=execution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/multisig/proposal/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/multisig/proposal/execution.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  import { GuardianHttpClient, type Signer } from '@openzeppelin/guardian-client';
8
8
  import type { ConsumableNote, ExportedProposal, MultisigConfig, Proposal, ProposalMetadata, ProposalType } from './types.js';
9
9
  import type { ProcedureName } from './procedures.js';
10
- import type { WebClient } from '@miden-sdk/miden-sdk';
10
+ import type { MidenClient, TransactionRequest } from '@miden-sdk/miden-sdk';
11
11
  import { Account } from '@miden-sdk/miden-sdk';
12
12
  /**
13
13
  * Result of fetching account state from GUARDIAN.
@@ -39,12 +39,15 @@ export declare class Multisig {
39
39
  guardianPublicKey?: string;
40
40
  private guardian;
41
41
  private readonly signer;
42
- private readonly webClient;
42
+ private readonly midenClient;
43
+ private readonly rawClientPromise;
44
+ private readonly transactionProver;
43
45
  private readonly _accountId;
44
46
  private readonly midenRpcEndpoint?;
45
47
  private proposals;
46
- constructor(account: Account, config: MultisigConfig, guardian: GuardianHttpClient, signer: Signer, webClient: WebClient, accountId?: string, midenRpcEndpoint?: string);
48
+ constructor(account: Account, config: MultisigConfig, guardian: GuardianHttpClient, signer: Signer, midenClient: MidenClient, accountId?: string, midenRpcEndpoint?: string);
47
49
  private getMidenRpcEndpoint;
50
+ private getRawClient;
48
51
  private proposalFactory;
49
52
  private verifyGuardianEndpointCommitment;
50
53
  /** The account ID as a string */
@@ -76,7 +79,7 @@ export declare class Multisig {
76
79
  */
77
80
  fetchState(): Promise<AccountState>;
78
81
  /**
79
- * Sync account state from GUARDIAN into the local WebClient store.
82
+ * Sync account state from GUARDIAN into the local Miden client store.
80
83
  *
81
84
  * If the GUARDIAN commitment differs from the local commitment (or the account
82
85
  * is missing locally), the local store is overwritten with the GUARDIAN state.
@@ -176,12 +179,15 @@ export declare class Multisig {
176
179
  */
177
180
  signProposal(proposalId: string): Promise<Proposal>;
178
181
  private getProposalForSigning;
182
+ createTransactionProposalRequest(proposalId: string): Promise<TransactionRequest>;
179
183
  /**
180
184
  * Execute a proposal that has enough signatures.
181
185
  *
182
186
  * @param proposalId - The proposal commitment/ID
183
187
  */
184
188
  executeProposal(proposalId: string): Promise<void>;
189
+ private getLocalProposal;
190
+ private prepareProposalExecution;
185
191
  /**
186
192
  * Export a proposal for offline signing
187
193
  */
@@ -1 +1 @@
1
- {"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"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"}
package/dist/multisig.js CHANGED
@@ -15,6 +15,7 @@ import { AccountInspector } from './inspector.js';
15
15
  import { ProposalFactory } from './proposal/factory.js';
16
16
  import { ProposalMetadataCodec } from './proposal/metadata.js';
17
17
  import { ProposalSignatures } from './proposal/signatures.js';
18
+ import { getRawMidenClient, getTransactionProver } from './raw-client.js';
18
19
  /**
19
20
  * Represents a multisig account with GUARDIAN integration.
20
21
  */
@@ -27,11 +28,13 @@ export class Multisig {
27
28
  guardianPublicKey;
28
29
  guardian;
29
30
  signer;
30
- webClient;
31
+ midenClient;
32
+ rawClientPromise;
33
+ transactionProver;
31
34
  _accountId;
32
35
  midenRpcEndpoint;
33
36
  proposals = new Map();
34
- constructor(account, config, guardian, signer, webClient, accountId, midenRpcEndpoint) {
37
+ constructor(account, config, guardian, signer, midenClient, accountId, midenRpcEndpoint) {
35
38
  this.account = account;
36
39
  this.threshold = config.threshold;
37
40
  this.signerCommitments = config.signerCommitments;
@@ -40,9 +43,11 @@ export class Multisig {
40
43
  this.procedureThresholds = new Map((config.procedureThresholds ?? []).map((pt) => [pt.procedure, pt.threshold]));
41
44
  this.guardian = guardian;
42
45
  this.signer = signer;
43
- this.webClient = webClient;
46
+ this.midenClient = midenClient;
44
47
  this._accountId = accountId ?? (account ? accountIdToHex(account) : '');
45
48
  this.midenRpcEndpoint = midenRpcEndpoint;
49
+ this.rawClientPromise = getRawMidenClient(midenClient, midenRpcEndpoint);
50
+ this.transactionProver = getTransactionProver(midenClient);
46
51
  }
47
52
  getMidenRpcEndpoint() {
48
53
  if (!this.midenRpcEndpoint) {
@@ -50,6 +55,9 @@ export class Multisig {
50
55
  }
51
56
  return this.midenRpcEndpoint;
52
57
  }
58
+ async getRawClient() {
59
+ return this.rawClientPromise;
60
+ }
53
61
  proposalFactory() {
54
62
  return new ProposalFactory({
55
63
  accountId: this._accountId,
@@ -140,7 +148,7 @@ export class Multisig {
140
148
  };
141
149
  }
142
150
  /**
143
- * Sync account state from GUARDIAN into the local WebClient store.
151
+ * Sync account state from GUARDIAN into the local Miden client store.
144
152
  *
145
153
  * If the GUARDIAN commitment differs from the local commitment (or the account
146
154
  * is missing locally), the local store is overwritten with the GUARDIAN state.
@@ -148,17 +156,18 @@ export class Multisig {
148
156
  async syncState() {
149
157
  const state = await this.fetchState();
150
158
  const accountId = AccountId.fromHex(this._accountId);
151
- const localAccount = await this.webClient.getAccount(accountId);
159
+ const webClient = await this.getRawClient();
160
+ const localAccount = await webClient.getAccount(accountId);
152
161
  let accountForConfigRefresh = localAccount ?? null;
153
162
  const guardianCommitment = normalizeHexWord(state.commitment);
154
163
  const localCommitment = localAccount
155
- ? normalizeHexWord(localAccount.commitment().toHex())
164
+ ? normalizeHexWord(localAccount.to_commitment().toHex())
156
165
  : null;
157
166
  if (!localAccount || localCommitment !== guardianCommitment) {
158
167
  const accountBytes = base64ToUint8Array(state.stateDataBase64);
159
168
  const incomingAccount = Account.deserialize(accountBytes);
160
169
  await this.ensureSafeToOverwriteLocalState(incomingAccount, localAccount);
161
- await this.webClient.newAccount(incomingAccount, true);
170
+ await webClient.newAccount(incomingAccount, true);
162
171
  accountForConfigRefresh = incomingAccount;
163
172
  }
164
173
  this.refreshConfigFromAccount(accountForConfigRefresh);
@@ -166,11 +175,12 @@ export class Multisig {
166
175
  }
167
176
  async verifyStateCommitment() {
168
177
  const accountId = AccountId.fromHex(this._accountId);
169
- const localAccount = await this.webClient.getAccount(accountId);
178
+ const webClient = await this.getRawClient();
179
+ const localAccount = await webClient.getAccount(accountId);
170
180
  if (!localAccount) {
171
181
  throw new Error(`Local account state not found for account ${this._accountId}. Sync the account before verifying.`);
172
182
  }
173
- const localCommitment = normalizeHexWord(localAccount.commitment().toHex());
183
+ const localCommitment = normalizeHexWord(localAccount.to_commitment().toHex());
174
184
  const onChainCommitment = await this.getOnChainCommitment(accountId);
175
185
  if (!onChainCommitment) {
176
186
  throw new Error(`On-chain account details not found for account ${this._accountId}`);
@@ -197,7 +207,7 @@ export class Multisig {
197
207
  if (!onChainCommitment) {
198
208
  return;
199
209
  }
200
- const incomingCommitment = normalizeHexWord(incomingAccount.commitment().toHex());
210
+ const incomingCommitment = normalizeHexWord(incomingAccount.to_commitment().toHex());
201
211
  if (incomingCommitment !== onChainCommitment) {
202
212
  throw new Error(`Refusing to overwrite local state: incoming commitment does not match on-chain commitment for account ${this._accountId}`);
203
213
  }
@@ -328,10 +338,11 @@ export class Multisig {
328
338
  * @param newThreshold - Optional new threshold (defaults to current threshold)
329
339
  */
330
340
  async createAddSignerProposal(newCommitment, nonce, newThreshold) {
341
+ const webClient = await this.getRawClient();
331
342
  const targetThreshold = newThreshold ?? this.threshold;
332
343
  const targetSignerCommitments = [...this.signerCommitments, newCommitment];
333
- const { request, salt } = await buildUpdateSignersTransactionRequest(this.webClient, targetThreshold, targetSignerCommitments, { signatureScheme: this.signer.scheme });
334
- const summary = await executeForSummary(this.webClient, this._accountId, request);
344
+ const { request, salt } = await buildUpdateSignersTransactionRequest(webClient, targetThreshold, targetSignerCommitments, { signatureScheme: this.signer.scheme });
345
+ const summary = await executeForSummary(webClient, this._accountId, request);
335
346
  const summaryBase64 = uint8ArrayToBase64(summary.serialize());
336
347
  const proposalNonce = nonce ?? Date.now();
337
348
  const metadata = {
@@ -352,6 +363,7 @@ export class Multisig {
352
363
  * @param newThreshold - Optional new threshold (defaults to min of current threshold and new signer count)
353
364
  */
354
365
  async createRemoveSignerProposal(signerToRemove, nonce, newThreshold) {
366
+ const webClient = await this.getRawClient();
355
367
  const normalizedRemove = signerToRemove.toLowerCase();
356
368
  const targetSignerCommitments = this.signerCommitments.filter((c) => c.toLowerCase() !== normalizedRemove);
357
369
  if (targetSignerCommitments.length === this.signerCommitments.length) {
@@ -364,8 +376,8 @@ export class Multisig {
364
376
  if (targetThreshold < 1 || targetThreshold > targetSignerCommitments.length) {
365
377
  throw new Error(`Invalid threshold ${targetThreshold}. Must be between 1 and ${targetSignerCommitments.length}`);
366
378
  }
367
- const { request, salt } = await buildUpdateSignersTransactionRequest(this.webClient, targetThreshold, targetSignerCommitments, { signatureScheme: this.signer.scheme });
368
- const summary = await executeForSummary(this.webClient, this._accountId, request);
379
+ const { request, salt } = await buildUpdateSignersTransactionRequest(webClient, targetThreshold, targetSignerCommitments, { signatureScheme: this.signer.scheme });
380
+ const summary = await executeForSummary(webClient, this._accountId, request);
369
381
  const summaryBase64 = uint8ArrayToBase64(summary.serialize());
370
382
  const proposalNonce = nonce ?? Date.now();
371
383
  const metadata = {
@@ -385,14 +397,15 @@ export class Multisig {
385
397
  * @param nonce - Optional proposal nonce (defaults to Date.now())
386
398
  */
387
399
  async createChangeThresholdProposal(newThreshold, nonce) {
400
+ const webClient = await this.getRawClient();
388
401
  if (newThreshold < 1 || newThreshold > this.signerCommitments.length) {
389
402
  throw new Error(`Invalid threshold ${newThreshold}. Must be between 1 and ${this.signerCommitments.length}`);
390
403
  }
391
404
  if (newThreshold === this.threshold) {
392
405
  throw new Error('New threshold is the same as current threshold');
393
406
  }
394
- const { request, salt } = await buildUpdateSignersTransactionRequest(this.webClient, newThreshold, this.signerCommitments, { signatureScheme: this.signer.scheme });
395
- const summary = await executeForSummary(this.webClient, this._accountId, request);
407
+ const { request, salt } = await buildUpdateSignersTransactionRequest(webClient, newThreshold, this.signerCommitments, { signatureScheme: this.signer.scheme });
408
+ const summary = await executeForSummary(webClient, this._accountId, request);
396
409
  const summaryBase64 = uint8ArrayToBase64(summary.serialize());
397
410
  const proposalNonce = nonce ?? Date.now();
398
411
  const metadata = {
@@ -406,6 +419,7 @@ export class Multisig {
406
419
  return this.createProposal(proposalNonce, summaryBase64, metadata);
407
420
  }
408
421
  async createUpdateProcedureThresholdProposal(targetProcedure, targetThreshold, nonce) {
422
+ const webClient = await this.getRawClient();
409
423
  if (targetThreshold < 0 || targetThreshold > this.signerCommitments.length) {
410
424
  throw new Error(`Invalid threshold ${targetThreshold}. Must be between 0 and ${this.signerCommitments.length}`);
411
425
  }
@@ -416,8 +430,8 @@ export class Multisig {
416
430
  if (currentOverride !== undefined && currentOverride === targetThreshold) {
417
431
  throw new Error(`Procedure ${targetProcedure} already has threshold override ${targetThreshold}`);
418
432
  }
419
- const { request, salt } = await buildUpdateProcedureThresholdTransactionRequest(this.webClient, targetProcedure, targetThreshold, { signatureScheme: this.signer.scheme });
420
- const summary = await executeForSummary(this.webClient, this._accountId, request);
433
+ const { request, salt } = await buildUpdateProcedureThresholdTransactionRequest(webClient, targetProcedure, targetThreshold, { signatureScheme: this.signer.scheme });
434
+ const summary = await executeForSummary(webClient, this._accountId, request);
421
435
  const summaryBase64 = uint8ArrayToBase64(summary.serialize());
422
436
  const proposalNonce = nonce ?? Date.now();
423
437
  const action = targetThreshold === 0
@@ -441,9 +455,10 @@ export class Multisig {
441
455
  * @param nonce - Optional proposal nonce (defaults to Date.now())
442
456
  */
443
457
  async createSwitchGuardianProposal(newGuardianEndpoint, newGuardianPubkey, nonce) {
458
+ const webClient = await this.getRawClient();
444
459
  await this.verifyGuardianEndpointCommitment(newGuardianEndpoint, newGuardianPubkey);
445
- const { request, salt } = await buildUpdateGuardianTransactionRequest(this.webClient, newGuardianPubkey, { signatureScheme: this.signer.scheme });
446
- const summary = await executeForSummary(this.webClient, this._accountId, request);
460
+ const { request, salt } = await buildUpdateGuardianTransactionRequest(webClient, newGuardianPubkey, { signatureScheme: this.signer.scheme });
461
+ const summary = await executeForSummary(webClient, this._accountId, request);
447
462
  const summaryBase64 = uint8ArrayToBase64(summary.serialize());
448
463
  const proposalNonce = nonce ?? Date.now();
449
464
  const metadata = {
@@ -474,11 +489,12 @@ export class Multisig {
474
489
  * @param nonce - Optional proposal nonce (defaults to Date.now())
475
490
  */
476
491
  async createConsumeNotesProposal(noteIds, nonce) {
492
+ const webClient = await this.getRawClient();
477
493
  if (noteIds.length === 0) {
478
494
  throw new Error('At least one note ID is required');
479
495
  }
480
- const { request, salt } = await buildConsumeNotesTransactionRequest(this.webClient, noteIds);
481
- const summary = await executeForSummary(this.webClient, this._accountId, request);
496
+ const { request, salt } = await buildConsumeNotesTransactionRequest(webClient, noteIds);
497
+ const summary = await executeForSummary(webClient, this._accountId, request);
482
498
  const summaryBase64 = uint8ArrayToBase64(summary.serialize());
483
499
  const proposalNonce = nonce ?? Date.now();
484
500
  const metadata = {
@@ -499,11 +515,12 @@ export class Multisig {
499
515
  * @param nonce - Optional proposal nonce (defaults to Date.now())
500
516
  */
501
517
  async createP2idProposal(recipientId, faucetId, amount, nonce) {
518
+ const webClient = await this.getRawClient();
502
519
  if (amount <= 0n) {
503
520
  throw new Error('Amount must be greater than 0');
504
521
  }
505
522
  const { request, salt } = buildP2idTransactionRequest(this._accountId, recipientId, faucetId, amount);
506
- const summary = await executeForSummary(this.webClient, this._accountId, request);
523
+ const summary = await executeForSummary(webClient, this._accountId, request);
507
524
  const summaryBase64 = uint8ArrayToBase64(summary.serialize());
508
525
  const proposalNonce = nonce ?? Date.now();
509
526
  const metadata = {
@@ -525,8 +542,9 @@ export class Multisig {
525
542
  */
526
543
  async getConsumableNotes() {
527
544
  const accountId = AccountId.fromHex(this._accountId);
545
+ const webClient = await this.getRawClient();
528
546
  // Get consumable notes for this account
529
- const consumableRecords = await this.webClient.getConsumableNotes(accountId);
547
+ const consumableRecords = await webClient.getConsumableNotes(accountId);
530
548
  // Convert to our simplified ConsumableNote type
531
549
  const notes = [];
532
550
  for (const record of consumableRecords) {
@@ -589,43 +607,81 @@ export class Multisig {
589
607
  await this.syncProposals();
590
608
  return this.proposals.get(proposalId) ?? this.proposals.get(normalizedProposalId);
591
609
  }
610
+ async createTransactionProposalRequest(proposalId) {
611
+ const { finalRequest } = await this.prepareProposalExecution(proposalId);
612
+ return finalRequest;
613
+ }
592
614
  /**
593
615
  * Execute a proposal that has enough signatures.
594
616
  *
595
617
  * @param proposalId - The proposal commitment/ID
596
618
  */
597
619
  async executeProposal(proposalId) {
598
- const proposal = this.proposals.get(proposalId);
620
+ const { metadata, finalRequest, proposal } = await this.prepareProposalExecution(proposalId);
621
+ const accountId = AccountId.fromHex(this._accountId);
622
+ await this.midenClient.transactions.submit(accountId, finalRequest);
623
+ if (metadata.proposalType === 'switch_guardian') {
624
+ if (!metadata.newGuardianEndpoint || !metadata.newGuardianPubkey) {
625
+ throw new Error('Switch GUARDIAN proposal metadata is incomplete after execution');
626
+ }
627
+ try {
628
+ const webClient = await this.getRawClient();
629
+ await webClient.syncState();
630
+ const updatedAccount = await webClient.getAccount(accountId);
631
+ if (!updatedAccount) {
632
+ throw new Error(`Updated account ${this._accountId} is missing from local client`);
633
+ }
634
+ const updatedStateBase64 = uint8ArrayToBase64(updatedAccount.serialize());
635
+ const nextGuardian = new GuardianHttpClient(metadata.newGuardianEndpoint);
636
+ this.setGuardianClient(nextGuardian);
637
+ this.guardianPublicKey = metadata.newGuardianPubkey;
638
+ await this.registerOnGuardian(updatedStateBase64);
639
+ }
640
+ catch (error) {
641
+ const message = error instanceof Error ? error.message : String(error);
642
+ throw new Error(`Transaction executed successfully but failed to register on new GUARDIAN: ${message}`);
643
+ }
644
+ }
645
+ proposal.status = 'finalized';
646
+ }
647
+ getLocalProposal(proposalId) {
648
+ const normalizedProposalId = normalizeHexWord(proposalId);
649
+ return this.proposals.get(proposalId) ?? this.proposals.get(normalizedProposalId);
650
+ }
651
+ async prepareProposalExecution(proposalId) {
652
+ const proposal = this.getLocalProposal(proposalId);
599
653
  if (!proposal) {
600
654
  throw new Error(`Proposal not found: ${proposalId}`);
601
655
  }
656
+ this.proposalFactory().assertAccountId(proposal.accountId);
602
657
  await this.verifyProposalMetadataBinding(proposal);
603
- const proposalType = proposal.metadata?.proposalType;
604
- const effectiveThreshold = proposalType
605
- ? this.getEffectiveThreshold(proposalType)
606
- : this.threshold;
658
+ const metadata = proposal.metadata;
659
+ const effectiveThreshold = this.getEffectiveThreshold(metadata.proposalType);
607
660
  const signatureContext = `Invalid proposal signatures for ${proposalId}`;
608
661
  const signaturesForExecution = new ProposalSignatures(proposal.signatures, this.signerCommitments, signatureContext).entries();
609
662
  if (signaturesForExecution.length < effectiveThreshold) {
610
663
  throw new Error('Proposal is not ready for execution. Still pending signatures.');
611
664
  }
612
- const isSwitchGuardian = proposalType === 'switch_guardian';
665
+ const isSwitchGuardian = metadata.proposalType === 'switch_guardian';
666
+ const normalizedProposalId = normalizeHexWord(proposal.id);
613
667
  let txSummaryBase64;
614
668
  let delta;
615
669
  if (isSwitchGuardian) {
616
670
  txSummaryBase64 = proposal.txSummary;
617
671
  }
618
672
  else {
619
- delta = await this.guardian.getDeltaProposal(this._accountId, proposalId);
673
+ delta = await this.guardian.getDeltaProposal(this._accountId, normalizedProposalId);
620
674
  txSummaryBase64 = delta.deltaPayload.txSummary.data;
621
675
  }
622
676
  const txSummaryBytes = base64ToUint8Array(txSummaryBase64);
623
677
  const txSummary = TransactionSummary.deserialize(txSummaryBytes);
624
678
  const saltHex = txSummary.salt().toHex();
625
679
  const txCommitmentHex = txSummary.toCommitment().toHex();
680
+ const normalizedTxCommitmentHex = normalizeHexWord(txCommitmentHex);
626
681
  const normalizedSignerCommitments = new Set(this.signerCommitments.map((commitment) => normalizeHexWord(commitment)));
627
682
  const adviceMap = new AdviceMap();
628
683
  const adviceMapKeys = new Set();
684
+ const createTxCommitmentWord = () => Word.fromHex(normalizedTxCommitmentHex);
629
685
  for (const cosignerSig of signaturesForExecution) {
630
686
  let signerCommitmentHex = normalizeHexWord(cosignerSig.signerId);
631
687
  const ecdsaPublicKey = cosignerSig.signature.scheme === 'ecdsa'
@@ -646,8 +702,7 @@ export class Multisig {
646
702
  const signerCommitment = Word.fromHex(signerCommitmentHex);
647
703
  const sigBytes = signatureHexToBytes(cosignerSig.signature.signature, cosignerSig.signature.scheme);
648
704
  const signature = Signature.deserialize(sigBytes);
649
- const txCommitment = Word.fromHex(normalizeHexWord(txCommitmentHex));
650
- const { key, values } = buildSignatureAdviceEntry(signerCommitment, txCommitment, signature, ecdsaPublicKey, cosignerSig.signature.scheme === 'ecdsa'
705
+ const { key, values } = buildSignatureAdviceEntry(signerCommitment, createTxCommitmentWord(), signature, ecdsaPublicKey, cosignerSig.signature.scheme === 'ecdsa'
651
706
  ? cosignerSig.signature.signature
652
707
  : undefined);
653
708
  const keyHex = normalizeHexWord(key.toHex());
@@ -681,8 +736,7 @@ export class Multisig {
681
736
  }
682
737
  const ackSigBytes = signatureHexToBytes(ackSigHex, ackScheme);
683
738
  const ackSignature = Signature.deserialize(ackSigBytes);
684
- const txCommitmentForAck = Word.fromHex(normalizeHexWord(txCommitmentHex));
685
- const { key: ackKey, values: ackValues } = buildSignatureAdviceEntry(guardianCommitment, txCommitmentForAck, ackSignature, ackScheme === 'ecdsa' ? ackPubkey : undefined, ackScheme === 'ecdsa' ? ackSigHex : undefined);
739
+ const { key: ackKey, values: ackValues } = buildSignatureAdviceEntry(guardianCommitment, createTxCommitmentWord(), ackSignature, ackScheme === 'ecdsa' ? ackPubkey : undefined, ackScheme === 'ecdsa' ? ackSigHex : undefined);
686
740
  const ackKeyHex = normalizeHexWord(ackKey.toHex());
687
741
  if (adviceMapKeys.has(ackKeyHex)) {
688
742
  throw new Error(`Duplicate advice-map key detected for GUARDIAN acknowledgment in proposal ${proposalId}`);
@@ -690,42 +744,12 @@ export class Multisig {
690
744
  adviceMapKeys.add(ackKeyHex);
691
745
  adviceMap.insert(ackKey, new FeltArray(ackValues));
692
746
  }
693
- const metadata = proposal.metadata;
694
- if (!metadata) {
695
- throw new Error('Proposal missing metadata');
696
- }
697
747
  if (metadata.proposalType === 'switch_guardian') {
698
748
  await this.verifyGuardianEndpointCommitment(metadata.newGuardianEndpoint, metadata.newGuardianPubkey);
699
749
  }
700
750
  const executionSalt = Word.fromHex(normalizeHexWord(saltHex));
701
751
  const finalRequest = await this.buildTransactionRequestFromMetadata(metadata, executionSalt, adviceMap);
702
- const accountId = AccountId.fromHex(this._accountId);
703
- const result = await this.webClient.executeTransaction(accountId, finalRequest);
704
- const proven = await this.webClient.proveTransaction(result, null);
705
- const submissionHeight = await this.webClient.submitProvenTransaction(proven, result);
706
- await this.webClient.applyTransaction(result, submissionHeight);
707
- if (metadata.proposalType === 'switch_guardian') {
708
- if (!metadata.newGuardianEndpoint || !metadata.newGuardianPubkey) {
709
- throw new Error('Switch GUARDIAN proposal metadata is incomplete after execution');
710
- }
711
- try {
712
- await this.webClient.syncState();
713
- const updatedAccount = await this.webClient.getAccount(accountId);
714
- if (!updatedAccount) {
715
- throw new Error(`Updated account ${this._accountId} is missing from local client`);
716
- }
717
- const updatedStateBase64 = uint8ArrayToBase64(updatedAccount.serialize());
718
- const nextGuardian = new GuardianHttpClient(metadata.newGuardianEndpoint);
719
- this.setGuardianClient(nextGuardian);
720
- this.guardianPublicKey = metadata.newGuardianPubkey;
721
- await this.registerOnGuardian(updatedStateBase64);
722
- }
723
- catch (error) {
724
- const message = error instanceof Error ? error.message : String(error);
725
- throw new Error(`Transaction executed successfully but failed to register on new GUARDIAN: ${message}`);
726
- }
727
- }
728
- proposal.status = 'finalized';
752
+ return { finalRequest, metadata, proposal };
729
753
  }
730
754
  /**
731
755
  * Export a proposal for offline signing
@@ -864,7 +888,8 @@ export class Multisig {
864
888
  ? Word.fromHex(normalizeHexWord(proposal.metadata.saltHex))
865
889
  : summary.salt();
866
890
  const request = await this.buildTransactionRequestFromMetadata(proposal.metadata, salt);
867
- const reconstructed = await executeForSummary(this.webClient, this._accountId, request);
891
+ const webClient = await this.getRawClient();
892
+ const reconstructed = await executeForSummary(webClient, this._accountId, request);
868
893
  const reconstructedCommitment = normalizeHexWord(reconstructed.toCommitment().toHex());
869
894
  if (reconstructedCommitment !== txSummaryCommitment) {
870
895
  throw new Error(`Invalid proposal: metadata does not match tx_summary for ${proposal.id}`);
@@ -872,23 +897,24 @@ export class Multisig {
872
897
  return txSummaryCommitment;
873
898
  }
874
899
  async buildTransactionRequestFromMetadata(metadata, salt, signatureAdviceMap) {
900
+ const webClient = await this.getRawClient();
875
901
  switch (metadata.proposalType) {
876
902
  case 'add_signer':
877
903
  case 'remove_signer':
878
904
  case 'change_threshold': {
879
- const { request } = await buildUpdateSignersTransactionRequest(this.webClient, metadata.targetThreshold, metadata.targetSignerCommitments, { salt, signatureAdviceMap, signatureScheme: this.signer.scheme });
905
+ const { request } = await buildUpdateSignersTransactionRequest(webClient, metadata.targetThreshold, metadata.targetSignerCommitments, { salt, signatureAdviceMap, signatureScheme: this.signer.scheme });
880
906
  return request;
881
907
  }
882
908
  case 'switch_guardian': {
883
- const { request } = await buildUpdateGuardianTransactionRequest(this.webClient, metadata.newGuardianPubkey, { salt, signatureAdviceMap, signatureScheme: this.signer.scheme });
909
+ const { request } = await buildUpdateGuardianTransactionRequest(webClient, metadata.newGuardianPubkey, { salt, signatureAdviceMap, signatureScheme: this.signer.scheme });
884
910
  return request;
885
911
  }
886
912
  case 'update_procedure_threshold': {
887
- const { request } = await buildUpdateProcedureThresholdTransactionRequest(this.webClient, metadata.targetProcedure, metadata.targetThreshold, { salt, signatureAdviceMap, signatureScheme: this.signer.scheme });
913
+ const { request } = await buildUpdateProcedureThresholdTransactionRequest(webClient, metadata.targetProcedure, metadata.targetThreshold, { salt, signatureAdviceMap, signatureScheme: this.signer.scheme });
888
914
  return request;
889
915
  }
890
916
  case 'consume_notes': {
891
- const { request } = await buildConsumeNotesTransactionRequest(this.webClient, metadata.noteIds, { salt, signatureAdviceMap });
917
+ const { request } = await buildConsumeNotesTransactionRequest(webClient, metadata.noteIds, { salt, signatureAdviceMap });
892
918
  return request;
893
919
  }
894
920
  case 'p2id': {