@aztec/aztec 5.0.0-private.20260319 → 5.0.0-rc.2
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.
- package/dest/bin/index.js +3 -1
- package/dest/cli/aztec_start_action.d.ts +1 -1
- package/dest/cli/aztec_start_action.d.ts.map +1 -1
- package/dest/cli/aztec_start_action.js +16 -24
- package/dest/cli/aztec_start_options.d.ts +2 -2
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +15 -15
- package/dest/cli/cmds/compile.d.ts +1 -1
- package/dest/cli/cmds/compile.d.ts.map +1 -1
- package/dest/cli/cmds/compile.js +32 -24
- package/dest/cli/cmds/profile.d.ts +1 -1
- package/dest/cli/cmds/profile.d.ts.map +1 -1
- package/dest/cli/cmds/profile.js +1 -1
- package/dest/cli/cmds/profile_gates.d.ts +2 -2
- package/dest/cli/cmds/profile_gates.d.ts.map +1 -1
- package/dest/cli/cmds/profile_gates.js +21 -3
- package/dest/cli/cmds/prover.d.ts +4 -0
- package/dest/cli/cmds/prover.d.ts.map +1 -0
- package/dest/cli/cmds/prover.js +24 -0
- package/dest/cli/cmds/standby.d.ts +30 -6
- package/dest/cli/cmds/standby.d.ts.map +1 -1
- package/dest/cli/cmds/standby.js +48 -5
- package/dest/cli/cmds/start_bot.d.ts +1 -1
- package/dest/cli/cmds/start_bot.d.ts.map +1 -1
- package/dest/cli/cmds/start_bot.js +8 -4
- package/dest/cli/cmds/start_node.d.ts +1 -1
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +22 -47
- package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
- package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_agent.js +5 -17
- package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
- package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_broker.js +11 -8
- package/dest/cli/cmds/start_txe.d.ts +2 -2
- package/dest/cli/cmds/start_txe.d.ts.map +1 -1
- package/dest/cli/cmds/start_txe.js +6 -5
- package/dest/cli/cmds/utils/artifacts.d.ts +6 -1
- package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -1
- package/dest/cli/cmds/utils/collect_crate_dirs.d.ts +21 -0
- package/dest/cli/cmds/utils/collect_crate_dirs.d.ts.map +1 -0
- package/dest/cli/cmds/utils/collect_crate_dirs.js +114 -0
- package/dest/cli/cmds/utils/needs_recompile.d.ts +1 -1
- package/dest/cli/cmds/utils/needs_recompile.d.ts.map +1 -1
- package/dest/cli/cmds/utils/needs_recompile.js +9 -53
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts +4 -0
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts.map +1 -0
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.js +61 -0
- package/dest/cli/util.d.ts +10 -5
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +25 -52
- package/dest/examples/token.js +3 -3
- package/dest/local-network/auth_registry.d.ts +5 -0
- package/dest/local-network/auth_registry.d.ts.map +1 -0
- package/dest/local-network/auth_registry.js +17 -0
- package/dest/local-network/banana_fpc.d.ts +3 -2
- package/dest/local-network/banana_fpc.d.ts.map +1 -1
- package/dest/local-network/banana_fpc.js +11 -7
- package/dest/local-network/local-network.d.ts +8 -32
- package/dest/local-network/local-network.d.ts.map +1 -1
- package/dest/local-network/local-network.js +48 -73
- package/dest/testing/cheat_codes.d.ts +17 -23
- package/dest/testing/cheat_codes.d.ts.map +1 -1
- package/dest/testing/cheat_codes.js +17 -43
- package/dest/testing/epoch_test_settler.d.ts +2 -2
- package/dest/testing/epoch_test_settler.d.ts.map +1 -1
- package/dest/testing/epoch_test_settler.js +6 -25
- package/dest/testing/index.d.ts +1 -2
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +0 -1
- package/dest/testing/token_allowed_setup.d.ts +9 -4
- package/dest/testing/token_allowed_setup.d.ts.map +1 -1
- package/dest/testing/token_allowed_setup.js +12 -8
- package/package.json +34 -33
- package/scripts/add_crate.sh +11 -60
- package/scripts/aztec.sh +6 -2
- package/scripts/init.sh +5 -5
- package/scripts/new.sh +2 -2
- package/scripts/setup_workspace.sh +3 -2
- package/scripts/templates/blank/contract/Nargo.toml +6 -0
- package/scripts/templates/blank/contract/src/main.nr +10 -0
- package/scripts/templates/blank/test/Nargo.toml +7 -0
- package/scripts/templates/blank/test/src/lib.nr +11 -0
- package/scripts/templates/counter/contract/Nargo.toml +7 -0
- package/scripts/templates/counter/contract/src/main.nr +48 -0
- package/scripts/templates/counter/test/Nargo.toml +7 -0
- package/scripts/templates/counter/test/src/lib.nr +32 -0
- package/src/bin/index.ts +3 -1
- package/src/cli/aztec_start_action.ts +14 -17
- package/src/cli/aztec_start_options.ts +22 -23
- package/src/cli/cmds/compile.ts +37 -23
- package/src/cli/cmds/profile.ts +2 -1
- package/src/cli/cmds/profile_gates.ts +20 -4
- package/src/cli/cmds/prover.ts +42 -0
- package/src/cli/cmds/standby.ts +59 -7
- package/src/cli/cmds/start_bot.ts +9 -6
- package/src/cli/cmds/start_node.ts +29 -39
- package/src/cli/cmds/start_prover_agent.ts +5 -8
- package/src/cli/cmds/start_prover_broker.ts +10 -11
- package/src/cli/cmds/start_txe.ts +7 -5
- package/src/cli/cmds/utils/artifacts.ts +5 -0
- package/src/cli/cmds/utils/collect_crate_dirs.ts +118 -0
- package/src/cli/cmds/utils/needs_recompile.ts +8 -61
- package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +76 -0
- package/src/cli/util.ts +26 -67
- package/src/examples/token.ts +3 -3
- package/src/local-network/auth_registry.ts +19 -0
- package/src/local-network/banana_fpc.ts +12 -8
- package/src/local-network/local-network.ts +52 -83
- package/src/testing/cheat_codes.ts +18 -49
- package/src/testing/epoch_test_settler.ts +8 -31
- package/src/testing/index.ts +0 -1
- package/src/testing/token_allowed_setup.ts +15 -8
- package/dest/cli/cmds/start_archiver.d.ts +0 -9
- package/dest/cli/cmds/start_archiver.d.ts.map +0 -1
- package/dest/cli/cmds/start_archiver.js +0 -48
- package/dest/testing/anvil_test_watcher.d.ts +0 -42
- package/dest/testing/anvil_test_watcher.d.ts.map +0 -1
- package/dest/testing/anvil_test_watcher.js +0 -181
- package/src/cli/cmds/start_archiver.ts +0 -50
- package/src/testing/anvil_test_watcher.ts +0 -210
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { DEV_VERSION, getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
2
|
+
import TOML from '@iarna/toml';
|
|
3
|
+
import { readFile } from 'fs/promises';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { collectCrateDirs } from './collect_crate_dirs.js';
|
|
6
|
+
/** Returns true if the given git URL points to the AztecProtocol/aztec-nr repository. */ function isAztecNrGitUrl(gitUrl) {
|
|
7
|
+
let url;
|
|
8
|
+
try {
|
|
9
|
+
url = new URL(gitUrl);
|
|
10
|
+
} catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (url.hostname !== 'github.com') {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const repoPath = url.pathname.replace(/^\//, '').replace(/\.git$/, '').replace(/\/$/, '');
|
|
17
|
+
return repoPath === 'AztecProtocol/aztec-nr';
|
|
18
|
+
}
|
|
19
|
+
/** Warns if any aztec-nr git dependency in a crate's Nargo.toml has a tag that doesn't match the CLI version. */ export async function warnIfAztecVersionMismatch(log, cliVersion) {
|
|
20
|
+
const version = cliVersion ?? getPackageVersion();
|
|
21
|
+
if (version === DEV_VERSION) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const expectedTag = `v${version}`;
|
|
25
|
+
const mismatches = [];
|
|
26
|
+
const crateDirs = await collectCrateDirs('.', {
|
|
27
|
+
skipGitDeps: true
|
|
28
|
+
});
|
|
29
|
+
for (const dir of crateDirs){
|
|
30
|
+
const tomlPath = join(dir, 'Nargo.toml');
|
|
31
|
+
let content;
|
|
32
|
+
try {
|
|
33
|
+
content = await readFile(tomlPath, 'utf-8');
|
|
34
|
+
} catch {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const parsed = TOML.parse(content);
|
|
38
|
+
const deps = parsed.dependencies ?? {};
|
|
39
|
+
for (const [depName, dep] of Object.entries(deps)){
|
|
40
|
+
// Skip non-object deps (e.g. malformed entries) and anything that isn't a tagged git dep.
|
|
41
|
+
if (!dep || typeof dep !== 'object' || typeof dep.git !== 'string' || typeof dep.tag !== 'string') {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
// Only flag deps that are sourced from the aztec-nr repo.
|
|
45
|
+
if (!isAztecNrGitUrl(dep.git)) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (dep.tag !== expectedTag) {
|
|
49
|
+
mismatches.push({
|
|
50
|
+
file: tomlPath,
|
|
51
|
+
depName,
|
|
52
|
+
tag: dep.tag
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (mismatches.length > 0) {
|
|
58
|
+
const details = mismatches.map((m)=>` ${m.file} — ${m.depName} (${m.tag})`).join('\n');
|
|
59
|
+
log(`WARNING: Aztec dependency version mismatch detected.\n` + `The following aztec-nr dependencies do not match the CLI version (${expectedTag}):\n` + `${details}\n\n` + `See https://docs.aztec.network/errors/9 for how to update your dependencies.`);
|
|
60
|
+
}
|
|
61
|
+
}
|
package/dest/cli/util.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { AztecNodeConfig } from '@aztec/aztec-node';
|
|
2
2
|
import type { AccountManager } from '@aztec/aztec.js/wallet';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import { type LogFn } from '@aztec/foundation/log';
|
|
3
|
+
import type { ConfigMappingsType } from '@aztec/foundation/config';
|
|
4
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
6
5
|
import type { ProverConfig } from '@aztec/stdlib/interfaces/server';
|
|
7
6
|
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
8
7
|
import type { Command } from 'commander';
|
|
@@ -19,6 +18,13 @@ export declare const enum ExitCode {
|
|
|
19
18
|
}
|
|
20
19
|
export declare function shutdown(logFn: LogFn, exitCode: ExitCode, cb?: Array<() => Promise<void>>): Promise<never>;
|
|
21
20
|
export declare function isShuttingDown(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Stops the node's subsystems (via the registered signal handlers) without exiting the process, leaving
|
|
23
|
+
* the HTTP health server listening so K8s liveness/readiness probes keep passing. Unlike {@link shutdown}
|
|
24
|
+
* this deliberately does not latch `shutdownPromise` or call `process.exit`; instead it re-arms
|
|
25
|
+
* SIGTERM/SIGINT so a later K8s pod deletion still terminates the wound-down pod with a clean exit.
|
|
26
|
+
*/
|
|
27
|
+
export declare function softShutdown(logFn: LogFn, signalHandlers: Array<() => Promise<void>>): Promise<void>;
|
|
22
28
|
export declare const installSignalHandlers: (logFn: LogFn, cb?: (() => Promise<void>)[] | undefined) => void;
|
|
23
29
|
/**
|
|
24
30
|
* Creates logs for the initial accounts
|
|
@@ -61,6 +67,5 @@ export declare function preloadCrsDataForVerifying({ realProofs }: Pick<AztecNod
|
|
|
61
67
|
* @param log - Logging function
|
|
62
68
|
*/
|
|
63
69
|
export declare function preloadCrsDataForServerSideProving({ realProofs }: Pick<ProverConfig, 'realProofs'>, log: LogFn): Promise<void>;
|
|
64
|
-
export declare function setupVersionChecker(network: NetworkNames, followsCanonicalRollup: boolean, publicClient: ViemClient, signalHandlers: Array<() => Promise<void>>, cacheDir?: string): Promise<void>;
|
|
65
70
|
export declare function stringifyConfig(config: object): string;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBRXBGLDBCQUFrQixRQUFRO0lBQ3hCLE9BQU8sSUFBSTtJQUNYLEtBQUssSUFBSTtJQUNULGNBQWMsS0FBSztJQUNuQixlQUFlLEtBQUs7SUFFcEIsTUFBTSxNQUFNO0lBQ1osTUFBTSxNQUFNO0lBQ1osT0FBTyxNQUFNO0lBQ2IsT0FBTyxNQUFNO0NBQ2Q7QUFHRCx3QkFBZ0IsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBZ0IxRztBQUVELHdCQUFnQixjQUFjLElBQUksT0FBTyxDQUV4QztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBVTFHO0FBRUQsZUFBTyxNQUFNLHFCQUFxQixrRUFhakMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxxQkF5QmhHO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxRQUFRLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBaUIvRjtBQUVELHdCQUFnQixjQUFjLENBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxlQUFlLEVBQUUsTUFBTSxFQUN2QixnQkFBZ0IsRUFBRSxNQUFNLEdBQ3ZCLE1BQU0sQ0FLUjtBQWlDRCxlQUFPLE1BQU0sVUFBVSxxREFTdEIsQ0FBQztBQUVGLGVBQU8sTUFBTSx1QkFBdUIsY0F5Qm5DLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsMEVBU3BDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHNCQUFzQixHQUFJLENBQUMsd0ZBa0N2QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FDOUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxFQUNuRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0Isa0NBQWtDLENBQ3RELEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFDaEQsR0FBRyxFQUFFLEtBQUssR0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBS2Y7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUl0RCJ9
|
package/dest/cli/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,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;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1G;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,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD"}
|
package/dest/cli/util.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { getNetworkConfig } from '@aztec/cli/config';
|
|
2
|
-
import { RegistryContract } from '@aztec/ethereum/contracts';
|
|
3
1
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
4
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
-
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
6
2
|
import chalk from 'chalk';
|
|
7
3
|
import { aztecStartOptions } from './aztec_start_options.js';
|
|
8
4
|
export var ExitCode = /*#__PURE__*/ function(ExitCode) {
|
|
@@ -38,6 +34,25 @@ export function shutdown(logFn, exitCode, cb) {
|
|
|
38
34
|
export function isShuttingDown() {
|
|
39
35
|
return shutdownPromise !== undefined;
|
|
40
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Stops the node's subsystems (via the registered signal handlers) without exiting the process, leaving
|
|
39
|
+
* the HTTP health server listening so K8s liveness/readiness probes keep passing. Unlike {@link shutdown}
|
|
40
|
+
* this deliberately does not latch `shutdownPromise` or call `process.exit`; instead it re-arms
|
|
41
|
+
* SIGTERM/SIGINT so a later K8s pod deletion still terminates the wound-down pod with a clean exit.
|
|
42
|
+
*/ export async function softShutdown(logFn, signalHandlers) {
|
|
43
|
+
logFn('Canonical rollup upgrade detected: stopping subsystems, health server stays up.', {
|
|
44
|
+
exitCode: 78
|
|
45
|
+
});
|
|
46
|
+
await Promise.allSettled(signalHandlers.map((fn)=>fn()));
|
|
47
|
+
for (const sig of [
|
|
48
|
+
'SIGTERM',
|
|
49
|
+
'SIGINT'
|
|
50
|
+
]){
|
|
51
|
+
process.removeAllListeners(sig);
|
|
52
|
+
process.once(sig, ()=>process.exit(78));
|
|
53
|
+
}
|
|
54
|
+
logFn('Subsystems stopped due to rollup upgrade. Health server remains active.');
|
|
55
|
+
}
|
|
41
56
|
export const installSignalHandlers = (logFn, cb)=>{
|
|
42
57
|
const signals = [
|
|
43
58
|
[
|
|
@@ -80,10 +95,12 @@ export const installSignalHandlers = (logFn, cb)=>{
|
|
|
80
95
|
accountLogStrings.push(` Address: ${completeAddress.address.toString()}\n`);
|
|
81
96
|
accountLogStrings.push(` Partial Address: ${completeAddress.partialAddress.toString()}\n`);
|
|
82
97
|
accountLogStrings.push(` Secret Key: ${account.getSecretKey().toString()}\n`);
|
|
83
|
-
accountLogStrings.push(` Master nullifier public key: ${completeAddress.publicKeys.
|
|
84
|
-
accountLogStrings.push(` Master incoming viewing public key: ${completeAddress.publicKeys.
|
|
85
|
-
accountLogStrings.push(` Master outgoing viewing public key: ${completeAddress.publicKeys.
|
|
86
|
-
accountLogStrings.push(` Master tagging public key: ${completeAddress.publicKeys.
|
|
98
|
+
accountLogStrings.push(` Master nullifier public key hash: ${completeAddress.publicKeys.npkMHash.toString()}\n`);
|
|
99
|
+
accountLogStrings.push(` Master incoming viewing public key: ${completeAddress.publicKeys.ivpkM.toString()}\n\n`);
|
|
100
|
+
accountLogStrings.push(` Master outgoing viewing public key hash: ${completeAddress.publicKeys.ovpkMHash.toString()}\n\n`);
|
|
101
|
+
accountLogStrings.push(` Master tagging public key hash: ${completeAddress.publicKeys.tpkMHash.toString()}\n\n`);
|
|
102
|
+
accountLogStrings.push(` Master message-signing public key hash: ${completeAddress.publicKeys.mspkMHash.toString()}\n\n`);
|
|
103
|
+
accountLogStrings.push(` Master fallback public key hash: ${completeAddress.publicKeys.fbpkMHash.toString()}\n\n`);
|
|
87
104
|
}
|
|
88
105
|
}
|
|
89
106
|
return accountLogStrings;
|
|
@@ -239,50 +256,6 @@ export const printAztecStartHelpText = ()=>{
|
|
|
239
256
|
]);
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
|
-
export async function setupVersionChecker(network, followsCanonicalRollup, publicClient, signalHandlers, cacheDir) {
|
|
243
|
-
const networkConfig = await getNetworkConfig(network, cacheDir);
|
|
244
|
-
if (!networkConfig) {
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
const { VersionChecker } = await import('@aztec/stdlib/update-checker');
|
|
248
|
-
const logger = createLogger('version_check');
|
|
249
|
-
const registry = new RegistryContract(publicClient, networkConfig.registryAddress);
|
|
250
|
-
const checks = [];
|
|
251
|
-
checks.push({
|
|
252
|
-
name: 'node',
|
|
253
|
-
currentVersion: getPackageVersion() ?? 'unknown',
|
|
254
|
-
getLatestVersion: async ()=>{
|
|
255
|
-
const cfg = await getNetworkConfig(network, cacheDir);
|
|
256
|
-
return cfg?.nodeVersion;
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
if (followsCanonicalRollup) {
|
|
260
|
-
const getLatestVersion = async ()=>{
|
|
261
|
-
const version = (await registry.getRollupVersions()).at(-1);
|
|
262
|
-
return version !== undefined ? String(version) : undefined;
|
|
263
|
-
};
|
|
264
|
-
const currentVersion = await getLatestVersion();
|
|
265
|
-
if (currentVersion !== undefined) {
|
|
266
|
-
checks.push({
|
|
267
|
-
name: 'rollup',
|
|
268
|
-
currentVersion,
|
|
269
|
-
getLatestVersion
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
const checker = new VersionChecker(checks, 600_000, logger);
|
|
274
|
-
checker.on('newVersion', ({ name, latestVersion, currentVersion })=>{
|
|
275
|
-
if (isShuttingDown()) {
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
logger.warn(`New ${name} version available`, {
|
|
279
|
-
latestVersion,
|
|
280
|
-
currentVersion
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
checker.start();
|
|
284
|
-
signalHandlers.push(()=>checker.stop());
|
|
285
|
-
}
|
|
286
259
|
export function stringifyConfig(config) {
|
|
287
260
|
return Object.entries(config).map(([key, value])=>`${key}=${jsonStringify(value)}`).join(' ');
|
|
288
261
|
}
|
package/dest/examples/token.js
CHANGED
|
@@ -13,10 +13,10 @@ const TRANSFER_AMOUNT = 33n;
|
|
|
13
13
|
*/ async function main() {
|
|
14
14
|
logger.info('Running token contract test on HTTP interface.');
|
|
15
15
|
const wallet = await EmbeddedWallet.create(node);
|
|
16
|
-
// During local network setup we
|
|
16
|
+
// During local network setup we create a few initializerless accounts. Below we add them to our wallet.
|
|
17
17
|
const [aliceInitialAccountData, bobInitialAccountData] = await getInitialTestAccountsData();
|
|
18
|
-
await wallet.
|
|
19
|
-
await wallet.
|
|
18
|
+
await wallet.createSchnorrInitializerlessAccount(aliceInitialAccountData.secret, aliceInitialAccountData.salt);
|
|
19
|
+
await wallet.createSchnorrInitializerlessAccount(bobInitialAccountData.secret, bobInitialAccountData.salt);
|
|
20
20
|
const alice = aliceInitialAccountData.address;
|
|
21
21
|
const bob = bobInitialAccountData.address;
|
|
22
22
|
logger.info(`Fetched Alice and Bob accounts: ${alice.toString()}, ${bob.toString()}`);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { WaitOpts } from '@aztec/aztec.js/contracts';
|
|
2
|
+
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
3
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
+
export declare function publishStandardAuthRegistry(wallet: Wallet, from: AztecAddress, waitOpts?: WaitOpts): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aF9yZWdpc3RyeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvYXV0aF9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSx3QkFBc0IsMkJBQTJCLENBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxFQUFFLFlBQVksRUFDbEIsUUFBUSxDQUFDLEVBQUUsUUFBUSxHQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLENBUWYifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth_registry.d.ts","sourceRoot":"","sources":["../../src/local-network/auth_registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
|
|
2
|
+
import { AuthRegistryArtifact, getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry';
|
|
3
|
+
export async function publishStandardAuthRegistry(wallet, from, waitOpts) {
|
|
4
|
+
const { instance, contractClass } = await getStandardAuthRegistry();
|
|
5
|
+
if (!(await wallet.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered) {
|
|
6
|
+
await (await publishContractClass(wallet, AuthRegistryArtifact)).send({
|
|
7
|
+
from,
|
|
8
|
+
wait: waitOpts
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
if (!(await wallet.getContractMetadata(instance.address)).isContractPublished) {
|
|
12
|
+
await publishInstance(wallet, instance).send({
|
|
13
|
+
from,
|
|
14
|
+
wait: waitOpts
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
2
|
+
import type { WaitOpts } from '@aztec/aztec.js/contracts';
|
|
2
3
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
3
4
|
import type { LogFn } from '@aztec/foundation/log';
|
|
4
5
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
6
|
export declare function getBananaCoinAddress(initialAccounts: InitialAccountData[]): Promise<AztecAddress>;
|
|
6
7
|
export declare function getBananaFPCAddress(initialAccounts: InitialAccountData[]): Promise<AztecAddress>;
|
|
7
|
-
export declare function setupBananaFPC(initialAccounts: InitialAccountData[], wallet: Wallet, log: LogFn): Promise<void>;
|
|
8
|
+
export declare function setupBananaFPC(initialAccounts: InitialAccountData[], wallet: Wallet, log: LogFn, waitOpts?: WaitOpts): Promise<void>;
|
|
8
9
|
export declare function registerDeployedBananaCoinInWalletAndGetAddress(wallet: Wallet): Promise<AztecAddress>;
|
|
9
10
|
export declare function registerDeployedBananaFPCInWalletAndGetAddress(wallet: Wallet): Promise<AztecAddress>;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuYW5hX2ZwYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvYmFuYW5hX2ZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBOEIsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUF3QjNELHdCQUFzQixvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLEVBQUUseUJBRS9FO0FBV0Qsd0JBQXNCLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSx5QkFFOUU7QUFFRCx3QkFBc0IsY0FBYyxDQUNsQyxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsRUFDckMsTUFBTSxFQUFFLE1BQU0sRUFDZCxHQUFHLEVBQUUsS0FBSyxFQUNWLFFBQVEsQ0FBQyxFQUFFLFFBQVEsaUJBaUJwQjtBQUVELHdCQUFzQiwrQ0FBK0MsQ0FBQyxNQUFNLEVBQUUsTUFBTSx5QkFNbkY7QUFFRCx3QkFBc0IsOENBQThDLENBQUMsTUFBTSxFQUFFLE1BQU0seUJBTWxGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banana_fpc.d.ts","sourceRoot":"","sources":["../../src/local-network/banana_fpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,yBAAyB,CAAC;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAwB3D,wBAAsB,oBAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,yBAE/E;AAWD,wBAAsB,mBAAmB,CAAC,eAAe,EAAE,kBAAkB,EAAE,yBAE9E;AAED,wBAAsB,cAAc,
|
|
1
|
+
{"version":3,"file":"banana_fpc.d.ts","sourceRoot":"","sources":["../../src/local-network/banana_fpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA8B,MAAM,yBAAyB,CAAC;AAC9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAwB3D,wBAAsB,oBAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,yBAE/E;AAWD,wBAAsB,mBAAmB,CAAC,eAAe,EAAE,kBAAkB,EAAE,yBAE9E;AAED,wBAAsB,cAAc,CAClC,eAAe,EAAE,kBAAkB,EAAE,EACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,KAAK,EACV,QAAQ,CAAC,EAAE,QAAQ,iBAiBpB;AAED,wBAAsB,+CAA+C,CAAC,MAAM,EAAE,MAAM,yBAMnF;AAED,wBAAsB,8CAA8C,CAAC,MAAM,EAAE,MAAM,yBAMlF"}
|
|
@@ -43,19 +43,23 @@ async function getBananaFPCInstance(initialAccounts) {
|
|
|
43
43
|
export async function getBananaFPCAddress(initialAccounts) {
|
|
44
44
|
return (await getBananaFPCInstance(initialAccounts)).address;
|
|
45
45
|
}
|
|
46
|
-
export async function setupBananaFPC(initialAccounts, wallet, log) {
|
|
46
|
+
export async function setupBananaFPC(initialAccounts, wallet, log, waitOpts) {
|
|
47
47
|
const bananaCoinAddress = await getBananaCoinAddress(initialAccounts);
|
|
48
48
|
const admin = getBananaAdmin(initialAccounts);
|
|
49
49
|
const [{ contract: bananaCoin }, { contract: fpc }] = await Promise.all([
|
|
50
|
-
TokenContract.deploy(wallet, admin, bananaCoinArgs.name, bananaCoinArgs.symbol, bananaCoinArgs.decimal
|
|
51
|
-
|
|
52
|
-
contractAddressSalt: BANANA_COIN_SALT,
|
|
50
|
+
TokenContract.deploy(wallet, admin, bananaCoinArgs.name, bananaCoinArgs.symbol, bananaCoinArgs.decimal, {
|
|
51
|
+
salt: BANANA_COIN_SALT,
|
|
53
52
|
universalDeploy: true
|
|
54
|
-
})
|
|
55
|
-
FPCContract.deploy(wallet, bananaCoinAddress, admin).send({
|
|
53
|
+
}).send({
|
|
56
54
|
from: admin,
|
|
57
|
-
|
|
55
|
+
wait: waitOpts
|
|
56
|
+
}),
|
|
57
|
+
FPCContract.deploy(wallet, bananaCoinAddress, admin, {
|
|
58
|
+
salt: BANANA_FPC_SALT,
|
|
58
59
|
universalDeploy: true
|
|
60
|
+
}).send({
|
|
61
|
+
from: admin,
|
|
62
|
+
wait: waitOpts
|
|
59
63
|
})
|
|
60
64
|
]);
|
|
61
65
|
log(`BananaCoin: ${bananaCoin.address}`);
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-warnings
|
|
2
|
-
import { AztecNodeService } from '@aztec/aztec-node';
|
|
3
2
|
import { type AztecNodeConfig } from '@aztec/aztec-node/config';
|
|
4
3
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
5
4
|
import { type BlobClientInterface } from '@aztec/blob-client/client';
|
|
6
|
-
import {
|
|
5
|
+
import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
|
|
7
6
|
import type { LogFn } from '@aztec/foundation/log';
|
|
8
7
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
9
8
|
import type { ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
|
|
10
|
-
import type {
|
|
9
|
+
import type { GenesisData } from '@aztec/stdlib/world-state';
|
|
11
10
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
12
|
-
import {
|
|
11
|
+
import type { Hex } from 'viem';
|
|
13
12
|
/**
|
|
14
13
|
* Function to deploy our L1 contracts to the local network L1
|
|
15
14
|
* @param aztecNodeConfig - The Aztec Node Config
|
|
@@ -18,30 +17,7 @@ import { type Hex } from 'viem';
|
|
|
18
17
|
export declare function deployContractsToL1(aztecNodeConfig: AztecNodeConfig, privateKey: Hex, opts?: {
|
|
19
18
|
genesisArchiveRoot?: Fr;
|
|
20
19
|
feeJuicePortalInitialBalance?: bigint;
|
|
21
|
-
}): Promise<
|
|
22
|
-
coinIssuerAddress: EthAddress;
|
|
23
|
-
feeJuiceAddress: EthAddress;
|
|
24
|
-
feeJuicePortalAddress: EthAddress;
|
|
25
|
-
governanceAddress: EthAddress;
|
|
26
|
-
governanceProposerAddress: EthAddress;
|
|
27
|
-
inboxAddress: EthAddress;
|
|
28
|
-
outboxAddress: EthAddress;
|
|
29
|
-
registryAddress: EthAddress;
|
|
30
|
-
rewardDistributorAddress: EthAddress;
|
|
31
|
-
rollupAddress: EthAddress;
|
|
32
|
-
stakingAssetAddress: EthAddress;
|
|
33
|
-
} & {
|
|
34
|
-
slashFactoryAddress?: EthAddress | undefined;
|
|
35
|
-
feeAssetHandlerAddress?: EthAddress | undefined;
|
|
36
|
-
stakingAssetHandlerAddress?: EthAddress | undefined;
|
|
37
|
-
zkPassportVerifierAddress?: EthAddress | undefined;
|
|
38
|
-
gseAddress?: EthAddress | undefined;
|
|
39
|
-
dateGatedRelayerAddress?: EthAddress | undefined;
|
|
40
|
-
} & {
|
|
41
|
-
rollupAddress: EthAddress;
|
|
42
|
-
} & Pick<import("@aztec/ethereum/l1-contract-addresses").L1ContractAddresses, "rollupAddress"> & {
|
|
43
|
-
rollupAddress: EthAddress;
|
|
44
|
-
}>;
|
|
20
|
+
}): Promise<L1ContractAddresses>;
|
|
45
21
|
/** Local network settings. */
|
|
46
22
|
export type LocalNetworkConfig = AztecNodeConfig & {
|
|
47
23
|
/** Mnemonic used to derive the L1 deployer private key.*/
|
|
@@ -55,7 +31,7 @@ export type LocalNetworkConfig = AztecNodeConfig & {
|
|
|
55
31
|
* @param config - Optional local network settings.
|
|
56
32
|
*/
|
|
57
33
|
export declare function createLocalNetwork(config: Partial<LocalNetworkConfig> | undefined, userLog: LogFn): Promise<{
|
|
58
|
-
node: AztecNodeService;
|
|
34
|
+
node: import("@aztec/aztec-node").AztecNodeService;
|
|
59
35
|
stop: () => Promise<void>;
|
|
60
36
|
}>;
|
|
61
37
|
/**
|
|
@@ -68,6 +44,6 @@ export declare function createAztecNode(config?: Partial<AztecNodeConfig>, deps?
|
|
|
68
44
|
dateProvider?: DateProvider;
|
|
69
45
|
proverBroker?: ProvingJobBroker;
|
|
70
46
|
}, options?: {
|
|
71
|
-
|
|
72
|
-
}): Promise<AztecNodeService>;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
genesis?: GenesisData;
|
|
48
|
+
}): Promise<import("@aztec/aztec-node").AztecNodeService>;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbmV0d29yay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvbG9jYWwtbmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFvQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQU12RixPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBR2pGLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0seUJBQXlCLENBQUM7QUFJekUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV4RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFLakMsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBbUJoQzs7OztHQUlHO0FBQ0gsd0JBQXNCLG1CQUFtQixDQUN2QyxlQUFlLEVBQUUsZUFBZSxFQUNoQyxVQUFVLEVBQUUsR0FBRyxFQUNmLElBQUksR0FBRTtJQUNKLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3hCLDRCQUE0QixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2xDLEdBQ0wsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBbUI5QjtBQUVELDhCQUE4QjtBQUM5QixNQUFNLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxHQUFHO0lBQ2pELDBEQUEwRDtJQUMxRCxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLDZEQUE2RDtJQUM3RCxZQUFZLEVBQUUsT0FBTyxDQUFDO0NBQ3ZCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLE1BQU0seUNBQWtDLEVBQUUsT0FBTyxFQUFFLEtBQUs7OztHQXdIaEc7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0IsZUFBZSxDQUNuQyxNQUFNLEdBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBTSxFQUNyQyxJQUFJLEdBQUU7SUFDSixTQUFTLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDNUIsVUFBVSxDQUFDLEVBQUUsbUJBQW1CLENBQUM7SUFDakMsWUFBWSxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQzVCLFlBQVksQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0NBQzVCLEVBQ04sT0FBTyxHQUFFO0lBQUUsT0FBTyxDQUFDLEVBQUUsV0FBVyxDQUFBO0NBQU8seURBY3hDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,OAAO,EAAE,KAAK,mBAAmB,EAAoB,MAAM,2BAA2B,CAAC;AAMvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;AAIzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAmBhC;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,GAAG,EACf,IAAI,GAAE;IACJ,kBAAkB,CAAC,EAAE,EAAE,CAAC;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAC;CAClC,GACL,OAAO,CAAC,mBAAmB,CAAC,CAmB9B;AAED,8BAA8B;AAC9B,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,yCAAkC,EAAE,OAAO,EAAE,KAAK;;;GAwHhG;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,gBAAgB,CAAC;CAC5B,EACN,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,WAAW,CAAA;CAAO,yDAcxC"}
|
|
@@ -1,40 +1,42 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-warnings
|
|
2
2
|
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
3
|
-
import {
|
|
3
|
+
import { createAztecNodeService } from '@aztec/aztec-node';
|
|
4
4
|
import { getConfigEnvVars } from '@aztec/aztec-node/config';
|
|
5
5
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
6
6
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
7
7
|
import { createBlobClient } from '@aztec/blob-client/client';
|
|
8
8
|
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
9
|
-
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
10
9
|
import { waitForPublicClient } from '@aztec/ethereum/client';
|
|
11
10
|
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
12
11
|
import { NULL_KEY } from '@aztec/ethereum/constants';
|
|
13
12
|
import { deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
14
|
-
import { EthCheatCodes } from '@aztec/ethereum/test';
|
|
15
13
|
import { SecretValue } from '@aztec/foundation/config';
|
|
16
14
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
17
15
|
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
18
16
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
19
17
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
20
|
-
import { SequencerState } from '@aztec/sequencer-client';
|
|
21
18
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
19
|
+
import { TxStatus } from '@aztec/stdlib/tx';
|
|
22
20
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
23
21
|
import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
24
|
-
import {
|
|
22
|
+
import { createFundedInitializerlessAccounts } from '@aztec/wallets/testing';
|
|
25
23
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
26
|
-
import { createPublicClient, fallback, http as httpViemTransport } from 'viem';
|
|
27
24
|
import { mnemonicToAccount, privateKeyToAddress } from 'viem/accounts';
|
|
28
25
|
import { foundry } from 'viem/chains';
|
|
29
26
|
import { createAccountLogs } from '../cli/util.js';
|
|
30
27
|
import { DefaultMnemonic } from '../mnemonic.js';
|
|
31
|
-
import { AnvilTestWatcher } from '../testing/anvil_test_watcher.js';
|
|
32
|
-
import { EpochTestSettler } from '../testing/epoch_test_settler.js';
|
|
33
28
|
import { getTokenAllowedSetupFunctions } from '../testing/token_allowed_setup.js';
|
|
29
|
+
import { publishStandardAuthRegistry } from './auth_registry.js';
|
|
34
30
|
import { getBananaFPCAddress, setupBananaFPC } from './banana_fpc.js';
|
|
35
31
|
import { getSponsoredFPCAddress } from './sponsored_fpc.js';
|
|
36
32
|
const logger = createLogger('local-network');
|
|
37
|
-
|
|
33
|
+
// The embedded wallet defaults to waiting for PROPOSED, which returns as soon as a tx lands in a
|
|
34
|
+
// proposed L2 block. That is flaky for the serial sandbox setup below: a proposed block can be
|
|
35
|
+
// pruned before its checkpoint is published, dropping a tx we already moved on from ("Tx dropped by
|
|
36
|
+
// P2P node"). Wait for the checkpoint so each setup tx is durably included before the next is sent.
|
|
37
|
+
const setupWaitOpts = {
|
|
38
|
+
waitForStatus: TxStatus.CHECKPOINTED
|
|
39
|
+
};
|
|
38
40
|
/**
|
|
39
41
|
* Function to deploy our L1 contracts to the local network L1
|
|
40
42
|
* @param aztecNodeConfig - The Aztec Node Config
|
|
@@ -49,12 +51,12 @@ const localAnvil = foundry;
|
|
|
49
51
|
genesisArchiveRoot: opts.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
|
|
50
52
|
feeJuicePortalInitialBalance: opts.feeJuicePortalInitialBalance,
|
|
51
53
|
aztecTargetCommitteeSize: 0,
|
|
52
|
-
|
|
54
|
+
slasherEnabled: false,
|
|
53
55
|
realVerifier: false
|
|
54
56
|
});
|
|
55
|
-
aztecNodeConfig
|
|
57
|
+
Object.assign(aztecNodeConfig, l1Contracts.l1ContractAddresses);
|
|
56
58
|
aztecNodeConfig.rollupVersion = l1Contracts.rollupVersion;
|
|
57
|
-
return
|
|
59
|
+
return l1Contracts.l1ContractAddresses;
|
|
58
60
|
}
|
|
59
61
|
/**
|
|
60
62
|
* Create and start a new Aztec Node and PXE. Deploys L1 contracts.
|
|
@@ -72,13 +74,32 @@ const localAnvil = foundry;
|
|
|
72
74
|
// The local network deploys a banana FPC with Token contracts, so include Token entries
|
|
73
75
|
// in the setup allowlist so FPC-based fee payments work out of the box.
|
|
74
76
|
const tokenAllowList = await getTokenAllowedSetupFunctions();
|
|
77
|
+
const envConfig = getConfigEnvVars();
|
|
75
78
|
const aztecNodeConfig = {
|
|
76
|
-
...
|
|
79
|
+
...envConfig,
|
|
77
80
|
...config,
|
|
81
|
+
skipOrphanProposedBlockPruning: true,
|
|
78
82
|
txPublicSetupAllowListExtend: [
|
|
79
83
|
...tokenAllowList,
|
|
80
84
|
...config.txPublicSetupAllowListExtend ?? []
|
|
81
|
-
]
|
|
85
|
+
],
|
|
86
|
+
// The local network runs against anvil with no committee, so it defaults to the deterministic
|
|
87
|
+
// AutomineSequencer, which owns L1 time control (warps the dateProvider and L1 timestamps to slot
|
|
88
|
+
// boundaries as it builds), replacing the deleted AnvilTestWatcher. This remains true when p2p is
|
|
89
|
+
// enabled for local peer testing; local-network is not a mode for connecting to an existing network.
|
|
90
|
+
useAutomineSequencer: config.useAutomineSequencer ?? true,
|
|
91
|
+
// The AutomineSequencer owns epoch proving in the local network — it writes epoch out hashes to
|
|
92
|
+
// the L1 Outbox and advances the proven tip as checkpoints land, through the same serial queue as
|
|
93
|
+
// its builds — replacing the standalone EpochTestSettler that used to race the build loop.
|
|
94
|
+
automineEnableProveEpoch: config.automineEnableProveEpoch ?? true,
|
|
95
|
+
// Defaults for the local network / sandbox; callers (e.g. the CLI) may override. No real proving
|
|
96
|
+
// happens here — the AutomineSequencer synthetically settles epochs. Short epochs let it write out
|
|
97
|
+
// hashes quickly (so users can consume L2-to-L1 messages without a long wait), with a wider
|
|
98
|
+
// proof-submission window so the synthetic settler has headroom before the rollup would prune an
|
|
99
|
+
// unproven checkpoint.
|
|
100
|
+
realProofs: config.realProofs ?? false,
|
|
101
|
+
aztecEpochDuration: config.aztecEpochDuration ?? 4,
|
|
102
|
+
aztecProofSubmissionEpochs: config.aztecProofSubmissionEpochs ?? 2
|
|
82
103
|
};
|
|
83
104
|
const hdAccount = mnemonicToAccount(config.l1Mnemonic || DefaultMnemonic);
|
|
84
105
|
if (aztecNodeConfig.sequencerPublisherPrivateKeys == undefined || !aztecNodeConfig.sequencerPublisherPrivateKeys.length || aztecNodeConfig.sequencerPublisherPrivateKeys[0].getValue() === NULL_KEY) {
|
|
@@ -97,7 +118,7 @@ const localAnvil = foundry;
|
|
|
97
118
|
const initialAccounts = await (async ()=>{
|
|
98
119
|
if (config.testAccounts === true || config.testAccounts === undefined) {
|
|
99
120
|
if (aztecNodeConfig.p2pEnabled) {
|
|
100
|
-
userLog(`Not setting up test accounts
|
|
121
|
+
userLog(`Not setting up test accounts when p2p is enabled`);
|
|
101
122
|
} else {
|
|
102
123
|
userLog(`Setting up test accounts`);
|
|
103
124
|
return await getInitialTestAccountsData();
|
|
@@ -107,7 +128,7 @@ const localAnvil = foundry;
|
|
|
107
128
|
})();
|
|
108
129
|
const bananaFPC = await getBananaFPCAddress(initialAccounts);
|
|
109
130
|
const sponsoredFPC = await getSponsoredFPCAddress();
|
|
110
|
-
const prefundAddresses = (aztecNodeConfig.prefundAddresses ?? []).map((a)=>AztecAddress.
|
|
131
|
+
const prefundAddresses = (aztecNodeConfig.prefundAddresses ?? []).map((a)=>AztecAddress.fromStringUnsafe(a));
|
|
111
132
|
const fundedAddresses = [
|
|
112
133
|
...initialAccounts.map((a)=>a.address),
|
|
113
134
|
...initialAccounts.length ? [
|
|
@@ -116,34 +137,13 @@ const localAnvil = foundry;
|
|
|
116
137
|
] : [],
|
|
117
138
|
...prefundAddresses
|
|
118
139
|
];
|
|
119
|
-
const { genesisArchiveRoot,
|
|
140
|
+
const { genesisArchiveRoot, genesis, fundingNeeded } = await getGenesisValues(fundedAddresses);
|
|
120
141
|
const dateProvider = new TestDateProvider();
|
|
121
|
-
let cheatcodes;
|
|
122
|
-
let rollupAddress;
|
|
123
|
-
let watcher;
|
|
124
142
|
if (!aztecNodeConfig.p2pEnabled) {
|
|
125
|
-
|
|
143
|
+
await deployContractsToL1(aztecNodeConfig, aztecNodeConfig.validatorPrivateKeys.getValue()[0], {
|
|
126
144
|
genesisArchiveRoot,
|
|
127
145
|
feeJuicePortalInitialBalance: fundingNeeded
|
|
128
|
-
}));
|
|
129
|
-
const chain = aztecNodeConfig.l1RpcUrls.length > 0 ? createEthereumChain([
|
|
130
|
-
l1RpcUrl
|
|
131
|
-
], aztecNodeConfig.l1ChainId) : {
|
|
132
|
-
chainInfo: localAnvil
|
|
133
|
-
};
|
|
134
|
-
const publicClient = createPublicClient({
|
|
135
|
-
chain: chain.chainInfo,
|
|
136
|
-
transport: fallback([
|
|
137
|
-
httpViemTransport(l1RpcUrl)
|
|
138
|
-
])
|
|
139
146
|
});
|
|
140
|
-
cheatcodes = new EthCheatCodes([
|
|
141
|
-
l1RpcUrl
|
|
142
|
-
], dateProvider);
|
|
143
|
-
watcher = new AnvilTestWatcher(cheatcodes, rollupAddress, publicClient, dateProvider);
|
|
144
|
-
watcher.setisLocalNetwork(true);
|
|
145
|
-
watcher.setIsMarkingAsProven(false); // Do not mark as proven in the watcher. It's marked in the epochTestSettler after the out hash is set.
|
|
146
|
-
await watcher.start();
|
|
147
147
|
}
|
|
148
148
|
const telemetry = await initTelemetryClient(getTelemetryClientConfig());
|
|
149
149
|
// Create a local blob client client inside the local network, no http connectivity
|
|
@@ -153,29 +153,8 @@ const localAnvil = foundry;
|
|
|
153
153
|
blobClient,
|
|
154
154
|
dateProvider
|
|
155
155
|
}, {
|
|
156
|
-
|
|
156
|
+
genesis
|
|
157
157
|
});
|
|
158
|
-
// Now that the node is up, let the watcher check for pending txs so it can skip unfilled slots faster when
|
|
159
|
-
// transactions are waiting in the mempool. Also let it check if the sequencer is actively building, to avoid
|
|
160
|
-
// warping time out from under an in-progress block.
|
|
161
|
-
watcher?.setGetPendingTxCount(()=>node.getPendingTxCount());
|
|
162
|
-
const sequencer = node.getSequencer()?.getSequencer();
|
|
163
|
-
if (sequencer) {
|
|
164
|
-
const idleStates = new Set([
|
|
165
|
-
SequencerState.STOPPED,
|
|
166
|
-
SequencerState.STOPPING,
|
|
167
|
-
SequencerState.IDLE,
|
|
168
|
-
SequencerState.SYNCHRONIZING
|
|
169
|
-
]);
|
|
170
|
-
watcher?.setIsSequencerBuilding(()=>!idleStates.has(sequencer.getState()));
|
|
171
|
-
}
|
|
172
|
-
let epochTestSettler;
|
|
173
|
-
if (!aztecNodeConfig.p2pEnabled) {
|
|
174
|
-
epochTestSettler = new EpochTestSettler(cheatcodes, rollupAddress, node.getBlockSource(), logger.createChild('epoch-settler'), {
|
|
175
|
-
pollingIntervalMs: 200
|
|
176
|
-
});
|
|
177
|
-
await epochTestSettler.start();
|
|
178
|
-
}
|
|
179
158
|
if (initialAccounts.length) {
|
|
180
159
|
const wallet = await EmbeddedWallet.create(node, {
|
|
181
160
|
pxeConfig: {
|
|
@@ -184,18 +163,18 @@ const localAnvil = foundry;
|
|
|
184
163
|
ephemeral: true
|
|
185
164
|
});
|
|
186
165
|
userLog('Setting up funded test accounts...');
|
|
187
|
-
const accountManagers = await
|
|
166
|
+
const accountManagers = await createFundedInitializerlessAccounts(wallet, initialAccounts);
|
|
188
167
|
const accLogs = await createAccountLogs(accountManagers, wallet);
|
|
189
168
|
userLog(accLogs.join(''));
|
|
190
|
-
|
|
169
|
+
userLog('Publishing standard AuthRegistry contract...');
|
|
170
|
+
await publishStandardAuthRegistry(wallet, initialAccounts[0].address, setupWaitOpts);
|
|
171
|
+
await setupBananaFPC(initialAccounts, wallet, userLog, setupWaitOpts);
|
|
191
172
|
userLog(`SponsoredFPC: ${await getSponsoredFPCAddress()}`);
|
|
192
173
|
// We no longer need the wallet once we've setup the accounts so we stop the underlying PXE job queue
|
|
193
174
|
await wallet.stop();
|
|
194
175
|
}
|
|
195
176
|
const stop = async ()=>{
|
|
196
177
|
await node.stop();
|
|
197
|
-
await watcher?.stop();
|
|
198
|
-
await epochTestSettler?.stop();
|
|
199
178
|
};
|
|
200
179
|
return {
|
|
201
180
|
node,
|
|
@@ -207,16 +186,12 @@ const localAnvil = foundry;
|
|
|
207
186
|
* @param config - Optional Aztec node settings.
|
|
208
187
|
*/ export async function createAztecNode(config = {}, deps = {}, options = {}) {
|
|
209
188
|
// TODO(#12272): will clean this up. This is criminal.
|
|
210
|
-
|
|
189
|
+
// Not sure why this was ever done. Will be fixed in A-989, A-991, A-990.
|
|
211
190
|
const aztecNodeConfig = {
|
|
212
|
-
...
|
|
213
|
-
...config
|
|
214
|
-
l1Contracts: {
|
|
215
|
-
...l1Contracts,
|
|
216
|
-
...config.l1Contracts
|
|
217
|
-
}
|
|
191
|
+
...getConfigEnvVars(),
|
|
192
|
+
...config
|
|
218
193
|
};
|
|
219
|
-
const node = await
|
|
194
|
+
const node = await createAztecNodeService(aztecNodeConfig, {
|
|
220
195
|
...deps,
|
|
221
196
|
proverNodeDeps: {
|
|
222
197
|
broker: deps.proverBroker
|