@aztec/cli 4.0.0-nightly.20250907 → 4.0.0-nightly.20260108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -428
- package/dest/cmds/aztec_node/block_number.d.ts +3 -0
- package/dest/cmds/aztec_node/block_number.d.ts.map +1 -0
- package/dest/cmds/aztec_node/block_number.js +10 -0
- package/dest/cmds/aztec_node/get_block.d.ts +3 -0
- package/dest/cmds/aztec_node/get_block.d.ts.map +1 -0
- package/dest/cmds/aztec_node/get_block.js +10 -0
- package/dest/cmds/aztec_node/get_current_min_fee.d.ts +3 -0
- package/dest/cmds/aztec_node/get_current_min_fee.d.ts.map +1 -0
- package/dest/cmds/aztec_node/get_current_min_fee.js +7 -0
- package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts +5 -0
- package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts.map +1 -0
- package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.js +12 -0
- package/dest/cmds/aztec_node/get_logs.d.ts +7 -0
- package/dest/cmds/aztec_node/get_logs.d.ts.map +1 -0
- package/dest/cmds/{pxe → aztec_node}/get_logs.js +4 -4
- package/dest/cmds/aztec_node/get_node_info.d.ts +3 -0
- package/dest/cmds/aztec_node/get_node_info.d.ts.map +1 -0
- package/dest/cmds/{pxe → aztec_node}/get_node_info.js +3 -8
- package/dest/cmds/aztec_node/index.d.ts +4 -0
- package/dest/cmds/aztec_node/index.d.ts.map +1 -0
- package/dest/cmds/aztec_node/index.js +28 -0
- package/dest/cmds/contracts/index.d.ts +1 -1
- package/dest/cmds/contracts/inspect_contract.d.ts +1 -1
- package/dest/cmds/contracts/inspect_contract.d.ts.map +1 -1
- package/dest/cmds/contracts/inspect_contract.js +4 -10
- package/dest/cmds/contracts/parse_parameter_struct.d.ts +1 -1
- package/dest/cmds/infrastructure/index.d.ts +3 -3
- package/dest/cmds/infrastructure/index.d.ts.map +1 -1
- package/dest/cmds/infrastructure/index.js +7 -9
- package/dest/cmds/infrastructure/sequencers.d.ts +3 -5
- package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
- package/dest/cmds/infrastructure/sequencers.js +15 -7
- package/dest/cmds/infrastructure/setup_l2_contract.d.ts +2 -2
- package/dest/cmds/infrastructure/setup_l2_contract.d.ts.map +1 -1
- package/dest/cmds/infrastructure/setup_l2_contract.js +10 -25
- package/dest/cmds/l1/advance_epoch.d.ts +2 -2
- package/dest/cmds/l1/advance_epoch.d.ts.map +1 -1
- package/dest/cmds/l1/advance_epoch.js +6 -5
- package/dest/cmds/l1/assume_proven_through.d.ts +2 -2
- package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -1
- package/dest/cmds/l1/assume_proven_through.js +8 -6
- package/dest/cmds/l1/bridge_erc20.d.ts +2 -2
- package/dest/cmds/l1/bridge_erc20.d.ts.map +1 -1
- package/dest/cmds/l1/bridge_erc20.js +3 -2
- package/dest/cmds/l1/create_l1_account.d.ts +1 -1
- package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts +4 -0
- package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts.map +1 -0
- package/dest/cmds/l1/{deploy_l1_contracts.js → deploy_l1_contracts_cmd.js} +42 -7
- package/dest/cmds/l1/deploy_new_rollup.d.ts +4 -4
- package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -1
- package/dest/cmds/l1/deploy_new_rollup.js +5 -5
- package/dest/cmds/l1/get_l1_addresses.d.ts +2 -2
- package/dest/cmds/l1/get_l1_addresses.d.ts.map +1 -1
- package/dest/cmds/l1/get_l1_addresses.js +5 -2
- package/dest/cmds/l1/get_l1_balance.d.ts +1 -1
- package/dest/cmds/l1/get_l1_balance.js +4 -2
- package/dest/cmds/l1/governance_utils.d.ts +5 -5
- package/dest/cmds/l1/governance_utils.d.ts.map +1 -1
- package/dest/cmds/l1/governance_utils.js +3 -1
- package/dest/cmds/l1/index.d.ts +1 -2
- package/dest/cmds/l1/index.d.ts.map +1 -1
- package/dest/cmds/l1/index.js +22 -36
- package/dest/cmds/l1/prover_stats.d.ts +1 -1
- package/dest/cmds/l1/prover_stats.d.ts.map +1 -1
- package/dest/cmds/l1/prover_stats.js +32 -30
- package/dest/cmds/l1/trigger_seed_snapshot.d.ts +2 -2
- package/dest/cmds/l1/trigger_seed_snapshot.d.ts.map +1 -1
- package/dest/cmds/l1/trigger_seed_snapshot.js +2 -1
- package/dest/cmds/l1/update_l1_validators.d.ts +10 -5
- package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
- package/dest/cmds/l1/update_l1_validators.js +74 -9
- package/dest/cmds/misc/compute_selector.d.ts +1 -1
- package/dest/cmds/misc/example_contracts.d.ts +1 -1
- package/dest/cmds/misc/generate_bootnode_enr.d.ts +1 -1
- package/dest/cmds/misc/generate_p2p_private_key.d.ts +1 -1
- package/dest/cmds/misc/generate_secret_and_hash.d.ts +1 -1
- package/dest/cmds/misc/generate_secret_and_hash.js +2 -2
- package/dest/cmds/misc/generate_secret_key.d.ts +2 -2
- package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -1
- package/dest/cmds/misc/generate_secret_key.js +1 -1
- package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts +1 -1
- package/dest/cmds/misc/index.d.ts +1 -1
- package/dest/cmds/misc/index.d.ts.map +1 -1
- package/dest/cmds/misc/index.js +1 -1
- package/dest/cmds/misc/update/common.d.ts +1 -1
- package/dest/cmds/misc/update/github.d.ts +1 -1
- package/dest/cmds/misc/update/noir.d.ts +1 -1
- package/dest/cmds/misc/update/npm.d.ts +1 -1
- package/dest/cmds/misc/update/npm.js +1 -1
- package/dest/cmds/misc/update/utils.d.ts +1 -1
- package/dest/cmds/misc/update.d.ts +1 -1
- package/dest/cmds/validator_keys/add.d.ts +5 -0
- package/dest/cmds/validator_keys/add.d.ts.map +1 -0
- package/dest/cmds/validator_keys/add.js +83 -0
- package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +12 -0
- package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -0
- package/dest/cmds/validator_keys/generate_bls_keypair.js +27 -0
- package/dest/cmds/validator_keys/index.d.ts +4 -0
- package/dest/cmds/validator_keys/index.d.ts.map +1 -0
- package/dest/cmds/validator_keys/index.js +32 -0
- package/dest/cmds/validator_keys/new.d.ts +29 -0
- package/dest/cmds/validator_keys/new.d.ts.map +1 -0
- package/dest/cmds/validator_keys/new.js +134 -0
- package/dest/cmds/validator_keys/shared.d.ts +68 -0
- package/dest/cmds/validator_keys/shared.d.ts.map +1 -0
- package/dest/cmds/validator_keys/shared.js +274 -0
- package/dest/cmds/validator_keys/staker.d.ts +38 -0
- package/dest/cmds/validator_keys/staker.d.ts.map +1 -0
- package/dest/cmds/validator_keys/staker.js +210 -0
- package/dest/cmds/validator_keys/utils.d.ts +25 -0
- package/dest/cmds/validator_keys/utils.d.ts.map +1 -0
- package/dest/cmds/validator_keys/utils.js +52 -0
- package/dest/config/cached_fetch.d.ts +18 -0
- package/dest/config/cached_fetch.d.ts.map +1 -0
- package/dest/config/cached_fetch.js +54 -0
- package/dest/config/chain_l2_config.d.ts +41 -0
- package/dest/config/chain_l2_config.d.ts.map +1 -0
- package/dest/config/chain_l2_config.js +524 -0
- package/dest/config/enrich_env.d.ts +4 -0
- package/dest/config/enrich_env.d.ts.map +1 -0
- package/dest/config/enrich_env.js +12 -0
- package/dest/config/get_l1_config.d.ts +9 -0
- package/dest/config/get_l1_config.d.ts.map +1 -0
- package/dest/config/get_l1_config.js +24 -0
- package/dest/config/index.d.ts +5 -0
- package/dest/config/index.d.ts.map +1 -0
- package/dest/config/index.js +4 -0
- package/dest/config/network_config.d.ts +22 -0
- package/dest/config/network_config.d.ts.map +1 -0
- package/dest/config/network_config.js +115 -0
- package/dest/utils/aztec.d.ts +8 -20
- package/dest/utils/aztec.d.ts.map +1 -1
- package/dest/utils/aztec.js +22 -67
- package/dest/utils/commands.d.ts +21 -12
- package/dest/utils/commands.d.ts.map +1 -1
- package/dest/utils/commands.js +38 -11
- package/dest/utils/encoding.d.ts +1 -1
- package/dest/utils/encoding.js +1 -1
- package/dest/utils/github.d.ts +1 -1
- package/dest/utils/index.d.ts +1 -1
- package/dest/utils/inspect.d.ts +5 -11
- package/dest/utils/inspect.d.ts.map +1 -1
- package/dest/utils/inspect.js +13 -95
- package/dest/utils/setup_contracts.d.ts +2 -4
- package/dest/utils/setup_contracts.d.ts.map +1 -1
- package/dest/utils/setup_contracts.js +2 -22
- package/package.json +43 -28
- package/public_include_metric_prefixes.json +1 -0
- package/src/cmds/aztec_node/block_number.ts +9 -0
- package/src/cmds/aztec_node/get_block.ts +11 -0
- package/src/cmds/aztec_node/get_current_min_fee.ts +9 -0
- package/src/cmds/aztec_node/get_l1_to_l2_message_witness.ts +27 -0
- package/src/cmds/{pxe → aztec_node}/get_logs.ts +11 -9
- package/src/cmds/{pxe → aztec_node}/get_node_info.ts +5 -16
- package/src/cmds/aztec_node/index.ts +87 -0
- package/src/cmds/contracts/inspect_contract.ts +4 -11
- package/src/cmds/infrastructure/index.ts +7 -18
- package/src/cmds/infrastructure/sequencers.ts +13 -11
- package/src/cmds/infrastructure/setup_l2_contract.ts +13 -30
- package/src/cmds/l1/advance_epoch.ts +6 -5
- package/src/cmds/l1/assume_proven_through.ts +10 -6
- package/src/cmds/l1/bridge_erc20.ts +5 -2
- package/src/cmds/l1/{deploy_l1_contracts.ts → deploy_l1_contracts_cmd.ts} +44 -24
- package/src/cmds/l1/deploy_new_rollup.ts +6 -9
- package/src/cmds/l1/get_l1_addresses.ts +5 -3
- package/src/cmds/l1/get_l1_balance.ts +2 -2
- package/src/cmds/l1/governance_utils.ts +3 -8
- package/src/cmds/l1/index.ts +28 -66
- package/src/cmds/l1/prover_stats.ts +42 -31
- package/src/cmds/l1/trigger_seed_snapshot.ts +2 -1
- package/src/cmds/l1/update_l1_validators.ts +88 -18
- package/src/cmds/misc/generate_secret_and_hash.ts +2 -2
- package/src/cmds/misc/generate_secret_key.ts +1 -1
- package/src/cmds/misc/index.ts +1 -1
- package/src/cmds/misc/update/npm.ts +1 -1
- package/src/cmds/validator_keys/add.ts +123 -0
- package/src/cmds/validator_keys/generate_bls_keypair.ts +34 -0
- package/src/cmds/validator_keys/index.ts +142 -0
- package/src/cmds/validator_keys/new.ts +207 -0
- package/src/cmds/validator_keys/shared.ts +326 -0
- package/src/cmds/validator_keys/staker.ts +301 -0
- package/src/cmds/validator_keys/utils.ts +81 -0
- package/src/config/cached_fetch.ts +67 -0
- package/src/config/chain_l2_config.ts +694 -0
- package/src/config/enrich_env.ts +15 -0
- package/src/config/get_l1_config.ts +31 -0
- package/src/config/index.ts +4 -0
- package/src/config/network_config.ts +147 -0
- package/src/utils/aztec.ts +27 -118
- package/src/utils/commands.ts +52 -15
- package/src/utils/encoding.ts +1 -1
- package/src/utils/inspect.ts +19 -111
- package/src/utils/setup_contracts.ts +4 -43
- package/dest/cmds/devnet/bootstrap_network.d.ts +0 -3
- package/dest/cmds/devnet/bootstrap_network.d.ts.map +0 -1
- package/dest/cmds/devnet/bootstrap_network.js +0 -216
- package/dest/cmds/devnet/faucet.d.ts +0 -4
- package/dest/cmds/devnet/faucet.d.ts.map +0 -1
- package/dest/cmds/devnet/faucet.js +0 -26
- package/dest/cmds/devnet/index.d.ts +0 -4
- package/dest/cmds/devnet/index.d.ts.map +0 -1
- package/dest/cmds/devnet/index.js +0 -14
- package/dest/cmds/l1/deploy_l1_contracts.d.ts +0 -4
- package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +0 -1
- package/dest/cmds/pxe/add_contract.d.ts +0 -5
- package/dest/cmds/pxe/add_contract.d.ts.map +0 -1
- package/dest/cmds/pxe/add_contract.js +0 -29
- package/dest/cmds/pxe/block_number.d.ts +0 -3
- package/dest/cmds/pxe/block_number.d.ts.map +0 -1
- package/dest/cmds/pxe/block_number.js +0 -10
- package/dest/cmds/pxe/get_account.d.ts +0 -4
- package/dest/cmds/pxe/get_account.d.ts.map +0 -1
- package/dest/cmds/pxe/get_account.js +0 -10
- package/dest/cmds/pxe/get_accounts.d.ts +0 -3
- package/dest/cmds/pxe/get_accounts.d.ts.map +0 -1
- package/dest/cmds/pxe/get_accounts.js +0 -25
- package/dest/cmds/pxe/get_block.d.ts +0 -3
- package/dest/cmds/pxe/get_block.d.ts.map +0 -1
- package/dest/cmds/pxe/get_block.js +0 -9
- package/dest/cmds/pxe/get_contract_data.d.ts +0 -4
- package/dest/cmds/pxe/get_contract_data.d.ts.map +0 -1
- package/dest/cmds/pxe/get_contract_data.js +0 -31
- package/dest/cmds/pxe/get_current_base_fee.d.ts +0 -3
- package/dest/cmds/pxe/get_current_base_fee.d.ts.map +0 -1
- package/dest/cmds/pxe/get_current_base_fee.js +0 -7
- package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts +0 -4
- package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts.map +0 -1
- package/dest/cmds/pxe/get_l1_to_l2_message_witness.js +0 -11
- package/dest/cmds/pxe/get_logs.d.ts +0 -4
- package/dest/cmds/pxe/get_logs.d.ts.map +0 -1
- package/dest/cmds/pxe/get_node_info.d.ts +0 -3
- package/dest/cmds/pxe/get_node_info.d.ts.map +0 -1
- package/dest/cmds/pxe/get_pxe_info.d.ts +0 -3
- package/dest/cmds/pxe/get_pxe_info.d.ts.map +0 -1
- package/dest/cmds/pxe/get_pxe_info.js +0 -11
- package/dest/cmds/pxe/index.d.ts +0 -4
- package/dest/cmds/pxe/index.d.ts.map +0 -1
- package/dest/cmds/pxe/index.js +0 -55
- package/src/cmds/devnet/bootstrap_network.ts +0 -321
- package/src/cmds/devnet/faucet.ts +0 -33
- package/src/cmds/devnet/index.ts +0 -60
- package/src/cmds/pxe/add_contract.ts +0 -41
- package/src/cmds/pxe/block_number.ts +0 -9
- package/src/cmds/pxe/get_account.ts +0 -16
- package/src/cmds/pxe/get_accounts.ts +0 -35
- package/src/cmds/pxe/get_block.ts +0 -10
- package/src/cmds/pxe/get_contract_data.ts +0 -51
- package/src/cmds/pxe/get_current_base_fee.ts +0 -9
- package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +0 -25
- package/src/cmds/pxe/get_pxe_info.ts +0 -13
- package/src/cmds/pxe/index.ts +0 -170
package/src/utils/inspect.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import type { LogFn } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
4
|
-
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
5
|
-
import type { PXE } from '@aztec/stdlib/interfaces/client';
|
|
6
|
-
import type { ExtendedNote } from '@aztec/stdlib/note';
|
|
3
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
7
4
|
import type { TxHash } from '@aztec/stdlib/tx';
|
|
8
5
|
|
|
9
|
-
export async function inspectBlock(
|
|
10
|
-
|
|
6
|
+
export async function inspectBlock(
|
|
7
|
+
aztecNode: AztecNode,
|
|
8
|
+
blockNumber: BlockNumber,
|
|
9
|
+
log: LogFn,
|
|
10
|
+
opts: { showTxs?: boolean } = {},
|
|
11
|
+
) {
|
|
12
|
+
const block = await aztecNode.getBlock(blockNumber);
|
|
11
13
|
if (!block) {
|
|
12
14
|
log(`No block found for block number ${blockNumber}`);
|
|
13
15
|
return;
|
|
@@ -25,9 +27,8 @@ export async function inspectBlock(pxe: PXE, blockNumber: number, log: LogFn, op
|
|
|
25
27
|
log(` Timestamp: ${new Date(Number(block.header.globalVariables.timestamp) * 500)}`);
|
|
26
28
|
if (opts.showTxs) {
|
|
27
29
|
log(``);
|
|
28
|
-
const artifactMap = await getKnownArtifacts(pxe);
|
|
29
30
|
for (const txHash of block.body.txEffects.map(tx => tx.txHash)) {
|
|
30
|
-
await inspectTx(
|
|
31
|
+
await inspectTx(aztecNode, txHash, log, { includeBlockInfo: false });
|
|
31
32
|
}
|
|
32
33
|
} else {
|
|
33
34
|
log(` Transactions: ${block.body.txEffects.length}`);
|
|
@@ -35,12 +36,12 @@ export async function inspectBlock(pxe: PXE, blockNumber: number, log: LogFn, op
|
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
export async function inspectTx(
|
|
38
|
-
|
|
39
|
+
aztecNode: AztecNode,
|
|
39
40
|
txHash: TxHash,
|
|
40
41
|
log: LogFn,
|
|
41
|
-
opts: { includeBlockInfo?: boolean
|
|
42
|
+
opts: { includeBlockInfo?: boolean } = {},
|
|
42
43
|
) {
|
|
43
|
-
const [receipt, effectsInBlock] = await Promise.all([
|
|
44
|
+
const [receipt, effectsInBlock] = await Promise.all([aztecNode.getTxReceipt(txHash), aztecNode.getTxEffect(txHash)]);
|
|
44
45
|
// Base tx data
|
|
45
46
|
log(`Tx ${txHash.toString()}`);
|
|
46
47
|
log(` Status: ${receipt.status} ${effectsInBlock ? `(${effectsInBlock.data.revertCode.getDescription()})` : ''}`);
|
|
@@ -53,7 +54,6 @@ export async function inspectTx(
|
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
const effects = effectsInBlock.data;
|
|
56
|
-
const artifactMap = opts?.artifactMap ?? (await getKnownArtifacts(pxe));
|
|
57
57
|
|
|
58
58
|
if (opts.includeBlockInfo) {
|
|
59
59
|
log(` Block: ${receipt.blockNumber} (${receipt.blockHash?.toString()})`);
|
|
@@ -90,38 +90,12 @@ export async function inspectTx(
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
//
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const deployed = deployNullifiers[nullifier.toString()];
|
|
100
|
-
const note = deployed
|
|
101
|
-
? (await pxe.getNotes({ siloedNullifier: nullifier, contractAddress: deployed }))[0]
|
|
102
|
-
: undefined;
|
|
103
|
-
const initialized = initNullifiers[nullifier.toString()];
|
|
104
|
-
const registered = classNullifiers[nullifier.toString()];
|
|
105
|
-
if (nullifier.toBuffer().equals(txHash.toBuffer())) {
|
|
106
|
-
log(` Transaction hash nullifier ${nullifier.toShortString()}`);
|
|
107
|
-
} else if (note) {
|
|
108
|
-
inspectNote(note, artifactMap, log, `Nullifier ${nullifier.toShortString()} for note`);
|
|
109
|
-
} else if (deployed) {
|
|
110
|
-
log(
|
|
111
|
-
` Contract ${toFriendlyAddress(deployed, artifactMap)} deployed via nullifier ${nullifier.toShortString()}`,
|
|
112
|
-
);
|
|
113
|
-
} else if (initialized) {
|
|
114
|
-
log(
|
|
115
|
-
` Contract ${toFriendlyAddress(
|
|
116
|
-
initialized,
|
|
117
|
-
artifactMap,
|
|
118
|
-
)} initialized via nullifier ${nullifier.toShortString()}`,
|
|
119
|
-
);
|
|
120
|
-
} else if (registered) {
|
|
121
|
-
log(` Class ${registered} registered via nullifier ${nullifier.toShortString()}`);
|
|
122
|
-
} else {
|
|
123
|
-
log(` Unknown nullifier ${nullifier.toString()}`);
|
|
124
|
-
}
|
|
93
|
+
// Created nullifiers
|
|
94
|
+
const nullifiers = effects.nullifiers;
|
|
95
|
+
if (nullifiers.length > 0) {
|
|
96
|
+
log(' Created nullifiers:');
|
|
97
|
+
for (const nullifier of nullifiers) {
|
|
98
|
+
log(` Nullifier: ${nullifier.toShortString()}`);
|
|
125
99
|
}
|
|
126
100
|
}
|
|
127
101
|
|
|
@@ -133,69 +107,3 @@ export async function inspectTx(
|
|
|
133
107
|
}
|
|
134
108
|
}
|
|
135
109
|
}
|
|
136
|
-
|
|
137
|
-
function inspectNote(note: ExtendedNote, artifactMap: ArtifactMap, log: LogFn, text = 'Note') {
|
|
138
|
-
const artifact = artifactMap[note.contractAddress.toString()];
|
|
139
|
-
const contract = artifact?.name ?? note.contractAddress.toString();
|
|
140
|
-
log(` ${text} at ${contract}`);
|
|
141
|
-
log(` Recipient: ${toFriendlyAddress(note.recipient, artifactMap)}`);
|
|
142
|
-
for (const field of note.note.items) {
|
|
143
|
-
log(` ${field.toString()}`);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function toFriendlyAddress(address: AztecAddress, artifactMap: ArtifactMap) {
|
|
148
|
-
const artifact = artifactMap[address.toString()];
|
|
149
|
-
if (!artifact) {
|
|
150
|
-
return address.toString();
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return `${artifact.name}<${address.toString()}>`;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
async function getKnownNullifiers(pxe: PXE, artifactMap: ArtifactMap) {
|
|
157
|
-
const knownContracts = await pxe.getContracts();
|
|
158
|
-
const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
|
|
159
|
-
const classRegistryAddress = ProtocolContractAddress.ContractClassRegistry;
|
|
160
|
-
const initNullifiers: Record<string, AztecAddress> = {};
|
|
161
|
-
const deployNullifiers: Record<string, AztecAddress> = {};
|
|
162
|
-
const classNullifiers: Record<string, string> = {};
|
|
163
|
-
for (const contract of knownContracts) {
|
|
164
|
-
initNullifiers[(await siloNullifier(contract, contract.toField())).toString()] = contract;
|
|
165
|
-
deployNullifiers[(await siloNullifier(deployerAddress, contract.toField())).toString()] = contract;
|
|
166
|
-
}
|
|
167
|
-
for (const artifact of Object.values(artifactMap)) {
|
|
168
|
-
classNullifiers[(await siloNullifier(classRegistryAddress, artifact.classId)).toString()] =
|
|
169
|
-
`${artifact.name}Class<${artifact.classId}>`;
|
|
170
|
-
}
|
|
171
|
-
return { initNullifiers, deployNullifiers, classNullifiers };
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
type ArtifactMap = Record<string, ContractArtifactWithClassId>;
|
|
175
|
-
type ContractArtifactWithClassId = ContractArtifact & { classId: Fr };
|
|
176
|
-
async function getKnownArtifacts(pxe: PXE): Promise<ArtifactMap> {
|
|
177
|
-
const knownContractAddresses = await pxe.getContracts();
|
|
178
|
-
const knownContracts = (
|
|
179
|
-
await Promise.all(knownContractAddresses.map(contractAddress => pxe.getContractMetadata(contractAddress)))
|
|
180
|
-
).map(contractMetadata => contractMetadata.contractInstance);
|
|
181
|
-
const classIds = [...new Set(knownContracts.map(contract => contract?.currentContractClassId))];
|
|
182
|
-
const knownArtifacts = (
|
|
183
|
-
await Promise.all(classIds.map(classId => (classId ? pxe.getContractClassMetadata(classId) : undefined)))
|
|
184
|
-
).map(contractClassMetadata =>
|
|
185
|
-
contractClassMetadata
|
|
186
|
-
? { ...contractClassMetadata.artifact, classId: contractClassMetadata.contractClass?.id }
|
|
187
|
-
: undefined,
|
|
188
|
-
);
|
|
189
|
-
const map: Record<string, ContractArtifactWithClassId> = {};
|
|
190
|
-
for (const instance of knownContracts) {
|
|
191
|
-
if (instance) {
|
|
192
|
-
const artifact = knownArtifacts.find(a =>
|
|
193
|
-
a?.classId?.equals(instance.currentContractClassId),
|
|
194
|
-
) as ContractArtifactWithClassId;
|
|
195
|
-
if (artifact) {
|
|
196
|
-
map[instance.address.toString()] = artifact;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
return map;
|
|
201
|
-
}
|
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Fr,
|
|
5
|
-
type PXE,
|
|
6
|
-
SignerlessWallet,
|
|
7
|
-
SponsoredFeePaymentMethod,
|
|
8
|
-
type WaitForProvenOpts,
|
|
9
|
-
getContractInstanceFromInstantiationParams,
|
|
10
|
-
waitForProven,
|
|
11
|
-
} from '@aztec/aztec.js';
|
|
1
|
+
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
|
|
3
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
12
4
|
import { SPONSORED_FPC_SALT } from '@aztec/constants';
|
|
13
|
-
import { DefaultMultiCallEntrypoint } from '@aztec/entrypoints/multicall';
|
|
14
|
-
import type { LogFn } from '@aztec/foundation/log';
|
|
15
5
|
|
|
16
6
|
async function getSponsoredFPCContract() {
|
|
17
7
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -20,39 +10,10 @@ async function getSponsoredFPCContract() {
|
|
|
20
10
|
return SponsoredFPCContract;
|
|
21
11
|
}
|
|
22
12
|
|
|
23
|
-
export async function getSponsoredFPCAddress() {
|
|
13
|
+
export async function getSponsoredFPCAddress(): Promise<AztecAddress> {
|
|
24
14
|
const SponsoredFPCContract = await getSponsoredFPCContract();
|
|
25
15
|
const sponsoredFPCInstance = await getContractInstanceFromInstantiationParams(SponsoredFPCContract.artifact, {
|
|
26
16
|
salt: new Fr(SPONSORED_FPC_SALT),
|
|
27
17
|
});
|
|
28
18
|
return sponsoredFPCInstance.address;
|
|
29
19
|
}
|
|
30
|
-
|
|
31
|
-
export async function setupSponsoredFPC(
|
|
32
|
-
pxe: PXE,
|
|
33
|
-
log: LogFn,
|
|
34
|
-
waitOpts = DefaultWaitOpts,
|
|
35
|
-
waitForProvenOptions?: WaitForProvenOpts,
|
|
36
|
-
) {
|
|
37
|
-
const SponsoredFPCContract = await getSponsoredFPCContract();
|
|
38
|
-
const address = await getSponsoredFPCAddress();
|
|
39
|
-
const paymentMethod = new SponsoredFeePaymentMethod(address);
|
|
40
|
-
const { l1ChainId: chainId, rollupVersion } = await pxe.getNodeInfo();
|
|
41
|
-
|
|
42
|
-
const deployer = new SignerlessWallet(pxe, new DefaultMultiCallEntrypoint(chainId, rollupVersion));
|
|
43
|
-
|
|
44
|
-
const deployTx = SponsoredFPCContract.deploy(deployer).send({
|
|
45
|
-
from: AztecAddress.ZERO,
|
|
46
|
-
contractAddressSalt: new Fr(SPONSORED_FPC_SALT),
|
|
47
|
-
universalDeploy: true,
|
|
48
|
-
fee: { paymentMethod },
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
const deployed = await deployTx.deployed(waitOpts);
|
|
52
|
-
|
|
53
|
-
if (waitForProvenOptions !== undefined) {
|
|
54
|
-
await waitForProven(pxe, await deployTx.getReceipt(), waitForProvenOptions);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
log(`SponsoredFPC: ${deployed.address}`);
|
|
58
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap_network.d.ts","sourceRoot":"","sources":["../../../src/cmds/devnet/bootstrap_network.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAqB3D,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,iBAkFjB"}
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { getInitialTestAccountsManagers } from '@aztec/accounts/testing';
|
|
2
|
-
import { BatchCall, Fr, L1FeeJuicePortalManager, createCompatibleClient, retryUntil, waitForProven } from '@aztec/aztec.js';
|
|
3
|
-
import { createEthereumChain, createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
|
|
4
|
-
import { getContract } from 'viem';
|
|
5
|
-
import { mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
|
|
6
|
-
const waitOpts = {
|
|
7
|
-
timeout: 120,
|
|
8
|
-
interval: 1
|
|
9
|
-
};
|
|
10
|
-
const provenWaitOpts = {
|
|
11
|
-
provenTimeout: 4800,
|
|
12
|
-
interval: 1
|
|
13
|
-
};
|
|
14
|
-
export async function bootstrapNetwork(pxeUrl, l1Urls, l1ChainId, l1PrivateKey, l1Mnemonic, addressIndex, json, log, debugLog) {
|
|
15
|
-
const pxe = await createCompatibleClient(pxeUrl, debugLog);
|
|
16
|
-
// We assume here that the initial test accounts were prefunded with deploy-l1-contracts, and deployed with setup-l2-contracts
|
|
17
|
-
// so all we need to do is register them to our pxe.
|
|
18
|
-
const [accountManager] = await getInitialTestAccountsManagers(pxe);
|
|
19
|
-
await accountManager.register();
|
|
20
|
-
const wallet = await accountManager.getWallet();
|
|
21
|
-
const defaultAccountAddress = wallet.getAddress();
|
|
22
|
-
const l1Client = createExtendedL1Client(l1Urls, l1PrivateKey ? privateKeyToAccount(l1PrivateKey) : // Note that this account needs to be funded on L1 !
|
|
23
|
-
mnemonicToAccount(l1Mnemonic, {
|
|
24
|
-
addressIndex
|
|
25
|
-
}), createEthereumChain(l1Urls, +l1ChainId).chainInfo);
|
|
26
|
-
const { erc20Address, portalAddress } = await deployERC20(l1Client);
|
|
27
|
-
const { token, bridge } = await deployToken(wallet, defaultAccountAddress, portalAddress);
|
|
28
|
-
await initPortal(pxe, l1Client, erc20Address, portalAddress, bridge.address);
|
|
29
|
-
const fpcAdmin = wallet.getAddress();
|
|
30
|
-
const fpc = await deployFPC(wallet, defaultAccountAddress, token.address, fpcAdmin);
|
|
31
|
-
const counter = await deployCounter(wallet, defaultAccountAddress);
|
|
32
|
-
await fundFPC(pxe, counter.address, wallet, defaultAccountAddress, l1Client, fpc.address, debugLog);
|
|
33
|
-
if (json) {
|
|
34
|
-
log(JSON.stringify({
|
|
35
|
-
devCoinL1: erc20Address.toString(),
|
|
36
|
-
devCoinPortalL1: portalAddress.toString(),
|
|
37
|
-
devCoin: {
|
|
38
|
-
address: token.address.toString(),
|
|
39
|
-
initHash: token.initHash.toString(),
|
|
40
|
-
salt: token.salt.toString()
|
|
41
|
-
},
|
|
42
|
-
devCoinBridge: {
|
|
43
|
-
address: bridge.address.toString(),
|
|
44
|
-
initHash: bridge.initHash.toString(),
|
|
45
|
-
salt: bridge.salt.toString()
|
|
46
|
-
},
|
|
47
|
-
devCoinFpc: {
|
|
48
|
-
address: fpc.address.toString(),
|
|
49
|
-
initHash: fpc.initHash.toString(),
|
|
50
|
-
salt: fpc.salt.toString()
|
|
51
|
-
},
|
|
52
|
-
counter: {
|
|
53
|
-
address: counter.address.toString(),
|
|
54
|
-
initHash: counter.initHash.toString(),
|
|
55
|
-
salt: counter.salt.toString()
|
|
56
|
-
}
|
|
57
|
-
}, null, 2));
|
|
58
|
-
} else {
|
|
59
|
-
log(`DevCoin L1: ${erc20Address}`);
|
|
60
|
-
log(`DevCoin L1 Portal: ${portalAddress}`);
|
|
61
|
-
log(`DevCoin L2: ${token.address}`);
|
|
62
|
-
log(`DevCoin L2 init hash: ${token.initHash}`);
|
|
63
|
-
log(`DevCoin L2 salt: ${token.salt}`);
|
|
64
|
-
log(`DevCoin L2 Bridge: ${bridge.address}`);
|
|
65
|
-
log(`DevCoin L2 Bridge init hash: ${bridge.initHash}`);
|
|
66
|
-
log(`DevCoin L2 Bridge salt: ${bridge.salt}`);
|
|
67
|
-
log(`DevCoin FPC: ${fpc.address}`);
|
|
68
|
-
log(`DevCoin FPC init hash: ${fpc.initHash}`);
|
|
69
|
-
log(`DevCoin FPC salt: ${fpc.salt}`);
|
|
70
|
-
log(`Counter: ${counter.address}`);
|
|
71
|
-
log(`Counter init hash: ${counter.initHash}`);
|
|
72
|
-
log(`Counter salt: ${counter.salt}`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Step 1. Deploy the L1 contracts, but don't initialize
|
|
77
|
-
*/ async function deployERC20(l1Client) {
|
|
78
|
-
const { TestERC20Abi, TestERC20Bytecode, TokenPortalAbi, TokenPortalBytecode } = await import('@aztec/l1-artifacts');
|
|
79
|
-
const erc20 = {
|
|
80
|
-
name: 'TestERC20',
|
|
81
|
-
contractAbi: TestERC20Abi,
|
|
82
|
-
contractBytecode: TestERC20Bytecode
|
|
83
|
-
};
|
|
84
|
-
const portal = {
|
|
85
|
-
name: 'TokenPortal',
|
|
86
|
-
contractAbi: TokenPortalAbi,
|
|
87
|
-
contractBytecode: TokenPortalBytecode
|
|
88
|
-
};
|
|
89
|
-
const { address: erc20Address } = await deployL1Contract(l1Client, erc20.contractAbi, erc20.contractBytecode, [
|
|
90
|
-
'DevCoin',
|
|
91
|
-
'DEV',
|
|
92
|
-
l1Client.account.address
|
|
93
|
-
]);
|
|
94
|
-
const { address: portalAddress } = await deployL1Contract(l1Client, portal.contractAbi, portal.contractBytecode);
|
|
95
|
-
return {
|
|
96
|
-
erc20Address,
|
|
97
|
-
portalAddress
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Step 2. Deploy the L2 contracts
|
|
102
|
-
*/ async function deployToken(wallet, defaultAccountAddress, l1Portal) {
|
|
103
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
104
|
-
// @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
|
|
105
|
-
const { TokenContract } = await import('@aztec/noir-contracts.js/Token');
|
|
106
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
107
|
-
// @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
|
|
108
|
-
const { TokenBridgeContract } = await import('@aztec/noir-contracts.js/TokenBridge');
|
|
109
|
-
const devCoin = await TokenContract.deploy(wallet, defaultAccountAddress, 'DevCoin', 'DEV', 18).send({
|
|
110
|
-
from: defaultAccountAddress,
|
|
111
|
-
universalDeploy: true
|
|
112
|
-
}).deployed(waitOpts);
|
|
113
|
-
const bridge = await TokenBridgeContract.deploy(wallet, devCoin.address, l1Portal).send({
|
|
114
|
-
from: defaultAccountAddress,
|
|
115
|
-
universalDeploy: true
|
|
116
|
-
}).deployed(waitOpts);
|
|
117
|
-
await new BatchCall(wallet, [
|
|
118
|
-
devCoin.methods.set_minter(bridge.address, true),
|
|
119
|
-
devCoin.methods.set_admin(bridge.address)
|
|
120
|
-
]).send({
|
|
121
|
-
from: defaultAccountAddress
|
|
122
|
-
}).wait(waitOpts);
|
|
123
|
-
return {
|
|
124
|
-
token: {
|
|
125
|
-
address: devCoin.address,
|
|
126
|
-
initHash: devCoin.instance.initializationHash,
|
|
127
|
-
salt: devCoin.instance.salt
|
|
128
|
-
},
|
|
129
|
-
bridge: {
|
|
130
|
-
address: bridge.address,
|
|
131
|
-
initHash: bridge.instance.initializationHash,
|
|
132
|
-
salt: bridge.instance.salt
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Step 3. Initialize DevCoin's L1 portal
|
|
138
|
-
*/ async function initPortal(pxe, l1Client, erc20, portal, bridge) {
|
|
139
|
-
const { TokenPortalAbi } = await import('@aztec/l1-artifacts');
|
|
140
|
-
const { l1ContractAddresses: { registryAddress } } = await pxe.getNodeInfo();
|
|
141
|
-
const contract = getContract({
|
|
142
|
-
abi: TokenPortalAbi,
|
|
143
|
-
address: portal.toString(),
|
|
144
|
-
client: l1Client
|
|
145
|
-
});
|
|
146
|
-
const hash = await contract.write.initialize([
|
|
147
|
-
registryAddress.toString(),
|
|
148
|
-
erc20.toString(),
|
|
149
|
-
bridge.toString()
|
|
150
|
-
]);
|
|
151
|
-
await l1Client.waitForTransactionReceipt({
|
|
152
|
-
hash
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
async function deployFPC(wallet, defaultAccountAddress, tokenAddress, admin) {
|
|
156
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
157
|
-
// @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
|
|
158
|
-
const { FPCContract } = await import('@aztec/noir-contracts.js/FPC');
|
|
159
|
-
const fpc = await FPCContract.deploy(wallet, tokenAddress, admin).send({
|
|
160
|
-
from: defaultAccountAddress,
|
|
161
|
-
universalDeploy: true
|
|
162
|
-
}).deployed(waitOpts);
|
|
163
|
-
const info = {
|
|
164
|
-
address: fpc.address,
|
|
165
|
-
initHash: fpc.instance.initializationHash,
|
|
166
|
-
salt: fpc.instance.salt
|
|
167
|
-
};
|
|
168
|
-
return info;
|
|
169
|
-
}
|
|
170
|
-
async function deployCounter(wallet, defaultAccountAddress) {
|
|
171
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
172
|
-
// @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
|
|
173
|
-
const { CounterContract } = await import('@aztec/noir-test-contracts.js/Counter');
|
|
174
|
-
const counter = await CounterContract.deploy(wallet, 1, defaultAccountAddress).send({
|
|
175
|
-
from: defaultAccountAddress,
|
|
176
|
-
universalDeploy: true
|
|
177
|
-
}).deployed(waitOpts);
|
|
178
|
-
const info = {
|
|
179
|
-
address: counter.address,
|
|
180
|
-
initHash: counter.instance.initializationHash,
|
|
181
|
-
salt: counter.instance.salt
|
|
182
|
-
};
|
|
183
|
-
return info;
|
|
184
|
-
}
|
|
185
|
-
// NOTE: Disabling for now in order to get devnet running
|
|
186
|
-
async function fundFPC(pxe, counterAddress, wallet, defaultAccountAddress, l1Client, fpcAddress, debugLog) {
|
|
187
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
188
|
-
// @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
|
|
189
|
-
const { FeeJuiceContract } = await import('@aztec/noir-contracts.js/FeeJuice');
|
|
190
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
191
|
-
// @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
|
|
192
|
-
const { CounterContract } = await import('@aztec/noir-test-contracts.js/Counter');
|
|
193
|
-
const { protocolContractAddresses: { feeJuice } } = await wallet.getPXEInfo();
|
|
194
|
-
const feeJuiceContract = await FeeJuiceContract.at(feeJuice, wallet);
|
|
195
|
-
const feeJuicePortal = await L1FeeJuicePortalManager.new(wallet, l1Client, debugLog);
|
|
196
|
-
const { claimAmount, claimSecret, messageLeafIndex, messageHash } = await feeJuicePortal.bridgeTokensPublic(fpcAddress, undefined, true);
|
|
197
|
-
await retryUntil(async ()=>await pxe.isL1ToL2MessageSynced(Fr.fromHexString(messageHash)), 'message sync', 600, 1);
|
|
198
|
-
const counter = await CounterContract.at(counterAddress, wallet);
|
|
199
|
-
debugLog.info('Incrementing Counter');
|
|
200
|
-
// TODO (alexg) remove this once sequencer builds blocks continuously
|
|
201
|
-
// advance the chain
|
|
202
|
-
await counter.methods.increment(wallet.getAddress()).send({
|
|
203
|
-
from: defaultAccountAddress
|
|
204
|
-
}).wait(waitOpts);
|
|
205
|
-
await counter.methods.increment(wallet.getAddress()).send({
|
|
206
|
-
from: defaultAccountAddress
|
|
207
|
-
}).wait(waitOpts);
|
|
208
|
-
debugLog.info('Claiming FPC');
|
|
209
|
-
const receipt = await feeJuiceContract.methods.claim(fpcAddress, claimAmount, claimSecret, messageLeafIndex).send({
|
|
210
|
-
from: defaultAccountAddress
|
|
211
|
-
}).wait({
|
|
212
|
-
...waitOpts
|
|
213
|
-
});
|
|
214
|
-
await waitForProven(pxe, receipt, provenWaitOpts);
|
|
215
|
-
debugLog.info('Finished claiming FPC');
|
|
216
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { prettyPrintJSON } from '../../utils/commands.js';
|
|
2
|
-
export async function dripFaucet(faucetUrl, asset, account, json, log) {
|
|
3
|
-
const url = new URL(`/drip/${account.toString()}`, faucetUrl);
|
|
4
|
-
url.searchParams.set('asset', asset);
|
|
5
|
-
const res = await fetch(url);
|
|
6
|
-
if (res.status === 200) {
|
|
7
|
-
if (json) {
|
|
8
|
-
log(prettyPrintJSON({
|
|
9
|
-
ok: true
|
|
10
|
-
}));
|
|
11
|
-
} else {
|
|
12
|
-
log(`Dripped ${asset} for ${account.toString()}`);
|
|
13
|
-
}
|
|
14
|
-
} else {
|
|
15
|
-
if (json) {
|
|
16
|
-
log(prettyPrintJSON({
|
|
17
|
-
ok: false
|
|
18
|
-
}));
|
|
19
|
-
} else if (res.status === 429) {
|
|
20
|
-
log(`Rate limited when dripping ${asset} for ${account.toString()}`);
|
|
21
|
-
} else {
|
|
22
|
-
log(`Failed to drip ${asset} for ${account.toString()}`);
|
|
23
|
-
}
|
|
24
|
-
process.exit(1);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
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,14 +0,0 @@
|
|
|
1
|
-
import { ETHEREUM_HOSTS, l1ChainIdOption, parseEthereumAddress, pxeOption } from '../../utils/commands.js';
|
|
2
|
-
export function injectCommands(program, log, debugLogger) {
|
|
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)=>{
|
|
6
|
-
const { bootstrapNetwork } = await import('./bootstrap_network.js');
|
|
7
|
-
await bootstrapNetwork(options[pxeOption.attributeName()], options.l1RpcUrls, options[l1ChainIdOption.attributeName()], options.l1PrivateKey, options.mnemonic, options.addressIndex, options.json, log, debugLogger);
|
|
8
|
-
});
|
|
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)=>{
|
|
10
|
-
const { dripFaucet } = await import('./faucet.js');
|
|
11
|
-
await dripFaucet(options.faucetUrl, options.token, options.address, options.json, log);
|
|
12
|
-
});
|
|
13
|
-
return program;
|
|
14
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type EthAddress } from '@aztec/aztec.js';
|
|
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, sponsoredFPC: boolean, acceleratedTestDeployments: boolean, json: boolean, createVerificationJson: string | false, initialValidators: EthAddress[], realVerifier: boolean, log: LogFn, debugLogger: Logger): Promise<void>;
|
|
4
|
-
//# sourceMappingURL=deploy_l1_contracts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/deploy_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAM,MAAM,iBAAiB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAM3D,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,YAAY,EAAE,OAAO,EACrB,0BAA0B,EAAE,OAAO,EACnC,IAAI,EAAE,OAAO,EACb,sBAAsB,EAAE,MAAM,GAAG,KAAK,EACtC,iBAAiB,EAAE,UAAU,EAAE,EAC/B,YAAY,EAAE,OAAO,EACrB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,iBA6DpB"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { AztecAddress, type Fr } from '@aztec/aztec.js';
|
|
2
|
-
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
-
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
4
|
-
export declare function addContract(rpcUrl: string, contractArtifactPath: string, address: AztecAddress, initializationHash: Fr, salt: Fr, publicKeys: PublicKeys, deployer: AztecAddress | undefined, debugLogger: Logger, log: LogFn): Promise<void>;
|
|
5
|
-
//# sourceMappingURL=add_contract.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add_contract.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/add_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,KAAK,EAAE,EAAgC,MAAM,iBAAiB,CAAC;AAExH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,YAAY,EACrB,kBAAkB,EAAE,EAAE,EACtB,IAAI,EAAE,EAAE,EACR,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAuBX"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { AztecAddress, getContractClassFromArtifact } from '@aztec/aztec.js';
|
|
2
|
-
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
3
|
-
import { computeContractAddressFromInstance } from '@aztec/stdlib/contract';
|
|
4
|
-
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
5
|
-
import { getContractArtifact } from '../../utils/aztec.js';
|
|
6
|
-
export async function addContract(rpcUrl, contractArtifactPath, address, initializationHash, salt, publicKeys, deployer, debugLogger, log) {
|
|
7
|
-
const artifact = await getContractArtifact(contractArtifactPath, log);
|
|
8
|
-
const contractClass = await getContractClassFromArtifact(artifact);
|
|
9
|
-
const instance = {
|
|
10
|
-
version: 1,
|
|
11
|
-
salt,
|
|
12
|
-
initializationHash,
|
|
13
|
-
currentContractClassId: contractClass.id,
|
|
14
|
-
originalContractClassId: contractClass.id,
|
|
15
|
-
publicKeys: publicKeys ?? PublicKeys.default(),
|
|
16
|
-
address,
|
|
17
|
-
deployer: deployer ?? AztecAddress.ZERO
|
|
18
|
-
};
|
|
19
|
-
const computed = await computeContractAddressFromInstance(instance);
|
|
20
|
-
if (!computed.equals(address)) {
|
|
21
|
-
throw new Error(`Contract address ${address.toString()} does not match computed address ${computed.toString()}`);
|
|
22
|
-
}
|
|
23
|
-
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
24
|
-
await client.registerContract({
|
|
25
|
-
artifact,
|
|
26
|
-
instance
|
|
27
|
-
});
|
|
28
|
-
log(`\nContract added to PXE at ${address.toString()} with class ${instance.currentContractClassId.toString()}\n`);
|
|
29
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block_number.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/block_number.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAKhF"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
-
export async function blockNumber(rpcUrl, debugLogger, log) {
|
|
3
|
-
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
4
|
-
const [latestNum, provenNum] = await Promise.all([
|
|
5
|
-
client.getBlockNumber(),
|
|
6
|
-
client.getProvenBlockNumber()
|
|
7
|
-
]);
|
|
8
|
-
log(`Latest block: ${latestNum}`);
|
|
9
|
-
log(`Proven block: ${provenNum}`);
|
|
10
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { AztecAddress } from '@aztec/aztec.js';
|
|
2
|
-
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
3
|
-
export declare function getAccount(aztecAddress: AztecAddress, rpcUrl: string, debugLogger: Logger, log: LogFn): Promise<void>;
|
|
4
|
-
//# sourceMappingURL=get_account.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get_account.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_account.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,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAW3G"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
-
export async function getAccount(aztecAddress, rpcUrl, debugLogger, log) {
|
|
3
|
-
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
4
|
-
const account = (await client.getRegisteredAccounts()).find((completeAddress)=>completeAddress.address.equals(aztecAddress));
|
|
5
|
-
if (!account) {
|
|
6
|
-
log(`Unknown account ${aztecAddress.toString()}`);
|
|
7
|
-
} else {
|
|
8
|
-
log(account.toReadableString());
|
|
9
|
-
}
|
|
10
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get_accounts.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_accounts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,iBA0B/B"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { createCompatibleClient } from '@aztec/aztec.js';
|
|
2
|
-
export async function getAccounts(rpcUrl, json, debugLogger, log, logJson) {
|
|
3
|
-
const client = await createCompatibleClient(rpcUrl, debugLogger);
|
|
4
|
-
const accounts = await client.getRegisteredAccounts();
|
|
5
|
-
if (!accounts.length) {
|
|
6
|
-
if (json) {
|
|
7
|
-
logJson([]);
|
|
8
|
-
} else {
|
|
9
|
-
log('No accounts found.');
|
|
10
|
-
}
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
if (json) {
|
|
14
|
-
logJson(accounts.map((a)=>({
|
|
15
|
-
address: a.address.toString(),
|
|
16
|
-
publicKeys: a.publicKeys.toString(),
|
|
17
|
-
partialAddress: a.partialAddress.toString()
|
|
18
|
-
})));
|
|
19
|
-
} else {
|
|
20
|
-
log(`Accounts found: \n`);
|
|
21
|
-
for (const account of accounts){
|
|
22
|
-
log(account.toReadableString());
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|