@aztec/cli 0.0.1-commit.b655e406 → 0.0.1-commit.c7c42ec

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 (158) hide show
  1. package/README.md +1 -1
  2. package/dest/cmds/aztec_node/block_number.d.ts +1 -1
  3. package/dest/cmds/aztec_node/get_block.d.ts +1 -1
  4. package/dest/cmds/aztec_node/get_block.d.ts.map +1 -1
  5. package/dest/cmds/aztec_node/get_block.js +2 -1
  6. package/dest/cmds/aztec_node/get_current_base_fee.d.ts +1 -1
  7. package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts +1 -1
  8. package/dest/cmds/aztec_node/get_logs.d.ts +3 -2
  9. package/dest/cmds/aztec_node/get_logs.d.ts.map +1 -1
  10. package/dest/cmds/aztec_node/get_node_info.d.ts +1 -1
  11. package/dest/cmds/aztec_node/index.d.ts +1 -1
  12. package/dest/cmds/contracts/index.d.ts +1 -1
  13. package/dest/cmds/contracts/inspect_contract.d.ts +1 -1
  14. package/dest/cmds/contracts/inspect_contract.d.ts.map +1 -1
  15. package/dest/cmds/contracts/inspect_contract.js +4 -10
  16. package/dest/cmds/contracts/parse_parameter_struct.d.ts +1 -1
  17. package/dest/cmds/infrastructure/index.d.ts +1 -1
  18. package/dest/cmds/infrastructure/index.d.ts.map +1 -1
  19. package/dest/cmds/infrastructure/index.js +0 -1
  20. package/dest/cmds/infrastructure/sequencers.d.ts +1 -2
  21. package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
  22. package/dest/cmds/infrastructure/sequencers.js +9 -3
  23. package/dest/cmds/infrastructure/setup_l2_contract.d.ts +1 -1
  24. package/dest/cmds/l1/advance_epoch.d.ts +1 -1
  25. package/dest/cmds/l1/assume_proven_through.d.ts +1 -1
  26. package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -1
  27. package/dest/cmds/l1/assume_proven_through.js +2 -1
  28. package/dest/cmds/l1/bridge_erc20.d.ts +1 -1
  29. package/dest/cmds/l1/bridge_erc20.d.ts.map +1 -1
  30. package/dest/cmds/l1/bridge_erc20.js +2 -1
  31. package/dest/cmds/l1/create_l1_account.d.ts +1 -1
  32. package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts +4 -0
  33. package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts.map +1 -0
  34. package/dest/cmds/l1/{deploy_l1_contracts.js → deploy_l1_contracts_cmd.js} +39 -4
  35. package/dest/cmds/l1/deploy_new_rollup.d.ts +4 -4
  36. package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -1
  37. package/dest/cmds/l1/deploy_new_rollup.js +3 -3
  38. package/dest/cmds/l1/get_l1_addresses.d.ts +1 -1
  39. package/dest/cmds/l1/get_l1_addresses.d.ts.map +1 -1
  40. package/dest/cmds/l1/get_l1_addresses.js +5 -2
  41. package/dest/cmds/l1/get_l1_balance.d.ts +1 -1
  42. package/dest/cmds/l1/get_l1_balance.js +4 -2
  43. package/dest/cmds/l1/governance_utils.d.ts +5 -5
  44. package/dest/cmds/l1/governance_utils.d.ts.map +1 -1
  45. package/dest/cmds/l1/governance_utils.js +3 -1
  46. package/dest/cmds/l1/index.d.ts +1 -2
  47. package/dest/cmds/l1/index.d.ts.map +1 -1
  48. package/dest/cmds/l1/index.js +10 -8
  49. package/dest/cmds/l1/prover_stats.d.ts +1 -1
  50. package/dest/cmds/l1/prover_stats.d.ts.map +1 -1
  51. package/dest/cmds/l1/prover_stats.js +32 -30
  52. package/dest/cmds/l1/trigger_seed_snapshot.d.ts +2 -2
  53. package/dest/cmds/l1/trigger_seed_snapshot.d.ts.map +1 -1
  54. package/dest/cmds/l1/trigger_seed_snapshot.js +2 -1
  55. package/dest/cmds/l1/update_l1_validators.d.ts +6 -6
  56. package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
  57. package/dest/cmds/l1/update_l1_validators.js +7 -3
  58. package/dest/cmds/misc/compute_selector.d.ts +1 -1
  59. package/dest/cmds/misc/example_contracts.d.ts +1 -1
  60. package/dest/cmds/misc/generate_bootnode_enr.d.ts +1 -1
  61. package/dest/cmds/misc/generate_p2p_private_key.d.ts +1 -1
  62. package/dest/cmds/misc/generate_secret_and_hash.d.ts +1 -1
  63. package/dest/cmds/misc/generate_secret_and_hash.js +1 -1
  64. package/dest/cmds/misc/generate_secret_key.d.ts +1 -1
  65. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts +1 -1
  66. package/dest/cmds/misc/index.d.ts +1 -1
  67. package/dest/cmds/misc/index.d.ts.map +1 -1
  68. package/dest/cmds/misc/index.js +1 -1
  69. package/dest/cmds/misc/update/common.d.ts +1 -1
  70. package/dest/cmds/misc/update/github.d.ts +1 -1
  71. package/dest/cmds/misc/update/noir.d.ts +1 -1
  72. package/dest/cmds/misc/update/npm.d.ts +1 -1
  73. package/dest/cmds/misc/update/npm.js +1 -1
  74. package/dest/cmds/misc/update/utils.d.ts +1 -1
  75. package/dest/cmds/misc/update.d.ts +1 -1
  76. package/dest/cmds/validator_keys/add.d.ts +1 -1
  77. package/dest/cmds/validator_keys/add.d.ts.map +1 -1
  78. package/dest/cmds/validator_keys/add.js +20 -7
  79. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +1 -1
  80. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -1
  81. package/dest/cmds/validator_keys/generate_bls_keypair.js +3 -2
  82. package/dest/cmds/validator_keys/index.d.ts +1 -1
  83. package/dest/cmds/validator_keys/index.d.ts.map +1 -1
  84. package/dest/cmds/validator_keys/index.js +16 -4
  85. package/dest/cmds/validator_keys/new.d.ts +7 -4
  86. package/dest/cmds/validator_keys/new.d.ts.map +1 -1
  87. package/dest/cmds/validator_keys/new.js +90 -16
  88. package/dest/cmds/validator_keys/shared.d.ts +4 -4
  89. package/dest/cmds/validator_keys/shared.d.ts.map +1 -1
  90. package/dest/cmds/validator_keys/shared.js +31 -28
  91. package/dest/cmds/validator_keys/staker.d.ts +38 -0
  92. package/dest/cmds/validator_keys/staker.d.ts.map +1 -0
  93. package/dest/cmds/validator_keys/staker.js +210 -0
  94. package/dest/cmds/validator_keys/utils.d.ts +25 -0
  95. package/dest/cmds/validator_keys/utils.d.ts.map +1 -0
  96. package/dest/cmds/validator_keys/utils.js +52 -0
  97. package/dest/config/cached_fetch.d.ts +1 -1
  98. package/dest/config/chain_l2_config.d.ts +13 -11
  99. package/dest/config/chain_l2_config.d.ts.map +1 -1
  100. package/dest/config/chain_l2_config.js +110 -61
  101. package/dest/config/enrich_env.d.ts +1 -1
  102. package/dest/config/get_l1_config.d.ts +3 -2
  103. package/dest/config/get_l1_config.d.ts.map +1 -1
  104. package/dest/config/get_l1_config.js +3 -1
  105. package/dest/config/index.d.ts +1 -1
  106. package/dest/config/network_config.d.ts +6 -3
  107. package/dest/config/network_config.d.ts.map +1 -1
  108. package/dest/config/network_config.js +64 -28
  109. package/dest/utils/aztec.d.ts +7 -13
  110. package/dest/utils/aztec.d.ts.map +1 -1
  111. package/dest/utils/aztec.js +19 -40
  112. package/dest/utils/commands.d.ts +8 -7
  113. package/dest/utils/commands.d.ts.map +1 -1
  114. package/dest/utils/commands.js +6 -5
  115. package/dest/utils/encoding.d.ts +1 -1
  116. package/dest/utils/encoding.js +1 -1
  117. package/dest/utils/github.d.ts +1 -1
  118. package/dest/utils/index.d.ts +1 -1
  119. package/dest/utils/inspect.d.ts +3 -2
  120. package/dest/utils/inspect.d.ts.map +1 -1
  121. package/dest/utils/setup_contracts.d.ts +1 -1
  122. package/package.json +38 -30
  123. package/public_include_metric_prefixes.json +1 -0
  124. package/src/cmds/aztec_node/get_block.ts +2 -1
  125. package/src/cmds/aztec_node/get_logs.ts +3 -2
  126. package/src/cmds/contracts/inspect_contract.ts +4 -11
  127. package/src/cmds/infrastructure/index.ts +0 -1
  128. package/src/cmds/infrastructure/sequencers.ts +5 -4
  129. package/src/cmds/l1/assume_proven_through.ts +4 -1
  130. package/src/cmds/l1/bridge_erc20.ts +2 -1
  131. package/src/cmds/l1/{deploy_l1_contracts.ts → deploy_l1_contracts_cmd.ts} +39 -22
  132. package/src/cmds/l1/deploy_new_rollup.ts +4 -9
  133. package/src/cmds/l1/get_l1_addresses.ts +4 -2
  134. package/src/cmds/l1/get_l1_balance.ts +2 -2
  135. package/src/cmds/l1/governance_utils.ts +3 -8
  136. package/src/cmds/l1/index.ts +7 -17
  137. package/src/cmds/l1/prover_stats.ts +42 -31
  138. package/src/cmds/l1/trigger_seed_snapshot.ts +2 -1
  139. package/src/cmds/l1/update_l1_validators.ts +7 -12
  140. package/src/cmds/misc/generate_secret_and_hash.ts +1 -1
  141. package/src/cmds/misc/index.ts +1 -1
  142. package/src/cmds/misc/update/npm.ts +1 -1
  143. package/src/cmds/validator_keys/add.ts +20 -10
  144. package/src/cmds/validator_keys/generate_bls_keypair.ts +3 -2
  145. package/src/cmds/validator_keys/index.ts +67 -21
  146. package/src/cmds/validator_keys/new.ts +110 -23
  147. package/src/cmds/validator_keys/shared.ts +32 -27
  148. package/src/cmds/validator_keys/staker.ts +301 -0
  149. package/src/cmds/validator_keys/utils.ts +81 -0
  150. package/src/config/chain_l2_config.ts +139 -72
  151. package/src/config/get_l1_config.ts +4 -1
  152. package/src/config/network_config.ts +74 -29
  153. package/src/utils/aztec.ts +24 -83
  154. package/src/utils/commands.ts +6 -5
  155. package/src/utils/encoding.ts +1 -1
  156. package/src/utils/inspect.ts +2 -1
  157. package/dest/cmds/l1/deploy_l1_contracts.d.ts +0 -4
  158. package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +0 -1
@@ -1,22 +1,20 @@
1
1
  import { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import { Option } from 'commander';
3
- import { getL1RollupAddressFromEnv } from '../../config/get_l1_config.js';
4
3
  import { ETHEREUM_HOSTS, MNEMONIC, PRIVATE_KEY, l1ChainIdOption, nodeOption, parseAztecAddress, parseBigint, parseEthereumAddress } from '../../utils/commands.js';
5
- export { addL1Validator } from './update_l1_validators.js';
6
4
  const l1RpcUrlsOption = new Option('--l1-rpc-urls <string>', 'List of Ethereum host URLs. Chain identifiers localhost and testnet can be used (comma separated)').env('ETHEREUM_HOSTS').default([
7
5
  ETHEREUM_HOSTS
8
6
  ]).makeOptionMandatory(true).argParser((arg)=>arg.split(',').map((url)=>url.trim()));
9
7
  const networkOption = new Option('--network <string>', 'Network to execute against').env('NETWORK');
10
8
  export function injectCommands(program, log, debugLogger) {
11
- program.command('deploy-l1-contracts').description('Deploys all necessary Ethereum contracts for Aztec.').addOption(l1RpcUrlsOption).option('-pk, --private-key <string>', 'The private key to use for deployment', PRIVATE_KEY).option('--validators <string>', 'Comma separated list of validators').option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', (arg)=>parseInt(arg), 0).addOption(l1ChainIdOption).option('--salt <number>', 'The optional salt to use in deployment', (arg)=>parseInt(arg)).option('--json', 'Output the contract addresses in JSON format').option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts').option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract').option('--accelerated-test-deployments', 'Fire and forget deployment transactions, use in testing only', false).option('--real-verifier', 'Deploy the real verifier', false).option('--existing-token <address>', 'Use an existing ERC20 for both fee and staking', parseEthereumAddress).option('--create-verification-json [path]', 'Create JSON file for etherscan contract verification', false).action(async (options)=>{
12
- const { deployL1Contracts } = await import('./deploy_l1_contracts.js');
9
+ program.command('deploy-l1-contracts').description('Deploys all necessary Ethereum contracts for Aztec.').addOption(l1RpcUrlsOption).option('-pk, --private-key <string>', 'The private key to use for deployment', PRIVATE_KEY).option('--validators <string>', 'Comma separated list of validators').option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', (arg)=>parseInt(arg), 0).addOption(l1ChainIdOption).option('--json', 'Output the contract addresses in JSON format').option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts').option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract').option('--real-verifier', 'Deploy the real verifier', false).option('--existing-token <address>', 'Use an existing ERC20 for both fee and staking', parseEthereumAddress).action(async (options)=>{
10
+ const { deployL1ContractsCmd } = await import('./deploy_l1_contracts_cmd.js');
13
11
  const initialValidators = options.validators?.split(',').map((validator)=>EthAddress.fromString(validator)) || [];
14
- await deployL1Contracts(options.l1RpcUrls, options.l1ChainId, options.privateKey, options.mnemonic, options.mnemonicIndex, options.salt, options.testAccounts, options.sponsoredFpc, options.acceleratedTestDeployments, options.json, options.createVerificationJson, initialValidators, options.realVerifier, options.existingToken, log, debugLogger);
12
+ await deployL1ContractsCmd(options.l1RpcUrls, options.l1ChainId, options.privateKey, options.mnemonic, options.mnemonicIndex, options.testAccounts, options.sponsoredFpc, options.json, initialValidators, options.realVerifier, options.existingToken, log, debugLogger);
15
13
  });
16
- program.command('deploy-new-rollup').description('Deploys a new rollup contract and adds it to the registry (if you are the owner).').requiredOption('-r, --registry-address <string>', 'The address of the registry contract', parseEthereumAddress).addOption(l1RpcUrlsOption).option('-pk, --private-key <string>', 'The private key to use for deployment', PRIVATE_KEY).option('--validators <string>', 'Comma separated list of validators').option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', MNEMONIC ?? 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', (arg)=>parseInt(arg), 0).addOption(l1ChainIdOption).option('--salt <number>', 'The optional salt to use in deployment', (arg)=>parseInt(arg)).option('--json', 'Output the contract addresses in JSON format').option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts').option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract').option('--real-verifier', 'Deploy the real verifier', false).option('--create-verification-json [path]', 'Create JSON file for etherscan contract verification', false).action(async (options)=>{
14
+ program.command('deploy-new-rollup').description('Deploys a new rollup contract and adds it to the registry (if you are the owner).').requiredOption('-r, --registry-address <string>', 'The address of the registry contract', parseEthereumAddress).addOption(l1RpcUrlsOption).option('-pk, --private-key <string>', 'The private key to use for deployment', PRIVATE_KEY).option('--validators <string>', 'Comma separated list of validators').option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', MNEMONIC ?? 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', (arg)=>parseInt(arg), 0).addOption(l1ChainIdOption).option('--json', 'Output the contract addresses in JSON format').option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts').option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract').option('--real-verifier', 'Deploy the real verifier', false).action(async (options)=>{
17
15
  const { deployNewRollup } = await import('./deploy_new_rollup.js');
18
16
  const initialValidators = options.validators?.split(',').map((validator)=>EthAddress.fromString(validator)) || [];
19
- await deployNewRollup(options.registryAddress, options.l1RpcUrls, options.l1ChainId, options.privateKey, options.mnemonic, options.mnemonicIndex, options.salt, options.testAccounts, options.sponsoredFpc, options.json, initialValidators, options.realVerifier, options.createVerificationJson, log, debugLogger);
17
+ await deployNewRollup(options.registryAddress, options.l1RpcUrls, options.l1ChainId, options.privateKey, options.mnemonic, options.mnemonicIndex, options.testAccounts, options.sponsoredFpc, options.json, initialValidators, options.realVerifier, log);
20
18
  });
21
19
  program.command('deposit-governance-tokens').description('Deposits governance tokens to the governance contract.').requiredOption('-r, --registry-address <string>', 'The address of the registry contract', parseEthereumAddress).requiredOption('--recipient <string>', 'The recipient of the tokens', parseEthereumAddress).requiredOption('-a, --amount <string>', 'The amount of tokens to deposit', parseBigint).option('--mint', 'Mint the tokens on L1', false).addOption(l1RpcUrlsOption).addOption(l1ChainIdOption).option('-p, --private-key <string>', 'The private key to use to deposit', PRIVATE_KEY).option('-m, --mnemonic <string>', 'The mnemonic to use to deposit', 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use to deposit', (arg)=>parseInt(arg), 0).action(async (options)=>{
22
20
  const { depositGovernanceTokens } = await import('./governance_utils.js');
@@ -98,7 +96,11 @@ export function injectCommands(program, log, debugLogger) {
98
96
  });
99
97
  program.command('add-l1-validator').description('Adds a validator to the L1 rollup contract via a direct deposit.').addOption(l1RpcUrlsOption).addOption(networkOption).option('-pk, --private-key <string>', 'The private key to use sending the transaction', PRIVATE_KEY).option('-m, --mnemonic <string>', 'The mnemonic to use sending the transaction', 'test test test test test test test test test test test junk').addOption(l1ChainIdOption).option('--attester <address>', 'ethereum address of the attester', parseEthereumAddress).option('--withdrawer <address>', 'ethereum address of the withdrawer', parseEthereumAddress).option('--bls-secret-key <string>', 'The BN254 scalar field element used as a secret key for BLS signatures. Will be associated with the attester address.', parseBigint).option('--move-with-latest-rollup', 'Whether to move with the latest rollup', true).option('--rollup <string>', 'Rollup contract address', parseEthereumAddress).action(async (options)=>{
100
98
  const { addL1ValidatorViaRollup } = await import('./update_l1_validators.js');
101
- const rollupAddress = options.rollup ?? await getL1RollupAddressFromEnv(options.l1RpcUrls, options.l1ChainId);
99
+ let rollupAddress = options.rollup;
100
+ if (!rollupAddress) {
101
+ const { getL1RollupAddressFromEnv } = await import('../../config/get_l1_config.js');
102
+ rollupAddress = await getL1RollupAddressFromEnv(options.l1RpcUrls, options.l1ChainId);
103
+ }
102
104
  await addL1ValidatorViaRollup({
103
105
  rpcUrls: options.l1RpcUrls,
104
106
  chainId: options.l1ChainId,
@@ -11,4 +11,4 @@ export declare function proverStats(opts: {
11
11
  provingTimeout: bigint | undefined;
12
12
  rawLogs: boolean;
13
13
  }): Promise<void>;
14
- //# sourceMappingURL=prover_stats.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyX3N0YXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9sMS9wcm92ZXJfc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUE2QixNQUFNLHVCQUF1QixDQUFDO0FBUTlFLHdCQUFzQixXQUFXLENBQUMsSUFBSSxFQUFFO0lBQ3RDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLGVBQWUsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLE9BQU8sRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzVCLEdBQUcsRUFBRSxLQUFLLENBQUM7SUFDWCxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFFBQVEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsY0FBYyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDbkMsT0FBTyxFQUFFLE9BQU8sQ0FBQztDQUNsQixpQkEwSUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"prover_stats.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/prover_stats.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAA6B,MAAM,uBAAuB,CAAC;AAQ9E,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,EAAE,KAAK,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB,iBAgIA"}
1
+ {"version":3,"file":"prover_stats.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/prover_stats.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,KAAK,EAA6B,MAAM,uBAAuB,CAAC;AAQ9E,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,EAAE,KAAK,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB,iBA0IA"}
@@ -1,5 +1,5 @@
1
1
  import { retrieveL2ProofVerifiedEvents } from '@aztec/archiver';
2
- import { createEthereumChain } from '@aztec/ethereum';
2
+ import { createEthereumChain } from '@aztec/ethereum/chain';
3
3
  import { compactArray, mapValues, unique } from '@aztec/foundation/collection';
4
4
  import { EthAddress } from '@aztec/foundation/eth-address';
5
5
  import { createLogger } from '@aztec/foundation/log';
@@ -18,7 +18,9 @@ export async function proverStats(opts) {
18
18
  const chain = createEthereumChain(l1RpcUrls, chainId).chainInfo;
19
19
  const publicClient = createPublicClient({
20
20
  chain,
21
- transport: fallback(l1RpcUrls.map((url)=>http(url)))
21
+ transport: fallback(l1RpcUrls.map((url)=>http(url, {
22
+ batch: false
23
+ })))
22
24
  });
23
25
  const lastBlockNum = endBlock ?? await publicClient.getBlockNumber();
24
26
  debugLog.verbose(`Querying events on rollup at ${rollup.toString()} from ${startBlock} up to ${lastBlockNum}`);
@@ -26,30 +28,30 @@ export async function proverStats(opts) {
26
28
  const events = await getL2ProofVerifiedEvents(startBlock, lastBlockNum, batchSize, debugLog, publicClient, rollup);
27
29
  // If we only care for raw logs, output them
28
30
  if (rawLogs && !provingTimeout) {
29
- log(`l1_block_number, l2_block_number, prover_id, tx_hash`);
31
+ log(`l1_block_number, checkpoint_number, prover_id, tx_hash`);
30
32
  for (const event of events){
31
- const { l1BlockNumber, l2BlockNumber, proverId, txHash } = event;
32
- log(`${l1BlockNumber}, ${l2BlockNumber}, ${proverId}, ${txHash}`);
33
+ const { l1BlockNumber, checkpointNumber, proverId, txHash } = event;
34
+ log(`${l1BlockNumber}, ${checkpointNumber}, ${proverId}, ${txHash}`);
33
35
  }
34
36
  return;
35
37
  }
36
- // If we don't have a proving timeout, we can just count the number of unique blocks per prover
38
+ // If we don't have a proving timeout, we can just count the number of unique checkpoints per prover
37
39
  if (!provingTimeout) {
38
40
  const stats = groupBy(events, 'proverId');
39
- log(`prover_id, total_blocks_proven`);
41
+ log(`prover_id, total_checkpoints_proven`);
40
42
  for(const proverId in stats){
41
- const uniqueBlocks = new Set(stats[proverId].map((e)=>e.l2BlockNumber));
42
- log(`${proverId}, ${uniqueBlocks.size}`);
43
+ const uniqueCheckpoints = new Set(stats[proverId].map((e)=>e.checkpointNumber));
44
+ log(`${proverId}, ${uniqueCheckpoints.size}`);
43
45
  }
44
46
  return;
45
47
  }
46
- // But if we do, fetch the events for each block submitted, so we can look up their timestamp
47
- const blockEvents = await getL2BlockEvents(startBlock, lastBlockNum, batchSize, debugLog, publicClient, rollup);
48
- debugLog.verbose(`First L2 block within range is ${blockEvents[0]?.args.blockNumber} at L1 block ${blockEvents[0]?.blockNumber}`);
48
+ // But if we do, fetch the events for each checkpoint submitted, so we can look up their timestamp
49
+ const checkpointEvents = await getCheckpointProposedEvents(startBlock, lastBlockNum, batchSize, debugLog, publicClient, rollup);
50
+ debugLog.verbose(`First checkpoint within range is ${checkpointEvents[0]?.args.checkpointNumber} at L1 block ${checkpointEvents[0]?.blockNumber}`);
49
51
  // Get the timestamps for every block on every log, both for proof and block submissions
50
52
  const l1BlockNumbers = unique([
51
53
  ...events.map((e)=>e.l1BlockNumber),
52
- ...blockEvents.map((e)=>e.blockNumber)
54
+ ...checkpointEvents.map((e)=>e.blockNumber)
53
55
  ]);
54
56
  const l1BlockTimestamps = {};
55
57
  for (const l1Batch of chunk(l1BlockNumbers, Number(batchSize))){
@@ -62,37 +64,37 @@ export async function proverStats(opts) {
62
64
  l1BlockTimestamps[block.number.toString()] = block.timestamp;
63
65
  }
64
66
  }
65
- // Map from l2 block number to the l1 block in which it was submitted
66
- const l2BlockSubmissions = {};
67
- for (const blockEvent of blockEvents){
68
- l2BlockSubmissions[blockEvent.args.blockNumber.toString()] = blockEvent.blockNumber;
67
+ // Map from checkpoint number to the l1 block in which it was submitted
68
+ const checkpointSubmissions = {};
69
+ for (const checkpointEvent of checkpointEvents){
70
+ checkpointSubmissions[checkpointEvent.args.checkpointNumber.toString()] = checkpointEvent.blockNumber;
69
71
  }
70
72
  // If we want raw logs, output them
71
73
  if (rawLogs) {
72
- log(`l1_block_number, l2_block_number, l2_block_submission_timestamp, proof_timestamp, prover_id, tx_hash`);
74
+ log(`l1_block_number, checkpoint_number, checkpoint_submission_timestamp, proof_timestamp, prover_id, tx_hash`);
73
75
  for (const event of events){
74
- const { l1BlockNumber, l2BlockNumber, proverId, txHash } = event;
75
- const uploadedBlockNumber = l2BlockSubmissions[l2BlockNumber.toString()];
76
+ const { l1BlockNumber, checkpointNumber, proverId, txHash } = event;
77
+ const uploadedBlockNumber = checkpointSubmissions[checkpointNumber.toString()];
76
78
  if (!uploadedBlockNumber) {
77
79
  continue;
78
80
  }
79
81
  const uploadedTimestamp = l1BlockTimestamps[uploadedBlockNumber.toString()];
80
82
  const provenTimestamp = l1BlockTimestamps[l1BlockNumber.toString()];
81
- log(`${l1BlockNumber}, ${l2BlockNumber}, ${uploadedTimestamp}, ${provenTimestamp}, ${proverId}, ${txHash}`);
83
+ log(`${l1BlockNumber}, ${checkpointNumber}, ${uploadedTimestamp}, ${provenTimestamp}, ${proverId}, ${txHash}`);
82
84
  }
83
85
  return;
84
86
  }
85
87
  // Or calculate stats per prover
86
- const stats = mapValues(groupBy(events, 'proverId'), (blocks, proverId)=>compactArray(blocks.map((e)=>{
88
+ const stats = mapValues(groupBy(events, 'proverId'), (checkpoints, proverId)=>compactArray(checkpoints.map((e)=>{
87
89
  const provenTimestamp = l1BlockTimestamps[e.l1BlockNumber.toString()];
88
- const uploadedBlockNumber = l2BlockSubmissions[e.l2BlockNumber.toString()];
90
+ const uploadedBlockNumber = checkpointSubmissions[e.checkpointNumber.toString()];
89
91
  if (!uploadedBlockNumber) {
90
- debugLog.verbose(`Skipping ${proverId}'s proof for L2 block ${e.l2BlockNumber} as it was before the start block`);
92
+ debugLog.verbose(`Skipping ${proverId}'s proof for checkpoint ${e.checkpointNumber} as it was before the start block`);
91
93
  return undefined;
92
94
  }
93
95
  const uploadedTimestamp = l1BlockTimestamps[uploadedBlockNumber.toString()];
94
96
  const provingTime = provenTimestamp - uploadedTimestamp;
95
- debugLog.debug(`prover=${e.proverId} blockNumber=${e.l2BlockNumber} uploaded=${uploadedTimestamp} proven=${provenTimestamp} time=${provingTime}`);
97
+ debugLog.debug(`prover=${e.proverId} checkpointNumber=${e.checkpointNumber} uploaded=${uploadedTimestamp} proven=${provenTimestamp} time=${provingTime}`);
96
98
  return {
97
99
  provenTimestamp,
98
100
  uploadedTimestamp,
@@ -104,8 +106,8 @@ export async function proverStats(opts) {
104
106
  for(const proverId in stats){
105
107
  const blocks = stats[proverId];
106
108
  const withinTimeout = blocks.filter((b)=>b.provingTime <= provingTimeout);
107
- const uniqueBlocksWithinTimeout = new Set(withinTimeout.map((e)=>e.l2BlockNumber));
108
- const uniqueBlocks = new Set(blocks.map((e)=>e.l2BlockNumber));
109
+ const uniqueBlocksWithinTimeout = new Set(withinTimeout.map((e)=>e.checkpointNumber));
110
+ const uniqueBlocks = new Set(blocks.map((e)=>e.checkpointNumber));
109
111
  const avgProvingTime = blocks.length === 0 ? 0 : Math.ceil(Number(blocks.reduce((acc, b)=>acc + b.provingTime, 0n)) / blocks.length);
110
112
  log(`${proverId}, ${uniqueBlocksWithinTimeout.size}, ${uniqueBlocks.size}, ${avgProvingTime}`);
111
113
  }
@@ -123,7 +125,7 @@ async function getL2ProofVerifiedEvents(startBlock, lastBlockNum, batchSize, deb
123
125
  }
124
126
  return events;
125
127
  }
126
- async function getL2BlockEvents(startBlock, lastBlockNum, batchSize, debugLog, publicClient, rollup) {
128
+ async function getCheckpointProposedEvents(startBlock, lastBlockNum, batchSize, debugLog, publicClient, rollup) {
127
129
  let blockNum = startBlock;
128
130
  const events = [];
129
131
  while(blockNum <= lastBlockNum){
@@ -132,13 +134,13 @@ async function getL2BlockEvents(startBlock, lastBlockNum, batchSize, debugLog, p
132
134
  address: getAddress(rollup.toString()),
133
135
  event: getAbiItem({
134
136
  abi: RollupAbi,
135
- name: 'L2BlockProposed'
137
+ name: 'CheckpointProposed'
136
138
  }),
137
139
  fromBlock: blockNum,
138
140
  toBlock: end
139
141
  });
140
142
  events.push(...newEvents);
141
- debugLog.verbose(`Got ${newEvents.length} events querying l2 block submitted from block ${blockNum} to ${end}`);
143
+ debugLog.verbose(`Got ${newEvents.length} events querying checkpoints submitted from block ${blockNum} to ${end}`);
142
144
  blockNum += batchSize;
143
145
  }
144
146
  return events;
@@ -1,6 +1,6 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  import type { RollupCommandArgs } from './update_l1_validators.js';
3
- export declare function triggerSeedSnapshot({ rpcUrls, chainId, privateKey, mnemonic, rollupAddress, log, }: RollupCommandArgs & {
3
+ export declare function triggerSeedSnapshot({ rpcUrls, chainId, privateKey, mnemonic, rollupAddress, log }: RollupCommandArgs & {
4
4
  log: LogFn;
5
5
  }): Promise<void>;
6
- //# sourceMappingURL=trigger_seed_snapshot.d.ts.map
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcl9zZWVkX3NuYXBzaG90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9sMS90cmlnZ2VyX3NlZWRfc25hcHNob3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLbkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRSx3QkFBc0IsbUJBQW1CLENBQUMsRUFDeEMsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGFBQWEsRUFDYixHQUFHLEVBQ0osRUFBRSxpQkFBaUIsR0FBRztJQUFFLEdBQUcsRUFBRSxLQUFLLENBQUE7Q0FBRSxpQkFlcEMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"trigger_seed_snapshot.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/trigger_seed_snapshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,wBAAsB,mBAAmB,CAAC,EACxC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,GACJ,EAAE,iBAAiB,GAAG;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,iBAepC"}
1
+ {"version":3,"file":"trigger_seed_snapshot.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/trigger_seed_snapshot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,wBAAsB,mBAAmB,CAAC,EACxC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,EACJ,EAAE,iBAAiB,GAAG;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,iBAepC"}
@@ -1,4 +1,5 @@
1
- import { createEthereumChain, createExtendedL1Client } from '@aztec/ethereum';
1
+ import { createEthereumChain } from '@aztec/ethereum/chain';
2
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
2
3
  import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
3
4
  import { getContract } from 'viem';
4
5
  export async function triggerSeedSnapshot({ rpcUrls, chainId, privateKey, mnemonic, rollupAddress, log }) {
@@ -23,23 +23,23 @@ export declare function generateL1Account(): {
23
23
  privateKey: `0x${string}`;
24
24
  address: `0x${string}`;
25
25
  };
26
- export declare function addL1Validator({ rpcUrls, chainId, privateKey, mnemonic, attesterAddress, stakingAssetHandlerAddress, merkleProof, proofParams, blsSecretKey, log, debugLogger, }: StakingAssetHandlerCommandArgs & LoggerArgs & {
26
+ export declare function addL1Validator({ rpcUrls, chainId, privateKey, mnemonic, attesterAddress, stakingAssetHandlerAddress, merkleProof, proofParams, blsSecretKey, log, debugLogger }: StakingAssetHandlerCommandArgs & LoggerArgs & {
27
27
  blsSecretKey: bigint;
28
28
  attesterAddress: EthAddress;
29
29
  proofParams: Buffer;
30
30
  merkleProof: string[];
31
31
  }): Promise<void>;
32
- export declare function addL1ValidatorViaRollup({ rpcUrls, chainId, privateKey, mnemonic, attesterAddress, withdrawerAddress, blsSecretKey, moveWithLatestRollup, rollupAddress, log, debugLogger, }: RollupCommandArgs & LoggerArgs & {
32
+ export declare function addL1ValidatorViaRollup({ rpcUrls, chainId, privateKey, mnemonic, attesterAddress, withdrawerAddress, blsSecretKey, moveWithLatestRollup, rollupAddress, log, debugLogger }: RollupCommandArgs & LoggerArgs & {
33
33
  blsSecretKey: bigint;
34
34
  attesterAddress: EthAddress;
35
35
  moveWithLatestRollup: boolean;
36
36
  }): Promise<void>;
37
- export declare function removeL1Validator({ rpcUrls, chainId, privateKey, mnemonic, validatorAddress, rollupAddress, log, debugLogger, }: RollupCommandArgs & LoggerArgs & {
37
+ export declare function removeL1Validator({ rpcUrls, chainId, privateKey, mnemonic, validatorAddress, rollupAddress, log, debugLogger }: RollupCommandArgs & LoggerArgs & {
38
38
  validatorAddress: EthAddress;
39
39
  }): Promise<void>;
40
- export declare function pruneRollup({ rpcUrls, chainId, privateKey, mnemonic, rollupAddress, log, debugLogger, }: RollupCommandArgs & LoggerArgs): Promise<void>;
41
- export declare function fastForwardEpochs({ rpcUrls, chainId, rollupAddress, numEpochs, log, debugLogger, }: RollupCommandArgs & LoggerArgs & {
40
+ export declare function pruneRollup({ rpcUrls, chainId, privateKey, mnemonic, rollupAddress, log, debugLogger }: RollupCommandArgs & LoggerArgs): Promise<void>;
41
+ export declare function fastForwardEpochs({ rpcUrls, chainId, rollupAddress, numEpochs, log, debugLogger }: RollupCommandArgs & LoggerArgs & {
42
42
  numEpochs: bigint;
43
43
  }): Promise<void>;
44
44
  export declare function debugRollup({ rpcUrls, chainId, rollupAddress, log }: RollupCommandArgs & LoggerArgs): Promise<void>;
45
- //# sourceMappingURL=update_l1_validators.d.ts.map
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlX2wxX3ZhbGlkYXRvcnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL2wxL3VwZGF0ZV9sMV92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVUzRCxNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNsQixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNwQixRQUFRLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbEIsYUFBYSxFQUFFLFVBQVUsQ0FBQztJQUMxQixpQkFBaUIsQ0FBQyxFQUFFLFVBQVUsQ0FBQztDQUNoQztBQUVELE1BQU0sV0FBVyw4QkFBOEI7SUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQiwwQkFBMEIsRUFBRSxVQUFVLENBQUM7Q0FDeEM7QUFFRCxNQUFNLFdBQVcsVUFBVTtJQUN6QixHQUFHLEVBQUUsS0FBSyxDQUFDO0lBQ1gsV0FBVyxFQUFFLE1BQU0sQ0FBQztDQUNyQjtBQUVELHdCQUFnQixpQkFBaUI7OztFQVFoQztBQUVELHdCQUFzQixjQUFjLENBQUMsRUFDbkMsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsV0FBVyxFQUNYLFdBQVcsRUFDWCxZQUFZLEVBQ1osR0FBRyxFQUNILFdBQVcsRUFDWixFQUFFLDhCQUE4QixHQUMvQixVQUFVLEdBQUc7SUFDWCxZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLGVBQWUsRUFBRSxVQUFVLENBQUM7SUFDNUIsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDdkIsaUJBNERGO0FBRUQsd0JBQXNCLHVCQUF1QixDQUFDLEVBQzVDLE9BQU8sRUFDUCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsRUFDUixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLEdBQUcsRUFDSCxXQUFXLEVBQ1osRUFBRSxpQkFBaUIsR0FDbEIsVUFBVSxHQUFHO0lBQ1gsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixlQUFlLEVBQUUsVUFBVSxDQUFDO0lBQzVCLG9CQUFvQixFQUFFLE9BQU8sQ0FBQztDQUMvQixpQkF1REY7QUFFRCx3QkFBc0IsaUJBQWlCLENBQUMsRUFDdEMsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsR0FBRyxFQUNILFdBQVcsRUFDWixFQUFFLGlCQUFpQixHQUFHLFVBQVUsR0FBRztJQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQTtDQUFFLGlCQWlCbkU7QUFFRCx3QkFBc0IsV0FBVyxDQUFDLEVBQ2hDLE9BQU8sRUFDUCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsRUFDUixhQUFhLEVBQ2IsR0FBRyxFQUNILFdBQVcsRUFDWixFQUFFLGlCQUFpQixHQUFHLFVBQVUsaUJBZ0JoQztBQUVELHdCQUFzQixpQkFBaUIsQ0FBQyxFQUN0QyxPQUFPLEVBQ1AsT0FBTyxFQUNQLGFBQWEsRUFDYixTQUFTLEVBQ1QsR0FBRyxFQUNILFdBQVcsRUFDWixFQUFFLGlCQUFpQixHQUFHLFVBQVUsR0FBRztJQUFFLFNBQVMsRUFBRSxNQUFNLENBQUE7Q0FBRSxpQkF5QnhEO0FBRUQsd0JBQXNCLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLGlCQUFpQixHQUFHLFVBQVUsaUJBd0J6RyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"update_l1_validators.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/update_l1_validators.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAU3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,UAAU,CAAC;IAC1B,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,UAAU,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,KAAK,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB;;;EAQhC;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,0BAA0B,EAC1B,WAAW,EACX,WAAW,EACX,YAAY,EACZ,GAAG,EACH,WAAW,GACZ,EAAE,8BAA8B,GAC/B,UAAU,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,UAAU,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,iBA4DF;AAED,wBAAsB,uBAAuB,CAAC,EAC5C,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,GAAG,EACH,WAAW,GACZ,EAAE,iBAAiB,GAClB,UAAU,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,UAAU,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;CAC/B,iBAuDF;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,GAAG,EACH,WAAW,GACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,gBAAgB,EAAE,UAAU,CAAA;CAAE,iBAiBnE;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,EACH,WAAW,GACZ,EAAE,iBAAiB,GAAG,UAAU,iBAgBhC;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EACT,GAAG,EACH,WAAW,GACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAyBxD;AAED,wBAAsB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,iBAAiB,GAAG,UAAU,iBAwBzG"}
1
+ {"version":3,"file":"update_l1_validators.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/update_l1_validators.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAU3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,UAAU,CAAC;IAC1B,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,UAAU,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,KAAK,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB;;;EAQhC;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,0BAA0B,EAC1B,WAAW,EACX,WAAW,EACX,YAAY,EACZ,GAAG,EACH,WAAW,EACZ,EAAE,8BAA8B,GAC/B,UAAU,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,UAAU,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,iBA4DF;AAED,wBAAsB,uBAAuB,CAAC,EAC5C,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,GAAG,EACH,WAAW,EACZ,EAAE,iBAAiB,GAClB,UAAU,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,UAAU,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;CAC/B,iBAuDF;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,GAAG,EACH,WAAW,EACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,gBAAgB,EAAE,UAAU,CAAA;CAAE,iBAiBnE;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,EACH,WAAW,EACZ,EAAE,iBAAiB,GAAG,UAAU,iBAgBhC;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EACT,GAAG,EACH,WAAW,EACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAyBxD;AAED,wBAAsB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,iBAAiB,GAAG,UAAU,iBAwBzG"}
@@ -1,4 +1,8 @@
1
- import { GSEContract, RollupContract, createEthereumChain, createExtendedL1Client, createL1TxUtilsFromViemWallet, getL1ContractsConfigEnvVars, getPublicClient, isAnvilTestChain } from '@aztec/ethereum';
1
+ import { createEthereumChain, isAnvilTestChain } from '@aztec/ethereum/chain';
2
+ import { createExtendedL1Client, getPublicClient } from '@aztec/ethereum/client';
3
+ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
4
+ import { GSEContract, RollupContract } from '@aztec/ethereum/contracts';
5
+ import { createL1TxUtilsFromViemWallet } from '@aztec/ethereum/l1-tx-utils';
2
6
  import { EthCheatCodes } from '@aztec/ethereum/test';
3
7
  import { DateProvider } from '@aztec/foundation/timer';
4
8
  import { RollupAbi, StakingAssetHandlerAbi } from '@aztec/l1-artifacts';
@@ -207,9 +211,9 @@ export async function debugRollup({ rpcUrls, chainId, rollupAddress, log }) {
207
211
  l1ChainId: chainId
208
212
  });
209
213
  const rollup = new RollupContract(publicClient, rollupAddress);
210
- const pendingNum = await rollup.getBlockNumber();
214
+ const pendingNum = await rollup.getCheckpointNumber();
211
215
  log(`Pending block num: ${pendingNum}`);
212
- const provenNum = await rollup.getProvenBlockNumber();
216
+ const provenNum = await rollup.getProvenCheckpointNumber();
213
217
  log(`Proven block num: ${provenNum}`);
214
218
  const validators = await rollup.getAttesters();
215
219
  log(`Validators: ${validators.map((v)=>v.toString()).join(', ')}`);
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function computeSelector(functionSignature: string, log: LogFn): Promise<void>;
3
- //# sourceMappingURL=compute_selector.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZV9zZWxlY3Rvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NtZHMvbWlzYy9jb21wdXRlX3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR25ELHdCQUFzQixlQUFlLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLGlCQUcxRSJ9
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function exampleContracts(log: LogFn): Promise<void>;
3
- //# sourceMappingURL=example_contracts.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZV9jb250cmFjdHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL21pc2MvZXhhbXBsZV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJbkQsd0JBQXNCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLGlCQU9oRCJ9
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function generateEncodedBootnodeENR(privateKey: string, p2pIp: string, p2pPort: number, l1ChainId: number, log: LogFn): Promise<void>;
3
- //# sourceMappingURL=generate_bootnode_enr.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfYm9vdG5vZGVfZW5yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9taXNjL2dlbmVyYXRlX2Jvb3Rub2RlX2Vuci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCx3QkFBc0IsMEJBQTBCLENBQzlDLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLEtBQUssRUFBRSxNQUFNLEVBQ2IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLEVBQUUsTUFBTSxFQUNqQixHQUFHLEVBQUUsS0FBSyxpQkFJWCJ9
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function generateP2PPrivateKey(log: LogFn): Promise<void>;
3
- //# sourceMappingURL=generate_p2p_private_key.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfcDJwX3ByaXZhdGVfa2V5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9taXNjL2dlbmVyYXRlX3AycF9wcml2YXRlX2tleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUluRCx3QkFBc0IscUJBQXFCLENBQUMsR0FBRyxFQUFFLEtBQUssaUJBS3JEIn0=
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function generateSecretAndHash(log: LogFn): Promise<void>;
3
- //# sourceMappingURL=generate_secret_and_hash.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfc2VjcmV0X2FuZF9oYXNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9taXNjL2dlbmVyYXRlX3NlY3JldF9hbmRfaGFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRCx3QkFBc0IscUJBQXFCLENBQUMsR0FBRyxFQUFFLEtBQUssaUJBVXJEIn0=
@@ -1,5 +1,5 @@
1
1
  import { computeSecretHash } from '@aztec/aztec.js/crypto';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  export async function generateSecretAndHash(log) {
4
4
  const secret = Fr.random();
5
5
  // We hash this the same way that aztec nr hash does.
@@ -2,4 +2,4 @@ import { Fr } from '@aztec/aztec.js/fields';
2
2
  export declare function generateSecretKey(): {
3
3
  secretKey: Fr;
4
4
  };
5
- //# sourceMappingURL=generate_secret_key.d.ts.map
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfc2VjcmV0X2tleS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NtZHMvbWlzYy9nZW5lcmF0ZV9zZWNyZXRfa2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1Qyx3QkFBZ0IsaUJBQWlCOztFQUVoQyJ9
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function getCanonicalSponsoredFPCAddress(log: LogFn): Promise<void>;
3
- //# sourceMappingURL=get_canonical_sponsored_fpc_address.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2Nhbm9uaWNhbF9zcG9uc29yZWRfZnBjX2FkZHJlc3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL21pc2MvZ2V0X2Nhbm9uaWNhbF9zcG9uc29yZWRfZnBjX2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJbkQsd0JBQXNCLCtCQUErQixDQUFDLEdBQUcsRUFBRSxLQUFLLGlCQUUvRCJ9
@@ -1,4 +1,4 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  import type { Command } from 'commander';
3
3
  export declare function injectCommands(program: Command, log: LogFn): Command;
4
- //# sourceMappingURL=index.d.ts.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL21pc2MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXpDLHdCQUFnQixjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxXQThGMUQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,WA6F1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,WA8F1D"}
@@ -1,4 +1,3 @@
1
- import { printENR } from '@aztec/p2p/enr';
2
1
  import { l1ChainIdOption, prettyPrintJSON } from '../../utils/commands.js';
3
2
  export function injectCommands(program, log) {
4
3
  program.command('generate-keys').summary('Generates encryption and signing private keys.').description('Generates and encryption and signing private key pair.').option('--json', 'Output the keys in JSON format').action(async ({ json })=>{
@@ -21,6 +20,7 @@ export function injectCommands(program, log) {
21
20
  await generateEncodedBootnodeENR(privateKey, p2pIp, p2pPort, options.l1ChainId, log);
22
21
  });
23
22
  program.command('decode-enr').summary('Decodes an ENR record').description('Decodes and ENR record').argument('<enr>', 'The encoded ENR string').action(async (enr)=>{
23
+ const { printENR } = await import('@aztec/p2p/enr');
24
24
  await printENR(enr, log);
25
25
  });
26
26
  program.command('example-contracts').description('Lists the example contracts available to deploy from @aztec/noir-contracts.js').action(async ()=>{
@@ -14,4 +14,4 @@ export type DependencyChanges = {
14
14
  to: string;
15
15
  }>;
16
16
  };
17
- //# sourceMappingURL=common.d.ts.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY21kcy9taXNjL3VwZGF0ZS9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsNkJBQTZCO0lBQzdCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsWUFBWSxFQUFFLEtBQUssQ0FBQztRQUNsQiwyQ0FBMkM7UUFDM0MsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUNiLHlDQUF5QztRQUN6QyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ2IsdURBQXVEO1FBQ3ZELEVBQUUsRUFBRSxNQUFNLENBQUM7S0FDWixDQUFDLENBQUM7Q0FDSixDQUFDIn0=
@@ -1,3 +1,3 @@
1
1
  export declare const GITHUB_OWNER = "AztecProtocol";
2
2
  export declare const GITHUB_REPO = "aztec-packages";
3
- //# sourceMappingURL=github.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY21kcy9taXNjL3VwZGF0ZS9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBTyxNQUFNLFlBQVksa0JBQWtCLENBQUM7QUFDNUMsZUFBTyxNQUFNLFdBQVcsbUJBQW1CLENBQUMifQ==
@@ -7,4 +7,4 @@ import type { DependencyChanges } from './common.js';
7
7
  * @param log - Logging function
8
8
  */
9
9
  export declare function updateAztecNr(contractPath: string, tag: string, log: LogFn): Promise<DependencyChanges>;
10
- //# sourceMappingURL=noir.d.ts.map
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NtZHMvbWlzYy91cGRhdGUvbm9pci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdyRDs7Ozs7R0FLRztBQUNILHdCQUFzQixhQUFhLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBd0M3RyJ9
@@ -31,4 +31,4 @@ export declare function updateAztecDeps(projectPath: string, aztecVersion: SemVe
31
31
  * @param projectPath - Path to Nodejs project
32
32
  */
33
33
  export declare function updateLockfile(projectPath: string, log: LogFn): void;
34
- //# sourceMappingURL=npm.d.ts.map
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY21kcy9taXNjL3VwZGF0ZS9ucG0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFNbkQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFTLE1BQU0sUUFBUSxDQUFDO0FBRTVDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBWXJEOzs7O0dBSUc7QUFDSCx3QkFBc0IsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ2xFLG1CQUFtQjtJQUNuQixZQUFZLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLHNCQUFzQjtJQUN0QixlQUFlLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzFDLENBQUMsQ0FLRDtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxTQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQWMvRjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGVBQWUsQ0FDbkMsV0FBVyxFQUFFLE1BQU0sRUFDbkIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsR0FBRyxFQUFFLEtBQUssR0FDVCxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0F1RDVCO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLGNBQWMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQXVCcEUifQ==
@@ -6,7 +6,7 @@ import { parse } from 'semver';
6
6
  import { atomicUpdateFile } from './utils.js';
7
7
  const deprecatedNpmPackages = new Set([
8
8
  '@aztec/cli',
9
- '@aztec/aztec-sandbox'
9
+ '@aztec/aztec-local-network'
10
10
  ]);
11
11
  const npmDeprecationMessage = `
12
12
  The following packages have been deprecated and will no longer be updated on the npm registry:
@@ -11,4 +11,4 @@ export declare function atomicUpdateFile(filePath: string, contents: string): Pr
11
11
  * @returns The Nargo.toml contents as a string
12
12
  */
13
13
  export declare function prettyPrintNargoToml(config: NoirPackageConfig): string;
14
- //# sourceMappingURL=utils.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbWRzL21pc2MvdXBkYXRlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNaEU7Ozs7R0FJRztBQUNILHdCQUFzQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQXFCeEU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxpQkFBaUIsR0FBRyxNQUFNLENBVXRFIn0=
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function updateProject(projectPath: string, contracts: string[], aztecVersion: string, log: LogFn): Promise<void>;
3
- //# sourceMappingURL=update.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9taXNjL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVluRCx3QkFBc0IsYUFBYSxDQUNqQyxXQUFXLEVBQUUsTUFBTSxFQUNuQixTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQ25CLFlBQVksRUFBRSxNQUFNLEVBQ3BCLEdBQUcsRUFBRSxLQUFLLEdBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQTJDZiJ9
@@ -2,4 +2,4 @@ import type { LogFn } from '@aztec/foundation/log';
2
2
  import type { NewValidatorKeystoreOptions } from './new.js';
3
3
  export type AddValidatorKeysOptions = NewValidatorKeystoreOptions;
4
4
  export declare function addValidatorKeys(existing: string, options: AddValidatorKeysOptions, log: LogFn): Promise<void>;
5
- //# sourceMappingURL=add.d.ts.map
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy92YWxpZGF0b3Jfa2V5cy9hZGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRbkQsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFXNUQsTUFBTSxNQUFNLHVCQUF1QixHQUFHLDJCQUEyQixDQUFDO0FBRWxFLHdCQUFzQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsS0FBSyxpQkFvR3BHIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cmds/validator_keys/add.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAQnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAU5D,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAElE,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,GAAG,EAAE,KAAK,iBA2FpG"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cmds/validator_keys/add.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAQnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAW5D,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAElE,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,GAAG,EAAE,KAAK,iBAoGpG"}
@@ -3,8 +3,15 @@ import { wordlist } from '@scure/bip39/wordlists/english.js';
3
3
  import { dirname, isAbsolute, join } from 'path';
4
4
  import { generateMnemonic } from 'viem/accounts';
5
5
  import { buildValidatorEntries, logValidatorSummaries, maybePrintJson, writeBlsBn254ToFile, writeEthJsonV3ToFile, writeKeystoreFile } from './shared.js';
6
+ import { validateBlsPathOptions, validatePublisherOptions, validateRemoteSignerOptions } from './utils.js';
6
7
  export async function addValidatorKeys(existing, options, log) {
7
- const { dataDir, file, count, publisherCount = 0, mnemonic, accountIndex = 0, addressIndex, ikm, blsPath, blsOnly, json, feeRecipient: feeRecipientOpt, coinbase: coinbaseOpt, fundingAccount: fundingAccountOpt, remoteSigner: remoteSignerOpt, password, outDir } = options;
8
+ // validate bls-path inputs before proceeding with key generation
9
+ validateBlsPathOptions(options);
10
+ // validate publisher options
11
+ validatePublisherOptions(options);
12
+ // validate remote signer options
13
+ validateRemoteSignerOptions(options);
14
+ const { dataDir, file, count, publisherCount = 0, publishers, mnemonic, accountIndex = 0, addressIndex, ikm, blsPath, json, feeRecipient: feeRecipientOpt, coinbase: coinbaseOpt, remoteSigner: remoteSignerOpt, password, encryptedKeystoreDir } = options;
8
15
  const validatorCount = typeof count === 'number' && Number.isFinite(count) && count > 0 ? Math.floor(count) : 1;
9
16
  const baseAddressIndex = addressIndex ?? 0;
10
17
  const keystore = loadKeystoreFile(existing);
@@ -17,7 +24,6 @@ export async function addValidatorKeys(existing, options, log) {
17
24
  throw new Error('feeRecipient is required (either present in existing file or via --fee-recipient)');
18
25
  }
19
26
  const coinbase = coinbaseOpt ?? first.coinbase;
20
- const fundingAccount = fundingAccountOpt ?? first.fundingAccount;
21
27
  const derivedRemoteSigner = first.attester?.remoteSignerUrl || first.attester?.eth?.remoteSignerUrl;
22
28
  const remoteSigner = remoteSignerOpt ?? derivedRemoteSigner;
23
29
  // Ensure we always have a mnemonic for key derivation if none was provided
@@ -27,28 +33,35 @@ export async function addValidatorKeys(existing, options, log) {
27
33
  const { validators, summaries } = await buildValidatorEntries({
28
34
  validatorCount,
29
35
  publisherCount,
36
+ publishers,
30
37
  accountIndex,
31
38
  baseAddressIndex: effectiveBaseAddressIndex,
32
39
  mnemonic: mnemonicToUse,
33
40
  ikm,
34
41
  blsPath,
35
- blsOnly,
36
42
  feeRecipient,
37
43
  coinbase,
38
- remoteSigner,
39
- fundingAccount
44
+ remoteSigner
40
45
  });
41
46
  keystore.validators.push(...validators);
42
47
  // If password provided, write ETH JSON V3 and BLS BN254 keystores and replace plaintext
43
48
  if (password !== undefined) {
44
- const targetDir = outDir && outDir.length > 0 ? outDir : dataDir && dataDir.length > 0 ? dataDir : dirname(existing);
49
+ let targetDir;
50
+ if (encryptedKeystoreDir && encryptedKeystoreDir.length > 0) {
51
+ targetDir = encryptedKeystoreDir;
52
+ } else if (dataDir && dataDir.length > 0) {
53
+ targetDir = dataDir;
54
+ } else {
55
+ targetDir = dirname(existing);
56
+ }
45
57
  await writeEthJsonV3ToFile(keystore.validators, {
46
58
  outDir: targetDir,
47
59
  password
48
60
  });
49
61
  await writeBlsBn254ToFile(keystore.validators, {
50
62
  outDir: targetDir,
51
- password
63
+ password,
64
+ blsPath
52
65
  });
53
66
  }
54
67
  let outputPath = existing;
@@ -9,4 +9,4 @@ export type GenerateBlsKeypairOptions = {
9
9
  out?: string;
10
10
  };
11
11
  export declare function generateBlsKeypair(options: GenerateBlsKeypairOptions, log: LogFn): Promise<void>;
12
- //# sourceMappingURL=generate_bls_keypair.d.ts.map
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfYmxzX2tleXBhaXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL3ZhbGlkYXRvcl9rZXlzL2dlbmVyYXRlX2Jsc19rZXlwYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBT25ELE1BQU0sTUFBTSx5QkFBeUIsR0FBRztJQUN0QyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbEIsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2IsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNiLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNyQixJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDZixHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZCxDQUFDO0FBRUYsd0JBQXNCLGtCQUFrQixDQUFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsS0FBSyxpQkFldEYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"generate_bls_keypair.d.ts","sourceRoot":"","sources":["../../../src/cmds/validator_keys/generate_bls_keypair.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAMnD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,GAAG,EAAE,KAAK,iBAetF"}
1
+ {"version":3,"file":"generate_bls_keypair.d.ts","sourceRoot":"","sources":["../../../src/cmds/validator_keys/generate_bls_keypair.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAOnD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,GAAG,EAAE,KAAK,iBAetF"}
@@ -1,9 +1,10 @@
1
- import { deriveBlsPrivateKey } from '@aztec/foundation/crypto';
1
+ import { deriveBlsPrivateKey } from '@aztec/foundation/crypto/bls';
2
2
  import { writeFile } from 'fs/promises';
3
3
  import { computeBlsPublicKeyCompressed, withValidatorIndex } from './shared.js';
4
+ import { defaultBlsPath } from './utils.js';
4
5
  export async function generateBlsKeypair(options, log) {
5
6
  const { mnemonic, ikm, blsPath, compressed = true, json, out } = options;
6
- const path = withValidatorIndex(blsPath ?? 'm/12381/3600/0/0/0', 0);
7
+ const path = withValidatorIndex(blsPath ?? defaultBlsPath, 0);
7
8
  const priv = deriveBlsPrivateKey(mnemonic, ikm, path);
8
9
  const pub = await computeBlsPublicKeyCompressed(priv);
9
10
  const result = {
@@ -1,4 +1,4 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  import { Command } from 'commander';
3
3
  export declare function injectCommands(program: Command, log: LogFn): Command;
4
- //# sourceMappingURL=index.d.ts.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL3ZhbGlkYXRvcl9rZXlzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFLcEMsd0JBQWdCLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLFdBc0kxRCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/validator_keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,WAyF1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/validator_keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,WAsI1D"}