@aztec/end-to-end 0.0.0-test.1 → 0.0.1-commit.24de95ac
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/bench/client_flows/benchmark.d.ts +61 -0
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -0
- package/dest/bench/client_flows/benchmark.js +261 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +73 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -0
- package/dest/bench/client_flows/client_flows_benchmark.js +311 -0
- package/dest/bench/client_flows/config.d.ts +14 -0
- package/dest/bench/client_flows/config.d.ts.map +1 -0
- package/dest/bench/client_flows/config.js +106 -0
- package/dest/bench/client_flows/data_extractor.d.ts +2 -0
- package/dest/bench/client_flows/data_extractor.d.ts.map +1 -0
- package/dest/bench/client_flows/data_extractor.js +99 -0
- package/dest/bench/utils.d.ts +10 -36
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +26 -66
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +20 -12
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +85 -57
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +18 -24
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +48 -69
- package/dest/e2e_deploy_contract/deploy_test.d.ts +14 -6
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +13 -19
- package/dest/e2e_epochs/epochs_test.d.ts +58 -17
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +224 -43
- package/dest/e2e_fees/bridging_race.notest.d.ts +2 -0
- package/dest/e2e_fees/bridging_race.notest.d.ts.map +1 -0
- package/dest/e2e_fees/bridging_race.notest.js +63 -0
- package/dest/e2e_fees/fees_test.d.ts +20 -9
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +98 -107
- package/dest/e2e_l1_publisher/write_json.d.ts +10 -0
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -0
- package/dest/e2e_l1_publisher/write_json.js +57 -0
- package/dest/e2e_multi_validator/utils.d.ts +12 -0
- package/dest/e2e_multi_validator/utils.d.ts.map +1 -0
- package/dest/e2e_multi_validator/utils.js +214 -0
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +9 -6
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +22 -19
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
- package/dest/e2e_p2p/inactivity_slash_test.js +135 -0
- package/dest/e2e_p2p/p2p_network.d.ts +69 -22
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +180 -129
- package/dest/e2e_p2p/shared.d.ts +41 -5
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +163 -19
- package/dest/e2e_token_contract/token_contract_test.d.ts +11 -5
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +50 -26
- package/dest/{e2e_prover → fixtures}/e2e_prover_test.d.ts +14 -9
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -0
- package/dest/{e2e_prover → fixtures}/e2e_prover_test.js +95 -100
- package/dest/fixtures/fixtures.d.ts +5 -6
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +4 -3
- package/dest/fixtures/get_acvm_config.d.ts +1 -1
- package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
- package/dest/fixtures/get_acvm_config.js +2 -14
- package/dest/fixtures/get_bb_config.d.ts +1 -1
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +10 -17
- package/dest/fixtures/l1_to_l2_messaging.d.ts +8 -5
- package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
- package/dest/fixtures/l1_to_l2_messaging.js +44 -18
- package/dest/fixtures/setup_l1_contracts.d.ts +3 -3
- package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
- package/dest/fixtures/setup_l1_contracts.js +4 -4
- package/dest/fixtures/setup_p2p_test.d.ts +14 -13
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +73 -21
- package/dest/fixtures/snapshot_manager.d.ts +15 -7
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +147 -121
- package/dest/fixtures/token_utils.d.ts +6 -3
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +23 -10
- package/dest/fixtures/utils.d.ts +76 -37
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +464 -368
- package/dest/fixtures/web3signer.d.ts +5 -0
- package/dest/fixtures/web3signer.d.ts.map +1 -0
- package/dest/fixtures/web3signer.js +53 -0
- package/dest/quality_of_service/alert_checker.d.ts +1 -1
- package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts +41 -25
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +104 -50
- package/dest/shared/gas_portal_test_harness.d.ts +32 -24
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +50 -29
- package/dest/shared/jest_setup.js +1 -1
- package/dest/shared/submit-transactions.d.ts +5 -3
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +8 -7
- package/dest/shared/uniswap_l1_l2.d.ts +13 -11
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +138 -108
- package/dest/simulators/lending_simulator.d.ts +6 -6
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +13 -16
- package/dest/simulators/token_simulator.d.ts +5 -2
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +16 -13
- package/dest/spartan/setup_test_wallets.d.ts +23 -10
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +167 -58
- package/dest/spartan/utils.d.ts +106 -303
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +434 -130
- package/package.json +61 -56
- package/src/bench/client_flows/benchmark.ts +341 -0
- package/src/bench/client_flows/client_flows_benchmark.ts +402 -0
- package/src/bench/client_flows/config.ts +61 -0
- package/src/bench/client_flows/data_extractor.ts +111 -0
- package/src/bench/utils.ts +22 -76
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +80 -77
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +63 -105
- package/src/e2e_deploy_contract/deploy_test.ts +23 -38
- package/src/e2e_epochs/epochs_test.ts +274 -54
- package/src/e2e_fees/bridging_race.notest.ts +80 -0
- package/src/e2e_fees/fees_test.ts +137 -136
- package/src/e2e_l1_publisher/write_json.ts +76 -0
- package/src/e2e_multi_validator/utils.ts +258 -0
- package/src/e2e_nested_contract/nested_contract_test.ts +27 -18
- package/src/e2e_p2p/inactivity_slash_test.ts +178 -0
- package/src/e2e_p2p/p2p_network.ts +272 -166
- package/src/e2e_p2p/shared.ts +244 -29
- package/src/e2e_token_contract/token_contract_test.ts +43 -39
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/{e2e_prover → fixtures}/e2e_prover_test.ts +101 -145
- package/src/fixtures/fixtures.ts +4 -3
- package/src/fixtures/get_acvm_config.ts +3 -11
- package/src/fixtures/get_bb_config.ts +18 -13
- package/src/fixtures/l1_to_l2_messaging.ts +53 -23
- package/src/fixtures/setup_l1_contracts.ts +6 -7
- package/src/fixtures/setup_p2p_test.ts +112 -38
- package/src/fixtures/snapshot_manager.ts +187 -139
- package/src/fixtures/token_utils.ts +29 -12
- package/src/fixtures/utils.ts +552 -425
- package/src/fixtures/web3signer.ts +63 -0
- package/src/guides/up_quick_start.sh +6 -14
- package/src/quality_of_service/alert_checker.ts +1 -1
- package/src/shared/cross_chain_test_harness.ts +108 -79
- package/src/shared/gas_portal_test_harness.ts +58 -49
- package/src/shared/jest_setup.ts +1 -1
- package/src/shared/submit-transactions.ts +12 -8
- package/src/shared/uniswap_l1_l2.ts +173 -176
- package/src/simulators/lending_simulator.ts +12 -15
- package/src/simulators/token_simulator.ts +21 -13
- package/src/spartan/DEVELOP.md +121 -0
- package/src/spartan/setup_test_wallets.ts +215 -93
- package/src/spartan/utils.ts +490 -130
- package/dest/e2e_prover/e2e_prover_test.d.ts.map +0 -1
- package/dest/sample-dapp/connect.js +0 -12
- package/dest/sample-dapp/contracts.js +0 -10
- package/dest/sample-dapp/deploy.js +0 -35
- package/dest/sample-dapp/index.js +0 -98
- package/src/sample-dapp/connect.mjs +0 -16
- package/src/sample-dapp/contracts.mjs +0 -14
- package/src/sample-dapp/deploy.mjs +0 -40
- package/src/sample-dapp/index.mjs +0 -128
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type
|
|
1
|
+
import type { Logger } from '@aztec/aztec.js/log';
|
|
2
|
+
import { type DeployL1ContractsArgs, type L1ContractsConfig, deployL1Contracts } from '@aztec/ethereum';
|
|
3
3
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
4
|
-
import {
|
|
4
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
5
5
|
|
|
6
6
|
import type { HDAccount, PrivateKeyAccount } from 'viem';
|
|
7
7
|
import { foundry } from 'viem/chains';
|
|
@@ -12,14 +12,13 @@ export const setupL1Contracts = async (
|
|
|
12
12
|
l1RpcUrl: string,
|
|
13
13
|
account: HDAccount | PrivateKeyAccount,
|
|
14
14
|
logger: Logger,
|
|
15
|
-
args: Pick<DeployL1ContractsArgs, 'genesisArchiveRoot' | '
|
|
16
|
-
L1ContractsConfig,
|
|
15
|
+
args: Pick<DeployL1ContractsArgs, 'genesisArchiveRoot' | 'initialValidators'> & L1ContractsConfig,
|
|
17
16
|
) => {
|
|
18
17
|
const l1Data = await deployL1Contracts([l1RpcUrl], account, foundry, logger, {
|
|
19
|
-
l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
|
|
20
18
|
vkTreeRoot: getVKTreeRoot(),
|
|
21
|
-
|
|
19
|
+
protocolContractsHash,
|
|
22
20
|
salt: undefined,
|
|
21
|
+
realVerifier: false,
|
|
23
22
|
...args,
|
|
24
23
|
});
|
|
25
24
|
|
|
@@ -2,29 +2,24 @@
|
|
|
2
2
|
* Test fixtures and utilities to set up and run a test using multiple validators
|
|
3
3
|
*/
|
|
4
4
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
5
|
-
import
|
|
5
|
+
import { SecretValue } from '@aztec/foundation/config';
|
|
6
6
|
import { addLogNameHandler, removeLogNameHandler } from '@aztec/foundation/log';
|
|
7
|
+
import { bufferToHex } from '@aztec/foundation/string';
|
|
7
8
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
8
|
-
import type {
|
|
9
|
+
import type { ProverNodeConfig, ProverNodeDeps } from '@aztec/prover-node';
|
|
9
10
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
10
11
|
|
|
11
12
|
import getPort from 'get-port';
|
|
12
13
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
13
14
|
|
|
14
15
|
import { TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
|
|
15
|
-
import { getPrivateKeyFromIndex } from './utils.js';
|
|
16
|
+
import { createAndSyncProverNode, getPrivateKeyFromIndex } from './utils.js';
|
|
16
17
|
import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
|
|
17
18
|
|
|
18
|
-
// Setup snapshots will create a node with index 0,
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
export const ATTESTER_PRIVATE_KEYS_START_INDEX =
|
|
22
|
-
|
|
23
|
-
export interface NodeContext {
|
|
24
|
-
node: AztecNodeService;
|
|
25
|
-
pxeService: PXEService;
|
|
26
|
-
txs: SentTx[];
|
|
27
|
-
}
|
|
19
|
+
// Setup snapshots will create a node with index 0, and run extra bootstrap with
|
|
20
|
+
// index 1, and prover node with index 2, so all of our loops here need to start from 3
|
|
21
|
+
// to avoid running validators with the same key
|
|
22
|
+
export const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
|
|
28
23
|
|
|
29
24
|
export function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[] {
|
|
30
25
|
const privateKeys: `0x${string}`[] = [];
|
|
@@ -36,7 +31,7 @@ export function generatePrivateKeys(startIndex: number, numberOfKeys: number): `
|
|
|
36
31
|
}
|
|
37
32
|
|
|
38
33
|
export async function createNodes(
|
|
39
|
-
config: AztecNodeConfig,
|
|
34
|
+
config: AztecNodeConfig & { dontStartSequencer?: boolean },
|
|
40
35
|
dateProvider: DateProvider,
|
|
41
36
|
bootstrapNodeEnr: string,
|
|
42
37
|
numNodes: number,
|
|
@@ -44,6 +39,7 @@ export async function createNodes(
|
|
|
44
39
|
prefilledPublicData?: PublicDataTreeLeaf[],
|
|
45
40
|
dataDirectory?: string,
|
|
46
41
|
metricsPort?: number,
|
|
42
|
+
indexOffset = 0,
|
|
47
43
|
): Promise<AztecNodeService[]> {
|
|
48
44
|
const nodePromises: Promise<AztecNodeService>[] = [];
|
|
49
45
|
const loggerIdStorage = new AsyncLocalStorage<string>();
|
|
@@ -52,16 +48,17 @@ export async function createNodes(
|
|
|
52
48
|
addLogNameHandler(logNameHandler);
|
|
53
49
|
|
|
54
50
|
for (let i = 0; i < numNodes; i++) {
|
|
51
|
+
const index = indexOffset + i;
|
|
55
52
|
// We run on ports from the bootnode upwards
|
|
56
|
-
const port = bootNodePort +
|
|
53
|
+
const port = bootNodePort + 1 + index;
|
|
57
54
|
|
|
58
|
-
const dataDir = dataDirectory ? `${dataDirectory}-${
|
|
55
|
+
const dataDir = dataDirectory ? `${dataDirectory}-${index}` : undefined;
|
|
59
56
|
const nodePromise = createNode(
|
|
60
57
|
config,
|
|
61
58
|
dateProvider,
|
|
62
59
|
port,
|
|
63
60
|
bootstrapNodeEnr,
|
|
64
|
-
|
|
61
|
+
index,
|
|
65
62
|
prefilledPublicData,
|
|
66
63
|
dataDir,
|
|
67
64
|
metricsPort,
|
|
@@ -70,55 +67,113 @@ export async function createNodes(
|
|
|
70
67
|
nodePromises.push(nodePromise);
|
|
71
68
|
}
|
|
72
69
|
const nodes = await Promise.all(nodePromises);
|
|
70
|
+
|
|
71
|
+
// Sanity check that we have a sequencer if required
|
|
72
|
+
const seqClient = nodes[0].getSequencer();
|
|
73
|
+
if (!seqClient && config.disableValidator === false) {
|
|
74
|
+
throw new Error('Sequencer not found');
|
|
75
|
+
}
|
|
76
|
+
|
|
73
77
|
removeLogNameHandler(logNameHandler);
|
|
74
78
|
return nodes;
|
|
75
79
|
}
|
|
76
80
|
|
|
77
|
-
|
|
81
|
+
/** Creates a P2P enabled instance of Aztec Node Service with a validator */
|
|
78
82
|
export async function createNode(
|
|
79
|
-
config: AztecNodeConfig,
|
|
83
|
+
config: AztecNodeConfig & { dontStartSequencer?: boolean },
|
|
80
84
|
dateProvider: DateProvider,
|
|
81
85
|
tcpPort: number,
|
|
82
86
|
bootstrapNode: string | undefined,
|
|
83
|
-
|
|
87
|
+
addressIndex: number,
|
|
84
88
|
prefilledPublicData?: PublicDataTreeLeaf[],
|
|
85
89
|
dataDirectory?: string,
|
|
86
90
|
metricsPort?: number,
|
|
87
91
|
loggerIdStorage?: AsyncLocalStorage<string>,
|
|
88
92
|
) {
|
|
89
93
|
const createNode = async () => {
|
|
90
|
-
const validatorConfig = await createValidatorConfig(config, bootstrapNode, tcpPort,
|
|
94
|
+
const validatorConfig = await createValidatorConfig(config, bootstrapNode, tcpPort, addressIndex, dataDirectory);
|
|
91
95
|
const telemetry = getEndToEndTestTelemetryClient(metricsPort);
|
|
92
|
-
return await AztecNodeService.createAndSync(
|
|
96
|
+
return await AztecNodeService.createAndSync(
|
|
97
|
+
validatorConfig,
|
|
98
|
+
{ telemetry, dateProvider },
|
|
99
|
+
{ prefilledPublicData, dontStartSequencer: config.dontStartSequencer },
|
|
100
|
+
);
|
|
93
101
|
};
|
|
94
102
|
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
|
|
95
103
|
}
|
|
96
104
|
|
|
97
|
-
|
|
105
|
+
/** Creates a P2P enabled instance of Aztec Node Service without a validator */
|
|
106
|
+
export async function createNonValidatorNode(
|
|
107
|
+
baseConfig: AztecNodeConfig,
|
|
108
|
+
dateProvider: DateProvider,
|
|
109
|
+
tcpPort: number,
|
|
110
|
+
bootstrapNode: string | undefined,
|
|
111
|
+
prefilledPublicData?: PublicDataTreeLeaf[],
|
|
112
|
+
dataDirectory?: string,
|
|
113
|
+
metricsPort?: number,
|
|
114
|
+
loggerIdStorage?: AsyncLocalStorage<string>,
|
|
115
|
+
) {
|
|
116
|
+
const createNode = async () => {
|
|
117
|
+
const p2pConfig = await createP2PConfig(baseConfig, bootstrapNode, tcpPort, dataDirectory);
|
|
118
|
+
const config: AztecNodeConfig = {
|
|
119
|
+
...p2pConfig,
|
|
120
|
+
disableValidator: true,
|
|
121
|
+
validatorPrivateKeys: undefined,
|
|
122
|
+
publisherPrivateKeys: [],
|
|
123
|
+
};
|
|
124
|
+
const telemetry = getEndToEndTestTelemetryClient(metricsPort);
|
|
125
|
+
return await AztecNodeService.createAndSync(config, { telemetry, dateProvider }, { prefilledPublicData });
|
|
126
|
+
};
|
|
127
|
+
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export async function createProverNode(
|
|
131
|
+
config: AztecNodeConfig,
|
|
132
|
+
tcpPort: number,
|
|
133
|
+
bootstrapNode: string | undefined,
|
|
134
|
+
addressIndex: number,
|
|
135
|
+
proverNodeDeps: ProverNodeDeps & Required<Pick<ProverNodeDeps, 'dateProvider'>>,
|
|
136
|
+
prefilledPublicData?: PublicDataTreeLeaf[],
|
|
137
|
+
dataDirectory?: string,
|
|
138
|
+
metricsPort?: number,
|
|
139
|
+
loggerIdStorage?: AsyncLocalStorage<string>,
|
|
140
|
+
) {
|
|
141
|
+
const createProverNode = async () => {
|
|
142
|
+
const proverNodePrivateKey = getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + addressIndex)!;
|
|
143
|
+
const telemetry = getEndToEndTestTelemetryClient(metricsPort);
|
|
144
|
+
|
|
145
|
+
const proverConfig: Partial<ProverNodeConfig> = await createP2PConfig(
|
|
146
|
+
config,
|
|
147
|
+
bootstrapNode,
|
|
148
|
+
tcpPort,
|
|
149
|
+
dataDirectory,
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
const aztecNodeRpcTxProvider = undefined;
|
|
153
|
+
return await createAndSyncProverNode(
|
|
154
|
+
bufferToHex(proverNodePrivateKey),
|
|
155
|
+
config,
|
|
156
|
+
{ ...proverConfig, dataDirectory },
|
|
157
|
+
aztecNodeRpcTxProvider,
|
|
158
|
+
prefilledPublicData,
|
|
159
|
+
{ ...proverNodeDeps, telemetry },
|
|
160
|
+
);
|
|
161
|
+
};
|
|
162
|
+
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createProverNode) : createProverNode();
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export async function createP2PConfig(
|
|
98
166
|
config: AztecNodeConfig,
|
|
99
167
|
bootstrapNodeEnr?: string,
|
|
100
168
|
port?: number,
|
|
101
|
-
accountIndex: number = 1,
|
|
102
169
|
dataDirectory?: string,
|
|
103
170
|
) {
|
|
104
171
|
port = port ?? (await getPort());
|
|
105
172
|
|
|
106
|
-
const attesterPrivateKey: `0x${string}` = `0x${getPrivateKeyFromIndex(
|
|
107
|
-
ATTESTER_PRIVATE_KEYS_START_INDEX + accountIndex,
|
|
108
|
-
)!.toString('hex')}`;
|
|
109
|
-
const proposerPrivateKey: `0x${string}` = `0x${getPrivateKeyFromIndex(
|
|
110
|
-
PROPOSER_PRIVATE_KEYS_START_INDEX + accountIndex,
|
|
111
|
-
)!.toString('hex')}`;
|
|
112
|
-
|
|
113
|
-
config.validatorPrivateKey = attesterPrivateKey;
|
|
114
|
-
config.publisherPrivateKey = proposerPrivateKey;
|
|
115
|
-
|
|
116
173
|
const nodeConfig: AztecNodeConfig = {
|
|
117
174
|
...config,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
tcpAnnounceAddress: `127.0.0.1:${port}`,
|
|
121
|
-
udpAnnounceAddress: `127.0.0.1:${port}`,
|
|
175
|
+
p2pIp: `127.0.0.1`,
|
|
176
|
+
p2pPort: port,
|
|
122
177
|
p2pEnabled: true,
|
|
123
178
|
peerCheckIntervalMS: TEST_PEER_CHECK_INTERVAL_MS,
|
|
124
179
|
blockCheckIntervalMS: 1000,
|
|
@@ -128,3 +183,22 @@ export async function createValidatorConfig(
|
|
|
128
183
|
|
|
129
184
|
return nodeConfig;
|
|
130
185
|
}
|
|
186
|
+
|
|
187
|
+
export async function createValidatorConfig(
|
|
188
|
+
config: AztecNodeConfig,
|
|
189
|
+
bootstrapNodeEnr?: string,
|
|
190
|
+
port?: number,
|
|
191
|
+
addressIndex: number = 1,
|
|
192
|
+
dataDirectory?: string,
|
|
193
|
+
) {
|
|
194
|
+
const attesterPrivateKey = bufferToHex(getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + addressIndex)!);
|
|
195
|
+
const p2pConfig = await createP2PConfig(config, bootstrapNodeEnr, port, dataDirectory);
|
|
196
|
+
const nodeConfig: AztecNodeConfig = {
|
|
197
|
+
...config,
|
|
198
|
+
...p2pConfig,
|
|
199
|
+
validatorPrivateKeys: new SecretValue([attesterPrivateKey]),
|
|
200
|
+
publisherPrivateKeys: [new SecretValue(attesterPrivateKey)],
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
return nodeConfig;
|
|
204
|
+
}
|