[do not merge]: Test breaking interface change.#7642
Closed
larryob wants to merge 13 commits into
Closed
Conversation
Add a new CI workflow to detect interface (ABI) changes in Solidity contracts, similar to the existing bytecode checker. This helps catch unintended breaking changes to contract interfaces during PRs. - Add interface.sh script using `forge inspect <Contract> abi` - Add interface-analysis.yml workflow to compare interfaces between PR and base - Add `interface` npm script to package.json 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update the interface analysis workflow to only fail when functions are removed from contract interfaces (breaking changes). Function additions are now reported as non-breaking and don't cause failures. - Add comparison mode to interface.sh using jq to parse ABIs - Extract and compare function signatures between base and HEAD - Report additions as info, fail only on removals 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This is a breaking change that modifies the function signature from processor(bytes32) to processor(bytes32,bool) to verify that the interface checker correctly detects and fails on function removals. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
…rIsm - Migrate interface-analysis.yml from yarn to pnpm - Update checkout action to v6 - Fix TrustedRelayerIsm.sol to pass required second arg to processor() 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Migrate interface-analysis.yml from yarn to pnpm - Update checkout action to v6 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Include output types in function signature comparison so that changes to return types are detected as breaking changes. Format: functionName(inputs)->(outputs) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Now checks for breaking changes in: - Functions (with inputs and outputs) - Events - Errors - Constructor signature changes - Fallback/receive function removals 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests cover detection of all ABI breaking changes: - Function removals - Return type changes - Event removals - Error removals - Constructor changes - Receive function removals - Fallback function removals - No changes (should pass) - Additions only (should pass) Run with: pnpm -C solidity test:interface 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update contract extraction regex to also capture abstract contracts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Contributor
🐳 Monorepo Docker Image Built SuccessfullyImage Tags: |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7642 +/- ##
=========================================
+ Coverage 0 77.01% +77.01%
=========================================
Files 0 117 +117
Lines 0 2649 +2649
Branches 0 244 +244
=========================================
+ Hits 0 2040 +2040
- Misses 0 593 +593
- Partials 0 16 +16
🚀 New features to boost your workflow:
|
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.
N/A