@aztec/aztec 3.0.0-canary.a9708bd → 3.0.0-devnet.20251212

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.
Files changed (131) hide show
  1. package/README.md +1 -1
  2. package/dest/bin/index.d.ts +1 -1
  3. package/dest/bin/index.js +9 -9
  4. package/dest/cli/aztec_start_action.d.ts +1 -1
  5. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  6. package/dest/cli/aztec_start_action.js +10 -25
  7. package/dest/cli/aztec_start_options.d.ts +2 -2
  8. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  9. package/dest/cli/aztec_start_options.js +115 -231
  10. package/dest/cli/cli.d.ts +1 -1
  11. package/dest/cli/cli.d.ts.map +1 -1
  12. package/dest/cli/cli.js +46 -1
  13. package/dest/cli/cmds/start_archiver.d.ts +1 -1
  14. package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
  15. package/dest/cli/cmds/start_archiver.js +4 -4
  16. package/dest/cli/cmds/start_blob_sink.d.ts +1 -1
  17. package/dest/cli/cmds/start_blob_sink.d.ts.map +1 -1
  18. package/dest/cli/cmds/start_blob_sink.js +2 -2
  19. package/dest/cli/cmds/start_bot.d.ts +4 -7
  20. package/dest/cli/cmds/start_bot.d.ts.map +1 -1
  21. package/dest/cli/cmds/start_bot.js +25 -14
  22. package/dest/cli/cmds/start_node.d.ts +1 -1
  23. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  24. package/dest/cli/cmds/start_node.js +13 -30
  25. package/dest/cli/cmds/start_p2p_bootstrap.d.ts +1 -1
  26. package/dest/cli/cmds/start_p2p_bootstrap.js +1 -1
  27. package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
  28. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
  29. package/dest/cli/cmds/start_prover_agent.js +11 -2
  30. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  31. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  32. package/dest/cli/cmds/start_prover_broker.js +8 -3
  33. package/dest/cli/cmds/start_prover_node.d.ts +1 -1
  34. package/dest/cli/cmds/start_prover_node.d.ts.map +1 -1
  35. package/dest/cli/cmds/start_prover_node.js +17 -12
  36. package/dest/cli/cmds/start_txe.d.ts +1 -1
  37. package/dest/cli/index.d.ts +1 -1
  38. package/dest/cli/preload_crs.d.ts +1 -1
  39. package/dest/cli/release_version.d.ts +1 -1
  40. package/dest/cli/util.d.ts +12 -10
  41. package/dest/cli/util.d.ts.map +1 -1
  42. package/dest/cli/util.js +13 -13
  43. package/dest/cli/versioning.d.ts +1 -1
  44. package/dest/cli/versioning.js +3 -3
  45. package/dest/examples/token.d.ts +1 -1
  46. package/dest/examples/token.js +18 -16
  47. package/dest/examples/util.d.ts +3 -3
  48. package/dest/examples/util.d.ts.map +1 -1
  49. package/dest/examples/util.js +1 -1
  50. package/dest/index.d.ts +2 -2
  51. package/dest/index.d.ts.map +1 -1
  52. package/dest/index.js +1 -1
  53. package/dest/local-network/banana_fpc.d.ts +10 -0
  54. package/dest/local-network/banana_fpc.d.ts.map +1 -0
  55. package/dest/{sandbox → local-network}/banana_fpc.js +15 -19
  56. package/dest/local-network/index.d.ts +4 -0
  57. package/dest/local-network/index.d.ts.map +1 -0
  58. package/dest/local-network/index.js +3 -0
  59. package/dest/local-network/local-network.d.ts +74 -0
  60. package/dest/local-network/local-network.d.ts.map +1 -0
  61. package/dest/{sandbox/sandbox.js → local-network/local-network.js} +35 -43
  62. package/dest/local-network/sponsored_fpc.d.ts +5 -0
  63. package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
  64. package/dest/{sandbox → local-network}/sponsored_fpc.js +7 -8
  65. package/dest/mnemonic.d.ts +1 -1
  66. package/dest/splash.d.ts +1 -1
  67. package/dest/testing/anvil_test_watcher.d.ts +4 -4
  68. package/dest/testing/anvil_test_watcher.d.ts.map +1 -1
  69. package/dest/testing/anvil_test_watcher.js +19 -18
  70. package/dest/testing/cheat_codes.d.ts +7 -10
  71. package/dest/testing/cheat_codes.d.ts.map +1 -1
  72. package/dest/testing/cheat_codes.js +9 -10
  73. package/dest/testing/index.d.ts +1 -2
  74. package/dest/testing/index.d.ts.map +1 -1
  75. package/dest/testing/index.js +0 -1
  76. package/package.json +38 -36
  77. package/src/bin/index.ts +9 -9
  78. package/src/cli/aztec_start_action.ts +10 -22
  79. package/src/cli/aztec_start_options.ts +124 -238
  80. package/src/cli/cli.ts +46 -1
  81. package/src/cli/cmds/start_archiver.ts +4 -4
  82. package/src/cli/cmds/start_blob_sink.ts +2 -2
  83. package/src/cli/cmds/start_bot.ts +36 -13
  84. package/src/cli/cmds/start_node.ts +16 -27
  85. package/src/cli/cmds/start_p2p_bootstrap.ts +1 -1
  86. package/src/cli/cmds/start_prover_agent.ts +7 -2
  87. package/src/cli/cmds/start_prover_broker.ts +17 -3
  88. package/src/cli/cmds/start_prover_node.ts +14 -14
  89. package/src/cli/util.ts +21 -18
  90. package/src/cli/versioning.ts +3 -3
  91. package/src/examples/token.ts +20 -17
  92. package/src/examples/util.ts +2 -2
  93. package/src/index.ts +5 -5
  94. package/src/{sandbox → local-network}/banana_fpc.ts +16 -21
  95. package/src/local-network/index.ts +7 -0
  96. package/src/{sandbox/sandbox.ts → local-network/local-network.ts} +42 -55
  97. package/src/local-network/sponsored_fpc.ts +26 -0
  98. package/src/testing/anvil_test_watcher.ts +18 -19
  99. package/src/testing/cheat_codes.ts +13 -13
  100. package/src/testing/index.ts +0 -1
  101. package/dest/cli/chain_l2_config.d.ts +0 -31
  102. package/dest/cli/chain_l2_config.d.ts.map +0 -1
  103. package/dest/cli/chain_l2_config.js +0 -261
  104. package/dest/cli/cmds/start_faucet.d.ts +0 -4
  105. package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
  106. package/dest/cli/cmds/start_faucet.js +0 -20
  107. package/dest/cli/cmds/start_pxe.d.ts +0 -16
  108. package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
  109. package/dest/cli/cmds/start_pxe.js +0 -31
  110. package/dest/cli/get_l1_config.d.ts +0 -7
  111. package/dest/cli/get_l1_config.d.ts.map +0 -1
  112. package/dest/cli/get_l1_config.js +0 -13
  113. package/dest/sandbox/banana_fpc.d.ts +0 -11
  114. package/dest/sandbox/banana_fpc.d.ts.map +0 -1
  115. package/dest/sandbox/index.d.ts +0 -4
  116. package/dest/sandbox/index.d.ts.map +0 -1
  117. package/dest/sandbox/index.js +0 -3
  118. package/dest/sandbox/sandbox.d.ts +0 -83
  119. package/dest/sandbox/sandbox.d.ts.map +0 -1
  120. package/dest/sandbox/sponsored_fpc.d.ts +0 -4
  121. package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
  122. package/dest/testing/aztec_cheat_codes.d.ts +0 -59
  123. package/dest/testing/aztec_cheat_codes.d.ts.map +0 -1
  124. package/dest/testing/aztec_cheat_codes.js +0 -62
  125. package/src/cli/chain_l2_config.ts +0 -341
  126. package/src/cli/cmds/start_faucet.ts +0 -34
  127. package/src/cli/cmds/start_pxe.ts +0 -49
  128. package/src/cli/get_l1_config.ts +0 -19
  129. package/src/sandbox/index.ts +0 -4
  130. package/src/sandbox/sponsored_fpc.ts +0 -27
  131. package/src/testing/aztec_cheat_codes.ts +0 -77
@@ -1,26 +1,27 @@
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 { l1ContractsConfigMappings } from '@aztec/ethereum/config';
6
+ import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
7
+ import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
8
+ import { getKeys } from '@aztec/foundation/collection';
6
9
  import {
7
10
  type ConfigMapping,
8
11
  type EnvVar,
9
- SecretValue,
10
12
  booleanConfigHelper,
11
13
  isBooleanConfigValue,
12
14
  omitConfigMappings,
13
15
  } from '@aztec/foundation/config';
14
- import { type P2PConfig, bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
15
- import {
16
- type ProverAgentConfig,
17
- type ProverBrokerConfig,
18
- proverAgentConfigMappings,
19
- proverBrokerConfigMappings,
20
- } from '@aztec/prover-client/broker';
16
+ import { dataConfigMappings } from '@aztec/kv-store/config';
17
+ import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
18
+ import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
19
+ import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
21
20
  import { proverNodeConfigMappings } from '@aztec/prover-node/config';
22
21
  import { allPxeConfigMappings } from '@aztec/pxe/config';
22
+ import { chainConfigMappings } from '@aztec/stdlib/config';
23
23
  import { telemetryClientConfigMappings } from '@aztec/telemetry-client';
24
+ import { worldStateConfigMappings } from '@aztec/world-state';
24
25
 
25
26
  import { DefaultMnemonic } from '../mnemonic.js';
26
27
 
@@ -30,7 +31,7 @@ export interface AztecStartOption {
30
31
  description: string;
31
32
  defaultValue: any;
32
33
  printDefault?: (val: any) => string;
33
- envVar: EnvVar | undefined;
34
+ env: EnvVar | undefined;
34
35
  fallback?: EnvVar[];
35
36
  parseVal?: (val: string) => any;
36
37
  }
@@ -49,7 +50,7 @@ export const getOptions = (namespace: string, configMappings: Record<string, Con
49
50
  description,
50
51
  defaultValue: def,
51
52
  printDefault,
52
- envVar: env,
53
+ env: env,
53
54
  fallback,
54
55
  parseVal: parseEnv,
55
56
  });
@@ -57,17 +58,39 @@ export const getOptions = (namespace: string, configMappings: Record<string, Con
57
58
  return options;
58
59
  };
59
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
+
60
81
  // These are options used by multiple modules so should be inputted once
61
82
  export const universalOptions = [
62
- 'l1RpcUrls',
63
83
  'l1ConsensusHostUrls',
64
84
  'l1ConsensusHostApiKeys',
65
85
  'l1ConsensusHostApiKeyHeaders',
66
- 'l1ChainId',
67
- 'l1Contracts',
68
86
  'p2pEnabled',
69
- 'dataDirectory',
70
- 'dataStoreMapSizeKb',
87
+ 'fishermanMode',
88
+ ...getKeys(chainConfigMappings),
89
+ ...getKeys(l1ContractsConfigMappings),
90
+ ...getKeys(l1ContractAddressesMapping),
91
+ ...getKeys(l1ReaderConfigMappings),
92
+ ...getKeys(dataConfigMappings),
93
+ ...getKeys(worldStateConfigMappings),
71
94
  ];
72
95
 
73
96
  export const NETWORK_FLAG = 'network';
@@ -79,45 +102,35 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
79
102
  flag: `--${NETWORK_FLAG} <value>`,
80
103
  description: 'Network to run Aztec on',
81
104
  defaultValue: undefined,
82
- envVar: 'NETWORK',
83
- },
84
- {
85
- flag: `--auto-update <value>`,
86
- description: 'Configure auto updates',
87
- envVar: 'AUTO_UPDATE',
88
- defaultValue: 'disabled',
89
- },
90
- {
91
- flag: `--auto-update-url <value>`,
92
- description: 'Configure where to get updates from',
93
- envVar: 'AUTO_UPDATE_URL',
94
- defaultValue: undefined,
105
+ env: 'NETWORK',
95
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),
96
115
  ],
97
- SANDBOX: [
116
+ LOCAL_NETWORK: [
98
117
  {
99
- flag: '--sandbox',
100
- description: 'Starts Aztec Sandbox',
118
+ flag: '--local-network',
119
+ description: 'Starts Aztec Local Network',
101
120
  defaultValue: undefined,
102
- envVar: undefined,
121
+ env: undefined,
103
122
  },
104
123
  {
105
- flag: '--sandbox.noPXE',
106
- description: 'Do not expose PXE service on sandbox start',
107
- envVar: 'NO_PXE',
108
- ...booleanConfigHelper(),
109
- },
110
- {
111
- flag: '--sandbox.l1Mnemonic <value>',
124
+ flag: '--local-network.l1Mnemonic <value>',
112
125
  description: 'Mnemonic for L1 accounts. Will be used ',
113
126
  defaultValue: DefaultMnemonic,
114
- envVar: 'MNEMONIC',
127
+ env: 'MNEMONIC',
115
128
  },
116
129
  {
117
- flag: '--sandbox.deployAztecContractsSalt <value>',
130
+ flag: '--local-network.deployAztecContractsSalt <value>',
118
131
  description:
119
- 'Numeric salt for deploying L1 Aztec contracts before starting the sandbox. Needs mnemonic or private key to be set.',
120
- envVar: 'DEPLOY_AZTEC_CONTRACTS_SALT',
132
+ 'Numeric salt for deploying L1 Aztec contracts before starting the local network. Needs mnemonic or private key to be set.',
133
+ env: 'DEPLOY_AZTEC_CONTRACTS_SALT',
121
134
  defaultValue: undefined,
122
135
  parseVal: (val: string) => (val ? parseInt(val) : undefined),
123
136
  },
@@ -127,120 +140,43 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
127
140
  flag: '--port <value>',
128
141
  description: 'Port to run the Aztec Services on',
129
142
  defaultValue: 8080,
130
- envVar: 'AZTEC_PORT',
143
+ env: 'AZTEC_PORT',
131
144
  parseVal: val => parseInt(val, 10),
132
145
  },
133
146
  {
134
147
  flag: '--admin-port <value>',
135
- description: 'Port to run admin APIs of Aztec Services on on',
148
+ description: 'Port to run admin APIs of Aztec Services on',
136
149
  defaultValue: 8880,
137
- envVar: 'AZTEC_ADMIN_PORT',
150
+ env: 'AZTEC_ADMIN_PORT',
138
151
  parseVal: val => parseInt(val, 10),
139
152
  },
140
153
  {
141
154
  flag: '--api-prefix <value>',
142
155
  description: 'Prefix for API routes on any service that is started',
143
156
  defaultValue: '',
144
- envVar: 'API_PREFIX',
157
+ env: 'API_PREFIX',
145
158
  },
146
159
  ],
147
160
  ETHEREUM: [
148
- {
149
- flag: '--l1-rpc-urls <value>',
150
- description: 'List of URLs of the Ethereum RPC nodes that services will connect to (comma separated)',
151
- defaultValue: ['http://localhost:8545'],
152
- envVar: 'ETHEREUM_HOSTS',
153
- parseVal: (val: string) => val.split(',').map(url => url.trim()),
154
- },
155
- {
156
- flag: '--l1-chain-id <value>',
157
- description: 'The L1 chain ID',
158
- defaultValue: 31337,
159
- envVar: 'L1_CHAIN_ID',
160
- parseVal: val => parseInt(val, 10),
161
- },
162
- {
163
- flag: '--l1-consensus-host-urls <value>',
164
- description: 'List of URLs of the Ethereum consensus nodes that services will connect to (comma separated)',
165
- defaultValue: [],
166
- envVar: 'L1_CONSENSUS_HOST_URLS',
167
- parseVal: (val: string) => val.split(',').map(url => url.trim().replace(/\/$/, '')),
168
- },
169
- {
170
- flag: '--l1-consensus-host-api-keys <value>',
171
- description: 'List of API keys for the corresponding Ethereum consensus nodes',
172
- defaultValue: [],
173
- envVar: 'L1_CONSENSUS_HOST_API_KEYS',
174
- parseVal: (val: string) => val.split(',').map(key => new SecretValue(key)),
175
- },
176
- {
177
- flag: '--l1-consensus-host-api-key-headers <value>',
178
- description:
179
- 'List of API key headers for the corresponding Ethereum consensus nodes. If not set, the api key for the corresponding node will be appended to the URL as ?key=<api-key>',
180
- defaultValue: [],
181
- envVar: 'L1_CONSENSUS_HOST_API_KEY_HEADERS',
182
- parseVal: (val: string) => val.split(',').map(url => url.trim()),
183
- },
161
+ configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
162
+ // Do not set default for CLI: keep undefined unless provided via flag or env
163
+ configToFlag('--l1-rpc-urls', { ...l1ReaderConfigMappings.l1RpcUrls, defaultValue: undefined }),
164
+ configToFlag('--l1-consensus-host-urls', blobSinkConfigMappings.l1ConsensusHostUrls),
165
+ configToFlag('--l1-consensus-host-api-keys', blobSinkConfigMappings.l1ConsensusHostApiKeys),
166
+ configToFlag('--l1-consensus-host-api-key-headers', blobSinkConfigMappings.l1ConsensusHostApiKeyHeaders),
167
+ ],
168
+ 'L1 CONTRACTS': [
169
+ configToFlag('--registry-address', l1ContractAddressesMapping.registryAddress),
170
+ configToFlag('--rollup-version', chainConfigMappings.rollupVersion),
184
171
  ],
185
172
  STORAGE: [
186
- {
187
- flag: '--data-directory <value>',
188
- description: 'Where to store data for services. If not set, will store temporarily',
189
- defaultValue: undefined,
190
- envVar: 'DATA_DIRECTORY',
191
- },
192
- {
193
- flag: '--data-store-map-size-kb <value>',
194
- description:
195
- 'The maximum possible size of the data store DB in KB. Can be overridden by component-specific options.',
196
- defaultValue: undefined,
197
- envVar: 'DATA_STORE_MAP_SIZE_KB',
198
- parseVal: (val: string) => parseInt(val, 10),
199
- },
173
+ configToFlag('--data-directory', dataConfigMappings.dataDirectory),
174
+ configToFlag('--data-store-map-size-kb', dataConfigMappings.dataStoreMapSizeKb),
200
175
  ],
201
- 'L1 CONTRACT ADDRESSES': [
202
- {
203
- flag: '--rollup-address <value>',
204
- description: 'The deployed L1 rollup contract address',
205
- defaultValue: undefined,
206
- envVar: 'ROLLUP_CONTRACT_ADDRESS',
207
- },
208
- {
209
- flag: '--registry-address <value>',
210
- description: 'The deployed L1 registry contract address',
211
- defaultValue: undefined,
212
- envVar: 'REGISTRY_CONTRACT_ADDRESS',
213
- },
214
- {
215
- flag: '--inbox-address <value>',
216
- description: 'The deployed L1 -> L2 inbox contract address',
217
- defaultValue: undefined,
218
- envVar: 'INBOX_CONTRACT_ADDRESS',
219
- },
220
- {
221
- flag: '--outbox-address <value>',
222
- description: 'The deployed L2 -> L1 outbox contract address',
223
- defaultValue: undefined,
224
- envVar: 'OUTBOX_CONTRACT_ADDRESS',
225
- },
226
- {
227
- flag: '--fee-juice-address <value>',
228
- description: 'The deployed L1 Fee Juice contract address',
229
- defaultValue: undefined,
230
- envVar: 'FEE_JUICE_CONTRACT_ADDRESS',
231
- },
232
- {
233
- flag: '--staking-asset-address <value>',
234
- description: 'The deployed L1 Staking Asset contract address',
235
- defaultValue: undefined,
236
- envVar: 'STAKING_ASSET_CONTRACT_ADDRESS',
237
- },
238
- {
239
- flag: '--fee-juice-portal-address <value>',
240
- description: 'The deployed L1 Fee Juice portal contract address',
241
- defaultValue: undefined,
242
- envVar: 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS',
243
- },
176
+ 'WORLD STATE': [
177
+ configToFlag('--world-state-data-directory', worldStateConfigMappings.worldStateDataDirectory),
178
+ configToFlag('--world-state-db-map-size-kb', worldStateConfigMappings.worldStateDbMapSizeKb),
179
+ configToFlag('--world-state-block-history', worldStateConfigMappings.worldStateBlockHistory),
244
180
  ],
245
181
  // We can't easily auto-generate node options as they're parts of modules defined below
246
182
  'AZTEC NODE': [
@@ -248,87 +184,44 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
248
184
  flag: '--node',
249
185
  description: 'Starts Aztec Node with options',
250
186
  defaultValue: undefined,
251
- envVar: undefined,
252
- },
253
- {
254
- flag: '--node.archiverUrl <value>',
255
- description: 'URL for an archiver service',
256
- defaultValue: undefined,
257
- envVar: 'ARCHIVER_URL',
258
- },
259
- {
260
- flag: '--node.assumeProvenThroughBlockNumber <value>',
261
- description:
262
- 'Cheats the rollup contract into assuming every block until this one is proven. Useful for speeding up bootstraps.',
263
- envVar: 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER',
264
- parseVal: (val: string) => parseInt(val, 10),
265
- defaultValue: 0,
266
- },
267
- {
268
- flag: '--node.worldStateBlockCheckIntervalMS <value>',
269
- description: 'Frequency in which to check for blocks in ms',
270
- defaultValue: 100,
271
- envVar: 'WS_BLOCK_CHECK_INTERVAL_MS',
272
- parseVal: val => parseInt(val, 10),
273
- },
274
- {
275
- flag: '--node.syncMode <value>',
276
- description:
277
- 'Set sync mode to `full` to always sync via L1, `snapshot` to download a snapshot if there is no local data, `force-snapshot` to download even if there is local data.',
278
- defaultValue: 'snapshot',
279
- envVar: 'SYNC_MODE',
280
- },
281
- {
282
- flag: '--node.snapshotsUrl <value>',
283
- description: 'Base URL for downloading snapshots for snapshot sync.',
284
- defaultValue: undefined,
285
- envVar: 'SYNC_SNAPSHOTS_URL',
187
+ env: undefined,
286
188
  },
287
189
  ],
288
- 'P2P SUBSYSTEM': [
289
- {
290
- flag: '--p2p-enabled [value]',
291
- description: 'Enable P2P subsystem',
292
- envVar: 'P2P_ENABLED',
293
- ...booleanConfigHelper(),
294
- },
295
- ...getOptions('p2p', p2pConfigMappings),
296
- ],
297
- TELEMETRY: [...getOptions('tel', telemetryClientConfigMappings)],
298
- PXE: [
299
- {
300
- flag: '--pxe',
301
- description: 'Starts Aztec PXE with options',
302
- defaultValue: undefined,
303
- envVar: undefined,
304
- },
305
- ...getOptions('pxe', allPxeConfigMappings),
306
- ],
307
190
  ARCHIVER: [
308
191
  {
309
192
  flag: '--archiver',
310
193
  description: 'Starts Aztec Archiver with options',
311
194
  defaultValue: undefined,
312
- envVar: undefined,
195
+ env: undefined,
313
196
  },
314
- // filter out archiverUrl as it's passed separately in --node & --prover-node
315
- ...getOptions('archiver', archiverConfigMappings).filter(opt => !opt.flag.includes('archiverUrl')),
197
+ ...getOptions(
198
+ 'archiver',
199
+ omitConfigMappings(archiverConfigMappings, Object.keys(l1ContractsConfigMappings) as (keyof ArchiverConfig)[]),
200
+ ),
316
201
  ],
317
202
  SEQUENCER: [
318
203
  {
319
204
  flag: '--sequencer',
320
205
  description: 'Starts Aztec Sequencer with options',
321
206
  defaultValue: undefined,
322
- envVar: undefined,
207
+ env: undefined,
323
208
  },
324
- ...getOptions('sequencer', sequencerClientConfigMappings),
209
+ ...getOptions(
210
+ 'sequencer',
211
+ omitConfigMappings(sequencerClientConfigMappings, [
212
+ 'fakeProcessingDelayPerTxMs',
213
+ 'skipCollectingAttestations',
214
+ 'skipInvalidateBlockAsProposer',
215
+ 'blobSinkMapSizeKb',
216
+ ]),
217
+ ),
325
218
  ],
326
219
  'BLOB SINK': [
327
220
  {
328
221
  flag: '--blob-sink',
329
222
  description: 'Starts Aztec Blob Sink with options',
330
223
  defaultValue: undefined,
331
- envVar: undefined,
224
+ env: undefined,
332
225
  },
333
226
  ...getOptions('blobSink', blobSinkConfigMappings),
334
227
  ],
@@ -337,22 +230,18 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
337
230
  flag: '--prover-node',
338
231
  description: 'Starts Aztec Prover Node with options',
339
232
  defaultValue: undefined,
340
- envVar: undefined,
341
- },
342
- {
343
- flag: '--proverNode.archiverUrl <value>',
344
- description: 'URL for an archiver service',
345
- defaultValue: undefined,
346
- envVar: 'ARCHIVER_URL',
233
+ env: undefined,
347
234
  },
348
235
  ...getOptions(
349
236
  'proverNode',
350
237
  omitConfigMappings(proverNodeConfigMappings, [
351
238
  // filter out options passed separately
352
- ...(Object.keys(archiverConfigMappings) as (keyof ArchiverConfig)[]),
353
- ...(Object.keys(proverBrokerConfigMappings) as (keyof ProverBrokerConfig)[]),
354
- ...(Object.keys(proverAgentConfigMappings) as (keyof ProverAgentConfig)[]),
355
- ...(Object.keys(p2pConfigMappings) as (keyof P2PConfig)[]),
239
+ ...getKeys(archiverConfigMappings),
240
+ ...getKeys(proverBrokerConfigMappings),
241
+ ...getKeys(proverAgentConfigMappings),
242
+ ...getKeys(p2pConfigMappings),
243
+ ...getKeys(worldStateConfigMappings),
244
+ ...getKeys(sharedNodeConfigMappings),
356
245
  ]),
357
246
  ),
358
247
  ],
@@ -361,7 +250,7 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
361
250
  flag: '--prover-broker',
362
251
  description: 'Starts Aztec proving job broker',
363
252
  defaultValue: undefined,
364
- envVar: undefined,
253
+ env: undefined,
365
254
  },
366
255
  ...getOptions(
367
256
  'proverBroker',
@@ -374,16 +263,25 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
374
263
  flag: '--prover-agent',
375
264
  description: 'Starts Aztec Prover Agent with options',
376
265
  defaultValue: undefined,
377
- envVar: undefined,
266
+ env: undefined,
378
267
  },
379
268
  ...getOptions('proverAgent', proverAgentConfigMappings),
380
269
  ],
270
+ 'P2P SUBSYSTEM': [
271
+ {
272
+ flag: '--p2p-enabled [value]',
273
+ description: 'Enable P2P subsystem',
274
+ env: 'P2P_ENABLED',
275
+ ...booleanConfigHelper(),
276
+ },
277
+ ...getOptions('p2p', p2pConfigMappings),
278
+ ],
381
279
  'P2P BOOTSTRAP': [
382
280
  {
383
281
  flag: '--p2p-bootstrap',
384
282
  description: 'Starts Aztec P2P Bootstrap with options',
385
283
  defaultValue: undefined,
386
- envVar: undefined,
284
+ env: undefined,
387
285
  },
388
286
  ...getOptions(
389
287
  'p2pBootstrap',
@@ -396,43 +294,31 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
396
294
  ]),
397
295
  ),
398
296
  ],
297
+ TELEMETRY: [...getOptions('tel', telemetryClientConfigMappings)],
399
298
  BOT: [
400
299
  {
401
300
  flag: '--bot',
402
301
  description: 'Starts Aztec Bot with options',
403
302
  defaultValue: undefined,
404
- envVar: undefined,
303
+ env: undefined,
405
304
  },
406
305
  ...getOptions('bot', botConfigMappings),
407
306
  ],
408
- TXE: [
307
+ PXE: [
409
308
  {
410
- flag: '--txe',
411
- description: 'Starts Aztec TXE with options',
309
+ flag: '--pxe',
310
+ description: 'Starts Aztec PXE with options',
412
311
  defaultValue: undefined,
413
- envVar: undefined,
312
+ env: undefined,
414
313
  },
314
+ ...getOptions('pxe', allPxeConfigMappings),
415
315
  ],
416
- FAUCET: [
316
+ TXE: [
417
317
  {
418
- flag: '--faucet',
419
- description: 'Starts the Aztec faucet',
318
+ flag: '--txe',
319
+ description: 'Starts Aztec TXE with options',
420
320
  defaultValue: undefined,
421
- envVar: undefined,
422
- },
423
- {
424
- flag: '--faucet.apiServer',
425
- description: 'Starts a simple HTTP server to access the faucet',
426
- defaultValue: true,
427
- envVar: undefined,
428
- },
429
- {
430
- flag: '--faucet.apiServerPort <value>',
431
- description: 'The port on which to start the api server on',
432
- defaultValue: 8080,
433
- envVar: undefined,
434
- parseVal: val => parseInt(val, 10),
321
+ env: undefined,
435
322
  },
436
- ...getOptions('faucet', faucetConfigMapping),
437
323
  ],
438
324
  };
package/src/cli/cli.ts CHANGED
@@ -37,10 +37,55 @@ 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-nargo test --silence-warnings --oracle-resolver=<TXE_ADDRESS> [options]
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
 
@@ -5,15 +5,15 @@ import {
5
5
  archiverConfigMappings,
6
6
  getArchiverConfigFromEnv,
7
7
  } from '@aztec/archiver';
8
- import { createLogger } from '@aztec/aztec.js';
8
+ import { createLogger } from '@aztec/aztec.js/log';
9
9
  import { type BlobSinkConfig, blobSinkConfigMapping, createBlobSinkClient } from '@aztec/blob-sink/client';
10
+ import { getL1Config } from '@aztec/cli/config';
10
11
  import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
11
12
  import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
12
13
  import { createStore } from '@aztec/kv-store/lmdb-v2';
13
14
  import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
14
15
  import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
15
16
 
16
- import { getL1Config } from '../get_l1_config.js';
17
17
  import { extractRelevantOptions } from '../util.js';
18
18
 
19
19
  export type { ArchiverConfig, DataStoreConfig };
@@ -32,7 +32,7 @@ export async function startArchiver(
32
32
  );
33
33
 
34
34
  let archiverConfig = { ...envConfig, ...cliOptions };
35
- archiverConfig.dataStoreMapSizeKB = archiverConfig.archiverStoreMapSizeKb ?? archiverConfig.dataStoreMapSizeKB;
35
+ archiverConfig.dataStoreMapSizeKb = archiverConfig.archiverStoreMapSizeKb ?? archiverConfig.dataStoreMapSizeKb;
36
36
 
37
37
  if (!archiverConfig.l1Contracts.registryAddress || archiverConfig.l1Contracts.registryAddress.isZero()) {
38
38
  throw new Error('L1 registry address is required to start an Archiver');
@@ -51,7 +51,7 @@ export async function startArchiver(
51
51
  const store = await createStore('archiver', KVArchiverDataStore.SCHEMA_VERSION, archiverConfig, storeLog);
52
52
  const archiverStore = new KVArchiverDataStore(store, archiverConfig.maxLogs);
53
53
 
54
- const telemetry = initTelemetryClient(getTelemetryClientConfig());
54
+ const telemetry = await initTelemetryClient(getTelemetryClientConfig());
55
55
  const blobSinkClient = createBlobSinkClient(archiverConfig, { logger: createLogger('archiver:blob-sink:client') });
56
56
  const archiver = await Archiver.createAndSync(archiverConfig, archiverStore, { telemetry, blobSinkClient }, true);
57
57
  services.archiver = [archiver, ArchiverApiSchema];
@@ -4,10 +4,10 @@ import {
4
4
  createBlobSinkServer,
5
5
  getBlobSinkConfigFromEnv,
6
6
  } from '@aztec/blob-sink/server';
7
+ import { getL1Config } from '@aztec/cli/config';
7
8
  import type { LogFn } from '@aztec/foundation/log';
8
9
  import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
9
10
 
10
- import { getL1Config } from '../get_l1_config.js';
11
11
  import { extractRelevantOptions } from '../util.js';
12
12
 
13
13
  export async function startBlobSink(options: any, signalHandlers: (() => Promise<void>)[], userLog: LogFn) {
@@ -35,7 +35,7 @@ export async function startBlobSink(options: any, signalHandlers: (() => Promise
35
35
  throw new Error('L1_CHAIN_ID');
36
36
  }
37
37
 
38
- const telemetry = initTelemetryClient(getTelemetryClientConfig());
38
+ const telemetry = await initTelemetryClient(getTelemetryClientConfig());
39
39
 
40
40
  const { config: chainConfig, addresses } = await getL1Config(
41
41
  blobSinkConfig.l1Contracts.registryAddress,