@openzeppelin/miden-multisig-client 0.18.0-rc.1 → 0.18.0-rc.2
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 +26 -14
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- 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 +36 -16
- package/dist/multisig.d.ts.map +1 -1
- package/dist/multisig.js +109 -58
- package/dist/multisig.js.map +1 -1
- 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/transaction/summary.d.ts +92 -14
- package/dist/transaction/summary.d.ts.map +1 -1
- package/dist/transaction/summary.js +93 -3
- package/dist/transaction/summary.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/index.ts +3 -0
- package/src/multisig/authArgErrors.ts +28 -1
- package/src/multisig.ts +127 -65
- package/src/prover/workflow.ts +7 -10
- package/src/transaction/summary.ts +161 -16
- package/src/transaction.ts +6 -0
- package/src/types/proposal.ts +9 -8
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AccountId, ChainAnchor, Word } from '@miden-sdk/miden-sdk';
|
|
2
|
+
import { BoundBlockNotDeclaredError } from '../multisig/authArgErrors.js';
|
|
2
3
|
import { getRawMidenClient } from '../raw-client.js';
|
|
3
4
|
import { base64ToUint8Array, normalizeHexWord, uint8ArrayToBase64 } from '../utils/encoding.js';
|
|
5
|
+
import { requestBoundBlockNum } from './authArgs.js';
|
|
4
6
|
/**
|
|
5
7
|
* Layout of the six user params a multisig auth component binds into the
|
|
6
8
|
* transaction summary since protocol 0.17: the approval expiration block (or
|
|
@@ -24,13 +26,42 @@ export class SummaryAnchorMismatchError extends Error {
|
|
|
24
26
|
this.name = 'SummaryAnchorMismatchError';
|
|
25
27
|
}
|
|
26
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* The Miden client synced and its node still has not produced the block a
|
|
31
|
+
* proposal binds, so the proposal cannot execute at this client's tip yet.
|
|
32
|
+
* Worth retrying once the node catches up.
|
|
33
|
+
*/
|
|
34
|
+
export class ChainBehindBoundBlockError extends Error {
|
|
35
|
+
retryable = true;
|
|
36
|
+
syncHeight;
|
|
37
|
+
boundBlockNum;
|
|
38
|
+
constructor(details) {
|
|
39
|
+
super(`the Miden client synced to block ${details.syncHeight}, below block ` +
|
|
40
|
+
`${details.boundBlockNum} the proposal binds; its node has not reached that block yet`);
|
|
41
|
+
this.name = 'ChainBehindBoundBlockError';
|
|
42
|
+
this.syncHeight = details.syncHeight;
|
|
43
|
+
this.boundBlockNum = details.boundBlockNum;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Whether a failed re-execution came from chain state this client can catch up
|
|
48
|
+
* with rather than from the proposal itself: a node that has not reached the
|
|
49
|
+
* bound block yet, or account state the node pruned because this client had
|
|
50
|
+
* not synced recently. Either clears on a later attempt, which syncs first.
|
|
51
|
+
*/
|
|
52
|
+
export function isStaleChainError(error) {
|
|
53
|
+
if (error instanceof ChainBehindBoundBlockError) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
57
|
+
return message.includes('has been pruned');
|
|
58
|
+
}
|
|
27
59
|
export async function executeForSummary(client, accountId, txRequest, midenRpcEndpoint) {
|
|
28
|
-
const acc = AccountId.fromHex(accountId);
|
|
29
60
|
const rawClient = await getRawMidenClient(client, midenRpcEndpoint);
|
|
30
61
|
const anchor = await rawClient.chainAnchorForRequest(txRequest);
|
|
31
62
|
let summary;
|
|
32
63
|
try {
|
|
33
|
-
summary = await rawClient
|
|
64
|
+
summary = await executeForSummaryAtTip(rawClient, accountId, txRequest);
|
|
34
65
|
}
|
|
35
66
|
catch (error) {
|
|
36
67
|
anchor.free();
|
|
@@ -48,6 +79,64 @@ export async function executeForSummary(client, accountId, txRequest, midenRpcEn
|
|
|
48
79
|
}
|
|
49
80
|
return { summary, anchor };
|
|
50
81
|
}
|
|
82
|
+
export async function executeForSummaryAtTip(client, accountId, txRequest, midenRpcEndpoint) {
|
|
83
|
+
const rawClient = await getRawMidenClient(client, midenRpcEndpoint);
|
|
84
|
+
await prepareTipExecution(rawClient, txRequest);
|
|
85
|
+
return rawClient.executeForSummary(AccountId.fromHex(accountId), txRequest);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Gets `client` ready to execute `request` at the chain tip: checks the
|
|
89
|
+
* request declares the block its multisig auth args bind, and syncs to that
|
|
90
|
+
* block (see {@link syncToBoundBlock}).
|
|
91
|
+
*
|
|
92
|
+
* @throws BoundBlockNotDeclaredError when the request binds a block in its
|
|
93
|
+
* multisig auth args without declaring it.
|
|
94
|
+
*/
|
|
95
|
+
export async function prepareTipExecution(client, request, syncState) {
|
|
96
|
+
const boundBlockNum = requireDeclaredBoundBlock(request);
|
|
97
|
+
if (boundBlockNum !== undefined) {
|
|
98
|
+
await syncToBoundBlock(client, boundBlockNum, syncState);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The block `request`'s multisig auth args bind, after checking the request
|
|
103
|
+
* declares it. `undefined` for a request without multisig auth args, which
|
|
104
|
+
* has no bound block to declare.
|
|
105
|
+
*
|
|
106
|
+
* @throws BoundBlockNotDeclaredError when the block is bound but not declared.
|
|
107
|
+
*/
|
|
108
|
+
export function requireDeclaredBoundBlock(request) {
|
|
109
|
+
const boundBlockNum = requestBoundBlockNum(request);
|
|
110
|
+
if (boundBlockNum !== undefined && !request.blockNumbers().includes(boundBlockNum)) {
|
|
111
|
+
throw new BoundBlockNotDeclaredError(boundBlockNum);
|
|
112
|
+
}
|
|
113
|
+
return boundBlockNum;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Syncs `client` once when its sync height is below `blockNum`, the block a
|
|
117
|
+
* proposal binds. Execution at a tip below it fails with "requested block N is
|
|
118
|
+
* after transaction reference block M", and a store that has never synced (a
|
|
119
|
+
* cosigner that has only just loaded the account) holds no header to rebuild
|
|
120
|
+
* the request from. `syncState` lets a caller wrap the sync in its own retry
|
|
121
|
+
* policy.
|
|
122
|
+
*
|
|
123
|
+
* This does not make a store that is already past the bound block current. An
|
|
124
|
+
* execution loads foreign accounts, the fee faucet among them, at the store's
|
|
125
|
+
* sync height, which a node prunes about 50 blocks later, so the multisig
|
|
126
|
+
* entry points that re-execute a proposal sync the chain first.
|
|
127
|
+
*
|
|
128
|
+
* @throws ChainBehindBoundBlockError when the node has not reached the block.
|
|
129
|
+
*/
|
|
130
|
+
export async function syncToBoundBlock(client, blockNum, syncState = () => client.syncState()) {
|
|
131
|
+
if ((await client.getSyncHeight()) >= blockNum) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
await syncState();
|
|
135
|
+
const syncHeight = await client.getSyncHeight();
|
|
136
|
+
if (syncHeight < blockNum) {
|
|
137
|
+
throw new ChainBehindBoundBlockError({ syncHeight, boundBlockNum: blockNum });
|
|
138
|
+
}
|
|
139
|
+
}
|
|
51
140
|
export async function executeForSummaryAt(client, accountId, txRequest, anchor, midenRpcEndpoint) {
|
|
52
141
|
const acc = AccountId.fromHex(accountId);
|
|
53
142
|
const rawClient = await getRawMidenClient(client, midenRpcEndpoint);
|
|
@@ -63,7 +152,8 @@ export function chainAnchorToBase64(anchor) {
|
|
|
63
152
|
* Deserializes a `ChainAnchor` from its base64 wire form. `ChainAnchor`
|
|
64
153
|
* deserialization validates the header/chain consistency internally, so a
|
|
65
154
|
* decoded anchor only needs its block commitment checked against the signed
|
|
66
|
-
* transaction summary before it is
|
|
155
|
+
* transaction summary before the block it names is taken as the one the
|
|
156
|
+
* summary binds.
|
|
67
157
|
*/
|
|
68
158
|
export function chainAnchorFromBase64(anchorBase64) {
|
|
69
159
|
return ChainAnchor.deserialize(base64ToUint8Array(anchorBase64));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/transaction/summary.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/transaction/summary.ts"],"names":[],"mappings":"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"}
|
package/dist/transaction.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { MAX_APPROVAL_EXPIRATION_DELTA, buildMultisigRequest, multisigRequestBuilder, requestBoundBlockNum, requestSaltHex, } from './transaction/authArgs.js';
|
|
2
2
|
export { buildConsumeNotesTransactionRequest, buildConsumeNotesTransactionRequestFromNotes, } from './transaction/consumeNotes.js';
|
|
3
|
-
export { chainAnchorBlockNum, chainAnchorFromBase64, chainAnchorToBase64, executeForSummary, executeForSummaryAt, summaryApprovalExpirationBlockNum, summarySalt, SummaryAnchorMismatchError, } from './transaction/summary.js';
|
|
3
|
+
export { ChainBehindBoundBlockError, chainAnchorBlockNum, chainAnchorFromBase64, chainAnchorToBase64, executeForSummary, executeForSummaryAt, executeForSummaryAtTip, prepareTipExecution, isStaleChainError, requireDeclaredBoundBlock, syncToBoundBlock, summaryApprovalExpirationBlockNum, summarySalt, SummaryAnchorMismatchError, } from './transaction/summary.js';
|
|
4
4
|
export { buildP2idNoteFromMetadata, buildP2idTransactionRequest, parseP2idNoteType, p2idNoteTypeToMetadata, type P2idTransactionOptions, type P2ideHeightOptions, } from './transaction/p2id.js';
|
|
5
5
|
export { buildUpdateGuardianTransactionRequest, } from './transaction/updateGuardian.js';
|
|
6
6
|
export { buildUpdateProcedureThresholdTransactionRequest, } from './transaction/updateProcedureThreshold.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mCAAmC,EACnC,4CAA4C,GAC7C,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iCAAiC,EACjC,WAAW,EACX,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qCAAqC,GACtC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,+CAA+C,GAChD,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oCAAoC,GACrC,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mCAAmC,EACnC,4CAA4C,GAC7C,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,iCAAiC,EACjC,WAAW,EACX,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qCAAqC,GACtC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,+CAA+C,GAChD,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oCAAoC,GACrC,MAAM,gCAAgC,CAAC"}
|
package/dist/transaction.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { MAX_APPROVAL_EXPIRATION_DELTA, buildMultisigRequest, multisigRequestBuilder, requestBoundBlockNum, requestSaltHex, } from './transaction/authArgs.js';
|
|
2
2
|
export { buildConsumeNotesTransactionRequest, buildConsumeNotesTransactionRequestFromNotes, } from './transaction/consumeNotes.js';
|
|
3
|
-
export { chainAnchorBlockNum, chainAnchorFromBase64, chainAnchorToBase64, executeForSummary, executeForSummaryAt, summaryApprovalExpirationBlockNum, summarySalt, SummaryAnchorMismatchError, } from './transaction/summary.js';
|
|
3
|
+
export { ChainBehindBoundBlockError, chainAnchorBlockNum, chainAnchorFromBase64, chainAnchorToBase64, executeForSummary, executeForSummaryAt, executeForSummaryAtTip, prepareTipExecution, isStaleChainError, requireDeclaredBoundBlock, syncToBoundBlock, summaryApprovalExpirationBlockNum, summarySalt, SummaryAnchorMismatchError, } from './transaction/summary.js';
|
|
4
4
|
export { buildP2idNoteFromMetadata, buildP2idTransactionRequest, parseP2idNoteType, p2idNoteTypeToMetadata, } from './transaction/p2id.js';
|
|
5
5
|
export { buildUpdateGuardianTransactionRequest, } from './transaction/updateGuardian.js';
|
|
6
6
|
export { buildUpdateProcedureThresholdTransactionRequest, } from './transaction/updateProcedureThreshold.js';
|
package/dist/transaction.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mCAAmC,EACnC,4CAA4C,GAC7C,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iCAAiC,EACjC,WAAW,EACX,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,GAGvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qCAAqC,GACtC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,+CAA+C,GAChD,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oCAAoC,GACrC,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,mCAAmC,EACnC,4CAA4C,GAC7C,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,iCAAiC,EACjC,WAAW,EACX,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,GAGvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qCAAqC,GACtC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,+CAA+C,GAChD,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oCAAoC,GACrC,MAAM,gCAAgC,CAAC"}
|
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":"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
|
|
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.2",
|
|
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.4",
|
|
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.2"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@openzeppelin/guardian-operator-client": "^0.18.0-rc.
|
|
51
|
+
"@openzeppelin/guardian-operator-client": "^0.18.0-rc.2",
|
|
52
52
|
"@playwright/test": "^1.60.0",
|
|
53
53
|
"@types/node": "^24.13.5",
|
|
54
54
|
"fake-indexeddb": "^6.2.5",
|
package/src/index.ts
CHANGED
|
@@ -65,11 +65,13 @@ export {
|
|
|
65
65
|
} from './multisig.js';
|
|
66
66
|
export { AccountInspector, type DetectedMultisigConfig, type VaultBalance } from './inspector.js';
|
|
67
67
|
export {
|
|
68
|
+
ChainBehindBoundBlockError,
|
|
68
69
|
chainAnchorFromBase64,
|
|
69
70
|
chainAnchorToBase64,
|
|
70
71
|
chainAnchorBlockNum,
|
|
71
72
|
executeForSummary,
|
|
72
73
|
executeForSummaryAt,
|
|
74
|
+
executeForSummaryAtTip,
|
|
73
75
|
summaryApprovalExpirationBlockNum,
|
|
74
76
|
summarySalt,
|
|
75
77
|
SummaryAnchorMismatchError,
|
|
@@ -195,6 +197,7 @@ export {
|
|
|
195
197
|
|
|
196
198
|
export {
|
|
197
199
|
type AuthArgErrorCode,
|
|
200
|
+
BoundBlockNotDeclaredError,
|
|
198
201
|
MultisigAuthArgsMissingError,
|
|
199
202
|
ProposalSaltMalformedError,
|
|
200
203
|
} 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
|
+
}
|