Merged
Conversation
…act architecture layouts
…l network integration
… interactions and configurations
…ashing and validation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
There was a problem hiding this comment.
Pull request overview
Adds a new differential testing harness intended to compare behavior between the currently deployed legacy Flyover (reference) and the new split-contract Flyover (candidate) on a fork, using adapters to normalize the APIs.
Changes:
- Introduce
DifferentialBaseharness to fork a configured network, resolve deployed reference addresses, and deploy a split candidate locally. - Add adapter layer (
IDifferentialAdapter,ReferenceAdapter,CandidateAdapter) to provide a unified interface for reference/candidate calls. - Add initial differential tests (plus TODO skeletons), and add a
deployForTestinghelper inDeployFlyoverto support test deployments.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| test/differential/base/DifferentialBase.sol | Fork/bootstrap harness and candidate deployment based on reference config |
| test/differential/adapters/IDifferentialAdapter.sol | Unified adapter interface for differential comparisons |
| test/differential/adapters/ReferenceAdapter.sol | Adapter over deployed legacy reference contract |
| test/differential/adapters/CandidateAdapter.sol | Adapter over newly deployed split candidate contracts |
| test/differential/DifferentialParity.diff.t.sol | Initial non-fuzz differential tests + skeletons |
| test/differential/DifferentialParity.fuzz.diff.t.sol | Fuzz test skeletons |
| script/deployment/DeployFlyover.s.sol | Adds deployForTesting helper for test deployments |
| script/HelperConfig.s.sol | Adds differential-network selection config resolver |
| example.env | Documents DIFF_NETWORK env var |
You can also share your feedback on Copilot code review. Take the survey.
Luisfc68
approved these changes
Mar 19, 2026
Collaborator
Luisfc68
left a comment
There was a problem hiding this comment.
approved but pls take a look to my only comment (also check copilot ones according to your criteria)
…hreshold parameters for V2
…shold, and add bridge() check in DifferentialBase
…d ReferenceAdapter
…lock timing parameters for mainnet and testnet
…e unit test descriptions
…Ls for RSK mainnet and testnet
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.
What
The idea is to compare the new version of the contract(s) with currently deployed version of the contract(s) to make sure they are behaving the same way for given scenarios as expected(unless if there is an intentional behavioral change of course).
To make the test suite as resilient to radical architectural changes as possible(as v2.5.0 is for example), an adapter was introduced to normalize the layouts between the current and new versions. The PR covers some simple test cases and also the skeleton of more test cases that could be covered as a suggestion for future development. The tests are network agnostic, as the later is handled via Helper config(in case if some of the networks have an external problem when trying to fork).
The task
https://rsklabs.atlassian.net/browse/FLY-2238?atlOrigin=eyJpIjoiMWRkZDE1NzgzMWY2NGQ1NGJkZDg4Nzg3Yjg5ZjAzYzYiLCJwIjoiaiJ9