@aztec/aztec 0.0.1-commit.9ef841308 → 0.0.1-commit.a5db02d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bin/index.js +3 -1
- package/dest/cli/aztec_start_action.d.ts +1 -1
- package/dest/cli/aztec_start_action.d.ts.map +1 -1
- package/dest/cli/aztec_start_action.js +16 -24
- package/dest/cli/aztec_start_options.d.ts +2 -2
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +15 -15
- package/dest/cli/cmds/compile.d.ts +1 -1
- package/dest/cli/cmds/compile.d.ts.map +1 -1
- package/dest/cli/cmds/compile.js +30 -24
- package/dest/cli/cmds/profile.d.ts +1 -1
- package/dest/cli/cmds/profile.d.ts.map +1 -1
- package/dest/cli/cmds/profile.js +1 -1
- package/dest/cli/cmds/profile_gates.d.ts +2 -2
- package/dest/cli/cmds/profile_gates.d.ts.map +1 -1
- package/dest/cli/cmds/profile_gates.js +21 -3
- package/dest/cli/cmds/prover.d.ts +4 -0
- package/dest/cli/cmds/prover.d.ts.map +1 -0
- package/dest/cli/cmds/prover.js +24 -0
- package/dest/cli/cmds/standby.d.ts +30 -6
- package/dest/cli/cmds/standby.d.ts.map +1 -1
- package/dest/cli/cmds/standby.js +48 -5
- package/dest/cli/cmds/start_bot.d.ts +1 -1
- package/dest/cli/cmds/start_bot.d.ts.map +1 -1
- package/dest/cli/cmds/start_bot.js +8 -4
- package/dest/cli/cmds/start_node.d.ts +1 -1
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +22 -47
- package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
- package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_agent.js +5 -17
- package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
- package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_broker.js +11 -8
- package/dest/cli/cmds/start_txe.d.ts +2 -2
- package/dest/cli/cmds/start_txe.d.ts.map +1 -1
- package/dest/cli/cmds/start_txe.js +6 -5
- package/dest/cli/cmds/utils/artifacts.d.ts +6 -1
- package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -1
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts +2 -2
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts.map +1 -1
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.js +35 -15
- package/dest/cli/util.d.ts +10 -5
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +26 -53
- package/dest/examples/token.js +3 -3
- package/dest/local-network/auth_registry.d.ts +5 -0
- package/dest/local-network/auth_registry.d.ts.map +1 -0
- package/dest/local-network/auth_registry.js +17 -0
- package/dest/local-network/banana_fpc.d.ts +3 -2
- package/dest/local-network/banana_fpc.d.ts.map +1 -1
- package/dest/local-network/banana_fpc.js +11 -7
- package/dest/local-network/local-network.d.ts +10 -32
- package/dest/local-network/local-network.d.ts.map +1 -1
- package/dest/local-network/local-network.js +52 -73
- package/dest/testing/cheat_codes.d.ts +17 -23
- package/dest/testing/cheat_codes.d.ts.map +1 -1
- package/dest/testing/cheat_codes.js +17 -43
- package/dest/testing/epoch_test_settler.d.ts +2 -2
- package/dest/testing/epoch_test_settler.d.ts.map +1 -1
- package/dest/testing/epoch_test_settler.js +6 -25
- package/dest/testing/index.d.ts +2 -2
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +1 -1
- package/dest/testing/local-network.d.ts +51 -0
- package/dest/testing/local-network.d.ts.map +1 -0
- package/dest/testing/local-network.js +60 -0
- package/dest/testing/token_allowed_setup.d.ts +9 -4
- package/dest/testing/token_allowed_setup.d.ts.map +1 -1
- package/dest/testing/token_allowed_setup.js +12 -8
- package/package.json +34 -33
- package/scripts/add_crate.sh +11 -60
- package/scripts/aztec.sh +6 -2
- package/scripts/init.sh +5 -5
- package/scripts/new.sh +2 -2
- package/scripts/setup_workspace.sh +3 -2
- package/scripts/templates/blank/contract/Nargo.toml +6 -0
- package/scripts/templates/blank/contract/src/main.nr +10 -0
- package/scripts/templates/blank/test/Nargo.toml +7 -0
- package/scripts/templates/blank/test/src/lib.nr +11 -0
- package/scripts/templates/counter/contract/Nargo.toml +7 -0
- package/scripts/templates/counter/contract/src/main.nr +48 -0
- package/scripts/templates/counter/test/Nargo.toml +7 -0
- package/scripts/templates/counter/test/src/lib.nr +32 -0
- package/src/bin/index.ts +3 -1
- package/src/cli/aztec_start_action.ts +14 -17
- package/src/cli/aztec_start_options.ts +22 -23
- package/src/cli/cmds/compile.ts +35 -24
- package/src/cli/cmds/profile.ts +2 -1
- package/src/cli/cmds/profile_gates.ts +20 -4
- package/src/cli/cmds/prover.ts +42 -0
- package/src/cli/cmds/standby.ts +59 -7
- package/src/cli/cmds/start_bot.ts +9 -6
- package/src/cli/cmds/start_node.ts +29 -39
- package/src/cli/cmds/start_prover_agent.ts +5 -8
- package/src/cli/cmds/start_prover_broker.ts +10 -11
- package/src/cli/cmds/start_txe.ts +7 -5
- package/src/cli/cmds/utils/artifacts.ts +5 -0
- package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +37 -15
- package/src/cli/util.ts +27 -68
- package/src/examples/token.ts +11 -3
- package/src/local-network/auth_registry.ts +19 -0
- package/src/local-network/banana_fpc.ts +12 -8
- package/src/local-network/local-network.ts +61 -83
- package/src/testing/cheat_codes.ts +18 -49
- package/src/testing/epoch_test_settler.ts +8 -31
- package/src/testing/index.ts +1 -1
- package/src/testing/local-network.ts +97 -0
- package/src/testing/token_allowed_setup.ts +15 -8
- package/dest/cli/cmds/start_archiver.d.ts +0 -9
- package/dest/cli/cmds/start_archiver.d.ts.map +0 -1
- package/dest/cli/cmds/start_archiver.js +0 -48
- package/dest/testing/anvil_test_watcher.d.ts +0 -42
- package/dest/testing/anvil_test_watcher.d.ts.map +0 -1
- package/dest/testing/anvil_test_watcher.js +0 -181
- package/src/cli/cmds/start_archiver.ts +0 -50
- package/src/testing/anvil_test_watcher.ts +0 -210
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_bot.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_bot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAyB,MAAM,iCAAiC,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzD,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"start_bot.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_bot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAyB,MAAM,iCAAiC,CAAC;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzD,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,iBAsBf;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,cAAc,EAC/B,OAAO,CAAC,EAAE,KAAK,iBAwBhB"}
|
|
@@ -7,9 +7,9 @@ import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
|
7
7
|
import { extractRelevantOptions, stringifyConfig } from '../util.js';
|
|
8
8
|
import { getVersions } from '../versioning.js';
|
|
9
9
|
export async function startBot(options, signalHandlers, services, userLog) {
|
|
10
|
-
const { proverNode,
|
|
11
|
-
if (proverNode ||
|
|
12
|
-
userLog(`Starting a bot with --prover-node, --prover, --
|
|
10
|
+
const { proverNode, sequencer, p2pBootstrap, txe, prover } = options;
|
|
11
|
+
if (proverNode || sequencer || p2pBootstrap || txe || prover) {
|
|
12
|
+
userLog(`Starting a bot with --prover-node, --prover, --sequencer, --p2p-bootstrap, or --txe is not supported.`);
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
15
|
const fetch = makeTracedFetch([
|
|
@@ -33,10 +33,14 @@ export async function startBot(options, signalHandlers, services, userLog) {
|
|
|
33
33
|
export async function addBot(options, signalHandlers, services, wallet, aztecNode, telemetry, aztecNodeAdmin, userLog) {
|
|
34
34
|
const config = extractRelevantOptions(options, botConfigMappings, 'bot');
|
|
35
35
|
userLog?.(`Starting bot with config ${stringifyConfig(config)}`);
|
|
36
|
+
// The bot wallet's embedded PXE syncs to this tip (see start_bot.ts/start_node.ts which build the wallet from the
|
|
37
|
+
// same options). L1-to-L2 readiness checks must be evaluated at this tip rather than at 'latest', or the bot can
|
|
38
|
+
// consider a message ready while the PXE simulation anchors to an older block that cannot prove its membership yet.
|
|
39
|
+
const { syncChainTip } = extractRelevantOptions(options, allPxeConfigMappings, 'pxe');
|
|
36
40
|
const db = await (config.dataDirectory ? createStore('bot', BotStore.SCHEMA_VERSION, config) : openTmpStore('bot', true, config.dataStoreMapSizeKb));
|
|
37
41
|
const store = new BotStore(db);
|
|
38
42
|
await store.cleanupOldClaims();
|
|
39
|
-
const botRunner = new BotRunner(config, wallet, aztecNode, telemetry, aztecNodeAdmin, store);
|
|
43
|
+
const botRunner = new BotRunner(config, wallet, aztecNode, telemetry, aztecNodeAdmin, store, syncChainTip);
|
|
40
44
|
if (!config.noStart) {
|
|
41
45
|
void botRunner.start(); // Do not block since bot setup takes time
|
|
42
46
|
}
|
|
@@ -5,4 +5,4 @@ import type { LogFn } from '@aztec/foundation/log';
|
|
|
5
5
|
export declare function startNode(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, adminServices: NamespacedApiHandlers, userLog: LogFn, networkName: NetworkNames): Promise<{
|
|
6
6
|
config: AztecNodeConfig;
|
|
7
7
|
}>;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUlyQixNQUFNLG1CQUFtQixDQUFDO0FBSTNCLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUF3Qm5ELHdCQUFzQixTQUFTLENBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQ1osY0FBYyxFQUFFLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUN2QyxRQUFRLEVBQUUscUJBQXFCLEVBQy9CLGFBQWEsRUFBRSxxQkFBcUIsRUFDcEMsT0FBTyxFQUFFLEtBQUssRUFDZCxXQUFXLEVBQUUsWUFBWSxHQUN4QixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFBO0NBQUUsQ0FBQyxDQXdKdEMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAwBnD,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,CAwJtC"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
import { aztecNodeConfigMappings, getConfigEnvVars } from '@aztec/aztec-node';
|
|
1
|
+
import { aztecNodeConfigMappings, getConfigEnvVars, registerAztecNodeRpcHandlers } from '@aztec/aztec-node';
|
|
2
2
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
3
|
import { getL1Config } from '@aztec/cli/config';
|
|
4
|
-
import { getPublicClient } from '@aztec/ethereum/client';
|
|
5
4
|
import { getGenesisStateConfigEnvVars } from '@aztec/ethereum/config';
|
|
6
5
|
import { SecretValue } from '@aztec/foundation/config';
|
|
7
6
|
import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
|
|
8
7
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
9
8
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
10
|
-
import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
|
|
9
|
+
import { ProvingJobConsumerSchema, createProvingJobBrokerClient, proverBrokerBackoff } from '@aztec/prover-client/broker';
|
|
11
10
|
import { allPxeConfigMappings } from '@aztec/pxe/config';
|
|
12
|
-
import {
|
|
13
|
-
import { P2PApiSchema, ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
11
|
+
import { ProverNodeApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
14
12
|
import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
|
|
15
13
|
import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
16
14
|
import { createAztecNode } from '../../local-network/index.js';
|
|
17
|
-
import { extractNamespacedOptions, extractRelevantOptions, preloadCrsDataForVerifying
|
|
15
|
+
import { extractNamespacedOptions, extractRelevantOptions, preloadCrsDataForVerifying } from '../util.js';
|
|
18
16
|
import { getVersions } from '../versioning.js';
|
|
19
|
-
import { computeExpectedGenesisRoot, waitForCompatibleRollup } from './standby.js';
|
|
17
|
+
import { computeExpectedGenesisRoot, setupAutoShutdown, waitForCompatibleRollup } from './standby.js';
|
|
20
18
|
import { startProverBroker } from './start_prover_broker.js';
|
|
21
19
|
export async function startNode(options, signalHandlers, services, adminServices, userLog, networkName) {
|
|
22
20
|
// All options set from environment variables
|
|
@@ -39,20 +37,8 @@ export async function startNode(options, signalHandlers, services, adminServices
|
|
|
39
37
|
if (nodeConfig.proverBrokerUrl) {
|
|
40
38
|
// at 1TPS we'd enqueue ~1k chonk verifier proofs and ~1k AVM proofs immediately
|
|
41
39
|
// set a lower connection limit such that we don't overload the server
|
|
42
|
-
//
|
|
43
|
-
const fetch = makeTracedFetch(
|
|
44
|
-
1,
|
|
45
|
-
2,
|
|
46
|
-
3,
|
|
47
|
-
3,
|
|
48
|
-
3,
|
|
49
|
-
3,
|
|
50
|
-
3,
|
|
51
|
-
3,
|
|
52
|
-
3,
|
|
53
|
-
3,
|
|
54
|
-
3
|
|
55
|
-
], false, makeUndiciFetch(new Agent({
|
|
40
|
+
// Retry indefinitely until the epoch proving times out and the chain reorgs
|
|
41
|
+
const fetch = makeTracedFetch(proverBrokerBackoff, false, makeUndiciFetch(new Agent({
|
|
56
42
|
connections: 100
|
|
57
43
|
})));
|
|
58
44
|
broker = createProvingJobBrokerClient(nodeConfig.proverBrokerUrl, getVersions(nodeConfig), fetch);
|
|
@@ -65,9 +51,9 @@ export async function startNode(options, signalHandlers, services, adminServices
|
|
|
65
51
|
}
|
|
66
52
|
await preloadCrsDataForVerifying(nodeConfig, userLog);
|
|
67
53
|
const genesisConfig = getGenesisStateConfigEnvVars();
|
|
68
|
-
const { genesisArchiveRoot,
|
|
54
|
+
const { genesisArchiveRoot, genesis } = await computeExpectedGenesisRoot(genesisConfig, userLog);
|
|
69
55
|
const followsCanonicalRollup = typeof nodeConfig.rollupVersion !== 'number' || nodeConfig.rollupVersion === 'canonical';
|
|
70
|
-
if (!nodeConfig.
|
|
56
|
+
if (!nodeConfig.registryAddress || nodeConfig.registryAddress.isZero()) {
|
|
71
57
|
throw new Error('L1 registry address is required to start Aztec Node');
|
|
72
58
|
}
|
|
73
59
|
// Wait for a compatible rollup before proceeding with full L1 config fetch.
|
|
@@ -77,18 +63,14 @@ export async function startNode(options, signalHandlers, services, adminServices
|
|
|
77
63
|
vkTreeRoot: getVKTreeRoot(),
|
|
78
64
|
protocolContractsHash
|
|
79
65
|
}, options.port, userLog);
|
|
80
|
-
const { addresses, config } = await getL1Config(nodeConfig.
|
|
66
|
+
const { addresses, config } = await getL1Config(nodeConfig.registryAddress, nodeConfig.l1RpcUrls, nodeConfig.l1ChainId, nodeConfig.rollupVersion);
|
|
81
67
|
process.env.ROLLUP_CONTRACT_ADDRESS ??= addresses.rollupAddress.toString();
|
|
82
68
|
if (!Fr.fromHexString(config.genesisArchiveTreeRoot).equals(genesisArchiveRoot)) {
|
|
83
69
|
throw new Error(`The computed genesis archive tree root ${genesisArchiveRoot} does not match the expected genesis archive tree root ${config.genesisArchiveTreeRoot} for the rollup deployed at ${addresses.rollupAddress}`);
|
|
84
70
|
}
|
|
85
|
-
// TODO(#12272): will clean this up.
|
|
86
71
|
nodeConfig = {
|
|
87
72
|
...nodeConfig,
|
|
88
|
-
|
|
89
|
-
...addresses,
|
|
90
|
-
slashFactoryAddress: nodeConfig.l1Contracts.slashFactoryAddress
|
|
91
|
-
},
|
|
73
|
+
...addresses,
|
|
92
74
|
...config
|
|
93
75
|
};
|
|
94
76
|
if (!options.sequencer && !nodeConfig.fishermanMode) {
|
|
@@ -121,25 +103,15 @@ export async function startNode(options, signalHandlers, services, adminServices
|
|
|
121
103
|
telemetry,
|
|
122
104
|
proverBroker: broker
|
|
123
105
|
}, {
|
|
124
|
-
|
|
106
|
+
genesis
|
|
107
|
+
});
|
|
108
|
+
registerAztecNodeRpcHandlers(node, services, adminServices, {
|
|
109
|
+
debug: options.nodeDebug
|
|
125
110
|
});
|
|
126
|
-
// Add node and p2p to services list
|
|
127
|
-
services.node = [
|
|
128
|
-
node,
|
|
129
|
-
AztecNodeApiSchema
|
|
130
|
-
];
|
|
131
|
-
services.p2p = [
|
|
132
|
-
node.getP2P(),
|
|
133
|
-
P2PApiSchema
|
|
134
|
-
];
|
|
135
|
-
adminServices.nodeAdmin = [
|
|
136
|
-
node,
|
|
137
|
-
AztecNodeAdminApiSchema
|
|
138
|
-
];
|
|
139
111
|
// Register prover-node services if the prover node subsystem is running
|
|
140
112
|
const proverNode = node.getProverNode();
|
|
141
113
|
if (proverNode) {
|
|
142
|
-
|
|
114
|
+
adminServices.prover = [
|
|
143
115
|
proverNode,
|
|
144
116
|
ProverNodeApiSchema
|
|
145
117
|
];
|
|
@@ -161,10 +133,13 @@ export async function startNode(options, signalHandlers, services, adminServices
|
|
|
161
133
|
});
|
|
162
134
|
await addBot(options, signalHandlers, services, wallet, node, telemetry, undefined);
|
|
163
135
|
}
|
|
164
|
-
if (nodeConfig.
|
|
165
|
-
const cacheDir = process.env.DATA_DIRECTORY ? `${process.env.DATA_DIRECTORY}/cache` : undefined;
|
|
136
|
+
if (nodeConfig.enableAutoShutdown && networkName !== 'local' && followsCanonicalRollup) {
|
|
166
137
|
try {
|
|
167
|
-
await
|
|
138
|
+
await setupAutoShutdown(nodeConfig, nodeConfig.registryAddress, nodeConfig.rollupVersion ?? 'canonical', {
|
|
139
|
+
genesisArchiveRoot,
|
|
140
|
+
vkTreeRoot: getVKTreeRoot(),
|
|
141
|
+
protocolContractsHash
|
|
142
|
+
}, signalHandlers);
|
|
168
143
|
} catch {
|
|
169
144
|
/* no-op */ }
|
|
170
145
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
2
2
|
import type { LogFn } from '@aztec/foundation/log';
|
|
3
3
|
export declare function startProverAgent(options: any, signalHandlers: (() => Promise<void>)[], services: NamespacedApiHandlers, userLog: LogFn): Promise<void>;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2FnZW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfcHJvdmVyX2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFpQm5ELHdCQUFzQixnQkFBZ0IsQ0FDcEMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssaUJBb0RmIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_prover_agent.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"start_prover_agent.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAiBnD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,iBAoDf"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { times } from '@aztec/foundation/collection';
|
|
2
2
|
import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
|
|
3
3
|
import { buildServerCircuitProver } from '@aztec/prover-client';
|
|
4
|
-
import { ProvingAgent, createProofStore, createProvingJobBrokerClient, proverAgentConfigMappings } from '@aztec/prover-client/broker';
|
|
4
|
+
import { ProvingAgent, createProofStore, createProvingJobBrokerClient, proverAgentConfigMappings, proverBrokerBackoff } from '@aztec/prover-client/broker';
|
|
5
5
|
import { getProverNodeAgentConfigFromEnv } from '@aztec/prover-node';
|
|
6
6
|
import { ProverAgentApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
7
7
|
import { initTelemetryClient, makeTracedFetch, telemetryClientConfigMappings } from '@aztec/telemetry-client';
|
|
8
8
|
import { extractRelevantOptions, preloadCrsDataForServerSideProving } from '../util.js';
|
|
9
9
|
import { getVersions } from '../versioning.js';
|
|
10
10
|
export async function startProverAgent(options, signalHandlers, services, userLog) {
|
|
11
|
-
if (options.node || options.sequencer || options.
|
|
12
|
-
userLog(`Starting a prover agent with --node, --sequencer, --
|
|
11
|
+
if (options.node || options.sequencer || options.p2pBootstrap || options.txe) {
|
|
12
|
+
userLog(`Starting a prover agent with --node, --sequencer, --p2p-bootstrap, or --txe is not supported.`);
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
15
|
const config = {
|
|
@@ -25,20 +25,8 @@ export async function startProverAgent(options, signalHandlers, services, userLo
|
|
|
25
25
|
process.exit(1);
|
|
26
26
|
}
|
|
27
27
|
await preloadCrsDataForServerSideProving(config, userLog);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
1,
|
|
31
|
-
2,
|
|
32
|
-
3,
|
|
33
|
-
3,
|
|
34
|
-
3,
|
|
35
|
-
3,
|
|
36
|
-
3,
|
|
37
|
-
3,
|
|
38
|
-
3,
|
|
39
|
-
3,
|
|
40
|
-
3
|
|
41
|
-
], false, makeUndiciFetch(new Agent({
|
|
28
|
+
// Retry indefinitely until the epoch proving times out and the chain reorgs
|
|
29
|
+
const fetch = makeTracedFetch(proverBrokerBackoff, false, makeUndiciFetch(new Agent({
|
|
42
30
|
connections: 10
|
|
43
31
|
})));
|
|
44
32
|
const broker = createProvingJobBrokerClient(config.proverBrokerUrl, getVersions(), fetch);
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfcHJvdmVyX2Jyb2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jbWRzL3N0YXJ0X3Byb3Zlcl9icm9rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCxPQUFPLEVBQ0wsS0FBSyxrQkFBa0IsRUFLeEIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXhFLHdCQUFzQixpQkFBaUIsQ0FDckMsT0FBTyxFQUFFLEdBQUcsRUFDWixjQUFjLEVBQUUsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ3ZDLFFBQVEsRUFBRSxxQkFBcUIsRUFDL0IsT0FBTyxFQUFFLEtBQUssR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUE7Q0FBRSxDQUFDLENBMkNuRSJ9
|
|
@@ -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;AAGnD,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMxE,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,
|
|
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;AAGnD,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMxE,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,CA2CnE"}
|
|
@@ -8,27 +8,30 @@ import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } fro
|
|
|
8
8
|
import { extractRelevantOptions } from '../util.js';
|
|
9
9
|
import { computeExpectedGenesisRoot, waitForCompatibleRollup } from './standby.js';
|
|
10
10
|
export async function startProverBroker(options, signalHandlers, services, userLog) {
|
|
11
|
-
if (options.node || options.sequencer || options.
|
|
12
|
-
userLog(`Starting a prover broker with --node, --sequencer, --
|
|
11
|
+
if (options.node || options.sequencer || options.p2pBootstrap || options.txe) {
|
|
12
|
+
userLog(`Starting a prover broker with --node, --sequencer, --p2p-bootstrap, or --txe is not supported.`);
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
|
-
const
|
|
15
|
+
const baseConfig = {
|
|
16
16
|
...getProverNodeBrokerConfigFromEnv(),
|
|
17
17
|
...extractRelevantOptions(options, proverBrokerConfigMappings, 'proverBroker')
|
|
18
18
|
};
|
|
19
|
-
if (!
|
|
19
|
+
if (!baseConfig.registryAddress || baseConfig.registryAddress.isZero()) {
|
|
20
20
|
throw new Error('L1 registry address is required to start Aztec Node without --deploy-aztec-contracts option');
|
|
21
21
|
}
|
|
22
22
|
const genesisConfig = getGenesisStateConfigEnvVars();
|
|
23
23
|
const { genesisArchiveRoot } = await computeExpectedGenesisRoot(genesisConfig, userLog);
|
|
24
|
-
await waitForCompatibleRollup(
|
|
24
|
+
await waitForCompatibleRollup(baseConfig, {
|
|
25
25
|
genesisArchiveRoot,
|
|
26
26
|
vkTreeRoot: getVKTreeRoot(),
|
|
27
27
|
protocolContractsHash
|
|
28
28
|
}, options.port, userLog);
|
|
29
|
-
const { addresses, config: rollupConfig } = await getL1Config(
|
|
30
|
-
config
|
|
31
|
-
|
|
29
|
+
const { addresses, config: rollupConfig } = await getL1Config(baseConfig.registryAddress, baseConfig.l1RpcUrls, baseConfig.l1ChainId, baseConfig.rollupVersion);
|
|
30
|
+
const config = {
|
|
31
|
+
...baseConfig,
|
|
32
|
+
...addresses,
|
|
33
|
+
rollupVersion: rollupConfig.rollupVersion
|
|
34
|
+
};
|
|
32
35
|
const client = await initTelemetryClient(getTelemetryClientConfig());
|
|
33
36
|
const broker = await createAndStartProvingBroker(config, client);
|
|
34
37
|
services.proverBroker = [
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Logger } from '@aztec/foundation/log';
|
|
2
|
-
export declare function startTXE(options: any, debugLogger: Logger): Promise<void>;
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export declare function startTXE(options: any, signalHandlers: Array<() => Promise<void>>, debugLogger: Logger): Promise<void>;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfdHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NtZHMvc3RhcnRfdHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3BELHdCQUFzQixRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBWTNHIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start_txe.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_txe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"start_txe.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_txe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,iBAY3G"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { startHttpRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
2
|
-
import { createTXERpcServer } from '@aztec/txe';
|
|
3
|
-
export async function startTXE(options, debugLogger) {
|
|
2
|
+
import { createTXERpcServer } from '@aztec/txe/server';
|
|
3
|
+
export async function startTXE(options, signalHandlers, debugLogger) {
|
|
4
4
|
debugLogger.info(`Setting up TXE...`);
|
|
5
|
-
const txeServer = createTXERpcServer(debugLogger);
|
|
6
|
-
const
|
|
5
|
+
const txeServer = await createTXERpcServer(debugLogger);
|
|
6
|
+
const httpServer = await startHttpRpcServer(txeServer, {
|
|
7
7
|
port: options.port,
|
|
8
8
|
timeoutMs: 1e3 * 60 * 5
|
|
9
9
|
});
|
|
10
|
-
|
|
10
|
+
signalHandlers.push(()=>new Promise((resolve)=>httpServer.close(()=>resolve())));
|
|
11
|
+
debugLogger.info(`TXE listening on port ${httpServer.port}`);
|
|
11
12
|
}
|
|
@@ -3,6 +3,11 @@ export interface CompiledArtifact {
|
|
|
3
3
|
file_map: unknown;
|
|
4
4
|
functions: ContractFunction[];
|
|
5
5
|
bytecode?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Set to true by the AVM transpiler (invoked via `bb aztec_process`) once the contract has been transpiled and its
|
|
8
|
+
* verification keys generated. Absent on raw `nargo compile` output, hence optional.
|
|
9
|
+
*/
|
|
10
|
+
transpiled?: boolean;
|
|
6
11
|
}
|
|
7
12
|
export interface ContractFunction {
|
|
8
13
|
name: string;
|
|
@@ -18,4 +23,4 @@ export interface ArtifactFile {
|
|
|
18
23
|
}
|
|
19
24
|
/** Reads all JSON artifact files from a target directory and returns their parsed contents. */
|
|
20
25
|
export declare function readArtifactFiles(targetDir: string): Promise<ArtifactFile[]>;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3RzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NtZHMvdXRpbHMvYXJ0aWZhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQjs7O09BR0c7SUFDSCxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDdEI7QUFFRCxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixHQUFHLEVBQUUsT0FBTyxDQUFDO0lBQ2IsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQ3ZCLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQzVCO0FBRUQsTUFBTSxXQUFXLFlBQVk7SUFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsT0FBTyxFQUFFLGdCQUFnQixDQUFDO0NBQzNCO0FBRUQsK0ZBQStGO0FBQy9GLHdCQUFzQixpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQWtCbEYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/artifacts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/artifacts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,+FAA+F;AAC/F,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkBlF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LogFn } from '@aztec/foundation/log';
|
|
2
|
-
/** Warns if
|
|
2
|
+
/** Warns if any aztec-nr git dependency in a crate's Nargo.toml has a tag that doesn't match the CLI version. */
|
|
3
3
|
export declare function warnIfAztecVersionMismatch(log: LogFn, cliVersion?: string): Promise<void>;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fybl9pZl9henRlY192ZXJzaW9uX21pc21hdGNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpL2NtZHMvdXRpbHMvd2Fybl9pZl9henRlY192ZXJzaW9uX21pc21hdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBMkJuRCxpSEFBaUg7QUFDakgsd0JBQXNCLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0ErQy9GIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warn_if_aztec_version_mismatch.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"warn_if_aztec_version_mismatch.d.ts","sourceRoot":"","sources":["../../../../src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AA2BnD,iHAAiH;AACjH,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C/F"}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
1
|
+
import { DEV_VERSION, getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
2
2
|
import TOML from '@iarna/toml';
|
|
3
3
|
import { readFile } from 'fs/promises';
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { collectCrateDirs } from './collect_crate_dirs.js';
|
|
6
|
-
/**
|
|
6
|
+
/** Returns true if the given git URL points to the AztecProtocol/aztec-nr repository. */ function isAztecNrGitUrl(gitUrl) {
|
|
7
|
+
let url;
|
|
8
|
+
try {
|
|
9
|
+
url = new URL(gitUrl);
|
|
10
|
+
} catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if (url.hostname !== 'github.com') {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const repoPath = url.pathname.replace(/^\//, '').replace(/\.git$/, '').replace(/\/$/, '');
|
|
17
|
+
return repoPath === 'AztecProtocol/aztec-nr';
|
|
18
|
+
}
|
|
19
|
+
/** Warns if any aztec-nr git dependency in a crate's Nargo.toml has a tag that doesn't match the CLI version. */ export async function warnIfAztecVersionMismatch(log, cliVersion) {
|
|
7
20
|
const version = cliVersion ?? getPackageVersion();
|
|
8
|
-
if (
|
|
9
|
-
log(`WARNING: aztec CLI version not found. Skipping dependency compatibility check.`);
|
|
21
|
+
if (version === DEV_VERSION) {
|
|
10
22
|
return;
|
|
11
23
|
}
|
|
12
24
|
const expectedTag = `v${version}`;
|
|
@@ -23,19 +35,27 @@ import { collectCrateDirs } from './collect_crate_dirs.js';
|
|
|
23
35
|
continue;
|
|
24
36
|
}
|
|
25
37
|
const parsed = TOML.parse(content);
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
const deps = parsed.dependencies ?? {};
|
|
39
|
+
for (const [depName, dep] of Object.entries(deps)){
|
|
40
|
+
// Skip non-object deps (e.g. malformed entries) and anything that isn't a tagged git dep.
|
|
41
|
+
if (!dep || typeof dep !== 'object' || typeof dep.git !== 'string' || typeof dep.tag !== 'string') {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
// Only flag deps that are sourced from the aztec-nr repo.
|
|
45
|
+
if (!isAztecNrGitUrl(dep.git)) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (dep.tag !== expectedTag) {
|
|
49
|
+
mismatches.push({
|
|
50
|
+
file: tomlPath,
|
|
51
|
+
depName,
|
|
52
|
+
tag: dep.tag
|
|
53
|
+
});
|
|
54
|
+
}
|
|
35
55
|
}
|
|
36
56
|
}
|
|
37
57
|
if (mismatches.length > 0) {
|
|
38
|
-
const details = mismatches.map((m)=>` ${m.file} (${m.tag})`).join('\n');
|
|
39
|
-
log(`WARNING: Aztec dependency version mismatch detected.\n` + `The following
|
|
58
|
+
const details = mismatches.map((m)=>` ${m.file} — ${m.depName} (${m.tag})`).join('\n');
|
|
59
|
+
log(`WARNING: Aztec dependency version mismatch detected.\n` + `The following aztec-nr dependencies do not match the CLI version (${expectedTag}):\n` + `${details}\n\n` + `See https://docs.aztec.network/errors/9 for how to update your dependencies.`);
|
|
40
60
|
}
|
|
41
61
|
}
|
package/dest/cli/util.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { AztecNodeConfig } from '@aztec/aztec-node';
|
|
2
2
|
import type { AccountManager } from '@aztec/aztec.js/wallet';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import { type LogFn } from '@aztec/foundation/log';
|
|
3
|
+
import type { ConfigMappingsType } from '@aztec/foundation/config';
|
|
4
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
6
5
|
import type { ProverConfig } from '@aztec/stdlib/interfaces/server';
|
|
7
6
|
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
8
7
|
import type { Command } from 'commander';
|
|
@@ -19,6 +18,13 @@ export declare const enum ExitCode {
|
|
|
19
18
|
}
|
|
20
19
|
export declare function shutdown(logFn: LogFn, exitCode: ExitCode, cb?: Array<() => Promise<void>>): Promise<never>;
|
|
21
20
|
export declare function isShuttingDown(): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Stops the node's subsystems (via the registered signal handlers) without exiting the process, leaving
|
|
23
|
+
* the HTTP health server listening so K8s liveness/readiness probes keep passing. Unlike {@link shutdown}
|
|
24
|
+
* this deliberately does not latch `shutdownPromise` or call `process.exit`; instead it re-arms
|
|
25
|
+
* SIGTERM/SIGINT so a later K8s pod deletion still terminates the wound-down pod with a clean exit.
|
|
26
|
+
*/
|
|
27
|
+
export declare function softShutdown(logFn: LogFn, signalHandlers: Array<() => Promise<void>>): Promise<void>;
|
|
22
28
|
export declare const installSignalHandlers: (logFn: LogFn, cb?: (() => Promise<void>)[] | undefined) => void;
|
|
23
29
|
/**
|
|
24
30
|
* Creates logs for the initial accounts
|
|
@@ -61,6 +67,5 @@ export declare function preloadCrsDataForVerifying({ realProofs }: Pick<AztecNod
|
|
|
61
67
|
* @param log - Logging function
|
|
62
68
|
*/
|
|
63
69
|
export declare function preloadCrsDataForServerSideProving({ realProofs }: Pick<ProverConfig, 'realProofs'>, log: LogFn): Promise<void>;
|
|
64
|
-
export declare function setupVersionChecker(network: NetworkNames, followsCanonicalRollup: boolean, publicClient: ViemClient, signalHandlers: Array<() => Promise<void>>, cacheDir?: string): Promise<void>;
|
|
65
70
|
export declare function stringifyConfig(config: object): string;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBRXBGLDBCQUFrQixRQUFRO0lBQ3hCLE9BQU8sSUFBSTtJQUNYLEtBQUssSUFBSTtJQUNULGNBQWMsS0FBSztJQUNuQixlQUFlLEtBQUs7SUFFcEIsTUFBTSxNQUFNO0lBQ1osTUFBTSxNQUFNO0lBQ1osT0FBTyxNQUFNO0lBQ2IsT0FBTyxNQUFNO0NBQ2Q7QUFHRCx3QkFBZ0IsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBZ0IxRztBQUVELHdCQUFnQixjQUFjLElBQUksT0FBTyxDQUV4QztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBVTFHO0FBRUQsZUFBTyxNQUFNLHFCQUFxQixrRUFhakMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxxQkF5QmhHO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxRQUFRLEVBQUU7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQTtDQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBaUIvRjtBQUVELHdCQUFnQixjQUFjLENBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxlQUFlLEVBQUUsTUFBTSxFQUN2QixnQkFBZ0IsRUFBRSxNQUFNLEdBQ3ZCLE1BQU0sQ0FLUjtBQWlDRCxlQUFPLE1BQU0sVUFBVSxxREFTdEIsQ0FBQztBQUVGLGVBQU8sTUFBTSx1QkFBdUIsY0F5Qm5DLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILGVBQU8sTUFBTSx3QkFBd0IsMEVBU3BDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsZUFBTyxNQUFNLHNCQUFzQixHQUFJLENBQUMsd0ZBa0N2QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FDOUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxFQUNuRCxHQUFHLEVBQUUsS0FBSyxHQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLZjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0Isa0NBQWtDLENBQ3RELEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFDaEQsR0FBRyxFQUFFLEtBQUssR0FDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBS2Y7QUFFRCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUl0RCJ9
|
package/dest/cli/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/cli/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/cli/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,0BAA0B,CAAC;AAEpF,0BAAkB,QAAQ;IACxB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,cAAc,KAAK;IACnB,eAAe,KAAK;IAEpB,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,OAAO,MAAM;IACb,OAAO,MAAM;CACd;AAGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAgB1G;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1G;AAED,eAAO,MAAM,qBAAqB,kEAajC,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,qBAyBhG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAiB/F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAKR;AAiCD,eAAO,MAAM,UAAU,qDAStB,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAyBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0EASpC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,wFAkCvC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EACnD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;GAIG;AACH,wBAAsB,kCAAkC,CACtD,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAChD,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD"}
|
package/dest/cli/util.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { getNetworkConfig } from '@aztec/cli/config';
|
|
2
|
-
import { RegistryContract } from '@aztec/ethereum/contracts';
|
|
3
1
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
4
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
-
import { getPackageVersion } from '@aztec/stdlib/update-checker';
|
|
6
2
|
import chalk from 'chalk';
|
|
7
3
|
import { aztecStartOptions } from './aztec_start_options.js';
|
|
8
4
|
export var ExitCode = /*#__PURE__*/ function(ExitCode) {
|
|
@@ -38,6 +34,25 @@ export function shutdown(logFn, exitCode, cb) {
|
|
|
38
34
|
export function isShuttingDown() {
|
|
39
35
|
return shutdownPromise !== undefined;
|
|
40
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Stops the node's subsystems (via the registered signal handlers) without exiting the process, leaving
|
|
39
|
+
* the HTTP health server listening so K8s liveness/readiness probes keep passing. Unlike {@link shutdown}
|
|
40
|
+
* this deliberately does not latch `shutdownPromise` or call `process.exit`; instead it re-arms
|
|
41
|
+
* SIGTERM/SIGINT so a later K8s pod deletion still terminates the wound-down pod with a clean exit.
|
|
42
|
+
*/ export async function softShutdown(logFn, signalHandlers) {
|
|
43
|
+
logFn('Canonical rollup upgrade detected: stopping subsystems, health server stays up.', {
|
|
44
|
+
exitCode: 78
|
|
45
|
+
});
|
|
46
|
+
await Promise.allSettled(signalHandlers.map((fn)=>fn()));
|
|
47
|
+
for (const sig of [
|
|
48
|
+
'SIGTERM',
|
|
49
|
+
'SIGINT'
|
|
50
|
+
]){
|
|
51
|
+
process.removeAllListeners(sig);
|
|
52
|
+
process.once(sig, ()=>process.exit(78));
|
|
53
|
+
}
|
|
54
|
+
logFn('Subsystems stopped due to rollup upgrade. Health server remains active.');
|
|
55
|
+
}
|
|
41
56
|
export const installSignalHandlers = (logFn, cb)=>{
|
|
42
57
|
const signals = [
|
|
43
58
|
[
|
|
@@ -79,11 +94,13 @@ export const installSignalHandlers = (logFn, cb)=>{
|
|
|
79
94
|
if (registeredAccounts.find((a)=>a.item.equals(completeAddress.address))) {
|
|
80
95
|
accountLogStrings.push(` Address: ${completeAddress.address.toString()}\n`);
|
|
81
96
|
accountLogStrings.push(` Partial Address: ${completeAddress.partialAddress.toString()}\n`);
|
|
82
|
-
accountLogStrings.push(` Secret Key: ${
|
|
83
|
-
accountLogStrings.push(` Master nullifier public key: ${completeAddress.publicKeys.
|
|
84
|
-
accountLogStrings.push(` Master incoming viewing public key: ${completeAddress.publicKeys.
|
|
85
|
-
accountLogStrings.push(` Master outgoing viewing public key: ${completeAddress.publicKeys.
|
|
86
|
-
accountLogStrings.push(` Master tagging public key: ${completeAddress.publicKeys.
|
|
97
|
+
accountLogStrings.push(` Secret Key: ${accountManager.getSecretKey().toString()}\n`);
|
|
98
|
+
accountLogStrings.push(` Master nullifier public key hash: ${completeAddress.publicKeys.npkMHash.toString()}\n`);
|
|
99
|
+
accountLogStrings.push(` Master incoming viewing public key: ${completeAddress.publicKeys.ivpkM.toString()}\n\n`);
|
|
100
|
+
accountLogStrings.push(` Master outgoing viewing public key hash: ${completeAddress.publicKeys.ovpkMHash.toString()}\n\n`);
|
|
101
|
+
accountLogStrings.push(` Master tagging public key hash: ${completeAddress.publicKeys.tpkMHash.toString()}\n\n`);
|
|
102
|
+
accountLogStrings.push(` Master message-signing public key hash: ${completeAddress.publicKeys.mspkMHash.toString()}\n\n`);
|
|
103
|
+
accountLogStrings.push(` Master fallback public key hash: ${completeAddress.publicKeys.fbpkMHash.toString()}\n\n`);
|
|
87
104
|
}
|
|
88
105
|
}
|
|
89
106
|
return accountLogStrings;
|
|
@@ -239,50 +256,6 @@ export const printAztecStartHelpText = ()=>{
|
|
|
239
256
|
]);
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
|
-
export async function setupVersionChecker(network, followsCanonicalRollup, publicClient, signalHandlers, cacheDir) {
|
|
243
|
-
const networkConfig = await getNetworkConfig(network, cacheDir);
|
|
244
|
-
if (!networkConfig) {
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
const { VersionChecker } = await import('@aztec/stdlib/update-checker');
|
|
248
|
-
const logger = createLogger('version_check');
|
|
249
|
-
const registry = new RegistryContract(publicClient, networkConfig.registryAddress);
|
|
250
|
-
const checks = [];
|
|
251
|
-
checks.push({
|
|
252
|
-
name: 'node',
|
|
253
|
-
currentVersion: getPackageVersion() ?? 'unknown',
|
|
254
|
-
getLatestVersion: async ()=>{
|
|
255
|
-
const cfg = await getNetworkConfig(network, cacheDir);
|
|
256
|
-
return cfg?.nodeVersion;
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
if (followsCanonicalRollup) {
|
|
260
|
-
const getLatestVersion = async ()=>{
|
|
261
|
-
const version = (await registry.getRollupVersions()).at(-1);
|
|
262
|
-
return version !== undefined ? String(version) : undefined;
|
|
263
|
-
};
|
|
264
|
-
const currentVersion = await getLatestVersion();
|
|
265
|
-
if (currentVersion !== undefined) {
|
|
266
|
-
checks.push({
|
|
267
|
-
name: 'rollup',
|
|
268
|
-
currentVersion,
|
|
269
|
-
getLatestVersion
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
const checker = new VersionChecker(checks, 600_000, logger);
|
|
274
|
-
checker.on('newVersion', ({ name, latestVersion, currentVersion })=>{
|
|
275
|
-
if (isShuttingDown()) {
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
logger.warn(`New ${name} version available`, {
|
|
279
|
-
latestVersion,
|
|
280
|
-
currentVersion
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
checker.start();
|
|
284
|
-
signalHandlers.push(()=>checker.stop());
|
|
285
|
-
}
|
|
286
259
|
export function stringifyConfig(config) {
|
|
287
260
|
return Object.entries(config).map(([key, value])=>`${key}=${jsonStringify(value)}`).join(' ');
|
|
288
261
|
}
|