@aztec-labs/cli 6.0.0-rc.3 → 6.0.0-rc.4
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/dest/cmds/infrastructure/index.d.ts +1 -1
- package/dest/cmds/infrastructure/index.d.ts.map +1 -1
- package/dest/cmds/infrastructure/index.js +3 -2
- package/dest/cmds/infrastructure/sequencers.d.ts +4 -1
- package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
- package/dest/cmds/infrastructure/sequencers.js +10 -3
- package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts +1 -1
- package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts.map +1 -1
- package/dest/cmds/l1/deploy_l1_contracts_cmd.js +1 -0
- package/dest/cmds/l1/index.d.ts +1 -1
- package/dest/cmds/l1/index.d.ts.map +1 -1
- package/dest/cmds/l1/index.js +2 -1
- package/dest/cmds/l1/l1_rpc_test_utils.d.ts +10 -2
- package/dest/cmds/l1/l1_rpc_test_utils.d.ts.map +1 -1
- package/dest/cmds/l1/l1_rpc_test_utils.js +35 -1
- package/dest/cmds/l1/prover_stats.d.ts +1 -1
- package/dest/cmds/l1/prover_stats.d.ts.map +1 -1
- package/dest/cmds/l1/prover_stats.js +3 -4
- package/dest/cmds/l1/update_l1_validators.d.ts +3 -2
- package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
- package/dest/cmds/l1/update_l1_validators.js +6 -4
- package/dest/cmds/misc/generate_p2p_private_key.d.ts +1 -1
- package/dest/cmds/misc/generate_p2p_private_key.d.ts.map +1 -1
- package/dest/cmds/misc/generate_p2p_private_key.js +1 -0
- package/dest/cmds/validator_keys/add.d.ts +1 -1
- package/dest/cmds/validator_keys/add.d.ts.map +1 -1
- package/dest/cmds/validator_keys/add.js +14 -4
- package/dest/cmds/validator_keys/bls_key_derivation.d.ts +89 -0
- package/dest/cmds/validator_keys/bls_key_derivation.d.ts.map +1 -0
- package/dest/cmds/validator_keys/bls_key_derivation.js +122 -0
- package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +3 -2
- package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -1
- package/dest/cmds/validator_keys/generate_bls_keypair.js +16 -3
- package/dest/cmds/validator_keys/index.d.ts +1 -1
- package/dest/cmds/validator_keys/index.d.ts.map +1 -1
- package/dest/cmds/validator_keys/index.js +14 -3
- package/dest/cmds/validator_keys/new.d.ts +3 -2
- package/dest/cmds/validator_keys/new.d.ts.map +1 -1
- package/dest/cmds/validator_keys/new.js +47 -33
- package/dest/cmds/validator_keys/shared.d.ts +28 -3
- package/dest/cmds/validator_keys/shared.d.ts.map +1 -1
- package/dest/cmds/validator_keys/shared.js +48 -7
- package/dest/cmds/validator_keys/staker.d.ts +6 -1
- package/dest/cmds/validator_keys/staker.d.ts.map +1 -1
- package/dest/cmds/validator_keys/staker.js +32 -0
- package/dest/config/chain_l2_config.d.ts +1 -1
- package/dest/config/chain_l2_config.d.ts.map +1 -1
- package/dest/config/chain_l2_config.js +1 -1
- package/dest/config/enrich_env.d.ts +1 -1
- package/dest/config/enrich_env.d.ts.map +1 -1
- package/dest/config/enrich_env.js +1 -1
- package/dest/config/get_l1_config.d.ts +1 -1
- package/dest/config/get_l1_config.d.ts.map +1 -1
- package/dest/config/get_l1_config.js +2 -1
- package/dest/config/network_config.d.ts +1 -1
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +4 -2
- package/dest/utils/aztec.d.ts +1 -1
- package/dest/utils/aztec.d.ts.map +1 -1
- package/dest/utils/aztec.js +1 -0
- package/dest/utils/commands.d.ts +1 -1
- package/dest/utils/commands.d.ts.map +1 -1
- package/dest/utils/commands.js +3 -1
- package/dest/utils/encoding.d.ts +1 -1
- package/dest/utils/encoding.d.ts.map +1 -1
- package/dest/utils/encoding.js +1 -0
- package/package.json +25 -25
- package/src/cmds/infrastructure/index.ts +13 -1
- package/src/cmds/infrastructure/sequencers.ts +14 -4
- package/src/cmds/l1/deploy_l1_contracts_cmd.ts +1 -0
- package/src/cmds/l1/index.ts +6 -0
- package/src/cmds/l1/l1_rpc_test_utils.ts +25 -2
- package/src/cmds/l1/prover_stats.ts +3 -2
- package/src/cmds/l1/update_l1_validators.ts +10 -4
- package/src/cmds/misc/generate_p2p_private_key.ts +1 -0
- package/src/cmds/validator_keys/add.ts +15 -2
- package/src/cmds/validator_keys/bls_key_derivation.ts +209 -0
- package/src/cmds/validator_keys/generate_bls_keypair.ts +26 -5
- package/src/cmds/validator_keys/index.ts +32 -0
- package/src/cmds/validator_keys/new.ts +50 -32
- package/src/cmds/validator_keys/shared.ts +70 -8
- package/src/cmds/validator_keys/staker.ts +56 -0
- package/src/config/chain_l2_config.ts +1 -0
- package/src/config/enrich_env.ts +1 -0
- package/src/config/get_l1_config.ts +2 -1
- package/src/config/network_config.ts +4 -2
- package/src/utils/aztec.ts +1 -0
- package/src/utils/commands.ts +3 -1
- package/src/utils/encoding.ts +1 -0
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { prettyPrintJSON } from '@aztec-labs/cli/utils';
|
|
2
2
|
import { asyncPool } from '@aztec-labs/foundation/async-pool';
|
|
3
|
-
import {
|
|
3
|
+
import { getEnv } from '@aztec-labs/foundation/config/env';
|
|
4
4
|
import { createBn254Keystore } from '@aztec-labs/foundation/crypto/bls/bn254_keystore';
|
|
5
5
|
import { computeBn254G1PublicKeyCompressed } from '@aztec-labs/foundation/crypto/bn254';
|
|
6
6
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
7
7
|
import { Wallet } from '@ethersproject/wallet';
|
|
8
|
+
import { Buffer } from 'buffer';
|
|
8
9
|
import { constants as fsConstants, mkdirSync } from 'fs';
|
|
9
10
|
import { access, writeFile } from 'fs/promises';
|
|
10
11
|
import { availableParallelism, homedir } from 'os';
|
|
11
12
|
import { dirname, isAbsolute, join } from 'path';
|
|
12
13
|
import { mnemonicToAccount } from 'viem/accounts';
|
|
13
14
|
import { Worker } from 'worker_threads';
|
|
15
|
+
import { resolveBlsKeyDerivationPolicy, selectBlsKey } from './bls_key_derivation.js';
|
|
14
16
|
import { defaultBlsPath } from './utils.js';
|
|
15
17
|
// ethers' default scrypt parameters use substantial memory, so keep worker fan-out bounded.
|
|
16
18
|
const maxEthKeystoreWorkers = Math.max(1, Math.min(4, availableParallelism()));
|
|
@@ -50,7 +52,7 @@ function encryptEthJsonV3InWorker(privateKeyHex, password) {
|
|
|
50
52
|
});
|
|
51
53
|
}
|
|
52
54
|
async function encryptEthJsonV3(privateKeyHex, password) {
|
|
53
|
-
if (
|
|
55
|
+
if (getEnv().JEST_WORKER_ID !== undefined) {
|
|
54
56
|
return await new Wallet(privateKeyHex).encrypt(password);
|
|
55
57
|
}
|
|
56
58
|
return await encryptEthJsonV3InWorker(privateKeyHex, password);
|
|
@@ -63,7 +65,7 @@ export function withValidatorIndex(path, accountIndex = 0, addressIndex = 0) {
|
|
|
63
65
|
'1',
|
|
64
66
|
'yes',
|
|
65
67
|
'y'
|
|
66
|
-
].includes(
|
|
68
|
+
].includes(getEnv().LEGACY_BLS_CLI ?? '');
|
|
67
69
|
const defaultBlsPathParts = defaultBlsPath.split('/');
|
|
68
70
|
const parts = path.split('/');
|
|
69
71
|
if (parts.length == defaultBlsPathParts.length && parts.every((part, index)=>part === defaultBlsPathParts[index])) {
|
|
@@ -113,7 +115,7 @@ export function deriveEthAttester(mnemonic, baseAccountIndex, addressIndex, remo
|
|
|
113
115
|
} : address;
|
|
114
116
|
}
|
|
115
117
|
export async function buildValidatorEntries(input) {
|
|
116
|
-
const { validatorCount, publisherCount = 0, publishers, accountIndex, baseAddressIndex, mnemonic, ikm, blsPath, feeRecipient, coinbase, remoteSigner } = input;
|
|
118
|
+
const { validatorCount, publisherCount = 0, publishers, accountIndex, baseAddressIndex, mnemonic, ikm, blsPath, feeRecipient, coinbase, remoteSigner, blsKeyDerivation = resolveBlsKeyDerivationPolicy({}), generatedMnemonic } = input;
|
|
117
119
|
const summaries = [];
|
|
118
120
|
const validators = await Promise.all(Array.from({
|
|
119
121
|
length: validatorCount
|
|
@@ -121,7 +123,13 @@ export async function buildValidatorEntries(input) {
|
|
|
121
123
|
const addressIndex = baseAddressIndex + i;
|
|
122
124
|
const basePath = blsPath ?? defaultBlsPath;
|
|
123
125
|
const perValidatorPath = withValidatorIndex(basePath, accountIndex, addressIndex);
|
|
124
|
-
const
|
|
126
|
+
const blsKey = ikm || mnemonic ? selectBlsKey(blsKeyDerivation, {
|
|
127
|
+
mnemonic,
|
|
128
|
+
ikm,
|
|
129
|
+
perValidatorPath,
|
|
130
|
+
generatedMnemonic
|
|
131
|
+
}) : undefined;
|
|
132
|
+
const blsPrivKey = blsKey?.privateKey;
|
|
125
133
|
const blsPubCompressed = blsPrivKey ? await computeBlsPublicKeyCompressed(blsPrivKey) : undefined;
|
|
126
134
|
const ethAttester = deriveEthAttester(mnemonic, accountIndex, addressIndex, remoteSigner);
|
|
127
135
|
const attester = blsPrivKey ? {
|
|
@@ -159,6 +167,9 @@ export async function buildValidatorEntries(input) {
|
|
|
159
167
|
summaries.push({
|
|
160
168
|
attesterEth: attesterEthAddress,
|
|
161
169
|
attesterBls: blsPubCompressed,
|
|
170
|
+
blsPath: blsKey?.path,
|
|
171
|
+
blsCandidate: blsKey?.candidate,
|
|
172
|
+
blsMaxGas: blsKey?.maxGas,
|
|
162
173
|
publisherEth: publisherAddresses.length > 0 ? publisherAddresses : undefined
|
|
163
174
|
});
|
|
164
175
|
return {
|
|
@@ -219,6 +230,10 @@ export function logValidatorSummaries(log, summaries) {
|
|
|
219
230
|
if (v.attesterBls) {
|
|
220
231
|
lines.push(` bls: ${v.attesterBls}`);
|
|
221
232
|
}
|
|
233
|
+
if (v.blsCandidate) {
|
|
234
|
+
const maxGas = v.blsMaxGas !== undefined ? `, max gas ${v.blsMaxGas}` : '';
|
|
235
|
+
lines.push(` bls derivation path: ${v.blsPath} (candidate ${v.blsCandidate}${maxGas})`);
|
|
236
|
+
}
|
|
222
237
|
if (v.publisherEth && v.publisherEth.length > 0) {
|
|
223
238
|
lines.push(` publisher:`);
|
|
224
239
|
for (const addr of v.publisherEth){
|
|
@@ -226,10 +241,32 @@ export function logValidatorSummaries(log, summaries) {
|
|
|
226
241
|
}
|
|
227
242
|
}
|
|
228
243
|
}
|
|
244
|
+
if (summaries.some((v)=>v.blsCandidate)) {
|
|
245
|
+
lines.push('Some BLS keys were derived from a retry candidate (see "bls derivation path" above).', 'To regenerate them from the mnemonic, re-run with --bls-key-derivation-v6 and the same --bls-key-derivation-max-gas, if any.');
|
|
246
|
+
}
|
|
229
247
|
if (lines.length > 0) {
|
|
230
248
|
log(lines.join('\n'));
|
|
231
249
|
}
|
|
232
250
|
}
|
|
251
|
+
/** BLS keys in `summaries` that came from a retry candidate, for reporting alongside JSON output. */ export function getBlsKeyCandidates(summaries) {
|
|
252
|
+
return summaries.filter((v)=>v.blsCandidate).map((v)=>({
|
|
253
|
+
attesterEth: v.attesterEth,
|
|
254
|
+
bls: v.attesterBls,
|
|
255
|
+
path: v.blsPath,
|
|
256
|
+
candidate: v.blsCandidate,
|
|
257
|
+
...v.blsMaxGas !== undefined ? {
|
|
258
|
+
maxGas: v.blsMaxGas
|
|
259
|
+
} : {}
|
|
260
|
+
}));
|
|
261
|
+
}
|
|
262
|
+
/** Derivation path of each BLS key in `summaries`, keyed by its compressed public key. */ export function getBlsDerivationPaths(summaries) {
|
|
263
|
+
return new Map(summaries.flatMap((v)=>v.attesterBls && v.blsPath ? [
|
|
264
|
+
[
|
|
265
|
+
v.attesterBls,
|
|
266
|
+
v.blsPath
|
|
267
|
+
]
|
|
268
|
+
] : []));
|
|
269
|
+
}
|
|
233
270
|
export function maybePrintJson(log, jsonFlag, obj) {
|
|
234
271
|
if (jsonFlag) {
|
|
235
272
|
log(prettyPrintJSON(obj));
|
|
@@ -258,7 +295,11 @@ export function maybePrintJson(log, jsonFlag, obj) {
|
|
|
258
295
|
});
|
|
259
296
|
return outPath;
|
|
260
297
|
}
|
|
261
|
-
/**
|
|
298
|
+
/**
|
|
299
|
+
* Replace plaintext BLS keys in validators with { path, password } pointing to BN254 keystore files. Each file records
|
|
300
|
+
* the key's derivation path from `derivationPaths` (keyed by compressed public key), or an empty path for keys missing
|
|
301
|
+
* from it, such as keys that were already in a keystore file, whose origin is unknown.
|
|
302
|
+
*/ export async function writeBlsBn254ToFile(validators, options) {
|
|
262
303
|
await Promise.all(validators.map(async (v, i)=>{
|
|
263
304
|
if (!v || typeof v !== 'object' || !('attester' in v)) {
|
|
264
305
|
return;
|
|
@@ -270,7 +311,7 @@ export function maybePrintJson(log, jsonFlag, obj) {
|
|
|
270
311
|
return;
|
|
271
312
|
}
|
|
272
313
|
const pub = await computeBlsPublicKeyCompressed(blsKey);
|
|
273
|
-
const path = options.
|
|
314
|
+
const path = options.derivationPaths?.get(pub) ?? '';
|
|
274
315
|
const fileBase = `${String(i + 1)}_${pub.slice(2, 18)}`;
|
|
275
316
|
const keystorePath = await writeBn254BlsKeystore(options.outDir, fileBase, options.password, blsKey, pub, path);
|
|
276
317
|
if (typeof att === 'object') {
|
|
@@ -31,8 +31,13 @@ export type StakerOutput = {
|
|
|
31
31
|
* Process AttesterAccounts (which can be a single attester, array, or mnemonic)
|
|
32
32
|
*/
|
|
33
33
|
export declare function processAttesterAccounts(attesterAccounts: AttesterAccounts, gse: GSEContract, password?: string): Promise<StakerOutput[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Throws when registering any of `outputs` could fail because the proof-of-possession check of its BLS key is estimated
|
|
36
|
+
* to need more gas than the GSE gives it. Governance sets that limit and can change it, so it is read from L1.
|
|
37
|
+
*/
|
|
38
|
+
export declare function assertWithinProofOfPossessionGasLimit(gse: GSEContract, outputs: StakerOutput[]): Promise<void>;
|
|
34
39
|
/**
|
|
35
40
|
* Main staker command function
|
|
36
41
|
*/
|
|
37
42
|
export declare function generateStakerJson(options: StakerOptions, log: LogFn): Promise<void>;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy92YWxpZGF0b3Jfa2V5cy9zdGFrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSTdELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUVWLGdCQUFnQixFQUtqQixNQUFNLGlDQUFpQyxDQUFDO0FBU3pDLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQixNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEIsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2QixTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEIsU0FBUyxFQUFFLE1BQU0sQ0FBQztDQUNuQixDQUFDO0FBRUYsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLFdBQVcsRUFBRTtRQUNYLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDVixDQUFDLEVBQUUsTUFBTSxDQUFDO0tBQ1gsQ0FBQztJQUNGLFdBQVcsRUFBRTtRQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7UUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO1FBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7S0FDWixDQUFDO0lBQ0YsaUJBQWlCLEVBQUU7UUFDakIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNWLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDWCxDQUFDO0NBQ0gsQ0FBQztBQTJLRjs7R0FFRztBQUNILHdCQUFzQix1QkFBdUIsQ0FDM0MsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLEdBQUcsRUFBRSxXQUFXLEVBQ2hCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sR0FDaEIsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBcUJ6QjtBQUVEOzs7R0FHRztBQUNILHdCQUFzQixxQ0FBcUMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBdUNwSDtBQUVEOztHQUVHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBaUQxRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staker.d.ts","sourceRoot":"","sources":["../../../src/cmds/validator_keys/staker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"staker.d.ts","sourceRoot":"","sources":["../../../src/cmds/validator_keys/staker.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAEV,gBAAgB,EAKjB,MAAM,iCAAiC,CAAC;AASzC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QACX,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,iBAAiB,EAAE;QACjB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH,CAAC;AA2KF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,WAAW,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,EAAE,CAAC,CAqBzB;AAED;;;GAGG;AACH,wBAAsB,qCAAqC,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCpH;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD1F"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { GSEAbi } from '@aztec-foundation/l1-artifacts/GSEAbi';
|
|
1
2
|
import { prettyPrintJSON } from '@aztec-labs/cli/utils';
|
|
3
|
+
import { AMSTERDAM_PROOF_OF_POSSESSION_GAS_MODEL, computeBn254RegistrationDigest, estimateProofOfPossessionGas } from '@aztec-labs/ethereum/bn254';
|
|
2
4
|
import { createEthereumChain } from '@aztec-labs/ethereum/chain';
|
|
3
5
|
import { GSEContract } from '@aztec-labs/ethereum/contracts';
|
|
4
6
|
import { decryptBn254Keystore } from '@aztec-labs/foundation/crypto/bls/bn254_keystore';
|
|
@@ -10,6 +12,7 @@ import { readFileSync, writeFileSync } from 'fs';
|
|
|
10
12
|
import { basename, dirname, join } from 'path';
|
|
11
13
|
import { createPublicClient, fallback, http } from 'viem';
|
|
12
14
|
import { privateKeyToAddress } from 'viem/accounts';
|
|
15
|
+
import { LATEST_BLS_KEY_DERIVATION } from './bls_key_derivation.js';
|
|
13
16
|
/**
|
|
14
17
|
* Check if an object is a MnemonicConfig
|
|
15
18
|
*/ function isMnemonicConfig(obj) {
|
|
@@ -166,6 +169,34 @@ import { privateKeyToAddress } from 'viem/accounts';
|
|
|
166
169
|
result
|
|
167
170
|
] : [];
|
|
168
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Throws when registering any of `outputs` could fail because the proof-of-possession check of its BLS key is estimated
|
|
174
|
+
* to need more gas than the GSE gives it. Governance sets that limit and can change it, so it is read from L1.
|
|
175
|
+
*/ export async function assertWithinProofOfPossessionGasLimit(gse, outputs) {
|
|
176
|
+
const gasLimit = Number(await gse.client.readContract({
|
|
177
|
+
address: gse.address.toString(),
|
|
178
|
+
abi: GSEAbi,
|
|
179
|
+
functionName: 'proofOfPossessionGasLimit'
|
|
180
|
+
}));
|
|
181
|
+
const overLimit = outputs.map((output)=>{
|
|
182
|
+
const { attempts, sqrtCalls } = computeBn254RegistrationDigest({
|
|
183
|
+
x: BigInt(output.publicKeyG1.x),
|
|
184
|
+
y: BigInt(output.publicKeyG1.y)
|
|
185
|
+
});
|
|
186
|
+
return {
|
|
187
|
+
attester: output.attester,
|
|
188
|
+
estimatedGas: estimateProofOfPossessionGas(AMSTERDAM_PROOF_OF_POSSESSION_GAS_MODEL, attempts, sqrtCalls)
|
|
189
|
+
};
|
|
190
|
+
}).filter(({ estimatedGas })=>estimatedGas > gasLimit);
|
|
191
|
+
if (overLimit.length === 0) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
// Leave the same 10% margin below the limit that the derivation version budgets leave below the cap they target.
|
|
195
|
+
const { version, budget } = LATEST_BLS_KEY_DERIVATION;
|
|
196
|
+
const maxGas = Math.floor(gasLimit * 0.9);
|
|
197
|
+
const flags = maxGas < budget ? `--bls-key-derivation-v${version} --bls-key-derivation-max-gas ${maxGas}` : `--bls-key-derivation-v${version}`;
|
|
198
|
+
throw new Error(`Registering these validators could fail: the GSE at ${gse.address} gives each proof-of-possession check ` + `${gasLimit} gas, and the BLS keys of these attesters are estimated to need more: ` + `${overLimit.map(({ attester, estimatedGas })=>`${attester} (estimated at ${estimatedGas} gas)`).join(', ')}. ` + `To replace their BLS keys and keep their ETH keys, regenerate them with validator-keys new, the same mnemonic ` + `or IKM and indices, and ${flags}.`);
|
|
199
|
+
}
|
|
169
200
|
/**
|
|
170
201
|
* Main staker command function
|
|
171
202
|
*/ export async function generateStakerJson(options, log) {
|
|
@@ -203,6 +234,7 @@ import { privateKeyToAddress } from 'viem/accounts';
|
|
|
203
234
|
log('No attesters with BLS keys found (skipping mnemonics and encrypted keystores without password)');
|
|
204
235
|
return;
|
|
205
236
|
}
|
|
237
|
+
await assertWithinProofOfPossessionGasLimit(gse, allOutputs);
|
|
206
238
|
// Write a single JSON file with all staker outputs
|
|
207
239
|
const stakerOutputPath = join(outputDir, `${keystoreBaseName}_staker_output.json`);
|
|
208
240
|
writeFileSync(stakerOutputPath, prettyPrintJSON(allOutputs), 'utf-8');
|
|
@@ -16,4 +16,4 @@ export type ConsensusComplete = Record<ConsensusEnvVar, string | number | boolea
|
|
|
16
16
|
* @param networkName - The network name
|
|
17
17
|
*/
|
|
18
18
|
export declare function enrichEnvironmentWithChainName(networkName: NetworkNames): void;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fbDJfY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NoYWluX2wyX2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQThCLE1BQU0sMkJBQTJCLENBQUM7QUFhN0YsbUZBQW1GO0FBQ25GLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFpQm5GOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILHdCQUFnQiw4QkFBOEIsQ0FBQyxXQUFXLEVBQUUsWUFBWSxRQXdCdkUifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain_l2_config.d.ts","sourceRoot":"","sources":["../../src/config/chain_l2_config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chain_l2_config.d.ts","sourceRoot":"","sources":["../../src/config/chain_l2_config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,KAAK,eAAe,EAA8B,MAAM,2BAA2B,CAAC;AAa7F,mFAAmF;AACnF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAiBnF;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,YAAY,QAwBvE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createLogger } from '@aztec-labs/foundation/log';
|
|
1
|
+
/* eslint-disable no-restricted-properties -- this module sets variables of the Node.js process */ import { createLogger } from '@aztec-labs/foundation/log';
|
|
2
2
|
import { checkConsensusEnvOverrides } from '@aztec-labs/stdlib/config';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { devnetConfig, mainnetConfig, testnetConfig } from './generated/networks.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { EnvVar } from '@aztec-labs/foundation/config';
|
|
2
2
|
export declare function enrichVar(envVar: EnvVar, value: string | undefined): void;
|
|
3
3
|
export declare function enrichEthAddressVar(envVar: EnvVar, value: string): void;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5yaWNoX2Vudi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9lbnJpY2hfZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVELHdCQUFnQixTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsUUFNbEU7QUFFRCx3QkFBZ0IsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUdoRSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrich_env.d.ts","sourceRoot":"","sources":["../../src/config/enrich_env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enrich_env.d.ts","sourceRoot":"","sources":["../../src/config/enrich_env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE5D,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,QAMlE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAGhE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec-labs/aztec.js/addresses';
|
|
1
|
+
/* eslint-disable no-restricted-properties -- this module sets variables of the Node.js process */ import { EthAddress } from '@aztec-labs/aztec.js/addresses';
|
|
2
2
|
export function enrichVar(envVar, value) {
|
|
3
3
|
// Don't override
|
|
4
4
|
if (process.env[envVar] || value === undefined) {
|
|
@@ -6,4 +6,4 @@ export declare function getL1Config(registryAddress: EthAddress, l1RpcUrls: stri
|
|
|
6
6
|
config: Awaited<ReturnType<typeof getL1ContractsConfig>>;
|
|
7
7
|
}>;
|
|
8
8
|
export declare function getL1RollupAddressFromEnv(l1RpcUrls: string[], l1ChainId: number): Promise<EthAddress>;
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2wxX2NvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9nZXRfbDFfY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWhFLHdCQUFzQixXQUFXLENBQy9CLGVBQWUsRUFBRSxVQUFVLEVBQzNCLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsU0FBUyxFQUFFLE1BQU0sRUFDakIsYUFBYSxHQUFFLE1BQU0sR0FBRyxXQUF5QixHQUNoRCxPQUFPLENBQUM7SUFBRSxTQUFTLEVBQUUsbUJBQW1CLENBQUM7SUFBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLG9CQUFvQixDQUFDLENBQUMsQ0FBQTtDQUFFLENBQUMsQ0FVdkc7QUFFRCx3QkFBc0IseUJBQXlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQU9yRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_l1_config.d.ts","sourceRoot":"","sources":["../../src/config/get_l1_config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"get_l1_config.d.ts","sourceRoot":"","sources":["../../src/config/get_l1_config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,wBAAsB,WAAW,CAC/B,eAAe,EAAE,UAAU,EAC3B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,MAAM,GAAG,WAAyB,GAChD,OAAO,CAAC;IAAE,SAAS,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAA;CAAE,CAAC,CAUvG;AAED,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,uBAOrF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getPublicClient } from '@aztec-labs/ethereum/client';
|
|
2
2
|
import { RegistryContract } from '@aztec-labs/ethereum/contracts';
|
|
3
3
|
import { getL1ContractsConfig } from '@aztec-labs/ethereum/queries';
|
|
4
|
+
import { getEnv } from '@aztec-labs/foundation/config/env';
|
|
4
5
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
5
6
|
export async function getL1Config(registryAddress, l1RpcUrls, l1ChainId, rollupVersion = 'canonical') {
|
|
6
7
|
const publicClient = getPublicClient({
|
|
@@ -15,7 +16,7 @@ export async function getL1Config(registryAddress, l1RpcUrls, l1ChainId, rollupV
|
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
18
|
export async function getL1RollupAddressFromEnv(l1RpcUrls, l1ChainId) {
|
|
18
|
-
const registryAddress =
|
|
19
|
+
const registryAddress = getEnv().REGISTRY_CONTRACT_ADDRESS;
|
|
19
20
|
if (!registryAddress || !EthAddress.isAddress(registryAddress)) {
|
|
20
21
|
throw new Error(`Failed to extract registry address`);
|
|
21
22
|
}
|
|
@@ -19,4 +19,4 @@ export declare function getNetworkConfig(networkName: NetworkNames, cacheDir?: s
|
|
|
19
19
|
* Does not throw if the network simply doesn't exist in the config - just returns without enriching
|
|
20
20
|
*/
|
|
21
21
|
export declare function enrichEnvironmentWithNetworkConfig(networkName: NetworkNames): Promise<void>;
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya19jb25maWcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvbmV0d29ya19jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUEwQixLQUFLLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBWTlHOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUNwQyxXQUFXLEVBQUUsWUFBWSxFQUN6QixRQUFRLENBQUMsRUFBRSxNQUFNLEdBQ2hCLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBOEJwQztBQXNERDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixrQ0FBa0MsQ0FBQyxXQUFXLEVBQUUsWUFBWSxpQkFrQ2pGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network_config.d.ts","sourceRoot":"","sources":["../../src/config/network_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA0B,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"network_config.d.ts","sourceRoot":"","sources":["../../src/config/network_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA0B,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAY9G;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA8BpC;AAsDD;;;;;;;;GAQG;AACH,wBAAsB,kCAAkC,CAAC,WAAW,EAAE,YAAY,iBAkCjF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NetworkConfigMapSchema } from '@aztec-labs/foundation/config';
|
|
2
|
+
import { getEnv } from '@aztec-labs/foundation/config/env';
|
|
2
3
|
import { readFile } from 'fs/promises';
|
|
3
4
|
import { join } from 'path';
|
|
4
5
|
import { cachedFetch } from './cached_fetch.js';
|
|
@@ -15,7 +16,7 @@ const FALLBACK_CONFIG_URL = 'https://metadata.aztec.network/network_config.json'
|
|
|
15
16
|
* @throws Error if both primary and fallback URLs fail to fetch
|
|
16
17
|
*/ export async function getNetworkConfig(networkName, cacheDir) {
|
|
17
18
|
// Try with the primary URL (env var or default)
|
|
18
|
-
const configLocation =
|
|
19
|
+
const configLocation = getEnv().NETWORK_CONFIG_LOCATION || DEFAULT_CONFIG_URL;
|
|
19
20
|
let primaryError;
|
|
20
21
|
let config;
|
|
21
22
|
// First try the primary config location
|
|
@@ -92,7 +93,8 @@ const FALLBACK_CONFIG_URL = 'https://metadata.aztec.network/network_config.json'
|
|
|
92
93
|
if (networkName === 'local') {
|
|
93
94
|
return; // No remote config for local development
|
|
94
95
|
}
|
|
95
|
-
const
|
|
96
|
+
const { DATA_DIRECTORY } = getEnv();
|
|
97
|
+
const cacheDir = DATA_DIRECTORY ? join(DATA_DIRECTORY, 'cache') : undefined;
|
|
96
98
|
const networkConfig = await getNetworkConfig(networkName, cacheDir);
|
|
97
99
|
if (!networkConfig) {
|
|
98
100
|
return; // Network not found in config, continue without enriching
|
package/dest/utils/aztec.d.ts
CHANGED
|
@@ -53,4 +53,4 @@ export declare const stripLeadingHex: (hex: string) => string;
|
|
|
53
53
|
*/
|
|
54
54
|
export declare const addLeadingHex: (hex: string) => `0x${string}`;
|
|
55
55
|
export declare function prettyPrintNargoToml(config: NoirPackageConfig): string;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9henRlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBSWpCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRS9FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVdyRTs7Ozs7R0FLRztBQUNILHdCQUFnQixjQUFjLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsV0FBVyxDQU10RjtBQUVELHdCQUFzQix3QkFBd0IsQ0FDNUMsZUFBZSxFQUFFLFVBQVUsRUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUNqQixVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFDZixRQUFRLEVBQUUsTUFBTSxFQUNoQixhQUFhLEVBQUUsTUFBTSxFQUNyQixpQkFBaUIsRUFBRSxRQUFRLEVBQUUsRUFDN0Isa0JBQWtCLEVBQUUsRUFBRSxFQUN0Qiw0QkFBNEIsRUFBRSxNQUFNLEVBQ3BDLE1BQU0sRUFBRSxpQkFBaUIsRUFDekIsWUFBWSxFQUFFLE9BQU8sR0FDcEIsT0FBTyxDQUFDO0lBQUUsTUFBTSxFQUFFLGNBQWMsQ0FBQTtDQUFFLENBQUMsQ0EwQ3JDO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLHVCQUF1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUtqRTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyw2QkFrQ3BFO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSzs7OztHQU8zRztBQUVEOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZSx5QkFLM0IsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sYUFBYSxnQ0FLekIsQ0FBQztBQU9GLHdCQUFnQixvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEdBQUcsTUFBTSxDQVV0RSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec.d.ts","sourceRoot":"","sources":["../../src/utils/aztec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAIjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE/E,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"aztec.d.ts","sourceRoot":"","sources":["../../src/utils/aztec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAIjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE/E,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAWrE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAMtF;AAED,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,kBAAkB,EAAE,EAAE,EACtB,4BAA4B,EAAE,MAAM,EACpC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,CA0CrC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAKjE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,6BAkCpE;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK;;;;GAO3G;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,yBAK3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,gCAKzB,CAAC;AAOF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAUtE"}
|
package/dest/utils/aztec.js
CHANGED
|
@@ -5,6 +5,7 @@ import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
|
5
5
|
import { createLogger } from '@aztec-labs/foundation/log';
|
|
6
6
|
import { protocolContractsHash } from '@aztec-labs/protocol-contracts';
|
|
7
7
|
import TOML from '@iarna/toml';
|
|
8
|
+
import { Buffer } from 'buffer';
|
|
8
9
|
import { readFile } from 'fs/promises';
|
|
9
10
|
import { encodeArgs } from './encoding.js';
|
|
10
11
|
const logger = createLogger('cli:utils:aztec');
|
package/dest/utils/commands.d.ts
CHANGED
|
@@ -158,4 +158,4 @@ export declare function parseFields(fields: string[]): Fr[];
|
|
|
158
158
|
* @returns A JSON string
|
|
159
159
|
*/
|
|
160
160
|
export declare function prettyPrintJSON(data: Record<string, any>): string;
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb21tYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZELE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBd0MsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUVyQjs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sWUFBWSx1QkFHSSxDQUFDO0FBRTlCLGVBQU8sTUFBTSxTQUFTLFFBQXVCLENBQUM7QUFDOUMsZUFBTyxNQUFRLGNBQWMsVUFBK0IsV0FBVyxzQkFBRSxRQUFRLHNCQUFFLE9BQU8sc0JBQUUsV0FBVyxvQkFBYSxDQUFDO0FBRXJILHdCQUFnQixVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBRzdEO0FBRUQsZUFBTyxNQUFNLGNBQWMsZ0NB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/utils/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/utils/commands.ts"],"names":[],"mappings":"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"}
|
package/dest/utils/commands.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getEnv } from '@aztec-labs/foundation/config/env';
|
|
1
2
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
2
3
|
import { GrumpkinScalar } from '@aztec-labs/foundation/curves/grumpkin';
|
|
3
4
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
@@ -6,6 +7,7 @@ import { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
|
|
|
6
7
|
import { PublicKeys } from '@aztec-labs/stdlib/keys';
|
|
7
8
|
import { LogCursor, Tag } from '@aztec-labs/stdlib/logs';
|
|
8
9
|
import { TxHash } from '@aztec-labs/stdlib/tx/tx-hash';
|
|
10
|
+
import { Buffer } from 'buffer';
|
|
9
11
|
import { CommanderError, InvalidArgumentError, Option } from 'commander';
|
|
10
12
|
import { lookup } from 'dns/promises';
|
|
11
13
|
import { rename, writeFile } from 'fs/promises';
|
|
@@ -15,7 +17,7 @@ export { LogCursor };
|
|
|
15
17
|
* localhost as being host.docker.internal.
|
|
16
18
|
*/ export const getLocalhost = ()=>lookup('host.docker.internal').then(()=>'host.docker.internal').catch(()=>'localhost');
|
|
17
19
|
export const LOCALHOST = await getLocalhost();
|
|
18
|
-
export const { ETHEREUM_HOSTS = `http://${LOCALHOST}:8545`, PRIVATE_KEY, MNEMONIC, API_KEY, CLI_VERSION } =
|
|
20
|
+
export const { ETHEREUM_HOSTS = `http://${LOCALHOST}:8545`, PRIVATE_KEY, MNEMONIC, API_KEY, CLI_VERSION } = getEnv();
|
|
19
21
|
export function addOptions(program, options) {
|
|
20
22
|
options.forEach((option)=>program.addOption(option));
|
|
21
23
|
return program;
|
package/dest/utils/encoding.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export declare function parseStructString(str: string, abiType: StructType): any
|
|
|
12
12
|
* @returns The encoded array.
|
|
13
13
|
*/
|
|
14
14
|
export declare function encodeArgs(args: any[], params: ABIParameter[]): any[];
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQVcsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEY7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxPQWNqRTtBQTRFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQVk3RCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAW,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAW,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGhF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,OAcjE;AA4ED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAY7D"}
|
package/dest/utils/encoding.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec-labs/cli",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./devnet": "./dest/cmds/devnet/index.js",
|
|
@@ -76,19 +76,19 @@
|
|
|
76
76
|
]
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@aztec-foundation/l1-artifacts": "6.0.0-rc.
|
|
80
|
-
"@aztec-labs/accounts": "6.0.0-rc.
|
|
81
|
-
"@aztec-labs/archiver": "6.0.0-rc.
|
|
82
|
-
"@aztec-labs/aztec.js": "6.0.0-rc.
|
|
83
|
-
"@aztec-labs/constants": "6.0.0-rc.
|
|
84
|
-
"@aztec-labs/ethereum": "6.0.0-rc.
|
|
85
|
-
"@aztec-labs/foundation": "6.0.0-rc.
|
|
86
|
-
"@aztec-labs/node-keystore": "6.0.0-rc.
|
|
87
|
-
"@aztec-labs/p2p": "6.0.0-rc.
|
|
88
|
-
"@aztec-labs/protocol-contracts": "6.0.0-rc.
|
|
89
|
-
"@aztec-labs/stdlib": "6.0.0-rc.
|
|
90
|
-
"@aztec-labs/wallets": "6.0.0-rc.
|
|
91
|
-
"@aztec-labs/world-state": "6.0.0-rc.
|
|
79
|
+
"@aztec-foundation/l1-artifacts": "6.0.0-rc.7",
|
|
80
|
+
"@aztec-labs/accounts": "6.0.0-rc.4",
|
|
81
|
+
"@aztec-labs/archiver": "6.0.0-rc.4",
|
|
82
|
+
"@aztec-labs/aztec.js": "6.0.0-rc.4",
|
|
83
|
+
"@aztec-labs/constants": "6.0.0-rc.4",
|
|
84
|
+
"@aztec-labs/ethereum": "6.0.0-rc.4",
|
|
85
|
+
"@aztec-labs/foundation": "6.0.0-rc.4",
|
|
86
|
+
"@aztec-labs/node-keystore": "6.0.0-rc.4",
|
|
87
|
+
"@aztec-labs/p2p": "6.0.0-rc.4",
|
|
88
|
+
"@aztec-labs/protocol-contracts": "6.0.0-rc.4",
|
|
89
|
+
"@aztec-labs/stdlib": "6.0.0-rc.4",
|
|
90
|
+
"@aztec-labs/wallets": "6.0.0-rc.4",
|
|
91
|
+
"@aztec-labs/world-state": "6.0.0-rc.4",
|
|
92
92
|
"@ethersproject/wallet": "^5.8.0",
|
|
93
93
|
"@iarna/toml": "^2.2.5",
|
|
94
94
|
"@libp2p/peer-id-factory": "^3.0.4",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"semver": "^7.5.4",
|
|
100
100
|
"source-map-support": "^0.5.21",
|
|
101
101
|
"tslib": "^2.4.0",
|
|
102
|
-
"viem": "
|
|
102
|
+
"viem": "2.57.1"
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
105
|
"@jest/globals": "^30.0.0",
|
|
@@ -118,15 +118,15 @@
|
|
|
118
118
|
"typescript": "^5.3.3"
|
|
119
119
|
},
|
|
120
120
|
"peerDependencies": {
|
|
121
|
-
"@aztec-foundation/l1-artifacts": "6.0.0-rc.
|
|
122
|
-
"@aztec-labs/accounts": "6.0.0-rc.
|
|
123
|
-
"@aztec-labs/bb-prover": "6.0.0-rc.
|
|
124
|
-
"@aztec-labs/ethereum": "6.0.0-rc.
|
|
125
|
-
"@aztec-labs/noir-contracts.js": "6.0.0-rc.
|
|
126
|
-
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.
|
|
127
|
-
"@aztec-labs/noir-test-contracts.js": "6.0.0-rc.
|
|
128
|
-
"@aztec-labs/protocol-contracts": "6.0.0-rc.
|
|
129
|
-
"@aztec-labs/stdlib": "6.0.0-rc.
|
|
121
|
+
"@aztec-foundation/l1-artifacts": "6.0.0-rc.7",
|
|
122
|
+
"@aztec-labs/accounts": "6.0.0-rc.4",
|
|
123
|
+
"@aztec-labs/bb-prover": "6.0.0-rc.4",
|
|
124
|
+
"@aztec-labs/ethereum": "6.0.0-rc.4",
|
|
125
|
+
"@aztec-labs/noir-contracts.js": "6.0.0-rc.4",
|
|
126
|
+
"@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.4",
|
|
127
|
+
"@aztec-labs/noir-test-contracts.js": "6.0.0-rc.4",
|
|
128
|
+
"@aztec-labs/protocol-contracts": "6.0.0-rc.4",
|
|
129
|
+
"@aztec-labs/stdlib": "6.0.0-rc.4"
|
|
130
130
|
},
|
|
131
131
|
"files": [
|
|
132
132
|
"dest",
|
|
@@ -136,6 +136,6 @@
|
|
|
136
136
|
],
|
|
137
137
|
"types": "./dest/index.d.ts",
|
|
138
138
|
"engines": {
|
|
139
|
-
"node": ">=20.
|
|
139
|
+
"node": ">=20.16"
|
|
140
140
|
}
|
|
141
141
|
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { LogFn } from '@aztec-labs/foundation/log';
|
|
2
2
|
import type { Command } from 'commander';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
ETHEREUM_HOSTS,
|
|
6
|
+
l1ChainIdOption,
|
|
7
|
+
nodeOption,
|
|
8
|
+
parseEthereumAddress,
|
|
9
|
+
parseOptionalInteger,
|
|
10
|
+
} from '../../utils/commands.js';
|
|
5
11
|
|
|
6
12
|
export function injectCommands(program: Command, log: LogFn) {
|
|
7
13
|
program
|
|
@@ -19,6 +25,11 @@ export function injectCommands(program: Command, log: LogFn) {
|
|
|
19
25
|
.command('sequencers')
|
|
20
26
|
.argument('<command>', 'Command to run: list, add, remove, who-next')
|
|
21
27
|
.argument('[who]', 'Who to add/remove')
|
|
28
|
+
.option(
|
|
29
|
+
'--recipient <address>',
|
|
30
|
+
'For remove (required): address that receives the withdrawn stake; it cannot be changed once set',
|
|
31
|
+
parseEthereumAddress,
|
|
32
|
+
)
|
|
22
33
|
.description('Manages or queries registered sequencers on the L1 rollup contract.')
|
|
23
34
|
.requiredOption<string[]>(
|
|
24
35
|
'--l1-rpc-urls <string>',
|
|
@@ -39,6 +50,7 @@ export function injectCommands(program: Command, log: LogFn) {
|
|
|
39
50
|
await sequencers({
|
|
40
51
|
command: command,
|
|
41
52
|
who,
|
|
53
|
+
recipient: options.recipient,
|
|
42
54
|
mnemonic: options.mnemonic,
|
|
43
55
|
nodeUrl: options.nodeUrl,
|
|
44
56
|
l1RpcUrls: options.l1RpcUrls,
|