Substrate EVM (#3927)

* srml-evm: init the basic structures

* srml-evm: finish executor implementation

* srml-evm: implement balance deposit and withdraw

* srml-evm: implement the actuall call/create

* srml-evm: use crates.io version of evm

* srml-evm: fix no-std compile

* Remove dependency patch

* Update to evm 0.14

* Use double map for account storage

* Add precompiles support

* Add some basic docs

* Use runtime_io::chain_id()

* Update srml/evm/src/lib.rs

Co-Authored-By: Xiliang Chen <xlchen1291@gmail.com>

* Update srml/evm/src/lib.rs

Co-Authored-By: Xiliang Chen <xlchen1291@gmail.com>

* Fix WithdrawReason

* Unique saturate balance to u128

* Unique saturate withdraw to u128

* Remove extern crate alloc

* Move account code to a separate storage and use ref for convert_account_id

* More match cause for error message

* Fix potential interger overflow

* Use decode_len for fetching code length
This commit is contained in:
Wei Tang
2019-11-03 15:57:46 +01:00
committed by GitHub
parent 77ed0dc2bc
commit 2e424f4d9f
7 changed files with 601 additions and 30 deletions
+40
View File
@@ -0,0 +1,40 @@
[package]
name = "srml-evm"
version = "2.0.0"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
[dependencies]
serde = { version = "1.0.101", optional = true, features = ["derive"] }
codec = { package = "parity-scale-codec", version = "1.0.0", default-features = false }
support = { package = "srml-support", path = "../support", default-features = false }
system = { package = "srml-system", path = "../system", default-features = false }
timestamp = { package = "srml-timestamp", path = "../timestamp", default-features = false }
balances = { package = "srml-balances", path = "../balances", default-features = false }
primitives = { package = "substrate-primitives", path = "../../core/primitives", default-features = false }
sr-primitives = { path = "../../core/sr-primitives", default-features = false }
rstd = { package = "sr-std", path = "../../core/sr-std", default-features = false }
runtime-io = { package = "sr-io", path = "../../core/sr-io", default-features = false }
primitive-types = { version = "0.6", default-features = false, features = ["rlp"] }
rlp = { version = "0.4", default-features = false }
evm = { version = "0.14", default-features = false }
sha3 = { version = "0.8", default-features = false }
[features]
default = ["std"]
std = [
"serde",
"codec/std",
"primitives/std",
"sr-primitives/std",
"support/std",
"system/std",
"balances/std",
"runtime-io/std",
"rstd/std",
"sha3/std",
"rlp/std",
"primitive-types/std",
"evm/std",
"timestamp/std",
]