@aztec/end-to-end 1.0.0-nightly.20250704 → 1.0.0-nightly.20250705

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.
@@ -5,15 +5,23 @@ import { RollupContract } from '@aztec/ethereum/contracts';
5
5
  import { ChainMonitor, type Delayer } from '@aztec/ethereum/test';
6
6
  import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
7
7
  import { ProverNode } from '@aztec/prover-node';
8
- import type { L2BlockNumber } from '@aztec/stdlib/block';
8
+ import { type SequencerClient, type SequencerEvents } from '@aztec/sequencer-client';
9
+ import type { EthAddress, L2BlockNumber } from '@aztec/stdlib/block';
9
10
  import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
10
11
  import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
11
12
  export declare const WORLD_STATE_BLOCK_HISTORY = 2;
12
13
  export declare const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
13
14
  export declare const ARCHIVER_POLL_INTERVAL = 50;
14
- export type EpochsTestOpts = Partial<Pick<SetupOptions, 'startProverNode' | 'aztecProofSubmissionEpochs' | 'aztecEpochDuration' | 'proverTestDelayMs' | 'l1PublishRetryIntervalMS' | 'txPropagationMaxQueryAttempts' | 'proverNodeConfig' | 'ethereumSlotDuration' | 'aztecSlotDuration' | 'initialValidators' | 'mockGossipSubNetwork' | 'disableAnvilTestWatcher' | 'enforceTimeTable'>> & {
15
+ export type EpochsTestOpts = Partial<SetupOptions> & {
15
16
  numberOfAccounts?: number;
16
17
  };
18
+ export type TrackedSequencerEvent = {
19
+ [K in keyof SequencerEvents]: Parameters<SequencerEvents[K]>[0] & {
20
+ type: K;
21
+ sequencerIndex: number;
22
+ validator: EthAddress;
23
+ };
24
+ }[keyof SequencerEvents];
17
25
  /**
18
26
  * Tests building of epochs using fast block times and short epochs.
19
27
  * Spawns an aztec node and a prover node with fake proofs.
@@ -45,6 +53,7 @@ export declare class EpochsTestContext {
45
53
  createProverNode(): Promise<ProverNode>;
46
54
  createNonValidatorNode(opts?: Partial<AztecNodeConfig>): Promise<AztecNodeService>;
47
55
  createValidatorNode(privateKeys: `0x${string}`[], opts?: Partial<AztecNodeConfig> & {
56
+ txDelayerMaxInclusionTimeIntoSlot?: number;
48
57
  dontStartSequencer?: boolean;
49
58
  }): Promise<AztecNodeService>;
50
59
  private createNode;
@@ -68,5 +77,9 @@ export declare class EpochsTestContext {
68
77
  }>;
69
78
  /** Verifies whether the given block number is found on the aztec node. */
70
79
  verifyHistoricBlock(blockNumber: L2BlockNumber, expectedSuccess: boolean): Promise<void>;
80
+ watchSequencerEvents(sequencers: SequencerClient[], getMetadata?: (i: number) => Record<string, any>): {
81
+ failEvents: TrackedSequencerEvent[];
82
+ stateChanges: TrackedSequencerEvent[];
83
+ };
71
84
  }
72
85
  //# sourceMappingURL=epochs_test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,13 @@ import { AztecNodeService } from '@aztec/aztec-node';
2
2
  import { Fr, MerkleTreeId, getContractInstanceFromDeployParams, getTimestampRangeForEpoch, retryUntil, sleep } from '@aztec/aztec.js';
3
3
  import { createExtendedL1Client } from '@aztec/ethereum';
4
4
  import { RollupContract } from '@aztec/ethereum/contracts';
5
- import { ChainMonitor, waitUntilL1Timestamp, withDelayer } from '@aztec/ethereum/test';
5
+ import { ChainMonitor, DelayedTxUtils, waitUntilL1Timestamp, withDelayer } from '@aztec/ethereum/test';
6
6
  import { SecretValue } from '@aztec/foundation/config';
7
7
  import { randomBytes } from '@aztec/foundation/crypto';
8
8
  import { withLogNameSuffix } from '@aztec/foundation/log';
9
9
  import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
10
10
  import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
11
+ import { SequencerState } from '@aztec/sequencer-client';
11
12
  import { getProofSubmissionDeadlineTimestamp } from '@aztec/stdlib/epoch-helpers';
12
13
  import { tryStop } from '@aztec/stdlib/interfaces/server';
13
14
  import { join } from 'path';
@@ -172,6 +173,18 @@ export const ARCHIVER_POLL_INTERVAL = 50;
172
173
  prefilledPublicData: this.context.prefilledPublicData,
173
174
  ...opts
174
175
  }));
176
+ // REFACTOR: We're getting too much into the internals of the sequencer here.
177
+ // We should have a single method for constructing an aztec node that returns a TestAztecNodeService
178
+ // which directly exposes the delayer and sets any test config.
179
+ if (opts.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
180
+ this.logger.info(`Setting tx delayer max inclusion time into slot to ${opts.txDelayerMaxInclusionTimeIntoSlot} seconds`);
181
+ const sequencer = node.getSequencer();
182
+ const publisher = sequencer.sequencer.publisher;
183
+ const dateProvider = this.context.dateProvider;
184
+ const delayed = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, dateProvider, this.L1_BLOCK_TIME_IN_S);
185
+ delayed.delayer.setMaxInclusionTimeIntoSlot(opts.txDelayerMaxInclusionTimeIntoSlot);
186
+ publisher.l1TxUtils = delayed;
187
+ }
175
188
  this.nodes.push(node);
176
189
  return node;
177
190
  }
@@ -242,7 +255,7 @@ export const ARCHIVER_POLL_INTERVAL = 50;
242
255
  /** Creates an L1 client using a fresh account with funds from anvil, with a tx delayer already set up. */ async createL1Client() {
243
256
  const { client, delayer } = withDelayer(createExtendedL1Client([
244
257
  ...this.l1Client.chain.rpcUrls.default.http
245
- ], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain), {
258
+ ], privateKeyToAccount(this.getNextPrivateKey()), this.l1Client.chain), this.context.dateProvider, {
246
259
  ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S
247
260
  });
248
261
  expect(await client.getBalance({
@@ -262,4 +275,47 @@ export const ARCHIVER_POLL_INTERVAL = 50;
262
275
  ]).then((_)=>true).catch((_)=>false);
263
276
  expect(result).toBe(expectedSuccess);
264
277
  }
278
+ watchSequencerEvents(sequencers, getMetadata = ()=>({})) {
279
+ const stateChanges = [];
280
+ const failEvents = [];
281
+ // Note we do not include the 'tx-count-check-failed' event here, since it is fine if we dont build
282
+ // due to lack of txs available.
283
+ const failEventsKeys = [
284
+ 'block-build-failed',
285
+ 'block-publish-failed',
286
+ 'proposer-rollup-check-failed'
287
+ ];
288
+ const makeEvent = (i, eventName, args)=>({
289
+ ...args,
290
+ type: eventName,
291
+ sequencerIndex: i + 2,
292
+ ...getMetadata(i)
293
+ });
294
+ sequencers.forEach((sequencer, i)=>{
295
+ const sequencerIndex = i + 2;
296
+ sequencer.getSequencer().on('state-changed', (args)=>{
297
+ const noisyStates = [
298
+ SequencerState.IDLE,
299
+ SequencerState.PROPOSER_CHECK,
300
+ SequencerState.SYNCHRONIZING
301
+ ];
302
+ if (!noisyStates.includes(args.newState)) {
303
+ const evt = makeEvent(i, 'state-changed', args);
304
+ stateChanges.push(evt);
305
+ this.logger.verbose(`Sequencer ${sequencerIndex} transitioned from state ${args.oldState} to state ${args.newState}`, evt);
306
+ }
307
+ });
308
+ failEventsKeys.forEach((eventName)=>{
309
+ sequencer.getSequencer().on(eventName, (args)=>{
310
+ const evt = makeEvent(i, eventName, args);
311
+ failEvents.push(evt);
312
+ this.logger.error(`Failed event ${eventName} from sequencer ${sequencerIndex}`, evt);
313
+ });
314
+ });
315
+ });
316
+ return {
317
+ failEvents,
318
+ stateChanges
319
+ };
320
+ }
265
321
  }
@@ -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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"}
@@ -373,7 +373,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
373
373
  const sequencerClient = aztecNode.getSequencer();
374
374
  if (sequencerClient) {
375
375
  const publisher = sequencerClient.sequencer.publisher;
376
- publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, config.ethereumSlotDuration);
376
+ publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, dateProvider, config.ethereumSlotDuration);
377
377
  }
378
378
  let proverNode = undefined;
379
379
  if (opts.startProverNode) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "1.0.0-nightly.20250704",
3
+ "version": "1.0.0-nightly.20250705",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -25,40 +25,40 @@
25
25
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
26
26
  },
27
27
  "dependencies": {
28
- "@aztec/accounts": "1.0.0-nightly.20250704",
29
- "@aztec/archiver": "1.0.0-nightly.20250704",
30
- "@aztec/aztec": "1.0.0-nightly.20250704",
31
- "@aztec/aztec-node": "1.0.0-nightly.20250704",
32
- "@aztec/aztec.js": "1.0.0-nightly.20250704",
33
- "@aztec/bb-prover": "1.0.0-nightly.20250704",
34
- "@aztec/blob-lib": "1.0.0-nightly.20250704",
35
- "@aztec/blob-sink": "1.0.0-nightly.20250704",
36
- "@aztec/bot": "1.0.0-nightly.20250704",
37
- "@aztec/cli": "1.0.0-nightly.20250704",
38
- "@aztec/constants": "1.0.0-nightly.20250704",
39
- "@aztec/entrypoints": "1.0.0-nightly.20250704",
40
- "@aztec/epoch-cache": "1.0.0-nightly.20250704",
41
- "@aztec/ethereum": "1.0.0-nightly.20250704",
42
- "@aztec/foundation": "1.0.0-nightly.20250704",
43
- "@aztec/kv-store": "1.0.0-nightly.20250704",
44
- "@aztec/l1-artifacts": "1.0.0-nightly.20250704",
45
- "@aztec/merkle-tree": "1.0.0-nightly.20250704",
46
- "@aztec/noir-contracts.js": "1.0.0-nightly.20250704",
47
- "@aztec/noir-noirc_abi": "1.0.0-nightly.20250704",
48
- "@aztec/noir-protocol-circuits-types": "1.0.0-nightly.20250704",
49
- "@aztec/noir-test-contracts.js": "1.0.0-nightly.20250704",
50
- "@aztec/p2p": "1.0.0-nightly.20250704",
51
- "@aztec/protocol-contracts": "1.0.0-nightly.20250704",
52
- "@aztec/prover-client": "1.0.0-nightly.20250704",
53
- "@aztec/prover-node": "1.0.0-nightly.20250704",
54
- "@aztec/pxe": "1.0.0-nightly.20250704",
55
- "@aztec/sequencer-client": "1.0.0-nightly.20250704",
56
- "@aztec/simulator": "1.0.0-nightly.20250704",
57
- "@aztec/slasher": "1.0.0-nightly.20250704",
58
- "@aztec/stdlib": "1.0.0-nightly.20250704",
59
- "@aztec/telemetry-client": "1.0.0-nightly.20250704",
60
- "@aztec/validator-client": "1.0.0-nightly.20250704",
61
- "@aztec/world-state": "1.0.0-nightly.20250704",
28
+ "@aztec/accounts": "1.0.0-nightly.20250705",
29
+ "@aztec/archiver": "1.0.0-nightly.20250705",
30
+ "@aztec/aztec": "1.0.0-nightly.20250705",
31
+ "@aztec/aztec-node": "1.0.0-nightly.20250705",
32
+ "@aztec/aztec.js": "1.0.0-nightly.20250705",
33
+ "@aztec/bb-prover": "1.0.0-nightly.20250705",
34
+ "@aztec/blob-lib": "1.0.0-nightly.20250705",
35
+ "@aztec/blob-sink": "1.0.0-nightly.20250705",
36
+ "@aztec/bot": "1.0.0-nightly.20250705",
37
+ "@aztec/cli": "1.0.0-nightly.20250705",
38
+ "@aztec/constants": "1.0.0-nightly.20250705",
39
+ "@aztec/entrypoints": "1.0.0-nightly.20250705",
40
+ "@aztec/epoch-cache": "1.0.0-nightly.20250705",
41
+ "@aztec/ethereum": "1.0.0-nightly.20250705",
42
+ "@aztec/foundation": "1.0.0-nightly.20250705",
43
+ "@aztec/kv-store": "1.0.0-nightly.20250705",
44
+ "@aztec/l1-artifacts": "1.0.0-nightly.20250705",
45
+ "@aztec/merkle-tree": "1.0.0-nightly.20250705",
46
+ "@aztec/noir-contracts.js": "1.0.0-nightly.20250705",
47
+ "@aztec/noir-noirc_abi": "1.0.0-nightly.20250705",
48
+ "@aztec/noir-protocol-circuits-types": "1.0.0-nightly.20250705",
49
+ "@aztec/noir-test-contracts.js": "1.0.0-nightly.20250705",
50
+ "@aztec/p2p": "1.0.0-nightly.20250705",
51
+ "@aztec/protocol-contracts": "1.0.0-nightly.20250705",
52
+ "@aztec/prover-client": "1.0.0-nightly.20250705",
53
+ "@aztec/prover-node": "1.0.0-nightly.20250705",
54
+ "@aztec/pxe": "1.0.0-nightly.20250705",
55
+ "@aztec/sequencer-client": "1.0.0-nightly.20250705",
56
+ "@aztec/simulator": "1.0.0-nightly.20250705",
57
+ "@aztec/slasher": "1.0.0-nightly.20250705",
58
+ "@aztec/stdlib": "1.0.0-nightly.20250705",
59
+ "@aztec/telemetry-client": "1.0.0-nightly.20250705",
60
+ "@aztec/validator-client": "1.0.0-nightly.20250705",
61
+ "@aztec/world-state": "1.0.0-nightly.20250705",
62
62
  "@iarna/toml": "^2.2.5",
63
63
  "@jest/globals": "^30.0.0",
64
64
  "@noble/curves": "^1.0.0",
@@ -19,9 +19,14 @@ import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
19
19
  import { getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
20
20
  import { ProverNode, ProverNodePublisher } from '@aztec/prover-node';
21
21
  import type { TestProverNode } from '@aztec/prover-node/test';
22
- import type { SequencerPublisher } from '@aztec/sequencer-client';
22
+ import {
23
+ type SequencerClient,
24
+ type SequencerEvents,
25
+ type SequencerPublisher,
26
+ SequencerState,
27
+ } from '@aztec/sequencer-client';
23
28
  import type { TestSequencerClient } from '@aztec/sequencer-client/test';
24
- import type { L2BlockNumber } from '@aztec/stdlib/block';
29
+ import type { EthAddress, L2BlockNumber } from '@aztec/stdlib/block';
25
30
  import { type L1RollupConstants, getProofSubmissionDeadlineTimestamp } from '@aztec/stdlib/epoch-helpers';
26
31
  import { tryStop } from '@aztec/stdlib/interfaces/server';
27
32
 
@@ -41,24 +46,15 @@ export const WORLD_STATE_BLOCK_HISTORY = 2;
41
46
  export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
42
47
  export const ARCHIVER_POLL_INTERVAL = 50;
43
48
 
44
- export type EpochsTestOpts = Partial<
45
- Pick<
46
- SetupOptions,
47
- | 'startProverNode'
48
- | 'aztecProofSubmissionEpochs'
49
- | 'aztecEpochDuration'
50
- | 'proverTestDelayMs'
51
- | 'l1PublishRetryIntervalMS'
52
- | 'txPropagationMaxQueryAttempts'
53
- | 'proverNodeConfig'
54
- | 'ethereumSlotDuration'
55
- | 'aztecSlotDuration'
56
- | 'initialValidators'
57
- | 'mockGossipSubNetwork'
58
- | 'disableAnvilTestWatcher'
59
- | 'enforceTimeTable'
60
- >
61
- > & { numberOfAccounts?: number };
49
+ export type EpochsTestOpts = Partial<SetupOptions> & { numberOfAccounts?: number };
50
+
51
+ export type TrackedSequencerEvent = {
52
+ [K in keyof SequencerEvents]: Parameters<SequencerEvents[K]>[0] & {
53
+ type: K;
54
+ sequencerIndex: number;
55
+ validator: EthAddress;
56
+ };
57
+ }[keyof SequencerEvents];
62
58
 
63
59
  /**
64
60
  * Tests building of epochs using fast block times and short epochs.
@@ -205,13 +201,15 @@ export class EpochsTestContext {
205
201
 
206
202
  public createValidatorNode(
207
203
  privateKeys: `0x${string}`[],
208
- opts: Partial<AztecNodeConfig> & { dontStartSequencer?: boolean } = {},
204
+ opts: Partial<AztecNodeConfig> & { txDelayerMaxInclusionTimeIntoSlot?: number; dontStartSequencer?: boolean } = {},
209
205
  ) {
210
206
  this.logger.warn('Creating and syncing a validator node...');
211
207
  return this.createNode({ ...opts, disableValidator: false, validatorPrivateKeys: new SecretValue(privateKeys) });
212
208
  }
213
209
 
214
- private async createNode(opts: Partial<AztecNodeConfig> & { dontStartSequencer?: boolean } = {}) {
210
+ private async createNode(
211
+ opts: Partial<AztecNodeConfig> & { txDelayerMaxInclusionTimeIntoSlot?: number; dontStartSequencer?: boolean } = {},
212
+ ) {
215
213
  const suffix = (this.nodes.length + 1).toString();
216
214
  const { mockGossipSubNetwork } = this.context;
217
215
  const resolvedConfig = { ...this.context.config, ...opts };
@@ -238,6 +236,22 @@ export class EpochsTestContext {
238
236
  },
239
237
  ),
240
238
  );
239
+
240
+ // REFACTOR: We're getting too much into the internals of the sequencer here.
241
+ // We should have a single method for constructing an aztec node that returns a TestAztecNodeService
242
+ // which directly exposes the delayer and sets any test config.
243
+ if (opts.txDelayerMaxInclusionTimeIntoSlot !== undefined) {
244
+ this.logger.info(
245
+ `Setting tx delayer max inclusion time into slot to ${opts.txDelayerMaxInclusionTimeIntoSlot} seconds`,
246
+ );
247
+ const sequencer = node.getSequencer() as TestSequencerClient;
248
+ const publisher = sequencer.sequencer.publisher;
249
+ const dateProvider = this.context.dateProvider!;
250
+ const delayed = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, dateProvider, this.L1_BLOCK_TIME_IN_S);
251
+ delayed.delayer!.setMaxInclusionTimeIntoSlot(opts.txDelayerMaxInclusionTimeIntoSlot);
252
+ publisher.l1TxUtils = delayed;
253
+ }
254
+
241
255
  this.nodes.push(node);
242
256
  return node;
243
257
  }
@@ -329,6 +343,7 @@ export class EpochsTestContext {
329
343
  privateKeyToAccount(this.getNextPrivateKey()),
330
344
  this.l1Client.chain,
331
345
  ),
346
+ this.context.dateProvider!,
332
347
  { ethereumSlotDuration: this.L1_BLOCK_TIME_IN_S },
333
348
  );
334
349
  expect(await client.getBalance({ address: client.account.address })).toBeGreaterThan(0n);
@@ -346,4 +361,56 @@ export class EpochsTestContext {
346
361
  .catch(_ => false);
347
362
  expect(result).toBe(expectedSuccess);
348
363
  }
364
+
365
+ public watchSequencerEvents(
366
+ sequencers: SequencerClient[],
367
+ getMetadata: (i: number) => Record<string, any> = () => ({}),
368
+ ) {
369
+ const stateChanges: TrackedSequencerEvent[] = [];
370
+ const failEvents: TrackedSequencerEvent[] = [];
371
+
372
+ // Note we do not include the 'tx-count-check-failed' event here, since it is fine if we dont build
373
+ // due to lack of txs available.
374
+ const failEventsKeys: (keyof SequencerEvents)[] = [
375
+ 'block-build-failed',
376
+ 'block-publish-failed',
377
+ 'proposer-rollup-check-failed',
378
+ ];
379
+
380
+ const makeEvent = (
381
+ i: number,
382
+ eventName: keyof SequencerEvents,
383
+ args: Parameters<SequencerEvents[keyof SequencerEvents]>[0],
384
+ ) =>
385
+ ({
386
+ ...args,
387
+ type: eventName,
388
+ sequencerIndex: i + 2,
389
+ ...getMetadata(i),
390
+ }) as TrackedSequencerEvent;
391
+
392
+ sequencers.forEach((sequencer, i) => {
393
+ const sequencerIndex = i + 2;
394
+ sequencer.getSequencer().on('state-changed', (args: Parameters<SequencerEvents['state-changed']>[0]) => {
395
+ const noisyStates = [SequencerState.IDLE, SequencerState.PROPOSER_CHECK, SequencerState.SYNCHRONIZING];
396
+ if (!noisyStates.includes(args.newState)) {
397
+ const evt = makeEvent(i, 'state-changed', args);
398
+ stateChanges.push(evt);
399
+ this.logger.verbose(
400
+ `Sequencer ${sequencerIndex} transitioned from state ${args.oldState} to state ${args.newState}`,
401
+ evt,
402
+ );
403
+ }
404
+ });
405
+ failEventsKeys.forEach(eventName => {
406
+ sequencer.getSequencer().on(eventName, (args: Parameters<SequencerEvents[typeof eventName]>[0]) => {
407
+ const evt = makeEvent(i, eventName, args);
408
+ failEvents.push(evt);
409
+ this.logger.error(`Failed event ${eventName} from sequencer ${sequencerIndex}`, evt);
410
+ });
411
+ });
412
+ });
413
+
414
+ return { failEvents, stateChanges };
415
+ }
349
416
  }
@@ -593,7 +593,11 @@ export async function setup(
593
593
 
594
594
  if (sequencerClient) {
595
595
  const publisher = (sequencerClient as TestSequencerClient).sequencer.publisher;
596
- publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, config.ethereumSlotDuration);
596
+ publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(
597
+ publisher.l1TxUtils,
598
+ dateProvider,
599
+ config.ethereumSlotDuration,
600
+ );
597
601
  }
598
602
 
599
603
  let proverNode: ProverNode | undefined = undefined;