@aztec/aztec 0.0.0-test.1 → 0.0.1-commit.5476d83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dest/bin/index.d.ts +1 -1
- package/dest/bin/index.js +20 -12
- package/dest/cli/aztec_start_action.d.ts +1 -1
- package/dest/cli/aztec_start_action.d.ts.map +1 -1
- package/dest/cli/aztec_start_action.js +36 -37
- package/dest/cli/aztec_start_options.d.ts +5 -3
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +142 -210
- package/dest/cli/cli.d.ts +1 -1
- package/dest/cli/cli.d.ts.map +1 -1
- package/dest/cli/cli.js +50 -1
- package/dest/cli/cmds/start_archiver.d.ts +1 -1
- package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
- package/dest/cli/cmds/start_archiver.js +18 -10
- package/dest/cli/cmds/start_blob_sink.d.ts +1 -1
- package/dest/cli/cmds/start_blob_sink.d.ts.map +1 -1
- package/dest/cli/cmds/start_blob_sink.js +17 -1
- package/dest/cli/cmds/start_bot.d.ts +4 -7
- package/dest/cli/cmds/start_bot.d.ts.map +1 -1
- package/dest/cli/cmds/start_bot.js +24 -13
- package/dest/cli/cmds/start_node.d.ts +2 -2
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +67 -80
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts +1 -1
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
- package/dest/cli/cmds/start_p2p_bootstrap.js +9 -4
- package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
- package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_agent.js +31 -2
- package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
- package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_broker.js +9 -3
- package/dest/cli/cmds/start_prover_node.d.ts +1 -1
- package/dest/cli/cmds/start_prover_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_node.js +43 -45
- package/dest/cli/cmds/start_txe.d.ts +1 -1
- package/dest/cli/index.d.ts +1 -1
- package/dest/cli/preload_crs.d.ts +3 -0
- package/dest/cli/preload_crs.d.ts.map +1 -0
- package/dest/cli/preload_crs.js +6 -0
- package/dest/cli/release_version.d.ts +2 -0
- package/dest/cli/release_version.d.ts.map +1 -0
- package/dest/cli/release_version.js +14 -0
- package/dest/cli/util.d.ts +38 -7
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +198 -28
- package/dest/cli/versioning.d.ts +1 -1
- package/dest/cli/versioning.js +3 -3
- package/dest/examples/token.d.ts +1 -1
- package/dest/examples/token.js +31 -18
- package/dest/examples/util.d.ts +5 -6
- package/dest/examples/util.d.ts.map +1 -1
- package/dest/examples/util.js +5 -6
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/local-network/banana_fpc.d.ts +10 -0
- package/dest/local-network/banana_fpc.d.ts.map +1 -0
- package/dest/{sandbox → local-network}/banana_fpc.js +19 -21
- package/dest/local-network/index.d.ts +4 -0
- package/dest/local-network/index.d.ts.map +1 -0
- package/dest/local-network/index.js +3 -0
- package/dest/local-network/local-network.d.ts +74 -0
- package/dest/local-network/local-network.d.ts.map +1 -0
- package/dest/{sandbox/sandbox.js → local-network/local-network.js} +59 -57
- package/dest/local-network/sponsored_fpc.d.ts +5 -0
- package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
- package/dest/local-network/sponsored_fpc.js +18 -0
- package/dest/mnemonic.d.ts +1 -1
- package/dest/splash.d.ts +1 -1
- package/dest/testing/anvil_test_watcher.d.ts +34 -0
- package/dest/testing/anvil_test_watcher.d.ts.map +1 -0
- package/dest/testing/anvil_test_watcher.js +144 -0
- package/dest/testing/cheat_codes.d.ts +41 -0
- package/dest/testing/cheat_codes.d.ts.map +1 -0
- package/dest/testing/cheat_codes.js +62 -0
- package/dest/testing/index.d.ts +4 -0
- package/dest/testing/index.d.ts.map +1 -0
- package/dest/testing/index.js +3 -0
- package/package.json +51 -44
- package/src/bin/index.ts +24 -12
- package/src/cli/aztec_start_action.ts +32 -35
- package/src/cli/aztec_start_options.ts +161 -210
- package/src/cli/cli.ts +54 -1
- package/src/cli/cmds/start_archiver.ts +19 -13
- package/src/cli/cmds/start_blob_sink.ts +27 -1
- package/src/cli/cmds/start_bot.ts +35 -12
- package/src/cli/cmds/start_node.ts +90 -85
- package/src/cli/cmds/start_p2p_bootstrap.ts +12 -4
- package/src/cli/cmds/start_prover_agent.ts +22 -2
- package/src/cli/cmds/start_prover_broker.ts +23 -3
- package/src/cli/cmds/start_prover_node.ts +53 -50
- package/src/cli/preload_crs.ts +7 -0
- package/src/cli/release_version.ts +21 -0
- package/src/cli/util.ts +208 -34
- package/src/cli/versioning.ts +3 -3
- package/src/examples/token.ts +23 -19
- package/src/examples/util.ts +6 -8
- package/src/index.ts +5 -6
- package/src/{sandbox → local-network}/banana_fpc.ts +20 -25
- package/src/local-network/index.ts +7 -0
- package/src/{sandbox/sandbox.ts → local-network/local-network.ts} +81 -68
- package/src/local-network/sponsored_fpc.ts +26 -0
- package/src/testing/anvil_test_watcher.ts +166 -0
- package/src/testing/cheat_codes.ts +78 -0
- package/src/testing/index.ts +3 -0
- package/dest/cli/chain_l2_config.d.ts +0 -19
- package/dest/cli/chain_l2_config.d.ts.map +0 -1
- package/dest/cli/chain_l2_config.js +0 -56
- package/dest/cli/cmds/start_faucet.d.ts +0 -4
- package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
- package/dest/cli/cmds/start_faucet.js +0 -20
- package/dest/cli/cmds/start_pxe.d.ts +0 -16
- package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
- package/dest/cli/cmds/start_pxe.js +0 -95
- package/dest/cli/get_l1_config.d.ts +0 -7
- package/dest/cli/get_l1_config.d.ts.map +0 -1
- package/dest/cli/get_l1_config.js +0 -13
- package/dest/sandbox/banana_fpc.d.ts +0 -11
- package/dest/sandbox/banana_fpc.d.ts.map +0 -1
- package/dest/sandbox/index.d.ts +0 -5
- package/dest/sandbox/index.d.ts.map +0 -1
- package/dest/sandbox/index.js +0 -4
- package/dest/sandbox/sandbox.d.ts +0 -76
- package/dest/sandbox/sandbox.d.ts.map +0 -1
- package/dest/sandbox/sponsored_fee_payment_method.d.ts +0 -23
- package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +0 -1
- package/dest/sandbox/sponsored_fee_payment_method.js +0 -36
- package/dest/sandbox/sponsored_fpc.d.ts +0 -6
- package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
- package/dest/sandbox/sponsored_fpc.js +0 -26
- package/src/cli/chain_l2_config.ts +0 -74
- package/src/cli/cmds/start_faucet.ts +0 -34
- package/src/cli/cmds/start_pxe.ts +0 -129
- package/src/cli/get_l1_config.ts +0 -18
- package/src/sandbox/index.ts +0 -5
- package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
- package/src/sandbox/sponsored_fpc.ts +0 -38
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
-
import { faucetConfigMapping } from '@aztec/aztec-faucet/config';
|
|
3
2
|
import { sequencerClientConfigMappings } from '@aztec/aztec-node/config';
|
|
4
3
|
import { blobSinkConfigMappings } from '@aztec/blob-sink/server';
|
|
5
4
|
import { botConfigMappings } from '@aztec/bot/config';
|
|
5
|
+
import { l1ContractAddressesMapping, l1ContractsConfigMappings, l1ReaderConfigMappings } from '@aztec/ethereum';
|
|
6
|
+
import { getKeys } from '@aztec/foundation/collection';
|
|
6
7
|
import {
|
|
7
8
|
type ConfigMapping,
|
|
8
9
|
type EnvVar,
|
|
@@ -10,16 +11,15 @@ import {
|
|
|
10
11
|
isBooleanConfigValue,
|
|
11
12
|
omitConfigMappings,
|
|
12
13
|
} from '@aztec/foundation/config';
|
|
14
|
+
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
15
|
+
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
13
16
|
import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
|
|
14
|
-
import {
|
|
15
|
-
type ProverAgentConfig,
|
|
16
|
-
type ProverBrokerConfig,
|
|
17
|
-
proverAgentConfigMappings,
|
|
18
|
-
proverBrokerConfigMappings,
|
|
19
|
-
} from '@aztec/prover-client/broker';
|
|
17
|
+
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
|
|
20
18
|
import { proverNodeConfigMappings } from '@aztec/prover-node/config';
|
|
21
19
|
import { allPxeConfigMappings } from '@aztec/pxe/config';
|
|
20
|
+
import { chainConfigMappings } from '@aztec/stdlib/config';
|
|
22
21
|
import { telemetryClientConfigMappings } from '@aztec/telemetry-client';
|
|
22
|
+
import { worldStateConfigMappings } from '@aztec/world-state';
|
|
23
23
|
|
|
24
24
|
import { DefaultMnemonic } from '../mnemonic.js';
|
|
25
25
|
|
|
@@ -27,15 +27,18 @@ import { DefaultMnemonic } from '../mnemonic.js';
|
|
|
27
27
|
export interface AztecStartOption {
|
|
28
28
|
flag: string;
|
|
29
29
|
description: string;
|
|
30
|
-
defaultValue: any
|
|
30
|
+
defaultValue: any;
|
|
31
31
|
printDefault?: (val: any) => string;
|
|
32
|
-
|
|
32
|
+
env: EnvVar | undefined;
|
|
33
|
+
fallback?: EnvVar[];
|
|
33
34
|
parseVal?: (val: string) => any;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
export const getOptions = (namespace: string, configMappings: Record<string, ConfigMapping>) => {
|
|
37
38
|
const options: AztecStartOption[] = [];
|
|
38
|
-
for (const [key, { env, defaultValue: def, parseEnv, description, printDefault }] of Object.entries(
|
|
39
|
+
for (const [key, { env, defaultValue: def, parseEnv, description, printDefault, fallback }] of Object.entries(
|
|
40
|
+
configMappings,
|
|
41
|
+
)) {
|
|
39
42
|
if (universalOptions.includes(key)) {
|
|
40
43
|
continue;
|
|
41
44
|
}
|
|
@@ -45,126 +48,133 @@ export const getOptions = (namespace: string, configMappings: Record<string, Con
|
|
|
45
48
|
description,
|
|
46
49
|
defaultValue: def,
|
|
47
50
|
printDefault,
|
|
48
|
-
|
|
51
|
+
env: env,
|
|
52
|
+
fallback,
|
|
49
53
|
parseVal: parseEnv,
|
|
50
54
|
});
|
|
51
55
|
}
|
|
52
56
|
return options;
|
|
53
57
|
};
|
|
54
58
|
|
|
59
|
+
const configToFlag = (flag: string, configMapping: ConfigMapping, overrideDefaultValue?: any): AztecStartOption => {
|
|
60
|
+
if (!configMapping.isBoolean) {
|
|
61
|
+
flag += ' <value>';
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const flagConfig: AztecStartOption = {
|
|
65
|
+
flag,
|
|
66
|
+
env: undefined,
|
|
67
|
+
defaultValue: undefined,
|
|
68
|
+
parseVal: configMapping.parseEnv,
|
|
69
|
+
...configMapping,
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
if (overrideDefaultValue !== undefined) {
|
|
73
|
+
flagConfig.defaultValue = overrideDefaultValue;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return flagConfig;
|
|
77
|
+
};
|
|
78
|
+
|
|
55
79
|
// These are options used by multiple modules so should be inputted once
|
|
56
|
-
export const universalOptions = [
|
|
80
|
+
export const universalOptions = [
|
|
81
|
+
'l1ConsensusHostUrls',
|
|
82
|
+
'l1ConsensusHostApiKeys',
|
|
83
|
+
'l1ConsensusHostApiKeyHeaders',
|
|
84
|
+
'p2pEnabled',
|
|
85
|
+
'fishermanMode',
|
|
86
|
+
...getKeys(chainConfigMappings),
|
|
87
|
+
...getKeys(l1ContractsConfigMappings),
|
|
88
|
+
...getKeys(l1ContractAddressesMapping),
|
|
89
|
+
...getKeys(l1ReaderConfigMappings),
|
|
90
|
+
...getKeys(dataConfigMappings),
|
|
91
|
+
...getKeys(worldStateConfigMappings),
|
|
92
|
+
];
|
|
93
|
+
|
|
94
|
+
export const NETWORK_FLAG = 'network';
|
|
57
95
|
|
|
58
96
|
// Define categories and options
|
|
59
97
|
export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
60
|
-
|
|
98
|
+
MISC: [
|
|
61
99
|
{
|
|
62
|
-
flag:
|
|
100
|
+
flag: `--${NETWORK_FLAG} <value>`,
|
|
63
101
|
description: 'Network to run Aztec on',
|
|
64
102
|
defaultValue: undefined,
|
|
65
|
-
|
|
103
|
+
env: 'NETWORK',
|
|
66
104
|
},
|
|
105
|
+
|
|
106
|
+
configToFlag('--auto-update', sharedNodeConfigMappings.autoUpdate),
|
|
107
|
+
configToFlag('--auto-update-url', sharedNodeConfigMappings.autoUpdateUrl),
|
|
108
|
+
|
|
109
|
+
configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
|
|
110
|
+
configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls),
|
|
111
|
+
|
|
112
|
+
configToFlag('--fisherman-mode', sharedNodeConfigMappings.fishermanMode),
|
|
67
113
|
],
|
|
68
|
-
|
|
114
|
+
LOCAL_NETWORK: [
|
|
69
115
|
{
|
|
70
|
-
flag: '--
|
|
71
|
-
description: 'Starts Aztec
|
|
116
|
+
flag: '--local-network',
|
|
117
|
+
description: 'Starts Aztec Local Network',
|
|
72
118
|
defaultValue: undefined,
|
|
73
|
-
|
|
119
|
+
env: undefined,
|
|
74
120
|
},
|
|
75
121
|
{
|
|
76
|
-
flag: '--
|
|
77
|
-
description: '
|
|
78
|
-
|
|
79
|
-
|
|
122
|
+
flag: '--local-network.l1Mnemonic <value>',
|
|
123
|
+
description: 'Mnemonic for L1 accounts. Will be used ',
|
|
124
|
+
defaultValue: DefaultMnemonic,
|
|
125
|
+
env: 'MNEMONIC',
|
|
80
126
|
},
|
|
81
127
|
{
|
|
82
|
-
flag: '--
|
|
83
|
-
description:
|
|
84
|
-
|
|
85
|
-
|
|
128
|
+
flag: '--local-network.deployAztecContractsSalt <value>',
|
|
129
|
+
description:
|
|
130
|
+
'Numeric salt for deploying L1 Aztec contracts before starting the local network. Needs mnemonic or private key to be set.',
|
|
131
|
+
env: 'DEPLOY_AZTEC_CONTRACTS_SALT',
|
|
132
|
+
defaultValue: undefined,
|
|
133
|
+
parseVal: (val: string) => (val ? parseInt(val) : undefined),
|
|
86
134
|
},
|
|
87
135
|
],
|
|
88
136
|
API: [
|
|
89
137
|
{
|
|
90
138
|
flag: '--port <value>',
|
|
91
|
-
description: 'Port to run the Aztec Services on
|
|
139
|
+
description: 'Port to run the Aztec Services on',
|
|
92
140
|
defaultValue: 8080,
|
|
93
|
-
|
|
141
|
+
env: 'AZTEC_PORT',
|
|
142
|
+
parseVal: val => parseInt(val, 10),
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
flag: '--admin-port <value>',
|
|
146
|
+
description: 'Port to run admin APIs of Aztec Services on',
|
|
147
|
+
defaultValue: 8880,
|
|
148
|
+
env: 'AZTEC_ADMIN_PORT',
|
|
94
149
|
parseVal: val => parseInt(val, 10),
|
|
95
150
|
},
|
|
96
151
|
{
|
|
97
152
|
flag: '--api-prefix <value>',
|
|
98
153
|
description: 'Prefix for API routes on any service that is started',
|
|
99
154
|
defaultValue: '',
|
|
100
|
-
|
|
155
|
+
env: 'API_PREFIX',
|
|
101
156
|
},
|
|
102
157
|
],
|
|
103
158
|
ETHEREUM: [
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
flag: '--l1-chain-id <value>',
|
|
113
|
-
description: 'The L1 chain ID',
|
|
114
|
-
defaultValue: 31337,
|
|
115
|
-
envVar: 'L1_CHAIN_ID',
|
|
116
|
-
parseVal: val => parseInt(val, 10),
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
flag: '--l1-mnemonic <value>',
|
|
120
|
-
description: 'Mnemonic for L1 accounts. Will be used if no publisher private keys are provided',
|
|
121
|
-
defaultValue: DefaultMnemonic,
|
|
122
|
-
envVar: 'MNEMONIC',
|
|
123
|
-
},
|
|
159
|
+
configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
|
|
160
|
+
// Do not set default for CLI: keep undefined unless provided via flag or env
|
|
161
|
+
configToFlag('--l1-rpc-urls', { ...l1ReaderConfigMappings.l1RpcUrls, defaultValue: undefined }),
|
|
162
|
+
configToFlag('--l1-consensus-host-urls', blobSinkConfigMappings.l1ConsensusHostUrls),
|
|
163
|
+
configToFlag('--l1-consensus-host-api-keys', blobSinkConfigMappings.l1ConsensusHostApiKeys),
|
|
164
|
+
configToFlag('--l1-consensus-host-api-key-headers', blobSinkConfigMappings.l1ConsensusHostApiKeyHeaders),
|
|
124
165
|
],
|
|
125
|
-
'L1
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
flag: '--inbox-address <value>',
|
|
140
|
-
description: 'The deployed L1 -> L2 inbox contract address',
|
|
141
|
-
defaultValue: undefined,
|
|
142
|
-
envVar: 'INBOX_CONTRACT_ADDRESS',
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
flag: '--outbox-address <value>',
|
|
146
|
-
description: 'The deployed L2 -> L1 outbox contract address',
|
|
147
|
-
defaultValue: undefined,
|
|
148
|
-
envVar: 'OUTBOX_CONTRACT_ADDRESS',
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
flag: '--fee-juice-address <value>',
|
|
152
|
-
description: 'The deployed L1 Fee Juice contract address',
|
|
153
|
-
defaultValue: undefined,
|
|
154
|
-
envVar: 'FEE_JUICE_CONTRACT_ADDRESS',
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
flag: '--staking-asset-address <value>',
|
|
158
|
-
description: 'The deployed L1 Staking Asset contract address',
|
|
159
|
-
defaultValue: undefined,
|
|
160
|
-
envVar: 'STAKING_ASSET_CONTRACT_ADDRESS',
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
flag: '--fee-juice-portal-address <value>',
|
|
164
|
-
description: 'The deployed L1 Fee Juice portal contract address',
|
|
165
|
-
defaultValue: undefined,
|
|
166
|
-
envVar: 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS',
|
|
167
|
-
},
|
|
166
|
+
'L1 CONTRACTS': [
|
|
167
|
+
configToFlag('--registry-address', l1ContractAddressesMapping.registryAddress),
|
|
168
|
+
configToFlag('--rollup-version', chainConfigMappings.rollupVersion),
|
|
169
|
+
],
|
|
170
|
+
STORAGE: [
|
|
171
|
+
configToFlag('--data-directory', dataConfigMappings.dataDirectory),
|
|
172
|
+
configToFlag('--data-store-map-size-kb', dataConfigMappings.dataStoreMapSizeKb),
|
|
173
|
+
],
|
|
174
|
+
'WORLD STATE': [
|
|
175
|
+
configToFlag('--world-state-data-directory', worldStateConfigMappings.worldStateDataDirectory),
|
|
176
|
+
configToFlag('--world-state-db-map-size-kb', worldStateConfigMappings.worldStateDbMapSizeKb),
|
|
177
|
+
configToFlag('--world-state-block-history', worldStateConfigMappings.worldStateBlockHistory),
|
|
168
178
|
],
|
|
169
179
|
// We can't easily auto-generate node options as they're parts of modules defined below
|
|
170
180
|
'AZTEC NODE': [
|
|
@@ -172,106 +182,44 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
172
182
|
flag: '--node',
|
|
173
183
|
description: 'Starts Aztec Node with options',
|
|
174
184
|
defaultValue: undefined,
|
|
175
|
-
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
flag: '--data-directory <value>',
|
|
179
|
-
description: 'Where to store data. If not set, will store temporarily',
|
|
180
|
-
defaultValue: undefined,
|
|
181
|
-
envVar: 'DATA_DIRECTORY',
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
flag: '--node.archiverUrl <value>',
|
|
185
|
-
description: 'URL for an archiver service',
|
|
186
|
-
defaultValue: undefined,
|
|
187
|
-
envVar: 'ARCHIVER_URL',
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
flag: '--node.deployAztecContracts',
|
|
191
|
-
description: 'Deploys L1 Aztec contracts before starting the node. Needs mnemonic or private key to be set.',
|
|
192
|
-
envVar: 'DEPLOY_AZTEC_CONTRACTS',
|
|
193
|
-
defaultValue: undefined,
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
flag: '--node.deployAztecContractsSalt <value>',
|
|
197
|
-
description:
|
|
198
|
-
'Numeric salt for deploying L1 Aztec contracts before starting the node. Needs mnemonic or private key to be set. Implies --node.deployAztecContracts.',
|
|
199
|
-
envVar: 'DEPLOY_AZTEC_CONTRACTS_SALT',
|
|
200
|
-
defaultValue: undefined,
|
|
201
|
-
parseVal: (val: string) => (val ? parseInt(val) : undefined),
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
flag: '--node.assumeProvenThroughBlockNumber <value>',
|
|
205
|
-
description:
|
|
206
|
-
'Cheats the rollup contract into assuming every block until this one is proven. Useful for speeding up bootstraps.',
|
|
207
|
-
envVar: 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER',
|
|
208
|
-
parseVal: (val: string) => parseInt(val, 10),
|
|
209
|
-
defaultValue: 0,
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
flag: '--node.publisherPrivateKey <value>',
|
|
213
|
-
description: 'Private key of account for publishing L1 contracts',
|
|
214
|
-
defaultValue: undefined,
|
|
215
|
-
envVar: 'L1_PRIVATE_KEY',
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
flag: '--node.worldStateBlockCheckIntervalMS <value>',
|
|
219
|
-
description: 'Frequency in which to check for blocks in ms',
|
|
220
|
-
defaultValue: 100,
|
|
221
|
-
envVar: 'WS_BLOCK_CHECK_INTERVAL_MS',
|
|
222
|
-
parseVal: val => parseInt(val, 10),
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
flag: '--node.testAccounts',
|
|
226
|
-
description: 'Populate genesis state with initial fee juice for test accounts',
|
|
227
|
-
envVar: 'TEST_ACCOUNTS',
|
|
228
|
-
...booleanConfigHelper(),
|
|
229
|
-
},
|
|
230
|
-
],
|
|
231
|
-
'P2P SUBSYSTEM': [
|
|
232
|
-
{
|
|
233
|
-
flag: '--p2p-enabled',
|
|
234
|
-
description: 'Enable P2P subsystem',
|
|
235
|
-
envVar: 'P2P_ENABLED',
|
|
236
|
-
...booleanConfigHelper(),
|
|
237
|
-
},
|
|
238
|
-
...getOptions('p2p', p2pConfigMappings),
|
|
239
|
-
],
|
|
240
|
-
TELEMETRY: [...getOptions('tel', telemetryClientConfigMappings)],
|
|
241
|
-
PXE: [
|
|
242
|
-
{
|
|
243
|
-
flag: '--pxe',
|
|
244
|
-
description: 'Starts Aztec PXE with options',
|
|
245
|
-
defaultValue: undefined,
|
|
246
|
-
envVar: undefined,
|
|
185
|
+
env: undefined,
|
|
247
186
|
},
|
|
248
|
-
...getOptions('pxe', allPxeConfigMappings),
|
|
249
187
|
],
|
|
250
188
|
ARCHIVER: [
|
|
251
189
|
{
|
|
252
190
|
flag: '--archiver',
|
|
253
191
|
description: 'Starts Aztec Archiver with options',
|
|
254
192
|
defaultValue: undefined,
|
|
255
|
-
|
|
193
|
+
env: undefined,
|
|
256
194
|
},
|
|
257
|
-
|
|
258
|
-
|
|
195
|
+
...getOptions(
|
|
196
|
+
'archiver',
|
|
197
|
+
omitConfigMappings(archiverConfigMappings, Object.keys(l1ContractsConfigMappings) as (keyof ArchiverConfig)[]),
|
|
198
|
+
),
|
|
259
199
|
],
|
|
260
200
|
SEQUENCER: [
|
|
261
201
|
{
|
|
262
202
|
flag: '--sequencer',
|
|
263
203
|
description: 'Starts Aztec Sequencer with options',
|
|
264
204
|
defaultValue: undefined,
|
|
265
|
-
|
|
205
|
+
env: undefined,
|
|
266
206
|
},
|
|
267
|
-
...getOptions(
|
|
207
|
+
...getOptions(
|
|
208
|
+
'sequencer',
|
|
209
|
+
omitConfigMappings(sequencerClientConfigMappings, [
|
|
210
|
+
'fakeProcessingDelayPerTxMs',
|
|
211
|
+
'skipCollectingAttestations',
|
|
212
|
+
'skipInvalidateBlockAsProposer',
|
|
213
|
+
'blobSinkMapSizeKb',
|
|
214
|
+
]),
|
|
215
|
+
),
|
|
268
216
|
],
|
|
269
|
-
|
|
217
|
+
'BLOB SINK': [
|
|
270
218
|
{
|
|
271
219
|
flag: '--blob-sink',
|
|
272
220
|
description: 'Starts Aztec Blob Sink with options',
|
|
273
221
|
defaultValue: undefined,
|
|
274
|
-
|
|
222
|
+
env: undefined,
|
|
275
223
|
},
|
|
276
224
|
...getOptions('blobSink', blobSinkConfigMappings),
|
|
277
225
|
],
|
|
@@ -280,21 +228,18 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
280
228
|
flag: '--prover-node',
|
|
281
229
|
description: 'Starts Aztec Prover Node with options',
|
|
282
230
|
defaultValue: undefined,
|
|
283
|
-
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
flag: '--proverNode.archiverUrl <value>',
|
|
287
|
-
description: 'URL for an archiver service',
|
|
288
|
-
defaultValue: undefined,
|
|
289
|
-
envVar: 'ARCHIVER_URL',
|
|
231
|
+
env: undefined,
|
|
290
232
|
},
|
|
291
233
|
...getOptions(
|
|
292
234
|
'proverNode',
|
|
293
235
|
omitConfigMappings(proverNodeConfigMappings, [
|
|
294
236
|
// filter out options passed separately
|
|
295
|
-
...(
|
|
296
|
-
...(
|
|
297
|
-
...(
|
|
237
|
+
...getKeys(archiverConfigMappings),
|
|
238
|
+
...getKeys(proverBrokerConfigMappings),
|
|
239
|
+
...getKeys(proverAgentConfigMappings),
|
|
240
|
+
...getKeys(p2pConfigMappings),
|
|
241
|
+
...getKeys(worldStateConfigMappings),
|
|
242
|
+
...getKeys(sharedNodeConfigMappings),
|
|
298
243
|
]),
|
|
299
244
|
),
|
|
300
245
|
],
|
|
@@ -303,7 +248,7 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
303
248
|
flag: '--prover-broker',
|
|
304
249
|
description: 'Starts Aztec proving job broker',
|
|
305
250
|
defaultValue: undefined,
|
|
306
|
-
|
|
251
|
+
env: undefined,
|
|
307
252
|
},
|
|
308
253
|
...getOptions(
|
|
309
254
|
'proverBroker',
|
|
@@ -316,56 +261,62 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
316
261
|
flag: '--prover-agent',
|
|
317
262
|
description: 'Starts Aztec Prover Agent with options',
|
|
318
263
|
defaultValue: undefined,
|
|
319
|
-
|
|
264
|
+
env: undefined,
|
|
320
265
|
},
|
|
321
266
|
...getOptions('proverAgent', proverAgentConfigMappings),
|
|
322
267
|
],
|
|
268
|
+
'P2P SUBSYSTEM': [
|
|
269
|
+
{
|
|
270
|
+
flag: '--p2p-enabled [value]',
|
|
271
|
+
description: 'Enable P2P subsystem',
|
|
272
|
+
env: 'P2P_ENABLED',
|
|
273
|
+
...booleanConfigHelper(),
|
|
274
|
+
},
|
|
275
|
+
...getOptions('p2p', p2pConfigMappings),
|
|
276
|
+
],
|
|
323
277
|
'P2P BOOTSTRAP': [
|
|
324
278
|
{
|
|
325
279
|
flag: '--p2p-bootstrap',
|
|
326
280
|
description: 'Starts Aztec P2P Bootstrap with options',
|
|
327
281
|
defaultValue: undefined,
|
|
328
|
-
|
|
282
|
+
env: undefined,
|
|
329
283
|
},
|
|
330
|
-
...getOptions(
|
|
284
|
+
...getOptions(
|
|
285
|
+
'p2pBootstrap',
|
|
286
|
+
omitConfigMappings(bootnodeConfigMappings, [
|
|
287
|
+
'p2pIp',
|
|
288
|
+
'p2pPort',
|
|
289
|
+
'peerIdPrivateKey',
|
|
290
|
+
'bootstrapNodes',
|
|
291
|
+
'listenAddress',
|
|
292
|
+
]),
|
|
293
|
+
),
|
|
331
294
|
],
|
|
295
|
+
TELEMETRY: [...getOptions('tel', telemetryClientConfigMappings)],
|
|
332
296
|
BOT: [
|
|
333
297
|
{
|
|
334
298
|
flag: '--bot',
|
|
335
299
|
description: 'Starts Aztec Bot with options',
|
|
336
300
|
defaultValue: undefined,
|
|
337
|
-
|
|
301
|
+
env: undefined,
|
|
338
302
|
},
|
|
339
303
|
...getOptions('bot', botConfigMappings),
|
|
340
304
|
],
|
|
341
|
-
|
|
305
|
+
PXE: [
|
|
342
306
|
{
|
|
343
|
-
flag: '--
|
|
344
|
-
description: 'Starts Aztec
|
|
307
|
+
flag: '--pxe',
|
|
308
|
+
description: 'Starts Aztec PXE with options',
|
|
345
309
|
defaultValue: undefined,
|
|
346
|
-
|
|
310
|
+
env: undefined,
|
|
347
311
|
},
|
|
312
|
+
...getOptions('pxe', allPxeConfigMappings),
|
|
348
313
|
],
|
|
349
|
-
|
|
314
|
+
TXE: [
|
|
350
315
|
{
|
|
351
|
-
flag: '--
|
|
352
|
-
description: 'Starts
|
|
316
|
+
flag: '--txe',
|
|
317
|
+
description: 'Starts Aztec TXE with options',
|
|
353
318
|
defaultValue: undefined,
|
|
354
|
-
|
|
355
|
-
},
|
|
356
|
-
{
|
|
357
|
-
flag: '--faucet.apiServer',
|
|
358
|
-
description: 'Starts a simple HTTP server to access the faucet',
|
|
359
|
-
defaultValue: true,
|
|
360
|
-
envVar: undefined,
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
flag: '--faucet.apiServerPort <value>',
|
|
364
|
-
description: 'The port on which to start the api server on',
|
|
365
|
-
defaultValue: 8080,
|
|
366
|
-
envVar: undefined,
|
|
367
|
-
parseVal: val => parseInt(val, 10),
|
|
319
|
+
env: undefined,
|
|
368
320
|
},
|
|
369
|
-
...getOptions('faucet', faucetConfigMapping),
|
|
370
321
|
],
|
|
371
322
|
};
|
package/src/cli/cli.ts
CHANGED
|
@@ -37,12 +37,65 @@ export function injectAztecCommands(program: Command, userLog: LogFn, debugLogge
|
|
|
37
37
|
|
|
38
38
|
Additional commands:
|
|
39
39
|
|
|
40
|
+
init [folder] [options]: creates a new Noir project
|
|
41
|
+
Options:
|
|
42
|
+
--name <name> Name of the package
|
|
43
|
+
--contract Use a contract template (default)
|
|
44
|
+
--lib Use a library template
|
|
45
|
+
--bin Use a binary template
|
|
46
|
+
Examples:
|
|
47
|
+
$ aztec init # creates a contract project in current directory
|
|
48
|
+
$ aztec init --lib # creates a library project
|
|
49
|
+
|
|
50
|
+
new <path> [options]: creates a new Noir project in a new directory
|
|
51
|
+
Options:
|
|
52
|
+
--name <name> Name of the package
|
|
53
|
+
--contract Use a contract template (default)
|
|
54
|
+
--lib Use a library template
|
|
55
|
+
--bin Use a binary template
|
|
56
|
+
Examples:
|
|
57
|
+
$ aztec new my-project # creates a contract project in ./my-project
|
|
58
|
+
$ aztec new my-lib --lib # creates a library project in ./my-lib
|
|
59
|
+
|
|
60
|
+
compile [options]: compiles Aztec Noir contracts
|
|
61
|
+
Compiles contracts with nargo compile and then postprocesses them to generate Aztec-specific artifacts including:
|
|
62
|
+
- Transpiled contract artifacts
|
|
63
|
+
- Verification keys
|
|
64
|
+
The compiled contracts will be placed in the target/ directory by default.
|
|
65
|
+
Supports standard nargo compile options.
|
|
66
|
+
|
|
67
|
+
fmt [options]: formats Noir code using nargo fmt
|
|
68
|
+
Example:
|
|
69
|
+
$ aztec fmt # formats all Noir files in the project
|
|
70
|
+
|
|
71
|
+
check [options]: type-checks Noir code without compiling using nargo check
|
|
72
|
+
Example:
|
|
73
|
+
$ aztec check # checks all Noir files in the project
|
|
74
|
+
|
|
40
75
|
test [options]: starts a dockerized TXE node via
|
|
41
76
|
$ aztec start --txe
|
|
42
77
|
then runs
|
|
43
|
-
$ aztec
|
|
78
|
+
$ aztec test --silence-warnings --oracle-resolver=<TXE_ADDRESS> [options]
|
|
79
|
+
|
|
80
|
+
lsp: starts the Nargo Language Server Protocol server
|
|
81
|
+
Runs nargo lsp in a Docker container for IDE integration with Noir.
|
|
82
|
+
This command is typically used by IDE extensions and not called directly by users.
|
|
83
|
+
Example:
|
|
84
|
+
$ aztec lsp # starts the LSP server
|
|
85
|
+
|
|
86
|
+
preload-crs: Downloads and caches the Common Reference String (CRS) data required for zero-knowledge proofs.
|
|
87
|
+
Example:
|
|
88
|
+
$ aztec preload-crs # preloads CRS data
|
|
44
89
|
`,
|
|
45
90
|
);
|
|
46
91
|
|
|
92
|
+
program
|
|
93
|
+
.command('preload-crs')
|
|
94
|
+
.description('Preload the points data needed for proving and verifying')
|
|
95
|
+
.action(async options => {
|
|
96
|
+
const { preloadCrs } = await import('./preload_crs.js');
|
|
97
|
+
return await preloadCrs(options, userLog, debugLogger);
|
|
98
|
+
});
|
|
99
|
+
|
|
47
100
|
return program;
|
|
48
101
|
}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import {
|
|
2
|
+
Archiver,
|
|
3
|
+
type ArchiverConfig,
|
|
4
|
+
KVArchiverDataStore,
|
|
5
|
+
archiverConfigMappings,
|
|
6
|
+
getArchiverConfigFromEnv,
|
|
7
|
+
} from '@aztec/archiver';
|
|
8
|
+
import { createLogger } from '@aztec/aztec.js/log';
|
|
9
|
+
import { type BlobSinkConfig, blobSinkConfigMapping, createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
10
|
+
import { getL1Config } from '@aztec/cli/config';
|
|
4
11
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
5
12
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
6
13
|
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
7
14
|
import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
8
15
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
9
16
|
|
|
10
|
-
import { getL1Config } from '../get_l1_config.js';
|
|
11
17
|
import { extractRelevantOptions } from '../util.js';
|
|
12
18
|
|
|
13
19
|
export type { ArchiverConfig, DataStoreConfig };
|
|
@@ -18,35 +24,35 @@ export async function startArchiver(
|
|
|
18
24
|
signalHandlers: (() => Promise<void>)[],
|
|
19
25
|
services: NamespacedApiHandlers,
|
|
20
26
|
): Promise<{ config: ArchiverConfig & DataStoreConfig }> {
|
|
21
|
-
|
|
27
|
+
const envConfig = getArchiverConfigFromEnv();
|
|
28
|
+
const cliOptions = extractRelevantOptions<ArchiverConfig & DataStoreConfig & BlobSinkConfig>(
|
|
22
29
|
options,
|
|
23
|
-
{
|
|
24
|
-
...archiverConfigMappings,
|
|
25
|
-
...dataConfigMappings,
|
|
26
|
-
},
|
|
30
|
+
{ ...archiverConfigMappings, ...dataConfigMappings, ...blobSinkConfigMapping },
|
|
27
31
|
'archiver',
|
|
28
32
|
);
|
|
29
33
|
|
|
34
|
+
let archiverConfig = { ...envConfig, ...cliOptions };
|
|
35
|
+
archiverConfig.dataStoreMapSizeKb = archiverConfig.archiverStoreMapSizeKb ?? archiverConfig.dataStoreMapSizeKb;
|
|
36
|
+
|
|
30
37
|
if (!archiverConfig.l1Contracts.registryAddress || archiverConfig.l1Contracts.registryAddress.isZero()) {
|
|
31
38
|
throw new Error('L1 registry address is required to start an Archiver');
|
|
32
39
|
}
|
|
33
40
|
|
|
34
|
-
const { addresses, config } = await getL1Config(
|
|
41
|
+
const { addresses, config: l1Config } = await getL1Config(
|
|
35
42
|
archiverConfig.l1Contracts.registryAddress,
|
|
36
43
|
archiverConfig.l1RpcUrls,
|
|
37
44
|
archiverConfig.l1ChainId,
|
|
38
45
|
);
|
|
39
46
|
|
|
40
47
|
archiverConfig.l1Contracts = addresses;
|
|
41
|
-
archiverConfig = { ...archiverConfig, ...
|
|
48
|
+
archiverConfig = { ...archiverConfig, ...l1Config };
|
|
42
49
|
|
|
43
50
|
const storeLog = createLogger('archiver:lmdb');
|
|
44
51
|
const store = await createStore('archiver', KVArchiverDataStore.SCHEMA_VERSION, archiverConfig, storeLog);
|
|
45
52
|
const archiverStore = new KVArchiverDataStore(store, archiverConfig.maxLogs);
|
|
46
53
|
|
|
47
54
|
const telemetry = initTelemetryClient(getTelemetryClientConfig());
|
|
48
|
-
|
|
49
|
-
const blobSinkClient = createBlobSinkClient();
|
|
55
|
+
const blobSinkClient = createBlobSinkClient(archiverConfig, { logger: createLogger('archiver:blob-sink:client') });
|
|
50
56
|
const archiver = await Archiver.createAndSync(archiverConfig, archiverStore, { telemetry, blobSinkClient }, true);
|
|
51
57
|
services.archiver = [archiver, ArchiverApiSchema];
|
|
52
58
|
signalHandlers.push(archiver.stop);
|