* Draft eth_estimateGas
* implemented eth_estimateGas
* refactored doCall to be used for both eth_call and eth_estiamteGas
* updated to reflect requested changes
* moved GenerateFromArgs func
* removed todo
* revert comment
* fixes dereference issue
* gofmted
* Fixed tx receipt error on failed transaction
* Add returnData to failed transaction for logs bloom
* Added simulate call option, without returning evm data
* Added encoding and decoding of data from EVM execution for usability
* Remove unused context parameter
* Fix function comment and remove unnecessary logging on eth_call
* Update sdk version, implement pending txs, fix nonce check
* Bump cached dependencies in circleCI
* bump circleci go version
* updated linter and fixed bugs relating to go version 1.13
* Set up gas consumption based on gas limit
* Convert evm gas meter to be infinite since being ignored
* Remove unnecessary declaration
* Update fees paid to validators to be function of gas limit and price instead of just gas
* added nonce check for node tx execution
* Increment account nonce after mempool check
* Remove unnecessary nonce increment
* Implement new tx message type for eth_call and module txs and abstracted state transition, prepared db for logs
* Added transaction indexing to evm keeper
* Alternative count type
* Set up block hash to height mapping storage and fixed linting issues
* fix typos
* Set up module query for block height
* fix bug with block mappings and implemented get block by hash
* Fix other consensus hash references
* wip Implement get transaction receipt, waiting on details to finalize
* Fix response format for tx receipt
* Fix duplicate err check
* remove cumulative gas field
* Used byte conversion function
* WIP implement eth_getBlockByNumber
* Implemented some missing fields
* Added gasLimit and updated previous fields
* Implement remaining pieces for eth_getBlock including decoding txs
* Add converting transaction objects into function for usability
* Clean up code
* format block in function for usability
* Fixed formatting and cached gasLimit value
- Updates RPC return types
- Removes custom query types in favour of default eth
- This is largely to allow for proper hexadecimal formatting (provided by `hexutil`), as the API is very specific about formatting.
* Set up framework for sending transaction with correct args and nonce mutex locking
* Set up printing ethereum address through emintkeys and getting chainid from flags
* Implemented defaults for eth_sendTransaction
* Fix bug with no data provided
* Updated comments and error, as well as RLP encoded tx bytes for return instead of amino encoded
* Implement sendRawTransaction (tx not being broadcasted to node from server)
* Add broadcast type flag to rpc API and fixed amount validation
* Add documentation
* Set up personal account api for personal sign
* Added unlocking key functionality and attach to eth rpc
* Implemented eth_sign
* Transform V in sig based on yp and fix bug
* Fix lint issue
* Remove escape character from comment
* Switch error handling to panic on invalid unlocked key
* WIP implementing state transition function
* Error handling and application setup fix
* Fixed error comment
* Allow creation of state objects with a BaseAccount
* Fixed parameters and finalise state after transaction
* updated transaction signing and cli signature
* Set up consistent account encoding and decoding
* Update txbuilder to get sequence before generating eth tx
* Added create functionality to the CLI command
* Remove need to copy over context for statedb interactions
* Updated account retriever
* Cleaned up handler code and updated TODO
* Make recoverEthSig private again
* Add error check for committing to kv store
* Remove commented out code
* Update evm chain config for state transition
* Add time in context for dapps
* WIP setting up evm tx command and updating emint keys output
* Fix linting issue
* Wip restructuring to allow for ethereum signing and encoding
* WIP setting up keybase and context to use Ethermint keys
* Fixed encoding and decoding of emint keys
* Adds command for generating explicit ethereum tx
* Fixed evm route for handling tx
* Fixed tx and msg encoding which allows transactions to be sent
* Added relevant documentation for changes and cleaned up code
* Added documentation and indicators why code was overriden
* Update CosmosSDK version to 0.36 LTR
* Added basic EthermintApp run/export test
* Go mod tidy from dependency update
* Update export comments
* Remove confusing comment
* Implement base handler framework
* Add comments for the missing state transition logic components for a tx
* Fix typo
* Remove TODO checks done by anteHandler
* WIP setting up Ethereum key CLI commands
* Functional key gen and showing Ethereum address
* Cleaned up changes
* WIP setting up Ethereum key CLI commands
* Functional key gen and showing Ethereum address
* Cleaned up changes
* Changed address to cosmos specific address
* Remove default bech32 prefixes and add basic add command test
* Changed Private key type to slice of bytes for compatibility and storability
* switch back to using cosmos crypto Keybase interfaces
* Changed key output to ethereum addressing instead of bitcoin and key generation to allow seeding from mnemonic and bip39 password
* Updated show command and added test
* Remove prefix requirement for showing keys and added existing keys commands to CLI temporarily
* Removed unnecessary duplicate code
* Readd prefixes for accounts temporarily
* Fix linting issue
* Remove TODO for setting PK to specific length of bytes (all functions use slice)
* Cleaned up descriptions to remove multi-sigs
- Adds ethermint query command (`emintcli query ethermint <query>`)
- Supports block number, storage, code, balance lookups
- Implements RPC API methods `eth_blockNumber`, `eth_getStorageAt`, `eth_getBalance`, and `eth_getCode`
- Adds tester utility for RPC calls
- Adheres to go test format, but should not be run with regular suite
- Requires daemon and RPC server to be running
- Excluded from `make test`, available with `make test-rpc`
- Implemented AppModule interface and added EVM module to app
- Required for routing
- Implements `InitGenesis` (`x/evm/genesis.go`) and stubs `ExportGenesis`
- Modifies GenesisAccount to match expected format
- Implements Keeper. This is a wrapper around the "real" keeper (CSDB). Since we need to pass the context into the keeper we need to abstract the CSDB from the
- Adds WithContext() to CSDB to support the above requirement
- Adds Keeper to app
- Introduces rpc command to cli (rest-server)
- Moves server/rpc to rpc/
- Enables module selection (eg. "web3" or "eth" or "web3,eth"), however there is no CLI flag to configure these (See #74)
- Adds CLI context to eth API