Skip to content

fix: backport timestamp and anvil fixes#22110

Merged
spalladino merged 11 commits intobackport-to-v4-next-stagingfrom
palla/backports
Mar 30, 2026
Merged

fix: backport timestamp and anvil fixes#22110
spalladino merged 11 commits intobackport-to-v4-next-stagingfrom
palla/backports

Conversation

@spalladino
Copy link
Copy Markdown
Contributor

Backport PRs to backport-to-v4-next-staging

Cherry-picked the following PRs (in order) on top of the branch, committing each with conflicts unresolved:

  1. fix: sync dateProvider from anvil stdout on every mined block #21829 - fix: sync dateProvider from anvil stdout on every mined block
  2. fix(sequencer): remove l1 block timestamp check #21853 - fix(sequencer): remove l1 block timestamp check
  3. fix(e2e): set anvilSlotsInAnEpoch in slashing tests #21869 - fix(e2e): set anvilSlotsInAnEpoch in slashing tests
  4. fix(sequencer): use last L1 slot of L2 slot as eth_simulateV1 timestamp #22023 - fix(sequencer): use last L1 slot of L2 slot as eth_simulateV1 timestamp

Conflict resolution

Added a single commit resolving all cherry-pick conflicts:

  • yarn-project/ethereum/src/test/start_anvil.ts: Took the full rewrite from PR fix: sync dateProvider from anvil stdout on every mined block #21829, replacing the @viem/anvil-based implementation with a direct child_process.spawn approach. Updated start_anvil.test.ts to import the new local Anvil type instead of @viem/anvil.
  • yarn-project/end-to-end/src/fixtures/setup.ts: Added slotsInAnEpoch and dateProvider options to the startAnvil call.
  • yarn-project/end-to-end/src/e2e_sequencer/slasher_config.test.ts: Added anvilSlotsInAnEpoch: 4 option to the setup call.
  • yarn-project/sequencer-client/src/sequencer/checkpoint_voter.ha.integration.test.ts: Added epochCache.getSlotNow and epochCache.getL1Constants mock return values.
  • yarn-project/sequencer-client/src/publisher/sequencer-publisher.ts:

PhilWindle and others added 5 commits March 27, 2026 10:51
… eth_simulateV1 timestamp (with conflicts)
Resolves conflicts from cherry-picking PRs #21829, #21853, #21869, #22023.

Key resolutions:
- start_anvil.ts: take full rewrite from PR #21829 (spawn-based instead of @viem/anvil)
- sequencer-publisher.ts: use getNextL1SlotTimestamp with pipelining (PR #21853),
  getSimulationTimestamp for simulation timestamps (PR #22023),
  add aztecSlotDuration property
- setup.ts: add slotsInAnEpoch and dateProvider options
- slasher_config.test.ts: add anvilSlotsInAnEpoch option
- checkpoint_voter test: add epochCache mock methods
- Drop backupFailedTx calls (infrastructure not on this branch)
@spalladino spalladino added ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure ci-no-squash and removed ci-no-squash labels Mar 27, 2026
@spalladino spalladino force-pushed the palla/backports branch 2 times, most recently from b5b52f4 to 5c1e180 Compare March 27, 2026 22:32
- Add aztecSlotDuration to SequencerPublisher constructor call sites
- Replace isProposerPipeliningEnabled (not on this branch) with false default
- Remove getSlotNow mock (not on this branch's EpochCache)
- Fix eth.timestamp() -> eth.lastBlockTimestamp() in e2e test
- Revert update to noir-repo submodule
- Delete claude settings.local.json
spalladino and others added 3 commits March 27, 2026 20:21
Tests were failing with 'Cannot convert undefined to a BigInt' because
mock configs didn't include aztecSlotDuration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Backport deflaking fixes from next: send deploy tx before call tx with
a 1s propagation delay instead of sending both simultaneously, and add
retryUntil poll in assertMultipleBlocksPerSlot to handle archiver sync
race. Originally fixed in #21003 and #21026.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@AztecBot
Copy link
Copy Markdown
Collaborator

Flakey Tests

🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry.

\033FLAKED\033 (8;;http://ci.aztec-labs.com/e29a7b7df160906c�e29a7b7df160906c8;;�):  yarn-project/end-to-end/scripts/run_test.sh simple src/e2e_epochs/epochs_l1_reorgs.parallel.test.ts "updates L1 to L2 messages changed due to an L1 reorg" (66s) (code: 0) group:e2e-p2p-epoch-flakes

@spalladino spalladino enabled auto-merge March 30, 2026 14:27
const ignoredErrors = ['SlotAlreadyInChain', 'InvalidProposer', 'InvalidArchive'];

const nextL1SlotTs = await this.getNextL1SlotTimestampWithL1Floor();
const pipelined = opts.pipelined ?? false;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks safe but apears to be a pipelining change. Is this expected?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, let me look into it

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It wasn't expected, but doesn't hurt either, it'll always be falsey here since callers don't set it.

@spalladino spalladino merged commit 5528388 into backport-to-v4-next-staging Mar 30, 2026
9 checks passed
@spalladino spalladino deleted the palla/backports branch March 30, 2026 14:32
AztecBot added a commit that referenced this pull request Mar 31, 2026
BEGIN_COMMIT_OVERRIDE
chore: backport - drop dead legacy oracle mappings (#22035)
fix: backport timestamp and anvil fixes (#22110)
fix(archiver): swallow error when rollup contract not yet finalized on
L1 (#22156)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants