@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 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 = getCliVersion();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfYWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2F6dGVjX3N0YXJ0X2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFhM0Qsd0JBQXNCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBd0lqRiJ9
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":"AAMA,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,iBAwIjF"}
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 = getCliVersion();
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
- ({ config } = await startNode(options, signalHandlers, services, adminServices, userLog));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfc3RhcnRfb3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9henRlY19zdGFydF9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxLQUFLLGFBQWEsRUFDbEIsS0FBSyxNQUFNLEVBSVosTUFBTSwwQkFBMEIsQ0FBQztBQWVsQyxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFlBQVksRUFBRSxHQUFHLENBQUM7SUFDbEIsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLE1BQU0sQ0FBQztJQUNwQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN4QixRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEtBQUssR0FBRyxDQUFDO0NBQ2pDO0FBRUQsZUFBTyxNQUFNLFVBQVUsMEZBb0J0QixDQUFDO0FBdUJGLGVBQU8sTUFBTSxnQkFBZ0IsVUFZNUIsQ0FBQztBQUVGLGVBQU8sTUFBTSxZQUFZLFlBQVksQ0FBQztBQUd0QyxlQUFPLE1BQU0saUJBQWlCLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQXVPbEUsQ0FBQyJ9
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;CAuOlE,CAAC"}
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('--auto-update', sharedNodeConfigMappings.autoUpdate),
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUE2QyxNQUFNLG1CQUFtQixDQUFDO0FBUXBHLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUE2Rm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQTRLdEMifQ==
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;AAQpG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA6FnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CA4KtC"}
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, setupUpdateMonitor } from '../util.js';
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 initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts);
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.autoUpdate !== 'disabled' && nodeConfig.autoUpdateUrl) {
219
- await setupUpdateMonitor(nodeConfig.autoUpdate, new URL(nodeConfig.autoUpdateUrl), followsCanonicalRollup, getPublicClient(nodeConfig), nodeConfig.l1Contracts.registryAddress, signalHandlers, async (config)=>node.setConfig((await AztecNodeAdminApiSchema.setConfig.parameters().parseAsync([
220
- config
221
- ]))[0]));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2Jyb2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X3Byb3Zlcl9icm9rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBS3hFLHdCQUFzQixpQkFBaUIsQ0FDckMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUE7Q0FBRSxDQUFDLENBK0NuRSJ9
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":"AAEA,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,CA+CnE"}
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, setupUpdateMonitor } from '../util.js';
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
@@ -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 setupUpdateMonitor(autoUpdateMode: SharedNodeConfig['autoUpdate'], updatesLocation: URL, followsCanonicalRollup: boolean, publicClient: ViemClient, registryContractAddress: EthAddress, signalHandlers: Array<() => Promise<void>>, updateNodeConfig?: (config: object) => Promise<void>): Promise<void>;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXBFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRiwwQkFBa0IsUUFBUTtJQUN4QixPQUFPLElBQUk7SUFDWCxLQUFLLElBQUk7SUFDVCxjQUFjLEtBQUs7SUFDbkIsZUFBZSxLQUFLO0lBRXBCLE1BQU0sTUFBTTtJQUNaLE1BQU0sTUFBTTtJQUNaLE9BQU8sTUFBTTtJQUNiLE9BQU8sTUFBTTtDQUNkO0FBR0Qsd0JBQWdCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQWdCMUc7QUFFRCx3QkFBZ0IsY0FBYyxJQUFJLE9BQU8sQ0FFeEM7QUFFRCxlQUFPLE1BQU0scUJBQXFCLGtFQWFqQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsaUJBQWlCLENBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLHFCQXlCaEc7QUFFRCx3QkFBZ0IsYUFBYSxDQUFDLFFBQVEsRUFBRTtJQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFBO0NBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FpQi9GO0FBRUQsd0JBQWdCLGNBQWMsQ0FDNUIsTUFBTSxFQUFFLE1BQU0sRUFDZCxZQUFZLEVBQUUsTUFBTSxFQUNwQixNQUFNLEVBQUUsTUFBTSxFQUNkLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLGdCQUFnQixFQUFFLE1BQU0sR0FDdkIsTUFBTSxDQUtSO0FBaUNELGVBQU8sTUFBTSxVQUFVLHFEQVN0QixDQUFDO0FBRUYsZUFBTyxNQUFNLHVCQUF1QixjQXlCbkMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsZUFBTyxNQUFNLHdCQUF3QiwwRUFTcEMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxlQUFPLE1BQU0sc0JBQXNCLEdBQUksQ0FBQyx3RkFrQ3ZDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsd0JBQXNCLDBCQUEwQixDQUM5QyxFQUFFLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLEVBQ25ELEdBQUcsRUFBRSxLQUFLLEdBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUtmO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixrQ0FBa0MsQ0FDdEQsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUNoRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVELHdCQUFzQixrQkFBa0IsQ0FDdEMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxFQUM5QyxlQUFlLEVBQUUsR0FBRyxFQUNwQixzQkFBc0IsRUFBRSxPQUFPLEVBQy9CLFlBQVksRUFBRSxVQUFVLEVBQ3hCLHVCQUF1QixFQUFFLFVBQVUsRUFDbkMsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQStFckQ7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUl0RCJ9
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzdELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHekMsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsMEJBQWtCLFFBQVE7SUFDeEIsT0FBTyxJQUFJO0lBQ1gsS0FBSyxJQUFJO0lBQ1QsY0FBYyxLQUFLO0lBQ25CLGVBQWUsS0FBSztJQUVwQixNQUFNLE1BQU07SUFDWixNQUFNLE1BQU07SUFDWixPQUFPLE1BQU07SUFDYixPQUFPLE1BQU07Q0FDZDtBQUdELHdCQUFnQixRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FnQjFHO0FBRUQsd0JBQWdCLGNBQWMsSUFBSSxPQUFPLENBRXhDO0FBRUQsZUFBTyxNQUFNLHFCQUFxQixrRUFhakMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxxQkF5QmhHO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxRQUFRLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBaUIvRjtBQUVELHdCQUFnQixjQUFjLENBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxlQUFlLEVBQUUsTUFBTSxFQUN2QixnQkFBZ0IsRUFBRSxNQUFNLEdBQ3ZCLE1BQU0sQ0FLUjtBQWlDRCxlQUFPLE1BQU0sVUFBVSxxREFTdEIsQ0FBQztBQUVGLGVBQU8sTUFBTSx1QkFBdUIsY0F5Qm5DLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsMEVBU3BDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHNCQUFzQixHQUFJLENBQUMsd0ZBa0N2QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FDOUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxFQUNuRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0Isa0NBQWtDLENBQ3RELEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFDaEQsR0FBRyxFQUFFLEtBQUssR0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBS2Y7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLHNCQUFzQixFQUFFLE9BQU8sRUFDL0IsWUFBWSxFQUFFLFVBQVUsRUFDeEIsY0FBYyxFQUFFLEtBQUssQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMxQyxRQUFRLENBQUMsRUFBRSxNQUFNLEdBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E4Q2Y7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUl0RCJ9
@@ -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;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,0BAA0B,CAAC;AAEpF,0BAAkB,QAAQ;IACxB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,cAAc,KAAK;IACnB,eAAe,KAAK;IAEpB,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,OAAO,MAAM;IACb,OAAO,MAAM;CACd;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAgB1G;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,eAAO,MAAM,qBAAqB,kEAajC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,qBAyBhG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB/F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAiCD,eAAO,MAAM,UAAU,qDAStB,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAyBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0EASpC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,wFAkCvC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EACnD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;GAIG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAChD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,kBAAkB,CACtC,cAAc,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAC9C,eAAe,EAAE,GAAG,EACpB,sBAAsB,EAAE,OAAO,EAC/B,YAAY,EAAE,UAAU,EACxB,uBAAuB,EAAE,UAAU,EACnC,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAC1C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,iBA+ErD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD"}
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 { getTelemetryClient } from '@aztec/telemetry-client/start';
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 setupUpdateMonitor(autoUpdateMode, updatesLocation, followsCanonicalRollup, publicClient, registryContractAddress, signalHandlers, updateNodeConfig) {
241
- const logger = createLogger('update-check');
242
- const { UpdateChecker } = await import('@aztec/stdlib/update-checker');
243
- const checker = await UpdateChecker.new({
244
- baseURL: updatesLocation,
245
- publicClient,
246
- registryContractAddress
247
- });
248
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
249
- checker.on('newRollupVersion', async ({ latestVersion, currentVersion })=>{
250
- if (isShuttingDown()) {
251
- return;
252
- }
253
- // if node follows canonical rollup then this is equivalent to a config update
254
- if (!followsCanonicalRollup) {
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
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
271
- checker.on('newNodeVersion', async ({ latestVersion, currentVersion })=>{
272
- if (isShuttingDown()) {
273
- return;
274
- }
275
- if (autoUpdateMode === 'config-and-version') {
276
- logger.info(`New node version detected. Please update and restart the node`, {
277
- latestVersion,
278
- currentVersion
279
- });
280
- await shutdown(logger.info, 79, signalHandlers);
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
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
289
- checker.on('updateNodeConfig', async (config)=>{
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
- if ((autoUpdateMode === 'config' || autoUpdateMode === 'config-and-version') && updateNodeConfig) {
294
- logger.warn(`Config change detected. Updating node`, config);
295
- try {
296
- await updateNodeConfig(config);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtbmV0d29yay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsLW5ldHdvcmsvbG9jYWwtbmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFvQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQVN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUl6RSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUdyQixNQUFNLHlCQUF5QixDQUFDO0FBS2pDLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBMkQsTUFBTSxNQUFNLENBQUM7QUFlekY7Ozs7R0FJRztBQUNILHdCQUFzQixtQkFBbUIsQ0FDdkMsZUFBZSxFQUFFLGVBQWUsRUFDaEMsVUFBVSxFQUFFLEdBQUcsRUFDZixJQUFJLEdBQUU7SUFDSixrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN4Qiw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlA7QUFFRCw4QkFBOEI7QUFDOUIsTUFBTSxNQUFNLGtCQUFrQixHQUFHLGVBQWUsR0FBRztJQUNqRCwwREFBMEQ7SUFDMUQsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQiw2REFBNkQ7SUFDN0QsWUFBWSxFQUFFLE9BQU8sQ0FBQztDQUN2QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFzQixrQkFBa0IsQ0FBQyxNQUFNLHlDQUFrQyxFQUFFLE9BQU8sRUFBRSxLQUFLOzs7R0FnSmhHO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxHQUFFLE9BQU8sQ0FBQyxlQUFlLENBQU0sRUFDckMsSUFBSSxHQUFFO0lBQ0osU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQzVCLFVBQVUsQ0FBQyxFQUFFLG1CQUFtQixDQUFDO0lBQ2pDLFlBQVksQ0FBQyxFQUFFLFlBQVksQ0FBQztJQUM1QixZQUFZLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztDQUM1QixFQUNOLE9BQU8sR0FBRTtJQUFFLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQTtDQUFPLDZCQWU3RCJ9
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;AAIzE,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;;;GAgJhG;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"}
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 fundedAddresses = initialAccounts.length ? [
102
+ const prefundAddresses = (aztecNodeConfig.prefundAddresses ?? []).map((a)=>AztecAddress.fromString(a));
103
+ const fundedAddresses = [
102
104
  ...initialAccounts.map((a)=>a.address),
103
- bananaFPC,
104
- sponsoredFPC
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",
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.3",
32
- "@aztec/archiver": "4.0.4-rc.3",
33
- "@aztec/aztec-faucet": "4.0.4-rc.3",
34
- "@aztec/aztec-node": "4.0.4-rc.3",
35
- "@aztec/aztec.js": "4.0.4-rc.3",
36
- "@aztec/bb-prover": "4.0.4-rc.3",
37
- "@aztec/bb.js": "4.0.4-rc.3",
38
- "@aztec/blob-client": "4.0.4-rc.3",
39
- "@aztec/bot": "4.0.4-rc.3",
40
- "@aztec/builder": "4.0.4-rc.3",
41
- "@aztec/cli": "4.0.4-rc.3",
42
- "@aztec/constants": "4.0.4-rc.3",
43
- "@aztec/entrypoints": "4.0.4-rc.3",
44
- "@aztec/ethereum": "4.0.4-rc.3",
45
- "@aztec/foundation": "4.0.4-rc.3",
46
- "@aztec/kv-store": "4.0.4-rc.3",
47
- "@aztec/l1-artifacts": "4.0.4-rc.3",
48
- "@aztec/node-lib": "4.0.4-rc.3",
49
- "@aztec/noir-contracts.js": "4.0.4-rc.3",
50
- "@aztec/noir-protocol-circuits-types": "4.0.4-rc.3",
51
- "@aztec/p2p": "4.0.4-rc.3",
52
- "@aztec/p2p-bootstrap": "4.0.4-rc.3",
53
- "@aztec/protocol-contracts": "4.0.4-rc.3",
54
- "@aztec/prover-client": "4.0.4-rc.3",
55
- "@aztec/prover-node": "4.0.4-rc.3",
56
- "@aztec/pxe": "4.0.4-rc.3",
57
- "@aztec/sequencer-client": "4.0.4-rc.3",
58
- "@aztec/stdlib": "4.0.4-rc.3",
59
- "@aztec/telemetry-client": "4.0.4-rc.3",
60
- "@aztec/txe": "4.0.4-rc.3",
61
- "@aztec/validator-ha-signer": "4.0.4-rc.3",
62
- "@aztec/wallets": "4.0.4-rc.3",
63
- "@aztec/world-state": "4.0.4-rc.3",
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 = getCliVersion();
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 = getCliVersion();
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
- ({ config } = await startNode(options, signalHandlers, services, adminServices, userLog));
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('--auto-update', sharedNodeConfigMappings.autoUpdate),
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
- setupUpdateMonitor,
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 initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts);
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.autoUpdate !== 'disabled' && nodeConfig.autoUpdateUrl) {
272
- await setupUpdateMonitor(
273
- nodeConfig.autoUpdate,
274
- new URL(nodeConfig.autoUpdateUrl),
275
- followsCanonicalRollup,
276
- getPublicClient(nodeConfig!),
277
- nodeConfig.l1Contracts.registryAddress,
278
- signalHandlers,
279
- async config => node.setConfig((await AztecNodeAdminApiSchema.setConfig.parameters().parseAsync([config]))[0]),
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, setupUpdateMonitor } from '../util.js';
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 { getTelemetryClient } from '@aztec/telemetry-client/start';
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 setupUpdateMonitor(
294
- autoUpdateMode: SharedNodeConfig['autoUpdate'],
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
- updateNodeConfig?: (config: object) => Promise<void>,
301
- ) {
302
- const logger = createLogger('update-check');
303
- const { UpdateChecker } = await import('@aztec/stdlib/update-checker');
304
- const checker = await UpdateChecker.new({
305
- baseURL: updatesLocation,
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
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
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
- // if node follows canonical rollup then this is equivalent to a config update
317
- if (!followsCanonicalRollup) {
318
- return;
319
- }
308
+ const logger = createLogger('version_check');
309
+ const registry = new RegistryContract(publicClient, networkConfig.registryAddress as Hex);
320
310
 
321
- if (autoUpdateMode === 'config' || autoUpdateMode === 'config-and-version') {
322
- logger.info(`New rollup version detected. Please restart the node`, { latestVersion, currentVersion });
323
- await shutdown(logger.info, ExitCode.ROLLUP_UPGRADE, signalHandlers);
324
- } else if (autoUpdateMode === 'notify') {
325
- logger.warn(`New rollup detected. Please restart the node`, { latestVersion, currentVersion });
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
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
330
- checker.on('newNodeVersion', async ({ latestVersion, currentVersion }) => {
331
- if (isShuttingDown()) {
332
- return;
333
- }
334
- if (autoUpdateMode === 'config-and-version') {
335
- logger.info(`New node version detected. Please update and restart the node`, { latestVersion, currentVersion });
336
- await shutdown(logger.info, ExitCode.VERSION_UPGRADE, signalHandlers);
337
- } else if (autoUpdateMode === 'notify') {
338
- logger.info(`New node version detected. Please update and restart the node`, { latestVersion, currentVersion });
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
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
343
- checker.on('updateNodeConfig', async config => {
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
- if ((autoUpdateMode === 'config' || autoUpdateMode === 'config-and-version') && updateNodeConfig) {
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 fundedAddresses = initialAccounts.length
142
- ? [...initialAccounts.map(a => a.address), bananaFPC, sponsoredFPC]
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
- };