Skip to content

chore: sync opcm2-revert-opcm with develop#732

Merged
0xiamflux merged 45 commits intosc-feat/opcm2-revert-opcmfrom
sync/opcm2
Dec 5, 2025
Merged

chore: sync opcm2-revert-opcm with develop#732
0xiamflux merged 45 commits intosc-feat/opcm2-revert-opcmfrom
sync/opcm2

Conversation

@0xiamflux
Copy link
Copy Markdown

Conflicts:
- op-deployer/pkg/deployer/devfeatures.go
- packages/contracts-bedrock/scripts/deploy/DeployImplementations.s.sol
- packages/contracts-bedrock/src/L1/opcm/OPContractsManagerV2.sol

maurelian and others added 30 commits November 26, 2025 15:34
…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
* feat: add CGT system feature (#703)

* fix: sys feature CI (#706)

* fix: liquidity controller fuzz (#708)

* fix: setup CGT system feature in deploy script (#711)

* fix: unused import (#713)

* test: add CGT missing tests (#714)
* 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
nonsense and others added 15 commits December 3, 2025 12:44
…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
)

* op-e2e: Test FPP for delegatecalled precompiles

* go lint
…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
@0xiamflux 0xiamflux requested review from 0xOneTony and 0xniha December 5, 2025 19:33
@0xiamflux 0xiamflux self-assigned this Dec 5, 2025
@0xiamflux 0xiamflux merged commit 5ae62b4 into sc-feat/opcm2-revert-opcm Dec 5, 2025
1 check passed
@0xiamflux 0xiamflux deleted the sync/opcm2 branch December 5, 2025 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.