This repository was archived by the owner on Dec 5, 2021. It is now read-only.
[pull] develop from ethereum-optimism:develop#573
Open
pull[bot] wants to merge 10000 commits intoomgnetwork:developfrom
Open
[pull] develop from ethereum-optimism:develop#573pull[bot] wants to merge 10000 commits intoomgnetwork:developfrom
pull[bot] wants to merge 10000 commits intoomgnetwork:developfrom
Conversation
…et constructors (#19452) * refactor(op-devstack): simplify acceptance testing around direct preset constructors fix acceptance and kona e2e test harness regressions fix same-timestamp cycle test and kona shared runtime wrappers address review feedback and restore devstack test coverage fix(ci): stabilize rust e2e websocket tests * refactor(op-devstack): validate preset option support * fix(ci): reduce rust subprocess log volume
* fix(kona/derive): add over-fill check in BlobSource::load_blobs
After the blob-pointer fill loop completes, add a post-loop check:
if `blob_index < blobs.len()` the provider returned more blobs than
were requested. Return `ResetError::BlobsOverFill` (→
PipelineErrorKind::Reset) rather than silently discarding the extras.
This mirrors op-node's `fillBlobPointers` check at
blob_data_source.go:162-163 which returns
`fmt.Errorf("got too many blobs")` wrapped as `NewResetError`.
Over-fill can occur with buggy blob providers (e.g. third-party RPC
services that ignore the requested hash list) or in rare L1 reorg
scenarios where the blob set shifts between hash collection and fetch.
Changes:
- Add `ResetError::BlobsOverFill(usize, usize)` variant to
`pipeline.rs` (symmetric with the existing `BlobsUnderFill` variant).
- Import `ResetError` in `blobs.rs` and add the post-loop guard.
- Add `should_return_extra_blob` flag to `TestBlobProvider` for testing.
- Add `test_load_blobs_overfill_triggers_reset` regression test.
Fixes #19363
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore: use function names instead of line numbers in Go references
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(kona/derive): use named fields for BlobsOverFill variant
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(kona/derive): rename blob_index to filled_blobs in BlobSource (#19480)
Rename the `blob_index` variable in `load_blobs` to `filled_blobs`
for clarity, as the variable tracks the number of blob placeholders
that were filled rather than serving as a traditional index.
Addresses review feedback from optimism#19364.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore: remove references to Go implementation in comments
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(kona/derive): remove useless BlobProviderError conversion in map_err
The `From<BlobProviderError> for PipelineErrorKind` impl already exists,
so `?` handles the conversion automatically. The explicit `map_err` was
redundant.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* chore(linter): migrate Makefile to justfile Migrate linter 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: pass make variables as env vars in deprecated.mk shim The deprecated.mk shim forwards all make variable assignments to just via JUSTFLAGS. This breaks when inherited variables (like GO_TEST_FLAGS from parent make processes) are not defined in the target justfile, since just rejects unknown variable overrides. Fix by passing variables as environment variables instead of just CLI args. Since all shared justfile variables (GITCOMMIT, GITDATE, VERSION, GOOS, GOARCH, etc.) use env() for defaults, they still pick up the forwarded values. Unknown variables are silently ignored. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: correct .PHONY declaration in deprecated Make shim The .PHONY declaration was formatted as a recipe (indented under .PHONY:) rather than as a prerequisite list (.PHONY: targets). This caused Make to treat targets like `cannon` and `op-program` as file/directory targets, and since directories with those names exist in the repo, Make would skip them with "is up to date" instead of running the just delegation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(linter): restore file-dependency tracking in justfile build target The original Makefile only rebuilt when files under analyzers/ or .custom-gcl.yml changed. Replicate this with a timestamp check in the just build recipe. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor(linter): extract uptodate check into reusable justfiles/uptodate.sh Move the file-dependency freshness check from an inline bash script in linter/justfile into a standalone helper at justfiles/uptodate.sh so other justfiles can reuse the same pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(justfiles): rebuild when source paths don't exist in uptodate.sh If a source path is neither a file nor a directory, force a rebuild instead of silently skipping it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore(justfiles): warn when source path doesn't exist in uptodate.sh Print a warning to stderr before forcing a rebuild when a source path doesn't exist — this is likely an error and should be visible. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Convert 9 hardcoded tests to fuzz tests for broader coverage: - mint: fuzz recipient address and amount - mint revert: fuzz non-owner caller address - burn/burnFrom: fuzz mint and burn amounts - transfer/transferFrom: fuzz mint and transfer amounts - approve: fuzz approval amount - increaseAllowance/decreaseAllowance: fuzz initial and delta amounts Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* Initial plan * chore: remove accidental PR.md Co-authored-by: karlfloersch <706123+karlfloersch@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: karlfloersch <706123+karlfloersch@users.noreply.github.com>
* chore: add fix-rust-fmt Claude Code skill Adds a skill that fixes Rust formatting CI failures by running `just fmt-fix` with the correct nightly toolchain via mise. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Apply suggestion from @ajsutton * Update .claude/skills/fix-rust-fmt/SKILL.md Co-authored-by: Sebastian Stammler <seb@oplabs.co> * docs: link /fix-rust-fmt skill from kona CLAUDE.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: reference fix-rust-fmt skill in rust-dev.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Sebastian Stammler <seb@oplabs.co>
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>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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 #19493.
* 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 #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(#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 #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>
* 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 #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>
* 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 #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>
* 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>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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>
* 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 #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
* chore(contracts): bump superchain-registry to latest Updates superchain-registry submodule to latest main (446802f). * fix(contracts): read addresses from extra/addresses.json after registry schema change The superchain-registry moved most chain addresses from the per-chain TOML files to superchain/extra/addresses/addresses.json. Only SystemConfigProxy, OptimismPortalProxy, L1StandardBridgeProxy, and DisputeGameFactoryProxy remain in the TOML [addresses] section. Updates ForkLive.s.sol to read moved addresses (ProxyAdmin, AddressManager, L1CrossDomainMessengerProxy, etc.) from the JSON file using vm.parseJsonAddress keyed by chain ID. * fix(contracts): allow reading superchain-registry extra addresses in foundry Add fs_permissions entry for ./lib/superchain-registry/superchain/extra/ so ForkLive.s.sol can read addresses.json during fork tests.
…-reth (#19408) * feat(kona): implement L2PayloadWitness hint for interop Adds support for the L2PayloadWitness hint in kona interop mode, enabling execution witness pre-fetching via debug_executePayload RPC. Changes: - Add enable_experimental_witness_endpoint flag to InteropHost config - Add ExecutionWitness and OpPayloadAttributes imports - Implement L2PayloadWitness handler with chain_id routing - Extracts chain_id from last 8 bytes (variable-length pattern) - Routes to correct L2 provider via providers.l2(&chain_id) - Calls debug_executePayload RPC with silent failure for unsupported clients - Stores witness preimages (state, codes, keys) with keccak256 keys - Add unit tests for hint data parsing and validation Follows the same pattern as single-chain implementation with multi-chain routing added for interop. All tests pass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix package reference in interop acceptance tests * feat(op-challenger): add --cannon-kona-experimental-witness-endpoint flag Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * remove redundant witness endpoint acceptance test * fix(kona): add L2PayloadWitness proactive hint and improve interop tests - Register L2PayloadWitness as a proactive hint in interop cfg.rs to match single-chain behavior - Extract parse_l2_payload_witness_hint() helper and update tests to call it directly rather than reimplementing the parsing logic Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(kona): extract preimages iterator before kv lock, add WithL2ELKind tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(op-reth): wire proof-history exex and RPC overrides into main entrypoint main.rs was calling launch_with_debug_capabilities directly, bypassing launch_node_with_proof_history entirely, so the proofs-history exex and eth_getProof/debug_executePayload RPC overrides were never installed. Made launch_node_with_proof_history generic over DB to work with the bare DatabaseEnv the CLI provides. Removed --rpc.eth-proof-window from devstack since the exex override now handles all eth_getProof requests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Lint fix * fix(op-reth): make supervisor URL optional, disable interop validation when not set Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(rust): apply nightly rustfmt to op-reth changes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Lint fixes * fix(op-devstack): always enable proof history for op-reth, window=10000 Ports the proof history always-on change to mixed_runtime.go (the new location after develop's devstack refactoring). Removes the ELProofHistory toggle — proof history is now unconditionally enabled for all op-reth nodes with a 10000-block window. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(op-devstack): use op-reth for all interop tests, always enable proofs-history Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(op-devstack): remove supervisor RPC from op-reth node startup Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(op-devstack): use op-reth for supernode interop tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(op-node): handle reorged super authority safe head gracefully Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(op-devstack): skip op-reth tests gracefully when binary not available Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(op-devstack): revert startL2ELNodeWithSupervisor to op-geth * fix(op-challenger): clarify --proofs-history requirement in flag usage * fix(op-reth): fix imports and Cargo.toml after rebase conflict resolution * review: fail on missing op-reth binary, clarify supervisor deprecation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Revert "fix(op-node): handle reorged super authority safe head gracefully" This reverts commit c054e41004b3e9d61850e1e1bf63d246ba4df87d. * fix(kona): log info when debug_executePayload is unavailable, add tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(kona): fix import ordering from nightly rustfmt * Lint fix * fix(kona): make is_rpc_method_not_found const to satisfy clippy * fix(op-devstack): respect DEVSTACK_L2EL_KIND in supernode runtime startMixedOpRethNode was hardcoded so memory-all-opn-op-geth CI job (which sets DEVSTACK_L2EL_KIND=op-geth) was still running op-reth. Add startSupernodeEL helper that reads the env var and falls back to op-reth when not set. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ributesBuilder (#19503) System config update errors in `prepare_payload_attributes` were propagated as critical pipeline errors, halting derivation. One or more receipts may contain malformed or invalid config update logs, which should not be fatal. Change the error handling to log a warning and continue derivation instead. Closes: AQ-10 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )