Skip to content

mise: Define fake install sources for disabled tools#18109

Merged
sebastianst merged 1 commit intodevelopfrom
aj/mise-fake
Nov 3, 2025
Merged

mise: Define fake install sources for disabled tools#18109
sebastianst merged 1 commit intodevelopfrom
aj/mise-fake

Conversation

@ajsutton
Copy link
Copy Markdown
Contributor

@ajsutton ajsutton commented Nov 2, 2025

The latest mise (installed by brew) errors if tools don't have a known install source even if they're disabled. While we control the version of mise used in CI, local development depends on an existing mise to bootstrap and there isn't a good way to ensure it is using a specific version.

The latest mise (installed by brew) errors if tools don't have a known install source even if they're disabled. While we control the version of mise used in CI, local development depends on an existing mise to bootstrap and there isn't a good way to ensure it is using a specific version.
@ajsutton ajsutton requested a review from a team as a code owner November 2, 2025 23:31
@ajsutton ajsutton requested a review from stevennevins November 2, 2025 23:31
@codecov
Copy link
Copy Markdown

codecov bot commented Nov 2, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.67%. Comparing base (ffd02b0) to head (717601f).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #18109      +/-   ##
===========================================
+ Coverage    76.27%   81.67%   +5.39%     
===========================================
  Files          175      120      -55     
  Lines        10521     6499    -4022     
===========================================
- Hits          8025     5308    -2717     
+ Misses        2350     1191    -1159     
+ Partials       146        0     -146     
Flag Coverage Δ
cannon-go-tests-64 ?
contracts-bedrock-tests 81.67% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 55 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Member

@sebastianst sebastianst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

@sebastianst sebastianst added this pull request to the merge queue Nov 3, 2025
Merged via the queue into develop with commit 7bba2b0 Nov 3, 2025
70 checks passed
@sebastianst sebastianst deleted the aj/mise-fake branch November 3, 2025 10:29
QuentinI pushed a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Nov 4, 2025
…sm#18109)

The latest mise (installed by brew) errors if tools don't have a known install source even if they're disabled. While we control the version of mise used in CI, local development depends on an existing mise to bootstrap and there isn't a good way to ensure it is using a specific version.
QuentinI added a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Nov 4, 2025
dailinsubjam pushed a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Nov 8, 2025
…sm#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)
shenkeyao pushed a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Jan 15, 2026
…sm#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)
ClaytonNorthey92 added a commit to hemilabs/optimism that referenced this pull request Jan 28, 2026
* sysext: correctly populate address configuration (#17771)

sysext was previously using the L1Address field from the devnet-env.json,
which netchef does not use. We remove this field to prevent future
confusion and switch to the correct `Address` field.

* op-devstack: give more time for l2 to include bridge tx (#17772)

in persistent devnets with longer block times, it can take longer
than the previously-configured 60 seconds, leading to timeouts and flakes.

* op-acceptance-tests: fix test due to geth breakage (#17757)

* op-acceptance-tests: fix test due to geth breakage

geth changed the value of params.HistoryServeWindow and it broke the test.
https://github.com/ethereum/go-ethereum/pull/32127

* op-acceptance-tests: avoid failing when we can wait

* feat: fix test eth amounts to be smaller (#18044)

* ctb: Skip blueprint DG impl verification (#18054)

* ctb: Skip blueprint DG impl verification

When the deploy dipuste game v2 feature flag is enabled, we should skip
verification of the old v1 implementation blueprints

* assert zero-valued blueprint address

* fix typo

* cannon: Default to cannon VM version 8 (#18062)

* Bump 'current' cannon vm to version 8

* Update docker diff check

* Always build "next" version of cannon

* tests: Non-zero prestate when running DeployDisputeGame (#18057)

* devstack: Enable individual dev features instead of replacing the whole bitmap (#17994)

Allows things to be combined easily and avoids the risk of features being left disabled because they were later overwritten.

* op-acceptance-tests: fix two papercuts (#18067)

- spammer schedules emit warning logs too often.
- DA footprint test does not retry while looking for an L1 origin often enough.
  The root problem (arbitrary timeouts everywhere) can be addressed later.

* cannon: Include state version in witness output (#18068)

* chore: Go cache for several uncached builds (#18056)

* chore: Go cache for several uncached builds

* chore: Comment

* chore: Fix modules for cache

* fix: Don't cache fuzz tests

* chore: Restore cache for make-fuzz

* chore: Better parallel output

* chore: Restore cache namespace

* fix: Typo

* refactor: remove redundant error checks in deriver (#18069)

* cannon: Rework cannon "next" vm handling in e2e tests (#18064)

* Revert "Always build "next" version of cannon"

This reverts commit 71ea70199d2227ea1d0c7f83298bb9abd3acadb3.

* Only use 'next' cannon prestate if it differs from the current prestate

* op-service/apis: remove redundant interface (#18049)

* forklive: Use v2 DG ABI accordingly (#18065)

* feat: cleanup contracts CI and properly run dev feature tests (#18051)

* feat: run dev features thru normal tests

* fix: test suite names

* fix: skip test for v2 dispute game feature

* fix: build go ffi

* fix: build source before coverage tests

* op-devstack: fix TestSubProcess flake (#17815)

The caller of cmd.StdoutPipe() must finish reading from the returned
io.ReadCloser before calling cmd.Wait(), otherwise not all of the
logs will be read. This is a race condition that resulted in
occasional test flakes.

This commit fixes the buggy test and removes a lot of unnecessary code
in the process.

* Enable monitoring in sysgo (#18017)

* WIP

- Passing metrics env vars through in l2_cl_kona
- Added L2MetricsDashboard sysgo lifecycle component

* Documenting and wiring up L2MetricsDashboard

Also adds some util unit tests

* Adding op-reth metrics support

Also:
- Updates README with more useful metrics info
- Fixes error log in l2_cl_kona.go
- Changes default docker exec path to `docker`
- Makes available port util threadsafe

* Updating GetAvailableLocalPort signature

* Adding logging context in kona-node, op-reth, l2 metrics dashboard

* GetEnvVarOrDefault: os.GetEnv => os.LookupEnv to allow for setting ""

* Single env var to enable/disable metrics for all configured components

* Encapsulate vars and functions within sysgo package

* Inline metrics endpoint parsing from logs

* Adding issues to kona and op-reth and referencing in metrics port setting

* Making metrics' subprocesses start/stop in parallel

* Moving PrometheusMetricsEndpoint into l2_metrics_dashboard.go

* Using new L2MetricsRegistrar interface instead of callbacks

Also uses stack.IDWithChain instead of service name

* Simplifying PrometheusMetricsTarget

Still conveys how to interpret the host & port without
storing that on the struct

* Using logger's key-value format where possible

* Handling file close errors when writing metrics configs

* Fixing broken test

* Making metrics url parsing more resilient

* Start/Stop updates

- Removing goroutines from Start
- Blocking on waitgroup in Stop instead of waitgroup or context done

* Removing failure when registering the same endpoint twice

* Removing redundant if

* Unexporting util functions

* Pinning specific versions of prometheus and grafana

Overrides are possible via env vars

* Updating Subprocess.Stop calls after rebase

* op-acceptance-tests: bump spammer budget (#18080)

was seeing lots of insufficient funds errors on Jovian alphanet

* chore(op-acceptance-tests): ci; kurtosis defaults to cci runner (#18083)

* opcm-standard-validator: Add validation for CANNON_KONA games (#18050)

* Add validation input for cannon-kona prestate

* Pass errorPrefix as a parameter to assertValidPermissionlessDisputeGame

* Inject gameType into assertValidPermissionlessDisputeGame

* Add checks for cannon-kona game type

* Cleanup - rename game variables for clarity

* Cleanup: guard logic that is only necessary for v1 games

* Deploy cannon-kona game for standard validator tests

* Update existing test error expectations

* Add CannonKona tests

* Bump contract versions

* Run pre-pr

* Preserve current validation methods and structs

* Run pre-pr

* fix(op-batcher): exempt generic da from max input size (#18074)

* fix(op-batcher): exempt generic da from max input size

* Apply suggestion from @sebastianst

---------

Co-authored-by: Javed Khan <tuxcanfly@gmail.com>
Co-authored-by: Sebastian Stammler <seb@oplabs.co>

* add `Test_ProgramAction_OperatorFeeFixTransition` (#17925)

* add Test_ProgramAction_OperatorFeeFixTransition

* fix

* undo changes to submodule

* respond to review

* remove proxyAdmin inputs from opcm and sv, derive it from the sysCfg, fix tests (#17744)

* remove proxyAdmin inputs from opcm and sv, derive it from the sysCfg, fix tests

* run semver lock for sv

* remove unused imports

* adapt go code, fix go tests

* fix UpgradeOPChain test

* fix addGameType go test

* use semverComp to make interface usage checks flexible

* fix failing ci

* use better naming for old opcm interfaces and related contracts

* fix go tests

* try fix op-acceptance tests

* finally fix op-acceptance tests?

* update block number in justfile and not do u16a upgrade on tests

* add upgradeSuperchainConfig pkg and add e2e bootstrap test for it upgrade in v5_0_0 pkg

* fix failing upgrade go test, add more upgradeOPChain solidity test

* rm old validate fn from sv interface

* rm unused import

* add unexpectedEncoding revert test and improved assertion to upgradOPChainInput

* fix semgrep

* fix upgradeSuperchainConfig script

* make upgrade test fork a specific block

* update addGameType to support the new opcm addGameType interface

* fix go lint

* fixes

* fixes

* fixes

* fix semver and go lint

* fix go test

* fix go test

* fix go test

* fixes

* fixes for add game type go test

* fixes

* remove outdated test

* pull and fix

* chore: Bump kona version in docker build (#18094)

* ctb: Fix OPCM std validator test setup for v2 DG (#18066)

* ctb: Fix OPCM std validator test setup for v2 DG

* fix typo

* op-deployer: Add flags for new v2 dispute game implementations options (#18027)

* op-deployer: Fix error handling in add_game_type CLI parsing.

Previously it exited with an error message when there was no error.

* op-deployer: Add flags for new implementations options

Also provides standard values as defaults.

* chore(op-acceptance-tests): op-acceptor v3.6.1 (#18086)

* opcm: Add CANNON_KONA support for opcm.upgrade (#18059)

* opcm: Add CANNON_KONA support for opcm.upgrade

* fix sepolia upgrade integration test

* run cannon-kona upgrade in integration test

* remove debugme

* fix stdvalidator.test_init

* fix outdated opcm bindings

* update semver; snapshots

* cleanup setNewGameImplV2

* fix semver; fix natspec

* fix op-deployer Migrate input encoding

* fix nits

* fix semantic merge conflict

* fix fmt

* update semver

* only expect cannon-kona reverts if feature flag set

* op-acceptance-tests: Improve DA footprint test stability (#18098)

* test(contracts): enhance L2ToL1MessagePasser test coverage and organization (#18028)

* fix(test): add missing event expectation in burn test

* refactor(test): remove redundant initiateWithdrawal tests and add nonce assertion

* test(contracts): add coverage for version, receive, messageNonce, and burn edge case

* refactor(test): reorganize test contracts to match source function order

* fix(test): restore removed initiateWithdrawal tests with scenario-specific assertions

* refactor(test): remove redundant zero-balance burn test per review

* refactor(test): remove unnecessary contract code length assertion per review

---------

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

* test: enhance OperatorFeeVault test coverage and organization (#18087)

* refactor(test): remove redundant contract name from constructor test

Simplified test_constructor_operatorFeeVault_succeeds to test_constructor_succeeds
to match naming convention used in other FeeVault tests (BaseFeeVault, etc.)

* test(contracts): add version format validation for OperatorFeeVault

Added OperatorFeeVault_Version_Test contract to validate that the version
constant returns a valid semver string using SemverComp.parse()

* refactor(test): reorganize test contracts to match source declaration order

Moved Version_Test before Constructor_Test to match the order in which
version (line 21) and constructor (line 25) are declared in OperatorFeeVault.sol

---------

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

* op-deployer: Support working with V2 fault dispute game contracts (#18024)

* op-deployer: Support working with V2 fault dispute game contracts

* Deploying implementations supports the fault dispute game configuration options previously used by deploy dispute game
* DeployDisputeGame has been updated to work with v1 and v2 contracts
* SetDisputeGameImpl works with and without game args
* ReadImplementationAddresses loads the V2 dispute game addresses

* op-deployer: Don't validate inputs set as game args when v2 is enabled.

* op-deployer: Restore absolute prestate check for V1 contracts.

* opcm: Read super dispute game implementation addresses.

* opcm: Allow clock extension to be zero again

* Store permissionedDisputeGame when V2 enabled

* opcm: Restore the clockExtension > 0 check

* op-acceptance-tests: fix operator fee test (#18104)

fails against isthmus networks. Discovered when running against
jovian betanet.

* opcm: Set cannon_kona init bond during upgrade (#18100)

* opcm: Set cannon_kona init bond during upgrade

* address review comments

* op-dispute-mon: node endpoint error metrics (#17622)

* dispute-mon: Add metric to track node endpoint errors

* dispute-mon: Add node endpoint error count metric

* dispute-mon: Add metric for mixed availability of nodes

* dispute-mon: Add metric to track mixed safety

* dispute-mon: Add metric for disagreeing output roots

* Increase log level for mixed availability

* Use better check for RollupEndpointErrors

* Fix test after merge

* Remove useless logging

* Remove unnecessary fields from Service struct

* Remove unused function and lint fix

* mise: Define fake install sources for disabled tools (#18109)

The latest mise (installed by brew) errors if tools don't have a known install source even if they're disabled. While we control the version of mise used in CI, local development depends on an existing mise to bootstrap and there isn't a good way to ensure it is using a specific version.

* remove DeployProxy (#18122)

* remove DeployProxy

* fixes

* all: Move fork names into new op-core/forks package (#18121)

* fix: use default mips version and use local op-deployer (#18129)

* fix: bump mips version from 7 to 8

* fix: don't require building binary to use justfile with correct op-deployer version

* fix: remove mips version arg

* feat: Use build-no-tests in op-deployers just build command (#18130)

* fix(prompt): add guidance to skip unrelated CI failures (#18127)

* feat(ci): run upgrade tests with dev flags (#18133)

* feat(ci): run upgrade tests with dev flags

Updates CI to run upgrade tests with dev flags enabled. Only OP
will run with dev flags enabled for now, this should be sufficient
and will avoid dramatically increasing CI impact.

* fix: correct cannon kona prestate in validator tests

* opcm: Update OPCM.migrate to support Cannon-Kona games (#18078)

* Update opcm.migrate to set super-cannonKona

* Validate cannonKona prestates during migrate

* Update OCPM migrate tests

* Cleanup: add helper to construct gameType expectations

* Fix game validation test logic

* Fix shadowed var warning

* Rework op-deployer migrate CLI args for absolute prestate

* Read cannonKona prestate in GenerateOPCMMigrateCalldata

* Don't create SuperCannonKona game if prestate is zero

* Update migration gameType helper

* Clean up test logic, perform stricter checks on empty games

* Add error messages

* Clear game args when game impl removed

* Add test with empty cannonKona prestate

* Enforce non-empty cannon prestate

* Bump contract version

* Run just pre-pr

* Cleanup and add another test

* Fix test documentation

* Add new prestate flags to the migrate CLI command

* Update script comment with updated sample input

* Add check for consistent permissionless weth contracts post-migrate

* Bump opcm version again

* Run semver-lock

* fix(op-deployer): update justfile to use current CLI flags (#18143)

* all: update op-geth to pull in fusaka and jovian timestamps (#18131)

* all: update op-geth to pull in fusaka timestamps

* update for scr changes

* point go.mod at op-geth rc

* address comment

* op-service/flags: Modularize fork override flags (#18135)

* chore(op-acceptance-tests): op-acceptor v3.6.2 (#18120)

* op-devstack: debug info when L2CL peers connection fails (#18149)

* feat(ctb): Add the nonce and txHash into the ScheduledTransactions struct (#18097)

* feat(ctb): Add the nonce and txHash into the ScheduledTransactions struct

* chore(ctb): bump the semver on SaferSafes

* feat(ctb): txHash at start of struct

* semver-lock

* fix ITimelockGuard to match

---------

Co-authored-by: Alberto Cuesta Cañada <alberto@oplabs.co>

* feat(l3s): Add support for the default finality lookback (#18071)

* chore(op-acceptance-tests): switch to docker executor (#18084)

* all: Move package predeploys from op-service to op-core (#18145)

* all: Move package predeploys from op-service to op-core

* gofmt

---------

Co-authored-by: Adrian Sutton <adrian@oplabs.co>

* Safer Safes audit fixes (no bytecode changes) (#18147)

* Typo

* Fix natspec notice

* `_blockingThreshold` natspec

* Bump the safe nonce when cancelling

* Accepted trade-off

* We allow cancelling transactions from disabled guards.

* Fixed `changeOwnershipToFallback` natspec.

* Updated version and semver-lock

* Typo

* op-acceptance: Add acceptance test for playing out dispute games (#18085)

* op-acceptance: Add acceptance test for playing out dispute games.

* op-acceptance: Wait for step to be called by honest challenger.

* dsl: Make asChallengerClaim private

* dsl: Support posting the root claim of the bottom game.

* Don't need to use permissioned proposals.

* Cache honest trace accessors.

* Review feedback

* fix(op-acceptance-tests): ci; slack token (#18156)

* op-batcher: refactor (#18174)

* op-batcher: embed ChannelBuilder and remove redundant code

* op-batcher: remove dead code

* op-acceptance-tests: Replace fast games with regular FDGs in withdrawal test (#18152)

* fix(op-deployer): increase cliRunner test timeouts (#18179)

* fix(op-deployer): increase cliRunner test timeouts

* add cliRunner logs for debugging help

* contracts: Load CANNON game implementation from DisputeGameFactory instead of via artifacts (#18155)

* contracts: Load CANNON game implementation from DisputeGameFactory instead of via artifacts

* contracts: Load permissionless WETH implementation dynamically

* contracts: Don't attempt to load game args - the updated DisputeGameFactory that supports them isn't available yet.

* challenger: Stop kona-host using color in logs (#18182)

* SaferSafes audit fixes 2 (#18172)

* Missing `indexed` in an event

* Don't allow configuring a non-enabled safe

* Version and semver-lock

* Disallow the safe address as a fallback owner

* Document why we prefer not to revert

* Disallow a timelock delay of zero, use `setGuard(0)` instead.

* lint and semver-lock

* Simpler natspec

* Update test description

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* chore(op-acceptance-tests): flake-shake; test promotions (#18198)

* feat: introduce fee splitter for revenue share (#17536)

* feat: fee splitter system (#469)


----

Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>
Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com>
Co-authored-by: Chiin <77933451+0xChin@users.noreply.github.com>

* fix: failing tests (#553)

* refactor: revenue sharing config (#538)

* fix: pre pr and semgrep (#565)

* fix: warnings (#571)

* fix: tests failing on fork environment (#575)

* fix: use encode call on constructors (#578)

* feat: add integration splitter test (#581)

* fix: integration test nits (#583)

* test: more coverage on splitter tests (#594)


---------

Co-authored-by: Chiin <77933451+0xChin@users.noreply.github.com>

* fix: add missing operator fee vault field (#616)

* feat: invariants and tests (#595)

* fix: ir informationals (#609)

* fix: pre pr (#622)

* refactor: use cdm (#624)

* fix: update withdrawal gas limit value on check (#627)

* fix: remove rev share field from deploy op chain input struct (#628)

* refactor: remove initializer and vaults getter changes (#631)

* fix: remove immutable check over vaults (#634)


Co-authored-by: 0xng <87835144+0xng@users.noreply.github.com>
Co-authored-by: Funkornaut <107587461+funkornaut001@users.noreply.github.com>
Co-authored-by: Joxess <91908708+Joxess@users.noreply.github.com>

* fix: audit findings (#658)

* fix: pre pr

* feat: add user guide docs for rev sharing on op deployer (#666)

* docs: add create2 comment (#667)

---------

Co-authored-by: Funkornaut <107587461+funkornaut001@users.noreply.github.com>
Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com>
Co-authored-by: Chiin <77933451+0xChin@users.noreply.github.com>
Co-authored-by: Simon Something /DrGoNoGo <83670532+simon-something@users.noreply.github.com>
Co-authored-by: 0xng <87835144+0xng@users.noreply.github.com>
Co-authored-by: Joxess <91908708+Joxess@users.noreply.github.com>

* ci: Use cached solidity compilers (#18140)

Should reduce the likelihood of text file busy errors.

* op-challenger: Support super-kona games (#18184)

* op-node: remove dead code (#18183)

* op-supernode: Runnable and RPC Activities with Heartbeat Example (#18141)

* op-supernode: Runnable and RPC Activities with Heartbeat Example

* Address Changwan's Comments

* fix Makefile Typo

* dispute-mon: new metric to track out-of-sync node endpoints (#18105)

* batch_decoder: Fix & allow config loading via L2 chain ID (#18209)

* op-devstack: remove fetching for cluster depset (#18211)

* refactor(scripts): remove GenerateOPCMMigrateCalldata script (#18212)

* ci: Prepare for kona prestate verification (#18175)

* ci: Prepare for kona prestate verification

* review comments

* add accursed hack

* apply review suggestions

* pipe mise use logs to file

* cannon-kona: Add support for building kona prestate and kona-host (#18144)

* kona: Add a justfile to build a specific version of kona

* Try building on a machine

* Cache properly

* Remove REPO_ROOT

* Build pre-interop and interop kona prestates

* Set the cannon-kona prestate in interop tests.

* ci: Build kona-host

* Test kona-host can execute

* Fix rust image version

* Use two separate machines

* No remote docker for machine executor

* Update rust

* Install clang

* Fix machine config

* Use default docker image since mise is installing rust

* Set kona-host and prestate URL in challenger config

* Remove test-kona step

* Try not installing clang

* Change justfile

* Really force a change

* Back to installing clang

* Restore cannon prestate for kurtosis tests

* Remove forced change var

* Ensure tests that don't use kona can run even if kona components haven't been built.

Add skipped test to actually run cannon-kona game. Doesn't pass yet because kona-host doesn't support ws:// URLs which are used by sysgo.

* Add cannon-kona config for interop challenger.

* Only add cannon-kona games when feature toggle is enabled.

* Use kona v1.2.2

* Fix kona prestate URL

* Only set cannon-kona config for tests that opt-in.
Removes the need for run-kona-host.sh

* op-acceptance-tests: give contract deployer enough eth (#18230)

* op-devstack: refactor how L2 forks are required (#18228)

* remove DeployPreimageOracle scripts (#18151)

* remove DeployPreimageOracle scripts

* try fix go test

* try fix go test

* try fix go test

* fixes

* fixes

* fixes

* fixes

* fix(op-faucet): explicitly define timeouts (#18235)

* fix(op-faucet): explicitly define timeouts

* fix(op-faucet): reduced timeout

* op-e2e: Remove support for L2OO withdrawals (#18201)

op-e2e hasn't had a configuration that used L2OO for a long time so remove the code paths to perform withdrawals pre-fault proofs.

* cannon: Fix shutdown process to ensure preimage server channels are closed (#18229)

* cannon: Fix shutdown process to ensure preimage server channels are closed

kona-host wasn't exiting when the client program completed leaving cannon hung forever.
Closing the file channels sends a signal it actually listens to so it exits.
Also strengthen the fallbacks to ultimately terminate the subprocess forcefully if it ignores even the KILL signal.

* cannon: Remove Signal(Kill) since the Kill method just does that.

* fix(op-acceptance-tests): flake-shake; guard against empty tests. (#18238)

* op-acceptance-tests: run Jovian tests against Pectra and BPO2 (#18005)

* op-acceptance-tests: run Jovian tests against Pectra and BPO2

* fix bug?

logs

* fix it for real this time

* op-devstack: err on malformed multiaddr (#18240)

* Debounce FCU Update (#18234)

* chore: General-purpose Github release binary downloader (#18245)

* chore: Github release binary provider

* fi: Untar

* chore: Comments

* refactor(prompt): remove unnecessary test reordering by source function order (#18248)

* Recommended a Safe fallback owner (#18239)

* chore: Get rid of latitude-1 boxes (#18251)

* chore: Blobless checkouts for some jobs (#18249)

* Enhance Hashing library test coverage and quality (#18195)

* test(contracts): enhance Hashing library test coverage and quality

- Convert hashDepositSource test to fuzz test for broader coverage
- Add harness function for hashCrossDomainMessage to enable proper revert testing
- Add test for hashCrossDomainMessage unknown version revert case
- Add comprehensive test for hashL2toL2CrossDomainMessage function
- Ensure all public functions have test coverage
- Maintain test contract organization matching source function order

* test(contracts): restore original hashDepositSource test as known vector

- Add test_hashDepositSource_knownVector_succeeds alongside fuzz test
- Preserves original test case (0xd25df7858efc1778118fb133ac561b138845361626dfb976699c5287ed0f4959, 0x1)
- Addresses reviewer concern about maintaining historical test coverage
- Both fuzz test and known vector test now pass (11 total tests)

---------

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

* contracts: ReadImplementations output include AnchorStateRegistry + Opcm components (#18241)

* fix(ci): publish-contract-artifacts disable parallel composite upload (#18236)

* fix(ci): publish-contract-artifacts disable parallel composite upload

* add explanatory comment

* ci: move publish-contract-artifacts from latitude to circleci runner

* op-node: Capture driver start log (#18254)

* fix(ci): bump machine size for publish-contract-artifacts (#18257)

* doc: add contract release checklist requirement (#18242)

* doc: add contract release checklist requirement

* Link to finalizing section

---------

Co-authored-by: Maurelian <maurelian@protonmail.ch>

* chore: Drop code persistence from the CI workflows (#18259)

* chore: Drop code persistence

* chore: Install contract dependencies & attach workspace

* chore: Acceptance tests

* chore: Last two latitude boxes gone (#18260)

* chore: Last two latitude boxes gone

* chore: Bump the resources

* fix(contracts-script): adds support for zstd scripts (#18237)

* fix(contracts-script): adds support for zstd scripts

* fix(contracts-script): missing extract support

* fix(op-service): tar transversal attack protection

* fix(op-service): zstd installation as a command

* fix(op-service): pin zstd

* test(contracts): enhance RLPWriter test coverage and organization (#18119)

* test(contracts): enhance RLPWriter test coverage and organization

- Add fuzz test for writeUint to test broader range of values
- Add comprehensive test coverage for writeAddress function
- Add comprehensive test coverage for writeBool function
- Reorganize test contracts to match source function declaration order
  (writeList, writeString, writeAddress, writeUint, writeBool)

All 31 tests passing with improved coverage for previously untested functions.

* refactor(tests): undo RLPWriter test file reordering per reviewer feedback

Restore original test contract order (writeString → writeUint → writeList)
to reduce diff size as requested by reviewer. New test contracts for
writeAddress and writeBool are appended at end of file. No functional
changes to existing tests - only reordering.

---------

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

* op-e2e: Only deploy the fast game in AllocTypeFastGame (#18263)

* op-e2e: Only deploy the fast game in AllocTypeFastGame

Use the fast game alloc in withdrawal tests and not in alphabet tests.
Actually make the fast game fast.

* op-e2e: Use fast games for another withdrawal test

Setup proposer to create permissioned games if fast games aren't enabled.

* op-supernode: Enable P2P for Virtual Nodes (#18213)

* op-supernode: Enable P2P for Virtual Nodes

* remove unit test for disabled p2p

* op-acceptance: Remove work around that creates a "fresh" L2 user (#18265)

* chore(op-acceptance-tests): op-acceptor v3.6.6 (#18266)

Updates op-acceptor to [v3.6.6](https://github.com/ethereum-optimism/infra/releases/tag/op-acceptor%2Fv3.6.6).

* op-node: update OnUnsafeL2Payload to perform ELSync gap filling (#17751)

* op-node: update OnUnsafeL2Payload to handle ELSync

* op-node: add SyncModeReqResp flag

* op-devstack, op-e2e: add SyncModeReqResp=true to keep current behavior

* op-acceptance-tests: matrix for SyncModeReqRespSync and ReqRespSyncDisabled

* fixup

* op-node: change default value for --syncmode.req-resp to true

* Apply suggestion from @pcw109550

Co-authored-by: Changwan Park <pcw109550@gmail.com>

* updated debug logs

* add checks for EL sync alongside CL sync checks

* Update op-devstack/sysgo/l2_cl.go

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

* Update op-node/rollup/driver/sync_deriver.go

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

* Update op-acceptance-tests/tests/sync/clsync/gap_clp2p/sync_test.go

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

* address review comments from seb

---------

Co-authored-by: Changwan Park <pcw109550@gmail.com>
Co-authored-by: Sebastian Stammler <seb@oplabs.co>

* test(contracts): improve RLPReader test coverage and organization (#18232)

* test(contracts): add comprehensive test coverage for RLPReader library

- Add RLPReader_ToRLPItem_Test contract with tests for empty bytes revert and valid conversions
- Add RLPReader_ReadRawBytes_Test contract with tests for various RLP item types
- Reorganize test contracts to match source function declaration order (toRLPItem, readList, readBytes, readRawBytes)
- Rename test contracts to PascalCase for consistency (ReadList_Test, ReadBytes_Test, ReadRawBytes_Test)
- All 45 tests passing with improved coverage for previously untested functions

* refactor(test): restore original test contract order and naming

- Restore original order: readBytes_Test, readList_Test (then new tests)
- Restore original lowercase naming: readBytes_Test, readList_Test
- Keep new test coverage: ToRLPItem_Test, ReadRawBytes_Test
- All 45 tests still passing

---------

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

* op-node: Fix PeekUnsafePayload Test name (#18268)

* chore: Ensure go 1.25.4 compatibility (#18247)

* chore: Update go

* debug: Disable go deps

* chore: reenable abigen

* chore: reenable geth

* chore: reenable mockery

* chore: Replace go deps with binaries

* chore: Replace golangci-lint

* chore: Revert mockery version

* chore: Revert mockery version

* chore: Mockery updates

* chore: Mockery updates

* chore: Revert go version

* debug: Why

* chore: Use default golangci-lint

* debug: Back

* docs(graphite): add vm.expectRevert low-level call pattern rule (#18272)

* docs(graphite): add vm.expectRevert low-level call pattern rule

* docs(graphite): flag missing assertions on vm.expectRevert low-level calls

* ci(contracts): increase heavy-fuzz job resources to 2xlarge (#18276)

* feat: contracts changes required for OPCMv2 (#18244)

* feat: contracts changes required for OPCMv2

* fix: upgrade asr in OPCM

* fix: add ASR tests

* fix: test names

* all: upgrade op-geth (#18280)

* op-dispute-mon: Rename L2BlockNumber to L2SequenceNumber (#18278)

The field is used for both block numbers with output root games and timestamp for super root games.

* temp(ci): reinstate the initialize job for the release workflow (#18284)

* temp: reinstate the initialize job for the release workflow

It just echoes a message and is configured with the correct tag and
branch filters.

* fix echo

* add requires --initialize to subsequent jobs in release workflow (#18285)

* op-devstack: DSL: Configurable attempts for EL NotAdvanced (#18286)

* fix: update expected SuperchainConfigProxy impl and conditionally update it (#18293)

* fix: updated expected SuperchainConfigProxy impl after U17 sepolia upgrade

* fix: conditionally update superchainConfig

* op-challenger: Update version of kona-host in docker image to 1.2.2 (#18231)

* op-challenger: Update version of kona-host in docker image to 1.2.2

* ci: Attempt to create a single source of truth for the kona version

* sysgo: Fix typos

* kona: Update to 1.2.4 (#18302)

* kona: Update to 1.2.4

* kona: Enable challenger acceptance test

* kona: Delete bin dir when cleaning

* kona: Fix key for kona-host cache

* ctb: Fix DisputeGameFactory fuzz tests (#18296)

* cannon: Add go 1.25 tests (#18279)

* cannon: Add go 1.25 tests

* cannon: Use go 1.25.4 for tests.

Simplify and actually run the keccak tests.

* op-e2e: Deflake TestMissingBatchE2E: Retry inclusion check when indexing (#18304)

* op-e2e: Deflake TestMissingBatchE2E: Retry inclusion check when indexing

* use ticker

* handle timeout err

* test(contracts): add version validation test for WETH contract (#18303)

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

* build(contracts): enforce compiler warnings and fix test return value checks (#18264)

* build(contracts): enforce compiler warnings as errors

- Add deny_warnings to foundry.toml default profile
- Add set -e to pre-pr command in justfile

* test(contracts-bedrock): fix unchecked low-level call return values in FeeSplitter tests

- add proper return value checks for low-level .call() operations
- fix Warning 9302 in FeeSplitter.t.sol (3 occurrences)
- fix Warning 9302 in FeeSplitterVaults.t.sol (1 occurrence)

* build(contracts): ignore too-many-warnings error in foundry config

* fix(test): fix assertion logic in FeeSplitter expectRevert tests

- remove assert(!success) after vm.expectRevert() calls
- add success variable reference to suppress unused variable warning

* ci(contracts): add latest artifact fallback to reduce PR build times (#18291)

* ci(contracts): add latest artifact fallback to reduce PR build times

- upload artifacts with "latest" name in addition to checksum-based name in publish-artifacts.sh
- add --fallback-to-latest flag to pull-artifacts.sh
- enable fallback logic to try artifacts-v1-latest.tar.{gz,zst} when exact checksum not found
- update contracts-bedrock-tests job to use --fallback-to-latest flag
- update contracts-bedrock-coverage job to use --fallback-to-latest flag
- update contracts-bedrock-tests-upgrade job to use --fallback-to-latest flag

* refactor(script): extract download_and_extract helper in pull-artifacts

* fix(scripts): prevent path traversal in artifact extraction

* revert: remove pull-artifacts.sh and CI config changes for phased rollout

* Add logfmtms to Log Format Usage (#18297)

* cannon: Fix support for state version 7 in latest docker builds (#18311)

Latest cannon now only supports state version 8, so ensure we use an older cannon for state version 7 when building multicannon.

* cannon: Ensure cannon temp files are removed before exiting. (#18312)

os.Exit doesn't run defer statements before exiting. So return cli.Exit error instead - still lets us set the error code and triggers an exit, but handled by urfave after the function has returned and defer statements have run.

* op-node: Light CL: Frontend Flags (#18270)

* op-node: Light CL: Frontend Flags

* better go

* op-node: Move unsafeOnly related logs to init

* Removed default values for optional flags

* Use IsSequencer instead of isVerifier on syncCfg check

* Early fail by checking invalid flag combinations

* Better logs for unsafe and safe status

* feat: setBatcherHash address overload (#18298)

* feat: setBatcherHash address overload

* chore: semver

* fix: Artifact publishing script (#18275)

* op-sync-tester: Verifier Engine APIs for Jovian (#18307)

* op-acceptance-tests: Include Jovian for Sync Tester HF tests

* op-sync-tester: Support Jovian

* Fix sync tester extra data validation

* Check safe only advancement

* fix comment

* Disable discovery because we cut the CLP2P manually

* ci(contracts): enable latest artifact fallback logic (#18310)

* ci(contracts): enable latest artifact fallback logic

- add --fallback-to-latest flag to pull-artifacts.sh
- enable fallback forcontracts tests, coverage, and upgrade jobs in ci config
- extract download_and_extract helper function in pull-artifacts.sh
- add path traversal protection with --exclude='*../*' flag to tar commands

* test: trigger artifact fallback by modifying test file

* fix(scripts): address bots security concerns in pull-artifacts.sh

- add secure curl flags (--fail, --location, --connect-timeout, --max-time, --tlsv1.2) to prevent hangs and enforce TLS
- update path traversal exclusion pattern from '*../*' to '*..*' to block all paths containing '..' anywhere
- revert test comment change used for CI testing

* op-deployer: record opDeployerVersion in intent and state (#18333)

* docs: add cgt audit report (#18328)

* docs: add cgt audit report

* Update docs/security-reviews/README.md

Co-authored-by: Matt Solomon <matt@mattsolomon.dev>

---------

Co-authored-by: Matt Solomon <matt@mattsolomon.dev>

* all: upgrade op-geth (#18214)

* lsp fixes

* update go versions, delete cannon go1.23 modules

* remove dead code that was panicking

* go mod tidy in cannon modules

* op-program: Update baseline cannon report

* update geth to synctest tag

---------

Co-authored-by: inphi <mlaw2501@gmail.com>

* circleci: Slack context for scheduled-sync-test-op-node (#18341)

* op-chain-ops: add check-jovian cmd (#18269)

* op-chain-ops: add check-jovian cmd

* op-chain-ops: add extra data format validation to check-jovian command

* op-chain-ops: enhance block header validation in check-jovian command to differentiate between zero and non-zero BlobGasUsed

* refactor using op-geth library fns

* Rename checkBlockHeader to checkBlock and improve Jovian activation
checks

* Add secret-key flag to send tx-to-self

When a hex secret key is supplied, send a signed tx-to-self on L2, wait
up to 2 minutes for it to be mined, and use its block for the
BlobGasUsed check. Normalize 0x prefix and surface errors on failure.

* lint

* Require non-zero BlobGasUsed for Jovian

* Use txmgr to send and wait for tx in check-jovian

Replace manual key parsing, signing, and bind.WaitMined with a
SimpleTxManager (txmgr). Add l2endpoint to env and wire txmgr config,
using txmgr.Send to submit and await the self-transfer receipt.

* Validate BlobGasUsed against DA footprint

* Use provided context for transaction send

* Update op-chain-ops/cmd/check-jovian/main.go

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

* Remove comment about BlobGasUsed

* Document secret key option for check-jovian

Add usage examples for CHECK_JOVIAN_SECRET env var and the --secret flag

* Return error on zero DA scalar; harden blobGasUsed

Treat a DA footprint gas scalar of 0 in L1Block as an error (Jovian
should not allow it). Delay calling t.From() until after creating the tx
manager and check the BlobGasUsed pointer before dereferencing to avoid
nil derefs.

* Annotate txmgr logger with component field

* Return error for blocks with no transactions

Treat blocks with zero transactions as an error instead of proceeding.
Retain the inconclusive warning for single-transaction blocks. Compute
DA footprint only for blocks with multiple transactions.

---------

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

* test(contracts): add comprehensive test coverage for Constants library (#18267)

- Split EIP1967 constants test into separate tests for better clarity
- Add tests for ESTIMATION_ADDRESS, DEFAULT_L2_SENDER, GUARD_STORAGE_SLOT, ETHER, and DEPOSITOR_ACCOUNT constants
- Add test for DEFAULT_RESOURCE_CONFIG() function covering all 6 struct fields
- Import IResourceMetering interface for ResourceConfig struct testing

All 8 tests pass successfully.

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

* test(contracts): enhance LegacyMessagePasser test coverage with fuzz tests (#18340)

* test(contracts): convert passMessageToL1 test to fuzz test

- Convert test_passMessageToL1_succeeds to testFuzz_passMessageToL1_succeeds
- Fuzz both message content and sender address for broader coverage
- Fix assertion to use assertTrue() instead of assert()

* refactor(test): improve test naming and validation

- Rename testFuzz_passMessageToL1_succeeds to testFuzz_passMessageToL1_arbitraryInput_succeeds
- Add message length bound (4096 bytes) to prevent out-of-gas in heavy-fuzz CI
- Add negative assertion to verify per-sender separation
- Rename test_version_succeeds to test_version_validFormat_succeeds
- Replace hardcoded version check with format validation (non-empty + 2 dots)

---------

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

* feat(op-validator): add v5.0.0 contracts support (#18299)

* feat(op-validator): add v5.0.0 contracts support

* fix(op-validator): lint

* fix(op-validator): disable 5.0.0 in tests

* fix(op-validator): detect validatoraddress

* fix(op-validator): add comments

* fix(op-validator): use semver to compare

* feat: expose starting root in ASR (#18343)

* feat: expose starting root in ASR

* fix: have function expose struct

* fix: bump circleci image size

* fix: bad test for upgrades

* Enforce deterministic shell script formatting with shfmt (#18329)

* Add shfmt

Fix .editorconfig

* apply formatting with shfmt

* feat: add op-succint contracts (#18277)

* feat: add op-succint contracts

* feat: add types and errors for op-succinct contracts

* fix: some types and OutputRoot -> Proposal

* fix: import errors

* fix: l2Blocknumber to l2SequenceNumber

* fix: remove unused import

* fix: interface compiler version, naming, and semgrep fixes for ci

* Update packages/contracts-bedrock/src/dispute/lib/Types.sol

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* fix: build error for types file

* chore: bump semver lock

* chore: bump semver after conflict

* fix: bump semver lock

* fix: ignore new contract in initializer tests

* docs: add attribution

* fix: bump semver lock

* fix: bump semver

* fix: bump semver

* fix: bump semver lock

* chore: semver lock got hands

* fix: semver lock

* fix: semver lock

* fix: semver lock

* fix: semver lock

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* fix(ci): add branch restriction and label override for artifact fallback (#18330)

* fix(ci): restrict artifact latest fallback to PRs only

- add branch check to only use --fallback-to-latest on non-develop branches
- ensure develop merges build with fresh artifacts

* feat(ci): add force-use-fresh-artifacts label override for artifact fallback

* fix(ci): replace gh cli with curl for label check

* refactor(ci): extract artifact fallback logic to bash script

- move conditional logic from circleci config to use-latest-fallback.sh

* fix(ci): add security flags to curl in use-latest-fallback.sh

* fix(ci): use jq instead of grep for json parsing

* fix(ci): add error handling for github API failures

- wrap curl and jq calls in conditional to catch failures
- default to fallback behavior if API call fails (safe default)
- log warning message when API is unreachable

* SystemConfig: Parse L1 Receipts Atomically Before Application (#18292)

* SystemConfig: Parse L1 Receipts Atomically Before Application

* Change Apply rules to all Valid ; PR Comments

* Add indicies back to error

* fix(op-acceptance-tests): reduce per-package timeout (#18349)

* op-node/rollup/derive: Fix too old batch epoch handling (#18283)

* fix(ci): add dependency installation to heavy fuzz nightly job (#18351)

- add install-contracts-dependencies step in contracts-bedrock-heavy-fuzz-nightly job

* feat(op-deployer): forge verify (#18096)

* feat(op-deployer): forge verify

* fix(op-deployer): state.json verification

* fix(op-deployer): test and lint

* fix(op-deployer): add apply step with validation (disabled)

* fix(op-deployer): add detection for partial verification

* fix(op-deployer): update address

* fix(op-deployer): comments

* fix(op-deployer): test

* fix(op-deployer): make logging debug

* fix(op-deployer): comments

* fix(op-validator): add todo

* chore(ci): op-e2e-cannon-tests; xlarge machine (#18359)

Job kept being killed, probably due to hitting resource limits.

* feat: cgt (#18076)

* feat(cgt): custom gas token

Signed-off-by: Hex <165055168+hexshire@users.noreply.github.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: Ashitaka <96790496+ashitakah@users.noreply.github.com>
Co-authored-by: AgusDuha <81362284+agusduha@users.noreply.github.com>

* feat: add gasPayingTokenName and gasPayingTokenSymbol on json config files

* fix: contracts semver

* fix: remove system config bool

* test: add OptimismPortal2CGT tests

* chore(cgt): set cgt flag l1block & fixes

* fix(linter): resolve goimports formatting issue

* feat: add separate l2 contracts for cgt (#530)

* feat: add L1BlockCGT

* feat: add L2ToL1MessagePasserCGT

* chore: remove test exclution in test validation

* test(cgt): fix failing tests (#529)

* test(cgt): fix failing tests

* test(cgt): fix portal version

* test(cgt): skip tests on forked mode

* fix: predeploys test cgt mismatch

* test(cgt): minor fixes

---------

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

* fix(cgt): revert weth

* cgt: feature flag integration

Updates the implementation to use the new feature flagging system

* config: make backwards compatible

Use the legacy config name so that less needs to change for legacy CGT
chains

* fix: build issue

Remove leftover merge conflict

* fix: better backwards compatibility

* build: fix

* lint: fix

* snapshots: update

* op-deployer: apply test with CGT

Add a specific test for CGT in the intent

* contracts-bedrock: fix versioning

* lint: fix

* deployer: remove standard values

* contracts: semver lock

* contracts-bedrock: fix semver + abis

* cgt: solidity test cleanup

* solidity: fmt

* tests: remove dead imports

* tests: fixup

* cgt: configurable liquidity amount

* feat: configurable native asset liquidity balance

Fix the build for this feature

* cleanup: merge L1Block logic so that we inherit

Keeps it simple because development on Jovian is happening and we will
inherit any Jovian modifications automatically

* snapshots: update

* cgt: inherit logic for L2ToL1MessagePasser

Generally simplifies the code

* semver-lock: update

* lint: fix

* lint: fixup

* interfaces: fix

* fixes: smol

* deploy-config: sane default

* lint: fix

* linting: fix

* lint: fix

* semgrep: fix

* lint: fix

* tests: fix

* tests: fix fuzz

* fix: custom gas token rebase (#17484)

* fix: import in OptimismPortal2CGT test and pre-pr

* fix(cgt): add missing native asset amount (#543)

* fix: upgrade contract  name

* feat: add nativeAssetLiquidityAmount to config json files

* fix: add correct nativeAssetLiquidityAmount in op-deployer

* fix: add correct nativeAssetLiquidityAmount in op-e2e and fix withCustomGasToken argument on op-devstack

* fix: restore OptimismPortal2CGT

* fix: all comments

* fix: comments

* fix: governace

* fix: remove aux

* fix: remove aux

* fix: deploy cgt

* fix: revert cgt deploy config

* fix: deploy config

* chore: run linter

* fix: remove unnecessary GetNativeAssetLiquidityAmount

---------

Co-authored-by: Ashitaka <ashitaka@defi.sucks>
Co-authored-by: agusduha <agusnduha@gmail.com>
Co-authored-by: hexshire <hex@wonderland.xyz>

* fix: l2 genesis pipeline (#554)

* fix: add nativeAssetLiquidityAmount in e2e apply test (#555)

* fix: failing test

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: Ashitaka <ashitaka@defi.sucks>
Co-authored-by: hexshire <hex@wonderland.xyz>
Co-authored-by: Hex <165055168+hexshire@users.noreply.github.com>

* fix: semver lock

* fix: CGT review fixes (#17534)

* fix: json default zero

* feat(cgt): add native asset liquidity amount test & omitempty on cgt struct

* test: check native asset liquidity amount is correctly configured

* feat: add omitempty to name and symbol on cgt intent struct

* fix: check value in cgt

* feat(cgt): add cgt dev feature

* feat: add cgt dev feature

* refactor: set custom gas token (#563)

* feat: add cgt devFeatures and remove useCustomGasToken from DeployOPChainInput

---------

Co-authored-by: Hex <165055168+hexshire@users.noreply.github.com>

* fix: ir informational

* fix: informational

* fix: legacy tag

* feat(cgt): add setNativeAssetLiquidityAmount & L2Genesis max amount check

* feat: add setNativeAssetLiquidityAmount & L2Genesis max amount check

* test: fix bound param in liquidity controller

* fix: remove unused import

* refactor: move max amount check inside setNativeAssetLiquidity

* refactor: make chainIntent.CustomGasToken a non-pointer (#574)

* refactor: make chainIntent.CustomGasToken a non-pointer

* test: fix custom gas token text (#576)

---------

Co-authored-by: Hex <165055168+hexshire@users.noreply.github.com>

* fix: undo tests

Co-authored-by: hexshire <hex@wonderland.xyz>

* fix: cgt portal (#577)

* fix: semver

* fix: cgt tests coverage (#582)

* fix: l2genesis expectRevert amount test

* test: improve l1block coverage

* test: improve l1blockcgt coverage

* test: add isCustomGasToken tests on SystemConfig

* test: improve L2ToL1MessagePasserCGT coverage

* test: improve L2ToL1MessagePasser coverage

* fix: naming pre-pr

* fix(cgt): change L2ToL1MessagePasser & OPContractsManager semver (#584)

* fix: change L2ToL1MessagePasser semver

* fix: change L2ToL1MessagePasser & OPContractsManager  semver

* fix: cgt feature tests (#585)

* fix: cgt feature tests

* fix: deposits with amount 0 when cgt enabled

* Revert "fix: deposits with amount 0 when cgt enabled"

This reverts commit 8bee464d45cf7d4040c4dd1459ffc78de2508024.

* fix: cgt portal (#587)

* fix: ci fixes (#588)

---------

Co-authored-by: Ashitaka <96790496+ashitakah@users.noreply.github.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: Hex <165055168+hexshire@users.noreply.github.com>
Co-authored-by: hexshire <hex@wonderland.xyz>

* fix: semver

* fix: opcm version

* fix: tests

* feat(op-acceptance-tests): add acceptance tests for native CGT across L1/L2 (#17451)

- Gate suite via L1Block.isCustomGasToken(); assert name/symbol non-empty
- L2: value transfer pays CGT token (typed amounts via op-service/eth)
- L2: XDM rejects callvalue; L2StandardBridge legacy withdraw reverts
- L1: Portal receive/deposit rejects ETH; introspect SystemConfig addr
- L1: assert SystemConfig.isCustomGasToken() is true

* fix: custom gas token rebase review comments (#17577)

* chore: use w3 library

* fix: msg error

* refactor(cgt): rename amount & add geq 0 check (#600)

* feat: add NativeAssetLiquidityAmount sign check

* refactor: rename NativeAssetLiquidityAmount to InitialLiquidity

* refactor(cgt): rename json nativeAssetLiquidityAmount to initialLiquidity (#601)

* refactor: rename json nativeAssetLiquidityAmount to initialLiquidity

* fix: only add initialLiquidity to cgt intent struct

---------

Co-authored-by: Hex <165055168+hexshire@users.noreply.github.com>
Co-authored-by: Ashitaka <96790496+ashitakah@users.noreply.github.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>

* fix: cgt review (#17612)

* refactor: replace enableCustomGasToken with cgt devfeature

* feat: remove fund in NativeAssetLiquidity (#605)

* fix(cgt): remove OptimismPortal2 test from exclusions (#606)

* fix: remove OptimismPortal2 test from exclusions

* fix: remove virtual and restore constructor in portal test

* refactor: use low level call to receive test

* refactor(cgt): migrate L1Block and L2ToL1MessagePasser cgt tests (#608)

* refactor: migrate L1Block cgt tests

* refactor: migrate L2ToL1MessagePasser cgt tests

* fix: comments (#607)

* fix: comments

* fix: custom error

* fix: errors and tests

* fix: errors and tests

* fix: cgt tests (#610)

* fix: comments

* fix: custom error

* fix: errors and tests

* fix: errors and tests

* fix: tests

* fix: tests

* fix: weth

* fix: cgt tests (#611)

* fix: comments

* fix: custom error

* fix: errors and tests

* fix: errors and tests

* fix: tests

* fix: tests

* fix: weth

* fix: remove types

* fix: coverage tests (#612)

* fix: separate setUp function tests (#613)

---------

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

* test: custom gas token invariants (#17489)

* test(inv): setup and total sup inv

* test(inv): accounting invariants

* chore: doc

* fix: import in OptimismPortal2CGT test and pre-pr

* fix(cgt): add missing native asset amount (#543)

* fix: upgrade contract  name

* feat: add nativeAssetLiquidityAmount to config json files

* fix: add correct nativeAssetLiquidityAmount in op-deployer

* fix: add correct nativeAssetLiquidityAmount in op-e2e and fix withCustomGasToken argument on op-devstack

* fix: restore OptimismPortal2CGT

* fix: all comments

* fix: comments

* fix: governace

* fix: remove aux

* fix: remove aux

* fix: deploy cgt

* fix: revert cgt deploy config

* fix: deploy config

* chore: run linter

* fix: remove unnecessary GetNativeAssetLiquidityAmount

---------

Co-authored-by: Ashitaka <ashitaka@defi.sucks>
Co-authored-by: agusduha <agusnduha@gmail.com>
Co-authored-by: hexshire <hex@wonderland.xyz>

* fix: l2 genesis pipeline (#554)

* fix: add nativeAssetLiquidityAmount in e2e apply test (#555)

* fix: failing test

* chore: doc

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* chore: remove unused imports

* chore: fix semgrep

* chore: change error name

---------

Co-authored-by: drgorillamd <83670532+drgorillamd@users.noreply.github.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: Ashitaka <ashitaka@defi.sucks>
Co-authored-by: agusduha <agusnduha@gmail.com>
Co-authored-by: hexshire <hex@wonderland.xyz>
Co-authored-by: AgusDuha <81362284+agusduha@users.noreply.github.com>
Co-authored-by: Hex <165055168+hexshire@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* refactor: use skipIfDevFeatureDisabled for cgt predeploys test (#614) (#17621)

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

* fix: tests

* fix: auth minter helper & bound _mint in depositTransaction tests (#17642)

* refactor: auth minter helper tests (#618)

* fix: bound _mint correctly in depositTransaction test function (#619)

* chore: run pre-pr

* chore: address ci errors

* chore: fix go tests

* chore: run checks

* test(wip): fix failing tests

* chore: run pre-pr

* fix: cgt flag tests

* test: skip fee split invriant when CGT enabled

* test: fix l2 genesis override test (#673)

* feat: add ownable liquidity (#671)

* feat: add ownable liquidity

* feat: remove enable and add default liquidity

* feat: pre pr fixed

* fix: initializer

* fix: comments

* fix: comments

* fix: pre-pr

* fix: override

* fix: tests

* fix: cursor issues

* fix: cursor bug bot

* fix: cursor bot

* fix: remove override

* fix: comment

* feat: add checks

* fix: tests

* fix: nil in cgt config

---------

Co-authored-by: agusduha <agusnduha@gmail.com>

* fix: semver

* test: fix cgt fork tests (#676)

* test: fix cgt fork tests

* fix: remove dev flag in L1 tests

* fix: go linter (#679)

* fix: go linter

* fix: with custom gas token func

* test: fix go fuzz (#680)

* fix: cgt config jsons (#681)

* fix: zero owner and sepolia address (#685)

* feat: predeploys (#684)

* fix: predeploys

* fix: predeploys

* fix: L2 genesis

* test: fix cgt with revenue sharing tests (#691)

* fix: semver

* fix: cgt liquidity controller natspec (#694)

* fix: remove dev feature flag from opcm (#695)

* fix: remove dev feature flag from opcm

* fix: lint

---------

Signed-off-by: Hex <165055168+hexshire@users.noreply.github.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: Ashitaka <96790496+ashitakah@users.noreply.github.com>
Co-authored-by: AgusDuha <81362284+agusduha@users.noreply.github.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Ashitaka <ashitaka@defi.sucks>
Co-authored-by: agusduha <agusnduha@gmail.com>
Co-authored-by: Stefano Charissis <stefano@oplabs.co>
Co-authored-by: Simon Something /DrGoNoGo <83670532+simon-something@users.noreply.github.com>
Co-authored-by: drgorillamd <83670532+drgorillamd@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* fix(scripts): skip validation for missing test artifacts (#18367)

* fix(scripts): skip validation for missing test artifacts

- add extractTestFileName() to extract test filename from artifact path
- add testFileExists() to check if test source file exists recursively in test directory
- skip validation in processFile() when test source file does not exist
- add TestExtractTestFileName test
- add TestTestFileExists test with subdirectory validation
- update TestProcessFile to create test source file and artifact structure
- add setupTestDir() helper function for test directory setup
- add createTestArtifact() helper function for artifact creation
- refactor test setup to use helper functions in 5 tests

* fix(script): skip validation for missing test contracts

- add testContractExistsInFile() to check if contract exists in test file
- skip validation in processFile() when test contract not found in source file
- add TestTestContractExistsInFile test

* feat: have heavy-fuzz tests also use dev feature matrix (#18368)

* chore: Github release binary provider: Version check & static cache pather (#18369)

* chore: Promote static cache pather

* chore: Add runtime version check

* feat: OPCM v2 (#18079)

* feat: OPCMv2

* fix: bug in deploying dispute games

* fix: no more opcmv1 changes

* fix: bad interface

* fix: further clean diff

* fix: reduce diff

* fix: undo artifacts diffs

* fix: broken go structs

* fix: opcm output struct ordering

* fix: better tests

* fix: justfile path

* fix: lcov issue

* fix: pr review comments

* fix: pr comments

* fix: rebase tweaks

* fix: contract verification failure

* fix: last few ci issues

* Add DeployFeesDepositor script (#18223)

* Add DeployFeesDepositor script

* Refactor deploy script to remove Output struct

* forge fmt

* Make logResults() pure

* fix return value names

* remove unused import

* Apply suggestions from code review

Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>

* Add missing natspec

* Add natspec to tests

---------

Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>

* fix(scripts): check interfaces and libraries in testContractExistsInFile (#18370)

- update testContractExistsInFile() to match interfaces and libraries in addition to contracts
- add test cases for interface and library validation in TestTestContractExistsInFile

* op-deployer: activate jovian at genesis by default (#18342) (#18348)

* op-deployer: activate jovian at genesis by default (#18342)

* op-deployer: activate jovian at genesis by default

* fix tests for jovian activation

* use inclusive instead of exclusive arg

* op-acceptance-tests: only run Ecotone fees test against compatible networks (#18225)

* feat: add support for blockscout in VerifyOPCM (#18373)

* feat: add support for blockscout in VerifyOPCM

This commit adds support for blockscout in VerifyOPCM and defaults
to blockscout. Etherscan verification can still be used but
blockscout is simpler and more reliable on all networks.

* fix: formatting

* feat: safer safes audit (#18300)

* Use vm.prank(address,bool) for delegateCall, remove DelegateCaller contract (#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

* op-devstack: add WithArchive matcher (#18227)

and use it in the pectra acceptance tests.

* feat: have OPCMv2 revert if user tries to provide address(0) as SystemConfig for upgrade (#18376)

* fix: semver updates

* fix: semver lock

* fix: semver lock again

* op-acceptance: Add acceptance tests for withdrawals using cannon and cannon_kona (#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

* ci: add GitHub Actions workflow to build and attest container images (#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>

* test(contracts): improve DevFeatures test coverage with fuzz tests (#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>

* op-challenger: Update list-games sub command to support optimistic zk games (#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

* contracts: Replace mock contracts with vm.mock functions (#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.

* ci: split bake workflow in protected/unprotected flows (#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>

* chore(op-acceptance-tests): flake-shake; slack notifications for failures only (#18439)

* feat: add new check for strict pragma (#18390)

Adds a new check in the contracts package that confirms that all
source contracts are using a strict pragma instead of a dynamic
one.

* Add Openchain import on CI (#18447)

* start

* add upload to ci

* fix: update CI

* feat: rm update-selectors from pre-pr

* fix: rm checkout from workspace

* Add flashblocks and matrix testing support to sysgo (#18318)

* Fix CI (#18450)

* 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 (#18180)

* op-supernode: Superroot API Activity

* Response Object Cleanup

* Update return struct for full Optimistic Outputs ; In-Proc RPC

* Use eth.NotFound Errors

* op-node: Light CL: Disabling Derivation (#18290)

* 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 (#18389)

* 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 …
shenkeyao pushed a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Feb 2, 2026
…sm#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)
shenkeyao pushed a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Feb 10, 2026
…sm#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)
shenkeyao pushed a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Feb 12, 2026
…sm#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)
QuentinI added a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Feb 20, 2026
…sm#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)
shenkeyao added a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Mar 18, 2026
* Fix caff-node stalling (#213)

* Revert timing changes for beacon

* just command to run the devnet tests.

* Comment out running the devnet tests in CI.

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>
Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Support timestamp env var (#218)

* IL3 Remove redundant "Walking back L1Block" and "will retry" logs (#221)

* Remove logs

* Restore driver log

* Remove retry log

* Restore a log

* Skip BatchFuture (#217)

* Fix length check (#216)

* IA1.6.1 Add batcher service running in TEE  (#205)

* a working script without args

* a working script without args

* everything works in the scripts despite the args

* fix socat proxy script

* working op-batcher inside docker-compose

* rename the script to build batcher enclave image

* cleanup and profile the op-batcher-non-tee

* use port number from env and shorten nc listener timeout as it will not be used in most cases

* fix dasel format

* remove uneeded ESPRESSO_RUN_ENCLAVE_TESTS

* fix scripts

* Add op-batcher-tee image in CI (#210)

* push op-batcher-tee image init

* fix tag and push

* test image creation without enclaver

* try to use env

* fix enclaver download

* use env in docker images yml

* restore other task

* remove unneeded steps

* special case to common case

* use default for op-batcher and tee for op-batcher-tee

* fix double ports mapping

* fix batcher restart test

* add a script to use enclave tool

* works to some extend

* also works for passing in arguments from cmd

* try to upload the image

* add my branch patter

* fix dockerfile

* a simplified version

* adding packages/contracts-bedrock/forge-artifacts to op-batcher-enclave-target

* PCR0 registered in op-batcher-tee docker compose and add monitor for enclave logs

* copy deployment/ to op-batcher-enclave-target

* fix docker-images

* Remove unneeded script

* remove unneeded script and cleanup readme

* fix overlapping ports and move long cmd of op-batcher-tee to script

* update readme

* Fix batcher restart test (#222)

* Fix batcher restart test

* Tune parameters to be more realistic (in particular, increasing
  parallelism to reduce bottleneck on slow L1)
* Improve logging

* Fix go lint

* Download binaries for appropriate architecture in Docker images (#223)

* Add key rotation tests (#224)

* Remove a Caff node comment (#225)

* Remove a comment

* Restore devnet test in CI

* Disable the CI again

* Bump github.com/ulikunitz/xz from 0.5.12 to 0.5.14 (#220)

Bumps [github.com/ulikunitz/xz](https://github.com/ulikunitz/xz) from 0.5.12 to 0.5.14.
- [Commits](ulikunitz/xz@v0.5.12...v0.5.14)

---
updated-dependencies:
- dependency-name: github.com/ulikunitz/xz
  dependency-version: 0.5.14
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Test a challenge game in the docker devnet (#228)

* Add test for devnet challenge game

* Fixes

* Make sure batcher key used by default in the devnet tests is the
  same one registered in the inbox contract
* Remove check in batcher that prevents it from sending transactions
  to Espresso immediately

* Ensures that the deployment files are deleted before building a new devnet. Update README_ESPRESSO.md to remind running docker as a non root user.

* Run devnet tests on CI again.

* Ensure deployment files are not written by the root user.

* Ignore rotate batcher key and change batch inbox owmer tests.

* Clean way of setting UID and GID.

* Ignore devnet tests for now so that we can merge.

* Add fallback values for UID and GID.

* Pinpoint forge version in CI as the linter is complaining.

* Add comment regarding the number of claims.

* Add comment to function TaggedWriter.Write.

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Run smoke devnet test in CI (#231)

* Add smoke test for devnet.
* Run Game Challenge and smoke test in CI.
* Run all the devnet tests locally.

* push (#232)

* forget this commit (#233)

* Add a Buffered Streamer around Espresso Streamer for batcher (#230)

* Add a Buffered Streamer around Espresso Streamer for batcher

Because the `EspressoStreamer` is getting `Reset` during the Batcher process when
building a batch to submit to the `L1`, it hinders progress of the chain in a reasonable
amount of time, which ultimately causes it to stop creating non-empty blocks.

There are a number of factors that are contributing to this issue, but ultimately the
`Reset` is causing the `EspressoStreamer` to restart from `0` and it takes too long
before it catches back up to the next expected batch.

To remedy this, a Buffer can be used to mitigate this `Reset` and revert to a point
that is much closer to the desired next batch.

In testing it has been observed that the `SafeL2` can sometimes move backwards.  To
safe guard against this, it is better to `Reset` to the `FinalizedL2` position instead of
the `SafeL2` as this behavior has not been observed there.

* Rename EspressoStreamer and EspressoStreamerIFace

Based on feedback provided by @QuentinI in PR review:
#230 (comment)

The name `EspressoStreamerIFace` is quite a long name, and the `IFace` suffix isn't
necessary since one could tell it's an `interface` by inspection, or using an `LSP`. The
feedback provided by @QuentinI suggested to rename `EspressoStreamerIFace` to
just `EspressoStreamer` so that it falls in line with our other code approaches.

This change renames `EspressoStreamer` to `BatchStreamer`

This change renames `EspressoStreamerIFace` to `EspressoStreamer`.

* Remove `RemainingBatchesLen` method

Based on feedback received from @QuentinI: #230 (comment)

The only reason `RemainingBatchesLen` exists is to serve as a check, and issue a
warning when things are running.  Even though this matches the existing behavior this
log seems to overlap with the logs corresponding to Undecided Batches which already
log warnings or errors.  As a result this method, and the log that utilizes it, seem to
be unnecessary and should be removed to eliminate noise.

This change removes `RemainingBatchesLen` and the uses of it

* Add `RefreshSafeL1Origin` to `EspressoStreamer` interface

Based on feedback provided by @QuentinI: #230 (comment)

Since the `RefreshSafeL1Origin` method can potentially be utilized in some places that
do not require a full `Refresh`, and for convenience, it makes sense to allow it to be a
separately exposed method distinct from `Refresh`.

This change adds `RefreshSafeL1Origin` as a required method in the
`EspressoStreamer` interface.

* Fix missed renamed references

* Rename enclave smoke test

* Fix refreshSafeL1Origin logic for Buffered Streamer

The buffered streamer is resetting its read position far more than it needs to, ultimately
reproducing the same issue that was already occurring with the unbuffered version.

In inspecting the behavior with a debugger, it seems we're resetting the reset position
unnecessarily when we receive the same safeL1Origin again.  Additionally, the logic
for determining the read position when the safeL1Origin advances also seems flawed,
in that it is very likely to reset too far in the past.  We really want to keep our relative
read position unless we're explicitly told to Reset.

This change addresses these issues in order to try and smooth out the batches being
returned, and avoid unnecessary reprocessing of previous batches.

* Add Unit Tests for BufferedEspressoStreamer

Fix BufferedEspressoStreamer behavior

While adding unit tests for the BufferedEspressoStreamer it was noticed that the
position of the L2 and the L1 for the Buffer were being mixed together at times.  This
would ultimately lead to very difficult to detect bugs based on observed behavior
alone.

With the addition of the unit tests identifying the issue, the buffer adjustment
behavior has been adjusted to apply to the L2 position in isolation away from the
L1 positions.  The L1 positions will cause a larger Reset in the underlying logic.

* Rename tests (#236)

* Remove unneeded service http proxy for docker compose (#238)

* Fix `TestSmoke` failing on CI/CD (#237)

The sigp/lighthouse docker image was upgraded from version `v7.1.0` to
`v8.0.0-rc.0` on `2025-09-29`.  Since the image isn't anchored to a version, this
update gets pulled in, and it seems to have breaking changes with our previous
setup.

This change sets the version of the docker image used specifically to `v7.1.0` so
that the previous behavior we're used to is seen.

Additionally, when `TestSmoke` is running, it initially **MUST** download the images
for the docker containers that wer not built in the `Build Devnet` job.  This delays
the launch and running of the DevNet by quite a bit.

Fix this delay by adding a `docker compose pull` setp to `Build Devnet`

* Fix CI after rebasing celo-14 (#243)

* fix fast tests

* fix go version in dockerfile and ce in streamer_test.go

* update prepare-allocs.sh

* fix prepare-allocs.sh

* try to fix l1-geth docker

* fix op-stack dockerfile

* fix op-stack dockerfile

* try to fix l1-geth dockerfile

* fix config read

* try to fix l1-geth dockerfile

* try to fix challenger gamer

* TN5 withdrawal devnet test (#226)

* Add smoke test for devnet.
* Add test to ensure L2 funds can be withdrawn to L1.

---------

Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>

* Rename DevNet to E2eDevnet (#239)

* Rename DevNet to E2eDevnet

* Remove duplicate name

* Fix low gasLimit in L1 genesis (#241)

* update (#244)

* Streaming streamer (#235)

* Fix pcr0 extraction in docker compose script and correctly shutdown op-proposer-tee (#246)

* fix pcr0 extraction

* stopping op-proposer-tee in script

* revert to old pcr0 extraction as the new pattern breaks the old pattern

* try to fix pcr0 extraction

* upload op-proposer-tee

* Update metrics (#242)

* Update log level (#247)

* Decouple Espresso L1 & OP L1 (#248)

* Add back forgotten config when rebase celo-sync-14

* Fix prepare-allocs after rebasing celo-sync-14 (#250)

* remove doulbe init()

* try to fix prepare-allocs.sh

* enable more workflow

* Skip TestChallengerGame and TestWithdrawal (#251)

* Trigger docker-images workflow

* uncomment dasel put

* skip TestChallengeGame

* skip TestWithdrawal

* mise: Define fake install sources for disabled tools (ethereum-optimism#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)

* Change the logging level for the safe L2 number (#252)

* Update log level

* Reduce logging level

(cherry picked from commit dd97e4c)

* Respect espresso.fetch-api flag (#253)

(cherry picked from commit 6d00dcb)

* Readd devnet tests to CI. (#257)

* Readd devnet tests to CI.
*Fix for batcher restart test in CI.

(cherry picked from commit f37ea91)

* Add a log debouncer to op-service.log package (#259)

(cherry picked from commit 788d28f)

* Add netcat-openbsd to Dockerfile (#262)

* Update log level

* Add duplicate command from Terraform

(cherry picked from commit b775430)

* Add a devnet cleanup script (#261)

* Update log level

* Add cleanup script

* Remove unnecessary commands

(cherry picked from commit dc40b6c)

* Enable circleCI after rebase14 (#265)

* Fix .circleci/config.yaml and lint and most of circleCI tests after rebasing celo-sync-14
* Skip tests (in TEST_PKGS) that need auth or celo-specific rpc specified

---------

Co-authored-by: Artemii Gerasimovich <artemii@espressosys.com>

* Add origin height to Espresso streamer (#255)

* Clean up more loggings (#266)

* Reduce logs

* Remove one more log

* Skip attestation verification (#263)

* Update espresso-tee-contracts submodule to sishan/skip-attestation-verification

* Skip attestation verification to reduce gas costs

* Reduce L1 gas limit from 45M to 16M

* Update snapshots for registerSignerWithoutAttestationVerification

* Ignore lib/automate submodule directory

* fix CI

* Update espresso-tee-contracts submodule

Remove onlyOwner modifier from registerSignerWithoutAttestationVerification

* keep large gasLimit

* circleci: Enable workflow on all branches via API trigger

Allow CircleCI main workflow to run on any branch when triggered via API,
not just webhook triggers. This enables go-lint and go-tests to run on
feature branches.

* Regenerate semver-lock.json after rebase

The initCodeHash for BatchAuthenticator needed to be regenerated
after rebasing onto celo-integration-rebase-14.1.

---------

Co-authored-by: EC2 Default User <ec2-user@ip-172-31-47-181.us-east-2.compute.internal>

* Fix test TestChangeBatchInboxOwner (#264)

* Fix the test TestChangeBatchInboxOwner.
* Ensure the owner of the Batch Authenticator contract is initialized.

* Update README and relevant scripts (#269)

* Remove unused metrics (#273)

* Rename (#275)

* Improve image versioning and repo consistency (#276)

* Add githooks and env

* update path

* test hooks

* change wording

* include docker compose

* Create enclave ami for enclave test (#277)

* create enclave ami

* use new ami and restore the ci workflow and update enclave prepare ami script

* new AMI

* update readme

* Add devnet smoke test with TEE (#268)

* Add devnet smoke test with TEE

* Remove unnecessary extra timeout

* Add consts, remove incorrect setting

* Use consts

* Add missed file

* Blockscout running inside the local devnet (#281)

* Extend the local devnet with blockscout.

* Pinpoint versions of blockscout images.

* Blockscout fetching blocks from caff node.

* Build deployer image in CI

* Upate CI utils

* Saner 'confirmed' logging

* Don't error out on light client issues

* fix the name of deployer factory address

* Add a workaround for query service lag in real-world networks

* Generate more metadata

* More faithful compiler output in verifier

* Don't fall below hotshot origin height

* Remove cache buster to speed up docker image builds

* Adjust channel duration in devnet

* Jump ahead when origin is too low

* Add log line to matching Espresso txn to L2 block

* Fix semver lock

* Fix snapshot lock

* Support environment variables for channel parameters

* Enable EigenDaProxy & MEMSTORE (#274)

* Enable EigenDaProxy & MEMSTORE

* longer eigenda-proxy start period

* enable eigenda at the op-node level

* Don't copy artifacts to batcher image (#290)

* Refactor: replace MultiNode majority rule with SingleNode client and skip deprecated test.

* refactor: remove majority rule and switch to single Espresso client

* Skip deprecated TestEnforceMajorityRule (deprecated under SingleNode)

* Fallback Inbox contract changes (#278)

* Implement changes in the Batch Inbox / Batch Authenticator contracts to support a TEE and non TEE batcher.
* Add some unit tests for the Batch Authenticator and Batch Inbox contracts.
* Remove the failing Circle CI tests

* OP succint support (#287)

Deploy OP Succint contracts on L1.
Spins up op-succinct-challenger and op-succint-proposer services.
Adjust the devnet test `TestChallengeGame`.
Deletes the Demo we made to Celo Labs as we can now spin up a devnet with Blockscout.

* Update error handling (#289)

* Update error handling

* Fix typo

Co-authored-by: Phil <philippe@espressosys.com>

---------

Co-authored-by: Phil <philippe@espressosys.com>

* Document configuration of all services (#291)

* Add readme for config
* Insert image, add more description

* Support Sepolia Devnet with TEE (#288)

* update enclave-entrypoint.bash to correctly deal with external url

* preserve host name for external url

* Skip IsURLAvailable TCP check when using HTTP proxy

* skip VerifyCertTransaction for now

* reuse socat so that it can work for internal url

* comment and skip TestE2eDevnetWithInvalidAttestation

* OP Succinct: Making changes to the derivation pipeline (#293)

* Document how to make changes to the kona repository and propagate them.
* Reference new docker images for the op-succinct proposer and challenger.

* Fix op-succinct dependencies diagram. (#297)

* Simplify checks in the derivation pipeline (#296)

* Remove the superfluous check about the batcher address as now the Batch Inbox contract verifies the sender is legitimate.

* Removed nonexist logs (#298)

* Add support for ZK attestation service (#294)

* Add support for ZK attestation service

* check attestation service url is not nil

* upgrade espresso tee verifier contracts

* fix contracts

* fix merge

* fix tests

* bring back deploy aws nitro

* add support for mock contract

* add support for attestation verifier service

* fix tee tests

* use higher version of github runner

* fix tee args

* fix tee args

* add healthcheck to attestation verifier zk

* increase timeout

* Invalid attestation test passing

* small fixes

* fix TestE2eDevnetWithUnattestedBatcherKey

* fix health check

* fix devnet test

* use 127.0.0.1

* fix regex

* debug

* fix proof generation

* debug

* fix url

* fix url

* remove debug logs

* resolve based on comments

* address comments

* update github runner enclave

* fix based on suggestions

* cleanup logs

* Enable AltDA Espresso E2E using EigenDA Docker proxy (#295)

* Integrate EigenDA via Docker proxy for AltDA Espresso E2E tests

* Scope EigenDA lifecycle to the test and ensure clean startup/teardown

* Extract EigenDA Docker port and image into constants

* Downgrade Dasel (#303)

* Make attestation service url optional

* fix dasel

* fix dasel

* update dockerfiles

* make attestation service required again

* Make the withdraw devnet test pass again (#301)

* Withdraw test passing again on devnet.

* Faster CI

* Deposit into L1 before requesting the withdrawal on L2.

* Add migration related things to readme (#302)


---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Reducing logging when outputting the batch  (#304)

* update logging for the batch

* clean up

* Document code sync procedure (#308)

* Add code sync procedure

* Update links

* Fix format

* Rename files

* Update batchAuthenticator according to audit report (#309)

* update batchAuthenticator according to audit report

* gen bindings and fix fast-tests

* Port ForcedTxs test into devnet test suite (#306)

* Simplify the test as we cannot in practice reduce the window size.

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Reorder checks of isValidBatchTx in derivation pipeline (#310)

* remove warning on every failed tx

* reorder the checks

* Add fallback mechanism test (#305)

* Fallback mechanism test

* Update op-e2e/system/e2esys/setup.go

Co-authored-by: Phil <philippe@espressosys.com>

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Philippe/fix withdraw flakiness (#312)

* Address flakiness.

* Simplify the code

* Fix CI

---------

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Use unified run-enclave.sh script for op-batcher-tee (#299)

* update single run-enclave.sh

* remove BATCHER_PRIVATE_KEY

* update run-enclave.sh

* Test fallback mechanism on devnet (#313)

* Recovery from fallback batcher (#315)

* Fallback recovery

* Add caff node

* Suggestions

* Make ZK Verifier Optional for E2E Testing (#321)

* Make Attestation Verifier Service optional

When the Attestation Verifier Service was added to the integration it
fundamentally modified the testing experience, requiring external
environment variables to be populated in order to run the tests.
Additionally, these environment variable requirements were not
documented in the README_ESPRESSO.md file for reference.

This change modifies the Attestation Verifier Service setup for the
E2E testing environment to make it opt-in instead of being forced
to be enabled.  Additionally, the Verifier URL is no longer required
to run the Batcher.  This is a double-edged sword, however, as it
means that we could potentially deploy the service without the
configuration, and we would potentially be lacking the registered
attestation.

This may be resolvable with a slight modification to the service
configuration, that we would ultimately disable for the E2E
testing environment.

* Fix misspelling

Fix linting error that has caught a misspelling of the work 'Network'.

* Modify configuration address to be required from CLI

With the change of making the Espresso Attestation Service optional
we removed the CLI configuration check that occurs on launch, so
that the E2E tests can still be run.

This has an unfortunate side-effect of allowing the Batcher to be
launched in a state where it is unable to operate as intended due
to user error.  The only indication being a `WARN` log entry to
inform him/her of his/her mistake.

This sort of approach is generally discouraged, yet we still need
to be able to bypass this check for testing purposes.  As a result
the `EspressoAttestationService` value has been modified from being
a simple `string` to being an interface whose value is inspectable
and not allowed to be empty by default.  This allows for the
test configurations to overwrite this behavior, and allow an
optional value in the cases where it is needed.

This should preserve the prior behavior of erroring on launch when
the parameter is not configured or specified, and should also
preserve the new behavior where it is explicitly disabled in
tests.

* Fix some nil references

The EspressoAttestationService configuration value being
an interface makes it a `nil`lable value by default. Care
needs to be taken when accessing this value an referencing
it.

This change adds some additional care in referencing the
value stored within.

* Fix nil access error

The `l1Client` being created assumes that the `sys` returned from the
call is non-nil before checking the error.  This is not guaranteed, and
is most likley not ever the case.  As a result there is a potential for
an error do to attempting an access on a `nil` value.  By moving the
`l1Client` declaration after the error check, we avoid the potential for
this issue.

* Apply linting and formatting changes

* Fix e2e tests - populate default EspressoAttestationService

With the modification of the EspressoAttestationService to an interface
instead of an individual value, we need to ensure that the default
way of launching the Espresso E2E DevNet results in the value being
populated with an empty allowed value.

This still allows for extension and override, without requiring the
value to be specified, which is our intention.  This was missed when
adding the capability originally.

* Cleanup code practices

We have duplicated code that makes the maintenance burden more difficult
than it needs to be.  In many of these scenarios the code that is
duplicated differs by only a single line.  Instead of making the system
more flexible, we ended up duplicating code paths.

This increases the maintenance burden by needing to ensure that these
code paths match in every case where they do not differ, yet they are
independent of each other.  This is not a great approach.

Additionally, we end up with multiple starting points for something that
should not need them.  We also end up storing a configuration that is
unnecessary to store.  This incurs conditional checks where some are not
needed, and ends up making the approach be more confusing than it needs
to be.

This change aims to replace these approaches with one that adheres to
the functional option approach and preserves the existing behavior.

* Revert EspressoAttestionService to a `string`

As it so happens we rely on the `CLIConfig` for `Espresso`, and the
`Batcher` to be serializable.  By utilizing an `interface`, we run into
trouble doing this.  Due this constraint, the `interface` constraint is
not feasible.

This change reverts the value back to a `string`, which should result in
a smaller overall change.  It also opts for a private configuration
value that is inspectable by the `Verify` check, but not directly
configurable.  We expose a method to allow for it to be configured, so
it can only occur within code within the code base itself.  We should
only invoke this via Testing where we need the value to be optional.

This achieves the same result but in a different way.

| NOTE: There may be a better approach to this as well, isntead of
having this be a separate field, we could do something akin to
sql.NullString, where we encode this value as a Marshable `struct`.  The
acess pattern becomes different, but we could directly encode the empty
allowance into the struct itself.

* Add Espresso Attestation Verifier Service to Enclave Test

The Enclave tests are currently failing in CI.  It is dying due to an
error stemming from the lack of the EspressoAttestationService being
configured.  It is likely that this is required for the Enclave tests
specifically.  As a result, we need to add and enable it for the enclave
tests.

* Modify LaunchBatcherInEnclave option

The LaunchBatcherInEnclave essentially launches the batcher externally
within an enclave.  This option actually relies on the Espresso
Attestation Verifier Service to be running.  This is due to the Espresso
Attestation Service only being optional inside of a test environment.
When launched externally, the Batcher is no longer considered to be in a
"test environment", or configurable for testing.  As a result, its
configuration **MUST** be something that can actually be resolvable from
a CLI launch.

Since the Espresso Attestation Verifier Service check is only disabled
within the testing environment, this means it **MUST** be enabled in the
enclave.

For convenience, this option has been added automatically as a part of
the LaunchBatcherInEnclave option, since it depends on it.  This will
minimize accidentl misconfigurations.

* Tee support for EigenDA (#319)

* add eigenda_proxy_url to op-batcher-tee

* fix the url to post to eigenDA

* not hardcoding EIGENDA_PROXY_PORT

* fix the block height config

* Add Batcher Fallback: Channel Not Closed Test (#314)

* Add test to check end of channel fallback

Asana task: https://app.asana.com/1/1208976916964769/project/1209976130071762/task/1211892212379885?focus=true

We need a test to check the fallback Batcher behavior in the event
that the Espresso Batcher is able to submit a partial Channel that is
im progress.

The specific scenario we want to test for is one concerning a
multi-frame channel that has had at least part of the full channel
submitted to the L1 by the Espresso Batcher, then no more.  After
which we swap to the Fallback Batcher, and we should be able to pick
up the missed / incomplete channel, and complete the transactions.

* Rename helper function to match naming pattern

* Fix lint issue with not checking error result of wait.For

* Commit work in progress multi frame channel efforts

* Adjust settings to successfully trigger multi-frame channels

After a mob programming session @quentinl was able to help identify a
a specific combiniation of parameters to successfully and consistently
trigger multi-frames within the Batcher.  This condition is a necessary
precusor to the test being attempted.

This commit updates the test with the information necessary to trigger
this condition and sets the necessary test criteria that we are aiming
to achieve.

* Perform some code cleanup

This change does a few things:

- Address linting issue causing CI failure
- Adjusts some golang forloop usage to be more modern
- Adjust function call signatures to remove unused variables

* Fix bug tracking unsuccessful frames in test

In the `TxManagerIntercept` there is a bug that appends the successful
frames to the unsuccessful ones.  While this bug isn't great in the
information that it taints, it doesn't actually have the large of an
impact on the test as a whole, as the resulting failure condition
would be triggered regardless.

This bug does affect the accurate tracking of failed frames which
could be valuable information for inspection.

* Update espresso/environment/e2e_helpers.go

Co-authored-by: Phil <philippe@espressosys.com>

* Replace Disable Batcher setting references

There are a number of places in our testing setup where we are
explicitly preventing the Batcher from starting on launch.  Instead of
rewriting this same option every time we want to use it, we should
reference a built in option that we can reference continually.  This
allows for non-repeated code and improved documentation as to the point
and purpose of this option.

* Refactor custom wait in test

There's a condition being waited on in the switch to fallback batcher
test.  This wait is useful, and can be reused between tests.  But the
wait itself is somewhat hiding it's intention by being inline defined
within the test itself.  We should pull this wait out so it can be
easily used, and its intention / purpose can be more easily documented.

* Cleanup code reuse in frame decoding

When decoding frame information for one of the Batcher fallback tests,
there are similar code paths taken that result in most of the code being
reused.  We should clean up this code reuse so that we don't repeat
ourselves in order to avoid diverging logic.  Additionally, it allows us
to reduce the amount of code needing to be maintained, and more clearly
document the intention of the code, and the consistency with how we
perform this frame decoding process.

* Relocate deferred stop calls

The Stop calls should occur as close to the launch of the environment as
possible.  As a result, any deferred calls to Stop for the system or the
Espresso Dev Node should occur as close to their occurence as possible.

* Modify Initial L2Verif wait to be longer

With the specific Frame and Channel settings being specified in the
`TestFallbackMechanismIntegrationTestChannelNotClosed` test, the initial
startup check for the L2 Verifier is failing.  This is due to our
settings requiring the Verifier process to take a bit longer than
normal.  In general, we want to give it more time, but the time frame
for the failure is hard-coded in the `wait` function being utilized.
While we **could** add a simple `time.Sleep`, and this would work, this
is generally a bad appraoch as it just adds an unchecked delay.
Instead, we opt to utilize a simple `retry` for up to `n` times.  In
this case, we only need to wait up to `3x` the normal time, so ensure
that we perform at least `3` times.

* Fix failure in Batcher Fallback test

The TestFallbackMechanismIntegrationTestChannelNotClosed test fails
locally without stopping, in spite of the overall time limit being
specified on the test.  After some troubleshooting and debugging, We
were able to chase down the cause to be due to the
`RunSimpleMultiTransactions`.  It's unclear as to why this was causing
the process to hang for as long as it was.  It seemed to not be handling
timeout errors well for some reason.

Either way, we fority this helper by setting an explicit time limit on
it, and referncing the context whenever we're performing channel
operations.  This should allow the channel operations themselves not to
block and hang the test.

After this modification we were able to determine that this process was
failing due to insufficient gas being provided.  For some reason when
running the transactions through this mechanism, we require even more
gas than we're normally need.  This seems a bit odd, perhaps it has to
do with the differences in the transaction construction.  In any case,
we up the gas being provided so that this becomes a non-issue.

* Fix linting issues

* Update espresso/environment/tx_helpers.go

Co-authored-by: Phil <philippe@espressosys.com>

* Correct failure vs success in Send

The triggered conditions for failures and successes are backwards in the
`Send` method of `TxMangerIntercept`.  Their specific frame markers
should be switched.

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Phil <philippe@espressosys.com>

---------

Co-authored-by: Phil <philippe@espressosys.com>

* Move diagram files (#326)

* Update Succinct image versions, update diagram (#329)

* Inactive Batcher Shouldn't Post (#316)

* Check if the batcher is active before publishing to L1/DA

* fix readme lint

* more lint fixes

* check batcher contract

* Fix endless warning

* add batch authenticator address to rollup config

* handle contract undeployed error

* attempt test in CI

* add test to CI

* Revert "add test to CI"

This reverts commit 2a9678a.

* add test to CI

* remove jg/ from branches

* attempt to clean up and make the test more reliable

* fix ci error WaitUntilSafe undefined

* revert 07a82bf

* Fix `anvil_setBalance` not found error

* Simplify isActive check

* add batcher-active-publish-only to devnet tests justfile

* - simplify test, one less batcher switch
- increase timeouts for devnet test

* Cleaned up the code, raise tx waiting time to 60s

* Brought back original timeouts

* started fallback batcher up + lint fix docker compose file

* Ensure that in Espresso mode the batch authenticator address is set.

* Removing all changes to driver.go and the tests are still passing.

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Removes PreRegisteredBatcher code (#327)

* Remove pre authenticated batcher

* fix test

* Update Succinct images

* Streamer namespace range 14.2 (#334)

* Support namespace range endpoint

(cherry picked from commit a73f7b6)

* fix buils

(cherry picked from commit e46909b)

* update docker image

(cherry picked from commit 0774898)

* fix streamer tests

(cherry picked from commit f752aa2)

* fix streamer tests

(cherry picked from commit 168426e)

* fix tests

(cherry picked from commit b942c28)

* fix tests

(cherry picked from commit b96622c)

* use docker instead of cargo to generate allocs.json

(cherry picked from commit efee3ac)

* fix readme

* address comments

* remove fetch api

* Enable and test Transparent proxy upgradability and batcher address update (#337)

* Enable upgradability

* Fix fmt

* Fix file name

* Fix tests

* Clean up tests

* Force clean build

* Add temp artifact verification

* More verification for artifact verification

* Fix build command

* Fix artifact

* Fix artifact

* Fix script

* Fix and simplify the script

* Fix proxyAdmin as well

* Add back verification workflow

* Fix more workflows

* Restore version

* Use EspressoTEEVerifierMock

* Fix TeeType conversion

* Fix fmt

* Fix enum conflict

* Fix version in test

* Fix byte requirement

* Add error

* Enable batcher address update

* Fix typo and remove redundant tests

* Fix owner

* Fix test build

* transfer owner

* Fix more tests

* Fix devnet test

* Fix unused param

* Fix ec2 test

* Fix enclave test

* Fix fmt

* Fix circleCI

* Fix fmt again

* Cleanup

* Move events and errors to interface

* Fix build

* Update proxy admin permission

* Description for TestBatcherSwitching (#335)

* add description for TestBatcherSwitching

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Phil <philippe@espressosys.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Phil <philippe@espressosys.com>

---------

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>
Co-authored-by: Phil <philippe@espressosys.com>

* Add cmd to shutdown all docker containers with TEE (#332)

* cmd to shutdown all services

* Small change to trigger CI

---------

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Guardians rebased (#345)

Co-authored-by: OpenCode <noreply@opencode.ai>

* Audit Document (#339)


Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Security Analysis (#342)


---------

Co-authored-by: Jean Gal <jgatbkk@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Fix and improve steps in the code sync doc (#344)

* Update doc

* Update kona default branch and fix links

* Fix typo

* Typos

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Fix op-deployer build

* Fix go mod and duplicate flag

* Fix go-ffi

* Fix prepare-allocs

* Fix duplicate attribute in pipeline

* Fix test slice

* Fix builder version

* Set timeout for docker-images CI

* Fix devnet tests

* Add missing file

* Fix go version

* Fix go version

* Add missing address

* Use generic way to generate slice

* Fix go version for build-op CIs

* Fix dockerfile

* Continue devnet version fix

* Fix dockerfile

* More dockerfile fix

* More dockerfile fix

* Simplify changes

* More dockerfile fix

* More dockerfile fix

* Add missing event type

* Fix op-node

* Fix op-batcher

* Fix batcher TEE and proposer

* Remove unnecessary changes

* Address Gemini comment

* Restore rootClaim fix

* Remove duplicate flag

* Fix devnet build

* Fix go version, add timeout

* Update moved crate

* Fix the build after rebase (#352)

* Fix op-deployer build

* Fix go mod and duplicate flag

* Fix go-ffi

* Fix prepare-allocs

* Fix duplicate attribute in pipeline

* Fix test slice

* Fix builder version

* Set timeout for docker-images CI

* Fix devnet tests

* Add missing file

* Fix go version

* Fix go version

* Add missing address

* Use generic way to generate slice

* Fix go version for build-op CIs

* Fix dockerfile

* Continue devnet version fix

* Fix dockerfile

* More dockerfile fix

* More dockerfile fix

* Simplify changes

* More dockerfile fix

* More dockerfile fix

* Add missing event type

* Fix op-node

* Fix op-batcher

* Fix batcher TEE and proposer

* Remove unnecessary changes

* Address Gemini comment

* Restore rootClaim fix

* Remove duplicate flag

* Fix devnet build

* Fix go version, add timeout

* Remove duplicate import

* Fix go module flakiness

* Fix refactored types and functions

* Set light client

* Add timeouts for devnet tests

* Investigate test failure

* Fix integration tests 0

* Fix fallback batcher test

* Fix duplicate devnet running issue

* Specify artifact names

* Fix fmt

* Fix challenge game test

* Try fix batcher restart test

* Fix fallback test

* Fix test build

* Remove duplicate builds

* Fix parsing

* Fix duplicate l1-geth-image

* Increase timeout

* Fix fallback

* Fix batcher restart test

* Fix devnet tests 3 and 4

* Fix contracts

* Fix fmt

* More devnet tests

* More contract tests

* Update version for contract tests

* Fix fmt

* Fix foundry

* Fix CI for devnet tests

* Ignore warning

* Fix remaining contract tests

* Fix script

* Fix EOA path

* Fix devnet test command

* more yaml fix

* Fix docker compose spinup

* Remove blockscout

* Move blockscount to monitoring profile

* Free space

* More docker fix

* Fix more

* Fix more

* Add investigation log

* Fix beacon

* Fix timeout

* Fix docker compose dir

* Fix path

* More sequencer fixes

* Fix sequencer

* More CI fix

* Revert devnet test fixes

* Restore more devnet files

* Add back image fix

* Restore streamer

* Restore a devnet fix

* Restore ec2 test fix

* Restore l1 geth fix

* Fix throttle

* Restrict throttle fix scope

* Remove isActiveBatcher

* Remove unnecessary changes

* Restore fallback path fix

* Restore fmt fixes

* Ignore cache error

* Revert foundry version and fmt fixes

* remove fmt check

* fix: mise install (#366)

* Add back necessary contract files

* Fix contract workflow

* Address comments for espresso/docker

* Update espresso/scripts/run-tests-github-actions.sh

Co-authored-by: Theodore Schnepper <Ayiga@MSN.com>

* Remove use of output file

* Remove path from contract names

* Restore more files

* Restore more files

* Revert IproxyAdmin changes

* Remove unneeded IProxyAdmin uses

* Remove more files

* Add back toml

* Add lock

* Replace build

* Fix build timeout

* Fix duplicate build

* Fix more

* Match Celo's changes

* Restore contract files

* Update batcher fallback test

* Improvement the comment

* Remove dead code

* More conflict fixes

* Fix test 11

* Address gemini comments

* Fix test 8

* Restore gotestsum

* Undo unnecessary changes

* Remove helper functions

* Add a missing file

* Improve sha256 installation

* Fix Dockerfile build

* Restore artifactsfs

* Fix Go version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Theodore Schnepper <Ayiga@MSN.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
Co-authored-by: Sishan Long <dlsubjam@gmail.com>
Co-authored-by: Jeb Bearer <jeb.bearer@gmail.com>
Co-authored-by: Artemii Gerasimovich <artemii@espressosys.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: EC2 Default User <ec2-user@ip-172-31-47-181.us-east-2.compute.internal>
Co-authored-by: Sneh Koul <snehkoul1999@gmail.com>
Co-authored-by: Jean Gal <45081726+jjeangal@users.noreply.github.com>
Co-authored-by: miguelCyclone <miguelhongo90@gmail.com>
Co-authored-by: Sneh Koul <35871990+Sneh1999@users.noreply.github.com>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: Jean Gal <jgatbkk@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
shenkeyao pushed a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Mar 20, 2026
…sm#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)
shenkeyao added a commit to EspressoSystems/optimism-espresso-integration that referenced this pull request Mar 20, 2026
* Fix caff-node stalling (#213)

* Revert timing changes for beacon

* just command to run the devnet tests.

* Comment out running the devnet tests in CI.

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>
Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Support timestamp env var (#218)

* IL3 Remove redundant "Walking back L1Block" and "will retry" logs (#221)

* Remove logs

* Restore driver log

* Remove retry log

* Restore a log

* Skip BatchFuture (#217)

* Fix length check (#216)

* IA1.6.1 Add batcher service running in TEE  (#205)

* a working script without args

* a working script without args

* everything works in the scripts despite the args

* fix socat proxy script

* working op-batcher inside docker-compose

* rename the script to build batcher enclave image

* cleanup and profile the op-batcher-non-tee

* use port number from env and shorten nc listener timeout as it will not be used in most cases

* fix dasel format

* remove uneeded ESPRESSO_RUN_ENCLAVE_TESTS

* fix scripts

* Add op-batcher-tee image in CI (#210)

* push op-batcher-tee image init

* fix tag and push

* test image creation without enclaver

* try to use env

* fix enclaver download

* use env in docker images yml

* restore other task

* remove unneeded steps

* special case to common case

* use default for op-batcher and tee for op-batcher-tee

* fix double ports mapping

* fix batcher restart test

* add a script to use enclave tool

* works to some extend

* also works for passing in arguments from cmd

* try to upload the image

* add my branch patter

* fix dockerfile

* a simplified version

* adding packages/contracts-bedrock/forge-artifacts to op-batcher-enclave-target

* PCR0 registered in op-batcher-tee docker compose and add monitor for enclave logs

* copy deployment/ to op-batcher-enclave-target

* fix docker-images

* Remove unneeded script

* remove unneeded script and cleanup readme

* fix overlapping ports and move long cmd of op-batcher-tee to script

* update readme

* Fix batcher restart test (#222)

* Fix batcher restart test

* Tune parameters to be more realistic (in particular, increasing
  parallelism to reduce bottleneck on slow L1)
* Improve logging

* Fix go lint

* Download binaries for appropriate architecture in Docker images (#223)

* Add key rotation tests (#224)

* Remove a Caff node comment (#225)

* Remove a comment

* Restore devnet test in CI

* Disable the CI again

* Bump github.com/ulikunitz/xz from 0.5.12 to 0.5.14 (#220)

Bumps [github.com/ulikunitz/xz](https://github.com/ulikunitz/xz) from 0.5.12 to 0.5.14.
- [Commits](ulikunitz/xz@v0.5.12...v0.5.14)

---
updated-dependencies:
- dependency-name: github.com/ulikunitz/xz
  dependency-version: 0.5.14
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Test a challenge game in the docker devnet (#228)

* Add test for devnet challenge game

* Fixes

* Make sure batcher key used by default in the devnet tests is the
  same one registered in the inbox contract
* Remove check in batcher that prevents it from sending transactions
  to Espresso immediately

* Ensures that the deployment files are deleted before building a new devnet. Update README_ESPRESSO.md to remind running docker as a non root user.

* Run devnet tests on CI again.

* Ensure deployment files are not written by the root user.

* Ignore rotate batcher key and change batch inbox owmer tests.

* Clean way of setting UID and GID.

* Ignore devnet tests for now so that we can merge.

* Add fallback values for UID and GID.

* Pinpoint forge version in CI as the linter is complaining.

* Add comment regarding the number of claims.

* Add comment to function TaggedWriter.Write.

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Run smoke devnet test in CI (#231)

* Add smoke test for devnet.
* Run Game Challenge and smoke test in CI.
* Run all the devnet tests locally.

* push (#232)

* forget this commit (#233)

* Add a Buffered Streamer around Espresso Streamer for batcher (#230)

* Add a Buffered Streamer around Espresso Streamer for batcher

Because the `EspressoStreamer` is getting `Reset` during the Batcher process when
building a batch to submit to the `L1`, it hinders progress of the chain in a reasonable
amount of time, which ultimately causes it to stop creating non-empty blocks.

There are a number of factors that are contributing to this issue, but ultimately the
`Reset` is causing the `EspressoStreamer` to restart from `0` and it takes too long
before it catches back up to the next expected batch.

To remedy this, a Buffer can be used to mitigate this `Reset` and revert to a point
that is much closer to the desired next batch.

In testing it has been observed that the `SafeL2` can sometimes move backwards.  To
safe guard against this, it is better to `Reset` to the `FinalizedL2` position instead of
the `SafeL2` as this behavior has not been observed there.

* Rename EspressoStreamer and EspressoStreamerIFace

Based on feedback provided by @QuentinI in PR review:
#230 (comment)

The name `EspressoStreamerIFace` is quite a long name, and the `IFace` suffix isn't
necessary since one could tell it's an `interface` by inspection, or using an `LSP`. The
feedback provided by @QuentinI suggested to rename `EspressoStreamerIFace` to
just `EspressoStreamer` so that it falls in line with our other code approaches.

This change renames `EspressoStreamer` to `BatchStreamer`

This change renames `EspressoStreamerIFace` to `EspressoStreamer`.

* Remove `RemainingBatchesLen` method

Based on feedback received from @QuentinI: #230 (comment)

The only reason `RemainingBatchesLen` exists is to serve as a check, and issue a
warning when things are running.  Even though this matches the existing behavior this
log seems to overlap with the logs corresponding to Undecided Batches which already
log warnings or errors.  As a result this method, and the log that utilizes it, seem to
be unnecessary and should be removed to eliminate noise.

This change removes `RemainingBatchesLen` and the uses of it

* Add `RefreshSafeL1Origin` to `EspressoStreamer` interface

Based on feedback provided by @QuentinI: #230 (comment)

Since the `RefreshSafeL1Origin` method can potentially be utilized in some places that
do not require a full `Refresh`, and for convenience, it makes sense to allow it to be a
separately exposed method distinct from `Refresh`.

This change adds `RefreshSafeL1Origin` as a required method in the
`EspressoStreamer` interface.

* Fix missed renamed references

* Rename enclave smoke test

* Fix refreshSafeL1Origin logic for Buffered Streamer

The buffered streamer is resetting its read position far more than it needs to, ultimately
reproducing the same issue that was already occurring with the unbuffered version.

In inspecting the behavior with a debugger, it seems we're resetting the reset position
unnecessarily when we receive the same safeL1Origin again.  Additionally, the logic
for determining the read position when the safeL1Origin advances also seems flawed,
in that it is very likely to reset too far in the past.  We really want to keep our relative
read position unless we're explicitly told to Reset.

This change addresses these issues in order to try and smooth out the batches being
returned, and avoid unnecessary reprocessing of previous batches.

* Add Unit Tests for BufferedEspressoStreamer

Fix BufferedEspressoStreamer behavior

While adding unit tests for the BufferedEspressoStreamer it was noticed that the
position of the L2 and the L1 for the Buffer were being mixed together at times.  This
would ultimately lead to very difficult to detect bugs based on observed behavior
alone.

With the addition of the unit tests identifying the issue, the buffer adjustment
behavior has been adjusted to apply to the L2 position in isolation away from the
L1 positions.  The L1 positions will cause a larger Reset in the underlying logic.

* Rename tests (#236)

* Remove unneeded service http proxy for docker compose (#238)

* Fix `TestSmoke` failing on CI/CD (#237)

The sigp/lighthouse docker image was upgraded from version `v7.1.0` to
`v8.0.0-rc.0` on `2025-09-29`.  Since the image isn't anchored to a version, this
update gets pulled in, and it seems to have breaking changes with our previous
setup.

This change sets the version of the docker image used specifically to `v7.1.0` so
that the previous behavior we're used to is seen.

Additionally, when `TestSmoke` is running, it initially **MUST** download the images
for the docker containers that wer not built in the `Build Devnet` job.  This delays
the launch and running of the DevNet by quite a bit.

Fix this delay by adding a `docker compose pull` setp to `Build Devnet`

* Fix CI after rebasing celo-14 (#243)

* fix fast tests

* fix go version in dockerfile and ce in streamer_test.go

* update prepare-allocs.sh

* fix prepare-allocs.sh

* try to fix l1-geth docker

* fix op-stack dockerfile

* fix op-stack dockerfile

* try to fix l1-geth dockerfile

* fix config read

* try to fix l1-geth dockerfile

* try to fix challenger gamer

* TN5 withdrawal devnet test (#226)

* Add smoke test for devnet.
* Add test to ensure L2 funds can be withdrawn to L1.

---------

Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>

* Rename DevNet to E2eDevnet (#239)

* Rename DevNet to E2eDevnet

* Remove duplicate name

* Fix low gasLimit in L1 genesis (#241)

* update (#244)

* Streaming streamer (#235)

* Fix pcr0 extraction in docker compose script and correctly shutdown op-proposer-tee (#246)

* fix pcr0 extraction

* stopping op-proposer-tee in script

* revert to old pcr0 extraction as the new pattern breaks the old pattern

* try to fix pcr0 extraction

* upload op-proposer-tee

* Update metrics (#242)

* Update log level (#247)

* Decouple Espresso L1 & OP L1 (#248)

* Add back forgotten config when rebase celo-sync-14

* Fix prepare-allocs after rebasing celo-sync-14 (#250)

* remove doulbe init()

* try to fix prepare-allocs.sh

* enable more workflow

* Skip TestChallengerGame and TestWithdrawal (#251)

* Trigger docker-images workflow

* uncomment dasel put

* skip TestChallengeGame

* skip TestWithdrawal

* mise: Define fake install sources for disabled tools (ethereum-optimism#18109) (#254)

Co-authored-by: Adrian Sutton <adrian@oplabs.co>
(cherry picked from commit de37992)

* Change the logging level for the safe L2 number (#252)

* Update log level

* Reduce logging level

(cherry picked from commit dd97e4c)

* Respect espresso.fetch-api flag (#253)

(cherry picked from commit 6d00dcb)

* Readd devnet tests to CI. (#257)

* Readd devnet tests to CI.
*Fix for batcher restart test in CI.

(cherry picked from commit f37ea91)

* Add a log debouncer to op-service.log package (#259)

(cherry picked from commit 788d28f)

* Add netcat-openbsd to Dockerfile (#262)

* Update log level

* Add duplicate command from Terraform

(cherry picked from commit b775430)

* Add a devnet cleanup script (#261)

* Update log level

* Add cleanup script

* Remove unnecessary commands

(cherry picked from commit dc40b6c)

* Enable circleCI after rebase14 (#265)

* Fix .circleci/config.yaml and lint and most of circleCI tests after rebasing celo-sync-14
* Skip tests (in TEST_PKGS) that need auth or celo-specific rpc specified

---------

Co-authored-by: Artemii Gerasimovich <artemii@espressosys.com>

* Add origin height to Espresso streamer (#255)

* Clean up more loggings (#266)

* Reduce logs

* Remove one more log

* Skip attestation verification (#263)

* Update espresso-tee-contracts submodule to sishan/skip-attestation-verification

* Skip attestation verification to reduce gas costs

* Reduce L1 gas limit from 45M to 16M

* Update snapshots for registerSignerWithoutAttestationVerification

* Ignore lib/automate submodule directory

* fix CI

* Update espresso-tee-contracts submodule

Remove onlyOwner modifier from registerSignerWithoutAttestationVerification

* keep large gasLimit

* circleci: Enable workflow on all branches via API trigger

Allow CircleCI main workflow to run on any branch when triggered via API,
not just webhook triggers. This enables go-lint and go-tests to run on
feature branches.

* Regenerate semver-lock.json after rebase

The initCodeHash for BatchAuthenticator needed to be regenerated
after rebasing onto celo-integration-rebase-14.1.

---------

Co-authored-by: EC2 Default User <ec2-user@ip-172-31-47-181.us-east-2.compute.internal>

* Fix test TestChangeBatchInboxOwner (#264)

* Fix the test TestChangeBatchInboxOwner.
* Ensure the owner of the Batch Authenticator contract is initialized.

* Update README and relevant scripts (#269)

* Remove unused metrics (#273)

* Rename (#275)

* Improve image versioning and repo consistency (#276)

* Add githooks and env

* update path

* test hooks

* change wording

* include docker compose

* Create enclave ami for enclave test (#277)

* create enclave ami

* use new ami and restore the ci workflow and update enclave prepare ami script

* new AMI

* update readme

* Add devnet smoke test with TEE (#268)

* Add devnet smoke test with TEE

* Remove unnecessary extra timeout

* Add consts, remove incorrect setting

* Use consts

* Add missed file

* Blockscout running inside the local devnet (#281)

* Extend the local devnet with blockscout.

* Pinpoint versions of blockscout images.

* Blockscout fetching blocks from caff node.

* Build deployer image in CI

* Upate CI utils

* Saner 'confirmed' logging

* Don't error out on light client issues

* fix the name of deployer factory address

* Add a workaround for query service lag in real-world networks

* Generate more metadata

* More faithful compiler output in verifier

* Don't fall below hotshot origin height

* Remove cache buster to speed up docker image builds

* Adjust channel duration in devnet

* Jump ahead when origin is too low

* Add log line to matching Espresso txn to L2 block

* Fix semver lock

* Fix snapshot lock

* Support environment variables for channel parameters

* Enable EigenDaProxy & MEMSTORE (#274)

* Enable EigenDaProxy & MEMSTORE

* longer eigenda-proxy start period

* enable eigenda at the op-node level

* Don't copy artifacts to batcher image (#290)

* Refactor: replace MultiNode majority rule with SingleNode client and skip deprecated test.

* refactor: remove majority rule and switch to single Espresso client

* Skip deprecated TestEnforceMajorityRule (deprecated under SingleNode)

* Fallback Inbox contract changes (#278)

* Implement changes in the Batch Inbox / Batch Authenticator contracts to support a TEE and non TEE batcher.
* Add some unit tests for the Batch Authenticator and Batch Inbox contracts.
* Remove the failing Circle CI tests

* OP succint support (#287)

Deploy OP Succint contracts on L1.
Spins up op-succinct-challenger and op-succint-proposer services.
Adjust the devnet test `TestChallengeGame`.
Deletes the Demo we made to Celo Labs as we can now spin up a devnet with Blockscout.

* Update error handling (#289)

* Update error handling

* Fix typo

Co-authored-by: Phil <philippe@espressosys.com>

---------

Co-authored-by: Phil <philippe@espressosys.com>

* Document configuration of all services (#291)

* Add readme for config
* Insert image, add more description

* Support Sepolia Devnet with TEE (#288)

* update enclave-entrypoint.bash to correctly deal with external url

* preserve host name for external url

* Skip IsURLAvailable TCP check when using HTTP proxy

* skip VerifyCertTransaction for now

* reuse socat so that it can work for internal url

* comment and skip TestE2eDevnetWithInvalidAttestation

* OP Succinct: Making changes to the derivation pipeline (#293)

* Document how to make changes to the kona repository and propagate them.
* Reference new docker images for the op-succinct proposer and challenger.

* Fix op-succinct dependencies diagram. (#297)

* Simplify checks in the derivation pipeline (#296)

* Remove the superfluous check about the batcher address as now the Batch Inbox contract verifies the sender is legitimate.

* Removed nonexist logs (#298)

* Add support for ZK attestation service (#294)

* Add support for ZK attestation service

* check attestation service url is not nil

* upgrade espresso tee verifier contracts

* fix contracts

* fix merge

* fix tests

* bring back deploy aws nitro

* add support for mock contract

* add support for attestation verifier service

* fix tee tests

* use higher version of github runner

* fix tee args

* fix tee args

* add healthcheck to attestation verifier zk

* increase timeout

* Invalid attestation test passing

* small fixes

* fix TestE2eDevnetWithUnattestedBatcherKey

* fix health check

* fix devnet test

* use 127.0.0.1

* fix regex

* debug

* fix proof generation

* debug

* fix url

* fix url

* remove debug logs

* resolve based on comments

* address comments

* update github runner enclave

* fix based on suggestions

* cleanup logs

* Enable AltDA Espresso E2E using EigenDA Docker proxy (#295)

* Integrate EigenDA via Docker proxy for AltDA Espresso E2E tests

* Scope EigenDA lifecycle to the test and ensure clean startup/teardown

* Extract EigenDA Docker port and image into constants

* Downgrade Dasel (#303)

* Make attestation service url optional

* fix dasel

* fix dasel

* update dockerfiles

* make attestation service required again

* Make the withdraw devnet test pass again (#301)

* Withdraw test passing again on devnet.

* Faster CI

* Deposit into L1 before requesting the withdrawal on L2.

* Add migration related things to readme (#302)


---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Reducing logging when outputting the batch  (#304)

* update logging for the batch

* clean up

* Document code sync procedure (#308)

* Add code sync procedure

* Update links

* Fix format

* Rename files

* Update batchAuthenticator according to audit report (#309)

* update batchAuthenticator according to audit report

* gen bindings and fix fast-tests

* Port ForcedTxs test into devnet test suite (#306)

* Simplify the test as we cannot in practice reduce the window size.

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Reorder checks of isValidBatchTx in derivation pipeline (#310)

* remove warning on every failed tx

* reorder the checks

* Add fallback mechanism test (#305)

* Fallback mechanism test

* Update op-e2e/system/e2esys/setup.go

Co-authored-by: Phil <philippe@espressosys.com>

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Philippe/fix withdraw flakiness (#312)

* Address flakiness.

* Simplify the code

* Fix CI

---------

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Use unified run-enclave.sh script for op-batcher-tee (#299)

* update single run-enclave.sh

* remove BATCHER_PRIVATE_KEY

* update run-enclave.sh

* Test fallback mechanism on devnet (#313)

* Recovery from fallback batcher (#315)

* Fallback recovery

* Add caff node

* Suggestions

* Make ZK Verifier Optional for E2E Testing (#321)

* Make Attestation Verifier Service optional

When the Attestation Verifier Service was added to the integration it
fundamentally modified the testing experience, requiring external
environment variables to be populated in order to run the tests.
Additionally, these environment variable requirements were not
documented in the README_ESPRESSO.md file for reference.

This change modifies the Attestation Verifier Service setup for the
E2E testing environment to make it opt-in instead of being forced
to be enabled.  Additionally, the Verifier URL is no longer required
to run the Batcher.  This is a double-edged sword, however, as it
means that we could potentially deploy the service without the
configuration, and we would potentially be lacking the registered
attestation.

This may be resolvable with a slight modification to the service
configuration, that we would ultimately disable for the E2E
testing environment.

* Fix misspelling

Fix linting error that has caught a misspelling of the work 'Network'.

* Modify configuration address to be required from CLI

With the change of making the Espresso Attestation Service optional
we removed the CLI configuration check that occurs on launch, so
that the E2E tests can still be run.

This has an unfortunate side-effect of allowing the Batcher to be
launched in a state where it is unable to operate as intended due
to user error.  The only indication being a `WARN` log entry to
inform him/her of his/her mistake.

This sort of approach is generally discouraged, yet we still need
to be able to bypass this check for testing purposes.  As a result
the `EspressoAttestationService` value has been modified from being
a simple `string` to being an interface whose value is inspectable
and not allowed to be empty by default.  This allows for the
test configurations to overwrite this behavior, and allow an
optional value in the cases where it is needed.

This should preserve the prior behavior of erroring on launch when
the parameter is not configured or specified, and should also
preserve the new behavior where it is explicitly disabled in
tests.

* Fix some nil references

The EspressoAttestationService configuration value being
an interface makes it a `nil`lable value by default. Care
needs to be taken when accessing this value an referencing
it.

This change adds some additional care in referencing the
value stored within.

* Fix nil access error

The `l1Client` being created assumes that the `sys` returned from the
call is non-nil before checking the error.  This is not guaranteed, and
is most likley not ever the case.  As a result there is a potential for
an error do to attempting an access on a `nil` value.  By moving the
`l1Client` declaration after the error check, we avoid the potential for
this issue.

* Apply linting and formatting changes

* Fix e2e tests - populate default EspressoAttestationService

With the modification of the EspressoAttestationService to an interface
instead of an individual value, we need to ensure that the default
way of launching the Espresso E2E DevNet results in the value being
populated with an empty allowed value.

This still allows for extension and override, without requiring the
value to be specified, which is our intention.  This was missed when
adding the capability originally.

* Cleanup code practices

We have duplicated code that makes the maintenance burden more difficult
than it needs to be.  In many of these scenarios the code that is
duplicated differs by only a single line.  Instead of making the system
more flexible, we ended up duplicating code paths.

This increases the maintenance burden by needing to ensure that these
code paths match in every case where they do not differ, yet they are
independent of each other.  This is not a great approach.

Additionally, we end up with multiple starting points for something that
should not need them.  We also end up storing a configuration that is
unnecessary to store.  This incurs conditional checks where some are not
needed, and ends up making the approach be more confusing than it needs
to be.

This change aims to replace these approaches with one that adheres to
the functional option approach and preserves the existing behavior.

* Revert EspressoAttestionService to a `string`

As it so happens we rely on the `CLIConfig` for `Espresso`, and the
`Batcher` to be serializable.  By utilizing an `interface`, we run into
trouble doing this.  Due this constraint, the `interface` constraint is
not feasible.

This change reverts the value back to a `string`, which should result in
a smaller overall change.  It also opts for a private configuration
value that is inspectable by the `Verify` check, but not directly
configurable.  We expose a method to allow for it to be configured, so
it can only occur within code within the code base itself.  We should
only invoke this via Testing where we need the value to be optional.

This achieves the same result but in a different way.

| NOTE: There may be a better approach to this as well, isntead of
having this be a separate field, we could do something akin to
sql.NullString, where we encode this value as a Marshable `struct`.  The
acess pattern becomes different, but we could directly encode the empty
allowance into the struct itself.

* Add Espresso Attestation Verifier Service to Enclave Test

The Enclave tests are currently failing in CI.  It is dying due to an
error stemming from the lack of the EspressoAttestationService being
configured.  It is likely that this is required for the Enclave tests
specifically.  As a result, we need to add and enable it for the enclave
tests.

* Modify LaunchBatcherInEnclave option

The LaunchBatcherInEnclave essentially launches the batcher externally
within an enclave.  This option actually relies on the Espresso
Attestation Verifier Service to be running.  This is due to the Espresso
Attestation Service only being optional inside of a test environment.
When launched externally, the Batcher is no longer considered to be in a
"test environment", or configurable for testing.  As a result, its
configuration **MUST** be something that can actually be resolvable from
a CLI launch.

Since the Espresso Attestation Verifier Service check is only disabled
within the testing environment, this means it **MUST** be enabled in the
enclave.

For convenience, this option has been added automatically as a part of
the LaunchBatcherInEnclave option, since it depends on it.  This will
minimize accidentl misconfigurations.

* Tee support for EigenDA (#319)

* add eigenda_proxy_url to op-batcher-tee

* fix the url to post to eigenDA

* not hardcoding EIGENDA_PROXY_PORT

* fix the block height config

* Add Batcher Fallback: Channel Not Closed Test (#314)

* Add test to check end of channel fallback

Asana task: https://app.asana.com/1/1208976916964769/project/1209976130071762/task/1211892212379885?focus=true

We need a test to check the fallback Batcher behavior in the event
that the Espresso Batcher is able to submit a partial Channel that is
im progress.

The specific scenario we want to test for is one concerning a
multi-frame channel that has had at least part of the full channel
submitted to the L1 by the Espresso Batcher, then no more.  After
which we swap to the Fallback Batcher, and we should be able to pick
up the missed / incomplete channel, and complete the transactions.

* Rename helper function to match naming pattern

* Fix lint issue with not checking error result of wait.For

* Commit work in progress multi frame channel efforts

* Adjust settings to successfully trigger multi-frame channels

After a mob programming session @quentinl was able to help identify a
a specific combiniation of parameters to successfully and consistently
trigger multi-frames within the Batcher.  This condition is a necessary
precusor to the test being attempted.

This commit updates the test with the information necessary to trigger
this condition and sets the necessary test criteria that we are aiming
to achieve.

* Perform some code cleanup

This change does a few things:

- Address linting issue causing CI failure
- Adjusts some golang forloop usage to be more modern
- Adjust function call signatures to remove unused variables

* Fix bug tracking unsuccessful frames in test

In the `TxManagerIntercept` there is a bug that appends the successful
frames to the unsuccessful ones.  While this bug isn't great in the
information that it taints, it doesn't actually have the large of an
impact on the test as a whole, as the resulting failure condition
would be triggered regardless.

This bug does affect the accurate tracking of failed frames which
could be valuable information for inspection.

* Update espresso/environment/e2e_helpers.go

Co-authored-by: Phil <philippe@espressosys.com>

* Replace Disable Batcher setting references

There are a number of places in our testing setup where we are
explicitly preventing the Batcher from starting on launch.  Instead of
rewriting this same option every time we want to use it, we should
reference a built in option that we can reference continually.  This
allows for non-repeated code and improved documentation as to the point
and purpose of this option.

* Refactor custom wait in test

There's a condition being waited on in the switch to fallback batcher
test.  This wait is useful, and can be reused between tests.  But the
wait itself is somewhat hiding it's intention by being inline defined
within the test itself.  We should pull this wait out so it can be
easily used, and its intention / purpose can be more easily documented.

* Cleanup code reuse in frame decoding

When decoding frame information for one of the Batcher fallback tests,
there are similar code paths taken that result in most of the code being
reused.  We should clean up this code reuse so that we don't repeat
ourselves in order to avoid diverging logic.  Additionally, it allows us
to reduce the amount of code needing to be maintained, and more clearly
document the intention of the code, and the consistency with how we
perform this frame decoding process.

* Relocate deferred stop calls

The Stop calls should occur as close to the launch of the environment as
possible.  As a result, any deferred calls to Stop for the system or the
Espresso Dev Node should occur as close to their occurence as possible.

* Modify Initial L2Verif wait to be longer

With the specific Frame and Channel settings being specified in the
`TestFallbackMechanismIntegrationTestChannelNotClosed` test, the initial
startup check for the L2 Verifier is failing.  This is due to our
settings requiring the Verifier process to take a bit longer than
normal.  In general, we want to give it more time, but the time frame
for the failure is hard-coded in the `wait` function being utilized.
While we **could** add a simple `time.Sleep`, and this would work, this
is generally a bad appraoch as it just adds an unchecked delay.
Instead, we opt to utilize a simple `retry` for up to `n` times.  In
this case, we only need to wait up to `3x` the normal time, so ensure
that we perform at least `3` times.

* Fix failure in Batcher Fallback test

The TestFallbackMechanismIntegrationTestChannelNotClosed test fails
locally without stopping, in spite of the overall time limit being
specified on the test.  After some troubleshooting and debugging, We
were able to chase down the cause to be due to the
`RunSimpleMultiTransactions`.  It's unclear as to why this was causing
the process to hang for as long as it was.  It seemed to not be handling
timeout errors well for some reason.

Either way, we fority this helper by setting an explicit time limit on
it, and referncing the context whenever we're performing channel
operations.  This should allow the channel operations themselves not to
block and hang the test.

After this modification we were able to determine that this process was
failing due to insufficient gas being provided.  For some reason when
running the transactions through this mechanism, we require even more
gas than we're normally need.  This seems a bit odd, perhaps it has to
do with the differences in the transaction construction.  In any case,
we up the gas being provided so that this becomes a non-issue.

* Fix linting issues

* Update espresso/environment/tx_helpers.go

Co-authored-by: Phil <philippe@espressosys.com>

* Correct failure vs success in Send

The triggered conditions for failures and successes are backwards in the
`Send` method of `TxMangerIntercept`.  Their specific frame markers
should be switched.

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Phil <philippe@espressosys.com>

---------

Co-authored-by: Phil <philippe@espressosys.com>

* Move diagram files (#326)

* Update Succinct image versions, update diagram (#329)

* Inactive Batcher Shouldn't Post (#316)

* Check if the batcher is active before publishing to L1/DA

* fix readme lint

* more lint fixes

* check batcher contract

* Fix endless warning

* add batch authenticator address to rollup config

* handle contract undeployed error

* attempt test in CI

* add test to CI

* Revert "add test to CI"

This reverts commit 2a9678a.

* add test to CI

* remove jg/ from branches

* attempt to clean up and make the test more reliable

* fix ci error WaitUntilSafe undefined

* revert 07a82bf

* Fix `anvil_setBalance` not found error

* Simplify isActive check

* add batcher-active-publish-only to devnet tests justfile

* - simplify test, one less batcher switch
- increase timeouts for devnet test

* Cleaned up the code, raise tx waiting time to 60s

* Brought back original timeouts

* started fallback batcher up + lint fix docker compose file

* Ensure that in Espresso mode the batch authenticator address is set.

* Removing all changes to driver.go and the tests are still passing.

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Removes PreRegisteredBatcher code (#327)

* Remove pre authenticated batcher

* fix test

* Update Succinct images

* Streamer namespace range 14.2 (#334)

* Support namespace range endpoint

(cherry picked from commit a73f7b6)

* fix buils

(cherry picked from commit e46909b)

* update docker image

(cherry picked from commit 0774898)

* fix streamer tests

(cherry picked from commit f752aa2)

* fix streamer tests

(cherry picked from commit 168426e)

* fix tests

(cherry picked from commit b942c28)

* fix tests

(cherry picked from commit b96622c)

* use docker instead of cargo to generate allocs.json

(cherry picked from commit efee3ac)

* fix readme

* address comments

* remove fetch api

* Enable and test Transparent proxy upgradability and batcher address update (#337)

* Enable upgradability

* Fix fmt

* Fix file name

* Fix tests

* Clean up tests

* Force clean build

* Add temp artifact verification

* More verification for artifact verification

* Fix build command

* Fix artifact

* Fix artifact

* Fix script

* Fix and simplify the script

* Fix proxyAdmin as well

* Add back verification workflow

* Fix more workflows

* Restore version

* Use EspressoTEEVerifierMock

* Fix TeeType conversion

* Fix fmt

* Fix enum conflict

* Fix version in test

* Fix byte requirement

* Add error

* Enable batcher address update

* Fix typo and remove redundant tests

* Fix owner

* Fix test build

* transfer owner

* Fix more tests

* Fix devnet test

* Fix unused param

* Fix ec2 test

* Fix enclave test

* Fix fmt

* Fix circleCI

* Fix fmt again

* Cleanup

* Move events and errors to interface

* Fix build

* Update proxy admin permission

* Description for TestBatcherSwitching (#335)

* add description for TestBatcherSwitching

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Phil <philippe@espressosys.com>

* Update espresso/environment/14_batcher_fallback_test.go

Co-authored-by: Phil <philippe@espressosys.com>

---------

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>
Co-authored-by: Phil <philippe@espressosys.com>

* Add cmd to shutdown all docker containers with TEE (#332)

* cmd to shutdown all services

* Small change to trigger CI

---------

Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Guardians rebased (#345)

Co-authored-by: OpenCode <noreply@opencode.ai>

* Audit Document (#339)


Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Security Analysis (#342)


---------

Co-authored-by: Jean Gal <jgatbkk@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Keyao Shen <shenkeyao@gmail.com>

* Fix and improve steps in the code sync doc (#344)

* Update doc

* Update kona default branch and fix links

* Fix typo

* Typos

---------

Co-authored-by: Philippe Camacho <philippe@espressosys.com>

* Fix op-deployer build

* Fix go mod and duplicate flag

* Fix go-ffi

* Fix prepare-allocs

* Fix duplicate attribute in pipeline

* Fix test slice

* Fix builder version

* Set timeout for docker-images CI

* Fix devnet tests

* Add missing file

* Fix go version

* Fix go version

* Add missing address

* Use generic way to generate slice

* Fix go version for build-op CIs

* Fix dockerfile

* Continue devnet version fix

* Fix dockerfile

* More dockerfile fix

* More dockerfile fix

* Simplify changes

* More dockerfile fix

* More dockerfile fix

* Add missing event type

* Fix op-node

* Fix op-batcher

* Fix batcher TEE and proposer

* Remove unnecessary changes

* Address Gemini comment

* Restore rootClaim fix

* Remove duplicate flag

* Fix devnet build

* Fix go version, add timeout

* Update moved crate

* Fix the build after rebase (#352)

* Fix op-deployer build

* Fix go mod and duplicate flag

* Fix go-ffi

* Fix prepare-allocs

* Fix duplicate attribute in pipeline

* Fix test slice

* Fix builder version

* Set timeout for docker-images CI

* Fix devnet tests

* Add missing file

* Fix go version

* Fix go version

* Add missing address

* Use generic way to generate slice

* Fix go version for build-op CIs

* Fix dockerfile

* Continue devnet version fix

* Fix dockerfile

* More dockerfile fix

* More dockerfile fix

* Simplify changes

* More dockerfile fix

* More dockerfile fix

* Add missing event type

* Fix op-node

* Fix op-batcher

* Fix batcher TEE and proposer

* Remove unnecessary changes

* Address Gemini comment

* Restore rootClaim fix

* Remove duplicate flag

* Fix devnet build

* Fix go version, add timeout

* Remove duplicate import

* Fix go module flakiness

* Fix refactored types and functions

* Set light client

* Add timeouts for devnet tests

* Investigate test failure

* Fix integration tests 0

* Fix fallback batcher test

* Fix duplicate devnet running issue

* Specify artifact names

* Fix fmt

* Fix challenge game test

* Try fix batcher restart test

* Fix fallback test

* Fix test build

* Remove duplicate builds

* Fix parsing

* Fix duplicate l1-geth-image

* Increase timeout

* Fix fallback

* Fix batcher restart test

* Fix devnet tests 3 and 4

* Fix contracts

* Fix fmt

* More devnet tests

* More contract tests

* Update version for contract tests

* Fix fmt

* Fix foundry

* Fix CI for devnet tests

* Ignore warning

* Fix remaining contract tests

* Fix script

* Fix EOA path

* Fix devnet test command

* more yaml fix

* Fix docker compose spinup

* Remove blockscout

* Move blockscount to monitoring profile

* Free space

* More docker fix

* Fix more

* Fix more

* Add investigation log

* Fix beacon

* Fix timeout

* Fix docker compose dir

* Fix path

* More sequencer fixes

* Fix sequencer

* More CI fix

* Revert devnet test fixes

* Restore more devnet files

* Add back image fix

* Restore streamer

* Restore a devnet fix

* Restore ec2 test fix

* Restore l1 geth fix

* Fix throttle

* Restrict throttle fix scope

* Remove isActiveBatcher

* Remove unnecessary changes

* Restore fallback path fix

* Restore fmt fixes

* Ignore cache error

* Revert foundry version and fmt fixes

* remove fmt check

* fix: mise install (#366)

* Add back necessary contract files

* Fix contract workflow

* Address comments for espresso/docker

* Update espresso/scripts/run-tests-github-actions.sh

Co-authored-by: Theodore Schnepper <Ayiga@MSN.com>

* Remove use of output file

* Remove path from contract names

* Restore more files

* Restore more files

* Revert IproxyAdmin changes

* Remove unneeded IProxyAdmin uses

* Remove more files

* Add back toml

* Add lock

* Replace build

* Fix build timeout

* Fix duplicate build

* Fix more

* Match Celo's changes

* Restore contract files

* Update batcher fallback test

* Improvement the comment

* Remove dead code

* More conflict fixes

* Fix test 11

* Address gemini comments

* Fix test 8

* Restore gotestsum

* Undo unnecessary changes

* Remove helper functions

* Add a missing file

* Improve sha256 installation

* Fix Dockerfile build

* Restore artifactsfs

* Fix Go version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Theodore Schnepper <Ayiga@MSN.com>
Co-authored-by: Philippe Camacho <philippe@espressosys.com>
Co-authored-by: Sishan Long <dlsubjam@gmail.com>
Co-authored-by: Jeb Bearer <jeb.bearer@gmail.com>
Co-authored-by: Artemii Gerasimovich <artemii@espressosys.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Theodore Schnepper <tschnepper@espressosys.com>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: EC2 Default User <ec2-user@ip-172-31-47-181.us-east-2.compute.internal>
Co-authored-by: Sneh Koul <snehkoul1999@gmail.com>
Co-authored-by: Jean Gal <45081726+jjeangal@users.noreply.github.com>
Co-authored-by: miguelCyclone <miguelhongo90@gmail.com>
Co-authored-by: Sneh Koul <35871990+Sneh1999@users.noreply.github.com>
Co-authored-by: OpenCode <noreply@opencode.ai>
Co-authored-by: Jean Gal <jgatbkk@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
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.

2 participants