@openzeppelin/miden-multisig-client 0.18.0 → 0.18.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 +176 -23
- package/dist/client.d.ts +41 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +79 -2
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/lookupAuth.d.ts.map +1 -1
- package/dist/lookupAuth.js +2 -20
- package/dist/lookupAuth.js.map +1 -1
- package/dist/multisig/authArgErrors.d.ts +27 -1
- package/dist/multisig/authArgErrors.d.ts.map +1 -1
- package/dist/multisig/authArgErrors.js +33 -0
- package/dist/multisig/authArgErrors.js.map +1 -1
- package/dist/multisig.d.ts +77 -11
- package/dist/multisig.d.ts.map +1 -1
- package/dist/multisig.js +247 -181
- package/dist/multisig.js.map +1 -1
- package/dist/proposal/metadata.d.ts.map +1 -1
- package/dist/proposal/metadata.js +2 -0
- package/dist/proposal/metadata.js.map +1 -1
- package/dist/recovery/transportDrain.d.ts +38 -30
- package/dist/recovery/transportDrain.d.ts.map +1 -1
- package/dist/recovery/transportDrain.js +113 -113
- package/dist/recovery/transportDrain.js.map +1 -1
- package/dist/session/grant.d.ts +40 -0
- package/dist/session/grant.d.ts.map +1 -0
- package/dist/session/grant.js +125 -0
- package/dist/session/grant.js.map +1 -0
- package/dist/session/key.d.ts +103 -0
- package/dist/session/key.d.ts.map +1 -0
- package/dist/session/key.js +160 -0
- package/dist/session/key.js.map +1 -0
- package/dist/session/manager.d.ts +76 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +187 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/signers/ecdsa.d.ts +5 -1
- package/dist/signers/ecdsa.d.ts.map +1 -1
- package/dist/signers/ecdsa.js +9 -0
- package/dist/signers/ecdsa.js.map +1 -1
- package/dist/signers/falcon.d.ts +5 -1
- package/dist/signers/falcon.d.ts.map +1 -1
- package/dist/signers/falcon.js +9 -0
- package/dist/signers/falcon.js.map +1 -1
- package/dist/signers/ledger.d.ts +9 -1
- package/dist/signers/ledger.d.ts.map +1 -1
- package/dist/signers/ledger.js +13 -1
- package/dist/signers/ledger.js.map +1 -1
- package/dist/signers/miden-wallet.d.ts +13 -1
- package/dist/signers/miden-wallet.d.ts.map +1 -1
- package/dist/signers/miden-wallet.js +25 -0
- package/dist/signers/miden-wallet.js.map +1 -1
- package/dist/signers/para.d.ts +5 -1
- package/dist/signers/para.d.ts.map +1 -1
- package/dist/signers/para.js +9 -0
- package/dist/signers/para.js.map +1 -1
- package/dist/transaction/authArgs.d.ts +2 -2
- package/dist/transaction/authArgs.js +2 -2
- package/dist/transaction/options.d.ts +2 -2
- package/dist/transaction/summary.d.ts +17 -61
- package/dist/transaction/summary.d.ts.map +1 -1
- package/dist/transaction/summary.js +49 -95
- 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 +11 -5
- package/dist/types/proposal.d.ts.map +1 -1
- package/dist/types/proposal.js.map +1 -1
- package/dist/utils/eip712.d.ts +26 -69
- package/dist/utils/eip712.d.ts.map +1 -1
- package/dist/utils/eip712.js +101 -8
- package/dist/utils/eip712.js.map +1 -1
- package/dist/utils/felt.d.ts +7 -1
- package/dist/utils/felt.d.ts.map +1 -1
- package/dist/utils/felt.js +18 -1
- package/dist/utils/felt.js.map +1 -1
- package/package.json +4 -4
- package/src/client.ts +97 -2
- package/src/index.ts +29 -8
- package/src/lookupAuth.ts +3 -22
- package/src/multisig/authArgErrors.ts +42 -1
- package/src/multisig.ts +318 -207
- package/src/proposal/metadata.ts +2 -0
- package/src/recovery/transportDrain.ts +118 -124
- package/src/session/grant.ts +143 -0
- package/src/session/key.ts +215 -0
- package/src/session/manager.ts +273 -0
- package/src/signers/ecdsa.ts +12 -1
- package/src/signers/falcon.ts +12 -1
- package/src/signers/ledger.ts +19 -2
- package/src/signers/miden-wallet.ts +29 -1
- package/src/signers/para.ts +12 -1
- package/src/transaction/authArgs.ts +2 -2
- package/src/transaction/options.ts +2 -2
- package/src/transaction/summary.ts +62 -110
- package/src/transaction.ts +1 -6
- package/src/types/proposal.ts +11 -5
- package/src/utils/eip712.ts +130 -10
- package/src/utils/felt.ts +19 -1
package/dist/lookupAuth.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FeltArray, Rpo256, Word } from '@miden-sdk/miden-sdk';
|
|
2
|
-
import { feltFromU64Reduced } from './utils/felt.js';
|
|
2
|
+
import { domainTagWord, feltFromU64Reduced } from './utils/felt.js';
|
|
3
3
|
/**
|
|
4
4
|
* Lookup-bound message format used to sign requests against the Guardian
|
|
5
5
|
* `/state/lookup` endpoint. MUST produce byte-identical digests to
|
|
@@ -8,31 +8,13 @@ import { feltFromU64Reduced } from './utils/felt.js';
|
|
|
8
8
|
*/
|
|
9
9
|
const DOMAIN_TAG_BYTES = new TextEncoder().encode('guardian.lookup.v1');
|
|
10
10
|
let cachedDomainTag = null;
|
|
11
|
-
/**
|
|
12
|
-
* Convert a byte array to a sequence of Goldilocks-field felts using the same
|
|
13
|
-
* 8-byte little-endian chunking convention as
|
|
14
|
-
* `guardian_shared::auth_request_payload::AuthRequestPayload::from_bytes`. The
|
|
15
|
-
* final chunk is zero-padded if `bytes.length` is not a multiple of 8.
|
|
16
|
-
*/
|
|
17
|
-
function bytesToFelts(bytes) {
|
|
18
|
-
const felts = [];
|
|
19
|
-
for (let offset = 0; offset < bytes.length; offset += 8) {
|
|
20
|
-
let value = 0n;
|
|
21
|
-
for (let i = 0; i < 8; i += 1) {
|
|
22
|
-
const byte = offset + i < bytes.length ? bytes[offset + i] : 0;
|
|
23
|
-
value |= BigInt(byte) << BigInt(8 * i);
|
|
24
|
-
}
|
|
25
|
-
felts.push(feltFromU64Reduced(value));
|
|
26
|
-
}
|
|
27
|
-
return felts;
|
|
28
|
-
}
|
|
29
11
|
/**
|
|
30
12
|
* The 4-felt RPO domain tag prepended to every lookup digest, computed once
|
|
31
13
|
* from `DOMAIN_TAG_BYTES`. Cached on first call.
|
|
32
14
|
*/
|
|
33
15
|
function lookupDomainTag() {
|
|
34
16
|
if (cachedDomainTag === null) {
|
|
35
|
-
cachedDomainTag =
|
|
17
|
+
cachedDomainTag = domainTagWord(DOMAIN_TAG_BYTES);
|
|
36
18
|
}
|
|
37
19
|
return cachedDomainTag;
|
|
38
20
|
}
|
package/dist/lookupAuth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookupAuth.js","sourceRoot":"","sources":["../src/lookupAuth.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"lookupAuth.js","sourceRoot":"","sources":["../src/lookupAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;;;GAKG;AAEH,MAAM,gBAAgB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAExE,IAAI,eAAe,GAAgB,IAAI,CAAC;AAExC;;;GAGG;AACH,SAAS,eAAe;IACtB,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,eAAe,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAA4B,EAAE,gBAAwB;IACrF,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrF,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC;QACN,GAAG,CAAC,CAAC,CAAC;QACN,GAAG,CAAC,CAAC,CAAC;QACN,GAAG,CAAC,CAAC,CAAC;QACN,aAAa;QACb,EAAE,CAAC,CAAC,CAAC;QACL,EAAE,CAAC,CAAC,CAAC;QACL,EAAE,CAAC,CAAC,CAAC;QACL,EAAE,CAAC,CAAC,CAAC;KACN,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oCAAoC;IAClD,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Stable error identifiers for auth-arg recovery failures. */
|
|
2
|
-
export type AuthArgErrorCode = 'proposal_salt_malformed' | 'multisig_auth_args_missing' | 'bound_block_not_declared';
|
|
2
|
+
export type AuthArgErrorCode = 'proposal_salt_malformed' | 'multisig_auth_args_missing' | 'bound_block_not_declared' | 'transaction_summary_layout_unsupported' | 'bound_block_mismatch';
|
|
3
3
|
/**
|
|
4
4
|
* A proposal's recorded salt is not a readable 32-byte word, so no rebuild can
|
|
5
5
|
* use it.
|
|
@@ -53,4 +53,30 @@ export declare class BoundBlockNotDeclaredError extends Error {
|
|
|
53
53
|
readonly boundBlockNum: number;
|
|
54
54
|
constructor(boundBlockNum: number);
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* A serialized transaction summary does not have the layout this client reads
|
|
58
|
+
* its bound block from: the version 1 encoding of protocol 0.17. Raised instead
|
|
59
|
+
* of reading a number from the wrong offset, so a protocol upgrade that moves
|
|
60
|
+
* the field fails loudly.
|
|
61
|
+
*/
|
|
62
|
+
export declare class TransactionSummaryLayoutError extends Error {
|
|
63
|
+
readonly code: AuthArgErrorCode;
|
|
64
|
+
constructor(reason: string);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A proposal's `boundBlockNum` names a block other than the one its signed
|
|
68
|
+
* summary binds. The value is served unsigned, so one that disagrees is refused
|
|
69
|
+
* by name for every proposal type, as the Rust SDK does.
|
|
70
|
+
*/
|
|
71
|
+
export declare class BoundBlockMismatchError extends Error {
|
|
72
|
+
readonly code: AuthArgErrorCode;
|
|
73
|
+
readonly proposalId: string;
|
|
74
|
+
readonly declaredBoundBlockNum: number;
|
|
75
|
+
readonly boundBlockNum: number;
|
|
76
|
+
constructor(details: {
|
|
77
|
+
proposalId: string;
|
|
78
|
+
declaredBoundBlockNum: number;
|
|
79
|
+
boundBlockNum: number;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
56
82
|
//# sourceMappingURL=authArgErrors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authArgErrors.d.ts","sourceRoot":"","sources":["../../src/multisig/authArgErrors.ts"],"names":[],"mappings":"AAIA,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,GACxB,yBAAyB,GACzB,4BAA4B,GAC5B,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"authArgErrors.d.ts","sourceRoot":"","sources":["../../src/multisig/authArgErrors.ts"],"names":[],"mappings":"AAIA,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,GACxB,yBAAyB,GACzB,4BAA4B,GAC5B,0BAA0B,GAC1B,wCAAwC,GACxC,sBAAsB,CAAC;AA0C3B;;;;;;;;GAQG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAA6B;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAc/F;AAED;;;;;;;GAOG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAgC;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,SAAS,EAAE,MAAM;CAS9B;AAED;;;;;;;;GAQG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAA8B;IAC7D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAEnB,aAAa,EAAE,MAAM;CASlC;AAED;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAA4C;gBAE/D,MAAM,EAAE,MAAM;CAI3B;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAA0B;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;CAWlG"}
|
|
@@ -108,4 +108,37 @@ export class BoundBlockNotDeclaredError extends Error {
|
|
|
108
108
|
this.boundBlockNum = boundBlockNum;
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* A serialized transaction summary does not have the layout this client reads
|
|
113
|
+
* its bound block from: the version 1 encoding of protocol 0.17. Raised instead
|
|
114
|
+
* of reading a number from the wrong offset, so a protocol upgrade that moves
|
|
115
|
+
* the field fails loudly.
|
|
116
|
+
*/
|
|
117
|
+
export class TransactionSummaryLayoutError extends Error {
|
|
118
|
+
code = 'transaction_summary_layout_unsupported';
|
|
119
|
+
constructor(reason) {
|
|
120
|
+
super(`The transaction summary does not have the layout this client reads: ${reason}`);
|
|
121
|
+
this.name = 'TransactionSummaryLayoutError';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* A proposal's `boundBlockNum` names a block other than the one its signed
|
|
126
|
+
* summary binds. The value is served unsigned, so one that disagrees is refused
|
|
127
|
+
* by name for every proposal type, as the Rust SDK does.
|
|
128
|
+
*/
|
|
129
|
+
export class BoundBlockMismatchError extends Error {
|
|
130
|
+
code = 'bound_block_mismatch';
|
|
131
|
+
proposalId;
|
|
132
|
+
declaredBoundBlockNum;
|
|
133
|
+
boundBlockNum;
|
|
134
|
+
constructor(details) {
|
|
135
|
+
super(`Proposal ${quoteUntrusted(details.proposalId)} declares boundBlockNum ` +
|
|
136
|
+
`${details.declaredBoundBlockNum}, but its signed transaction summary binds block ` +
|
|
137
|
+
`${details.boundBlockNum}`);
|
|
138
|
+
this.name = 'BoundBlockMismatchError';
|
|
139
|
+
this.proposalId = details.proposalId;
|
|
140
|
+
this.declaredBoundBlockNum = details.declaredBoundBlockNum;
|
|
141
|
+
this.boundBlockNum = details.boundBlockNum;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
111
144
|
//# sourceMappingURL=authArgErrors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authArgErrors.js","sourceRoot":"","sources":["../../src/multisig/authArgErrors.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,2FAA2F;AAC3F,4EAA4E;
|
|
1
|
+
{"version":3,"file":"authArgErrors.js","sourceRoot":"","sources":["../../src/multisig/authArgErrors.ts"],"names":[],"mappings":"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"}
|
package/dist/multisig.d.ts
CHANGED
|
@@ -55,7 +55,15 @@ export interface AccountStateVerificationResult {
|
|
|
55
55
|
* positional `undefined` holes to reach a later option.
|
|
56
56
|
*/
|
|
57
57
|
export interface CreateProposalOptions {
|
|
58
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Proposal nonce: the account nonce the executed transaction will have.
|
|
60
|
+
* Defaults to the store account's nonce plus one, as the Rust SDK labels
|
|
61
|
+
* proposals. GUARDIAN keys the proposal and its delta by it, orders
|
|
62
|
+
* history and the candidate queue by it, and when it queues chained
|
|
63
|
+
* candidates (issue #17) records a proposal only at the queue tail's
|
|
64
|
+
* nonce plus one. Pass it only to label from another record of the
|
|
65
|
+
* account's nonce. Through 0.18.0 the default was `Date.now()`.
|
|
66
|
+
*/
|
|
59
67
|
nonce?: number;
|
|
60
68
|
/**
|
|
61
69
|
* Blocks after the block the proposal binds by which the transaction must be
|
|
@@ -127,6 +135,34 @@ export declare class Multisig {
|
|
|
127
135
|
*/
|
|
128
136
|
getStoreAccount(): Promise<Account>;
|
|
129
137
|
private readStoreAccount;
|
|
138
|
+
/**
|
|
139
|
+
* The nonce a proposal is labelled with: `options.nonce`, or the store
|
|
140
|
+
* account's nonce plus one, the nonce the executed transaction will
|
|
141
|
+
* have. That is what the Rust SDK labels with, what the stale-proposal
|
|
142
|
+
* filters compare with the account nonce, and what GUARDIAN's candidate
|
|
143
|
+
* queue requires of a proposal built on its tail (issue #17). Through
|
|
144
|
+
* 0.18.0 the default was `Date.now()`, a key no admission rule
|
|
145
|
+
* could relate to the account's state. The label is read after any sync
|
|
146
|
+
* the method performs (note authentication, the offline switch's node
|
|
147
|
+
* sync), on the account the summary is then built from; a caller that
|
|
148
|
+
* has just read that account passes it to save the store read.
|
|
149
|
+
*/
|
|
150
|
+
private resolveProposalNonce;
|
|
151
|
+
/**
|
|
152
|
+
* Refuses to execute a proposal GUARDIAN pinned to a state other than the
|
|
153
|
+
* one this client holds. The transaction executes on this client's own
|
|
154
|
+
* record of the account while the execution push names the pinned base,
|
|
155
|
+
* so the two have to be the same state. A proposal pinned to a state the
|
|
156
|
+
* account has since left was made for that state, and its transaction
|
|
157
|
+
* would otherwise run again on the current one. One pinned to a state this
|
|
158
|
+
* client does not hold (a server that queues chained candidates pins a
|
|
159
|
+
* proposal to the newest queued candidate's post-state) would be admitted
|
|
160
|
+
* behind that candidate while the transaction itself lands on the older
|
|
161
|
+
* state, leaving GUARDIAN behind the chain.
|
|
162
|
+
*/
|
|
163
|
+
private assertExecutesOnPinnedBase;
|
|
164
|
+
/** The commitment of this client's record of the account. */
|
|
165
|
+
private localAccountCommitment;
|
|
130
166
|
/**
|
|
131
167
|
* Read the current ordered signer public-key commitments from account
|
|
132
168
|
* storage (store-backed state, falling back to the snapshot).
|
|
@@ -180,6 +216,11 @@ export declare class Multisig {
|
|
|
180
216
|
* the caller's approval expiration, and the signer's scheme.
|
|
181
217
|
*/
|
|
182
218
|
private proposalRequestOptions;
|
|
219
|
+
/**
|
|
220
|
+
* Derives a new proposal's summary at the chain tip, with the block it binds
|
|
221
|
+
* for the proposal's `boundBlockNum`.
|
|
222
|
+
*/
|
|
223
|
+
private deriveProposalSummary;
|
|
183
224
|
private warnOnOverrideDilution;
|
|
184
225
|
/**
|
|
185
226
|
* Update the GUARDIAN client used by this Multisig instance.
|
|
@@ -310,10 +351,11 @@ export declare class Multisig {
|
|
|
310
351
|
* without applying its listing.
|
|
311
352
|
*
|
|
312
353
|
* Nonce-based staleness hiding is the caller's job (see the examples'
|
|
313
|
-
* `filterVisibleProposals`)
|
|
314
|
-
*
|
|
315
|
-
* nonce
|
|
316
|
-
*
|
|
354
|
+
* `filterVisibleProposals`). This SDK labels a proposal with the account's
|
|
355
|
+
* next nonce by default, as the Rust SDK does, but a caller may label with
|
|
356
|
+
* its own `nonce` (and proposals made through 0.18.0 carry a
|
|
357
|
+
* timestamp), so the Rust client's `proposal.nonce <= account.nonce()`
|
|
358
|
+
* filter is not applied here. This is an intentional TS/Rust surface
|
|
317
359
|
* difference.
|
|
318
360
|
*/
|
|
319
361
|
syncProposals(): Promise<Proposal[]>;
|
|
@@ -641,7 +683,10 @@ export declare class Multisig {
|
|
|
641
683
|
* store's sync height, which a node prunes about 50 blocks later.
|
|
642
684
|
*/
|
|
643
685
|
private syncChain;
|
|
644
|
-
/**
|
|
686
|
+
/**
|
|
687
|
+
* {@link syncToBoundBlock} with this client's RPC retry policy. A listing
|
|
688
|
+
* passes its own `syncChain` so it syncs at most once for all its proposals.
|
|
689
|
+
*/
|
|
645
690
|
private syncToBoundBlock;
|
|
646
691
|
/**
|
|
647
692
|
* Create a proposal from a producer-built transaction the SDK does not model.
|
|
@@ -670,6 +715,19 @@ export declare class Multisig {
|
|
|
670
715
|
* executes at the chain tip.
|
|
671
716
|
*/
|
|
672
717
|
private prepareProposalExecution;
|
|
718
|
+
/**
|
|
719
|
+
* A switch_guardian proposal as the pre-switch GUARDIAN serves it, so the
|
|
720
|
+
* state it pinned the proposal to is checked as for every other type, or
|
|
721
|
+
* `undefined` when that GUARDIAN does not serve it. Not holding the
|
|
722
|
+
* proposal (one made offline) is the designed offline case. Any other
|
|
723
|
+
* failure, whether the GUARDIAN is unreachable or answers with an error
|
|
724
|
+
* (an authentication failure, a paused or released account, rate limiting,
|
|
725
|
+
* a server fault), is warned about. In every one of those cases the switch
|
|
726
|
+
* then executes from its cached summary without the check: rotating away
|
|
727
|
+
* from a GUARDIAN that is down or refusing service is what the switch
|
|
728
|
+
* exists for, so that GUARDIAN cannot be what blocks it.
|
|
729
|
+
*/
|
|
730
|
+
private servedSwitchProposal;
|
|
673
731
|
/**
|
|
674
732
|
* Export a proposal for offline signing
|
|
675
733
|
*/
|
|
@@ -717,12 +775,20 @@ export declare class Multisig {
|
|
|
717
775
|
*/
|
|
718
776
|
private requireProposalSaltHex;
|
|
719
777
|
/**
|
|
720
|
-
*
|
|
721
|
-
*
|
|
722
|
-
*
|
|
723
|
-
*
|
|
778
|
+
* The block a proposal's signed summary binds, read from the summary as the
|
|
779
|
+
* Rust SDK does.
|
|
780
|
+
*
|
|
781
|
+
* GUARDIAN serves `boundBlockNum` unsigned and the response is cast, not
|
|
782
|
+
* parsed. An absent value, from a proposal a 0.18.0 client made, is accepted;
|
|
783
|
+
* a legacy `chainAnchor` is not read. A present value has to be a block
|
|
784
|
+
* number equal to the summary's, for every proposal type, so a wrong one is
|
|
785
|
+
* refused by name before anything executes or is signed.
|
|
786
|
+
*
|
|
787
|
+
* @throws BoundBlockMismatchError when the served value names another block.
|
|
724
788
|
*/
|
|
725
|
-
private
|
|
789
|
+
private requireProposalBoundBlockNum;
|
|
790
|
+
/** The served `boundBlockNum`, `undefined` when absent; throws when malformed. */
|
|
791
|
+
private servedBoundBlockNum;
|
|
726
792
|
/**
|
|
727
793
|
* An expired approval aborts in the auth procedure only at execution.
|
|
728
794
|
* The summary carries the deadline, so callers check it against the sync
|
package/dist/multisig.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"multisig.d.ts","sourceRoot":"","sources":["../src/multisig.ts"],"names":[],"mappings":"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"}
|