- #1232 Bump
ibc-gotov11.1.0. - #1250 Require Node.js
>=22to compile the Solidity contracts and run the JavaScript test suites (contracts/,tests/contracts/,tests/evm-tools-compatibility/*).
- #1146 Remove
EndBlockerbased mempool updates, usePrepareCheckStaterinstead.
- #758 Cleanup precompiles abi.json.
- #810 Fix integration test suite to resolve lock contention problem from external app injection
- #811 Use sdk's DefaultBondDenom for default evm denom in genesis.
- #823 Remove authz dependency from test suite and EvmApp interface
- #829 Seperate test app interface
- #968 Use normal gas config in ibc transfer to prevent potential DoS attack
- #1029 Mark EvmCoinInfo.Decimals field as deprecated
- #1079 Access Control List is now case-insensitive
- #1103 Align normal gas metering in ibc erc20 callback.
- #1108 Add json-rpc http server request body limit.
- #1118 Cache chain denom for evm mempool
- #1008 Stop enforcing JSON-RPC global filter cap and allow reclaim filters via configurable idle timeout.
- #1130 Use
sdk.ValidateAuthorityinx/vm,x/erc20, andx/feemarketMsgServerhandlers so authority can optionally be centralized via the consensusAuthorityParamsintroduced in cosmos-sdk v0.54. - #1164 Remove zero gas config from
ics20.transferWithStateDBso inner KV ops in ICS20 transfer execution are metered, mirroring #1103. - #1220 Use latest block for setting txn defaults in rpc call.
- #1232 Validate ICS-20 acknowledgement encoding in the erc20 IBC v2 middleware.
- #1243 Deploy contracts from an EOA rather than a module account in the test helpers. It is also now required: contract creation bumps the sender's nonce,
SetAccountpersists nonce and balance together, and the EVM commit path may not write a module account's balance.
- #589 Remove parallelization blockers via migration from transient to object store, refactoring of gas, indexing, and bloom utilities.
- #768 Added ICS-02 Client Router precompile
- #815 Support for multi gRPC query clients serve with old binary.
- #1082 Enable incarnation cache for verify result.
- #1096 Allow eth_call overrides work with static precompiles.
- #1228 Respect
ctx.IsSigverifyTx()in EVM signature verification, mirroring x/auth to allow applications skip redundant ecrecover for txs the node already verified.
- #1265 Apply
json-rpc.evm-timeouttoeth_estimateGas, matchingeth_call. - #1223 Reject EVM txs below the base fee at mempool insert instead of silently queuing them.
- #1214 Emit the canonical CometBFT block hash in the
newHeadssubscription so it matcheseth_getBlockByNumber(completes #725). - #1047 Resolve EthTxIndex -1 sentinel before uint cast in ReceiptsFromCometBlock, preventing transactionIndex overflow to MaxUint64.
- #965 Fix gas double charging on EVM calls in IBCOnTimeoutPacketCallback.
- #869 Fix erc20 IBC callbacks to check for native token transfer before parsing recipient.
- #860 Fix EIP-712 signature verification to use configured EVM chain ID instead of parsing cosmos chain ID string and replace legacytx.StdSignBytes with the aminojson sign mode handler.
- #794 Fix mempool.max-txs flag not using desired default of 0
- #748 Fix DynamicFeeChecker in Cosmos ante handler to respect NoBaseFee feemarkets' parameter.
- #690 Fix Ledger hardware wallet support for coin type 60.
- #769 Fix erc20 ibc middleware to not to validate sender address format.
- #756 Fix error message typo in NewMsgCancelProposal.
- #772 Avoid panic on close if evm mempool not used.
- #774 Emit proper allowance amount in erc20 event.
- #790 fix panic in historical query due to missing EvmCoinInfo.
- #800 Fix denom exponent validation in virtual fee deduct in vm module.
- #1132 Patch block-cumulative
log.Indexand eth-onlylog.TxIndexpost-execution to fix indexing under BlockSTM. - #817 Align GetCoinbaseAddress to handle empty proposer address in contexts like CheckTx where proposer doesn't exist.
- #814 Fix duplicated events in post tx processor.
- #816 Avoid nil pointer when RPC requests execute before evmCoinInfo initialization in PreBlock with defaultEvmCoinInfo fallback.
- #828 Validate decimals before conversion to prevent panic when coininfo is missing in historical queries.
- #905 Fix EIP-6780 selfdestruct to properly delete contracts at pre-funded addresses by persisting code and account before DeleteAccount's IsContract check.
- #920 Fix GetCoinbaseAddress to correctly convert validator operator address from Bech32 format to Ethereum address for block.coinbase opcode.
- #705 Fix dynamic precompiles being disabled when EVM state overrides are used in eth_call.
- #967 Fix return value of erc20 ibcv2 middleware to properly reflect application success and middleware failure.
- #992 Respect the provided
gasCapinCallEVMWithDatainstead of always used the default cap. - #993 Enforce
src_callbackcontract address to match the packet sender for IBC acknowledgement and timeout callbacks to prevent arbitrary contract execution. - #1061 Block nested ICS20 forwarding in source callbacks.
- #1050 Align precompile gas calculation with expected EVM gas semantics.
- #1107 Skip StateDB commit error transactions during receipt conversion to prevent
invalid message indexerrors in block RPCs. - #1216 Fix blocking on mempool event bus unsubscribe.
- #1244 Avoid node crash from panics in the mempool insert queue.
Follow the migration document for upgrade instructions.
- Removed IBC Transfer wrapper. Users are now required to use the precompile to transfer ERC20 tokens.
- Added StateDB as a parameter to internal EVM calls.
- #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, #806 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
- #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
- #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.
- #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.
- #459 Update
cosmossdk.io/logtov1.6.1to support Gov1.25.0+. - #435 Update Cosmos SDK to
v0.53.4and CometBFT tov0.38.18.
- #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.
- #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
- #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.