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-ethereummetrics 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
/evmdand 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
evmfromevmdby @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
/typesby @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