feat: backward and forward LET testing + runbook + tool #1502
Merged
arnaubennassar merged 39 commits intodevelopfrom Mar 11, 2026
Merged
feat: backward and forward LET testing + runbook + tool #1502arnaubennassar merged 39 commits intodevelopfrom
arnaubennassar merged 39 commits intodevelopfrom
Conversation
- Add nolint:dogsled for triple blank identifier in ComputeBackwardLETParams test - Add nolint:dupl for structurally similar test functions in rpcclient and helpers_test - Fix gci import ordering (stdlib → external/internal sorted) - Extract repeated address literals into constants to fix goconst - Add nolint:lll for long interface method signatures in run.go Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
joanestebanr
reviewed
Mar 6, 2026
joanestebanr
reviewed
Mar 9, 2026
joanestebanr
reviewed
Mar 9, 2026
joanestebanr
reviewed
Mar 9, 2026
| fromAddrPtr = archivedBridge.FromAddress | ||
| } else if len(archivedBridges) > 1 { | ||
| p.log.Warnf("multiple archived bridges found that match forward LET leaf %s;"+ | ||
| case 0: |
Collaborator
There was a problem hiding this comment.
We need to evaluate what happens with backfilling process in that case that txnSender and fromAddr are not set
joanestebanr
reviewed
Mar 9, 2026
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Collaborator
joanestebanr
left a comment
There was a problem hiding this comment.
- Review SonarCloud issue
- Update PR description: the description is pointing to the previous implementation
…rocess The container was hardcoded to run as root (user: "0:0"), causing aggsender.sqlite to be created with root ownership. The test process (CI runner user) could not write to it, producing "attempt to write a readonly database" in send-cert tool and failing all BackwardForwardLET tests. newDockerComposeCmd already injects UID/GID env vars; use them in the compose file so the container runs as the same user as the test process. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
joanestebanr
approved these changes
Mar 11, 2026
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.



🔄 Changes Summary
tools/backward_forward_let): CLI tool for diagnosis and recovery of rollup state after Agglayer and/or L1 become inconsistent with L2 state. Comes with full runbook documentation and E2E testsbridgesync/processor.goBackwardLET/ForwardLET bugs that caused the L2BridgeSyncer to halt or produce duplicate bridges during recoveryGetLastLocalExitRoot → GetInitialLocalExitRootbridgesync/processor.gousesGetInitialLocalExitRootinsted ofEmptyLERto avoid bugs for networks that have a non default valueaggsender_getCertificateBridgeExits RPCon the aggsender JSON-RPC server, with matching client method: returns bridge exits for a given certificate heightNone
📋 Config Updates
None
✅ Testing
test/e2e/backwardforwardlet_test.gofully test E2E the new feature🐞 Issues