@aztec/end-to-end 0.0.1-commit.d1f2d6c → 0.0.1-commit.d20b825a7
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 +27 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +2 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +24 -31
- package/dest/bench/client_flows/config.d.ts +2 -2
- package/dest/bench/client_flows/config.d.ts.map +1 -1
- package/dest/bench/client_flows/config.js +18 -0
- package/dest/bench/utils.d.ts +1 -1
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +6 -3
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +6 -3
- 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 +23 -13
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -2
- 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 +3 -2
- package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.d.ts +32 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +144 -49
- package/dest/e2e_fees/fees_test.d.ts +2 -2
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +21 -14
- package/dest/e2e_l1_publisher/write_json.d.ts +3 -2
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +1 -7
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
- package/dest/e2e_p2p/inactivity_slash_test.js +3 -3
- package/dest/e2e_p2p/p2p_network.d.ts +14 -12
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +69 -32
- package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
- package/dest/e2e_p2p/reqresp/utils.js +190 -0
- package/dest/e2e_p2p/shared.d.ts +26 -8
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +76 -52
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
- package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
- package/dest/e2e_token_contract/token_contract_test.d.ts +4 -2
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +19 -9
- package/dest/fixtures/authwit_proxy.d.ts +15 -0
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
- package/dest/fixtures/authwit_proxy.js +34 -0
- package/dest/fixtures/e2e_prover_test.d.ts +7 -6
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +38 -50
- package/dest/fixtures/elu_monitor.d.ts +21 -0
- package/dest/fixtures/elu_monitor.d.ts.map +1 -0
- package/dest/fixtures/elu_monitor.js +102 -0
- package/dest/fixtures/fixtures.d.ts +16 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +16 -0
- 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 +5 -5
- package/dest/fixtures/ha_setup.d.ts +71 -0
- package/dest/fixtures/ha_setup.d.ts.map +1 -0
- package/dest/fixtures/ha_setup.js +116 -0
- package/dest/fixtures/index.d.ts +2 -1
- package/dest/fixtures/index.d.ts.map +1 -1
- package/dest/fixtures/index.js +1 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.js +39 -0
- package/dest/fixtures/setup.d.ts +62 -32
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +116 -175
- package/dest/fixtures/setup_p2p_test.d.ts +18 -11
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +43 -32
- package/dest/fixtures/token_utils.d.ts +2 -2
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +5 -7
- package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
- package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
- package/dest/forward-compatibility/wallet_service.d.ts +3 -0
- package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_service.js +109 -0
- package/dest/legacy-jest-resolver.d.cts +3 -0
- package/dest/legacy-jest-resolver.d.cts.map +1 -0
- package/dest/shared/cross_chain_test_harness.d.ts +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +13 -13
- package/dest/shared/gas_portal_test_harness.js +3 -3
- package/dest/shared/index.d.ts +2 -1
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/index.js +1 -0
- package/dest/shared/jest_setup.js +41 -1
- package/dest/shared/mock_state_view.d.ts +86 -0
- package/dest/shared/mock_state_view.d.ts.map +1 -0
- package/dest/shared/mock_state_view.js +186 -0
- package/dest/shared/submit-transactions.d.ts +2 -2
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +16 -21
- package/dest/simulators/lending_simulator.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +4 -4
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +3 -24
- package/dest/spartan/setup_test_wallets.d.ts +12 -3
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +100 -39
- package/dest/spartan/tx_metrics.d.ts +35 -1
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +166 -2
- package/dest/spartan/utils/bot.d.ts +3 -2
- package/dest/spartan/utils/bot.d.ts.map +1 -1
- package/dest/spartan/utils/bot.js +2 -1
- package/dest/spartan/utils/config.d.ts +10 -1
- package/dest/spartan/utils/config.d.ts.map +1 -1
- package/dest/spartan/utils/config.js +4 -1
- package/dest/spartan/utils/index.d.ts +6 -4
- package/dest/spartan/utils/index.d.ts.map +1 -1
- package/dest/spartan/utils/index.js +6 -2
- package/dest/spartan/utils/k8s.d.ts +31 -1
- package/dest/spartan/utils/k8s.d.ts.map +1 -1
- package/dest/spartan/utils/k8s.js +124 -0
- package/dest/spartan/utils/nodes.d.ts +14 -5
- package/dest/spartan/utils/nodes.d.ts.map +1 -1
- package/dest/spartan/utils/nodes.js +204 -33
- package/dest/spartan/utils/pod_logs.d.ts +25 -0
- package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
- package/dest/spartan/utils/pod_logs.js +74 -0
- package/dest/spartan/utils/scripts.d.ts +18 -4
- package/dest/spartan/utils/scripts.d.ts.map +1 -1
- package/dest/spartan/utils/scripts.js +19 -4
- package/dest/test-wallet/test_wallet.d.ts +84 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +255 -0
- package/dest/test-wallet/utils.d.ts +41 -0
- package/dest/test-wallet/utils.d.ts.map +1 -0
- package/dest/test-wallet/utils.js +71 -0
- package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
- package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
- package/dest/test-wallet/wallet_worker_script.js +48 -0
- package/dest/test-wallet/worker_wallet.d.ts +52 -0
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet.js +151 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts +279 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet_schema.js +10 -0
- package/package.json +46 -43
- package/src/bench/client_flows/client_flows_benchmark.ts +33 -20
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/utils.ts +8 -3
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +31 -21
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +7 -8
- package/src/e2e_deploy_contract/deploy_test.ts +3 -3
- package/src/e2e_epochs/epochs_test.ts +168 -76
- package/src/e2e_fees/bridging_race.notest.ts +1 -1
- package/src/e2e_fees/fees_test.ts +24 -30
- package/src/e2e_l1_publisher/write_json.ts +1 -6
- package/src/e2e_nested_contract/nested_contract_test.ts +7 -5
- package/src/e2e_p2p/inactivity_slash_test.ts +7 -7
- package/src/e2e_p2p/p2p_network.ts +93 -48
- package/src/e2e_p2p/reqresp/utils.ts +256 -0
- package/src/e2e_p2p/shared.ts +99 -64
- package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
- package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
- package/src/e2e_token_contract/token_contract_test.ts +26 -9
- package/src/fixtures/authwit_proxy.ts +54 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +47 -56
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +32 -0
- package/src/fixtures/get_bb_config.ts +7 -6
- package/src/fixtures/ha_setup.ts +188 -0
- package/src/fixtures/index.ts +1 -0
- package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
- package/src/fixtures/setup.ts +162 -236
- package/src/fixtures/setup_p2p_test.ts +48 -52
- package/src/fixtures/token_utils.ts +3 -3
- package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
- package/src/forward-compatibility/wallet_service.ts +104 -0
- package/src/guides/up_quick_start.sh +3 -5
- package/src/legacy-jest-resolver.cjs +135 -0
- package/src/shared/cross_chain_test_harness.ts +13 -9
- package/src/shared/gas_portal_test_harness.ts +1 -2
- package/src/shared/index.ts +1 -0
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +3 -2
- package/src/shared/uniswap_l1_l2.ts +38 -37
- package/src/simulators/lending_simulator.ts +8 -4
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/setup_test_wallets.ts +141 -32
- package/src/spartan/tx_metrics.ts +140 -2
- package/src/spartan/utils/bot.ts +4 -1
- package/src/spartan/utils/config.ts +3 -0
- package/src/spartan/utils/index.ts +10 -1
- package/src/spartan/utils/k8s.ts +160 -0
- package/src/spartan/utils/nodes.ts +251 -31
- package/src/spartan/utils/pod_logs.ts +99 -0
- package/src/spartan/utils/scripts.ts +43 -7
- package/src/test-wallet/test_wallet.ts +357 -0
- package/src/test-wallet/utils.ts +112 -0
- package/src/test-wallet/wallet_worker_script.ts +60 -0
- package/src/test-wallet/worker_wallet.ts +214 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
package/dest/fixtures/setup.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { SchnorrAccountContractArtifact } from '@aztec/accounts/schnorr';
|
|
2
|
-
import { generateSchnorrAccounts
|
|
3
|
-
import { createArchiver } from '@aztec/archiver';
|
|
2
|
+
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
4
3
|
import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
|
|
5
|
-
import {
|
|
4
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
5
|
+
import { EthAddress } from '@aztec/aztec.js/addresses';
|
|
6
6
|
import { BatchCall, getContractClassFromArtifact, waitForProven } from '@aztec/aztec.js/contracts';
|
|
7
7
|
import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
|
|
8
8
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
9
9
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
10
|
-
import { createAztecNodeClient, waitForNode } from '@aztec/aztec.js/node';
|
|
11
10
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
|
|
12
|
-
import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
|
|
13
11
|
import { SPONSORED_FPC_SALT } from '@aztec/constants';
|
|
14
12
|
import { isAnvilTestChain } from '@aztec/ethereum/chain';
|
|
15
13
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
@@ -17,40 +15,38 @@ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
|
17
15
|
import { NULL_KEY } from '@aztec/ethereum/constants';
|
|
18
16
|
import { deployMulticall3 } from '@aztec/ethereum/contracts';
|
|
19
17
|
import { deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
20
|
-
import {
|
|
18
|
+
import { EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
|
|
21
19
|
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
22
20
|
import { SecretValue } from '@aztec/foundation/config';
|
|
23
21
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
24
22
|
import { tryRmDir } from '@aztec/foundation/fs';
|
|
25
|
-
import {
|
|
23
|
+
import { withLoggerBindings } from '@aztec/foundation/log/server';
|
|
26
24
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
27
25
|
import { sleep } from '@aztec/foundation/sleep';
|
|
28
|
-
import {
|
|
26
|
+
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
29
27
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
30
28
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
31
29
|
import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
32
30
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
33
|
-
import { createProverNode } from '@aztec/prover-node';
|
|
34
31
|
import { getPXEConfig } from '@aztec/pxe/server';
|
|
35
32
|
import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
36
33
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
37
34
|
import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
38
35
|
import { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
|
|
39
|
-
import {
|
|
36
|
+
import { deployFundedSchnorrAccounts } from '@aztec/wallets/testing';
|
|
40
37
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
41
38
|
import fs from 'fs/promises';
|
|
42
39
|
import { tmpdir } from 'os';
|
|
43
40
|
import path from 'path';
|
|
44
41
|
import { generatePrivateKey, mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
|
|
45
42
|
import { foundry } from 'viem/chains';
|
|
43
|
+
import { TestWallet } from '../test-wallet/test_wallet.js';
|
|
46
44
|
import { MNEMONIC, TEST_MAX_PENDING_TX_POOL_COUNT, TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
|
|
47
45
|
import { getACVMConfig } from './get_acvm_config.js';
|
|
48
46
|
import { getBBConfig } from './get_bb_config.js';
|
|
49
47
|
import { isMetricsLoggingRequested, setupMetricsLogger } from './logging.js';
|
|
50
48
|
import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
|
|
51
49
|
export { startAnvil };
|
|
52
|
-
const { AZTEC_NODE_URL = '' } = process.env;
|
|
53
|
-
const getAztecUrl = ()=>AZTEC_NODE_URL;
|
|
54
50
|
let telemetry = undefined;
|
|
55
51
|
async function getTelemetryClient(partialConfig = {}) {
|
|
56
52
|
if (!telemetry) {
|
|
@@ -86,9 +82,9 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
86
82
|
* @param aztecNode - An instance of Aztec Node.
|
|
87
83
|
* @param opts - Partial configuration for the PXE.
|
|
88
84
|
* @param logger - The logger to be used.
|
|
89
|
-
* @param
|
|
85
|
+
* @param actor - Actor label to include in log output (e.g., 'pxe-test').
|
|
90
86
|
* @returns A test wallet, logger and teardown function.
|
|
91
|
-
*/ export async function setupPXEAndGetWallet(aztecNode, opts = {}, logger = getLogger(),
|
|
87
|
+
*/ export async function setupPXEAndGetWallet(aztecNode, opts = {}, logger = getLogger(), actor) {
|
|
92
88
|
const PXEConfig = {
|
|
93
89
|
...getPXEConfig(),
|
|
94
90
|
...opts
|
|
@@ -102,7 +98,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
102
98
|
}
|
|
103
99
|
const teardown = configuredDataDirectory ? ()=>Promise.resolve() : ()=>tryRmDir(PXEConfig.dataDirectory);
|
|
104
100
|
const wallet = await TestWallet.create(aztecNode, PXEConfig, {
|
|
105
|
-
|
|
101
|
+
loggerActorLabel: actor
|
|
106
102
|
});
|
|
107
103
|
return {
|
|
108
104
|
wallet,
|
|
@@ -110,62 +106,6 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
110
106
|
teardown
|
|
111
107
|
};
|
|
112
108
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Function to setup the test against a remote deployment. It is assumed that L1 contract are already deployed
|
|
115
|
-
*/ async function setupWithRemoteEnvironment(account, config, logger, numberOfAccounts) {
|
|
116
|
-
const aztecNodeUrl = getAztecUrl();
|
|
117
|
-
logger.verbose(`Creating Aztec Node client to remote host ${aztecNodeUrl}`);
|
|
118
|
-
const aztecNode = createAztecNodeClient(aztecNodeUrl);
|
|
119
|
-
await waitForNode(aztecNode, logger);
|
|
120
|
-
logger.verbose('JSON RPC client connected to Aztec Node');
|
|
121
|
-
logger.verbose(`Retrieving contract addresses from ${aztecNodeUrl}`);
|
|
122
|
-
const { l1ContractAddresses, rollupVersion } = await aztecNode.getNodeInfo();
|
|
123
|
-
const l1Client = createExtendedL1Client(config.l1RpcUrls, account, foundry);
|
|
124
|
-
const deployL1ContractsValues = {
|
|
125
|
-
l1ContractAddresses,
|
|
126
|
-
l1Client,
|
|
127
|
-
rollupVersion
|
|
128
|
-
};
|
|
129
|
-
const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls, new DateProvider());
|
|
130
|
-
const wallet = await TestWallet.create(aztecNode);
|
|
131
|
-
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, aztecNode, new DateProvider());
|
|
132
|
-
const teardown = ()=>Promise.resolve();
|
|
133
|
-
logger.verbose('Populating wallet from already registered accounts...');
|
|
134
|
-
const initialFundedAccounts = await getInitialTestAccountsData();
|
|
135
|
-
if (initialFundedAccounts.length < numberOfAccounts) {
|
|
136
|
-
throw new Error(`Required ${numberOfAccounts} accounts. Found ${initialFundedAccounts.length}.`);
|
|
137
|
-
}
|
|
138
|
-
const testAccounts = await Promise.all(initialFundedAccounts.slice(0, numberOfAccounts).map(async (account)=>{
|
|
139
|
-
const accountManager = await wallet.createSchnorrAccount(account.secret, account.salt, account.signingKey);
|
|
140
|
-
return accountManager.address;
|
|
141
|
-
}));
|
|
142
|
-
return {
|
|
143
|
-
anvil: undefined,
|
|
144
|
-
aztecNode,
|
|
145
|
-
aztecNodeService: undefined,
|
|
146
|
-
aztecNodeAdmin: undefined,
|
|
147
|
-
sequencer: undefined,
|
|
148
|
-
proverNode: undefined,
|
|
149
|
-
deployL1ContractsValues,
|
|
150
|
-
config,
|
|
151
|
-
aztecNodeConfig: config,
|
|
152
|
-
initialFundedAccounts,
|
|
153
|
-
wallet,
|
|
154
|
-
accounts: testAccounts,
|
|
155
|
-
logger,
|
|
156
|
-
cheatCodes,
|
|
157
|
-
ethCheatCodes,
|
|
158
|
-
prefilledPublicData: undefined,
|
|
159
|
-
mockGossipSubNetwork: undefined,
|
|
160
|
-
watcher: undefined,
|
|
161
|
-
dateProvider: undefined,
|
|
162
|
-
telemetryClient: undefined,
|
|
163
|
-
acvmConfig: undefined,
|
|
164
|
-
bbConfig: undefined,
|
|
165
|
-
directoryToCleanup: undefined,
|
|
166
|
-
teardown
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
109
|
/**
|
|
170
110
|
* Sets up the environment for the end-to-end tests.
|
|
171
111
|
* @param numberOfAccounts - The number of new accounts to be created once the PXE is initiated.
|
|
@@ -175,7 +115,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
175
115
|
let anvil;
|
|
176
116
|
try {
|
|
177
117
|
opts.aztecTargetCommitteeSize ??= 0;
|
|
178
|
-
opts.
|
|
118
|
+
opts.slasherEnabled ??= false;
|
|
179
119
|
const config = {
|
|
180
120
|
...getConfigEnvVars(),
|
|
181
121
|
...opts
|
|
@@ -188,7 +128,10 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
188
128
|
config.realProofs = !!opts.realProofs;
|
|
189
129
|
// Only enforce the time table if requested
|
|
190
130
|
config.enforceTimeTable = !!opts.enforceTimeTable;
|
|
131
|
+
// Enable the tx delayer for tests (default config has it disabled, so we force-enable it here)
|
|
132
|
+
config.enableDelayer = true;
|
|
191
133
|
config.listenAddress = '127.0.0.1';
|
|
134
|
+
config.minTxPoolAgeMs = opts.minTxPoolAgeMs ?? 0;
|
|
192
135
|
const logger = getLogger();
|
|
193
136
|
// Create a temp directory for any services that need it and cleanup later
|
|
194
137
|
const directoryToCleanup = path.join(tmpdir(), randomBytes(8).toString('hex'));
|
|
@@ -198,17 +141,17 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
198
141
|
if (!config.dataDirectory) {
|
|
199
142
|
config.dataDirectory = directoryToCleanup;
|
|
200
143
|
}
|
|
144
|
+
const dateProvider = new TestDateProvider();
|
|
201
145
|
if (!config.l1RpcUrls?.length) {
|
|
202
146
|
if (!isAnvilTestChain(chain.id)) {
|
|
203
147
|
throw new Error(`No ETHEREUM_HOSTS set but non anvil chain requested`);
|
|
204
148
|
}
|
|
205
|
-
if (AZTEC_NODE_URL) {
|
|
206
|
-
throw new Error(`AZTEC_NODE_URL provided but no ETHEREUM_HOSTS set. Refusing to run, please set both variables so tests can deploy L1 contracts to the same Anvil instance`);
|
|
207
|
-
}
|
|
208
149
|
const res = await startAnvil({
|
|
209
150
|
l1BlockTime: opts.ethereumSlotDuration,
|
|
210
151
|
accounts: opts.anvilAccounts,
|
|
211
|
-
port: opts.anvilPort
|
|
152
|
+
port: opts.anvilPort ?? (process.env.ANVIL_PORT ? parseInt(process.env.ANVIL_PORT) : undefined),
|
|
153
|
+
slotsInAnEpoch: opts.anvilSlotsInAnEpoch,
|
|
154
|
+
dateProvider
|
|
212
155
|
});
|
|
213
156
|
anvil = res.anvil;
|
|
214
157
|
config.l1RpcUrls = [
|
|
@@ -221,7 +164,6 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
221
164
|
logger.info(`Logging metrics to ${filename}`);
|
|
222
165
|
setupMetricsLogger(filename);
|
|
223
166
|
}
|
|
224
|
-
const dateProvider = new TestDateProvider();
|
|
225
167
|
const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
|
|
226
168
|
if (opts.stateLoad) {
|
|
227
169
|
await ethCheatCodes.loadChainState(opts.stateLoad);
|
|
@@ -236,8 +178,8 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
236
178
|
if (opts.l1PublisherKey && opts.l1PublisherKey.getValue() && opts.l1PublisherKey.getValue() != NULL_KEY) {
|
|
237
179
|
publisherPrivKeyHex = opts.l1PublisherKey.getValue();
|
|
238
180
|
publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
|
|
239
|
-
} else if (config.
|
|
240
|
-
publisherPrivKeyHex = config.
|
|
181
|
+
} else if (config.sequencerPublisherPrivateKeys && config.sequencerPublisherPrivateKeys.length > 0 && config.sequencerPublisherPrivateKeys[0].getValue() != NULL_KEY) {
|
|
182
|
+
publisherPrivKeyHex = config.sequencerPublisherPrivateKeys[0].getValue();
|
|
241
183
|
publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
|
|
242
184
|
} else if (!MNEMONIC) {
|
|
243
185
|
throw new Error(`Mnemonic not provided and no publisher private key`);
|
|
@@ -248,17 +190,13 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
248
190
|
const publisherPrivKeyRaw = publisherHdAccount.getHdKey().privateKey;
|
|
249
191
|
const publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
|
|
250
192
|
publisherPrivKeyHex = `0x${publisherPrivKey.toString('hex')}`;
|
|
251
|
-
config.
|
|
193
|
+
config.sequencerPublisherPrivateKeys = [
|
|
252
194
|
new SecretValue(publisherPrivKeyHex)
|
|
253
195
|
];
|
|
254
196
|
}
|
|
255
197
|
if (config.coinbase === undefined) {
|
|
256
198
|
config.coinbase = EthAddress.fromString(publisherHdAccount.address);
|
|
257
199
|
}
|
|
258
|
-
if (AZTEC_NODE_URL) {
|
|
259
|
-
// we are setting up against a remote environment, l1 contracts are assumed to already be deployed
|
|
260
|
-
return await setupWithRemoteEnvironment(publisherHdAccount, config, logger, numberOfAccounts);
|
|
261
|
-
}
|
|
262
200
|
// Determine which addresses to fund in genesis
|
|
263
201
|
const initialFundedAccounts = opts.initialFundedAccounts ?? await generateSchnorrAccounts(opts.numberOfInitialFundedAccounts ?? Math.max(numberOfAccounts, 10));
|
|
264
202
|
const addressesToFund = initialFundedAccounts.map((a)=>a.address);
|
|
@@ -267,7 +205,8 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
267
205
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
268
206
|
addressesToFund.push(sponsoredFPCAddress);
|
|
269
207
|
}
|
|
270
|
-
const
|
|
208
|
+
const genesisTimestamp = BigInt(Math.floor(Date.now() / 1000));
|
|
209
|
+
const { genesisArchiveRoot, genesis, fundingNeeded } = await getGenesisValues(addressesToFund, opts.initialAccountFeeJuice, opts.genesisPublicData, genesisTimestamp);
|
|
271
210
|
const wasAutomining = await ethCheatCodes.isAutoMining();
|
|
272
211
|
const enableAutomine = opts.automineL1Setup && !wasAutomining && isAnvilTestChain(chain.id);
|
|
273
212
|
if (enableAutomine) {
|
|
@@ -297,14 +236,19 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
297
236
|
if (enableAutomine) {
|
|
298
237
|
await ethCheatCodes.setAutomine(false);
|
|
299
238
|
await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
|
|
300
|
-
|
|
239
|
+
}
|
|
240
|
+
// In compose mode (no local anvil), sync dateProvider to L1 time since it may have drifted
|
|
241
|
+
// ahead of system time due to the local-network watcher warping time forward on each filled slot.
|
|
242
|
+
// When running with a local anvil, the dateProvider is kept in sync via the stdout listener.
|
|
243
|
+
if (!anvil) {
|
|
244
|
+
dateProvider.setTime(await ethCheatCodes.lastBlockTimestamp() * 1000);
|
|
301
245
|
}
|
|
302
246
|
if (opts.l2StartTime) {
|
|
303
247
|
await ethCheatCodes.warp(opts.l2StartTime, {
|
|
304
248
|
resetBlockInterval: true
|
|
305
249
|
});
|
|
306
250
|
}
|
|
307
|
-
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
|
|
251
|
+
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider, opts.anvilTestWatcherOpts);
|
|
308
252
|
if (!opts.disableAnvilTestWatcher) {
|
|
309
253
|
await watcher.start();
|
|
310
254
|
}
|
|
@@ -325,7 +269,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
325
269
|
let mockGossipSubNetwork;
|
|
326
270
|
let p2pClientDeps = undefined;
|
|
327
271
|
if (opts.mockGossipSubNetwork) {
|
|
328
|
-
mockGossipSubNetwork = new MockGossipSubNetwork();
|
|
272
|
+
mockGossipSubNetwork = new MockGossipSubNetwork(opts.mockGossipSubNetworkLatency);
|
|
329
273
|
p2pClientDeps = {
|
|
330
274
|
p2pServiceFactory: getMockPubSubP2PServiceFactory(mockGossipSubNetwork)
|
|
331
275
|
};
|
|
@@ -352,32 +296,53 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
352
296
|
]);
|
|
353
297
|
}
|
|
354
298
|
}
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
299
|
+
// When skipInitialSequencer is set, the initial node is a lightweight RPC-only node.
|
|
300
|
+
// We apply these overrides to a copy so they don't leak into the returned config.
|
|
301
|
+
// Keep P2P enabled if mockGossipSubNetwork is used (needed for tx propagation to validators).
|
|
302
|
+
const initialNodeConfig = opts.skipInitialSequencer ? {
|
|
303
|
+
...config,
|
|
304
|
+
disableValidator: true,
|
|
305
|
+
...opts.mockGossipSubNetwork ? {} : {
|
|
306
|
+
p2pEnabled: false,
|
|
307
|
+
bootstrapNodes: []
|
|
308
|
+
}
|
|
309
|
+
} : config;
|
|
310
|
+
const aztecNodeService = await withLoggerBindings({
|
|
311
|
+
actor: 'node-0'
|
|
312
|
+
}, ()=>AztecNodeService.createAndSync(initialNodeConfig, {
|
|
313
|
+
dateProvider,
|
|
314
|
+
telemetry: telemetryClient,
|
|
315
|
+
p2pClientDeps
|
|
316
|
+
}, {
|
|
317
|
+
genesis,
|
|
318
|
+
dontStartSequencer: opts.skipInitialSequencer
|
|
319
|
+
}));
|
|
363
320
|
const sequencerClient = aztecNodeService.getSequencer();
|
|
364
|
-
if (sequencerClient) {
|
|
365
|
-
const publisher = sequencerClient.sequencer.publisher;
|
|
366
|
-
publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, config.ethereumSlotDuration, l1Client);
|
|
367
|
-
}
|
|
368
321
|
let proverNode = undefined;
|
|
369
322
|
if (opts.startProverNode) {
|
|
370
323
|
logger.verbose('Creating and syncing a simulated prover node...');
|
|
371
324
|
const proverNodePrivateKey = getPrivateKeyFromIndex(2);
|
|
372
325
|
const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
|
|
373
326
|
const proverNodeDataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
327
|
+
const p2pClientDeps = {
|
|
328
|
+
p2pServiceFactory: mockGossipSubNetwork && getMockPubSubP2PServiceFactory(mockGossipSubNetwork),
|
|
329
|
+
rpcTxProviders: [
|
|
330
|
+
aztecNodeService
|
|
331
|
+
]
|
|
378
332
|
};
|
|
379
|
-
proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, config,
|
|
333
|
+
({ proverNode } = await createAndSyncProverNode(proverNodePrivateKeyHex, config, {
|
|
334
|
+
...config.proverNodeConfig,
|
|
335
|
+
dataDirectory: proverNodeDataDirectory
|
|
336
|
+
}, {
|
|
337
|
+
dateProvider,
|
|
338
|
+
p2pClientDeps,
|
|
339
|
+
telemetry: telemetryClient
|
|
340
|
+
}, {
|
|
341
|
+
genesis
|
|
342
|
+
}));
|
|
380
343
|
}
|
|
344
|
+
const sequencerDelayer = sequencerClient?.getDelayer();
|
|
345
|
+
const proverDelayer = proverNode?.getProverNode()?.getDelayer();
|
|
381
346
|
logger.verbose('Creating a pxe...');
|
|
382
347
|
const pxeConfig = {
|
|
383
348
|
...getPXEConfig(),
|
|
@@ -386,7 +351,12 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
386
351
|
pxeConfig.dataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
|
|
387
352
|
// For tests we only want proving enabled if specifically requested
|
|
388
353
|
pxeConfig.proverEnabled = !!pxeOpts.proverEnabled;
|
|
389
|
-
const wallet = await TestWallet.create(aztecNodeService, pxeConfig
|
|
354
|
+
const wallet = await TestWallet.create(aztecNodeService, pxeConfig, {
|
|
355
|
+
loggerActorLabel: 'pxe-0'
|
|
356
|
+
});
|
|
357
|
+
if (opts.walletMinFeePadding !== undefined) {
|
|
358
|
+
wallet.setMinFeePadding(opts.walletMinFeePadding);
|
|
359
|
+
}
|
|
390
360
|
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, aztecNodeService, dateProvider);
|
|
391
361
|
if (opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0 || opts.initialValidators && opts.initialValidators.length > 0) {
|
|
392
362
|
// We need to advance such that the committee is set up.
|
|
@@ -395,7 +365,9 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
395
365
|
await cheatCodes.rollup.debugRollup();
|
|
396
366
|
}
|
|
397
367
|
let accounts = [];
|
|
398
|
-
if (
|
|
368
|
+
if (opts.skipInitialSequencer) {
|
|
369
|
+
logger.info('Sequencer not started on initial node, skipping block progression');
|
|
370
|
+
} else if (shouldDeployAccounts) {
|
|
399
371
|
logger.info(`${numberOfAccounts} accounts are being deployed. Reliably progressing past genesis by setting minTxsPerBlock to 1 and waiting for the accounts to be deployed`);
|
|
400
372
|
const accountsData = initialFundedAccounts.slice(0, numberOfAccounts);
|
|
401
373
|
const accountManagers = await deployFundedSchnorrAccounts(wallet, accountsData);
|
|
@@ -434,7 +406,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
434
406
|
logger.error(`Error during e2e test teardown`, err);
|
|
435
407
|
} finally{
|
|
436
408
|
try {
|
|
437
|
-
await telemetryClient
|
|
409
|
+
await telemetryClient.stop();
|
|
438
410
|
} catch (err) {
|
|
439
411
|
logger.error(`Error during telemetry client stop`, err);
|
|
440
412
|
}
|
|
@@ -454,8 +426,10 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
454
426
|
initialFundedAccounts,
|
|
455
427
|
logger,
|
|
456
428
|
mockGossipSubNetwork,
|
|
457
|
-
|
|
429
|
+
genesis,
|
|
458
430
|
proverNode,
|
|
431
|
+
sequencerDelayer,
|
|
432
|
+
proverDelayer,
|
|
459
433
|
sequencer: sequencerClient,
|
|
460
434
|
teardown,
|
|
461
435
|
telemetryClient,
|
|
@@ -516,75 +490,41 @@ export async function waitForProvenChain(node, targetBlock, timeoutSec = 60, int
|
|
|
516
490
|
targetBlock ??= await node.getBlockNumber();
|
|
517
491
|
await retryUntil(async ()=>await node.getProvenBlockNumber() >= targetBlock, 'proven chain status', timeoutSec, intervalSec);
|
|
518
492
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
const
|
|
527
|
-
|
|
528
|
-
...
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
dateProvider: proverNodeDeps.dateProvider
|
|
534
|
-
}, {
|
|
535
|
-
blockUntilSync: true
|
|
536
|
-
});
|
|
537
|
-
const proverConfig = {
|
|
538
|
-
...aztecNodeConfig,
|
|
539
|
-
txCollectionNodeRpcUrls: [],
|
|
540
|
-
realProofs: false,
|
|
541
|
-
proverAgentCount: 2,
|
|
542
|
-
publisherPrivateKeys: [
|
|
493
|
+
/**
|
|
494
|
+
* Creates an AztecNodeService with the prover node enabled as a subsystem.
|
|
495
|
+
* Returns both the aztec node service (for lifecycle management) and the prover node (for test internals access).
|
|
496
|
+
*/ export function createAndSyncProverNode(proverNodePrivateKey, baseConfig, configOverrides, deps, options) {
|
|
497
|
+
return withLoggerBindings({
|
|
498
|
+
actor: 'prover-0'
|
|
499
|
+
}, async ()=>{
|
|
500
|
+
const proverNode = await AztecNodeService.createAndSync({
|
|
501
|
+
...baseConfig,
|
|
502
|
+
...configOverrides,
|
|
503
|
+
p2pPort: 0,
|
|
504
|
+
enableProverNode: true,
|
|
505
|
+
disableValidator: true,
|
|
506
|
+
proverPublisherPrivateKeys: [
|
|
543
507
|
new SecretValue(proverNodePrivateKey)
|
|
544
|
-
]
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
txGatheringIntervalMs: 1000,
|
|
549
|
-
txGatheringBatchSize: 10,
|
|
550
|
-
txGatheringMaxParallelRequestsPerNode: 10,
|
|
551
|
-
txGatheringTimeoutMs: 24_000,
|
|
552
|
-
proverNodeFailedEpochStore: undefined,
|
|
553
|
-
proverId: EthAddress.fromNumber(1),
|
|
554
|
-
proverNodeEpochProvingDelayMs: undefined,
|
|
555
|
-
...proverNodeConfig
|
|
556
|
-
};
|
|
557
|
-
const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node', proverNodeDeps.dateProvider);
|
|
558
|
-
const proverNode = await createProverNode(proverConfig, {
|
|
559
|
-
...proverNodeDeps,
|
|
560
|
-
aztecNodeTxProvider,
|
|
561
|
-
archiver: archiver,
|
|
562
|
-
l1TxUtils
|
|
563
|
-
}, {
|
|
564
|
-
prefilledPublicData
|
|
508
|
+
]
|
|
509
|
+
}, deps, {
|
|
510
|
+
genesis: options.genesis,
|
|
511
|
+
dontStartProverNode: options.dontStart
|
|
565
512
|
});
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
});
|
|
569
|
-
if (!proverNodeConfig.dontStart) {
|
|
570
|
-
await proverNode.start();
|
|
513
|
+
if (!proverNode.getProverNode()) {
|
|
514
|
+
throw new Error('Prover node subsystem was not created despite enableProverNode being set');
|
|
571
515
|
}
|
|
572
|
-
|
|
516
|
+
getLogger().info(`Created and synced prover node`);
|
|
517
|
+
return {
|
|
518
|
+
proverNode
|
|
519
|
+
};
|
|
573
520
|
});
|
|
574
521
|
}
|
|
575
|
-
function
|
|
576
|
-
const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, privateKey, foundry);
|
|
577
|
-
const log = createLogger(logName);
|
|
578
|
-
const l1TxUtils = createDelayedL1TxUtilsFromViemWallet(l1Client, log, dateProvider, aztecNodeConfig);
|
|
579
|
-
l1TxUtils.enableDelayer(aztecNodeConfig.ethereumSlotDuration);
|
|
580
|
-
return l1TxUtils;
|
|
581
|
-
}
|
|
582
|
-
export function getBalancesFn(symbol, method, from, logger) {
|
|
522
|
+
export function getBalancesFn(symbol, method, logger) {
|
|
583
523
|
const balances = async (...addressLikes)=>{
|
|
584
524
|
const addresses = addressLikes.map((addressLike)=>'address' in addressLike ? addressLike.address : addressLike);
|
|
585
|
-
const b = await Promise.all(addresses.map((address)=>method(address).simulate({
|
|
586
|
-
from
|
|
587
|
-
})));
|
|
525
|
+
const b = await Promise.all(addresses.map(async (address)=>(await method(address).simulate({
|
|
526
|
+
from: address
|
|
527
|
+
})).result));
|
|
588
528
|
const debugString = `${symbol} balances: ${addresses.map((address, i)=>`${address}: ${b[i]}`).join(', ')}`;
|
|
589
529
|
logger.verbose(debugString);
|
|
590
530
|
return b;
|
|
@@ -628,7 +568,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
628
568
|
/**
|
|
629
569
|
* Helper function to deploy accounts.
|
|
630
570
|
* Returns deployed account data that can be used by tests.
|
|
631
|
-
*/ export const deployAccounts = (numberOfAccounts, logger)=>async ({ wallet, initialFundedAccounts })=>{
|
|
571
|
+
*/ export const deployAccounts = (numberOfAccounts, logger, deployOptions)=>async ({ wallet, initialFundedAccounts })=>{
|
|
632
572
|
if (initialFundedAccounts.length < numberOfAccounts) {
|
|
633
573
|
throw new Error(`Cannot deploy more than ${initialFundedAccounts.length} initial accounts.`);
|
|
634
574
|
}
|
|
@@ -639,8 +579,9 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
639
579
|
const accountManager = await wallet.createSchnorrAccount(deployedAccounts[i].secret, deployedAccounts[i].salt, deployedAccounts[i].signingKey);
|
|
640
580
|
const deployMethod = await accountManager.getDeployMethod();
|
|
641
581
|
await deployMethod.send({
|
|
642
|
-
from:
|
|
643
|
-
skipClassPublication: i !== 0
|
|
582
|
+
from: NO_FROM,
|
|
583
|
+
skipClassPublication: i !== 0,
|
|
584
|
+
...deployOptions
|
|
644
585
|
});
|
|
645
586
|
}
|
|
646
587
|
return {
|
|
@@ -661,7 +602,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
661
602
|
...instances.map((instance)=>publishInstance(wallet, instance))
|
|
662
603
|
]);
|
|
663
604
|
const batch = new BatchCall(wallet, calls);
|
|
664
|
-
const txReceipt = await batch.send({
|
|
605
|
+
const { receipt: txReceipt } = await batch.send({
|
|
665
606
|
from: accountsToDeploy[0]
|
|
666
607
|
});
|
|
667
608
|
if (waitUntilProven) {
|
|
@@ -3,21 +3,28 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
5
5
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
6
|
-
import type {
|
|
7
|
-
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
8
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
6
|
+
import type { GenesisData } from '@aztec/stdlib/world-state';
|
|
9
7
|
export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
|
|
10
8
|
export declare function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[];
|
|
11
9
|
export declare function createNodes(config: AztecNodeConfig & {
|
|
12
10
|
dontStartSequencer?: boolean;
|
|
13
|
-
}, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number,
|
|
14
|
-
/**
|
|
15
|
-
export
|
|
11
|
+
}, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number, indexOffset?: number, validatorsPerNode?: number): Promise<AztecNodeService[]>;
|
|
12
|
+
/** Extended config type for createNode with test-specific overrides. */
|
|
13
|
+
export type CreateNodeConfig = AztecNodeConfig & {
|
|
14
|
+
/** Whether to skip starting the sequencer. */
|
|
16
15
|
dontStartSequencer?: boolean;
|
|
17
|
-
|
|
16
|
+
/** Override the private key (instead of deriving from addressIndex). */
|
|
17
|
+
validatorPrivateKey?: `0x${string}`;
|
|
18
|
+
};
|
|
19
|
+
/** Creates a P2P enabled instance of Aztec Node Service with a validator. */
|
|
20
|
+
export declare function createNode(config: CreateNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number | number[], genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<AztecNodeService>;
|
|
18
21
|
/** 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,
|
|
20
|
-
export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number,
|
|
22
|
+
export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<AztecNodeService>;
|
|
23
|
+
export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, deps: {
|
|
24
|
+
dateProvider: DateProvider;
|
|
25
|
+
}, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<{
|
|
26
|
+
proverNode: AztecNodeService;
|
|
27
|
+
}>;
|
|
21
28
|
export declare function createP2PConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
|
|
22
|
-
export declare function createValidatorConfig(config:
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
export declare function createValidatorConfig(config: CreateNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number | number[], dataDirectory?: string): Promise<AztecNodeConfig>;
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcDJwX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zZXR1cF9wMnBfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSzNFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBVzdELGVBQU8sTUFBTSxpQ0FBaUMsSUFBSSxDQUFDO0FBT25ELHdCQUFnQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEdBQUcsS0FBSyxNQUFNLEVBQUUsRUFBRSxDQU83RjtBQUVELHdCQUFzQixXQUFXLENBQy9CLE1BQU0sRUFBRSxlQUFlLEdBQUc7SUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQzFELFlBQVksRUFBRSxZQUFZLEVBQzFCLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUNyQixhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFDcEIsV0FBVyxTQUFJLEVBQ2YsaUJBQWlCLFNBQUksR0FDcEIsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FtQzdCO0FBRUQsd0VBQXdFO0FBQ3hFLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLEdBQUc7SUFDL0MsOENBQThDO0lBQzlDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzdCLHdFQUF3RTtJQUN4RSxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Q0FDckMsQ0FBQztBQUVGLDZFQUE2RTtBQUM3RSx3QkFBc0IsVUFBVSxDQUM5QixNQUFNLEVBQUUsZ0JBQWdCLEVBQ3hCLFlBQVksRUFBRSxZQUFZLEVBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2pDLFlBQVksRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLEVBQy9CLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFDckIsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLDZCQVlyQjtBQUVELCtFQUErRTtBQUMvRSx3QkFBc0Isc0JBQXNCLENBQzFDLFVBQVUsRUFBRSxlQUFlLEVBQzNCLFlBQVksRUFBRSxZQUFZLEVBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2pDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFDckIsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLDZCQWNyQjtBQUVELHdCQUFzQixnQkFBZ0IsQ0FDcEMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDakMsWUFBWSxFQUFFLE1BQU0sRUFDcEIsSUFBSSxFQUFFO0lBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQTtDQUFFLEVBQ3BDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFDckIsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLEdBQ25CLE9BQU8sQ0FBQztJQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQTtDQUFFLENBQUMsQ0FnQjNDO0FBRUQsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQ3pCLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLDRCQWdCdkI7QUFFRCx3QkFBc0IscUJBQXFCLENBQ3pDLE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQ3pCLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFDYixZQUFZLEdBQUUsTUFBTSxHQUFHLE1BQU0sRUFBTSxFQUNuQyxhQUFhLENBQUMsRUFBRSxNQUFNLDRCQW9CdkIifQ==
|
|
@@ -1 +1 @@
|
|
|
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;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,
|
|
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;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAW7D,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAOnD,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,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,EACf,iBAAiB,SAAI,GACpB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAmC7B;AAED,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,6EAA6E;AAC7E,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAC/B,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,6BAYrB;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,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,6BAcrB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IAAE,YAAY,EAAE,YAAY,CAAA;CAAE,EACpC,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAgB3C;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,gBAAgB,EACxB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAM,GAAG,MAAM,EAAM,EACnC,aAAa,CAAC,EAAE,MAAM,4BAoBvB"}
|