forked from ethstorage/optimism
-
Notifications
You must be signed in to change notification settings - Fork 0
Merge op-node/v1.16.5 #145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
blockchaindevsh
wants to merge
103
commits into
op-es
Choose a base branch
from
merge_v1.16.5
base: op-es
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
…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
…esis (ethereum-optimism#18490) * fix: remove todo and update fees depositor address on mainnet (ethereum-optimism#704) * chore: set genesis min withdrawal threshold from ten to two eth (ethereum-optimism#723) * fix: remove unused errors (ethereum-optimism#726)
* test: add tests for OPCMv2.deploy * test: add OPCMV2+interop portal CI run * fix: slight test tweak * fix: no vcs stamping * fix: bug in pulling artifacts
…g to legacy (ethereum-optimism#18453) Introduce a new rollup-boost healthcheck that parses JSON responses from the /healthz endpoint. The existing HTTP status code-based healthcheck is renamed to "legacy" and remains available for backward compatibility. The two healthcheck modes are mutually exclusive.
* jovian: remove feature toggles scope is now fixed * Updated op-geth to v1.101604.0-synctest.0.0.20251120150812-e50f80a16afc * lint * just update-op-geth f48f382 * Use Jovian in test error message * just update-op-geth ba6bdcfef42341fe2b5ce124c31ff2d6b264e9e4
…mism#18462) * feat: have OPCM upgrade allowances be upgrade specific Updates the OPCMv2 check for allowed extra instructions to be specific to releases. When release versions are bumped, the allowances become automatically invalid and would reveal anywhere in the codebase where the allowance is being used. * fix: semver lock * fix: emit instruction key in error * fix: better semantics * docs: proper OPCM versioning policy * fix: final version tweaks
…ism#18547) * feat: have SystemConfig store a ref to last used OPCM * fix: system config test flake
* fix: fuzz failure in system config test * fix: proper skip
…optimism#17924) * op-batcher: thread CLI lifecycle context cancel function to driver and wire up to fatal error condition for throttling loop * simplify wiring and abstract shutdownOnCriticalError method * introduce isCriticalThrottlingRPCError(err) helper * simplify impl * lint * pass handler for closeApp in test environments * add TestBatchSubmitter_CriticalError * slight improvement to test * extend TestBatchSubmitter_ThrottlingEndpoint to cover MethodNotFound case * Embed closeApp in DriverSetup and BatcherService Store closeApp in BatcherService and propagate it through DriverSetup so the driver can access it without a separate parameter. Update BatcherServiceFromCLIConfig/initFromCLIConfig signatures (closeApp moved earlier), remove closeApp arg from NewBatchSubmitter, and guard shutdownOnCriticalError against nil. Update call sites accordingly. * Propagate cancel cause to BatcherService Use context.WithCancelCause and pass its cancel function when creating the batcher so the service can be stopped with a cancel cause. Also expose closeApp in DriverSetup and simplify a test by importing slices and replacing manual loops with slices.Contains. Propagate cancel cause to BatcherService * Use context.WithCancelCause for batcher * Update op-batcher/batcher/driver.go Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com> * Use cancelable context and failure hook for batcher Replace context.WithCancelCause with context.WithCancel and add a closeAppFn that calls p.FailNow with the cause and cancels the batcher context. Pass closeAppFn into BatcherServiceFromCLIConfig and import fmt so tests fail immediately on critical batcher errors. Use cancelable context and failure hook for batcher Log the failure cause and cancel the batcher context on critical errors * Use cancellable context for batcher * Log shutdown error and warn if closeApp missing --------- Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>
…hereum-optimism#18557) - query GitHub API with commit SHA to find PR number for external PRs - fall back to extracting PR number from CIRCLE_PULL_REQUEST URL for internal PRs
* feat: fast check runner for contracts * feat: further script improvements * fix: lint * fix: comments * feat: add fast checks to ci * fix: add missing checks * fix: corrected caching logic * fix: handle interface check bugs
* feat: add audit report * chore: update report with audit fixes commit hash * chore: update release tag * feat: add superchain ops upgrader audit report * chore: rename upgrader audit report * fix: proper report naming * fix: rev sharing item order
…thereum-optimism#18566) * Add tests for future/unknown SystemConfig events * Return typed errors for SystemConfig events Add ErrUnknownEventVersion and ErrUnknownEventType and return wrapped typed errors (%w) when encountering unknown event versions or types. Replace NewCriticalError for ErrParsingSystemConfig with a plain error. Update tests to assert errors with require.ErrorIs and adjust event topics/data accordingly. * Fix error text for unknown event type
…ptimism#18564) * op-acceptance-tests: batcher: add pending nonce busy wait * comment * better name
…optimism#18456) * op-interop-filter: Service skeleton with flags and metrics * feat(op-interop-filter): add service skeleton Add op-interop-filter service scaffolding: **Core structure:** - flags/flags.go: CLI flag definitions with L2 RPC parsing - flags/flags_test.go: Unit tests for flag parsing - filter/config.go: Configuration struct and parsing - filter/service.go: Service lifecycle management - filter/frontend.go: RPC handlers (supervisor and admin) - filter/backend.go: Stub backend (returns ErrUninitialized) - metrics/metrics.go: Prometheus metrics interface and implementation - cmd/main.go: Application entry point **Build infrastructure:** - justfile and Makefile for building - docker-bake.hcl target - Dockerfile builder and target stages - Dockerfile.dockerignore allowlist entry The service compiles and starts but CheckAccessList returns ErrUninitialized until the actual implementation is added. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(op-interop-filter): align with op-faucet and op-interop-mon patterns - Change --l2-rpcs to StringSliceFlag (query chain ID from RPC) - Remove custom ParseL2RPCs parsing and tests - Add doc subcommand for metrics documentation - Add Document() method to metrics - Fix NewMetrics() to take procName parameter - Remove Required: true from flag (use CheckRequired only) - Use "message" key in log.Crit for consistency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(op-interop-filter): use v0.0.0 version to match other services 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: opsuperchain <opsuperchain@slop.bot> Co-authored-by: Claude <noreply@anthropic.com> * fix(op-interop-filter): use procName for metrics namespace * op-interop-filter: Address PR review comments, add Rewind stub, and fix JWT auth * op-interop-filter: Address PR review comments - Remove comment from .gitignore - Remove 'op-geth' from app description to be client-agnostic - Simplify CheckAccessList error handling to match op-supervisor - Update SetFailsafeEnabled to indicate pending implementation - Add JWT secret flag and wire up authentication for admin RPC * op-interop-filter: Add Rewind admin RPC stub Adds Rewind method to AdminFrontend as a stub for future implementation. This will allow operators to recover from reorg-induced stuck states via manual intervention. * op-interop-filter: Wire up JWT secret - Fix ObtainJWTSecret to always generate if file is empty (use true) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * op-interop-filter: Require JWT when admin RPC is enabled Add validation in Config.Check() to ensure a JWT secret path is configured when the admin RPC is enabled. This prevents exposing admin functionality without proper authentication. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * op-interop-filter: Remove gitignore --------- Co-authored-by: opsuperchain <opsuperchain@proton.me> Co-authored-by: opsuperchain <opsuperchain@slop.bot> Co-authored-by: Claude <noreply@anthropic.com>
…thereum-optimism#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>
* asterisc: Remove asterisc scripts. * Remove more CI config * Remove more asterisc references.
…thereum-optimism#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>
…sm#18711) * 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.
…timism#18660) * feat: initial add-game-type-v2 command (ethereum-optimism#770) * WIP: opcmv2 upgrade op chain (ethereum-optimism#752) * feat: upgrade op chain wip * feat: add deployv2 wip * fix: deployerv2 wip * refactor: remove additional V2 version of scripts * refactor: adds OPCM v2 support for UpgradeOPChain.s.sol * refactor: adds OPCM v2 support for UpgradeSuperchainConfig.s.sol * fix: uses correct json key for upgradeInput * fix: uses correct feature flag for OPCM v2 in devfeatures.go * chore: add json tag to ExtraInstruction --------- Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com> * feat: adds intermediary struct for op-deployer upgrade (ethereum-optimism#759) * feat: adds intermediary struct for op-deployer upgrade * chore: moved upgrade scripts to v6_0_0 * chore: remove v2 go scripts * refactor: make v2_0_0 upgrade path to support both OPCM v1 and v2 * feat: add support for both OPCM v1 and v2 on embedded upgrade * refactor: make v6_0_0 fall back to v2_0_0 * refactor: add extra instructions for upgrade superchain input * test: fix op-deployer tests * chore: remove deploy OP chain test step * test: use systemconfig proxy address * fix: remove the unneeded proxyadmin in OPChainConfig in op-deployer * refactor: revert v2_0_0 changes in favor of a new v6_0_0 that supports OPCMv2 * feat: add v6_0_0 upgrade * fix: check for 0 len OPChainConfigs * chore: pre-pr ready * Merge pull request ethereum-optimism#764 from defi-wonderland/fix/opcm2-upgradeopchain-comments fix: opcm2 upgradeopchain comments * refactor: remove enshrined v7_0_0 upgrade in op-deployer (ethereum-optimism#766) * test: use correct game type and pass correct extra instruction to UpgradeOPChain (ethereum-optimism#768) * test: add missing extra instructions for OPCM v2 input * fix: add correct game type for cannon kona * feat: initial add-game-type-v2 command * test: add tests for ShouldAllowV1 flag * refactor: remove shouldAllowV1 flag * chore: remove unused private key flag from the add game type v2 command * chore: remove skipping upgrade test * chore: name changes and comments * chore: update usage description add-game-type-v2 * test: update add-game-type-opcm-v2 tests --------- Co-authored-by: niha <205694301+0xniha@users.noreply.github.com> * chore: opcm2 addgametypev2 comments (ethereum-optimism#780) * chore: move ABI types to lib file * chore: move hardcoded values to constants file * refactor: make abi_types use MustType * test: deploys OPCM v2 for use during CLI testing (ethereum-optimism#784) * test: deploys OPCM v2 for use during CLI testing * chore: reference a github issue for TODO * test: add assertions on the output of add game type command * test: update cli tests (ethereum-optimism#792) * chore: Address review comments (ethereum-optimism#793) * refactor: remove re-declared flags from add-game-type v2 * chore: remove irrelevant TODO * refactor: rename "add-game-type-opcm-v2" command to "add-game-type-v2" * test: add cache dir check for add-game-type-v2 * test: removes cache dir files check on e2e test (ethereum-optimism#794) --------- Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
…timism#18638) * op-node: validate EIP-1559 params in derivation pipeline Add redundant validation for zero elasticity multiplier in EIP-1559 parameters during derivation, providing defense-in-depth against contract-level checks being accidentally removed. The SystemConfig contract already enforces denominator >= 1 and elasticity >= 1, but this adds the same check in the derivation pipeline for redundancy. Closes ethereum-optimism#18625 Co-Authored-By: Kelvin Fichter <kelvinfichter@gmail.com> * op-node: use ValidateHolocene1559Params for EIP-1559 validation - Move validation from ProcessSystemConfigUpdateLogEvent into parseSystemConfigUpdateEIP1559Params - Use eip1559.ValidateHolocene1559Params instead of manual checks - Update op-geth dependency to include elasticity validation (PR ethereum-optimism#743) Co-Authored-By: Kelvin Fichter <kelvinfichter@gmail.com> * op-node: fix test to use valid EIP-1559 params The createMismatchedEIP1559Params test was creating invalid params (denominator=1, elasticity=0) which now triggers validation error from op-geth PR ethereum-optimism#743. Fix by using valid but mismatched params (999, 999). Co-Authored-By: Kelvin Fichter <kelvinfichter@gmail.com> * update go.mod * fix test * update go.mod (after merging op-geth PR) --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com> Co-authored-by: Sebastian Stammler <seb@oplabs.co>
…st (ethereum-optimism#18739) * sysgo: allow OS to assign ports for opreth and rbuilder * sysgo: allow OS to assign ports for rollup-boost * make lint-go
* op-challenger: Use wrapped RPC client with multicaller. Ensures that timeouts are applied to requests. * op-challenger: Convert preimage fetcher to use L1Source. Adds timeouts on requests and more efficient receipt fetching. * op-challenger: Switch generic player to use L1Client to fetch L1Head number * op-challenger: Add flag to set RPC Kind * op-challenger: Add timeout when fetching L2 block headers
…timism#18724) * Add EL eth_simulate acceptance test and init * Strengthen eth_simulate test assertions Add ReturnFullTransactions to simulation params and require the RPC call to succeed. Assert exactly one block and one transaction are returned and verify the transaction is a dynamic fee tx (type 0x2). * Assert blobGasUsed nonzero in eth_simulate test Decode blobGasUsed with hexutil and assert it's nonzero to ensure eth_simulateV1 can estimate DA size. Also fix a comment typo (bock -> block). * Assert eth_simulateV1 errors on genesis block Call eth_simulateV1 with block "0x0" (genesis) and require an error to ensure the method cannot be used on the genesis block move test under "base" directory * tidy * just update-op-geth e4826126d22171e97a31a05c7405b46143384ab7 * Fix spacing in commented replace in go.mod
…hereum-optimism#18624) * Remove go 1.24 feature flag, leaving SysGetRandom syscall enabled * contracts: Remove go 1.24 feature flag, leaving SysGetRandom syscall enabled * Update semver-lock.json * Remove commented-out Features struct and function
* Add timeout to vm-runner * Remove special handling and metric for vm timeout * Handle VM timeout errors differently from other errors in the runner * Don't treat errors in traceProviderCreator as VM timeouts * Combine VM failure metrics and add a reason label * Re-add "_current" to metric name
…coverage (ethereum-optimism#18744) * test(contracts): convert MintManager tests to fuzz tests for broader coverage * docs(contracts): add natspec explaining first mint is uncapped --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…8634) * feat: have upgrade test blocks update every week * fix: performance enhancements * fix: corrected pinned block number statement * fix: correct trigger name * feat: simplify and use cast find block * fix: pass rpc to fork block write step * fix: errant comments
….16.5 Conflicts: .circleci/config.yml .gitmodules go.mod go.sum mise.toml op-node/node/node.go op-node/p2p/gossip.go
|
Circleci config merged. |
qzhodl
approved these changes
Jan 19, 2026
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.
This PR merges op-es with https://github.com/ethereum-optimism/optimism/releases/tag/op-node%2Fv1.16.5, all our e2e tests are passing.
The conflicts in .circleci/config.yml are left to @syntrust .