This page tracks all releases and changes from the cosmos/evm repository.
For the latest development updates, see the UNRELEASED section.
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 rawdue 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_estimateGasgRPC path: short-circuit plain transfers, add optimistic gas bound based onMaxUsedGas. - #513 Replace
TestEncodingConfigwith productionEncodingConfigin 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
erc20Keeperoptional 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
/typesand move types into respective folders. - #630 Reduce feemarket parameter loading to minimize memory allocations.
- #577 Cleanup precompiles boilerplate code.
- #648 Move all
antelogic such asNewAnteHandlerfrom theevmdpackage toevm/anteso 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
StaticPrecompilesbuilder - #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
NewPrecompilefunction signatures. - #594 Remove all usage of x/params
- #577 Changed the way to create a stateful precompile based on the cmn.Precompile, change
NewPrecompileto 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.
DEPENDENCIES
- #459 Update
cosmossdk.io/logtov1.6.1to support Gov1.25.0+. - #435 Update Cosmos SDK to
v0.53.4and CometBFT tov0.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-pairsto 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.