Open
Conversation
Introduce the x/evm module with core infrastructure for EVM support: - Keeper with account management and state handling - Message server for EVM transactions (MsgEthereumTx, MsgUpdateParams) - gRPC query endpoints for account, storage, code, and params - Genesis import/export functionality - Parameter management with chain config, extra EIPs, and EVM denom - FeeMarket keeper integration for dynamic gas pricing Also includes: - Dockerfile: add git dependency for module fetching - Remove unused network config files (cosmoshub-3, osmosis-1)
Implement core infrastructure for EVM transaction processing: - EVM ante handler with custom decorators for gas consumption, nonce verification, and signature validation - Transaction routing logic to handle both EVM and native Cosmos transactions - Bridge module with keeper and message handlers for cross-chain asset transfers - Ethereum JSON-RPC server with eth_* and net_* API endpoints - v1.10.0 upgrade handler with bridge module initialization
Implement EVM precompiles to enable smart contracts to interact with native Cosmos SDK modules: - Bank precompile: transfer, balance queries, and denom metadata access - Oracle precompile: real-time price feed queries from native oracle module - Staking precompile: delegation, undelegation, and validator query operations Additionally: - Integrate bridge keeper into app initialization flow - Add precompile registration infrastructure with dynamic initialization - Update go dependencies for Ethereum libraries (go-ethereum v1.14.11, etc.) These precompiles allow Solidity contracts to seamlessly access native chain functionality via special contract addresses, bridging EVM and Cosmos ecosystems.
Refactor EVM module for better type safety and code organization: - Replace deprecated SDK integer types with cosmossdk.io/math equivalents (NewIntFromString, NewIntFromBigInt) - Centralize query and message request/response types in server.go - Add keeper adapter wrappers to bridge context.Context and sdk.Context interfaces for precompiles - Fix Code query return type (was incorrectly returning QueryCodeRequest) - Temporarily disable staking precompile due to interface incompatibility - Add ProtoMessage stubs for Params and GenesisState - Fix simulation type imports to use simtypes package - Replace sdk.Keccak256 with golang.org/x/crypto/sha3 for proper hashing This refactoring improves maintainability and resolves several type compatibility issues without changing functionality.
… context handling Update simulation and server infrastructure for CometBFT ABCI++ compatibility: - Add ABCI compatibility layer mapping RequestBeginBlock/ResponseEndBlock to FinalizeBlock - Update mock Tendermint to use new vote info structure (BlockIDFlag vs SignedLastBlock) - Migrate InitChain to return pointer and handle errors explicitly - Update context creation to use builder pattern with WithBlockHeight/WithBlockTime - Replace deprecated LastCommitInfo with DecidedLastCommit and ByzantineValidators with Misbehavior JSON-RPC improvements: - Introduce ContextProvider pattern for better separation of concerns - Pass sdk.Context directly to Ethereum API methods instead of storing client.Context - Replace sdk.Keccak256 with golang.org/x/crypto/sha3 for explicit hash implementation Module fixes: - Fix bridge module to properly use types.GenesisState - Simplify market simulation decoder by removing unused delta tracking Additional: - Add Claude CLI settings for go build permissions These changes ensure compatibility with CometBFT v0.38+ ABCI++ while maintaining backward compatibility through adapter types.
Update EVM ante handler to use modern SDK type packages: - Replace sdk.NewGasMeter with storetypes.NewGasMeter for gas metering - Replace sdk.NewIntFromUint64 with math.NewInt for integer conversions - Add imports for cosmossdk.io/math and cosmossdk.io/store/types This continues the migration away from deprecated SDK types to the newer cosmossdk.io packages for better type safety and forward compatibility.
Add comprehensive test suites for EVM module components: - Keeper tests for balance, nonce, code storage, and params management - Bank precompile tests for balanceOf, transfer, gas requirements Upgrade core dependencies: - cosmos-sdk v0.50.9 → v0.50.14 - CosmWasm/wasmd v0.53.0 → v0.53.4 - cosmos-db v1.1.0 → v1.1.1 - ledger-cosmos-go v0.13.3 → v0.14.0 - Promote ethereum/go-ethereum and skip-mev/feemarket to direct dependencies - Migrate packet-forward-middleware from v7 to v8 Additional changes: - Add upgrade constants for v8 and v10 (backwards compatibility) - Fix typo in e2e config: SymphonygTag → SymphonyTag - Clean up duplicate and unused indirect dependencies in go.mod - Update ante_test.go imports for osmomath
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes: #XXX
What is the purpose of the change
(E.g.: This pull request improves documentation of area A by adding ....
Testing and Verifying
(Please pick one of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)
Documentation and Release Note
Unreleasedsection ofCHANGELOG.md?Where is the change documented?
x/{module}/README.md)