fix: bump cosmos/evm fork to v0.6.1-xrplevm.2 - #153
Conversation
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>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe PR updates the ChangesEVM dependency update
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 The EVM fork update is consistently pinned and introduces no identified merge-blocking risk. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 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. Comment |
Bumps the
cosmos/evmfork pin fromv0.6.1-xrplevm.1tov0.6.1-xrplevm.2, which carries the backport of cosmos/evm#1107 (xrplevm/evm#13).Why
Testnet block
8005874cannot be served by any block-level JSON-RPC method. Every call fails permanently with:Downstream indexers cannot advance past that height.
The block contains a tx that sends non-zero native value to the
ecrecoverprecompile. 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.0and had never been backported to thev0.6.xline, which is what we run.Scope
go.mod(1 line) andgo.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
8005874serves 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/integrationpasses.x/poa/{ante,keeper,simulation,types}pass.TxSucessOrExpectedFailureno longer has theTxStateDBCommitErrorclause, and the regression test is present.app.TestFullAppSimulationfails withdenom metadata axrp could not be found, but it fails identically onmainwith the same invocation, so it is pre-existing and unrelated to this bump.🤖 Generated with Claude Code
Summary by CodeRabbit