fix(sequencer): backport remove l1 block timestamp check (PR #21853) to v4-next#21860
Closed
AztecBot wants to merge 8 commits into
Closed
fix(sequencer): backport remove l1 block timestamp check (PR #21853) to v4-next#21860AztecBot wants to merge 8 commits into
AztecBot wants to merge 8 commits into
Conversation
## Summary Merges v4 into v4-next, resolving the conflict in `getBlockHashMembershipWitness` in `server.ts`. The conflict was between v4-next's simple passthrough to `getWorldState(referenceBlock)` and v4's off-by-one bugfix that uses `getWorldState(BlockNumber(referenceBlockNumber - 1))`. The v4 fix is correct: the Noir circuit checks the archive membership proof against `anchor_block_header.last_archive.root`, which is the archive tree root BEFORE the anchor block was added, so we need the world state at block N-1. Resolution: took the v4 bugfix, adapted to use v4-next's `getWorldState` (protected) instead of v4's `#getWorldState` (private). Replaces #21493 which had stale conflict markers. ClaudeBox log: https://claudebox.work/s/d4b96d5b355d7fba?run=1 Co-authored-by: Jan Beneš <janbenes1234@gmail.com> Co-authored-by: PhilWindle <60546371+PhilWindle@users.noreply.github.com> Co-authored-by: Phil Windle <philip.windle@gmail.com> Co-authored-by: Santiago Palladino <santiago@aztecprotocol.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: ludamad <adam.domurad@gmail.com> Co-authored-by: Alex Gherghisan <alexghr@users.noreply.github.com>
## Summary Merges latest `v4` (`bb3ea6f1`) into `v4-next` with a proper **merge commit** to preserve the merge topology. This fixes the issue where PR #21702 was squash-merged, causing git to lose track of which v4 commits were already in v4-next. ## Commits 1. **Merge commit with conflict markers** — raw `git merge origin/v4` showing the conflicts 2. **Fix server.ts** — resolve `getWorldState` vs `#getWorldState` conflict (use protected version), remove duplicate `resolveBlockNumber` method 3. **Fix deploy_network.sh** — resolve pre-existing conflict from old merge (keep default multiplier of 2) ## Important **This PR must be merged with a merge commit (not squashed)** to preserve the v4→v4-next merge topology. Add the `ci-no-squash` label. Without the merge commit, future auto-merges will re-encounter the same conflicts. ClaudeBox log: https://claudebox.work/s/3402fef75fe1ebde?run=4 --------- Co-authored-by: Jan Beneš <janbenes1234@gmail.com> Co-authored-by: PhilWindle <60546371+PhilWindle@users.noreply.github.com> Co-authored-by: Phil Windle <philip.windle@gmail.com> Co-authored-by: Santiago Palladino <santiago@aztecprotocol.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: ludamad <adam.domurad@gmail.com> Co-authored-by: Alex Gherghisan <alexghr@users.noreply.github.com> Co-authored-by: spypsy <spypsy@users.noreply.github.com>
## Summary - Bump `.release-please-manifest.json` from `4.1.0` to `4.2.0` in preparation for the next release cycle.
BEGIN_COMMIT_OVERRIDE feat: entrypoint replay protection (#21649) feat: guard BoundedVec oracle returns against dirty trailing storage (#21589) fix: add bounds when allocating arrays in deserialization (#21622) feat: implement manual Packable for structs with sub-Field members (#21576) fix(aztec-node): throw on existing nullifier in getLowNullifierMembershipWitness (#21472) fix: use trait dispatch for array Packable::unpack in card_game_contract (#21683) fix(p2p): penalize peers for errors during response reading (#21680) fix: update nullifier non-inclusion test expectations after early oracle throw (backport #21600) (#21615) fix(aztec-nr): fix OOB index with nonzero offset (#21613) fix(builder): persist contractsDB across blocks within a checkpoint (#21520) fix(stdlib): accept null return_type for void Noir functions (#21647) feat: gas estimations on send (#21646) fix(validator): process block proposals from own validator keys in HA setups (backport #21603) (#21659) fix(p2p): penalize peer on tx rejected by pool (#21677) fix(sequencer): fix checkpoint budget redistribution for multi-block slots (#21692) feat: sync cache invalidation oracle (backport #21459) (#21730) feat!: make AES128 decrypt oracle return Option (backport #21696) (#21735) feat!: include init_hash in private initialization nullifier (backport #21427) (#21736) fix(sequencer): extract gas and blob configs from valid requests only (A-677) (#21747) chore: backport #21744 — replace dead BOOTSTRAP_TO env var with bootstrap.sh build arg (#21748) refactor: revert remove assert_bounded_vec_trimmed (#21758) END_COMMIT_OVERRIDE
Cherry-pick of 4c4e5b3 with conflicts.
Keep v4-next method name canProposeAtNextEthBlock, drop pipelining code that doesn't exist on v4-next, take PR's getNextL1SlotTimestamp approach.
- Store dateProvider as class property for wall-clock timestamp access - Implement getNextL1SlotTimestamp() using wall-clock time instead of the free function that doesn't exist on v4-next - Also apply same fix to validateCheckpointForSubmission
Collaborator
Author
|
Automatically closing this stale claudebox draft PR (no updates for 5+ days). Re-open if still needed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Backport of #21853 to v4-next.
The original PR removed L1 block timestamp checks that were needed due to clock drift between sequencer and anvil, replaced by wall-clock time after PR #21829.
Conflicts & Resolution
The cherry-pick had conflicts because v4-next uses different APIs:
canProposeAtNextEthBlockinstead ofcanProposeAt(kept v4-next name)getNextL1SlotTimestampfree function doesn't exist on v4-next (implemented inline usingdateProvider.nowInSeconds() + ethereumSlotDuration)Commits
dateProvideras class property, implementedgetNextL1SlotTimestamp()for v4-next, also applied same fix tovalidateCheckpointForSubmissionClaudeBox log: https://claudebox.work/s/57581eecbdbeb055?run=1