Laconic state machine
Go to file
yihuang 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
.github docs: config updates (#409) 2021-08-09 21:21:21 +00:00
app build(deps): bump github.com/cosmos/cosmos-sdk from 0.43.0-rc2 to 0.43.0-rc3 (#403) 2021-08-06 12:47:49 +00:00
client docs: config updates (#409) 2021-08-09 21:21:21 +00:00
cmd feat: import ethermint without forking (#378) 2021-07-28 05:47:29 -04:00
crypto evm: TxData as proto.Any (#220) 2021-07-05 16:39:08 +00:00
docs docs: update metamask guide (#420) 2021-08-10 02:08:03 -04:00
encoding evm: TxData as proto.Any (#220) 2021-07-05 16:39:08 +00:00
ethereum/rpc fix fee value (#396) 2021-08-04 16:10:08 +00:00
networks/local build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
proto/ethermint evm: dynamic fee tx (#384) 2021-07-30 11:40:17 +00:00
scripts docs: config updates (#409) 2021-08-09 21:21:21 +00:00
server fix: set eth, web3 and net namespaces as default (#391) 2021-08-03 12:35:04 -04:00
tests evm: use stack of contexts to implement snapshot revert (#399) 2021-08-10 07:22:46 +00:00
testutil/network feat: import ethermint without forking (#378) 2021-07-28 05:47:29 -04:00
third_party/proto cleanup proto 2021-04-19 09:10:57 +02:00
types feat: import ethermint without forking (#378) 2021-07-28 05:47:29 -04:00
version more fixes 2021-04-18 18:39:15 +02:00
x/evm evm: use stack of contexts to implement snapshot revert (#399) 2021-08-10 07:22:46 +00:00
.dockerignore build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
.gitignore build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
.golangci.yml fix linter issues (#184) 2021-06-25 04:31:57 -04:00
.goreleaser.yml ci: add goreleaser workflow (#295) 2021-07-16 09:30:34 +00:00
.mergify.yml Mergify: configuration update (#62) 2021-06-03 03:04:47 -04:00
buf.yaml evm: dynamic fee tx (#384) 2021-07-30 11:40:17 +00:00
CHANGELOG.md evm: use stack of contexts to implement snapshot revert (#399) 2021-08-10 07:22:46 +00:00
clang-format tests: add testutils for integration testing (#132) 2021-06-25 05:18:37 -04:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2018-07-17 11:52:20 -04:00
codecov.yml faucet: remove module (#678) 2021-01-08 10:25:02 -03:00
config.yml refactor: Change default RPC and Websocket port (#198) 2021-06-29 03:05:23 -04:00
CONTRIBUTING.md chore: un-fork from cosmos (#166) 2021-06-22 06:49:18 -04:00
docker-compose.yml build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
Dockerfile build: fix docker setup (#337) 2021-08-04 09:30:13 +00:00
go.mod build(deps): bump github.com/cosmos/cosmos-sdk from 0.43.0-rc2 to 0.43.0-rc3 (#403) 2021-08-06 12:47:49 +00:00
go.sum build(deps): bump github.com/cosmos/cosmos-sdk from 0.43.0-rc2 to 0.43.0-rc3 (#403) 2021-08-06 12:47:49 +00:00
gometalinter.json Upgrade geth and cleanup 2018-09-28 17:40:58 -04:00
init.bat fix: replace comment on init.bat (#398) 2021-08-05 05:10:36 -04:00
init.sh rpc: miner_ namespace (#377) 2021-08-04 09:18:22 +00:00
LICENSE Initial commit 2018-06-10 14:25:18 +01:00
Makefile docs: config updates (#409) 2021-08-09 21:21:21 +00:00
README.md update README.md (#223) 2021-07-16 06:54:43 -04:00

Ethermint

Ethermint is a scalable, high-throughput Proof-of-Stake blockchain that is fully compatible and interoperable with Ethereum. It's build using the the Cosmos SDK which runs on top of Tendermint Core consensus engine.

WARNING: Ethermint is under VERY ACTIVE DEVELOPMENT and should be treated as pre-alpha software. This means it is not meant to be run in production, its APIs are subject to change without warning and should not be relied upon, and it should not be used to hold any value. We will remove this warning when we have a release that is stable, secure, and properly tested.

Note: Requires Go 1.15+

Quick Start

To learn how the Ethermint works from a high-level perspective, go to the Introduction section from the documentation.

For more, please refer to the Ethermint Docs, which are also hosted on docs.ethermint.zone.

Community

The following chat channels and forums are a great spot to ask questions about Ethermint: