@aztec/aztec 0.0.1-commit.0208eb9 → 0.0.1-commit.033589e

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 (84) hide show
  1. package/dest/bin/index.js +5 -1
  2. package/dest/cli/admin_api_key_store.d.ts +45 -0
  3. package/dest/cli/admin_api_key_store.d.ts.map +1 -0
  4. package/dest/cli/admin_api_key_store.js +98 -0
  5. package/dest/cli/aztec_start_action.d.ts +1 -1
  6. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  7. package/dest/cli/aztec_start_action.js +46 -10
  8. package/dest/cli/aztec_start_options.d.ts +1 -1
  9. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  10. package/dest/cli/aztec_start_options.js +23 -6
  11. package/dest/cli/cli.d.ts +1 -1
  12. package/dest/cli/cli.d.ts.map +1 -1
  13. package/dest/cli/cli.js +3 -4
  14. package/dest/cli/cmds/compile.d.ts +4 -0
  15. package/dest/cli/cmds/compile.d.ts.map +1 -0
  16. package/dest/cli/cmds/compile.js +160 -0
  17. package/dest/cli/cmds/profile.d.ts +4 -0
  18. package/dest/cli/cmds/profile.d.ts.map +1 -0
  19. package/dest/cli/cmds/profile.js +8 -0
  20. package/dest/cli/cmds/profile_flamegraph.d.ts +4 -0
  21. package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -0
  22. package/dest/cli/cmds/profile_flamegraph.js +51 -0
  23. package/dest/cli/cmds/profile_gates.d.ts +4 -0
  24. package/dest/cli/cmds/profile_gates.d.ts.map +1 -0
  25. package/dest/cli/cmds/profile_gates.js +57 -0
  26. package/dest/cli/cmds/profile_utils.d.ts +18 -0
  27. package/dest/cli/cmds/profile_utils.d.ts.map +1 -0
  28. package/dest/cli/cmds/profile_utils.js +50 -0
  29. package/dest/cli/cmds/start_bot.d.ts +3 -3
  30. package/dest/cli/cmds/start_bot.d.ts.map +1 -1
  31. package/dest/cli/cmds/start_bot.js +9 -5
  32. package/dest/cli/cmds/start_node.d.ts +1 -1
  33. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  34. package/dest/cli/cmds/start_node.js +118 -10
  35. package/dest/cli/cmds/utils/artifacts.d.ts +21 -0
  36. package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -0
  37. package/dest/cli/cmds/utils/artifacts.js +24 -0
  38. package/dest/cli/cmds/utils/spawn.d.ts +3 -0
  39. package/dest/cli/cmds/utils/spawn.d.ts.map +1 -0
  40. package/dest/cli/cmds/utils/spawn.js +16 -0
  41. package/dest/cli/util.d.ts +5 -14
  42. package/dest/cli/util.d.ts.map +1 -1
  43. package/dest/cli/util.js +13 -8
  44. package/dest/examples/token.js +6 -6
  45. package/dest/local-network/banana_fpc.js +1 -1
  46. package/dest/local-network/local-network.d.ts +3 -1
  47. package/dest/local-network/local-network.d.ts.map +1 -1
  48. package/dest/local-network/local-network.js +41 -17
  49. package/dest/testing/anvil_test_watcher.d.ts +9 -1
  50. package/dest/testing/anvil_test_watcher.d.ts.map +1 -1
  51. package/dest/testing/anvil_test_watcher.js +52 -15
  52. package/package.json +34 -34
  53. package/scripts/add_crate.sh +102 -0
  54. package/scripts/aztec.sh +8 -5
  55. package/scripts/init.sh +23 -19
  56. package/scripts/new.sh +48 -24
  57. package/scripts/setup_workspace.sh +68 -0
  58. package/src/bin/index.ts +5 -1
  59. package/src/cli/admin_api_key_store.ts +128 -0
  60. package/src/cli/aztec_start_action.ts +50 -6
  61. package/src/cli/aztec_start_options.ts +25 -5
  62. package/src/cli/cli.ts +3 -4
  63. package/src/cli/cmds/compile.ts +184 -0
  64. package/src/cli/cmds/profile.ts +25 -0
  65. package/src/cli/cmds/profile_flamegraph.ts +63 -0
  66. package/src/cli/cmds/profile_gates.ts +67 -0
  67. package/src/cli/cmds/profile_utils.ts +58 -0
  68. package/src/cli/cmds/start_bot.ts +8 -5
  69. package/src/cli/cmds/start_node.ts +137 -9
  70. package/src/cli/cmds/utils/artifacts.ts +44 -0
  71. package/src/cli/cmds/utils/spawn.ts +16 -0
  72. package/src/cli/util.ts +16 -21
  73. package/src/examples/token.ts +8 -6
  74. package/src/local-network/banana_fpc.ts +1 -1
  75. package/src/local-network/local-network.ts +48 -17
  76. package/src/testing/anvil_test_watcher.ts +59 -15
  77. package/dest/cli/cmds/start_prover_node.d.ts +0 -7
  78. package/dest/cli/cmds/start_prover_node.d.ts.map +0 -1
  79. package/dest/cli/cmds/start_prover_node.js +0 -108
  80. package/scripts/compile.sh +0 -44
  81. package/scripts/extract_function.js +0 -47
  82. package/scripts/flamegraph.sh +0 -59
  83. package/scripts/setup_project.sh +0 -31
  84. package/src/cli/cmds/start_prover_node.ts +0 -124
@@ -0,0 +1,4 @@
1
+ import type { LogFn } from '@aztec/foundation/log';
2
+ /** Profiles all compiled artifacts in a target directory and prints gate counts. */
3
+ export declare function profileGates(targetDir: string, log: LogFn): Promise<void>;
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZV9nYXRlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3Byb2ZpbGVfZ2F0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUErQm5ELG9GQUFvRjtBQUNwRix3QkFBc0IsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBaUMvRSJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile_gates.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_gates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA+BnD,oFAAoF;AACpF,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/E"}
@@ -0,0 +1,57 @@
1
+ import { asyncPool } from '@aztec/foundation/async-pool';
2
+ import { execFile as execFileCb } from 'child_process';
3
+ import { rm } from 'fs/promises';
4
+ import { promisify } from 'util';
5
+ import { MAX_CONCURRENT, discoverArtifacts } from './profile_utils.js';
6
+ const execFile = promisify(execFileCb);
7
+ /** Parses circuit_size from bb gates JSON output: { "functions": [{ "circuit_size": N }] } */ function parseGateCount(stdout) {
8
+ const parsed = JSON.parse(stdout);
9
+ const size = parsed?.functions?.[0]?.circuit_size;
10
+ if (typeof size !== 'number') {
11
+ throw new Error('Failed to parse circuit_size from bb gates output');
12
+ }
13
+ return size;
14
+ }
15
+ /** Runs bb gates on a single artifact file and returns the gate count. */ async function getGateCount(bb, artifactPath) {
16
+ const { stdout } = await execFile(bb, [
17
+ 'gates',
18
+ '--scheme',
19
+ 'chonk',
20
+ '-b',
21
+ artifactPath
22
+ ]);
23
+ return parseGateCount(stdout);
24
+ }
25
+ /** Profiles all compiled artifacts in a target directory and prints gate counts. */ export async function profileGates(targetDir, log) {
26
+ const bb = process.env.BB ?? 'bb';
27
+ const { artifacts, tmpDir } = await discoverArtifacts(targetDir);
28
+ if (artifacts.length === 0) {
29
+ log('No artifacts found in target directory.');
30
+ return;
31
+ }
32
+ try {
33
+ const results = await asyncPool(MAX_CONCURRENT, artifacts, async (artifact)=>({
34
+ name: artifact.name,
35
+ gateCount: await getGateCount(bb, artifact.filePath)
36
+ }));
37
+ results.sort((a, b)=>a.name.localeCompare(b.name));
38
+ if (results.length === 0) {
39
+ log('No constrained circuits found.');
40
+ return;
41
+ }
42
+ const maxNameLen = Math.max(...results.map((r)=>r.name.length));
43
+ log('');
44
+ log('Gate counts:');
45
+ log('-'.repeat(maxNameLen + 16));
46
+ for (const { name, gateCount } of results){
47
+ log(`${name.padEnd(maxNameLen)} ${gateCount.toLocaleString().padStart(12)}`);
48
+ }
49
+ log('-'.repeat(maxNameLen + 16));
50
+ log(`Total: ${results.length} circuit(s)`);
51
+ } finally{
52
+ await rm(tmpDir, {
53
+ recursive: true,
54
+ force: true
55
+ });
56
+ }
57
+ }
@@ -0,0 +1,18 @@
1
+ import type { CompiledArtifact, ContractFunction } from './utils/artifacts.js';
2
+ export declare const MAX_CONCURRENT = 4;
3
+ export interface DiscoveredArtifact {
4
+ name: string;
5
+ filePath: string;
6
+ type: 'contract-function' | 'program';
7
+ }
8
+ /**
9
+ * Reads a target directory and returns a list of discovered artifacts with temp files
10
+ * created for contract functions. Caller must clean up tmpDir when done.
11
+ */
12
+ export declare function discoverArtifacts(targetDir: string): Promise<{
13
+ artifacts: DiscoveredArtifact[];
14
+ tmpDir: string;
15
+ }>;
16
+ /** Extracts a contract function as a standalone program artifact JSON string. */
17
+ export declare function makeFunctionArtifact(artifact: CompiledArtifact, func: ContractFunction): string;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZV91dGlscy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3Byb2ZpbGVfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUcvRSxlQUFPLE1BQU0sY0FBYyxJQUFJLENBQUM7QUFFaEMsTUFBTSxXQUFXLGtCQUFrQjtJQUNqQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixJQUFJLEVBQUUsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0NBQ3ZDO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUNyQyxTQUFTLEVBQUUsTUFBTSxHQUNoQixPQUFPLENBQUM7SUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDLENBc0I5RDtBQUVELGlGQUFpRjtBQUNqRix3QkFBZ0Isb0JBQW9CLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxnQkFBZ0IsVUFXdEYifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile_utils.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACvC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB9D;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,UAWtF"}
@@ -0,0 +1,50 @@
1
+ import { mkdtemp, writeFile } from 'fs/promises';
2
+ import { tmpdir } from 'os';
3
+ import { join } from 'path';
4
+ import { readArtifactFiles } from './utils/artifacts.js';
5
+ export const MAX_CONCURRENT = 4;
6
+ /**
7
+ * Reads a target directory and returns a list of discovered artifacts with temp files
8
+ * created for contract functions. Caller must clean up tmpDir when done.
9
+ */ export async function discoverArtifacts(targetDir) {
10
+ const files = await readArtifactFiles(targetDir);
11
+ const tmpDir = await mkdtemp(join(tmpdir(), 'aztec-profile-'));
12
+ const artifacts = [];
13
+ for (const file of files){
14
+ if (Array.isArray(file.content.functions)) {
15
+ for (const func of file.content.functions){
16
+ if (!func.bytecode || func.is_unconstrained) {
17
+ continue;
18
+ }
19
+ const name = `${file.name}::${func.name}`;
20
+ const tmpPath = join(tmpDir, `${file.name}-${func.name}.json`);
21
+ await writeFile(tmpPath, makeFunctionArtifact(file.content, func));
22
+ artifacts.push({
23
+ name,
24
+ filePath: tmpPath,
25
+ type: 'contract-function'
26
+ });
27
+ }
28
+ } else if (file.content.bytecode) {
29
+ artifacts.push({
30
+ name: file.name,
31
+ filePath: file.filePath,
32
+ type: 'program'
33
+ });
34
+ }
35
+ }
36
+ return {
37
+ artifacts,
38
+ tmpDir
39
+ };
40
+ }
41
+ /** Extracts a contract function as a standalone program artifact JSON string. */ export function makeFunctionArtifact(artifact, func) {
42
+ /* eslint-disable camelcase */ return JSON.stringify({
43
+ noir_version: artifact.noir_version,
44
+ hash: 0,
45
+ abi: func.abi,
46
+ bytecode: func.bytecode,
47
+ debug_symbols: func.debug_symbols,
48
+ file_map: artifact.file_map
49
+ });
50
+ /* eslint-enable camelcase */ }
@@ -2,7 +2,7 @@ import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
2
2
  import type { LogFn } from '@aztec/foundation/log';
3
3
  import { type AztecNode, type AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
4
4
  import type { TelemetryClient } from '@aztec/telemetry-client';
5
- import { TestWallet } from '@aztec/test-wallet/server';
5
+ import { EmbeddedWallet } from '@aztec/wallets/embedded';
6
6
  export declare function startBot(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<void>;
7
- export declare function addBot(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, wallet: TestWallet, aztecNode: AztecNode, telemetry: TelemetryClient, aztecNodeAdmin?: AztecNodeAdmin): Promise<void>;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLEtBQUssY0FBYyxFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBTS9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUt2RCx3QkFBc0IsUUFBUSxDQUM1QixPQUFPLEVBQUUsR0FBRyxFQUNaLGNBQWMsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFDdkMsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixPQUFPLEVBQUUsS0FBSyxpQkF1QmY7QUFFRCx3QkFBc0IsTUFBTSxDQUMxQixPQUFPLEVBQUUsR0FBRyxFQUNaLGNBQWMsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFDdkMsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixNQUFNLEVBQUUsVUFBVSxFQUNsQixTQUFTLEVBQUUsU0FBUyxFQUNwQixTQUFTLEVBQUUsZUFBZSxFQUMxQixjQUFjLENBQUMsRUFBRSxjQUFjLGlCQWtCaEMifQ==
7
+ export declare function addBot(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, wallet: EmbeddedWallet, aztecNode: AztecNode, telemetry: TelemetryClient, aztecNodeAdmin?: AztecNodeAdmin, userLog?: LogFn): Promise<void>;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfYm90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfYm90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFFLEtBQUssY0FBYyxFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBTS9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUt6RCx3QkFBc0IsUUFBUSxDQUM1QixPQUFPLEVBQUUsR0FBRyxFQUNaLGNBQWMsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFDdkMsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixPQUFPLEVBQUUsS0FBSyxpQkF3QmY7QUFFRCx3QkFBc0IsTUFBTSxDQUMxQixPQUFPLEVBQUUsR0FBRyxFQUNaLGNBQWMsRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFDdkMsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixNQUFNLEVBQUUsY0FBYyxFQUN0QixTQUFTLEVBQUUsU0FBUyxFQUNwQixTQUFTLEVBQUUsZUFBZSxFQUMxQixjQUFjLENBQUMsRUFBRSxjQUFjLEVBQy9CLE9BQU8sQ0FBQyxFQUFFLEtBQUssaUJBbUJoQiJ9
@@ -1 +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;AAGnD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAyB,MAAM,iCAAiC,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAKvD,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,iBAuBf;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,cAAc,iBAkBhC"}
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;AAGnD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAyB,MAAM,iCAAiC,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzD,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,iBAwBf;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,cAAc,EAC/B,OAAO,CAAC,EAAE,KAAK,iBAmBhB"}
@@ -3,8 +3,8 @@ import { createStore, openTmpStore } from '@aztec/kv-store/lmdb-v2';
3
3
  import { allPxeConfigMappings } from '@aztec/pxe/config';
4
4
  import { createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
5
5
  import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient, makeTracedFetch } from '@aztec/telemetry-client';
6
- import { TestWallet } from '@aztec/test-wallet/server';
7
- import { extractRelevantOptions } from '../util.js';
6
+ import { EmbeddedWallet } from '@aztec/wallets/embedded';
7
+ import { extractRelevantOptions, stringifyConfig } from '../util.js';
8
8
  import { getVersions } from '../versioning.js';
9
9
  export async function startBot(options, signalHandlers, services, userLog) {
10
10
  const { proverNode, archiver, sequencer, p2pBootstrap, txe, prover } = options;
@@ -23,12 +23,16 @@ export async function startBot(options, signalHandlers, services, userLog) {
23
23
  }
24
24
  const aztecNode = createAztecNodeClient(config.nodeUrl, getVersions(), fetch);
25
25
  const pxeConfig = extractRelevantOptions(options, allPxeConfigMappings, 'pxe');
26
- const wallet = await TestWallet.create(aztecNode, pxeConfig);
26
+ userLog(`Creating bot wallet with config ${stringifyConfig(pxeConfig)}`);
27
+ const wallet = await EmbeddedWallet.create(aztecNode, {
28
+ pxeConfig
29
+ });
27
30
  const telemetry = await initTelemetryClient(getTelemetryClientConfig());
28
- await addBot(options, signalHandlers, services, wallet, aztecNode, telemetry, undefined);
31
+ await addBot(options, signalHandlers, services, wallet, aztecNode, telemetry, undefined, userLog);
29
32
  }
30
- export async function addBot(options, signalHandlers, services, wallet, aztecNode, telemetry, aztecNodeAdmin) {
33
+ export async function addBot(options, signalHandlers, services, wallet, aztecNode, telemetry, aztecNodeAdmin, userLog) {
31
34
  const config = extractRelevantOptions(options, botConfigMappings, 'bot');
35
+ userLog?.(`Starting bot with config ${stringifyConfig(config)}`);
32
36
  const db = await (config.dataDirectory ? createStore('bot', BotStore.SCHEMA_VERSION, config) : openTmpStore('bot', true, config.dataStoreMapSizeKb));
33
37
  const store = new BotStore(db);
34
38
  await store.cleanupOldClaims();
@@ -4,4 +4,4 @@ import type { LogFn } from '@aztec/foundation/log';
4
4
  export declare function startNode(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, adminServices: NamespacedApiHandlers, userLog: LogFn): Promise<{
5
5
  config: AztecNodeConfig;
6
6
  }>;
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUE2QyxNQUFNLG1CQUFtQixDQUFDO0FBTXBHLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFvQm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQXlIdEMifQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUE2QyxNQUFNLG1CQUFtQixDQUFDO0FBUXBHLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUE2Rm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQTRLdEMifQ==
@@ -1 +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;AAMpG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAoBnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CAyHtC"}
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;AAQpG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA6FnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CA4KtC"}
@@ -4,15 +4,70 @@ import { Fr } from '@aztec/aztec.js/fields';
4
4
  import { getSponsoredFPCAddress } from '@aztec/cli/cli-utils';
5
5
  import { getL1Config } from '@aztec/cli/config';
6
6
  import { getPublicClient } from '@aztec/ethereum/client';
7
+ import { RegistryContract, RollupContract } from '@aztec/ethereum/contracts';
7
8
  import { SecretValue } from '@aztec/foundation/config';
9
+ import { startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
10
+ import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
11
+ import { sleep } from '@aztec/foundation/sleep';
12
+ import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
8
13
  import { allPxeConfigMappings } from '@aztec/pxe/config';
9
14
  import { AztecNodeAdminApiSchema, AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
10
- import { P2PApiSchema } from '@aztec/stdlib/interfaces/server';
11
- import { initTelemetryClient, telemetryClientConfigMappings } from '@aztec/telemetry-client';
12
- import { TestWallet } from '@aztec/test-wallet/server';
15
+ import { P2PApiSchema, ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
16
+ import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
17
+ import { EmbeddedWallet } from '@aztec/wallets/embedded';
13
18
  import { getGenesisValues } from '@aztec/world-state/testing';
19
+ import Koa from 'koa';
14
20
  import { createAztecNode } from '../../local-network/index.js';
15
21
  import { extractNamespacedOptions, extractRelevantOptions, preloadCrsDataForVerifying, setupUpdateMonitor } from '../util.js';
22
+ import { getVersions } from '../versioning.js';
23
+ import { startProverBroker } from './start_prover_broker.js';
24
+ const ROLLUP_POLL_INTERVAL_MS = 600_000;
25
+ /**
26
+ * Waits until the canonical rollup's genesis archive root matches the expected local genesis root.
27
+ * If the rollup is not yet compatible (e.g. during L1 contract upgrades), enters standby mode:
28
+ * starts a lightweight HTTP server for K8s liveness probes and polls until a compatible rollup appears.
29
+ */ async function waitForCompatibleRollup(publicClient, registryAddress, rollupVersion, expectedGenesisRoot, port, userLog) {
30
+ const registry = new RegistryContract(publicClient, registryAddress);
31
+ const rollupAddress = await registry.getRollupAddress(rollupVersion);
32
+ const rollup = new RollupContract(publicClient, rollupAddress.toString());
33
+ let l1GenesisRoot;
34
+ try {
35
+ l1GenesisRoot = await rollup.getGenesisArchiveTreeRoot();
36
+ } catch (err) {
37
+ throw new Error(`Could not retrieve genesis archive root from canonical rollup at ${rollupAddress}: ${err.message}`);
38
+ }
39
+ if (l1GenesisRoot.equals(expectedGenesisRoot)) {
40
+ return;
41
+ }
42
+ userLog(`Genesis root mismatch: expected ${expectedGenesisRoot}, got ${l1GenesisRoot} from rollup at ${rollupAddress}. ` + `Entering standby mode. Will poll every ${ROLLUP_POLL_INTERVAL_MS / 1000}s for a compatible rollup...`);
43
+ const standbyServer = await startHttpRpcServer({
44
+ getApp: ()=>new Koa(),
45
+ isHealthy: ()=>true
46
+ }, {
47
+ port
48
+ });
49
+ userLog(`Standby status server listening on port ${standbyServer.port}`);
50
+ try {
51
+ while(true){
52
+ await sleep(ROLLUP_POLL_INTERVAL_MS);
53
+ const currentRollupAddress = await registry.getRollupAddress(rollupVersion);
54
+ const currentRollup = new RollupContract(publicClient, currentRollupAddress.toString());
55
+ try {
56
+ l1GenesisRoot = await currentRollup.getGenesisArchiveTreeRoot();
57
+ } catch {
58
+ userLog(`Failed to fetch genesis root from rollup at ${currentRollupAddress}. Retrying...`);
59
+ continue;
60
+ }
61
+ if (l1GenesisRoot.equals(expectedGenesisRoot)) {
62
+ userLog(`Compatible rollup found at ${currentRollupAddress}. Exiting standby mode.`);
63
+ return;
64
+ }
65
+ userLog(`Still waiting. Rollup at ${currentRollupAddress} has genesis root ${l1GenesisRoot}.`);
66
+ }
67
+ } finally{
68
+ await new Promise((resolve, reject)=>standbyServer.close((err)=>err ? reject(err) : resolve()));
69
+ }
70
+ }
16
71
  export async function startNode(options, signalHandlers, services, adminServices, userLog) {
17
72
  // All options set from environment variables
18
73
  const configFromEnvVars = getConfigEnvVars();
@@ -23,9 +78,40 @@ export async function startNode(options, signalHandlers, services, adminServices
23
78
  ...configFromEnvVars,
24
79
  ...relevantOptions
25
80
  };
81
+ // Prover node configuration and broker setup
82
+ // REFACTOR: Move the broker setup out of here and into the prover-node factory
83
+ let broker = undefined;
26
84
  if (options.proverNode) {
27
- userLog(`Running a Prover Node within a Node is not yet supported`);
28
- process.exit(1);
85
+ nodeConfig.enableProverNode = true;
86
+ if (nodeConfig.proverAgentCount === 0) {
87
+ userLog(`Running prover node without local prover agent. Connect prover agents or pass --proverAgent.proverAgentCount`);
88
+ }
89
+ if (nodeConfig.proverBrokerUrl) {
90
+ // at 1TPS we'd enqueue ~1k chonk verifier proofs and ~1k AVM proofs immediately
91
+ // set a lower connection limit such that we don't overload the server
92
+ // Keep retrying up to 30s
93
+ const fetch = makeTracedFetch([
94
+ 1,
95
+ 2,
96
+ 3,
97
+ 3,
98
+ 3,
99
+ 3,
100
+ 3,
101
+ 3,
102
+ 3,
103
+ 3,
104
+ 3
105
+ ], false, makeUndiciFetch(new Agent({
106
+ connections: 100
107
+ })));
108
+ broker = createProvingJobBrokerClient(nodeConfig.proverBrokerUrl, getVersions(nodeConfig), fetch);
109
+ } else if (options.proverBroker) {
110
+ ({ broker } = await startProverBroker(options, signalHandlers, services, userLog));
111
+ } else {
112
+ userLog(`--prover-broker-url or --prover-broker is required to start a Prover Node`);
113
+ process.exit(1);
114
+ }
29
115
  }
30
116
  await preloadCrsDataForVerifying(nodeConfig, userLog);
31
117
  const testAccounts = nodeConfig.testAccounts ? (await getInitialTestAccountsData()).map((a)=>a.address) : [];
@@ -40,6 +126,11 @@ export async function startNode(options, signalHandlers, services, adminServices
40
126
  if (!nodeConfig.l1Contracts.registryAddress || nodeConfig.l1Contracts.registryAddress.isZero()) {
41
127
  throw new Error('L1 registry address is required to start Aztec Node');
42
128
  }
129
+ // Wait for a compatible rollup before proceeding with full L1 config fetch.
130
+ // This prevents crashes when the canonical rollup hasn't been upgraded yet.
131
+ const publicClient = getPublicClient(nodeConfig);
132
+ const rollupVersion = nodeConfig.rollupVersion ?? 'canonical';
133
+ await waitForCompatibleRollup(publicClient, nodeConfig.l1Contracts.registryAddress, rollupVersion, genesisArchiveRoot, options.port, userLog);
43
134
  const { addresses, config } = await getL1Config(nodeConfig.l1Contracts.registryAddress, nodeConfig.l1RpcUrls, nodeConfig.l1ChainId, nodeConfig.rollupVersion);
44
135
  process.env.ROLLUP_CONTRACT_ADDRESS ??= addresses.rollupAddress.toString();
45
136
  if (!Fr.fromHexString(config.genesisArchiveTreeRoot).equals(genesisArchiveRoot)) {
@@ -62,14 +153,14 @@ export async function startNode(options, signalHandlers, services, adminServices
62
153
  ...extractNamespacedOptions(options, 'sequencer')
63
154
  };
64
155
  // If no publisher private keys have been given, use the first validator key
65
- if (sequencerConfig.publisherPrivateKeys === undefined || !sequencerConfig.publisherPrivateKeys.length) {
156
+ if (sequencerConfig.sequencerPublisherPrivateKeys === undefined || !sequencerConfig.sequencerPublisherPrivateKeys.length) {
66
157
  if (sequencerConfig.validatorPrivateKeys?.getValue().length) {
67
- sequencerConfig.publisherPrivateKeys = [
158
+ sequencerConfig.sequencerPublisherPrivateKeys = [
68
159
  new SecretValue(sequencerConfig.validatorPrivateKeys.getValue()[0])
69
160
  ];
70
161
  }
71
162
  }
72
- nodeConfig.publisherPrivateKeys = sequencerConfig.publisherPrivateKeys;
163
+ nodeConfig.sequencerPublisherPrivateKeys = sequencerConfig.sequencerPublisherPrivateKeys;
73
164
  }
74
165
  if (nodeConfig.p2pEnabled) {
75
166
  // ensure bootstrapNodes is an array
@@ -81,7 +172,8 @@ export async function startNode(options, signalHandlers, services, adminServices
81
172
  const telemetry = await initTelemetryClient(telemetryConfig);
82
173
  // Create and start Aztec Node
83
174
  const node = await createAztecNode(nodeConfig, {
84
- telemetry
175
+ telemetry,
176
+ proverBroker: broker
85
177
  }, {
86
178
  prefilledPublicData
87
179
  });
@@ -98,13 +190,29 @@ export async function startNode(options, signalHandlers, services, adminServices
98
190
  node,
99
191
  AztecNodeAdminApiSchema
100
192
  ];
193
+ // Register prover-node services if the prover node subsystem is running
194
+ const proverNode = node.getProverNode();
195
+ if (proverNode) {
196
+ services.prover = [
197
+ proverNode,
198
+ ProverNodeApiSchema
199
+ ];
200
+ if (!nodeConfig.proverBrokerUrl) {
201
+ services.provingJobSource = [
202
+ proverNode.getProver().getProvingJobSource(),
203
+ ProvingJobConsumerSchema
204
+ ];
205
+ }
206
+ }
101
207
  // Add node stop function to signal handlers
102
208
  signalHandlers.push(node.stop.bind(node));
103
209
  // Add a txs bot if requested
104
210
  if (options.bot) {
105
211
  const { addBot } = await import('./start_bot.js');
106
212
  const pxeConfig = extractRelevantOptions(options, allPxeConfigMappings, 'pxe');
107
- const wallet = await TestWallet.create(node, pxeConfig);
213
+ const wallet = await EmbeddedWallet.create(node, {
214
+ pxeConfig
215
+ });
108
216
  await addBot(options, signalHandlers, services, wallet, node, telemetry, undefined);
109
217
  }
110
218
  if (nodeConfig.autoUpdate !== 'disabled' && nodeConfig.autoUpdateUrl) {
@@ -0,0 +1,21 @@
1
+ export interface CompiledArtifact {
2
+ noir_version: string;
3
+ file_map: unknown;
4
+ functions: ContractFunction[];
5
+ bytecode?: string;
6
+ }
7
+ export interface ContractFunction {
8
+ name: string;
9
+ abi: unknown;
10
+ bytecode: string;
11
+ debug_symbols: unknown;
12
+ is_unconstrained?: boolean;
13
+ }
14
+ export interface ArtifactFile {
15
+ name: string;
16
+ filePath: string;
17
+ content: CompiledArtifact;
18
+ }
19
+ /** Reads all JSON artifact files from a target directory and returns their parsed contents. */
20
+ export declare function readArtifactFiles(targetDir: string): Promise<ArtifactFile[]>;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3RzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NtZHMvdXRpbHMvYXJ0aWZhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNuQjtBQUVELE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLEdBQUcsRUFBRSxPQUFPLENBQUM7SUFDYixRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLGFBQWEsRUFBRSxPQUFPLENBQUM7SUFDdkIsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDNUI7QUFFRCxNQUFNLFdBQVcsWUFBWTtJQUMzQixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixPQUFPLEVBQUUsZ0JBQWdCLENBQUM7Q0FDM0I7QUFFRCwrRkFBK0Y7QUFDL0Ysd0JBQXNCLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBa0JsRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/artifacts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,+FAA+F;AAC/F,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkBlF"}
@@ -0,0 +1,24 @@
1
+ import { readFile, readdir } from 'fs/promises';
2
+ import { join } from 'path';
3
+ /** Reads all JSON artifact files from a target directory and returns their parsed contents. */ export async function readArtifactFiles(targetDir) {
4
+ let entries;
5
+ try {
6
+ entries = (await readdir(targetDir)).filter((f)=>f.endsWith('.json'));
7
+ } catch (err) {
8
+ if (err?.code === 'ENOENT') {
9
+ throw new Error(`Target directory '${targetDir}' does not exist. Compile first with 'aztec compile'.`);
10
+ }
11
+ throw err;
12
+ }
13
+ const artifacts = [];
14
+ for (const file of entries){
15
+ const filePath = join(targetDir, file);
16
+ const content = JSON.parse(await readFile(filePath, 'utf-8'));
17
+ artifacts.push({
18
+ name: file.replace('.json', ''),
19
+ filePath,
20
+ content
21
+ });
22
+ }
23
+ return artifacts;
24
+ }
@@ -0,0 +1,3 @@
1
+ /** Spawns a command with inherited stdio and rejects on non-zero exit. */
2
+ export declare function run(cmd: string, args: string[]): Promise<void>;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhd24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGkvY21kcy91dGlscy9zcGF3bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSwwRUFBMEU7QUFDMUUsd0JBQWdCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBWTlEIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/spawn.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9D"}
@@ -0,0 +1,16 @@
1
+ import { spawn } from 'child_process';
2
+ /** Spawns a command with inherited stdio and rejects on non-zero exit. */ export function run(cmd, args) {
3
+ return new Promise((resolve, reject)=>{
4
+ const child = spawn(cmd, args, {
5
+ stdio: 'inherit'
6
+ });
7
+ child.on('error', reject);
8
+ child.on('close', (code)=>{
9
+ if (code !== 0) {
10
+ reject(new Error(`${cmd} exited with code ${code}`));
11
+ } else {
12
+ resolve();
13
+ }
14
+ });
15
+ });
16
+ }
@@ -2,12 +2,11 @@ import type { AztecNodeConfig } from '@aztec/aztec-node';
2
2
  import type { AccountManager } from '@aztec/aztec.js/wallet';
3
3
  import type { ViemClient } from '@aztec/ethereum/types';
4
4
  import type { ConfigMappingsType } from '@aztec/foundation/config';
5
- import { Fr } from '@aztec/foundation/curves/bn254';
6
5
  import { EthAddress } from '@aztec/foundation/eth-address';
7
6
  import { type LogFn } from '@aztec/foundation/log';
8
7
  import type { SharedNodeConfig } from '@aztec/node-lib/config';
9
8
  import type { ProverConfig } from '@aztec/stdlib/interfaces/server';
10
- import type { TestWallet } from '@aztec/test-wallet/server';
9
+ import type { EmbeddedWallet } from '@aztec/wallets/embedded';
11
10
  import type { Command } from 'commander';
12
11
  import { type AztecStartOption } from './aztec_start_options.js';
13
12
  export declare const enum ExitCode {
@@ -26,19 +25,10 @@ export declare const installSignalHandlers: (logFn: LogFn, cb?: (() => Promise<v
26
25
  /**
27
26
  * Creates logs for the initial accounts
28
27
  * @param accounts - The initial accounts
29
- * @param wallet - A TestWallet instance to get the registered accounts
28
+ * @param wallet - A EmbeddedWallet instance to get the registered accounts
30
29
  * @returns A string array containing the initial accounts details
31
30
  */
32
- export declare function createAccountLogs(accountsWithSecretKeys: {
33
- /**
34
- * The account object
35
- */
36
- account: AccountManager;
37
- /**
38
- * The secret key of the account
39
- */
40
- secretKey: Fr;
41
- }[], wallet: TestWallet): Promise<string[]>;
31
+ export declare function createAccountLogs(accountManagers: AccountManager[], wallet: EmbeddedWallet): Promise<string[]>;
42
32
  export declare function getMaxLengths(sections: {
43
33
  [key: string]: AztecStartOption[];
44
34
  }): [number, number];
@@ -74,4 +64,5 @@ export declare function preloadCrsDataForVerifying({ realProofs }: Pick<AztecNod
74
64
  */
75
65
  export declare function preloadCrsDataForServerSideProving({ realProofs }: Pick<ProverConfig, 'realProofs'>, log: LogFn): Promise<void>;
76
66
  export declare function setupUpdateMonitor(autoUpdateMode: SharedNodeConfig['autoUpdate'], updatesLocation: URL, followsCanonicalRollup: boolean, publicClient: ViemClient, registryContractAddress: EthAddress, signalHandlers: Array<() => Promise<void>>, updateNodeConfig?: (config: object) => Promise<void>): Promise<void>;
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc1RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsMEJBQWtCLFFBQVE7SUFDeEIsT0FBTyxJQUFJO0lBQ1gsS0FBSyxJQUFJO0lBQ1QsY0FBYyxLQUFLO0lBQ25CLGVBQWUsS0FBSztJQUVwQixNQUFNLE1BQU07SUFDWixNQUFNLE1BQU07SUFDWixPQUFPLE1BQU07SUFDYixPQUFPLE1BQU07Q0FDZDtBQUdELHdCQUFnQixRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FnQjFHO0FBRUQsd0JBQWdCLGNBQWMsSUFBSSxPQUFPLENBRXhDO0FBRUQsZUFBTyxNQUFNLHFCQUFxQixrRUFhakMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUNyQyxzQkFBc0IsRUFBRTtJQUN0Qjs7T0FFRztJQUNILE9BQU8sRUFBRSxjQUFjLENBQUM7SUFDeEI7O09BRUc7SUFDSCxTQUFTLEVBQUUsRUFBRSxDQUFDO0NBQ2YsRUFBRSxFQUNILE1BQU0sRUFBRSxVQUFVLHFCQXlCbkI7QUFFRCx3QkFBZ0IsYUFBYSxDQUFDLFFBQVEsRUFBRTtJQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFBO0NBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FpQi9GO0FBRUQsd0JBQWdCLGNBQWMsQ0FDNUIsTUFBTSxFQUFFLE1BQU0sRUFDZCxZQUFZLEVBQUUsTUFBTSxFQUNwQixNQUFNLEVBQUUsTUFBTSxFQUNkLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLGdCQUFnQixFQUFFLE1BQU0sR0FDdkIsTUFBTSxDQUtSO0FBaUNELGVBQU8sTUFBTSxVQUFVLHFEQVN0QixDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1QixjQXlCbkMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsZUFBTyxNQUFNLHdCQUF3QiwwRUFTcEMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxlQUFPLE1BQU0sc0JBQXNCLEdBQUksQ0FBQyx3RkFrQ3ZDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUM5QyxFQUFFLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLEVBQ25ELEdBQUcsRUFBRSxLQUFLLEdBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUtmO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixrQ0FBa0MsQ0FDdEQsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUNoRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVELHdCQUFzQixrQkFBa0IsQ0FDdEMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxFQUM5QyxlQUFlLEVBQUUsR0FBRyxFQUNwQixzQkFBc0IsRUFBRSxPQUFPLEVBQy9CLFlBQVksRUFBRSxVQUFVLEVBQ3hCLHVCQUF1QixFQUFFLFVBQVUsRUFDbkMsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQStFckQifQ==
67
+ export declare function stringifyConfig(config: object): string;
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXBFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRiwwQkFBa0IsUUFBUTtJQUN4QixPQUFPLElBQUk7SUFDWCxLQUFLLElBQUk7SUFDVCxjQUFjLEtBQUs7SUFDbkIsZUFBZSxLQUFLO0lBRXBCLE1BQU0sTUFBTTtJQUNaLE1BQU0sTUFBTTtJQUNaLE9BQU8sTUFBTTtJQUNiLE9BQU8sTUFBTTtDQUNkO0FBR0Qsd0JBQWdCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQWdCMUc7QUFFRCx3QkFBZ0IsY0FBYyxJQUFJLE9BQU8sQ0FFeEM7QUFFRCxlQUFPLE1BQU0scUJBQXFCLGtFQWFqQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsaUJBQWlCLENBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLHFCQXlCaEc7QUFFRCx3QkFBZ0IsYUFBYSxDQUFDLFFBQVEsRUFBRTtJQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFBO0NBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FpQi9GO0FBRUQsd0JBQWdCLGNBQWMsQ0FDNUIsTUFBTSxFQUFFLE1BQU0sRUFDZCxZQUFZLEVBQUUsTUFBTSxFQUNwQixNQUFNLEVBQUUsTUFBTSxFQUNkLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLGdCQUFnQixFQUFFLE1BQU0sR0FDdkIsTUFBTSxDQUtSO0FBaUNELGVBQU8sTUFBTSxVQUFVLHFEQVN0QixDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1QixjQXlCbkMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsZUFBTyxNQUFNLHdCQUF3QiwwRUFTcEMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxlQUFPLE1BQU0sc0JBQXNCLEdBQUksQ0FBQyx3RkFrQ3ZDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUM5QyxFQUFFLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLEVBQ25ELEdBQUcsRUFBRSxLQUFLLEdBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUtmO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixrQ0FBa0MsQ0FDdEQsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUNoRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVELHdCQUFzQixrQkFBa0IsQ0FDdEMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxFQUM5QyxlQUFlLEVBQUUsR0FBRyxFQUNwQixzQkFBc0IsRUFBRSxPQUFPLEVBQy9CLFlBQVksRUFBRSxVQUFVLEVBQ3hCLHVCQUF1QixFQUFFLFVBQVUsRUFDbkMsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQStFckQ7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUl0RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/cli/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/cli/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,0BAA0B,CAAC;AAEpF,0BAAkB,QAAQ;IACxB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,cAAc,KAAK;IACnB,eAAe,KAAK;IAEpB,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,OAAO,MAAM;IACb,OAAO,MAAM;CACd;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAgB1G;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,eAAO,MAAM,qBAAqB,kEAajC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,qBAyBhG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB/F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAiCD,eAAO,MAAM,UAAU,qDAStB,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAyBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0EASpC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,wFAkCvC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EACnD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;GAIG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAChD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,kBAAkB,CACtC,cAAc,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAC9C,eAAe,EAAE,GAAG,EACpB,sBAAsB,EAAE,OAAO,EAC/B,YAAY,EAAE,UAAU,EACxB,uBAAuB,EAAE,UAAU,EACnC,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAC1C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,iBA+ErD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD"}
package/dest/cli/util.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { jsonStringify } from '@aztec/foundation/json-rpc';
1
2
  import { createLogger } from '@aztec/foundation/log';
2
3
  import { getTelemetryClient } from '@aztec/telemetry-client/start';
3
4
  import chalk from 'chalk';
@@ -63,19 +64,20 @@ export const installSignalHandlers = (logFn, cb)=>{
63
64
  /**
64
65
  * Creates logs for the initial accounts
65
66
  * @param accounts - The initial accounts
66
- * @param wallet - A TestWallet instance to get the registered accounts
67
+ * @param wallet - A EmbeddedWallet instance to get the registered accounts
67
68
  * @returns A string array containing the initial accounts details
68
- */ export async function createAccountLogs(accountsWithSecretKeys, wallet) {
69
+ */ export async function createAccountLogs(accountManagers, wallet) {
69
70
  const registeredAccounts = await wallet.getAccounts();
70
71
  const accountLogStrings = [
71
72
  `Initial Accounts:\n\n`
72
73
  ];
73
- for (const accountWithSecretKey of accountsWithSecretKeys){
74
- const completeAddress = await accountWithSecretKey.account.getCompleteAddress();
74
+ for (const accountManager of accountManagers){
75
+ const account = await accountManager.getAccount();
76
+ const completeAddress = account.getCompleteAddress();
75
77
  if (registeredAccounts.find((a)=>a.item.equals(completeAddress.address))) {
76
78
  accountLogStrings.push(` Address: ${completeAddress.address.toString()}\n`);
77
79
  accountLogStrings.push(` Partial Address: ${completeAddress.partialAddress.toString()}\n`);
78
- accountLogStrings.push(` Secret Key: ${accountWithSecretKey.secretKey.toString()}\n`);
80
+ accountLogStrings.push(` Secret Key: ${account.getSecretKey().toString()}\n`);
79
81
  accountLogStrings.push(` Master nullifier public key: ${completeAddress.publicKeys.masterNullifierPublicKey.toString()}\n`);
80
82
  accountLogStrings.push(` Master incoming viewing public key: ${completeAddress.publicKeys.masterIncomingViewingPublicKey.toString()}\n\n`);
81
83
  accountLogStrings.push(` Master outgoing viewing public key: ${completeAddress.publicKeys.masterOutgoingViewingPublicKey.toString()}\n\n`);
@@ -218,7 +220,7 @@ export const printAztecStartHelpText = ()=>{
218
220
  const { Crs, GrumpkinCrs } = await import('@aztec/bb.js');
219
221
  await Promise.all([
220
222
  Crs.new(2 ** 1, undefined, log),
221
- GrumpkinCrs.new(2 ** 16 + 1, undefined, log)
223
+ GrumpkinCrs.new(2 ** 16, undefined, log)
222
224
  ]);
223
225
  }
224
226
  }
@@ -230,8 +232,8 @@ export const printAztecStartHelpText = ()=>{
230
232
  if (realProofs) {
231
233
  const { Crs, GrumpkinCrs } = await import('@aztec/bb.js');
232
234
  await Promise.all([
233
- Crs.new(2 ** 25 + 1, undefined, log),
234
- GrumpkinCrs.new(2 ** 18 + 1, undefined, log)
235
+ Crs.new(2 ** 25, undefined, log),
236
+ GrumpkinCrs.new(2 ** 18, undefined, log)
235
237
  ]);
236
238
  }
237
239
  }
@@ -322,3 +324,6 @@ export async function setupUpdateMonitor(autoUpdateMode, updatesLocation, follow
322
324
  });
323
325
  checker.start();
324
326
  }
327
+ export function stringifyConfig(config) {
328
+ return Object.entries(config).map(([key, value])=>`${key}=${jsonStringify(value)}`).join(' ');
329
+ }