@aztec/aztec 0.0.1-fake-ceab37513c → 0.0.6-commit.a2d1860fe9
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/README.md +1 -1
- package/dest/bin/index.d.ts +1 -1
- package/dest/bin/index.js +14 -9
- package/dest/cli/admin_api_key_store.d.ts +45 -0
- package/dest/cli/admin_api_key_store.d.ts.map +1 -0
- package/dest/cli/admin_api_key_store.js +98 -0
- 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 +59 -34
- package/dest/cli/aztec_start_options.d.ts +1 -1
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +46 -45
- package/dest/cli/cli.d.ts +1 -1
- package/dest/cli/cli.js +7 -7
- package/dest/cli/cmds/compile.d.ts +4 -0
- package/dest/cli/cmds/compile.d.ts.map +1 -0
- package/dest/cli/cmds/compile.js +95 -0
- package/dest/cli/cmds/migrate_ha_db.d.ts +3 -0
- package/dest/cli/cmds/migrate_ha_db.d.ts.map +1 -0
- package/dest/cli/cmds/migrate_ha_db.js +27 -0
- package/dest/cli/cmds/start_archiver.d.ts +1 -1
- package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
- package/dest/cli/cmds/start_archiver.js +12 -14
- package/dest/cli/cmds/start_bot.d.ts +4 -7
- package/dest/cli/cmds/start_bot.d.ts.map +1 -1
- package/dest/cli/cmds/start_bot.js +18 -18
- 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 +71 -27
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts +2 -2
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
- package/dest/cli/cmds/start_p2p_bootstrap.js +2 -3
- 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 +4 -4
- 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 +4 -4
- package/dest/cli/cmds/start_txe.d.ts +1 -1
- package/dest/cli/index.d.ts +1 -1
- package/dest/cli/preload_crs.d.ts +1 -1
- package/dest/cli/release_version.d.ts +1 -1
- package/dest/cli/util.d.ts +12 -19
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +16 -11
- package/dest/cli/versioning.d.ts +1 -1
- package/dest/cli/versioning.js +3 -3
- package/dest/examples/token.d.ts +1 -1
- package/dest/examples/token.js +21 -19
- package/dest/examples/util.d.ts +3 -3
- package/dest/examples/util.d.ts.map +1 -1
- package/dest/examples/util.js +1 -1
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/local-network/banana_fpc.d.ts +10 -0
- package/dest/local-network/banana_fpc.d.ts.map +1 -0
- package/dest/{sandbox → local-network}/banana_fpc.js +17 -21
- package/dest/local-network/index.d.ts +4 -0
- package/dest/local-network/index.d.ts.map +1 -0
- package/dest/local-network/index.js +3 -0
- package/dest/local-network/local-network.d.ts +73 -0
- package/dest/local-network/local-network.d.ts.map +1 -0
- package/dest/{sandbox/sandbox.js → local-network/local-network.js} +83 -66
- package/dest/local-network/sponsored_fpc.d.ts +5 -0
- package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
- package/dest/{sandbox → local-network}/sponsored_fpc.js +7 -8
- package/dest/mnemonic.d.ts +1 -1
- package/dest/splash.d.ts +1 -1
- package/dest/testing/anvil_test_watcher.d.ts +12 -4
- package/dest/testing/anvil_test_watcher.d.ts.map +1 -1
- package/dest/testing/anvil_test_watcher.js +69 -31
- package/dest/testing/cheat_codes.d.ts +7 -8
- package/dest/testing/cheat_codes.d.ts.map +1 -1
- package/dest/testing/cheat_codes.js +9 -10
- package/dest/testing/epoch_test_settler.d.ts +19 -0
- package/dest/testing/epoch_test_settler.d.ts.map +1 -0
- package/dest/testing/epoch_test_settler.js +62 -0
- 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/package.json +41 -37
- package/scripts/aztec.sh +62 -0
- package/scripts/extract_function.js +47 -0
- package/scripts/flamegraph.sh +59 -0
- package/scripts/init.sh +35 -0
- package/scripts/new.sh +59 -0
- package/scripts/setup_project.sh +31 -0
- package/src/bin/index.ts +15 -9
- package/src/cli/admin_api_key_store.ts +128 -0
- package/src/cli/aztec_start_action.ts +62 -26
- package/src/cli/aztec_start_options.ts +47 -43
- package/src/cli/cli.ts +11 -11
- package/src/cli/cmds/compile.ts +107 -0
- package/src/cli/cmds/migrate_ha_db.ts +43 -0
- package/src/cli/cmds/start_archiver.ts +8 -19
- package/src/cli/cmds/start_bot.ts +27 -15
- package/src/cli/cmds/start_node.ts +64 -23
- package/src/cli/cmds/start_p2p_bootstrap.ts +3 -3
- package/src/cli/cmds/start_prover_agent.ts +4 -12
- package/src/cli/cmds/start_prover_broker.ts +7 -3
- package/src/cli/util.ts +23 -26
- package/src/cli/versioning.ts +3 -3
- package/src/examples/token.ts +20 -19
- package/src/examples/util.ts +2 -2
- package/src/index.ts +5 -5
- package/src/{sandbox → local-network}/banana_fpc.ts +24 -25
- package/src/local-network/index.ts +7 -0
- package/src/local-network/local-network.ts +267 -0
- package/src/local-network/sponsored_fpc.ts +26 -0
- package/src/testing/anvil_test_watcher.ts +77 -34
- package/src/testing/cheat_codes.ts +13 -13
- package/src/testing/epoch_test_settler.ts +71 -0
- package/src/testing/index.ts +1 -1
- package/dest/cli/cmds/start_blob_sink.d.ts +0 -3
- package/dest/cli/cmds/start_blob_sink.d.ts.map +0 -1
- package/dest/cli/cmds/start_blob_sink.js +0 -33
- package/dest/cli/cmds/start_prover_node.d.ts +0 -7
- package/dest/cli/cmds/start_prover_node.d.ts.map +0 -1
- package/dest/cli/cmds/start_prover_node.js +0 -108
- package/dest/cli/cmds/start_pxe.d.ts +0 -16
- package/dest/cli/cmds/start_pxe.d.ts.map +0 -1
- package/dest/cli/cmds/start_pxe.js +0 -31
- package/dest/sandbox/banana_fpc.d.ts +0 -11
- package/dest/sandbox/banana_fpc.d.ts.map +0 -1
- package/dest/sandbox/index.d.ts +0 -4
- package/dest/sandbox/index.d.ts.map +0 -1
- package/dest/sandbox/index.js +0 -3
- package/dest/sandbox/sandbox.d.ts +0 -84
- package/dest/sandbox/sandbox.d.ts.map +0 -1
- package/dest/sandbox/sponsored_fpc.d.ts +0 -4
- package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
- package/dest/testing/aztec_cheat_codes.d.ts +0 -59
- package/dest/testing/aztec_cheat_codes.d.ts.map +0 -1
- package/dest/testing/aztec_cheat_codes.js +0 -62
- package/src/cli/cmds/start_blob_sink.ts +0 -57
- package/src/cli/cmds/start_prover_node.ts +0 -124
- package/src/cli/cmds/start_pxe.ts +0 -49
- package/src/sandbox/index.ts +0 -4
- package/src/sandbox/sandbox.ts +0 -253
- package/src/sandbox/sponsored_fpc.ts +0 -27
- package/src/testing/aztec_cheat_codes.ts +0 -77
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
KVArchiverDataStore,
|
|
5
|
-
archiverConfigMappings,
|
|
6
|
-
getArchiverConfigFromEnv,
|
|
7
|
-
} from '@aztec/archiver';
|
|
8
|
-
import { createLogger } from '@aztec/aztec.js';
|
|
9
|
-
import { type BlobSinkConfig, blobSinkConfigMapping, createBlobSinkClient } from '@aztec/blob-sink/client';
|
|
1
|
+
import { type ArchiverConfig, archiverConfigMappings, createArchiver, getArchiverConfigFromEnv } from '@aztec/archiver';
|
|
2
|
+
import { createLogger } from '@aztec/aztec.js/log';
|
|
3
|
+
import { type BlobClientConfig, blobClientConfigMapping, createBlobClient } from '@aztec/blob-client/client';
|
|
10
4
|
import { getL1Config } from '@aztec/cli/config';
|
|
11
5
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
12
6
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
13
|
-
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
14
7
|
import { ArchiverApiSchema } from '@aztec/stdlib/interfaces/server';
|
|
15
8
|
import { getConfigEnvVars as getTelemetryClientConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
16
9
|
|
|
@@ -25,9 +18,9 @@ export async function startArchiver(
|
|
|
25
18
|
services: NamespacedApiHandlers,
|
|
26
19
|
): Promise<{ config: ArchiverConfig & DataStoreConfig }> {
|
|
27
20
|
const envConfig = getArchiverConfigFromEnv();
|
|
28
|
-
const cliOptions = extractRelevantOptions<ArchiverConfig & DataStoreConfig &
|
|
21
|
+
const cliOptions = extractRelevantOptions<ArchiverConfig & DataStoreConfig & BlobClientConfig>(
|
|
29
22
|
options,
|
|
30
|
-
{ ...archiverConfigMappings, ...dataConfigMappings, ...
|
|
23
|
+
{ ...archiverConfigMappings, ...dataConfigMappings, ...blobClientConfigMapping },
|
|
31
24
|
'archiver',
|
|
32
25
|
);
|
|
33
26
|
|
|
@@ -47,13 +40,9 @@ export async function startArchiver(
|
|
|
47
40
|
archiverConfig.l1Contracts = addresses;
|
|
48
41
|
archiverConfig = { ...archiverConfig, ...l1Config };
|
|
49
42
|
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
const telemetry = initTelemetryClient(getTelemetryClientConfig());
|
|
55
|
-
const blobSinkClient = createBlobSinkClient(archiverConfig, { logger: createLogger('archiver:blob-sink:client') });
|
|
56
|
-
const archiver = await Archiver.createAndSync(archiverConfig, archiverStore, { telemetry, blobSinkClient }, true);
|
|
43
|
+
const telemetry = await initTelemetryClient(getTelemetryClientConfig());
|
|
44
|
+
const blobClient = createBlobClient(archiverConfig, { logger: createLogger('archiver:blob-client:client') });
|
|
45
|
+
const archiver = await createArchiver(archiverConfig, { telemetry, blobClient }, { blockUntilSync: true });
|
|
57
46
|
services.archiver = [archiver, ArchiverApiSchema];
|
|
58
47
|
signalHandlers.push(archiver.stop);
|
|
59
48
|
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { type BotConfig, BotRunner, botConfigMappings, getBotRunnerApiHandler } from '@aztec/bot';
|
|
1
|
+
import { type BotConfig, BotRunner, BotStore, botConfigMappings, getBotRunnerApiHandler } from '@aztec/bot';
|
|
2
2
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
3
3
|
import type { LogFn } from '@aztec/foundation/log';
|
|
4
|
-
import {
|
|
4
|
+
import { createStore, openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
5
|
+
import { type CliPXEOptions, type PXEConfig, allPxeConfigMappings } from '@aztec/pxe/config';
|
|
6
|
+
import { type AztecNode, type AztecNodeAdmin, createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
|
|
5
7
|
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
6
8
|
import {
|
|
7
9
|
getConfigEnvVars as getTelemetryClientConfig,
|
|
8
10
|
initTelemetryClient,
|
|
9
11
|
makeTracedFetch,
|
|
10
12
|
} from '@aztec/telemetry-client';
|
|
13
|
+
import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
11
14
|
|
|
12
|
-
import { extractRelevantOptions } from '../util.js';
|
|
15
|
+
import { extractRelevantOptions, stringifyConfig } from '../util.js';
|
|
13
16
|
import { getVersions } from '../versioning.js';
|
|
14
17
|
|
|
15
18
|
export async function startBot(
|
|
@@ -32,28 +35,37 @@ export async function startBot(
|
|
|
32
35
|
throw new Error('The bot requires access to a Node');
|
|
33
36
|
}
|
|
34
37
|
|
|
35
|
-
const
|
|
38
|
+
const aztecNode = createAztecNodeClient(config.nodeUrl, getVersions(), fetch);
|
|
36
39
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const { addPXE } = await import('./start_pxe.js');
|
|
41
|
-
({ pxe } = await addPXE(options, signalHandlers, services, userLog, { node }));
|
|
42
|
-
}
|
|
40
|
+
const pxeConfig = extractRelevantOptions<PXEConfig & CliPXEOptions>(options, allPxeConfigMappings, 'pxe');
|
|
41
|
+
userLog(`Creating bot wallet with config ${stringifyConfig(pxeConfig)}`);
|
|
42
|
+
const wallet = await EmbeddedWallet.create(aztecNode, { pxeConfig });
|
|
43
43
|
|
|
44
|
-
const telemetry = initTelemetryClient(getTelemetryClientConfig());
|
|
45
|
-
await addBot(options, signalHandlers, services,
|
|
44
|
+
const telemetry = await initTelemetryClient(getTelemetryClientConfig());
|
|
45
|
+
await addBot(options, signalHandlers, services, wallet, aztecNode, telemetry, undefined, userLog);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
export function addBot(
|
|
48
|
+
export async function addBot(
|
|
49
49
|
options: any,
|
|
50
50
|
signalHandlers: (() => Promise<void>)[],
|
|
51
51
|
services: NamespacedApiHandlers,
|
|
52
|
-
|
|
52
|
+
wallet: EmbeddedWallet,
|
|
53
|
+
aztecNode: AztecNode,
|
|
54
|
+
telemetry: TelemetryClient,
|
|
55
|
+
aztecNodeAdmin?: AztecNodeAdmin,
|
|
56
|
+
userLog?: LogFn,
|
|
53
57
|
) {
|
|
54
58
|
const config = extractRelevantOptions<BotConfig>(options, botConfigMappings, 'bot');
|
|
59
|
+
userLog?.(`Starting bot with config ${stringifyConfig(config)}`);
|
|
60
|
+
|
|
61
|
+
const db = await (config.dataDirectory
|
|
62
|
+
? createStore('bot', BotStore.SCHEMA_VERSION, config)
|
|
63
|
+
: openTmpStore('bot', true, config.dataStoreMapSizeKb));
|
|
64
|
+
|
|
65
|
+
const store = new BotStore(db);
|
|
66
|
+
await store.cleanupOldClaims();
|
|
55
67
|
|
|
56
|
-
const botRunner = new BotRunner(config,
|
|
68
|
+
const botRunner = new BotRunner(config, wallet, aztecNode, telemetry, aztecNodeAdmin, store);
|
|
57
69
|
if (!config.noStart) {
|
|
58
70
|
void botRunner.start(); // Do not block since bot setup takes time
|
|
59
71
|
}
|
|
@@ -1,28 +1,35 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
2
2
|
import { type AztecNodeConfig, aztecNodeConfigMappings, getConfigEnvVars } from '@aztec/aztec-node';
|
|
3
|
-
import { Fr } from '@aztec/aztec.js';
|
|
3
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
4
4
|
import { getSponsoredFPCAddress } from '@aztec/cli/cli-utils';
|
|
5
5
|
import { getL1Config } from '@aztec/cli/config';
|
|
6
|
-
import { getPublicClient } from '@aztec/ethereum';
|
|
6
|
+
import { getPublicClient } from '@aztec/ethereum/client';
|
|
7
7
|
import { SecretValue } from '@aztec/foundation/config';
|
|
8
8
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
9
|
+
import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
|
|
9
10
|
import type { LogFn } from '@aztec/foundation/log';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
11
|
+
import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
|
|
12
|
+
import { type CliPXEOptions, type PXEConfig, allPxeConfigMappings } from '@aztec/pxe/config';
|
|
13
|
+
import { AztecNodeAdminApiSchema, AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
|
|
14
|
+
import { P2PApiSchema, ProverNodeApiSchema, type ProvingJobBroker } from '@aztec/stdlib/interfaces/server';
|
|
12
15
|
import {
|
|
13
16
|
type TelemetryClientConfig,
|
|
14
17
|
initTelemetryClient,
|
|
18
|
+
makeTracedFetch,
|
|
15
19
|
telemetryClientConfigMappings,
|
|
16
20
|
} from '@aztec/telemetry-client';
|
|
21
|
+
import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
17
22
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
18
23
|
|
|
19
|
-
import { createAztecNode } from '../../
|
|
24
|
+
import { createAztecNode } from '../../local-network/index.js';
|
|
20
25
|
import {
|
|
21
26
|
extractNamespacedOptions,
|
|
22
27
|
extractRelevantOptions,
|
|
23
28
|
preloadCrsDataForVerifying,
|
|
24
29
|
setupUpdateMonitor,
|
|
25
30
|
} from '../util.js';
|
|
31
|
+
import { getVersions } from '../versioning.js';
|
|
32
|
+
import { startProverBroker } from './start_prover_broker.js';
|
|
26
33
|
|
|
27
34
|
export async function startNode(
|
|
28
35
|
options: any,
|
|
@@ -43,14 +50,37 @@ export async function startNode(
|
|
|
43
50
|
...relevantOptions,
|
|
44
51
|
};
|
|
45
52
|
|
|
53
|
+
// Prover node configuration and broker setup
|
|
54
|
+
// REFACTOR: Move the broker setup out of here and into the prover-node factory
|
|
55
|
+
let broker: ProvingJobBroker | undefined = undefined;
|
|
46
56
|
if (options.proverNode) {
|
|
47
|
-
|
|
48
|
-
|
|
57
|
+
nodeConfig.enableProverNode = true;
|
|
58
|
+
if (nodeConfig.proverAgentCount === 0) {
|
|
59
|
+
userLog(
|
|
60
|
+
`Running prover node without local prover agent. Connect prover agents or pass --proverAgent.proverAgentCount`,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
if (nodeConfig.proverBrokerUrl) {
|
|
64
|
+
// at 1TPS we'd enqueue ~1k chonk verifier proofs and ~1k AVM proofs immediately
|
|
65
|
+
// set a lower connection limit such that we don't overload the server
|
|
66
|
+
// Keep retrying up to 30s
|
|
67
|
+
const fetch = makeTracedFetch(
|
|
68
|
+
[1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3],
|
|
69
|
+
false,
|
|
70
|
+
makeUndiciFetch(new Agent({ connections: 100 })),
|
|
71
|
+
);
|
|
72
|
+
broker = createProvingJobBrokerClient(nodeConfig.proverBrokerUrl, getVersions(nodeConfig), fetch);
|
|
73
|
+
} else if (options.proverBroker) {
|
|
74
|
+
({ broker } = await startProverBroker(options, signalHandlers, services, userLog));
|
|
75
|
+
} else {
|
|
76
|
+
userLog(`--prover-broker-url or --prover-broker is required to start a Prover Node`);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
49
79
|
}
|
|
50
80
|
|
|
51
81
|
await preloadCrsDataForVerifying(nodeConfig, userLog);
|
|
52
82
|
|
|
53
|
-
const testAccounts = nodeConfig.testAccounts ? (await
|
|
83
|
+
const testAccounts = nodeConfig.testAccounts ? (await getInitialTestAccountsData()).map(a => a.address) : [];
|
|
54
84
|
const sponsoredFPCAccounts = nodeConfig.sponsoredFPC ? [await getSponsoredFPCAddress()] : [];
|
|
55
85
|
const initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts);
|
|
56
86
|
|
|
@@ -91,7 +121,7 @@ export async function startNode(
|
|
|
91
121
|
...config,
|
|
92
122
|
};
|
|
93
123
|
|
|
94
|
-
if (!options.sequencer) {
|
|
124
|
+
if (!options.sequencer && !nodeConfig.fishermanMode) {
|
|
95
125
|
nodeConfig.disableValidator = true;
|
|
96
126
|
} else {
|
|
97
127
|
const sequencerConfig = {
|
|
@@ -99,12 +129,17 @@ export async function startNode(
|
|
|
99
129
|
...extractNamespacedOptions(options, 'sequencer'),
|
|
100
130
|
};
|
|
101
131
|
// If no publisher private keys have been given, use the first validator key
|
|
102
|
-
if (
|
|
132
|
+
if (
|
|
133
|
+
sequencerConfig.sequencerPublisherPrivateKeys === undefined ||
|
|
134
|
+
!sequencerConfig.sequencerPublisherPrivateKeys.length
|
|
135
|
+
) {
|
|
103
136
|
if (sequencerConfig.validatorPrivateKeys?.getValue().length) {
|
|
104
|
-
sequencerConfig.
|
|
137
|
+
sequencerConfig.sequencerPublisherPrivateKeys = [
|
|
138
|
+
new SecretValue(sequencerConfig.validatorPrivateKeys.getValue()[0]),
|
|
139
|
+
];
|
|
105
140
|
}
|
|
106
141
|
}
|
|
107
|
-
nodeConfig.
|
|
142
|
+
nodeConfig.sequencerPublisherPrivateKeys = sequencerConfig.sequencerPublisherPrivateKeys;
|
|
108
143
|
}
|
|
109
144
|
|
|
110
145
|
if (nodeConfig.p2pEnabled) {
|
|
@@ -115,30 +150,36 @@ export async function startNode(
|
|
|
115
150
|
}
|
|
116
151
|
|
|
117
152
|
const telemetryConfig = extractRelevantOptions<TelemetryClientConfig>(options, telemetryClientConfigMappings, 'tel');
|
|
118
|
-
const telemetry = initTelemetryClient(telemetryConfig);
|
|
153
|
+
const telemetry = await initTelemetryClient(telemetryConfig);
|
|
119
154
|
|
|
120
155
|
// Create and start Aztec Node
|
|
121
|
-
const node = await createAztecNode(nodeConfig, { telemetry }, { prefilledPublicData });
|
|
156
|
+
const node = await createAztecNode(nodeConfig, { telemetry, proverBroker: broker }, { prefilledPublicData });
|
|
122
157
|
|
|
123
158
|
// Add node and p2p to services list
|
|
124
159
|
services.node = [node, AztecNodeApiSchema];
|
|
125
160
|
services.p2p = [node.getP2P(), P2PApiSchema];
|
|
126
161
|
adminServices.nodeAdmin = [node, AztecNodeAdminApiSchema];
|
|
127
162
|
|
|
163
|
+
// Register prover-node services if the prover node subsystem is running
|
|
164
|
+
const proverNode = node.getProverNode();
|
|
165
|
+
if (proverNode) {
|
|
166
|
+
services.prover = [proverNode, ProverNodeApiSchema];
|
|
167
|
+
if (!nodeConfig.proverBrokerUrl) {
|
|
168
|
+
services.provingJobSource = [proverNode.getProver().getProvingJobSource(), ProvingJobConsumerSchema];
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
128
172
|
// Add node stop function to signal handlers
|
|
129
173
|
signalHandlers.push(node.stop.bind(node));
|
|
130
174
|
|
|
131
|
-
// Add a PXE client that connects to this node if requested
|
|
132
|
-
let pxe: PXE | undefined;
|
|
133
|
-
if (options.pxe) {
|
|
134
|
-
const { addPXE } = await import('./start_pxe.js');
|
|
135
|
-
({ pxe } = await addPXE(options, signalHandlers, services, userLog, { node }));
|
|
136
|
-
}
|
|
137
|
-
|
|
138
175
|
// Add a txs bot if requested
|
|
139
176
|
if (options.bot) {
|
|
140
177
|
const { addBot } = await import('./start_bot.js');
|
|
141
|
-
|
|
178
|
+
|
|
179
|
+
const pxeConfig = extractRelevantOptions<PXEConfig & CliPXEOptions>(options, allPxeConfigMappings, 'pxe');
|
|
180
|
+
const wallet = await EmbeddedWallet.create(node, { pxeConfig });
|
|
181
|
+
|
|
182
|
+
await addBot(options, signalHandlers, services, wallet, node, telemetry, undefined);
|
|
142
183
|
}
|
|
143
184
|
|
|
144
185
|
if (nodeConfig.autoUpdate !== 'disabled' && nodeConfig.autoUpdateUrl) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
2
2
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
3
|
-
import {
|
|
3
|
+
import type { LogFn } from '@aztec/foundation/log';
|
|
4
4
|
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
5
5
|
import { type BootnodeConfig, BootstrapNode, bootnodeConfigMappings } from '@aztec/p2p';
|
|
6
6
|
import { emptyChainConfig } from '@aztec/stdlib/config';
|
|
@@ -25,9 +25,9 @@ export async function startP2PBootstrap(
|
|
|
25
25
|
userLog(`Starting P2P bootstrap node with config: ${jsonStringify(safeConfig)}`);
|
|
26
26
|
|
|
27
27
|
const telemetryConfig = extractRelevantOptions<TelemetryClientConfig>(options, telemetryClientConfigMappings, 'tel');
|
|
28
|
-
const telemetryClient = initTelemetryClient(telemetryConfig);
|
|
28
|
+
const telemetryClient = await initTelemetryClient(telemetryConfig);
|
|
29
29
|
|
|
30
|
-
const store = await createStore('p2p-bootstrap', 1, config
|
|
30
|
+
const store = await createStore('p2p-bootstrap', 1, config);
|
|
31
31
|
const node = new BootstrapNode(store, telemetryClient);
|
|
32
32
|
await node.start(config);
|
|
33
33
|
signalHandlers.push(() => node.stop());
|
|
@@ -4,9 +4,9 @@ import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
|
|
|
4
4
|
import type { LogFn } from '@aztec/foundation/log';
|
|
5
5
|
import { buildServerCircuitProver } from '@aztec/prover-client';
|
|
6
6
|
import {
|
|
7
|
-
InlineProofStore,
|
|
8
7
|
type ProverAgentConfig,
|
|
9
8
|
ProvingAgent,
|
|
9
|
+
createProofStore,
|
|
10
10
|
createProvingJobBrokerClient,
|
|
11
11
|
proverAgentConfigMappings,
|
|
12
12
|
} from '@aztec/prover-client/broker';
|
|
@@ -53,20 +53,12 @@ export async function startProverAgent(
|
|
|
53
53
|
);
|
|
54
54
|
const broker = createProvingJobBrokerClient(config.proverBrokerUrl, getVersions(), fetch);
|
|
55
55
|
|
|
56
|
-
const telemetry = initTelemetryClient(extractRelevantOptions(options, telemetryClientConfigMappings, 'tel'));
|
|
56
|
+
const telemetry = await initTelemetryClient(extractRelevantOptions(options, telemetryClientConfigMappings, 'tel'));
|
|
57
57
|
const prover = await buildServerCircuitProver(config, telemetry);
|
|
58
|
-
const proofStore =
|
|
58
|
+
const proofStore = await createProofStore(config.proofStore);
|
|
59
59
|
const agents = times(
|
|
60
60
|
config.proverAgentCount,
|
|
61
|
-
() =>
|
|
62
|
-
new ProvingAgent(
|
|
63
|
-
broker,
|
|
64
|
-
proofStore,
|
|
65
|
-
prover,
|
|
66
|
-
config.proverAgentProofTypes,
|
|
67
|
-
config.proverAgentPollIntervalMs,
|
|
68
|
-
telemetry,
|
|
69
|
-
),
|
|
61
|
+
() => new ProvingAgent(broker, proofStore, prover, config.proverAgentProofTypes, config.proverAgentPollIntervalMs),
|
|
70
62
|
);
|
|
71
63
|
|
|
72
64
|
// expose all agents as individual services
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { getL1Config } from '@aztec/cli/config';
|
|
2
|
-
import { getPublicClient } from '@aztec/ethereum';
|
|
2
|
+
import { getPublicClient } from '@aztec/ethereum/client';
|
|
3
3
|
import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
|
|
4
4
|
import type { LogFn } from '@aztec/foundation/log';
|
|
5
5
|
import {
|
|
6
6
|
type ProverBrokerConfig,
|
|
7
7
|
ProvingJobBrokerSchema,
|
|
8
|
+
ProvingJobBrokerSchemaWithDebug,
|
|
8
9
|
createAndStartProvingBroker,
|
|
9
10
|
proverBrokerConfigMappings,
|
|
10
11
|
} from '@aztec/prover-client/broker';
|
|
@@ -45,7 +46,7 @@ export async function startProverBroker(
|
|
|
45
46
|
config.l1Contracts = addresses;
|
|
46
47
|
config.rollupVersion = rollupConfig.rollupVersion;
|
|
47
48
|
|
|
48
|
-
const client = initTelemetryClient(getTelemetryClientConfig());
|
|
49
|
+
const client = await initTelemetryClient(getTelemetryClientConfig());
|
|
49
50
|
const broker = await createAndStartProvingBroker(config, client);
|
|
50
51
|
|
|
51
52
|
if (options.autoUpdate !== 'disabled' && options.autoUpdateUrl) {
|
|
@@ -59,7 +60,10 @@ export async function startProverBroker(
|
|
|
59
60
|
);
|
|
60
61
|
}
|
|
61
62
|
|
|
62
|
-
services.proverBroker = [
|
|
63
|
+
services.proverBroker = [
|
|
64
|
+
broker,
|
|
65
|
+
config.proverBrokerDebugReplayEnabled ? ProvingJobBrokerSchemaWithDebug : ProvingJobBrokerSchema,
|
|
66
|
+
];
|
|
63
67
|
signalHandlers.push(() => broker.stop());
|
|
64
68
|
|
|
65
69
|
return { broker, config };
|
package/src/cli/util.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { AztecNodeConfig } from '@aztec/aztec-node';
|
|
2
|
-
import type { AccountManager
|
|
3
|
-
import type { ViemClient } from '@aztec/ethereum';
|
|
2
|
+
import type { AccountManager } from '@aztec/aztec.js/wallet';
|
|
3
|
+
import type { ViemClient } from '@aztec/ethereum/types';
|
|
4
4
|
import type { ConfigMappingsType } from '@aztec/foundation/config';
|
|
5
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
|
+
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
5
7
|
import { type LogFn, createLogger } from '@aztec/foundation/log';
|
|
6
8
|
import type { SharedNodeConfig } from '@aztec/node-lib/config';
|
|
7
|
-
import type { PXEService } from '@aztec/pxe/server';
|
|
8
9
|
import type { ProverConfig } from '@aztec/stdlib/interfaces/server';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
10
|
+
import { getTelemetryClient } from '@aztec/telemetry-client/start';
|
|
11
|
+
import type { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
11
12
|
|
|
12
13
|
import chalk from 'chalk';
|
|
13
14
|
import type { Command } from 'commander';
|
|
@@ -35,7 +36,7 @@ export function shutdown(logFn: LogFn, exitCode: ExitCode, cb?: Array<() => Prom
|
|
|
35
36
|
|
|
36
37
|
logFn('Shutting down...', { exitCode });
|
|
37
38
|
if (cb) {
|
|
38
|
-
shutdownPromise = Promise.allSettled(cb).then(() => process.exit(exitCode));
|
|
39
|
+
shutdownPromise = Promise.allSettled(cb.map(fn => fn())).then(() => process.exit(exitCode));
|
|
39
40
|
} else {
|
|
40
41
|
// synchronously shuts down the process
|
|
41
42
|
// no need to set shutdownPromise on this branch of the if statement because no more code will be executed
|
|
@@ -67,30 +68,19 @@ export const installSignalHandlers = (logFn: LogFn, cb?: Array<() => Promise<voi
|
|
|
67
68
|
/**
|
|
68
69
|
* Creates logs for the initial accounts
|
|
69
70
|
* @param accounts - The initial accounts
|
|
70
|
-
* @param
|
|
71
|
+
* @param wallet - A EmbeddedWallet instance to get the registered accounts
|
|
71
72
|
* @returns A string array containing the initial accounts details
|
|
72
73
|
*/
|
|
73
|
-
export async function createAccountLogs(
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* The account object
|
|
77
|
-
*/
|
|
78
|
-
account: AccountManager;
|
|
79
|
-
/**
|
|
80
|
-
* The secret key of the account
|
|
81
|
-
*/
|
|
82
|
-
secretKey: Fr;
|
|
83
|
-
}[],
|
|
84
|
-
pxe: PXEService,
|
|
85
|
-
) {
|
|
86
|
-
const registeredAccounts = await pxe.getRegisteredAccounts();
|
|
74
|
+
export async function createAccountLogs(accountManagers: AccountManager[], wallet: EmbeddedWallet) {
|
|
75
|
+
const registeredAccounts = await wallet.getAccounts();
|
|
87
76
|
const accountLogStrings = [`Initial Accounts:\n\n`];
|
|
88
|
-
for (const
|
|
89
|
-
const
|
|
90
|
-
|
|
77
|
+
for (const accountManager of accountManagers) {
|
|
78
|
+
const account = await accountManager.getAccount();
|
|
79
|
+
const completeAddress = account.getCompleteAddress();
|
|
80
|
+
if (registeredAccounts.find(a => a.item.equals(completeAddress.address))) {
|
|
91
81
|
accountLogStrings.push(` Address: ${completeAddress.address.toString()}\n`);
|
|
92
82
|
accountLogStrings.push(` Partial Address: ${completeAddress.partialAddress.toString()}\n`);
|
|
93
|
-
accountLogStrings.push(` Secret Key: ${
|
|
83
|
+
accountLogStrings.push(` Secret Key: ${account.getSecretKey().toString()}\n`);
|
|
94
84
|
accountLogStrings.push(
|
|
95
85
|
` Master nullifier public key: ${completeAddress.publicKeys.masterNullifierPublicKey.toString()}\n`,
|
|
96
86
|
);
|
|
@@ -271,7 +261,7 @@ export const extractRelevantOptions = <T>(
|
|
|
271
261
|
};
|
|
272
262
|
|
|
273
263
|
/**
|
|
274
|
-
* Downloads just enough points to be able to verify
|
|
264
|
+
* Downloads just enough points to be able to verify Chonk proofs.
|
|
275
265
|
* @param opts - Whether proof are to be verifier
|
|
276
266
|
* @param log - Logging function
|
|
277
267
|
*/
|
|
@@ -310,6 +300,7 @@ export async function setupUpdateMonitor(
|
|
|
310
300
|
updateNodeConfig?: (config: object) => Promise<void>,
|
|
311
301
|
) {
|
|
312
302
|
const logger = createLogger('update-check');
|
|
303
|
+
const { UpdateChecker } = await import('@aztec/stdlib/update-checker');
|
|
313
304
|
const checker = await UpdateChecker.new({
|
|
314
305
|
baseURL: updatesLocation,
|
|
315
306
|
publicClient,
|
|
@@ -386,3 +377,9 @@ export async function setupUpdateMonitor(
|
|
|
386
377
|
|
|
387
378
|
checker.start();
|
|
388
379
|
}
|
|
380
|
+
|
|
381
|
+
export function stringifyConfig(config: object): string {
|
|
382
|
+
return Object.entries(config)
|
|
383
|
+
.map(([key, value]) => `${key}=${jsonStringify(value)}`)
|
|
384
|
+
.join(' ');
|
|
385
|
+
}
|
package/src/cli/versioning.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
2
|
-
import {
|
|
2
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
3
3
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
4
4
|
import { type ComponentsVersions, getComponentsVersionsFromConfig } from '@aztec/stdlib/versioning';
|
|
5
5
|
|
|
6
6
|
export function getVersions(config?: ChainConfig): Partial<ComponentsVersions> {
|
|
7
7
|
return config
|
|
8
|
-
? getComponentsVersionsFromConfig(config,
|
|
8
|
+
? getComponentsVersionsFromConfig(config, protocolContractsHash, getVKTreeRoot())
|
|
9
9
|
: {
|
|
10
10
|
l2CircuitsVkTreeRoot: getVKTreeRoot().toString(),
|
|
11
|
-
|
|
11
|
+
l2ProtocolContractsHash: protocolContractsHash.toString(),
|
|
12
12
|
};
|
|
13
13
|
}
|
package/src/examples/token.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getInitialTestAccountsData } from '@aztec/accounts/testing';
|
|
2
|
+
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
5
|
+
import { EmbeddedWallet } from '@aztec/wallets/embedded';
|
|
5
6
|
|
|
6
7
|
const logger = createLogger('example:token');
|
|
7
8
|
|
|
8
|
-
const
|
|
9
|
+
const nodeUrl = 'http://localhost:8080';
|
|
9
10
|
|
|
10
|
-
const
|
|
11
|
+
const node = createAztecNodeClient(nodeUrl);
|
|
11
12
|
|
|
12
13
|
const ALICE_MINT_BALANCE = 333n;
|
|
13
14
|
const TRANSFER_AMOUNT = 33n;
|
|
@@ -18,40 +19,40 @@ const TRANSFER_AMOUNT = 33n;
|
|
|
18
19
|
async function main() {
|
|
19
20
|
logger.info('Running token contract test on HTTP interface.');
|
|
20
21
|
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const wallet = await EmbeddedWallet.create(node);
|
|
23
|
+
|
|
24
|
+
// During local network setup we deploy a few accounts. Below we add them to our wallet.
|
|
25
|
+
const [aliceInitialAccountData, bobInitialAccountData] = await getInitialTestAccountsData();
|
|
26
|
+
await wallet.createSchnorrAccount(aliceInitialAccountData.secret, aliceInitialAccountData.salt);
|
|
27
|
+
await wallet.createSchnorrAccount(bobInitialAccountData.secret, bobInitialAccountData.salt);
|
|
28
|
+
|
|
29
|
+
const alice = aliceInitialAccountData.address;
|
|
30
|
+
const bob = bobInitialAccountData.address;
|
|
24
31
|
|
|
25
32
|
logger.info(`Fetched Alice and Bob accounts: ${alice.toString()}, ${bob.toString()}`);
|
|
26
33
|
|
|
27
34
|
logger.info('Deploying Token...');
|
|
28
|
-
const token = await TokenContract.deploy(
|
|
29
|
-
.send({ from: alice })
|
|
30
|
-
.deployed();
|
|
35
|
+
const token = await TokenContract.deploy(wallet, alice, 'TokenName', 'TokenSymbol', 18).send({ from: alice });
|
|
31
36
|
logger.info('Token deployed');
|
|
32
37
|
|
|
33
|
-
// Create the contract abstraction and link it to Alice's and Bob's wallet for future signing
|
|
34
|
-
const tokenAlice = await TokenContract.at(token.address, aliceWallet);
|
|
35
|
-
const tokenBob = await TokenContract.at(token.address, bobWallet);
|
|
36
|
-
|
|
37
38
|
// Mint tokens to Alice
|
|
38
39
|
logger.info(`Minting ${ALICE_MINT_BALANCE} more coins to Alice...`);
|
|
39
|
-
await
|
|
40
|
+
await token.methods.mint_to_private(alice, ALICE_MINT_BALANCE).send({ from: alice });
|
|
40
41
|
|
|
41
42
|
logger.info(`${ALICE_MINT_BALANCE} tokens were successfully minted by Alice and transferred to private`);
|
|
42
43
|
|
|
43
|
-
const balanceAfterMint = await
|
|
44
|
+
const balanceAfterMint = await token.methods.balance_of_private(alice).simulate({ from: alice });
|
|
44
45
|
logger.info(`Tokens successfully minted. New Alice's balance: ${balanceAfterMint}`);
|
|
45
46
|
|
|
46
47
|
// We will now transfer tokens from Alice to Bob
|
|
47
48
|
logger.info(`Transferring ${TRANSFER_AMOUNT} tokens from Alice to Bob...`);
|
|
48
|
-
await
|
|
49
|
+
await token.methods.transfer(bob, TRANSFER_AMOUNT).send({ from: alice });
|
|
49
50
|
|
|
50
51
|
// Check the new balances
|
|
51
|
-
const aliceBalance = await
|
|
52
|
+
const aliceBalance = await token.methods.balance_of_private(alice).simulate({ from: alice });
|
|
52
53
|
logger.info(`Alice's balance ${aliceBalance}`);
|
|
53
54
|
|
|
54
|
-
const bobBalance = await
|
|
55
|
+
const bobBalance = await token.methods.balance_of_private(bob).simulate({ from: bob });
|
|
55
56
|
logger.info(`Bob's balance ${bobBalance}`);
|
|
56
57
|
}
|
|
57
58
|
|
package/src/examples/util.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec/aztec.js';
|
|
2
|
-
import type { ExtendedViemWalletClient } from '@aztec/ethereum';
|
|
1
|
+
import { EthAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
|
|
3
3
|
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
4
4
|
|
|
5
5
|
import type { Abi, Narrow } from 'abitype';
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} from './
|
|
2
|
+
createLocalNetwork,
|
|
3
|
+
registerDeployedBananaCoinInWalletAndGetAddress,
|
|
4
|
+
registerDeployedBananaFPCInWalletAndGetAddress,
|
|
5
|
+
registerDeployedSponsoredFPCInWalletAndGetAddress,
|
|
6
|
+
} from './local-network/index.js';
|