@aztec/end-to-end 0.0.1-commit.b655e406 → 0.0.1-commit.c7c42ec
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 +1 -1
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +10 -3
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +58 -33
- package/dest/bench/client_flows/config.d.ts +1 -1
- package/dest/bench/client_flows/data_extractor.d.ts +1 -1
- package/dest/bench/client_flows/data_extractor.js +5 -27
- package/dest/bench/utils.d.ts +3 -3
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +10 -6
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +1 -1
- 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 +2 -2
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +5 -4
- 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 +6 -4
- 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 +11 -9
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +17 -14
- package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
- package/dest/e2e_fees/bridging_race.notest.js +2 -2
- package/dest/e2e_fees/fees_test.d.ts +8 -4
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +16 -10
- package/dest/e2e_l1_publisher/write_json.d.ts +1 -1
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +5 -4
- package/dest/e2e_multi_validator/utils.d.ts +1 -1
- package/dest/e2e_multi_validator/utils.js +1 -1
- 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 -3
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +4 -3
- package/dest/e2e_p2p/p2p_network.d.ts +219 -13
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +15 -11
- 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 +6 -5
- package/dest/e2e_token_contract/token_contract_test.d.ts +1 -1
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +2 -2
- package/dest/fixtures/e2e_prover_test.d.ts +5 -5
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +23 -22
- package/dest/fixtures/fixtures.d.ts +2 -3
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +2 -3
- package/dest/fixtures/get_acvm_config.d.ts +1 -1
- package/dest/fixtures/get_acvm_config.js +1 -1
- package/dest/fixtures/get_bb_config.d.ts +1 -1
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/index.d.ts +1 -1
- package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
- package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
- package/dest/fixtures/l1_to_l2_messaging.js +2 -2
- package/dest/fixtures/logging.d.ts +1 -1
- package/dest/fixtures/setup_p2p_test.d.ts +4 -4
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +18 -10
- package/dest/fixtures/snapshot_manager.d.ts +6 -8
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +34 -46
- package/dest/fixtures/token_utils.d.ts +5 -2
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +7 -4
- package/dest/fixtures/utils.d.ts +21 -19
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +56 -85
- package/dest/fixtures/web3signer.d.ts +1 -1
- package/dest/fixtures/web3signer.js +1 -1
- package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
- package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
- package/dest/fixtures/with_telemetry_utils.js +2 -2
- package/dest/index.d.ts +1 -1
- 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 +5 -14
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +1 -1
- package/dest/shared/gas_portal_test_harness.d.ts +2 -12
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +1 -1
- package/dest/shared/index.d.ts +1 -1
- package/dest/shared/jest_setup.d.ts +1 -1
- package/dest/shared/submit-transactions.d.ts +1 -1
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts +4 -3
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +15 -13
- package/dest/simulators/index.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts +2 -6
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +5 -3
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.d.ts +5 -3
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +45 -10
- package/dest/spartan/tx_metrics.d.ts +39 -0
- package/dest/spartan/tx_metrics.d.ts.map +1 -0
- package/dest/spartan/tx_metrics.js +95 -0
- package/dest/spartan/utils.d.ts +55 -20
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +203 -60
- package/package.json +42 -40
- package/src/bench/client_flows/client_flows_benchmark.ts +82 -34
- package/src/bench/client_flows/data_extractor.ts +6 -28
- package/src/bench/utils.ts +11 -7
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +2 -2
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +17 -12
- package/src/e2e_deploy_contract/deploy_test.ts +1 -1
- package/src/e2e_epochs/epochs_test.ts +37 -23
- package/src/e2e_fees/bridging_race.notest.ts +2 -2
- package/src/e2e_fees/fees_test.ts +22 -13
- package/src/e2e_l1_publisher/write_json.ts +5 -4
- package/src/e2e_multi_validator/utils.ts +1 -1
- package/src/e2e_nested_contract/nested_contract_test.ts +4 -3
- package/src/e2e_p2p/inactivity_slash_test.ts +5 -4
- package/src/e2e_p2p/p2p_network.ts +16 -19
- package/src/e2e_p2p/shared.ts +13 -6
- package/src/e2e_token_contract/token_contract_test.ts +2 -2
- package/src/fixtures/e2e_prover_test.ts +22 -25
- package/src/fixtures/fixtures.ts +2 -5
- package/src/fixtures/get_acvm_config.ts +1 -1
- package/src/fixtures/l1_to_l2_messaging.ts +4 -2
- package/src/fixtures/setup_p2p_test.ts +23 -9
- package/src/fixtures/snapshot_manager.ts +51 -65
- package/src/fixtures/token_utils.ts +4 -4
- package/src/fixtures/utils.ts +91 -131
- package/src/fixtures/web3signer.ts +1 -1
- package/src/fixtures/with_telemetry_utils.ts +2 -2
- package/src/guides/up_quick_start.sh +1 -1
- package/src/shared/cross_chain_test_harness.ts +5 -2
- package/src/shared/gas_portal_test_harness.ts +2 -2
- package/src/shared/uniswap_l1_l2.ts +19 -21
- package/src/simulators/lending_simulator.ts +6 -4
- package/src/spartan/DEVELOP.md +7 -0
- package/src/spartan/setup_test_wallets.ts +49 -12
- package/src/spartan/tx_metrics.ts +130 -0
- package/src/spartan/utils.ts +267 -51
- package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
- package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
- package/dest/fixtures/setup_l1_contracts.js +0 -17
- package/src/fixtures/setup_l1_contracts.ts +0 -26
|
@@ -6,16 +6,21 @@ import { getContractClassFromArtifact } from '@aztec/aztec.js/contracts';
|
|
|
6
6
|
import { BatchCall, waitForProven } from '@aztec/aztec.js/contracts';
|
|
7
7
|
import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
|
|
8
8
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
|
|
9
|
-
import {
|
|
10
|
-
import { createExtendedL1Client
|
|
9
|
+
import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
|
|
10
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
11
|
+
import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
|
|
12
|
+
import { deployMulticall3 } from '@aztec/ethereum/contracts';
|
|
13
|
+
import { deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
11
14
|
import { EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
|
|
12
15
|
import { asyncMap } from '@aztec/foundation/async-map';
|
|
13
16
|
import { SecretValue } from '@aztec/foundation/config';
|
|
14
|
-
import { randomBytes } from '@aztec/foundation/crypto';
|
|
17
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
15
18
|
import { tryRmDir } from '@aztec/foundation/fs';
|
|
16
19
|
import { createLogger } from '@aztec/foundation/log';
|
|
17
20
|
import { resolver, reviver } from '@aztec/foundation/serialize';
|
|
18
21
|
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
22
|
+
import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
23
|
+
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
19
24
|
import { getPXEConfig } from '@aztec/pxe/server';
|
|
20
25
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
21
26
|
import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -24,16 +29,14 @@ import { getGenesisValues } from '@aztec/world-state/testing';
|
|
|
24
29
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
25
30
|
import { copySync, removeSync } from 'fs-extra/esm';
|
|
26
31
|
import fs from 'fs/promises';
|
|
27
|
-
import getPort from 'get-port';
|
|
28
32
|
import { tmpdir } from 'os';
|
|
29
33
|
import path, { join } from 'path';
|
|
30
34
|
import { mnemonicToAccount } from 'viem/accounts';
|
|
31
35
|
import { foundry } from 'viem/chains';
|
|
32
|
-
import { MNEMONIC,
|
|
36
|
+
import { MNEMONIC, TEST_MAX_PENDING_TX_POOL_COUNT, TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
|
|
33
37
|
import { getACVMConfig } from './get_acvm_config.js';
|
|
34
38
|
import { getBBConfig } from './get_bb_config.js';
|
|
35
|
-
import {
|
|
36
|
-
import { createAndSyncProverNode, getLogger, getPrivateKeyFromIndex, getSponsoredFPCAddress } from './utils.js';
|
|
39
|
+
import { createAndSyncProverNode, getLogger, getPrivateKeyFromIndex, getSponsoredFPCAddress, setupSharedBlobStorage } from './utils.js';
|
|
37
40
|
import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
|
|
38
41
|
export function createSnapshotManager(testName, dataPath, config = {}, deployL1ContractsArgs = {
|
|
39
42
|
initialValidators: []
|
|
@@ -192,7 +195,6 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
192
195
|
await context.bbConfig?.cleanup();
|
|
193
196
|
await tryStop(context.anvil);
|
|
194
197
|
await tryStop(context.watcher);
|
|
195
|
-
await tryStop(context.blobSink);
|
|
196
198
|
await tryRmDir(context.directoryToCleanup, logger);
|
|
197
199
|
} catch (err) {
|
|
198
200
|
logger.error('Error during teardown', err);
|
|
@@ -206,7 +208,6 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
206
208
|
initialValidators: []
|
|
207
209
|
}) {
|
|
208
210
|
logger.verbose(`Initializing state...`);
|
|
209
|
-
const blobSinkPort = await getPort();
|
|
210
211
|
// Default to no slashing
|
|
211
212
|
opts.slasherFlavor ??= 'none';
|
|
212
213
|
deployL1ContractsArgs.slasherFlavor ??= opts.slasherFlavor;
|
|
@@ -217,7 +218,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
217
218
|
...opts
|
|
218
219
|
};
|
|
219
220
|
aztecNodeConfig.peerCheckIntervalMS = TEST_PEER_CHECK_INTERVAL_MS;
|
|
220
|
-
aztecNodeConfig.
|
|
221
|
+
aztecNodeConfig.maxPendingTxCount = opts.maxPendingTxCount ?? TEST_MAX_PENDING_TX_POOL_COUNT;
|
|
221
222
|
// Only enable proving if specifically requested.
|
|
222
223
|
aztecNodeConfig.realProofs = !!opts.realProofs;
|
|
223
224
|
// Only enforce the time table if requested
|
|
@@ -236,19 +237,20 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
236
237
|
} else {
|
|
237
238
|
aztecNodeConfig.dataDirectory = statePath;
|
|
238
239
|
}
|
|
239
|
-
aztecNodeConfig
|
|
240
|
+
await setupSharedBlobStorage(aztecNodeConfig);
|
|
240
241
|
const hdAccount = mnemonicToAccount(MNEMONIC, {
|
|
241
242
|
addressIndex: 0
|
|
242
243
|
});
|
|
243
244
|
const publisherPrivKeyRaw = hdAccount.getHdKey().privateKey;
|
|
244
245
|
const publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
|
|
246
|
+
const publisherPrivKeyHex = `0x${publisherPrivKey.toString('hex')}`;
|
|
245
247
|
const l1Client = createExtendedL1Client([
|
|
246
248
|
aztecNodeConfig.l1RpcUrls[0]
|
|
247
249
|
], hdAccount, foundry);
|
|
248
250
|
const validatorPrivKey = getPrivateKeyFromIndex(0);
|
|
249
251
|
const proverNodePrivateKey = getPrivateKeyFromIndex(0);
|
|
250
252
|
aztecNodeConfig.publisherPrivateKeys = [
|
|
251
|
-
new SecretValue(
|
|
253
|
+
new SecretValue(publisherPrivKeyHex)
|
|
252
254
|
];
|
|
253
255
|
aztecNodeConfig.validatorPrivateKeys = new SecretValue([
|
|
254
256
|
`0x${validatorPrivKey.toString('hex')}`
|
|
@@ -267,7 +269,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
267
269
|
const dateProvider = new TestDateProvider();
|
|
268
270
|
const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
|
|
269
271
|
// Deploy our L1 contracts.
|
|
270
|
-
logger.verbose('Deploying L1 contracts...');
|
|
272
|
+
logger.verbose('Deploying Aztec L1 contracts...');
|
|
271
273
|
if (opts.l1StartTime) {
|
|
272
274
|
await ethCheatCodes.warp(opts.l1StartTime, {
|
|
273
275
|
resetBlockInterval: true
|
|
@@ -276,15 +278,20 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
276
278
|
const initialFundedAccounts = await generateSchnorrAccounts(numberOfInitialFundedAccounts);
|
|
277
279
|
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
278
280
|
const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress), opts.initialAccountFeeJuice);
|
|
281
|
+
const vkTreeRoot = getVKTreeRoot();
|
|
279
282
|
await deployMulticall3(l1Client, logger);
|
|
280
|
-
|
|
283
|
+
// Define args, defaulted to our environment variables.
|
|
284
|
+
const args = {
|
|
281
285
|
...getL1ContractsConfigEnvVars(),
|
|
286
|
+
...deployL1ContractsArgs,
|
|
287
|
+
vkTreeRoot,
|
|
282
288
|
genesisArchiveRoot,
|
|
289
|
+
protocolContractsHash,
|
|
290
|
+
initialValidators: opts.initialValidators,
|
|
283
291
|
feeJuicePortalInitialBalance: fundingNeeded,
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
});
|
|
292
|
+
realVerifier: false
|
|
293
|
+
};
|
|
294
|
+
const deployL1ContractsValues = await deployAztecL1Contracts(aztecNodeConfig.l1RpcUrls[0], publisherPrivKeyHex, foundry.id, args);
|
|
288
295
|
aztecNodeConfig.l1Contracts = deployL1ContractsValues.l1ContractAddresses;
|
|
289
296
|
aztecNodeConfig.rollupVersion = deployL1ContractsValues.rollupVersion;
|
|
290
297
|
const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
|
|
@@ -299,21 +306,13 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
299
306
|
aztecNodeConfig.bbBinaryPath = bbConfig.bbBinaryPath;
|
|
300
307
|
aztecNodeConfig.bbWorkingDirectory = bbConfig.bbWorkingDirectory;
|
|
301
308
|
}
|
|
302
|
-
const telemetry = getEndToEndTestTelemetryClient(opts.metricsPort);
|
|
303
|
-
|
|
304
|
-
const blobSink = await createBlobSinkServer({
|
|
305
|
-
l1ChainId: aztecNodeConfig.l1ChainId,
|
|
306
|
-
l1RpcUrls: aztecNodeConfig.l1RpcUrls,
|
|
307
|
-
l1Contracts: aztecNodeConfig.l1Contracts,
|
|
308
|
-
port: blobSinkPort,
|
|
309
|
-
dataDirectory: aztecNodeConfig.dataDirectory,
|
|
310
|
-
dataStoreMapSizeKb: aztecNodeConfig.dataStoreMapSizeKb
|
|
311
|
-
}, telemetry);
|
|
312
|
-
await blobSink.start();
|
|
309
|
+
const telemetry = await getEndToEndTestTelemetryClient(opts.metricsPort);
|
|
310
|
+
const blobClient = await createBlobClientWithFileStores(aztecNodeConfig, createLogger('node:blob-client:client'));
|
|
313
311
|
logger.info('Creating and synching an aztec node...');
|
|
314
312
|
const aztecNode = await AztecNodeService.createAndSync(aztecNodeConfig, {
|
|
315
313
|
telemetry,
|
|
316
|
-
dateProvider
|
|
314
|
+
dateProvider,
|
|
315
|
+
blobClient
|
|
317
316
|
}, {
|
|
318
317
|
prefilledPublicData
|
|
319
318
|
});
|
|
@@ -350,7 +349,6 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
350
349
|
watcher,
|
|
351
350
|
cheatCodes,
|
|
352
351
|
dateProvider,
|
|
353
|
-
blobSink,
|
|
354
352
|
initialFundedAccounts,
|
|
355
353
|
directoryToCleanup
|
|
356
354
|
};
|
|
@@ -363,13 +361,11 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
363
361
|
await fs.mkdir(directoryToCleanup, {
|
|
364
362
|
recursive: true
|
|
365
363
|
});
|
|
366
|
-
// Run the blob sink on a random port
|
|
367
|
-
const blobSinkPort = await getPort();
|
|
368
364
|
// TODO: For some reason this is currently the union of a bunch of subsystems. That needs fixing.
|
|
369
365
|
const aztecNodeConfig = JSON.parse(readFileSync(`${statePath}/aztec_node_config.json`, 'utf-8'), reviver);
|
|
370
366
|
aztecNodeConfig.dataDirectory = statePath;
|
|
371
|
-
aztecNodeConfig.blobSinkUrl = `http://127.0.0.1:${blobSinkPort}`;
|
|
372
367
|
aztecNodeConfig.listenAddress = '127.0.0.1';
|
|
368
|
+
await setupSharedBlobStorage(aztecNodeConfig);
|
|
373
369
|
const initialFundedAccounts = JSON.parse(readFileSync(`${statePath}/accounts.json`, 'utf-8'), reviver) || [];
|
|
374
370
|
const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
|
|
375
371
|
// Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
|
|
@@ -397,20 +393,13 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
397
393
|
const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, mnemonicToAccount(MNEMONIC));
|
|
398
394
|
const watcher = new AnvilTestWatcher(ethCheatCodes, aztecNodeConfig.l1Contracts.rollupAddress, l1Client, dateProvider);
|
|
399
395
|
await watcher.start();
|
|
400
|
-
const telemetry = initTelemetryClient(getTelemetryConfig());
|
|
401
|
-
const
|
|
402
|
-
l1ChainId: aztecNodeConfig.l1ChainId,
|
|
403
|
-
l1RpcUrls: aztecNodeConfig.l1RpcUrls,
|
|
404
|
-
l1Contracts: aztecNodeConfig.l1Contracts,
|
|
405
|
-
port: blobSinkPort,
|
|
406
|
-
dataDirectory: statePath,
|
|
407
|
-
dataStoreMapSizeKb: aztecNodeConfig.dataStoreMapSizeKb
|
|
408
|
-
}, telemetry);
|
|
409
|
-
await blobSink.start();
|
|
396
|
+
const telemetry = await initTelemetryClient(getTelemetryConfig());
|
|
397
|
+
const blobClient = await createBlobClientWithFileStores(aztecNodeConfig, createLogger('node:blob-client:client'));
|
|
410
398
|
logger.verbose('Creating aztec node...');
|
|
411
399
|
const aztecNode = await AztecNodeService.createAndSync(aztecNodeConfig, {
|
|
412
400
|
telemetry,
|
|
413
|
-
dateProvider
|
|
401
|
+
dateProvider,
|
|
402
|
+
blobClient
|
|
414
403
|
}, {
|
|
415
404
|
prefilledPublicData
|
|
416
405
|
});
|
|
@@ -447,7 +436,6 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
447
436
|
watcher,
|
|
448
437
|
cheatCodes,
|
|
449
438
|
dateProvider,
|
|
450
|
-
blobSink,
|
|
451
439
|
initialFundedAccounts,
|
|
452
440
|
directoryToCleanup
|
|
453
441
|
};
|
|
@@ -2,8 +2,11 @@ import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
|
2
2
|
import type { Logger } from '@aztec/aztec.js/log';
|
|
3
3
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
4
4
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
5
|
-
export declare function deployToken(wallet: Wallet, admin: AztecAddress, initialAdminBalance: bigint, logger: Logger): Promise<
|
|
5
|
+
export declare function deployToken(wallet: Wallet, admin: AztecAddress, initialAdminBalance: bigint, logger: Logger): Promise<{
|
|
6
|
+
contract: TokenContract;
|
|
7
|
+
instance: import("@aztec/aztec.js/contracts").ContractInstanceWithAddress;
|
|
8
|
+
}>;
|
|
6
9
|
export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, recipient: AztecAddress, amount: bigint): Promise<void>;
|
|
7
10
|
export declare function expectTokenBalance(wallet: Wallet, token: TokenContract, owner: AztecAddress, expectedBalance: bigint, logger: Logger): Promise<void>;
|
|
8
11
|
export declare function mintNotes(wallet: Wallet, minter: AztecAddress, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
|
|
9
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy90b2tlbl91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0Qsd0JBQXNCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNOzs7R0Fhakg7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLEtBQUssRUFBRSxhQUFhLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQUdmO0FBRUQsd0JBQXNCLGtCQUFrQixDQUN0QyxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxhQUFhLEVBQ3BCLEtBQUssRUFBRSxZQUFZLEVBQ25CLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQU9mO0FBRUQsd0JBQXNCLFNBQVMsQ0FDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsWUFBWSxFQUNwQixTQUFTLEVBQUUsWUFBWSxFQUN2QixLQUFLLEVBQUUsYUFBYSxFQUNwQixXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FXakIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;GAajH;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,iBAGf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
|
|
@@ -2,14 +2,17 @@ import { BatchCall } from '@aztec/aztec.js/contracts';
|
|
|
2
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
3
|
export async function deployToken(wallet, admin, initialAdminBalance, logger) {
|
|
4
4
|
logger.info(`Deploying Token contract...`);
|
|
5
|
-
const contract = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
|
|
5
|
+
const { contract, instance } = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
|
|
6
6
|
from: admin
|
|
7
|
-
}).
|
|
7
|
+
}).wait();
|
|
8
8
|
if (initialAdminBalance > 0n) {
|
|
9
9
|
await mintTokensToPrivate(contract, admin, admin, initialAdminBalance);
|
|
10
10
|
}
|
|
11
11
|
logger.info('L2 contract deployed');
|
|
12
|
-
return
|
|
12
|
+
return {
|
|
13
|
+
contract,
|
|
14
|
+
instance
|
|
15
|
+
};
|
|
13
16
|
}
|
|
14
17
|
export async function mintTokensToPrivate(token, minter, recipient, amount) {
|
|
15
18
|
await token.methods.mint_to_private(recipient, amount).send({
|
|
@@ -18,7 +21,7 @@ export async function mintTokensToPrivate(token, minter, recipient, amount) {
|
|
|
18
21
|
}
|
|
19
22
|
export async function expectTokenBalance(wallet, token, owner, expectedBalance, logger) {
|
|
20
23
|
// Then check the balance
|
|
21
|
-
const contractWithWallet =
|
|
24
|
+
const contractWithWallet = TokenContract.at(token.address, wallet);
|
|
22
25
|
const balance = await contractWithWallet.methods.balance_of_private(owner).simulate({
|
|
23
26
|
from: owner
|
|
24
27
|
});
|
package/dest/fixtures/utils.d.ts
CHANGED
|
@@ -2,15 +2,16 @@ import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
|
2
2
|
import { type AztecNodeConfig } from '@aztec/aztec-node';
|
|
3
3
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
4
4
|
import { type ContractMethod } from '@aztec/aztec.js/contracts';
|
|
5
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
5
6
|
import { type Logger } from '@aztec/aztec.js/log';
|
|
6
7
|
import { type AztecNode } from '@aztec/aztec.js/node';
|
|
7
8
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
8
9
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
|
|
9
|
-
import { type
|
|
10
|
-
import { type
|
|
10
|
+
import { type BlobClientInterface } from '@aztec/blob-client/client';
|
|
11
|
+
import { type DeployAztecL1ContractsReturnType, type Operator, type ZKPassportArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
11
12
|
import { EthCheatCodes, startAnvil } from '@aztec/ethereum/test';
|
|
13
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
12
14
|
import { SecretValue } from '@aztec/foundation/config';
|
|
13
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
14
15
|
import { TestDateProvider } from '@aztec/foundation/timer';
|
|
15
16
|
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
16
17
|
import { MockGossipSubNetwork } from '@aztec/p2p/test-helpers';
|
|
@@ -22,11 +23,16 @@ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
|
22
23
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
23
24
|
import { type TelemetryClient, type TelemetryClientConfig } from '@aztec/telemetry-client';
|
|
24
25
|
import { TestWallet } from '@aztec/test-wallet/server';
|
|
25
|
-
import { type Chain
|
|
26
|
+
import { type Chain } from 'viem/chains';
|
|
26
27
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
27
28
|
export { startAnvil };
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Sets up shared blob storage using FileStore in the data directory.
|
|
31
|
+
*/
|
|
32
|
+
export declare function setupSharedBlobStorage(config: {
|
|
33
|
+
dataDirectory?: string;
|
|
34
|
+
} & Record<string, any>): Promise<void>;
|
|
35
|
+
export declare const getPrivateKeyFromIndex: (index: number) => Buffer<ArrayBufferLike> | null;
|
|
30
36
|
/**
|
|
31
37
|
* Sets up Private eXecution Environment (PXE) and returns the corresponding test wallet.
|
|
32
38
|
* @param aztecNode - An instance of Aztec Node.
|
|
@@ -56,17 +62,13 @@ export type SetupOptions = {
|
|
|
56
62
|
/** Whether to enable metrics collection, if undefined, metrics collection is disabled */
|
|
57
63
|
metricsPort?: number | undefined;
|
|
58
64
|
/** Previously deployed contracts on L1 */
|
|
59
|
-
deployL1ContractsValues?:
|
|
60
|
-
/** Whether to skip deployment of protocol contracts (auth registry, etc) */
|
|
61
|
-
skipProtocolContracts?: boolean;
|
|
65
|
+
deployL1ContractsValues?: DeployAztecL1ContractsReturnType;
|
|
62
66
|
/** Initial fee juice for default accounts */
|
|
63
67
|
initialAccountFeeJuice?: Fr;
|
|
64
68
|
/** Number of initial accounts funded with fee juice */
|
|
65
69
|
numberOfInitialFundedAccounts?: number;
|
|
66
70
|
/** Data of the initial funded accounts */
|
|
67
71
|
initialFundedAccounts?: InitialAccountData[];
|
|
68
|
-
/** Salt to use in L1 contract deployment */
|
|
69
|
-
salt?: number;
|
|
70
72
|
/** An initial set of validators */
|
|
71
73
|
initialValidators?: (Operator & {
|
|
72
74
|
privateKey: `0x${string}`;
|
|
@@ -77,8 +79,6 @@ export type SetupOptions = {
|
|
|
77
79
|
l2StartTime?: number;
|
|
78
80
|
/** Whether to start a prover node */
|
|
79
81
|
startProverNode?: boolean;
|
|
80
|
-
/** Whether to fund the rewardDistributor */
|
|
81
|
-
fundRewardDistributor?: boolean;
|
|
82
82
|
/** Manual config for the telemetry client */
|
|
83
83
|
telemetryConfig?: Partial<TelemetryClientConfig> & {
|
|
84
84
|
benchmark?: boolean;
|
|
@@ -99,6 +99,8 @@ export type SetupOptions = {
|
|
|
99
99
|
anvilPort?: number;
|
|
100
100
|
/** Key to use for publishing L1 contracts */
|
|
101
101
|
l1PublisherKey?: SecretValue<`0x${string}`>;
|
|
102
|
+
/** ZkPassport configuration (domain, scope, mock verifier) */
|
|
103
|
+
zkPassportArgs?: ZKPassportArgs;
|
|
102
104
|
} & Partial<AztecNodeConfig>;
|
|
103
105
|
/** Context for an end-to-end test as returned by the `setup` function */
|
|
104
106
|
export type EndToEndContext = {
|
|
@@ -110,8 +112,8 @@ export type EndToEndContext = {
|
|
|
110
112
|
proverNode: ProverNode | undefined;
|
|
111
113
|
/** A client to the sequencer service (undefined if connected to remote environment) */
|
|
112
114
|
sequencer: SequencerClient | undefined;
|
|
113
|
-
/** Return values from
|
|
114
|
-
deployL1ContractsValues:
|
|
115
|
+
/** Return values from deployAztecL1Contracts function. */
|
|
116
|
+
deployL1ContractsValues: DeployAztecL1ContractsReturnType;
|
|
115
117
|
/** The Aztec Node configuration. */
|
|
116
118
|
config: AztecNodeConfig;
|
|
117
119
|
/** The data for the initial funded accounts. */
|
|
@@ -130,14 +132,14 @@ export type EndToEndContext = {
|
|
|
130
132
|
watcher: AnvilTestWatcher | undefined;
|
|
131
133
|
/** Allows tweaking current system time, used by the epoch cache only (undefined if connected to remote environment) */
|
|
132
134
|
dateProvider: TestDateProvider | undefined;
|
|
133
|
-
/** The blob sink (undefined if connected to remote environment) */
|
|
134
|
-
blobSink: BlobSinkServer | undefined;
|
|
135
135
|
/** Telemetry client */
|
|
136
136
|
telemetryClient: TelemetryClient | undefined;
|
|
137
137
|
/** Mock gossip sub network used for gossipping messages (only if mockGossipSubNetwork was set to true in opts) */
|
|
138
138
|
mockGossipSubNetwork: MockGossipSubNetwork | undefined;
|
|
139
139
|
/** Prefilled public data used for setting up nodes. */
|
|
140
140
|
prefilledPublicData: PublicDataTreeLeaf[] | undefined;
|
|
141
|
+
/** The blob client client used for blob storage (undefined if connected to remote environment) */
|
|
142
|
+
blobClient: BlobClientInterface | undefined;
|
|
141
143
|
/** Function to stop the started services. */
|
|
142
144
|
teardown: () => Promise<void>;
|
|
143
145
|
};
|
|
@@ -187,8 +189,8 @@ export declare function setupSponsoredFPC(wallet: Wallet): Promise<ContractInsta
|
|
|
187
189
|
* @param wallet - The wallet
|
|
188
190
|
*/
|
|
189
191
|
export declare function registerSponsoredFPC(wallet: Wallet): Promise<void>;
|
|
190
|
-
export declare function waitForProvenChain(node: AztecNode, targetBlock?:
|
|
192
|
+
export declare function waitForProvenChain(node: AztecNode, targetBlock?: BlockNumber, timeoutSec?: number, intervalSec?: number): Promise<void>;
|
|
191
193
|
export declare function createAndSyncProverNode(proverNodePrivateKey: `0x${string}`, aztecNodeConfig: AztecNodeConfig, proverNodeConfig: Partial<ProverNodeConfig> & Pick<DataStoreConfig, 'dataDirectory'> & {
|
|
192
194
|
dontStart?: boolean;
|
|
193
195
|
}, aztecNode: AztecNode | undefined, prefilledPublicData?: PublicDataTreeLeaf[], proverNodeDeps?: ProverNodeDeps): Promise<ProverNode>;
|
|
194
|
-
//# sourceMappingURL=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBdUQsTUFBTSx5QkFBeUIsQ0FBQztBQUV2SCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBYSxLQUFLLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFzQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFGLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsS0FBSyxtQkFBbUIsRUFBa0MsTUFBTSwyQkFBMkIsQ0FBQztBQU1yRyxPQUFPLEVBQ0wsS0FBSyxnQ0FBZ0MsRUFDckMsS0FBSyxRQUFRLEVBQ2IsS0FBSyxjQUFjLEVBRXBCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUVMLGFBQWEsRUFHYixVQUFVLEVBQ1gsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsV0FBVyxFQUFlLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBTXZELE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAuD,MAAM,yBAAyB,CAAC;AAEvH,OAAO,EAAE,KAAK,eAAe,EAAsC,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,KAAK,SAAS,EAAsC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
|