Skip to content
This repository was archived by the owner on Dec 5, 2021. It is now read-only.

Conversation

@pull
Copy link

@pull pull bot commented Oct 13, 2021

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

AmadiMichael and others added 30 commits January 19, 2026 15:02
…oc (#18851)

* graphite prompt to detect foundry deps bump without approved design doc

* add ref to policy link in graphite message to PR owner
Add a tool that validates the go.mod replace directive points to a
valid op-geth tag.

Runs as a separate CI job so failures are immediately visible in the
GitHub UI, which is useful during op-geth merge windows when this
check is expected to fail temporarily.

Also updates FindMonorepoRoot to verify the module path matches the
optimism monorepo, preventing false positives when run from nested
modules.
* ci: Introduce custom linters

First linter prevents calls to big.Int Uint64 which silently truncates the value.

* op-service: Implement bigs.Uint64Strict

* ci: Support auto fix for bigint linter

* ci: Fix lint-go-fix target

* op-service: Add nolint for the Uint64 call in Uint64Strict

* ci: Disable bigint linter.

Need to apply the fixes first.
* feat(ci): refactor CI to add continuations

* chore(ci): pass parameters to circleci
* op-challenger/op-dispute-mon: Cap large l2 sequence numbers.

* op-challenger: Fix potential collision in challenger claim IDs.

* op-challenger: Fix off by one error when recording the last step

* op-challenger: Fix resuming large preimage uploads.

* op-challenger: Ensure the full data to store is submitted in the same transaction for large preimages.

---------

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
* feat: run u18

* fix: fmt

* fix: lint

* fix: many bugs with OPCMv1

* fix: update opcmv2 tests

* fix: semver version

* fix: also apply past upgrades to integration tests

* fix: run past upgrades for add game type test

* fix: use shared function for past upgrades

* feat: unified past upgrades

* fix: semgrep issues

* feat: generic dummy caller

* fix: proper prestate handling for opcmv1

* fix: small pr comments

* feat: use registry automatically

* fix: almanax comments

* fix: pr review

* fix: clarify usage of opcm version

* fix: correct dummy caller path

* fix: use existing challenger/proposer for dispute games

* fix: merge conflicts
* fix(ci): fix tag creation for circleci releases

* ci: remove obsolete comment in setup-tag workflow

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Document more about how to use the flake-shake gate.
* feat(op-node): add SupervisorEnabled to config.Config

Move SupervisorEnabled from rollup.Config to config.Config per
reviewer feedback. rollup.Config has superchain registry implications
and should be reserved for consensus params, while SupervisorEnabled
is an operational setting.

Changes:
- Add SupervisorEnabled field to config.Config
- Pass supervisorEnabled through interop.Config.Setup()
- Add supervisorEnabled parameter to NewEngineController and
  NewFinalizer constructors
- Gate cross-unsafe/cross-safe promotion and finality on
  supervisorEnabled instead of just IsInterop check
- Update all test files with new constructor signatures

When supervisorEnabled is false (default), interop contracts still
deploy at InteropTime but cross-chain coordination uses local
promotion. When true, the node defers to the supervisor.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(op-acceptance-tests): add tests for interop without supervisor coordination

Add acceptance tests that verify interop can work with local finality
when SupervisorEnabled=false in op-node. This tests the scenario where:
- Interop contracts (L2ToL2CrossDomainMessenger) are deployed at genesis
- Supervisor infrastructure runs (required by op-geth)
- But op-node uses local promotion instead of supervisor coordination

The tests verify:
1. L2ToL2CrossDomainMessenger is deployed and has code at interop activation
2. Local finality works (unsafe/safe blocks advance without supervisor)

Also adds:
- DefaultSingleChainInteropNoIndexingSystem() in sysgo for test configuration
- MinimalInteropNoSupervisor preset for acceptance tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor(op-devstack): make supervisor optional for interop

Simplify the interop-without-supervisor test setup:
- Make supervisor optional in l2_el_opgeth.go, l2_el_opreth.go, l2_proposer.go
- Replace DefaultSingleChainInteropNoIndexingSystem with DefaultMinimalInteropSystem
- MinimalInteropNoSupervisor now extends Minimal (no supervisor process at all)

This enables testing interop contract deployment with truly no supervisor,
rather than having supervisor running but with SupervisorEnabled=false.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: opsuperchain <opsuperchain@slop.bot>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* feat: remove CGT instruction from OPCMv2

* fix: semver

* fix: calldata offset
* op-node: Make sealing duration value configurable

* Remove hard coded constants
* op-proposer: Delete some remnants of L2OO

* op-proposer: Remove even more L2OO

* op-proposer: Fix test config.

* op-proposer: Fix lint
* op-challenger: Use Uint64Strict

* op-dispute-mon: Use Uint64Strict.

* op-program: Use Uint64Strict

* op-proposer: Use Uint64Strict

* op-challenger: Cap bond claimed metric instead of panicking.

* Fix lint
* fix: increase contracts test timeout to avoid flakes

* fix: add slack context to relevant jobs
Update FaultDisputeGame and OptimisticDisputeGame to revert game creation if the proposed block number is too large for a uint64. Given the JSON-RPC APIs use an int64, no viable block chain can use block numbers that large.

SuperDisputeGame reads the timestamp from the super root which is already restricted to a uint64.
…ct (#18904)

* op-e2e,op-acceptance-tests,op-devstack,op-sync-tester: Use Uint64Strict

* Fix test expectation

* Fix test expectation

* Review feedback.
* fix: set fdg and pdg implementations to non-zero address on v2 codepath (#806)

* fix: set fault and permission games implementations to non-zero address on v2 codepath

* chore: make faultDisputeGame 0 on DeployOPChain

* chore: remove unused import, just pr passing (#809)
* refactor: replace dev feature with opcm version check in DeployOPChain script

* refactor: replace dev feature with opcm version check in ReadImplementationAddresses script

* refactor: replace dev feature with opcm version check in UpgradeOPChain script

* refactor: replace dev feature with opcm version check in UpgradeSuperchainConfig script

* refactor: standarize isOPCMv2 variable

* feat: add opcmv2 version constant

* fix: rename constant to OPCM_V2_MIN_VERSION
…in MIPS64Memory (#18905)

- Add isValidProof harness function and test contract with 3 tests:
  - test_isValidProof_validProof_succeeds: verifies valid proof returns true
  - test_isValidProof_invalidProof_succeeds: verifies tampered proof returns false
  - test_isValidProof_mismatchedRoot_succeeds: verifies wrong root returns false
- Add memoryProofOffset harness function and test contract with 3 tests:
  - testFuzz_memoryProofOffset_succeeds: fuzz test for offset calculation
  - test_memoryProofOffset_zeroIndex_succeeds: verifies index 0 returns base offset
  - test_memoryProofOffset_indexOne_succeeds: verifies index 1 increments correctly

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* feat: opcm2 interop migrate (#796)

* feat: support interop migration in OPCMv2

* fix: merge conflicts

* fix: proper interface usage

* feat: update VerifyOPCM for migrator

* chore: lint

* fix: pr tweaks

* fix: update go side

* fix: simplify game data decoding logic

* test: add test for invalid starting game type

* fix: pr review

* feat: add interop migration support for op-deployer

* feat: add opcm v2 input for interop migration

* feat: refactor interop migration to use ABI encoding and semver detection

Replace JSON marshaling with proper ABI encoding using w3 library for migrate inputs.
Change OPCM version detection from isDevFeatureEnabled to semantic version comparison.
Restructure MigrateInputV1 to use nested GameParameters and Proposal structs.
Update DisputeGameConfig.GameArgs from Hash to bytes for correct ABI encoding.
Add isVersionAtLeast helper for version comparison (OPCM v2 starts at 7.0.0).
Update tests and contracts to use version() method instead of feature flags.

* docs: add description comments to migrate.go

* feat: add opcmv2 migrate support to WithSuperRoots

* fix: game parameters uint64 types

* refactor: move IsVersionAtLeast helper to utils and add tests

* fix: uint64 to big int conversion in EncodedMigrateInputV1

* test: interop migration v2

* test: interop migration v2 (not working)

* test: updates migration test to migrate to OptimismPortalInterop

* fix: test comments

* test: add migrate input v1 encoding test

* test: add interop migration v1 test

* test: merge TestInteropMigration v1 and v2 tests

---------

Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com>

* refactor: separate migrate from migrate-v2 cli command

---------

Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>

* test: opcm2 migrate cli test (#798)

* feat: add migrate cli command tests

* poc: e2e cli migrate tests

* fix: replace stdout with app writer

* refactor: replace default value for StartingRespectedGameTypeFlag

* fix: migrate cli v1 and v2 e2e tests

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>

* fix: interop migration fixes

* fix: remove address 0 condition to use opcmv2 & refactor useOPCMV2 internal variable in InteropMigration script

* test: add interop migration run revert cases

* fix: restore migrate cli flag order

* fix: migrateInput V2 json field

* chore: opcm2 pr (#799)

* chore: remove unused imports

* chore: fix tests naming

* fix: add uint32 input range validation in migrate v2

* fix: opcm2 misc (#802)

* test: fix struct property names

* fix: use correct exported function name

* chore: removes unused import

* fix: opcm2 review comments (#808)

* chore: remove unused flags

* chore: close rpc client in migrate

* chore: add sanity check when encoding migrate input

* refactor: reutilizes isVersionAtLeast to check if using OPCM v2

* refactor: unify migrate v1 and v2 flows in the same CLI

* refactor: check for common required flags, reduce repeated code between migrate v1 and v2 paths

* chore: rename Migrate exclusive vars to indicate they are supposed to be used during migration only

* chore: remove unused OPChainProxyAdminFlag flag

* chore: close underlying client in migrate path

* chore: add overflow uint check

* chore: rename variable deployer to deployerAddr

* chore: add overflow check for starting respected game type in migrate flow

* fix: encode gameArgs as abi encoded bytes32

* chore: rename starting Respected game type related vars on migrate flow

* chore: remove repeated required flags tests

* fix: migrate opd test (#816)

---------

Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com>
Co-authored-by: OneTony <onetony@defi.sucks>
* Merge pull request #18662 from ethereum-optimism/feat/op-deployer/validator-upgrade-v600

feat(op-deployer): op-validator and upgrade to v600

* feat(op-deployer): Update for op-contracts/v6.0.0-rc.2 (#18809)

* feat(op-deployer): Update for op-contracts/v6.0.0-rc.2

* fix registry hash

* feat(op-deployer): tests

---------

Co-authored-by: Maurelian <john@oplabs.co>
* chore(kona): update vergen to 9.1.0

* Update rollup-boost and remove wrapper

* temp update to use 1.10.2 rollup boost

* point to crates.io version

* remove unnecessary comment

---------

Co-authored-by: Haardik H <haardik.haardik@coinbase.com>
* feat(op-deployer): add forge flag to bootstrap + apply

* feat(op-deployer): add artifact cleanup

* feat(op-deployer): lint

* feat(op-deployer): lint

* feat(op-deployer): comments

* fix(op-deployer): comments

* fix(op-deployer): lint
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.