Skip to content
This repository has been archived by the owner on Nov 30, 2021. It is now read-only.

v0.1.0

Compare
Choose a tag to compare
@fedekunze fedekunze released this 23 Aug 21:51
· 147 commits to development since this release

Improvements

  • (sdk) #386 Bump Cosmos SDK version to v0.39.1
  • (x/evm) #181 Updated EVM module to the recommended module structure.
  • (app) #188 Misc cleanup:
    • (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 Changes from upgrade:
    • (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 Add missing GenesisState fields and support ExportGenesis functionality.
  • #272 Add Logger for evm module.
  • #317 GenesisAccount validation.
  • (x/evm) #319 Various evm improvements:
    • Add transaction []*ethtypes.Logs to evm's GenesisState to persist logs after an upgrade.
    • Remove evm CodeKey and BlockKeyin favor of a prefix Store.
    • Set BlockBloom during EndBlock instead of BeginBlock.
    • Commit state object and Finalize storage after InitGenesis setup.
  • (rpc) #325 eth_coinbase JSON-RPC query now returns the node's validator address.

Features

  • (build) #378 Create multi-node, local, automated testnet setup with make localnet-start.
  • (rpc) #330 Implement PublicFilterAPI's EventSystem which subscribes to Tendermint events upon Filter creation.
  • (rpc) #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, #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 Add support for simulations.

Bug Fixes

  • (rpc) #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 Fix SetBlockHash that was setting the incorrect height during BeginBlock.
  • (x/evm) #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.