@aztec/end-to-end 3.0.0-nightly.20251212 → 3.0.0-nightly.20251214

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.
Files changed (46) hide show
  1. package/dest/bench/client_flows/client_flows_benchmark.d.ts +3 -3
  2. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.js +1 -1
  4. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +4 -4
  5. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  6. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +1 -1
  7. package/dest/e2e_epochs/epochs_test.d.ts +1 -1
  8. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  9. package/dest/e2e_epochs/epochs_test.js +0 -2
  10. package/dest/e2e_fees/fees_test.d.ts +3 -3
  11. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  12. package/dest/e2e_p2p/inactivity_slash_test.d.ts +1 -1
  13. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  14. package/dest/e2e_p2p/inactivity_slash_test.js +3 -6
  15. package/dest/e2e_p2p/p2p_network.d.ts +4 -5
  16. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  17. package/dest/e2e_p2p/p2p_network.js +5 -7
  18. package/dest/fixtures/e2e_prover_test.d.ts +3 -3
  19. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  20. package/dest/fixtures/e2e_prover_test.js +0 -1
  21. package/dest/fixtures/snapshot_manager.d.ts +6 -6
  22. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  23. package/dest/fixtures/snapshot_manager.js +16 -8
  24. package/dest/fixtures/utils.d.ts +9 -459
  25. package/dest/fixtures/utils.d.ts.map +1 -1
  26. package/dest/fixtures/utils.js +19 -51
  27. package/dest/shared/cross_chain_test_harness.js +1 -1
  28. package/dest/shared/uniswap_l1_l2.d.ts +3 -3
  29. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  30. package/dest/shared/uniswap_l1_l2.js +1 -1
  31. package/package.json +38 -38
  32. package/src/bench/client_flows/client_flows_benchmark.ts +3 -2
  33. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +11 -7
  34. package/src/e2e_epochs/epochs_test.ts +0 -2
  35. package/src/e2e_fees/fees_test.ts +2 -2
  36. package/src/e2e_p2p/inactivity_slash_test.ts +3 -8
  37. package/src/e2e_p2p/p2p_network.ts +3 -9
  38. package/src/fixtures/e2e_prover_test.ts +3 -3
  39. package/src/fixtures/snapshot_manager.ts +32 -14
  40. package/src/fixtures/utils.ts +47 -100
  41. package/src/shared/cross_chain_test_harness.ts +1 -1
  42. package/src/shared/uniswap_l1_l2.ts +4 -3
  43. package/dest/fixtures/setup_l1_contracts.d.ts +0 -477
  44. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  45. package/dest/fixtures/setup_l1_contracts.js +0 -17
  46. package/src/fixtures/setup_l1_contracts.ts +0 -27
@@ -4,24 +4,21 @@ import { createArchiver } from '@aztec/archiver';
4
4
  import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
5
5
  import { BatchCall } from '@aztec/aztec.js/contracts';
6
6
  import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
7
+ import { Fr } from '@aztec/aztec.js/fields';
7
8
  import { createLogger } from '@aztec/aztec.js/log';
8
9
  import { createAztecNodeClient, waitForNode } from '@aztec/aztec.js/node';
9
10
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
10
11
  import { createBlobSinkClient } from '@aztec/blob-sink/client';
11
12
  import { createBlobSinkServer } from '@aztec/blob-sink/server';
12
- import { GENESIS_ARCHIVE_ROOT, SPONSORED_FPC_SALT } from '@aztec/constants';
13
+ import { SPONSORED_FPC_SALT } from '@aztec/constants';
13
14
  import { isAnvilTestChain } from '@aztec/ethereum/chain';
14
15
  import { createExtendedL1Client } from '@aztec/ethereum/client';
15
16
  import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
16
17
  import { NULL_KEY } from '@aztec/ethereum/constants';
17
- import { RollupContract, deployMulticall3 } from '@aztec/ethereum/contracts';
18
- import { deployL1Contracts } from '@aztec/ethereum/deploy-l1-contracts';
19
- import { FeeAssetArtifact } from '@aztec/ethereum/l1-artifacts';
18
+ import { deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
20
19
  import { DelayedTxUtils, EthCheatCodes, EthCheatCodesWithState, createDelayedL1TxUtilsFromViemWallet, startAnvil } from '@aztec/ethereum/test';
21
20
  import { EpochNumber } from '@aztec/foundation/branded-types';
22
21
  import { SecretValue } from '@aztec/foundation/config';
23
- import { randomBytes } from '@aztec/foundation/crypto/random';
24
- import { Fr } from '@aztec/foundation/curves/bn254';
25
22
  import { EthAddress } from '@aztec/foundation/eth-address';
26
23
  import { tryRmDir } from '@aztec/foundation/fs';
27
24
  import { withLogNameSuffix } from '@aztec/foundation/log';
@@ -40,11 +37,11 @@ import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@az
40
37
  import { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
41
38
  import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet/server';
42
39
  import { getGenesisValues } from '@aztec/world-state/testing';
40
+ import { randomBytes } from 'crypto';
43
41
  import fs from 'fs/promises';
44
42
  import getPort from 'get-port';
45
43
  import { tmpdir } from 'os';
46
44
  import * as path from 'path';
47
- import { getContract } from 'viem';
48
45
  import { generatePrivateKey, mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
49
46
  import { foundry } from 'viem/chains';
50
47
  import { MNEMONIC, TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
@@ -78,22 +75,6 @@ export const getPrivateKeyFromIndex = (index)=>{
78
75
  const privKeyRaw = hdAccount.getHdKey().privateKey;
79
76
  return privKeyRaw === null ? null : Buffer.from(privKeyRaw);
80
77
  };
81
- export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, chain = foundry)=>{
82
- const l1Data = await deployL1Contracts(l1RpcUrls, account, chain, logger, {
83
- vkTreeRoot: getVKTreeRoot(),
84
- protocolContractsHash,
85
- genesisArchiveRoot: args.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
86
- salt: args.salt,
87
- initialValidators: args.initialValidators,
88
- ...getL1ContractsConfigEnvVars(),
89
- realVerifier: false,
90
- ...args
91
- }, {
92
- priorityFeeBumpPercentage: 0,
93
- priorityFeeRetryBumpPercentage: 0
94
- });
95
- return l1Data;
96
- };
97
78
  /**
98
79
  * Sets up Private eXecution Environment (PXE) and returns the corresponding test wallet.
99
80
  * @param aztecNode - An instance of Aztec Node.
@@ -245,12 +226,14 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
245
226
  resetBlockInterval: true
246
227
  });
247
228
  }
248
- let publisherPrivKey = undefined;
229
+ let publisherPrivKeyHex = undefined;
249
230
  let publisherHdAccount = undefined;
250
231
  if (opts.l1PublisherKey && opts.l1PublisherKey.getValue() && opts.l1PublisherKey.getValue() != NULL_KEY) {
251
- publisherHdAccount = privateKeyToAccount(opts.l1PublisherKey.getValue());
232
+ publisherPrivKeyHex = opts.l1PublisherKey.getValue();
233
+ publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
252
234
  } else if (config.publisherPrivateKeys && config.publisherPrivateKeys.length > 0 && config.publisherPrivateKeys[0].getValue() != NULL_KEY) {
253
- publisherHdAccount = privateKeyToAccount(config.publisherPrivateKeys[0].getValue());
235
+ publisherPrivKeyHex = config.publisherPrivateKeys[0].getValue();
236
+ publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
254
237
  } else if (!MNEMONIC) {
255
238
  throw new Error(`Mnemonic not provided and no publisher private key`);
256
239
  } else {
@@ -258,9 +241,10 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
258
241
  addressIndex: 0
259
242
  });
260
243
  const publisherPrivKeyRaw = publisherHdAccount.getHdKey().privateKey;
261
- publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
244
+ const publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
245
+ publisherPrivKeyHex = `0x${publisherPrivKey.toString('hex')}`;
262
246
  config.publisherPrivateKeys = [
263
- new SecretValue(`0x${publisherPrivKey.toString('hex')}`)
247
+ new SecretValue(publisherPrivKeyHex)
264
248
  ];
265
249
  }
266
250
  if (config.coinbase === undefined) {
@@ -278,34 +262,18 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
278
262
  await ethCheatCodes.setAutomine(true);
279
263
  }
280
264
  const l1Client = createExtendedL1Client(config.l1RpcUrls, publisherHdAccount, chain);
281
- await deployMulticall3(l1Client, logger);
282
- const deployL1ContractsValues = opts.deployL1ContractsValues ?? await setupL1Contracts(config.l1RpcUrls, publisherHdAccount, logger, {
265
+ const deployL1ContractsValues = await deployAztecL1Contracts(config.l1RpcUrls[0], publisherPrivKeyHex, chain.id, {
266
+ ...getL1ContractsConfigEnvVars(),
283
267
  ...opts,
268
+ vkTreeRoot: getVKTreeRoot(),
269
+ protocolContractsHash,
284
270
  genesisArchiveRoot,
271
+ initialValidators: opts.initialValidators,
285
272
  feeJuicePortalInitialBalance: fundingNeeded,
286
- initialValidators: opts.initialValidators
287
- }, chain);
273
+ realVerifier: false
274
+ });
288
275
  config.l1Contracts = deployL1ContractsValues.l1ContractAddresses;
289
276
  config.rollupVersion = deployL1ContractsValues.rollupVersion;
290
- if (opts.fundRewardDistributor) {
291
- // Mints block rewards for 10000 blocks to the rewardDistributor contract
292
- const rollup = new RollupContract(deployL1ContractsValues.l1Client, deployL1ContractsValues.l1ContractAddresses.rollupAddress);
293
- const blockReward = await rollup.getCheckpointReward();
294
- const mintAmount = 10_000n * blockReward;
295
- const feeJuice = getContract({
296
- address: deployL1ContractsValues.l1ContractAddresses.feeJuiceAddress.toString(),
297
- abi: FeeAssetArtifact.contractAbi,
298
- client: deployL1ContractsValues.l1Client
299
- });
300
- const rewardDistributorMintTxHash = await feeJuice.write.mint([
301
- deployL1ContractsValues.l1ContractAddresses.rewardDistributorAddress.toString(),
302
- mintAmount
303
- ], {});
304
- await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
305
- hash: rewardDistributorMintTxHash
306
- });
307
- logger.info(`Funding rewardDistributor in ${rewardDistributorMintTxHash}`);
308
- }
309
277
  if (enableAutomine) {
310
278
  await ethCheatCodes.setAutomine(false);
311
279
  await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
@@ -1,7 +1,7 @@
1
1
  import { EthAddress } from '@aztec/aztec.js/addresses';
2
2
  import { L1TokenPortalManager } from '@aztec/aztec.js/ethereum';
3
3
  import { Fr } from '@aztec/aztec.js/fields';
4
- import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contracts';
4
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
5
5
  import { retryUntil } from '@aztec/foundation/retry';
6
6
  import { TestERC20Abi, TokenPortalAbi, TokenPortalBytecode } from '@aztec/l1-artifacts';
7
7
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
@@ -2,7 +2,7 @@ import { AztecAddress } from '@aztec/aztec.js/addresses';
2
2
  import type { Logger } from '@aztec/aztec.js/log';
3
3
  import type { AztecNode } from '@aztec/aztec.js/node';
4
4
  import { CheatCodes } from '@aztec/aztec/testing';
5
- import { type DeployL1ContractsReturnType } from '@aztec/ethereum/deploy-l1-contracts';
5
+ import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
6
6
  import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
7
7
  import type { TestWallet } from '@aztec/test-wallet/server';
8
8
  /** Objects to be returned by the uniswap setup function */
@@ -20,9 +20,9 @@ export type UniswapSetupContext = {
20
20
  /** The sponsor wallet. */
21
21
  sponsorAddress: AztecAddress;
22
22
  /** */
23
- deployL1ContractsValues: DeployL1ContractsReturnType;
23
+ deployL1ContractsValues: DeployAztecL1ContractsReturnType;
24
24
  /** Cheat codes instance. */
25
25
  cheatCodes: CheatCodes;
26
26
  };
27
27
  export declare const uniswapL1L2TestSuite: (setup: () => Promise<UniswapSetupContext>, cleanup: () => Promise<void>, expectedForkBlockNumber?: number) => void;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pc3dhcF9sMV9sMi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYXJlZC91bmlzd2FwX2wxX2wyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSwyQkFBMkIsQ0FBQztBQUlyRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFFLEtBQUssMkJBQTJCLEVBQW9CLE1BQU0scUNBQXFDLENBQUM7QUFDekcsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU90RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQWlCNUQsMkRBQTJEO0FBQzNELE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUNoQywwQkFBMEI7SUFDMUIsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQixpREFBaUQ7SUFDakQsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLDBEQUEwRDtJQUMxRCxRQUFRLEVBQUUsd0JBQXdCLENBQUM7SUFDbkMsa0JBQWtCO0lBQ2xCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIseUJBQXlCO0lBQ3pCLFlBQVksRUFBRSxZQUFZLENBQUM7SUFDM0IsMEJBQTBCO0lBQzFCLGNBQWMsRUFBRSxZQUFZLENBQUM7SUFDN0IsT0FBTztJQUNQLHVCQUF1QixFQUFFLDJCQUEyQixDQUFDO0lBQ3JELDRCQUE0QjtJQUM1QixVQUFVLEVBQUUsVUFBVSxDQUFDO0NBQ3hCLENBQUM7QUFFRixlQUFPLE1BQU0sb0JBQW9CLHFIQW0rQmhDLENBQUMifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pc3dhcF9sMV9sMi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYXJlZC91bmlzd2FwX2wxX2wyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQWMsTUFBTSwyQkFBMkIsQ0FBQztBQUlyRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVsRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBT3RFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBaUI1RCwyREFBMkQ7QUFDM0QsTUFBTSxNQUFNLG1CQUFtQixHQUFHO0lBQ2hDLDBCQUEwQjtJQUMxQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLGlEQUFpRDtJQUNqRCxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsMERBQTBEO0lBQzFELFFBQVEsRUFBRSx3QkFBd0IsQ0FBQztJQUNuQyxrQkFBa0I7SUFDbEIsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQix5QkFBeUI7SUFDekIsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQiwwQkFBMEI7SUFDMUIsY0FBYyxFQUFFLFlBQVksQ0FBQztJQUM3QixPQUFPO0lBQ1AsdUJBQXVCLEVBQUUsZ0NBQWdDLENBQUM7SUFDMUQsNEJBQTRCO0lBQzVCLFVBQVUsRUFBRSxVQUFVLENBQUM7Q0FDeEIsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQkFBb0IscUhBbStCaEMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"uniswap_l1_l2.d.ts","sourceRoot":"","sources":["../../src/shared/uniswap_l1_l2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,2BAA2B,CAAC;AAIrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,KAAK,2BAA2B,EAAoB,MAAM,qCAAqC,CAAC;AACzG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAiB5D,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,QAAQ,EAAE,wBAAwB,CAAC;IACnC,kBAAkB;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,0BAA0B;IAC1B,cAAc,EAAE,YAAY,CAAC;IAC7B,OAAO;IACP,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,4BAA4B;IAC5B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,qHAm+BhC,CAAC"}
1
+ {"version":3,"file":"uniswap_l1_l2.d.ts","sourceRoot":"","sources":["../../src/shared/uniswap_l1_l2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,2BAA2B,CAAC;AAIrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAElG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAiB5D,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,QAAQ,EAAE,wBAAwB,CAAC;IACnC,kBAAkB;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,0BAA0B;IAC1B,cAAc,EAAE,YAAY,CAAC;IAC7B,OAAO;IACP,uBAAuB,EAAE,gCAAgC,CAAC;IAC1D,4BAA4B;IAC5B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,qHAm+BhC,CAAC"}
@@ -3,7 +3,7 @@ import { computeAuthWitMessageHash } from '@aztec/aztec.js/authorization';
3
3
  import { generateClaimSecret } from '@aztec/aztec.js/ethereum';
4
4
  import { Fr } from '@aztec/aztec.js/fields';
5
5
  import { RollupContract } from '@aztec/ethereum/contracts';
6
- import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contracts';
6
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
7
7
  import { extractEvent } from '@aztec/ethereum/utils';
8
8
  import { sha256ToField } from '@aztec/foundation/crypto/sha256';
9
9
  import { InboxAbi, UniswapPortalAbi, UniswapPortalBytecode } from '@aztec/l1-artifacts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "3.0.0-nightly.20251212",
3
+ "version": "3.0.0-nightly.20251214",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -25,43 +25,43 @@
25
25
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
26
26
  },
27
27
  "dependencies": {
28
- "@aztec/accounts": "3.0.0-nightly.20251212",
29
- "@aztec/archiver": "3.0.0-nightly.20251212",
30
- "@aztec/aztec": "3.0.0-nightly.20251212",
31
- "@aztec/aztec-node": "3.0.0-nightly.20251212",
32
- "@aztec/aztec.js": "3.0.0-nightly.20251212",
33
- "@aztec/bb-prover": "3.0.0-nightly.20251212",
34
- "@aztec/bb.js": "3.0.0-nightly.20251212",
35
- "@aztec/blob-lib": "3.0.0-nightly.20251212",
36
- "@aztec/blob-sink": "3.0.0-nightly.20251212",
37
- "@aztec/bot": "3.0.0-nightly.20251212",
38
- "@aztec/cli": "3.0.0-nightly.20251212",
39
- "@aztec/constants": "3.0.0-nightly.20251212",
40
- "@aztec/entrypoints": "3.0.0-nightly.20251212",
41
- "@aztec/epoch-cache": "3.0.0-nightly.20251212",
42
- "@aztec/ethereum": "3.0.0-nightly.20251212",
43
- "@aztec/foundation": "3.0.0-nightly.20251212",
44
- "@aztec/kv-store": "3.0.0-nightly.20251212",
45
- "@aztec/l1-artifacts": "3.0.0-nightly.20251212",
46
- "@aztec/merkle-tree": "3.0.0-nightly.20251212",
47
- "@aztec/node-keystore": "3.0.0-nightly.20251212",
48
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251212",
49
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20251212",
50
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251212",
51
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251212",
52
- "@aztec/p2p": "3.0.0-nightly.20251212",
53
- "@aztec/protocol-contracts": "3.0.0-nightly.20251212",
54
- "@aztec/prover-client": "3.0.0-nightly.20251212",
55
- "@aztec/prover-node": "3.0.0-nightly.20251212",
56
- "@aztec/pxe": "3.0.0-nightly.20251212",
57
- "@aztec/sequencer-client": "3.0.0-nightly.20251212",
58
- "@aztec/simulator": "3.0.0-nightly.20251212",
59
- "@aztec/slasher": "3.0.0-nightly.20251212",
60
- "@aztec/stdlib": "3.0.0-nightly.20251212",
61
- "@aztec/telemetry-client": "3.0.0-nightly.20251212",
62
- "@aztec/test-wallet": "3.0.0-nightly.20251212",
63
- "@aztec/validator-client": "3.0.0-nightly.20251212",
64
- "@aztec/world-state": "3.0.0-nightly.20251212",
28
+ "@aztec/accounts": "3.0.0-nightly.20251214",
29
+ "@aztec/archiver": "3.0.0-nightly.20251214",
30
+ "@aztec/aztec": "3.0.0-nightly.20251214",
31
+ "@aztec/aztec-node": "3.0.0-nightly.20251214",
32
+ "@aztec/aztec.js": "3.0.0-nightly.20251214",
33
+ "@aztec/bb-prover": "3.0.0-nightly.20251214",
34
+ "@aztec/bb.js": "3.0.0-nightly.20251214",
35
+ "@aztec/blob-lib": "3.0.0-nightly.20251214",
36
+ "@aztec/blob-sink": "3.0.0-nightly.20251214",
37
+ "@aztec/bot": "3.0.0-nightly.20251214",
38
+ "@aztec/cli": "3.0.0-nightly.20251214",
39
+ "@aztec/constants": "3.0.0-nightly.20251214",
40
+ "@aztec/entrypoints": "3.0.0-nightly.20251214",
41
+ "@aztec/epoch-cache": "3.0.0-nightly.20251214",
42
+ "@aztec/ethereum": "3.0.0-nightly.20251214",
43
+ "@aztec/foundation": "3.0.0-nightly.20251214",
44
+ "@aztec/kv-store": "3.0.0-nightly.20251214",
45
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251214",
46
+ "@aztec/merkle-tree": "3.0.0-nightly.20251214",
47
+ "@aztec/node-keystore": "3.0.0-nightly.20251214",
48
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251214",
49
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20251214",
50
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251214",
51
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251214",
52
+ "@aztec/p2p": "3.0.0-nightly.20251214",
53
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251214",
54
+ "@aztec/prover-client": "3.0.0-nightly.20251214",
55
+ "@aztec/prover-node": "3.0.0-nightly.20251214",
56
+ "@aztec/pxe": "3.0.0-nightly.20251214",
57
+ "@aztec/sequencer-client": "3.0.0-nightly.20251214",
58
+ "@aztec/simulator": "3.0.0-nightly.20251214",
59
+ "@aztec/slasher": "3.0.0-nightly.20251214",
60
+ "@aztec/stdlib": "3.0.0-nightly.20251214",
61
+ "@aztec/telemetry-client": "3.0.0-nightly.20251214",
62
+ "@aztec/test-wallet": "3.0.0-nightly.20251214",
63
+ "@aztec/validator-client": "3.0.0-nightly.20251214",
64
+ "@aztec/world-state": "3.0.0-nightly.20251214",
65
65
  "@iarna/toml": "^2.2.5",
66
66
  "@jest/globals": "^30.0.0",
67
67
  "@noble/curves": "=1.0.0",
@@ -7,7 +7,8 @@ import type { Wallet } from '@aztec/aztec.js/wallet';
7
7
  import { CheatCodes } from '@aztec/aztec/testing';
8
8
  import { createExtendedL1Client } from '@aztec/ethereum/client';
9
9
  import { RollupContract } from '@aztec/ethereum/contracts';
10
- import { type DeployL1ContractsArgs, deployL1Contract } from '@aztec/ethereum/deploy-l1-contracts';
10
+ import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
11
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
11
12
  import { ChainMonitor } from '@aztec/ethereum/test';
12
13
  import { randomBytes } from '@aztec/foundation/crypto/random';
13
14
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -125,7 +126,7 @@ export class ClientFlowsBenchmark {
125
126
 
126
127
  private proxyLogger: ProxyLogger;
127
128
 
128
- constructor(testName?: string, setupOptions: Partial<SetupOptions & DeployL1ContractsArgs> = {}) {
129
+ constructor(testName?: string, setupOptions: Partial<SetupOptions & DeployAztecL1ContractsArgs> = {}) {
129
130
  this.logger = createLogger(`bench:client_flows${testName ? `:${testName}` : ''}`);
130
131
  this.snapshotManager = createSnapshotManager(
131
132
  `bench_client_flows${testName ? `/${testName}` : ''}`,
@@ -4,11 +4,11 @@ import { type Logger, createLogger } from '@aztec/aztec.js/log';
4
4
  import type { AztecNode } from '@aztec/aztec.js/node';
5
5
  import { CheatCodes } from '@aztec/aztec/testing';
6
6
  import { createExtendedL1Client } from '@aztec/ethereum/client';
7
- import {
8
- type DeployL1ContractsArgs,
9
- type DeployL1ContractsReturnType,
10
- deployL1Contract,
11
- } from '@aztec/ethereum/deploy-l1-contracts';
7
+ import type {
8
+ DeployAztecL1ContractsArgs,
9
+ DeployAztecL1ContractsReturnType,
10
+ } from '@aztec/ethereum/deploy-aztec-l1-contracts';
11
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
12
12
  import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
13
13
  import { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
14
14
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
@@ -54,9 +54,13 @@ export class CrossChainMessagingTest {
54
54
  outbox!: any; // GetContractReturnType<typeof OutboxAbi> | undefined;
55
55
  cheatCodes!: CheatCodes;
56
56
 
57
- deployL1ContractsValues!: DeployL1ContractsReturnType;
57
+ deployL1ContractsValues!: DeployAztecL1ContractsReturnType;
58
58
 
59
- constructor(testName: string, opts: SetupOptions = {}, deployL1ContractsArgs: Partial<DeployL1ContractsArgs> = {}) {
59
+ constructor(
60
+ testName: string,
61
+ opts: SetupOptions = {},
62
+ deployL1ContractsArgs: Partial<DeployAztecL1ContractsArgs> = {},
63
+ ) {
60
64
  this.logger = createLogger(`e2e:e2e_cross_chain_messaging:${testName}`);
61
65
  this.snapshotManager = createSnapshotManager(`e2e_cross_chain_messaging/${testName}`, dataPath, opts, {
62
66
  initialValidators: [],
@@ -114,8 +114,6 @@ export class EpochsTestContext {
114
114
  checkIntervalMs: 50,
115
115
  archiverPollingIntervalMS: ARCHIVER_POLL_INTERVAL,
116
116
  worldStateBlockCheckIntervalMS: WORLD_STATE_BLOCK_CHECK_INTERVAL,
117
- skipProtocolContracts: true,
118
- salt: 1,
119
117
  aztecEpochDuration,
120
118
  aztecSlotDuration,
121
119
  ethereumSlotDuration,
@@ -4,7 +4,7 @@ import type { AztecNode } from '@aztec/aztec.js/node';
4
4
  import { CheatCodes } from '@aztec/aztec/testing';
5
5
  import { createExtendedL1Client } from '@aztec/ethereum/client';
6
6
  import { RollupContract } from '@aztec/ethereum/contracts';
7
- import type { DeployL1ContractsArgs } from '@aztec/ethereum/deploy-l1-contracts';
7
+ import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
8
8
  import { ChainMonitor } from '@aztec/ethereum/test';
9
9
  import { BlockNumber } from '@aztec/foundation/branded-types';
10
10
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -97,7 +97,7 @@ export class FeesTest {
97
97
  constructor(
98
98
  testName: string,
99
99
  private numberOfAccounts = 3,
100
- setupOptions: Partial<SetupOptions & DeployL1ContractsArgs> = {},
100
+ setupOptions: Partial<SetupOptions & DeployAztecL1ContractsArgs> = {},
101
101
  ) {
102
102
  if (!numberOfAccounts) {
103
103
  throw new Error('There must be at least 1 initial account.');
@@ -24,7 +24,7 @@ const SLASHING_UNIT = BigInt(1e18);
24
24
  const SLASHING_AMOUNT = SLASHING_UNIT * 3n;
25
25
 
26
26
  // How many epochs it may take to set everything up, so we dont slash during this period
27
- const SETUP_EPOCH_DURATION = 5;
27
+ const SETUP_EPOCH_DURATION = 8;
28
28
 
29
29
  export class P2PInactivityTest {
30
30
  public nodes!: AztecNodeService[];
@@ -151,13 +151,8 @@ export class P2PInactivityTest {
151
151
  // This prevents race conditions where validators propose blocks before the network is ready
152
152
  await this.test.waitForP2PMeshConnectivity(this.nodes, NUM_NODES);
153
153
 
154
- const ethereumSlotDuration = this.test.ctx.aztecNodeConfig.ethereumSlotDuration!;
155
- this.test.logger.warn(
156
- `Advancing to epoch ${SETUP_EPOCH_DURATION} (slashing will start after this epoch is complete)`,
157
- );
158
- await this.test.ctx.cheatCodes.rollup.advanceToEpoch(EpochNumber(SETUP_EPOCH_DURATION), {
159
- offset: -ethereumSlotDuration,
160
- });
154
+ this.test.logger.warn(`Advancing to epoch ${SETUP_EPOCH_DURATION - 1} (slashing will start after it is completed)`);
155
+ await this.test.ctx.cheatCodes.rollup.advanceToEpoch(EpochNumber(SETUP_EPOCH_DURATION - 1));
161
156
 
162
157
  return this;
163
158
  }
@@ -9,8 +9,8 @@ import {
9
9
  RollupContract,
10
10
  type TallySlashingProposerContract,
11
11
  } from '@aztec/ethereum/contracts';
12
- import type { Operator } from '@aztec/ethereum/deploy-l1-contracts';
13
- import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contracts';
12
+ import type { Operator } from '@aztec/ethereum/deploy-aztec-l1-contracts';
13
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
14
14
  import { MultiAdderArtifact } from '@aztec/ethereum/l1-artifacts';
15
15
  import { createL1TxUtilsFromViemWallet } from '@aztec/ethereum/l1-tx-utils';
16
16
  import { ChainMonitor } from '@aztec/ethereum/test';
@@ -93,7 +93,6 @@ export class P2PNetworkTest {
93
93
  // If set enable metrics collection
94
94
  private metricsPort?: number,
95
95
  startProverNode?: boolean,
96
- mockZkPassportVerifier?: boolean,
97
96
  ) {
98
97
  this.logger = createLogger(`e2e:e2e_p2p:${testName}`);
99
98
 
@@ -122,7 +121,6 @@ export class P2PNetworkTest {
122
121
  initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
123
122
  slasherFlavor: initialValidatorConfig.slasherFlavor ?? 'tally',
124
123
  aztecTargetCommitteeSize: numberOfValidators,
125
- salt: 420,
126
124
  metricsPort: metricsPort,
127
125
  numberOfInitialFundedAccounts: 2,
128
126
  startProverNode,
@@ -141,7 +139,6 @@ export class P2PNetworkTest {
141
139
  aztecTargetCommitteeSize: numberOfValidators,
142
140
  initialValidators: [],
143
141
  zkPassportArgs: {
144
- mockZkPassportVerifier,
145
142
  zkPassportDomain: zkPassportParams.domain,
146
143
  zkPassportScope: zkPassportParams.scope,
147
144
  },
@@ -157,7 +154,6 @@ export class P2PNetworkTest {
157
154
  metricsPort,
158
155
  initialConfig,
159
156
  startProverNode,
160
- mockZkPassportVerifier,
161
157
  }: {
162
158
  testName: string;
163
159
  numberOfNodes: number;
@@ -166,7 +162,6 @@ export class P2PNetworkTest {
166
162
  metricsPort?: number;
167
163
  initialConfig?: SetupOptions;
168
164
  startProverNode?: boolean;
169
- mockZkPassportVerifier?: boolean;
170
165
  }) {
171
166
  const port = basePort || (await getPort());
172
167
 
@@ -187,7 +182,6 @@ export class P2PNetworkTest {
187
182
  numberOfNodes,
188
183
  metricsPort,
189
184
  startProverNode,
190
- mockZkPassportVerifier,
191
185
  );
192
186
  }
193
187
 
@@ -448,7 +442,7 @@ export class P2PNetworkTest {
448
442
  slashFactory: SlashFactoryContract;
449
443
  }> {
450
444
  if (!this.ctx.deployL1ContractsValues) {
451
- throw new Error('DeployL1ContractsValues not set');
445
+ throw new Error('DeployAztecL1ContractsValues not set');
452
446
  }
453
447
 
454
448
  const rollup = new RollupContract(
@@ -13,7 +13,7 @@ import {
13
13
  import { BackendType, Barretenberg } from '@aztec/bb.js';
14
14
  import { createBlobSinkClient } from '@aztec/blob-sink/client';
15
15
  import type { BlobSinkServer } from '@aztec/blob-sink/server';
16
- import type { DeployL1ContractsReturnType } from '@aztec/ethereum/deploy-l1-contracts';
16
+ import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
17
17
  import { Buffer32 } from '@aztec/foundation/buffer';
18
18
  import { SecretValue } from '@aztec/foundation/config';
19
19
  import { FeeAssetHandlerAbi } from '@aztec/l1-artifacts';
@@ -78,7 +78,7 @@ export class FullProverTest {
78
78
  private context!: SubsystemsContext;
79
79
  private proverNode!: ProverNode;
80
80
  private simulatedProverNode!: ProverNode;
81
- public l1Contracts!: DeployL1ContractsReturnType;
81
+ public l1Contracts!: DeployAztecL1ContractsReturnType;
82
82
  public proverAddress!: EthAddress;
83
83
 
84
84
  constructor(
@@ -91,7 +91,7 @@ export class FullProverTest {
91
91
  this.snapshotManager = createSnapshotManager(
92
92
  `full_prover_integration/${testName}`,
93
93
  dataPath,
94
- { startProverNode: true, fundRewardDistributor: true, coinbase },
94
+ { startProverNode: true, coinbase },
95
95
  {
96
96
  realVerifier: realProofs,
97
97
  },
@@ -13,7 +13,11 @@ import { type BlobSinkServer, createBlobSinkServer } from '@aztec/blob-sink/serv
13
13
  import { createExtendedL1Client } from '@aztec/ethereum/client';
14
14
  import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
15
15
  import { deployMulticall3 } from '@aztec/ethereum/contracts';
16
- import type { DeployL1ContractsArgs, DeployL1ContractsReturnType } from '@aztec/ethereum/deploy-l1-contracts';
16
+ import {
17
+ type DeployAztecL1ContractsArgs,
18
+ type DeployAztecL1ContractsReturnType,
19
+ deployAztecL1Contracts,
20
+ } from '@aztec/ethereum/deploy-aztec-l1-contracts';
17
21
  import { EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
18
22
  import { asyncMap } from '@aztec/foundation/async-map';
19
23
  import { SecretValue } from '@aztec/foundation/config';
@@ -22,6 +26,8 @@ import { tryRmDir } from '@aztec/foundation/fs';
22
26
  import { createLogger } from '@aztec/foundation/log';
23
27
  import { resolver, reviver } from '@aztec/foundation/serialize';
24
28
  import { TestDateProvider } from '@aztec/foundation/timer';
29
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
30
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
25
31
  import type { ProverNode } from '@aztec/prover-node';
26
32
  import { getPXEConfig } from '@aztec/pxe/server';
27
33
  import type { SequencerClient } from '@aztec/sequencer-client';
@@ -44,7 +50,6 @@ import { foundry } from 'viem/chains';
44
50
  import { MNEMONIC, TEST_MAX_TX_POOL_SIZE, TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
45
51
  import { getACVMConfig } from './get_acvm_config.js';
46
52
  import { getBBConfig } from './get_bb_config.js';
47
- import { setupL1Contracts } from './setup_l1_contracts.js';
48
53
  import {
49
54
  type SetupOptions,
50
55
  createAndSyncProverNode,
@@ -61,7 +66,7 @@ export type SubsystemsContext = {
61
66
  aztecNode: AztecNodeService;
62
67
  aztecNodeConfig: AztecNodeConfig;
63
68
  wallet: TestWallet;
64
- deployL1ContractsValues: DeployL1ContractsReturnType;
69
+ deployL1ContractsValues: DeployAztecL1ContractsReturnType;
65
70
  proverNode?: ProverNode;
66
71
  watcher: AnvilTestWatcher;
67
72
  cheatCodes: CheatCodes;
@@ -83,7 +88,7 @@ export function createSnapshotManager(
83
88
  testName: string,
84
89
  dataPath?: string,
85
90
  config: Partial<SetupOptions> = {},
86
- deployL1ContractsArgs: Partial<DeployL1ContractsArgs> = {
91
+ deployL1ContractsArgs: Partial<DeployAztecL1ContractsArgs> = {
87
92
  initialValidators: [],
88
93
  },
89
94
  ) {
@@ -112,7 +117,7 @@ class MockSnapshotManager implements ISnapshotManager {
112
117
  constructor(
113
118
  testName: string,
114
119
  private config: Partial<AztecNodeConfig> = {},
115
- private deployL1ContractsArgs: Partial<DeployL1ContractsArgs> = {},
120
+ private deployL1ContractsArgs: Partial<DeployAztecL1ContractsArgs> = {},
116
121
  ) {
117
122
  this.logger = createLogger(`e2e:snapshot_manager:${testName}`);
118
123
  this.logger.warn(`No data path given, will not persist any snapshots.`);
@@ -160,7 +165,7 @@ class SnapshotManager implements ISnapshotManager {
160
165
  testName: string,
161
166
  private dataPath: string,
162
167
  private config: Partial<SetupOptions> = {},
163
- private deployL1ContractsArgs: Partial<DeployL1ContractsArgs> = {},
168
+ private deployL1ContractsArgs: Partial<DeployAztecL1ContractsArgs> = {},
164
169
  ) {
165
170
  this.livePath = join(this.dataPath, 'live', testName);
166
171
  this.logger = createLogger(`e2e:snapshot_manager:${testName}`);
@@ -286,7 +291,7 @@ async function setupFromFresh(
286
291
  statePath: string | undefined,
287
292
  logger: Logger,
288
293
  { numberOfInitialFundedAccounts = 10, ...opts }: SetupOptions = {},
289
- deployL1ContractsArgs: Partial<DeployL1ContractsArgs> = {
294
+ deployL1ContractsArgs: Partial<DeployAztecL1ContractsArgs> = {
290
295
  initialValidators: [],
291
296
  },
292
297
  ): Promise<SubsystemsContext> {
@@ -326,13 +331,14 @@ async function setupFromFresh(
326
331
  const hdAccount = mnemonicToAccount(MNEMONIC, { addressIndex: 0 });
327
332
  const publisherPrivKeyRaw = hdAccount.getHdKey().privateKey;
328
333
  const publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
334
+ const publisherPrivKeyHex = `0x${publisherPrivKey!.toString('hex')}` satisfies `0x${string}`;
329
335
 
330
336
  const l1Client = createExtendedL1Client([aztecNodeConfig.l1RpcUrls[0]], hdAccount, foundry);
331
337
 
332
338
  const validatorPrivKey = getPrivateKeyFromIndex(0);
333
339
  const proverNodePrivateKey = getPrivateKeyFromIndex(0);
334
340
 
335
- aztecNodeConfig.publisherPrivateKeys = [new SecretValue<`0x${string}`>(`0x${publisherPrivKey!.toString('hex')}`)];
341
+ aztecNodeConfig.publisherPrivateKeys = [new SecretValue(publisherPrivKeyHex)];
336
342
  aztecNodeConfig.validatorPrivateKeys = new SecretValue([`0x${validatorPrivKey!.toString('hex')}`]);
337
343
  aztecNodeConfig.coinbase = opts.coinbase ?? EthAddress.fromString(`${hdAccount.address}`);
338
344
 
@@ -348,7 +354,7 @@ async function setupFromFresh(
348
354
  const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
349
355
 
350
356
  // Deploy our L1 contracts.
351
- logger.verbose('Deploying L1 contracts...');
357
+ logger.verbose('Deploying Aztec L1 contracts...');
352
358
  if (opts.l1StartTime) {
353
359
  await ethCheatCodes.warp(opts.l1StartTime, { resetBlockInterval: true });
354
360
  }
@@ -360,16 +366,28 @@ async function setupFromFresh(
360
366
  opts.initialAccountFeeJuice,
361
367
  );
362
368
 
369
+ const vkTreeRoot = getVKTreeRoot();
363
370
  await deployMulticall3(l1Client, logger);
364
371
 
365
- const deployL1ContractsValues = await setupL1Contracts(aztecNodeConfig.l1RpcUrls[0], hdAccount, logger, {
372
+ // Define args, defaulted to our environment variables.
373
+ const args: DeployAztecL1ContractsArgs = {
366
374
  ...getL1ContractsConfigEnvVars(),
367
- genesisArchiveRoot,
368
- feeJuicePortalInitialBalance: fundingNeeded,
369
- salt: opts.salt,
370
375
  ...deployL1ContractsArgs,
376
+ vkTreeRoot,
377
+ genesisArchiveRoot,
378
+ protocolContractsHash,
371
379
  initialValidators: opts.initialValidators,
372
- });
380
+ feeJuicePortalInitialBalance: fundingNeeded,
381
+ realVerifier: false,
382
+ };
383
+
384
+ const deployL1ContractsValues = await deployAztecL1Contracts(
385
+ aztecNodeConfig.l1RpcUrls[0],
386
+ publisherPrivKeyHex,
387
+ foundry.id,
388
+ args,
389
+ );
390
+
373
391
  aztecNodeConfig.l1Contracts = deployL1ContractsValues.l1ContractAddresses;
374
392
  aztecNodeConfig.rollupVersion = deployL1ContractsValues.rollupVersion;
375
393