Skip to content

Conversation

@JustXxx
Copy link
Owner

@JustXxx JustXxx commented Apr 16, 2024

No description provided.

crypomen9 and others added 30 commits January 5, 2026 13:07
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
Since the Pectra fork happened long ago, we can now assume L1 is
always running Pectra. This simplifies the batcher code by:

- Removing the isPectra parameter from ChannelConfig, TxData, and l1Tip
- Removing the isPectra check in computeSingleCalldataTxCost (now always
  uses totalCostFloorPerToken = 10)
- Updating all tests to reflect Pectra-only behavior

Closes #18479
…#18559)

* feat(dispute): add rootClaimByChainId for L2 chain ID lookup

Add rootClaimByChainId(uint256) to IDisputeGame interface for interop
preparation. Pre-interop games return the existing rootClaim regardless
of chain ID. SuperFaultDisputeGame reverts with SuperRootPreimageNotSupported
until super root preimage support is added.

Renamed from rootClaim(uint256) to avoid function overload ambiguity
with abi.encodeCall (semgrep sol-style-use-abi-encodecall rule).

* chore: resolve ci issues

* fix: restore accidentally deleted snapshot files

Restores abi_loader.go, abi_loader_test.go, and state-diff/.gitkeep
that were accidentally removed in previous commit.

* fix: update StandardValidator version assertions for dispute games

Update permissionedDisputeGameVersion() to match new dispute game
versions (V1: 1.9.0, V2: 2.3.0) and bump validator to 2.3.0.

* fix: rename test to follow 4-part revert naming convention

* chore: reduce diff by going back to old selector usage

* fix: undeclared identifier error

* fix: undeclared identifier error

* feat: add defensive check on rootClaimByChainId

* fix: undeclared identifier error

* feat: add defensive check on rootClaimByChainId for V2

Revert with UnknownChainId if input chain ID doesn't match l2ChainId().
Prevents misconfigured bridge from silently returning wrong data.

* fix: interfaces

* fix: consistent function modifier

* fix: use pure and update snapshots

* test: add rootClaimByChainId tests for permissioned dispute games

Add fuzz tests for rootClaimByChainId function to PermissionedDisputeGame
and SuperPermissionedDisputeGame test contracts.

* fix: remove duplicate declarations from rebase
* fix: opcmv2 upgrade fixes (#781)

* fix: remove extraInstructions in upgradeSuperchain test

* docs: add cgt extra instruction TODO

* test: add fuzzing to UpgradeOPChain test

* feat: add revert cases for setters and tests

* test: add input encoding verification

* fix: add v2 suffix in upgrade test

* docs: added natspec to upgradeOPChain tests

* fix: restore assertValidInput comment (#789)

* fix: contracts collision in fuzz test setOpChainConfigs

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
* feat(abip): improve skip message for tests skipped by features

* fix: better naming scheme

* fix: better graphite prompt
…18712)

Add tests for uncovered revert paths in getDeployedCode and getName
functions when called with unknown addresses. Includes a harness
contract to properly test internal library function reverts.

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* op-service: Implement supernode client.

* op-challenger: Integrate super node trace provider (toggled off)

* Make super rpc CLI generic.
Add a config option to switch to super node.

* op-challenger: Actually return super node client

* Fix spelling.

* op-challenger: Avoid interfaces when nil checks are required.

Interface values are only nil if the type and value are nil - in our case the type is always non-nil so superNodeProvider == nil is always false causing panics.

* Remove test panic

* op-challenger: Fix package

* op-challenger: Rename --super-rpc to --supernode-rpc
* 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

* fix: import source of DisputeGameConfig.

---------

Co-authored-by: Maurelian <maurelian@protonmail.ch>
* Upgrade env var prefixes for supernode flags

Replace prefixEnvVar with upgradeEnvVarPrefixes(existingPrefix,
newInfix) which builds OP_SUPERNODE_<newInfix>_<SUFFIX> env vars from
original OP_NODE_* vars. Update FullDynamicFlags callers and add a unit
test.

* tidy

* Panic on unprefixed env vars

Make upgradeEnvVarPrefixes panic when it finds an env var that lacks the
expected prefix. Add unit test to assert the panic.
…18696)

Convert focused tests to fuzz tests for broader coverage:
- mint: fuzz _to address and _amount
- burn: fuzz _from address and _amount
- mint/burn notBridge: fuzz _caller address
- permit2 transferFrom: fuzz _owner, _to, and _amount
- allowance permit2Max: fuzz _owner address

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…18707)

* refactor(test): rename fuzz tests to use testFuzz_ prefix in OptimismMintableERC20Factory

- Rename test_createStandardL2Token_succeeds to testFuzz_createStandardL2Token_validParams_succeeds
- Rename test_createStandardL2TokenWithDecimals_succeeds to testFuzz_createOptimismMintableERC20WithDecimals_validParams_succeeds
- Rename test_createStandardL2Token_sameTwice_reverts to testFuzz_createStandardL2Token_sameTwice_reverts
- Rename test_createStandardL2TokenWithDecimals_sameTwice_reverts to testFuzz_createOptimismMintableERC20WithDecimals_sameTwice_reverts
- Rename test_createStandardL2Token_remoteIsZero_reverts to testFuzz_createStandardL2Token_remoteIsZero_reverts
- Rename test_createStandardL2TokenWithDecimals_remoteIsZero_reverts to testFuzz_createOptimismMintableERC20WithDecimals_remoteIsZero_reverts

Tests that use fuzz parameters should follow the testFuzz_ naming convention.
Also corrects function names in test names to match actual functions being tested.

* test(contracts): add tests for createOptimismMintableERC20 and version functions

- Add OptimismMintableERC20Factory_CreateOptimismMintableERC20_Test contract
  - testFuzz_createOptimismMintableERC20_validParams_succeeds
  - testFuzz_createOptimismMintableERC20_remoteIsZero_reverts
- Add OptimismMintableERC20Factory_Version_Test contract
  - test_version_validFormat_succeeds using SemverComp.parse()

These public functions were not directly tested before.

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Adds `HostError` type and migrates core modules from `anyhow` to
`thiserror`.

Migrated:
- KV stores
- Backend utils  
- Precompile execution
- Local inputs

Part of #2950

left some complicated parts, will finish in the next PR

---------

Co-authored-by: einar-oplabs <oplabs@einar.io>
Co-authored-by: einar-oplabs <einar@oplabs.co>
* asterisc: Remove asterisc scripts.

* Remove more CI config

* Remove more asterisc references.
…a#3197)

## Description

Add support for input DNS(es) for p2p listener ips. Useful for docker
context
…3146)

## Summary
- Added `shutdown_signal()` function to listen for SIGTERM and SIGINT
- Spawned a task in `RollupNode::start()` that triggers the existing
`CancellationToken` when OS signals are received
- All actors already support graceful shutdown via CancellationToken,
this just adds the missing OS signal handling

## Changes
- Modified `crates/node/service/src/service/node.rs`
- Cross-platform support: SIGTERM on Unix, Ctrl+C (SIGINT) on all
platforms

Closes #3091
…18485)

* fix loop in batcher with shadow compressor+brotli

* Iterate over all compression algorithms in tests

* Make test RNG seed deterministic

* Improve ChannelManager test assertions and checks

* godoc improvements

* Close test function in channel_manager_test.go

---------

Co-authored-by: geoknee <georgeknee@googlemail.com>
* op-service: Implement supernode client.

* op-challenger: Integrate super node trace provider (toggled off)

* Make super rpc CLI generic.
Add a config option to switch to super node.

* op-challenger: Actually return super node client

* Fix spelling.

* op-challenger: Avoid interfaces when nil checks are required.

Interface values are only nil if the type and value are nil - in our case the type is always non-nil so superNodeProvider == nil is always false causing panics.

* Remove test panic

* op-challenger: Fix package

* op-challenger: Rename --super-rpc to --supernode-rpc

* op-dispute-mon: Use supernode instead of supervisor.

* op-dispute-mon: Consistent capitalisation of SuperNode. It's two words.
…xyz/reth#20843)

Co-authored-by: Josh_dfG <126518346+JoshdfG@users.noreply.github.com>
Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>

The help suggested to provide a path but in runtime, it expected a
direct value of the jwt secret itself.

The env var called KONA_NODE_L2_ENGINE_JWT_PATH is seeking a plain-text
value and KONA_NODE_L2_ENGINE_AUTH is seeking a path, whereas it should
be the other way around from my pov


For eg:, `KONA_NODE_L2_ENGINE_JWT_PATH=/etc/kona-node/jwt-secret.txt`,
doesn't work but `KONA_NODE_L2_ENGINE_JWT_PATH=sdakd123891u2390sbs` does
work.

Error received
```
error: invalid value '/etc/kona-node/jwt-secret.txt' for '--l2-engine-jwt-encoded <L2_ENGINE_JWT_ENCODED>': JWT key is expected to have a length of 64 digits. 29 digits key provided
```

This PR fixes that.

---------

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>
op-rs/kona#3147)

Closes #3127
Previously, batch validation failures could only be diagnosed by parsing
log messages, which is fragile and not programmatically testable. This
change enables:
- Precise programmatic testing of batch validation logic
- Better error messages with structured drop reasons
- Improved debugging experience for node operators

## Changes

- `BatchDropReason` enum with variants for all drop scenarios:
- Timestamp related: `FutureTimestampHolocene`,
`PastTimestampPreHolocene`
- Parent/origin: `ParentHashMismatch`, `IncludedTooLate`, `EpochTooOld`,
`EpochTooFarInFuture`, `EpochHashMismatch`
- Sequencer drift: `TimestampBeforeL1Origin`, `SequencerDriftOverflow`,
`SequencerDriftExceeded`, `SequencerDriftNotAdoptedNextOrigin`
- Transaction validation: `EmptyTransaction`, `DepositTransaction`,
`Eip7702PreIsthmus`, `NonEmptyTransitionBlock`
- Span batch specific: `SpanBatchPreDelta`,
`SpanBatchNoNewBlocksPreHolocene`, `SpanBatchMisalignedTimestamp`,
`SpanBatchNotOverlappedExactly`
- Overlap validation: `L1OriginBeforeSafeHead`, `MissingL1Origin`,
`OverlappedTxCountMismatch`, `OverlappedTxMismatch`,
`L2BlockInfoExtractionFailed`, `OverlappedL1OriginMismatch`
…ow (op-rs/kona#3189)

Removes unnecessary intermediate `Vec` allocation in the peer banning
logic.
Fixed a copy-paste error in the OpStackEnr decoder where the error
message for version decoding incorrectly said "could not decode chain
id" instead of "could not decode version". Small fix but makes debugging
easier when ENR parsing fails.
teddyknox and others added 30 commits February 4, 2026 20:08
Introduce a new unified ID type system using Go generics to address the                                                                                                                                                                                                                                                  
parallel type system problem in op-devstack. The current system has 19                                                                                                                                                                                                                                                   
separate ID types, each with ~150 lines of boilerplate for marshal/unmarshal,                                                                                                                                                                                                                                            
String(), sorting, and matcher methods.                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                         
The new system provides:                                                                                                                                                                                                                                                                                                 
- ComponentID: single underlying struct for all IDs                                                                                                                                                                                                                                                                      
- ID[T]: generic wrapper with KindMarker constraint for type safety                                                                                                                                                                                                                                                      
- Marker types (L2BatcherMarker, etc.) to avoid circular dependencies                                                                                                                                                                                                                                                    
- IDShape enum to handle three ID formats (key+chain, chain-only, key-only)                                                                                                                                                                                                                                              
- Conversion helpers for incremental migration from old to new types                                                                                                                                                                                                                                                     
                                                                                                                                                                                                                                                                                                                         
New types use a "2" suffix (L2BatcherID2, NewL2BatcherID2) to coexist with                                                                                                                                                                                                                                               
the existing system during migration. Serialization output is identical to                                                                                                                                                                                                                                               
the old system for compatibility.                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                         
This is Phase 1 of a multi-phase refactor. Future phases will introduce a                                                                                                                                                                                                                                                
unified registry and capability interfaces for polymorphic lookups.                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                         
See docs/design/id-type-system-refactor.md for the full design document.
…9084)

During OPCM super-roots migration we temporarily transfer each OptimismPortal’s
ProxyAdmin ownership to the DelegateCallProxy. Restore each portal
ProxyAdmin back to the L1PAO after shared admin contracts are reset
so both portals report the expected proxyAdminOwner()

With this we can re-enable the TestInteropReadiness acceptance-test
* supernode: Handle genesis L2 block in L1AtSafeHead lookup

Add special case in L1AtSafeHead to return genesis L1 directly when
querying for the genesis L2 block, avoiding unnecessary SafeDB walkback
that would otherwise fail at genesis boundary.

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

* for the genesis case; check the entire blockid

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…clude the v prefix (#19090)

* op-program: Fix reproducibility test. The short version should not include the v prefix.

* Fix short string for legacy kona too.
* op-acceptance: Add start of test to run FPP program across a chain.

* op-acceptance: Execute kona-interop for the generated chain.

* Back to kona release build path.

* Tidy up code.
The Blob Tip Oracle (BTO) previously used ethclient.SubscribeNewHead() for header notifications, which only works over WebSocket connections. This change converts it to polling for new headers instead, allowing it to work with HTTP connections. The polling uses the existing PollRate configuration (2.5s default) to check for new headers at regular intervals.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…zz tests (#19094)

* test(contracts): enhance OptimismMintableERC721 test coverage with fuzz tests

- Convert constructor test to fuzz test with variable remoteChainId
- Convert safeMint test to fuzz test with variable recipient and tokenId
- Convert safeMint notBridge test to fuzz test with variable caller
- Convert burn test to fuzz test with variable tokenId
- Convert burn notBridge test to fuzz test with variable caller
- Convert tokenURI test to fuzz test with variable tokenId
- Add supportsInterface test for unsupported interfaces
- Add version format validation test using SemverComp.parse()

* fix(test): add IERC721Metadata to supportsInterface fuzz exclusions

The contract inherits IERC721Metadata from ERC721, so it must be excluded
from the unsupported interface fuzz test to prevent false failures.

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix: safer safes interface and deploy

* feat: DeploySaferSafes test

* fix: error string

* fix: forge fmt
* op-acceptance-tests: Add InvalidMessageHalt test for supernode interop

This TDD test verifies the Interop Activity's behavior when an invalid
executing message is included in a chain:
- Validity should NEVER advance to include the invalid block's timestamp
- Safety and unsafety for both chains should continue to advance

The test sends a valid initiating message on chain A, then sends an invalid
executing message on chain B (with an impossible log index), and observes
that the Supernode correctly halts validity advancement while allowing
safety heads to progress.

* op-supernode: Add logsDB infrastructure for interop activity

This prepares the interop activity for implementing the actual interop
algorithm by:

1. Moving stubbed algorithm functions to algo.go:
   - loadLogs: loads and persists logs up to a timestamp
   - verifyInteropMessages: validates executing messages
   - invalidateBlock: handles invalid blocks

2. Adding per-chain logs.DB for log persistence:
   - Uses op-supervisor's logs.DB directly (no wrapper)
   - openLogsDB helper creates DB per chain in data directory
   - Full persistence support (data survives restart)

3. Extending ChainContainer interface with FetchReceipts:
   - Added to ChainContainer, EngineController, and l2Provider interfaces
   - Enables interop activity to fetch receipts for log processing

4. Initializing logsDBs in Interop activity:
   - Creates one logs.DB per chain on startup
   - Properly closes all logsDBs on Stop()

5. Unit tests for log persistence:
   - Tests for open/close, seal block, persistence
   - Tests for multiple chain isolation

* op-supernode: Refactor interop logdb and improve test coverage

This commit reorganizes the interop activity code and adds comprehensive tests:

1. File reorganization:
   - Renamed algo.go to logdb.go for log persistence code
   - Created new algo.go with just verifyInteropMessages
   - Moved invalidateBlock back to interop.go

2. Added LogsDB interface:
   - Defines interface around logs.DB for better testability
   - Enables mock implementations in unit tests

3. Added chain continuity check:
   - verifyPreviousTimestampSealed now returns previous block hash
   - loadLogs verifies block parent matches logsDB hash
   - Added ErrParentHashMismatch error

4. Expanded unit test coverage for logdb:
   - Tests for verifyPreviousTimestampSealed (activation/non-activation)
   - Tests for processBlockLogs (empty, with logs, errors)
   - Tests for loadLogs parent hash mismatch

5. Improved interop_test.go assertions:
   - Verify logsDBs population in constructor tests
   - Verify verifyFn receives correct args
   - Verify timestamps before activation return true
   - Verify Result.IsEmpty for various scenarios
   - Verify data retrieval after handleResult
   - Full cycle tests verify logsDB and L2Heads

* op-supernode: Implement interop message verification

This commit implements the core verification logic for the interop activity,
completing the TDD cycle for the InvalidMessageHalt acceptance test.

Key changes:
- Implement verifyInteropMessages to validate executing messages at each timestamp
- Verify initiating messages exist in source chain's logsDB via Contains query
- Verify timestamp ordering: initiating timestamp < executing timestamp
- Fix verifyPreviousTimestampSealed to accept any sealed block timestamp < ts
  (not just ts-1), handling block times > 1 second
- Add comprehensive unit tests for verification logic

The acceptance test now passes, demonstrating that:
- Valid cross-chain messages are verified successfully
- Invalid executing messages (wrong LogIndex) halt validity advancement
- Safe/unsafe heads continue to advance independently

* op-supernode: Consolidate interop unit tests

Refactor tests for better organization and reduced redundancy:

- Create logdb_test.go for logsDB infrastructure tests
  - TestLogsDB_Persistence (data persistence, multi-chain isolation)
  - TestVerifyPreviousTimestampSealed (7 table-driven cases)
  - TestProcessBlockLogs (5 subtests)
  - TestLoadLogs_ParentHashMismatch

- Rewrite algo_test.go for verification algorithm only
  - TestVerifyInteropMessages_ValidBlocks (3 subtests)
  - TestVerifyInteropMessages_InvalidBlocks (5 subtests)
  - TestVerifyInteropMessages_Errors

- Consolidate interop_test.go for lifecycle/coordination
  - Merge related tests into table-driven patterns
  - Remove trivial getter/empty-case tests

Test count: 62 functions → 19 functions (~55 cases via subtests)
Removed 8 trivial tests that added no value.

* remove unused code

* validate timestamp gap using block time

* implement message expiry time validation

* simplify verifyExecutingMessage logic

* fix logdb timing check and track local safe in acceptance test

* fix loadLogs to process blocks when DB is empty

* simplify timestamp progression test baseline logic

* skip logsDB loading and verification at activation timestamp

For activation-after-genesis, the logsDB cannot handle non-sequential block
sealing (starting from block N instead of genesis). At activation timestamp:
- Skip loading logs (logsDB requires sequential blocks from genesis)
- Skip verification (can't verify cross-chain messages referencing pre-activation data)
- Trust blocks at activation time

Also allow empty logsDB at activation+blockTime (the first real timestamp).

* fix logsDB to start at activation block instead of genesis

* move invalid_message_halt_test to separate package to avoid test pollution
* fix: gaps in VerifyOPCM

* fix: broken test init

* fix: correct env loading

* fix: outdated code

* fix: more outdated code

* fix: bad parsing

* fix: wrong function call

* fix: remove unused MIN verification, fix test env vars

- Remove documented but unimplemented MIN:<value> check type
- Remove unused _verifyMinValue function
- Add missing env vars to test_verifyOpcmCorrectness_succeeds:
  - EXPECTED_L1_PAO_MULTISIG
  - EXPECTED_CHALLENGER
  - EXPECTED_WITHDRAWAL_DELAY_SECONDS

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

* fix: skip mainnet-only checks in testing environment

The _verifyZeroOnMainnet check should also be skipped in testing
environments where we can't control the actual chain state.

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

* fix: use vm mock for isolation

* fix: format

* fix: final test tweaks

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* fix: SuperchainConfig comments and test refactoring

- Remove outdated warning comment from SuperchainConfig
- Bump SuperchainConfig version to 2.4.1
- Fix comment in OPContractsManagerV2
- Refactor test helpers: move NeedsSuperchainConfigUpgrade to testutil package
- Update add-game-type-v2 tests to deploy a full OP chain

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

* fix: semver lock

* fix: broken test when applying superchain config upgrade

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…19076)

* chore: return migrator address on ReadImplementationAddresses output (#819)

* chore: return migrator address on ReadImplementationAddresses output

* chore: use fixed solidity version

* chore: just pr ready

* test: add zero length code test for opcm

* chore: update tests on migrator (#822)

* refactor: replace contract mocks with vm.mock

* fix: read impl typo

* fix: remove nonexistent delayedWETHPermissionedGameProxy from test

The test referenced input_.delayedWETHPermissionedGameProxy which doesn't
exist in the ReadImplementationAddresses.Input struct. The delayedWETH
implementation is read from OPCM's implementations() return value, not
from an input proxy address.

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

* fix: use common test

* fix: handle OPCM V2 feature flag in ReadImplementationAddresses tests

The test was using the `opcm` variable directly, which is only set when
OPCM_V2 feature is disabled. Added `_opcm()` helper to return the correct
instance based on the feature flag.

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

---------

Co-authored-by: IamFlux <175354924+0xiamflux@users.noreply.github.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add TODO checker workflow to docs/ai/ci-ops.md

Adds detailed operational instructions for resolving TODO checker
CI failures in a dedicated file following the docs/ai/ pattern.

The workflow includes:
- CircleCI API commands to find the latest scheduled pipeline
- Parsing job output to identify closed issues
- GitHub API commands to find who closed the issue
- Proper reopening comment format with attribution and traceability

This enables natural language commands like "fix the latest TODO
checker failure" to work automatically via AGENTS.md/CLAUDE.md
guidance that Claude Code reads.

References the new ci-ops.md file from AGENTS.md alongside other
topic-specific documentation.

* Simplify docs

* docs: fix TODO checker workflow to work without CIRCLECI_TOKEN

Updates the TODO checker workflow with two key fixes:

1. Remove CIRCLECI_TOKEN requirement - CircleCI API is publicly
   accessible for this repository, so no authentication needed

2. Fix "who closed the issue" detection - Use GraphQL to find the
   most recent person who closed the issue from the timeline, not
   just the closing PR author. This correctly handles cases where
   an issue was closed via PR, then reopened, then closed directly
   by a different user.

Also improves Step 2 to search through recent scheduled pipelines
to find one with the actual "scheduled-todo-issues" workflow, since
the latest may only contain a "setup" workflow.

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

* Add claude skill for fixing todo check job.

* Put detail in the skill file and simple more human readable instructions in ci-ops.md

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* feat(op-deployer): build contracts in docker

* fix(tests): comments

* fix(tests): comments

* fix(tests): comments

* fix(tests): comments
* op-acceptance: Change to creating super cannon kona games

* op-acceptance: Use the interop prestate dir for kona

* Fix lint

* Enable super cannon kona game type in challenger.
#19077)

* fix: only allow enabling permissioned game types in opcmv2 deployment (#835)

* fix: only allow permissioned game types in opcmv2 deployment

* docs: add comment for permissionless games config in deployopchain

* feat: add isInitialDeployment argument to std validator script

* fix: undo OPCMv1 changes

* fix: old test content

* fix: expect validator errors for disabled games in deploy test

CANNON and CANNON_KONA are intentionally disabled during initial deployment,
so no implementations are registered. The validator correctly flags this as
PLDG-10 and CKDG-10 errors. Update test to expect these errors.

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

* fix: revert on non-PERMISSIONED_CANNON game type in DeployOPChain

Address review feedback: raise an error instead of silently overwriting
the disputeGameType input. Only PERMISSIONED_CANNON is valid for initial
deployment since no prestate exists for permissionless games.

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

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…elated code (#19080)

* Revert "Revert "op-service: rip out deprecated blob sidecars client and relat…"

This reverts commit aaa41a0.

* Remove unused GetBlobs method from MockBlobsFetcher

* Add NewBlobHint and NewLegacyBlobHint methods

* Refactor blob hint generation in PreimageOracle

* Add Test for Blob Hints in Prefetcher

This commit adds comprehensive testing for blob hints in the prefetcher,
covering both legacy and current blob hint types. The test verifies that
the prefetcher can correctly handle and retrieve blob data based on
different hint implementations.

* Refactor Blob Hint Parsing with Improved Validation

Add parseBlobHint function to handle legacy and current blob hint
formats, improving error handling and hint parsing for blob-related
operations

* Remove trailing newline in prefetcher test file
Add descriptions for the `ai/` and `handbook/` directories in the docs README. Refine the CODEOWNERS pattern for security-reviews to be more specific, and fix the trailing slash formatting for consistency.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* Update RewindFinalizedHeadBackward test to expect panic

* Fix rewind test finalized block reference

* Use error handling instead of panic
* mise: upgrade semgrep from 1.90.0 to 1.131.0

Semgrep 1.90.0 has a transitive dependency on opentelemetry-instrumentation
which imports pkg_resources from setuptools. Python 3.12 does not include
setuptools by default in venvs, so when the mise cache is invalidated (by
any change to mise.toml), a fresh pipx install of semgrep 1.90.0 fails with:

  ModuleNotFoundError: No module named 'pkg_resources'

This was reported as semgrep/semgrep#11069 and fixed in later versions.
Upgrading to 1.131.0 resolves the issue.

Co-Authored-By: Kelvin Fichter <kelvinfichter@gmail.com>

* mise: upgrade semgrep from 1.131.0 to 1.137.0

v1.137.0 is the first version that actually bumps the opentelemetry
packages (PR semgrep/semgrep#11180), fixing the pkg_resources
ModuleNotFoundError on Python 3.12 without setuptools.

Co-Authored-By: Kelvin Fichter <kelvinfichter@gmail.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* chore(rust): merge all the rust workspaces

* chore(ci): formatting, fixing dockerfile and ci

* chore: more ci fixes

* Update .circleci/continue/rust-ci.yml

Co-authored-by: Sebastian Stammler <seb@oplabs.co>

* Update .circleci/continue/rust-e2e.yml

Co-authored-by: Sebastian Stammler <seb@oplabs.co>

* Update .circleci/continue/rust-e2e.yml

Co-authored-by: Sebastian Stammler <seb@oplabs.co>

* chore: pr comments

* nit: fix kona path in op-challenger

* chore: fix prestate artifacts path

---------

Co-authored-by: Sebastian Stammler <seb@oplabs.co>
#18866)

* fix: alt da: handle no commitments case when finalized head is updated

* add tests

* update fix
…block (#19114)

* Update L1 genesis handling for genesis L2 block

Clarify that for the genesis L2 block, we always return L1 block 0
without relying on the original configuration's L1 genesis. This allows
for more flexibility in dispute game scenarios involving earlier L1
blocks.

* empty commit to trigger CI checks
)

* op-acceptance: Add test for next super root not being available.

* Move fpp tests to their own package so they can run in parallel with other challenger tests.  Restart the sequencer after the test.
…19136)

The rust workspace unification moved op-alloy under rust/, but the
semgrepignore pattern was not updated, causing semgrep to flag the
mdbook theme's JavaScript try/catch blocks as Solidity violations.

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
The [alias] section in mise.toml has been deprecated in favor of
[tool_alias]. This fixes the deprecation warning on mise startup.
* Merge main and acceptance-test workflows.

Avoids performing duplicate work.

* Switch where anchor references are defined.
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.