Skip to main content
This page tracks all releases and changes from the cosmos/evm repository. For the latest development updates, see the UNRELEASED section.
Release
EVMRelease
v0.5.0

BUG FIXES

  • #471 Notify new block for mempool in time
  • #492 Duplicate case switch to avoid empty execution block
  • #509 Allow value with slashes when query token_pairs
  • #495 Allow immediate SIGINT interrupt when mempool is not empty
  • #416 Fix regression in CometBlockResultByNumber when height is 0 to use the latest block. This fixes eth_getFilterLogs RPC.
  • #545 Check if mempool is not nil before accepting nonce gap error tx.
  • #585 Use zero constructor to avoid nil pointer panic when BaseFee is 0d
  • #591 CheckTxHandler should handle “invalid nonce” tx
  • #642 “tx not found in mempool” error on chain startup
  • #643 Support for mnemonic source (file, stdin,etc) flag in key add command.
  • #645 Align precise bank keeper for correct decimal conversion in evmd.
  • #656 Fix race condition in concurrent usage of mempool StateAt and NotifyNewBlock methods.
  • #658 Fix race condition between legacypool’s RemoveTx and runReorg.
  • #687 Avoid blocking node shutdown when evm indexer is enabled, log startup failures instead of using errgroup.
  • #689 Align debug addr for hex address.
  • #668 Fix panic in legacy mempool when Reset() was called with a skipped header between old and new block.
  • #723 Fix TransactionIndex in receipt generation to use actual EthTxIndex instead of loop index.
  • #729 Remove non-deterministic state mutation from EVM pre-blocker.
  • #725 Fix inconsistent block hash in json-rpc.
  • #727 Avoid nil pointer for tx evm raw due to uninitialized EVM coin info.
  • #730 Fix panic if evm mempool not used.
  • #733 Avoid rejecting tx with unsupported extension option for ExtensionOptionDynamicFeeTx.
  • #736 Add InitEvmCoinInfo upgrade to avoid panic when denom is not registered.
  • #732 Fix gas meter race condition in integration tests

IMPROVEMENTS

  • #708 Add configurable testnet validator powers
  • #698 Expose mempool configuration flags and move mempool configuration in app.go to helper
  • #538 Optimize eth_estimateGas gRPC path: short-circuit plain transfers, add optimistic gas bound based on MaxUsedGas.
  • #513 Replace TestEncodingConfig with production EncodingConfig in encoding package to remove test dependencies from production code.
  • #467 Replace GlobalEVMMempool by passing to JSONRPC on initiate.
  • #352 Remove the creation of a Geth EVM instance, stateDB during the AnteHandler balance check.
  • #496 Simplify mempool instantiation by using configs instead of objects.
  • #512 Add integration test for appside mempool.
  • #568 Avoid unnecessary block notifications when the event bus is already set up.
  • #511 Minor code cleanup for AddPrecompileFn.
  • #576 Parse logs from the txResult.Data and avoid emitting EVM events to cosmos-sdk events.
  • #584 Fill block hash and timestamp for json rpc.
  • #582 Add block max-gas (from genesis.json) and new min-tip (from app.toml/flags) ingestion into mempool config
  • #580 add appside mempool e2e test
  • #598 Reduce number of times CreateQueryContext in mempool.
  • #606 Regenerate mock file for bank keeper related test.
  • #609 Make erc20Keeper optional in the EVM keeper
  • #624 Cleanup unnecessary fix-revert-gas-refund-height.
  • #635 Move DefaultStaticPrecompiles to /evm and allow projects to set it by default alongside the keeper.
  • #639 Remove /types and move types into respective folders.
  • #630 Reduce feemarket parameter loading to minimize memory allocations.
  • #577 Cleanup precompiles boilerplate code.
  • #648 Move all ante logic such as NewAnteHandler from the evmd package to evm/ante so it can be used as library functions.
  • #659 Move configs out of EVMD and deduplicate configs
  • #664 Add EIP-7702 integration test
  • #684 Add unit test cases for EIP-7702
  • #685 Add EIP-7702 e2e test
  • #680 Introduce a StaticPrecompiles builder
  • #701 Add address codec support to ERC20 IBC callbacks to handle hex addresses in addition to bech32 addresses.
  • #704 Fix EIP-7702 test cases
  • #709 Fix mempool e2e test
  • #710 Fix EoA-CA Identification logic
  • #711 Add debug_traceCall api
  • #720 Refactor systemtests
  • #734 Disable evm mempool if max-txs set to -1.
  • #743 Apply state overrides to eth_estimateGas api

FEATURES

  • #665 Add EvmCodec address codec implementation
  • #346 Add eth_createAccessList method and implementation
  • #337 Support state overrides in eth_call.
  • #502 Add block time in derived logs.
  • #633 go-ethereum metrics are now emitted on a separate server. default address: 127.0.0.1:8100.
  • #650 Make staking precompile queries return the full validators’ description structure.

API-BREAKING

  • #477 Refactor precompile constructors to accept keeper interfaces instead of concrete implementations, breaking the existing NewPrecompile function signatures.
  • #594 Remove all usage of x/params
  • #577 Changed the way to create a stateful precompile based on the cmn.Precompile, change NewPrecompile to not return error.
  • #661 Removes evmAppOptions from the repository and moves initialization to genesis. Chains must now have a display and denom metadata set for the defined EVM denom in the bank module’s metadata.
Release
EVMRelease
v0.4.1

DEPENDENCIES

  • #459 Update cosmossdk.io/log to v1.6.1 to support Go v1.25.0+.
  • #435 Update Cosmos SDK to v0.53.4 and CometBFT to v0.38.18.

BUG FIXES

  • #179 Fix compilation error in server/start.go
  • #245 Use PriorityMempool with signer extractor to prevent missing signers error in tx execution
  • #289 Align revert reason format with go-ethereum (return hex-encoded result)
  • #291 Use proper address codecs in precompiles for bech32/hex conversion
  • #296 Add sanity checks to trace_tx RPC endpoint
  • #316 Fix estimate gas to handle missing fields for new transaction types
  • #330 Fix error propagation in BlockHash RPCs and address test flakiness
  • #332 Fix non-determinism in state transitions
  • #350 Fix p256 precompile test flakiness
  • #376 Fix precompile initialization for local node development script
  • #384 Fix debug_traceTransaction RPC failing with block height mismatch errors
  • #441 Align precompiles map with available static check to Prague.
  • #452 Cleanup unused cancel function in filter.
  • #454 Align multi decode functions instead of string contains check in HexAddressFromBech32String.
  • #468 Add pagination flags to token-pairs to improve query flexibility.

IMPROVEMENTS

  • #294 Enforce single EVM transaction per Cosmos transaction for security
  • #299 Update dependencies for security and performance improvements
  • #307 Preallocate EVM access_list for better performance
  • #317 Fix EmitApprovalEvent to use owner address instead of precompile address
  • #345 Fix gas cap calculation and fee rounding errors in ante handler benchmarks
  • #347 Add loop break labels for optimization
  • #370 Use larger CI runners for resource-intensive tests
  • #373 Apply security audit patches
  • #377 Apply audit-related commit 388b5c0
  • #382 Post-audit security fixes (batch 1)
  • #388 Post-audit security fixes (batch 2)
  • #389 Post-audit security fixes (batch 3)
  • #392 Post-audit security fixes (batch 5)
  • #398 Post-audit security fixes (batch 4)
  • #442 Prevent nil pointer by checking error in gov precompile FromResponse.
  • #387 (Experimental) EVM-compatible appside mempool
  • #476 Add revert error e2e tests for contract and precompile calls
  • #599 Align jsonrpc apis with geth v1.16.3

FEATURES

  • #253 Add comprehensive Solidity-based end-to-end tests for precompiles
  • #301 Add 4-node localnet infrastructure for testing multi-validator setups
  • #304 Add system test framework for integration testing
  • #344 Add txpool RPC namespace stubs in preparation for app-side mempool implementation
  • #440 Enforce app creator returning application implement AppWithPendingTxStream in build time.

API-BREAKING

  • #456 Remove non–go-ethereum JSON-RPC methods to align with Geth’s surface
  • #443 Move ante logic from the evmd Go package to the evm package to
  • #422 Align function and package names for consistency.
  • #305 Remove evidence precompile due to lack of use cases