feat(op-interop-filter): add sysgo integration and preset [3/4]#10
Open
opsuperchain wants to merge 2 commits intofeat/interop-filter-logicfrom
Open
feat(op-interop-filter): add sysgo integration and preset [3/4]#10opsuperchain wants to merge 2 commits intofeat/interop-filter-logicfrom
opsuperchain wants to merge 2 commits intofeat/interop-filter-logicfrom
Conversation
6f6b9ec to
60b0a5f
Compare
4863aa1 to
e5cdf5b
Compare
60b0a5f to
7f93ad9
Compare
e5cdf5b to
bd3795e
Compare
This PR adds the full implementation of op-interop-filter: - Backend with ChainIngester management, failsafe handling, and CheckAccessList - ChainIngester for block polling, LogsDB management, backfill, and reorg detection - Unit tests for Backend (failsafe, ready state, unknown chain handling) - Dashboard tool for viewing filter and spammer metrics - Spammer tool for validation testing with real chain data - Overnight test script for multi-chain testing The filter is now fully functional and can be used with op-geth for transaction filtering. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This PR adds op-devstack/sysgo integration for op-interop-filter: - `op-service/apis/interop_filter.go`: InteropFilter API interfaces - `op-service/sources/interop_filter_client.go`: RPC client for interop filter - `op-devstack/stack/interop_filter.go`: InteropFilterID and InteropFilter interface - `op-devstack/shim/interop_filter.go`: Shim implementation - `op-devstack/sysgo/interop_filter.go`: WithInteropFilter function - `op-devstack/dsl/interop_filter.go`: DSL wrapper - `op-devstack/presets/minimal_with_interop_filter.go`: Preset for tests - Updated system interface to include InteropFilter methods - Added FirstInteropFilter matcher 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
bd3795e to
99ed03d
Compare
karlfloersch
pushed a commit
that referenced
this pull request
Mar 5, 2026
…thereum-optimism#19272) * contracts: implement audit code fixes and add tests Add onlyDelegateCall enforcement to upgradeSuperchain, upgrade, and migrate functions (#17). Include msg.sender in deploy salt to prevent cross-caller CREATE2 collisions (#17). Add duplicate instruction key detection in upgrade validation (#9). Validate startingRespectedGameType against enabled game configs (#10). Add code-existence check in loadBytes (#18). Add setUp guard to VerifyOPCM.runSingle (#4). Remove unused _findChar function (#5). Pass real AddressManager in migrator proxy deploy args (#11). Add tests covering all audit fix behaviors. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * contracts: regenerate semver-lock.json for OPContractsManagerV2 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * contracts: bump OPContractsManagerV2 version to 7.0.10 Semver-diff requires a patch version bump when bytecode changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
karlfloersch
pushed a commit
that referenced
this pull request
Mar 17, 2026
* docs(staking): document pause bypass behavior in setAllowedStaker * fix(staking): only reset lastUpdate on full unstake in _decreasePeData Cantina audit finding #7: _decreasePeData unconditionally reset lastUpdate on every decrease, penalizing partial unstakers by resetting their staking weight. Now lastUpdate is only reset when effectiveStake reaches zero. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(staking): implement two-step ownership transfer Cantina audit finding #8: transferOwnership now nominates a pending owner who must call acceptOwnership() to finalize the transfer, preventing irrevocable ownership loss from incorrect addresses. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(staking): document lastUpdate reset trust assumption in setAllowedStaker Cantina audit finding #10: when a beneficiary removes a staker from their allowlist, the staker's lastUpdate is reset via _increasePeData, losing accumulated staking weight. Document this as an inherent trust assumption of the delegation model. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: undo version change * chore: upgrade natspec * chore: update event emission order * fix: wrong event args * chore: add interface comments * fix: pre-pr * refactor: make ownable private functions public * fix: pre-pr * feat(ownable): reset pending owner on zeroaddress ownership transfer * refactor: inherit OZ's ownable and use helper contract for mapping storage slot * fix: ci --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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
This is PR 3 of 4 for the
op-interop-filterservice.This PR adds op-devstack/sysgo integration:
InteropFilterAPI,InteropFilterAdminAPI,InteropFilterQueryAPIInteropFilterClientfor RPC communicationInteropFilterIDandInteropFilterinterfaceWithInteropFilterfunction for orchestratorInteropFilterDSL for test convenienceMinimalWithInteropFilterpreset for testingFirstInteropFiltermatcherThis enables op-interop-filter to be used in sysgo-based integration tests.
Stack
This PR is part of a stacked PR series:
Test plan
go build ./op-devstack/...go test ./op-devstack/stack/...🤖 Generated with Claude Code