Skip to content
Cosmopediaby Unity Nodes

v0.5.0

cosmos/evmv0.5.021-10-2025

v0.5.0

Major feature upgrades

• EIP-7702 Support and Testing

• JSON-RPC Compatibility aligned with `go-ethereum v1.16.3` • Inputs and outputs match

• Added `debug_traceCall`, `eth_createAccessList`, `eth_getHeaderByHash`, `eth_getHeaderByNumber`

• Fixed compatibility for `eth_getBlockByHash`, `eth_getBlockByNumber`, `eth_getTransactionByHash`, `eth_getTransactionByBlockHashAndIndex`, `eth_getTransactionByBlockNumberAndIndex`

• Added state overrides to various tracing functions

• IBC OnRecvPacket now supports recipient 0x addresses

• Added `go-ethereum` metrics to Cosmos metrics server

Major quality of life improvements

• Configuration improvements • EvmAppOptions was removed

• Coin information was moved to genesis

• EVM Chain ID is now possible to set as flags in the start command or tomls

• Testing configs were deduplicated

• EVM mempool can now be configured from the config tomls

• Most config files moved out from `/evmd` and set as defaults found in the repo, making the simapp folder smaller

• Added precompile builder for app.go

• Refactored precompiles and removed transaction execution boilerplate code

For migrating from v0.4.x, please refer to the migration guide .

What's Changed

• chore: set up backport rules for v0.4.x by @aljo242 in #463

• chore: retract by @aljo242 in #464

• fix: rpc accessibility in docker by @technicallyty in #469

• tests: evm tools compatibility by @zsystm in #287

• feat: re-use tx validation rules from go-ethereum by @yihuang in #286

• chore: cleanup deprecated increaseAllowance and decreaseAllowance by @mmsqe in #472

• feat: local_node.sh upgrades by @technicallyty in #470

• Problem: query decimals get reverted when Display doesn't match with DenomUnit for ibc token by @mmsqe in #397

• chore: update contracts-compile script by @cloudgray in #475

• test(jsonrpc): add jsonrpc compatibility test by @cloudgray in #419

• fix: precisebank & werc20 precompile by @cloudgray in #457

• (docs):Add SetClientCtx instructions to migration guide by @vladjdk in #481

• fix: add pagination flags to token-pairs query by @mmsqe in #468

• revert auto-fix for markdown linting by @Cordtus in #483

• add comments clarifying TokenPair meaning by @almk-dev in #489

• feat: remove allow-unprotected-txs(non eip-155) from x/vm params by @dudong2 in #415

• docs: Add ERC20 precompiles migration guide ( #424 ) by @Cordtus in #485

• chore: replace GlobalEVMMempool by passing to JSONRPC on initiate by @mmsqe in #467

• Problem: eip-2935 is not implemented by @yihuang in #407

• refactor: decouple keeper using interface on precompile by @yoosah in #477

• chore: set up changelog properly post (v0.4.x) by @aljo242 in #491

• feat: Delete EVM instance in AnteHandler by @heijiLee in #352

• tests: add revert error e2e tests for contract and precompile calls by @cloudgray in #476

• Problem: IsStorageEmpty is not implemented by @yihuang in #490

• feat: allow PostTxProcessing to run on failures and persist data by @facundomedica in #479

• fix: notify new block for mempool in time to avoid insufficient funds error by @mmsqe in #471

• feature: Add eth_createAccessList method and implementation by @almk-dev in #346

• fix: duplicate case switch to avoid empty execution block by @almk-dev in #492

• test: v0.4.1 -> main upgrade test by @technicallyty in #498

• (chore):Simplify Mempool Config by @vladjdk in #496

• ci: workflow fails when feat, fix, or refactor PRs do not have changelog entry by @technicallyty in #499

• chore: cleanup deprecated BalanceChangeEntry by @mmsqe in #506

• refactor: replace TestEncodingConfig with production Config by @zchn in #513

• fix: allow value with slashes when query token_pairs by @mmsqe in #509

• fix: allow mempool interrupt while it is still ongoing by @almk-dev in #495

• docs: update contrib guide by @technicallyty in #539

• ci: add workflow to enforce conventional commit PR titles by @technicallyty in #541

• chore: check if mempool is not nil before accepting nonce gap error tx by @mmsqe in #572

• fix(evmd): remove pebble replace directive by @pitasi in #574

• docs(migration): boilerplate v0.5.0 migration docs with mempool migra… by @vladjdk in #540

• perf: optimize gas estimation by @vladjdk in #538

• feat: AddPrecompileFn on stateObject not needed by @yihuang in #511

• fix: CometBlockResultByNumber when height is 0 by @pitasi in #416

• feat: add block time in derived logs by @yihuang in #502

• feat: avoid unnecessary block notifications when the event bus is already set up by @mmsqe in #568

• feat: don't emit EVM logs into cosmos-sdk events by @mmsqe in #576

• fix: use zero constructor to avoid nil pointer panic when BaseFee is 0 by @almk-dev in #585

• test(mempool): add integration test by @cloudgray in #512

• feat: add block max_gas and min_tip ingestion to app.go mempool config by @almk-dev in #582

• chore: bump to ibc-go v10.3.0 by @gjermundgaraba in #592

• fix(crypto): invalid type of PubKey.Address() method by @cloudgray in #600

• docs: add d2 tool to repo and mempool arch diagram by @almk-dev in #597

• test: add nested precompile reversion test case by @vladjdk in #535

• perf: reduce number of query context calls by @vladjdk in #598

• test: mock bank keeper is outdated by @mmsqe in #606

• feat: emit geth metrics on cosmos SDK metrics server by @technicallyty in #588

• fix(mempool): checkTxHandler to handle invalid sequence tx by @cloudgray in #591

• perf: cache precompile abis by @vladjdk in #631

• feat: fill block hash and timestamp in tx response by @mmsqe in #584

• fix: align tx not found in get_transaction_receipt by @mmsqe in #533

• chore: cleanup unnecessary fix-revert-gas-refund-height by @mmsqe in #624

• feat: separate geth metrics server by @technicallyty in #633

• refactor: move default precompiles out of evmd config by @vladjdk in #635

• refactor: make erc20keeper optional in x/vm by @gjermundgaraba in #609

• test(systemtests): add appside mempool e2e test by @cloudgray in #580

• fix: evmd instruction seed phrase by @vladjdk in #640

• feat!: remove boilerplate code from stateful precompiles by @yihuang in #577

• docs: Update README.md by @merkletreeibc in #638

• fix: align bank keeper for correct decimal conversion by @mmsqe in #645

• fix: source flag for key add by @mmsqe in #643

• chore: relocate all ante logic to `evm` from `evmd` by @aljo242 in #648

• chore: move tests to remove circular dependency by @vladjdk in #654

• fix: simplify sed scripts in local_node.sh by @pitasi in #653

• refactor: Move configs out of EVMD and deduplicate configs by @vladjdk in #659

• fix!: Fix race condition in mempool blockchain impl by @Eric-Warehime in #656

• fix: Fix race condition in legacypool when removing txs by @mattac21 in #658

• chore: Add race detection to test builds by @Eric-Warehime in #662

• fix: add SetQueryGasLimit to baseapp options by @vladjdk in #641

• perf: avoid duplicated feemarket params load by @mmsqe in #630

• test: add EIP-7702 integration test by @cloudgray in #664

• fix: indexer service can't quit by signal by @mmsqe in #687

• test(x/vm): add unit test cases for EIP-7702 by @cloudgray in #684

• test: add eip7702 e2e test by @cloudgray in #685

• feat: support state overrides in eth_call by @mmsqe in #337

• fix: "tx not found in mempool" error on chain startup by @vladjdk in #642

• feat(precompile/staking): return full validators' description from queries by @pitasi in #650

• fix: avoid debug hex address fails on 0x prefix by @mmsqe in #689

• Update SECURITY.md by @aljo242 in #695

• fix(rpc): align jsonrpc apis with geth v1.16.3 by @cloudgray in #599

• feat(encoding): include an address codec implementation by @srdtrk in #665

• refactor(config): remove evmAppOptions entirely by @vladjdk in #661

• feat: static precompiles builder by @gjermundgaraba in #680

• refactor(types)!: move types to respective folders and remove `/types` by @vladjdk in #639

• fix(mempool): legacy subpool panic on skipped header during reset by @mattac21 in #668

• test: fix EIP-7702 test cases by @cloudgray in #704

• test: fix flaky TestAllowedTxSize for legacypool by @mmsqe in #699

• feat(erc20): accept hex addresses in erc20 callbacks by @vladjdk in #701

• test: fix mempool e2e test by @cloudgray in #709

• fix: EoA-CA Identification logic by @cloudgray in #710

• test: eip712 e2e tests by @vladjdk in #700

• feat(rpc): add debug_traceCall api by @cloudgray in #711

• chore: fix systemtests CI by @vladjdk in #714

• refactor(config): Expose mempool configuration flags and move mempool app configuration to helper by @almk-dev in #698

• chore: fix changelog by @cloudgray in #721

• feat(testnet): add configurable testnet validator powers by @almk-dev in #708

• fix: don't panic if evm mempool not used by @yihuang in #730

• fix: avoid tx with unsupported extension option for ExtensionOptionDynamicFeeTx by @mmsqe in #733

• fix: avoid nil pointer for tx evm raw cmd by @mmsqe in #727

• fix: inconsistent block hash in json-rpc responses by @yihuang in #725

• fix: non-deterministic evm pre-blocker by @yihuang in #729

• fix: wrong TransactionIndex in receipt by @mmsqe in #723

• chore: align go-ethereum fork as main by @mmsqe in #737

• test: example of configuring config.toml values in systest by @technicallyty in #667

• fix: evm mempool should be disabled if max-txs < 0 by @yihuang in #734

• fix: add InitEvmCoinInfo upgrade to avoid panic when denom is not registered by @mmsqe in #736

New Contributors

• @heijiLee made their first contribution in #352

• @facundomedica made their first contribution in #479

• @zchn made their first contribution in #513

• @pitasi made their first contribution in #574

• @merkletreeibc made their first contribution in #638

• @srdtrk made their first contribution in #665

Full Changelog : v0.4.0...v0.5.0

← Back to Releases