@aztec/aztec 0.0.0-test.0

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 (122) hide show
  1. package/README.md +57 -0
  2. package/dest/bin/index.d.ts +3 -0
  3. package/dest/bin/index.d.ts.map +1 -0
  4. package/dest/bin/index.js +46 -0
  5. package/dest/cli/aztec_start_action.d.ts +3 -0
  6. package/dest/cli/aztec_start_action.d.ts.map +1 -0
  7. package/dest/cli/aztec_start_action.js +108 -0
  8. package/dest/cli/aztec_start_options.d.ts +15 -0
  9. package/dest/cli/aztec_start_options.d.ts.map +1 -0
  10. package/dest/cli/aztec_start_options.js +348 -0
  11. package/dest/cli/chain_l2_config.d.ts +19 -0
  12. package/dest/cli/chain_l2_config.d.ts.map +1 -0
  13. package/dest/cli/chain_l2_config.js +56 -0
  14. package/dest/cli/cli.d.ts +9 -0
  15. package/dest/cli/cli.d.ts.map +1 -0
  16. package/dest/cli/cli.js +33 -0
  17. package/dest/cli/cmds/start_archiver.d.ts +9 -0
  18. package/dest/cli/cmds/start_archiver.d.ts.map +1 -0
  19. package/dest/cli/cmds/start_archiver.js +42 -0
  20. package/dest/cli/cmds/start_blob_sink.d.ts +3 -0
  21. package/dest/cli/cmds/start_blob_sink.d.ts.map +1 -0
  22. package/dest/cli/cmds/start_blob_sink.js +17 -0
  23. package/dest/cli/cmds/start_bot.d.ts +11 -0
  24. package/dest/cli/cmds/start_bot.d.ts.map +1 -0
  25. package/dest/cli/cmds/start_bot.js +31 -0
  26. package/dest/cli/cmds/start_faucet.d.ts +4 -0
  27. package/dest/cli/cmds/start_faucet.d.ts.map +1 -0
  28. package/dest/cli/cmds/start_faucet.js +20 -0
  29. package/dest/cli/cmds/start_node.d.ts +7 -0
  30. package/dest/cli/cmds/start_node.d.ts.map +1 -0
  31. package/dest/cli/cmds/start_node.js +131 -0
  32. package/dest/cli/cmds/start_p2p_bootstrap.d.ts +6 -0
  33. package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -0
  34. package/dest/cli/cmds/start_p2p_bootstrap.js +26 -0
  35. package/dest/cli/cmds/start_prover_agent.d.ts +4 -0
  36. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -0
  37. package/dest/cli/cmds/start_prover_agent.js +41 -0
  38. package/dest/cli/cmds/start_prover_broker.d.ts +9 -0
  39. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -0
  40. package/dest/cli/cmds/start_prover_broker.js +31 -0
  41. package/dest/cli/cmds/start_prover_node.d.ts +7 -0
  42. package/dest/cli/cmds/start_prover_node.d.ts.map +1 -0
  43. package/dest/cli/cmds/start_prover_node.js +110 -0
  44. package/dest/cli/cmds/start_pxe.d.ts +16 -0
  45. package/dest/cli/cmds/start_pxe.d.ts.map +1 -0
  46. package/dest/cli/cmds/start_pxe.js +95 -0
  47. package/dest/cli/cmds/start_txe.d.ts +3 -0
  48. package/dest/cli/cmds/start_txe.d.ts.map +1 -0
  49. package/dest/cli/cmds/start_txe.js +11 -0
  50. package/dest/cli/get_l1_config.d.ts +7 -0
  51. package/dest/cli/get_l1_config.d.ts.map +1 -0
  52. package/dest/cli/get_l1_config.js +13 -0
  53. package/dest/cli/index.d.ts +2 -0
  54. package/dest/cli/index.d.ts.map +1 -0
  55. package/dest/cli/index.js +1 -0
  56. package/dest/cli/util.d.ts +46 -0
  57. package/dest/cli/util.d.ts.map +1 -0
  58. package/dest/cli/util.js +154 -0
  59. package/dest/cli/versioning.d.ts +4 -0
  60. package/dest/cli/versioning.d.ts.map +1 -0
  61. package/dest/cli/versioning.js +9 -0
  62. package/dest/examples/token.d.ts +2 -0
  63. package/dest/examples/token.d.ts.map +1 -0
  64. package/dest/examples/token.js +46 -0
  65. package/dest/examples/util.d.ts +20 -0
  66. package/dest/examples/util.d.ts.map +1 -0
  67. package/dest/examples/util.js +31 -0
  68. package/dest/index.d.ts +2 -0
  69. package/dest/index.d.ts.map +1 -0
  70. package/dest/index.js +1 -0
  71. package/dest/mnemonic.d.ts +2 -0
  72. package/dest/mnemonic.d.ts.map +1 -0
  73. package/dest/mnemonic.js +1 -0
  74. package/dest/sandbox/banana_fpc.d.ts +11 -0
  75. package/dest/sandbox/banana_fpc.d.ts.map +1 -0
  76. package/dest/sandbox/banana_fpc.js +79 -0
  77. package/dest/sandbox/index.d.ts +5 -0
  78. package/dest/sandbox/index.d.ts.map +1 -0
  79. package/dest/sandbox/index.js +4 -0
  80. package/dest/sandbox/sandbox.d.ts +76 -0
  81. package/dest/sandbox/sandbox.d.ts.map +1 -0
  82. package/dest/sandbox/sandbox.js +181 -0
  83. package/dest/sandbox/sponsored_fee_payment_method.d.ts +23 -0
  84. package/dest/sandbox/sponsored_fee_payment_method.d.ts.map +1 -0
  85. package/dest/sandbox/sponsored_fee_payment_method.js +36 -0
  86. package/dest/sandbox/sponsored_fpc.d.ts +6 -0
  87. package/dest/sandbox/sponsored_fpc.d.ts.map +1 -0
  88. package/dest/sandbox/sponsored_fpc.js +26 -0
  89. package/dest/splash.d.ts +3 -0
  90. package/dest/splash.d.ts.map +1 -0
  91. package/dest/splash.js +2 -0
  92. package/package.json +118 -0
  93. package/src/bin/index.ts +54 -0
  94. package/src/cli/aztec_start_action.ts +114 -0
  95. package/src/cli/aztec_start_options.ts +371 -0
  96. package/src/cli/chain_l2_config.ts +74 -0
  97. package/src/cli/cli.ts +48 -0
  98. package/src/cli/cmds/start_archiver.ts +55 -0
  99. package/src/cli/cmds/start_blob_sink.ts +31 -0
  100. package/src/cli/cmds/start_bot.ts +49 -0
  101. package/src/cli/cmds/start_faucet.ts +34 -0
  102. package/src/cli/cmds/start_node.ts +151 -0
  103. package/src/cli/cmds/start_p2p_bootstrap.ts +29 -0
  104. package/src/cli/cmds/start_prover_agent.ts +68 -0
  105. package/src/cli/cmds/start_prover_broker.ts +46 -0
  106. package/src/cli/cmds/start_prover_node.ts +121 -0
  107. package/src/cli/cmds/start_pxe.ts +129 -0
  108. package/src/cli/cmds/start_txe.ts +15 -0
  109. package/src/cli/get_l1_config.ts +18 -0
  110. package/src/cli/index.ts +1 -0
  111. package/src/cli/util.ts +216 -0
  112. package/src/cli/versioning.ts +13 -0
  113. package/src/examples/token.ts +65 -0
  114. package/src/examples/util.ts +45 -0
  115. package/src/index.ts +7 -0
  116. package/src/mnemonic.ts +1 -0
  117. package/src/sandbox/banana_fpc.ts +83 -0
  118. package/src/sandbox/index.ts +5 -0
  119. package/src/sandbox/sandbox.ts +229 -0
  120. package/src/sandbox/sponsored_fee_payment_method.ts +46 -0
  121. package/src/sandbox/sponsored_fpc.ts +38 -0
  122. package/src/splash.ts +10 -0
@@ -0,0 +1,9 @@
1
+ import type { LogFn, Logger } from '@aztec/foundation/log';
2
+ import { Command } from 'commander';
3
+ /**
4
+ * Returns commander program that defines the 'aztec' command line interface.
5
+ * @param userLog - log function for logging user output.
6
+ * @param debugLogger - logger for logging debug messages.
7
+ */
8
+ export declare function injectAztecCommands(program: Command, userLog: LogFn, debugLogger: Logger): Command;
9
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAmClG"}
@@ -0,0 +1,33 @@
1
+ import { Command } from 'commander';
2
+ import { aztecStartOptions } from './aztec_start_options.js';
3
+ import { addOptions, printAztecStartHelpText } from './util.js';
4
+ /**
5
+ * Returns commander program that defines the 'aztec' command line interface.
6
+ * @param userLog - log function for logging user output.
7
+ * @param debugLogger - logger for logging debug messages.
8
+ */ export function injectAztecCommands(program, userLog, debugLogger) {
9
+ const startCmd = new Command('start').description('Starts Aztec modules. Options for each module can be set as key-value pairs (e.g. "option1=value1,option2=value2") or as environment variables.');
10
+ // Assuming commands are added elsewhere, here we just add options to the main program
11
+ Object.keys(aztecStartOptions).forEach((category)=>{
12
+ addOptions(startCmd, aztecStartOptions[category]);
13
+ });
14
+ startCmd.helpInformation = printAztecStartHelpText;
15
+ startCmd.action(async (options)=>{
16
+ const { aztecStart } = await import('./aztec_start_action.js');
17
+ return await aztecStart(options, userLog, debugLogger);
18
+ });
19
+ program.addCommand(startCmd);
20
+ program.configureHelp({
21
+ sortSubcommands: true
22
+ });
23
+ program.addHelpText('after', `
24
+
25
+ Additional commands:
26
+
27
+ test [options]: starts a dockerized TXE node via
28
+ $ aztec start --txe
29
+ then runs
30
+ $ aztec-nargo test --silence-warnings --oracle-resolver=<TXE_ADDRESS> [options]
31
+ `);
32
+ return program;
33
+ }
@@ -0,0 +1,9 @@
1
+ import { type ArchiverConfig } from '@aztec/archiver';
2
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
3
+ import { type DataStoreConfig } from '@aztec/kv-store/config';
4
+ export type { ArchiverConfig, DataStoreConfig };
5
+ /** Starts a standalone archiver. */
6
+ export declare function startArchiver(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers): Promise<{
7
+ config: ArchiverConfig & DataStoreConfig;
8
+ }>;
9
+ //# sourceMappingURL=start_archiver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_archiver.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_archiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAA+C,MAAM,iBAAiB,CAAC;AAG7G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAQlF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEhD,oCAAoC;AACpC,wBAAsB,aAAa,CACjC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,GAAG,eAAe,CAAA;CAAE,CAAC,CAmCvD"}
@@ -0,0 +1,42 @@
1
+ import { Archiver, KVArchiverDataStore, archiverConfigMappings } from '@aztec/archiver';
2
+ import { createLogger } from '@aztec/aztec.js';
3
+ import { createBlobSinkClient } from '@aztec/blob-sink/client';
4
+ import { dataConfigMappings } from '@aztec/kv-store/config';
5
+ import { createStore } from '@aztec/kv-store/lmdb-v2';
6
+ import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
7
+ import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
8
+ import { getL1Config } from '../get_l1_config.js';
9
+ import { extractRelevantOptions } from '../util.js';
10
+ /** Starts a standalone archiver. */ export async function startArchiver(options, signalHandlers, services) {
11
+ let archiverConfig = extractRelevantOptions(options, {
12
+ ...archiverConfigMappings,
13
+ ...dataConfigMappings
14
+ }, 'archiver');
15
+ if (!archiverConfig.l1Contracts.registryAddress || archiverConfig.l1Contracts.registryAddress.isZero()) {
16
+ throw new Error('L1 registry address is required to start an Archiver');
17
+ }
18
+ const { addresses, config } = await getL1Config(archiverConfig.l1Contracts.registryAddress, archiverConfig.l1RpcUrls, archiverConfig.l1ChainId);
19
+ archiverConfig.l1Contracts = addresses;
20
+ archiverConfig = {
21
+ ...archiverConfig,
22
+ ...config
23
+ };
24
+ const storeLog = createLogger('archiver:lmdb');
25
+ const store = await createStore('archiver', KVArchiverDataStore.SCHEMA_VERSION, archiverConfig, storeLog);
26
+ const archiverStore = new KVArchiverDataStore(store, archiverConfig.maxLogs);
27
+ const telemetry = initTelemetryClient(getTelemetryClientConfig());
28
+ // TODO(https://github.com/AztecProtocol/aztec-packages/issues/10056): place CL url in config here
29
+ const blobSinkClient = createBlobSinkClient();
30
+ const archiver = await Archiver.createAndSync(archiverConfig, archiverStore, {
31
+ telemetry,
32
+ blobSinkClient
33
+ }, true);
34
+ services.archiver = [
35
+ archiver,
36
+ ArchiverApiSchema
37
+ ];
38
+ signalHandlers.push(archiver.stop);
39
+ return {
40
+ config: archiverConfig
41
+ };
42
+ }
@@ -0,0 +1,3 @@
1
+ import type { LogFn } from '@aztec/foundation/log';
2
+ export declare function startBlobSink(options: any, signalHandlers: (() => Promise<void>)[], userLog: LogFn): Promise<void>;
3
+ //# sourceMappingURL=start_blob_sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_blob_sink.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_blob_sink.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,wBAAsB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,iBAmBxG"}
@@ -0,0 +1,17 @@
1
+ import { blobSinkConfigMappings, createBlobSinkServer, getBlobSinkConfigFromEnv } from '@aztec/blob-sink/server';
2
+ import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
3
+ import { extractRelevantOptions } from '../util.js';
4
+ export async function startBlobSink(options, signalHandlers, userLog) {
5
+ if (options.prover || options.node || options.sequencer || options.pxe || options.p2pBootstrap || options.txe) {
6
+ userLog(`Starting a blob sink with --node, --sequencer, --pxe, --p2p-bootstrap, --prover or --txe is not supported.`);
7
+ process.exit(1);
8
+ }
9
+ const blobSinkConfig = {
10
+ ...getBlobSinkConfigFromEnv(),
11
+ ...extractRelevantOptions(options, blobSinkConfigMappings, 'blobSink')
12
+ };
13
+ const telemetry = initTelemetryClient(getTelemetryClientConfig());
14
+ const blobSink = await createBlobSinkServer(blobSinkConfig, telemetry);
15
+ signalHandlers.push(blobSink.stop.bind(blobSink));
16
+ await blobSink.start();
17
+ }
@@ -0,0 +1,11 @@
1
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+ import type { AztecNode, PXE } from '@aztec/stdlib/interfaces/client';
4
+ import type { TelemetryClient } from '@aztec/telemetry-client';
5
+ export declare function startBot(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<void>;
6
+ export declare function addBot(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, deps: {
7
+ pxe?: PXE;
8
+ node?: AztecNode;
9
+ telemetry: TelemetryClient;
10
+ }): Promise<void>;
11
+ //# sourceMappingURL=start_bot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_bot.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_bot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,iBAkBf;AAED,wBAAgB,MAAM,CACpB,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,eAAe,CAAA;CAAE,iBAWlE"}
@@ -0,0 +1,31 @@
1
+ import { BotRunner, botConfigMappings, getBotRunnerApiHandler } from '@aztec/bot';
2
+ import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
3
+ import { extractRelevantOptions } from '../util.js';
4
+ export async function startBot(options, signalHandlers, services, userLog) {
5
+ const { proverNode, archiver, sequencer, p2pBootstrap, txe, prover } = options;
6
+ if (proverNode || archiver || sequencer || p2pBootstrap || txe || prover) {
7
+ userLog(`Starting a bot with --prover-node, --prover, --archiver, --sequencer, --p2p-bootstrap, or --txe is not supported.`);
8
+ process.exit(1);
9
+ }
10
+ // Start a PXE client that is used by the bot if required
11
+ let pxe;
12
+ if (options.pxe) {
13
+ const { addPXE } = await import('./start_pxe.js');
14
+ ({ pxe } = await addPXE(options, signalHandlers, services, userLog));
15
+ }
16
+ const telemetry = initTelemetryClient(getTelemetryClientConfig());
17
+ await addBot(options, signalHandlers, services, {
18
+ pxe,
19
+ telemetry
20
+ });
21
+ }
22
+ export function addBot(options, signalHandlers, services, deps) {
23
+ const config = extractRelevantOptions(options, botConfigMappings, 'bot');
24
+ const botRunner = new BotRunner(config, deps);
25
+ if (!config.noStart) {
26
+ void botRunner.start(); // Do not block since bot setup takes time
27
+ }
28
+ services.bot = getBotRunnerApiHandler(botRunner);
29
+ signalHandlers.push(botRunner.stop);
30
+ return Promise.resolve();
31
+ }
@@ -0,0 +1,4 @@
1
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+ export declare function startFaucet(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, log: LogFn): Promise<void>;
4
+ //# sourceMappingURL=start_faucet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_faucet.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_faucet.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,EAAE,KAAK,iBAiBX"}
@@ -0,0 +1,20 @@
1
+ import { Faucet, FaucetSchema, createFaucetHttpServer, faucetConfigMapping, getFaucetConfigFromEnv } from '@aztec/aztec-faucet';
2
+ import { extractNamespacedOptions, extractRelevantOptions } from '../util.js';
3
+ export async function startFaucet(options, signalHandlers, services, log) {
4
+ const faucetOptions = extractNamespacedOptions(options, 'faucet');
5
+ const config = {
6
+ ...getFaucetConfigFromEnv(),
7
+ ...extractRelevantOptions(options, faucetConfigMapping, 'faucet')
8
+ };
9
+ const faucet = await Faucet.create(config);
10
+ if (faucetOptions.apiServer) {
11
+ const httpServer = createFaucetHttpServer(faucet);
12
+ httpServer.listen(faucetOptions.apiServerPort);
13
+ signalHandlers.push(()=>new Promise((res)=>httpServer.close(()=>res())));
14
+ log(`Faucet now running on port: ${faucetOptions.apiServerPort}`);
15
+ }
16
+ services.faucet = [
17
+ faucet,
18
+ FaucetSchema
19
+ ];
20
+ }
@@ -0,0 +1,7 @@
1
+ import { type AztecNodeConfig } from '@aztec/aztec-node';
2
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
3
+ import type { LogFn } from '@aztec/foundation/log';
4
+ export declare function startNode(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<{
5
+ config: AztecNodeConfig;
6
+ }>;
7
+ //# sourceMappingURL=start_node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,mBAAmB,CAAC;AAEpG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAgBnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CA6HtC"}
@@ -0,0 +1,131 @@
1
+ import { getInitialTestAccounts } from '@aztec/accounts/testing';
2
+ import { aztecNodeConfigMappings, getConfigEnvVars } from '@aztec/aztec-node';
3
+ import { NULL_KEY } from '@aztec/ethereum';
4
+ import { AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
5
+ import { P2PApiSchema } from '@aztec/stdlib/interfaces/server';
6
+ import { initTelemetryClient, telemetryClientConfigMappings } from '@aztec/telemetry-client';
7
+ import { getGenesisValues } from '@aztec/world-state/testing';
8
+ import { mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
9
+ import { createAztecNode, deployContractsToL1 } from '../../sandbox/index.js';
10
+ import { getL1Config } from '../get_l1_config.js';
11
+ import { extractNamespacedOptions, extractRelevantOptions } from '../util.js';
12
+ export async function startNode(options, signalHandlers, services, userLog) {
13
+ // options specifically namespaced with --node.<option>
14
+ const nodeSpecificOptions = extractNamespacedOptions(options, 'node');
15
+ // All options that are relevant to the Aztec Node
16
+ let nodeConfig = {
17
+ ...getConfigEnvVars(),
18
+ ...extractRelevantOptions(options, aztecNodeConfigMappings, 'node')
19
+ };
20
+ if (options.proverNode) {
21
+ userLog(`Running a Prover Node within a Node is not yet supported`);
22
+ process.exit(1);
23
+ }
24
+ const initialFundedAccounts = nodeConfig.testAccounts ? await getInitialTestAccounts() : [];
25
+ const { genesisBlockHash, genesisArchiveRoot, prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
26
+ // Deploy contracts if needed
27
+ if (nodeSpecificOptions.deployAztecContracts || nodeSpecificOptions.deployAztecContractsSalt) {
28
+ let account;
29
+ if (nodeSpecificOptions.publisherPrivateKey) {
30
+ account = privateKeyToAccount(nodeSpecificOptions.publisherPrivateKey);
31
+ } else if (options.l1Mnemonic) {
32
+ account = mnemonicToAccount(options.l1Mnemonic);
33
+ } else {
34
+ throw new Error('--node.publisherPrivateKey or --l1-mnemonic is required to deploy L1 contracts');
35
+ }
36
+ // REFACTOR: We should not be calling a method from sandbox on the prod start flow
37
+ await deployContractsToL1(nodeConfig, account, undefined, {
38
+ assumeProvenThroughBlockNumber: nodeSpecificOptions.assumeProvenThroughBlockNumber,
39
+ salt: nodeSpecificOptions.deployAztecContractsSalt,
40
+ genesisBlockHash,
41
+ genesisArchiveRoot
42
+ });
43
+ } else {
44
+ if (!nodeConfig.l1Contracts.registryAddress || nodeConfig.l1Contracts.registryAddress.isZero()) {
45
+ throw new Error('L1 registry address is required to start Aztec Node without --deploy-aztec-contracts option');
46
+ }
47
+ const { addresses, config } = await getL1Config(nodeConfig.l1Contracts.registryAddress, nodeConfig.l1RpcUrls, nodeConfig.l1ChainId);
48
+ // TODO(#12272): will clean this up.
49
+ nodeConfig = {
50
+ ...nodeConfig,
51
+ l1Contracts: {
52
+ ...addresses,
53
+ slashFactoryAddress: nodeConfig.l1Contracts.slashFactoryAddress
54
+ },
55
+ ...config
56
+ };
57
+ }
58
+ // if no publisher private key, then use l1Mnemonic
59
+ if (!options.archiver) {
60
+ // expect archiver url in node config
61
+ const archiverUrl = nodeConfig.archiverUrl;
62
+ if (!archiverUrl) {
63
+ userLog('Archiver Service URL is required to start Aztec Node without --archiver option');
64
+ throw new Error('Archiver Service URL is required to start Aztec Node without --archiver option');
65
+ }
66
+ nodeConfig.archiverUrl = archiverUrl;
67
+ }
68
+ if (!options.sequencer) {
69
+ nodeConfig.disableValidator = true;
70
+ } else {
71
+ const sequencerConfig = extractNamespacedOptions(options, 'sequencer');
72
+ let account;
73
+ if (!sequencerConfig.publisherPrivateKey || sequencerConfig.publisherPrivateKey === NULL_KEY) {
74
+ if (!options.l1Mnemonic) {
75
+ userLog('--sequencer.publisherPrivateKey or --l1-mnemonic is required to start Aztec Node with --sequencer option');
76
+ throw new Error('Private key or Mnemonic is required to start Aztec Node with --sequencer option');
77
+ } else {
78
+ account = mnemonicToAccount(options.l1Mnemonic);
79
+ const privKey = account.getHdKey().privateKey;
80
+ nodeConfig.publisherPrivateKey = `0x${Buffer.from(privKey).toString('hex')}`;
81
+ }
82
+ } else {
83
+ nodeConfig.publisherPrivateKey = sequencerConfig.publisherPrivateKey;
84
+ }
85
+ }
86
+ if (nodeConfig.p2pEnabled) {
87
+ // ensure bootstrapNodes is an array
88
+ if (nodeConfig.bootstrapNodes && typeof nodeConfig.bootstrapNodes === 'string') {
89
+ nodeConfig.bootstrapNodes = nodeConfig.bootstrapNodes.split(',');
90
+ }
91
+ }
92
+ const telemetryConfig = extractRelevantOptions(options, telemetryClientConfigMappings, 'tel');
93
+ const telemetry = initTelemetryClient(telemetryConfig);
94
+ // Create and start Aztec Node
95
+ const node = await createAztecNode(nodeConfig, {
96
+ telemetry
97
+ }, {
98
+ prefilledPublicData
99
+ });
100
+ // Add node and p2p to services list
101
+ services.node = [
102
+ node,
103
+ AztecNodeApiSchema
104
+ ];
105
+ services.p2p = [
106
+ node.getP2P(),
107
+ P2PApiSchema
108
+ ];
109
+ // Add node stop function to signal handlers
110
+ signalHandlers.push(node.stop.bind(node));
111
+ // Add a PXE client that connects to this node if requested
112
+ let pxe;
113
+ if (options.pxe) {
114
+ const { addPXE } = await import('./start_pxe.js');
115
+ ({ pxe } = await addPXE(options, signalHandlers, services, userLog, {
116
+ node
117
+ }));
118
+ }
119
+ // Add a txs bot if requested
120
+ if (options.bot) {
121
+ const { addBot } = await import('./start_bot.js');
122
+ await addBot(options, signalHandlers, services, {
123
+ pxe,
124
+ node,
125
+ telemetry
126
+ });
127
+ }
128
+ return {
129
+ config: nodeConfig
130
+ };
131
+ }
@@ -0,0 +1,6 @@
1
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
+ import { type LogFn } from '@aztec/foundation/log';
3
+ export declare function startP2PBootstrap(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<{
4
+ config: import("@aztec/stdlib/config").ChainConfig;
5
+ }>;
6
+ //# sourceMappingURL=start_p2p_bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_p2p_bootstrap.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_p2p_bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AASjE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK;;GAaf"}
@@ -0,0 +1,26 @@
1
+ import { jsonStringify } from '@aztec/foundation/json-rpc';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { createStore } from '@aztec/kv-store/lmdb-v2';
4
+ import { BootstrapNode, bootnodeConfigMappings } from '@aztec/p2p';
5
+ import { emptyChainConfig } from '@aztec/stdlib/config';
6
+ import { P2PBootstrapApiSchema } from '@aztec/stdlib/interfaces/server';
7
+ import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
8
+ import { extractRelevantOptions } from '../util.js';
9
+ export async function startP2PBootstrap(options, signalHandlers, services, userLog) {
10
+ // Start a P2P bootstrap node.
11
+ const config = extractRelevantOptions(options, bootnodeConfigMappings, 'p2p');
12
+ userLog(`Starting P2P bootstrap node with config: ${jsonStringify(config)}`);
13
+ const telemetryClient = initTelemetryClient(getTelemetryClientConfig());
14
+ const store = await createStore('p2p-bootstrap', 1, config, createLogger('p2p:bootstrap:store'));
15
+ const node = new BootstrapNode(store, telemetryClient);
16
+ await node.start(config);
17
+ signalHandlers.push(()=>node.stop());
18
+ services.bootstrap = [
19
+ node,
20
+ P2PBootstrapApiSchema
21
+ ];
22
+ userLog(`P2P bootstrap node started on ${config.udpListenAddress}`);
23
+ return {
24
+ config: emptyChainConfig
25
+ };
26
+ }
@@ -0,0 +1,4 @@
1
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+ export declare function startProverAgent(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<void>;
4
+ //# sourceMappingURL=start_prover_agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_prover_agent.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAenD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,iBA6Cf"}
@@ -0,0 +1,41 @@
1
+ import { times } from '@aztec/foundation/collection';
2
+ import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
3
+ import { buildServerCircuitProver } from '@aztec/prover-client';
4
+ import { InlineProofStore, ProvingAgent, createProvingJobBrokerClient, proverAgentConfigMappings } from '@aztec/prover-client/broker';
5
+ import { getProverNodeAgentConfigFromEnv } from '@aztec/prover-node';
6
+ import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
7
+ import { extractRelevantOptions } from '../util.js';
8
+ import { getVersions } from '../versioning.js';
9
+ export async function startProverAgent(options, signalHandlers, services, userLog) {
10
+ if (options.node || options.sequencer || options.pxe || options.p2pBootstrap || options.txe) {
11
+ userLog(`Starting a prover agent with --node, --sequencer, --pxe, --p2p-bootstrap, or --txe is not supported.`);
12
+ process.exit(1);
13
+ }
14
+ const config = {
15
+ ...getProverNodeAgentConfigFromEnv(),
16
+ ...extractRelevantOptions(options, proverAgentConfigMappings, 'proverAgent')
17
+ };
18
+ if (config.realProofs && (!config.bbBinaryPath || !config.acvmBinaryPath)) {
19
+ process.exit(1);
20
+ }
21
+ if (!config.proverBrokerUrl) {
22
+ process.exit(1);
23
+ }
24
+ const fetch = makeTracedFetch([
25
+ 1,
26
+ 2,
27
+ 3
28
+ ], false, makeUndiciFetch(new Agent({
29
+ connections: 10
30
+ })));
31
+ const broker = createProvingJobBrokerClient(config.proverBrokerUrl, getVersions(), fetch);
32
+ const telemetry = initTelemetryClient(extractRelevantOptions(options, telemetryClientConfigMappings, 'tel'));
33
+ const prover = await buildServerCircuitProver(config, telemetry);
34
+ const proofStore = new InlineProofStore();
35
+ const agents = times(config.proverAgentCount, ()=>new ProvingAgent(broker, proofStore, prover, config.proverAgentProofTypes, config.proverAgentPollIntervalMs, telemetry));
36
+ await Promise.all(agents.map((agent)=>agent.start()));
37
+ signalHandlers.push(async ()=>{
38
+ await Promise.all(agents.map((agent)=>agent.stop()));
39
+ await telemetry.stop();
40
+ });
41
+ }
@@ -0,0 +1,9 @@
1
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+ import { type ProverBrokerConfig } from '@aztec/prover-client/broker';
4
+ import type { ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
5
+ export declare function startProverBroker(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<{
6
+ broker: ProvingJobBroker;
7
+ config: ProverBrokerConfig;
8
+ }>;
9
+ //# sourceMappingURL=start_prover_broker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_prover_broker.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_broker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMxE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAyBnE"}
@@ -0,0 +1,31 @@
1
+ import { ProvingJobBrokerSchema, createAndStartProvingBroker, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
2
+ import { getProverNodeBrokerConfigFromEnv } from '@aztec/prover-node';
3
+ import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
4
+ import { getL1Config } from '../get_l1_config.js';
5
+ import { extractRelevantOptions } from '../util.js';
6
+ export async function startProverBroker(options, signalHandlers, services, userLog) {
7
+ if (options.node || options.sequencer || options.pxe || options.p2pBootstrap || options.txe) {
8
+ userLog(`Starting a prover broker with --node, --sequencer, --pxe, --p2p-bootstrap, or --txe is not supported.`);
9
+ process.exit(1);
10
+ }
11
+ const config = {
12
+ ...getProverNodeBrokerConfigFromEnv(),
13
+ ...extractRelevantOptions(options, proverBrokerConfigMappings, 'proverBroker')
14
+ };
15
+ if (!config.l1Contracts.registryAddress || config.l1Contracts.registryAddress.isZero()) {
16
+ throw new Error('L1 registry address is required to start Aztec Node without --deploy-aztec-contracts option');
17
+ }
18
+ const { addresses } = await getL1Config(config.l1Contracts.registryAddress, config.l1RpcUrls, config.l1ChainId);
19
+ config.l1Contracts = addresses;
20
+ const client = initTelemetryClient(getTelemetryClientConfig());
21
+ const broker = await createAndStartProvingBroker(config, client);
22
+ services.proverBroker = [
23
+ broker,
24
+ ProvingJobBrokerSchema
25
+ ];
26
+ signalHandlers.push(()=>broker.stop());
27
+ return {
28
+ broker,
29
+ config
30
+ };
31
+ }
@@ -0,0 +1,7 @@
1
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+ import { type ProverNodeConfig } from '@aztec/prover-node';
4
+ export declare function startProverNode(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<{
5
+ config: ProverNodeConfig;
6
+ }>;
7
+ //# sourceMappingURL=start_prover_node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start_prover_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,oBAAoB,CAAC;AAa5B,wBAAsB,eAAe,CACnC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA2FvC"}
@@ -0,0 +1,110 @@
1
+ import { getInitialTestAccounts } from '@aztec/accounts/testing';
2
+ import { NULL_KEY } from '@aztec/ethereum';
3
+ import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
4
+ import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
5
+ import { createProverNode, getProverNodeConfigFromEnv, proverNodeConfigMappings } from '@aztec/prover-node';
6
+ import { createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
7
+ import { P2PApiSchema, ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
8
+ import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
9
+ import { getGenesisValues } from '@aztec/world-state/testing';
10
+ import { mnemonicToAccount } from 'viem/accounts';
11
+ import { getL1Config } from '../get_l1_config.js';
12
+ import { extractRelevantOptions } from '../util.js';
13
+ import { getVersions } from '../versioning.js';
14
+ import { startProverBroker } from './start_prover_broker.js';
15
+ export async function startProverNode(options, signalHandlers, services, userLog) {
16
+ if (options.node || options.sequencer || options.pxe || options.p2pBootstrap || options.txe) {
17
+ userLog(`Starting a prover-node with --node, --sequencer, --pxe, --p2p-bootstrap, or --txe is not supported.`);
18
+ process.exit(1);
19
+ }
20
+ let proverConfig = {
21
+ ...getProverNodeConfigFromEnv(),
22
+ ...extractRelevantOptions(options, proverNodeConfigMappings, 'proverNode')
23
+ };
24
+ if (!options.archiver && !proverConfig.archiverUrl) {
25
+ userLog('--archiver.archiverUrl is required to start a Prover Node without --archiver option');
26
+ process.exit(1);
27
+ }
28
+ if (!proverConfig.publisherPrivateKey || proverConfig.publisherPrivateKey === NULL_KEY) {
29
+ if (!options.l1Mnemonic) {
30
+ userLog(`--l1-mnemonic is required to start a Prover Node without --node.publisherPrivateKey`);
31
+ process.exit(1);
32
+ }
33
+ const hdAccount = mnemonicToAccount(options.l1Mnemonic);
34
+ const privKey = hdAccount.getHdKey().privateKey;
35
+ proverConfig.publisherPrivateKey = `0x${Buffer.from(privKey).toString('hex')}`;
36
+ }
37
+ // TODO(palla/prover-node) L1 contract addresses should not silently default to zero,
38
+ // they should be undefined if not set and fail loudly.
39
+ // Load l1 contract addresses from aztec node if not set.
40
+ const isRollupAddressSet = proverConfig.l1Contracts?.rollupAddress && !proverConfig.l1Contracts.rollupAddress.isZero();
41
+ const nodeUrl = proverConfig.nodeUrl ?? proverConfig.proverCoordinationNodeUrl;
42
+ if (nodeUrl && !isRollupAddressSet) {
43
+ userLog(`Loading L1 contract addresses from aztec node at ${nodeUrl}`);
44
+ proverConfig.l1Contracts = await createAztecNodeClient(nodeUrl).getL1ContractAddresses();
45
+ }
46
+ // If we create an archiver here, validate the L1 config
47
+ if (options.archiver) {
48
+ if (!proverConfig.l1Contracts.registryAddress || proverConfig.l1Contracts.registryAddress.isZero()) {
49
+ throw new Error('L1 registry address is required to start a Prover Node with --archiver option');
50
+ }
51
+ const { addresses, config } = await getL1Config(proverConfig.l1Contracts.registryAddress, proverConfig.l1RpcUrls, proverConfig.l1ChainId);
52
+ proverConfig.l1Contracts = addresses;
53
+ proverConfig = {
54
+ ...proverConfig,
55
+ ...config
56
+ };
57
+ }
58
+ const telemetry = initTelemetryClient(extractRelevantOptions(options, telemetryClientConfigMappings, 'tel'));
59
+ let broker;
60
+ if (proverConfig.proverBrokerUrl) {
61
+ // at 1TPS we'd enqueue ~1k tube proofs and ~1k AVM proofs immediately
62
+ // set a lower connectio limit such that we don't overload the server
63
+ const fetch = makeTracedFetch([
64
+ 1,
65
+ 2,
66
+ 3
67
+ ], false, makeUndiciFetch(new Agent({
68
+ connections: 100
69
+ })));
70
+ broker = createProvingJobBrokerClient(proverConfig.proverBrokerUrl, getVersions(proverConfig), fetch);
71
+ } else if (options.proverBroker) {
72
+ ({ broker } = await startProverBroker(options, signalHandlers, services, userLog));
73
+ } else {
74
+ userLog(`--prover-broker-url or --prover-broker is required to start a Prover Node`);
75
+ process.exit(1);
76
+ }
77
+ if (proverConfig.proverAgentCount === 0) {
78
+ userLog(`Running prover node without local prover agent. Connect one or more prover agents to this node or pass --proverAgent.proverAgentCount`);
79
+ }
80
+ const initialFundedAccounts = proverConfig.testAccounts ? await getInitialTestAccounts() : [];
81
+ const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
82
+ const proverNode = await createProverNode(proverConfig, {
83
+ telemetry,
84
+ broker
85
+ }, {
86
+ prefilledPublicData
87
+ });
88
+ services.proverNode = [
89
+ proverNode,
90
+ ProverNodeApiSchema
91
+ ];
92
+ const p2p = proverNode.getP2P();
93
+ if (p2p) {
94
+ services.p2p = [
95
+ proverNode.getP2P(),
96
+ P2PApiSchema
97
+ ];
98
+ }
99
+ if (!proverConfig.proverBrokerUrl) {
100
+ services.provingJobSource = [
101
+ proverNode.getProver().getProvingJobSource(),
102
+ ProvingJobConsumerSchema
103
+ ];
104
+ }
105
+ signalHandlers.push(proverNode.stop.bind(proverNode));
106
+ proverNode.start();
107
+ return {
108
+ config: proverConfig
109
+ };
110
+ }
@@ -0,0 +1,16 @@
1
+ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+ import { type CliPXEOptions, type PXEService, type PXEServiceConfig } from '@aztec/pxe/server';
4
+ import { type AztecNode } from '@aztec/stdlib/interfaces/client';
5
+ export type { PXEServiceConfig, CliPXEOptions };
6
+ export declare function startPXE(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<{
7
+ pxe: PXEService;
8
+ config: PXEServiceConfig & CliPXEOptions;
9
+ }>;
10
+ export declare function addPXE(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn, deps?: {
11
+ node?: AztecNode;
12
+ }): Promise<{
13
+ pxe: PXEService;
14
+ config: PXEServiceConfig & CliPXEOptions;
15
+ }>;
16
+ //# sourceMappingURL=start_pxe.d.ts.map