ox 0.14.55 → 0.14.56
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/CHANGELOG.md +29 -0
- package/_cjs/tempo/{MultisigConfig.js → AccountConfig.js} +16 -4
- package/_cjs/tempo/AccountConfig.js.map +1 -0
- package/_cjs/tempo/{MultisigOperation.js → AccountOperation.js} +29 -29
- package/_cjs/tempo/AccountOperation.js.map +1 -0
- package/_cjs/tempo/{MultisigSimulation.js → AccountSimulation.js} +9 -9
- package/_cjs/tempo/AccountSimulation.js.map +1 -0
- package/_cjs/tempo/KeyAuthorization.js +12 -11
- package/_cjs/tempo/KeyAuthorization.js.map +1 -1
- package/_cjs/tempo/SignatureEnvelope.js +64 -64
- package/_cjs/tempo/SignatureEnvelope.js.map +1 -1
- package/_cjs/tempo/TransactionRequest.js +12 -9
- package/_cjs/tempo/TransactionRequest.js.map +1 -1
- package/_cjs/tempo/index.js +4 -4
- package/_cjs/tempo/index.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/tempo/{MultisigConfig.js → AccountConfig.js} +103 -55
- package/_esm/tempo/AccountConfig.js.map +1 -0
- package/_esm/tempo/{MultisigOperation.js → AccountOperation.js} +64 -64
- package/_esm/tempo/AccountOperation.js.map +1 -0
- package/_esm/tempo/{MultisigSimulation.js → AccountSimulation.js} +20 -20
- package/_esm/tempo/AccountSimulation.js.map +1 -0
- package/_esm/tempo/KeyAuthorization.js +13 -12
- package/_esm/tempo/KeyAuthorization.js.map +1 -1
- package/_esm/tempo/SignatureEnvelope.js +71 -71
- package/_esm/tempo/SignatureEnvelope.js.map +1 -1
- package/_esm/tempo/TransactionRequest.js +12 -9
- package/_esm/tempo/TransactionRequest.js.map +1 -1
- package/_esm/tempo/index.js +50 -48
- package/_esm/tempo/index.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/tempo/{MultisigConfig.d.ts → AccountConfig.d.ts} +110 -63
- package/_types/tempo/AccountConfig.d.ts.map +1 -0
- package/_types/tempo/{MultisigOperation.d.ts → AccountOperation.d.ts} +62 -62
- package/_types/tempo/AccountOperation.d.ts.map +1 -0
- package/_types/tempo/{MultisigSimulation.d.ts → AccountSimulation.d.ts} +21 -21
- package/_types/tempo/AccountSimulation.d.ts.map +1 -0
- package/_types/tempo/KeyAuthorization.d.ts +14 -14
- package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
- package/_types/tempo/RpcSchemaTempo.d.ts +13 -13
- package/_types/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/_types/tempo/SignatureEnvelope.d.ts +36 -33
- package/_types/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/_types/tempo/TransactionRequest.d.ts +11 -9
- package/_types/tempo/TransactionRequest.d.ts.map +1 -1
- package/_types/tempo/index.d.ts +50 -48
- package/_types/tempo/index.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/package.json +31 -31
- package/tempo/AccountConfig/package.json +6 -0
- package/tempo/AccountConfig.test-d/package.json +6 -0
- package/tempo/{MultisigConfig.test-d.ts → AccountConfig.test-d.ts} +22 -12
- package/tempo/{MultisigConfig.test.ts → AccountConfig.test.ts} +155 -37
- package/tempo/{MultisigConfig.ts → AccountConfig.ts} +132 -66
- package/tempo/AccountOperation/package.json +6 -0
- package/tempo/AccountOperation.test-d/package.json +6 -0
- package/tempo/AccountOperation.test-d.ts +71 -0
- package/tempo/{MultisigOperation.test.ts → AccountOperation.test.ts} +97 -97
- package/tempo/{MultisigOperation.ts → AccountOperation.ts} +95 -97
- package/tempo/AccountSimulation/package.json +6 -0
- package/tempo/AccountSimulation.test-d/package.json +6 -0
- package/tempo/{MultisigSimulation.test-d.ts → AccountSimulation.test-d.ts} +7 -9
- package/tempo/{MultisigSimulation.test.ts → AccountSimulation.test.ts} +29 -29
- package/tempo/{MultisigSimulation.ts → AccountSimulation.ts} +28 -30
- package/tempo/KeyAuthorization.test-d.ts +14 -14
- package/tempo/KeyAuthorization.test.ts +70 -49
- package/tempo/KeyAuthorization.ts +29 -27
- package/tempo/RpcSchemaTempo.test-d.ts +19 -19
- package/tempo/RpcSchemaTempo.ts +13 -13
- package/tempo/SignatureEnvelope.test-d.ts +7 -7
- package/tempo/SignatureEnvelope.test.ts +34 -34
- package/tempo/SignatureEnvelope.ts +107 -103
- package/tempo/Transaction.test.ts +4 -4
- package/tempo/TransactionRequest.test-d.ts +16 -7
- package/tempo/TransactionRequest.test.ts +25 -17
- package/tempo/TransactionRequest.ts +25 -18
- package/tempo/{multisig.e2e.test.ts → configurableAccounts.e2e.test.ts} +16 -16
- package/tempo/index.ts +50 -48
- package/version.ts +1 -1
- package/_cjs/tempo/MultisigConfig.js.map +0 -1
- package/_cjs/tempo/MultisigOperation.js.map +0 -1
- package/_cjs/tempo/MultisigSimulation.js.map +0 -1
- package/_esm/tempo/MultisigConfig.js.map +0 -1
- package/_esm/tempo/MultisigOperation.js.map +0 -1
- package/_esm/tempo/MultisigSimulation.js.map +0 -1
- package/_types/tempo/MultisigConfig.d.ts.map +0 -1
- package/_types/tempo/MultisigOperation.d.ts.map +0 -1
- package/_types/tempo/MultisigSimulation.d.ts.map +0 -1
- package/tempo/MultisigConfig/package.json +0 -6
- package/tempo/MultisigConfig.test-d/package.json +0 -6
- package/tempo/MultisigOperation/package.json +0 -6
- package/tempo/MultisigOperation.test-d/package.json +0 -6
- package/tempo/MultisigOperation.test-d.ts +0 -71
- package/tempo/MultisigSimulation/package.json +0 -6
- package/tempo/MultisigSimulation.test-d/package.json +0 -6
|
@@ -5,28 +5,33 @@ import * as Hash from '../core/Hash.js';
|
|
|
5
5
|
import * as Hex from '../core/Hex.js';
|
|
6
6
|
/** Maximum encoded byte length for one primitive owner approval. */
|
|
7
7
|
export const maxOwnerSignatureBytes = 2049;
|
|
8
|
-
/** Maximum number of owners allowed in
|
|
8
|
+
/** Maximum number of owners allowed in an account config. */
|
|
9
9
|
export const maxOwners = 48;
|
|
10
|
-
/** Maximum number of owner approvals in a
|
|
10
|
+
/** Maximum number of owner approvals in a configurable account signature. */
|
|
11
11
|
export const maxSignatures = 8;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Maximum threshold accepted by an account config.
|
|
14
|
+
*
|
|
15
|
+
* The threshold must also be reachable by at most {@link ox#AccountConfig.maxSignatures}
|
|
16
|
+
* owner approvals.
|
|
17
|
+
*/
|
|
18
|
+
export const maxThreshold = 0xff;
|
|
19
|
+
/** Maximum version accepted by an account config. */
|
|
15
20
|
export const maxVersion = 2n ** 64n - 1n;
|
|
16
|
-
/** Tempo signature type byte for
|
|
21
|
+
/** Tempo signature type byte for configurable account signatures. */
|
|
17
22
|
export const signatureTypeByte = '0x05';
|
|
18
23
|
/** Zero 32-byte salt (the default when no salt is provided). */
|
|
19
24
|
export const zeroSalt = `0x${'00'.repeat(32)}`;
|
|
20
|
-
/** Domain prefix for the
|
|
25
|
+
/** Domain prefix for the configurable account address derivation. */
|
|
21
26
|
const accountDomain = 'tempo:multisig:account';
|
|
22
|
-
/** Domain prefix for
|
|
27
|
+
/** Domain prefix for account configuration commitments. */
|
|
23
28
|
const configDomain = 'tempo:multisig:config';
|
|
24
29
|
/** Keccak-256 of the canonical recovery wallet creation code. */
|
|
25
30
|
const recoveryWalletInitCodeHash = '0x583cc63a2e37f645b43eac911b1a6d6de08b83abdc308c61364edda8cfc3bd37';
|
|
26
|
-
/** Domain prefix for
|
|
31
|
+
/** Domain prefix for configurable account owner approvals. */
|
|
27
32
|
const signatureDomain = 'tempo:multisig:signature';
|
|
28
33
|
/**
|
|
29
|
-
* Asserts that
|
|
34
|
+
* Asserts that an {@link ox#AccountConfig.Config} is valid.
|
|
30
35
|
*
|
|
31
36
|
* Mirrors the Tempo configuration rules: owners non-empty and
|
|
32
37
|
* `<= maxOwners`, strictly ascending unique nonzero owner addresses, nonzero
|
|
@@ -36,9 +41,9 @@ const signatureDomain = 'tempo:multisig:signature';
|
|
|
36
41
|
*
|
|
37
42
|
* @example
|
|
38
43
|
* ```ts twoslash
|
|
39
|
-
* import {
|
|
44
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
40
45
|
*
|
|
41
|
-
*
|
|
46
|
+
* AccountConfig.assert({
|
|
42
47
|
* threshold: 1,
|
|
43
48
|
* owners: [
|
|
44
49
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
@@ -46,7 +51,7 @@ const signatureDomain = 'tempo:multisig:signature';
|
|
|
46
51
|
* })
|
|
47
52
|
* ```
|
|
48
53
|
*
|
|
49
|
-
* @param config - The
|
|
54
|
+
* @param config - The account config.
|
|
50
55
|
*/
|
|
51
56
|
export function assert(config) {
|
|
52
57
|
const { owners, salt, threshold, version = 0n } = config;
|
|
@@ -117,13 +122,13 @@ export function from(config) {
|
|
|
117
122
|
return normalized;
|
|
118
123
|
}
|
|
119
124
|
/**
|
|
120
|
-
* Converts a JSON-RPC
|
|
125
|
+
* Converts a JSON-RPC account configuration to its domain representation.
|
|
121
126
|
*
|
|
122
127
|
* @example
|
|
123
128
|
* ```ts twoslash
|
|
124
|
-
* import {
|
|
129
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
125
130
|
*
|
|
126
|
-
* const config =
|
|
131
|
+
* const config = AccountConfig.fromRpc({
|
|
127
132
|
* owners: [
|
|
128
133
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
129
134
|
* ],
|
|
@@ -133,8 +138,8 @@ export function from(config) {
|
|
|
133
138
|
* })
|
|
134
139
|
* ```
|
|
135
140
|
*
|
|
136
|
-
* @param config - The JSON-RPC
|
|
137
|
-
* @returns The normalized
|
|
141
|
+
* @param config - The JSON-RPC account configuration.
|
|
142
|
+
* @returns The normalized account configuration.
|
|
138
143
|
*/
|
|
139
144
|
export function fromRpc(config) {
|
|
140
145
|
return from({
|
|
@@ -143,14 +148,14 @@ export function fromRpc(config) {
|
|
|
143
148
|
});
|
|
144
149
|
}
|
|
145
150
|
/**
|
|
146
|
-
* Converts an RLP {@link ox#
|
|
147
|
-
* {@link ox#
|
|
151
|
+
* Converts an RLP {@link ox#AccountConfig.Tuple} back to a
|
|
152
|
+
* {@link ox#AccountConfig.Config}.
|
|
148
153
|
*
|
|
149
154
|
* @example
|
|
150
155
|
* ```ts twoslash
|
|
151
|
-
* import {
|
|
156
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
152
157
|
*
|
|
153
|
-
* const config =
|
|
158
|
+
* const config = AccountConfig.fromTuple([
|
|
154
159
|
* `0x${'00'.repeat(32)}`,
|
|
155
160
|
* '0x',
|
|
156
161
|
* '0x01',
|
|
@@ -159,7 +164,7 @@ export function fromRpc(config) {
|
|
|
159
164
|
* ```
|
|
160
165
|
*
|
|
161
166
|
* @param tuple - The RLP tuple.
|
|
162
|
-
* @returns The
|
|
167
|
+
* @returns The account config.
|
|
163
168
|
*/
|
|
164
169
|
export function fromTuple(tuple) {
|
|
165
170
|
const [salt, version, threshold, owners] = tuple;
|
|
@@ -197,7 +202,7 @@ export function fromTuple(tuple) {
|
|
|
197
202
|
return config;
|
|
198
203
|
}
|
|
199
204
|
/**
|
|
200
|
-
* Derives the stable
|
|
205
|
+
* Derives the stable configurable account address.
|
|
201
206
|
*
|
|
202
207
|
* The initial config is hashed into a CREATE2 salt using fixed-width
|
|
203
208
|
* big-endian fields, not RLP. The account uses the chain-configured recovery
|
|
@@ -208,23 +213,23 @@ export function fromTuple(tuple) {
|
|
|
208
213
|
*
|
|
209
214
|
* @example
|
|
210
215
|
* ```ts twoslash
|
|
211
|
-
* import {
|
|
216
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
212
217
|
*
|
|
213
|
-
* const initialConfig =
|
|
218
|
+
* const initialConfig = AccountConfig.from({
|
|
214
219
|
* owners: [
|
|
215
220
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
216
221
|
* ],
|
|
217
222
|
* threshold: 1,
|
|
218
223
|
* })
|
|
219
224
|
*
|
|
220
|
-
* const address =
|
|
225
|
+
* const address = AccountConfig.getAddress(initialConfig, {
|
|
221
226
|
* factory: '0x7171717171717171717171717171717171717171'
|
|
222
227
|
* })
|
|
223
228
|
* ```
|
|
224
229
|
*
|
|
225
|
-
* @param config - The initial
|
|
230
|
+
* @param config - The initial account config.
|
|
226
231
|
* @param options - The recovery factory configured by the chain.
|
|
227
|
-
* @returns The
|
|
232
|
+
* @returns The configurable account address.
|
|
228
233
|
*/
|
|
229
234
|
export function getAddress(config, options) {
|
|
230
235
|
Address.assert(options.factory);
|
|
@@ -251,16 +256,16 @@ export function getAddress(config, options) {
|
|
|
251
256
|
return account;
|
|
252
257
|
}
|
|
253
258
|
/**
|
|
254
|
-
* Computes the commitment for
|
|
259
|
+
* Computes the commitment for an account configuration.
|
|
255
260
|
*
|
|
256
261
|
* The commitment uses raw fixed-width fields, not RLP or ABI encoding:
|
|
257
262
|
* `keccak256("tempo:multisig:config" || salt || uint64be(version) || uint8(threshold) || uint8(owners.length) || owners)`.
|
|
258
263
|
*
|
|
259
264
|
* @example
|
|
260
265
|
* ```ts twoslash
|
|
261
|
-
* import {
|
|
266
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
262
267
|
*
|
|
263
|
-
* const commitment =
|
|
268
|
+
* const commitment = AccountConfig.getCommitment({
|
|
264
269
|
* owners: [
|
|
265
270
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
266
271
|
* ],
|
|
@@ -269,7 +274,7 @@ export function getAddress(config, options) {
|
|
|
269
274
|
* })
|
|
270
275
|
* ```
|
|
271
276
|
*
|
|
272
|
-
* @param config - The complete
|
|
277
|
+
* @param config - The complete account configuration.
|
|
273
278
|
* @returns The configuration commitment.
|
|
274
279
|
*/
|
|
275
280
|
export function getCommitment(config) {
|
|
@@ -280,7 +285,7 @@ export function getCommitment(config) {
|
|
|
280
285
|
])));
|
|
281
286
|
}
|
|
282
287
|
/**
|
|
283
|
-
* Computes the digest a
|
|
288
|
+
* Computes the digest a configurable account owner approves (signs).
|
|
284
289
|
*
|
|
285
290
|
* `keccak256("tempo:multisig:signature" || inner_digest || account || uint64be(version))`,
|
|
286
291
|
* where `inner_digest` is the transaction sign payload
|
|
@@ -292,9 +297,9 @@ export function getCommitment(config) {
|
|
|
292
297
|
*
|
|
293
298
|
* @example
|
|
294
299
|
* ```ts twoslash
|
|
295
|
-
* import {
|
|
300
|
+
* import { AccountConfig, TxEnvelopeTempo } from 'ox/tempo'
|
|
296
301
|
*
|
|
297
|
-
* const config =
|
|
302
|
+
* const config = AccountConfig.from({
|
|
298
303
|
* owners: [
|
|
299
304
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
300
305
|
* ],
|
|
@@ -306,8 +311,8 @@ export function getCommitment(config) {
|
|
|
306
311
|
* calls: [],
|
|
307
312
|
* })
|
|
308
313
|
*
|
|
309
|
-
* const digest =
|
|
310
|
-
* account:
|
|
314
|
+
* const digest = AccountConfig.getSignPayload({
|
|
315
|
+
* account: AccountConfig.getAddress(config, {
|
|
311
316
|
* factory: '0x7171717171717171717171717171717171717171'
|
|
312
317
|
* }),
|
|
313
318
|
* config,
|
|
@@ -327,13 +332,13 @@ export function getSignPayload(value) {
|
|
|
327
332
|
return Hash.keccak256(Hex.concat(Hex.fromString(signatureDomain), Hex.from(payload), account, Hex.fromNumber(config.version ?? 0n, { size: 8 })));
|
|
328
333
|
}
|
|
329
334
|
/**
|
|
330
|
-
* Converts
|
|
335
|
+
* Converts an account configuration to its JSON-RPC representation.
|
|
331
336
|
*
|
|
332
337
|
* @example
|
|
333
338
|
* ```ts twoslash
|
|
334
|
-
* import {
|
|
339
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
335
340
|
*
|
|
336
|
-
* const config =
|
|
341
|
+
* const config = AccountConfig.toRpc({
|
|
337
342
|
* owners: [
|
|
338
343
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
339
344
|
* ],
|
|
@@ -341,8 +346,8 @@ export function getSignPayload(value) {
|
|
|
341
346
|
* })
|
|
342
347
|
* ```
|
|
343
348
|
*
|
|
344
|
-
* @param config - The
|
|
345
|
-
* @returns The JSON-RPC
|
|
349
|
+
* @param config - The account configuration.
|
|
350
|
+
* @returns The JSON-RPC account configuration.
|
|
346
351
|
*/
|
|
347
352
|
export function toRpc(config) {
|
|
348
353
|
const value = from(config);
|
|
@@ -357,7 +362,7 @@ export function toRpc(config) {
|
|
|
357
362
|
};
|
|
358
363
|
}
|
|
359
364
|
/**
|
|
360
|
-
* Converts a {@link ox#
|
|
365
|
+
* Converts a {@link ox#AccountConfig.Config} to its RLP tuple form.
|
|
361
366
|
*
|
|
362
367
|
* Tuple shape: `[salt, version, threshold, [[owner, weight], ...]]`. The
|
|
363
368
|
* 32-byte `salt` encodes as a full fixed-width string; other integers use
|
|
@@ -365,9 +370,9 @@ export function toRpc(config) {
|
|
|
365
370
|
*
|
|
366
371
|
* @example
|
|
367
372
|
* ```ts twoslash
|
|
368
|
-
* import {
|
|
373
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
369
374
|
*
|
|
370
|
-
* const tuple =
|
|
375
|
+
* const tuple = AccountConfig.toTuple({
|
|
371
376
|
* owners: [
|
|
372
377
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
373
378
|
* ],
|
|
@@ -375,7 +380,7 @@ export function toRpc(config) {
|
|
|
375
380
|
* })
|
|
376
381
|
* ```
|
|
377
382
|
*
|
|
378
|
-
* @param config - The
|
|
383
|
+
* @param config - The account config.
|
|
379
384
|
* @returns The RLP tuple.
|
|
380
385
|
*/
|
|
381
386
|
export function toTuple(config) {
|
|
@@ -393,14 +398,57 @@ export function toTuple(config) {
|
|
|
393
398
|
];
|
|
394
399
|
}
|
|
395
400
|
/**
|
|
396
|
-
*
|
|
401
|
+
* Derives the configuration that replaces the current one in an owner update.
|
|
402
|
+
*
|
|
403
|
+
* Mirrors the `updateConfig` precompile ([TIP-1109](https://tips.sh/1109)):
|
|
404
|
+
* keeps the current salt, increments the version by one, and replaces the
|
|
405
|
+
* owners and threshold. Owners are sorted into canonical order and the next
|
|
406
|
+
* configuration is validated. The account address does not change.
|
|
407
|
+
*
|
|
408
|
+
* @example
|
|
409
|
+
* ```ts twoslash
|
|
410
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
411
|
+
*
|
|
412
|
+
* const initialConfig = AccountConfig.from({
|
|
413
|
+
* owners: [
|
|
414
|
+
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
415
|
+
* ],
|
|
416
|
+
* threshold: 1,
|
|
417
|
+
* })
|
|
418
|
+
*
|
|
419
|
+
* const config = AccountConfig.update(initialConfig, {
|
|
420
|
+
* owners: [
|
|
421
|
+
* { owner: '0x2222222222222222222222222222222222222222', weight: 1 },
|
|
422
|
+
* ],
|
|
423
|
+
* threshold: 1,
|
|
424
|
+
* })
|
|
425
|
+
* // config.version === 1n, with the initial salt
|
|
426
|
+
* ```
|
|
427
|
+
*
|
|
428
|
+
* @param config - The current account config.
|
|
429
|
+
* @param options - The replacement owners and threshold.
|
|
430
|
+
* @returns The next account config.
|
|
431
|
+
*/
|
|
432
|
+
export function update(config, options) {
|
|
433
|
+
const current = from(config);
|
|
434
|
+
if (current.version === maxVersion)
|
|
435
|
+
throw new InvalidConfigError({ reason: 'version overflow' });
|
|
436
|
+
return from({
|
|
437
|
+
owners: options.owners,
|
|
438
|
+
salt: current.salt,
|
|
439
|
+
threshold: options.threshold,
|
|
440
|
+
version: current.version + 1n,
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Validates an {@link ox#AccountConfig.Config}. Returns `true`
|
|
397
445
|
* if valid, `false` otherwise.
|
|
398
446
|
*
|
|
399
447
|
* @example
|
|
400
448
|
* ```ts twoslash
|
|
401
|
-
* import {
|
|
449
|
+
* import { AccountConfig } from 'ox/tempo'
|
|
402
450
|
*
|
|
403
|
-
* const valid =
|
|
451
|
+
* const valid = AccountConfig.validate({
|
|
404
452
|
* owners: [
|
|
405
453
|
* { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
|
|
406
454
|
* ],
|
|
@@ -409,7 +457,7 @@ export function toTuple(config) {
|
|
|
409
457
|
* // @log: true
|
|
410
458
|
* ```
|
|
411
459
|
*
|
|
412
|
-
* @param config - The
|
|
460
|
+
* @param config - The account config.
|
|
413
461
|
* @returns Whether the config is valid.
|
|
414
462
|
*/
|
|
415
463
|
export function validate(config) {
|
|
@@ -421,15 +469,15 @@ export function validate(config) {
|
|
|
421
469
|
return false;
|
|
422
470
|
}
|
|
423
471
|
}
|
|
424
|
-
/** Thrown when
|
|
472
|
+
/** Thrown when an account config is invalid. */
|
|
425
473
|
export class InvalidConfigError extends Errors.BaseError {
|
|
426
474
|
constructor({ reason }) {
|
|
427
|
-
super(`Invalid
|
|
475
|
+
super(`Invalid account config: ${reason}.`);
|
|
428
476
|
Object.defineProperty(this, "name", {
|
|
429
477
|
enumerable: true,
|
|
430
478
|
configurable: true,
|
|
431
479
|
writable: true,
|
|
432
|
-
value: '
|
|
480
|
+
value: 'AccountConfig.InvalidConfigError'
|
|
433
481
|
});
|
|
434
482
|
}
|
|
435
483
|
}
|
|
@@ -443,4 +491,4 @@ function assertVersion(version) {
|
|
|
443
491
|
reason: 'version must be an unsigned 64-bit integer',
|
|
444
492
|
});
|
|
445
493
|
}
|
|
446
|
-
//# sourceMappingURL=
|
|
494
|
+
//# sourceMappingURL=AccountConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountConfig.js","sourceRoot":"","sources":["../../tempo/AccountConfig.ts"],"names":[],"mappings":"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"}
|