@openzeppelin/miden-multisig-client 0.18.0-rc.1 → 0.18.0-rc.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.
- package/README.md +71 -17
- package/dist/account/builder.d.ts +3 -4
- package/dist/account/builder.d.ts.map +1 -1
- package/dist/account/builder.js +6 -13
- package/dist/account/builder.js.map +1 -1
- package/dist/client.d.ts +11 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -3
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/multisig/authArgErrors.d.ts +15 -1
- package/dist/multisig/authArgErrors.d.ts.map +1 -1
- package/dist/multisig/authArgErrors.js +20 -0
- package/dist/multisig/authArgErrors.js.map +1 -1
- package/dist/multisig.d.ts +76 -25
- package/dist/multisig.d.ts.map +1 -1
- package/dist/multisig.js +196 -156
- package/dist/multisig.js.map +1 -1
- package/dist/procedures.d.ts +5 -5
- package/dist/procedures.js +5 -5
- package/dist/prover/workflow.d.ts +7 -3
- package/dist/prover/workflow.d.ts.map +1 -1
- package/dist/prover/workflow.js +7 -5
- package/dist/prover/workflow.js.map +1 -1
- package/dist/recovery/proposalNoteImport.d.ts +5 -6
- package/dist/recovery/proposalNoteImport.d.ts.map +1 -1
- package/dist/recovery/proposalNoteImport.js +12 -13
- package/dist/recovery/proposalNoteImport.js.map +1 -1
- package/dist/recovery/publicNoteBackfill.d.ts +2 -3
- package/dist/recovery/publicNoteBackfill.d.ts.map +1 -1
- package/dist/recovery/publicNoteBackfill.js +4 -5
- package/dist/recovery/publicNoteBackfill.js.map +1 -1
- package/dist/transaction/authArgs.d.ts +2 -3
- package/dist/transaction/authArgs.d.ts.map +1 -1
- package/dist/transaction/authArgs.js +7 -14
- package/dist/transaction/authArgs.js.map +1 -1
- package/dist/transaction/consumeNotes.d.ts +4 -12
- package/dist/transaction/consumeNotes.d.ts.map +1 -1
- package/dist/transaction/consumeNotes.js +10 -4
- package/dist/transaction/consumeNotes.js.map +1 -1
- package/dist/transaction/noteAuthentication.d.ts +2 -3
- package/dist/transaction/noteAuthentication.d.ts.map +1 -1
- package/dist/transaction/noteAuthentication.js +11 -11
- package/dist/transaction/noteAuthentication.js.map +1 -1
- package/dist/transaction/options.d.ts +0 -7
- package/dist/transaction/options.d.ts.map +1 -1
- package/dist/transaction/p2id.d.ts +2 -3
- package/dist/transaction/p2id.d.ts.map +1 -1
- package/dist/transaction/p2id.js.map +1 -1
- package/dist/transaction/summary.d.ts +94 -22
- package/dist/transaction/summary.d.ts.map +1 -1
- package/dist/transaction/summary.js +146 -12
- package/dist/transaction/summary.js.map +1 -1
- package/dist/transaction/updateGuardian.d.ts +3 -7
- package/dist/transaction/updateGuardian.d.ts.map +1 -1
- package/dist/transaction/updateGuardian.js +3 -4
- package/dist/transaction/updateGuardian.js.map +1 -1
- package/dist/transaction/updateProcedureThreshold.d.ts +3 -8
- package/dist/transaction/updateProcedureThreshold.d.ts.map +1 -1
- package/dist/transaction/updateProcedureThreshold.js +3 -4
- package/dist/transaction/updateProcedureThreshold.js.map +1 -1
- package/dist/transaction/updateSigners.d.ts +3 -8
- package/dist/transaction/updateSigners.d.ts.map +1 -1
- package/dist/transaction/updateSigners.js +3 -4
- package/dist/transaction/updateSigners.js.map +1 -1
- package/dist/transaction.d.ts +1 -1
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +1 -1
- package/dist/transaction.js.map +1 -1
- package/dist/types/proposal.d.ts +9 -8
- package/dist/types/proposal.d.ts.map +1 -1
- package/dist/types/proposal.js.map +1 -1
- package/package.json +4 -4
- package/src/account/builder.ts +6 -13
- package/src/client.ts +13 -10
- package/src/config.ts +14 -0
- package/src/index.ts +5 -3
- package/src/multisig/authArgErrors.ts +28 -1
- package/src/multisig.ts +238 -194
- package/src/procedures.ts +5 -5
- package/src/prover/workflow.ts +7 -10
- package/src/recovery/proposalNoteImport.ts +13 -15
- package/src/recovery/publicNoteBackfill.ts +6 -6
- package/src/transaction/authArgs.ts +15 -21
- package/src/transaction/consumeNotes.ts +6 -34
- package/src/transaction/noteAuthentication.ts +18 -13
- package/src/transaction/options.ts +0 -9
- package/src/transaction/p2id.ts +2 -3
- package/src/transaction/summary.ts +160 -57
- package/src/transaction/updateGuardian.ts +5 -23
- package/src/transaction/updateProcedureThreshold.ts +5 -25
- package/src/transaction/updateSigners.ts +5 -22
- package/src/transaction.ts +6 -0
- package/src/types/proposal.ts +9 -8
- package/dist/raw-client.d.ts +0 -14
- package/dist/raw-client.d.ts.map +0 -1
- package/dist/raw-client.js +0 -60
- package/dist/raw-client.js.map +0 -1
- package/src/raw-client.ts +0 -89
package/dist/types/proposal.d.ts
CHANGED
|
@@ -30,11 +30,11 @@ interface BaseProposalMetadata {
|
|
|
30
30
|
saltHex?: string;
|
|
31
31
|
requiredSignatures?: number;
|
|
32
32
|
/**
|
|
33
|
-
* Base64-serialized Miden `ChainAnchor`
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
33
|
+
* Base64-serialized Miden `ChainAnchor` at the block the proposal's
|
|
34
|
+
* transaction summary binds, the proposer's sync height when it built the
|
|
35
|
+
* request. Required, and checked against the summary's block commitment: a
|
|
36
|
+
* rebuild binds the block it names. The proposal executes at the chain tip,
|
|
37
|
+
* not at the anchor; 0.18.0-rc.1 clients still re-execute at it.
|
|
38
38
|
*/
|
|
39
39
|
chainAnchor?: string;
|
|
40
40
|
}
|
|
@@ -125,9 +125,10 @@ export interface Proposal {
|
|
|
125
125
|
/**
|
|
126
126
|
* Outcome of checking a proposal's metadata against its signed summary.
|
|
127
127
|
* `failed.retryable` is true when the failure came from a transient node or
|
|
128
|
-
* RPC error,
|
|
129
|
-
* proposal
|
|
130
|
-
*
|
|
128
|
+
* RPC error, or from chain state this client had not caught up with, so the
|
|
129
|
+
* same proposal may verify on a later sync; false when the proposal itself
|
|
130
|
+
* cannot be reproduced (tampered metadata, for example) and it has to be
|
|
131
|
+
* re-proposed.
|
|
131
132
|
*/
|
|
132
133
|
export type ProposalVerification = {
|
|
133
134
|
status: 'unchecked';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../src/types/proposal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,4BAA4B,GAC5B,iBAAiB,GACjB,eAAe,GACf,MAAM,GACN,QAAQ,CAAC;AAEb,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AAE/D,MAAM,MAAM,yBAAyB,GACjC;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,iBAAiB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,4BAA4B,GAAG,sBAAsB,CAAC;AAElE,UAAU,oBAAoB;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;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,8BAA+B,SAAQ,oBAAoB;IAC1E,YAAY,EAAE,iBAAiB,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,wCAAyC,SAAQ,oBAAoB;IACpF,YAAY,EAAE,4BAA4B,CAAC;IAC3C,eAAe,EAAE,aAAa,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,gFAAgF;AAChF,eAAO,MAAM,iCAAiC,EAAG,CAAU,CAAC;AAE5D,iEAAiE;AACjE,eAAO,MAAM,gCAAgC,QAAa,CAAC;AAE3D,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IACxE,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAE1E;AAED,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAED,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,aAAc,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,GAAG,gBAAgB,EACzC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAUpB;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;IACf,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,YAAY,EAAE,QAAQ,CAAC;IACvB,4EAA4E;IAC5E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GACxB,6BAA6B,GAC7B,8BAA8B,GAC9B,wCAAwC,GACxC,4BAA4B,GAC5B,oBAAoB,GACpB,sBAAsB,CAAC;AAE3B,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;IAC3B;;;;;;OAMG;IACH,YAAY,EAAE,oBAAoB,CAAC;CACpC;AAED
|
|
1
|
+
{"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../src/types/proposal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../src/types/proposal.ts"],"names":[],"mappings":"AAqEA,gFAAgF;AAChF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAU,CAAC;AAE5D,iEAAiE;AACjE,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,GAAG,IAAI,CAAC;AAW3D,MAAM,UAAU,gBAAgB,CAAC,EAAgC;IAC/D,OAAO,EAAE,CAAC,eAAe,KAAK,iCAAiC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAgC;IAC/D,OAAO,EAAE,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,CAAC,eAAe,KAAK,CAAC,CAAC;AACtE,CAAC;AAKD,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAyC,EACzC,KAAyB;IAEzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,sBAAsB,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,eAAe,KAAK,KAAK,KAAK,wCAAwC,sBAAsB,EAAE,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;
|
|
1
|
+
{"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../src/types/proposal.ts"],"names":[],"mappings":"AAqEA,gFAAgF;AAChF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAU,CAAC;AAE5D,iEAAiE;AACjE,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,GAAG,IAAI,CAAC;AAW3D,MAAM,UAAU,gBAAgB,CAAC,EAAgC;IAC/D,OAAO,EAAE,CAAC,eAAe,KAAK,iCAAiC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAgC;IAC/D,OAAO,EAAE,CAAC,eAAe,KAAK,SAAS,IAAI,EAAE,CAAC,eAAe,KAAK,CAAC,CAAC;AACtE,CAAC;AAKD,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAyC,EACzC,KAAyB;IAEzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,sBAAsB,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,eAAe,KAAK,KAAK,KAAK,wCAAwC,sBAAsB,EAAE,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAiED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAkB;IACrD,OAAO,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC;AACpF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/miden-multisig-client",
|
|
3
|
-
"version": "0.18.0-rc.
|
|
3
|
+
"version": "0.18.0-rc.3",
|
|
4
4
|
"description": "TypeScript SDK for Miden multisig accounts with GUARDIAN integration",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -42,13 +42,13 @@
|
|
|
42
42
|
"test:qualification": "vitest run --config vitest.qualification.config.ts"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@miden-sdk/miden-sdk": "0.17.0-rc.
|
|
45
|
+
"@miden-sdk/miden-sdk": "0.17.0-rc.5",
|
|
46
46
|
"@noble/curves": "^1.9.7",
|
|
47
47
|
"@noble/hashes": "^2.0.1",
|
|
48
|
-
"@openzeppelin/guardian-client": "^0.18.0-rc.
|
|
48
|
+
"@openzeppelin/guardian-client": "^0.18.0-rc.3"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@openzeppelin/guardian-operator-client": "^0.18.0-rc.
|
|
51
|
+
"@openzeppelin/guardian-operator-client": "^0.18.0-rc.3",
|
|
52
52
|
"@playwright/test": "^1.60.0",
|
|
53
53
|
"@types/node": "^24.13.5",
|
|
54
54
|
"fake-indexeddb": "^6.2.5",
|
package/src/account/builder.ts
CHANGED
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
type MidenClient,
|
|
16
16
|
} from "@miden-sdk/miden-sdk";
|
|
17
17
|
import { getProcedureRoot } from "../procedures.js";
|
|
18
|
-
import { isPublicMidenClient, type RawClientSource } from "../raw-client.js";
|
|
19
18
|
import { MAX_SIGNERS } from "./layout.js";
|
|
20
19
|
import type { MultisigConfig, CreateAccountResult } from "../types.js";
|
|
21
20
|
import { normalizeSignerCommitment } from "../utils/signature.js";
|
|
@@ -84,15 +83,13 @@ function buildGuardedMultisigComponent(
|
|
|
84
83
|
/**
|
|
85
84
|
* Creates a multisig account with GUARDIAN authentication.
|
|
86
85
|
*
|
|
87
|
-
* @param client - Initialized MidenClient
|
|
86
|
+
* @param client - Initialized MidenClient
|
|
88
87
|
* @param config - Multisig configuration
|
|
89
|
-
* @param midenRpcEndpoint - RPC endpoint for the client's network
|
|
90
88
|
* @returns The created account and seed
|
|
91
89
|
*/
|
|
92
90
|
export async function createMultisigAccount(
|
|
93
|
-
client:
|
|
91
|
+
client: MidenClient,
|
|
94
92
|
config: MultisigConfig,
|
|
95
|
-
midenRpcEndpoint: string,
|
|
96
93
|
): Promise<CreateAccountResult> {
|
|
97
94
|
validateMultisigConfig(config);
|
|
98
95
|
const authComponent = buildGuardedMultisigComponent(config);
|
|
@@ -117,14 +114,10 @@ export async function createMultisigAccount(
|
|
|
117
114
|
|
|
118
115
|
const result = accountBuilder.buildWithoutSchemaCommitment();
|
|
119
116
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
});
|
|
125
|
-
} else {
|
|
126
|
-
await client.newAccount(result.account, false);
|
|
127
|
-
}
|
|
117
|
+
await client.accounts.insert({
|
|
118
|
+
account: result.account,
|
|
119
|
+
overwrite: false,
|
|
120
|
+
});
|
|
128
121
|
|
|
129
122
|
return {
|
|
130
123
|
account: result.account,
|
package/src/client.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { StateObject } from '@openzeppelin/guardian-client';
|
|
|
11
11
|
import { Multisig } from './multisig.js';
|
|
12
12
|
import { createMultisigAccount } from './account/index.js';
|
|
13
13
|
import { AccountInspector, assertCompleteDetectedConfig } from './inspector.js';
|
|
14
|
-
import {
|
|
14
|
+
import { requireConfigValue, requireMidenRpcEndpoint } from './config.js';
|
|
15
15
|
import type { MultisigConfig, Signer } from './types.js';
|
|
16
16
|
import { isSafeToAdoptGuardianState, readOnChainCommitment } from './state/adopt.js';
|
|
17
17
|
import { normalizeHexWord } from './utils/encoding.js';
|
|
@@ -48,9 +48,11 @@ export interface MultisigClientConfig {
|
|
|
48
48
|
/** GUARDIAN server endpoint. Required — there is no default. */
|
|
49
49
|
guardianEndpoint: string;
|
|
50
50
|
/**
|
|
51
|
-
* Miden node RPC endpoint
|
|
52
|
-
*
|
|
53
|
-
*
|
|
51
|
+
* Miden node RPC endpoint the SDK reads directly: on-chain commitments for
|
|
52
|
+
* state verification, and note inclusion proofs for consume-notes proposals
|
|
53
|
+
* and note recovery. Everything else, execution included, goes through the
|
|
54
|
+
* injected `MidenClient`. Required — must point at the same network as the
|
|
55
|
+
* injected `MidenClient`; there is no default.
|
|
54
56
|
*/
|
|
55
57
|
midenRpcEndpoint: string;
|
|
56
58
|
/** Multisig-owned remote prover override and proof retry policy. */
|
|
@@ -72,13 +74,18 @@ export interface RecoveredAccount {
|
|
|
72
74
|
/**
|
|
73
75
|
* Client for creating and loading multisig accounts.
|
|
74
76
|
*
|
|
77
|
+
* In a browser, create the injected `MidenClient` with `useWorker: false` until
|
|
78
|
+
* https://github.com/0xMiden/web-sdk/issues/441 is fixed: a worker-mode client
|
|
79
|
+
* applies transactions in a Web Worker that never sees the account state this
|
|
80
|
+
* SDK writes.
|
|
81
|
+
*
|
|
75
82
|
* @example
|
|
76
83
|
* ```typescript
|
|
77
84
|
* import { MultisigClient, FalconSigner } from '@openzeppelin/miden-multisig-client';
|
|
78
85
|
* import { MidenClient, AuthSecretKey } from '@miden-sdk/miden-sdk';
|
|
79
86
|
*
|
|
80
87
|
* // Initialize
|
|
81
|
-
* const midenClient = await MidenClient.createDevnet();
|
|
88
|
+
* const midenClient = await MidenClient.createDevnet({ useWorker: false });
|
|
82
89
|
* const secretKey = AuthSecretKey.rpoFalconWithRNG(seed);
|
|
83
90
|
* const signer = new FalconSigner(secretKey);
|
|
84
91
|
*
|
|
@@ -170,11 +177,7 @@ export class MultisigClient {
|
|
|
170
177
|
async create(config: MultisigConfig, signer: Signer): Promise<Multisig> {
|
|
171
178
|
this._guardianClient.setSigner(signer);
|
|
172
179
|
|
|
173
|
-
const { account } = await createMultisigAccount(
|
|
174
|
-
this.midenClient,
|
|
175
|
-
config,
|
|
176
|
-
this.midenRpcEndpoint,
|
|
177
|
-
);
|
|
180
|
+
const { account } = await createMultisigAccount(this.midenClient, config);
|
|
178
181
|
const accountId = account.id().toString();
|
|
179
182
|
await bindSignerAccountKey(signer, this.midenClient, accountId);
|
|
180
183
|
|
package/src/config.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function requireConfigValue(field: string, value?: unknown): string {
|
|
2
|
+
if (typeof value !== 'string') {
|
|
3
|
+
throw new Error(`missing required configuration: ${field}`);
|
|
4
|
+
}
|
|
5
|
+
const normalizedValue = value.trim();
|
|
6
|
+
if (normalizedValue === '') {
|
|
7
|
+
throw new Error(`missing required configuration: ${field}`);
|
|
8
|
+
}
|
|
9
|
+
return normalizedValue;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function requireMidenRpcEndpoint(endpoint?: string): string {
|
|
13
|
+
return requireConfigValue('midenRpcEndpoint', endpoint);
|
|
14
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* } from '@openzeppelin/miden-multisig-client';
|
|
12
12
|
* import { MidenClient, AuthSecretKey } from '@miden-sdk/miden-sdk';
|
|
13
13
|
*
|
|
14
|
-
* const midenClient = await MidenClient.createDevnet();
|
|
14
|
+
* const midenClient = await MidenClient.createDevnet({ useWorker: false });
|
|
15
15
|
* const secretKey = AuthSecretKey.rpoFalconWithRNG(undefined);
|
|
16
16
|
*
|
|
17
17
|
* // Store in miden-sdk's keystore
|
|
@@ -59,17 +59,20 @@ export { lookupAuthDigest } from './lookupAuth.js';
|
|
|
59
59
|
export {
|
|
60
60
|
Multisig,
|
|
61
61
|
type AccountState,
|
|
62
|
+
type SyncStateResult,
|
|
62
63
|
type CreateProposalOptions,
|
|
63
64
|
type CreateSignerProposalOptions,
|
|
64
65
|
type CreateP2idProposalOptions,
|
|
65
66
|
} from './multisig.js';
|
|
66
67
|
export { AccountInspector, type DetectedMultisigConfig, type VaultBalance } from './inspector.js';
|
|
67
68
|
export {
|
|
69
|
+
ChainBehindBoundBlockError,
|
|
68
70
|
chainAnchorFromBase64,
|
|
69
71
|
chainAnchorToBase64,
|
|
70
72
|
chainAnchorBlockNum,
|
|
71
73
|
executeForSummary,
|
|
72
74
|
executeForSummaryAt,
|
|
75
|
+
executeForSummaryAtTip,
|
|
73
76
|
summaryApprovalExpirationBlockNum,
|
|
74
77
|
summarySalt,
|
|
75
78
|
SummaryAnchorMismatchError,
|
|
@@ -93,8 +96,6 @@ export {
|
|
|
93
96
|
// hex, directly comparable to `ExportedProposal.commitment` / `Proposal.id`.
|
|
94
97
|
export { computeCommitmentFromTxSummary } from './multisig/helpers.js';
|
|
95
98
|
export type {
|
|
96
|
-
MidenClientMultisigRequestOptions,
|
|
97
|
-
MidenClientSignatureOptions,
|
|
98
99
|
MultisigRequestOptions,
|
|
99
100
|
SignatureOptions,
|
|
100
101
|
} from './transaction/options.js';
|
|
@@ -195,6 +196,7 @@ export {
|
|
|
195
196
|
|
|
196
197
|
export {
|
|
197
198
|
type AuthArgErrorCode,
|
|
199
|
+
BoundBlockNotDeclaredError,
|
|
198
200
|
MultisigAuthArgsMissingError,
|
|
199
201
|
ProposalSaltMalformedError,
|
|
200
202
|
} from './multisig/authArgErrors.js';
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
//! `public-api.test.ts` covers the barrel so a dropped re-export is caught.
|
|
4
4
|
|
|
5
5
|
/** Stable error identifiers for auth-arg recovery failures. */
|
|
6
|
-
export type AuthArgErrorCode =
|
|
6
|
+
export type AuthArgErrorCode =
|
|
7
|
+
| 'proposal_salt_malformed'
|
|
8
|
+
| 'multisig_auth_args_missing'
|
|
9
|
+
| 'bound_block_not_declared';
|
|
7
10
|
|
|
8
11
|
/** How much of an untrusted value an error message will quote. */
|
|
9
12
|
const MAX_QUOTED_CHARS = 80;
|
|
@@ -103,3 +106,27 @@ export class MultisigAuthArgsMissingError extends Error {
|
|
|
103
106
|
this.accountId = accountId;
|
|
104
107
|
}
|
|
105
108
|
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* A multisig request does not list the block its auth args bind among the
|
|
112
|
+
* blocks it declares through `withBlockNumbers`. A proposal executes at the
|
|
113
|
+
* chain tip, where the auth procedure can read the bound block only from the
|
|
114
|
+
* transaction's partial blockchain, so such a request fails in the VM with
|
|
115
|
+
* `failed to lookup value in Merkle store` once the chain moves past that
|
|
116
|
+
* block. `feeAwareTransactionRequestBuilder` declares it; a request whose auth
|
|
117
|
+
* args are attached by hand has to call `withBlockNumbers([boundBlockNum])`.
|
|
118
|
+
*/
|
|
119
|
+
export class BoundBlockNotDeclaredError extends Error {
|
|
120
|
+
readonly code: AuthArgErrorCode = 'bound_block_not_declared';
|
|
121
|
+
readonly boundBlockNum: number;
|
|
122
|
+
|
|
123
|
+
constructor(boundBlockNum: number) {
|
|
124
|
+
super(
|
|
125
|
+
`The transaction request binds block ${boundBlockNum} in its multisig auth args but does ` +
|
|
126
|
+
'not declare it, so it cannot execute at a later chain tip. Build it with ' +
|
|
127
|
+
`feeAwareTransactionRequestBuilder or add withBlockNumbers([${boundBlockNum}])`,
|
|
128
|
+
);
|
|
129
|
+
this.name = 'BoundBlockNotDeclaredError';
|
|
130
|
+
this.boundBlockNum = boundBlockNum;
|
|
131
|
+
}
|
|
132
|
+
}
|