@aztec-labs/cli 6.0.0-rc.2 → 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.
Files changed (92) hide show
  1. package/dest/cmds/infrastructure/index.d.ts +1 -1
  2. package/dest/cmds/infrastructure/index.d.ts.map +1 -1
  3. package/dest/cmds/infrastructure/index.js +3 -2
  4. package/dest/cmds/infrastructure/sequencers.d.ts +4 -1
  5. package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
  6. package/dest/cmds/infrastructure/sequencers.js +10 -3
  7. package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts +1 -1
  8. package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts.map +1 -1
  9. package/dest/cmds/l1/deploy_l1_contracts_cmd.js +1 -0
  10. package/dest/cmds/l1/index.d.ts +1 -1
  11. package/dest/cmds/l1/index.d.ts.map +1 -1
  12. package/dest/cmds/l1/index.js +2 -1
  13. package/dest/cmds/l1/l1_rpc_test_utils.d.ts +10 -2
  14. package/dest/cmds/l1/l1_rpc_test_utils.d.ts.map +1 -1
  15. package/dest/cmds/l1/l1_rpc_test_utils.js +35 -1
  16. package/dest/cmds/l1/prover_stats.d.ts +1 -1
  17. package/dest/cmds/l1/prover_stats.d.ts.map +1 -1
  18. package/dest/cmds/l1/prover_stats.js +3 -4
  19. package/dest/cmds/l1/update_l1_validators.d.ts +3 -2
  20. package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
  21. package/dest/cmds/l1/update_l1_validators.js +6 -4
  22. package/dest/cmds/misc/generate_p2p_private_key.d.ts +1 -1
  23. package/dest/cmds/misc/generate_p2p_private_key.d.ts.map +1 -1
  24. package/dest/cmds/misc/generate_p2p_private_key.js +1 -0
  25. package/dest/cmds/validator_keys/add.d.ts +1 -1
  26. package/dest/cmds/validator_keys/add.d.ts.map +1 -1
  27. package/dest/cmds/validator_keys/add.js +14 -4
  28. package/dest/cmds/validator_keys/bls_key_derivation.d.ts +89 -0
  29. package/dest/cmds/validator_keys/bls_key_derivation.d.ts.map +1 -0
  30. package/dest/cmds/validator_keys/bls_key_derivation.js +122 -0
  31. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +3 -2
  32. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -1
  33. package/dest/cmds/validator_keys/generate_bls_keypair.js +16 -3
  34. package/dest/cmds/validator_keys/index.d.ts +1 -1
  35. package/dest/cmds/validator_keys/index.d.ts.map +1 -1
  36. package/dest/cmds/validator_keys/index.js +14 -3
  37. package/dest/cmds/validator_keys/new.d.ts +3 -2
  38. package/dest/cmds/validator_keys/new.d.ts.map +1 -1
  39. package/dest/cmds/validator_keys/new.js +47 -33
  40. package/dest/cmds/validator_keys/shared.d.ts +28 -3
  41. package/dest/cmds/validator_keys/shared.d.ts.map +1 -1
  42. package/dest/cmds/validator_keys/shared.js +48 -7
  43. package/dest/cmds/validator_keys/staker.d.ts +6 -1
  44. package/dest/cmds/validator_keys/staker.d.ts.map +1 -1
  45. package/dest/cmds/validator_keys/staker.js +32 -0
  46. package/dest/config/chain_l2_config.d.ts +1 -1
  47. package/dest/config/chain_l2_config.d.ts.map +1 -1
  48. package/dest/config/chain_l2_config.js +1 -1
  49. package/dest/config/enrich_env.d.ts +1 -1
  50. package/dest/config/enrich_env.d.ts.map +1 -1
  51. package/dest/config/enrich_env.js +1 -1
  52. package/dest/config/generated/networks.d.ts +2 -2
  53. package/dest/config/generated/networks.js +2 -2
  54. package/dest/config/get_l1_config.d.ts +1 -1
  55. package/dest/config/get_l1_config.d.ts.map +1 -1
  56. package/dest/config/get_l1_config.js +2 -1
  57. package/dest/config/network_config.d.ts +1 -1
  58. package/dest/config/network_config.d.ts.map +1 -1
  59. package/dest/config/network_config.js +4 -2
  60. package/dest/utils/aztec.d.ts +1 -1
  61. package/dest/utils/aztec.d.ts.map +1 -1
  62. package/dest/utils/aztec.js +1 -0
  63. package/dest/utils/commands.d.ts +1 -1
  64. package/dest/utils/commands.d.ts.map +1 -1
  65. package/dest/utils/commands.js +3 -1
  66. package/dest/utils/encoding.d.ts +1 -1
  67. package/dest/utils/encoding.d.ts.map +1 -1
  68. package/dest/utils/encoding.js +1 -0
  69. package/package.json +25 -25
  70. package/src/cmds/infrastructure/index.ts +13 -1
  71. package/src/cmds/infrastructure/sequencers.ts +14 -4
  72. package/src/cmds/l1/deploy_l1_contracts_cmd.ts +1 -0
  73. package/src/cmds/l1/index.ts +6 -0
  74. package/src/cmds/l1/l1_rpc_test_utils.ts +25 -2
  75. package/src/cmds/l1/prover_stats.ts +3 -2
  76. package/src/cmds/l1/update_l1_validators.ts +10 -4
  77. package/src/cmds/misc/generate_p2p_private_key.ts +1 -0
  78. package/src/cmds/validator_keys/add.ts +15 -2
  79. package/src/cmds/validator_keys/bls_key_derivation.ts +209 -0
  80. package/src/cmds/validator_keys/generate_bls_keypair.ts +26 -5
  81. package/src/cmds/validator_keys/index.ts +32 -0
  82. package/src/cmds/validator_keys/new.ts +50 -32
  83. package/src/cmds/validator_keys/shared.ts +70 -8
  84. package/src/cmds/validator_keys/staker.ts +56 -0
  85. package/src/config/chain_l2_config.ts +1 -0
  86. package/src/config/enrich_env.ts +1 -0
  87. package/src/config/generated/networks.ts +2 -2
  88. package/src/config/get_l1_config.ts +2 -1
  89. package/src/config/network_config.ts +4 -2
  90. package/src/utils/aztec.ts +1 -0
  91. package/src/utils/commands.ts +3 -1
  92. 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 { deriveBlsPrivateKey } from '@aztec-labs/foundation/crypto/bls';
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 (process.env.JEST_WORKER_ID !== undefined) {
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(process.env.LEGACY_BLS_CLI ?? '');
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 blsPrivKey = ikm || mnemonic ? deriveBlsPrivateKey(mnemonic, ikm, perValidatorPath) : undefined;
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
- /** Replace plaintext BLS keys in validators with { path, password } pointing to BN254 keystore files. */ export async function writeBlsBn254ToFile(validators, options) {
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.blsPath ?? defaultBlsPath;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy92YWxpZGF0b3Jfa2V5cy9zdGFrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSTdELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUVWLGdCQUFnQixFQUtqQixNQUFNLGlDQUFpQyxDQUFDO0FBT3pDLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQixNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEIsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2QixTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDcEIsU0FBUyxFQUFFLE1BQU0sQ0FBQztDQUNuQixDQUFDO0FBRUYsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLFdBQVcsRUFBRTtRQUNYLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDVixDQUFDLEVBQUUsTUFBTSxDQUFDO0tBQ1gsQ0FBQztJQUNGLFdBQVcsRUFBRTtRQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7UUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO1FBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7S0FDWixDQUFDO0lBQ0YsaUJBQWlCLEVBQUU7UUFDakIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNWLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDWCxDQUFDO0NBQ0gsQ0FBQztBQTJLRjs7R0FFRztBQUNILHdCQUFzQix1QkFBdUIsQ0FDM0MsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLEdBQUcsRUFBRSxXQUFXLEVBQ2hCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sR0FDaEIsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBcUJ6QjtBQUVEOztHQUVHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBK0MxRiJ9
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":"AAEA,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;AAOzC,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;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C1F"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fbDJfY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NoYWluX2wyX2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQThCLE1BQU0sMkJBQTJCLENBQUM7QUFhN0YsbUZBQW1GO0FBQ25GLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFpQm5GOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILHdCQUFnQiw4QkFBOEIsQ0FBQyxXQUFXLEVBQUUsWUFBWSxRQXdCdkUifQ==
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":"AAAA,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
+ {"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5yaWNoX2Vudi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9lbnJpY2hfZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVELHdCQUFnQixTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsUUFNbEU7QUFFRCx3QkFBZ0IsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUdoRSJ9
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":"AACA,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
+ {"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) {
@@ -87,7 +87,7 @@ export declare const testnetConfig: {
87
87
  readonly AZTEC_EPOCH_DURATION: 32;
88
88
  readonly AZTEC_TARGET_COMMITTEE_SIZE: 48;
89
89
  readonly AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2;
90
- readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 2;
90
+ readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 1;
91
91
  readonly AZTEC_EXIT_DELAY_SECONDS: 172800;
92
92
  readonly AZTEC_PROOF_SUBMISSION_EPOCHS: 1;
93
93
  readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000;
@@ -163,7 +163,7 @@ export declare const mainnetConfig: {
163
163
  readonly AZTEC_EPOCH_DURATION: 32;
164
164
  readonly AZTEC_TARGET_COMMITTEE_SIZE: 48;
165
165
  readonly AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2;
166
- readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 2;
166
+ readonly AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 1;
167
167
  readonly AZTEC_PROOF_SUBMISSION_EPOCHS: 1;
168
168
  readonly AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000;
169
169
  readonly AZTEC_SLASHER_ENABLED: true;
@@ -89,7 +89,7 @@ export const testnetConfig = {
89
89
  AZTEC_EPOCH_DURATION: 32,
90
90
  AZTEC_TARGET_COMMITTEE_SIZE: 48,
91
91
  AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2,
92
- AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 2,
92
+ AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 1,
93
93
  AZTEC_EXIT_DELAY_SECONDS: 172800,
94
94
  AZTEC_PROOF_SUBMISSION_EPOCHS: 1,
95
95
  AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000,
@@ -165,7 +165,7 @@ export const mainnetConfig = {
165
165
  AZTEC_EPOCH_DURATION: 32,
166
166
  AZTEC_TARGET_COMMITTEE_SIZE: 48,
167
167
  AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2,
168
- AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 2,
168
+ AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 1,
169
169
  AZTEC_PROOF_SUBMISSION_EPOCHS: 1,
170
170
  AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000,
171
171
  AZTEC_SLASHER_ENABLED: true,
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2wxX2NvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9nZXRfbDFfY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWhFLHdCQUFzQixXQUFXLENBQy9CLGVBQWUsRUFBRSxVQUFVLEVBQzNCLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsU0FBUyxFQUFFLE1BQU0sRUFDakIsYUFBYSxHQUFFLE1BQU0sR0FBRyxXQUF5QixHQUNoRCxPQUFPLENBQUM7SUFBRSxTQUFTLEVBQUUsbUJBQW1CLENBQUM7SUFBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLG9CQUFvQixDQUFDLENBQUMsQ0FBQTtDQUFFLENBQUMsQ0FVdkc7QUFFRCx3QkFBc0IseUJBQXlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQU9yRiJ9
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;AACpE,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
+ {"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 = process.env.REGISTRY_CONTRACT_ADDRESS;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya19jb25maWcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvbmV0d29ya19jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUEwQixLQUFLLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBVzlHOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUNwQyxXQUFXLEVBQUUsWUFBWSxFQUN6QixRQUFRLENBQUMsRUFBRSxNQUFNLEdBQ2hCLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBOEJwQztBQXNERDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixrQ0FBa0MsQ0FBQyxXQUFXLEVBQUUsWUFBWSxpQkFpQ2pGIn0=
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;AAW9G;;;;;;;;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,iBAiCjF"}
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 = process.env.NETWORK_CONFIG_LOCATION || DEFAULT_CONFIG_URL;
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 cacheDir = process.env.DATA_DIRECTORY ? join(process.env.DATA_DIRECTORY, 'cache') : undefined;
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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9henRlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBSWpCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRS9FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVVyRTs7Ozs7R0FLRztBQUNILHdCQUFnQixjQUFjLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsV0FBVyxDQU10RjtBQUVELHdCQUFzQix3QkFBd0IsQ0FDNUMsZUFBZSxFQUFFLFVBQVUsRUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUNqQixVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFDZixRQUFRLEVBQUUsTUFBTSxFQUNoQixhQUFhLEVBQUUsTUFBTSxFQUNyQixpQkFBaUIsRUFBRSxRQUFRLEVBQUUsRUFDN0Isa0JBQWtCLEVBQUUsRUFBRSxFQUN0Qiw0QkFBNEIsRUFBRSxNQUFNLEVBQ3BDLE1BQU0sRUFBRSxpQkFBaUIsRUFDekIsWUFBWSxFQUFFLE9BQU8sR0FDcEIsT0FBTyxDQUFDO0lBQUUsTUFBTSxFQUFFLGNBQWMsQ0FBQTtDQUFFLENBQUMsQ0EwQ3JDO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLHVCQUF1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUtqRTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyw2QkFrQ3BFO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSzs7OztHQU8zRztBQUVEOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZSx5QkFLM0IsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sYUFBYSxnQ0FLekIsQ0FBQztBQU9GLHdCQUFnQixvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEdBQUcsTUFBTSxDQVV0RSJ9
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;AAUrE;;;;;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"}
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"}
@@ -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');
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb21tYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBd0MsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUVyQjs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sWUFBWSx1QkFHSSxDQUFDO0FBRTlCLGVBQU8sTUFBTSxTQUFTLFFBQXVCLENBQUM7QUFDOUMsZUFBTyxNQUFRLGNBQWMsVUFBK0IsV0FBVyxzQkFBRSxRQUFRLHNCQUFFLE9BQU8sc0JBQUUsV0FBVyxvQkFBZ0IsQ0FBQztBQUV4SCx3QkFBZ0IsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUc3RDtBQUVELGVBQU8sTUFBTSxjQUFjLGdD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
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":"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"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/utils/commands.ts"],"names":[],"mappings":"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"}
@@ -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 } = process.env;
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;
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQVcsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEY7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxPQWNqRTtBQTRFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQVk3RCJ9
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;AAEhF;;;;;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"}
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"}
@@ -1,4 +1,5 @@
1
1
  import { Fr } from '@aztec-labs/foundation/curves/bn254';
2
+ import { Buffer } from 'buffer';
2
3
  /**
3
4
  * Parses a hex string into an ABI struct type.
4
5
  * @param str - The encoded hex string.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec-labs/cli",
3
- "version": "6.0.0-rc.2",
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.5",
80
- "@aztec-labs/accounts": "6.0.0-rc.2",
81
- "@aztec-labs/archiver": "6.0.0-rc.2",
82
- "@aztec-labs/aztec.js": "6.0.0-rc.2",
83
- "@aztec-labs/constants": "6.0.0-rc.2",
84
- "@aztec-labs/ethereum": "6.0.0-rc.2",
85
- "@aztec-labs/foundation": "6.0.0-rc.2",
86
- "@aztec-labs/node-keystore": "6.0.0-rc.2",
87
- "@aztec-labs/p2p": "6.0.0-rc.2",
88
- "@aztec-labs/protocol-contracts": "6.0.0-rc.2",
89
- "@aztec-labs/stdlib": "6.0.0-rc.2",
90
- "@aztec-labs/wallets": "6.0.0-rc.2",
91
- "@aztec-labs/world-state": "6.0.0-rc.2",
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": "npm:@aztec/viem@2.38.3"
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.5",
122
- "@aztec-labs/accounts": "6.0.0-rc.2",
123
- "@aztec-labs/bb-prover": "6.0.0-rc.2",
124
- "@aztec-labs/ethereum": "6.0.0-rc.2",
125
- "@aztec-labs/noir-contracts.js": "6.0.0-rc.2",
126
- "@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.2",
127
- "@aztec-labs/noir-test-contracts.js": "6.0.0-rc.2",
128
- "@aztec-labs/protocol-contracts": "6.0.0-rc.2",
129
- "@aztec-labs/stdlib": "6.0.0-rc.2"
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.10"
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 { ETHEREUM_HOSTS, l1ChainIdOption, nodeOption, parseOptionalInteger } from '../../utils/commands.js';
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,