@aztec/aztec 0.0.0-test.0 → 0.0.1-commit.023c3e5
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 +23 -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 +40 -40
- 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 +146 -225
- package/dest/cli/cli.d.ts +1 -1
- package/dest/cli/cli.d.ts.map +1 -1
- package/dest/cli/cli.js +12 -7
- package/dest/cli/cmds/migrate_ha_db.d.ts +3 -0
- package/dest/cli/cmds/migrate_ha_db.d.ts.map +1 -0
- package/dest/cli/cmds/migrate_ha_db.js +27 -0
- 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 +24 -18
- 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 +25 -14
- 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 +68 -81
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts +2 -2
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
- package/dest/cli/cmds/start_p2p_bootstrap.js +10 -6
- 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 +33 -4
- 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 +10 -4
- 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 +44 -46
- 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 +22 -24
- 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 +71 -0
- package/dest/local-network/local-network.d.ts.map +1 -0
- package/dest/local-network/local-network.js +194 -0
- 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 +43 -0
- package/dest/testing/cheat_codes.d.ts.map +1 -0
- package/dest/testing/cheat_codes.js +62 -0
- package/dest/testing/epoch_test_settler.d.ts +19 -0
- package/dest/testing/epoch_test_settler.d.ts.map +1 -0
- package/dest/testing/epoch_test_settler.js +62 -0
- package/dest/testing/index.d.ts +5 -0
- package/dest/testing/index.d.ts.map +1 -0
- package/dest/testing/index.js +4 -0
- package/package.json +55 -45
- package/scripts/aztec.sh +63 -0
- package/scripts/compile.sh +44 -0
- package/scripts/extract_function.js +47 -0
- package/scripts/flamegraph.sh +59 -0
- package/scripts/init.sh +35 -0
- package/scripts/new.sh +59 -0
- package/scripts/setup_project.sh +31 -0
- package/src/bin/index.ts +28 -12
- package/src/cli/aztec_start_action.ts +36 -38
- package/src/cli/aztec_start_options.ts +161 -222
- package/src/cli/cli.ts +20 -11
- package/src/cli/cmds/migrate_ha_db.ts +43 -0
- package/src/cli/cmds/start_archiver.ts +15 -20
- package/src/cli/cmds/start_bot.ts +36 -13
- package/src/cli/cmds/start_node.ts +91 -86
- package/src/cli/cmds/start_p2p_bootstrap.ts +14 -6
- package/src/cli/cmds/start_prover_agent.ts +24 -12
- package/src/cli/cmds/start_prover_broker.ts +24 -4
- package/src/cli/cmds/start_prover_node.ts +54 -51
- 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 +21 -19
- package/src/examples/util.ts +6 -8
- package/src/index.ts +5 -6
- package/src/{sandbox → local-network}/banana_fpc.ts +27 -28
- package/src/local-network/index.ts +7 -0
- package/src/local-network/local-network.ts +240 -0
- package/src/local-network/sponsored_fpc.ts +26 -0
- package/src/testing/anvil_test_watcher.ts +166 -0
- package/src/testing/cheat_codes.ts +79 -0
- package/src/testing/epoch_test_settler.ts +71 -0
- package/src/testing/index.ts +4 -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_blob_sink.d.ts +0 -3
- package/dest/cli/cmds/start_blob_sink.d.ts.map +0 -1
- package/dest/cli/cmds/start_blob_sink.js +0 -17
- 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/sandbox.js +0 -181
- 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_blob_sink.ts +0 -31
- 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/sandbox.ts +0 -229
- package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
- package/src/sandbox/sponsored_fpc.ts +0 -38
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
|
|
2
|
-
import {
|
|
3
|
-
import { sequencerClientConfigMappings } from '@aztec/aztec-node/config';
|
|
4
|
-
import { blobSinkConfigMappings } from '@aztec/blob-sink/server';
|
|
2
|
+
import { blobClientConfigMapping } from '@aztec/blob-client/client/config';
|
|
5
3
|
import { botConfigMappings } from '@aztec/bot/config';
|
|
4
|
+
import { l1ContractsConfigMappings } from '@aztec/ethereum/config';
|
|
5
|
+
import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
|
|
6
|
+
import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
|
|
7
|
+
import { getKeys } from '@aztec/foundation/collection';
|
|
6
8
|
import {
|
|
7
9
|
type ConfigMapping,
|
|
8
10
|
type EnvVar,
|
|
@@ -10,16 +12,16 @@ import {
|
|
|
10
12
|
isBooleanConfigValue,
|
|
11
13
|
omitConfigMappings,
|
|
12
14
|
} from '@aztec/foundation/config';
|
|
15
|
+
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
16
|
+
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
13
17
|
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';
|
|
18
|
+
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker/config';
|
|
20
19
|
import { proverNodeConfigMappings } from '@aztec/prover-node/config';
|
|
21
20
|
import { allPxeConfigMappings } from '@aztec/pxe/config';
|
|
22
|
-
import {
|
|
21
|
+
import { sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
|
|
22
|
+
import { chainConfigMappings, nodeRpcConfigMappings } from '@aztec/stdlib/config';
|
|
23
|
+
import { telemetryClientConfigMappings } from '@aztec/telemetry-client/config';
|
|
24
|
+
import { worldStateConfigMappings } from '@aztec/world-state/config';
|
|
23
25
|
|
|
24
26
|
import { DefaultMnemonic } from '../mnemonic.js';
|
|
25
27
|
|
|
@@ -27,15 +29,18 @@ import { DefaultMnemonic } from '../mnemonic.js';
|
|
|
27
29
|
export interface AztecStartOption {
|
|
28
30
|
flag: string;
|
|
29
31
|
description: string;
|
|
30
|
-
defaultValue: any
|
|
32
|
+
defaultValue: any;
|
|
31
33
|
printDefault?: (val: any) => string;
|
|
32
|
-
|
|
34
|
+
env: EnvVar | undefined;
|
|
35
|
+
fallback?: EnvVar[];
|
|
33
36
|
parseVal?: (val: string) => any;
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
export const getOptions = (namespace: string, configMappings: Record<string, ConfigMapping>) => {
|
|
37
40
|
const options: AztecStartOption[] = [];
|
|
38
|
-
for (const [key, { env, defaultValue: def, parseEnv, description, printDefault }] of Object.entries(
|
|
41
|
+
for (const [key, { env, defaultValue: def, parseEnv, description, printDefault, fallback }] of Object.entries(
|
|
42
|
+
configMappings,
|
|
43
|
+
)) {
|
|
39
44
|
if (universalOptions.includes(key)) {
|
|
40
45
|
continue;
|
|
41
46
|
}
|
|
@@ -45,126 +50,127 @@ export const getOptions = (namespace: string, configMappings: Record<string, Con
|
|
|
45
50
|
description,
|
|
46
51
|
defaultValue: def,
|
|
47
52
|
printDefault,
|
|
48
|
-
|
|
53
|
+
env: env,
|
|
54
|
+
fallback,
|
|
49
55
|
parseVal: parseEnv,
|
|
50
56
|
});
|
|
51
57
|
}
|
|
52
58
|
return options;
|
|
53
59
|
};
|
|
54
60
|
|
|
61
|
+
const configToFlag = (flag: string, configMapping: ConfigMapping, overrideDefaultValue?: any): AztecStartOption => {
|
|
62
|
+
if (!configMapping.isBoolean) {
|
|
63
|
+
flag += ' <value>';
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const flagConfig: AztecStartOption = {
|
|
67
|
+
flag,
|
|
68
|
+
env: undefined,
|
|
69
|
+
defaultValue: undefined,
|
|
70
|
+
parseVal: configMapping.parseEnv,
|
|
71
|
+
...configMapping,
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
if (overrideDefaultValue !== undefined) {
|
|
75
|
+
flagConfig.defaultValue = overrideDefaultValue;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return flagConfig;
|
|
79
|
+
};
|
|
80
|
+
|
|
55
81
|
// These are options used by multiple modules so should be inputted once
|
|
56
|
-
export const universalOptions = [
|
|
82
|
+
export const universalOptions = [
|
|
83
|
+
'l1ConsensusHostUrls',
|
|
84
|
+
'l1ConsensusHostApiKeys',
|
|
85
|
+
'l1ConsensusHostApiKeyHeaders',
|
|
86
|
+
'p2pEnabled',
|
|
87
|
+
'fishermanMode',
|
|
88
|
+
...getKeys(chainConfigMappings),
|
|
89
|
+
...getKeys(l1ContractsConfigMappings),
|
|
90
|
+
...getKeys(l1ContractAddressesMapping),
|
|
91
|
+
...getKeys(l1ReaderConfigMappings),
|
|
92
|
+
...getKeys(dataConfigMappings),
|
|
93
|
+
...getKeys(worldStateConfigMappings),
|
|
94
|
+
];
|
|
95
|
+
|
|
96
|
+
export const NETWORK_FLAG = 'network';
|
|
57
97
|
|
|
58
98
|
// Define categories and options
|
|
59
99
|
export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
60
|
-
|
|
100
|
+
MISC: [
|
|
61
101
|
{
|
|
62
|
-
flag:
|
|
102
|
+
flag: `--${NETWORK_FLAG} <value>`,
|
|
63
103
|
description: 'Network to run Aztec on',
|
|
64
104
|
defaultValue: undefined,
|
|
65
|
-
|
|
105
|
+
env: 'NETWORK',
|
|
66
106
|
},
|
|
107
|
+
|
|
108
|
+
configToFlag('--auto-update', sharedNodeConfigMappings.autoUpdate),
|
|
109
|
+
configToFlag('--auto-update-url', sharedNodeConfigMappings.autoUpdateUrl),
|
|
110
|
+
|
|
111
|
+
configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
|
|
112
|
+
configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls),
|
|
113
|
+
|
|
114
|
+
configToFlag('--fisherman-mode', sharedNodeConfigMappings.fishermanMode),
|
|
67
115
|
],
|
|
68
|
-
|
|
116
|
+
LOCAL_NETWORK: [
|
|
69
117
|
{
|
|
70
|
-
flag: '--
|
|
71
|
-
description: 'Starts Aztec
|
|
118
|
+
flag: '--local-network',
|
|
119
|
+
description: 'Starts Aztec Local Network',
|
|
72
120
|
defaultValue: undefined,
|
|
73
|
-
|
|
121
|
+
env: undefined,
|
|
74
122
|
},
|
|
75
123
|
{
|
|
76
|
-
flag: '--
|
|
77
|
-
description: '
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
flag: '--sandbox.noPXE',
|
|
83
|
-
description: 'Do not expose PXE service on sandbox start',
|
|
84
|
-
envVar: 'NO_PXE',
|
|
85
|
-
...booleanConfigHelper(),
|
|
124
|
+
flag: '--local-network.l1Mnemonic <value>',
|
|
125
|
+
description: 'Mnemonic for L1 accounts. Will be used ',
|
|
126
|
+
defaultValue: DefaultMnemonic,
|
|
127
|
+
env: 'MNEMONIC',
|
|
86
128
|
},
|
|
87
129
|
],
|
|
88
130
|
API: [
|
|
89
131
|
{
|
|
90
132
|
flag: '--port <value>',
|
|
91
|
-
description: 'Port to run the Aztec Services on
|
|
133
|
+
description: 'Port to run the Aztec Services on',
|
|
92
134
|
defaultValue: 8080,
|
|
93
|
-
|
|
135
|
+
env: 'AZTEC_PORT',
|
|
136
|
+
parseVal: val => parseInt(val, 10),
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
flag: '--admin-port <value>',
|
|
140
|
+
description: 'Port to run admin APIs of Aztec Services on',
|
|
141
|
+
defaultValue: 8880,
|
|
142
|
+
env: 'AZTEC_ADMIN_PORT',
|
|
94
143
|
parseVal: val => parseInt(val, 10),
|
|
95
144
|
},
|
|
96
145
|
{
|
|
97
146
|
flag: '--api-prefix <value>',
|
|
98
147
|
description: 'Prefix for API routes on any service that is started',
|
|
99
148
|
defaultValue: '',
|
|
100
|
-
|
|
149
|
+
env: 'API_PREFIX',
|
|
101
150
|
},
|
|
151
|
+
configToFlag('--rpcMaxBatchSize', nodeRpcConfigMappings.rpcMaxBatchSize),
|
|
152
|
+
configToFlag('--rpcMaxBodySize', nodeRpcConfigMappings.rpcMaxBodySize),
|
|
102
153
|
],
|
|
103
154
|
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
|
-
},
|
|
155
|
+
configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
|
|
156
|
+
// Do not set default for CLI: keep undefined unless provided via flag or env
|
|
157
|
+
configToFlag('--l1-rpc-urls', { ...l1ReaderConfigMappings.l1RpcUrls, defaultValue: undefined }),
|
|
158
|
+
configToFlag('--l1-consensus-host-urls', blobClientConfigMapping.l1ConsensusHostUrls),
|
|
159
|
+
configToFlag('--l1-consensus-host-api-keys', blobClientConfigMapping.l1ConsensusHostApiKeys),
|
|
160
|
+
configToFlag('--l1-consensus-host-api-key-headers', blobClientConfigMapping.l1ConsensusHostApiKeyHeaders),
|
|
124
161
|
],
|
|
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
|
-
},
|
|
162
|
+
'L1 CONTRACTS': [
|
|
163
|
+
configToFlag('--registry-address', l1ContractAddressesMapping.registryAddress),
|
|
164
|
+
configToFlag('--rollup-version', chainConfigMappings.rollupVersion),
|
|
165
|
+
],
|
|
166
|
+
STORAGE: [
|
|
167
|
+
configToFlag('--data-directory', dataConfigMappings.dataDirectory),
|
|
168
|
+
configToFlag('--data-store-map-size-kb', dataConfigMappings.dataStoreMapSizeKb),
|
|
169
|
+
],
|
|
170
|
+
'WORLD STATE': [
|
|
171
|
+
configToFlag('--world-state-data-directory', worldStateConfigMappings.worldStateDataDirectory),
|
|
172
|
+
configToFlag('--world-state-db-map-size-kb', worldStateConfigMappings.worldStateDbMapSizeKb),
|
|
173
|
+
configToFlag('--world-state-block-history', worldStateConfigMappings.worldStateBlockHistory),
|
|
168
174
|
],
|
|
169
175
|
// We can't easily auto-generate node options as they're parts of modules defined below
|
|
170
176
|
'AZTEC NODE': [
|
|
@@ -172,129 +178,56 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
172
178
|
flag: '--node',
|
|
173
179
|
description: 'Starts Aztec Node with options',
|
|
174
180
|
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,
|
|
181
|
+
env: undefined,
|
|
247
182
|
},
|
|
248
|
-
...getOptions('pxe', allPxeConfigMappings),
|
|
249
183
|
],
|
|
250
184
|
ARCHIVER: [
|
|
251
185
|
{
|
|
252
186
|
flag: '--archiver',
|
|
253
187
|
description: 'Starts Aztec Archiver with options',
|
|
254
188
|
defaultValue: undefined,
|
|
255
|
-
|
|
189
|
+
env: undefined,
|
|
256
190
|
},
|
|
257
|
-
|
|
258
|
-
|
|
191
|
+
...getOptions(
|
|
192
|
+
'archiver',
|
|
193
|
+
omitConfigMappings(archiverConfigMappings, Object.keys(l1ContractsConfigMappings) as (keyof ArchiverConfig)[]),
|
|
194
|
+
),
|
|
259
195
|
],
|
|
260
196
|
SEQUENCER: [
|
|
261
197
|
{
|
|
262
198
|
flag: '--sequencer',
|
|
263
199
|
description: 'Starts Aztec Sequencer with options',
|
|
264
200
|
defaultValue: undefined,
|
|
265
|
-
|
|
266
|
-
},
|
|
267
|
-
...getOptions('sequencer', sequencerClientConfigMappings),
|
|
268
|
-
],
|
|
269
|
-
BLOB_SINK: [
|
|
270
|
-
{
|
|
271
|
-
flag: '--blob-sink',
|
|
272
|
-
description: 'Starts Aztec Blob Sink with options',
|
|
273
|
-
defaultValue: undefined,
|
|
274
|
-
envVar: undefined,
|
|
201
|
+
env: undefined,
|
|
275
202
|
},
|
|
276
|
-
...getOptions(
|
|
203
|
+
...getOptions(
|
|
204
|
+
'sequencer',
|
|
205
|
+
omitConfigMappings(sequencerClientConfigMappings, [
|
|
206
|
+
'fakeProcessingDelayPerTxMs',
|
|
207
|
+
'fakeThrowAfterProcessingTxCount',
|
|
208
|
+
'skipCollectingAttestations',
|
|
209
|
+
'skipInvalidateBlockAsProposer',
|
|
210
|
+
'blobSinkMapSizeKb',
|
|
211
|
+
]),
|
|
212
|
+
),
|
|
277
213
|
],
|
|
278
214
|
'PROVER NODE': [
|
|
279
215
|
{
|
|
280
216
|
flag: '--prover-node',
|
|
281
217
|
description: 'Starts Aztec Prover Node with options',
|
|
282
218
|
defaultValue: undefined,
|
|
283
|
-
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
flag: '--proverNode.archiverUrl <value>',
|
|
287
|
-
description: 'URL for an archiver service',
|
|
288
|
-
defaultValue: undefined,
|
|
289
|
-
envVar: 'ARCHIVER_URL',
|
|
219
|
+
env: undefined,
|
|
290
220
|
},
|
|
291
221
|
...getOptions(
|
|
292
222
|
'proverNode',
|
|
293
223
|
omitConfigMappings(proverNodeConfigMappings, [
|
|
294
224
|
// filter out options passed separately
|
|
295
|
-
...(
|
|
296
|
-
...(
|
|
297
|
-
...(
|
|
225
|
+
...getKeys(archiverConfigMappings),
|
|
226
|
+
...getKeys(proverBrokerConfigMappings),
|
|
227
|
+
...getKeys(proverAgentConfigMappings),
|
|
228
|
+
...getKeys(p2pConfigMappings),
|
|
229
|
+
...getKeys(worldStateConfigMappings),
|
|
230
|
+
...getKeys(sharedNodeConfigMappings),
|
|
298
231
|
]),
|
|
299
232
|
),
|
|
300
233
|
],
|
|
@@ -303,7 +236,7 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
303
236
|
flag: '--prover-broker',
|
|
304
237
|
description: 'Starts Aztec proving job broker',
|
|
305
238
|
defaultValue: undefined,
|
|
306
|
-
|
|
239
|
+
env: undefined,
|
|
307
240
|
},
|
|
308
241
|
...getOptions(
|
|
309
242
|
'proverBroker',
|
|
@@ -316,56 +249,62 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
316
249
|
flag: '--prover-agent',
|
|
317
250
|
description: 'Starts Aztec Prover Agent with options',
|
|
318
251
|
defaultValue: undefined,
|
|
319
|
-
|
|
252
|
+
env: undefined,
|
|
320
253
|
},
|
|
321
254
|
...getOptions('proverAgent', proverAgentConfigMappings),
|
|
322
255
|
],
|
|
256
|
+
'P2P SUBSYSTEM': [
|
|
257
|
+
{
|
|
258
|
+
flag: '--p2p-enabled [value]',
|
|
259
|
+
description: 'Enable P2P subsystem',
|
|
260
|
+
env: 'P2P_ENABLED',
|
|
261
|
+
...booleanConfigHelper(),
|
|
262
|
+
},
|
|
263
|
+
...getOptions('p2p', p2pConfigMappings),
|
|
264
|
+
],
|
|
323
265
|
'P2P BOOTSTRAP': [
|
|
324
266
|
{
|
|
325
267
|
flag: '--p2p-bootstrap',
|
|
326
268
|
description: 'Starts Aztec P2P Bootstrap with options',
|
|
327
269
|
defaultValue: undefined,
|
|
328
|
-
|
|
270
|
+
env: undefined,
|
|
329
271
|
},
|
|
330
|
-
...getOptions(
|
|
272
|
+
...getOptions(
|
|
273
|
+
'p2pBootstrap',
|
|
274
|
+
omitConfigMappings(bootnodeConfigMappings, [
|
|
275
|
+
'p2pIp',
|
|
276
|
+
'p2pPort',
|
|
277
|
+
'peerIdPrivateKey',
|
|
278
|
+
'bootstrapNodes',
|
|
279
|
+
'listenAddress',
|
|
280
|
+
]),
|
|
281
|
+
),
|
|
331
282
|
],
|
|
283
|
+
TELEMETRY: [...getOptions('tel', telemetryClientConfigMappings)],
|
|
332
284
|
BOT: [
|
|
333
285
|
{
|
|
334
286
|
flag: '--bot',
|
|
335
287
|
description: 'Starts Aztec Bot with options',
|
|
336
288
|
defaultValue: undefined,
|
|
337
|
-
|
|
289
|
+
env: undefined,
|
|
338
290
|
},
|
|
339
291
|
...getOptions('bot', botConfigMappings),
|
|
340
292
|
],
|
|
341
|
-
|
|
293
|
+
PXE: [
|
|
342
294
|
{
|
|
343
|
-
flag: '--
|
|
344
|
-
description: 'Starts Aztec
|
|
295
|
+
flag: '--pxe',
|
|
296
|
+
description: 'Starts Aztec PXE with options',
|
|
345
297
|
defaultValue: undefined,
|
|
346
|
-
|
|
298
|
+
env: undefined,
|
|
347
299
|
},
|
|
300
|
+
...getOptions('pxe', allPxeConfigMappings),
|
|
348
301
|
],
|
|
349
|
-
|
|
302
|
+
TXE: [
|
|
350
303
|
{
|
|
351
|
-
flag: '--
|
|
352
|
-
description: 'Starts
|
|
304
|
+
flag: '--txe',
|
|
305
|
+
description: 'Starts Aztec TXE with options',
|
|
353
306
|
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),
|
|
307
|
+
env: undefined,
|
|
368
308
|
},
|
|
369
|
-
...getOptions('faucet', faucetConfigMapping),
|
|
370
309
|
],
|
|
371
310
|
};
|
package/src/cli/cli.ts
CHANGED
|
@@ -31,18 +31,27 @@ export function injectAztecCommands(program: Command, userLog: LogFn, debugLogge
|
|
|
31
31
|
|
|
32
32
|
program.configureHelp({ sortSubcommands: true });
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
if (process.env.AZTEC_SHELL_WRAPPER) {
|
|
35
|
+
program.addHelpText(
|
|
36
|
+
'after',
|
|
37
|
+
`
|
|
38
|
+
Additional commands:
|
|
39
|
+
|
|
40
|
+
init [folder] [options] creates a new Aztec Noir project.
|
|
41
|
+
new <path> [options] creates a new Aztec Noir project in a new directory.
|
|
42
|
+
compile [options] compiles Aztec Noir contracts.
|
|
43
|
+
test [options] starts a TXE and runs "nargo test" using it as the oracle resolver.
|
|
44
44
|
`,
|
|
45
|
-
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
program
|
|
49
|
+
.command('preload-crs')
|
|
50
|
+
.description('Preload the points data needed for proving and verifying')
|
|
51
|
+
.action(async options => {
|
|
52
|
+
const { preloadCrs } = await import('./preload_crs.js');
|
|
53
|
+
return await preloadCrs(options, userLog, debugLogger);
|
|
54
|
+
});
|
|
46
55
|
|
|
47
56
|
return program;
|
|
48
57
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { runMigrations } from '@aztec/validator-ha-signer/migrations';
|
|
2
|
+
|
|
3
|
+
import type { Command } from 'commander';
|
|
4
|
+
|
|
5
|
+
export function injectMigrateCommand(program: Command, log: (msg: string) => void): Command {
|
|
6
|
+
const migrateCommand = program.command('migrate-ha-db').description('Run validator-ha-signer database migrations');
|
|
7
|
+
|
|
8
|
+
migrateCommand
|
|
9
|
+
.command('up')
|
|
10
|
+
.description('Apply pending migrations')
|
|
11
|
+
.requiredOption('--database-url <string>', 'PostgreSQL connection string', process.env.DATABASE_URL)
|
|
12
|
+
.option('--verbose', 'Enable verbose output', false)
|
|
13
|
+
.action(async options => {
|
|
14
|
+
const migrations = await runMigrations(options.databaseUrl, {
|
|
15
|
+
direction: 'up',
|
|
16
|
+
verbose: options.verbose,
|
|
17
|
+
});
|
|
18
|
+
if (migrations.length > 0) {
|
|
19
|
+
log(`Applied migrations: ${migrations.join(', ')}`);
|
|
20
|
+
} else {
|
|
21
|
+
log('No migrations to apply - schema is up to date');
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
migrateCommand
|
|
26
|
+
.command('down')
|
|
27
|
+
.description('Rollback the last migration')
|
|
28
|
+
.requiredOption('--database-url <string>', 'PostgreSQL connection string', process.env.DATABASE_URL)
|
|
29
|
+
.option('--verbose', 'Enable verbose output', false)
|
|
30
|
+
.action(async options => {
|
|
31
|
+
const migrations = await runMigrations(options.databaseUrl, {
|
|
32
|
+
direction: 'down',
|
|
33
|
+
verbose: options.verbose,
|
|
34
|
+
});
|
|
35
|
+
if (migrations.length > 0) {
|
|
36
|
+
log(`Rolled back migrations: ${migrations.join(', ')}`);
|
|
37
|
+
} else {
|
|
38
|
+
log('No migrations to rollback');
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return program;
|
|
43
|
+
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createLogger } from '@aztec/aztec.js';
|
|
3
|
-
import {
|
|
1
|
+
import { type ArchiverConfig, archiverConfigMappings, createArchiver, getArchiverConfigFromEnv } from '@aztec/archiver';
|
|
2
|
+
import { createLogger } from '@aztec/aztec.js/log';
|
|
3
|
+
import { type BlobClientConfig, blobClientConfigMapping, createBlobClient } from '@aztec/blob-client/client';
|
|
4
|
+
import { getL1Config } from '@aztec/cli/config';
|
|
4
5
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
5
6
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
6
|
-
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
7
7
|
import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
8
8
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
9
9
|
|
|
10
|
-
import { getL1Config } from '../get_l1_config.js';
|
|
11
10
|
import { extractRelevantOptions } from '../util.js';
|
|
12
11
|
|
|
13
12
|
export type { ArchiverConfig, DataStoreConfig };
|
|
@@ -18,36 +17,32 @@ export async function startArchiver(
|
|
|
18
17
|
signalHandlers: (() => Promise<void>)[],
|
|
19
18
|
services: NamespacedApiHandlers,
|
|
20
19
|
): Promise<{ config: ArchiverConfig & DataStoreConfig }> {
|
|
21
|
-
|
|
20
|
+
const envConfig = getArchiverConfigFromEnv();
|
|
21
|
+
const cliOptions = extractRelevantOptions<ArchiverConfig & DataStoreConfig & BlobClientConfig>(
|
|
22
22
|
options,
|
|
23
|
-
{
|
|
24
|
-
...archiverConfigMappings,
|
|
25
|
-
...dataConfigMappings,
|
|
26
|
-
},
|
|
23
|
+
{ ...archiverConfigMappings, ...dataConfigMappings, ...blobClientConfigMapping },
|
|
27
24
|
'archiver',
|
|
28
25
|
);
|
|
29
26
|
|
|
27
|
+
let archiverConfig = { ...envConfig, ...cliOptions };
|
|
28
|
+
archiverConfig.dataStoreMapSizeKb = archiverConfig.archiverStoreMapSizeKb ?? archiverConfig.dataStoreMapSizeKb;
|
|
29
|
+
|
|
30
30
|
if (!archiverConfig.l1Contracts.registryAddress || archiverConfig.l1Contracts.registryAddress.isZero()) {
|
|
31
31
|
throw new Error('L1 registry address is required to start an Archiver');
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
const { addresses, config } = await getL1Config(
|
|
34
|
+
const { addresses, config: l1Config } = await getL1Config(
|
|
35
35
|
archiverConfig.l1Contracts.registryAddress,
|
|
36
36
|
archiverConfig.l1RpcUrls,
|
|
37
37
|
archiverConfig.l1ChainId,
|
|
38
38
|
);
|
|
39
39
|
|
|
40
40
|
archiverConfig.l1Contracts = addresses;
|
|
41
|
-
archiverConfig = { ...archiverConfig, ...
|
|
42
|
-
|
|
43
|
-
const storeLog = createLogger('archiver:lmdb');
|
|
44
|
-
const store = await createStore('archiver', KVArchiverDataStore.SCHEMA_VERSION, archiverConfig, storeLog);
|
|
45
|
-
const archiverStore = new KVArchiverDataStore(store, archiverConfig.maxLogs);
|
|
41
|
+
archiverConfig = { ...archiverConfig, ...l1Config };
|
|
46
42
|
|
|
47
|
-
const telemetry = initTelemetryClient(getTelemetryClientConfig());
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
const archiver = await Archiver.createAndSync(archiverConfig, archiverStore, { telemetry, blobSinkClient }, true);
|
|
43
|
+
const telemetry = await initTelemetryClient(getTelemetryClientConfig());
|
|
44
|
+
const blobClient = createBlobClient(archiverConfig, { logger: createLogger('archiver:blob-client:client') });
|
|
45
|
+
const archiver = await createArchiver(archiverConfig, { telemetry, blobClient }, { blockUntilSync: true });
|
|
51
46
|
services.archiver = [archiver, ArchiverApiSchema];
|
|
52
47
|
signalHandlers.push(archiver.stop);
|
|
53
48
|
|