@aztec/end-to-end 3.0.0-nightly.20250923 → 3.0.0-nightly.20250924

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.
@@ -1,5 +1,4 @@
1
1
  import { FeeJuicePaymentMethod, FeeJuicePaymentMethodWithClaim, PrivateFeePaymentMethod, SponsoredFeePaymentMethod, createLogger } from '@aztec/aztec.js';
2
- import { CheatCodes } from '@aztec/aztec/testing';
3
2
  import { RollupContract, createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
4
3
  import { ChainMonitor } from '@aztec/ethereum/test';
5
4
  import { randomBytes } from '@aztec/foundation/crypto';
@@ -149,10 +148,10 @@ export class ClientFlowsBenchmark {
149
148
  await this.applySetupFeeJuiceSnapshot();
150
149
  }
151
150
  async applyInitialAccountsSnapshot() {
152
- await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] }, { wallet, aztecNode, aztecNodeConfig })=>{
151
+ await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] }, { wallet, aztecNode, cheatCodes })=>{
153
152
  this.adminWallet = wallet;
154
153
  this.aztecNode = aztecNode;
155
- this.cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
154
+ this.cheatCodes = cheatCodes;
156
155
  this.adminAddress = adminAddress;
157
156
  this.sequencerAddress = sequencerAddress;
158
157
  const canonicalFeeJuice = await getCanonicalFeeJuice();
@@ -1,5 +1,4 @@
1
1
  import { EthAddress, createLogger } from '@aztec/aztec.js';
2
- import { CheatCodes } from '@aztec/aztec/testing';
3
2
  import { createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
4
3
  import { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
5
4
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
@@ -44,7 +43,7 @@ export class CrossChainMessagingTest {
44
43
  this.aztecNode = this.ctx.aztecNode;
45
44
  this.wallet = this.ctx.wallet;
46
45
  this.aztecNodeConfig = this.ctx.aztecNodeConfig;
47
- this.cheatCodes = await CheatCodes.create(this.aztecNodeConfig.l1RpcUrls, this.wallet, this.aztecNode);
46
+ this.cheatCodes = this.ctx.cheatCodes;
48
47
  this.deployL1ContractsValues = this.ctx.deployL1ContractsValues;
49
48
  this.aztecNodeAdmin = this.ctx.aztecNode;
50
49
  }
@@ -1,6 +1,5 @@
1
1
  import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
2
2
  import { createLogger, sleep } from '@aztec/aztec.js';
3
- import { CheatCodes } from '@aztec/aztec/testing';
4
3
  import { RollupContract, createExtendedL1Client } from '@aztec/ethereum';
5
4
  import { ChainMonitor } from '@aztec/ethereum/test';
6
5
  import { EthAddress } from '@aztec/foundation/eth-address';
@@ -135,13 +134,13 @@ const { E2E_DATA_PATH: dataPath } = process.env;
135
134
  await this.applyDeployBananaTokenSnapshot();
136
135
  }
137
136
  async applyInitialAccountsSnapshot() {
138
- await this.snapshotManager.snapshot('initial_accounts', deployAccounts(this.numberOfAccounts, this.logger), async ({ deployedAccounts }, { wallet, aztecNode, aztecNodeConfig })=>{
137
+ await this.snapshotManager.snapshot('initial_accounts', deployAccounts(this.numberOfAccounts, this.logger), async ({ deployedAccounts }, { wallet, aztecNode, cheatCodes })=>{
139
138
  this.wallet = wallet;
140
139
  this.aztecNode = aztecNode;
141
140
  this.gasSettings = GasSettings.default({
142
141
  maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2)
143
142
  });
144
- this.cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
143
+ this.cheatCodes = cheatCodes;
145
144
  this.accounts = deployedAccounts.map((a)=>a.address);
146
145
  this.accounts.forEach((a, i)=>this.logger.verbose(`Account ${i} address: ${a}`));
147
146
  [this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
@@ -140,7 +140,7 @@ export class P2PNetworkTest {
140
140
  }
141
141
  async applyBaseSnapshots() {
142
142
  await this.addBootstrapNode();
143
- await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues, dateProvider, cheatCodes })=>{
143
+ await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues, cheatCodes })=>{
144
144
  const rollup = getContract({
145
145
  address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
146
146
  abi: RollupAbi,
@@ -191,9 +191,7 @@ export class P2PNetworkTest {
191
191
  validatorTuples
192
192
  ])
193
193
  });
194
- await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + await rollup.read.getLagInEpochs() + 1n, {
195
- updateDateProvider: dateProvider
196
- });
194
+ await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + await rollup.read.getLagInEpochs() + 1n);
197
195
  // Send and await a tx to make sure we mine a block for the warp to correctly progress.
198
196
  await this._sendDummyTx(deployL1ContractsValues.l1Client);
199
197
  });
@@ -3,7 +3,6 @@ import type { AztecNodeService } from '@aztec/aztec-node';
3
3
  import { AztecAddress, type Logger, ProvenTx, type SentTx } from '@aztec/aztec.js';
4
4
  import type { RollupCheatCodes } from '@aztec/aztec/testing';
5
5
  import type { EmpireSlashingProposerContract, RollupContract, TallySlashingProposerContract } from '@aztec/ethereum';
6
- import type { TestDateProvider } from '@aztec/foundation/timer';
7
6
  import type { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
8
7
  import { PXEService } from '@aztec/pxe/server';
9
8
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
@@ -34,7 +33,7 @@ export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundS
34
33
  * Await the committee to be slashed out of the validator set.
35
34
  * Currently assumes that the committee is the same size as the validator set.
36
35
  */
37
- export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, logger, dateProvider, }: {
36
+ export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch, }: {
38
37
  rollup: RollupContract;
39
38
  cheatCodes: RollupCheatCodes;
40
39
  committee: readonly `0x${string}`[];
@@ -42,7 +41,8 @@ export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, sl
42
41
  slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
43
42
  slashingRoundSize: number;
44
43
  aztecSlotDuration: number;
45
- dateProvider: TestDateProvider;
44
+ aztecEpochDuration: number;
46
45
  logger: Logger;
46
+ offenseEpoch: number;
47
47
  }): Promise<void>;
48
48
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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"}
@@ -117,23 +117,24 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
117
117
  logger.info(`Hit ${offenses.length} offenses on rounds ${unique(offenses.map((o)=>getRoundForOffense(o, {
118
118
  slashingRoundSize,
119
119
  epochDuration
120
- })))}`, offenses);
120
+ })))}`, {
121
+ offenses
122
+ });
121
123
  return offenses;
122
124
  }
123
125
  /**
124
126
  * Await the committee to be slashed out of the validator set.
125
127
  * Currently assumes that the committee is the same size as the validator set.
126
- */ export async function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, logger, dateProvider }) {
128
+ */ export async function awaitCommitteeKicked({ rollup, cheatCodes, committee, slashFactory, slashingProposer, slashingRoundSize, aztecSlotDuration, aztecEpochDuration, logger, offenseEpoch }) {
127
129
  if (!slashingProposer) {
128
130
  throw new Error('No slashing proposer configured. Cannot test slashing.');
129
131
  }
130
- logger.info(`Advancing epochs so we start slashing`);
131
132
  await cheatCodes.debugRollup();
132
- await cheatCodes.advanceToEpoch(await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n, {
133
- updateDateProvider: dateProvider
134
- });
135
- // Await for the slash payload to be created if empire (no payload is created on tally until execution time)
136
133
  if (slashingProposer.type === 'empire') {
134
+ // Await for the slash payload to be created if empire (no payload is created on tally until execution time)
135
+ const targetEpoch = await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n;
136
+ logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
137
+ await cheatCodes.advanceToEpoch(targetEpoch);
137
138
  const slashPayloadEvents = await retryUntil(async ()=>{
138
139
  const events = await slashFactory.getSlashPayloadCreatedEvents();
139
140
  return events.length > 0 ? events : undefined;
@@ -141,6 +142,17 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
141
142
  expect(slashPayloadEvents.length).toBe(1);
142
143
  // The uniqueness check is needed since a validator may be slashed more than once on the same round (eg because they let two epochs be pruned)
143
144
  expect(unique(slashPayloadEvents[0].slashes.map((slash)=>slash.validator.toString()))).toHaveLength(committee.length);
145
+ } else {
146
+ // Use the slash offset to ensure we are in the right epoch for tally
147
+ const slashOffsetInRounds = await slashingProposer.getSlashOffsetInRounds();
148
+ const slashingRoundSizeInEpochs = slashingRoundSize / aztecEpochDuration;
149
+ const slashingOffsetInEpochs = Number(slashOffsetInRounds) * slashingRoundSizeInEpochs;
150
+ const firstEpochInOffenseRound = offenseEpoch - offenseEpoch % slashingRoundSizeInEpochs;
151
+ const targetEpoch = firstEpochInOffenseRound + slashingOffsetInEpochs;
152
+ logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
153
+ await cheatCodes.advanceToEpoch(targetEpoch, {
154
+ offset: -aztecSlotDuration / 2
155
+ });
144
156
  }
145
157
  const attestersPre = await rollup.getAttesters();
146
158
  expect(attestersPre.length).toBe(committee.length);
@@ -148,7 +160,7 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
148
160
  const attesterInfo = await rollup.getAttesterView(attester);
149
161
  expect(attesterInfo.status).toEqual(1); // Validating
150
162
  }
151
- const timeout = slashingRoundSize * 2 * aztecSlotDuration;
163
+ const timeout = slashingRoundSize * 2 * aztecSlotDuration + 30;
152
164
  logger.info(`Waiting for slash to be executed (timeout ${timeout}s)`);
153
165
  await awaitProposalExecution(slashingProposer, timeout, logger);
154
166
  // The attesters should still form the committee but they should be reduced to the "living" status
@@ -163,9 +175,7 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
163
175
  }
164
176
  logger.info(`Advancing to check current committee`);
165
177
  await cheatCodes.debugRollup();
166
- await cheatCodes.advanceToEpoch(await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n, {
167
- updateDateProvider: dateProvider
168
- });
178
+ await cheatCodes.advanceToEpoch(await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n);
169
179
  await cheatCodes.debugRollup();
170
180
  const committeeNextEpoch = await rollup.getCurrentEpochCommittee();
171
181
  // The committee should be undefined, since the validator set is empty
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAId,KAAK,MAAM,EACX,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,yBAAyB,CAAC;AACpF,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAIjC,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAezC,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,YAAY,CAAC;AAGpB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,gBAAgB,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,uBAAuB,EAAE,2BAA2B,CAAC;IACrD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AASF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,EAClC,qBAAqB,GAAE,OAAO,CAAC,qBAAqB,CAEnD,yCAKF;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,CAAC,EACR,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,qIAAqI;AACrI,cAAM,mBAAoB,YAAW,gBAAgB;IAMjD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,qBAAqB;IAN/B,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAS;gBAGrB,QAAQ,EAAE,MAAM,EACR,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,qBAAqB,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAMvD,QAAQ,CAAC,CAAC,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B;IAYtF,KAAK;IAOL,QAAQ;CAItB;AAED;;;GAGG;AACH,cAAM,eAAgB,YAAW,gBAAgB;IAQ7C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,qBAAqB;IAT/B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;gBAGrB,QAAQ,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,EAClC,qBAAqB,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAMvD,QAAQ,CAAC,CAAC,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B;IA4CnG;;;;OAIG;IACU,KAAK;IA0BlB;;OAEG;IACU,QAAQ;CAKtB;AAsVD;;;GAGG;AACH,eAAO,MAAM,cAAc,GACxB,kBAAkB,MAAM,EAAE,QAAQ,MAAM,MAClC,mCAAmC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,qBAAqB,EAAE,kBAAkB,EAAE,CAAA;CAAE;;EAsB5G,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,YAAY,EAAE,EAChC,eAAe,UAAQ,EACvB,IAAI,CAAC,EAAE,SAAS,iBAwBjB"}
@@ -119,7 +119,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
119
119
  // Execute the restoration function.
120
120
  await restore(snapshotData, context);
121
121
  // Save the snapshot data.
122
- const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls);
122
+ const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls, context.dateProvider);
123
123
  const anvilStateFile = `${this.livePath}/anvil.dat`;
124
124
  await ethCheatCodes.dumpChainState(anvilStateFile);
125
125
  writeFileSync(`${this.livePath}/${name}.json`, JSON.stringify(snapshotData || {}, resolver));
@@ -262,7 +262,8 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
262
262
  aztecNodeConfig.l1RpcUrls = [
263
263
  res.rpcUrl
264
264
  ];
265
- const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls);
265
+ const dateProvider = new TestDateProvider();
266
+ const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
266
267
  // Deploy our L1 contracts.
267
268
  logger.verbose('Deploying L1 contracts...');
268
269
  if (opts.l1StartTime) {
@@ -285,8 +286,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
285
286
  aztecNodeConfig.l1Contracts = deployL1ContractsValues.l1ContractAddresses;
286
287
  aztecNodeConfig.rollupVersion = deployL1ContractsValues.rollupVersion;
287
288
  aztecNodeConfig.l1PublishRetryIntervalMS = 100;
288
- const dateProvider = new TestDateProvider();
289
- const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
289
+ const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
290
290
  await watcher.start();
291
291
  const acvmConfig = await getACVMConfig(logger);
292
292
  if (acvmConfig) {
@@ -332,7 +332,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
332
332
  pxeConfig.proverEnabled = !!opts.realProofs;
333
333
  const pxe = await createPXEService(aztecNode, pxeConfig);
334
334
  const wallet = new TestWallet(pxe, aztecNode);
335
- const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
335
+ const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode, dateProvider);
336
336
  if (statePath) {
337
337
  writeFileSync(`${statePath}/aztec_node_config.json`, JSON.stringify(aztecNodeConfig, resolver));
338
338
  writeFileSync(`${statePath}/accounts.json`, JSON.stringify(initialFundedAccounts, resolver));
@@ -379,7 +379,8 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
379
379
  ];
380
380
  // Load anvil state.
381
381
  const anvilStateFile = `${statePath}/anvil.dat`;
382
- const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls);
382
+ const dateProvider = new TestDateProvider();
383
+ const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
383
384
  await ethCheatCodes.loadChainState(anvilStateFile);
384
385
  // TODO: Encapsulate this in a NativeAcvm impl.
385
386
  const acvmConfig = await getACVMConfig(logger);
@@ -394,8 +395,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
394
395
  }
395
396
  logger.verbose('Creating ETH clients...');
396
397
  const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, mnemonicToAccount(MNEMONIC));
397
- const dateProvider = new TestDateProvider();
398
- const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls), aztecNodeConfig.l1Contracts.rollupAddress, l1Client, dateProvider);
398
+ const watcher = new AnvilTestWatcher(ethCheatCodes, aztecNodeConfig.l1Contracts.rollupAddress, l1Client, dateProvider);
399
399
  await watcher.start();
400
400
  const telemetry = initTelemetryClient(getTelemetryConfig());
401
401
  const blobSink = await createBlobSinkServer({
@@ -430,7 +430,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
430
430
  pxeConfig.dataDirectory = statePath;
431
431
  const pxe = await createPXEService(aztecNode, pxeConfig);
432
432
  const wallet = new TestWallet(pxe, aztecNode);
433
- const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
433
+ const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode, dateProvider);
434
434
  return {
435
435
  aztecNodeConfig,
436
436
  anvil,
@@ -151,12 +151,6 @@ export declare function setup(numberOfAccounts?: number, opts?: SetupOptions, px
151
151
  * @param accountsToDeploy - Which accounts to publicly deploy.
152
152
  */
153
153
  export declare function ensureAccountContractsPublished(wallet: Wallet, accountsToDeploy: AztecAddress[]): Promise<void>;
154
- /**
155
- * Sets the timestamp of the next block.
156
- * @param rpcUrl - rpc url of the blockchain instance to connect to
157
- * @param timestamp - the timestamp for the next block
158
- */
159
- export declare function setNextBlockTimestamp(rpcUrl: string, timestamp: number): Promise<void>;
160
154
  /**
161
155
  * Returns a logger instance for the current test.
162
156
  * @returns a logger instance for the current test.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ import { Fr } from '@aztec/foundation/fields';
17
17
  import { tryRmDir } from '@aztec/foundation/fs';
18
18
  import { withLogNameSuffix } from '@aztec/foundation/log';
19
19
  import { retryUntil } from '@aztec/foundation/retry';
20
- import { TestDateProvider } from '@aztec/foundation/timer';
20
+ import { DateProvider, TestDateProvider } from '@aztec/foundation/timer';
21
21
  import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
22
22
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
23
23
  import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
@@ -145,9 +145,9 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
145
145
  l1Client,
146
146
  rollupVersion
147
147
  };
148
- const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls);
148
+ const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls, new DateProvider());
149
149
  const wallet = new TestWallet(pxeClient, aztecNode);
150
- const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode);
150
+ const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode, new DateProvider());
151
151
  const teardown = ()=>Promise.resolve();
152
152
  logger.verbose('Populating wallet from already registered accounts...');
153
153
  const initialFundedAccounts = await getDeployedTestAccounts(wallet);
@@ -234,7 +234,8 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
234
234
  logger.info(`Logging metrics to ${filename}`);
235
235
  setupMetricsLogger(filename);
236
236
  }
237
- const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls);
237
+ const dateProvider = new TestDateProvider();
238
+ const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
238
239
  if (opts.stateLoad) {
239
240
  await ethCheatCodes.loadChainState(opts.stateLoad);
240
241
  }
@@ -305,6 +306,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
305
306
  if (enableAutomine) {
306
307
  await ethCheatCodes.setAutomine(false);
307
308
  await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
309
+ dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
308
310
  }
309
311
  if (opts.l2StartTime) {
310
312
  // This should only be used in synching test or when you need to have a stable
@@ -313,9 +315,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
313
315
  resetBlockInterval: true
314
316
  });
315
317
  }
316
- const dateProvider = new TestDateProvider();
317
- dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
318
- const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
318
+ const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
319
319
  if (!opts.disableAnvilTestWatcher) {
320
320
  await watcher.start();
321
321
  }
@@ -410,12 +410,10 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
410
410
  }
411
411
  logger.verbose('Creating a pxe...');
412
412
  const { wallet, teardown: pxeTeardown } = await setupPXEServiceAndGetWallet(aztecNode, pxeOpts, logger);
413
- const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode);
413
+ const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode, dateProvider);
414
414
  if (opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0 || opts.initialValidators && opts.initialValidators.length > 0) {
415
415
  // We need to advance such that the committee is set up.
416
- await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + BigInt(config.lagInEpochs + 1), {
417
- updateDateProvider: dateProvider
418
- });
416
+ await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + BigInt(config.lagInEpochs + 1));
419
417
  await cheatCodes.rollup.setupEpoch();
420
418
  await cheatCodes.rollup.debugRollup();
421
419
  }
@@ -515,20 +513,6 @@ export async function ensureAccountContractsPublished(wallet, accountsToDeploy)
515
513
  }).wait();
516
514
  }
517
515
  // docs:end:public_deploy_accounts
518
- /**
519
- * Sets the timestamp of the next block.
520
- * @param rpcUrl - rpc url of the blockchain instance to connect to
521
- * @param timestamp - the timestamp for the next block
522
- */ export async function setNextBlockTimestamp(rpcUrl, timestamp) {
523
- const params = `[${timestamp}]`;
524
- await fetch(rpcUrl, {
525
- body: `{"jsonrpc":"2.0", "method": "evm_setNextBlockTimestamp", "params": ${params}, "id": 1}`,
526
- method: 'POST',
527
- headers: {
528
- 'Content-Type': 'application/json'
529
- }
530
- });
531
- }
532
516
  /** Returns the job name for the current test. */ function getJobName() {
533
517
  return process.env.JOB_NAME ?? expect.getState().currentTestName?.split(' ')[0].replaceAll('/', '_') ?? 'unknown';
534
518
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,gBAAgB,EAQtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,YAAY,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CA8BvB;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAoCvB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAiDvB;AA+ED,wBAAsB,gBAAgB,CAAC,EACrC,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,EACN,gBAAgB,GACjB,EAAE;IACD,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,iBAiBA;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAqBrF"}
1
+ {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAEd,KAAK,gBAAgB,EAQtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,YAAY,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CA8BvB;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAqCvB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAiDvB;AA+ED,wBAAsB,gBAAgB,CAAC,EACrC,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,EACN,gBAAgB,GACjB,EAAE;IACD,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,iBAiBA;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAqBrF"}
@@ -35,9 +35,16 @@ export async function deploySponsoredTestAccounts(wallet, aztecNode, mintAmount,
35
35
  const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
36
36
  const fundedAccounts = await Promise.all(funded.map((a)=>wallet.createSchnorrAccount(a.secret, a.salt)));
37
37
  await registerSponsoredFPC(wallet);
38
+ const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
39
+ await recipientAccount.deploy({
40
+ fee: {
41
+ paymentMethod
42
+ }
43
+ }).wait({
44
+ timeout: 2400
45
+ });
38
46
  await Promise.all(fundedAccounts.map(async (a)=>{
39
- const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
40
- await recipientAccount.deploy({
47
+ await a.deploy({
41
48
  fee: {
42
49
  paymentMethod
43
50
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "3.0.0-nightly.20250923",
3
+ "version": "3.0.0-nightly.20250924",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -25,42 +25,42 @@
25
25
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
26
26
  },
27
27
  "dependencies": {
28
- "@aztec/accounts": "3.0.0-nightly.20250923",
29
- "@aztec/archiver": "3.0.0-nightly.20250923",
30
- "@aztec/aztec": "3.0.0-nightly.20250923",
31
- "@aztec/aztec-node": "3.0.0-nightly.20250923",
32
- "@aztec/aztec.js": "3.0.0-nightly.20250923",
33
- "@aztec/bb-prover": "3.0.0-nightly.20250923",
34
- "@aztec/blob-lib": "3.0.0-nightly.20250923",
35
- "@aztec/blob-sink": "3.0.0-nightly.20250923",
36
- "@aztec/bot": "3.0.0-nightly.20250923",
37
- "@aztec/cli": "3.0.0-nightly.20250923",
38
- "@aztec/constants": "3.0.0-nightly.20250923",
39
- "@aztec/entrypoints": "3.0.0-nightly.20250923",
40
- "@aztec/epoch-cache": "3.0.0-nightly.20250923",
41
- "@aztec/ethereum": "3.0.0-nightly.20250923",
42
- "@aztec/foundation": "3.0.0-nightly.20250923",
43
- "@aztec/kv-store": "3.0.0-nightly.20250923",
44
- "@aztec/l1-artifacts": "3.0.0-nightly.20250923",
45
- "@aztec/merkle-tree": "3.0.0-nightly.20250923",
46
- "@aztec/node-keystore": "3.0.0-nightly.20250923",
47
- "@aztec/noir-contracts.js": "3.0.0-nightly.20250923",
48
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20250923",
49
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250923",
50
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20250923",
51
- "@aztec/p2p": "3.0.0-nightly.20250923",
52
- "@aztec/protocol-contracts": "3.0.0-nightly.20250923",
53
- "@aztec/prover-client": "3.0.0-nightly.20250923",
54
- "@aztec/prover-node": "3.0.0-nightly.20250923",
55
- "@aztec/pxe": "3.0.0-nightly.20250923",
56
- "@aztec/sequencer-client": "3.0.0-nightly.20250923",
57
- "@aztec/simulator": "3.0.0-nightly.20250923",
58
- "@aztec/slasher": "3.0.0-nightly.20250923",
59
- "@aztec/stdlib": "3.0.0-nightly.20250923",
60
- "@aztec/telemetry-client": "3.0.0-nightly.20250923",
61
- "@aztec/test-wallet": "3.0.0-nightly.20250923",
62
- "@aztec/validator-client": "3.0.0-nightly.20250923",
63
- "@aztec/world-state": "3.0.0-nightly.20250923",
28
+ "@aztec/accounts": "3.0.0-nightly.20250924",
29
+ "@aztec/archiver": "3.0.0-nightly.20250924",
30
+ "@aztec/aztec": "3.0.0-nightly.20250924",
31
+ "@aztec/aztec-node": "3.0.0-nightly.20250924",
32
+ "@aztec/aztec.js": "3.0.0-nightly.20250924",
33
+ "@aztec/bb-prover": "3.0.0-nightly.20250924",
34
+ "@aztec/blob-lib": "3.0.0-nightly.20250924",
35
+ "@aztec/blob-sink": "3.0.0-nightly.20250924",
36
+ "@aztec/bot": "3.0.0-nightly.20250924",
37
+ "@aztec/cli": "3.0.0-nightly.20250924",
38
+ "@aztec/constants": "3.0.0-nightly.20250924",
39
+ "@aztec/entrypoints": "3.0.0-nightly.20250924",
40
+ "@aztec/epoch-cache": "3.0.0-nightly.20250924",
41
+ "@aztec/ethereum": "3.0.0-nightly.20250924",
42
+ "@aztec/foundation": "3.0.0-nightly.20250924",
43
+ "@aztec/kv-store": "3.0.0-nightly.20250924",
44
+ "@aztec/l1-artifacts": "3.0.0-nightly.20250924",
45
+ "@aztec/merkle-tree": "3.0.0-nightly.20250924",
46
+ "@aztec/node-keystore": "3.0.0-nightly.20250924",
47
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20250924",
48
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20250924",
49
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250924",
50
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20250924",
51
+ "@aztec/p2p": "3.0.0-nightly.20250924",
52
+ "@aztec/protocol-contracts": "3.0.0-nightly.20250924",
53
+ "@aztec/prover-client": "3.0.0-nightly.20250924",
54
+ "@aztec/prover-node": "3.0.0-nightly.20250924",
55
+ "@aztec/pxe": "3.0.0-nightly.20250924",
56
+ "@aztec/sequencer-client": "3.0.0-nightly.20250924",
57
+ "@aztec/simulator": "3.0.0-nightly.20250924",
58
+ "@aztec/slasher": "3.0.0-nightly.20250924",
59
+ "@aztec/stdlib": "3.0.0-nightly.20250924",
60
+ "@aztec/telemetry-client": "3.0.0-nightly.20250924",
61
+ "@aztec/test-wallet": "3.0.0-nightly.20250924",
62
+ "@aztec/validator-client": "3.0.0-nightly.20250924",
63
+ "@aztec/world-state": "3.0.0-nightly.20250924",
64
64
  "@iarna/toml": "^2.2.5",
65
65
  "@jest/globals": "^30.0.0",
66
66
  "@noble/curves": "=1.0.0",
@@ -201,11 +201,11 @@ export class ClientFlowsBenchmark {
201
201
  deployAccounts(2, this.logger),
202
202
  async (
203
203
  { deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] },
204
- { wallet, aztecNode, aztecNodeConfig },
204
+ { wallet, aztecNode, cheatCodes },
205
205
  ) => {
206
206
  this.adminWallet = wallet;
207
207
  this.aztecNode = aztecNode;
208
- this.cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
208
+ this.cheatCodes = cheatCodes;
209
209
 
210
210
  this.adminAddress = adminAddress;
211
211
  this.sequencerAddress = sequencerAddress;
@@ -71,7 +71,7 @@ export class CrossChainMessagingTest {
71
71
  this.aztecNode = this.ctx.aztecNode;
72
72
  this.wallet = this.ctx.wallet;
73
73
  this.aztecNodeConfig = this.ctx.aztecNodeConfig;
74
- this.cheatCodes = await CheatCodes.create(this.aztecNodeConfig.l1RpcUrls, this.wallet, this.aztecNode);
74
+ this.cheatCodes = this.ctx.cheatCodes;
75
75
  this.deployL1ContractsValues = this.ctx.deployL1ContractsValues;
76
76
  this.aztecNodeAdmin = this.ctx.aztecNode;
77
77
  }
@@ -182,11 +182,11 @@ export class FeesTest {
182
182
  await this.snapshotManager.snapshot(
183
183
  'initial_accounts',
184
184
  deployAccounts(this.numberOfAccounts, this.logger),
185
- async ({ deployedAccounts }, { wallet, aztecNode, aztecNodeConfig }) => {
185
+ async ({ deployedAccounts }, { wallet, aztecNode, cheatCodes }) => {
186
186
  this.wallet = wallet;
187
187
  this.aztecNode = aztecNode;
188
188
  this.gasSettings = GasSettings.default({ maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2) });
189
- this.cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
189
+ this.cheatCodes = cheatCodes;
190
190
  this.accounts = deployedAccounts.map(a => a.address);
191
191
  this.accounts.forEach((a, i) => this.logger.verbose(`Account ${i} address: ${a}`));
192
192
  [this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
@@ -230,78 +230,72 @@ export class P2PNetworkTest {
230
230
 
231
231
  async applyBaseSnapshots() {
232
232
  await this.addBootstrapNode();
233
- await this.snapshotManager.snapshot(
234
- 'add-validators',
235
- async ({ deployL1ContractsValues, dateProvider, cheatCodes }) => {
236
- const rollup = getContract({
237
- address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
238
- abi: RollupAbi,
239
- client: deployL1ContractsValues.l1Client,
240
- });
233
+ await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues, cheatCodes }) => {
234
+ const rollup = getContract({
235
+ address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
236
+ abi: RollupAbi,
237
+ client: deployL1ContractsValues.l1Client,
238
+ });
241
239
 
242
- this.logger.info(`Adding ${this.numberOfValidators} validators`);
240
+ this.logger.info(`Adding ${this.numberOfValidators} validators`);
243
241
 
244
- const stakingAsset = getContract({
245
- address: deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
246
- abi: TestERC20Abi,
247
- client: deployL1ContractsValues.l1Client,
248
- });
242
+ const stakingAsset = getContract({
243
+ address: deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
244
+ abi: TestERC20Abi,
245
+ client: deployL1ContractsValues.l1Client,
246
+ });
249
247
 
250
- const { address: multiAdderAddress } = await deployL1Contract(
251
- deployL1ContractsValues.l1Client,
252
- MultiAdderArtifact.contractAbi,
253
- MultiAdderArtifact.contractBytecode,
254
- [rollup.address, deployL1ContractsValues.l1Client.account.address],
255
- );
256
-
257
- const multiAdder = getContract({
258
- address: multiAdderAddress.toString(),
259
- abi: MultiAdderArtifact.contractAbi,
260
- client: deployL1ContractsValues.l1Client,
261
- });
248
+ const { address: multiAdderAddress } = await deployL1Contract(
249
+ deployL1ContractsValues.l1Client,
250
+ MultiAdderArtifact.contractAbi,
251
+ MultiAdderArtifact.contractBytecode,
252
+ [rollup.address, deployL1ContractsValues.l1Client.account.address],
253
+ );
254
+
255
+ const multiAdder = getContract({
256
+ address: multiAdderAddress.toString(),
257
+ abi: MultiAdderArtifact.contractAbi,
258
+ client: deployL1ContractsValues.l1Client,
259
+ });
262
260
 
263
- const stakeNeeded = (await rollup.read.getActivationThreshold()) * BigInt(this.numberOfValidators);
264
- await Promise.all(
265
- [await stakingAsset.write.mint([multiAdder.address, stakeNeeded], {} as any)].map(txHash =>
266
- deployL1ContractsValues.l1Client.waitForTransactionReceipt({ hash: txHash }),
267
- ),
268
- );
261
+ const stakeNeeded = (await rollup.read.getActivationThreshold()) * BigInt(this.numberOfValidators);
262
+ await Promise.all(
263
+ [await stakingAsset.write.mint([multiAdder.address, stakeNeeded], {} as any)].map(txHash =>
264
+ deployL1ContractsValues.l1Client.waitForTransactionReceipt({ hash: txHash }),
265
+ ),
266
+ );
269
267
 
270
- const { validators } = this.getValidators();
271
- this.validators = validators;
268
+ const { validators } = this.getValidators();
269
+ this.validators = validators;
272
270
 
273
- const gseAddress = deployL1ContractsValues.l1ContractAddresses.gseAddress!;
274
- if (!gseAddress) {
275
- throw new Error('GSE contract not deployed');
276
- }
271
+ const gseAddress = deployL1ContractsValues.l1ContractAddresses.gseAddress!;
272
+ if (!gseAddress) {
273
+ throw new Error('GSE contract not deployed');
274
+ }
277
275
 
278
- const gseContract = new GSEContract(deployL1ContractsValues.l1Client, gseAddress.toString());
276
+ const gseContract = new GSEContract(deployL1ContractsValues.l1Client, gseAddress.toString());
279
277
 
280
- const makeValidatorTuples = async (validator: Operator) => {
281
- const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
282
- return {
283
- attester: validator.attester.toString() as `0x${string}`,
284
- withdrawer: validator.withdrawer.toString() as `0x${string}`,
285
- ...registrationTuple,
286
- };
278
+ const makeValidatorTuples = async (validator: Operator) => {
279
+ const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
280
+ return {
281
+ attester: validator.attester.toString() as `0x${string}`,
282
+ withdrawer: validator.withdrawer.toString() as `0x${string}`,
283
+ ...registrationTuple,
287
284
  };
288
- const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
285
+ };
286
+ const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
289
287
 
290
- await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
291
- hash: await multiAdder.write.addValidators([validatorTuples]),
292
- });
288
+ await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
289
+ hash: await multiAdder.write.addValidators([validatorTuples]),
290
+ });
293
291
 
294
- await cheatCodes.rollup.advanceToEpoch(
295
- (await cheatCodes.rollup.getEpoch()) + (await rollup.read.getLagInEpochs()) + 1n,
296
- {
297
- updateDateProvider: dateProvider,
298
- },
299
- );
292
+ await cheatCodes.rollup.advanceToEpoch(
293
+ (await cheatCodes.rollup.getEpoch()) + (await rollup.read.getLagInEpochs()) + 1n,
294
+ );
300
295
 
301
- // Send and await a tx to make sure we mine a block for the warp to correctly progress.
302
- await this._sendDummyTx(deployL1ContractsValues.l1Client);
303
- },
304
- );
296
+ // Send and await a tx to make sure we mine a block for the warp to correctly progress.
297
+ await this._sendDummyTx(deployL1ContractsValues.l1Client);
298
+ });
305
299
  }
306
300
 
307
301
  async setupAccount() {
@@ -14,7 +14,6 @@ import type { RollupCheatCodes } from '@aztec/aztec/testing';
14
14
  import type { EmpireSlashingProposerContract, RollupContract, TallySlashingProposerContract } from '@aztec/ethereum';
15
15
  import { timesAsync, unique } from '@aztec/foundation/collection';
16
16
  import { pluralize } from '@aztec/foundation/string';
17
- import type { TestDateProvider } from '@aztec/foundation/timer';
18
17
  import type { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
19
18
  import { TestContract, TestContractArtifact } from '@aztec/noir-test-contracts.js/Test';
20
19
  import { PXEService, createPXEService, getPXEServiceConfig as getRpcConfig } from '@aztec/pxe/server';
@@ -180,7 +179,7 @@ export async function awaitOffenseDetected({
180
179
  );
181
180
  logger.info(
182
181
  `Hit ${offenses.length} offenses on rounds ${unique(offenses.map(o => getRoundForOffense(o, { slashingRoundSize, epochDuration })))}`,
183
- offenses,
182
+ { offenses },
184
183
  );
185
184
  return offenses;
186
185
  }
@@ -197,8 +196,9 @@ export async function awaitCommitteeKicked({
197
196
  slashingProposer,
198
197
  slashingRoundSize,
199
198
  aztecSlotDuration,
199
+ aztecEpochDuration,
200
200
  logger,
201
- dateProvider,
201
+ offenseEpoch,
202
202
  }: {
203
203
  rollup: RollupContract;
204
204
  cheatCodes: RollupCheatCodes;
@@ -207,21 +207,22 @@ export async function awaitCommitteeKicked({
207
207
  slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
208
208
  slashingRoundSize: number;
209
209
  aztecSlotDuration: number;
210
- dateProvider: TestDateProvider;
210
+ aztecEpochDuration: number;
211
211
  logger: Logger;
212
+ offenseEpoch: number;
212
213
  }) {
213
214
  if (!slashingProposer) {
214
215
  throw new Error('No slashing proposer configured. Cannot test slashing.');
215
216
  }
216
217
 
217
- logger.info(`Advancing epochs so we start slashing`);
218
218
  await cheatCodes.debugRollup();
219
- await cheatCodes.advanceToEpoch((await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n, {
220
- updateDateProvider: dateProvider,
221
- });
222
219
 
223
- // Await for the slash payload to be created if empire (no payload is created on tally until execution time)
224
220
  if (slashingProposer.type === 'empire') {
221
+ // Await for the slash payload to be created if empire (no payload is created on tally until execution time)
222
+ const targetEpoch = (await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n;
223
+ logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
224
+ await cheatCodes.advanceToEpoch(targetEpoch);
225
+
225
226
  const slashPayloadEvents = await retryUntil(
226
227
  async () => {
227
228
  const events = await slashFactory.getSlashPayloadCreatedEvents();
@@ -236,6 +237,15 @@ export async function awaitCommitteeKicked({
236
237
  expect(unique(slashPayloadEvents[0].slashes.map(slash => slash.validator.toString()))).toHaveLength(
237
238
  committee.length,
238
239
  );
240
+ } else {
241
+ // Use the slash offset to ensure we are in the right epoch for tally
242
+ const slashOffsetInRounds = await slashingProposer.getSlashOffsetInRounds();
243
+ const slashingRoundSizeInEpochs = slashingRoundSize / aztecEpochDuration;
244
+ const slashingOffsetInEpochs = Number(slashOffsetInRounds) * slashingRoundSizeInEpochs;
245
+ const firstEpochInOffenseRound = offenseEpoch - (offenseEpoch % slashingRoundSizeInEpochs);
246
+ const targetEpoch = firstEpochInOffenseRound + slashingOffsetInEpochs;
247
+ logger.info(`Advancing to epoch ${targetEpoch} so we start slashing`);
248
+ await cheatCodes.advanceToEpoch(targetEpoch, { offset: -aztecSlotDuration / 2 });
239
249
  }
240
250
 
241
251
  const attestersPre = await rollup.getAttesters();
@@ -246,7 +256,7 @@ export async function awaitCommitteeKicked({
246
256
  expect(attesterInfo.status).toEqual(1); // Validating
247
257
  }
248
258
 
249
- const timeout = slashingRoundSize * 2 * aztecSlotDuration;
259
+ const timeout = slashingRoundSize * 2 * aztecSlotDuration + 30;
250
260
  logger.info(`Waiting for slash to be executed (timeout ${timeout}s)`);
251
261
  await awaitProposalExecution(slashingProposer, timeout, logger);
252
262
 
@@ -265,9 +275,7 @@ export async function awaitCommitteeKicked({
265
275
 
266
276
  logger.info(`Advancing to check current committee`);
267
277
  await cheatCodes.debugRollup();
268
- await cheatCodes.advanceToEpoch((await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n, {
269
- updateDateProvider: dateProvider,
270
- });
278
+ await cheatCodes.advanceToEpoch((await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n);
271
279
  await cheatCodes.debugRollup();
272
280
 
273
281
  const committeeNextEpoch = await rollup.getCurrentEpochCommittee();
@@ -204,7 +204,7 @@ class SnapshotManager implements ISnapshotManager {
204
204
  await restore(snapshotData, context);
205
205
 
206
206
  // Save the snapshot data.
207
- const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls);
207
+ const ethCheatCodes = new EthCheatCodesWithState(context.aztecNodeConfig.l1RpcUrls, context.dateProvider);
208
208
  const anvilStateFile = `${this.livePath}/anvil.dat`;
209
209
  await ethCheatCodes.dumpChainState(anvilStateFile);
210
210
  writeFileSync(`${this.livePath}/${name}.json`, JSON.stringify(snapshotData || {}, resolver));
@@ -351,7 +351,9 @@ async function setupFromFresh(
351
351
  const res = await startAnvil({ l1BlockTime: opts.ethereumSlotDuration });
352
352
  const anvil = res.anvil;
353
353
  aztecNodeConfig.l1RpcUrls = [res.rpcUrl];
354
- const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls);
354
+
355
+ const dateProvider = new TestDateProvider();
356
+ const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
355
357
 
356
358
  // Deploy our L1 contracts.
357
359
  logger.verbose('Deploying L1 contracts...');
@@ -380,10 +382,8 @@ async function setupFromFresh(
380
382
  aztecNodeConfig.rollupVersion = deployL1ContractsValues.rollupVersion;
381
383
  aztecNodeConfig.l1PublishRetryIntervalMS = 100;
382
384
 
383
- const dateProvider = new TestDateProvider();
384
-
385
385
  const watcher = new AnvilTestWatcher(
386
- new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls),
386
+ new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider),
387
387
  deployL1ContractsValues.l1ContractAddresses.rollupAddress,
388
388
  deployL1ContractsValues.l1Client,
389
389
  dateProvider,
@@ -448,7 +448,7 @@ async function setupFromFresh(
448
448
  pxeConfig.proverEnabled = !!opts.realProofs;
449
449
  const pxe = await createPXEService(aztecNode, pxeConfig);
450
450
  const wallet = new TestWallet(pxe, aztecNode);
451
- const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
451
+ const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode, dateProvider);
452
452
 
453
453
  if (statePath) {
454
454
  writeFileSync(`${statePath}/aztec_node_config.json`, JSON.stringify(aztecNodeConfig, resolver));
@@ -504,7 +504,9 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
504
504
  aztecNodeConfig.l1RpcUrls = [rpcUrl];
505
505
  // Load anvil state.
506
506
  const anvilStateFile = `${statePath}/anvil.dat`;
507
- const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls);
507
+
508
+ const dateProvider = new TestDateProvider();
509
+ const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls, dateProvider);
508
510
  await ethCheatCodes.loadChainState(anvilStateFile);
509
511
 
510
512
  // TODO: Encapsulate this in a NativeAcvm impl.
@@ -523,9 +525,8 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
523
525
  logger.verbose('Creating ETH clients...');
524
526
  const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, mnemonicToAccount(MNEMONIC));
525
527
 
526
- const dateProvider = new TestDateProvider();
527
528
  const watcher = new AnvilTestWatcher(
528
- new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls),
529
+ ethCheatCodes,
529
530
  aztecNodeConfig.l1Contracts.rollupAddress,
530
531
  l1Client,
531
532
  dateProvider,
@@ -576,7 +577,7 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
576
577
  pxeConfig.dataDirectory = statePath;
577
578
  const pxe = await createPXEService(aztecNode, pxeConfig);
578
579
  const wallet = new TestWallet(pxe, aztecNode);
579
- const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode);
580
+ const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, wallet, aztecNode, dateProvider);
580
581
 
581
582
  return {
582
583
  aztecNodeConfig,
@@ -231,9 +231,9 @@ async function setupWithRemoteEnvironment(
231
231
  l1Client,
232
232
  rollupVersion,
233
233
  };
234
- const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls);
234
+ const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls, new DateProvider());
235
235
  const wallet = new TestWallet(pxeClient, aztecNode);
236
- const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode);
236
+ const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode, new DateProvider());
237
237
  const teardown = () => Promise.resolve();
238
238
 
239
239
  logger.verbose('Populating wallet from already registered accounts...');
@@ -426,7 +426,8 @@ export async function setup(
426
426
  setupMetricsLogger(filename);
427
427
  }
428
428
 
429
- const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls);
429
+ const dateProvider = new TestDateProvider();
430
+ const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
430
431
 
431
432
  if (opts.stateLoad) {
432
433
  await ethCheatCodes.loadChainState(opts.stateLoad);
@@ -527,6 +528,7 @@ export async function setup(
527
528
  if (enableAutomine) {
528
529
  await ethCheatCodes.setAutomine(false);
529
530
  await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
531
+ dateProvider.setTime((await ethCheatCodes.timestamp()) * 1000);
530
532
  }
531
533
 
532
534
  if (opts.l2StartTime) {
@@ -535,11 +537,8 @@ export async function setup(
535
537
  await ethCheatCodes.warp(opts.l2StartTime, { resetBlockInterval: true });
536
538
  }
537
539
 
538
- const dateProvider = new TestDateProvider();
539
- dateProvider.setTime((await ethCheatCodes.timestamp()) * 1000);
540
-
541
540
  const watcher = new AnvilTestWatcher(
542
- new EthCheatCodesWithState(config.l1RpcUrls),
541
+ new EthCheatCodesWithState(config.l1RpcUrls, dateProvider),
543
542
  deployL1ContractsValues.l1ContractAddresses.rollupAddress,
544
543
  deployL1ContractsValues.l1Client,
545
544
  dateProvider,
@@ -650,16 +649,14 @@ export async function setup(
650
649
  logger.verbose('Creating a pxe...');
651
650
  const { wallet, teardown: pxeTeardown } = await setupPXEServiceAndGetWallet(aztecNode!, pxeOpts, logger);
652
651
 
653
- const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode);
652
+ const cheatCodes = await CheatCodes.create(config.l1RpcUrls, wallet, aztecNode, dateProvider);
654
653
 
655
654
  if (
656
655
  (opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0) ||
657
656
  (opts.initialValidators && opts.initialValidators.length > 0)
658
657
  ) {
659
658
  // We need to advance such that the committee is set up.
660
- await cheatCodes.rollup.advanceToEpoch((await cheatCodes.rollup.getEpoch()) + BigInt(config.lagInEpochs + 1), {
661
- updateDateProvider: dateProvider,
662
- });
659
+ await cheatCodes.rollup.advanceToEpoch((await cheatCodes.rollup.getEpoch()) + BigInt(config.lagInEpochs + 1));
663
660
  await cheatCodes.rollup.setupEpoch();
664
661
  await cheatCodes.rollup.debugRollup();
665
662
  }
@@ -780,20 +777,6 @@ export async function ensureAccountContractsPublished(wallet: Wallet, accountsTo
780
777
  }
781
778
  // docs:end:public_deploy_accounts
782
779
 
783
- /**
784
- * Sets the timestamp of the next block.
785
- * @param rpcUrl - rpc url of the blockchain instance to connect to
786
- * @param timestamp - the timestamp for the next block
787
- */
788
- export async function setNextBlockTimestamp(rpcUrl: string, timestamp: number) {
789
- const params = `[${timestamp}]`;
790
- await fetch(rpcUrl, {
791
- body: `{"jsonrpc":"2.0", "method": "evm_setNextBlockTimestamp", "params": ${params}, "id": 1}`,
792
- method: 'POST',
793
- headers: { 'Content-Type': 'application/json' },
794
- });
795
- }
796
-
797
780
  /** Returns the job name for the current test. */
798
781
  function getJobName() {
799
782
  return process.env.JOB_NAME ?? expect.getState().currentTestName?.split(' ')[0].replaceAll('/', '_') ?? 'unknown';
@@ -88,10 +88,11 @@ export async function deploySponsoredTestAccounts(
88
88
 
89
89
  await registerSponsoredFPC(wallet);
90
90
 
91
+ const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
92
+ await recipientAccount.deploy({ fee: { paymentMethod } }).wait({ timeout: 2400 });
91
93
  await Promise.all(
92
94
  fundedAccounts.map(async a => {
93
- const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
94
- await recipientAccount.deploy({ fee: { paymentMethod } }).wait({ timeout: 2400 }); // increase timeout on purpose in order to account for two empty epochs
95
+ await a.deploy({ fee: { paymentMethod } }).wait({ timeout: 2400 }); // increase timeout on purpose in order to account for two empty epochs
95
96
  logger.info(`Account deployed at ${a.getAddress()}`);
96
97
  }),
97
98
  );