@aztec/cli 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.77.0-testnet-ignition.21
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 +1 -1
- package/dest/cmds/contracts/index.d.ts +4 -0
- package/dest/cmds/contracts/index.d.ts.map +1 -0
- package/dest/cmds/contracts/inspect_contract.d.ts +3 -0
- package/dest/cmds/contracts/inspect_contract.d.ts.map +1 -0
- package/dest/cmds/contracts/inspect_contract.js +3 -3
- package/dest/cmds/contracts/parse_parameter_struct.d.ts +3 -0
- package/dest/cmds/contracts/parse_parameter_struct.d.ts.map +1 -0
- package/dest/cmds/devnet/bootstrap_network.d.ts +3 -0
- package/dest/cmds/devnet/bootstrap_network.d.ts.map +1 -0
- package/dest/cmds/devnet/bootstrap_network.js +13 -10
- package/dest/cmds/devnet/faucet.d.ts +4 -0
- package/dest/cmds/devnet/faucet.d.ts.map +1 -0
- package/dest/cmds/devnet/index.d.ts +4 -0
- package/dest/cmds/devnet/index.d.ts.map +1 -0
- package/dest/cmds/devnet/index.js +5 -3
- package/dest/cmds/infrastructure/index.d.ts +4 -0
- package/dest/cmds/infrastructure/index.d.ts.map +1 -0
- package/dest/cmds/infrastructure/index.js +8 -6
- package/dest/cmds/infrastructure/sequencers.d.ts +13 -0
- package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -0
- package/dest/cmds/infrastructure/sequencers.js +5 -5
- package/dest/cmds/infrastructure/setup_l2_contract.d.ts +3 -0
- package/dest/cmds/infrastructure/setup_l2_contract.d.ts.map +1 -0
- package/dest/cmds/infrastructure/setup_l2_contract.js +43 -0
- package/dest/cmds/l1/advance_epoch.d.ts +3 -0
- package/dest/cmds/l1/advance_epoch.d.ts.map +1 -0
- package/dest/cmds/l1/advance_epoch.js +3 -3
- package/dest/cmds/l1/assume_proven_through.d.ts +3 -0
- package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -0
- package/dest/cmds/l1/assume_proven_through.js +8 -8
- package/dest/cmds/l1/bridge_erc20.d.ts +4 -0
- package/dest/cmds/l1/bridge_erc20.d.ts.map +1 -0
- package/dest/cmds/l1/bridge_erc20.js +3 -3
- package/dest/cmds/l1/create_l1_account.d.ts +3 -0
- package/dest/cmds/l1/create_l1_account.d.ts.map +1 -0
- package/dest/cmds/l1/deploy_l1_contracts.d.ts +4 -0
- package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +1 -0
- package/dest/cmds/l1/deploy_l1_contracts.js +7 -3
- package/dest/cmds/l1/deploy_l1_verifier.d.ts +5 -0
- package/dest/cmds/l1/deploy_l1_verifier.d.ts.map +1 -0
- package/dest/cmds/l1/deploy_l1_verifier.js +4 -4
- package/dest/cmds/l1/deploy_new_rollup.d.ts +4 -0
- package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -0
- package/dest/cmds/l1/deploy_new_rollup.js +19 -0
- package/dest/cmds/l1/get_l1_addresses.d.ts +4 -0
- package/dest/cmds/l1/get_l1_addresses.d.ts.map +1 -0
- package/dest/cmds/l1/get_l1_addresses.js +18 -0
- package/dest/cmds/l1/get_l1_balance.d.ts +4 -0
- package/dest/cmds/l1/get_l1_balance.d.ts.map +1 -0
- package/dest/cmds/l1/get_l1_balance.js +4 -4
- package/dest/cmds/l1/governance_utils.d.ts +50 -0
- package/dest/cmds/l1/governance_utils.d.ts.map +1 -0
- package/dest/cmds/l1/governance_utils.js +85 -0
- package/dest/cmds/l1/index.d.ts +4 -0
- package/dest/cmds/l1/index.d.ts.map +1 -0
- package/dest/cmds/l1/index.js +108 -27
- package/dest/cmds/l1/prover_stats.d.ts +14 -0
- package/dest/cmds/l1/prover_stats.d.ts.map +1 -0
- package/dest/cmds/l1/prover_stats.js +6 -6
- package/dest/cmds/l1/update_l1_validators.d.ts +30 -0
- package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -0
- package/dest/cmds/l1/update_l1_validators.js +22 -22
- package/dest/cmds/misc/compute_selector.d.ts +3 -0
- package/dest/cmds/misc/compute_selector.d.ts.map +1 -0
- package/dest/cmds/misc/compute_selector.js +1 -1
- package/dest/cmds/misc/example_contracts.d.ts +3 -0
- package/dest/cmds/misc/example_contracts.d.ts.map +1 -0
- package/dest/cmds/misc/generate_bootnode_enr.d.ts +3 -0
- package/dest/cmds/misc/generate_bootnode_enr.d.ts.map +1 -0
- package/dest/cmds/misc/generate_bootnode_enr.js +5 -0
- package/dest/cmds/misc/generate_p2p_private_key.d.ts +3 -0
- package/dest/cmds/misc/generate_p2p_private_key.d.ts.map +1 -0
- package/dest/cmds/misc/generate_secret_and_hash.d.ts +3 -0
- package/dest/cmds/misc/generate_secret_and_hash.d.ts.map +1 -0
- package/dest/cmds/misc/generate_secret_key.d.ts +5 -0
- package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -0
- package/dest/cmds/misc/index.d.ts +4 -0
- package/dest/cmds/misc/index.d.ts.map +1 -0
- package/dest/cmds/misc/index.js +9 -1
- package/dest/cmds/misc/setup_contracts.d.ts +7 -0
- package/dest/cmds/misc/setup_contracts.d.ts.map +1 -0
- package/dest/cmds/misc/setup_contracts.js +5 -3
- package/dest/cmds/misc/update/common.d.ts +17 -0
- package/dest/cmds/misc/update/common.d.ts.map +1 -0
- package/dest/cmds/misc/update/github.d.ts +4 -0
- package/dest/cmds/misc/update/github.d.ts.map +1 -0
- package/dest/cmds/misc/update/noir.d.ts +10 -0
- package/dest/cmds/misc/update/noir.d.ts.map +1 -0
- package/dest/cmds/misc/update/npm.d.ts +34 -0
- package/dest/cmds/misc/update/npm.d.ts.map +1 -0
- package/dest/cmds/misc/update/utils.d.ts +14 -0
- package/dest/cmds/misc/update/utils.d.ts.map +1 -0
- package/dest/cmds/misc/update.d.ts +3 -0
- package/dest/cmds/misc/update.d.ts.map +1 -0
- package/dest/cmds/pxe/add_contract.d.ts +5 -0
- package/dest/cmds/pxe/add_contract.d.ts.map +1 -0
- package/dest/cmds/pxe/add_contract.js +6 -4
- package/dest/cmds/pxe/block_number.d.ts +3 -0
- package/dest/cmds/pxe/block_number.d.ts.map +1 -0
- package/dest/cmds/pxe/get_account.d.ts +4 -0
- package/dest/cmds/pxe/get_account.d.ts.map +1 -0
- package/dest/cmds/pxe/get_accounts.d.ts +3 -0
- package/dest/cmds/pxe/get_accounts.d.ts.map +1 -0
- package/dest/cmds/pxe/get_block.d.ts +3 -0
- package/dest/cmds/pxe/get_block.d.ts.map +1 -0
- package/dest/cmds/pxe/get_contract_data.d.ts +4 -0
- package/dest/cmds/pxe/get_contract_data.d.ts.map +1 -0
- package/dest/cmds/pxe/get_contract_data.js +1 -1
- package/dest/cmds/pxe/get_current_base_fee.d.ts +3 -0
- package/dest/cmds/pxe/get_current_base_fee.d.ts.map +1 -0
- package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts +4 -0
- package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts.map +1 -0
- package/dest/cmds/pxe/get_logs.d.ts +4 -0
- package/dest/cmds/pxe/get_logs.d.ts.map +1 -0
- package/dest/cmds/pxe/get_node_info.d.ts +3 -0
- package/dest/cmds/pxe/get_node_info.d.ts.map +1 -0
- package/dest/cmds/pxe/get_node_info.js +2 -2
- package/dest/cmds/pxe/get_pxe_info.d.ts +3 -0
- package/dest/cmds/pxe/get_pxe_info.d.ts.map +1 -0
- package/dest/cmds/pxe/index.d.ts +4 -0
- package/dest/cmds/pxe/index.d.ts.map +1 -0
- package/dest/cmds/pxe/index.js +1 -1
- package/dest/utils/aztec.d.ts +68 -0
- package/dest/utils/aztec.d.ts.map +1 -0
- package/dest/utils/aztec.js +34 -23
- package/dest/utils/commands.d.ts +143 -0
- package/dest/utils/commands.d.ts.map +1 -0
- package/dest/utils/commands.js +2 -2
- package/dest/utils/encoding.d.ts +15 -0
- package/dest/utils/encoding.d.ts.map +1 -0
- package/dest/utils/encoding.js +6 -13
- package/dest/utils/github.d.ts +4 -0
- package/dest/utils/github.d.ts.map +1 -0
- package/dest/utils/index.d.ts +5 -0
- package/dest/utils/index.d.ts.map +1 -0
- package/dest/utils/inspect.d.ts +17 -0
- package/dest/utils/inspect.d.ts.map +1 -0
- package/dest/utils/inspect.js +4 -4
- package/package.json +21 -20
- package/src/cmds/contracts/index.ts +2 -2
- package/src/cmds/contracts/inspect_contract.ts +5 -5
- package/src/cmds/contracts/parse_parameter_struct.ts +2 -2
- package/src/cmds/devnet/bootstrap_network.ts +24 -12
- package/src/cmds/devnet/faucet.ts +2 -2
- package/src/cmds/devnet/index.ts +16 -8
- package/src/cmds/infrastructure/index.ts +12 -11
- package/src/cmds/infrastructure/sequencers.ts +10 -7
- package/src/cmds/infrastructure/setup_l2_contract.ts +47 -0
- package/src/cmds/l1/advance_epoch.ts +4 -4
- package/src/cmds/l1/assume_proven_through.ts +8 -14
- package/src/cmds/l1/bridge_erc20.ts +5 -6
- package/src/cmds/l1/create_l1_account.ts +1 -1
- package/src/cmds/l1/deploy_l1_contracts.ts +13 -5
- package/src/cmds/l1/deploy_l1_verifier.ts +7 -7
- package/src/cmds/l1/deploy_new_rollup.ts +58 -0
- package/src/cmds/l1/get_l1_addresses.ts +30 -0
- package/src/cmds/l1/get_l1_balance.ts +9 -6
- package/src/cmds/l1/governance_utils.ts +187 -0
- package/src/cmds/l1/index.ts +238 -97
- package/src/cmds/l1/prover_stats.ts +21 -11
- package/src/cmds/l1/update_l1_validators.ts +25 -25
- package/src/cmds/misc/compute_selector.ts +2 -2
- package/src/cmds/misc/example_contracts.ts +1 -1
- package/src/cmds/misc/generate_bootnode_enr.ts +12 -0
- package/src/cmds/misc/generate_p2p_private_key.ts +1 -1
- package/src/cmds/misc/generate_secret_and_hash.ts +1 -1
- package/src/cmds/misc/index.ts +25 -3
- package/src/cmds/misc/setup_contracts.ts +6 -4
- package/src/cmds/misc/update/noir.ts +2 -2
- package/src/cmds/misc/update/npm.ts +2 -2
- package/src/cmds/misc/update/utils.ts +1 -1
- package/src/cmds/misc/update.ts +2 -2
- package/src/cmds/pxe/add_contract.ts +7 -5
- package/src/cmds/pxe/block_number.ts +1 -1
- package/src/cmds/pxe/get_account.ts +2 -2
- package/src/cmds/pxe/get_accounts.ts +1 -1
- package/src/cmds/pxe/get_block.ts +1 -1
- package/src/cmds/pxe/get_contract_data.ts +5 -3
- package/src/cmds/pxe/get_current_base_fee.ts +1 -1
- package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +1 -1
- package/src/cmds/pxe/get_logs.ts +2 -2
- package/src/cmds/pxe/get_node_info.ts +3 -3
- package/src/cmds/pxe/get_pxe_info.ts +1 -1
- package/src/cmds/pxe/index.ts +3 -3
- package/src/utils/aztec.ts +74 -44
- package/src/utils/commands.ts +4 -4
- package/src/utils/encoding.ts +7 -13
- package/src/utils/inspect.ts +8 -7
- package/dest/cmds/infrastructure/setup_protocol_contract.js +0 -31
- package/src/cmds/infrastructure/setup_protocol_contract.ts +0 -36
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ These options are:
|
|
|
38
38
|
- `SECRET_KEY` -> `-sk, --secret-key` for all commands that require an Aztec secret key.
|
|
39
39
|
- `PUBLIC_KEY` -> `-k, --public-key` for all commands that require a public key.
|
|
40
40
|
- `PXE_URL` -> `-u, --rpc-url` for commands that require a PXE
|
|
41
|
-
- `
|
|
41
|
+
- `ETHEREUM_HOSTS` -> `-u, --rpc-urls` or `--l1-rpc-urls` for `deploy-l1-contracts`.
|
|
42
42
|
|
|
43
43
|
So if for example you are running your Private eXecution Environment (PXE) remotely you can do:
|
|
44
44
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WA6B/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect_contract.d.ts","sourceRoot":"","sources":["../../../src/cmds/contracts/inspect_contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAW3D,wBAAsB,eAAe,CAAC,oBAAoB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBA2BlG"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { getContractClassFromArtifact } from '@aztec/circuits.js';
|
|
2
|
-
import { FunctionSelector, decodeFunctionSignature, decodeFunctionSignatureWithParameterNames } from '@aztec/foundation/abi';
|
|
3
1
|
import { sha256 } from '@aztec/foundation/crypto';
|
|
2
|
+
import { FunctionSelector, decodeFunctionSignature, decodeFunctionSignatureWithParameterNames } from '@aztec/stdlib/abi';
|
|
3
|
+
import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
|
|
4
4
|
import { getContractArtifact } from '../../utils/aztec.js';
|
|
5
5
|
export async function inspectContract(contractArtifactFile, debugLogger, log) {
|
|
6
6
|
const contractArtifact = await getContractArtifact(contractArtifactFile, log);
|
|
7
|
-
const contractFns = contractArtifact.functions
|
|
7
|
+
const contractFns = contractArtifact.functions;
|
|
8
8
|
if (contractFns.length === 0) {
|
|
9
9
|
log(`No functions found for contract ${contractArtifact.name}`);
|
|
10
10
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse_parameter_struct.d.ts","sourceRoot":"","sources":["../../../src/cmds/contracts/parse_parameter_struct.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAMnD,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,oBAAoB,EAAE,MAAM,EAC5B,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,KAAK,iBAeX"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
2
|
+
export declare function bootstrapNetwork(pxeUrl: string, l1Urls: string[], l1ChainId: string, l1PrivateKey: `0x${string}` | undefined, l1Mnemonic: string, addressIndex: number, json: boolean, log: LogFn, debugLog: Logger): Promise<void>;
|
|
3
|
+
//# sourceMappingURL=bootstrap_network.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap_network.d.ts","sourceRoot":"","sources":["../../../src/cmds/devnet/bootstrap_network.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAiB3D,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,EACvC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,MAAM,iBA4EjB"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BatchCall, L1FeeJuicePortalManager, createCompatibleClient, retryUntil } from '@aztec/aztec.js';
|
|
3
|
-
import { FEE_FUNDING_FOR_TESTER_ACCOUNT
|
|
1
|
+
import { getDeployedTestAccountsWallets } from '@aztec/accounts/testing';
|
|
2
|
+
import { BatchCall, Fr, L1FeeJuicePortalManager, createCompatibleClient, retryUntil } from '@aztec/aztec.js';
|
|
3
|
+
import { FEE_FUNDING_FOR_TESTER_ACCOUNT } from '@aztec/constants';
|
|
4
4
|
import { createEthereumChain, createL1Clients, deployL1Contract } from '@aztec/ethereum';
|
|
5
5
|
import { getContract } from 'viem';
|
|
6
|
-
import { privateKeyToAccount } from 'viem/accounts';
|
|
6
|
+
import { mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
|
|
7
7
|
const waitOpts = {
|
|
8
8
|
timeout: 120,
|
|
9
9
|
provenTimeout: 4800,
|
|
10
10
|
interval: 1
|
|
11
11
|
};
|
|
12
|
-
export async function bootstrapNetwork(pxeUrl,
|
|
12
|
+
export async function bootstrapNetwork(pxeUrl, l1Urls, l1ChainId, l1PrivateKey, l1Mnemonic, addressIndex, json, log, debugLog) {
|
|
13
13
|
const pxe = await createCompatibleClient(pxeUrl, debugLog);
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const [wallet] = await getDeployedTestAccountsWallets(pxe);
|
|
15
|
+
const l1Clients = createL1Clients(l1Urls, l1PrivateKey ? privateKeyToAccount(l1PrivateKey) : // Note that this account needs to be funded on L1 !
|
|
16
|
+
mnemonicToAccount(l1Mnemonic, {
|
|
17
|
+
addressIndex
|
|
18
|
+
}), createEthereumChain(l1Urls, +l1ChainId).chainInfo);
|
|
18
19
|
const { erc20Address, portalAddress } = await deployERC20(l1Clients);
|
|
19
20
|
const { token, bridge } = await deployToken(wallet, portalAddress);
|
|
20
21
|
await initPortal(pxe, l1Clients, erc20Address, portalAddress, bridge.address);
|
|
21
22
|
const fpcAdmin = wallet.getAddress();
|
|
22
23
|
const fpc = await deployFPC(wallet, token.address, fpcAdmin);
|
|
23
24
|
const counter = await deployCounter(wallet);
|
|
24
|
-
// NOTE: Disabling for now in order to get devnet running
|
|
25
25
|
await fundFPC(counter.address, wallet, l1Clients, fpc.address, debugLog);
|
|
26
26
|
if (json) {
|
|
27
27
|
log(JSON.stringify({
|
|
@@ -182,12 +182,15 @@ async function fundFPC(counterAddress, wallet, l1Clients, fpcAddress, debugLog)
|
|
|
182
182
|
const { claimAmount, claimSecret, messageLeafIndex, messageHash } = await feeJuicePortal.bridgeTokensPublic(fpcAddress, amount, true);
|
|
183
183
|
await retryUntil(async ()=>await wallet.isL1ToL2MessageSynced(Fr.fromHexString(messageHash)), 'message sync', 600, 1);
|
|
184
184
|
const counter = await CounterContract.at(counterAddress, wallet);
|
|
185
|
+
debugLog.info('Incrementing Counter');
|
|
185
186
|
// TODO (alexg) remove this once sequencer builds blocks continuously
|
|
186
187
|
// advance the chain
|
|
187
188
|
await counter.methods.increment(wallet.getAddress(), wallet.getAddress()).send().wait(waitOpts);
|
|
188
189
|
await counter.methods.increment(wallet.getAddress(), wallet.getAddress()).send().wait(waitOpts);
|
|
190
|
+
debugLog.info('Claiming FPC');
|
|
189
191
|
await feeJuiceContract.methods.claim(fpcAddress, claimAmount, claimSecret, messageLeafIndex).send().wait({
|
|
190
192
|
...waitOpts,
|
|
191
193
|
proven: true
|
|
192
194
|
});
|
|
195
|
+
debugLog.info('Finished claiming FPC');
|
|
193
196
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
3
|
+
export declare function dripFaucet(faucetUrl: string, asset: string, account: EthAddress, json: boolean, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=faucet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"faucet.d.ts","sourceRoot":"","sources":["../../../src/cmds/devnet/faucet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/devnet/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAqD/E"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ETHEREUM_HOSTS, l1ChainIdOption, parseEthereumAddress, pxeOption } from '../../utils/commands.js';
|
|
2
2
|
export function injectCommands(program, log, debugLogger) {
|
|
3
|
-
program.command('bootstrap-network').description('Bootstrap a new network').addOption(pxeOption).addOption(l1ChainIdOption).requiredOption('--l1-rpc-
|
|
3
|
+
program.command('bootstrap-network').description('Bootstrap a new network').addOption(pxeOption).addOption(l1ChainIdOption).requiredOption('--l1-rpc-urls <string>', 'List of Ethereum host URLs. Chain identifiers localhost and testnet can be used (comma separated)', (arg)=>arg.split(','), [
|
|
4
|
+
ETHEREUM_HOSTS
|
|
5
|
+
]).option('--l1-private-key <string>', 'The private key to use for deployment', process.env.PRIVATE_KEY).option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', 'test test test test test test test test test test test junk').option('-ai, --address-index <number>', 'The address index to use when calculating an address', (arg)=>BigInt(arg), 0n).option('--json', 'Output the result as JSON').action(async (options)=>{
|
|
4
6
|
const { bootstrapNetwork } = await import('./bootstrap_network.js');
|
|
5
|
-
await bootstrapNetwork(options[pxeOption.attributeName()], options.
|
|
7
|
+
await bootstrapNetwork(options[pxeOption.attributeName()], options.l1RpcUrls, options[l1ChainIdOption.attributeName()], options.l1PrivateKey, options.mnemonic, options.addressIndex, options.json, log, debugLogger);
|
|
6
8
|
});
|
|
7
9
|
program.command('drip-faucet').description('Drip the faucet').requiredOption('-u, --faucet-url <string>', 'Url of the faucet', 'http://localhost:8082').requiredOption('-t, --token <string>', 'The asset to drip', 'eth').requiredOption('-a, --address <string>', 'The Ethereum address to drip to', parseEthereumAddress).option('--json', 'Output the result as JSON').action(async (options)=>{
|
|
8
10
|
const { dripFaucet } = await import('./faucet.js');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/infrastructure/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAgD/E"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ETHEREUM_HOSTS, l1ChainIdOption, parseOptionalInteger, pxeOption } from '../../utils/commands.js';
|
|
2
2
|
export function injectCommands(program, log, debugLogger) {
|
|
3
|
-
program.command('setup-protocol-contracts').description('Bootstrap the blockchain by initializing all the protocol contracts').addOption(pxeOption).
|
|
4
|
-
const {
|
|
5
|
-
await
|
|
3
|
+
program.command('setup-protocol-contracts').description('Bootstrap the blockchain by initializing all the protocol contracts').addOption(pxeOption).option('--testAccounts', 'Deploy funded test accounts.').option('--json', 'Output the contract addresses in JSON format').option('--skipProofWait', "Don't wait for proofs to land.").action(async (options)=>{
|
|
4
|
+
const { setupL2Contracts } = await import('./setup_l2_contract.js');
|
|
5
|
+
await setupL2Contracts(options.rpcUrl, options.testAccounts, options.json, options.skipProofWait, log);
|
|
6
6
|
});
|
|
7
|
-
program.command('sequencers').argument('<command>', 'Command to run: list, add, remove, who-next').argument('[who]', 'Who to add/remove').description('Manages or queries registered sequencers on the L1 rollup contract.').requiredOption('--l1-rpc-
|
|
7
|
+
program.command('sequencers').argument('<command>', 'Command to run: list, add, remove, who-next').argument('[who]', 'Who to add/remove').description('Manages or queries registered sequencers on the L1 rollup contract.').requiredOption('--l1-rpc-urls <string>', 'List of Ethereum host URLs. Chain identifiers localhost and testnet can be used (comma separated)', (arg)=>arg.split(','), [
|
|
8
|
+
ETHEREUM_HOSTS
|
|
9
|
+
]).option('-m, --mnemonic <string>', 'The mnemonic for the sender of the tx', 'test test test test test test test test test test test junk').option('--block-number <number>', 'Block number to query next sequencer for', parseOptionalInteger).addOption(pxeOption).addOption(l1ChainIdOption).action(async (command, who, options)=>{
|
|
8
10
|
const { sequencers } = await import('./sequencers.js');
|
|
9
11
|
await sequencers({
|
|
10
12
|
command: command,
|
|
11
13
|
who,
|
|
12
14
|
mnemonic: options.mnemonic,
|
|
13
15
|
rpcUrl: options.rpcUrl,
|
|
14
|
-
|
|
16
|
+
l1RpcUrls: options.l1RpcUrls.split(','),
|
|
15
17
|
chainId: options.l1ChainId,
|
|
16
18
|
blockNumber: options.blockNumber,
|
|
17
19
|
log,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
2
|
+
export declare function sequencers(opts: {
|
|
3
|
+
command: 'list' | 'add' | 'remove' | 'who-next';
|
|
4
|
+
who?: string;
|
|
5
|
+
mnemonic?: string;
|
|
6
|
+
rpcUrl: string;
|
|
7
|
+
l1RpcUrls: string[];
|
|
8
|
+
chainId: number;
|
|
9
|
+
blockNumber?: number;
|
|
10
|
+
log: LogFn;
|
|
11
|
+
debugLogger: Logger;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=sequencers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequencers.d.ts","sourceRoot":"","sources":["../../../src/cmds/infrastructure/sequencers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAM3D,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,KAAK,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB,iBAoFA"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
2
|
import { createEthereumChain, getL1ContractsConfigEnvVars } from '@aztec/ethereum';
|
|
3
3
|
import { RollupAbi, TestERC20Abi } from '@aztec/l1-artifacts';
|
|
4
|
-
import { createPublicClient, createWalletClient, getContract, http } from 'viem';
|
|
4
|
+
import { createPublicClient, createWalletClient, fallback, getContract, http } from 'viem';
|
|
5
5
|
import { mnemonicToAccount } from 'viem/accounts';
|
|
6
6
|
export async function sequencers(opts) {
|
|
7
|
-
const { command, who: maybeWho, mnemonic, rpcUrl,
|
|
7
|
+
const { command, who: maybeWho, mnemonic, rpcUrl, l1RpcUrls, chainId, log, debugLogger } = opts;
|
|
8
8
|
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
9
9
|
const { l1ContractAddresses } = await client.getNodeInfo();
|
|
10
|
-
const chain = createEthereumChain(
|
|
10
|
+
const chain = createEthereumChain(l1RpcUrls, chainId);
|
|
11
11
|
const publicClient = createPublicClient({
|
|
12
12
|
chain: chain.chainInfo,
|
|
13
|
-
transport:
|
|
13
|
+
transport: fallback(l1RpcUrls.map((url)=>http(url)))
|
|
14
14
|
});
|
|
15
15
|
const walletClient = mnemonic ? createWalletClient({
|
|
16
16
|
account: mnemonicToAccount(mnemonic),
|
|
17
17
|
chain: chain.chainInfo,
|
|
18
|
-
transport:
|
|
18
|
+
transport: fallback(l1RpcUrls.map((url)=>http(url)))
|
|
19
19
|
}) : undefined;
|
|
20
20
|
const rollup = getContract({
|
|
21
21
|
address: l1ContractAddresses.rollupAddress.toString(),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup_l2_contract.d.ts","sourceRoot":"","sources":["../../../src/cmds/infrastructure/setup_l2_contract.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,OAAO,EACtB,GAAG,EAAE,KAAK,iBAiCX"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { deployFundedSchnorrAccounts, getInitialTestAccounts } from '@aztec/accounts/testing';
|
|
2
|
+
import { SignerlessWallet, createPXEClient, makeFetch } from '@aztec/aztec.js';
|
|
3
|
+
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
4
|
+
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
5
|
+
import { setupCanonicalL2FeeJuice } from '../misc/setup_contracts.js';
|
|
6
|
+
export async function setupL2Contracts(rpcUrl, testAccounts, json, skipProofWait, log) {
|
|
7
|
+
const waitOpts = {
|
|
8
|
+
timeout: 180,
|
|
9
|
+
interval: 1,
|
|
10
|
+
proven: !skipProofWait,
|
|
11
|
+
provenTimeout: 600
|
|
12
|
+
};
|
|
13
|
+
log('setupL2Contracts: Wait options' + jsonStringify(waitOpts));
|
|
14
|
+
log('setupL2Contracts: Creating PXE client...');
|
|
15
|
+
const pxe = createPXEClient(rpcUrl, {}, makeFetch([
|
|
16
|
+
1,
|
|
17
|
+
1,
|
|
18
|
+
1,
|
|
19
|
+
1,
|
|
20
|
+
1
|
|
21
|
+
], false));
|
|
22
|
+
const wallet = new SignerlessWallet(pxe);
|
|
23
|
+
log('setupL2Contracts: Getting fee juice portal address...');
|
|
24
|
+
// Deploy Fee Juice
|
|
25
|
+
const feeJuicePortalAddress = (await wallet.getNodeInfo()).l1ContractAddresses.feeJuicePortalAddress;
|
|
26
|
+
log('setupL2Contracts: Setting up fee juice portal...');
|
|
27
|
+
await setupCanonicalL2FeeJuice(wallet, feeJuicePortalAddress, waitOpts, log);
|
|
28
|
+
let deployedAccounts = [];
|
|
29
|
+
if (testAccounts) {
|
|
30
|
+
log('setupL2Contracts: Deploying test accounts...');
|
|
31
|
+
deployedAccounts = await getInitialTestAccounts();
|
|
32
|
+
await deployFundedSchnorrAccounts(pxe, deployedAccounts, waitOpts);
|
|
33
|
+
}
|
|
34
|
+
if (json) {
|
|
35
|
+
const toPrint = {
|
|
36
|
+
...ProtocolContractAddress
|
|
37
|
+
};
|
|
38
|
+
deployedAccounts.forEach((a, i)=>{
|
|
39
|
+
toPrint[`testAccount${i}`] = a.address;
|
|
40
|
+
});
|
|
41
|
+
log(JSON.stringify(toPrint, null, 2));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advance_epoch.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/advance_epoch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAQjF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CheatCodes, createPXEClient, makeFetch } from '@aztec/aztec.js';
|
|
2
|
-
export async function advanceEpoch(
|
|
3
|
-
const pxe = createPXEClient(rpcUrl, makeFetch([], true));
|
|
2
|
+
export async function advanceEpoch(l1RpcUrls, rpcUrl, log) {
|
|
3
|
+
const pxe = createPXEClient(rpcUrl, {}, makeFetch([], true));
|
|
4
4
|
const rollupAddress = await pxe.getNodeInfo().then((i)=>i.l1ContractAddresses.rollupAddress);
|
|
5
|
-
const cheat = CheatCodes.createRollup(
|
|
5
|
+
const cheat = CheatCodes.createRollup(l1RpcUrls, {
|
|
6
6
|
rollupAddress
|
|
7
7
|
});
|
|
8
8
|
await cheat.advanceToNextEpoch();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assume_proven_through.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/assume_proven_through.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,wBAAsB,mBAAmB,CACvC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,SAAS,EAAE,MAAM,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,KAAK,iBAWX"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { createPXEClient, makeFetch } from '@aztec/aztec.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export async function assumeProvenThrough(blockNumberOrLatest, l1RpcUrl, rpcUrl, chainId, privateKey, mnemonic, log) {
|
|
5
|
-
const chain = createEthereumChain(l1RpcUrl, chainId);
|
|
6
|
-
const { walletClient } = createL1Clients(chain.rpcUrl, privateKey ?? mnemonic, chain.chainInfo);
|
|
7
|
-
const pxe = createPXEClient(rpcUrl, makeFetch([], true));
|
|
1
|
+
import { EthCheatCodes, RollupCheatCodes, createPXEClient, makeFetch } from '@aztec/aztec.js';
|
|
2
|
+
export async function assumeProvenThrough(blockNumberOrLatest, l1RpcUrls, rpcUrl, log) {
|
|
3
|
+
const pxe = createPXEClient(rpcUrl, {}, makeFetch([], true));
|
|
8
4
|
const rollupAddress = await pxe.getNodeInfo().then((i)=>i.l1ContractAddresses.rollupAddress);
|
|
9
5
|
const blockNumber = blockNumberOrLatest ?? await pxe.getBlockNumber();
|
|
10
|
-
|
|
6
|
+
const ethCheatCode = new EthCheatCodes(l1RpcUrls);
|
|
7
|
+
const rollupCheatCodes = new RollupCheatCodes(ethCheatCode, {
|
|
8
|
+
rollupAddress
|
|
9
|
+
});
|
|
10
|
+
await rollupCheatCodes.markAsProven(blockNumber);
|
|
11
11
|
log(`Assumed proven through block ${blockNumber}`);
|
|
12
12
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type AztecAddress, type EthAddress } from '@aztec/aztec.js';
|
|
2
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
+
export declare function bridgeERC20(amount: bigint, recipient: AztecAddress, l1RpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, tokenAddress: EthAddress, portalAddress: EthAddress, privateTransfer: boolean, mint: boolean, json: boolean, log: LogFn, debugLogger: Logger): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=bridge_erc20.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge_erc20.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/bridge_erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAqC,MAAM,iBAAiB,CAAC;AAExG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,UAAU,EACxB,aAAa,EAAE,UAAU,EACzB,eAAe,EAAE,OAAO,EACxB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,iBAgCpB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { L1ToL2TokenPortalManager } from '@aztec/aztec.js';
|
|
2
2
|
import { createEthereumChain, createL1Clients } from '@aztec/ethereum';
|
|
3
3
|
import { prettyPrintJSON } from '../../utils/commands.js';
|
|
4
|
-
export async function bridgeERC20(amount, recipient,
|
|
4
|
+
export async function bridgeERC20(amount, recipient, l1RpcUrls, chainId, privateKey, mnemonic, tokenAddress, portalAddress, privateTransfer, mint, json, log, debugLogger) {
|
|
5
5
|
// Prepare L1 client
|
|
6
|
-
const chain = createEthereumChain(
|
|
7
|
-
const { publicClient, walletClient } = createL1Clients(chain.
|
|
6
|
+
const chain = createEthereumChain(l1RpcUrls, chainId);
|
|
7
|
+
const { publicClient, walletClient } = createL1Clients(chain.rpcUrls, privateKey ?? mnemonic, chain.chainInfo);
|
|
8
8
|
// Setup portal manager
|
|
9
9
|
const manager = new L1ToL2TokenPortalManager(portalAddress, tokenAddress, publicClient, walletClient, debugLogger);
|
|
10
10
|
let claimSecret;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_l1_account.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/create_l1_account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAMnD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,QAUxD"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
+
export declare function deployL1Contracts(rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, testAccounts: boolean, json: boolean, initialValidators: EthAddress[], log: LogFn, debugLogger: Logger): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=deploy_l1_contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/deploy_l1_contracts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK3D,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,OAAO,EACb,iBAAiB,EAAE,UAAU,EAAE,EAC/B,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,iBA2CpB"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { getInitialTestAccounts } from '@aztec/accounts/testing';
|
|
1
2
|
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum';
|
|
3
|
+
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
2
4
|
import { deployAztecContracts } from '../../utils/aztec.js';
|
|
3
|
-
export async function deployL1Contracts(
|
|
5
|
+
export async function deployL1Contracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, testAccounts, json, initialValidators, log, debugLogger) {
|
|
4
6
|
const config = getL1ContractsConfigEnvVars();
|
|
5
|
-
const
|
|
7
|
+
const initialFundedAccounts = testAccounts ? await getInitialTestAccounts() : [];
|
|
8
|
+
const { genesisBlockHash, genesisArchiveRoot } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
|
|
9
|
+
const { l1ContractAddresses } = await deployAztecContracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, genesisBlockHash, config, debugLogger);
|
|
6
10
|
if (json) {
|
|
7
11
|
log(JSON.stringify(Object.fromEntries(Object.entries(l1ContractAddresses).map(([k, v])=>[
|
|
8
12
|
k,
|
|
@@ -20,6 +24,6 @@ export async function deployL1Contracts(rpcUrl, chainId, privateKey, mnemonic, m
|
|
|
20
24
|
log(`RewardDistributor Address: ${l1ContractAddresses.rewardDistributorAddress.toString()}`);
|
|
21
25
|
log(`GovernanceProposer Address: ${l1ContractAddresses.governanceProposerAddress.toString()}`);
|
|
22
26
|
log(`Governance Address: ${l1ContractAddresses.governanceAddress.toString()}`);
|
|
23
|
-
log(`SlashFactory Address: ${l1ContractAddresses.slashFactoryAddress
|
|
27
|
+
log(`SlashFactory Address: ${l1ContractAddresses.slashFactoryAddress?.toString()}`);
|
|
24
28
|
}
|
|
25
29
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
2
|
+
import { type Hex } from 'viem';
|
|
3
|
+
export declare function deployUltraHonkVerifier(rollupAddress: Hex | undefined, ethRpcUrls: string[], l1ChainId: string, privateKey: string | undefined, mnemonic: string, pxeRpcUrl: string, bbBinaryPath: string, bbWorkingDirectory: string, log: LogFn, debugLogger: Logger): Promise<void>;
|
|
4
|
+
export declare function deployMockVerifier(rollupAddress: Hex | undefined, ethRpcUrls: string[], l1ChainId: string, privateKey: string | undefined, mnemonic: string, pxeRpcUrl: string, log: LogFn, debugLogger: Logger): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=deploy_l1_verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy_l1_verifier.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/deploy_l1_verifier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAC;AAE7C,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,GAAG,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,iBAyCpB;AAED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,GAAG,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,iBAmCpB"}
|
|
@@ -3,11 +3,11 @@ import { createEthereumChain, createL1Clients, deployL1Contract } from '@aztec/e
|
|
|
3
3
|
import { HonkVerifierAbi, HonkVerifierBytecode } from '@aztec/l1-artifacts';
|
|
4
4
|
import { InvalidOptionArgumentError } from 'commander';
|
|
5
5
|
import { getContract } from 'viem';
|
|
6
|
-
export async function deployUltraHonkVerifier(rollupAddress,
|
|
6
|
+
export async function deployUltraHonkVerifier(rollupAddress, ethRpcUrls, l1ChainId, privateKey, mnemonic, pxeRpcUrl, bbBinaryPath, bbWorkingDirectory, log, debugLogger) {
|
|
7
7
|
if (!bbBinaryPath || !bbWorkingDirectory) {
|
|
8
8
|
throw new InvalidOptionArgumentError('Missing path to bb binary and working directory');
|
|
9
9
|
}
|
|
10
|
-
const { publicClient, walletClient } = createL1Clients(
|
|
10
|
+
const { publicClient, walletClient } = createL1Clients(ethRpcUrls, privateKey ?? mnemonic, createEthereumChain(ethRpcUrls, l1ChainId).chainInfo);
|
|
11
11
|
if (!rollupAddress && pxeRpcUrl) {
|
|
12
12
|
const pxe = await createCompatibleClient(pxeRpcUrl, debugLogger);
|
|
13
13
|
const { l1ContractAddresses } = await pxe.getNodeInfo();
|
|
@@ -29,8 +29,8 @@ export async function deployUltraHonkVerifier(rollupAddress, ethRpcUrl, l1ChainI
|
|
|
29
29
|
]);
|
|
30
30
|
log(`Rollup accepts only real proofs now`);
|
|
31
31
|
}
|
|
32
|
-
export async function deployMockVerifier(rollupAddress,
|
|
33
|
-
const { publicClient, walletClient } = createL1Clients(
|
|
32
|
+
export async function deployMockVerifier(rollupAddress, ethRpcUrls, l1ChainId, privateKey, mnemonic, pxeRpcUrl, log, debugLogger) {
|
|
33
|
+
const { publicClient, walletClient } = createL1Clients(ethRpcUrls, privateKey ?? mnemonic, createEthereumChain(ethRpcUrls, l1ChainId).chainInfo);
|
|
34
34
|
const { MockVerifierAbi, MockVerifierBytecode, RollupAbi } = await import('@aztec/l1-artifacts');
|
|
35
35
|
const { address: mockVerifierAddress } = await deployL1Contract(walletClient, publicClient, MockVerifierAbi, MockVerifierBytecode);
|
|
36
36
|
log(`Deployed MockVerifier at ${mockVerifierAddress.toString()}`);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
+
export declare function deployNewRollup(registryAddress: EthAddress, rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, testAccounts: boolean, json: boolean, initialValidators: EthAddress[], log: LogFn, debugLogger: Logger): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=deploy_new_rollup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy_new_rollup.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/deploy_new_rollup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK3D,wBAAsB,eAAe,CACnC,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,OAAO,EACb,iBAAiB,EAAE,UAAU,EAAE,EAC/B,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,iBAqCpB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getInitialTestAccounts } from '@aztec/accounts/testing';
|
|
2
|
+
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum';
|
|
3
|
+
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
4
|
+
import { deployNewRollupContracts } from '../../utils/aztec.js';
|
|
5
|
+
export async function deployNewRollup(registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, testAccounts, json, initialValidators, log, debugLogger) {
|
|
6
|
+
const config = getL1ContractsConfigEnvVars();
|
|
7
|
+
const initialFundedAccounts = testAccounts ? await getInitialTestAccounts() : [];
|
|
8
|
+
const { genesisBlockHash, genesisArchiveRoot } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
|
|
9
|
+
const { payloadAddress, rollup } = await deployNewRollupContracts(registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, genesisBlockHash, config, debugLogger);
|
|
10
|
+
if (json) {
|
|
11
|
+
log(JSON.stringify({
|
|
12
|
+
payloadAddress: payloadAddress.toString(),
|
|
13
|
+
rollupAddress: rollup.address
|
|
14
|
+
}, null, 2));
|
|
15
|
+
} else {
|
|
16
|
+
log(`Payload Address: ${payloadAddress.toString()}`);
|
|
17
|
+
log(`Rollup Address: ${rollup.address}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { EthAddress } from '@aztec/aztec.js';
|
|
2
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
3
|
+
export declare function getL1Addresses(registryAddress: EthAddress, rollupVersion: number | bigint | 'canonical', rpcUrls: string[], chainId: number, json: boolean, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=get_l1_addresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_l1_addresses.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/get_l1_addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,cAAc,CAClC,eAAe,EAAE,UAAU,EAC3B,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,EAC5C,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,KAAK,iBAiBX"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RegistryContract, createEthereumChain } from '@aztec/ethereum';
|
|
2
|
+
import { createPublicClient, fallback, http } from 'viem';
|
|
3
|
+
export async function getL1Addresses(registryAddress, rollupVersion, rpcUrls, chainId, json, log) {
|
|
4
|
+
const chain = createEthereumChain(rpcUrls, chainId);
|
|
5
|
+
const publicClient = createPublicClient({
|
|
6
|
+
chain: chain.chainInfo,
|
|
7
|
+
transport: fallback(rpcUrls.map((url)=>http(url))),
|
|
8
|
+
pollingInterval: 100
|
|
9
|
+
});
|
|
10
|
+
const addresses = await RegistryContract.collectAddresses(publicClient, registryAddress.toString(), rollupVersion);
|
|
11
|
+
if (json) {
|
|
12
|
+
log(JSON.stringify(addresses, null, 2));
|
|
13
|
+
} else {
|
|
14
|
+
for (const [key, value] of Object.entries(addresses)){
|
|
15
|
+
log(`${key}: ${value.toString()}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
3
|
+
export declare function getL1Balance(who: EthAddress, token: EthAddress | undefined, l1RpcUrls: string[], chainId: number, json: boolean, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=get_l1_balance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_l1_balance.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/get_l1_balance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAOnD,wBAAsB,YAAY,CAChC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,KAAK,iBA4BX"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { createEthereumChain } from '@aztec/ethereum';
|
|
2
2
|
import { TestERC20Abi } from '@aztec/l1-artifacts';
|
|
3
|
-
import { createPublicClient, getContract, http } from 'viem';
|
|
3
|
+
import { createPublicClient, fallback, getContract, http } from 'viem';
|
|
4
4
|
import { prettyPrintJSON } from '../../utils/commands.js';
|
|
5
|
-
export async function getL1Balance(who, token,
|
|
6
|
-
const chain = createEthereumChain(
|
|
5
|
+
export async function getL1Balance(who, token, l1RpcUrls, chainId, json, log) {
|
|
6
|
+
const chain = createEthereumChain(l1RpcUrls, chainId);
|
|
7
7
|
const publicClient = createPublicClient({
|
|
8
8
|
chain: chain.chainInfo,
|
|
9
|
-
transport:
|
|
9
|
+
transport: fallback(l1RpcUrls.map((url)=>http(url)))
|
|
10
10
|
});
|
|
11
11
|
let balance = 0n;
|
|
12
12
|
if (token) {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
2
|
+
export declare function depositGovernanceTokens({ registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, recipient, amount, debugLogger, mint, }: {
|
|
3
|
+
registryAddress: `0x${string}`;
|
|
4
|
+
rpcUrls: string[];
|
|
5
|
+
chainId: number;
|
|
6
|
+
privateKey: string | undefined;
|
|
7
|
+
mnemonic: string;
|
|
8
|
+
mnemonicIndex: number;
|
|
9
|
+
recipient: `0x${string}`;
|
|
10
|
+
amount: bigint;
|
|
11
|
+
debugLogger: Logger;
|
|
12
|
+
mint: boolean;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
export declare function proposeWithLock({ payloadAddress, registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, json, debugLogger, log, }: {
|
|
15
|
+
payloadAddress: `0x${string}`;
|
|
16
|
+
registryAddress: `0x${string}`;
|
|
17
|
+
rpcUrls: string[];
|
|
18
|
+
chainId: number;
|
|
19
|
+
privateKey: string | undefined;
|
|
20
|
+
mnemonic: string;
|
|
21
|
+
mnemonicIndex: number;
|
|
22
|
+
debugLogger: Logger;
|
|
23
|
+
log: LogFn;
|
|
24
|
+
json: boolean;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
export declare function voteOnGovernanceProposal({ proposalId, voteAmount, inFavor, waitTilActive, registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, debugLogger, }: {
|
|
27
|
+
proposalId: bigint;
|
|
28
|
+
voteAmount: bigint | undefined;
|
|
29
|
+
inFavor: boolean;
|
|
30
|
+
waitTilActive: boolean;
|
|
31
|
+
registryAddress: `0x${string}`;
|
|
32
|
+
rpcUrls: string[];
|
|
33
|
+
chainId: number;
|
|
34
|
+
privateKey: string | undefined;
|
|
35
|
+
mnemonic: string;
|
|
36
|
+
mnemonicIndex: number;
|
|
37
|
+
debugLogger: Logger;
|
|
38
|
+
}): Promise<void>;
|
|
39
|
+
export declare function executeGovernanceProposal({ proposalId, waitTilExecutable, registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, debugLogger, }: {
|
|
40
|
+
proposalId: bigint;
|
|
41
|
+
waitTilExecutable: boolean;
|
|
42
|
+
registryAddress: `0x${string}`;
|
|
43
|
+
rpcUrls: string[];
|
|
44
|
+
chainId: number;
|
|
45
|
+
privateKey: string | undefined;
|
|
46
|
+
mnemonic: string;
|
|
47
|
+
mnemonicIndex: number;
|
|
48
|
+
debugLogger: Logger;
|
|
49
|
+
}): Promise<void>;
|
|
50
|
+
//# sourceMappingURL=governance_utils.d.ts.map
|