@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,16 +1,16 @@
|
|
|
1
|
-
import { deployL1Contracts } from '@aztec/
|
|
1
|
+
import { deployL1Contracts } from '@aztec/ethereum';
|
|
2
2
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
3
|
-
import {
|
|
3
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
4
4
|
import { foundry } from 'viem/chains';
|
|
5
5
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
6
6
|
export const setupL1Contracts = async (l1RpcUrl, account, logger, args)=>{
|
|
7
7
|
const l1Data = await deployL1Contracts([
|
|
8
8
|
l1RpcUrl
|
|
9
9
|
], account, foundry, logger, {
|
|
10
|
-
l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
|
|
11
10
|
vkTreeRoot: getVKTreeRoot(),
|
|
12
|
-
|
|
11
|
+
protocolContractsHash,
|
|
13
12
|
salt: undefined,
|
|
13
|
+
realVerifier: false,
|
|
14
14
|
...args
|
|
15
15
|
});
|
|
16
16
|
return l1Data;
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
/**
|
|
3
2
|
* Test fixtures and utilities to set up and run a test using multiple validators
|
|
4
3
|
*/
|
|
5
4
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
6
|
-
import type { SentTx } from '@aztec/aztec.js';
|
|
7
5
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
8
|
-
import type {
|
|
6
|
+
import type { ProverNodeDeps } from '@aztec/prover-node';
|
|
9
7
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
10
8
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 1001;
|
|
13
|
-
export interface NodeContext {
|
|
14
|
-
node: AztecNodeService;
|
|
15
|
-
pxeService: PXEService;
|
|
16
|
-
txs: SentTx[];
|
|
17
|
-
}
|
|
9
|
+
export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
|
|
18
10
|
export declare function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[];
|
|
19
|
-
export declare function createNodes(config: AztecNodeConfig
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
export declare function createNodes(config: AztecNodeConfig & {
|
|
12
|
+
dontStartSequencer?: boolean;
|
|
13
|
+
}, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, indexOffset?: number): Promise<AztecNodeService[]>;
|
|
14
|
+
/** Creates a P2P enabled instance of Aztec Node Service with a validator */
|
|
15
|
+
export declare function createNode(config: AztecNodeConfig & {
|
|
16
|
+
dontStartSequencer?: boolean;
|
|
17
|
+
}, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
|
|
18
|
+
/** Creates a P2P enabled instance of Aztec Node Service without a validator */
|
|
19
|
+
export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
|
|
20
|
+
export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, proverNodeDeps: ProverNodeDeps & Required<Pick<ProverNodeDeps, 'dateProvider'>>, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<import("@aztec/prover-node").ProverNode>;
|
|
21
|
+
export declare function createP2PConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
|
|
22
|
+
export declare function createValidatorConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
|
|
22
23
|
//# sourceMappingURL=setup_p2p_test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoC7B;AAED,4EAA4E;AAC5E,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAY5C;AAED,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAc5C;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC/E,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,oDAwB5C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,4BAgBvB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAU,EACxB,aAAa,CAAC,EAAE,MAAM,4BAYvB"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Test fixtures and utilities to set up and run a test using multiple validators
|
|
3
3
|
*/ import { AztecNodeService } from '@aztec/aztec-node';
|
|
4
|
+
import { SecretValue } from '@aztec/foundation/config';
|
|
4
5
|
import { addLogNameHandler, removeLogNameHandler } from '@aztec/foundation/log';
|
|
6
|
+
import { bufferToHex } from '@aztec/foundation/string';
|
|
5
7
|
import getPort from 'get-port';
|
|
6
8
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
7
9
|
import { TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
|
|
8
|
-
import { getPrivateKeyFromIndex } from './utils.js';
|
|
10
|
+
import { createAndSyncProverNode, getPrivateKeyFromIndex } from './utils.js';
|
|
9
11
|
import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
|
|
10
|
-
// Setup snapshots will create a node with index 0,
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
export const ATTESTER_PRIVATE_KEYS_START_INDEX =
|
|
12
|
+
// Setup snapshots will create a node with index 0, and run extra bootstrap with
|
|
13
|
+
// index 1, and prover node with index 2, so all of our loops here need to start from 3
|
|
14
|
+
// to avoid running validators with the same key
|
|
15
|
+
export const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
|
|
14
16
|
export function generatePrivateKeys(startIndex, numberOfKeys) {
|
|
15
17
|
const privateKeys = [];
|
|
16
18
|
// Do not start from 0 as it is used during setup
|
|
@@ -19,48 +21,83 @@ export function generatePrivateKeys(startIndex, numberOfKeys) {
|
|
|
19
21
|
}
|
|
20
22
|
return privateKeys;
|
|
21
23
|
}
|
|
22
|
-
export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, prefilledPublicData, dataDirectory, metricsPort) {
|
|
24
|
+
export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, prefilledPublicData, dataDirectory, metricsPort, indexOffset = 0) {
|
|
23
25
|
const nodePromises = [];
|
|
24
26
|
const loggerIdStorage = new AsyncLocalStorage();
|
|
25
27
|
const logNameHandler = (module)=>loggerIdStorage.getStore() ? `${module}:${loggerIdStorage.getStore()}` : module;
|
|
26
28
|
addLogNameHandler(logNameHandler);
|
|
27
29
|
for(let i = 0; i < numNodes; i++){
|
|
30
|
+
const index = indexOffset + i;
|
|
28
31
|
// We run on ports from the bootnode upwards
|
|
29
|
-
const port = bootNodePort +
|
|
30
|
-
const dataDir = dataDirectory ? `${dataDirectory}-${
|
|
31
|
-
const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr,
|
|
32
|
+
const port = bootNodePort + 1 + index;
|
|
33
|
+
const dataDir = dataDirectory ? `${dataDirectory}-${index}` : undefined;
|
|
34
|
+
const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr, index, prefilledPublicData, dataDir, metricsPort, loggerIdStorage);
|
|
32
35
|
nodePromises.push(nodePromise);
|
|
33
36
|
}
|
|
34
37
|
const nodes = await Promise.all(nodePromises);
|
|
38
|
+
// Sanity check that we have a sequencer if required
|
|
39
|
+
const seqClient = nodes[0].getSequencer();
|
|
40
|
+
if (!seqClient && config.disableValidator === false) {
|
|
41
|
+
throw new Error('Sequencer not found');
|
|
42
|
+
}
|
|
35
43
|
removeLogNameHandler(logNameHandler);
|
|
36
44
|
return nodes;
|
|
37
45
|
}
|
|
38
|
-
|
|
39
|
-
export async function createNode(config, dateProvider, tcpPort, bootstrapNode, accountIndex, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
|
|
46
|
+
/** Creates a P2P enabled instance of Aztec Node Service with a validator */ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, addressIndex, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
|
|
40
47
|
const createNode = async ()=>{
|
|
41
|
-
const validatorConfig = await createValidatorConfig(config, bootstrapNode, tcpPort,
|
|
48
|
+
const validatorConfig = await createValidatorConfig(config, bootstrapNode, tcpPort, addressIndex, dataDirectory);
|
|
42
49
|
const telemetry = getEndToEndTestTelemetryClient(metricsPort);
|
|
43
50
|
return await AztecNodeService.createAndSync(validatorConfig, {
|
|
44
51
|
telemetry,
|
|
45
52
|
dateProvider
|
|
53
|
+
}, {
|
|
54
|
+
prefilledPublicData,
|
|
55
|
+
dontStartSequencer: config.dontStartSequencer
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
|
|
59
|
+
}
|
|
60
|
+
/** Creates a P2P enabled instance of Aztec Node Service without a validator */ export async function createNonValidatorNode(baseConfig, dateProvider, tcpPort, bootstrapNode, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
|
|
61
|
+
const createNode = async ()=>{
|
|
62
|
+
const p2pConfig = await createP2PConfig(baseConfig, bootstrapNode, tcpPort, dataDirectory);
|
|
63
|
+
const config = {
|
|
64
|
+
...p2pConfig,
|
|
65
|
+
disableValidator: true,
|
|
66
|
+
validatorPrivateKeys: undefined,
|
|
67
|
+
publisherPrivateKeys: []
|
|
68
|
+
};
|
|
69
|
+
const telemetry = getEndToEndTestTelemetryClient(metricsPort);
|
|
70
|
+
return await AztecNodeService.createAndSync(config, {
|
|
71
|
+
telemetry,
|
|
72
|
+
dateProvider
|
|
46
73
|
}, {
|
|
47
74
|
prefilledPublicData
|
|
48
75
|
});
|
|
49
76
|
};
|
|
50
77
|
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
|
|
51
78
|
}
|
|
52
|
-
export async function
|
|
79
|
+
export async function createProverNode(config, tcpPort, bootstrapNode, addressIndex, proverNodeDeps, prefilledPublicData, dataDirectory, metricsPort, loggerIdStorage) {
|
|
80
|
+
const createProverNode = async ()=>{
|
|
81
|
+
const proverNodePrivateKey = getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + addressIndex);
|
|
82
|
+
const telemetry = getEndToEndTestTelemetryClient(metricsPort);
|
|
83
|
+
const proverConfig = await createP2PConfig(config, bootstrapNode, tcpPort, dataDirectory);
|
|
84
|
+
const aztecNodeRpcTxProvider = undefined;
|
|
85
|
+
return await createAndSyncProverNode(bufferToHex(proverNodePrivateKey), config, {
|
|
86
|
+
...proverConfig,
|
|
87
|
+
dataDirectory
|
|
88
|
+
}, aztecNodeRpcTxProvider, prefilledPublicData, {
|
|
89
|
+
...proverNodeDeps,
|
|
90
|
+
telemetry
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createProverNode) : createProverNode();
|
|
94
|
+
}
|
|
95
|
+
export async function createP2PConfig(config, bootstrapNodeEnr, port, dataDirectory) {
|
|
53
96
|
port = port ?? await getPort();
|
|
54
|
-
const attesterPrivateKey = `0x${getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + accountIndex).toString('hex')}`;
|
|
55
|
-
const proposerPrivateKey = `0x${getPrivateKeyFromIndex(PROPOSER_PRIVATE_KEYS_START_INDEX + accountIndex).toString('hex')}`;
|
|
56
|
-
config.validatorPrivateKey = attesterPrivateKey;
|
|
57
|
-
config.publisherPrivateKey = proposerPrivateKey;
|
|
58
97
|
const nodeConfig = {
|
|
59
98
|
...config,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
tcpAnnounceAddress: `127.0.0.1:${port}`,
|
|
63
|
-
udpAnnounceAddress: `127.0.0.1:${port}`,
|
|
99
|
+
p2pIp: `127.0.0.1`,
|
|
100
|
+
p2pPort: port,
|
|
64
101
|
p2pEnabled: true,
|
|
65
102
|
peerCheckIntervalMS: TEST_PEER_CHECK_INTERVAL_MS,
|
|
66
103
|
blockCheckIntervalMS: 1000,
|
|
@@ -71,3 +108,18 @@ export async function createValidatorConfig(config, bootstrapNodeEnr, port, acco
|
|
|
71
108
|
};
|
|
72
109
|
return nodeConfig;
|
|
73
110
|
}
|
|
111
|
+
export async function createValidatorConfig(config, bootstrapNodeEnr, port, addressIndex = 1, dataDirectory) {
|
|
112
|
+
const attesterPrivateKey = bufferToHex(getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + addressIndex));
|
|
113
|
+
const p2pConfig = await createP2PConfig(config, bootstrapNodeEnr, port, dataDirectory);
|
|
114
|
+
const nodeConfig = {
|
|
115
|
+
...config,
|
|
116
|
+
...p2pConfig,
|
|
117
|
+
validatorPrivateKeys: new SecretValue([
|
|
118
|
+
attesterPrivateKey
|
|
119
|
+
]),
|
|
120
|
+
publisherPrivateKeys: [
|
|
121
|
+
new SecretValue(attesterPrivateKey)
|
|
122
|
+
]
|
|
123
|
+
};
|
|
124
|
+
return nodeConfig;
|
|
125
|
+
}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
2
2
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
3
|
-
import {
|
|
3
|
+
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
4
|
+
import type { Logger } from '@aztec/aztec.js/log';
|
|
5
|
+
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
6
|
+
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
7
|
+
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
|
|
4
8
|
import { type BlobSinkServer } from '@aztec/blob-sink/server';
|
|
5
|
-
import { type DeployL1ContractsArgs } from '@aztec/ethereum';
|
|
9
|
+
import { type DeployL1ContractsArgs, type DeployL1ContractsReturnType } from '@aztec/ethereum';
|
|
6
10
|
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
7
11
|
import type { ProverNode } from '@aztec/prover-node';
|
|
8
|
-
import {
|
|
12
|
+
import type { SequencerClient } from '@aztec/sequencer-client';
|
|
13
|
+
import { TestWallet } from '@aztec/test-wallet/server';
|
|
9
14
|
import type { Anvil } from '@viem/anvil';
|
|
10
15
|
import { type SetupOptions } from './utils.js';
|
|
11
16
|
export type SubsystemsContext = {
|
|
@@ -14,11 +19,12 @@ export type SubsystemsContext = {
|
|
|
14
19
|
bbConfig: any;
|
|
15
20
|
aztecNode: AztecNodeService;
|
|
16
21
|
aztecNodeConfig: AztecNodeConfig;
|
|
17
|
-
|
|
22
|
+
wallet: TestWallet;
|
|
18
23
|
deployL1ContractsValues: DeployL1ContractsReturnType;
|
|
19
24
|
proverNode?: ProverNode;
|
|
20
25
|
watcher: AnvilTestWatcher;
|
|
21
26
|
cheatCodes: CheatCodes;
|
|
27
|
+
sequencer: SequencerClient;
|
|
22
28
|
dateProvider: TestDateProvider;
|
|
23
29
|
blobSink: BlobSinkServer;
|
|
24
30
|
initialFundedAccounts: InitialAccountData[];
|
|
@@ -70,8 +76,8 @@ declare class SnapshotManager implements ISnapshotManager {
|
|
|
70
76
|
* Snapshot 'apply' helper function to add accounts.
|
|
71
77
|
* The 'restore' function is not provided, as it must be a closure within the test context to capture the results.
|
|
72
78
|
*/
|
|
73
|
-
export declare const deployAccounts: (numberOfAccounts: number, logger: Logger
|
|
74
|
-
|
|
79
|
+
export declare const deployAccounts: (numberOfAccounts: number, logger: Logger) => ({ wallet, initialFundedAccounts }: {
|
|
80
|
+
wallet: TestWallet;
|
|
75
81
|
initialFundedAccounts: InitialAccountData[];
|
|
76
82
|
}) => Promise<{
|
|
77
83
|
deployedAccounts: InitialAccountData[];
|
|
@@ -81,7 +87,9 @@ export declare const deployAccounts: (numberOfAccounts: number, logger: Logger,
|
|
|
81
87
|
* Use this when you need to make a public call to an account contract, such as for requesting a public authwit.
|
|
82
88
|
* @param sender - Wallet to send the deployment tx.
|
|
83
89
|
* @param accountsToDeploy - Which accounts to publicly deploy.
|
|
90
|
+
* @param waitUntilProven - Whether to wait for the tx to be proven.
|
|
91
|
+
* @param node - AztecNode used to wait for proven tx.
|
|
84
92
|
*/
|
|
85
|
-
export declare function publicDeployAccounts(
|
|
93
|
+
export declare function publicDeployAccounts(wallet: Wallet, accountsToDeploy: AztecAddress[], waitUntilProven?: boolean, node?: AztecNode): Promise<void>;
|
|
86
94
|
export {};
|
|
87
95
|
//# sourceMappingURL=snapshot_manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
|