@aztec/cli 0.17.0 → 0.77.0-testnet-ignition.17
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 +10 -16
- package/dest/cmds/contracts/index.d.ts +4 -0
- package/dest/cmds/contracts/index.d.ts.map +1 -0
- package/dest/cmds/contracts/index.js +12 -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 +37 -0
- package/dest/cmds/{parse_parameter_struct.d.ts → contracts/parse_parameter_struct.d.ts} +1 -4
- package/dest/cmds/contracts/parse_parameter_struct.d.ts.map +1 -0
- package/dest/cmds/contracts/parse_parameter_struct.js +13 -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 +196 -0
- package/dest/cmds/devnet/faucet.d.ts +4 -0
- package/dest/cmds/devnet/faucet.d.ts.map +1 -0
- package/dest/cmds/devnet/faucet.js +26 -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 +14 -0
- 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 +24 -0
- 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 +93 -0
- 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 +10 -0
- 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 +12 -0
- 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 +31 -0
- 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/create_l1_account.js +15 -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 +29 -0
- 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 +54 -0
- 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 +33 -0
- 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 +208 -0
- 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 +145 -0
- 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 +186 -0
- 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 +5 -0
- 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/example_contracts.js +6 -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_p2p_private_key.js +7 -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_and_hash.js +11 -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/generate_secret_key.js +6 -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 +44 -0
- 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 +27 -0
- package/dest/cmds/misc/update/common.d.ts.map +1 -0
- package/dest/cmds/misc/update/common.js +3 -0
- package/dest/cmds/misc/update/github.d.ts.map +1 -0
- package/dest/cmds/misc/update/github.js +3 -0
- package/dest/{update → cmds/misc/update}/noir.d.ts +2 -2
- package/dest/cmds/misc/update/noir.d.ts.map +1 -0
- package/dest/cmds/misc/update/noir.js +45 -0
- package/dest/{update → cmds/misc/update}/npm.d.ts +3 -3
- package/dest/cmds/misc/update/npm.d.ts.map +1 -0
- package/dest/cmds/misc/update/npm.js +127 -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/utils.js +38 -0
- package/dest/cmds/misc/update.d.ts +3 -0
- package/dest/cmds/misc/update.d.ts.map +1 -0
- package/dest/cmds/misc/update.js +52 -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 +29 -0
- 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/block_number.js +10 -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_account.js +10 -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_accounts.js +25 -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_block.js +9 -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 +31 -0
- 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_current_base_fee.js +7 -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_l1_to_l2_message_witness.js +11 -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_logs.js +51 -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 +61 -0
- 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/get_pxe_info.js +11 -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 +55 -0
- package/dest/utils/aztec.d.ts +68 -0
- package/dest/utils/aztec.d.ts.map +1 -0
- package/dest/utils/aztec.js +173 -0
- package/dest/{parse_args.d.ts → utils/commands.d.ts} +50 -12
- package/dest/utils/commands.d.ts.map +1 -0
- package/dest/utils/commands.js +303 -0
- package/dest/{encoding.d.ts → utils/encoding.d.ts} +1 -1
- package/dest/utils/encoding.d.ts.map +1 -0
- package/dest/utils/encoding.js +103 -0
- package/dest/utils/github.d.ts +4 -0
- package/dest/utils/github.d.ts.map +1 -0
- package/dest/utils/github.js +3 -0
- package/dest/utils/index.d.ts +5 -0
- package/dest/utils/index.d.ts.map +1 -0
- package/dest/utils/index.js +4 -0
- package/dest/utils/inspect.d.ts +17 -0
- package/dest/utils/inspect.d.ts.map +1 -0
- package/dest/utils/inspect.js +177 -0
- package/package.json +68 -22
- package/src/cmds/contracts/index.ts +34 -0
- package/src/cmds/contracts/inspect_contract.ts +51 -0
- package/src/cmds/contracts/parse_parameter_struct.ts +27 -0
- package/src/cmds/devnet/bootstrap_network.ts +318 -0
- package/src/cmds/devnet/faucet.ts +33 -0
- package/src/cmds/devnet/index.ts +60 -0
- package/src/cmds/infrastructure/index.ts +55 -0
- package/src/cmds/infrastructure/sequencers.ts +103 -0
- package/src/cmds/infrastructure/setup_l2_contract.ts +47 -0
- package/src/cmds/l1/advance_epoch.ts +12 -0
- package/src/cmds/l1/assume_proven_through.ts +19 -0
- package/src/cmds/l1/bridge_erc20.ts +52 -0
- package/src/cmds/l1/create_l1_account.ts +17 -0
- package/src/cmds/l1/deploy_l1_contracts.ts +63 -0
- package/src/cmds/l1/deploy_l1_verifier.ts +105 -0
- 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 +44 -0
- package/src/cmds/l1/governance_utils.ts +187 -0
- package/src/cmds/l1/index.ts +556 -0
- package/src/cmds/l1/prover_stats.ts +202 -0
- package/src/cmds/l1/update_l1_validators.ts +238 -0
- package/src/cmds/misc/compute_selector.ts +7 -0
- package/src/cmds/misc/example_contracts.ts +12 -0
- package/src/cmds/misc/generate_bootnode_enr.ts +12 -0
- package/src/cmds/misc/generate_p2p_private_key.ts +10 -0
- package/src/cmds/misc/generate_secret_and_hash.ts +15 -0
- package/src/cmds/misc/generate_secret_key.ts +5 -0
- package/src/cmds/misc/index.ts +92 -0
- package/src/cmds/misc/setup_contracts.ts +40 -0
- package/src/cmds/misc/update/common.ts +16 -0
- package/src/cmds/misc/update/github.ts +3 -0
- package/src/cmds/misc/update/noir.ts +57 -0
- package/src/cmds/misc/update/npm.ts +154 -0
- package/src/cmds/misc/update/utils.ts +50 -0
- package/src/cmds/misc/update.ts +78 -0
- package/src/cmds/pxe/add_contract.ts +41 -0
- package/src/cmds/pxe/block_number.ts +9 -0
- package/src/cmds/pxe/get_account.ts +16 -0
- package/src/cmds/pxe/get_accounts.ts +35 -0
- package/src/cmds/pxe/get_block.ts +10 -0
- package/src/cmds/pxe/get_contract_data.ts +51 -0
- package/src/cmds/pxe/get_current_base_fee.ts +9 -0
- package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +25 -0
- package/src/cmds/pxe/get_logs.ts +66 -0
- package/src/cmds/pxe/get_node_info.ts +71 -0
- package/src/cmds/pxe/get_pxe_info.ts +13 -0
- package/src/cmds/pxe/index.ts +170 -0
- package/src/utils/aztec.ts +248 -0
- package/src/utils/commands.ts +384 -0
- package/src/utils/encoding.ts +117 -0
- package/src/utils/github.ts +3 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/inspect.ts +208 -0
- package/dest/bin/index.d.ts +0 -3
- package/dest/bin/index.d.ts.map +0 -1
- package/dest/bin/index.js +0 -19
- package/dest/client.d.ts +0 -17
- package/dest/client.d.ts.map +0 -1
- package/dest/client.js +0 -60
- package/dest/cmds/add_contract.d.ts +0 -7
- package/dest/cmds/add_contract.d.ts.map +0 -1
- package/dest/cmds/add_contract.js +0 -15
- package/dest/cmds/add_note.d.ts +0 -8
- package/dest/cmds/add_note.d.ts.map +0 -1
- package/dest/cmds/add_note.js +0 -13
- package/dest/cmds/block_number.d.ts +0 -6
- package/dest/cmds/block_number.d.ts.map +0 -1
- package/dest/cmds/block_number.js +0 -10
- package/dest/cmds/call.d.ts +0 -7
- package/dest/cmds/call.d.ts.map +0 -1
- package/dest/cmds/call.js +0 -18
- package/dest/cmds/check_deploy.d.ts +0 -7
- package/dest/cmds/check_deploy.d.ts.map +0 -1
- package/dest/cmds/check_deploy.js +0 -16
- package/dest/cmds/compute_selector.d.ts +0 -6
- package/dest/cmds/compute_selector.d.ts.map +0 -1
- package/dest/cmds/compute_selector.js +0 -9
- package/dest/cmds/create_account.d.ts +0 -7
- package/dest/cmds/create_account.d.ts.map +0 -1
- package/dest/cmds/create_account.js +0 -31
- package/dest/cmds/deploy.d.ts +0 -7
- package/dest/cmds/deploy.d.ts.map +0 -1
- package/dest/cmds/deploy.js +0 -58
- package/dest/cmds/deploy_l1_contracts.d.ts +0 -6
- package/dest/cmds/deploy_l1_contracts.d.ts.map +0 -1
- package/dest/cmds/deploy_l1_contracts.js +0 -15
- package/dest/cmds/example_contracts.d.ts +0 -6
- package/dest/cmds/example_contracts.d.ts.map +0 -1
- package/dest/cmds/example_contracts.js +0 -10
- package/dest/cmds/generate_p2p_private_key.d.ts +0 -6
- package/dest/cmds/generate_p2p_private_key.d.ts.map +0 -1
- package/dest/cmds/generate_p2p_private_key.js +0 -11
- package/dest/cmds/generate_private_key.d.ts +0 -6
- package/dest/cmds/generate_private_key.d.ts.map +0 -1
- package/dest/cmds/generate_private_key.js +0 -22
- package/dest/cmds/get_account.d.ts +0 -7
- package/dest/cmds/get_account.d.ts.map +0 -1
- package/dest/cmds/get_account.js +0 -15
- package/dest/cmds/get_accounts.d.ts +0 -6
- package/dest/cmds/get_accounts.d.ts.map +0 -1
- package/dest/cmds/get_accounts.js +0 -18
- package/dest/cmds/get_contract_data.d.ts +0 -7
- package/dest/cmds/get_contract_data.d.ts.map +0 -1
- package/dest/cmds/get_contract_data.js +0 -28
- package/dest/cmds/get_logs.d.ts +0 -7
- package/dest/cmds/get_logs.d.ts.map +0 -1
- package/dest/cmds/get_logs.js +0 -54
- package/dest/cmds/get_node_info.d.ts +0 -6
- package/dest/cmds/get_node_info.d.ts.map +0 -1
- package/dest/cmds/get_node_info.js +0 -15
- package/dest/cmds/get_recipient.d.ts +0 -7
- package/dest/cmds/get_recipient.d.ts.map +0 -1
- package/dest/cmds/get_recipient.js +0 -15
- package/dest/cmds/get_recipients.d.ts +0 -6
- package/dest/cmds/get_recipients.d.ts.map +0 -1
- package/dest/cmds/get_recipients.js +0 -18
- package/dest/cmds/get_tx_receipt.d.ts +0 -7
- package/dest/cmds/get_tx_receipt.d.ts.map +0 -1
- package/dest/cmds/get_tx_receipt.js +0 -16
- package/dest/cmds/inspect_contract.d.ts +0 -6
- package/dest/cmds/inspect_contract.d.ts.map +0 -1
- package/dest/cmds/inspect_contract.js +0 -19
- package/dest/cmds/parse_parameter_struct.d.ts.map +0 -1
- package/dest/cmds/parse_parameter_struct.js +0 -20
- package/dest/cmds/register_account.d.ts +0 -7
- package/dest/cmds/register_account.d.ts.map +0 -1
- package/dest/cmds/register_account.js +0 -13
- package/dest/cmds/register_recipient.d.ts +0 -7
- package/dest/cmds/register_recipient.d.ts.map +0 -1
- package/dest/cmds/register_recipient.js +0 -11
- package/dest/cmds/send.d.ts +0 -7
- package/dest/cmds/send.d.ts.map +0 -1
- package/dest/cmds/send.js +0 -27
- package/dest/cmds/unbox.d.ts +0 -7
- package/dest/cmds/unbox.d.ts.map +0 -1
- package/dest/cmds/unbox.js +0 -133
- package/dest/encoding.d.ts.map +0 -1
- package/dest/encoding.js +0 -114
- package/dest/github.d.ts.map +0 -1
- package/dest/github.js +0 -4
- package/dest/index.d.ts +0 -10
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -321
- package/dest/parse_args.d.ts.map +0 -1
- package/dest/parse_args.js +0 -233
- package/dest/test/mocks.d.ts +0 -3
- package/dest/test/mocks.d.ts.map +0 -1
- package/dest/test/mocks.js +0 -65
- package/dest/update/common.d.ts.map +0 -1
- package/dest/update/common.js +0 -2
- package/dest/update/noir.d.ts.map +0 -1
- package/dest/update/noir.js +0 -63
- package/dest/update/npm.d.ts.map +0 -1
- package/dest/update/npm.js +0 -125
- package/dest/update/update.d.ts +0 -3
- package/dest/update/update.d.ts.map +0 -1
- package/dest/update/update.js +0 -58
- package/dest/utils.d.ts +0 -70
- package/dest/utils.d.ts.map +0 -1
- package/dest/utils.js +0 -168
- /package/dest/{update → cmds/misc/update}/common.d.ts +0 -0
- /package/dest/{github.d.ts → cmds/misc/update/github.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_block.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_block.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAInH"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
+
import { inspectBlock } from '../../utils/inspect.js';
|
|
3
|
+
export async function getBlock(rpcUrl, maybeBlockNumber, debugLogger, log) {
|
|
4
|
+
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
5
|
+
const blockNumber = maybeBlockNumber ?? await client.getBlockNumber();
|
|
6
|
+
await inspectBlock(client, blockNumber, log, {
|
|
7
|
+
showTxs: true
|
|
8
|
+
});
|
|
9
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AztecAddress } from '@aztec/aztec.js';
|
|
2
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
+
export declare function getContractData(rpcUrl: string, contractAddress: AztecAddress, includeBytecode: boolean, debugLogger: Logger, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=get_contract_data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_contract_data.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_contract_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,eAAe,EAAE,OAAO,EACxB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAyCX"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
+
export async function getContractData(rpcUrl, contractAddress, includeBytecode, debugLogger, log) {
|
|
3
|
+
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
4
|
+
const { contractInstance: instance, isContractInitialized: isInitialized, isContractPubliclyDeployed: isPubliclyDeployed } = await client.getContractMetadata(contractAddress);
|
|
5
|
+
const contractClass = includeBytecode && instance && (await client.getContractClassMetadata(instance?.currentContractClassId)).contractClass;
|
|
6
|
+
const isPrivatelyDeployed = !!instance;
|
|
7
|
+
const initStr = isInitialized ? 'initialized' : 'not initialized';
|
|
8
|
+
const addrStr = contractAddress.toString();
|
|
9
|
+
if (isPubliclyDeployed && isPrivatelyDeployed) {
|
|
10
|
+
log(`Contract is ${initStr} and publicly deployed at ${addrStr}`);
|
|
11
|
+
} else if (isPrivatelyDeployed) {
|
|
12
|
+
log(`Contract is ${initStr} and registered in the local pxe at ${addrStr} but not publicly deployed`);
|
|
13
|
+
} else if (isPubliclyDeployed) {
|
|
14
|
+
log(`Contract is ${initStr} and publicly deployed at ${addrStr} but not registered in the local pxe`);
|
|
15
|
+
} else if (isInitialized) {
|
|
16
|
+
log(`Contract is initialized but not publicly deployed nor registered in the local pxe at ${addrStr}`);
|
|
17
|
+
} else {
|
|
18
|
+
log(`No contract found at ${addrStr}`);
|
|
19
|
+
}
|
|
20
|
+
if (instance) {
|
|
21
|
+
log(``);
|
|
22
|
+
Object.entries(instance).forEach(([key, value])=>{
|
|
23
|
+
const capitalized = key.charAt(0).toUpperCase() + key.slice(1);
|
|
24
|
+
log(`${capitalized}: ${value.toString()}`);
|
|
25
|
+
});
|
|
26
|
+
if (contractClass) {
|
|
27
|
+
log(`\nBytecode: ${contractClass.packedBytecode.toString('base64')}`);
|
|
28
|
+
}
|
|
29
|
+
log('');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_current_base_fee.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_current_base_fee.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAItF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
+
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
|
+
export async function getCurrentBaseFee(rpcUrl, debugLogger, log) {
|
|
4
|
+
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
5
|
+
const fees = await client.getCurrentBaseFees();
|
|
6
|
+
log(`Current fees: ${jsonStringify(fees)}`);
|
|
7
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type AztecAddress, type Fr } from '@aztec/aztec.js';
|
|
2
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
+
export declare function getL1ToL2MessageWitness(rpcUrl: string, contractAddress: AztecAddress, messageHash: Fr, secret: Fr, debugLogger: Logger, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=get_l1_to_l2_message_witness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_l1_to_l2_message_witness.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_l1_to_l2_message_witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,EAA0B,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,EACV,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAeX"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
+
export async function getL1ToL2MessageWitness(rpcUrl, contractAddress, messageHash, secret, debugLogger, log) {
|
|
3
|
+
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
4
|
+
const messageWitness = await client.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
|
|
5
|
+
log(messageWitness === undefined ? `
|
|
6
|
+
L1 to L2 Message not found.
|
|
7
|
+
` : `
|
|
8
|
+
L1 to L2 message index: ${messageWitness[0]}
|
|
9
|
+
L1 to L2 message sibling path: ${messageWitness[1]}
|
|
10
|
+
`);
|
|
11
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AztecAddress, LogId, TxHash } from '@aztec/aztec.js';
|
|
2
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
+
export declare function getLogs(txHash: TxHash, fromBlock: number, toBlock: number, afterLog: LogId, contractAddress: AztecAddress, rpcUrl: string, follow: boolean, debugLogger: Logger, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=get_logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_logs.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAa,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG3D,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,EACf,eAAe,EAAE,YAAY,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAmDX"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
+
import { sleep } from '@aztec/foundation/sleep';
|
|
3
|
+
export async function getLogs(txHash, fromBlock, toBlock, afterLog, contractAddress, rpcUrl, follow, debugLogger, log) {
|
|
4
|
+
const pxe = await createCompatibleClient(rpcUrl, debugLogger);
|
|
5
|
+
if (follow) {
|
|
6
|
+
if (txHash) {
|
|
7
|
+
throw Error('Cannot use --follow with --tx-hash');
|
|
8
|
+
}
|
|
9
|
+
if (toBlock) {
|
|
10
|
+
throw Error('Cannot use --follow with --to-block');
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const filter = {
|
|
14
|
+
txHash,
|
|
15
|
+
fromBlock,
|
|
16
|
+
toBlock,
|
|
17
|
+
afterLog,
|
|
18
|
+
contractAddress
|
|
19
|
+
};
|
|
20
|
+
const fetchLogs = async ()=>{
|
|
21
|
+
const response = await pxe.getPublicLogs(filter);
|
|
22
|
+
const logs = response.logs;
|
|
23
|
+
if (!logs.length) {
|
|
24
|
+
const filterOptions = Object.entries(filter).filter(([, value])=>value !== undefined).map(([key, value])=>`${key}: ${value}`).join(', ');
|
|
25
|
+
if (!follow) {
|
|
26
|
+
log(`No logs found for filter: {${filterOptions}}`);
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
if (!follow && !filter.afterLog) {
|
|
30
|
+
log('Logs found: \n');
|
|
31
|
+
}
|
|
32
|
+
logs.forEach((publicLog)=>log(publicLog.toHumanReadable()));
|
|
33
|
+
// Set the continuation parameter for the following requests
|
|
34
|
+
filter.afterLog = logs[logs.length - 1].id;
|
|
35
|
+
}
|
|
36
|
+
return response.maxLogsHit;
|
|
37
|
+
};
|
|
38
|
+
if (follow) {
|
|
39
|
+
log('Fetching logs...');
|
|
40
|
+
while(true){
|
|
41
|
+
const maxLogsHit = await fetchLogs();
|
|
42
|
+
if (!maxLogsHit) {
|
|
43
|
+
await sleep(1000);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
while(await fetchLogs()){
|
|
48
|
+
// Keep fetching logs until we reach the end.
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
2
|
+
export declare function getNodeInfo(rpcUrl: string, pxeRequest: boolean, debugLogger: Logger, json: boolean, log: LogFn, logJson: (output: any) => void): Promise<void>;
|
|
3
|
+
//# sourceMappingURL=get_node_info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_node_info.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_node_info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,iBA6D/B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { createAztecNodeClient, createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
+
export async function getNodeInfo(rpcUrl, pxeRequest, debugLogger, json, log, logJson) {
|
|
3
|
+
let client;
|
|
4
|
+
if (pxeRequest) {
|
|
5
|
+
client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
6
|
+
} else {
|
|
7
|
+
client = createAztecNodeClient(rpcUrl);
|
|
8
|
+
}
|
|
9
|
+
const info = await client.getNodeInfo();
|
|
10
|
+
if (json) {
|
|
11
|
+
logJson({
|
|
12
|
+
nodeVersion: info.nodeVersion,
|
|
13
|
+
l1ChainId: info.l1ChainId,
|
|
14
|
+
protocolVersion: info.protocolVersion,
|
|
15
|
+
enr: info.enr,
|
|
16
|
+
l1ContractAddresses: {
|
|
17
|
+
rollup: info.l1ContractAddresses.rollupAddress.toString(),
|
|
18
|
+
registry: info.l1ContractAddresses.registryAddress.toString(),
|
|
19
|
+
inbox: info.l1ContractAddresses.inboxAddress.toString(),
|
|
20
|
+
outbox: info.l1ContractAddresses.outboxAddress.toString(),
|
|
21
|
+
feeJuice: info.l1ContractAddresses.feeJuiceAddress.toString(),
|
|
22
|
+
stakingAsset: info.l1ContractAddresses.stakingAssetAddress.toString(),
|
|
23
|
+
feeJuicePortal: info.l1ContractAddresses.feeJuicePortalAddress.toString(),
|
|
24
|
+
coinIssuer: info.l1ContractAddresses.coinIssuerAddress.toString(),
|
|
25
|
+
rewardDistributor: info.l1ContractAddresses.rewardDistributorAddress.toString(),
|
|
26
|
+
governanceProposer: info.l1ContractAddresses.governanceProposerAddress.toString(),
|
|
27
|
+
governance: info.l1ContractAddresses.governanceAddress.toString(),
|
|
28
|
+
slashFactory: info.l1ContractAddresses.slashFactoryAddress?.toString()
|
|
29
|
+
},
|
|
30
|
+
protocolContractAddresses: {
|
|
31
|
+
classRegisterer: info.protocolContractAddresses.classRegisterer.toString(),
|
|
32
|
+
feeJuice: info.protocolContractAddresses.feeJuice.toString(),
|
|
33
|
+
instanceDeployer: info.protocolContractAddresses.instanceDeployer.toString(),
|
|
34
|
+
multiCallEntrypoint: info.protocolContractAddresses.multiCallEntrypoint.toString()
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
} else {
|
|
38
|
+
log(`Node Version: ${info.nodeVersion}`);
|
|
39
|
+
log(`Chain Id: ${info.l1ChainId}`);
|
|
40
|
+
log(`Protocol Version: ${info.protocolVersion}`);
|
|
41
|
+
log(`Node ENR: ${info.enr}`);
|
|
42
|
+
log(`L1 Contract Addresses:`);
|
|
43
|
+
log(` Rollup Address: ${info.l1ContractAddresses.rollupAddress.toString()}`);
|
|
44
|
+
log(` Registry Address: ${info.l1ContractAddresses.registryAddress.toString()}`);
|
|
45
|
+
log(` L1 -> L2 Inbox Address: ${info.l1ContractAddresses.inboxAddress.toString()}`);
|
|
46
|
+
log(` L2 -> L1 Outbox Address: ${info.l1ContractAddresses.outboxAddress.toString()}`);
|
|
47
|
+
log(` Fee Juice Address: ${info.l1ContractAddresses.feeJuiceAddress.toString()}`);
|
|
48
|
+
log(` Staking Asset Address: ${info.l1ContractAddresses.stakingAssetAddress.toString()}`);
|
|
49
|
+
log(` Fee Juice Portal Address: ${info.l1ContractAddresses.feeJuicePortalAddress.toString()}`);
|
|
50
|
+
log(` CoinIssuer Address: ${info.l1ContractAddresses.coinIssuerAddress.toString()}`);
|
|
51
|
+
log(` RewardDistributor Address: ${info.l1ContractAddresses.rewardDistributorAddress.toString()}`);
|
|
52
|
+
log(` GovernanceProposer Address: ${info.l1ContractAddresses.governanceProposerAddress.toString()}`);
|
|
53
|
+
log(` Governance Address: ${info.l1ContractAddresses.governanceAddress.toString()}`);
|
|
54
|
+
log(` SlashFactory Address: ${info.l1ContractAddresses.slashFactoryAddress?.toString()}`);
|
|
55
|
+
log(`L2 Contract Addresses:`);
|
|
56
|
+
log(` Class Registerer: ${info.protocolContractAddresses.classRegisterer.toString()}`);
|
|
57
|
+
log(` Fee Juice: ${info.protocolContractAddresses.feeJuice.toString()}`);
|
|
58
|
+
log(` Instance Deployer: ${info.protocolContractAddresses.instanceDeployer.toString()}`);
|
|
59
|
+
log(` MultiCall: ${info.protocolContractAddresses.multiCallEntrypoint.toString()}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_pxe_info.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_pxe_info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAS/E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
+
export async function getPXEInfo(rpcUrl, debugLogger, log) {
|
|
3
|
+
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
4
|
+
const info = await client.getPXEInfo();
|
|
5
|
+
log(`PXE Version: ${info.pxeVersion}`);
|
|
6
|
+
log(`Protocol Contract Addresses:`);
|
|
7
|
+
log(` Class Registerer: ${info.protocolContractAddresses.classRegisterer.toString()}`);
|
|
8
|
+
log(` Fee Juice: ${info.protocolContractAddresses.feeJuice.toString()}`);
|
|
9
|
+
log(` Instance Deployer: ${info.protocolContractAddresses.instanceDeployer.toString()}`);
|
|
10
|
+
log(` Multi Call Entrypoint: ${info.protocolContractAddresses.multiCallEntrypoint.toString()}`);
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAqJ/E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { logJson, makePxeOption, parseAztecAddress, parseEthereumAddress, parseField, parseFieldFromHexString, parseOptionalAztecAddress, parseOptionalInteger, parseOptionalLogId, parseOptionalTxHash, parsePublicKey, pxeOption } from '../../utils/commands.js';
|
|
3
|
+
export function injectCommands(program, log, debugLogger) {
|
|
4
|
+
program.command('add-contract').description('Adds an existing contract to the PXE. This is useful if you have deployed a contract outside of the PXE and want to use it with the PXE.').requiredOption('-c, --contract-artifact <fileLocation>', "A compiled Aztec.nr contract's ABI in JSON format or name of a contract ABI exported by @aztec/noir-contracts.js").requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.', parseAztecAddress).requiredOption('--init-hash <init hash>', 'Initialization hash', parseFieldFromHexString).option('--salt <salt>', 'Optional deployment salt', parseFieldFromHexString).option('-p, --public-key <public key>', 'Optional public key for this contract', parsePublicKey).option('--portal-address <address>', 'Optional address to a portal contract on L1', parseEthereumAddress).option('--deployer-address <address>', 'Optional address of the contract deployer', parseAztecAddress).addOption(pxeOption).action(async (options)=>{
|
|
5
|
+
const { addContract } = await import('./add_contract.js');
|
|
6
|
+
await addContract(options.rpcUrl, options.contractArtifact, options.contractAddress, options.initHash, options.salt ?? Fr.ZERO, options.publicKey, options.deployerAddress, debugLogger, log);
|
|
7
|
+
});
|
|
8
|
+
program.command('get-block').description('Gets info for a given block or latest.').argument('[blockNumber]', 'Block height', parseOptionalInteger).addOption(pxeOption).action(async (blockNumber, options)=>{
|
|
9
|
+
const { getBlock } = await import('./get_block.js');
|
|
10
|
+
await getBlock(options.rpcUrl, blockNumber, debugLogger, log);
|
|
11
|
+
});
|
|
12
|
+
program.command('get-current-base-fee').description('Gets the current base fee.').addOption(pxeOption).action(async (options)=>{
|
|
13
|
+
const { getCurrentBaseFee } = await import('./get_current_base_fee.js');
|
|
14
|
+
await getCurrentBaseFee(options.rpcUrl, debugLogger, log);
|
|
15
|
+
});
|
|
16
|
+
program.command('get-contract-data').description('Gets information about the Aztec contract deployed at the specified address.').argument('<contractAddress>', 'Aztec address of the contract.', parseAztecAddress).addOption(pxeOption).option('-b, --include-bytecode <boolean>', "Include the contract's public function bytecode, if any.", false).action(async (contractAddress, options)=>{
|
|
17
|
+
const { getContractData } = await import('./get_contract_data.js');
|
|
18
|
+
await getContractData(options.rpcUrl, contractAddress, options.includeBytecode, debugLogger, log);
|
|
19
|
+
});
|
|
20
|
+
program.command('get-logs').description('Gets all the public logs from an intersection of all the filter params.').option('-tx, --tx-hash <txHash>', 'A transaction hash to get the receipt for.', parseOptionalTxHash).option('-fb, --from-block <blockNum>', 'Initial block number for getting logs (defaults to 1).', parseOptionalInteger).option('-tb, --to-block <blockNum>', 'Up to which block to fetch logs (defaults to latest).', parseOptionalInteger).option('-al --after-log <logId>', 'ID of a log after which to fetch the logs.', parseOptionalLogId).option('-ca, --contract-address <address>', 'Contract address to filter logs by.', parseOptionalAztecAddress).addOption(pxeOption).option('--follow', 'If set, will keep polling for new logs until interrupted.').action(async ({ txHash, fromBlock, toBlock, afterLog, contractAddress, rpcUrl, follow })=>{
|
|
21
|
+
const { getLogs } = await import('./get_logs.js');
|
|
22
|
+
await getLogs(txHash, fromBlock, toBlock, afterLog, contractAddress, rpcUrl, follow, debugLogger, log);
|
|
23
|
+
});
|
|
24
|
+
program.command('get-accounts').description('Gets all the Aztec accounts stored in the PXE.').addOption(pxeOption).option('--json', 'Emit output as json').action(async (options)=>{
|
|
25
|
+
const { getAccounts } = await import('./get_accounts.js');
|
|
26
|
+
await getAccounts(options.rpcUrl, options.json, debugLogger, log, logJson(log));
|
|
27
|
+
});
|
|
28
|
+
program.command('get-account').description('Gets an account given its Aztec address.').argument('<address>', 'The Aztec address to get account for', parseAztecAddress).addOption(pxeOption).action(async (address, options)=>{
|
|
29
|
+
const { getAccount } = await import('./get_account.js');
|
|
30
|
+
await getAccount(address, options.rpcUrl, debugLogger, log);
|
|
31
|
+
});
|
|
32
|
+
program.command('block-number').description('Gets the current Aztec L2 block number.').addOption(pxeOption).action(async (options)=>{
|
|
33
|
+
const { blockNumber } = await import('./block_number.js');
|
|
34
|
+
await blockNumber(options.rpcUrl, debugLogger, log);
|
|
35
|
+
});
|
|
36
|
+
program.command('get-l1-to-l2-message-witness').description('Gets a L1 to L2 message witness.').requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.', parseAztecAddress).requiredOption('--message-hash <messageHash>', 'The L1 to L2 message hash.', parseField).requiredOption('--secret <secret>', 'The secret used to claim the L1 to L2 message', parseField).addOption(pxeOption).action(async ({ contractAddress, messageHash, secret, rpcUrl })=>{
|
|
37
|
+
const { getL1ToL2MessageWitness } = await import('./get_l1_to_l2_message_witness.js');
|
|
38
|
+
await getL1ToL2MessageWitness(rpcUrl, contractAddress, messageHash, secret, debugLogger, log);
|
|
39
|
+
});
|
|
40
|
+
program.command('get-node-info').description('Gets the information of an Aztec node from a PXE or directly from an Aztec node.').option('--node-url <string>', 'URL of the node.').option('--json', 'Emit output as json').addOption(makePxeOption(false)).action(async (options)=>{
|
|
41
|
+
const { getNodeInfo } = await import('./get_node_info.js');
|
|
42
|
+
let url;
|
|
43
|
+
if (options.nodeUrl) {
|
|
44
|
+
url = options.nodeUrl;
|
|
45
|
+
} else {
|
|
46
|
+
url = options.rpcUrl;
|
|
47
|
+
}
|
|
48
|
+
await getNodeInfo(url, !options.nodeUrl, debugLogger, options.json, log, logJson(log));
|
|
49
|
+
});
|
|
50
|
+
program.command('get-pxe-info').description('Gets the information of a PXE at a URL.').addOption(pxeOption).action(async (options)=>{
|
|
51
|
+
const { getPXEInfo } = await import('./get_pxe_info.js');
|
|
52
|
+
await getPXEInfo(options.rpcUrl, debugLogger, log);
|
|
53
|
+
});
|
|
54
|
+
return program;
|
|
55
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { EthAddress, PXE } from '@aztec/aztec.js';
|
|
2
|
+
import { type ContractArtifact, type FunctionArtifact } from '@aztec/aztec.js/abi';
|
|
3
|
+
import type { DeployL1ContractsReturnType, L1ContractsConfig, RollupContract } from '@aztec/ethereum';
|
|
4
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
6
|
+
import type { NoirPackageConfig } from '@aztec/foundation/noir';
|
|
7
|
+
/**
|
|
8
|
+
* Helper to get an ABI function or throw error if it doesn't exist.
|
|
9
|
+
* @param artifact - Contract's build artifact in JSON format.
|
|
10
|
+
* @param fnName - Function name to be found.
|
|
11
|
+
* @returns The function's ABI.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getFunctionArtifact(artifact: ContractArtifact, fnName: string): FunctionArtifact;
|
|
14
|
+
/**
|
|
15
|
+
* Function to execute the 'deployRollupContracts' command.
|
|
16
|
+
* @param rpcUrls - The RPC URL of the ethereum node.
|
|
17
|
+
* @param chainId - The chain ID of the L1 host.
|
|
18
|
+
* @param privateKey - The private key to be used in contract deployment.
|
|
19
|
+
* @param mnemonic - The mnemonic to be used in contract deployment.
|
|
20
|
+
*/
|
|
21
|
+
export declare function deployAztecContracts(rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: EthAddress[], genesisArchiveRoot: Fr, genesisBlockHash: Fr, config: L1ContractsConfig, debugLogger: Logger): Promise<DeployL1ContractsReturnType>;
|
|
22
|
+
export declare function deployNewRollupContracts(registryAddress: EthAddress, rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: EthAddress[], genesisArchiveRoot: Fr, genesisBlockHash: Fr, config: L1ContractsConfig, logger: Logger): Promise<{
|
|
23
|
+
payloadAddress: EthAddress;
|
|
24
|
+
rollup: RollupContract;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Gets all contracts available in \@aztec/noir-contracts.js.
|
|
28
|
+
* @returns The contract names.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getExampleContractNames(): Promise<string[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Reads a file and converts it to an Aztec Contract ABI.
|
|
33
|
+
* @param fileDir - The directory of the compiled contract ABI.
|
|
34
|
+
* @returns The parsed contract artifact.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getContractArtifact(fileDir: string, log: LogFn): Promise<ContractArtifact>;
|
|
37
|
+
/**
|
|
38
|
+
* Performs necessary checks, conversions & operations to call a contract fn from the CLI.
|
|
39
|
+
* @param contractFile - Directory of the compiled contract ABI.
|
|
40
|
+
* @param functionName - Name of the function to be called.
|
|
41
|
+
* @param _functionArgs - Arguments to call the function with.
|
|
42
|
+
* @param log - Logger instance that will output to the CLI
|
|
43
|
+
* @returns Formatted contract address, function arguments and caller's aztec address.
|
|
44
|
+
*/
|
|
45
|
+
export declare function prepTx(contractFile: string, functionName: string, _functionArgs: string[], log: LogFn): Promise<{
|
|
46
|
+
functionArgs: any[];
|
|
47
|
+
contractArtifact: ContractArtifact;
|
|
48
|
+
isPrivate: boolean;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Removes the leading 0x from a hex string. If no leading 0x is found the string is returned unchanged.
|
|
52
|
+
* @param hex - A hex string
|
|
53
|
+
* @returns A new string with leading 0x removed
|
|
54
|
+
*/
|
|
55
|
+
export declare const stripLeadingHex: (hex: string) => string;
|
|
56
|
+
/**
|
|
57
|
+
* Pretty prints Nargo.toml contents to a string
|
|
58
|
+
* @param config - Nargo.toml contents
|
|
59
|
+
* @returns The Nargo.toml contents as a string
|
|
60
|
+
*/
|
|
61
|
+
export declare function prettyPrintNargoToml(config: NoirPackageConfig): string;
|
|
62
|
+
/**
|
|
63
|
+
* Checks that Private eXecution Environment (PXE) version matches the expected one by this CLI. Throws if not.
|
|
64
|
+
* @param pxe - PXE client.
|
|
65
|
+
* @param expectedVersionRange - Expected version by CLI.
|
|
66
|
+
*/
|
|
67
|
+
export declare function checkServerVersion(pxe: PXE, expectedVersionRange: string): Promise<void>;
|
|
68
|
+
//# sourceMappingURL=aztec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aztec.d.ts","sourceRoot":"","sources":["../../src/utils/aztec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAwB,MAAM,qBAAqB,CAAC;AACzG,OAAO,KAAK,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAUhE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAMhG;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,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,iBAAiB,EAAE,UAAU,EAAE,EAC/B,kBAAkB,EAAE,EAAE,EACtB,gBAAgB,EAAE,EAAE,EACpB,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,CAAC,CA4BtC;AAED,wBAAsB,wBAAwB,CAC5C,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,iBAAiB,EAAE,UAAU,EAAE,EAC/B,kBAAkB,EAAE,EAAE,EACtB,gBAAgB,EAAE,EAAE,EACpB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,cAAc,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,CA6BjE;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAKjE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,6BA4BpE;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK;;;;GAO3G;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAS,MAAM,WAK1C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAUtE;AAKD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,iBAyB9E"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { loadContractArtifact } from '@aztec/aztec.js/abi';
|
|
2
|
+
import { ProtocolContractAddress, protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
3
|
+
import { FunctionType } from '@aztec/stdlib/abi';
|
|
4
|
+
import TOML from '@iarna/toml';
|
|
5
|
+
import { readFile } from 'fs/promises';
|
|
6
|
+
import { gtr, ltr, satisfies, valid } from 'semver';
|
|
7
|
+
import { encodeArgs } from './encoding.js';
|
|
8
|
+
/**
|
|
9
|
+
* Helper to get an ABI function or throw error if it doesn't exist.
|
|
10
|
+
* @param artifact - Contract's build artifact in JSON format.
|
|
11
|
+
* @param fnName - Function name to be found.
|
|
12
|
+
* @returns The function's ABI.
|
|
13
|
+
*/ export function getFunctionArtifact(artifact, fnName) {
|
|
14
|
+
const fn = artifact.functions.find(({ name })=>name === fnName);
|
|
15
|
+
if (!fn) {
|
|
16
|
+
throw Error(`Function ${fnName} not found in contract ABI.`);
|
|
17
|
+
}
|
|
18
|
+
return fn;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Function to execute the 'deployRollupContracts' command.
|
|
22
|
+
* @param rpcUrls - The RPC URL of the ethereum node.
|
|
23
|
+
* @param chainId - The chain ID of the L1 host.
|
|
24
|
+
* @param privateKey - The private key to be used in contract deployment.
|
|
25
|
+
* @param mnemonic - The mnemonic to be used in contract deployment.
|
|
26
|
+
*/ export async function deployAztecContracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, genesisBlockHash, config, debugLogger) {
|
|
27
|
+
const { createEthereumChain, deployL1Contracts } = await import('@aztec/ethereum');
|
|
28
|
+
const { mnemonicToAccount, privateKeyToAccount } = await import('viem/accounts');
|
|
29
|
+
const account = !privateKey ? mnemonicToAccount(mnemonic, {
|
|
30
|
+
addressIndex: mnemonicIndex
|
|
31
|
+
}) : privateKeyToAccount(`${privateKey.startsWith('0x') ? '' : '0x'}${privateKey}`);
|
|
32
|
+
const chain = createEthereumChain(rpcUrls, chainId);
|
|
33
|
+
const { getVKTreeRoot } = await import('@aztec/noir-protocol-circuits-types/vk-tree');
|
|
34
|
+
return await deployL1Contracts(chain.rpcUrls, account, chain.chainInfo, debugLogger, {
|
|
35
|
+
l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
|
|
36
|
+
vkTreeRoot: getVKTreeRoot(),
|
|
37
|
+
protocolContractTreeRoot,
|
|
38
|
+
genesisArchiveRoot,
|
|
39
|
+
genesisBlockHash,
|
|
40
|
+
salt,
|
|
41
|
+
initialValidators,
|
|
42
|
+
...config
|
|
43
|
+
}, config);
|
|
44
|
+
}
|
|
45
|
+
export async function deployNewRollupContracts(registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, genesisBlockHash, config, logger) {
|
|
46
|
+
const { createEthereumChain, deployRollupAndPeriphery, createL1Clients } = await import('@aztec/ethereum');
|
|
47
|
+
const { mnemonicToAccount, privateKeyToAccount } = await import('viem/accounts');
|
|
48
|
+
const { getVKTreeRoot } = await import('@aztec/noir-protocol-circuits-types/vk-tree');
|
|
49
|
+
const account = !privateKey ? mnemonicToAccount(mnemonic, {
|
|
50
|
+
addressIndex: mnemonicIndex
|
|
51
|
+
}) : privateKeyToAccount(`${privateKey.startsWith('0x') ? '' : '0x'}${privateKey}`);
|
|
52
|
+
const chain = createEthereumChain(rpcUrls, chainId);
|
|
53
|
+
const clients = createL1Clients(rpcUrls, account, chain.chainInfo, mnemonicIndex);
|
|
54
|
+
const { payloadAddress, rollup } = await deployRollupAndPeriphery(clients, {
|
|
55
|
+
salt,
|
|
56
|
+
vkTreeRoot: getVKTreeRoot(),
|
|
57
|
+
protocolContractTreeRoot,
|
|
58
|
+
l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
|
|
59
|
+
genesisArchiveRoot,
|
|
60
|
+
genesisBlockHash,
|
|
61
|
+
initialValidators,
|
|
62
|
+
...config
|
|
63
|
+
}, registryAddress, logger, config);
|
|
64
|
+
return {
|
|
65
|
+
payloadAddress,
|
|
66
|
+
rollup
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Gets all contracts available in \@aztec/noir-contracts.js.
|
|
71
|
+
* @returns The contract names.
|
|
72
|
+
*/ export async function getExampleContractNames() {
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
74
|
+
// @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
|
|
75
|
+
const { ContractNames } = await import('@aztec/noir-contracts.js');
|
|
76
|
+
return ContractNames;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Reads a file and converts it to an Aztec Contract ABI.
|
|
80
|
+
* @param fileDir - The directory of the compiled contract ABI.
|
|
81
|
+
* @returns The parsed contract artifact.
|
|
82
|
+
*/ export async function getContractArtifact(fileDir, log) {
|
|
83
|
+
// first check if it's a noir-contracts example
|
|
84
|
+
const allNames = await getExampleContractNames();
|
|
85
|
+
const contractName = fileDir.replace(/Contract(Artifact)?$/, '');
|
|
86
|
+
if (allNames.includes(contractName)) {
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
88
|
+
// @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
|
|
89
|
+
const imported = await import(`@aztec/noir-contracts.js/${contractName}`);
|
|
90
|
+
const artifact = imported[`${contractName}ContractArtifact`];
|
|
91
|
+
if (!artifact) {
|
|
92
|
+
throw Error(`Could not import ${contractName}ContractArtifact from @aztec/noir-contracts.js/${contractName}`);
|
|
93
|
+
}
|
|
94
|
+
return artifact;
|
|
95
|
+
}
|
|
96
|
+
let contents;
|
|
97
|
+
try {
|
|
98
|
+
contents = await readFile(fileDir, 'utf8');
|
|
99
|
+
} catch {
|
|
100
|
+
throw Error(`Contract ${fileDir} not found`);
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
return loadContractArtifact(JSON.parse(contents));
|
|
104
|
+
} catch (err) {
|
|
105
|
+
log('Invalid file used. Please try again.');
|
|
106
|
+
throw err;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Performs necessary checks, conversions & operations to call a contract fn from the CLI.
|
|
111
|
+
* @param contractFile - Directory of the compiled contract ABI.
|
|
112
|
+
* @param functionName - Name of the function to be called.
|
|
113
|
+
* @param _functionArgs - Arguments to call the function with.
|
|
114
|
+
* @param log - Logger instance that will output to the CLI
|
|
115
|
+
* @returns Formatted contract address, function arguments and caller's aztec address.
|
|
116
|
+
*/ export async function prepTx(contractFile, functionName, _functionArgs, log) {
|
|
117
|
+
const contractArtifact = await getContractArtifact(contractFile, log);
|
|
118
|
+
const functionArtifact = getFunctionArtifact(contractArtifact, functionName);
|
|
119
|
+
const functionArgs = encodeArgs(_functionArgs, functionArtifact.parameters);
|
|
120
|
+
const isPrivate = functionArtifact.functionType === FunctionType.PRIVATE;
|
|
121
|
+
return {
|
|
122
|
+
functionArgs,
|
|
123
|
+
contractArtifact,
|
|
124
|
+
isPrivate
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Removes the leading 0x from a hex string. If no leading 0x is found the string is returned unchanged.
|
|
129
|
+
* @param hex - A hex string
|
|
130
|
+
* @returns A new string with leading 0x removed
|
|
131
|
+
*/ export const stripLeadingHex = (hex)=>{
|
|
132
|
+
if (hex.length > 2 && hex.startsWith('0x')) {
|
|
133
|
+
return hex.substring(2);
|
|
134
|
+
}
|
|
135
|
+
return hex;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Pretty prints Nargo.toml contents to a string
|
|
139
|
+
* @param config - Nargo.toml contents
|
|
140
|
+
* @returns The Nargo.toml contents as a string
|
|
141
|
+
*/ export function prettyPrintNargoToml(config) {
|
|
142
|
+
const withoutDependencies = Object.fromEntries(Object.entries(config).filter(([key])=>key !== 'dependencies'));
|
|
143
|
+
const partialToml = TOML.stringify(withoutDependencies);
|
|
144
|
+
const dependenciesToml = Object.entries(config.dependencies).map(([name, dep])=>{
|
|
145
|
+
const depToml = TOML.stringify.value(dep);
|
|
146
|
+
return `${name} = ${depToml}`;
|
|
147
|
+
});
|
|
148
|
+
return partialToml + '\n[dependencies]\n' + dependenciesToml.join('\n') + '\n';
|
|
149
|
+
}
|
|
150
|
+
/** Mismatch between server and client versions. */ class VersionMismatchError extends Error {
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Checks that Private eXecution Environment (PXE) version matches the expected one by this CLI. Throws if not.
|
|
154
|
+
* @param pxe - PXE client.
|
|
155
|
+
* @param expectedVersionRange - Expected version by CLI.
|
|
156
|
+
*/ export async function checkServerVersion(pxe, expectedVersionRange) {
|
|
157
|
+
const serverName = 'Aztec Node';
|
|
158
|
+
const { nodeVersion } = await pxe.getNodeInfo();
|
|
159
|
+
if (!nodeVersion) {
|
|
160
|
+
throw new VersionMismatchError(`Couldn't determine ${serverName} version. You may run into issues.`);
|
|
161
|
+
}
|
|
162
|
+
if (!nodeVersion || !valid(nodeVersion)) {
|
|
163
|
+
throw new VersionMismatchError(`Missing or invalid version identifier for ${serverName} (${nodeVersion ?? 'empty'}).`);
|
|
164
|
+
} else if (!satisfies(nodeVersion, expectedVersionRange)) {
|
|
165
|
+
if (gtr(nodeVersion, expectedVersionRange)) {
|
|
166
|
+
throw new VersionMismatchError(`${serverName} is running version ${nodeVersion} which is newer than the expected by this CLI (${expectedVersionRange}). Consider upgrading your CLI to a newer version.`);
|
|
167
|
+
} else if (ltr(nodeVersion, expectedVersionRange)) {
|
|
168
|
+
throw new VersionMismatchError(`${serverName} is running version ${nodeVersion} which is older than the expected by this CLI (${expectedVersionRange}). Consider upgrading your ${serverName} to a newer version.`);
|
|
169
|
+
} else {
|
|
170
|
+
throw new VersionMismatchError(`${serverName} is running version ${nodeVersion} which does not match the expected by this CLI (${expectedVersionRange}).`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|