@aztec/aztec 0.0.0-test.1 → 0.0.1-commit.017a351

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 (217) hide show
  1. package/README.md +1 -1
  2. package/dest/bin/index.d.ts +1 -1
  3. package/dest/bin/index.js +28 -13
  4. package/dest/cli/admin_api_key_store.d.ts +45 -0
  5. package/dest/cli/admin_api_key_store.d.ts.map +1 -0
  6. package/dest/cli/admin_api_key_store.js +98 -0
  7. package/dest/cli/aztec_start_action.d.ts +1 -1
  8. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  9. package/dest/cli/aztec_start_action.js +107 -49
  10. package/dest/cli/aztec_start_options.d.ts +6 -4
  11. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  12. package/dest/cli/aztec_start_options.js +160 -223
  13. package/dest/cli/cli.d.ts +1 -1
  14. package/dest/cli/cli.d.ts.map +1 -1
  15. package/dest/cli/cli.js +11 -7
  16. package/dest/cli/cmds/compile.d.ts +4 -0
  17. package/dest/cli/cmds/compile.d.ts.map +1 -0
  18. package/dest/cli/cmds/compile.js +166 -0
  19. package/dest/cli/cmds/migrate_ha_db.d.ts +3 -0
  20. package/dest/cli/cmds/migrate_ha_db.d.ts.map +1 -0
  21. package/dest/cli/cmds/migrate_ha_db.js +27 -0
  22. package/dest/cli/cmds/profile.d.ts +4 -0
  23. package/dest/cli/cmds/profile.d.ts.map +1 -0
  24. package/dest/cli/cmds/profile.js +8 -0
  25. package/dest/cli/cmds/profile_flamegraph.d.ts +4 -0
  26. package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -0
  27. package/dest/cli/cmds/profile_flamegraph.js +52 -0
  28. package/dest/cli/cmds/profile_gates.d.ts +4 -0
  29. package/dest/cli/cmds/profile_gates.d.ts.map +1 -0
  30. package/dest/cli/cmds/profile_gates.js +76 -0
  31. package/dest/cli/cmds/profile_utils.d.ts +18 -0
  32. package/dest/cli/cmds/profile_utils.d.ts.map +1 -0
  33. package/dest/cli/cmds/profile_utils.js +50 -0
  34. package/dest/cli/cmds/standby.d.ts +30 -0
  35. package/dest/cli/cmds/standby.d.ts.map +1 -0
  36. package/dest/cli/cmds/standby.js +97 -0
  37. package/dest/cli/cmds/start_bot.d.ts +4 -7
  38. package/dest/cli/cmds/start_bot.d.ts.map +1 -1
  39. package/dest/cli/cmds/start_bot.js +32 -17
  40. package/dest/cli/cmds/start_node.d.ts +3 -2
  41. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  42. package/dest/cli/cmds/start_node.js +113 -86
  43. package/dest/cli/cmds/start_p2p_bootstrap.d.ts +2 -2
  44. package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
  45. package/dest/cli/cmds/start_p2p_bootstrap.js +10 -6
  46. package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
  47. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
  48. package/dest/cli/cmds/start_prover_agent.js +29 -12
  49. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  50. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  51. package/dest/cli/cmds/start_prover_broker.js +25 -10
  52. package/dest/cli/cmds/start_txe.d.ts +2 -2
  53. package/dest/cli/cmds/start_txe.d.ts.map +1 -1
  54. package/dest/cli/cmds/start_txe.js +6 -5
  55. package/dest/cli/cmds/utils/artifacts.d.ts +21 -0
  56. package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -0
  57. package/dest/cli/cmds/utils/artifacts.js +24 -0
  58. package/dest/cli/cmds/utils/collect_crate_dirs.d.ts +21 -0
  59. package/dest/cli/cmds/utils/collect_crate_dirs.d.ts.map +1 -0
  60. package/dest/cli/cmds/utils/collect_crate_dirs.js +114 -0
  61. package/dest/cli/cmds/utils/needs_recompile.d.ts +10 -0
  62. package/dest/cli/cmds/utils/needs_recompile.d.ts.map +1 -0
  63. package/dest/cli/cmds/utils/needs_recompile.js +90 -0
  64. package/dest/cli/cmds/utils/spawn.d.ts +3 -0
  65. package/dest/cli/cmds/utils/spawn.d.ts.map +1 -0
  66. package/dest/cli/cmds/utils/spawn.js +16 -0
  67. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts +4 -0
  68. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts.map +1 -0
  69. package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.js +61 -0
  70. package/dest/cli/index.d.ts +1 -1
  71. package/dest/cli/preload_crs.d.ts +3 -0
  72. package/dest/cli/preload_crs.d.ts.map +1 -0
  73. package/dest/cli/preload_crs.js +6 -0
  74. package/dest/cli/util.d.ts +37 -17
  75. package/dest/cli/util.d.ts.map +1 -1
  76. package/dest/cli/util.js +171 -35
  77. package/dest/cli/versioning.d.ts +1 -1
  78. package/dest/cli/versioning.js +3 -3
  79. package/dest/examples/token.d.ts +1 -1
  80. package/dest/examples/token.js +31 -18
  81. package/dest/examples/util.d.ts +5 -6
  82. package/dest/examples/util.d.ts.map +1 -1
  83. package/dest/examples/util.js +5 -6
  84. package/dest/index.d.ts +2 -2
  85. package/dest/index.d.ts.map +1 -1
  86. package/dest/index.js +1 -1
  87. package/dest/local-network/auth_registry.d.ts +5 -0
  88. package/dest/local-network/auth_registry.d.ts.map +1 -0
  89. package/dest/local-network/auth_registry.js +17 -0
  90. package/dest/local-network/banana_fpc.d.ts +11 -0
  91. package/dest/local-network/banana_fpc.d.ts.map +1 -0
  92. package/dest/{sandbox → local-network}/banana_fpc.js +29 -27
  93. package/dest/local-network/index.d.ts +4 -0
  94. package/dest/local-network/index.d.ts.map +1 -0
  95. package/dest/local-network/index.js +3 -0
  96. package/dest/local-network/local-network.d.ts +50 -0
  97. package/dest/local-network/local-network.d.ts.map +1 -0
  98. package/dest/local-network/local-network.js +248 -0
  99. package/dest/local-network/sponsored_fpc.d.ts +5 -0
  100. package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
  101. package/dest/local-network/sponsored_fpc.js +18 -0
  102. package/dest/mnemonic.d.ts +1 -1
  103. package/dest/splash.d.ts +1 -1
  104. package/dest/testing/anvil_test_watcher.d.ts +54 -0
  105. package/dest/testing/anvil_test_watcher.d.ts.map +1 -0
  106. package/dest/testing/anvil_test_watcher.js +235 -0
  107. package/dest/testing/cheat_codes.d.ts +44 -0
  108. package/dest/testing/cheat_codes.d.ts.map +1 -0
  109. package/dest/testing/cheat_codes.js +98 -0
  110. package/dest/testing/epoch_test_settler.d.ts +19 -0
  111. package/dest/testing/epoch_test_settler.d.ts.map +1 -0
  112. package/dest/testing/epoch_test_settler.js +63 -0
  113. package/dest/testing/index.d.ts +6 -0
  114. package/dest/testing/index.d.ts.map +1 -0
  115. package/dest/testing/index.js +5 -0
  116. package/dest/testing/token_allowed_setup.d.ts +7 -0
  117. package/dest/testing/token_allowed_setup.d.ts.map +1 -0
  118. package/dest/testing/token_allowed_setup.js +20 -0
  119. package/package.json +56 -45
  120. package/scripts/add_crate.sh +53 -0
  121. package/scripts/aztec.sh +73 -0
  122. package/scripts/init.sh +39 -0
  123. package/scripts/new.sh +83 -0
  124. package/scripts/setup_workspace.sh +69 -0
  125. package/scripts/templates/blank/contract/Nargo.toml +6 -0
  126. package/scripts/templates/blank/contract/src/main.nr +10 -0
  127. package/scripts/templates/blank/test/Nargo.toml +7 -0
  128. package/scripts/templates/blank/test/src/lib.nr +11 -0
  129. package/scripts/templates/counter/contract/Nargo.toml +7 -0
  130. package/scripts/templates/counter/contract/src/main.nr +48 -0
  131. package/scripts/templates/counter/test/Nargo.toml +7 -0
  132. package/scripts/templates/counter/test/src/lib.nr +32 -0
  133. package/src/bin/index.ts +33 -13
  134. package/src/cli/admin_api_key_store.ts +128 -0
  135. package/src/cli/aztec_start_action.ts +100 -46
  136. package/src/cli/aztec_start_options.ts +183 -226
  137. package/src/cli/cli.ts +19 -11
  138. package/src/cli/cmds/compile.ts +192 -0
  139. package/src/cli/cmds/migrate_ha_db.ts +43 -0
  140. package/src/cli/cmds/profile.ts +26 -0
  141. package/src/cli/cmds/profile_flamegraph.ts +64 -0
  142. package/src/cli/cmds/profile_gates.ts +84 -0
  143. package/src/cli/cmds/profile_utils.ts +58 -0
  144. package/src/cli/cmds/standby.ts +132 -0
  145. package/src/cli/cmds/start_bot.ts +43 -19
  146. package/src/cli/cmds/start_node.ts +142 -91
  147. package/src/cli/cmds/start_p2p_bootstrap.ts +14 -6
  148. package/src/cli/cmds/start_prover_agent.ts +25 -16
  149. package/src/cli/cmds/start_prover_broker.ts +32 -9
  150. package/src/cli/cmds/start_txe.ts +7 -5
  151. package/src/cli/cmds/utils/artifacts.ts +44 -0
  152. package/src/cli/cmds/utils/collect_crate_dirs.ts +118 -0
  153. package/src/cli/cmds/utils/needs_recompile.ts +98 -0
  154. package/src/cli/cmds/utils/spawn.ts +16 -0
  155. package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +76 -0
  156. package/src/cli/preload_crs.ts +7 -0
  157. package/src/cli/util.ts +192 -56
  158. package/src/cli/versioning.ts +3 -3
  159. package/src/examples/token.ts +23 -19
  160. package/src/examples/util.ts +6 -8
  161. package/src/index.ts +5 -6
  162. package/src/local-network/auth_registry.ts +19 -0
  163. package/src/{sandbox → local-network}/banana_fpc.ts +32 -29
  164. package/src/local-network/index.ts +7 -0
  165. package/src/local-network/local-network.ts +303 -0
  166. package/src/local-network/sponsored_fpc.ts +26 -0
  167. package/src/testing/anvil_test_watcher.ts +273 -0
  168. package/src/testing/cheat_codes.ts +132 -0
  169. package/src/testing/epoch_test_settler.ts +69 -0
  170. package/src/testing/index.ts +5 -0
  171. package/src/testing/token_allowed_setup.ts +19 -0
  172. package/dest/cli/chain_l2_config.d.ts +0 -19
  173. package/dest/cli/chain_l2_config.d.ts.map +0 -1
  174. package/dest/cli/chain_l2_config.js +0 -56
  175. package/dest/cli/cmds/start_archiver.d.ts +0 -9
  176. package/dest/cli/cmds/start_archiver.d.ts.map +0 -1
  177. package/dest/cli/cmds/start_archiver.js +0 -42
  178. package/dest/cli/cmds/start_blob_sink.d.ts +0 -3
  179. package/dest/cli/cmds/start_blob_sink.d.ts.map +0 -1
  180. package/dest/cli/cmds/start_blob_sink.js +0 -17
  181. package/dest/cli/cmds/start_faucet.d.ts +0 -4
  182. package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
  183. package/dest/cli/cmds/start_faucet.js +0 -20
  184. package/dest/cli/cmds/start_prover_node.d.ts +0 -7
  185. package/dest/cli/cmds/start_prover_node.d.ts.map +0 -1
  186. package/dest/cli/cmds/start_prover_node.js +0 -110
  187. package/dest/cli/cmds/start_pxe.d.ts +0 -16
  188. package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
  189. package/dest/cli/cmds/start_pxe.js +0 -95
  190. package/dest/cli/get_l1_config.d.ts +0 -7
  191. package/dest/cli/get_l1_config.d.ts.map +0 -1
  192. package/dest/cli/get_l1_config.js +0 -13
  193. package/dest/sandbox/banana_fpc.d.ts +0 -11
  194. package/dest/sandbox/banana_fpc.d.ts.map +0 -1
  195. package/dest/sandbox/index.d.ts +0 -5
  196. package/dest/sandbox/index.d.ts.map +0 -1
  197. package/dest/sandbox/index.js +0 -4
  198. package/dest/sandbox/sandbox.d.ts +0 -76
  199. package/dest/sandbox/sandbox.d.ts.map +0 -1
  200. package/dest/sandbox/sandbox.js +0 -181
  201. package/dest/sandbox/sponsored_fee_payment_method.d.ts +0 -23
  202. package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +0 -1
  203. package/dest/sandbox/sponsored_fee_payment_method.js +0 -36
  204. package/dest/sandbox/sponsored_fpc.d.ts +0 -6
  205. package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
  206. package/dest/sandbox/sponsored_fpc.js +0 -26
  207. package/src/cli/chain_l2_config.ts +0 -74
  208. package/src/cli/cmds/start_archiver.ts +0 -55
  209. package/src/cli/cmds/start_blob_sink.ts +0 -31
  210. package/src/cli/cmds/start_faucet.ts +0 -34
  211. package/src/cli/cmds/start_prover_node.ts +0 -121
  212. package/src/cli/cmds/start_pxe.ts +0 -129
  213. package/src/cli/get_l1_config.ts +0 -18
  214. package/src/sandbox/index.ts +0 -5
  215. package/src/sandbox/sandbox.ts +0 -229
  216. package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
  217. package/src/sandbox/sponsored_fpc.ts +0 -38
@@ -1,8 +1,10 @@
1
1
  import { type ArchiverConfig, archiverConfigMappings } from '@aztec/archiver/config';
2
- import { faucetConfigMapping } from '@aztec/aztec-faucet/config';
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 { 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/config';
20
18
  import { proverNodeConfigMappings } from '@aztec/prover-node/config';
21
19
  import { allPxeConfigMappings } from '@aztec/pxe/config';
22
- import { telemetryClientConfigMappings } from '@aztec/telemetry-client';
20
+ import { sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
21
+ import { chainConfigMappings, nodeRpcConfigMappings } from '@aztec/stdlib/config';
22
+ import { dataConfigMappings } from '@aztec/stdlib/kv-store';
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 | undefined;
32
+ defaultValue: any;
31
33
  printDefault?: (val: any) => string;
32
- envVar: EnvVar | undefined;
34
+ env: EnvVar | undefined;
35
+ fallback?: EnvVar[];
33
36
  parseVal?: (val: string) => any;
34
37
  }
35
38
 
36
- export const getOptions = (namespace: string, configMappings: Record<string, ConfigMapping>) => {
39
+ export const getOptions = (namespace: string, configMappings: Record<string, ConfigMapping<unknown>>) => {
37
40
  const options: AztecStartOption[] = [];
38
- for (const [key, { env, defaultValue: def, parseEnv, description, printDefault }] of Object.entries(configMappings)) {
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,167 @@ export const getOptions = (namespace: string, configMappings: Record<string, Con
45
50
  description,
46
51
  defaultValue: def,
47
52
  printDefault,
48
- envVar: env,
53
+ env: env,
54
+ fallback,
49
55
  parseVal: parseEnv,
50
56
  });
51
57
  }
52
58
  return options;
53
59
  };
54
60
 
61
+ const configToFlag = (
62
+ flag: string,
63
+ configMapping: ConfigMapping<unknown>,
64
+ overrideDefaultValue?: any,
65
+ ): AztecStartOption => {
66
+ if (!configMapping.isBoolean) {
67
+ flag += ' <value>';
68
+ }
69
+
70
+ const flagConfig: AztecStartOption = {
71
+ flag,
72
+ env: undefined,
73
+ defaultValue: undefined,
74
+ parseVal: configMapping.parseEnv,
75
+ ...configMapping,
76
+ };
77
+
78
+ if (overrideDefaultValue !== undefined) {
79
+ flagConfig.defaultValue = overrideDefaultValue;
80
+ }
81
+
82
+ return flagConfig;
83
+ };
84
+
55
85
  // These are options used by multiple modules so should be inputted once
56
- export const universalOptions = ['l1RpcUrls', 'l1ChainId', 'l1Contracts', 'p2pEnabled', 'dataDirectory'];
86
+ export const universalOptions = [
87
+ 'l1ConsensusHostUrls',
88
+ 'l1ConsensusHostApiKeys',
89
+ 'l1ConsensusHostApiKeyHeaders',
90
+ 'p2pEnabled',
91
+ 'fishermanMode',
92
+ ...getKeys(chainConfigMappings),
93
+ ...getKeys(l1ContractsConfigMappings),
94
+ ...getKeys(l1ContractAddressesMapping),
95
+ ...getKeys(l1ReaderConfigMappings),
96
+ ...getKeys(dataConfigMappings),
97
+ ...getKeys(worldStateConfigMappings),
98
+ ];
99
+
100
+ export const NETWORK_FLAG = 'network';
57
101
 
58
102
  // Define categories and options
59
103
  export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
60
- NETWORK: [
104
+ MISC: [
61
105
  {
62
- flag: '--network <value>',
106
+ flag: `--${NETWORK_FLAG} <value>`,
63
107
  description: 'Network to run Aztec on',
64
108
  defaultValue: undefined,
65
- envVar: 'NETWORK',
109
+ env: 'NETWORK',
66
110
  },
111
+
112
+ configToFlag('--enable-version-check', sharedNodeConfigMappings.enableVersionCheck),
113
+
114
+ configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
115
+ configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls),
116
+
117
+ configToFlag('--fisherman-mode', sharedNodeConfigMappings.fishermanMode),
67
118
  ],
68
- SANDBOX: [
119
+ LOCAL_NETWORK: [
69
120
  {
70
- flag: '--sandbox',
71
- description: 'Starts Aztec Sandbox',
121
+ flag: '--local-network',
122
+ description: 'Starts Aztec Local Network',
72
123
  defaultValue: undefined,
73
- envVar: undefined,
124
+ env: undefined,
74
125
  },
75
126
  {
76
- flag: '--sandbox.testAccounts',
77
- description: 'Deploy test accounts on sandbox start',
78
- envVar: 'TEST_ACCOUNTS',
79
- ...booleanConfigHelper(true),
127
+ flag: '--local-network.l1Mnemonic <value>',
128
+ description: 'Mnemonic for L1 accounts. Will be used ',
129
+ defaultValue: DefaultMnemonic,
130
+ env: 'MNEMONIC',
80
131
  },
81
132
  {
82
- flag: '--sandbox.noPXE',
83
- description: 'Do not expose PXE service on sandbox start',
84
- envVar: 'NO_PXE',
85
- ...booleanConfigHelper(),
133
+ flag: '--local-network.testAccounts',
134
+ description: 'Deploy test accounts on local network start',
135
+ env: 'TEST_ACCOUNTS',
136
+ ...booleanConfigHelper(true),
86
137
  },
87
138
  ],
88
139
  API: [
89
140
  {
90
141
  flag: '--port <value>',
91
- description: 'Port to run the Aztec Services on on',
142
+ description: 'Port to run the Aztec Services on',
92
143
  defaultValue: 8080,
93
- envVar: 'AZTEC_PORT',
144
+ env: 'AZTEC_PORT',
94
145
  parseVal: val => parseInt(val, 10),
95
146
  },
96
147
  {
97
- flag: '--api-prefix <value>',
98
- description: 'Prefix for API routes on any service that is started',
99
- defaultValue: '',
100
- envVar: 'API_PREFIX',
101
- },
102
- ],
103
- 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',
148
+ flag: '--admin-port <value>',
149
+ description: 'Port to run admin APIs of Aztec Services on',
150
+ defaultValue: 8880,
151
+ env: 'AZTEC_ADMIN_PORT',
116
152
  parseVal: val => parseInt(val, 10),
117
153
  },
118
154
  {
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
- },
124
- ],
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',
155
+ flag: '--admin-api-key-hash <value>',
156
+ description:
157
+ 'SHA-256 hex hash of a pre-generated admin API key. When set, the node uses this hash for authentication instead of auto-generating a key.',
141
158
  defaultValue: undefined,
142
- envVar: 'INBOX_CONTRACT_ADDRESS',
159
+ env: 'AZTEC_ADMIN_API_KEY_HASH',
143
160
  },
144
161
  {
145
- flag: '--outbox-address <value>',
146
- description: 'The deployed L2 -> L1 outbox contract address',
147
- defaultValue: undefined,
148
- envVar: 'OUTBOX_CONTRACT_ADDRESS',
162
+ flag: '--disable-admin-api-key',
163
+ description:
164
+ 'Disable API key authentication on the admin RPC endpoint. By default, a key is auto-generated, displayed once, and its hash is persisted.',
165
+ defaultValue: false,
166
+ env: 'AZTEC_DISABLE_ADMIN_API_KEY',
167
+ // undefined means the flag was passed without a value (boolean toggle), treat as true.
168
+ parseVal: val => val === undefined || val === 'true' || val === '1',
149
169
  },
150
170
  {
151
- flag: '--fee-juice-address <value>',
152
- description: 'The deployed L1 Fee Juice contract address',
153
- defaultValue: undefined,
154
- envVar: 'FEE_JUICE_CONTRACT_ADDRESS',
171
+ flag: '--reset-admin-api-key',
172
+ description:
173
+ 'Force-generate a new admin API key, replacing any previously persisted key hash. The new key is displayed once at startup.',
174
+ defaultValue: false,
175
+ env: 'AZTEC_RESET_ADMIN_API_KEY',
176
+ parseVal: val => val === 'true' || val === '1',
155
177
  },
156
178
  {
157
- flag: '--staking-asset-address <value>',
158
- description: 'The deployed L1 Staking Asset contract address',
159
- defaultValue: undefined,
160
- envVar: 'STAKING_ASSET_CONTRACT_ADDRESS',
179
+ flag: '--node-debug',
180
+ description: 'Expose debug endpoints (e.g. mineBlock) on the main RPC port',
181
+ defaultValue: false,
182
+ env: 'AZTEC_NODE_DEBUG',
183
+ parseVal: val => val === undefined || val === 'true' || val === '1',
161
184
  },
162
185
  {
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',
186
+ flag: '--api-prefix <value>',
187
+ description: 'Prefix for API routes on any service that is started',
188
+ defaultValue: '',
189
+ env: 'API_PREFIX',
167
190
  },
191
+ configToFlag('--rpcMaxBatchSize', nodeRpcConfigMappings.rpcMaxBatchSize),
192
+ configToFlag('--rpcMaxBodySize', nodeRpcConfigMappings.rpcMaxBodySize),
193
+ ],
194
+ ETHEREUM: [
195
+ configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
196
+ // Do not set default for CLI: keep undefined unless provided via flag or env
197
+ configToFlag('--l1-rpc-urls', { ...l1ReaderConfigMappings.l1RpcUrls, defaultValue: undefined }),
198
+ configToFlag('--l1-consensus-host-urls', blobClientConfigMapping.l1ConsensusHostUrls),
199
+ configToFlag('--l1-consensus-host-api-keys', blobClientConfigMapping.l1ConsensusHostApiKeys),
200
+ configToFlag('--l1-consensus-host-api-key-headers', blobClientConfigMapping.l1ConsensusHostApiKeyHeaders),
201
+ ],
202
+ 'L1 CONTRACTS': [
203
+ configToFlag('--registry-address', l1ContractAddressesMapping.registryAddress),
204
+ configToFlag('--rollup-version', chainConfigMappings.rollupVersion),
205
+ ],
206
+ STORAGE: [
207
+ configToFlag('--data-directory', dataConfigMappings.dataDirectory),
208
+ configToFlag('--data-store-map-size-kb', dataConfigMappings.dataStoreMapSizeKb),
209
+ ],
210
+ 'WORLD STATE': [
211
+ configToFlag('--world-state-data-directory', worldStateConfigMappings.worldStateDataDirectory),
212
+ configToFlag('--world-state-db-map-size-kb', worldStateConfigMappings.worldStateDbMapSizeKb),
213
+ configToFlag('--world-state-checkpoint-history', worldStateConfigMappings.worldStateCheckpointHistory),
168
214
  ],
169
215
  // We can't easily auto-generate node options as they're parts of modules defined below
170
216
  'AZTEC NODE': [
@@ -172,129 +218,46 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
172
218
  flag: '--node',
173
219
  description: 'Starts Aztec Node with options',
174
220
  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(),
221
+ env: undefined,
229
222
  },
230
223
  ],
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,
247
- },
248
- ...getOptions('pxe', allPxeConfigMappings),
249
- ],
250
224
  ARCHIVER: [
251
- {
252
- flag: '--archiver',
253
- description: 'Starts Aztec Archiver with options',
254
- defaultValue: undefined,
255
- envVar: undefined,
256
- },
257
- // filter out archiverUrl as it's passed separately in --node & --prover-node
258
- ...getOptions('archiver', archiverConfigMappings).filter(opt => !opt.flag.includes('archiverUrl')),
225
+ ...getOptions(
226
+ 'archiver',
227
+ omitConfigMappings(archiverConfigMappings, Object.keys(l1ContractsConfigMappings) as (keyof ArchiverConfig)[]),
228
+ ),
259
229
  ],
260
230
  SEQUENCER: [
261
231
  {
262
232
  flag: '--sequencer',
263
233
  description: 'Starts Aztec Sequencer with options',
264
234
  defaultValue: undefined,
265
- envVar: undefined,
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,
235
+ env: undefined,
275
236
  },
276
- ...getOptions('blobSink', blobSinkConfigMappings),
237
+ ...getOptions(
238
+ 'sequencer',
239
+ omitConfigMappings(sequencerClientConfigMappings, [
240
+ 'fakeProcessingDelayPerTxMs',
241
+ 'fakeThrowAfterProcessingTxCount',
242
+ 'skipCollectingAttestations',
243
+ 'skipInvalidateBlockAsProposer',
244
+ 'blobSinkMapSizeKb',
245
+ ]),
246
+ ),
277
247
  ],
278
248
  'PROVER NODE': [
279
249
  {
280
250
  flag: '--prover-node',
281
251
  description: 'Starts Aztec Prover Node with options',
282
252
  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',
253
+ env: undefined,
290
254
  },
291
255
  ...getOptions(
292
256
  'proverNode',
293
257
  omitConfigMappings(proverNodeConfigMappings, [
294
258
  // 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)[]),
259
+ ...getKeys(proverBrokerConfigMappings),
260
+ ...getKeys(proverAgentConfigMappings),
298
261
  ]),
299
262
  ),
300
263
  ],
@@ -303,69 +266,63 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
303
266
  flag: '--prover-broker',
304
267
  description: 'Starts Aztec proving job broker',
305
268
  defaultValue: undefined,
306
- envVar: undefined,
269
+ env: undefined,
307
270
  },
308
- ...getOptions(
309
- 'proverBroker',
310
- // filter out archiver options from prover node options as they're passed separately in --archiver
311
- proverBrokerConfigMappings,
312
- ),
271
+ ...getOptions('proverBroker', proverBrokerConfigMappings),
313
272
  ],
314
273
  'PROVER AGENT': [
315
274
  {
316
275
  flag: '--prover-agent',
317
276
  description: 'Starts Aztec Prover Agent with options',
318
277
  defaultValue: undefined,
319
- envVar: undefined,
278
+ env: undefined,
320
279
  },
321
280
  ...getOptions('proverAgent', proverAgentConfigMappings),
322
281
  ],
282
+ 'P2P SUBSYSTEM': [
283
+ {
284
+ flag: '--p2p-enabled [value]',
285
+ description: 'Enable P2P subsystem',
286
+ env: 'P2P_ENABLED',
287
+ ...booleanConfigHelper(),
288
+ },
289
+ ...getOptions('p2p', p2pConfigMappings),
290
+ ],
323
291
  'P2P BOOTSTRAP': [
324
292
  {
325
293
  flag: '--p2p-bootstrap',
326
294
  description: 'Starts Aztec P2P Bootstrap with options',
327
295
  defaultValue: undefined,
328
- envVar: undefined,
296
+ env: undefined,
329
297
  },
330
- ...getOptions('p2pBootstrap', bootnodeConfigMappings),
298
+ ...getOptions(
299
+ 'p2pBootstrap',
300
+ omitConfigMappings(bootnodeConfigMappings, [
301
+ 'p2pIp',
302
+ 'p2pPort',
303
+ 'peerIdPrivateKey',
304
+ 'bootstrapNodes',
305
+ 'listenAddress',
306
+ ]),
307
+ ),
331
308
  ],
309
+ TELEMETRY: [...getOptions('tel', telemetryClientConfigMappings)],
332
310
  BOT: [
333
311
  {
334
312
  flag: '--bot',
335
313
  description: 'Starts Aztec Bot with options',
336
314
  defaultValue: undefined,
337
- envVar: undefined,
315
+ env: undefined,
338
316
  },
339
317
  ...getOptions('bot', botConfigMappings),
340
318
  ],
319
+ PXE: [...getOptions('pxe', allPxeConfigMappings)],
341
320
  TXE: [
342
321
  {
343
322
  flag: '--txe',
344
323
  description: 'Starts Aztec TXE with options',
345
324
  defaultValue: undefined,
346
- envVar: undefined,
347
- },
348
- ],
349
- FAUCET: [
350
- {
351
- flag: '--faucet',
352
- description: 'Starts the Aztec faucet',
353
- 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),
325
+ env: undefined,
368
326
  },
369
- ...getOptions('faucet', faucetConfigMapping),
370
327
  ],
371
328
  };
package/src/cli/cli.ts CHANGED
@@ -31,18 +31,26 @@ export function injectAztecCommands(program: Command, userLog: LogFn, debugLogge
31
31
 
32
32
  program.configureHelp({ sortSubcommands: true });
33
33
 
34
- program.addHelpText(
35
- 'after',
36
- `
37
-
38
- Additional commands:
39
-
40
- test [options]: starts a dockerized TXE node via
41
- $ aztec start --txe
42
- then runs
43
- $ aztec-nargo test --silence-warnings --oracle-resolver=<TXE_ADDRESS> [options]
34
+ if (process.env.AZTEC_SHELL_WRAPPER) {
35
+ program.addHelpText(
36
+ 'after',
37
+ `
38
+ Additional commands:
39
+
40
+ init creates a new Aztec Noir workspace in the current directory.
41
+ new <name> creates a new Aztec Noir workspace in its own directory (or creates a new contract-test crates pair and adds it to the current workspace if run in workspace).
42
+ test [options] starts a TXE and runs "nargo test" using it as the oracle resolver.
44
43
  `,
45
- );
44
+ );
45
+ }
46
+
47
+ program
48
+ .command('preload-crs')
49
+ .description('Preload the points data needed for proving and verifying')
50
+ .action(async options => {
51
+ const { preloadCrs } = await import('./preload_crs.js');
52
+ return await preloadCrs(options, userLog, debugLogger);
53
+ });
46
54
 
47
55
  return program;
48
56
  }