Skip to content

Re-enable Autobahn interop and recovery tests on the EVM-only chain - #4353

Merged
manav2401 merged 13 commits into
mainfrom
manav/fix-evmonly-tests
Sep 29, 2026
Merged

manav2401 merged 13 commits into
mainfrom
manav/fix-evmonly-tests

Conversation

@manav2401

@manav2401 manav2401 commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

This is part 1 of re-enabling all Autobahn tests in EVM-only mode. This PR enables some of them and others will be enabled once precompiles and RPC methods are available in EVM only.

Since #4316, Autobahn runs the EVM-only executor, and most Autobahn integration coverage was
disabled or skipped. Even plain-EVM suites could not run: the shared hardhat setup looked up each
test account's Sei address, a Cosmos query the EVM-only chain cannot answer, so every suite failed
before its first test, and SetCodeTxTest.js signed for the old chain ID. The Autobahn Basic
Recovery test was skipped until the durable execution cursor reached main, which it now has
(#4351).

The setup now skips the Sei address lookup on the EVM-only chain and behaves as before on every
other chain, and SetCodeTxTest.js reads the chain ID from the node. SeiSoloTest.js is skipped
on the EVM-only chain, because it claims Sei-account and CosmWasm balances that chain does not have;
it still runs on the non-Autobahn row. With that, the "Autobahn EVM Interoperability (Misc Tests)"
row passes and is re-enabled, and Recovery is un-skipped. TestAutobahnStartup also reads the
sender's nonce before signing, so it can run more than once on the same cluster.

The other Autobahn rows stay disabled because what they test is not on the EVM-only chain yet. The
compat and RPC fixture suites need RPC methods it does not serve (debug_trace*, reading state at
past blocks, eth_getStorageAt, eth_getBlockReceipts, filters, web3_clientVersion,
WebSocket), the precompile suite needs Sei precompiles, and the upgrade suites need a
governance-driven upgrade. The Giga suite also has test-side fixes to make: it assumes a new account
starts with a zero balance, and one test hangs. Those rows will be re-enabled in follow-ups as the
missing methods land.

Tested locally on an EVM-only Autobahn cluster:

  • evm_interoperability_misc_tests.sh passes end to end (SeiSoloTest.js 3 pending, SetCodeTxTest.js 1 passing, TransientStorageTest.js 19 passing)
  • EVMCompatabilityTest.js gets past setup (59 passing; the rest need the missing RPC methods)
  • TestAutobahnStartup passes twice in a row on the same cluster
  • Autobahn Basic Recovery passes (make autobahn-integration-test)
  • Non-Autobahn rows unchanged (covered by CI)

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

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

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedSep 29, 2026, 6:24 PM

@codecov

codecov Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.69%. Comparing base (8def26b) to head (30ed1a5).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #4353      +/-   ##
==========================================
- Coverage   67.80%   66.69%   -1.12%     
==========================================
  Files        2177     2055     -122     
  Lines      169116   156859   -12257     
==========================================
- Hits       114668   104612   -10056     
+ Misses      54439    52238    -2201     
  Partials        9        9              
Flag Coverage Δ
sei-chain-pr 0.00% <ø> (?)
sei-db 74.81% <ø> (ø)
sei-db-state-db ?

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

@manav2401 manav2401 changed the title Manav/fix evmonly tests Re-enable Autobahn interop and recovery tests on the EVM-only chain Sep 29, 2026
@manav2401
manav2401 marked this pull request as ready for review September 29, 2026 16:33
@cursor

cursor Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
Changes are limited to integration tests, CI matrix flags, and Hardhat helpers with no production execution or RPC behavior changes.

Overview
Restores Autobahn EVM Interoperability (Misc Tests) in the CI matrix and removes the skip on Autobahn Recovery, now that the durable EVM-only execution cursor supports validator restart.

Hardhat shared setup no longer blocks EVM-only runs: isEvmOnlyChain (chain ID 713715) skips getSeiAddress in setupSigners, SeiSoloTest self-skips where Solo/CosmWasm claims do not apply, and SetCodeTxTest builds the viem chain from eth_chainId instead of a fixed ID. TestAutobahnStartup signs transfers with eth_getTransactionCount so repeated runs on the same cluster succeed. Matrix comments for still-disabled Autobahn rows are clarified; the interop script notes Solo pending on EVM-only.

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

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

This PR is clean and has no findings. It turns the Autobahn EVM Interoperability (Misc Tests) row back on and un-skips Recovery. It also skips the Sei address lookup on the EVM-only chain and in SeiSoloTest, reads the chain ID from the node in SetCodeTxTest, and makes TestAutobahnStartup sign at the chain's current nonce so it can run again on the same cluster. The hard-coded EVM_ONLY_CHAIN_ID (713715) matches AutobahnEVMOnlyChainID, and the new Go helpers are small and correct.

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

Blockers

  • None at the file/PR level.

Non-blocking

  • None at the file/PR level.

Comment thread contracts/test/lib.js Outdated
@manav2401
manav2401 enabled auto-merge September 29, 2026 18:23
@seidroid

seidroid Bot commented Sep 29, 2026

Copy link
Copy Markdown

The PR gets the shared hardhat setup working on the EVM-only Autobahn chain: it skips the Sei address lookup there, reads the chain ID from the node, skips SeiSoloTest, re-enables the interop row and un-skips Recovery, and has the startup gate read the sender's nonce before signing. I found nothing blocking: the durable execution cursor that Recovery needs is in the merged tree (evmOnlyApplication.Info reports cursor state), and codex's reading of no findings agrees with mine, so it contributed nothing I had to check further.

1 nit, not posted on the code
  • contracts/test/lib.js:766 — EVM_ONLY_CHAIN_ID copies AutobahnEVMOnlyChainID from sei-tendermint/config/autobahn.go by hand. If the Go constant changes, isEvmOnlyChain quietly returns false, and every suite fails again at the Sei address lookup instead of at a clear chain-ID mismatch.

seidroid review · decision approve · session 6a6d7b2af18746a6bbd697d40da3e38d · turn resp_claude_22fa6c35a4b4cd2a55b9efc78c57a967 · item 026a43c3cda85d24b726ca9718fd548e

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

@manav2401
manav2401 added this pull request to the merge queue Sep 29, 2026
Merged via the queue into main with commit e822b8f Sep 29, 2026
69 checks passed
@manav2401
manav2401 deleted the manav/fix-evmonly-tests branch September 29, 2026 18:51
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.

3 participants