Commit Graph
125 Commits
Author SHA1 Message Date
yihuangandFederico Kunze Küllmer 9227e78c79 evm: use stack of contexts to implement snapshot revert (#399)
* use stack of contexts to implement snapshot revert

Closes #338

add exception revert test case

verify partial revert

mutate state after the reverted subcall

polish

update comments

name the module after the type name

remove the unnecessary Snapshot in outer layer

and add snapshot unit test

assert context stack is clean after tx processing

cleanups

fix context revert

fix comments

update comments

it's ok to commit in failed case too

Update x/evm/keeper/context_stack.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Update x/evm/keeper/context_stack.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

Update x/evm/keeper/context_stack.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

update comment and error message

add comment to cacheContext

k -> cs

Update x/evm/keeper/context_stack.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

evm can handle state revert

renames and unit tests

* use table driven tests

* keep all the cosmos events

* changelog

* check for if commit function is nil

* fix changelog

* Update x/evm/keeper/context_stack.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-08-10 07:22:46 +00:00
yihuangandFederico Kunze Küllmer 9bf3659718 evm: use clean context for GetCommittedState (#383)
* keep the original context for GetCommittedState api

* fix method mutation

* keep estimateGas consistant

* added test after the original context is recovered

* add integration test for the gas consumption of sstore

* test the committed case

* move methods to keeper module

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-08-04 07:49:02 +00:00
crypto-facs c4aa8fafab fix: Extra data empty response (#381) 2021-07-29 13:40:59 -04:00
crypto-facsandFederico Kunze Küllmer d1212725f8 feat: configurable JSON-RPC APIs (#349)
* fix confusing name

* feat: Enable configurable grpc apis

* docs: Update docs and changelog

* Organized flags order

* fix linter

* fix linter

* fix maligned struct

* fix typo in docs

* fix unnecesary duplicate

* Update cmd/ethermintd/config/config.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* Update cmd/ethermintd/config/config.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* Update cmd/ethermintd/config/config.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* Update docs/basics/json_rpc.md

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* fix eth to be manage as default

* Update init.sh

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* Update tests/solidity/init-test-node.sh

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* add default case

* add default enable api namespaces

* update changelog

* fix namespaces array  handler

* remove duplicated changelog

* fix typo

* remove duplicates namespaces and fix eth namespace issue

* fix variable name

* break line in docs

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-07-26 11:15:55 +00:00
Yijia SuandFederico Kunze Küllmer bb6622b7fb tests: add opcode contract tests (#273)
Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-07-20 13:01:01 +00:00
yihuangandFederico Kunze Küllmer 14b38af8bc rpc, evm: use binary search to estimate gas (#272)
* do binary search to estimate gas

Closes #268

- Also refactor ApplyMessage to be more reuseable

move binary search to rpc api side to have a clean context each try

remove EstimateGas grpc api

* extract BinSearch function and add unit test

* do estimateGas in grpc query

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-07-19 15:19:23 +00:00
Thomas NguyandFederico Kunze Küllmer c8b88a3a8b evm, rpc: fix parameters and block gas limit in getBlockByHeight and getBlockByHash (#312)
* fix evm set parameters

* recompute header hash only if its not set

* Update x/evm/keeper/state_transition.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-07-19 01:52:44 +00:00
Calvin LauandFederico Kunze Küllmer 071ae3f618 rpc: fix eth_getBlockTransactionCountByNumber crash on block not found (#254)
* Fix GetBlockTransactionCountByNumber crashed on block not found

* Fix getTransactionByBlock*

* Update log based on review

* Apply suggestions from code review

* Update ethereum/rpc/namespaces/eth/api.go

* Apply suggestions from code review

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-07-16 10:13:15 +00:00
Federico Kunze Küllmer 74b7eaf431 rpc: fix inconsistent logging levels (#265)
* rpc: fix incosistent logging levels

* minor changes
2021-07-12 18:39:35 +00:00
yihuangandFederico Kunze Küllmer 1a48e09e78 rpc: implement eth_getPendingTransactions (#259)
* Implement `eth_getPendingTransactions`

Closes #244

* refactor repeatitive code

* Update ethereum/rpc/namespaces/eth/api.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* Update ethereum/rpc/namespaces/eth/api.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* Update ethereum/rpc/namespaces/eth/api.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* Update ethereum/rpc/namespaces/eth/api.go

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>

* test UnwrapEthereumMsg

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-07-12 17:42:53 +00:00
Calvin LauandFederico Kunze Küllmer 8d51a70d6d rpc: fix GetBlockByHash crash on block not found (#256)
* Fix GetBlockByHash crashed on block not found

* Add and update log message based on review

* Apply suggestions from code review

* Apply suggestions from code review

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-07-12 12:45:13 +00:00
Calvin Lau 8bfb6b0a67 rpc: implement net_listening and net_peerCount JSON-RPC endpoints (#252)
* Add net_listening net_peerCount endpoint

* Add test cases

* Use RPC client from context

* Fix lint issue

* Revert unnecessary changes

* Update JSON RPC documentation
2021-07-12 08:26:33 -04:00
yihuangandFederico Kunze Küllmer 8f73d556c6 rpc: fix eth_getTransactionByHash tx in mempool (#261)
Closes #260

Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
2021-07-12 10:34:47 +00:00
Yijia Su fa77bae105 tests: refactor solidity test cases (#249)
* Refactor

* add script to run all tests

* Spawn ethermintd in node script

* Update README

* kill process when test finished

* add new test case

* add yarn.lock inside tests to be tracked
2021-07-12 05:22:20 -04:00
crypto-facs efb90f9922 refactor: Change default RPC and Websocket port (#198)
* fix: update RPC and Ws endpoint

* remove unnecesary flag on test node script
2021-06-29 03:05:23 -04:00
Federico Kunze 459a290951 tests: add testutils for integration testing (#132)
* tests: add testutils for integration testing

* update util

* fix config

* more updates

* rand chain-id

* add rpc client integration test example

* makefile

* rename

* updates to makefile
2021-06-25 05:18:37 -04:00
Federico Kunze 6000ab2098 chore: un-fork from cosmos (#166)
* chore: un-fork from cosmos

* rm LoC
2021-06-22 06:49:18 -04:00
Federico Kunze 4ca7c43b62 deps: bump SDK and Tendermint versions (#165)
* deps: bump SDK and Tendermint versions

* use header hash from context

* c++

* typo
2021-06-22 04:25:38 -04:00
Federico Kunze 04bacbdd1b fix and comment outdated tests (#155)
* fix and comment outdated tests

* config test

* update workflow for tests
2021-06-21 10:17:31 -04:00
Federico Kunze bb91d8d93d ante, evm: fix panic when checking BlockGasMeter (#120)
* ante, evm: fix panic when checking BlockGasMeter

* update block gas limit function
2021-06-14 10:24:08 -04:00
Federico Kunze 0c6e44d3d3 evm: remove CommitStateDB, journal and stateObject (#84)
* evm: remove CommitStateDB and stateObject

* imported build fixes

* lint

* rm set nonce

* update account response

* changelog
2021-06-08 13:10:29 -04:00
Akash KhoslaandFederico Kunze e3270aee5d lint: fix many broken lint issues (#49)
* lint: fix many broken lint issues

* more lint issues resolved

* more lint issues resolved

* all actions issues fixed

* pin variables for websocket

* Update .github/workflows/lint.yml

* more fixes

* fix lint issues in pubsub, rpc, types

* fix lint issues in statedb, journal, pubsub, cli

* fix comment

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
2021-06-08 03:07:11 -04:00
Federico Kunze 1ff3c46663 evm: replace block hash storage (#80)
* evm: replace block hash storage

* c++
2021-06-07 07:00:14 -04:00
Federico Kunze 9509e18842 encoding: fix test (#64) 2021-06-04 09:45:37 -04:00
Federico Kunze c08dcfad0c keeper: StateDB unit tests (#47)
* keeper: statedb unit tests

* evm: balance tests

* evm: nonce and code tests

* evm: refund test

* evm: fix tx encoding

* storage and access list tests
2021-06-02 04:06:12 -04:00
Federico Kunze 8e7ebe80e9 evm: fix signature verification (#61)
* evm: fix sig verification

* fixes

* test fixes
2021-06-01 13:14:33 -04:00
Federico Kunze 0805bf80e5 evm: fix EndBlock panic (#51) 2021-05-27 05:26:01 -04:00
Federico Kunze 6c1e7fec01 app, ante, evm: Keeper StateDB refactor (#30)
* evm: keeper statedb refactor

* keeper: implement stateDB account, balance, nonce and suicide functions

* keeper: implement stateDB code and iterator functions

* keeper: implement stateDB log and preimage functions

* update code to use CommitStateDB

* tests updates

* journal changes (wip)

* cache fields

* journal and logs

* minor cleanup

* evm: remove journal related changes

* evm: delete empty account code and storage state

* app, evm: transient store

* ante, evm: refund gas transient

* evm: remove transient keeper state fields

* address comments from review

* evm: undo revision change
2021-05-25 08:56:36 -04:00
Thomas Nguy bd89830d64 tests: fix script (#43) 2021-05-25 04:46:10 -04:00
Federico Kunze ba5bf33f19 proto, evm: use string for address and hash protobuf message fields (#23)
* proto, evm: use string for address and hash protobuf message fields

* fix tests

* msg test
2021-05-14 02:52:18 -04:00
Federico Kunze 65453e4aa0 rpc, evm: secure tx signing (#20)
* rpc, evm: secure signing

* evm, ante: test signer

* tests
2021-05-12 09:08:31 -04:00
Federico Kunze 96cad7de9c tests: reorganize packages (#7)
* tests: reorganize testing packages

* gitignore and minor changes
2021-05-11 07:54:55 -04:00
Federico Kunze 117342b1b3 all, deps: bump go-ethereum version (#5)
* evm, rpc: access lists, JSON-RPC and transaction updates (wip)

* ante, evm, rpc: update signature verification

* evm: msg server and tests updates

* evm: tests (wip)

* evm: fix cdc and params

* evm: cleanup state transition

* fix nil cases

* lint
2021-05-10 12:34:00 -04:00
Federico Kunze 6f7470c2e0 build 2021-04-18 19:23:26 +02:00
Federico Kunze 5a3d514ba0 conflicts 2021-04-17 12:00:07 +02:00
KamiD fae8147352 Fix failed to call EstimateGas (#761)
* fix failed to call function EstimateGas

* add ut to test estimateGas after contract deployed
2021-02-16 13:04:29 -08:00
KamiDandFederico Kunze c95ad0432b x/evm: open eip2028 when the version of Istanbul was enabled (#731)
* open eip2028 when Istanbul version enabled

* Update x/evm/types/chain_config.go

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* Update x/evm/types/chain_config.go

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* add change log

* update development

* fix rpc test error

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
2021-01-28 13:30:38 -03:00
cb96bc4ea3 Pending (#571)
* add PendingBlockNumber -1

* increase block times

* update bn

* get pending balance

* additional logic to check for pending state

* add multiple balance query

* pending state for getTransactionCount

* fix lint

* add getBlockTransactionCountByNumber code - commented

* cleanup test

* GetBlockTransactionCountByNumber

* cleanup

* getBlockByNumber

* GetTransactionByBlockNumberAndIndex

* conform to namespace changes

* exportable FormatBlock method

* eth_getTransactionByHash

* eth_getTransactionByBlockNumberAndIndex

* pending nonce

* set nonce for pending and check for invalid

* WIP: doCall

* add pending tx test

* cleanup + refactor

* push first tests and init pending

* pending changes (#600)

* cleanup

* updates

* more fixes

* lint

* update call and send

* comments and minor changes

* add pending tests into sep package

* fix latest case for eth_GetBlockTransactionCountByNumber

* fix repeating null transactions in queue

* remove repeated structs

* latestblock case

* revert init script back

* fix to exportable method

* automate pending tests; add make cmd

* move and comment out pending call test

* fix some golint

* fix unlock issue

* wip: linter stringer fix?

* stringer lint

* set arr instead of append

* instantiate with length

* sep if statement

* edit pendingblocknumber note

* switch statement

* fix and update tests

* move tests-pending into tests dir

* remove commented test

* revert to appending pendingtx

* Update tests/utils.go

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* Update tests/utils.go

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* Update tests/utils.go

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* require no err

* rename var

* check result for eth_sendTransaction

* update changelog

* update

* Update tests/utils.go

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* Update tests/tests-pending/rpc_pending_test.go

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* changelog

* remove redundant check

Co-authored-by: noot <elizabethjbinks@gmail.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
2020-12-15 19:52:09 +00:00
Federico Kunze ef1bef16e5 rpc: protocol version (#575)
* evm: protocol version

* changelog

* version

* fix

* support latest version only
2020-12-08 20:51:26 +01:00
Pierre 9cc464b5e4 open Istanbul and MuirGlacier from ChainConfig (#645)
* open Istanbul and MuirGlacier

* fix ut

* fix ut
2020-12-08 16:49:35 +01:00
Federico Kunze 4501bbccdc rpc, evm: refactor (#588)
* stargate: refactor

* remove evm CLI

* rpc: refactor

* more fixes

* fixes fixes fixes

* changelog

* refactor according to namespaces

* fix

* lint

* remove export logic

* fix rpc test

* godoc
2020-10-22 17:39:51 -03:00
Federico Kunze 4e01da905a crypto: refactor for stargate (#559)
* changelog

* update changelog

* crypto: refactor for stargate

* fixes

* fix keys

* changelog
2020-10-06 20:57:55 +02:00
Federico Kunze 811ca7f045 rpc: implement personal_importRawKey (#552) 2020-09-29 20:34:01 -04:00
noot c1df065d3e fix rpc hex unmarshaling (#529) 2020-09-23 12:36:07 -03:00
nootandaraskachoi 517de55720 fix account sending from new accounts (#517)
* fix account sending from new accounts

* cleanup

* more cleanup

* fix rpc tests

Co-authored-by: araskachoi <choidanielw@gmail.com>
2020-09-17 15:04:36 -07:00
noot 73d6c41b72 fix handler csdb usage, fixes consensus error again (#516) 2020-09-16 20:29:22 -04:00
noot cf9662c7bd fix consensus error (#513) 2020-09-14 13:41:46 -04:00
dependabot[bot]andFederico Kunze 701ca7c43b build(deps): bump github.com/ethereum/go-ethereum from 1.9.20 to 1.9.21 (#506)
* build(deps): bump github.com/ethereum/go-ethereum from 1.9.20 to 1.9.21

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.9.20 to 1.9.21.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.9.20...v1.9.21)

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump github.com/ethereum/go-ethereum from 1.9.20 to 1.9.21

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.9.20 to 1.9.21.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.9.20...v1.9.21)

Signed-off-by: dependabot[bot] <support@github.com>

* update go.sum

* try fix

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
2020-09-09 11:55:01 -03:00
Federico Kunzeandnoot d3529dd959 types: update account pubkey JSON to string (#494)
* types: update account pubkey JSON to string

* changelog

* Update app/ethermint.go

* tests

* update

* fix secp256k1 public key formatting (#501)

* use Compress and Decompress pubkey for secp256k1 keys

* cleanup

* update estimate gas test

* comments

Co-authored-by: noot <36753753+noot@users.noreply.github.com>
2020-09-07 10:04:50 -03:00
792c1ff756 evm: params (#458)
* evm: params

* setup

* bump commit

* fixes

* increase gas usage

* tests

* evm denom param

* more config updates

* update genesis

* update ante handler

* csdb param test

* more tests and fixes

* update statedb.Copy

* lint

* additional test

* fix importer tests

* fix AnteHandler test

* minor update

* revert

* undo gas update

* stringer test

* changelog

* fix csdb index error (#493)

* attempt to fix

* cleanup

* add idx check

* update csdb.Copy

* update default hash

* update querier

* update rpc tests

* fix estimate gas test

Co-authored-by: noot <36753753+noot@users.noreply.github.com>
Co-authored-by: noot <elizabethjbinks@gmail.com>
2020-09-02 15:41:05 -04:00