Skip to content

fix(op-supernode): error on uninitialized chain sync status#39

Merged
karlfloersch merged 21 commits intodevelopfrom
karlfloersch/rv-syncstatus-empty-error
Mar 13, 2026
Merged

fix(op-supernode): error on uninitialized chain sync status#39
karlfloersch merged 21 commits intodevelopfrom
karlfloersch/rv-syncstatus-empty-error

Conversation

@opsuperchain
Copy link
Copy Markdown
Collaborator

Closes ethereum-optimism#19538

Summary

  • return virtual_node.ErrVirtualNodeNotRunning when ChainContainer.SyncStatus() is called before the virtual node is initialized
  • stop silently returning an empty eth.SyncStatus for an unready chain container
  • add a regression test for the uninitialized virtual-node case

Testing

  • ./linter/bin/op-golangci-lint run ./op-supernode/...
  • go test ./op-supernode/...

theochap and others added 21 commits March 12, 2026 19:20
Bump all reth dependencies from v1.11.2 to v1.11.3 in the rust workspace,
including op-reth crate versions and the Cargo.lock.
* chore(cannon): migrate Makefile to justfile

Migrate cannon build targets from Make to Just. The Makefile now
delegates to just with a deprecation warning, preserving backwards
compatibility for existing make invocations.

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

* fix(cannon): add missing lint target and include justfiles in Docker context

- Add `lint` to DEPRECATED_TARGETS and justfile (CI compatibility stub)
- Copy justfiles/ into kona cannon-repro.dockerfile for deprecated.mk shim
- Install `just` binary in cannon Docker build for the Make shim

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

* fix(cannon): remove [default] attribute for just <1.38 compat

The Alpine 3.21 just package is v1.37.0 which doesn't support the
[default] attribute. Move cannon recipe to first position instead.

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

* fix(cannon): include justfiles/ in op-program Docker build context

The cannon Makefile deprecated shim requires justfiles/deprecated.mk,
which is resolved relative to cannon/ inside the Docker container. The
op-program Dockerfile.repro.dockerignore was excluding justfiles/ from
the build context, causing the cannon make shim to fail.

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

* docs(cannon): update README to use just instead of make

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

* fix(cannon): call just directly in cannon-repro.dockerfile

Instead of going through the deprecated Make shim, invoke just cannon
directly in the Docker build.

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

* fix(cannon): update Dockerfile.diff to use just diff-cannon directly

The diff-%-cannon Make pattern target was converted to a parameterized
just recipe (just diff-cannon VM). Update the Dockerfile to call just
directly instead of through make, which would fail since the deprecated
shim doesn't support pattern targets.

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

* fix(cannon): add diff-%-cannon pattern target to deprecated Makefile

Preserves backwards compatibility for make diff-<vm>-cannon invocations
(used by Dockerfile.diff and potentially other scripts) by translating
the pattern to just diff-cannon <vm>.

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

* fix: install just via system package manager in Dockerfiles

- cannon/Dockerfile.diff: use `apk add just` instead of curl install script,
  drop unnecessary `make` dependency
- cannon-repro.dockerfile: switch cannon-build stage from ubuntu:22.04 to
  golang:1.23.8-alpine3.21, matching the monorepo's Go builder image, so
  just can be installed via `apk add` instead of curl install script

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

* fix(cannon): bump Go to 1.24.10 in cannon-repro.dockerfile

The golang Docker image sets GOTOOLCHAIN=local which prevents automatic
toolchain downloading. Since go.mod requires go 1.24.0, the 1.23.8
image fails to build. Match Dockerfile.diff which already uses 1.24.10.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…optimism#19500)

Returns NotEnoughData instead of NewTemporaryError when a span batch
is encountered before Delta activation. This drains the channel
immediately rather than taking O(N×backoff) cycles.

Fixes ethereum-optimism#19493.
…thereum-optimism#19502)

Classifies non-critical errors from DeriveSpanBatch (malformed tx type,
invalid encoding, etc.) as NotEnoughData so the pipeline drops the batch
immediately without backoff. Critical errors (logic errors) still
propagate as-is.

Fixes ethereum-optimism#19494.
…red after Ecotone (ethereum-optimism#19501)

Wraps the "beacon endpoint not configured" error with NewCriticalError
so the node stops with a clear fatal error instead of retrying
indefinitely on an unrecoverable operator misconfiguration.

Fixes ethereum-optimism#19495.
…reum-optimism#19499)

* op-node/derive: drop bad channel decompression as NotEnoughData

Fixes WriteChannel error classification in ChannelInReader.NextBatch:
returns NotEnoughData (immediate continue, no backoff) instead of
NewTemporaryError when channel data fails to decompress.

Also downgrades the log.Error in WriteChannel to log.Warn since this
is bad batcher data, not an infrastructure failure.

Fixes ethereum-optimism#19492.

* op-node/derive: address review comments
* chore(cannon): migrate Makefile to justfile

Migrate cannon build targets from Make to Just. The Makefile now
delegates to just with a deprecation warning, preserving backwards
compatibility for existing make invocations.

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

* fix(cannon): add missing lint target and include justfiles in Docker context

- Add `lint` to DEPRECATED_TARGETS and justfile (CI compatibility stub)
- Copy justfiles/ into kona cannon-repro.dockerfile for deprecated.mk shim
- Install `just` binary in cannon Docker build for the Make shim

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

* fix(cannon): remove [default] attribute for just <1.38 compat

The Alpine 3.21 just package is v1.37.0 which doesn't support the
[default] attribute. Move cannon recipe to first position instead.

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

* fix(cannon): include justfiles/ in op-program Docker build context

The cannon Makefile deprecated shim requires justfiles/deprecated.mk,
which is resolved relative to cannon/ inside the Docker container. The
op-program Dockerfile.repro.dockerignore was excluding justfiles/ from
the build context, causing the cannon make shim to fail.

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

* docs(cannon): update README to use just instead of make

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

* fix(cannon): call just directly in cannon-repro.dockerfile

Instead of going through the deprecated Make shim, invoke just cannon
directly in the Docker build.

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

* fix(cannon): update Dockerfile.diff to use just diff-cannon directly

The diff-%-cannon Make pattern target was converted to a parameterized
just recipe (just diff-cannon VM). Update the Dockerfile to call just
directly instead of through make, which would fail since the deprecated
shim doesn't support pattern targets.

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

* fix(cannon): add diff-%-cannon pattern target to deprecated Makefile

Preserves backwards compatibility for make diff-<vm>-cannon invocations
(used by Dockerfile.diff and potentially other scripts) by translating
the pattern to just diff-cannon <vm>.

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

* fix: install just via system package manager in Dockerfiles

- cannon/Dockerfile.diff: use `apk add just` instead of curl install script,
  drop unnecessary `make` dependency
- cannon-repro.dockerfile: switch cannon-build stage from ubuntu:22.04 to
  golang:1.23.8-alpine3.21, matching the monorepo's Go builder image, so
  just can be installed via `apk add` instead of curl install script

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

* fix(cannon): bump Go to 1.24.10 in cannon-repro.dockerfile

The golang Docker image sets GOTOOLCHAIN=local which prevents automatic
toolchain downloading. Since go.mod requires go 1.24.0, the 1.23.8
image fails to build. Match Dockerfile.diff which already uses 1.24.10.

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

* chore(op-e2e): migrate Makefile to justfile

Migrate op-e2e build targets from Make to Just. The Makefile now
delegates to just with a deprecation warning, preserving backwards
compatibility for existing make invocations.

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

* docs(op-e2e): update README to use just instead of make

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

* fix(justfiles): pass Make variable overrides as env vars in deprecated shim

The deprecated.mk shim was changed to pass JUSTFLAGS as just CLI
variable overrides (`just VAR=val target`), but just rejects overrides
for variables not declared in the justfile. This broke CI jobs where
Make variable assignments propagate through sub-makes (e.g.
GO_TEST_FLAGS, GUEST_PROGRAM).

Revert to passing them as environment variables via `env`, which is
how the shim originally worked in the cannon migration PR.

Fixes: go-tests-short, sanitize-op-program CI failures

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

* fix(op-e2e): manual shim for gen-binding positional arg

The generic deprecated.mk shim converts make variables to env vars, but
gen-binding CONTRACT: is a positional parameter in just. Write a manual
shim that passes CONTRACT correctly as a positional arg.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
)

* docs(op-e2e): update README to use just instead of make

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

* fix(justfiles): pass Make variable overrides as env vars in deprecated shim

The deprecated.mk shim was changed to pass JUSTFLAGS as just CLI
variable overrides (`just VAR=val target`), but just rejects overrides
for variables not declared in the justfile. This broke CI jobs where
Make variable assignments propagate through sub-makes (e.g.
GO_TEST_FLAGS, GUEST_PROGRAM).

Revert to passing them as environment variables via `env`, which is
how the shim originally worked in the cannon migration PR.

Fixes: go-tests-short, sanitize-op-program CI failures

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

* chore(op-program): migrate Makefile to justfile

Migrate op-program build targets from Make to Just. The Makefile now
delegates to just with a deprecation warning, preserving backwards
compatibility for existing make invocations.

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

* fix(op-program): include justfiles/ in Docker contexts for Make shim

The Makefile shim includes ../justfiles/deprecated.mk which delegates to
just. Docker builds for vmcompat and repro excluded justfiles/ from the
build context, causing "No such file or directory" errors in CI.

- Add !justfiles/ to both .dockerignore files
- Install just in Dockerfile.vmcompat (Dockerfile.repro already has it)

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

* ci: re-trigger cannon-prestate build

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

* fix(op-program): remove unnecessary MIPS variable overrides from repro.justfile

The op-program-client-mips target hardcodes GOOS/GOARCH/GOMIPS64 in its
build commands, so passing GOOS=linux GOARCH=mips GOMIPS=softfloat from
repro.justfile was always redundant. With the Make-to-just migration, the
deprecated.mk shim forwards these as just variables, and just rejects
GOMIPS since it's not defined in the justfile.

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

* docs(op-program): update README to use just instead of make

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

* fix(op-program): use just in Dockerfile.vmcompat, restore TODO

- Update Dockerfile.vmcompat to call just directly for the analyze
  target instead of going through the deprecated make shim.
- Restore TODO(ethereum-optimism#18334) comment for go1.25 vm-compat support that was
  dropped during migration.

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

* fix(op-program): use just instead of make in repro.justfile

Convert repro.justfile to call just directly instead of going through
make's deprecated shim. GOOS/GOARCH are passed as env vars for cannon
(read by go.just), while VERSION/GITCOMMIT/GITDATE are passed as just
variable overrides. The op-program mips targets hardcode their own
GOOS/GOARCH/GOMIPS so they don't need to be passed.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* docs(op-e2e): update README to use just instead of make

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

* fix(justfiles): pass Make variable overrides as env vars in deprecated shim

The deprecated.mk shim was changed to pass JUSTFLAGS as just CLI
variable overrides (`just VAR=val target`), but just rejects overrides
for variables not declared in the justfile. This broke CI jobs where
Make variable assignments propagate through sub-makes (e.g.
GO_TEST_FLAGS, GUEST_PROGRAM).

Revert to passing them as environment variables via `env`, which is
how the shim originally worked in the cannon migration PR.

Fixes: go-tests-short, sanitize-op-program CI failures

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

* ci: re-trigger cannon-prestate build

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

* chore: migrate root Makefile to justfile

Migrate root build targets from Make to Just. The Makefile now
delegates to just with a deprecation warning, preserving backwards
compatibility for existing make invocations.

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

* docs: update CONTRIBUTING.md to use just instead of make

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

* fix: convert make -C calls to just and restore GOPRIVATE comment

All subdirectories now have justfiles with deprecated Make shims,
so convert remaining make -C calls to cd && just. Also restores
the explanatory comment on mod-tidy's GOPRIVATE usage.

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

* fix: run reproducible-prestate builds in parallel

just doesn't parallelize dependencies like make -j does. Use background
processes with wait to run op-program and kona prestate builds concurrently.

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

* fix: use subshell for cd in _go-tests-ci-internal

The cd into cannon/ was changing the CWD for the rest of the script,
causing gotestsum to run from cannon/ instead of the repo root. The
original Makefile used $(MAKE) -C which spawns a subprocess. Use a
subshell to match that behavior.

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

* fix: use subshells for sequential cd in reproducible-prestate

The bare `cd op-program` on line 180 changed cwd persistently, so the
following `cd rust` tried to resolve `op-program/rust/` which doesn't
exist. Wrap both in subshells to preserve the original working directory.

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

* fix: remove devnet-sdk and kurtosis-devnet from TEST_PKGS

These directories were removed in ethereum-optimism#19506 but the justfile still
referenced them, causing go-tests-short-ci to fail with
"lstat ./devnet-sdk/: no such file or directory".

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…mism#19482)

* docs(op-e2e): update README to use just instead of make

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

* fix(justfiles): pass Make variable overrides as env vars in deprecated shim

The deprecated.mk shim was changed to pass JUSTFLAGS as just CLI
variable overrides (`just VAR=val target`), but just rejects overrides
for variables not declared in the justfile. This broke CI jobs where
Make variable assignments propagate through sub-makes (e.g.
GO_TEST_FLAGS, GUEST_PROGRAM).

Revert to passing them as environment variables via `env`, which is
how the shim originally worked in the cannon migration PR.

Fixes: go-tests-short, sanitize-op-program CI failures

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

* ci: re-trigger cannon-prestate build

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

* chore: migrate root Makefile to justfile

Migrate root build targets from Make to Just. The Makefile now
delegates to just with a deprecation warning, preserving backwards
compatibility for existing make invocations.

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

* docs: update CONTRIBUTING.md to use just instead of make

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

* fix: convert make -C calls to just and restore GOPRIVATE comment

All subdirectories now have justfiles with deprecated Make shims,
so convert remaining make -C calls to cd && just. Also restores
the explanatory comment on mod-tidy's GOPRIVATE usage.

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

* fix: run reproducible-prestate builds in parallel

just doesn't parallelize dependencies like make -j does. Use background
processes with wait to run op-program and kona prestate builds concurrently.

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

* fix: use subshell for cd in _go-tests-ci-internal

The cd into cannon/ was changing the CWD for the rest of the script,
causing gotestsum to run from cannon/ instead of the repo root. The
original Makefile used $(MAKE) -C which spawns a subprocess. Use a
subshell to match that behavior.

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

* fix: use subshells for sequential cd in reproducible-prestate

The bare `cd op-program` on line 180 changed cwd persistently, so the
following `cd rust` tried to resolve `op-program/rust/` which doesn't
exist. Wrap both in subshells to preserve the original working directory.

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

* fix: remove devnet-sdk and kurtosis-devnet from TEST_PKGS

These directories were removed in ethereum-optimism#19506 but the justfile still
referenced them, causing go-tests-short-ci to fail with
"lstat ./devnet-sdk/: no such file or directory".

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

* ci: update CircleCI config to use just instead of make

Migrates all CircleCI make invocations to just for targets that have
been migrated to justfiles. Remaining make calls are for packages not
yet migrated (op-challenger, op-node, op-service, op-chain-ops fuzz
targets) and cannon/testdata which has its own Makefile.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…mism#19483)

* docs(op-e2e): update README to use just instead of make

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

* fix(justfiles): pass Make variable overrides as env vars in deprecated shim

The deprecated.mk shim was changed to pass JUSTFLAGS as just CLI
variable overrides (`just VAR=val target`), but just rejects overrides
for variables not declared in the justfile. This broke CI jobs where
Make variable assignments propagate through sub-makes (e.g.
GO_TEST_FLAGS, GUEST_PROGRAM).

Revert to passing them as environment variables via `env`, which is
how the shim originally worked in the cannon migration PR.

Fixes: go-tests-short, sanitize-op-program CI failures

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

* ci: re-trigger cannon-prestate build

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

* chore: migrate root Makefile to justfile

Migrate root build targets from Make to Just. The Makefile now
delegates to just with a deprecation warning, preserving backwards
compatibility for existing make invocations.

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

* docs: update CONTRIBUTING.md to use just instead of make

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

* fix: convert make -C calls to just and restore GOPRIVATE comment

All subdirectories now have justfiles with deprecated Make shims,
so convert remaining make -C calls to cd && just. Also restores
the explanatory comment on mod-tidy's GOPRIVATE usage.

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

* fix: run reproducible-prestate builds in parallel

just doesn't parallelize dependencies like make -j does. Use background
processes with wait to run op-program and kona prestate builds concurrently.

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

* fix: use subshell for cd in _go-tests-ci-internal

The cd into cannon/ was changing the CWD for the rest of the script,
causing gotestsum to run from cannon/ instead of the repo root. The
original Makefile used $(MAKE) -C which spawns a subprocess. Use a
subshell to match that behavior.

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

* fix: use subshells for sequential cd in reproducible-prestate

The bare `cd op-program` on line 180 changed cwd persistently, so the
following `cd rust` tried to resolve `op-program/rust/` which doesn't
exist. Wrap both in subshells to preserve the original working directory.

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

* fix: remove devnet-sdk and kurtosis-devnet from TEST_PKGS

These directories were removed in ethereum-optimism#19506 but the justfile still
referenced them, causing go-tests-short-ci to fail with
"lstat ./devnet-sdk/: no such file or directory".

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

* ci: update CircleCI config to use just instead of make

Migrates all CircleCI make invocations to just for targets that have
been migrated to justfiles. Remaining make calls are for packages not
yet migrated (op-challenger, op-node, op-service, op-chain-ops fuzz
targets) and cannon/testdata which has its own Makefile.

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

* chore(cannon): migrate testdata Makefiles to justfiles

Migrates cannon/testdata/, cannon/testdata/go-1-24/, and
cannon/testdata/go-1-25/ Makefiles to justfiles. The Make pattern rules
for building ELF binaries from go.mod directories are replaced with
shell loops that discover and build all directories dynamically.

Also updates cannon/justfile to call just instead of make -C for
testdata targets, and updates the CI config accordingly.

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

* fix(cannon): manual shim for diff-cannon positional arg

The generic deprecated.mk shim converts make variables to env vars, but
diff-cannon VM: is a positional parameter in just. Write a manual shim
that passes VM correctly. Also add deprecation warning to the diff-%-cannon
pattern target.

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

* fix: restore dump discovery from go.mod and TODO comment

Match the original Makefile behavior by iterating */go.mod directories
instead of bin/*.64.elf to avoid dumping stale ELFs. Restore the TODO
about the little-endian vs big-endian toolchain.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ptimism#19252)

* feat: add binary entry point for external proofs in OP (op-rs/op-reth#222)

Closes op-rs/op-reth#164

---------

Co-authored-by: Arun Dhyani <dhyaniarun7@gmail.com>

* feat: add support for `eth_getProof` (op-rs/op-reth#257)

Adds support for `eth_getProof` RPC method. This required reworking the
launch command to still work with an alternative DB provider.

Closes op-rs/op-reth#173

---------

Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>

* perf(trie): feature gate `reth-optimism-trie` metrics (op-rs/op-reth#282)

Closes https://github.com/op-rs/bin/issues/281

- Feature gates `reth-optimism-trie` metrics
- Moves cursor impls out of proofs module into new module `cursor`
- Moves cursor factory impls into new module `cursor_factory`
- Updates cursor factory impls to return cursor types with metrics
wrapper if metrics feature is enabled

* fix(test): Enable live collector tests with metrics feature (op-rs/op-reth#291)

Closes https://github.com/op-rs/bin/issues/283

Enable live collector tests when metrics feature is enabled

* feat: implement `debug_executePayload` (op-rs/op-reth#276)

Closes https://github.com/op-rs/bin/issues/189

---------

Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>

* feat: live collector integration (op-rs/op-reth#306)

Closes op-rs/op-reth#296

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>

* fix: rebase conflicts (op-rs/op-reth#367)

Fix conflicts rebasing onto latest upstream main

* feat: implemented `OpProofStorage` Database metrics (op-rs/op-reth#407)

Closes op-rs/op-reth#224
Closes op-rs/op-reth#387

---------

Co-authored-by: Arun Dhyani <dhyaniarun7@gmail.com>

* feat: Implemented `OpProofStoragePrunerTask` (op-rs/op-reth#375)

Closes op-rs/op-reth#361
Closes op-rs/op-reth#395

---------

Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>

* chore: inmem proof storage removed (op-rs/op-reth#465)

This PR removes the CLI support for in-memory proof storage
(proofs_history_storage_in_mem). The in-memory storage implementation
was primarily intended for unit testing and is not feasible for running
a node due to the large memory requirements of storing historical trie
nodes.

Closes op-rs/op-reth#466

* chore(exex): Add metrics feature in `reth-optimism-exex` (op-rs/op-reth#438)

Closes https://github.com/op-rs/bin/issues/427

---------

Co-authored-by: itschaindev <jagrutk@protonmail.com>

* feat: prune cli added (op-rs/op-reth#507)

Closes op-rs/op-reth#452

* refactor(trie): return `OpProofsStorageError` from `execute_and_store_block_updates` (op-rs/op-reth#535)

Closes op-rs/op-reth#523

---------

Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>

* fix: reduce default proofs pruning interval (op-rs/op-reth#560)

Closes op-rs/op-reth#559

* feat: add verification interval for integrity check (op-rs/op-reth#577)

Closes op-rs/op-reth#449

The approach used is to perform full block verification after every N
blocks to ensure the state is still correct.

---------

Co-authored-by: Arun Dhyani <dhyaniarun7@gmail.com>

* chore: getProof benchmark utility added (op-rs/op-reth#550)

Utility for op-rs/op-reth#446

* chore: mv proof args to rollup node (op-rs/op-reth#625)

Closes op-rs/op-reth#613

* chore: ExEx config builder (op-rs/op-reth#642)

Closes op-rs/op-reth#641

---------

Co-authored-by: Himess <semihcvlk53@gmail.com>

* chore: moved proof initialization to `reth-optimism-node` (op-rs/op-reth#640)

Closes op-rs/op-reth#612

---------

Co-authored-by: Arun Dhyani <dhyaniarun7@gmail.com>

* chore(rust): fix compilation errors

* docs(op-reth): add historical proofs README to exex crate

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

* chore(op-reth): move proof-bench to rust/op-reth/bin/proof-bench

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

* fix(op-reth): fix go-lint and rust-clippy CI failures

- Replace big.Int.Uint64() calls with bigs.Uint64Strict() in proof tests
- Fix goimports ordering in proof test files (move ethereum-optimism/* before ethereum/go-ethereum/*)
- Fix const alignment in preset.go
- Fix uninlined_format_args clippy lint in proof-bench report.rs

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

fix(op-reth): update proofs preset to use stack.ComponentID

Replace removed type aliases (L1NetworkID, L1ELNodeID, L2CLNodeID, etc.)
with unified stack.ComponentID type. Also fix L2NodeMatcher generics and
match.Not calls to use stack.ByID wrapper.

fix(op-reth): remove duplicate crates/tests/proofs preset

This was a partial copy of rust/op-reth/tests/proofs/utils with no
go.mod, no test files, and no other sources. It caused go-lint CI
failures due to stale type references.

---------

Co-authored-by: jagroot <4516586+itschaindev@users.noreply.github.com>
Co-authored-by: Arun Dhyani <dhyaniarun7@gmail.com>
Co-authored-by: Julian Meyer <julianmeyer2000@gmail.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Sadiqur Rahman <sadiqurr8@gmail.com>
Co-authored-by: itschaindev <jagrutk@protonmail.com>
Co-authored-by: Himess <95512809+Himess@users.noreply.github.com>
Co-authored-by: Himess <semihcvlk53@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs(ai): add Go development guidance for AI agents

Replace the placeholder go-dev.md with practical workflow guidance
covering tool versions (via mise), build system (just), linting
(custom golangci-lint build), and pre-commit/pre-PR checklists.

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

* docs(ai): add Rust development guidance for AI agents

Replace the placeholder rust-dev.md with practical workflow guidance
covering the workspace layout, build system (just), linting (including
nightly formatting and no_std checks), and pre-commit/pre-PR checklists.

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

* docs(ai): extract shared dev workflow to dev-workflow.md

Move tool versions (mise), PR workflow (rebase on develop, PR
guidelines), and CI notes into a shared doc referenced by both
go-dev.md and rust-dev.md. Reduces duplication and gives a single
place to update cross-language guidance.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…-optimism#19523)

The compute-git-versions target was moved to a deprecated shim that
delegates to just, but the GitHub Actions prep job doesn't have just
installed. Restore it as a native make target that calls the shell
script directly.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…#19522)

* fix(rust/op-reth): prefix function args with underscore in test contracts

Fixes semgrep-scan-local CI failure on develop caused by
sol-style-input-arg-fmt rule violations in SimpleStorage.sol and
TokenVault.sol test contracts.

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

* fix(ci): restore compute-git-versions as native make target

The compute-git-versions target was moved to a deprecated shim that
delegates to just, but the GitHub Actions prep job doesn't have just
installed. Restore it as a native make target that calls the shell
script directly.

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

* Revert "fix(ci): restore compute-git-versions as native make target"

This reverts commit 69dd757.

* fix(ci): add rust/op-reth/tests/ to .semgrepignore

The path was moved from rust/op-reth/crates/tests/ (already ignored) to
rust/op-reth/tests/ in ethereum-optimism#19252, taking test contracts out of the ignore
scope and breaking semgrep-scan-local on develop. Revert the Solidity
file changes and ignore the new path instead — these are test contracts,
not production code.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore: add nut bundle check to just pr

* chore: add nut bundle generation step for just pr

* chore: remove output suppression from bundle checks
@karlfloersch karlfloersch merged commit aadf0fc into develop Mar 13, 2026
70 of 114 checks passed
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.

op-supernode: ChainContainer.SyncStatus should error when the virtual node is not initialized

8 participants