chore: sync opcm2-revert-opcm with develop#732
Merged
0xiamflux merged 45 commits intosc-feat/opcm2-revert-opcmfrom Dec 5, 2025
Merged
chore: sync opcm2-revert-opcm with develop#7320xiamflux merged 45 commits intosc-feat/opcm2-revert-opcmfrom
0xiamflux merged 45 commits intosc-feat/opcm2-revert-opcmfrom
Conversation
…ntract (ethereum-optimism#18331) * Use vm.prank(address,bool) for delegateCall, remove DelegateCaller contract Remove imports of DelegateCaller fmt fix: by explicitly using delegatcall was expecting foundry to override the CALL to a delegatcall for some reason. remove unused returndata vars fix updatePrestate call testing Fixes to ForkLive Self review clean up fix: handle empty EOA code in delegate call tests Adds a prankDelegateCall() helper function to eliminate repetitive code pattern for handling Foundry's requirement that addresses have at least one byte of code to prank delegatecalls. This helper combines vm.etch() and vm.prank(_, true) into a single reusable function. Create prankDelegateCall function Restore DelegateCaller contract Prevents merge conflicts with other inflight work Clean up comments on prankDelegateCall Delete DelegateCaller contract * Fix outdated comment and etch restore * fix unused imports * Fix upgradeSuperchain call
and use it in the pectra acceptance tests.
…mConfig for upgrade (ethereum-optimism#18376) * fix: semver updates * fix: semver lock * fix: semver lock again
…cannon_kona (ethereum-optimism#18374) * op-acceptance: Add acceptance tests for withdrawals using cannon and cannon_kona game types * op-acceptance: Add game types through OPCM instead of separate op-deployer script * op-acceptance: Remove unused method
…thereum-optimism#18397) - Add bake.yaml workflow using factory reusable multi-arch workflow - Build all 16 OP Stack images (op-node, op-batcher, op-deployer, op-faucet, op-program, op-proposer, op-challenger, op-dispute-mon, op-conductor, da-server, op-supervisor, op-supernode, op-test-sequencer, cannon, op-dripper, op-interop-mon) - Native ARM builds on ubuntu-24.04-arm for faster compilation - Multi-arch manifest creation with SLSA Build Level 3 attestations - Add compute-git-versions.sh script to replicate CircleCI GIT_VERSION logic - Read KONA_VERSION from kona/version.json (single source of truth) - Add Makefile target for compute-git-versions - GitHub Actions cache support for faster builds - BuildKit provenance (mode=max) + GitHub attestations for rich metadata Signed-off-by: falcorocks <14293929+falcorocks@users.noreply.github.com>
…thereum-optimism#18396) * refactor(test): rename test functions to use _succeeds suffix and add docs - Rename all test functions from _works to _succeeds suffix - Simplify test names by removing redundant 'check' and 'Against' words - Add @notice documentation for each test function * test(contracts): add fuzz tests for isDevFeatureEnabled function - Add testFuzz_isDevFeatureEnabled_featureMatchesSelf_succeeds - Add testFuzz_isDevFeatureEnabled_emptyFeatureAlwaysFalse_succeeds - Add testFuzz_isDevFeatureEnabled_featureInSuperset_succeeds - Add testFuzz_isDevFeatureEnabled_featureNotInDisjointBitmap_succeeds --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
… games (ethereum-optimism#18393) * op-challenger: Update list-games sub command to support optimistic zk games. Starts to build out the OptimisticZK contract bindings and make challenger not require everything to look like a FaultDisputeGame. * Fix variable name
…timism#18388) * Replace Reverter contract with vm.mockCallRevert() * Replace Call Recorder with vm.expectCall() * fix imports * Fix selector data on recipient * Rename Callers to GasBurner It's the only contract left in the file now.
…mism#18443) * ci: split bake workflow in protected/unprotected * ci: address review feedback Signed-off-by: falcorocks <14293929+falcorocks@users.noreply.github.com> --------- Signed-off-by: falcorocks <14293929+falcorocks@users.noreply.github.com>
Adds a new check in the contracts package that confirms that all source contracts are using a strict pragma instead of a dynamic one.
* start * add upload to ci * fix: update CI * feat: rm update-selectors from pre-pr * fix: rm checkout from workspace
* start * add upload to ci * fix: update CI * feat: rm update-selectors from pre-pr * fix: rm checkout from workspace * fix: checkout * fix: contract dependencies
* op-supernode: Superroot API Activity * Response Object Cleanup * Update return struct for full Optimistic Outputs ; In-Proc RPC * Use eth.NotFound Errors
* op-node: Logic for Disabling Derivation * op-devstack: Support UnsafeOnly preset and twoVerifiers System * op-acceptance-tests: UnsafeOnly Tests for Seq and Ver * Do not check second verifier safe head because of EL Sync * op-node: Fix EngineController Reset logic for sequencer init * doc string fix * Defensive protection for avoiding FCU to genesis * Modularize ext sync tester config * op-acceptance-tests: Unsafe Only with Ext Network * Also check unsafe head advances after initial EL Sync is done * check unsafe gap is closed * remove temp * Allow alt sync when unsafeOnly * check seq restart with API * better init EL syncing log msg * fix comments and add warning * Check isSequencer for unsafeOnly initial Reset at SyncDeriver * remove non initialized check during syncDeriver step * Refactor for readability
* feat: add OPCMv2 tests for existing behaviors * feat: more tests * fix: lint errors * fix: test naming * fix: improve some tests wrt pr comments * fix: correct error naming in container
…/fault/type (ethereum-optimism#18432) Game types are not specific to fault dispute games.
…mism#18433) Rename --trace-type to --game-types with an alias to preserve backwards compatibility. Each trace type already directly maps to a GameType and the concept of a "trace" only exists for fault dispute games.
…-optimism#18440) Allows clients to be shared between fault and zk game types.
* op-challenger: Extract generic game player Handles common checks before delegating to an actor to progress the game. * op-challenger: Remove remnants of fault.Player
…m#18471) Updates factory workflow reference to 753bcd4284a6d36eac6e31df2492015ab8650331 which renames push_provenance to attest and skips attestation step on fork PRs. Changes: - Update workflow SHA in protected.yaml and unprotected.yaml - Change push_provenance: false to attest: false in unprotected.yaml - Add attest: true in protected.yaml for clarity
…conductor to (ethereum-optimism#18324) use this.
* op-challenger: Support challenging optimistic ZK games * op-challenger: Remove check that the proposal was safe. * op-challenger: Add log message before challenging * op-dispute-mon: Remove unused interface
* op-challenger: Remove asterisc from op-challenger docker image. * op-challenger: Remove asterisc-kona from default list of supported game types
…sm#18464) * op-challenger: Resolve zk games without considering parent * op-challenger: Consider parent game status when resolving * op-challenger: Handle games with no parent. * op-challenger: Challenge games when possible, even if we could resolve them. Allows us to claim bonds for games where the parent is invalid. * op-challenger: Send zk game transactions in parallel.
…mism#18233) * op-node: fix l1 origin selector getting stuck if current origin was reorged out * clarify comments + test refactoring * gofmt
…thereum-optimism#18327) * op-batcher: propagate clock.Clock to gossip builder check. refactor MaxChannelDuration * remove comments * remove PrintChain * Merge pull request ethereum-optimism#18344 from ethereum-optimism/nonsense/fix-channel-close2 op-batcher: fix max channel duration tracking for large block backlogs (cont) * unit test for moreComing * extract SequenceBlock into DSL * add TestChannelBuilder_MaxChannelDurationZero * better comments * godoc for moreComing and pubInfo * rename moreComing * better comment * a few tweaks for ethereum-optimism#18327 (ethereum-optimism#18480) * tweaks * remove default values (false booleans) from struct literals * Rename publishingBacklog to ignoreMaxChannelDuration * typo * rename test --------- Co-authored-by: George Knee <georgeknee@googlemail.com>
* feat: deploy safersafes script * fix: use semvercomp * fix: fmt & semgrep * fix: pre-pr * fix: interface check * feat: interface cleanup
…ethereum-optimism#18484) - add structured_output schema to devin prompt instructing completion status - add check for structured_output in devin_client.py blocked status handler - add finished_no_changes status when analysis complete without changes - create slack-notifier component with prepare_notification.sh script - add prepare-slack-notification command to justfile - add slack notification for finished_no_changes status - replace inline slack logic in circleci config with just command
…ptimism#18467) * op-challenger: Reclaim bonds for optimistic zk games * op-challenger: Challenge proposals that are still unsafe. * op-challenger: Report proposal status in game info log
…mism#18487) Co-authored-by: AgusDuha <81362284+agusduha@users.noreply.github.com>
…8492) * op-service/sources: detect duplicate blob hashes * op-node: Add unit test and fix logic for checking if blob has already been matched. * op-node: Fix lint --------- Co-authored-by: Adrian Sutton <adrian@oplabs.co>
…thereum-optimism#18498) Updates docker-bake.yaml reference to include fix that prevents bash history expansion issues when build metadata contains special characters like '!'. Ref: ethereum-optimism/factory#8
…#18454) * feat: break out OPCMv2 utils into helper contracts Breaks out the OPCMv2 utils into a separate Utils contract that reduces the code size of OPCMv2 significantly. * fix: go ci issues * fix: more ci issues * fix: forge lint * fix: go verify artifacts * feat: add tests for OPCMUtils * fix: broken tests * fix: more test tweaks * fix: mark functions as external * feat: add tests for implementations and blueprints
… flaky test (ethereum-optimism#18360) * test(contracts): add comprehensive coverage for AddressAliasHelper functions - Add ApplyL1ToL2Alias_Test contract with fuzz test for applyL1ToL2Alias - Add UndoL1ToL2Alias_Test contract with fuzz test for undoL1ToL2Alias - Both tests verify correct offset arithmetic with unchecked overflow handling - Ensures all public functions have individual test coverage * fix(test): disable known features before fuzzing unset feature test Fixes flaky test testFuzz_isFeatureEnabled_unsetFeature_succeeds by disabling all known features (CUSTOM_GAS_TOKEN, ETH_LOCKBOX) before checking that arbitrary features are disabled. This prevents environment-dependent state from causing test failures in CI. * fix(test): use runtime guard instead of disabling ETH_LOCKBOX Improves the fix for testFuzz_isFeatureEnabled_unsetFeature_succeeds by: - Removing ETH_LOCKBOX disabling code (causes revert in upgrade envs) - Adding runtime guard to skip features that are currently enabled - Only normalizing CUSTOM_GAS_TOKEN to fix the original flake This approach avoids SystemConfig_InvalidFeatureState reverts when ETH_LOCKBOX is enabled with a configured lockbox address in mainnet upgrade test environments. * fix(test): remove early exit from isFeatureEnabled fuzz test Per maintainer feedback, removes the early exit that was skipping some fuzz cases. The test now always runs the assertion for all fuzz inputs. The CUSTOM_GAS_TOKEN normalization is kept to fix the original flake in the CUSTOM_GAS_TOKEN CI environment. --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…eum-optimism#18488) * feat(op-deployer): use op-deployer build for publish-artifacts * fix(op-deployer): restore bucket name * fix(op-deployer): add COMMIT file * fix(op-deployer): verify cli test
Conflicts: - op-deployer/pkg/deployer/devfeatures.go - packages/contracts-bedrock/scripts/deploy/DeployImplementations.s.sol - packages/contracts-bedrock/src/L1/opcm/OPContractsManagerV2.sol
0xOneTony
approved these changes
Dec 5, 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:
- op-deployer/pkg/deployer/devfeatures.go
- packages/contracts-bedrock/scripts/deploy/DeployImplementations.s.sol
- packages/contracts-bedrock/src/L1/opcm/OPContractsManagerV2.sol