v0.5.0
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