@aztec/aztec 0.0.0-test.1 → 0.0.1-commit.001888fc

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