Skip to content

[codex] add evm-only giga executor path#3583

Open
codchen wants to merge 8 commits into
mainfrom
codex/sei-v3-evm-only-scaffold
Open

[codex] add evm-only giga executor path#3583
codchen wants to merge 8 commits into
mainfrom
codex/sei-v3-evm-only-scaffold

Conversation

@codchen

@codchen codchen commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add giga/evmonly as the final-form EVM-only giga execution path boundary
  • define raw Ethereum RLP block input and commit-neutral outputs as an EVM-native state changeset plus receipts
  • port the core sei-v3-style execution shape directly into giga/evmonly:
    • raw RLP tx parsing and sender recovery
    • go-ethereum execution against an SDK-free native vm.StateDB
    • key-addressable EVM-native balance, nonce, code, and storage state reads
    • deterministic post-block StateChangeSet output
    • Ethereum receipt and per-tx metadata construction
  • add a map-backed MemoryState backend for tests and early integration
  • leave custom precompiles as fail-closed placeholders behind an SDK-free registry/context
  • refresh the README to describe the current implementation, input/output contract, and known limitations

Notes

Custom precompile behavior is intentionally still open. Registered custom precompile addresses return ErrCustomPrecompilesOpen, including through geth's precompile map, so calls fail closed instead of silently executing as empty accounts.

The current port is sequential. The state boundary and changeset shape are intended to be replaceable with the sei-v3 OCC scheduler/store once that layer is brought over.

Historical BLOCKHASH lookups beyond the parent block are not wired yet; BlockHash is currently used for receipt/log metadata.

Validation

go test ./giga/evmonly/...
go test ./giga/...

@codecov

codecov Bot commented Jun 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 62.25266% with 248 lines in your changes missing coverage. Please review.
✅ Project coverage is 58.09%. Comparing base (f79b5fd) to head (966d056).

Files with missing lines Patch % Lines
giga/evmonly/state_db.go 54.08% 161 Missing and 19 partials ⚠️
giga/evmonly/executor.go 73.82% 26 Missing and 13 partials ⚠️
giga/evmonly/state.go 76.13% 17 Missing and 4 partials ⚠️
giga/evmonly/parser.go 60.00% 5 Missing and 3 partials ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #3583      +/-   ##
==========================================
- Coverage   58.95%   58.09%   -0.86%     
==========================================
  Files        2211     2142      -69     
  Lines      182172   174282    -7890     
==========================================
- Hits       107397   101247    -6150     
+ Misses      65148    64070    -1078     
+ Partials     9627     8965     -662     
Flag Coverage Δ
sei-chain-pr 62.25% <62.25%> (?)
sei-db 70.41% <ø> (ø)
sei-db-state-db ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
giga/evmonly/config.go 100.00% <100.00%> (ø)
giga/evmonly/parser.go 60.00% <60.00%> (ø)
giga/evmonly/state.go 76.13% <76.13%> (ø)
giga/evmonly/executor.go 73.82% <73.82%> (ø)
giga/evmonly/state_db.go 54.08% <54.08%> (ø)

... and 74 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.

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedJun 17, 2026, 2:39 AM

@codchen codchen changed the title [codex] scaffold evm-only giga executor path [codex] add evm-only giga executor path Jun 15, 2026
@codchen codchen marked this pull request as ready for review June 15, 2026 07:54
@cursor

cursor Bot commented Jun 15, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
New core execution and state-transition code affects balances, nonces, and gas policy, but it is isolated in a new package with tests and no app integration yet.

Overview
Introduces giga/evmonly, a Cosmos-free execution boundary for the final-form giga path: ordered blocks of raw Ethereum RLP txs in, commit-neutral StateChangeSet plus Ethereum receipts and per-tx metadata out.

The Executor runs go-ethereum sequentially via core.ApplyMessage on an SDK-free nativeStateDB backed by a pluggable StateReader (default MemoryState for tests). It builds deterministic post-block balance/nonce/code/storage writes, enforces optional min gas price and nonce policy, and documents input/output contracts in the new README.

Custom precompiles get an SDK-free registry/context shape, but registered addresses are wired to fail-closed stubs returning ErrCustomPrecompilesOpen. Known gaps called out: sequential-only execution, parent-only BLOCKHASH, and no real precompile port yet.

Reviewed by Cursor Bugbot for commit 966d056. Bugbot is set up for automated code reviews on this repo. Configure here.

Comment thread giga/evmonly/executor.go
Comment thread giga/evmonly/state_db.go
@codchen codchen force-pushed the codex/sei-v3-evm-only-scaffold branch from 44a10bc to ef04c0e Compare June 15, 2026 11:25
Comment thread giga/evmonly/parser.go
@codchen codchen force-pushed the codex/sei-v3-evm-only-scaffold branch from ef04c0e to cb338ff Compare June 16, 2026 07:12
Comment thread giga/evmonly/state_db.go
Comment thread giga/evmonly/state_db.go

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 06357b4. Configure here.

Comment thread giga/evmonly/executor.go
@codchen codchen force-pushed the codex/sei-v3-evm-only-scaffold branch from 06357b4 to 966d056 Compare June 17, 2026 02:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant