Skip to content

Conversation

@JustXxx
Copy link
Owner

@JustXxx JustXxx commented Apr 16, 2024

No description provided.

falcorocks and others added 30 commits December 1, 2025 12:12
* 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
…/kona#3105)

eliminate an unnecessary clone of `OpExecutionPayloadV4` in
`rollup_boost::new_payload_v4`, let the original payload move into
`EngineApiServer::new_payload_v4` to avoid extra allocation
* 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
reuse the precomputed sha_short when setting VERGEN_GIT_SHA_SHORT, drop
an unnecessary second slice of sha
* 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 (#18432)

Game types are not specific to fault dispute games.
Also:
- Adds admin RPC method to inspect recovery mode status
- Adds handling for new admin RPC method in SequencerActor
- Adds test utils via automock
- References existing test utils in crates/protocol/derive

Ref: #3070

---------

Co-authored-by: theo <80177219+theochap@users.noreply.github.com>
…na#3118)

This patch adds support for custom chain configurations when invoking
the `just cannon` recipe to build cannon kona prestates.
This is useful for devnets and unannounced chains to also enjoy
reproducible prestate builds.

## Testing

- [x] Build canonical prestates of kona-client releases and ensure the
hashes are [standard prestates
hashes](https://github.com/ethereum-optimism/superchain-registry/blob/17e5b8f2639324402f192d379cba0d09cddd2a6c/validation/standard/standard-prestates.toml).
- [x] Verify that custom prestates contain the custom chain configs
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.
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
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)
…rs/kona#3099)

The denominator zero check in
`decode_holocene_eip_1559_params_block_header` and
`decode_jovian_eip_1559_params_block_header` was returning
`EIP1559ParamError::ElasticityOverflow` which doesn't make sense - we're
checking the denominator, not elasticity.

Introduced `Eip1559ValidationError` inner type with:
- `ZeroDenominator` - for the zero denominator case
- `Decode(EIP1559ParamError)` - wrapping upstream decoding errors
* 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
* 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.
* op-node: fix l1 origin selector getting stuck

if current origin was reorged out

* clarify comments + test refactoring

* gofmt
…18327)

* op-batcher: propagate clock.Clock to gossip builder check. refactor MaxChannelDuration

* remove comments

* remove PrintChain

* Merge pull request #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  #18327 (#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
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 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.