@aztec/aztec 4.0.4-rc.3 → 4.0.4-rc.4
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 +2 -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 +5 -3
- package/dest/cli/aztec_start_options.d.ts +1 -1
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +1 -2
- 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 +11 -7
- 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 +1 -6
- package/dest/cli/util.d.ts +3 -5
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +37 -78
- package/dest/local-network/local-network.d.ts +1 -1
- package/dest/local-network/local-network.d.ts.map +1 -1
- package/dest/local-network/local-network.js +9 -4
- package/package.json +34 -34
- package/src/bin/index.ts +2 -2
- package/src/cli/aztec_start_action.ts +5 -3
- package/src/cli/aztec_start_options.ts +1 -2
- package/src/cli/cmds/start_node.ts +20 -14
- package/src/cli/cmds/start_prover_broker.ts +1 -14
- package/src/cli/util.ts +41 -74
- package/src/local-network/local-network.ts +7 -3
- 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/src/cli/release_version.ts +0 -21
package/dest/bin/index.js
CHANGED
|
@@ -11,12 +11,12 @@ 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';
|
|
18
19
|
import { injectAztecCommands } from '../cli/index.js';
|
|
19
|
-
import { getCliVersion } from '../cli/release_version.js';
|
|
20
20
|
const NETWORK_FLAG = 'network';
|
|
21
21
|
const userLog = createConsoleLogger();
|
|
22
22
|
const debugLogger = createLogger('cli');
|
|
@@ -36,7 +36,7 @@ const debugLogger = createLogger('cli');
|
|
|
36
36
|
const networkName = getActiveNetworkName(networkValue);
|
|
37
37
|
await enrichEnvironmentWithNetworkConfig(networkName);
|
|
38
38
|
enrichEnvironmentWithChainName(networkName);
|
|
39
|
-
const cliVersion =
|
|
39
|
+
const cliVersion = getPackageVersion() ?? 'unknown';
|
|
40
40
|
let program = new Command('aztec');
|
|
41
41
|
program.description('Aztec command line interface').version(cliVersion).enablePositionalOptions();
|
|
42
42
|
program = injectAztecCommands(program, userLog, debugLogger);
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfYWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2F6dGVjX3N0YXJ0X2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFhM0Qsd0JBQXNCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBeUlqRiJ9
|
|
@@ -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":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAa3D,wBAAsB,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAyIjF"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { getActiveNetworkName } from '@aztec/foundation/config';
|
|
1
2
|
import { createNamespacedSafeJsonRpcServer, getApiKeyAuthMiddleware, startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
2
3
|
import { AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
|
|
4
|
+
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
3
5
|
import { getVersioningMiddleware } from '@aztec/stdlib/versioning';
|
|
4
6
|
import { getOtelJsonRpcPropagationMiddleware } from '@aztec/telemetry-client';
|
|
5
7
|
import { createLocalNetwork } from '../local-network/index.js';
|
|
6
8
|
import { github, splash } from '../splash.js';
|
|
7
9
|
import { resolveAdminApiKey } from './admin_api_key_store.js';
|
|
8
|
-
import { getCliVersion } from './release_version.js';
|
|
9
10
|
import { extractNamespacedOptions, installSignalHandlers } from './util.js';
|
|
10
11
|
import { getVersions } from './versioning.js';
|
|
11
12
|
export async function aztecStart(options, userLog, debugLogger) {
|
|
@@ -15,7 +16,7 @@ export async function aztecStart(options, userLog, debugLogger) {
|
|
|
15
16
|
const adminServices = {};
|
|
16
17
|
let config = undefined;
|
|
17
18
|
if (options.localNetwork) {
|
|
18
|
-
const cliVersion =
|
|
19
|
+
const cliVersion = getPackageVersion() ?? 'unknown';
|
|
19
20
|
const localNetwork = extractNamespacedOptions(options, 'local-network');
|
|
20
21
|
localNetwork.testAccounts = true;
|
|
21
22
|
userLog(`${splash}\n${github}\n\n`);
|
|
@@ -44,7 +45,8 @@ export async function aztecStart(options, userLog, debugLogger) {
|
|
|
44
45
|
}
|
|
45
46
|
if (options.node) {
|
|
46
47
|
const { startNode } = await import('./cmds/start_node.js');
|
|
47
|
-
|
|
48
|
+
const networkName = getActiveNetworkName(options.network);
|
|
49
|
+
({ config } = await startNode(options, signalHandlers, services, adminServices, userLog, networkName));
|
|
48
50
|
} else if (options.bot) {
|
|
49
51
|
const { startBot } = await import('./cmds/start_bot.js');
|
|
50
52
|
await startBot(options, signalHandlers, services, userLog);
|
|
@@ -14,4 +14,4 @@ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfb3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9henRlY19zdGFydF9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxLQUFLLGFBQWEsRUFDbEIsS0FBSyxNQUFNLEVBSVosTUFBTSwwQkFBMEIsQ0FBQztBQWVsQyxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFlBQVksRUFBRSxHQUFHLENBQUM7SUFDbEIsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLE1BQU0sQ0FBQztJQUNwQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN4QixRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEtBQUssR0FBRyxDQUFDO0NBQ2pDO0FBRUQsZUFBTyxNQUFNLFVBQVUsMEZBb0J0QixDQUFDO0FBdUJGLGVBQU8sTUFBTSxnQkFBZ0IsVUFZNUIsQ0FBQztBQUVGLGVBQU8sTUFBTSxZQUFZLFlBQVksQ0FBQztBQUd0QyxlQUFPLE1BQU0saUJBQWlCLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQXNPbEUsQ0FBQyJ9
|
|
@@ -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,0FAoBtB,CAAC;AAuBF,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;
|
|
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,0FAoBtB,CAAC;AAuBF,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"}
|
|
@@ -76,8 +76,7 @@ export const aztecStartOptions = {
|
|
|
76
76
|
defaultValue: undefined,
|
|
77
77
|
env: 'NETWORK'
|
|
78
78
|
},
|
|
79
|
-
configToFlag('--
|
|
80
|
-
configToFlag('--auto-update-url', sharedNodeConfigMappings.autoUpdateUrl),
|
|
79
|
+
configToFlag('--enable-version-check', sharedNodeConfigMappings.enableVersionCheck),
|
|
81
80
|
configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
|
|
82
81
|
configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls),
|
|
83
82
|
configToFlag('--fisherman-mode', sharedNodeConfigMappings.fishermanMode)
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type AztecNodeConfig } from '@aztec/aztec-node';
|
|
2
|
+
import { type NetworkNames } from '@aztec/foundation/config';
|
|
2
3
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
3
4
|
import type { LogFn } from '@aztec/foundation/log';
|
|
4
|
-
export declare function startNode(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, adminServices: NamespacedApiHandlers, userLog: LogFn): Promise<{
|
|
5
|
+
export declare function startNode(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, adminServices: NamespacedApiHandlers, userLog: LogFn, networkName: NetworkNames): Promise<{
|
|
5
6
|
config: AztecNodeConfig;
|
|
6
7
|
}>;
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUE2QyxNQUFNLG1CQUFtQixDQUFDO0FBTXBHLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBRTFFLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUE4Rm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssRUFDZCxXQUFXLEVBQUUsWUFBWSxHQUN4QixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQWdMdEMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,mBAAmB,CAAC;AAMpG,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA8FnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,KAAK,EACd,WAAW,EAAE,YAAY,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CAgLtC"}
|
|
@@ -11,6 +11,7 @@ import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
|
|
|
11
11
|
import { sleep } from '@aztec/foundation/sleep';
|
|
12
12
|
import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
|
|
13
13
|
import { allPxeConfigMappings } from '@aztec/pxe/config';
|
|
14
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
14
15
|
import { AztecNodeAdminApiSchema, AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
|
|
15
16
|
import { P2PApiSchema, ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
16
17
|
import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
|
|
@@ -18,7 +19,7 @@ import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
|
18
19
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
19
20
|
import Koa from 'koa';
|
|
20
21
|
import { createAztecNode } from '../../local-network/index.js';
|
|
21
|
-
import { extractNamespacedOptions, extractRelevantOptions, preloadCrsDataForVerifying,
|
|
22
|
+
import { extractNamespacedOptions, extractRelevantOptions, preloadCrsDataForVerifying, setupVersionChecker } from '../util.js';
|
|
22
23
|
import { getVersions } from '../versioning.js';
|
|
23
24
|
import { startProverBroker } from './start_prover_broker.js';
|
|
24
25
|
const ROLLUP_POLL_INTERVAL_MS = 600_000;
|
|
@@ -68,7 +69,7 @@ const ROLLUP_POLL_INTERVAL_MS = 600_000;
|
|
|
68
69
|
await new Promise((resolve, reject)=>standbyServer.close((err)=>err ? reject(err) : resolve()));
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
|
-
export async function startNode(options, signalHandlers, services, adminServices, userLog) {
|
|
72
|
+
export async function startNode(options, signalHandlers, services, adminServices, userLog, networkName) {
|
|
72
73
|
// All options set from environment variables
|
|
73
74
|
const configFromEnvVars = getConfigEnvVars();
|
|
74
75
|
// Extract relevant options from command line arguments
|
|
@@ -118,7 +119,8 @@ export async function startNode(options, signalHandlers, services, adminServices
|
|
|
118
119
|
const sponsoredFPCAccounts = nodeConfig.sponsoredFPC ? [
|
|
119
120
|
await getSponsoredFPCAddress()
|
|
120
121
|
] : [];
|
|
121
|
-
const
|
|
122
|
+
const prefundAddresses = (nodeConfig.prefundAddresses ?? []).map((a)=>AztecAddress.fromString(a));
|
|
123
|
+
const initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts).concat(prefundAddresses);
|
|
122
124
|
userLog(`Initial funded accounts: ${initialFundedAccounts.map((a)=>a.toString()).join(', ')}`);
|
|
123
125
|
const { genesisArchiveRoot, prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
|
|
124
126
|
userLog(`Genesis archive root: ${genesisArchiveRoot.toString()}`);
|
|
@@ -215,10 +217,12 @@ export async function startNode(options, signalHandlers, services, adminServices
|
|
|
215
217
|
});
|
|
216
218
|
await addBot(options, signalHandlers, services, wallet, node, telemetry, undefined);
|
|
217
219
|
}
|
|
218
|
-
if (nodeConfig.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
if (nodeConfig.enableVersionCheck && networkName !== 'local') {
|
|
221
|
+
const cacheDir = process.env.DATA_DIRECTORY ? `${process.env.DATA_DIRECTORY}/cache` : undefined;
|
|
222
|
+
try {
|
|
223
|
+
await setupVersionChecker(networkName, followsCanonicalRollup, getPublicClient(nodeConfig), signalHandlers, cacheDir);
|
|
224
|
+
} catch {
|
|
225
|
+
/* no-op */ }
|
|
222
226
|
}
|
|
223
227
|
return {
|
|
224
228
|
config: nodeConfig
|
|
@@ -6,4 +6,4 @@ export declare function startProverBroker(options: any, signalHandlers: (() => P
|
|
|
6
6
|
broker: ProvingJobBroker;
|
|
7
7
|
config: ProverBrokerConfig;
|
|
8
8
|
}>;
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2Jyb2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X3Byb3Zlcl9icm9rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBS3hFLHdCQUFzQixpQkFBaUIsQ0FDckMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUE7Q0FBRSxDQUFDLENBbUNuRSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_prover_broker.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_broker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start_prover_broker.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_broker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKxE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC,CAmCnE"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { getL1Config } from '@aztec/cli/config';
|
|
2
|
-
import { getPublicClient } from '@aztec/ethereum/client';
|
|
3
2
|
import { ProvingJobBrokerSchema, ProvingJobBrokerSchemaWithDebug, createAndStartProvingBroker, proverBrokerConfigMappings } from '@aztec/prover-client/broker';
|
|
4
3
|
import { getProverNodeBrokerConfigFromEnv } from '@aztec/prover-node';
|
|
5
4
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
6
|
-
import { extractRelevantOptions
|
|
5
|
+
import { extractRelevantOptions } from '../util.js';
|
|
7
6
|
export async function startProverBroker(options, signalHandlers, services, userLog) {
|
|
8
7
|
if (options.node || options.sequencer || options.pxe || options.p2pBootstrap || options.txe) {
|
|
9
8
|
userLog(`Starting a prover broker with --node, --sequencer, --pxe, --p2p-bootstrap, or --txe is not supported.`);
|
|
@@ -16,15 +15,11 @@ export async function startProverBroker(options, signalHandlers, services, userL
|
|
|
16
15
|
if (!config.l1Contracts.registryAddress || config.l1Contracts.registryAddress.isZero()) {
|
|
17
16
|
throw new Error('L1 registry address is required to start Aztec Node without --deploy-aztec-contracts option');
|
|
18
17
|
}
|
|
19
|
-
const followsCanonicalRollup = typeof config.rollupVersion !== 'number';
|
|
20
18
|
const { addresses, config: rollupConfig } = await getL1Config(config.l1Contracts.registryAddress, config.l1RpcUrls, config.l1ChainId, config.rollupVersion);
|
|
21
19
|
config.l1Contracts = addresses;
|
|
22
20
|
config.rollupVersion = rollupConfig.rollupVersion;
|
|
23
21
|
const client = await initTelemetryClient(getTelemetryClientConfig());
|
|
24
22
|
const broker = await createAndStartProvingBroker(config, client);
|
|
25
|
-
if (options.autoUpdate !== 'disabled' && options.autoUpdateUrl) {
|
|
26
|
-
await setupUpdateMonitor(options.autoUpdate, new URL(options.autoUpdateUrl), followsCanonicalRollup, getPublicClient(config), config.l1Contracts.registryAddress, signalHandlers);
|
|
27
|
-
}
|
|
28
23
|
services.proverBroker = [
|
|
29
24
|
broker,
|
|
30
25
|
config.proverBrokerDebugReplayEnabled ? ProvingJobBrokerSchemaWithDebug : ProvingJobBrokerSchema
|
package/dest/cli/util.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import type { AztecNodeConfig } from '@aztec/aztec-node';
|
|
2
2
|
import type { AccountManager } from '@aztec/aztec.js/wallet';
|
|
3
3
|
import type { ViemClient } from '@aztec/ethereum/types';
|
|
4
|
-
import type { ConfigMappingsType } from '@aztec/foundation/config';
|
|
5
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
import type { ConfigMappingsType, NetworkNames } from '@aztec/foundation/config';
|
|
6
5
|
import { type LogFn } from '@aztec/foundation/log';
|
|
7
|
-
import type { SharedNodeConfig } from '@aztec/node-lib/config';
|
|
8
6
|
import type { ProverConfig } from '@aztec/stdlib/interfaces/server';
|
|
9
7
|
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
10
8
|
import type { Command } from 'commander';
|
|
@@ -63,6 +61,6 @@ export declare function preloadCrsDataForVerifying({ realProofs }: Pick<AztecNod
|
|
|
63
61
|
* @param log - Logging function
|
|
64
62
|
*/
|
|
65
63
|
export declare function preloadCrsDataForServerSideProving({ realProofs }: Pick<ProverConfig, 'realProofs'>, log: LogFn): Promise<void>;
|
|
66
|
-
export declare function
|
|
64
|
+
export declare function setupVersionChecker(network: NetworkNames, followsCanonicalRollup: boolean, publicClient: ViemClient, signalHandlers: Array<() => Promise<void>>, cacheDir?: string): Promise<void>;
|
|
67
65
|
export declare function stringifyConfig(config: object): string;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzdELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHekMsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsMEJBQWtCLFFBQVE7SUFDeEIsT0FBTyxJQUFJO0lBQ1gsS0FBSyxJQUFJO0lBQ1QsY0FBYyxLQUFLO0lBQ25CLGVBQWUsS0FBSztJQUVwQixNQUFNLE1BQU07SUFDWixNQUFNLE1BQU07SUFDWixPQUFPLE1BQU07SUFDYixPQUFPLE1BQU07Q0FDZDtBQUdELHdCQUFnQixRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FnQjFHO0FBRUQsd0JBQWdCLGNBQWMsSUFBSSxPQUFPLENBRXhDO0FBRUQsZUFBTyxNQUFNLHFCQUFxQixrRUFhakMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxxQkF5QmhHO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxRQUFRLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBaUIvRjtBQUVELHdCQUFnQixjQUFjLENBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxlQUFlLEVBQUUsTUFBTSxFQUN2QixnQkFBZ0IsRUFBRSxNQUFNLEdBQ3ZCLE1BQU0sQ0FLUjtBQWlDRCxlQUFPLE1BQU0sVUFBVSxxREFTdEIsQ0FBQztBQUVGLGVBQU8sTUFBTSx1QkFBdUIsY0F5Qm5DLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsMEVBU3BDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHNCQUFzQixHQUFJLENBQUMsd0ZBa0N2QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FDOUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxFQUNuRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0Isa0NBQWtDLENBQ3RELEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFDaEQsR0FBRyxFQUFFLEtBQUssR0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBS2Y7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLHNCQUFzQixFQUFFLE9BQU8sRUFDL0IsWUFBWSxFQUFFLFVBQVUsRUFDeEIsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQyxRQUFRLENBQUMsRUFBRSxNQUFNLEdBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E4Q2Y7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUl0RCJ9
|
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;AAG7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,0BAA0B,CAAC;AAEpF,0BAAkB,QAAQ;IACxB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,cAAc,KAAK;IACnB,eAAe,KAAK;IAEpB,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,OAAO,MAAM;IACb,OAAO,MAAM;CACd;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAgB1G;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,eAAO,MAAM,qBAAqB,kEAajC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,qBAyBhG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB/F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAiCD,eAAO,MAAM,UAAU,qDAStB,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAyBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0EASpC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,wFAkCvC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EACnD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;GAIG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAChD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,YAAY,EACrB,sBAAsB,EAAE,OAAO,EAC/B,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAC1C,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD"}
|
package/dest/cli/util.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { getNetworkConfig } from '@aztec/cli/config';
|
|
2
|
+
import { RegistryContract } from '@aztec/ethereum/contracts';
|
|
1
3
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
2
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
5
|
+
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
4
6
|
import chalk from 'chalk';
|
|
5
7
|
import { aztecStartOptions } from './aztec_start_options.js';
|
|
6
8
|
export var ExitCode = /*#__PURE__*/ function(ExitCode) {
|
|
@@ -237,92 +239,49 @@ export const printAztecStartHelpText = ()=>{
|
|
|
237
239
|
]);
|
|
238
240
|
}
|
|
239
241
|
}
|
|
240
|
-
export async function
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
if (autoUpdateMode === 'config' || autoUpdateMode === 'config-and-version') {
|
|
258
|
-
logger.info(`New rollup version detected. Please restart the node`, {
|
|
259
|
-
latestVersion,
|
|
260
|
-
currentVersion
|
|
261
|
-
});
|
|
262
|
-
await shutdown(logger.info, 78, signalHandlers);
|
|
263
|
-
} else if (autoUpdateMode === 'notify') {
|
|
264
|
-
logger.warn(`New rollup detected. Please restart the node`, {
|
|
265
|
-
latestVersion,
|
|
266
|
-
currentVersion
|
|
267
|
-
});
|
|
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;
|
|
268
257
|
}
|
|
269
258
|
});
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
} else if (autoUpdateMode === 'notify') {
|
|
282
|
-
logger.info(`New node version detected. Please update and restart the node`, {
|
|
283
|
-
latestVersion,
|
|
284
|
-
currentVersion
|
|
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
|
|
285
270
|
});
|
|
286
271
|
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
checker.on('
|
|
272
|
+
}
|
|
273
|
+
const checker = new VersionChecker(checks, 600_000, logger);
|
|
274
|
+
checker.on('newVersion', ({ name, latestVersion, currentVersion })=>{
|
|
290
275
|
if (isShuttingDown()) {
|
|
291
276
|
return;
|
|
292
277
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
} catch (err) {
|
|
298
|
-
logger.warn('Failed to update config', {
|
|
299
|
-
err
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
// don't notify on these config changes
|
|
304
|
-
});
|
|
305
|
-
checker.on('updatePublicTelemetryConfig', (config)=>{
|
|
306
|
-
if (autoUpdateMode === 'config' || autoUpdateMode === 'config-and-version') {
|
|
307
|
-
logger.warn(`Public telemetry config change detected. Updating telemetry client`, config);
|
|
308
|
-
try {
|
|
309
|
-
const publicIncludeMetrics = config.publicIncludeMetrics;
|
|
310
|
-
if (Array.isArray(publicIncludeMetrics) && publicIncludeMetrics.every((m)=>typeof m === 'string')) {
|
|
311
|
-
getTelemetryClient().setExportedPublicTelemetry(publicIncludeMetrics);
|
|
312
|
-
}
|
|
313
|
-
const publicMetricsCollectFrom = config.publicMetricsCollectFrom;
|
|
314
|
-
if (Array.isArray(publicMetricsCollectFrom) && publicMetricsCollectFrom.every((m)=>typeof m === 'string')) {
|
|
315
|
-
getTelemetryClient().setPublicTelemetryCollectFrom(publicMetricsCollectFrom);
|
|
316
|
-
}
|
|
317
|
-
} catch (err) {
|
|
318
|
-
logger.warn('Failed to update config', {
|
|
319
|
-
err
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
// don't notify on these config changes
|
|
278
|
+
logger.warn(`New ${name} version available`, {
|
|
279
|
+
latestVersion,
|
|
280
|
+
currentVersion
|
|
281
|
+
});
|
|
324
282
|
});
|
|
325
283
|
checker.start();
|
|
284
|
+
signalHandlers.push(()=>checker.stop());
|
|
326
285
|
}
|
|
327
286
|
export function stringifyConfig(config) {
|
|
328
287
|
return Object.entries(config).map(([key, value])=>`${key}=${jsonStringify(value)}`).join(' ');
|
|
@@ -70,4 +70,4 @@ export declare function createAztecNode(config?: Partial<AztecNodeConfig>, deps?
|
|
|
70
70
|
}, options?: {
|
|
71
71
|
prefilledPublicData?: PublicDataTreeLeaf[];
|
|
72
72
|
}): Promise<AztecNodeService>;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbmV0d29yay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvbG9jYWwtbmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFvQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQVN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUt6RSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUdyQixNQUFNLHlCQUF5QixDQUFDO0FBS2pDLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBMkQsTUFBTSxNQUFNLENBQUM7QUFlekY7Ozs7R0FJRztBQUNILHdCQUFzQixtQkFBbUIsQ0FDdkMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsVUFBVSxFQUFFLEdBQUcsRUFDZixJQUFJLEdBQUU7SUFDSixrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN4Qiw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlA7QUFFRCw4QkFBOEI7QUFDOUIsTUFBTSxNQUFNLGtCQUFrQixHQUFHLGVBQWUsR0FBRztJQUNqRCwwREFBMEQ7SUFDMUQsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQiw2REFBNkQ7SUFDN0QsWUFBWSxFQUFFLE9BQU8sQ0FBQztDQUN2QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFzQixrQkFBa0IsQ0FBQyxNQUFNLHlDQUFrQyxFQUFFLE9BQU8sRUFBRSxLQUFLOzs7R0FtSmhHO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxHQUFFLE9BQU8sQ0FBQyxlQUFlLENBQU0sRUFDckMsSUFBSSxHQUFFO0lBQ0osU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQzVCLFVBQVUsQ0FBQyxFQUFFLG1CQUFtQixDQUFDO0lBQ2pDLFlBQVksQ0FBQyxFQUFFLFlBQVksQ0FBQztJQUM1QixZQUFZLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztDQUM1QixFQUNOLE9BQU8sR0FBRTtJQUFFLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQTtDQUFPLDZCQWU3RCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,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;AASvF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"local-network.d.ts","sourceRoot":"","sources":["../../src/local-network/local-network.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,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;AASvF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAoB,MAAM,yBAAyB,CAAC;AAKzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,KAAK,GAAG,EAA2D,MAAM,MAAM,CAAC;AAezF;;;;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;;;;;;;;;;;;;;;;;;;;;;;GAoBP;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;;;GAmJhG;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,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAO,6BAe7D"}
|
|
@@ -18,6 +18,7 @@ import { TestDateProvider } from '@aztec/foundation/timer';
|
|
|
18
18
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
19
19
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
20
20
|
import { SequencerState } from '@aztec/sequencer-client';
|
|
21
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
21
22
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
22
23
|
import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
23
24
|
import { deployFundedSchnorrAccounts } from '@aztec/wallets/testing';
|
|
@@ -98,11 +99,15 @@ const localAnvil = foundry;
|
|
|
98
99
|
})();
|
|
99
100
|
const bananaFPC = await getBananaFPCAddress(initialAccounts);
|
|
100
101
|
const sponsoredFPC = await getSponsoredFPCAddress();
|
|
101
|
-
const
|
|
102
|
+
const prefundAddresses = (aztecNodeConfig.prefundAddresses ?? []).map((a)=>AztecAddress.fromString(a));
|
|
103
|
+
const fundedAddresses = [
|
|
102
104
|
...initialAccounts.map((a)=>a.address),
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
...initialAccounts.length ? [
|
|
106
|
+
bananaFPC,
|
|
107
|
+
sponsoredFPC
|
|
108
|
+
] : [],
|
|
109
|
+
...prefundAddresses
|
|
110
|
+
];
|
|
106
111
|
const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(fundedAddresses);
|
|
107
112
|
const dateProvider = new TestDateProvider();
|
|
108
113
|
let cheatcodes;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec",
|
|
3
|
-
"version": "4.0.4-rc.
|
|
3
|
+
"version": "4.0.4-rc.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -28,39 +28,39 @@
|
|
|
28
28
|
"../package.common.json"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aztec/accounts": "4.0.4-rc.
|
|
32
|
-
"@aztec/archiver": "4.0.4-rc.
|
|
33
|
-
"@aztec/aztec-faucet": "4.0.4-rc.
|
|
34
|
-
"@aztec/aztec-node": "4.0.4-rc.
|
|
35
|
-
"@aztec/aztec.js": "4.0.4-rc.
|
|
36
|
-
"@aztec/bb-prover": "4.0.4-rc.
|
|
37
|
-
"@aztec/bb.js": "4.0.4-rc.
|
|
38
|
-
"@aztec/blob-client": "4.0.4-rc.
|
|
39
|
-
"@aztec/bot": "4.0.4-rc.
|
|
40
|
-
"@aztec/builder": "4.0.4-rc.
|
|
41
|
-
"@aztec/cli": "4.0.4-rc.
|
|
42
|
-
"@aztec/constants": "4.0.4-rc.
|
|
43
|
-
"@aztec/entrypoints": "4.0.4-rc.
|
|
44
|
-
"@aztec/ethereum": "4.0.4-rc.
|
|
45
|
-
"@aztec/foundation": "4.0.4-rc.
|
|
46
|
-
"@aztec/kv-store": "4.0.4-rc.
|
|
47
|
-
"@aztec/l1-artifacts": "4.0.4-rc.
|
|
48
|
-
"@aztec/node-lib": "4.0.4-rc.
|
|
49
|
-
"@aztec/noir-contracts.js": "4.0.4-rc.
|
|
50
|
-
"@aztec/noir-protocol-circuits-types": "4.0.4-rc.
|
|
51
|
-
"@aztec/p2p": "4.0.4-rc.
|
|
52
|
-
"@aztec/p2p-bootstrap": "4.0.4-rc.
|
|
53
|
-
"@aztec/protocol-contracts": "4.0.4-rc.
|
|
54
|
-
"@aztec/prover-client": "4.0.4-rc.
|
|
55
|
-
"@aztec/prover-node": "4.0.4-rc.
|
|
56
|
-
"@aztec/pxe": "4.0.4-rc.
|
|
57
|
-
"@aztec/sequencer-client": "4.0.4-rc.
|
|
58
|
-
"@aztec/stdlib": "4.0.4-rc.
|
|
59
|
-
"@aztec/telemetry-client": "4.0.4-rc.
|
|
60
|
-
"@aztec/txe": "4.0.4-rc.
|
|
61
|
-
"@aztec/validator-ha-signer": "4.0.4-rc.
|
|
62
|
-
"@aztec/wallets": "4.0.4-rc.
|
|
63
|
-
"@aztec/world-state": "4.0.4-rc.
|
|
31
|
+
"@aztec/accounts": "4.0.4-rc.4",
|
|
32
|
+
"@aztec/archiver": "4.0.4-rc.4",
|
|
33
|
+
"@aztec/aztec-faucet": "4.0.4-rc.4",
|
|
34
|
+
"@aztec/aztec-node": "4.0.4-rc.4",
|
|
35
|
+
"@aztec/aztec.js": "4.0.4-rc.4",
|
|
36
|
+
"@aztec/bb-prover": "4.0.4-rc.4",
|
|
37
|
+
"@aztec/bb.js": "4.0.4-rc.4",
|
|
38
|
+
"@aztec/blob-client": "4.0.4-rc.4",
|
|
39
|
+
"@aztec/bot": "4.0.4-rc.4",
|
|
40
|
+
"@aztec/builder": "4.0.4-rc.4",
|
|
41
|
+
"@aztec/cli": "4.0.4-rc.4",
|
|
42
|
+
"@aztec/constants": "4.0.4-rc.4",
|
|
43
|
+
"@aztec/entrypoints": "4.0.4-rc.4",
|
|
44
|
+
"@aztec/ethereum": "4.0.4-rc.4",
|
|
45
|
+
"@aztec/foundation": "4.0.4-rc.4",
|
|
46
|
+
"@aztec/kv-store": "4.0.4-rc.4",
|
|
47
|
+
"@aztec/l1-artifacts": "4.0.4-rc.4",
|
|
48
|
+
"@aztec/node-lib": "4.0.4-rc.4",
|
|
49
|
+
"@aztec/noir-contracts.js": "4.0.4-rc.4",
|
|
50
|
+
"@aztec/noir-protocol-circuits-types": "4.0.4-rc.4",
|
|
51
|
+
"@aztec/p2p": "4.0.4-rc.4",
|
|
52
|
+
"@aztec/p2p-bootstrap": "4.0.4-rc.4",
|
|
53
|
+
"@aztec/protocol-contracts": "4.0.4-rc.4",
|
|
54
|
+
"@aztec/prover-client": "4.0.4-rc.4",
|
|
55
|
+
"@aztec/prover-node": "4.0.4-rc.4",
|
|
56
|
+
"@aztec/pxe": "4.0.4-rc.4",
|
|
57
|
+
"@aztec/sequencer-client": "4.0.4-rc.4",
|
|
58
|
+
"@aztec/stdlib": "4.0.4-rc.4",
|
|
59
|
+
"@aztec/telemetry-client": "4.0.4-rc.4",
|
|
60
|
+
"@aztec/txe": "4.0.4-rc.4",
|
|
61
|
+
"@aztec/validator-ha-signer": "4.0.4-rc.4",
|
|
62
|
+
"@aztec/wallets": "4.0.4-rc.4",
|
|
63
|
+
"@aztec/world-state": "4.0.4-rc.4",
|
|
64
64
|
"@types/chalk": "^2.2.0",
|
|
65
65
|
"abitype": "^0.8.11",
|
|
66
66
|
"chalk": "^5.3.0",
|
package/src/bin/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ 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
|
|
|
15
16
|
import { Command } from 'commander';
|
|
16
17
|
|
|
@@ -18,7 +19,6 @@ import { injectCompileCommand } from '../cli/cmds/compile.js';
|
|
|
18
19
|
import { injectMigrateCommand } from '../cli/cmds/migrate_ha_db.js';
|
|
19
20
|
import { injectProfileCommand } from '../cli/cmds/profile.js';
|
|
20
21
|
import { injectAztecCommands } from '../cli/index.js';
|
|
21
|
-
import { getCliVersion } from '../cli/release_version.js';
|
|
22
22
|
|
|
23
23
|
const NETWORK_FLAG = 'network';
|
|
24
24
|
|
|
@@ -47,7 +47,7 @@ async function main() {
|
|
|
47
47
|
await enrichEnvironmentWithNetworkConfig(networkName);
|
|
48
48
|
enrichEnvironmentWithChainName(networkName);
|
|
49
49
|
|
|
50
|
-
const cliVersion =
|
|
50
|
+
const cliVersion = getPackageVersion() ?? 'unknown';
|
|
51
51
|
let program = new Command('aztec');
|
|
52
52
|
program.description('Aztec command line interface').version(cliVersion).enablePositionalOptions();
|
|
53
53
|
program = injectAztecCommands(program, userLog, debugLogger);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getActiveNetworkName } from '@aztec/foundation/config';
|
|
1
2
|
import {
|
|
2
3
|
type NamespacedApiHandlers,
|
|
3
4
|
createNamespacedSafeJsonRpcServer,
|
|
@@ -7,13 +8,13 @@ import {
|
|
|
7
8
|
import type { LogFn, Logger } from '@aztec/foundation/log';
|
|
8
9
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
9
10
|
import { AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
|
|
11
|
+
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
10
12
|
import { getVersioningMiddleware } from '@aztec/stdlib/versioning';
|
|
11
13
|
import { getOtelJsonRpcPropagationMiddleware } from '@aztec/telemetry-client';
|
|
12
14
|
|
|
13
15
|
import { createLocalNetwork } from '../local-network/index.js';
|
|
14
16
|
import { github, splash } from '../splash.js';
|
|
15
17
|
import { resolveAdminApiKey } from './admin_api_key_store.js';
|
|
16
|
-
import { getCliVersion } from './release_version.js';
|
|
17
18
|
import { extractNamespacedOptions, installSignalHandlers } from './util.js';
|
|
18
19
|
import { getVersions } from './versioning.js';
|
|
19
20
|
|
|
@@ -25,7 +26,7 @@ export async function aztecStart(options: any, userLog: LogFn, debugLogger: Logg
|
|
|
25
26
|
let config: ChainConfig | undefined = undefined;
|
|
26
27
|
|
|
27
28
|
if (options.localNetwork) {
|
|
28
|
-
const cliVersion =
|
|
29
|
+
const cliVersion = getPackageVersion() ?? 'unknown';
|
|
29
30
|
const localNetwork = extractNamespacedOptions(options, 'local-network');
|
|
30
31
|
localNetwork.testAccounts = true;
|
|
31
32
|
userLog(`${splash}\n${github}\n\n`);
|
|
@@ -57,7 +58,8 @@ export async function aztecStart(options: any, userLog: LogFn, debugLogger: Logg
|
|
|
57
58
|
|
|
58
59
|
if (options.node) {
|
|
59
60
|
const { startNode } = await import('./cmds/start_node.js');
|
|
60
|
-
|
|
61
|
+
const networkName = getActiveNetworkName(options.network);
|
|
62
|
+
({ config } = await startNode(options, signalHandlers, services, adminServices, userLog, networkName));
|
|
61
63
|
} else if (options.bot) {
|
|
62
64
|
const { startBot } = await import('./cmds/start_bot.js');
|
|
63
65
|
await startBot(options, signalHandlers, services, userLog);
|
|
@@ -105,8 +105,7 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
|
|
|
105
105
|
env: 'NETWORK',
|
|
106
106
|
},
|
|
107
107
|
|
|
108
|
-
configToFlag('--
|
|
109
|
-
configToFlag('--auto-update-url', sharedNodeConfigMappings.autoUpdateUrl),
|
|
108
|
+
configToFlag('--enable-version-check', sharedNodeConfigMappings.enableVersionCheck),
|
|
110
109
|
|
|
111
110
|
configToFlag('--sync-mode', sharedNodeConfigMappings.syncMode),
|
|
112
111
|
configToFlag('--snapshots-urls', sharedNodeConfigMappings.snapshotsUrls),
|
|
@@ -5,8 +5,8 @@ import { getSponsoredFPCAddress } from '@aztec/cli/cli-utils';
|
|
|
5
5
|
import { getL1Config } from '@aztec/cli/config';
|
|
6
6
|
import { getPublicClient } from '@aztec/ethereum/client';
|
|
7
7
|
import { RegistryContract, RollupContract } from '@aztec/ethereum/contracts';
|
|
8
|
-
import { SecretValue } from '@aztec/foundation/config';
|
|
9
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
|
+
import { type NetworkNames, SecretValue } from '@aztec/foundation/config';
|
|
9
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
10
10
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
11
11
|
import { startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
12
12
|
import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
|
|
@@ -14,6 +14,7 @@ import type { LogFn } from '@aztec/foundation/log';
|
|
|
14
14
|
import { sleep } from '@aztec/foundation/sleep';
|
|
15
15
|
import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
|
|
16
16
|
import { type CliPXEOptions, type PXEConfig, allPxeConfigMappings } from '@aztec/pxe/config';
|
|
17
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
17
18
|
import { AztecNodeAdminApiSchema, AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
|
|
18
19
|
import { P2PApiSchema, ProverNodeApiSchema, type ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
|
|
19
20
|
import {
|
|
@@ -32,7 +33,7 @@ import {
|
|
|
32
33
|
extractNamespacedOptions,
|
|
33
34
|
extractRelevantOptions,
|
|
34
35
|
preloadCrsDataForVerifying,
|
|
35
|
-
|
|
36
|
+
setupVersionChecker,
|
|
36
37
|
} from '../util.js';
|
|
37
38
|
import { getVersions } from '../versioning.js';
|
|
38
39
|
import { startProverBroker } from './start_prover_broker.js';
|
|
@@ -109,6 +110,7 @@ export async function startNode(
|
|
|
109
110
|
services: NamespacedApiHandlers,
|
|
110
111
|
adminServices: NamespacedApiHandlers,
|
|
111
112
|
userLog: LogFn,
|
|
113
|
+
networkName: NetworkNames,
|
|
112
114
|
): Promise<{ config: AztecNodeConfig }> {
|
|
113
115
|
// All options set from environment variables
|
|
114
116
|
const configFromEnvVars = getConfigEnvVars();
|
|
@@ -154,7 +156,8 @@ export async function startNode(
|
|
|
154
156
|
|
|
155
157
|
const testAccounts = nodeConfig.testAccounts ? (await getInitialTestAccountsData()).map(a => a.address) : [];
|
|
156
158
|
const sponsoredFPCAccounts = nodeConfig.sponsoredFPC ? [await getSponsoredFPCAddress()] : [];
|
|
157
|
-
const
|
|
159
|
+
const prefundAddresses = (nodeConfig.prefundAddresses ?? []).map(a => AztecAddress.fromString(a));
|
|
160
|
+
const initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts).concat(prefundAddresses);
|
|
158
161
|
|
|
159
162
|
userLog(`Initial funded accounts: ${initialFundedAccounts.map(a => a.toString()).join(', ')}`);
|
|
160
163
|
|
|
@@ -268,16 +271,19 @@ export async function startNode(
|
|
|
268
271
|
await addBot(options, signalHandlers, services, wallet, node, telemetry, undefined);
|
|
269
272
|
}
|
|
270
273
|
|
|
271
|
-
if (nodeConfig.
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
274
|
+
if (nodeConfig.enableVersionCheck && networkName !== 'local') {
|
|
275
|
+
const cacheDir = process.env.DATA_DIRECTORY ? `${process.env.DATA_DIRECTORY}/cache` : undefined;
|
|
276
|
+
try {
|
|
277
|
+
await setupVersionChecker(
|
|
278
|
+
networkName,
|
|
279
|
+
followsCanonicalRollup,
|
|
280
|
+
getPublicClient(nodeConfig!),
|
|
281
|
+
signalHandlers,
|
|
282
|
+
cacheDir,
|
|
283
|
+
);
|
|
284
|
+
} catch {
|
|
285
|
+
/* no-op */
|
|
286
|
+
}
|
|
281
287
|
}
|
|
282
288
|
|
|
283
289
|
return { config: nodeConfig };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { getL1Config } from '@aztec/cli/config';
|
|
2
|
-
import { getPublicClient } from '@aztec/ethereum/client';
|
|
3
2
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
4
3
|
import type { LogFn } from '@aztec/foundation/log';
|
|
5
4
|
import {
|
|
@@ -13,7 +12,7 @@ import { getProverNodeBrokerConfigFromEnv } from '@aztec/prover-node';
|
|
|
13
12
|
import type { ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
|
|
14
13
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
15
14
|
|
|
16
|
-
import { extractRelevantOptions
|
|
15
|
+
import { extractRelevantOptions } from '../util.js';
|
|
17
16
|
|
|
18
17
|
export async function startProverBroker(
|
|
19
18
|
options: any,
|
|
@@ -35,7 +34,6 @@ export async function startProverBroker(
|
|
|
35
34
|
throw new Error('L1 registry address is required to start Aztec Node without --deploy-aztec-contracts option');
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
const followsCanonicalRollup = typeof config.rollupVersion !== 'number';
|
|
39
37
|
const { addresses, config: rollupConfig } = await getL1Config(
|
|
40
38
|
config.l1Contracts.registryAddress,
|
|
41
39
|
config.l1RpcUrls,
|
|
@@ -49,17 +47,6 @@ export async function startProverBroker(
|
|
|
49
47
|
const client = await initTelemetryClient(getTelemetryClientConfig());
|
|
50
48
|
const broker = await createAndStartProvingBroker(config, client);
|
|
51
49
|
|
|
52
|
-
if (options.autoUpdate !== 'disabled' && options.autoUpdateUrl) {
|
|
53
|
-
await setupUpdateMonitor(
|
|
54
|
-
options.autoUpdate,
|
|
55
|
-
new URL(options.autoUpdateUrl),
|
|
56
|
-
followsCanonicalRollup,
|
|
57
|
-
getPublicClient(config),
|
|
58
|
-
config.l1Contracts.registryAddress,
|
|
59
|
-
signalHandlers,
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
50
|
services.proverBroker = [
|
|
64
51
|
broker,
|
|
65
52
|
config.proverBrokerDebugReplayEnabled ? ProvingJobBrokerSchemaWithDebug : ProvingJobBrokerSchema,
|
package/src/cli/util.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import type { AztecNodeConfig } from '@aztec/aztec-node';
|
|
2
2
|
import type { AccountManager } from '@aztec/aztec.js/wallet';
|
|
3
|
+
import { getNetworkConfig } from '@aztec/cli/config';
|
|
4
|
+
import { RegistryContract } from '@aztec/ethereum/contracts';
|
|
3
5
|
import type { ViemClient } from '@aztec/ethereum/types';
|
|
4
|
-
import type { ConfigMappingsType } from '@aztec/foundation/config';
|
|
5
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
|
+
import type { ConfigMappingsType, NetworkNames } from '@aztec/foundation/config';
|
|
6
7
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
7
8
|
import { type LogFn, createLogger } from '@aztec/foundation/log';
|
|
8
|
-
import type { SharedNodeConfig } from '@aztec/node-lib/config';
|
|
9
9
|
import type { ProverConfig } from '@aztec/stdlib/interfaces/server';
|
|
10
|
-
import {
|
|
10
|
+
import { type VersionCheck, getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
11
11
|
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
12
12
|
|
|
13
13
|
import chalk from 'chalk';
|
|
14
14
|
import type { Command } from 'commander';
|
|
15
|
+
import type { Hex } from 'viem';
|
|
15
16
|
|
|
16
17
|
import { type AztecStartOption, aztecStartOptions } from './aztec_start_options.js';
|
|
17
18
|
|
|
@@ -290,92 +291,58 @@ export async function preloadCrsDataForServerSideProving(
|
|
|
290
291
|
}
|
|
291
292
|
}
|
|
292
293
|
|
|
293
|
-
export async function
|
|
294
|
-
|
|
295
|
-
updatesLocation: URL,
|
|
294
|
+
export async function setupVersionChecker(
|
|
295
|
+
network: NetworkNames,
|
|
296
296
|
followsCanonicalRollup: boolean,
|
|
297
297
|
publicClient: ViemClient,
|
|
298
|
-
registryContractAddress: EthAddress,
|
|
299
298
|
signalHandlers: Array<() => Promise<void>>,
|
|
300
|
-
|
|
301
|
-
) {
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
publicClient,
|
|
307
|
-
registryContractAddress,
|
|
308
|
-
});
|
|
299
|
+
cacheDir?: string,
|
|
300
|
+
): Promise<void> {
|
|
301
|
+
const networkConfig = await getNetworkConfig(network, cacheDir);
|
|
302
|
+
if (!networkConfig) {
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
309
305
|
|
|
310
|
-
|
|
311
|
-
checker.on('newRollupVersion', async ({ latestVersion, currentVersion }) => {
|
|
312
|
-
if (isShuttingDown()) {
|
|
313
|
-
return;
|
|
314
|
-
}
|
|
306
|
+
const { VersionChecker } = await import('@aztec/stdlib/update-checker');
|
|
315
307
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
return;
|
|
319
|
-
}
|
|
308
|
+
const logger = createLogger('version_check');
|
|
309
|
+
const registry = new RegistryContract(publicClient, networkConfig.registryAddress as Hex);
|
|
320
310
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
311
|
+
const checks: Array<VersionCheck> = [];
|
|
312
|
+
checks.push({
|
|
313
|
+
name: 'node',
|
|
314
|
+
currentVersion: getPackageVersion() ?? 'unknown',
|
|
315
|
+
getLatestVersion: async () => {
|
|
316
|
+
const cfg = await getNetworkConfig(network, cacheDir);
|
|
317
|
+
return cfg?.nodeVersion;
|
|
318
|
+
},
|
|
327
319
|
});
|
|
328
320
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
return;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
321
|
+
if (followsCanonicalRollup) {
|
|
322
|
+
const getLatestVersion = async () => {
|
|
323
|
+
const version = (await registry.getRollupVersions()).at(-1);
|
|
324
|
+
return version !== undefined ? String(version) : undefined;
|
|
325
|
+
};
|
|
326
|
+
const currentVersion = await getLatestVersion();
|
|
327
|
+
if (currentVersion !== undefined) {
|
|
328
|
+
checks.push({
|
|
329
|
+
name: 'rollup',
|
|
330
|
+
currentVersion,
|
|
331
|
+
getLatestVersion,
|
|
332
|
+
});
|
|
339
333
|
}
|
|
340
|
-
}
|
|
334
|
+
}
|
|
341
335
|
|
|
342
|
-
|
|
343
|
-
checker.on('
|
|
336
|
+
const checker = new VersionChecker(checks, 600_000, logger);
|
|
337
|
+
checker.on('newVersion', ({ name, latestVersion, currentVersion }) => {
|
|
344
338
|
if (isShuttingDown()) {
|
|
345
339
|
return;
|
|
346
340
|
}
|
|
347
341
|
|
|
348
|
-
|
|
349
|
-
logger.warn(`Config change detected. Updating node`, config);
|
|
350
|
-
try {
|
|
351
|
-
await updateNodeConfig(config);
|
|
352
|
-
} catch (err) {
|
|
353
|
-
logger.warn('Failed to update config', { err });
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
// don't notify on these config changes
|
|
357
|
-
});
|
|
358
|
-
|
|
359
|
-
checker.on('updatePublicTelemetryConfig', config => {
|
|
360
|
-
if (autoUpdateMode === 'config' || autoUpdateMode === 'config-and-version') {
|
|
361
|
-
logger.warn(`Public telemetry config change detected. Updating telemetry client`, config);
|
|
362
|
-
try {
|
|
363
|
-
const publicIncludeMetrics: unknown = (config as any).publicIncludeMetrics;
|
|
364
|
-
if (Array.isArray(publicIncludeMetrics) && publicIncludeMetrics.every(m => typeof m === 'string')) {
|
|
365
|
-
getTelemetryClient().setExportedPublicTelemetry(publicIncludeMetrics);
|
|
366
|
-
}
|
|
367
|
-
const publicMetricsCollectFrom: unknown = (config as any).publicMetricsCollectFrom;
|
|
368
|
-
if (Array.isArray(publicMetricsCollectFrom) && publicMetricsCollectFrom.every(m => typeof m === 'string')) {
|
|
369
|
-
getTelemetryClient().setPublicTelemetryCollectFrom(publicMetricsCollectFrom);
|
|
370
|
-
}
|
|
371
|
-
} catch (err) {
|
|
372
|
-
logger.warn('Failed to update config', { err });
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
// don't notify on these config changes
|
|
342
|
+
logger.warn(`New ${name} version available`, { latestVersion, currentVersion });
|
|
376
343
|
});
|
|
377
|
-
|
|
378
344
|
checker.start();
|
|
345
|
+
signalHandlers.push(() => checker.stop());
|
|
379
346
|
}
|
|
380
347
|
|
|
381
348
|
export function stringifyConfig(config: object): string {
|
|
@@ -19,6 +19,7 @@ import { DateProvider, TestDateProvider } from '@aztec/foundation/timer';
|
|
|
19
19
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
20
20
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
21
21
|
import { SequencerState } from '@aztec/sequencer-client';
|
|
22
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
22
23
|
import type { ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
|
|
23
24
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
24
25
|
import {
|
|
@@ -138,9 +139,12 @@ export async function createLocalNetwork(config: Partial<LocalNetworkConfig> = {
|
|
|
138
139
|
|
|
139
140
|
const bananaFPC = await getBananaFPCAddress(initialAccounts);
|
|
140
141
|
const sponsoredFPC = await getSponsoredFPCAddress();
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
const prefundAddresses = (aztecNodeConfig.prefundAddresses ?? []).map(a => AztecAddress.fromString(a));
|
|
143
|
+
const fundedAddresses = [
|
|
144
|
+
...initialAccounts.map(a => a.address),
|
|
145
|
+
...(initialAccounts.length ? [bananaFPC, sponsoredFPC] : []),
|
|
146
|
+
...prefundAddresses,
|
|
147
|
+
];
|
|
144
148
|
const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(fundedAddresses);
|
|
145
149
|
|
|
146
150
|
const dateProvider = new TestDateProvider();
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export declare const getCliVersion: () => any;
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZV92ZXJzaW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL3JlbGVhc2VfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxlQUFPLE1BQU0sYUFBYSxXQWV6QixDQUFDIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"release_version.d.ts","sourceRoot":"","sources":["../../src/cli/release_version.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,WAezB,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { fileURLToPath } from '@aztec/foundation/url';
|
|
2
|
-
import { readFileSync } from 'fs';
|
|
3
|
-
import { dirname, resolve } from 'path';
|
|
4
|
-
export const getCliVersion = ()=>{
|
|
5
|
-
const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
|
|
6
|
-
const cliVersion = JSON.parse(readFileSync(packageJsonPath).toString()).version;
|
|
7
|
-
// If the version is 0.1.0, this is a placeholder version and we are in a docker container; query release please for the latest version
|
|
8
|
-
if (cliVersion === '0.1.0') {
|
|
9
|
-
const releasePleasePath = resolve(dirname(fileURLToPath(import.meta.url)), '../../../../.release-please-manifest.json');
|
|
10
|
-
const releaseVersion = JSON.parse(readFileSync(releasePleasePath).toString())['.'];
|
|
11
|
-
return releaseVersion;
|
|
12
|
-
}
|
|
13
|
-
return cliVersion;
|
|
14
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { fileURLToPath } from '@aztec/foundation/url';
|
|
2
|
-
|
|
3
|
-
import { readFileSync } from 'fs';
|
|
4
|
-
import { dirname, resolve } from 'path';
|
|
5
|
-
|
|
6
|
-
export const getCliVersion = () => {
|
|
7
|
-
const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
|
|
8
|
-
const cliVersion: string = JSON.parse(readFileSync(packageJsonPath).toString()).version;
|
|
9
|
-
|
|
10
|
-
// If the version is 0.1.0, this is a placeholder version and we are in a docker container; query release please for the latest version
|
|
11
|
-
if (cliVersion === '0.1.0') {
|
|
12
|
-
const releasePleasePath = resolve(
|
|
13
|
-
dirname(fileURLToPath(import.meta.url)),
|
|
14
|
-
'../../../../.release-please-manifest.json',
|
|
15
|
-
);
|
|
16
|
-
const releaseVersion = JSON.parse(readFileSync(releasePleasePath).toString())['.'];
|
|
17
|
-
return releaseVersion;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return cliVersion;
|
|
21
|
-
};
|