@aztec/aztec 0.0.0-test.1 → 0.0.1-fake-ceab37513c

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 (111) hide show
  1. package/dest/bin/index.js +15 -7
  2. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  3. package/dest/cli/aztec_start_action.js +30 -19
  4. package/dest/cli/aztec_start_options.d.ts +4 -2
  5. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  6. package/dest/cli/aztec_start_options.js +142 -206
  7. package/dest/cli/cli.d.ts.map +1 -1
  8. package/dest/cli/cli.js +4 -0
  9. package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
  10. package/dest/cli/cmds/start_archiver.js +17 -9
  11. package/dest/cli/cmds/start_blob_sink.d.ts.map +1 -1
  12. package/dest/cli/cmds/start_blob_sink.js +17 -1
  13. package/dest/cli/cmds/start_bot.d.ts +1 -1
  14. package/dest/cli/cmds/start_bot.d.ts.map +1 -1
  15. package/dest/cli/cmds/start_bot.js +18 -3
  16. package/dest/cli/cmds/start_node.d.ts +1 -1
  17. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  18. package/dest/cli/cmds/start_node.js +60 -65
  19. package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
  20. package/dest/cli/cmds/start_p2p_bootstrap.js +9 -4
  21. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
  22. package/dest/cli/cmds/start_prover_agent.js +31 -2
  23. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  24. package/dest/cli/cmds/start_prover_broker.js +9 -3
  25. package/dest/cli/cmds/start_prover_node.d.ts.map +1 -1
  26. package/dest/cli/cmds/start_prover_node.js +41 -43
  27. package/dest/cli/cmds/start_pxe.d.ts +1 -1
  28. package/dest/cli/cmds/start_pxe.d.ts.map +1 -1
  29. package/dest/cli/cmds/start_pxe.js +3 -67
  30. package/dest/cli/preload_crs.d.ts +3 -0
  31. package/dest/cli/preload_crs.d.ts.map +1 -0
  32. package/dest/cli/preload_crs.js +6 -0
  33. package/dest/cli/release_version.d.ts +2 -0
  34. package/dest/cli/release_version.d.ts.map +1 -0
  35. package/dest/cli/release_version.js +14 -0
  36. package/dest/cli/util.d.ts +31 -2
  37. package/dest/cli/util.d.ts.map +1 -1
  38. package/dest/cli/util.js +194 -24
  39. package/dest/examples/token.js +21 -10
  40. package/dest/examples/util.d.ts +3 -4
  41. package/dest/examples/util.d.ts.map +1 -1
  42. package/dest/examples/util.js +4 -5
  43. package/dest/index.d.ts +1 -1
  44. package/dest/index.d.ts.map +1 -1
  45. package/dest/index.js +1 -1
  46. package/dest/sandbox/banana_fpc.js +5 -3
  47. package/dest/sandbox/index.d.ts +0 -1
  48. package/dest/sandbox/index.d.ts.map +1 -1
  49. package/dest/sandbox/index.js +0 -1
  50. package/dest/sandbox/sandbox.d.ts +24 -16
  51. package/dest/sandbox/sandbox.d.ts.map +1 -1
  52. package/dest/sandbox/sandbox.js +41 -26
  53. package/dest/sandbox/sponsored_fpc.d.ts +1 -3
  54. package/dest/sandbox/sponsored_fpc.d.ts.map +1 -1
  55. package/dest/sandbox/sponsored_fpc.js +4 -11
  56. package/dest/testing/anvil_test_watcher.d.ts +34 -0
  57. package/dest/testing/anvil_test_watcher.d.ts.map +1 -0
  58. package/dest/testing/anvil_test_watcher.js +143 -0
  59. package/dest/testing/aztec_cheat_codes.d.ts +59 -0
  60. package/dest/testing/aztec_cheat_codes.d.ts.map +1 -0
  61. package/dest/testing/aztec_cheat_codes.js +62 -0
  62. package/dest/testing/cheat_codes.d.ts +44 -0
  63. package/dest/testing/cheat_codes.d.ts.map +1 -0
  64. package/dest/testing/cheat_codes.js +63 -0
  65. package/dest/testing/index.d.ts +5 -0
  66. package/dest/testing/index.d.ts.map +1 -0
  67. package/dest/testing/index.js +4 -0
  68. package/package.json +47 -41
  69. package/src/bin/index.ts +19 -7
  70. package/src/cli/aztec_start_action.ts +25 -19
  71. package/src/cli/aztec_start_options.ts +160 -206
  72. package/src/cli/cli.ts +8 -0
  73. package/src/cli/cmds/start_archiver.ts +18 -12
  74. package/src/cli/cmds/start_blob_sink.ts +27 -1
  75. package/src/cli/cmds/start_bot.ts +18 -4
  76. package/src/cli/cmds/start_node.ts +81 -75
  77. package/src/cli/cmds/start_p2p_bootstrap.ts +12 -4
  78. package/src/cli/cmds/start_prover_agent.ts +22 -2
  79. package/src/cli/cmds/start_prover_broker.ts +23 -3
  80. package/src/cli/cmds/start_prover_node.ts +51 -48
  81. package/src/cli/cmds/start_pxe.ts +3 -83
  82. package/src/cli/preload_crs.ts +7 -0
  83. package/src/cli/release_version.ts +21 -0
  84. package/src/cli/util.ts +201 -29
  85. package/src/examples/token.ts +11 -10
  86. package/src/examples/util.ts +5 -7
  87. package/src/index.ts +0 -1
  88. package/src/sandbox/banana_fpc.ts +5 -5
  89. package/src/sandbox/index.ts +0 -1
  90. package/src/sandbox/sandbox.ts +56 -32
  91. package/src/sandbox/sponsored_fpc.ts +4 -15
  92. package/src/testing/anvil_test_watcher.ts +167 -0
  93. package/src/testing/aztec_cheat_codes.ts +77 -0
  94. package/src/testing/cheat_codes.ts +79 -0
  95. package/src/testing/index.ts +4 -0
  96. package/dest/cli/chain_l2_config.d.ts +0 -19
  97. package/dest/cli/chain_l2_config.d.ts.map +0 -1
  98. package/dest/cli/chain_l2_config.js +0 -56
  99. package/dest/cli/cmds/start_faucet.d.ts +0 -4
  100. package/dest/cli/cmds/start_faucet.d.ts.map +0 -1
  101. package/dest/cli/cmds/start_faucet.js +0 -20
  102. package/dest/cli/get_l1_config.d.ts +0 -7
  103. package/dest/cli/get_l1_config.d.ts.map +0 -1
  104. package/dest/cli/get_l1_config.js +0 -13
  105. package/dest/sandbox/sponsored_fee_payment_method.d.ts +0 -23
  106. package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +0 -1
  107. package/dest/sandbox/sponsored_fee_payment_method.js +0 -36
  108. package/src/cli/chain_l2_config.ts +0 -74
  109. package/src/cli/cmds/start_faucet.ts +0 -34
  110. package/src/cli/get_l1_config.ts +0 -18
  111. package/src/sandbox/sponsored_fee_payment_method.ts +0 -46
package/dest/bin/index.js CHANGED
@@ -2,18 +2,18 @@
2
2
  //
3
3
  import { injectCommands as injectBuilderCommands } from '@aztec/builder';
4
4
  import { injectCommands as injectWalletCommands } from '@aztec/cli-wallet';
5
+ import { enrichEnvironmentWithChainConfig, enrichEnvironmentWithNetworkConfig } from '@aztec/cli/config';
5
6
  import { injectCommands as injectContractCommands } from '@aztec/cli/contracts';
6
- import { injectCommands as injectDevnetCommands } from '@aztec/cli/devnet';
7
7
  import { injectCommands as injectInfrastructureCommands } from '@aztec/cli/infrastructure';
8
8
  import { injectCommands as injectL1Commands } from '@aztec/cli/l1';
9
9
  import { injectCommands as injectMiscCommands } from '@aztec/cli/misc';
10
10
  import { injectCommands as injectPXECommands } from '@aztec/cli/pxe';
11
+ import { getActiveNetworkName } from '@aztec/foundation/config';
11
12
  import { createConsoleLogger, createLogger } from '@aztec/foundation/log';
12
- import { fileURLToPath } from '@aztec/foundation/url';
13
13
  import { Command } from 'commander';
14
- import { readFileSync } from 'fs';
15
- import { dirname, resolve } from 'path';
14
+ import { NETWORK_FLAG } from '../cli/aztec_start_options.js';
16
15
  import { injectAztecCommands } from '../cli/index.js';
16
+ import { getCliVersion } from '../cli/release_version.js';
17
17
  const userLog = createConsoleLogger();
18
18
  const debugLogger = createLogger('cli');
19
19
  /** CLI & full node main entrypoint */ async function main() {
@@ -22,8 +22,17 @@ const debugLogger = createLogger('cli');
22
22
  };
23
23
  process.once('SIGINT', shutdown);
24
24
  process.once('SIGTERM', shutdown);
25
- const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
26
- const cliVersion = JSON.parse(readFileSync(packageJsonPath).toString()).version;
25
+ // Intercept the setting of a network and enrich the environment with defaults for that network
26
+ let networkValue;
27
+ const args = process.argv.slice(2);
28
+ const networkIndex = args.findIndex((arg)=>arg.startsWith(`--${NETWORK_FLAG}=`) || arg === `--${NETWORK_FLAG}`);
29
+ if (networkIndex !== -1) {
30
+ networkValue = args[networkIndex].split('=')[1] || args[networkIndex + 1];
31
+ }
32
+ const networkName = getActiveNetworkName(networkValue);
33
+ await enrichEnvironmentWithNetworkConfig(networkName);
34
+ enrichEnvironmentWithChainConfig(networkName);
35
+ const cliVersion = getCliVersion();
27
36
  let program = new Command('aztec');
28
37
  program.description('Aztec command line interface').version(cliVersion);
29
38
  program = injectAztecCommands(program, userLog, debugLogger);
@@ -33,7 +42,6 @@ const debugLogger = createLogger('cli');
33
42
  program = injectL1Commands(program, userLog, debugLogger);
34
43
  program = injectPXECommands(program, userLog, debugLogger);
35
44
  program = injectMiscCommands(program, userLog);
36
- program = injectDevnetCommands(program, userLog, debugLogger);
37
45
  program = injectWalletCommands(program, userLog, debugLogger);
38
46
  await program.parseAsync(process.argv);
39
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aztec_start_action.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_action.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAmB3D,wBAAsB,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAyFjF"}
1
+ {"version":3,"file":"aztec_start_action.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_action.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAY3D,wBAAsB,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAsGjF"}
@@ -1,33 +1,31 @@
1
1
  import { createNamespacedSafeJsonRpcServer, startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
2
- import { fileURLToPath } from '@aztec/foundation/url';
3
2
  import { AztecNodeApiSchema, PXESchema } from '@aztec/stdlib/interfaces/client';
4
3
  import { getVersioningMiddleware } from '@aztec/stdlib/versioning';
5
4
  import { getOtelJsonRpcPropagationMiddleware } from '@aztec/telemetry-client';
6
- import { readFileSync } from 'fs';
7
- import { dirname, resolve } from 'path';
8
5
  import { createSandbox } from '../sandbox/index.js';
9
6
  import { github, splash } from '../splash.js';
10
- import { enrichEnvironmentWithChainConfig } from './chain_l2_config.js';
7
+ import { getCliVersion } from './release_version.js';
11
8
  import { extractNamespacedOptions, installSignalHandlers } from './util.js';
12
9
  import { getVersions } from './versioning.js';
13
- const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
14
- const cliVersion = JSON.parse(readFileSync(packageJsonPath).toString()).version;
15
10
  export async function aztecStart(options, userLog, debugLogger) {
16
11
  // list of 'stop' functions to call when process ends
17
12
  const signalHandlers = [];
18
13
  const services = {};
14
+ const adminServices = {};
19
15
  let config = undefined;
20
16
  if (options.sandbox) {
17
+ const cliVersion = getCliVersion();
21
18
  const sandboxOptions = extractNamespacedOptions(options, 'sandbox');
22
- const nodeOptions = extractNamespacedOptions(options, 'node');
19
+ sandboxOptions.testAccounts = true;
23
20
  userLog(`${splash}\n${github}\n\n`);
24
21
  userLog(`Setting up Aztec Sandbox ${cliVersion}, please stand by...`);
25
22
  const { node, pxe, stop } = await createSandbox({
26
- l1Mnemonic: options.l1Mnemonic,
23
+ l1Mnemonic: sandboxOptions.l1Mnemonic,
27
24
  l1RpcUrls: options.l1RpcUrls,
28
- l1Salt: nodeOptions.deployAztecContractsSalt,
25
+ deployAztecContractsSalt: sandboxOptions.deployAztecContractsSalt,
29
26
  noPXE: sandboxOptions.noPXE,
30
- testAccounts: sandboxOptions.testAccounts
27
+ testAccounts: sandboxOptions.testAccounts,
28
+ realProofs: false
31
29
  }, userLog);
32
30
  // Start Node and PXE JSON-RPC server
33
31
  signalHandlers.push(stop);
@@ -44,13 +42,9 @@ export async function aztecStart(options, userLog, debugLogger) {
44
42
  userLog(`Not exposing PXE API through JSON-RPC server`);
45
43
  }
46
44
  } else {
47
- // If a network is specified, enrich the environment with the chain config
48
- if (options.network) {
49
- await enrichEnvironmentWithChainConfig(options.network);
50
- }
51
45
  if (options.node) {
52
46
  const { startNode } = await import('./cmds/start_node.js');
53
- ({ config } = await startNode(options, signalHandlers, services, userLog));
47
+ ({ config } = await startNode(options, signalHandlers, services, adminServices, userLog));
54
48
  } else if (options.bot) {
55
49
  const { startBot } = await import('./cmds/start_bot.js');
56
50
  await startBot(options, signalHandlers, services, userLog);
@@ -81,9 +75,6 @@ export async function aztecStart(options, userLog, debugLogger) {
81
75
  } else if (options.sequencer) {
82
76
  userLog(`Cannot run a standalone sequencer without a node`);
83
77
  process.exit(1);
84
- } else if (options.faucet) {
85
- const { startFaucet } = await import('./cmds/start_faucet.js');
86
- await startFaucet(options, signalHandlers, services, userLog);
87
78
  } else {
88
79
  userLog(`No module specified to start`);
89
80
  process.exit(1);
@@ -91,6 +82,7 @@ export async function aztecStart(options, userLog, debugLogger) {
91
82
  }
92
83
  installSignalHandlers(debugLogger.info, signalHandlers);
93
84
  const versions = getVersions(config);
85
+ // Start the main JSON-RPC server
94
86
  if (Object.entries(services).length > 0) {
95
87
  const rpcServer = createNamespacedSafeJsonRpcServer(services, {
96
88
  http200OnError: false,
@@ -98,11 +90,30 @@ export async function aztecStart(options, userLog, debugLogger) {
98
90
  middlewares: [
99
91
  getOtelJsonRpcPropagationMiddleware(),
100
92
  getVersioningMiddleware(versions)
101
- ]
93
+ ],
94
+ maxBatchSize: options.rpcMaxBatchSize,
95
+ maxBodySizeBytes: options.rpcMaxBodySize
102
96
  });
103
97
  const { port } = await startHttpRpcServer(rpcServer, {
104
98
  port: options.port
105
99
  });
106
100
  debugLogger.info(`Aztec Server listening on port ${port}`, versions);
107
101
  }
102
+ // If there are any admin services, start a separate JSON-RPC server for them
103
+ if (Object.entries(adminServices).length > 0) {
104
+ const rpcServer = createNamespacedSafeJsonRpcServer(adminServices, {
105
+ http200OnError: false,
106
+ log: debugLogger,
107
+ middlewares: [
108
+ getOtelJsonRpcPropagationMiddleware(),
109
+ getVersioningMiddleware(versions)
110
+ ],
111
+ maxBatchSize: options.rpcMaxBatchSize,
112
+ maxBodySizeBytes: options.rpcMaxBodySize
113
+ });
114
+ const { port } = await startHttpRpcServer(rpcServer, {
115
+ port: options.adminPort
116
+ });
117
+ debugLogger.info(`Aztec Server admin API listening on port ${port}`, versions);
118
+ }
108
119
  }
@@ -2,13 +2,15 @@ import { type ConfigMapping, type EnvVar } from '@aztec/foundation/config';
2
2
  export interface AztecStartOption {
3
3
  flag: string;
4
4
  description: string;
5
- defaultValue: any | undefined;
5
+ defaultValue: any;
6
6
  printDefault?: (val: any) => string;
7
- envVar: EnvVar | undefined;
7
+ env: EnvVar | undefined;
8
+ fallback?: EnvVar[];
8
9
  parseVal?: (val: string) => any;
9
10
  }
10
11
  export declare const getOptions: (namespace: string, configMappings: Record<string, ConfigMapping>) => AztecStartOption[];
11
12
  export declare const universalOptions: string[];
13
+ export declare const NETWORK_FLAG = "network";
12
14
  export declare const aztecStartOptions: {
13
15
  [key: string]: AztecStartOption[];
14
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EAIZ,MAAM,0BAA0B,CAAC;AAelC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,cAAe,MAAM,kBAAkB,OAAO,MAAM,EAAE,aAAa,CAAC,uBAiB1F,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAA2E,CAAC;AAGzG,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAwTlE,CAAC"}
1
+ {"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EAIZ,MAAM,0BAA0B,CAAC;AAclC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,EAAE,gBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,uBAoB1F,CAAC;AAuBF,eAAO,MAAM,gBAAgB,UAW5B,CAAC;AAEF,eAAO,MAAM,YAAY,YAAY,CAAC;AAGtC,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAqOlE,CAAC"}
@@ -1,18 +1,23 @@
1
1
  import { 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 { booleanConfigHelper, isBooleanConfigValue, omitConfigMappings } from '@aztec/foundation/config';
8
+ import { dataConfigMappings } from '@aztec/kv-store/config';
9
+ import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
7
10
  import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
8
11
  import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
9
12
  import { proverNodeConfigMappings } from '@aztec/prover-node/config';
10
13
  import { allPxeConfigMappings } from '@aztec/pxe/config';
14
+ import { chainConfigMappings } from '@aztec/stdlib/config';
11
15
  import { telemetryClientConfigMappings } from '@aztec/telemetry-client';
16
+ import { worldStateConfigMappings } from '@aztec/world-state';
12
17
  import { DefaultMnemonic } from '../mnemonic.js';
13
18
  export const getOptions = (namespace, configMappings)=>{
14
19
  const options = [];
15
- for (const [key, { env, defaultValue: def, parseEnv, description, printDefault }] of Object.entries(configMappings)){
20
+ for (const [key, { env, defaultValue: def, parseEnv, description, printDefault, fallback }] of Object.entries(configMappings)){
16
21
  if (universalOptions.includes(key)) {
17
22
  continue;
18
23
  }
@@ -22,132 +27,129 @@ export const getOptions = (namespace, configMappings)=>{
22
27
  description,
23
28
  defaultValue: def,
24
29
  printDefault,
25
- envVar: env,
30
+ env: env,
31
+ fallback,
26
32
  parseVal: parseEnv
27
33
  });
28
34
  }
29
35
  return options;
30
36
  };
37
+ const configToFlag = (flag, configMapping, overrideDefaultValue)=>{
38
+ if (!configMapping.isBoolean) {
39
+ flag += ' <value>';
40
+ }
41
+ const flagConfig = {
42
+ flag,
43
+ env: undefined,
44
+ defaultValue: undefined,
45
+ parseVal: configMapping.parseEnv,
46
+ ...configMapping
47
+ };
48
+ if (overrideDefaultValue !== undefined) {
49
+ flagConfig.defaultValue = overrideDefaultValue;
50
+ }
51
+ return flagConfig;
52
+ };
31
53
  // These are options used by multiple modules so should be inputted once
32
54
  export const universalOptions = [
33
- 'l1RpcUrls',
34
- 'l1ChainId',
35
- 'l1Contracts',
55
+ 'l1ConsensusHostUrls',
56
+ 'l1ConsensusHostApiKeys',
57
+ 'l1ConsensusHostApiKeyHeaders',
36
58
  'p2pEnabled',
37
- 'dataDirectory'
59
+ ...getKeys(chainConfigMappings),
60
+ ...getKeys(l1ContractsConfigMappings),
61
+ ...getKeys(l1ContractAddressesMapping),
62
+ ...getKeys(l1ReaderConfigMappings),
63
+ ...getKeys(dataConfigMappings),
64
+ ...getKeys(worldStateConfigMappings)
38
65
  ];
66
+ export const NETWORK_FLAG = 'network';
39
67
  // Define categories and options
40
68
  export const aztecStartOptions = {
41
- NETWORK: [
69
+ MISC: [
42
70
  {
43
- flag: '--network <value>',
71
+ flag: `--${NETWORK_FLAG} <value>`,
44
72
  description: 'Network to run Aztec on',
45
73
  defaultValue: undefined,
46
- envVar: 'NETWORK'
47
- }
74
+ env: 'NETWORK'
75
+ },
76
+ configToFlag('--auto-update', sharedNodeConfigMappings.autoUpdate),
77
+ configToFlag('--auto-update-url', sharedNodeConfigMappings.autoUpdateUrl),
78
+ configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
79
+ configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls)
48
80
  ],
49
81
  SANDBOX: [
50
82
  {
51
83
  flag: '--sandbox',
52
84
  description: 'Starts Aztec Sandbox',
53
85
  defaultValue: undefined,
54
- envVar: undefined
55
- },
56
- {
57
- flag: '--sandbox.testAccounts',
58
- description: 'Deploy test accounts on sandbox start',
59
- envVar: 'TEST_ACCOUNTS',
60
- ...booleanConfigHelper(true)
86
+ env: undefined
61
87
  },
62
88
  {
63
89
  flag: '--sandbox.noPXE',
64
90
  description: 'Do not expose PXE service on sandbox start',
65
- envVar: 'NO_PXE',
91
+ env: 'NO_PXE',
66
92
  ...booleanConfigHelper()
93
+ },
94
+ {
95
+ flag: '--sandbox.l1Mnemonic <value>',
96
+ description: 'Mnemonic for L1 accounts. Will be used ',
97
+ defaultValue: DefaultMnemonic,
98
+ env: 'MNEMONIC'
99
+ },
100
+ {
101
+ flag: '--sandbox.deployAztecContractsSalt <value>',
102
+ description: 'Numeric salt for deploying L1 Aztec contracts before starting the sandbox. Needs mnemonic or private key to be set.',
103
+ env: 'DEPLOY_AZTEC_CONTRACTS_SALT',
104
+ defaultValue: undefined,
105
+ parseVal: (val)=>val ? parseInt(val) : undefined
67
106
  }
68
107
  ],
69
108
  API: [
70
109
  {
71
110
  flag: '--port <value>',
72
- description: 'Port to run the Aztec Services on on',
111
+ description: 'Port to run the Aztec Services on',
73
112
  defaultValue: 8080,
74
- envVar: 'AZTEC_PORT',
113
+ env: 'AZTEC_PORT',
114
+ parseVal: (val)=>parseInt(val, 10)
115
+ },
116
+ {
117
+ flag: '--admin-port <value>',
118
+ description: 'Port to run admin APIs of Aztec Services on on',
119
+ defaultValue: 8880,
120
+ env: 'AZTEC_ADMIN_PORT',
75
121
  parseVal: (val)=>parseInt(val, 10)
76
122
  },
77
123
  {
78
124
  flag: '--api-prefix <value>',
79
125
  description: 'Prefix for API routes on any service that is started',
80
126
  defaultValue: '',
81
- envVar: 'API_PREFIX'
127
+ env: 'API_PREFIX'
82
128
  }
83
129
  ],
84
130
  ETHEREUM: [
85
- {
86
- flag: '--l1-rpc-urls <value>',
87
- description: 'List of URLs of the Ethereum RPC nodes that services will connect to (comma separated)',
88
- defaultValue: [
89
- 'http://localhost:8545'
90
- ],
91
- envVar: 'ETHEREUM_HOSTS',
92
- parseVal: (val)=>val.split(',').map((url)=>url.trim())
93
- },
94
- {
95
- flag: '--l1-chain-id <value>',
96
- description: 'The L1 chain ID',
97
- defaultValue: 31337,
98
- envVar: 'L1_CHAIN_ID',
99
- parseVal: (val)=>parseInt(val, 10)
100
- },
101
- {
102
- flag: '--l1-mnemonic <value>',
103
- description: 'Mnemonic for L1 accounts. Will be used if no publisher private keys are provided',
104
- defaultValue: DefaultMnemonic,
105
- envVar: 'MNEMONIC'
106
- }
131
+ configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
132
+ // Do not set default for CLI: keep undefined unless provided via flag or env
133
+ configToFlag('--l1-rpc-urls', {
134
+ ...l1ReaderConfigMappings.l1RpcUrls,
135
+ defaultValue: undefined
136
+ }),
137
+ configToFlag('--l1-consensus-host-urls', blobSinkConfigMappings.l1ConsensusHostUrls),
138
+ configToFlag('--l1-consensus-host-api-keys', blobSinkConfigMappings.l1ConsensusHostApiKeys),
139
+ configToFlag('--l1-consensus-host-api-key-headers', blobSinkConfigMappings.l1ConsensusHostApiKeyHeaders)
107
140
  ],
108
- 'L1 CONTRACT ADDRESSES': [
109
- {
110
- flag: '--rollup-address <value>',
111
- description: 'The deployed L1 rollup contract address',
112
- defaultValue: undefined,
113
- envVar: 'ROLLUP_CONTRACT_ADDRESS'
114
- },
115
- {
116
- flag: '--registry-address <value>',
117
- description: 'The deployed L1 registry contract address',
118
- defaultValue: undefined,
119
- envVar: 'REGISTRY_CONTRACT_ADDRESS'
120
- },
121
- {
122
- flag: '--inbox-address <value>',
123
- description: 'The deployed L1 -> L2 inbox contract address',
124
- defaultValue: undefined,
125
- envVar: 'INBOX_CONTRACT_ADDRESS'
126
- },
127
- {
128
- flag: '--outbox-address <value>',
129
- description: 'The deployed L2 -> L1 outbox contract address',
130
- defaultValue: undefined,
131
- envVar: 'OUTBOX_CONTRACT_ADDRESS'
132
- },
133
- {
134
- flag: '--fee-juice-address <value>',
135
- description: 'The deployed L1 Fee Juice contract address',
136
- defaultValue: undefined,
137
- envVar: 'FEE_JUICE_CONTRACT_ADDRESS'
138
- },
139
- {
140
- flag: '--staking-asset-address <value>',
141
- description: 'The deployed L1 Staking Asset contract address',
142
- defaultValue: undefined,
143
- envVar: 'STAKING_ASSET_CONTRACT_ADDRESS'
144
- },
145
- {
146
- flag: '--fee-juice-portal-address <value>',
147
- description: 'The deployed L1 Fee Juice portal contract address',
148
- defaultValue: undefined,
149
- envVar: 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS'
150
- }
141
+ 'L1 CONTRACTS': [
142
+ configToFlag('--registry-address', l1ContractAddressesMapping.registryAddress),
143
+ configToFlag('--rollup-version', chainConfigMappings.rollupVersion)
144
+ ],
145
+ STORAGE: [
146
+ configToFlag('--data-directory', dataConfigMappings.dataDirectory),
147
+ configToFlag('--data-store-map-size-kb', dataConfigMappings.dataStoreMapSizeKb)
148
+ ],
149
+ 'WORLD STATE': [
150
+ configToFlag('--world-state-data-directory', worldStateConfigMappings.worldStateDataDirectory),
151
+ configToFlag('--world-state-db-map-size-kb', worldStateConfigMappings.worldStateDbMapSizeKb),
152
+ configToFlag('--world-state-block-history', worldStateConfigMappings.worldStateBlockHistory)
151
153
  ],
152
154
  // We can't easily auto-generate node options as they're parts of modules defined below
153
155
  'AZTEC NODE': [
@@ -155,106 +157,38 @@ export const aztecStartOptions = {
155
157
  flag: '--node',
156
158
  description: 'Starts Aztec Node with options',
157
159
  defaultValue: undefined,
158
- envVar: undefined
159
- },
160
- {
161
- flag: '--data-directory <value>',
162
- description: 'Where to store data. If not set, will store temporarily',
163
- defaultValue: undefined,
164
- envVar: 'DATA_DIRECTORY'
165
- },
166
- {
167
- flag: '--node.archiverUrl <value>',
168
- description: 'URL for an archiver service',
169
- defaultValue: undefined,
170
- envVar: 'ARCHIVER_URL'
171
- },
172
- {
173
- flag: '--node.deployAztecContracts',
174
- description: 'Deploys L1 Aztec contracts before starting the node. Needs mnemonic or private key to be set.',
175
- envVar: 'DEPLOY_AZTEC_CONTRACTS',
176
- defaultValue: undefined
177
- },
178
- {
179
- flag: '--node.deployAztecContractsSalt <value>',
180
- description: 'Numeric salt for deploying L1 Aztec contracts before starting the node. Needs mnemonic or private key to be set. Implies --node.deployAztecContracts.',
181
- envVar: 'DEPLOY_AZTEC_CONTRACTS_SALT',
182
- defaultValue: undefined,
183
- parseVal: (val)=>val ? parseInt(val) : undefined
184
- },
185
- {
186
- flag: '--node.assumeProvenThroughBlockNumber <value>',
187
- description: 'Cheats the rollup contract into assuming every block until this one is proven. Useful for speeding up bootstraps.',
188
- envVar: 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER',
189
- parseVal: (val)=>parseInt(val, 10),
190
- defaultValue: 0
191
- },
192
- {
193
- flag: '--node.publisherPrivateKey <value>',
194
- description: 'Private key of account for publishing L1 contracts',
195
- defaultValue: undefined,
196
- envVar: 'L1_PRIVATE_KEY'
197
- },
198
- {
199
- flag: '--node.worldStateBlockCheckIntervalMS <value>',
200
- description: 'Frequency in which to check for blocks in ms',
201
- defaultValue: 100,
202
- envVar: 'WS_BLOCK_CHECK_INTERVAL_MS',
203
- parseVal: (val)=>parseInt(val, 10)
204
- },
205
- {
206
- flag: '--node.testAccounts',
207
- description: 'Populate genesis state with initial fee juice for test accounts',
208
- envVar: 'TEST_ACCOUNTS',
209
- ...booleanConfigHelper()
160
+ env: undefined
210
161
  }
211
162
  ],
212
- 'P2P SUBSYSTEM': [
213
- {
214
- flag: '--p2p-enabled',
215
- description: 'Enable P2P subsystem',
216
- envVar: 'P2P_ENABLED',
217
- ...booleanConfigHelper()
218
- },
219
- ...getOptions('p2p', p2pConfigMappings)
220
- ],
221
- TELEMETRY: [
222
- ...getOptions('tel', telemetryClientConfigMappings)
223
- ],
224
- PXE: [
225
- {
226
- flag: '--pxe',
227
- description: 'Starts Aztec PXE with options',
228
- defaultValue: undefined,
229
- envVar: undefined
230
- },
231
- ...getOptions('pxe', allPxeConfigMappings)
232
- ],
233
163
  ARCHIVER: [
234
164
  {
235
165
  flag: '--archiver',
236
166
  description: 'Starts Aztec Archiver with options',
237
167
  defaultValue: undefined,
238
- envVar: undefined
168
+ env: undefined
239
169
  },
240
- // filter out archiverUrl as it's passed separately in --node & --prover-node
241
- ...getOptions('archiver', archiverConfigMappings).filter((opt)=>!opt.flag.includes('archiverUrl'))
170
+ ...getOptions('archiver', omitConfigMappings(archiverConfigMappings, Object.keys(l1ContractsConfigMappings)))
242
171
  ],
243
172
  SEQUENCER: [
244
173
  {
245
174
  flag: '--sequencer',
246
175
  description: 'Starts Aztec Sequencer with options',
247
176
  defaultValue: undefined,
248
- envVar: undefined
177
+ env: undefined
249
178
  },
250
- ...getOptions('sequencer', sequencerClientConfigMappings)
179
+ ...getOptions('sequencer', omitConfigMappings(sequencerClientConfigMappings, [
180
+ 'fakeProcessingDelayPerTxMs',
181
+ 'skipCollectingAttestations',
182
+ 'skipInvalidateBlockAsProposer',
183
+ 'blobSinkMapSizeKb'
184
+ ]))
251
185
  ],
252
- BLOB_SINK: [
186
+ 'BLOB SINK': [
253
187
  {
254
188
  flag: '--blob-sink',
255
189
  description: 'Starts Aztec Blob Sink with options',
256
190
  defaultValue: undefined,
257
- envVar: undefined
191
+ env: undefined
258
192
  },
259
193
  ...getOptions('blobSink', blobSinkConfigMappings)
260
194
  ],
@@ -263,19 +197,16 @@ export const aztecStartOptions = {
263
197
  flag: '--prover-node',
264
198
  description: 'Starts Aztec Prover Node with options',
265
199
  defaultValue: undefined,
266
- envVar: undefined
267
- },
268
- {
269
- flag: '--proverNode.archiverUrl <value>',
270
- description: 'URL for an archiver service',
271
- defaultValue: undefined,
272
- envVar: 'ARCHIVER_URL'
200
+ env: undefined
273
201
  },
274
202
  ...getOptions('proverNode', omitConfigMappings(proverNodeConfigMappings, [
275
203
  // filter out options passed separately
276
- ...Object.keys(archiverConfigMappings),
277
- ...Object.keys(proverBrokerConfigMappings),
278
- ...Object.keys(proverAgentConfigMappings)
204
+ ...getKeys(archiverConfigMappings),
205
+ ...getKeys(proverBrokerConfigMappings),
206
+ ...getKeys(proverAgentConfigMappings),
207
+ ...getKeys(p2pConfigMappings),
208
+ ...getKeys(worldStateConfigMappings),
209
+ ...getKeys(sharedNodeConfigMappings)
279
210
  ]))
280
211
  ],
281
212
  'PROVER BROKER': [
@@ -283,7 +214,7 @@ export const aztecStartOptions = {
283
214
  flag: '--prover-broker',
284
215
  description: 'Starts Aztec proving job broker',
285
216
  defaultValue: undefined,
286
- envVar: undefined
217
+ env: undefined
287
218
  },
288
219
  ...getOptions('proverBroker', // filter out archiver options from prover node options as they're passed separately in --archiver
289
220
  proverBrokerConfigMappings)
@@ -293,56 +224,61 @@ export const aztecStartOptions = {
293
224
  flag: '--prover-agent',
294
225
  description: 'Starts Aztec Prover Agent with options',
295
226
  defaultValue: undefined,
296
- envVar: undefined
227
+ env: undefined
297
228
  },
298
229
  ...getOptions('proverAgent', proverAgentConfigMappings)
299
230
  ],
231
+ 'P2P SUBSYSTEM': [
232
+ {
233
+ flag: '--p2p-enabled [value]',
234
+ description: 'Enable P2P subsystem',
235
+ env: 'P2P_ENABLED',
236
+ ...booleanConfigHelper()
237
+ },
238
+ ...getOptions('p2p', p2pConfigMappings)
239
+ ],
300
240
  'P2P BOOTSTRAP': [
301
241
  {
302
242
  flag: '--p2p-bootstrap',
303
243
  description: 'Starts Aztec P2P Bootstrap with options',
304
244
  defaultValue: undefined,
305
- envVar: undefined
306
- },
307
- ...getOptions('p2pBootstrap', bootnodeConfigMappings)
245
+ env: undefined
246
+ },
247
+ ...getOptions('p2pBootstrap', omitConfigMappings(bootnodeConfigMappings, [
248
+ 'p2pIp',
249
+ 'p2pPort',
250
+ 'peerIdPrivateKey',
251
+ 'bootstrapNodes',
252
+ 'listenAddress'
253
+ ]))
254
+ ],
255
+ TELEMETRY: [
256
+ ...getOptions('tel', telemetryClientConfigMappings)
308
257
  ],
309
258
  BOT: [
310
259
  {
311
260
  flag: '--bot',
312
261
  description: 'Starts Aztec Bot with options',
313
262
  defaultValue: undefined,
314
- envVar: undefined
263
+ env: undefined
315
264
  },
316
265
  ...getOptions('bot', botConfigMappings)
317
266
  ],
267
+ PXE: [
268
+ {
269
+ flag: '--pxe',
270
+ description: 'Starts Aztec PXE with options',
271
+ defaultValue: undefined,
272
+ env: undefined
273
+ },
274
+ ...getOptions('pxe', allPxeConfigMappings)
275
+ ],
318
276
  TXE: [
319
277
  {
320
278
  flag: '--txe',
321
279
  description: 'Starts Aztec TXE with options',
322
280
  defaultValue: undefined,
323
- envVar: undefined
281
+ env: undefined
324
282
  }
325
- ],
326
- FAUCET: [
327
- {
328
- flag: '--faucet',
329
- description: 'Starts the Aztec faucet',
330
- defaultValue: undefined,
331
- envVar: undefined
332
- },
333
- {
334
- flag: '--faucet.apiServer',
335
- description: 'Starts a simple HTTP server to access the faucet',
336
- defaultValue: true,
337
- envVar: undefined
338
- },
339
- {
340
- flag: '--faucet.apiServerPort <value>',
341
- description: 'The port on which to start the api server on',
342
- defaultValue: 8080,
343
- envVar: undefined,
344
- parseVal: (val)=>parseInt(val, 10)
345
- },
346
- ...getOptions('faucet', faucetConfigMapping)
347
283
  ]
348
284
  };