laconicd/CHANGELOG.md
Federico Kunze 20e9b2ede3
rpc: event websocket subscription (#308)
* rpc: event websocket subscription

* rpc: use tendermint event subscriptions

* new log events

* filter evm transactions

* filter logs

* wip: refactor filters

* remove custom BlockNumber

* wip: refactor rpc

* HeaderByNumber and HeaderByHash

* update Tendermint event system

* update Filter

* update EventSystem

* fix lint issues

* update rpc filters

* upgrade to tendermint v0.33.4

* update filters

* fix unsubscription

* updates wip

* initialize channels

* cleanup go routines

* pass ResultEvent channel on subscription

* error channel

* add block filter changes test

* add eventCh loop

* pass funcs in select go func, block filter working

* cleanup

* lint

* NewFilter and GetFilterChanges working

* eth_getLogs working

* lint

* lint

* cleanup

* remove logs and minor fixes

* changelog

* address @noot comments

* revert BlockNumber removal

Co-authored-by: noot <elizabethjbinks@gmail.com>
2020-07-03 11:40:00 -04:00

5.2 KiB

Changelog

[Unreleased]

Improvements

  • (sdk) #171 Bump Cosmos SDK version to v0.38.1 @fedekunze:
    • Add x/evidence module to ethermint app
    • Bump Go requirement to 1.14+
  • (x/evm) #181 Updated EVM module to the recommended module structure. @fedekunze
  • (app) #188 Misc cleanup @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 Changes from upgrade @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 Add missing GenesisState fields and support ExportGenesis functionality.
  • #272 Add Logger for evm module.
  • #317 GenesisAccount validation.
  • (x/evm) #319 Verious 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

  • (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.