Skip to content

Latest commit

 

History

History
247 lines (204 loc) · 21 KB

File metadata and controls

247 lines (204 loc) · 21 KB

CHANGELOG

UNRELEASED

DEPENDENCIES

  • #1232 Bump ibc-go to v11.1.0.
  • #1250 Require Node.js >=22 to compile the Solidity contracts and run the JavaScript test suites (contracts/, tests/contracts/, tests/evm-tools-compatibility/*).

API-BREAKING

  • #1146 Remove EndBlocker based mempool updates, use PrepareCheckStater instead.

IMPROVEMENTS

  • #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.ValidateAuthority in x/vm, x/erc20, and x/feemarket MsgServer handlers so authority can optionally be centralized via the consensus AuthorityParams introduced in cosmos-sdk v0.54.
  • #1164 Remove zero gas config from ics20.transferWithStateDB so 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, SetAccount persists nonce and balance together, and the EVM commit path may not write a module account's balance.

FEATURES

  • #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.

BUG FIXES

  • #1265 Apply json-rpc.evm-timeout to eth_estimateGas, matching eth_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 newHeads subscription so it matches eth_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.Index and eth-only log.TxIndex post-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 gasCap in CallEVMWithData instead of always used the default cap.
  • #993 Enforce src_callback contract 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 index errors in block RPCs.
  • #1216 Fix blocking on mempool event bus unsubscribe.
  • #1244 Avoid node crash from panics in the mempool insert queue.

v0.6.0

Follow the migration document for upgrade instructions.

BREAKING CHANGES

  • 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.

DEPENDENCIES

IMPROVEMENTS

FEATURES

BUG FIXES

v0.5.1

v0.5.0

DEPENDENCIES

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, #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 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.

STATE BREAKING

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.

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.

STATE BREAKING

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 be exported as a library.
  • #422 Align function and package names for consistency.
  • #305 Remove evidence precompile due to lack of use cases