@aztec/end-to-end 0.0.1-commit.3469e52 → 0.0.1-commit.381b1a9
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/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 +46 -24
- 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 +5 -4
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +13 -8
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +4 -2
- 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 +27 -18
- 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 +15 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +87 -39
- package/dest/e2e_fees/bridging_race.notest.js +1 -1
- 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 +24 -17
- package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
- 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.js +4 -6
- package/dest/e2e_p2p/p2p_network.d.ts +2 -2
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +23 -6
- 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 +177 -0
- package/dest/e2e_p2p/shared.d.ts +6 -6
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +14 -17
- 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 +20 -10
- 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 +30 -0
- package/dest/fixtures/e2e_prover_test.d.ts +4 -4
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +41 -45
- package/dest/fixtures/fixtures.d.ts +5 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +6 -0
- 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/setup.d.ts +48 -26
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +91 -169
- package/dest/fixtures/setup_p2p_test.d.ts +16 -9
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +40 -29
- package/dest/fixtures/token_utils.d.ts +1 -1
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +9 -6
- package/dest/shared/cross_chain_test_harness.d.ts +3 -4
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +24 -24
- 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/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 +4 -4
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +9 -11
- 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 +27 -28
- 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 +107 -37
- package/dest/spartan/tx_metrics.d.ts +38 -2
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +178 -4
- package/dest/spartan/utils/bot.d.ts +28 -0
- package/dest/spartan/utils/bot.d.ts.map +1 -0
- package/dest/spartan/utils/bot.js +142 -0
- package/dest/spartan/utils/chaos.d.ts +79 -0
- package/dest/spartan/utils/chaos.d.ts.map +1 -0
- package/dest/spartan/utils/chaos.js +142 -0
- package/dest/spartan/utils/clients.d.ts +39 -0
- package/dest/spartan/utils/clients.d.ts.map +1 -0
- package/dest/spartan/utils/clients.js +90 -0
- package/dest/spartan/utils/config.d.ts +39 -0
- package/dest/spartan/utils/config.d.ts.map +1 -0
- package/dest/spartan/utils/config.js +21 -0
- package/dest/spartan/utils/health.d.ts +63 -0
- package/dest/spartan/utils/health.d.ts.map +1 -0
- package/dest/spartan/utils/health.js +202 -0
- package/dest/spartan/utils/helm.d.ts +15 -0
- package/dest/spartan/utils/helm.d.ts.map +1 -0
- package/dest/spartan/utils/helm.js +47 -0
- package/dest/spartan/utils/index.d.ts +10 -0
- package/dest/spartan/utils/index.d.ts.map +1 -0
- package/dest/spartan/utils/index.js +20 -0
- package/dest/spartan/utils/k8s.d.ts +128 -0
- package/dest/spartan/utils/k8s.d.ts.map +1 -0
- package/dest/spartan/utils/k8s.js +381 -0
- package/dest/spartan/utils/nodes.d.ts +41 -0
- package/dest/spartan/utils/nodes.d.ts.map +1 -0
- package/dest/spartan/utils/nodes.js +461 -0
- package/dest/spartan/utils/scripts.d.ts +30 -0
- package/dest/spartan/utils/scripts.d.ts.map +1 -0
- package/dest/spartan/utils/scripts.js +81 -0
- package/dest/spartan/utils.d.ts +2 -260
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +1 -942
- package/dest/test-wallet/test_wallet.d.ts +83 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +214 -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 +274 -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 +43 -39
- package/src/bench/client_flows/client_flows_benchmark.ts +48 -58
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/utils.ts +15 -8
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +33 -23
- 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 +130 -93
- package/src/e2e_fees/bridging_race.notest.ts +2 -5
- package/src/e2e_fees/fees_test.ts +28 -40
- package/src/e2e_l1_publisher/write_json.ts +3 -8
- package/src/e2e_nested_contract/nested_contract_test.ts +7 -7
- package/src/e2e_p2p/inactivity_slash_test.ts +4 -4
- package/src/e2e_p2p/p2p_network.ts +46 -17
- package/src/e2e_p2p/reqresp/utils.ts +235 -0
- package/src/e2e_p2p/shared.ts +22 -22
- 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 +27 -12
- package/src/fixtures/authwit_proxy.ts +50 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +43 -52
- package/src/fixtures/fixtures.ts +10 -0
- package/src/fixtures/ha_setup.ts +186 -0
- package/src/fixtures/index.ts +1 -0
- package/src/fixtures/setup.ts +125 -233
- package/src/fixtures/setup_p2p_test.ts +40 -44
- package/src/fixtures/token_utils.ts +9 -6
- package/src/guides/up_quick_start.sh +3 -3
- package/src/shared/cross_chain_test_harness.ts +24 -34
- package/src/shared/gas_portal_test_harness.ts +2 -2
- package/src/shared/index.ts +1 -0
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +11 -16
- package/src/shared/uniswap_l1_l2.ts +49 -51
- package/src/simulators/lending_simulator.ts +6 -4
- package/src/simulators/token_simulator.ts +6 -30
- package/src/spartan/setup_test_wallets.ts +150 -25
- package/src/spartan/tx_metrics.ts +152 -7
- package/src/spartan/utils/bot.ts +188 -0
- package/src/spartan/utils/chaos.ts +253 -0
- package/src/spartan/utils/clients.ts +100 -0
- package/src/spartan/utils/config.ts +27 -0
- package/src/spartan/utils/health.ts +255 -0
- package/src/spartan/utils/helm.ts +84 -0
- package/src/spartan/utils/index.ts +68 -0
- package/src/spartan/utils/k8s.ts +535 -0
- package/src/spartan/utils/nodes.ts +538 -0
- package/src/spartan/utils/scripts.ts +99 -0
- package/src/spartan/utils.ts +1 -1246
- package/src/test-wallet/test_wallet.ts +306 -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 +213 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
package/dest/fixtures/setup.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
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
4
|
import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
6
5
|
import { BatchCall, getContractClassFromArtifact, waitForProven } from '@aztec/aztec.js/contracts';
|
|
7
6
|
import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
|
|
8
7
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
9
8
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
10
|
-
import { createAztecNodeClient, waitForNode } from '@aztec/aztec.js/node';
|
|
11
9
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
|
|
12
|
-
import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
|
|
13
10
|
import { SPONSORED_FPC_SALT } from '@aztec/constants';
|
|
14
11
|
import { isAnvilTestChain } from '@aztec/ethereum/chain';
|
|
15
12
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
@@ -17,40 +14,38 @@ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
|
17
14
|
import { NULL_KEY } from '@aztec/ethereum/constants';
|
|
18
15
|
import { deployMulticall3 } from '@aztec/ethereum/contracts';
|
|
19
16
|
import { deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
20
|
-
import {
|
|
17
|
+
import { EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
|
|
21
18
|
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
22
19
|
import { SecretValue } from '@aztec/foundation/config';
|
|
23
20
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
24
21
|
import { tryRmDir } from '@aztec/foundation/fs';
|
|
25
|
-
import {
|
|
22
|
+
import { withLoggerBindings } from '@aztec/foundation/log/server';
|
|
26
23
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
27
24
|
import { sleep } from '@aztec/foundation/sleep';
|
|
28
|
-
import {
|
|
25
|
+
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
29
26
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
30
27
|
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
31
28
|
import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
|
|
32
29
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
33
|
-
import { createProverNode } from '@aztec/prover-node';
|
|
34
30
|
import { getPXEConfig } from '@aztec/pxe/server';
|
|
35
31
|
import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
36
32
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
37
33
|
import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
38
34
|
import { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
|
|
39
|
-
import {
|
|
35
|
+
import { deployFundedSchnorrAccounts } from '@aztec/wallets/testing';
|
|
40
36
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
41
37
|
import fs from 'fs/promises';
|
|
42
38
|
import { tmpdir } from 'os';
|
|
43
39
|
import path from 'path';
|
|
44
40
|
import { generatePrivateKey, mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
|
|
45
41
|
import { foundry } from 'viem/chains';
|
|
42
|
+
import { TestWallet } from '../test-wallet/test_wallet.js';
|
|
46
43
|
import { MNEMONIC, TEST_MAX_PENDING_TX_POOL_COUNT, TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
|
|
47
44
|
import { getACVMConfig } from './get_acvm_config.js';
|
|
48
45
|
import { getBBConfig } from './get_bb_config.js';
|
|
49
46
|
import { isMetricsLoggingRequested, setupMetricsLogger } from './logging.js';
|
|
50
47
|
import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
|
|
51
48
|
export { startAnvil };
|
|
52
|
-
const { AZTEC_NODE_URL = '' } = process.env;
|
|
53
|
-
const getAztecUrl = ()=>AZTEC_NODE_URL;
|
|
54
49
|
let telemetry = undefined;
|
|
55
50
|
async function getTelemetryClient(partialConfig = {}) {
|
|
56
51
|
if (!telemetry) {
|
|
@@ -86,9 +81,9 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
86
81
|
* @param aztecNode - An instance of Aztec Node.
|
|
87
82
|
* @param opts - Partial configuration for the PXE.
|
|
88
83
|
* @param logger - The logger to be used.
|
|
89
|
-
* @param
|
|
84
|
+
* @param actor - Actor label to include in log output (e.g., 'pxe-test').
|
|
90
85
|
* @returns A test wallet, logger and teardown function.
|
|
91
|
-
*/ export async function setupPXEAndGetWallet(aztecNode, opts = {}, logger = getLogger(),
|
|
86
|
+
*/ export async function setupPXEAndGetWallet(aztecNode, opts = {}, logger = getLogger(), actor) {
|
|
92
87
|
const PXEConfig = {
|
|
93
88
|
...getPXEConfig(),
|
|
94
89
|
...opts
|
|
@@ -102,7 +97,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
102
97
|
}
|
|
103
98
|
const teardown = configuredDataDirectory ? ()=>Promise.resolve() : ()=>tryRmDir(PXEConfig.dataDirectory);
|
|
104
99
|
const wallet = await TestWallet.create(aztecNode, PXEConfig, {
|
|
105
|
-
|
|
100
|
+
loggerActorLabel: actor
|
|
106
101
|
});
|
|
107
102
|
return {
|
|
108
103
|
wallet,
|
|
@@ -110,62 +105,6 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
110
105
|
teardown
|
|
111
106
|
};
|
|
112
107
|
}
|
|
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
108
|
/**
|
|
170
109
|
* Sets up the environment for the end-to-end tests.
|
|
171
110
|
* @param numberOfAccounts - The number of new accounts to be created once the PXE is initiated.
|
|
@@ -188,7 +127,10 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
188
127
|
config.realProofs = !!opts.realProofs;
|
|
189
128
|
// Only enforce the time table if requested
|
|
190
129
|
config.enforceTimeTable = !!opts.enforceTimeTable;
|
|
130
|
+
// Enable the tx delayer for tests (default config has it disabled, so we force-enable it here)
|
|
131
|
+
config.enableDelayer = true;
|
|
191
132
|
config.listenAddress = '127.0.0.1';
|
|
133
|
+
config.minTxPoolAgeMs = opts.minTxPoolAgeMs ?? 0;
|
|
192
134
|
const logger = getLogger();
|
|
193
135
|
// Create a temp directory for any services that need it and cleanup later
|
|
194
136
|
const directoryToCleanup = path.join(tmpdir(), randomBytes(8).toString('hex'));
|
|
@@ -202,13 +144,11 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
202
144
|
if (!isAnvilTestChain(chain.id)) {
|
|
203
145
|
throw new Error(`No ETHEREUM_HOSTS set but non anvil chain requested`);
|
|
204
146
|
}
|
|
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
147
|
const res = await startAnvil({
|
|
209
148
|
l1BlockTime: opts.ethereumSlotDuration,
|
|
210
149
|
accounts: opts.anvilAccounts,
|
|
211
|
-
port: opts.anvilPort
|
|
150
|
+
port: opts.anvilPort ?? (process.env.ANVIL_PORT ? parseInt(process.env.ANVIL_PORT) : undefined),
|
|
151
|
+
slotsInAnEpoch: opts.anvilSlotsInAnEpoch
|
|
212
152
|
});
|
|
213
153
|
anvil = res.anvil;
|
|
214
154
|
config.l1RpcUrls = [
|
|
@@ -236,8 +176,8 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
236
176
|
if (opts.l1PublisherKey && opts.l1PublisherKey.getValue() && opts.l1PublisherKey.getValue() != NULL_KEY) {
|
|
237
177
|
publisherPrivKeyHex = opts.l1PublisherKey.getValue();
|
|
238
178
|
publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
|
|
239
|
-
} else if (config.
|
|
240
|
-
publisherPrivKeyHex = config.
|
|
179
|
+
} else if (config.sequencerPublisherPrivateKeys && config.sequencerPublisherPrivateKeys.length > 0 && config.sequencerPublisherPrivateKeys[0].getValue() != NULL_KEY) {
|
|
180
|
+
publisherPrivKeyHex = config.sequencerPublisherPrivateKeys[0].getValue();
|
|
241
181
|
publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
|
|
242
182
|
} else if (!MNEMONIC) {
|
|
243
183
|
throw new Error(`Mnemonic not provided and no publisher private key`);
|
|
@@ -248,17 +188,13 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
248
188
|
const publisherPrivKeyRaw = publisherHdAccount.getHdKey().privateKey;
|
|
249
189
|
const publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
|
|
250
190
|
publisherPrivKeyHex = `0x${publisherPrivKey.toString('hex')}`;
|
|
251
|
-
config.
|
|
191
|
+
config.sequencerPublisherPrivateKeys = [
|
|
252
192
|
new SecretValue(publisherPrivKeyHex)
|
|
253
193
|
];
|
|
254
194
|
}
|
|
255
195
|
if (config.coinbase === undefined) {
|
|
256
196
|
config.coinbase = EthAddress.fromString(publisherHdAccount.address);
|
|
257
197
|
}
|
|
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
198
|
// Determine which addresses to fund in genesis
|
|
263
199
|
const initialFundedAccounts = opts.initialFundedAccounts ?? await generateSchnorrAccounts(opts.numberOfInitialFundedAccounts ?? Math.max(numberOfAccounts, 10));
|
|
264
200
|
const addressesToFund = initialFundedAccounts.map((a)=>a.address);
|
|
@@ -297,8 +233,12 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
297
233
|
if (enableAutomine) {
|
|
298
234
|
await ethCheatCodes.setAutomine(false);
|
|
299
235
|
await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
|
|
300
|
-
dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
|
|
301
236
|
}
|
|
237
|
+
// Always sync dateProvider to L1 time after deploying L1 contracts, regardless of mining mode.
|
|
238
|
+
// In compose mode, L1 time may have drifted ahead of system time due to the local-network watcher
|
|
239
|
+
// warping time forward on each filled slot. Without this sync, the sequencer computes the wrong
|
|
240
|
+
// slot from its dateProvider and cannot propose blocks.
|
|
241
|
+
dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
|
|
302
242
|
if (opts.l2StartTime) {
|
|
303
243
|
await ethCheatCodes.warp(opts.l2StartTime, {
|
|
304
244
|
resetBlockInterval: true
|
|
@@ -352,32 +292,41 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
352
292
|
]);
|
|
353
293
|
}
|
|
354
294
|
}
|
|
355
|
-
const aztecNodeService = await
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
295
|
+
const aztecNodeService = await withLoggerBindings({
|
|
296
|
+
actor: 'node-0'
|
|
297
|
+
}, ()=>AztecNodeService.createAndSync(config, {
|
|
298
|
+
dateProvider,
|
|
299
|
+
telemetry: telemetryClient,
|
|
300
|
+
p2pClientDeps
|
|
301
|
+
}, {
|
|
302
|
+
prefilledPublicData
|
|
303
|
+
}));
|
|
363
304
|
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
305
|
let proverNode = undefined;
|
|
369
306
|
if (opts.startProverNode) {
|
|
370
307
|
logger.verbose('Creating and syncing a simulated prover node...');
|
|
371
308
|
const proverNodePrivateKey = getPrivateKeyFromIndex(2);
|
|
372
309
|
const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
|
|
373
310
|
const proverNodeDataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
311
|
+
const p2pClientDeps = {
|
|
312
|
+
p2pServiceFactory: mockGossipSubNetwork && getMockPubSubP2PServiceFactory(mockGossipSubNetwork),
|
|
313
|
+
rpcTxProviders: [
|
|
314
|
+
aztecNodeService
|
|
315
|
+
]
|
|
378
316
|
};
|
|
379
|
-
proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, config,
|
|
317
|
+
({ proverNode } = await createAndSyncProverNode(proverNodePrivateKeyHex, config, {
|
|
318
|
+
...config.proverNodeConfig,
|
|
319
|
+
dataDirectory: proverNodeDataDirectory
|
|
320
|
+
}, {
|
|
321
|
+
dateProvider,
|
|
322
|
+
p2pClientDeps,
|
|
323
|
+
telemetry: telemetryClient
|
|
324
|
+
}, {
|
|
325
|
+
prefilledPublicData
|
|
326
|
+
}));
|
|
380
327
|
}
|
|
328
|
+
const sequencerDelayer = sequencerClient?.getDelayer();
|
|
329
|
+
const proverDelayer = proverNode?.getProverNode()?.getDelayer();
|
|
381
330
|
logger.verbose('Creating a pxe...');
|
|
382
331
|
const pxeConfig = {
|
|
383
332
|
...getPXEConfig(),
|
|
@@ -386,7 +335,12 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
386
335
|
pxeConfig.dataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
|
|
387
336
|
// For tests we only want proving enabled if specifically requested
|
|
388
337
|
pxeConfig.proverEnabled = !!pxeOpts.proverEnabled;
|
|
389
|
-
const wallet = await TestWallet.create(aztecNodeService, pxeConfig
|
|
338
|
+
const wallet = await TestWallet.create(aztecNodeService, pxeConfig, {
|
|
339
|
+
loggerActorLabel: 'pxe-0'
|
|
340
|
+
});
|
|
341
|
+
if (opts.walletMinFeePadding !== undefined) {
|
|
342
|
+
wallet.setMinFeePadding(opts.walletMinFeePadding);
|
|
343
|
+
}
|
|
390
344
|
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, aztecNodeService, dateProvider);
|
|
391
345
|
if (opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0 || opts.initialValidators && opts.initialValidators.length > 0) {
|
|
392
346
|
// We need to advance such that the committee is set up.
|
|
@@ -398,7 +352,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
398
352
|
if (shouldDeployAccounts) {
|
|
399
353
|
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
354
|
const accountsData = initialFundedAccounts.slice(0, numberOfAccounts);
|
|
401
|
-
const accountManagers = await deployFundedSchnorrAccounts(wallet,
|
|
355
|
+
const accountManagers = await deployFundedSchnorrAccounts(wallet, accountsData);
|
|
402
356
|
accounts = accountManagers.map((accountManager)=>accountManager.address);
|
|
403
357
|
} else if (needsEmptyBlock) {
|
|
404
358
|
logger.info('No accounts are being deployed, waiting for an empty block 1 to be mined');
|
|
@@ -434,7 +388,7 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
434
388
|
logger.error(`Error during e2e test teardown`, err);
|
|
435
389
|
} finally{
|
|
436
390
|
try {
|
|
437
|
-
await telemetryClient
|
|
391
|
+
await telemetryClient.stop();
|
|
438
392
|
} catch (err) {
|
|
439
393
|
logger.error(`Error during telemetry client stop`, err);
|
|
440
394
|
}
|
|
@@ -456,6 +410,8 @@ export const getPrivateKeyFromIndex = (index)=>{
|
|
|
456
410
|
mockGossipSubNetwork,
|
|
457
411
|
prefilledPublicData,
|
|
458
412
|
proverNode,
|
|
413
|
+
sequencerDelayer,
|
|
414
|
+
proverDelayer,
|
|
459
415
|
sequencer: sequencerClient,
|
|
460
416
|
teardown,
|
|
461
417
|
telemetryClient,
|
|
@@ -516,75 +472,41 @@ export async function waitForProvenChain(node, targetBlock, timeoutSec = 60, int
|
|
|
516
472
|
targetBlock ??= await node.getBlockNumber();
|
|
517
473
|
await retryUntil(async ()=>await node.getProvenBlockNumber() >= targetBlock, 'proven chain status', timeoutSec, intervalSec);
|
|
518
474
|
}
|
|
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: [
|
|
475
|
+
/**
|
|
476
|
+
* Creates an AztecNodeService with the prover node enabled as a subsystem.
|
|
477
|
+
* Returns both the aztec node service (for lifecycle management) and the prover node (for test internals access).
|
|
478
|
+
*/ export function createAndSyncProverNode(proverNodePrivateKey, baseConfig, configOverrides, deps, options) {
|
|
479
|
+
return withLoggerBindings({
|
|
480
|
+
actor: 'prover-0'
|
|
481
|
+
}, async ()=>{
|
|
482
|
+
const proverNode = await AztecNodeService.createAndSync({
|
|
483
|
+
...baseConfig,
|
|
484
|
+
...configOverrides,
|
|
485
|
+
p2pPort: 0,
|
|
486
|
+
enableProverNode: true,
|
|
487
|
+
disableValidator: true,
|
|
488
|
+
proverPublisherPrivateKeys: [
|
|
543
489
|
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
|
|
490
|
+
]
|
|
491
|
+
}, deps, {
|
|
492
|
+
...options,
|
|
493
|
+
dontStartProverNode: options.dontStart
|
|
565
494
|
});
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
});
|
|
569
|
-
if (!proverNodeConfig.dontStart) {
|
|
570
|
-
await proverNode.start();
|
|
495
|
+
if (!proverNode.getProverNode()) {
|
|
496
|
+
throw new Error('Prover node subsystem was not created despite enableProverNode being set');
|
|
571
497
|
}
|
|
572
|
-
|
|
498
|
+
getLogger().info(`Created and synced prover node`);
|
|
499
|
+
return {
|
|
500
|
+
proverNode
|
|
501
|
+
};
|
|
573
502
|
});
|
|
574
503
|
}
|
|
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) {
|
|
504
|
+
export function getBalancesFn(symbol, method, logger) {
|
|
583
505
|
const balances = async (...addressLikes)=>{
|
|
584
506
|
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
|
-
})));
|
|
507
|
+
const b = await Promise.all(addresses.map(async (address)=>(await method(address).simulate({
|
|
508
|
+
from: address
|
|
509
|
+
})).result));
|
|
588
510
|
const debugString = `${symbol} balances: ${addresses.map((address, i)=>`${address}: ${b[i]}`).join(', ')}`;
|
|
589
511
|
logger.verbose(debugString);
|
|
590
512
|
return b;
|
|
@@ -617,13 +539,13 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
617
539
|
if (!(await wallet.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered) {
|
|
618
540
|
await (await publishContractClass(wallet, SchnorrAccountContractArtifact)).send({
|
|
619
541
|
from: accountsToDeploy[0]
|
|
620
|
-
})
|
|
542
|
+
});
|
|
621
543
|
}
|
|
622
544
|
const requests = instances.map((instance)=>publishInstance(wallet, instance));
|
|
623
545
|
const batch = new BatchCall(wallet, requests);
|
|
624
546
|
await batch.send({
|
|
625
547
|
from: accountsToDeploy[0]
|
|
626
|
-
})
|
|
548
|
+
});
|
|
627
549
|
}
|
|
628
550
|
/**
|
|
629
551
|
* Helper function to deploy accounts.
|
|
@@ -641,7 +563,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
641
563
|
await deployMethod.send({
|
|
642
564
|
from: AztecAddress.ZERO,
|
|
643
565
|
skipClassPublication: i !== 0
|
|
644
|
-
})
|
|
566
|
+
});
|
|
645
567
|
}
|
|
646
568
|
return {
|
|
647
569
|
deployedAccounts
|
|
@@ -661,9 +583,9 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
|
|
|
661
583
|
...instances.map((instance)=>publishInstance(wallet, instance))
|
|
662
584
|
]);
|
|
663
585
|
const batch = new BatchCall(wallet, calls);
|
|
664
|
-
const txReceipt = await batch.send({
|
|
586
|
+
const { receipt: txReceipt } = await batch.send({
|
|
665
587
|
from: accountsToDeploy[0]
|
|
666
|
-
})
|
|
588
|
+
});
|
|
667
589
|
if (waitUntilProven) {
|
|
668
590
|
if (!node) {
|
|
669
591
|
throw new Error('Need to provide an AztecNode to wait for proven.');
|
|
@@ -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 { ProverNodeDeps } from '@aztec/prover-node';
|
|
7
6
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
8
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
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
11
|
}, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, indexOffset?: number, validatorsPerNode?: number): Promise<AztecNodeService[]>;
|
|
14
|
-
/**
|
|
15
|
-
export
|
|
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[], prefilledPublicData?: PublicDataTreeLeaf[], 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, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number
|
|
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, prefilledPublicData?: PublicDataTreeLeaf[], 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
|
+
}, prefilledPublicData?: PublicDataTreeLeaf[], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcDJwX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zZXR1cF9wMnBfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSzNFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFXOUQsZUFBTyxNQUFNLGlDQUFpQyxJQUFJLENBQUM7QUFPbkQsd0JBQWdCLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxLQUFLLE1BQU0sRUFBRSxFQUFFLENBTzdGO0FBRUQsd0JBQXNCLFdBQVcsQ0FDL0IsTUFBTSxFQUFFLGVBQWUsR0FBRztJQUFFLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFBO0NBQUUsRUFDMUQsWUFBWSxFQUFFLFlBQVksRUFDMUIsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixRQUFRLEVBQUUsTUFBTSxFQUNoQixZQUFZLEVBQUUsTUFBTSxFQUNwQixtQkFBbUIsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEVBQzFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFDdEIsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUNwQixXQUFXLFNBQUksRUFDZixpQkFBaUIsU0FBSSxHQUNwQixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQW1DN0I7QUFFRCx3RUFBd0U7QUFDeEUsTUFBTSxNQUFNLGdCQUFnQixHQUFHLGVBQWUsR0FBRztJQUMvQyw4Q0FBOEM7SUFDOUMsa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0Isd0VBQXdFO0lBQ3hFLG1CQUFtQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztDQUNyQyxDQUFDO0FBRUYsNkVBQTZFO0FBQzdFLHdCQUFzQixVQUFVLENBQzlCLE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsWUFBWSxFQUFFLFlBQVksRUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDakMsWUFBWSxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsRUFDL0IsbUJBQW1CLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxFQUMxQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sNkJBWXJCO0FBRUQsK0VBQStFO0FBQy9FLHdCQUFzQixzQkFBc0IsQ0FDMUMsVUFBVSxFQUFFLGVBQWUsRUFDM0IsWUFBWSxFQUFFLFlBQVksRUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDakMsbUJBQW1CLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxFQUMxQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sNkJBY3JCO0FBRUQsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsZUFBZSxFQUN2QixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNqQyxZQUFZLEVBQUUsTUFBTSxFQUNwQixJQUFJLEVBQUU7SUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFBO0NBQUUsRUFDcEMsbUJBQW1CLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxFQUMxQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FDbkIsT0FBTyxDQUFDO0lBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFBO0NBQUUsQ0FBQyxDQWdCM0M7QUFFRCx3QkFBc0IsZUFBZSxDQUNuQyxNQUFNLEVBQUUsZUFBZSxFQUN2QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFDekIsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUNiLGFBQWEsQ0FBQyxFQUFFLE1BQU0sNEJBZ0J2QjtBQUVELHdCQUFzQixxQkFBcUIsQ0FDekMsTUFBTSxFQUFFLGdCQUFnQixFQUN4QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFDekIsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUNiLFlBQVksR0FBRSxNQUFNLEdBQUcsTUFBTSxFQUFNLEVBQ25DLGFBQWEsQ0FBQyxFQUFFLE1BQU0sNEJBb0J2QiJ9
|
|
@@ -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,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAW9D,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,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,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,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,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,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,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,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,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"}
|