@aztec/cli 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -428
- package/dest/cmds/aztec_node/block_number.d.ts +3 -0
- package/dest/cmds/aztec_node/block_number.d.ts.map +1 -0
- package/dest/cmds/aztec_node/block_number.js +10 -0
- package/dest/cmds/aztec_node/get_block.d.ts +3 -0
- package/dest/cmds/aztec_node/get_block.d.ts.map +1 -0
- package/dest/cmds/aztec_node/get_block.js +10 -0
- package/dest/cmds/aztec_node/get_current_base_fee.d.ts +3 -0
- package/dest/cmds/aztec_node/get_current_base_fee.d.ts.map +1 -0
- package/dest/cmds/aztec_node/get_current_base_fee.js +7 -0
- package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts +5 -0
- package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts.map +1 -0
- package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.js +12 -0
- package/dest/cmds/aztec_node/get_logs.d.ts +7 -0
- package/dest/cmds/aztec_node/get_logs.d.ts.map +1 -0
- package/dest/cmds/{pxe → aztec_node}/get_logs.js +4 -4
- package/dest/cmds/aztec_node/get_node_info.d.ts +3 -0
- package/dest/cmds/aztec_node/get_node_info.d.ts.map +1 -0
- package/dest/cmds/{pxe → aztec_node}/get_node_info.js +3 -8
- package/dest/cmds/aztec_node/index.d.ts +4 -0
- package/dest/cmds/aztec_node/index.d.ts.map +1 -0
- package/dest/cmds/aztec_node/index.js +28 -0
- package/dest/cmds/contracts/index.d.ts +1 -1
- package/dest/cmds/contracts/inspect_contract.d.ts +1 -1
- package/dest/cmds/contracts/inspect_contract.d.ts.map +1 -1
- package/dest/cmds/contracts/inspect_contract.js +4 -10
- package/dest/cmds/contracts/parse_parameter_struct.d.ts +1 -1
- package/dest/cmds/infrastructure/index.d.ts +3 -3
- package/dest/cmds/infrastructure/index.d.ts.map +1 -1
- package/dest/cmds/infrastructure/index.js +7 -9
- package/dest/cmds/infrastructure/sequencers.d.ts +3 -5
- package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
- package/dest/cmds/infrastructure/sequencers.js +15 -7
- package/dest/cmds/infrastructure/setup_l2_contract.d.ts +2 -2
- package/dest/cmds/infrastructure/setup_l2_contract.d.ts.map +1 -1
- package/dest/cmds/infrastructure/setup_l2_contract.js +10 -25
- package/dest/cmds/l1/advance_epoch.d.ts +2 -2
- package/dest/cmds/l1/advance_epoch.d.ts.map +1 -1
- package/dest/cmds/l1/advance_epoch.js +6 -5
- package/dest/cmds/l1/assume_proven_through.d.ts +2 -2
- package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -1
- package/dest/cmds/l1/assume_proven_through.js +8 -6
- package/dest/cmds/l1/bridge_erc20.d.ts +2 -2
- package/dest/cmds/l1/bridge_erc20.d.ts.map +1 -1
- package/dest/cmds/l1/bridge_erc20.js +3 -2
- package/dest/cmds/l1/create_l1_account.d.ts +1 -1
- package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts +4 -0
- package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts.map +1 -0
- package/dest/cmds/l1/{deploy_l1_contracts.js → deploy_l1_contracts_cmd.js} +42 -7
- package/dest/cmds/l1/deploy_new_rollup.d.ts +4 -4
- package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -1
- package/dest/cmds/l1/deploy_new_rollup.js +5 -5
- package/dest/cmds/l1/get_l1_addresses.d.ts +2 -2
- package/dest/cmds/l1/get_l1_addresses.d.ts.map +1 -1
- package/dest/cmds/l1/get_l1_addresses.js +5 -2
- package/dest/cmds/l1/get_l1_balance.d.ts +1 -1
- package/dest/cmds/l1/get_l1_balance.js +4 -2
- package/dest/cmds/l1/governance_utils.d.ts +5 -5
- package/dest/cmds/l1/governance_utils.d.ts.map +1 -1
- package/dest/cmds/l1/governance_utils.js +3 -1
- package/dest/cmds/l1/index.d.ts +1 -2
- package/dest/cmds/l1/index.d.ts.map +1 -1
- package/dest/cmds/l1/index.js +22 -36
- package/dest/cmds/l1/prover_stats.d.ts +1 -1
- package/dest/cmds/l1/prover_stats.d.ts.map +1 -1
- package/dest/cmds/l1/prover_stats.js +32 -30
- package/dest/cmds/l1/trigger_seed_snapshot.d.ts +2 -2
- package/dest/cmds/l1/trigger_seed_snapshot.d.ts.map +1 -1
- package/dest/cmds/l1/trigger_seed_snapshot.js +2 -1
- package/dest/cmds/l1/update_l1_validators.d.ts +10 -5
- package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
- package/dest/cmds/l1/update_l1_validators.js +74 -9
- package/dest/cmds/misc/compute_selector.d.ts +1 -1
- package/dest/cmds/misc/example_contracts.d.ts +1 -1
- package/dest/cmds/misc/generate_bootnode_enr.d.ts +1 -1
- package/dest/cmds/misc/generate_p2p_private_key.d.ts +1 -1
- package/dest/cmds/misc/generate_secret_and_hash.d.ts +1 -1
- package/dest/cmds/misc/generate_secret_and_hash.js +2 -2
- package/dest/cmds/misc/generate_secret_key.d.ts +2 -2
- package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -1
- package/dest/cmds/misc/generate_secret_key.js +1 -1
- package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts +1 -1
- package/dest/cmds/misc/index.d.ts +1 -1
- package/dest/cmds/misc/index.d.ts.map +1 -1
- package/dest/cmds/misc/index.js +1 -1
- package/dest/cmds/misc/update/common.d.ts +1 -1
- package/dest/cmds/misc/update/github.d.ts +1 -1
- package/dest/cmds/misc/update/noir.d.ts +1 -1
- package/dest/cmds/misc/update/npm.d.ts +1 -1
- package/dest/cmds/misc/update/npm.js +1 -1
- package/dest/cmds/misc/update/utils.d.ts +1 -1
- package/dest/cmds/misc/update.d.ts +1 -1
- package/dest/cmds/validator_keys/add.d.ts +5 -0
- package/dest/cmds/validator_keys/add.d.ts.map +1 -0
- package/dest/cmds/validator_keys/add.js +83 -0
- package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +12 -0
- package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -0
- package/dest/cmds/validator_keys/generate_bls_keypair.js +27 -0
- package/dest/cmds/validator_keys/index.d.ts +4 -0
- package/dest/cmds/validator_keys/index.d.ts.map +1 -0
- package/dest/cmds/validator_keys/index.js +32 -0
- package/dest/cmds/validator_keys/new.d.ts +29 -0
- package/dest/cmds/validator_keys/new.d.ts.map +1 -0
- package/dest/cmds/validator_keys/new.js +134 -0
- package/dest/cmds/validator_keys/shared.d.ts +68 -0
- package/dest/cmds/validator_keys/shared.d.ts.map +1 -0
- package/dest/cmds/validator_keys/shared.js +274 -0
- package/dest/cmds/validator_keys/staker.d.ts +38 -0
- package/dest/cmds/validator_keys/staker.d.ts.map +1 -0
- package/dest/cmds/validator_keys/staker.js +210 -0
- package/dest/cmds/validator_keys/utils.d.ts +25 -0
- package/dest/cmds/validator_keys/utils.d.ts.map +1 -0
- package/dest/cmds/validator_keys/utils.js +52 -0
- package/dest/config/cached_fetch.d.ts +18 -0
- package/dest/config/cached_fetch.d.ts.map +1 -0
- package/dest/config/cached_fetch.js +54 -0
- package/dest/config/chain_l2_config.d.ts +41 -0
- package/dest/config/chain_l2_config.d.ts.map +1 -0
- package/dest/config/chain_l2_config.js +524 -0
- package/dest/config/enrich_env.d.ts +4 -0
- package/dest/config/enrich_env.d.ts.map +1 -0
- package/dest/config/enrich_env.js +12 -0
- package/dest/config/get_l1_config.d.ts +9 -0
- package/dest/config/get_l1_config.d.ts.map +1 -0
- package/dest/config/get_l1_config.js +24 -0
- package/dest/config/index.d.ts +5 -0
- package/dest/config/index.d.ts.map +1 -0
- package/dest/config/index.js +4 -0
- package/dest/config/network_config.d.ts +22 -0
- package/dest/config/network_config.d.ts.map +1 -0
- package/dest/config/network_config.js +115 -0
- package/dest/utils/aztec.d.ts +8 -20
- package/dest/utils/aztec.d.ts.map +1 -1
- package/dest/utils/aztec.js +22 -67
- package/dest/utils/commands.d.ts +21 -12
- package/dest/utils/commands.d.ts.map +1 -1
- package/dest/utils/commands.js +38 -11
- package/dest/utils/encoding.d.ts +1 -1
- package/dest/utils/encoding.js +1 -1
- package/dest/utils/github.d.ts +1 -1
- package/dest/utils/index.d.ts +1 -1
- package/dest/utils/inspect.d.ts +5 -11
- package/dest/utils/inspect.d.ts.map +1 -1
- package/dest/utils/inspect.js +13 -95
- package/dest/utils/setup_contracts.d.ts +2 -4
- package/dest/utils/setup_contracts.d.ts.map +1 -1
- package/dest/utils/setup_contracts.js +2 -22
- package/package.json +43 -28
- package/public_include_metric_prefixes.json +1 -0
- package/src/cmds/aztec_node/block_number.ts +9 -0
- package/src/cmds/aztec_node/get_block.ts +11 -0
- package/src/cmds/aztec_node/get_current_base_fee.ts +9 -0
- package/src/cmds/aztec_node/get_l1_to_l2_message_witness.ts +27 -0
- package/src/cmds/{pxe → aztec_node}/get_logs.ts +11 -9
- package/src/cmds/{pxe → aztec_node}/get_node_info.ts +5 -16
- package/src/cmds/aztec_node/index.ts +87 -0
- package/src/cmds/contracts/inspect_contract.ts +4 -11
- package/src/cmds/infrastructure/index.ts +7 -18
- package/src/cmds/infrastructure/sequencers.ts +13 -11
- package/src/cmds/infrastructure/setup_l2_contract.ts +13 -30
- package/src/cmds/l1/advance_epoch.ts +6 -5
- package/src/cmds/l1/assume_proven_through.ts +10 -6
- package/src/cmds/l1/bridge_erc20.ts +5 -2
- package/src/cmds/l1/{deploy_l1_contracts.ts → deploy_l1_contracts_cmd.ts} +44 -24
- package/src/cmds/l1/deploy_new_rollup.ts +6 -9
- package/src/cmds/l1/get_l1_addresses.ts +5 -3
- package/src/cmds/l1/get_l1_balance.ts +2 -2
- package/src/cmds/l1/governance_utils.ts +3 -8
- package/src/cmds/l1/index.ts +28 -66
- package/src/cmds/l1/prover_stats.ts +42 -31
- package/src/cmds/l1/trigger_seed_snapshot.ts +2 -1
- package/src/cmds/l1/update_l1_validators.ts +88 -18
- package/src/cmds/misc/generate_secret_and_hash.ts +2 -2
- package/src/cmds/misc/generate_secret_key.ts +1 -1
- package/src/cmds/misc/index.ts +1 -1
- package/src/cmds/misc/update/npm.ts +1 -1
- package/src/cmds/validator_keys/add.ts +123 -0
- package/src/cmds/validator_keys/generate_bls_keypair.ts +34 -0
- package/src/cmds/validator_keys/index.ts +142 -0
- package/src/cmds/validator_keys/new.ts +207 -0
- package/src/cmds/validator_keys/shared.ts +326 -0
- package/src/cmds/validator_keys/staker.ts +301 -0
- package/src/cmds/validator_keys/utils.ts +81 -0
- package/src/config/cached_fetch.ts +67 -0
- package/src/config/chain_l2_config.ts +694 -0
- package/src/config/enrich_env.ts +15 -0
- package/src/config/get_l1_config.ts +31 -0
- package/src/config/index.ts +4 -0
- package/src/config/network_config.ts +147 -0
- package/src/utils/aztec.ts +27 -118
- package/src/utils/commands.ts +52 -15
- package/src/utils/encoding.ts +1 -1
- package/src/utils/inspect.ts +19 -111
- package/src/utils/setup_contracts.ts +4 -43
- package/dest/cmds/devnet/bootstrap_network.d.ts +0 -3
- package/dest/cmds/devnet/bootstrap_network.d.ts.map +0 -1
- package/dest/cmds/devnet/bootstrap_network.js +0 -216
- package/dest/cmds/devnet/faucet.d.ts +0 -4
- package/dest/cmds/devnet/faucet.d.ts.map +0 -1
- package/dest/cmds/devnet/faucet.js +0 -26
- package/dest/cmds/devnet/index.d.ts +0 -4
- package/dest/cmds/devnet/index.d.ts.map +0 -1
- package/dest/cmds/devnet/index.js +0 -14
- package/dest/cmds/l1/deploy_l1_contracts.d.ts +0 -4
- package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +0 -1
- package/dest/cmds/pxe/add_contract.d.ts +0 -5
- package/dest/cmds/pxe/add_contract.d.ts.map +0 -1
- package/dest/cmds/pxe/add_contract.js +0 -29
- package/dest/cmds/pxe/block_number.d.ts +0 -3
- package/dest/cmds/pxe/block_number.d.ts.map +0 -1
- package/dest/cmds/pxe/block_number.js +0 -10
- package/dest/cmds/pxe/get_account.d.ts +0 -4
- package/dest/cmds/pxe/get_account.d.ts.map +0 -1
- package/dest/cmds/pxe/get_account.js +0 -10
- package/dest/cmds/pxe/get_accounts.d.ts +0 -3
- package/dest/cmds/pxe/get_accounts.d.ts.map +0 -1
- package/dest/cmds/pxe/get_accounts.js +0 -25
- package/dest/cmds/pxe/get_block.d.ts +0 -3
- package/dest/cmds/pxe/get_block.d.ts.map +0 -1
- package/dest/cmds/pxe/get_block.js +0 -9
- package/dest/cmds/pxe/get_contract_data.d.ts +0 -4
- package/dest/cmds/pxe/get_contract_data.d.ts.map +0 -1
- package/dest/cmds/pxe/get_contract_data.js +0 -31
- package/dest/cmds/pxe/get_current_base_fee.d.ts +0 -3
- package/dest/cmds/pxe/get_current_base_fee.d.ts.map +0 -1
- package/dest/cmds/pxe/get_current_base_fee.js +0 -7
- package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts +0 -4
- package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts.map +0 -1
- package/dest/cmds/pxe/get_l1_to_l2_message_witness.js +0 -11
- package/dest/cmds/pxe/get_logs.d.ts +0 -4
- package/dest/cmds/pxe/get_logs.d.ts.map +0 -1
- package/dest/cmds/pxe/get_node_info.d.ts +0 -3
- package/dest/cmds/pxe/get_node_info.d.ts.map +0 -1
- package/dest/cmds/pxe/get_pxe_info.d.ts +0 -3
- package/dest/cmds/pxe/get_pxe_info.d.ts.map +0 -1
- package/dest/cmds/pxe/get_pxe_info.js +0 -11
- package/dest/cmds/pxe/index.d.ts +0 -4
- package/dest/cmds/pxe/index.d.ts.map +0 -1
- package/dest/cmds/pxe/index.js +0 -55
- package/src/cmds/devnet/bootstrap_network.ts +0 -321
- package/src/cmds/devnet/faucet.ts +0 -33
- package/src/cmds/devnet/index.ts +0 -60
- package/src/cmds/pxe/add_contract.ts +0 -41
- package/src/cmds/pxe/block_number.ts +0 -9
- package/src/cmds/pxe/get_account.ts +0 -16
- package/src/cmds/pxe/get_accounts.ts +0 -35
- package/src/cmds/pxe/get_block.ts +0 -10
- package/src/cmds/pxe/get_contract_data.ts +0 -51
- package/src/cmds/pxe/get_current_base_fee.ts +0 -9
- package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +0 -25
- package/src/cmds/pxe/get_pxe_info.ts +0 -13
- package/src/cmds/pxe/index.ts +0 -170
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { Fr
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
2
|
+
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
3
|
+
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
4
|
+
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
5
|
+
import { GSEContract, RollupContract } from '@aztec/ethereum/contracts';
|
|
6
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
4
7
|
import { RollupAbi, TestERC20Abi } from '@aztec/l1-artifacts';
|
|
5
8
|
|
|
6
9
|
import { createPublicClient, createWalletClient, fallback, getContract, http } from 'viem';
|
|
@@ -11,28 +14,26 @@ export async function sequencers(opts: {
|
|
|
11
14
|
who?: string;
|
|
12
15
|
mnemonic?: string;
|
|
13
16
|
bn254SecretKey?: bigint;
|
|
14
|
-
|
|
17
|
+
nodeUrl: string;
|
|
15
18
|
l1RpcUrls: string[];
|
|
16
19
|
chainId: number;
|
|
17
|
-
blockNumber?: number;
|
|
18
20
|
log: LogFn;
|
|
19
|
-
debugLogger: Logger;
|
|
20
21
|
}) {
|
|
21
|
-
const { command, who: maybeWho, mnemonic, bn254SecretKey,
|
|
22
|
-
const client =
|
|
22
|
+
const { command, who: maybeWho, mnemonic, bn254SecretKey, nodeUrl, l1RpcUrls, chainId, log } = opts;
|
|
23
|
+
const client = createAztecNodeClient(nodeUrl);
|
|
23
24
|
const { l1ContractAddresses } = await client.getNodeInfo();
|
|
24
25
|
|
|
25
26
|
const chain = createEthereumChain(l1RpcUrls, chainId);
|
|
26
27
|
const publicClient = createPublicClient({
|
|
27
28
|
chain: chain.chainInfo,
|
|
28
|
-
transport: fallback(l1RpcUrls.map(url => http(url))),
|
|
29
|
+
transport: fallback(l1RpcUrls.map(url => http(url, { batch: false }))),
|
|
29
30
|
});
|
|
30
31
|
|
|
31
32
|
const walletClient = mnemonic
|
|
32
33
|
? createWalletClient({
|
|
33
34
|
account: mnemonicToAccount(mnemonic),
|
|
34
35
|
chain: chain.chainInfo,
|
|
35
|
-
transport: fallback(l1RpcUrls.map(url => http(url))),
|
|
36
|
+
transport: fallback(l1RpcUrls.map(url => http(url, { batch: false }))),
|
|
36
37
|
})
|
|
37
38
|
: undefined;
|
|
38
39
|
|
|
@@ -65,8 +66,9 @@ export async function sequencers(opts: {
|
|
|
65
66
|
|
|
66
67
|
log(`Adding ${who} as sequencer`);
|
|
67
68
|
|
|
69
|
+
const stakingAssetAddress = await rollup.getStakingAsset();
|
|
68
70
|
const stakingAsset = getContract({
|
|
69
|
-
address:
|
|
71
|
+
address: stakingAssetAddress.toString(),
|
|
70
72
|
abi: TestERC20Abi,
|
|
71
73
|
client: walletClient,
|
|
72
74
|
});
|
|
@@ -1,50 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
2
|
+
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
+
import type { WaitOpts } from '@aztec/aztec.js/contracts';
|
|
4
|
+
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
5
|
+
import { AccountManager } from '@aztec/aztec.js/wallet';
|
|
3
6
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
4
7
|
import type { LogFn } from '@aztec/foundation/log';
|
|
5
8
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
9
|
+
import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet/server';
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export async function setupL2Contracts(
|
|
10
|
-
rpcUrl: string,
|
|
11
|
-
testAccounts: boolean,
|
|
12
|
-
sponsoredFPC: boolean,
|
|
13
|
-
json: boolean,
|
|
14
|
-
skipProofWait: boolean,
|
|
15
|
-
log: LogFn,
|
|
16
|
-
) {
|
|
11
|
+
export async function setupL2Contracts(nodeUrl: string, testAccounts: boolean, json: boolean, log: LogFn) {
|
|
17
12
|
const waitOpts: WaitOpts = {
|
|
18
13
|
timeout: 180,
|
|
19
14
|
interval: 1,
|
|
20
15
|
};
|
|
21
|
-
const waitForProvenOptions: WaitForProvenOpts | undefined = !skipProofWait
|
|
22
|
-
? {
|
|
23
|
-
provenTimeout: 600,
|
|
24
|
-
}
|
|
25
|
-
: undefined;
|
|
26
16
|
log('setupL2Contracts: Wait options' + jsonStringify(waitOpts));
|
|
27
|
-
if (waitForProvenOptions) {
|
|
28
|
-
log('setupL2Contracts: Wait for proven options' + jsonStringify(waitForProvenOptions));
|
|
29
|
-
}
|
|
30
17
|
log('setupL2Contracts: Creating PXE client...');
|
|
31
|
-
const
|
|
18
|
+
const node = createAztecNodeClient(nodeUrl);
|
|
19
|
+
const wallet = await TestWallet.create(node);
|
|
32
20
|
|
|
33
|
-
let
|
|
21
|
+
let deployedAccountManagers: AccountManager[] = [];
|
|
34
22
|
if (testAccounts) {
|
|
35
23
|
log('setupL2Contracts: Deploying test accounts...');
|
|
36
|
-
|
|
37
|
-
await deployFundedSchnorrAccounts(
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (sponsoredFPC) {
|
|
41
|
-
log('setupL2Contracts: Setting up sponsored FPC...');
|
|
42
|
-
await setupSponsoredFPC(pxe, log, waitOpts, waitForProvenOptions);
|
|
24
|
+
const initialAccountsData = await getInitialTestAccountsData();
|
|
25
|
+
deployedAccountManagers = await deployFundedSchnorrAccounts(wallet, node, initialAccountsData, waitOpts);
|
|
43
26
|
}
|
|
44
27
|
|
|
45
28
|
if (json) {
|
|
46
29
|
const toPrint: Record<string, AztecAddress> = { ...ProtocolContractAddress };
|
|
47
|
-
|
|
30
|
+
deployedAccountManagers.forEach((a, i) => {
|
|
48
31
|
toPrint[`testAccount${i}`] = a.address;
|
|
49
32
|
});
|
|
50
33
|
log(JSON.stringify(toPrint, null, 2));
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
2
2
|
import { RollupCheatCodes } from '@aztec/ethereum/test';
|
|
3
3
|
import type { LogFn } from '@aztec/foundation/log';
|
|
4
|
+
import { DateProvider } from '@aztec/foundation/timer';
|
|
4
5
|
|
|
5
|
-
export async function advanceEpoch(l1RpcUrls: string[],
|
|
6
|
-
const
|
|
7
|
-
const rollupAddress = await
|
|
6
|
+
export async function advanceEpoch(l1RpcUrls: string[], nodeUrl: string, log: LogFn) {
|
|
7
|
+
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
8
|
+
const rollupAddress = await aztecNode.getNodeInfo().then(i => i.l1ContractAddresses.rollupAddress);
|
|
8
9
|
|
|
9
|
-
const cheat = RollupCheatCodes.create(l1RpcUrls, { rollupAddress });
|
|
10
|
+
const cheat = RollupCheatCodes.create(l1RpcUrls, { rollupAddress }, new DateProvider());
|
|
10
11
|
|
|
11
12
|
await cheat.advanceToNextEpoch();
|
|
12
13
|
log(`Warped time to advance to next epoch`);
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
2
2
|
import { RollupCheatCodes } from '@aztec/ethereum/test';
|
|
3
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
4
|
import type { LogFn } from '@aztec/foundation/log';
|
|
5
|
+
import { DateProvider } from '@aztec/foundation/timer';
|
|
4
6
|
|
|
5
7
|
export async function assumeProvenThrough(
|
|
6
8
|
blockNumberOrLatest: number | undefined,
|
|
7
9
|
l1RpcUrls: string[],
|
|
8
|
-
|
|
10
|
+
nodeUrl: string,
|
|
9
11
|
log: LogFn,
|
|
10
12
|
) {
|
|
11
|
-
const
|
|
12
|
-
const rollupAddress = await
|
|
13
|
-
const blockNumber = blockNumberOrLatest
|
|
13
|
+
const aztecNode = createAztecNodeClient(nodeUrl);
|
|
14
|
+
const rollupAddress = await aztecNode.getNodeInfo().then(i => i.l1ContractAddresses.rollupAddress);
|
|
15
|
+
const blockNumber: BlockNumber = blockNumberOrLatest
|
|
16
|
+
? BlockNumber(blockNumberOrLatest)
|
|
17
|
+
: await aztecNode.getBlockNumber();
|
|
14
18
|
|
|
15
|
-
const rollupCheatCodes = RollupCheatCodes.create(l1RpcUrls, { rollupAddress });
|
|
19
|
+
const rollupCheatCodes = RollupCheatCodes.create(l1RpcUrls, { rollupAddress }, new DateProvider());
|
|
16
20
|
|
|
17
21
|
await rollupCheatCodes.markAsProven(blockNumber);
|
|
18
22
|
log(`Assumed proven through block ${blockNumber}`);
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { L1ToL2TokenPortalManager } from '@aztec/aztec.js/ethereum';
|
|
3
|
+
import type { Fr } from '@aztec/aztec.js/fields';
|
|
4
|
+
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
5
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
3
6
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
4
7
|
|
|
5
8
|
import { prettyPrintJSON } from '../../utils/commands.js';
|
|
@@ -1,59 +1,79 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
2
|
+
import type { EthAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
4
|
+
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
5
|
+
import { type Operator, deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
4
6
|
import { SecretValue } from '@aztec/foundation/config';
|
|
5
7
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
8
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
6
9
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
7
10
|
|
|
8
|
-
import {
|
|
11
|
+
import { mnemonicToAccount } from 'viem/accounts';
|
|
12
|
+
|
|
13
|
+
import { addLeadingHex } from '../../utils/aztec.js';
|
|
9
14
|
import { getSponsoredFPCAddress } from '../../utils/setup_contracts.js';
|
|
10
15
|
|
|
11
|
-
export async function
|
|
16
|
+
export async function deployL1ContractsCmd(
|
|
12
17
|
rpcUrls: string[],
|
|
13
18
|
chainId: number,
|
|
14
19
|
privateKey: string | undefined,
|
|
15
20
|
mnemonic: string,
|
|
16
21
|
mnemonicIndex: number,
|
|
17
|
-
salt: number | undefined,
|
|
18
22
|
testAccounts: boolean,
|
|
19
23
|
sponsoredFPC: boolean,
|
|
20
|
-
acceleratedTestDeployments: boolean,
|
|
21
24
|
json: boolean,
|
|
22
|
-
createVerificationJson: string | false,
|
|
23
25
|
initialValidators: EthAddress[],
|
|
24
26
|
realVerifier: boolean,
|
|
27
|
+
existingToken: EthAddress | undefined,
|
|
25
28
|
log: LogFn,
|
|
26
29
|
debugLogger: Logger,
|
|
27
30
|
) {
|
|
28
31
|
const config = getL1ContractsConfigEnvVars();
|
|
29
32
|
|
|
30
|
-
|
|
33
|
+
// Compute initial accounts for genesis (test accounts + sponsored FPC)
|
|
34
|
+
const initialAccounts = testAccounts ? await getInitialTestAccountsData() : [];
|
|
31
35
|
const sponsoredFPCAddress = sponsoredFPC ? await getSponsoredFPCAddress() : [];
|
|
32
36
|
const initialFundedAccounts = initialAccounts.map(a => a.address).concat(sponsoredFPCAddress);
|
|
33
37
|
const { genesisArchiveRoot, fundingNeeded } = await getGenesisValues(initialFundedAccounts);
|
|
34
38
|
|
|
35
|
-
|
|
39
|
+
// Get the VK tree root
|
|
40
|
+
const { getVKTreeRoot } = await import('@aztec/noir-protocol-circuits-types/vk-tree');
|
|
41
|
+
const vkTreeRoot = getVKTreeRoot();
|
|
42
|
+
|
|
43
|
+
// Get private key (from direct input or mnemonic)
|
|
44
|
+
let deployerPrivateKey: `0x${string}`;
|
|
45
|
+
if (privateKey) {
|
|
46
|
+
deployerPrivateKey = addLeadingHex(privateKey);
|
|
47
|
+
} else {
|
|
48
|
+
const account = mnemonicToAccount(mnemonic!, { addressIndex: mnemonicIndex });
|
|
49
|
+
deployerPrivateKey = `0x${Buffer.from(account.getHdKey().privateKey!).toString('hex')}`;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Prepare validator operators with bn254 keys
|
|
53
|
+
const initialValidatorOperators: Operator[] = initialValidators.map(a => ({
|
|
36
54
|
attester: a,
|
|
37
55
|
withdrawer: a,
|
|
38
56
|
bn254SecretKey: new SecretValue(Fr.random().toBigInt()),
|
|
39
57
|
}));
|
|
40
58
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
59
|
+
debugLogger.info('Deploying L1 contracts via Forge...');
|
|
60
|
+
|
|
61
|
+
// Deploy using l1-contracts Forge scripts
|
|
62
|
+
const { l1ContractAddresses, rollupVersion } = await deployAztecL1Contracts(rpcUrls[0], deployerPrivateKey, chainId, {
|
|
63
|
+
// Initial validators to add during deployment
|
|
64
|
+
initialValidators: initialValidatorOperators,
|
|
65
|
+
// Genesis config
|
|
66
|
+
vkTreeRoot,
|
|
67
|
+
protocolContractsHash,
|
|
49
68
|
genesisArchiveRoot,
|
|
50
|
-
|
|
51
|
-
acceleratedTestDeployments,
|
|
52
|
-
config,
|
|
69
|
+
// Deployment options
|
|
53
70
|
realVerifier,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
71
|
+
...config,
|
|
72
|
+
feeJuicePortalInitialBalance: fundingNeeded,
|
|
73
|
+
existingTokenAddress: existingToken,
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
debugLogger.info('Forge deployment complete', { rollupVersion });
|
|
57
77
|
|
|
58
78
|
if (json) {
|
|
59
79
|
log(
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
2
|
+
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
3
|
+
import type { Operator } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
3
4
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
-
import type { LogFn
|
|
5
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
5
6
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
6
7
|
|
|
7
8
|
import { deployNewRollupContracts } from '../../utils/aztec.js';
|
|
@@ -14,18 +15,16 @@ export async function deployNewRollup(
|
|
|
14
15
|
privateKey: string | undefined,
|
|
15
16
|
mnemonic: string,
|
|
16
17
|
mnemonicIndex: number,
|
|
17
|
-
salt: number | undefined,
|
|
18
18
|
testAccounts: boolean,
|
|
19
19
|
sponsoredFPC: boolean,
|
|
20
20
|
json: boolean,
|
|
21
21
|
initialValidators: Operator[],
|
|
22
22
|
realVerifier: boolean,
|
|
23
23
|
log: LogFn,
|
|
24
|
-
debugLogger: Logger,
|
|
25
24
|
) {
|
|
26
25
|
const config = getL1ContractsConfigEnvVars();
|
|
27
26
|
|
|
28
|
-
const initialAccounts = testAccounts ? await
|
|
27
|
+
const initialAccounts = testAccounts ? await getInitialTestAccountsData() : [];
|
|
29
28
|
const sponsoredFPCAddress = sponsoredFPC ? await getSponsoredFPCAddress() : [];
|
|
30
29
|
const initialFundedAccounts = initialAccounts.map(a => a.address).concat(sponsoredFPCAddress);
|
|
31
30
|
const { genesisArchiveRoot, fundingNeeded } = await getGenesisValues(initialFundedAccounts);
|
|
@@ -33,17 +32,15 @@ export async function deployNewRollup(
|
|
|
33
32
|
const { rollup, slashFactoryAddress } = await deployNewRollupContracts(
|
|
34
33
|
registryAddress,
|
|
35
34
|
rpcUrls,
|
|
36
|
-
chainId,
|
|
37
35
|
privateKey,
|
|
36
|
+
chainId,
|
|
38
37
|
mnemonic,
|
|
39
38
|
mnemonicIndex,
|
|
40
|
-
salt,
|
|
41
39
|
initialValidators,
|
|
42
40
|
genesisArchiveRoot,
|
|
43
41
|
fundingNeeded,
|
|
44
42
|
config,
|
|
45
43
|
realVerifier,
|
|
46
|
-
debugLogger,
|
|
47
44
|
);
|
|
48
45
|
|
|
49
46
|
if (json) {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec/aztec.js';
|
|
2
|
-
import {
|
|
1
|
+
import { EthAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
3
|
+
import { RegistryContract } from '@aztec/ethereum/contracts';
|
|
4
|
+
import type { ViemPublicClient } from '@aztec/ethereum/types';
|
|
3
5
|
import type { LogFn } from '@aztec/foundation/log';
|
|
4
6
|
|
|
5
7
|
import { createPublicClient, fallback, http } from 'viem';
|
|
@@ -15,7 +17,7 @@ export async function getL1Addresses(
|
|
|
15
17
|
const chain = createEthereumChain(rpcUrls, chainId);
|
|
16
18
|
const publicClient: ViemPublicClient = createPublicClient({
|
|
17
19
|
chain: chain.chainInfo,
|
|
18
|
-
transport: fallback(rpcUrls.map(url => http(url))),
|
|
20
|
+
transport: fallback(rpcUrls.map(url => http(url, { batch: false }))),
|
|
19
21
|
pollingInterval: 100,
|
|
20
22
|
});
|
|
21
23
|
const addresses = await RegistryContract.collectAddresses(publicClient, registryAddress.toString(), rollupVersion);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createEthereumChain } from '@aztec/ethereum';
|
|
1
|
+
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
2
2
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
import type { LogFn } from '@aztec/foundation/log';
|
|
4
4
|
import { TestERC20Abi } from '@aztec/l1-artifacts';
|
|
@@ -18,7 +18,7 @@ export async function getL1Balance(
|
|
|
18
18
|
const chain = createEthereumChain(l1RpcUrls, chainId);
|
|
19
19
|
const publicClient = createPublicClient({
|
|
20
20
|
chain: chain.chainInfo,
|
|
21
|
-
transport: fallback(l1RpcUrls.map(url => http(url))),
|
|
21
|
+
transport: fallback(l1RpcUrls.map(url => http(url, { batch: false }))),
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
let balance = 0n;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
ProposalState,
|
|
5
|
-
RegistryContract,
|
|
6
|
-
createEthereumChain,
|
|
7
|
-
createExtendedL1Client,
|
|
8
|
-
} from '@aztec/ethereum';
|
|
1
|
+
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
2
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
3
|
+
import { FeeJuiceContract, GovernanceContract, ProposalState, RegistryContract } from '@aztec/ethereum/contracts';
|
|
9
4
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
10
5
|
|
|
11
6
|
export async function depositGovernanceTokens({
|
package/src/cmds/l1/index.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
2
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
-
import { withoutHexPrefix } from '@aztec/foundation/string';
|
|
4
3
|
|
|
5
4
|
import { type Command, Option } from 'commander';
|
|
6
5
|
|
|
@@ -9,14 +8,12 @@ import {
|
|
|
9
8
|
MNEMONIC,
|
|
10
9
|
PRIVATE_KEY,
|
|
11
10
|
l1ChainIdOption,
|
|
11
|
+
nodeOption,
|
|
12
12
|
parseAztecAddress,
|
|
13
13
|
parseBigint,
|
|
14
14
|
parseEthereumAddress,
|
|
15
|
-
pxeOption,
|
|
16
15
|
} from '../../utils/commands.js';
|
|
17
16
|
|
|
18
|
-
export { addL1Validator } from './update_l1_validators.js';
|
|
19
|
-
|
|
20
17
|
const l1RpcUrlsOption = new Option(
|
|
21
18
|
'--l1-rpc-urls <string>',
|
|
22
19
|
'List of Ethereum host URLs. Chain identifiers localhost and testnet can be used (comma separated)',
|
|
@@ -26,6 +23,8 @@ const l1RpcUrlsOption = new Option(
|
|
|
26
23
|
.makeOptionMandatory(true)
|
|
27
24
|
.argParser((arg: string) => arg.split(',').map(url => url.trim()));
|
|
28
25
|
|
|
26
|
+
const networkOption = new Option('--network <string>', 'Network to execute against').env('NETWORK');
|
|
27
|
+
|
|
29
28
|
export function injectCommands(program: Command, log: LogFn, debugLogger: Logger) {
|
|
30
29
|
program
|
|
31
30
|
.command('deploy-l1-contracts')
|
|
@@ -40,32 +39,28 @@ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger
|
|
|
40
39
|
)
|
|
41
40
|
.option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', arg => parseInt(arg), 0)
|
|
42
41
|
.addOption(l1ChainIdOption)
|
|
43
|
-
.option('--salt <number>', 'The optional salt to use in deployment', arg => parseInt(arg))
|
|
44
42
|
.option('--json', 'Output the contract addresses in JSON format')
|
|
45
43
|
.option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts')
|
|
46
44
|
.option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract')
|
|
47
|
-
.option('--accelerated-test-deployments', 'Fire and forget deployment transactions, use in testing only', false)
|
|
48
45
|
.option('--real-verifier', 'Deploy the real verifier', false)
|
|
49
|
-
.option('--
|
|
46
|
+
.option('--existing-token <address>', 'Use an existing ERC20 for both fee and staking', parseEthereumAddress)
|
|
50
47
|
.action(async options => {
|
|
51
|
-
const {
|
|
48
|
+
const { deployL1ContractsCmd } = await import('./deploy_l1_contracts_cmd.js');
|
|
52
49
|
|
|
53
50
|
const initialValidators =
|
|
54
51
|
options.validators?.split(',').map((validator: string) => EthAddress.fromString(validator)) || [];
|
|
55
|
-
await
|
|
52
|
+
await deployL1ContractsCmd(
|
|
56
53
|
options.l1RpcUrls,
|
|
57
54
|
options.l1ChainId,
|
|
58
55
|
options.privateKey,
|
|
59
56
|
options.mnemonic,
|
|
60
57
|
options.mnemonicIndex,
|
|
61
|
-
options.salt,
|
|
62
58
|
options.testAccounts,
|
|
63
59
|
options.sponsoredFpc,
|
|
64
|
-
options.acceleratedTestDeployments,
|
|
65
60
|
options.json,
|
|
66
|
-
options.createVerificationJson,
|
|
67
61
|
initialValidators,
|
|
68
62
|
options.realVerifier,
|
|
63
|
+
options.existingToken,
|
|
69
64
|
log,
|
|
70
65
|
debugLogger,
|
|
71
66
|
);
|
|
@@ -85,7 +80,6 @@ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger
|
|
|
85
80
|
)
|
|
86
81
|
.option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', arg => parseInt(arg), 0)
|
|
87
82
|
.addOption(l1ChainIdOption)
|
|
88
|
-
.option('--salt <number>', 'The optional salt to use in deployment', arg => parseInt(arg))
|
|
89
83
|
.option('--json', 'Output the contract addresses in JSON format')
|
|
90
84
|
.option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts')
|
|
91
85
|
.option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract')
|
|
@@ -102,14 +96,12 @@ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger
|
|
|
102
96
|
options.privateKey,
|
|
103
97
|
options.mnemonic,
|
|
104
98
|
options.mnemonicIndex,
|
|
105
|
-
options.salt,
|
|
106
99
|
options.testAccounts,
|
|
107
100
|
options.sponsoredFpc,
|
|
108
101
|
options.json,
|
|
109
102
|
initialValidators,
|
|
110
103
|
options.realVerifier,
|
|
111
104
|
log,
|
|
112
|
-
debugLogger,
|
|
113
105
|
);
|
|
114
106
|
});
|
|
115
107
|
|
|
@@ -285,8 +277,9 @@ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger
|
|
|
285
277
|
|
|
286
278
|
program
|
|
287
279
|
.command('add-l1-validator')
|
|
288
|
-
.description('Adds a validator to the L1 rollup contract.')
|
|
280
|
+
.description('Adds a validator to the L1 rollup contract via a direct deposit.')
|
|
289
281
|
.addOption(l1RpcUrlsOption)
|
|
282
|
+
.addOption(networkOption)
|
|
290
283
|
.option('-pk, --private-key <string>', 'The private key to use sending the transaction', PRIVATE_KEY)
|
|
291
284
|
.option(
|
|
292
285
|
'-m, --mnemonic <string>',
|
|
@@ -295,32 +288,33 @@ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger
|
|
|
295
288
|
)
|
|
296
289
|
.addOption(l1ChainIdOption)
|
|
297
290
|
.option('--attester <address>', 'ethereum address of the attester', parseEthereumAddress)
|
|
291
|
+
.option('--withdrawer <address>', 'ethereum address of the withdrawer', parseEthereumAddress)
|
|
298
292
|
.option(
|
|
299
293
|
'--bls-secret-key <string>',
|
|
300
294
|
'The BN254 scalar field element used as a secret key for BLS signatures. Will be associated with the attester address.',
|
|
301
295
|
parseBigint,
|
|
302
296
|
)
|
|
303
|
-
.option('--
|
|
304
|
-
.option('--
|
|
305
|
-
Buffer.from(withoutHexPrefix(arg), 'hex'),
|
|
306
|
-
)
|
|
307
|
-
.option(
|
|
308
|
-
'--merkle-proof <string>',
|
|
309
|
-
'The merkle proof to use for the attestation (comma separated list of 32 byte buffers)',
|
|
310
|
-
arg => arg.split(','),
|
|
311
|
-
)
|
|
297
|
+
.option('--move-with-latest-rollup', 'Whether to move with the latest rollup', true)
|
|
298
|
+
.option('--rollup <string>', 'Rollup contract address', parseEthereumAddress)
|
|
312
299
|
.action(async options => {
|
|
313
|
-
const {
|
|
314
|
-
|
|
300
|
+
const { addL1ValidatorViaRollup } = await import('./update_l1_validators.js');
|
|
301
|
+
|
|
302
|
+
let rollupAddress = options.rollup;
|
|
303
|
+
if (!rollupAddress) {
|
|
304
|
+
const { getL1RollupAddressFromEnv } = await import('../../config/get_l1_config.js');
|
|
305
|
+
rollupAddress = await getL1RollupAddressFromEnv(options.l1RpcUrls, options.l1ChainId);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
await addL1ValidatorViaRollup({
|
|
315
309
|
rpcUrls: options.l1RpcUrls,
|
|
316
310
|
chainId: options.l1ChainId,
|
|
317
311
|
privateKey: options.privateKey,
|
|
318
312
|
mnemonic: options.mnemonic,
|
|
319
313
|
attesterAddress: options.attester,
|
|
320
|
-
stakingAssetHandlerAddress: options.stakingAssetHandler,
|
|
321
|
-
merkleProof: options.merkleProof,
|
|
322
|
-
proofParams: options.proof,
|
|
323
314
|
blsSecretKey: options.blsSecretKey,
|
|
315
|
+
withdrawerAddress: options.withdrawer,
|
|
316
|
+
rollupAddress,
|
|
317
|
+
moveWithLatestRollup: options.moveWithLatestRollup,
|
|
324
318
|
log,
|
|
325
319
|
debugLogger,
|
|
326
320
|
});
|
|
@@ -507,52 +501,20 @@ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger
|
|
|
507
501
|
)
|
|
508
502
|
.argument('[blockNumber]', 'The target block number, defaults to the latest pending block number.', parseBigint)
|
|
509
503
|
.addOption(l1RpcUrlsOption)
|
|
510
|
-
.addOption(
|
|
504
|
+
.addOption(nodeOption)
|
|
511
505
|
.action(async (blockNumber, options) => {
|
|
512
506
|
const { assumeProvenThrough } = await import('./assume_proven_through.js');
|
|
513
|
-
await assumeProvenThrough(blockNumber, options.l1RpcUrls, options.
|
|
507
|
+
await assumeProvenThrough(blockNumber, options.l1RpcUrls, options.nodeUrl, log);
|
|
514
508
|
});
|
|
515
509
|
|
|
516
510
|
program
|
|
517
511
|
.command('advance-epoch')
|
|
518
512
|
.description('Use L1 cheat codes to warp time until the next epoch.')
|
|
519
513
|
.addOption(l1RpcUrlsOption)
|
|
520
|
-
.addOption(
|
|
514
|
+
.addOption(nodeOption)
|
|
521
515
|
.action(async options => {
|
|
522
516
|
const { advanceEpoch } = await import('./advance_epoch.js');
|
|
523
|
-
await advanceEpoch(options.l1RpcUrls, options.
|
|
524
|
-
});
|
|
525
|
-
|
|
526
|
-
program
|
|
527
|
-
.command('prover-stats', { hidden: true })
|
|
528
|
-
.addOption(l1RpcUrlsOption)
|
|
529
|
-
.addOption(l1ChainIdOption)
|
|
530
|
-
.option('--start-block <number>', 'The L1 block number to start from', parseBigint, 1n)
|
|
531
|
-
.option('--end-block <number>', 'The last L1 block number to query', parseBigint)
|
|
532
|
-
.option('--batch-size <number>', 'The number of blocks to query in each batch', parseBigint, 100n)
|
|
533
|
-
.option('--proving-timeout <number>', 'Cutoff for proving time to consider a block', parseBigint)
|
|
534
|
-
.option('--l1-rollup-address <string>', 'Address of the rollup contract (required if node URL is not set)')
|
|
535
|
-
.option(
|
|
536
|
-
'--node-url <string>',
|
|
537
|
-
'JSON RPC URL of an Aztec node to retrieve the rollup contract address (required if L1 rollup address is not set)',
|
|
538
|
-
)
|
|
539
|
-
.option('--raw-logs', 'Output raw logs instead of aggregated stats')
|
|
540
|
-
.action(async options => {
|
|
541
|
-
const { proverStats } = await import('./prover_stats.js');
|
|
542
|
-
const { l1RpcUrls, chainId, l1RollupAddress, startBlock, endBlock, batchSize, nodeUrl, provingTimeout, rawLogs } =
|
|
543
|
-
options;
|
|
544
|
-
await proverStats({
|
|
545
|
-
l1RpcUrls,
|
|
546
|
-
chainId,
|
|
547
|
-
l1RollupAddress,
|
|
548
|
-
startBlock,
|
|
549
|
-
endBlock,
|
|
550
|
-
batchSize,
|
|
551
|
-
nodeUrl,
|
|
552
|
-
provingTimeout,
|
|
553
|
-
rawLogs,
|
|
554
|
-
log,
|
|
555
|
-
});
|
|
517
|
+
await advanceEpoch(options.l1RpcUrls, options.nodeUrl, log);
|
|
556
518
|
});
|
|
557
519
|
|
|
558
520
|
return program;
|