Skip to content

test(autobahn): cover new EVM-only RPC methods in the integration tests - #4547

Merged
manav2401 merged 5 commits into
mainfrom
manav/autobahn-rpc-integration-tests
Oct 21, 2026
Merged

manav2401 merged 5 commits into
mainfrom
manav/autobahn-rpc-integration-tests

Conversation

@manav2401

Copy link
Copy Markdown
Contributor

This PR covers the newly added EVM-only RPC methods in Autobahn's integration test.

Currently, it only exercised six of the EVM-only RPC's methods (eth_sendRawTransaction, eth_getTransactionReceipt, eth_getBalance, eth_getTransactionCount, eth_chainId, eth_blockNumber). Everything added since, from block and receipt lookups to logs, fees, storage, and WebSocket newHeads, was covered only by unit tests against stubbed backends, so nothing checked these methods against a real cluster or that validators agree on what they return.

testEVMOnlyLoad now continues after its 4,000-transfer load.

  • assertEVMOnlyBlockQueries takes the block holding a load transfer and checks every block-scoped method against it on all four validators: lookups by number, hash, and index agree with each other and with eth_getTransactionByHash and eth_getTransactionReceipt, the block's receipts sum to its gasUsed, eth_feeHistory reports the same block, and all four nodes return identical blocks and receipts.
  • assertEVMOnlyContractQueries deploys a tiny contract whose constructor writes a storage slot and emits a log, then checks eth_getCode, eth_getStorageAt, eth_call, eth_estimateGas, and eth_getLogs against what the constructor did.
  • assertEVMOnlyNodeInfo covers net_version, eth_syncing, and the fee suggestions
  • assertEVMOnlyNewHeads subscribes to newHeads over each node's WebSocket port and matches the pushed head to the served block. Assertions reuse the existing helpers and per-node client pattern.

The README's method list is rewritten to match what the EVM-only RPC serves, with lists of methods not supported yet and not planned, a short known-limitations section, and fixes to stale lines (the cast wallet new jq path, pruned heights returning an error rather than null, and the removed claim that there are no fee, log, or WebSocket methods).

Test plan

  • make autobahn-integration-test passes locally (all four subtests)
  • go vet -tags autobahn_integration ./integration_test/autobahn/...
  • gofmt, goimports, and golangci-lint fmt --diff clean
  • Contract bytecode checked in go-ethereum's EVM before use
  • Every README limitation checked against the code

manav2401 and others added 2 commits October 14, 2026 19:19
…ration test

Extend testEVMOnlyLoad with block, receipt, contract-state, node-info and
WebSocket newHeads assertions checked on all four validators, and rewrite
the README method list with not-supported, not-planned and known-limitation
sections plus stale-line fixes.

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

cursor Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
Changes are integration tests and documentation only; no production RPC or node behavior is modified.

Overview
Extends the Autobahn EVM-only integration test so that after the existing 4,000-transfer load it exercises the broader JSON-RPC surface on all four validators, asserting cross-node agreement—not just the six methods covered before.

testEVMOnlyLoad now runs four new assertion phases: block-scoped lookups (eth_getBlock*, receipts, eth_getLogs, eth_feeHistory), node/fee methods (net_version, eth_syncing, eth_gasPrice, eth_maxPriorityFeePerGas), a minimal contract deploy (code, storage, eth_call, eth_estimateGas, logs), and WebSocket eth_subscribe("newHeads"). Shared helpers poll until indexed data is ready and compare JSON across nodes.

The README is updated to document the full supported method set, unsupported vs not-planned methods, and known limitations; it also fixes the cast wallet new jq path, documents pruned-height errors vs null, and states that make autobahn-integration-test validates the documented RPC behavior after load plus one deploy.

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

@github-actions

github-actions Bot commented Oct 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✅ passedOct 21, 2026, 8:18 AM

@codecov

codecov Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 57.78%. Comparing base (3118674) to head (5aafb6d).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #4547   +/-   ##
=======================================
  Coverage   57.78%   57.78%           
=======================================
  Files        2116     2116           
  Lines      167078   167078           
=======================================
+ Hits        96541    96546    +5     
+ Misses      70532    70527    -5     
  Partials        5        5           
Flag Coverage Δ
sei-chain 55.83% <ø> (+<0.01%) ⬆️
sei-db 75.17% <ø> (ø)
sei-db-state-db 80.20% <ø> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 31 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.

@seidroid seidroid 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.

Extends the Autobahn EVM-only integration test with block, receipt, log, fee, state, contract and newHeads checks run on all four validators, and rewrites the README method list and limitations to match. I approve: checked against the merge tree (143fb40), the assertions match how the EVM-only RPC behaves (fee-history shape and rounding, the 1 gwei admission floor behind eth_gasPrice, the newHeads cursor, published WebSocket ports, getLogs/feeHistory caps), the hand-assembled contract bytecode decodes as described, and I found no defects. codex reported nothing and I agree; Go is not installed in this sandbox, so nothing was built or run.

seidroid review · decision approve · session 103bac27499c4431b88870d0375db8a1 · turn resp_claude_6dbd0e8d2a5504ca37cec92400622786 · item b689406091855d068f3daa66eecc643e

Findings: 0 blocking | 0 non-blocking | 0 posted inline

@manav2401
manav2401 enabled auto-merge October 21, 2026 08:17
@manav2401
manav2401 added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit 5032b92 Oct 21, 2026
57 checks passed
@manav2401
manav2401 deleted the manav/autobahn-rpc-integration-tests branch October 21, 2026 08:41
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.

2 participants