Skip to content

v0.5.0

Latest

Choose a tag to compare

@vladjdk vladjdk released this 21 Oct 14:58
· 22 commits to main since this release
733ea61

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

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