Commit Graph
40 Commits
Author SHA1 Message Date
Federico Kunze 30f34e6c59 evm: move Keeper and Querier to /keeper package (#182)
* evm: move Keeper and Querier to /keeper package

* keeper: update keeper_test.go

* fix format

* evm: use aliased types

* add comments from review

* changelog
2020-03-09 10:17:23 -03:00
Austin Abell 51adade59f Update golangci-lint config and fix linting issues (#168)
* update golangci

* update golang lint yml and updated linting issues
2020-01-08 09:56:49 +13:00
Austin Abell b98685c46b Enable Cosmos endpoints on rest-server command (#162) 2019-12-20 19:47:02 +10:00
Austin Abell ce8a94a98e Cosmos PR changes (#158)
* Changes necessary for enforced custom account encoding/decoding and keyring keybase changes

* updates cosmos dependency and fixes inconsistency in gas usage for simulated/real txs

* Update PR changes

* Remove unused password prompt when using OS keyring

* Update from changes to sdk

* Update to merged PR commit :the_horns:

* updated code to handle keyring backend options

* update documentation and replace cosmos-sdk with fork (temporarily)

* update cosmos dependency from fork

* update documentation
2019-12-13 14:50:19 -05:00
Austin Abell 6eef37b0c6 Finish and clean up module queries and txs (#152)
* Basic transactions set up (to be separated)

* Change transaction command to not include create operation (to include other command in next commit)

* set up create command and made minor changes

* wip implements module queries

* Added tests for query address decoding

* Added ambiguous encoding of to address in transaction and added tests

* Fix linting issue

* Move registering key types to application level to allow module usage to ignore

* Move genaccounts code to be reused

* Switches nonce increase to always happen in ante handler

* change SetNonce from keeper to point to actual nonce operation

* Remove no op nonce switch (not needed with clearing cache)

* Changes to update all accounts pre state transition and clear cache at end of block

* Update accounts before end of block commit (edge case where necessary)

* Fix nonce of sender going into evm in case it's checked, and let evm set contract starting nonce
2019-11-15 12:02:13 -05:00
Austin Abell 9311f9efd0 Update keybase back to cosmos-sdk with support (#147)
* Migrate keybase back to Cosmos-sdk using temporary fork

* Cleaned up other affected code

* Change to updated tendermint

* fmt

* Change auth codec update

* clean up codec registration to respective packages

* Fix import fmt

* Remove no longer necessary replace

* Fix function comment
2019-11-13 12:00:21 -05:00
Austin Abell 1f51b73d71 Fix block gas limit return for dev tooling (#150)
* cap formatted -1 value of tendermint block gas limit

* return blank miner address for dev tooling checks
2019-11-07 13:02:35 -05:00
Austin Abell 42227a1b8c Fix eth_estimateGas and simulated txs (#142) 2019-11-04 11:59:16 -05:00
Dustin Brickwood fc57cabcab Linted Repo (#136)
* Linted
* Updated lint to include config file
* Linted repo
* Updated make command

* made requested changes

* added no lint
2019-11-01 10:26:53 -05:00
Austin Abell 9294fa8423 Fix edge case for accessing accounts through rpc (#134)
* Add mutex and close keybase database correctly after use

* Add options http request to rpc API for remix
2019-10-31 11:09:40 -04:00
Dustin Brickwood 69e0873dd9 eth_estimateGas (#128)
* 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
2019-10-30 13:30:24 -05:00
Austin Abell 2b4d2bea82 Implements eth_call (#127)
* 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
2019-10-22 11:40:34 -05:00
Austin Abell 475919274e Tx receipt query fix (#126)
* Fixed tx receipt error on failed transaction

* Add returnData to failed transaction for logs bloom

* Change comment to TODO
2019-10-23 01:04:51 +09:00
Austin Abell 160e82b2ad Implement eth_pendingTransactions, bump sdk version (#124)
* 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
2019-10-19 08:23:09 +09:00
Austin Abell dc25d847c3 Implements eth_getProof (#122)
* Implemented eth_getProof and cleaned logs query types

* Rename ethereum logs query type
2019-10-16 09:46:50 +09:00
Austin Abell 5a19ae5706 Implements net_version for Ethers (#121) 2019-10-15 10:20:35 +09:00
Dustin Brickwood a61f3b892d Filtering for eth_getLogs (#120)
* Filtered logs based param criteria
* addded PublicFilterAPI
* added filter logs func to filter based on params
* added Unmarshal func from go-ethereum

* Linted

* made requested changes
2019-10-07 22:32:28 -05:00
Austin Abell eab81bc578 block and tx logs bloom and tx receipt logs (#119)
* Add bloom filter to tx receipt

* wip tx receipt logs to be tested

* Added Bloom - Height Mapping
* keeper.go sets <height:bloombits>
* keeper.go gets <height> --> bloombits

* updating and querying bloom by block (to be tested with real logs)

* fix bug with contract address return

* added error handling instead of logging
2019-10-04 15:32:56 -04:00
Austin Abell 1119c650c6 Implements gettransactionbyblockhashandindex (#115) 2019-09-29 16:46:10 -04:00
Austin Abell 81fc39a9bc Implement eth_getBlockTransactionCountByHash (#116) 2019-09-29 16:43:26 -04:00
Austin Abell 09a71a2a3a eth_getBlockByHash and block hash mapping functionality (#114)
* 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
2019-09-27 10:08:45 -04:00
Austin Abell 7f1eb4b0cf Query and bug fixes (#110)
* Fix queries and bugs

* Fix issues from rebasing

* Fix rpc query address
2019-09-26 11:36:23 -04:00
Austin Abell 192ce2cc1c Implement eth_syncing (#86)
* wip getting Ethereum spec syncing status

* Update sync query
2019-09-26 11:33:25 -04:00
Austin Abell 6cfeb6e754 eth_getTransactionReceipt Impl (#109)
* 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
2019-09-25 14:38:33 -04:00
Austin Abell 26e90e729e Implement eth_getTransactionByBlockNumberAndIndex (#107)
* Implements eth_getTransactionByBlockNumberAndIndex

* reuse convenience function for converting bytes to eth tx
2019-09-25 09:26:42 -04:00
Austin Abell cfca4d10e6 Implements eth_getTransactionByHash (#108)
* Implement eth_getTransactionByHash and add function for converting bytes to eth tx

* Fix nil return on invalid hash

* Fix error check
2019-09-24 21:58:29 -04:00
Austin Abell 9383c743dd Implement block tags (#106)
* Implemented tm/ethermint specific block tags

* Fix edge case for block query
2019-09-24 17:38:58 -04:00
Austin Abell d1900826a0 Fix transaction hash return (#105) 2019-09-24 14:41:59 -04:00
Austin Abell 4a030335e6 eth_getBlockByNumber impl (#87)
* 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
2019-09-24 14:39:17 -04:00
David Ansermino 1cac4feb4d Minor fixes (#94)
- 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.
2019-09-24 16:49:40 +02:00
Austin Abell 28aaba0695 Implement eth_sendTransaction (#104)
* 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
2019-09-20 09:30:20 -04:00
Austin Abell 2ca42cc155 Implement eth_sendRawTransaction (#101)
* Implement sendRawTransaction (tx not being broadcasted to node from server)

* Add broadcast type flag to rpc API and fixed amount validation

* Add documentation
2019-09-18 16:14:39 -04:00
Austin Abell 6c72a79035 RPC unlock Ethermint key and eth_sign (#99)
* 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
2019-09-18 14:45:21 -04:00
Austin Abell 02047bf8bf Implement eth_accounts (#100) 2019-09-18 09:58:48 -04:00
Austin Abell 1e48e2b115 eth_getTransactionCount implementation (#91)
* Implemented eth_getTransactionCount endpoint

* Linting fixes
2019-09-06 10:46:26 -04:00
Austin Abell 0e942527da Fixed error handling in rpc endpoints (#89) 2019-09-03 08:48:30 -04:00
Austin Abell 9c0015678f Implements eth_getBlockTransactionCountByNumber (#88)
* Implements eth_getBlockTransactionCountByNumber

* Added error handling for getting block at height
2019-09-02 20:42:58 -04:00
Austin Abell f5dc62a30f changed context to get at given block height (#85) 2019-08-28 15:13:34 -02:30
David Ansermino 92dc7d9a59 Basic RPC and CLI Queries (#77)
- 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
2019-07-25 16:38:55 -04:00
David Ansermino 284c2a0333 Enable RPC Server (#75)
- 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
2019-07-15 10:13:59 -04:00