Skip to content

fix: bump cosmos/evm fork to v0.6.1-xrplevm.2 - #153

Merged
AdriaCarrera merged 1 commit into
mainfrom
fix/bump-evm-v0.6.1-xrplevm.2
Sep 8, 2026
Merged

AdriaCarrera merged 1 commit into
mainfrom
fix/bump-evm-v0.6.1-xrplevm.2

Conversation

@AdriaCarrera

@AdriaCarrera AdriaCarrera commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Bumps the cosmos/evm fork pin from v0.6.1-xrplevm.1 to v0.6.1-xrplevm.2, which carries the backport of cosmos/evm#1107 (xrplevm/evm#13).

Why

Testnet block 8005874 cannot be served by any block-level JSON-RPC method. Every call fails permanently with:

-32000: failed to get rpc block from comet block: failed to get receipts from comet block:
        failed to convert tx result to eth receipt: invalid message index: 0

Downstream indexers cannot advance past that height.

The block contains a tx that sends non-zero native value to the ecrecover precompile. Precompile addresses are on the bank module's blocked list, so the balance write is rejected at commit time and the whole cosmos tx fails (code: 4, data: null). The JSON-RPC layer nonetheless included that tx in the ethereum view of the block and then tried to decode its logs from the empty payload, which is fatal for the whole block.

The fix excludes this class of tx from the ethereum view of the block. It shipped upstream in v0.7.0 and had never been backported to the v0.6.x line, which is what we run.

Scope

go.mod (1 line) and go.sum (2 lines). No code changes.

Read-path change only — no state migration, no resync, no consensus impact. Nodes just need the new binary. After deploying, block 8005874 serves normally; the failed tx is excluded from the ethereum view of the block and its receipt returns null, which is the upstream-intended behaviour (the tx reverted entirely, only the fee was charged).

Verification

  • go build ./... passes.
  • go test -mod=readonly -tags=test ./tests/integration passes.
  • x/poa/{ante,keeper,simulation,types} pass.
  • Confirmed the module the node now compiles against carries the fix: TxSucessOrExpectedFailure no longer has the TxStateDBCommitError clause, and the regression test is present.

app.TestFullAppSimulation fails with denom metadata axrp could not be found, but it fails identically on main with the same invocation, so it is pre-existing and unrelated to this bump.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated the underlying EVM component to a newer XRPL EVM fork version, providing the latest available fixes and updates.

Picks up the backport of cosmos/evm#1107, which stops StateDB commit error
transactions from being included in the ethereum view of a block.

Without it, an EVM tx that sends non-zero native value to a blocked address
(precompiles, module accounts) fails at the cosmos level and carries no
response payload, but is still included in the block. The receipt builder then
returns "invalid message index: 0", which is fatal for the whole block and
permanently breaks every block-level JSON-RPC method at that height.

Observed on testnet block 8005874, which no longer serves eth_getBlockByNumber
and stalled downstream indexers.

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

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: d4a4f84a-85c7-439d-9c8b-bdc177e1d85d

📥 Commits

Reviewing files that changed from the base of the PR and between 772f3c2 and e2eca37.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (1)
  • go.mod

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.


📝 Walkthrough

Walkthrough

The PR updates the github.com/cosmos/evm replacement in go.mod to use github.com/xrplevm/evm v0.6.1-xrplevm.2.

Changes

EVM dependency update

Layer / File(s) Summary
Update EVM replacement version
go.mod
The replacement version changes from v0.6.1-xrplevm.1 to v0.6.1-xrplevm.2.

Priority: ➖ Normal — Schedule the EVM fork update because it prevents block-level JSON-RPC failures on testnet caused by invalid transaction inclusion.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to e2eca

The EVM fork update is consistently pinned and introduces no identified merge-blocking risk.

Suggested reviewers: kpitapeersyst

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: updating the Cosmos EVM fork to version v0.6.1-xrplevm.2.
Description check ✅ Passed The description provides detailed motivation, technical context, scope, dependency information, verification results, and known pre-existing test failures. It does not use all template headings, but i…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/bump-evm-v0.6.1-xrplevm.2

Warning

Some tools did not complete. Review the errors below.

🔧 golangci-lint (2.13.2)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@AdriaCarrera
AdriaCarrera merged commit 2086cd0 into main Sep 8, 2026
6 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.

1 participant