@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.
Files changed (139) hide show
  1. package/README.md +1 -1
  2. package/dest/bin/index.d.ts +1 -1
  3. package/dest/bin/index.js +20 -12
  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 +36 -37
  7. package/dest/cli/aztec_start_options.d.ts +5 -3
  8. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  9. package/dest/cli/aztec_start_options.js +142 -210
  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 +50 -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 +18 -10
  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 +17 -1
  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 +24 -13
  22. package/dest/cli/cmds/start_node.d.ts +2 -2
  23. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  24. package/dest/cli/cmds/start_node.js +67 -80
  25. package/dest/cli/cmds/start_p2p_bootstrap.d.ts +1 -1
  26. package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
  27. package/dest/cli/cmds/start_p2p_bootstrap.js +9 -4
  28. package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
  29. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
  30. package/dest/cli/cmds/start_prover_agent.js +31 -2
  31. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  32. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  33. package/dest/cli/cmds/start_prover_broker.js +9 -3
  34. package/dest/cli/cmds/start_prover_node.d.ts +1 -1
  35. package/dest/cli/cmds/start_prover_node.d.ts.map +1 -1
  36. package/dest/cli/cmds/start_prover_node.js +43 -45
  37. package/dest/cli/cmds/start_txe.d.ts +1 -1
  38. package/dest/cli/index.d.ts +1 -1
  39. package/dest/cli/preload_crs.d.ts +3 -0
  40. package/dest/cli/preload_crs.d.ts.map +1 -0
  41. package/dest/cli/preload_crs.js +6 -0
  42. package/dest/cli/release_version.d.ts +2 -0
  43. package/dest/cli/release_version.d.ts.map +1 -0
  44. package/dest/cli/release_version.js +14 -0
  45. package/dest/cli/util.d.ts +38 -7
  46. package/dest/cli/util.d.ts.map +1 -1
  47. package/dest/cli/util.js +198 -28
  48. package/dest/cli/versioning.d.ts +1 -1
  49. package/dest/cli/versioning.js +3 -3
  50. package/dest/examples/token.d.ts +1 -1
  51. package/dest/examples/token.js +31 -18
  52. package/dest/examples/util.d.ts +5 -6
  53. package/dest/examples/util.d.ts.map +1 -1
  54. package/dest/examples/util.js +5 -6
  55. package/dest/index.d.ts +2 -2
  56. package/dest/index.d.ts.map +1 -1
  57. package/dest/index.js +1 -1
  58. package/dest/local-network/banana_fpc.d.ts +10 -0
  59. package/dest/local-network/banana_fpc.d.ts.map +1 -0
  60. package/dest/{sandbox → local-network}/banana_fpc.js +19 -21
  61. package/dest/local-network/index.d.ts +4 -0
  62. package/dest/local-network/index.d.ts.map +1 -0
  63. package/dest/local-network/index.js +3 -0
  64. package/dest/local-network/local-network.d.ts +74 -0
  65. package/dest/local-network/local-network.d.ts.map +1 -0
  66. package/dest/{sandbox/sandbox.js → local-network/local-network.js} +59 -57
  67. package/dest/local-network/sponsored_fpc.d.ts +5 -0
  68. package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
  69. package/dest/local-network/sponsored_fpc.js +18 -0
  70. package/dest/mnemonic.d.ts +1 -1
  71. package/dest/splash.d.ts +1 -1
  72. package/dest/testing/anvil_test_watcher.d.ts +34 -0
  73. package/dest/testing/anvil_test_watcher.d.ts.map +1 -0
  74. package/dest/testing/anvil_test_watcher.js +144 -0
  75. package/dest/testing/cheat_codes.d.ts +41 -0
  76. package/dest/testing/cheat_codes.d.ts.map +1 -0
  77. package/dest/testing/cheat_codes.js +62 -0
  78. package/dest/testing/index.d.ts +4 -0
  79. package/dest/testing/index.d.ts.map +1 -0
  80. package/dest/testing/index.js +3 -0
  81. package/package.json +51 -44
  82. package/src/bin/index.ts +24 -12
  83. package/src/cli/aztec_start_action.ts +32 -35
  84. package/src/cli/aztec_start_options.ts +161 -210
  85. package/src/cli/cli.ts +54 -1
  86. package/src/cli/cmds/start_archiver.ts +19 -13
  87. package/src/cli/cmds/start_blob_sink.ts +27 -1
  88. package/src/cli/cmds/start_bot.ts +35 -12
  89. package/src/cli/cmds/start_node.ts +90 -85
  90. package/src/cli/cmds/start_p2p_bootstrap.ts +12 -4
  91. package/src/cli/cmds/start_prover_agent.ts +22 -2
  92. package/src/cli/cmds/start_prover_broker.ts +23 -3
  93. package/src/cli/cmds/start_prover_node.ts +53 -50
  94. package/src/cli/preload_crs.ts +7 -0
  95. package/src/cli/release_version.ts +21 -0
  96. package/src/cli/util.ts +208 -34
  97. package/src/cli/versioning.ts +3 -3
  98. package/src/examples/token.ts +23 -19
  99. package/src/examples/util.ts +6 -8
  100. package/src/index.ts +5 -6
  101. package/src/{sandbox → local-network}/banana_fpc.ts +20 -25
  102. package/src/local-network/index.ts +7 -0
  103. package/src/{sandbox/sandbox.ts → local-network/local-network.ts} +81 -68
  104. package/src/local-network/sponsored_fpc.ts +26 -0
  105. package/src/testing/anvil_test_watcher.ts +166 -0
  106. package/src/testing/cheat_codes.ts +78 -0
  107. package/src/testing/index.ts +3 -0
  108. package/dest/cli/chain_l2_config.d.ts +0 -19
  109. package/dest/cli/chain_l2_config.d.ts.map +0 -1
  110. package/dest/cli/chain_l2_config.js +0 -56
  111. package/dest/cli/cmds/start_faucet.d.ts +0 -4
  112. package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
  113. package/dest/cli/cmds/start_faucet.js +0 -20
  114. package/dest/cli/cmds/start_pxe.d.ts +0 -16
  115. package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
  116. package/dest/cli/cmds/start_pxe.js +0 -95
  117. package/dest/cli/get_l1_config.d.ts +0 -7
  118. package/dest/cli/get_l1_config.d.ts.map +0 -1
  119. package/dest/cli/get_l1_config.js +0 -13
  120. package/dest/sandbox/banana_fpc.d.ts +0 -11
  121. package/dest/sandbox/banana_fpc.d.ts.map +0 -1
  122. package/dest/sandbox/index.d.ts +0 -5
  123. package/dest/sandbox/index.d.ts.map +0 -1
  124. package/dest/sandbox/index.js +0 -4
  125. package/dest/sandbox/sandbox.d.ts +0 -76
  126. package/dest/sandbox/sandbox.d.ts.map +0 -1
  127. package/dest/sandbox/sponsored_fee_payment_method.d.ts +0 -23
  128. package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +0 -1
  129. package/dest/sandbox/sponsored_fee_payment_method.js +0 -36
  130. package/dest/sandbox/sponsored_fpc.d.ts +0 -6
  131. package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
  132. package/dest/sandbox/sponsored_fpc.js +0 -26
  133. package/src/cli/chain_l2_config.ts +0 -74
  134. package/src/cli/cmds/start_faucet.ts +0 -34
  135. package/src/cli/cmds/start_pxe.ts +0 -129
  136. package/src/cli/get_l1_config.ts +0 -18
  137. package/src/sandbox/index.ts +0 -5
  138. package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
  139. 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 | undefined;
30
+ defaultValue: any;
31
31
  printDefault?: (val: any) => string;
32
- envVar: EnvVar | undefined;
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(configMappings)) {
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
- envVar: env,
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 = ['l1RpcUrls', 'l1ChainId', 'l1Contracts', 'p2pEnabled', 'dataDirectory'];
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
- NETWORK: [
98
+ MISC: [
61
99
  {
62
- flag: '--network <value>',
100
+ flag: `--${NETWORK_FLAG} <value>`,
63
101
  description: 'Network to run Aztec on',
64
102
  defaultValue: undefined,
65
- envVar: 'NETWORK',
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
- SANDBOX: [
114
+ LOCAL_NETWORK: [
69
115
  {
70
- flag: '--sandbox',
71
- description: 'Starts Aztec Sandbox',
116
+ flag: '--local-network',
117
+ description: 'Starts Aztec Local Network',
72
118
  defaultValue: undefined,
73
- envVar: undefined,
119
+ env: undefined,
74
120
  },
75
121
  {
76
- flag: '--sandbox.testAccounts',
77
- description: 'Deploy test accounts on sandbox start',
78
- envVar: 'TEST_ACCOUNTS',
79
- ...booleanConfigHelper(true),
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: '--sandbox.noPXE',
83
- description: 'Do not expose PXE service on sandbox start',
84
- envVar: 'NO_PXE',
85
- ...booleanConfigHelper(),
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 on',
139
+ description: 'Port to run the Aztec Services on',
92
140
  defaultValue: 8080,
93
- envVar: 'AZTEC_PORT',
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
- envVar: 'API_PREFIX',
155
+ env: 'API_PREFIX',
101
156
  },
102
157
  ],
103
158
  ETHEREUM: [
104
- {
105
- flag: '--l1-rpc-urls <value>',
106
- description: 'List of URLs of the Ethereum RPC nodes that services will connect to (comma separated)',
107
- defaultValue: ['http://localhost:8545'],
108
- envVar: 'ETHEREUM_HOSTS',
109
- parseVal: (val: string) => val.split(',').map(url => url.trim()),
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 CONTRACT ADDRESSES': [
126
- {
127
- flag: '--rollup-address <value>',
128
- description: 'The deployed L1 rollup contract address',
129
- defaultValue: undefined,
130
- envVar: 'ROLLUP_CONTRACT_ADDRESS',
131
- },
132
- {
133
- flag: '--registry-address <value>',
134
- description: 'The deployed L1 registry contract address',
135
- defaultValue: undefined,
136
- envVar: 'REGISTRY_CONTRACT_ADDRESS',
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
- envVar: undefined,
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
- envVar: undefined,
193
+ env: undefined,
256
194
  },
257
- // filter out archiverUrl as it's passed separately in --node & --prover-node
258
- ...getOptions('archiver', archiverConfigMappings).filter(opt => !opt.flag.includes('archiverUrl')),
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
- envVar: undefined,
205
+ env: undefined,
266
206
  },
267
- ...getOptions('sequencer', sequencerClientConfigMappings),
207
+ ...getOptions(
208
+ 'sequencer',
209
+ omitConfigMappings(sequencerClientConfigMappings, [
210
+ 'fakeProcessingDelayPerTxMs',
211
+ 'skipCollectingAttestations',
212
+ 'skipInvalidateBlockAsProposer',
213
+ 'blobSinkMapSizeKb',
214
+ ]),
215
+ ),
268
216
  ],
269
- BLOB_SINK: [
217
+ 'BLOB SINK': [
270
218
  {
271
219
  flag: '--blob-sink',
272
220
  description: 'Starts Aztec Blob Sink with options',
273
221
  defaultValue: undefined,
274
- envVar: undefined,
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
- envVar: undefined,
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
- ...(Object.keys(archiverConfigMappings) as (keyof ArchiverConfig)[]),
296
- ...(Object.keys(proverBrokerConfigMappings) as (keyof ProverBrokerConfig)[]),
297
- ...(Object.keys(proverAgentConfigMappings) as (keyof ProverAgentConfig)[]),
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
- envVar: undefined,
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
- envVar: undefined,
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
- envVar: undefined,
282
+ env: undefined,
329
283
  },
330
- ...getOptions('p2pBootstrap', bootnodeConfigMappings),
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
- envVar: undefined,
301
+ env: undefined,
338
302
  },
339
303
  ...getOptions('bot', botConfigMappings),
340
304
  ],
341
- TXE: [
305
+ PXE: [
342
306
  {
343
- flag: '--txe',
344
- description: 'Starts Aztec TXE with options',
307
+ flag: '--pxe',
308
+ description: 'Starts Aztec PXE with options',
345
309
  defaultValue: undefined,
346
- envVar: undefined,
310
+ env: undefined,
347
311
  },
312
+ ...getOptions('pxe', allPxeConfigMappings),
348
313
  ],
349
- FAUCET: [
314
+ TXE: [
350
315
  {
351
- flag: '--faucet',
352
- description: 'Starts the Aztec faucet',
316
+ flag: '--txe',
317
+ description: 'Starts Aztec TXE with options',
353
318
  defaultValue: undefined,
354
- envVar: undefined,
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-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
 
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 { Archiver, type ArchiverConfig, KVArchiverDataStore, archiverConfigMappings } from '@aztec/archiver';
2
- import { createLogger } from '@aztec/aztec.js';
3
- import { createBlobSinkClient } from '@aztec/blob-sink/client';
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
- let archiverConfig = extractRelevantOptions<ArchiverConfig & DataStoreConfig>(
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, ...config };
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
- // TODO(https://github.com/AztecProtocol/aztec-packages/issues/10056): place CL url in config here
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);