Skip to content

V0.29.0 gwyneth#9

Open
Brechtpd wants to merge 17 commits intov0.29.0from
v0.29.0-gwyneth
Open

V0.29.0 gwyneth#9
Brechtpd wants to merge 17 commits intov0.29.0from
v0.29.0-gwyneth

Conversation

@Brechtpd
Copy link
Copy Markdown

No description provided.

Brechtpd and others added 17 commits August 3, 2025 17:50
- Update revm dependency to v75-gwyneth-claude branch
- Adapt code to handle ChainAddress instead of Address
- Fix all test files to use ChainAddress compatibility layer
- Ensure all tests pass including JS tracer functionality
- Add CLAUDE.md documentation for future development

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
The latest v75-gwyneth-claude branch has breaking API changes that need
more work to adapt to. For now, pinning to the last known working commit
ensures the code compiles and all tests pass.
Major changes to support the MultiChainDatabase architecture:
- Updated all source files to use ChainAddress where needed
- Fixed Database trait bounds for MultiChainDatabase
- Updated tests to use MultiCacheDB instead of CacheDB
- Fixed StorageChanged -> StorageChange enum variant name
- Updated all test files to use ChainAddress(1, address) for transaction callers
- Fixed Context and Evm construction methods for MultiChain support

Library compiles and all unit tests pass. Most integration tests work except
transfer.rs which needs TransferInspector to implement Inspector for MultiCacheDB.
The revm update changed the enum variant name back to StorageChanged.
Updated to match the latest v75-gwyneth-claude branch.
- Fixed ChainAddress usage in JS tracer bindings
- Updated JS Inspector trait bounds for Database compatibility
- Fixed JS test to use MultiCacheDB instead of CacheDB
- Library compiles successfully with all features (serde, js-tracer)
- Note: Some JS tracer tests need MultiCacheDB DatabaseRef implementation
Major changes:
- Migrate from Address to ChainAddress throughout codebase for multi-chain support
- Update TransferInspector to require MultiChainDatabase instead of Database trait
- Fix all Interpreter::new calls to include chain_id parameter
- Update test infrastructure to work with MultiCacheDB
- Add proper trait imports (ExecuteEvm, MainContext, MainBuilder, etc.)
- Fix PrevrandaoNotSet errors by setting SpecId in test contexts

Known issues:
- Some tests fail due to MultiCacheDB not properly persisting deployed contract bytecode
- This affects test_internal_transfers, test_geth_calltracer_logs, and test_geth_mux_tracer
- Contract deployment appears successful but bytecode remains empty when called

The codebase now compiles successfully with all features enabled.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
The revm codebase was updated with changes to how ChainAddress is used:
- CreateInputs.caller is now already a ChainAddress, not Address
- precompile_addresses() now returns HashSet<ChainAddress> instead of HashSet<Address>

Changes:
- Remove unnecessary ChainAddress wrapping of inputs.caller
- Convert ChainAddress to Address where needed for precompile checks
- Fix access list inspector to handle ChainAddress precompiles
- Remove unused imports

Test results:
- All library unit tests pass (8/8)
- Most integration tests pass (8/15)
- Remaining failures are PrevrandaoNotSet errors in older test setups

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add prevrandao field to block environment for CANCUN and post-Merge specs
- Fix PrevrandaoNotSet errors in integration tests
- Update deploy_contract and inspect_deploy_contract helpers to set prevrandao
- Ensure prevrandao is set before inspect_replay() calls in test contexts

The revm update requires prevrandao to be set for post-Merge Ethereum specs.
This commit adds the necessary configuration throughout the test suite.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
After revm update, MultiCacheDB was removed. This commit replaces all
usage of MultiCacheDB with SimpleMultiChainDB throughout the codebase.

Key changes:
- Replaced MultiCacheDB with SimpleMultiChainDB in all test files
- Wrapped EmptyDB with CacheDB when adding to SimpleMultiChainDB
- Fixed prevrandao issues in JS tracer tests

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Updated to use revm v86-gwyneth from taikoxyz/revm-private
- Migrated to multi-chain database interfaces (MultiChainDatabaseRef)
- Fixed ChainAddress handling throughout codebase
- Commented out erc7562 features (not available in alloy 1.0.12)
- Updated Interpreter constructor with ExecutionMode and GwynethSupport
- Fixed journal_mut() call for mutable context access
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.

2 participants