@aztec/aztec 0.0.1-commit.f504929 → 0.0.1-commit.f5a9928
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 +4 -2
- 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 +42 -33
- 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 +22 -18
- 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 +35 -21
- 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_flamegraph.d.ts +1 -1
- package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -1
- package/dest/cli/cmds/profile_flamegraph.js +2 -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 +23 -4
- 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 +56 -0
- package/dest/cli/cmds/standby.d.ts.map +1 -0
- package/dest/cli/cmds/standby.js +140 -0
- 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 +3 -2
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +36 -112
- 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 +22 -13
- 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 +10 -0
- package/dest/cli/cmds/utils/needs_recompile.d.ts.map +1 -0
- package/dest/cli/cmds/utils/needs_recompile.js +90 -0
- 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 +9 -6
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +26 -94
- package/dest/deploy/bridging.d.ts +84 -0
- package/dest/deploy/bridging.d.ts.map +1 -0
- package/dest/deploy/bridging.js +121 -0
- package/dest/deploy/fees.d.ts +120 -0
- package/dest/deploy/fees.d.ts.map +1 -0
- package/dest/deploy/fees.js +278 -0
- package/dest/deploy/graph.d.ts +40 -0
- package/dest/deploy/graph.d.ts.map +1 -0
- package/dest/deploy/graph.js +120 -0
- package/dest/deploy/index.d.ts +19 -0
- package/dest/deploy/index.d.ts.map +1 -0
- package/dest/deploy/index.js +15 -0
- package/dest/deploy/reporter.d.ts +106 -0
- package/dest/deploy/reporter.d.ts.map +1 -0
- package/dest/deploy/reporter.js +76 -0
- package/dest/deploy/runner.d.ts +8 -0
- package/dest/deploy/runner.d.ts.map +1 -0
- package/dest/deploy/runner.js +886 -0
- package/dest/deploy/state.d.ts +19 -0
- package/dest/deploy/state.d.ts.map +1 -0
- package/dest/deploy/state.js +59 -0
- package/dest/deploy/types.d.ts +233 -0
- package/dest/deploy/types.d.ts.map +1 -0
- package/dest/deploy/types.js +9 -0
- 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 +10 -32
- package/dest/local-network/local-network.d.ts.map +1 -1
- package/dest/local-network/local-network.js +60 -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 -26
- package/dest/testing/index.d.ts +3 -2
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +2 -1
- package/dest/testing/local-network.d.ts +51 -0
- package/dest/testing/local-network.d.ts.map +1 -0
- package/dest/testing/local-network.js +60 -0
- package/dest/testing/token_allowed_setup.d.ts +12 -0
- package/dest/testing/token_allowed_setup.d.ts.map +1 -0
- package/dest/testing/token_allowed_setup.js +24 -0
- package/package.json +38 -35
- package/scripts/add_crate.sh +11 -60
- package/scripts/aztec.sh +9 -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 +4 -2
- package/src/cli/aztec_start_action.ts +44 -27
- package/src/cli/aztec_start_options.ts +28 -25
- package/src/cli/cmds/compile.ts +41 -20
- package/src/cli/cmds/profile.ts +2 -1
- package/src/cli/cmds/profile_flamegraph.ts +2 -1
- package/src/cli/cmds/profile_gates.ts +22 -5
- package/src/cli/cmds/prover.ts +42 -0
- package/src/cli/cmds/standby.ts +184 -0
- package/src/cli/cmds/start_bot.ts +9 -6
- package/src/cli/cmds/start_node.ts +46 -131
- package/src/cli/cmds/start_prover_agent.ts +5 -8
- package/src/cli/cmds/start_prover_broker.ts +23 -24
- 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 +98 -0
- package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +76 -0
- package/src/cli/util.ts +26 -100
- package/src/deploy/bridging.ts +191 -0
- package/src/deploy/fees.ts +322 -0
- package/src/deploy/graph.ts +137 -0
- package/src/deploy/index.ts +41 -0
- package/src/deploy/reporter.ts +184 -0
- package/src/deploy/runner.ts +936 -0
- package/src/deploy/state.ts +66 -0
- package/src/deploy/types.ts +244 -0
- package/src/examples/token.ts +11 -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 +67 -83
- package/src/testing/cheat_codes.ts +18 -49
- package/src/testing/epoch_test_settler.ts +8 -32
- package/src/testing/index.ts +2 -1
- package/src/testing/local-network.ts +97 -0
- package/src/testing/token_allowed_setup.ts +26 -0
- 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/cli/release_version.d.ts +0 -2
- package/dest/cli/release_version.d.ts.map +0 -1
- package/dest/cli/release_version.js +0 -14
- 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/cli/release_version.ts +0 -21
- package/src/testing/anvil_test_watcher.ts +0 -210
package/dest/bin/index.js
CHANGED
|
@@ -11,12 +11,13 @@ import { injectCommands as injectMiscCommands } from '@aztec/cli/misc';
|
|
|
11
11
|
import { injectCommands as injectValidatorKeysCommands } from '@aztec/cli/validator_keys';
|
|
12
12
|
import { getActiveNetworkName } from '@aztec/foundation/config';
|
|
13
13
|
import { createConsoleLogger, createLogger } from '@aztec/foundation/log';
|
|
14
|
+
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
14
15
|
import { Command } from 'commander';
|
|
15
16
|
import { injectCompileCommand } from '../cli/cmds/compile.js';
|
|
16
17
|
import { injectMigrateCommand } from '../cli/cmds/migrate_ha_db.js';
|
|
17
18
|
import { injectProfileCommand } from '../cli/cmds/profile.js';
|
|
19
|
+
import { injectProverCommand } from '../cli/cmds/prover.js';
|
|
18
20
|
import { injectAztecCommands } from '../cli/index.js';
|
|
19
|
-
import { getCliVersion } from '../cli/release_version.js';
|
|
20
21
|
const NETWORK_FLAG = 'network';
|
|
21
22
|
const userLog = createConsoleLogger();
|
|
22
23
|
const debugLogger = createLogger('cli');
|
|
@@ -36,7 +37,7 @@ const debugLogger = createLogger('cli');
|
|
|
36
37
|
const networkName = getActiveNetworkName(networkValue);
|
|
37
38
|
await enrichEnvironmentWithNetworkConfig(networkName);
|
|
38
39
|
enrichEnvironmentWithChainName(networkName);
|
|
39
|
-
const cliVersion =
|
|
40
|
+
const cliVersion = getPackageVersion();
|
|
40
41
|
let program = new Command('aztec');
|
|
41
42
|
program.description('Aztec command line interface').version(cliVersion).enablePositionalOptions();
|
|
42
43
|
program = injectAztecCommands(program, userLog, debugLogger);
|
|
@@ -50,6 +51,7 @@ const debugLogger = createLogger('cli');
|
|
|
50
51
|
program = injectCompileCommand(program, userLog);
|
|
51
52
|
program = injectProfileCommand(program, userLog);
|
|
52
53
|
program = injectMigrateCommand(program, userLog);
|
|
54
|
+
program = injectProverCommand(program, userLog);
|
|
53
55
|
await program.parseAsync(process.argv);
|
|
54
56
|
}
|
|
55
57
|
main().catch((err)=>{
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
2
2
|
export declare function aztecStart(options: any, userLog: LogFn, debugLogger: Logger): Promise<void>;
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfYWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2F6dGVjX3N0YXJ0X2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFnQjNELHdCQUFzQixVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQW9KakYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec_start_action.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aztec_start_action.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_action.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAgB3D,wBAAsB,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAoJjF"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { registerAztecNodeRpcHandlers } from '@aztec/aztec-node';
|
|
2
|
+
import { getActiveNetworkName } from '@aztec/foundation/config';
|
|
1
3
|
import { createNamespacedSafeJsonRpcServer, getApiKeyAuthMiddleware, startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
2
|
-
import {
|
|
4
|
+
import { getRpcCorsAllowedOrigins } from '@aztec/stdlib/config';
|
|
5
|
+
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
3
6
|
import { getVersioningMiddleware } from '@aztec/stdlib/versioning';
|
|
4
|
-
import { getOtelJsonRpcPropagationMiddleware } from '@aztec/telemetry-client';
|
|
7
|
+
import { getOtelJsonRpcDiagnosticsMiddleware, getOtelJsonRpcPropagationMiddleware, getOtelJsonRpcServerMetricsMiddleware } from '@aztec/telemetry-client';
|
|
5
8
|
import { createLocalNetwork } from '../local-network/index.js';
|
|
6
9
|
import { github, splash } from '../splash.js';
|
|
7
10
|
import { resolveAdminApiKey } from './admin_api_key_store.js';
|
|
8
|
-
import { getCliVersion } from './release_version.js';
|
|
9
11
|
import { extractNamespacedOptions, installSignalHandlers } from './util.js';
|
|
10
12
|
import { getVersions } from './versioning.js';
|
|
11
13
|
export async function aztecStart(options, userLog, debugLogger) {
|
|
@@ -13,30 +15,22 @@ export async function aztecStart(options, userLog, debugLogger) {
|
|
|
13
15
|
const signalHandlers = [];
|
|
14
16
|
const services = {};
|
|
15
17
|
const adminServices = {};
|
|
18
|
+
const packageVersion = getPackageVersion();
|
|
16
19
|
let config = undefined;
|
|
17
20
|
if (options.localNetwork) {
|
|
18
|
-
const
|
|
19
|
-
const localNetwork = extractNamespacedOptions(options, 'local-network');
|
|
20
|
-
localNetwork.testAccounts = true;
|
|
21
|
+
const localNetwork = extractNamespacedOptions(options, 'localNetwork');
|
|
21
22
|
userLog(`${splash}\n${github}\n\n`);
|
|
22
|
-
userLog(`Setting up Aztec local network ${
|
|
23
|
+
userLog(`Setting up Aztec local network ${packageVersion}, please stand by...`);
|
|
23
24
|
const { node, stop } = await createLocalNetwork({
|
|
24
25
|
l1Mnemonic: localNetwork.l1Mnemonic,
|
|
25
26
|
l1RpcUrls: options.l1RpcUrls,
|
|
26
|
-
testAccounts: localNetwork.testAccounts
|
|
27
|
-
realProofs: false,
|
|
28
|
-
// Setting the epoch duration to 2 by default for local network. This allows the epoch to be "proven" faster, so
|
|
29
|
-
// the users can consume out hash without having to wait for a long time.
|
|
30
|
-
// Note: We are not proving anything in the local network (realProofs == false). But in `createLocalNetwork`,
|
|
31
|
-
// the EpochTestSettler will set the out hash to the outbox when an epoch is complete.
|
|
32
|
-
aztecEpochDuration: 2
|
|
27
|
+
testAccounts: localNetwork.testAccounts
|
|
33
28
|
}, userLog);
|
|
34
29
|
// Start Node and PXE JSON-RPC server
|
|
35
30
|
signalHandlers.push(stop);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
];
|
|
31
|
+
registerAztecNodeRpcHandlers(node, services, adminServices, {
|
|
32
|
+
debug: true
|
|
33
|
+
});
|
|
40
34
|
} else {
|
|
41
35
|
// Route --prover-node through startNode
|
|
42
36
|
if (options.proverNode && !options.node) {
|
|
@@ -44,13 +38,11 @@ export async function aztecStart(options, userLog, debugLogger) {
|
|
|
44
38
|
}
|
|
45
39
|
if (options.node) {
|
|
46
40
|
const { startNode } = await import('./cmds/start_node.js');
|
|
47
|
-
|
|
41
|
+
const networkName = getActiveNetworkName(options.network);
|
|
42
|
+
({ config } = await startNode(options, signalHandlers, services, adminServices, userLog, networkName));
|
|
48
43
|
} else if (options.bot) {
|
|
49
44
|
const { startBot } = await import('./cmds/start_bot.js');
|
|
50
45
|
await startBot(options, signalHandlers, services, userLog);
|
|
51
|
-
} else if (options.archiver) {
|
|
52
|
-
const { startArchiver } = await import('./cmds/start_archiver.js');
|
|
53
|
-
({ config } = await startArchiver(options, signalHandlers, services));
|
|
54
46
|
} else if (options.p2pBootstrap) {
|
|
55
47
|
const { startP2PBootstrap } = await import('./cmds/start_p2p_bootstrap.js');
|
|
56
48
|
({ config } = await startP2PBootstrap(options, signalHandlers, services, userLog));
|
|
@@ -62,7 +54,7 @@ export async function aztecStart(options, userLog, debugLogger) {
|
|
|
62
54
|
await startProverBroker(options, signalHandlers, services, userLog);
|
|
63
55
|
} else if (options.txe) {
|
|
64
56
|
const { startTXE } = await import('./cmds/start_txe.js');
|
|
65
|
-
await startTXE(options, debugLogger);
|
|
57
|
+
await startTXE(options, signalHandlers, debugLogger);
|
|
66
58
|
} else if (options.sequencer) {
|
|
67
59
|
userLog(`Cannot run a standalone sequencer without a node`);
|
|
68
60
|
process.exit(1);
|
|
@@ -73,29 +65,39 @@ export async function aztecStart(options, userLog, debugLogger) {
|
|
|
73
65
|
}
|
|
74
66
|
installSignalHandlers(debugLogger.info, signalHandlers);
|
|
75
67
|
const versions = getVersions(config);
|
|
68
|
+
const versioningOpts = {
|
|
69
|
+
packageVersion
|
|
70
|
+
};
|
|
76
71
|
// Start the main JSON-RPC server
|
|
77
72
|
if (Object.entries(services).length > 0) {
|
|
73
|
+
if (services.aztec) {
|
|
74
|
+
const { BarretenbergSync } = await import('@aztec/bb.js');
|
|
75
|
+
// JSON-RPC schema parsing may decompress compressed Chonk proofs before the node handler runs.
|
|
76
|
+
await BarretenbergSync.initSingleton();
|
|
77
|
+
}
|
|
78
78
|
const rpcServer = createNamespacedSafeJsonRpcServer(services, {
|
|
79
|
+
diagnostic: getOtelJsonRpcDiagnosticsMiddleware(),
|
|
79
80
|
http200OnError: false,
|
|
80
81
|
log: debugLogger,
|
|
81
82
|
middlewares: [
|
|
83
|
+
getOtelJsonRpcServerMetricsMiddleware(),
|
|
82
84
|
getOtelJsonRpcPropagationMiddleware(),
|
|
83
|
-
getVersioningMiddleware(versions)
|
|
85
|
+
getVersioningMiddleware(versions, versioningOpts)
|
|
84
86
|
],
|
|
85
87
|
maxBatchSize: options.rpcMaxBatchSize,
|
|
86
|
-
maxBodySizeBytes: options.rpcMaxBodySize
|
|
88
|
+
maxBodySizeBytes: options.rpcMaxBodySize,
|
|
89
|
+
corsAllowedHeaders: options.rpcCorsAllowedHeaders ?? [],
|
|
90
|
+
corsAllowedOrigins: getRpcCorsAllowedOrigins(options)
|
|
87
91
|
});
|
|
88
92
|
const { port } = await startHttpRpcServer(rpcServer, {
|
|
89
|
-
port: options.port
|
|
93
|
+
port: options.port,
|
|
94
|
+
keepAliveTimeoutMs: options.rpcHttpKeepAliveTimeoutMs,
|
|
95
|
+
headersTimeoutMs: options.rpcHttpHeadersTimeoutMs
|
|
90
96
|
});
|
|
91
97
|
debugLogger.info(`Aztec Server listening on port ${port}`, versions);
|
|
92
98
|
}
|
|
93
99
|
// If there are any admin services, start a separate JSON-RPC server for them
|
|
94
100
|
if (Object.entries(adminServices).length > 0) {
|
|
95
|
-
const adminMiddlewares = [
|
|
96
|
-
getOtelJsonRpcPropagationMiddleware(),
|
|
97
|
-
getVersioningMiddleware(versions)
|
|
98
|
-
];
|
|
99
101
|
// Resolve the admin API key (auto-generated and persisted, or opt-out)
|
|
100
102
|
const apiKeyResolution = await resolveAdminApiKey({
|
|
101
103
|
adminApiKeyHash: options.adminApiKeyHash,
|
|
@@ -103,12 +105,19 @@ export async function aztecStart(options, userLog, debugLogger) {
|
|
|
103
105
|
resetAdminApiKey: options.resetAdminApiKey,
|
|
104
106
|
dataDirectory: options.dataDirectory
|
|
105
107
|
}, debugLogger);
|
|
106
|
-
if (apiKeyResolution) {
|
|
107
|
-
adminMiddlewares.unshift(getApiKeyAuthMiddleware(apiKeyResolution.apiKeyHash));
|
|
108
|
-
} else {
|
|
108
|
+
if (!apiKeyResolution) {
|
|
109
109
|
debugLogger.warn('No admin API key set — admin endpoint is unauthenticated');
|
|
110
110
|
}
|
|
111
|
+
const adminMiddlewares = [
|
|
112
|
+
getOtelJsonRpcServerMetricsMiddleware(),
|
|
113
|
+
...apiKeyResolution ? [
|
|
114
|
+
getApiKeyAuthMiddleware(apiKeyResolution.apiKeyHash)
|
|
115
|
+
] : [],
|
|
116
|
+
getOtelJsonRpcPropagationMiddleware(),
|
|
117
|
+
getVersioningMiddleware(versions, versioningOpts)
|
|
118
|
+
];
|
|
111
119
|
const rpcServer = createNamespacedSafeJsonRpcServer(adminServices, {
|
|
120
|
+
diagnostic: getOtelJsonRpcDiagnosticsMiddleware(),
|
|
112
121
|
http200OnError: false,
|
|
113
122
|
log: debugLogger,
|
|
114
123
|
middlewares: adminMiddlewares,
|
|
@@ -8,10 +8,10 @@ export interface AztecStartOption {
|
|
|
8
8
|
fallback?: EnvVar[];
|
|
9
9
|
parseVal?: (val: string) => any;
|
|
10
10
|
}
|
|
11
|
-
export declare const getOptions: (namespace: string, configMappings: Record<string, ConfigMapping
|
|
11
|
+
export declare const getOptions: (namespace: string, configMappings: Record<string, ConfigMapping<unknown>>) => AztecStartOption[];
|
|
12
12
|
export declare const universalOptions: string[];
|
|
13
13
|
export declare const NETWORK_FLAG = "network";
|
|
14
14
|
export declare const aztecStartOptions: {
|
|
15
15
|
[key: string]: AztecStartOption[];
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfb3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9henRlY19zdGFydF9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxLQUFLLGFBQWEsRUFDbEIsS0FBSyxNQUFNLEVBSVosTUFBTSwwQkFBMEIsQ0FBQztBQWVsQyxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFlBQVksRUFBRSxHQUFHLENBQUM7SUFDbEIsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLE1BQU0sQ0FBQztJQUNwQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN4QixRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEtBQUssR0FBRyxDQUFDO0NBQ2pDO0FBRUQsZUFBTyxNQUFNLFVBQVUsbUdBb0J0QixDQUFDO0FBMkJGLGVBQU8sTUFBTSxnQkFBZ0IsVUFZNUIsQ0FBQztBQUVGLGVBQU8sTUFBTSxZQUFZLFlBQVksQ0FBQztBQUd0QyxlQUFPLE1BQU0saUJBQWlCLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQXNPbEUsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EAIZ,MAAM,0BAA0B,CAAC;AAelC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EAIZ,MAAM,0BAA0B,CAAC;AAelC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,mGAoBtB,CAAC;AA2BF,eAAO,MAAM,gBAAgB,UAY5B,CAAC;AAEF,eAAO,MAAM,YAAY,YAAY,CAAC;AAGtC,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAsOlE,CAAC"}
|
|
@@ -6,7 +6,6 @@ import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresse
|
|
|
6
6
|
import { l1ReaderConfigMappings } from '@aztec/ethereum/l1-reader';
|
|
7
7
|
import { getKeys } from '@aztec/foundation/collection';
|
|
8
8
|
import { booleanConfigHelper, isBooleanConfigValue, omitConfigMappings } from '@aztec/foundation/config';
|
|
9
|
-
import { dataConfigMappings } from '@aztec/kv-store/config';
|
|
10
9
|
import { sharedNodeConfigMappings } from '@aztec/node-lib/config';
|
|
11
10
|
import { bootnodeConfigMappings, p2pConfigMappings } from '@aztec/p2p/config';
|
|
12
11
|
import { proverAgentConfigMappings, proverBrokerConfigMappings } from '@aztec/prover-client/broker/config';
|
|
@@ -14,6 +13,7 @@ import { proverNodeConfigMappings } from '@aztec/prover-node/config';
|
|
|
14
13
|
import { allPxeConfigMappings } from '@aztec/pxe/config';
|
|
15
14
|
import { sequencerClientConfigMappings } from '@aztec/sequencer-client/config';
|
|
16
15
|
import { chainConfigMappings, nodeRpcConfigMappings } from '@aztec/stdlib/config';
|
|
16
|
+
import { dataConfigMappings } from '@aztec/stdlib/kv-store';
|
|
17
17
|
import { telemetryClientConfigMappings } from '@aztec/telemetry-client/config';
|
|
18
18
|
import { worldStateConfigMappings } from '@aztec/world-state/config';
|
|
19
19
|
import { DefaultMnemonic } from '../mnemonic.js';
|
|
@@ -76,8 +76,7 @@ export const aztecStartOptions = {
|
|
|
76
76
|
defaultValue: undefined,
|
|
77
77
|
env: 'NETWORK'
|
|
78
78
|
},
|
|
79
|
-
configToFlag('--auto-
|
|
80
|
-
configToFlag('--auto-update-url', sharedNodeConfigMappings.autoUpdateUrl),
|
|
79
|
+
configToFlag('--enable-auto-shutdown', sharedNodeConfigMappings.enableAutoShutdown),
|
|
81
80
|
configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
|
|
82
81
|
configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls),
|
|
83
82
|
configToFlag('--fisherman-mode', sharedNodeConfigMappings.fishermanMode)
|
|
@@ -94,6 +93,12 @@ export const aztecStartOptions = {
|
|
|
94
93
|
description: 'Mnemonic for L1 accounts. Will be used ',
|
|
95
94
|
defaultValue: DefaultMnemonic,
|
|
96
95
|
env: 'MNEMONIC'
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
flag: '--local-network.testAccounts',
|
|
99
|
+
description: 'Deploy test accounts on local network start',
|
|
100
|
+
env: 'TEST_ACCOUNTS',
|
|
101
|
+
...booleanConfigHelper(true)
|
|
97
102
|
}
|
|
98
103
|
],
|
|
99
104
|
API: [
|
|
@@ -132,6 +137,13 @@ export const aztecStartOptions = {
|
|
|
132
137
|
env: 'AZTEC_RESET_ADMIN_API_KEY',
|
|
133
138
|
parseVal: (val)=>val === 'true' || val === '1'
|
|
134
139
|
},
|
|
140
|
+
{
|
|
141
|
+
flag: '--node-debug',
|
|
142
|
+
description: 'Expose debug endpoints (e.g. mineBlock) on the main RPC port',
|
|
143
|
+
defaultValue: false,
|
|
144
|
+
env: 'AZTEC_NODE_DEBUG',
|
|
145
|
+
parseVal: (val)=>val === undefined || val === 'true' || val === '1'
|
|
146
|
+
},
|
|
135
147
|
{
|
|
136
148
|
flag: '--api-prefix <value>',
|
|
137
149
|
description: 'Prefix for API routes on any service that is started',
|
|
@@ -139,7 +151,12 @@ export const aztecStartOptions = {
|
|
|
139
151
|
env: 'API_PREFIX'
|
|
140
152
|
},
|
|
141
153
|
configToFlag('--rpcMaxBatchSize', nodeRpcConfigMappings.rpcMaxBatchSize),
|
|
142
|
-
configToFlag('--rpcMaxBodySize', nodeRpcConfigMappings.rpcMaxBodySize)
|
|
154
|
+
configToFlag('--rpcMaxBodySize', nodeRpcConfigMappings.rpcMaxBodySize),
|
|
155
|
+
configToFlag('--rpc-http-keep-alive-timeout-ms', nodeRpcConfigMappings.rpcHttpKeepAliveTimeoutMs),
|
|
156
|
+
configToFlag('--rpc-http-headers-timeout-ms', nodeRpcConfigMappings.rpcHttpHeadersTimeoutMs),
|
|
157
|
+
configToFlag('--rpc-cors-allowed-headers', nodeRpcConfigMappings.rpcCorsAllowedHeaders),
|
|
158
|
+
configToFlag('--rpc-cors-allowed-origins', nodeRpcConfigMappings.rpcCorsAllowedOrigins),
|
|
159
|
+
configToFlag('--rpc-cors-allow-any-origin', nodeRpcConfigMappings.rpcCorsAllowAnyOrigin)
|
|
143
160
|
],
|
|
144
161
|
ETHEREUM: [
|
|
145
162
|
configToFlag('--l1-chain-id', l1ReaderConfigMappings.l1ChainId),
|
|
@@ -175,12 +192,6 @@ export const aztecStartOptions = {
|
|
|
175
192
|
}
|
|
176
193
|
],
|
|
177
194
|
ARCHIVER: [
|
|
178
|
-
{
|
|
179
|
-
flag: '--archiver',
|
|
180
|
-
description: 'Starts Aztec Archiver with options',
|
|
181
|
-
defaultValue: undefined,
|
|
182
|
-
env: undefined
|
|
183
|
-
},
|
|
184
195
|
...getOptions('archiver', omitConfigMappings(archiverConfigMappings, Object.keys(l1ContractsConfigMappings)))
|
|
185
196
|
],
|
|
186
197
|
SEQUENCER: [
|
|
@@ -218,8 +229,7 @@ export const aztecStartOptions = {
|
|
|
218
229
|
defaultValue: undefined,
|
|
219
230
|
env: undefined
|
|
220
231
|
},
|
|
221
|
-
...getOptions('proverBroker',
|
|
222
|
-
proverBrokerConfigMappings)
|
|
232
|
+
...getOptions('proverBroker', proverBrokerConfigMappings)
|
|
223
233
|
],
|
|
224
234
|
'PROVER AGENT': [
|
|
225
235
|
{
|
|
@@ -267,12 +277,6 @@ export const aztecStartOptions = {
|
|
|
267
277
|
...getOptions('bot', botConfigMappings)
|
|
268
278
|
],
|
|
269
279
|
PXE: [
|
|
270
|
-
{
|
|
271
|
-
flag: '--pxe',
|
|
272
|
-
description: 'Starts Aztec PXE with options',
|
|
273
|
-
defaultValue: undefined,
|
|
274
|
-
env: undefined
|
|
275
|
-
},
|
|
276
280
|
...getOptions('pxe', allPxeConfigMappings)
|
|
277
281
|
],
|
|
278
282
|
TXE: [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LogFn } from '@aztec/foundation/log';
|
|
2
2
|
import type { Command } from 'commander';
|
|
3
3
|
export declare function injectCompileCommand(program: Command, log: LogFn): Command;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL2NvbXBpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJbkQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBMEt6Qyx3QkFBZ0Isb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FzQjFFIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/compile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0KzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAsB1E"}
|
package/dest/cli/cmds/compile.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { findBbBinary } from '@aztec/bb.js';
|
|
2
|
+
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
1
3
|
import { execFileSync } from 'child_process';
|
|
2
4
|
import { readFile, writeFile } from 'fs/promises';
|
|
3
5
|
import { join } from 'path';
|
|
4
6
|
import { readArtifactFiles } from './utils/artifacts.js';
|
|
7
|
+
import { needsRecompile } from './utils/needs_recompile.js';
|
|
5
8
|
import { run } from './utils/spawn.js';
|
|
6
|
-
|
|
9
|
+
import { warnIfAztecVersionMismatch } from './utils/warn_if_aztec_version_mismatch.js';
|
|
10
|
+
/** Returns contract artifacts in the target directory along with whether each has already been postprocessed. */ async function collectContractArtifacts() {
|
|
7
11
|
let files;
|
|
8
12
|
try {
|
|
9
13
|
files = await readArtifactFiles('target');
|
|
@@ -13,16 +17,17 @@ import { run } from './utils/spawn.js';
|
|
|
13
17
|
}
|
|
14
18
|
throw err;
|
|
15
19
|
}
|
|
16
|
-
return files.filter((f)=>Array.isArray(f.content.functions)).map((f)=>
|
|
20
|
+
return files.filter((f)=>Array.isArray(f.content.functions)).map((f)=>({
|
|
21
|
+
filePath: f.filePath,
|
|
22
|
+
transpiled: f.content.transpiled === true
|
|
23
|
+
}));
|
|
17
24
|
}
|
|
18
|
-
/**
|
|
25
|
+
/** Stamps the Aztec stack version into the contract artifacts. */ async function stampAztecVersion(artifactPaths) {
|
|
26
|
+
const version = getPackageVersion();
|
|
19
27
|
for (const path of artifactPaths){
|
|
20
28
|
const artifact = JSON.parse(await readFile(path, 'utf-8'));
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
fn.name = fn.name.replace(/^__aztec_nr_internals__/, '');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
29
|
+
// eslint-disable-next-line camelcase
|
|
30
|
+
artifact.aztec_version = version;
|
|
26
31
|
await writeFile(path, JSON.stringify(artifact, null, 2) + '\n');
|
|
27
32
|
}
|
|
28
33
|
}
|
|
@@ -116,18 +121,24 @@ import { run } from './utils/spawn.js';
|
|
|
116
121
|
}
|
|
117
122
|
}
|
|
118
123
|
/** Compiles Aztec Noir contracts and postprocesses artifacts. */ async function compileAztecContract(nargoArgs, log) {
|
|
124
|
+
await warnIfAztecVersionMismatch(log);
|
|
119
125
|
const nargo = process.env.NARGO ?? 'nargo';
|
|
120
|
-
const bb = process.env.BB ?? 'bb';
|
|
121
|
-
await
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
const bb = process.env.BB ?? findBbBinary() ?? 'bb';
|
|
127
|
+
const shouldRecompile = await needsRecompile();
|
|
128
|
+
if (shouldRecompile) {
|
|
129
|
+
await run(nargo, [
|
|
130
|
+
'compile',
|
|
131
|
+
...nargoArgs
|
|
132
|
+
]);
|
|
133
|
+
// Ensure contract crates contain no tests (tests belong in the test crate).
|
|
134
|
+
await checkNoTestsInContracts(nargo, log);
|
|
135
|
+
}
|
|
136
|
+
// Postprocess any untranspiled artifacts: those just produced by nargo above, and any left behind by a bare
|
|
137
|
+
// `nargo compile` run outside `aztec compile`.
|
|
138
|
+
const unprocessed = (await collectContractArtifacts()).filter((a)=>!a.transpiled).map((a)=>a.filePath);
|
|
139
|
+
if (unprocessed.length > 0) {
|
|
129
140
|
log('Postprocessing contracts...');
|
|
130
|
-
const bbArgs =
|
|
141
|
+
const bbArgs = unprocessed.flatMap((a)=>[
|
|
131
142
|
'-i',
|
|
132
143
|
a
|
|
133
144
|
]);
|
|
@@ -135,10 +146,13 @@ import { run } from './utils/spawn.js';
|
|
|
135
146
|
'aztec_process',
|
|
136
147
|
...bbArgs
|
|
137
148
|
]);
|
|
138
|
-
|
|
139
|
-
|
|
149
|
+
await stampAztecVersion(unprocessed);
|
|
150
|
+
}
|
|
151
|
+
if (shouldRecompile || unprocessed.length > 0) {
|
|
152
|
+
log('Compilation complete!');
|
|
153
|
+
} else {
|
|
154
|
+
log('No source changes detected, skipping compilation.');
|
|
140
155
|
}
|
|
141
|
-
log('Compilation complete!');
|
|
142
156
|
}
|
|
143
157
|
export function injectCompileCommand(program, log) {
|
|
144
158
|
program.command('compile').argument('[nargo-args...]').passThroughOptions().allowUnknownOption().description('Compile Aztec Noir contracts using nargo and postprocess them to generate transpiled artifacts and verification keys. All options are forwarded to nargo compile.').addHelpText('after', ()=>{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LogFn } from '@aztec/foundation/log';
|
|
2
2
|
import type { Command } from 'commander';
|
|
3
3
|
export declare function injectProfileCommand(program: Command, log: LogFn): Command;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3Byb2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBS3pDLHdCQUFnQixvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQWtCMUUifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAkB1E"}
|
package/dest/cli/cmds/profile.js
CHANGED
|
@@ -2,7 +2,7 @@ import { profileFlamegraph } from './profile_flamegraph.js';
|
|
|
2
2
|
import { profileGates } from './profile_gates.js';
|
|
3
3
|
export function injectProfileCommand(program, log) {
|
|
4
4
|
const profile = program.command('profile').description('Profile compiled Aztec artifacts.');
|
|
5
|
-
profile.command('gates').argument('[target-dir]', 'Path to the compiled artifacts directory', './target').description('Display gate counts for all compiled Aztec artifacts in a target directory.').action((targetDir)=>profileGates(targetDir, log));
|
|
5
|
+
profile.command('gates').argument('[target-dir]', 'Path to the compiled artifacts directory', './target').option('--json', 'Output gate counts as JSON instead of a table', false).description('Display gate counts for all compiled Aztec artifacts in a target directory.').action((targetDir, options)=>profileGates(targetDir, options.json, log));
|
|
6
6
|
profile.command('flamegraph').argument('<contract-artifact>', 'Path to the compiled contract artifact JSON').argument('<function>', 'Name of the contract function to profile').description('Generate a gate count flamegraph SVG for a contract function.').action((artifactPath, functionName)=>profileFlamegraph(artifactPath, functionName, log));
|
|
7
7
|
return program;
|
|
8
8
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LogFn } from '@aztec/foundation/log';
|
|
2
2
|
/** Generates a gate count flamegraph SVG for a single contract function. */
|
|
3
3
|
export declare function profileFlamegraph(artifactPath: string, functionName: string, log: LogFn): Promise<void>;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZV9mbGFtZWdyYXBoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvcHJvZmlsZV9mbGFtZWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBU25ELDRFQUE0RTtBQUM1RSx3QkFBc0IsaUJBQWlCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW9EN0cifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_flamegraph.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_flamegraph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_flamegraph.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_flamegraph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AASnD,4EAA4E;AAC5E,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD7G"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { findBbBinary } from '@aztec/bb.js';
|
|
1
2
|
import { readFile, rename, rm, writeFile } from 'fs/promises';
|
|
2
3
|
import { basename, dirname, join } from 'path';
|
|
3
4
|
import { makeFunctionArtifact } from './profile_utils.js';
|
|
@@ -22,7 +23,7 @@ import { run } from './utils/spawn.js';
|
|
|
22
23
|
try {
|
|
23
24
|
await writeFile(functionArtifact, makeFunctionArtifact(artifact, func));
|
|
24
25
|
const profiler = process.env.PROFILER_PATH ?? 'noir-profiler';
|
|
25
|
-
const bb = process.env.BB ?? 'bb';
|
|
26
|
+
const bb = process.env.BB ?? findBbBinary() ?? 'bb';
|
|
26
27
|
await run(profiler, [
|
|
27
28
|
'gates',
|
|
28
29
|
'--artifact-path',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LogFn } from '@aztec/foundation/log';
|
|
2
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,
|
|
3
|
+
export declare function profileGates(targetDir: string, json: boolean, log: LogFn): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZV9nYXRlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3Byb2ZpbGVfZ2F0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFnQ25ELG9GQUFvRjtBQUNwRix3QkFBc0IsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FnRDlGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile_gates.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_gates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"profile_gates.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/profile_gates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAgCnD,oFAAoF;AACpF,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD9F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { findBbBinary } from '@aztec/bb.js';
|
|
1
2
|
import { asyncPool } from '@aztec/foundation/async-pool';
|
|
2
3
|
import { execFile as execFileCb } from 'child_process';
|
|
3
4
|
import { rm } from 'fs/promises';
|
|
@@ -22,21 +23,39 @@ const execFile = promisify(execFileCb);
|
|
|
22
23
|
]);
|
|
23
24
|
return parseGateCount(stdout);
|
|
24
25
|
}
|
|
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';
|
|
26
|
+
/** Profiles all compiled artifacts in a target directory and prints gate counts. */ export async function profileGates(targetDir, json, log) {
|
|
27
|
+
const bb = process.env.BB ?? findBbBinary() ?? 'bb';
|
|
27
28
|
const { artifacts, tmpDir } = await discoverArtifacts(targetDir);
|
|
28
29
|
if (artifacts.length === 0) {
|
|
29
|
-
|
|
30
|
+
if (json) {
|
|
31
|
+
log('[]');
|
|
32
|
+
} else {
|
|
33
|
+
log('No artifacts found in target directory.');
|
|
34
|
+
}
|
|
30
35
|
return;
|
|
31
36
|
}
|
|
32
37
|
try {
|
|
33
38
|
const results = await asyncPool(MAX_CONCURRENT, artifacts, async (artifact)=>({
|
|
34
39
|
name: artifact.name,
|
|
40
|
+
type: artifact.type,
|
|
35
41
|
gateCount: await getGateCount(bb, artifact.filePath)
|
|
36
42
|
}));
|
|
37
43
|
results.sort((a, b)=>a.name.localeCompare(b.name));
|
|
38
44
|
if (results.length === 0) {
|
|
39
|
-
|
|
45
|
+
if (json) {
|
|
46
|
+
log('[]');
|
|
47
|
+
} else {
|
|
48
|
+
log('No constrained circuits found.');
|
|
49
|
+
}
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (json) {
|
|
53
|
+
const entries = results.map((r)=>({
|
|
54
|
+
name: r.name,
|
|
55
|
+
type: r.type,
|
|
56
|
+
gates: r.gateCount
|
|
57
|
+
}));
|
|
58
|
+
log(JSON.stringify(entries, null, 2));
|
|
40
59
|
return;
|
|
41
60
|
}
|
|
42
61
|
const maxNameLen = Math.max(...results.map((r)=>r.name.length));
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
2
|
+
import { type Command } from 'commander';
|
|
3
|
+
export declare function injectProverCommand(program: Command, log: LogFn): Command;
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvcHJvdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR25ELE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBd0IsTUFBTSxXQUFXLENBQUM7QUFVL0Qsd0JBQWdCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxPQUFPLENBMkJ6RSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prover.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/prover.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,WAAW,CAAC;AAU/D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CA2BzE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
2
|
+
import { createProverNodeAdminClient } from '@aztec/stdlib/interfaces/server';
|
|
3
|
+
import { InvalidArgumentError } from 'commander';
|
|
4
|
+
function parseEpoch(value) {
|
|
5
|
+
const parsed = Number(value);
|
|
6
|
+
if (!Number.isInteger(parsed) || parsed < 0) {
|
|
7
|
+
throw new InvalidArgumentError('Epoch must be a non-negative integer.');
|
|
8
|
+
}
|
|
9
|
+
return parsed;
|
|
10
|
+
}
|
|
11
|
+
export function injectProverCommand(program, log) {
|
|
12
|
+
const proverCommand = program.command('prover').description('Operate a prover node via its admin JSON-RPC endpoint');
|
|
13
|
+
proverCommand.command('start-proof').description('Schedules proving for the given epoch').requiredOption('--epoch <n>', 'Epoch number to prove', parseEpoch).requiredOption('--admin-url <url>', 'URL of the prover node admin JSON-RPC endpoint').option('--api-key <key>', 'Admin API key', process.env.AZTEC_ADMIN_API_KEY).action(async (options)=>{
|
|
14
|
+
const client = createProverNodeAdminClient(options.adminUrl, {}, undefined, options.apiKey);
|
|
15
|
+
const jobId = await client.startProof(options.epoch);
|
|
16
|
+
log(`Started proving job ${jobId} for epoch ${options.epoch}`);
|
|
17
|
+
});
|
|
18
|
+
proverCommand.command('get-jobs').description('Lists the prover node proving jobs').requiredOption('--admin-url <url>', 'URL of the prover node admin JSON-RPC endpoint').option('--api-key <key>', 'Admin API key', process.env.AZTEC_ADMIN_API_KEY).action(async (options)=>{
|
|
19
|
+
const client = createProverNodeAdminClient(options.adminUrl, {}, undefined, options.apiKey);
|
|
20
|
+
const jobs = await client.getJobs();
|
|
21
|
+
log(jsonStringify(jobs, true));
|
|
22
|
+
});
|
|
23
|
+
return program;
|
|
24
|
+
}
|