chore: sync sc-feat/opcm2-upgrade-op-chain with develop#761
Merged
0xiamflux merged 20 commits intosc-feat/opcm2-upgrade-op-chainfrom Dec 16, 2025
Merged
chore: sync sc-feat/opcm2-upgrade-op-chain with develop#7610xiamflux merged 20 commits intosc-feat/opcm2-upgrade-op-chainfrom
0xiamflux merged 20 commits intosc-feat/opcm2-upgrade-op-chainfrom
Conversation
* feat: fast check runner for contracts * feat: further script improvements * fix: lint * fix: comments * feat: add fast checks to ci * fix: add missing checks * fix: corrected caching logic * fix: handle interface check bugs
* feat: add audit report * chore: update report with audit fixes commit hash * chore: update release tag * feat: add superchain ops upgrader audit report * chore: rename upgrader audit report * fix: proper report naming * fix: rev sharing item order
…thereum-optimism#18566) * Add tests for future/unknown SystemConfig events * Return typed errors for SystemConfig events Add ErrUnknownEventVersion and ErrUnknownEventType and return wrapped typed errors (%w) when encountering unknown event versions or types. Replace NewCriticalError for ErrParsingSystemConfig with a plain error. Update tests to assert errors with require.ErrorIs and adjust event topics/data accordingly. * Fix error text for unknown event type
…ptimism#18564) * op-acceptance-tests: batcher: add pending nonce busy wait * comment * better name
…optimism#18456) * op-interop-filter: Service skeleton with flags and metrics * feat(op-interop-filter): add service skeleton Add op-interop-filter service scaffolding: **Core structure:** - flags/flags.go: CLI flag definitions with L2 RPC parsing - flags/flags_test.go: Unit tests for flag parsing - filter/config.go: Configuration struct and parsing - filter/service.go: Service lifecycle management - filter/frontend.go: RPC handlers (supervisor and admin) - filter/backend.go: Stub backend (returns ErrUninitialized) - metrics/metrics.go: Prometheus metrics interface and implementation - cmd/main.go: Application entry point **Build infrastructure:** - justfile and Makefile for building - docker-bake.hcl target - Dockerfile builder and target stages - Dockerfile.dockerignore allowlist entry The service compiles and starts but CheckAccessList returns ErrUninitialized until the actual implementation is added. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(op-interop-filter): align with op-faucet and op-interop-mon patterns - Change --l2-rpcs to StringSliceFlag (query chain ID from RPC) - Remove custom ParseL2RPCs parsing and tests - Add doc subcommand for metrics documentation - Add Document() method to metrics - Fix NewMetrics() to take procName parameter - Remove Required: true from flag (use CheckRequired only) - Use "message" key in log.Crit for consistency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(op-interop-filter): use v0.0.0 version to match other services 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: opsuperchain <opsuperchain@slop.bot> Co-authored-by: Claude <noreply@anthropic.com> * fix(op-interop-filter): use procName for metrics namespace * op-interop-filter: Address PR review comments, add Rewind stub, and fix JWT auth * op-interop-filter: Address PR review comments - Remove comment from .gitignore - Remove 'op-geth' from app description to be client-agnostic - Simplify CheckAccessList error handling to match op-supervisor - Update SetFailsafeEnabled to indicate pending implementation - Add JWT secret flag and wire up authentication for admin RPC * op-interop-filter: Add Rewind admin RPC stub Adds Rewind method to AdminFrontend as a stub for future implementation. This will allow operators to recover from reorg-induced stuck states via manual intervention. * op-interop-filter: Wire up JWT secret - Fix ObtainJWTSecret to always generate if file is empty (use true) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * op-interop-filter: Require JWT when admin RPC is enabled Add validation in Config.Check() to ensure a JWT secret path is configured when the admin RPC is enabled. This prevents exposing admin functionality without proper authentication. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * op-interop-filter: Remove gitignore --------- Co-authored-by: opsuperchain <opsuperchain@proton.me> Co-authored-by: opsuperchain <opsuperchain@slop.bot> Co-authored-by: Claude <noreply@anthropic.com>
…8154) (ethereum-optimism#18580) * op-deployer: support op-contracts/v5.0.0-rc.2 upgrade (ethereum-optimism#18154) * superchain-registry: update validation import to include op-contracts/v5.0.0-rc.2 * op-deployer: support op-contracts/v5.0.0-rc.2 upgrade * fix(op-deployer): adjust block for v5.0.0 * fix(op-validator): correct semver for v5.0.0 --------- Co-authored-by: Sam Stokes <35908605+bitwiseguy@users.noreply.github.com>
* feat: add cgt to opcmv2 * feat: add cgt to opcmv2 * fix: change semver * feat: add cgt to opcmv2 * feat: add cgt to opcmv2 * fix: change semver * refactor: change disputeGameConfigs order in _loadFullConfig * fix: comment slash rules * feat: add opcmv2-cgt matrix in CI * fix: enable cgt overrides on OPCMv2 (#724) * fix: check CGT is not enabled before enabling it * fix: enable CGT overrides * fix: add extra instruction overrides for useCustomGasToken on OPCMv2 (#725) * chore: link TODO to issue (#727) * fix: opcm2 revert upgrade cgt (#728) * fix: add check enabled CGT during upgrades * test: set CGT false by default during forked tests * chore: expand comment on OPCMv2 regarding CGT * chore: pre-pr ready * refactor: remove unnecessary check for CGT feature (#735) * fix: cgt upgrade in opcm v2 and semver (#738) * fix: Full checkout for FFI build (ethereum-optimism#18527) * chore(op-acceptance-tests): delete very old logs (ethereum-optimism#18529) * chore(op-acceptance-tests): op-acceptor v3.8.0 (ethereum-optimism#18530) * jovian: remove feature toggles (ethereum-optimism#17978) * jovian: remove feature toggles scope is now fixed * Updated op-geth to v1.101604.0-synctest.0.0.20251120150812-e50f80a16afc * lint * just update-op-geth f48f382 * Use Jovian in test error message * just update-op-geth ba6bdcfef42341fe2b5ce124c31ff2d6b264e9e4 * chore(ai-eng): add ReinitializableBase test to exclusion list (ethereum-optimism#18531) * feat: have OPCM upgrade allowances be upgrade specific (ethereum-optimism#18462) * feat: have OPCM upgrade allowances be upgrade specific Updates the OPCMv2 check for allowed extra instructions to be specific to releases. When release versions are bumped, the allowances become automatically invalid and would reveal anywhere in the codebase where the allowance is being used. * fix: semver lock * fix: emit instruction key in error * fix: better semantics * docs: proper OPCM versioning policy * fix: final version tweaks * fix(op-acceptance-test): flake-shake; empty slack notifications. (ethereum-optimism#18542) * feat: add cgt to opcmv2 * feat: add cgt to opcmv2 * fix: change semver * feat: add cgt to opcmv2 * feat: add cgt to opcmv2 * fix: change semver * refactor: change disputeGameConfigs order in _loadFullConfig * fix: enable cgt overrides on OPCMv2 (#724) * fix: check CGT is not enabled before enabling it * fix: enable CGT overrides * fix: opcm2 revert upgrade cgt (#728) * fix: add check enabled CGT during upgrades * test: set CGT false by default during forked tests * chore: expand comment on OPCMv2 regarding CGT * fix: cgt upgrade in opcm v2 and semver (#738) * fix: merge conflicts * fix: pre-pr * fix: add missing isMatchingInstruction for cgt in false * refactor: opcm2 extra instruction keymatch (#747) * refactor: add helper function to match instruction by key only * chore: pre-pr ready * test: refactor key matching test * test: add test suite for IsMatchingKey helper function * chore: pre-pr ready * fix: opcmv2 semver --------- Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com> Co-authored-by: Ján Jakub Naništa <jan.jakub.nanista@gmail.com> Co-authored-by: Stefano Charissis <stefano@oplabs.co> Co-authored-by: George Knee <georgeknee@googlemail.com> Co-authored-by: Ariel Diaz <65925295+aliersh@users.noreply.github.com> Co-authored-by: smartcontracts <14298799+smartcontracts@users.noreply.github.com>
* all: Remove cannon-kona dgv2 feature flags * review comments * move dg impls to stdvalidator impls * fix typo * remove dead assignment * update opcmv2 semver
…ps (ethereum-optimism#18601) * feat(ai-contracts-test): add TOML-based no-changes tracking system - add no-need-changes.toml file for tracking tests with comprehensive coverage - modify ranker to detect stale entries by comparing contract git hashes - output stale_toml_entries array in ranking JSON - inject formatted stale entry list into rendered prompt via placeholder - remove ReinitializableBase.t.sol file from the exclusion file * fix(ai-contracts-test): improve Devin client session handling - add retry loop with exponential backoff for session creation - track blocked state duration and exit after 5-minute timeout - parse nested structured_output for no-changes detection - change status value from finished_no_changes to no_changes_needed * refactor(ai-contracts-test): simplify Slack notification logic - replace prepare_notification.sh with build_notification.sh - add notification for TOML tracking PRs when no changes needed - create build-slack-notification just command wrapping the script - update CircleCI to call new just command * chore(ai-contracts-test): update configuration and documentation - bump VERSION to 1.4.0 for TOML tracking feature - remove ReinitializableBase.t.sol from exclusion list - update runbook with TOML tracking system documentation - document stale entry detection and automatic reintegration * fix(ai-contracts-test): detect no-changes status from structured output - check structured_output for changes_needed field when Devin blocks - add PR URL logging for both "finished" and "no_changes_needed" statuses - wait up to 5 minutes for structured_output to populate after blocked state - prioritize structured_output check before falling back to PR-only detection * chore(ai-contracts-test): add tests to no-changes tracking - add ReinitializableBase.t.sol entry to no-need-changes.toml - add SafeSend.t.sol entry to no-need-changes.toml
…ethereum-optimism#18540) * Add op-rbuilder submodule * Add rollup-boost submodule * Move kona => kona-proofs * Add kona submodule * Update CI to build rust binaries ahead of acceptance test time
…18606) * op-e2e: Enable jovian for proofs precompile tests * op-e2e: Also enable osaka on L1
…8571) * wiring for l2.follow.source * Follow Safe without handling external safe > local unsafe * safe follow * safe follow consider unsafe gap EL Sync * follow finalized * Comments * cleanup * drop unused interface methods * sanity check external finalized * Adjust follow source log level * op-devstack: Follow Source Support * op-acceptance-tests: Follow Source * op-devstack: Follow Source Support * simplify labeling * l1 reorg protection: reset * add reorg tc * typo * follow source: check unsafe * convention * Add unsafe only reorg test * devstack/acceptance test : rename FollowSource to FollowL2 * follow upstream source enabled when derivation disabled, reorg detection * fix unsafe only reorg sync test comments * rm unused interface method * dsl * devstack support for ext sync test + follow l2 * op-acceptance-tests: Follow L2 using Ext + SyncTester * use blockref * fix log msg err * Fix composite interface naming * op-node: Follow Source: EL / CL support * devstack: Allow EL or CL to be follow source * Inject CurrentL1 * logs for injecting CurrentL1 * refactor to less rpc calls * acceptance-tests: Check CurrentL1 is advancing * linter * fix error args * sanity check external values using L1 * op-node: Follow Source CL and drop unsafeOnly * op-acceptance-tests: drop EL follow source / Unsafe Only tests * op-devstack|acceptance-tests: Follow Source CL * op-node: Follow Client: only allow CL source * drop unused args * rm redundant unsafe head reorg logic * rm unused dsl * Do not use functions
* chore: Add SafeRename ioutil utility * fix: Lint
Conflicts: - pkg/deployer/integration_test/apply_test.go - pkg/deployer/integration_test/cli/upgrade_test.go
0xniha
approved these changes
Dec 16, 2025
0xOneTony
approved these changes
Dec 16, 2025
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.
Conflicts:
Note
Enforces v2 dispute games across OPCM and validator, introduces the op-interop-filter service, and overhauls CI/builds with Rust binary caching, Kona paths, JUnit results, and new parallel check runner; updates deploy/scripts, ABIs, and tests accordingly.
isMatchingInstructionByKey.faultDisputeGameImpl/permissionedDisputeGameImpl; adjust error/version checks; require Kona validation; ABI/storage updates.checks.yamland Gocheck-runner; Just targets for fast checks.op-interop-filter(CLI, flags, metrics, RPC frontends) and Docker target.kona-proofs; adjust bake/version env; numerous CircleCI job tweaks.Written by Cursor Bugbot for commit 85b1af9. This will update automatically on new commits. Configure here.