Commit Graph

180 Commits

Author SHA1 Message Date
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