Commit Graph
227 Commits
Author SHA1 Message Date
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 69567e29d5 Override auth module codec for all references to Ethermint codec (#103) 2019-09-18 14:50:06 -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 1b5c33cf33 EVM Transaction handler and contract creation (#96)
* 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
2019-09-18 09:51:18 -04:00
Austin Abell 72fc3ca3af Transaction signing and encoding (#95)
* 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
2019-09-15 12:12:59 -04:00
Austin Abell 4c29c48905 Add missing nonce query to evm module (#92) 2019-09-07 12:41:15 -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
Austin Abell f0e2c01f57 Update AnteHandler in the Ethermint app (#83) 2019-08-19 11:31:40 -04:00
Austin Abell 82d016ab02 Update CosmosSDK version to 0.36.0 (#82)
* 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
2019-08-15 12:26:40 -04:00
Austin Abell 5777ead349 Handler Framework (#80)
* Implement base handler framework

* Add comments for the missing state transition logic components for a tx

* Fix typo

* Remove TODO checks done by anteHandler
2019-08-14 19:52:45 -04:00
Austin Abell 64b63f33f1 Moved crypto codec registration to module (#79) 2019-08-11 10:50:30 -04:00
Austin Abell cfac906f92 Ethermint key generation (#78)
* 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
2019-08-11 10:42:46 -04:00
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 d9d45b48b9 CSDB Keeper (#76)
- 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
2019-07-24 18:14:12 -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
Austin Abell fbaa9466b0 Update Ethermint app/ Daemon to run functional TM node (#70)
* Updates eithermint app to new Cosmos SDK version and sets up base tendermint node commands

* Updated vague comment
2019-07-12 13:13:15 -04:00
Austin Abell 9803c1b80e Updating ethereum version from fork (#68)
* syncing with updated ethereum version with local versions

* Revert updates back to go-ethereum v1.8.27

* Fixed chain-test change from undoing recent go-ethereum changes

* Fixes linting issues

* Remove unused interface implementations

* Updates cosmos-sdk version from relative dependency and updates auxiliary changes

* Upgrading ethereum version back to most recent since 1.9 release <:)

* syncing with updated ethereum version with local versions

* Revert updates back to go-ethereum v1.8.27

* Fixed chain-test change from undoing recent go-ethereum changes

* Fixes linting issues

* Remove unused interface implementations

* Updates cosmos-sdk version from relative dependency and updates auxiliary changes

* Upgrading ethereum version back to most recent since 1.9 release <:)

* Added documentation for cloned functions
2019-07-11 14:05:34 -04:00
Austin Abell 73cf6d9217 Moved linting from build process in circleCI (#69) 2019-07-11 10:54:28 -04:00
Austin Abell d982e0961a Daemon framework (#66)
* Implements daemon framework with basic functionality

* Comment out unused functions for linter
2019-07-08 15:26:33 -04:00
David Ansermino 1d490ba4d9 Adds AppModuleBasic and Genesis Functions (#62)
* Adds AppModuleBasic implementation and genesis functions

* Fixes  broken links

* Adds .idea/

* Adds starter for missing genesis funcs

* Completes AppModuleBasic interface

* Removes comment
2019-07-08 12:02:20 -04:00
Austin Abell ba203d3f26 Set up CLI framework without logic for query, tx, SDK rest, and web3 api commands (#61) 2019-07-05 12:46:13 -04:00
Austin Abell a6d21e651e Cosmos SDK version update (#60)
* Wip converting to updated Cosmos SDK version

* Fixed test failures from updating SDK

* cleaned and verified changes

* Wip converting to updated Cosmos SDK version

* Fixed test failures from updating SDK

* cleaned and verified changes

* wip - updating to version 0.36.0

* Switched supply keeper to dummy for testing

* Formatting fixes

* Changed relative dependency of cosmos SDK to specific commit
2019-07-04 15:46:54 -04:00
Austin Abell 69333ec1b3 circleCI config and linting fixes (#3)
* Fixed circleci config and fixed linting warnings

* Updated circleCI for go version 1.12 and split jobs for build/testing

* updated go version to 1.12.5 for circleCI

* Go mod tidy dependencies

* Updated linting tools and cleared up code lint smells

* Added workflow to run build and test jobs

* Moved linting command to build workflow

* Get dependencies before linting by default

* Added go module flag to linter and increased deadline to pull packages
2019-07-02 15:36:22 -04:00
Austin Abell 18d57af55e Switch package management to go modules (#1)
* switched go package management from dep to go modules

* Removed dep references in makefile

* Added explicit go modules flag and go mod verify to makefile
2019-06-25 15:56:54 -04:00
Alexander Bezobchuk b821a85a64 R4R: CheckTx AnteHandler for Ethereum Tx Messages (#505)
* Rename Ethereum tx message
* Use new tx decoder in the ethermint app
* Update ante handler to prevent spam/dos
* Update ethereum msg signing/verification logic
* Implement secp256k1 key types
* Remove pointer from To method
* Move sig check to after inartistic gas check
* Add comment on chainID parsing
* Updated validateIntrinsicGas godoc
* Implement Fee method on eth tx msg
* Add reference to spec for recoverEthSig
* Upgrade TM to v0.27.0
2018-12-18 11:10:04 -05:00
Alexander Bezobchuk a3619584f8 TX Routing Refactor (#496) 2018-11-28 14:19:22 -08:00
Jack Zampolin 167d43ce38 Merge pull request #503 from cosmos/jack/fix-dockerfile
R4R: Fix Dockerfile
2018-11-27 10:33:10 -08:00
Jack Zampolin 46272dff58 Fix dockerfile 2018-11-27 10:31:39 -08:00
Alexander Bezobchuk abbe17db25 Merge pull request #488 from cosmos/bez/486-statedb-refactor
R4R: StateDB Integration/EVM Module Start
2018-10-24 16:43:50 -04:00
Aleksandr Bezobchuk 0dedf51ed8 Update dep comments 2018-10-24 11:06:27 -04:00
Aleksandr Bezobchuk d9bb42a818 Fix importer hash check 2018-10-24 11:05:39 -04:00
Aleksandr Bezobchuk 9dccb2ed0c Update lock file 2018-10-24 11:02:51 -04:00
Aleksandr Bezobchuk 40b715efd4 Run test-import on CI 2018-10-24 10:58:13 -04:00
Aleksandr Bezobchuk e6380ec862 update dev tools; fix linting 2018-10-24 10:57:29 -04:00
Aleksandr Bezobchuk ccc6ae6984 Fix linting errors 2018-10-24 10:53:23 -04:00
Aleksandr Bezobchuk 5b2496553c Update to reflect latest SDK changes 2018-10-24 10:49:37 -04:00
Aleksandr Bezobchuk 9a076e9526 Other minor updates 2018-10-24 10:23:12 -04:00
Aleksandr Bezobchuk 7cd5e47eea Remove accounts from genesis 2018-10-24 10:22:02 -04:00
Aleksandr Bezobchuk 3a65d53d35 Remove clutter from ethermint app 2018-10-24 10:21:51 -04:00
Aleksandr Bezobchuk 955a10a478 Add EVM module stub 2018-10-24 09:46:42 -04:00
Aleksandr Bezobchuk 2b9a1f72a0 Update importer test 2018-10-24 09:46:36 -04:00
Aleksandr Bezobchuk 7537453c83 Move default denomination to account type (for now) 2018-10-24 09:46:26 -04:00
Aleksandr Bezobchuk ad97634c24 Move old state code to x/evm/types 2018-10-24 09:46:14 -04:00
Aleksandr Bezobchuk 3ff606fa9d Remove bank module stub 2018-10-24 09:45:55 -04:00
Aleksandr Bezobchuk d017bc7de5 Update import test 2018-10-24 08:30:52 -04:00