# Changelog ## [Unreleased] ### Improvements * (sdk) [\#171](https://github.com/ChainSafe/ethermint/issues/177) Bump Cosmos SDK version to [v0.38.1](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.38.1) [@fedekunze](https://github.com/fedekunze): * Add `x/evidence` module to ethermint app * Bump Go requirement to 1.14+ * (`x/evm`) [\#181](https://github.com/ChainSafe/ethermint/issues/181) Updated EVM module to the recommended module structure. [@fedekunze](https://github.com/fedekunze) * (app) [\#188](https://github.com/ChainSafe/ethermint/issues/186) Misc cleanup [@fedekunze](https://github.com/fedekunze): * (`x/evm`) Rename `EthereumTxMsg` --> `MsgEthereumTx` and `EmintMsg` --> `MsgEthermint` for consistency with SDK standards * Updated integration and unit tests to use `EthermintApp` as testing suite * Use expected keeper interface for `AccountKeeper` * Replaced `count` type in keeper with `int` * Add SDK events for transactions * [\#236](https://github.com/ChainSafe/ethermint/pull/236) Changes from upgrade [@fedekunze](https://github.com/fedekunze) * (`app/ante`) Moved `AnteHandler` implementation to `app/ante` * (keys) Marked `ExportEthKeyCommand` as **UNSAFE** * (x/evm) Moved `BeginBlock` and `EndBlock` to `x/evm/abci.go` * (`x/evm`) [\#255](https://github.com/ChainSafe/ethermint/pull/255) Add missing `GenesisState` fields and support `ExportGenesis` functionality. * [\#272](https://github.com/ChainSafe/ethermint/pull/272) Add `Logger` for evm module. * [\#317](https://github.com/ChainSafe/ethermint/pull/317) `GenesisAccount` validation. * (`x/evm`) [\#319](https://github.com/ChainSafe/ethermint/pull/319) Verious evm improvements: * Add transaction `[]*ethtypes.Logs` to evm's `GenesisState` to persist logs after an upgrade. * Remove evm `CodeKey` and `BlockKey`in favor of a prefix `Store`. * Set `BlockBloom` during `EndBlock` instead of `BeginBlock`. * `Commit` state object and `Finalize` storage after `InitGenesis` setup. * (rpc) [\#325](https://github.com/ChainSafe/ethermint/pull/325) `eth_coinbase` JSON-RPC query now returns the node's validator address. ### Features * (rpc) [\#231](https://github.com/ChainSafe/ethermint/issues/231) Implement NewBlockFilter in rpc/filters.go which instantiates a polling block filter * Polls for new blocks via BlockNumber rpc call; if block number changes, it requests the new block via GetBlockByNumber rpc call and adds it to its internal list of blocks * Update uninstallFilter and getFilterChanges accordingly * uninstallFilter stops the polling goroutine * getFilterChanges returns the filter's internal list of block hashes and resets it * (rpc) [\#54](https://github.com/ChainSafe/ethermint/issues/54), [\#55](https://github.com/ChainSafe/ethermint/issues/55) Implement `eth_getFilterLogs` and `eth_getLogs`: * For a given filter, look through each block for transactions. If there are transactions in the block, get the logs from it, and filter using the filterLogs method * `eth_getLogs` and `eth_getFilterChanges` for log filters use the same underlying method as `eth_getFilterLogs` * update `HandleMsgEthereumTx` to store logs using the ethereum hash * (app) [\#187](https://github.com/ChainSafe/ethermint/issues/187) Add support for simulations. ### Bug Fixes * (rpc) [\#305](https://github.com/ChainSafe/ethermint/issues/305) Update eth_getTransactionCount to check for account existence before getting sequence and return 0 as the nonce if it doesn't exist. * (`x/evm`) [\#319](https://github.com/ChainSafe/ethermint/pull/319) Fix `SetBlockHash` that was setting the incorrect height during `BeginBlock`. * (x/evm) [\#176](https://github.com/ChainSafe/ethermint/issues/176) Updated Web3 transaction hash from using RLP hash. Now all transaction hashes exposed are amino hashes. * Removes `Hash()` (RLP) function from `MsgEthereumTx` to avoid confusion or misuse in future.