Extract Machine from ethcore (#10949)
* Add client-traits crate Move the BlockInfo trait to new crate * New crate `machine` Contains code extracted from ethcore that defines `Machine`, `Externalities` and other execution related code. * Use new machine and client-traits crates in ethcore * Use new crates machine and client-traits instead of ethcore where appropriate * Fix tests * Don't re-export so many types from ethcore::client * Fixing more fallout from removing re-export * fix test * More fallout from not re-exporting types * Add some docs * cleanup * import the macro edition style * Tweak docs * Add missing import * remove unused ethabi_derive imports * Use latest ethabi-contract
This commit is contained in:
parent
509fda727b
commit
73f4564b66
276
Cargo.lock
generated
276
Cargo.lock
generated
@ -9,7 +9,7 @@ dependencies = [
|
|||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hasher 0.1.1",
|
"keccak-hasher 0.1.1",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -25,7 +25,7 @@ dependencies = [
|
|||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hasher 0.1.1",
|
"keccak-hasher 0.1.1",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"memory-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"memory-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -33,7 +33,7 @@ dependencies = [
|
|||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"patricia-trie-ethereum 0.1.0",
|
"patricia-trie-ethereum 0.1.0",
|
||||||
"pod 0.1.0",
|
"pod 0.1.0",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp_compress 0.1.0",
|
"rlp_compress 0.1.0",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"trace 0.1.0",
|
"trace 0.1.0",
|
||||||
@ -147,7 +147,7 @@ version = "0.4.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
"http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -422,6 +422,14 @@ dependencies = [
|
|||||||
"rpassword 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rpassword 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "client-traits"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"common-types 0.1.0",
|
||||||
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cloudabi"
|
name = "cloudabi"
|
||||||
version = "0.0.3"
|
version = "0.0.3"
|
||||||
@ -465,7 +473,7 @@ dependencies = [
|
|||||||
"parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"patricia-trie-ethereum 0.1.0",
|
"patricia-trie-ethereum 0.1.0",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp_derive 0.1.0",
|
"rlp_derive 0.1.0",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unexpected 0.1.0",
|
"unexpected 0.1.0",
|
||||||
@ -492,7 +500,7 @@ dependencies = [
|
|||||||
"handlebars 0.32.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"handlebars 0.32.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"itertools-num 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"itertools-num 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -763,7 +771,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -803,7 +811,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ethabi-contract"
|
name = "ethabi-contract"
|
||||||
version = "8.0.0"
|
version = "8.0.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -827,7 +835,7 @@ dependencies = [
|
|||||||
"either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"primal 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"primal 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -857,12 +865,13 @@ dependencies = [
|
|||||||
"account-state 0.1.0",
|
"account-state 0.1.0",
|
||||||
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"blooms-db 0.1.0",
|
"blooms-db 0.1.0",
|
||||||
|
"client-traits 0.1.0",
|
||||||
"common-types 0.1.0",
|
"common-types 0.1.0",
|
||||||
"criterion 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"criterion 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethash 1.12.0",
|
"ethash 1.12.0",
|
||||||
"ethcore-accounts 0.1.0",
|
"ethcore-accounts 0.1.0",
|
||||||
@ -890,8 +899,9 @@ dependencies = [
|
|||||||
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"len-caching-lock 0.1.1",
|
"len-caching-lock 0.1.1",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"machine 0.1.0",
|
||||||
"macros 0.1.0",
|
"macros 0.1.0",
|
||||||
"memory-cache 0.1.0",
|
"memory-cache 0.1.0",
|
||||||
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -905,7 +915,7 @@ dependencies = [
|
|||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp_compress 0.1.0",
|
"rlp_compress 0.1.0",
|
||||||
"rlp_derive 0.1.0",
|
"rlp_derive 0.1.0",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -934,7 +944,7 @@ dependencies = [
|
|||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethkey 0.3.0",
|
"ethkey 0.3.0",
|
||||||
"ethstore 0.2.1",
|
"ethstore 0.2.1",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -957,13 +967,13 @@ dependencies = [
|
|||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp_compress 0.1.0",
|
"rlp_compress 0.1.0",
|
||||||
"rlp_derive 0.1.0",
|
"rlp_derive 0.1.0",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -987,7 +997,7 @@ dependencies = [
|
|||||||
"ethjson 0.1.0",
|
"ethjson 0.1.0",
|
||||||
"ethkey 0.3.0",
|
"ethkey 0.3.0",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1012,7 +1022,7 @@ dependencies = [
|
|||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp_derive 0.1.0",
|
"rlp_derive 0.1.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1023,7 +1033,7 @@ dependencies = [
|
|||||||
"crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1038,6 +1048,7 @@ name = "ethcore-light"
|
|||||||
version = "1.12.0"
|
version = "1.12.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"client-traits 0.1.0",
|
||||||
"common-types 0.1.0",
|
"common-types 0.1.0",
|
||||||
"derive_more 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"derive_more 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1058,7 +1069,8 @@ dependencies = [
|
|||||||
"keccak-hasher 0.1.1",
|
"keccak-hasher 0.1.1",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"machine 0.1.0",
|
||||||
"memory-cache 0.1.0",
|
"memory-cache 0.1.0",
|
||||||
"memory-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"memory-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1066,7 +1078,7 @@ dependencies = [
|
|||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"patricia-trie-ethereum 0.1.0",
|
"patricia-trie-ethereum 0.1.0",
|
||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp_derive 0.1.0",
|
"rlp_derive 0.1.0",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1087,7 +1099,7 @@ dependencies = [
|
|||||||
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1102,7 +1114,7 @@ dependencies = [
|
|||||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethash 1.12.0",
|
"ethash 1.12.0",
|
||||||
"ethcore-call-contract 0.1.0",
|
"ethcore-call-contract 0.1.0",
|
||||||
@ -1113,12 +1125,12 @@ dependencies = [
|
|||||||
"hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-runtime 0.1.0",
|
"parity-runtime 0.1.0",
|
||||||
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"price-info 1.12.0",
|
"price-info 1.12.0",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1142,7 +1154,7 @@ dependencies = [
|
|||||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1165,7 +1177,7 @@ dependencies = [
|
|||||||
"ipnetwork 0.12.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipnetwork 0.12.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1174,7 +1186,7 @@ dependencies = [
|
|||||||
"parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1188,11 +1200,12 @@ name = "ethcore-private-tx"
|
|||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"account-state 0.1.0",
|
"account-state 0.1.0",
|
||||||
|
"client-traits 0.1.0",
|
||||||
"common-types 0.1.0",
|
"common-types 0.1.0",
|
||||||
"derive_more 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"derive_more 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethcore 1.12.0",
|
"ethcore 1.12.0",
|
||||||
"ethcore-call-contract 0.1.0",
|
"ethcore-call-contract 0.1.0",
|
||||||
@ -1204,14 +1217,15 @@ dependencies = [
|
|||||||
"fetch 0.1.0",
|
"fetch 0.1.0",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"machine 0.1.0",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"patricia-trie-ethereum 0.1.0",
|
"patricia-trie-ethereum 0.1.0",
|
||||||
"rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp_derive 0.1.0",
|
"rlp_derive 0.1.0",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1235,7 +1249,7 @@ dependencies = [
|
|||||||
"common-types 0.1.0",
|
"common-types 0.1.0",
|
||||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethcore 1.12.0",
|
"ethcore 1.12.0",
|
||||||
"ethcore-accounts 0.1.0",
|
"ethcore-accounts 0.1.0",
|
||||||
@ -1250,7 +1264,7 @@ dependencies = [
|
|||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-runtime 0.1.0",
|
"parity-runtime 0.1.0",
|
||||||
@ -1282,7 +1296,7 @@ dependencies = [
|
|||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"trace-time 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"trace-time 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -1296,7 +1310,7 @@ dependencies = [
|
|||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-tcp-server 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-tcp-server 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1306,6 +1320,7 @@ dependencies = [
|
|||||||
name = "ethcore-sync"
|
name = "ethcore-sync"
|
||||||
version = "1.12.0"
|
version = "1.12.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"client-traits 0.1.0",
|
||||||
"common-types 0.1.0",
|
"common-types 0.1.0",
|
||||||
"enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1325,7 +1340,8 @@ dependencies = [
|
|||||||
"keccak-hasher 0.1.1",
|
"keccak-hasher 0.1.1",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"machine 0.1.0",
|
||||||
"macros 0.1.0",
|
"macros 0.1.0",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-runtime 0.1.0",
|
"parity-runtime 0.1.0",
|
||||||
@ -1333,7 +1349,7 @@ dependencies = [
|
|||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"trace-time 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"trace-time 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"triehash-ethereum 0.2.0",
|
"triehash-ethereum 0.2.0",
|
||||||
@ -1371,7 +1387,7 @@ dependencies = [
|
|||||||
"eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)",
|
"eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)",
|
||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-wordlist 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-wordlist 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1407,7 +1423,7 @@ dependencies = [
|
|||||||
"ethkey 0.3.0",
|
"ethkey 0.3.0",
|
||||||
"itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-crypto 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-wordlist 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-wordlist 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1449,7 +1465,7 @@ dependencies = [
|
|||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"memory-cache 0.1.0",
|
"memory-cache 0.1.0",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1552,7 +1568,7 @@ dependencies = [
|
|||||||
"http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
"http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hyper-rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper-rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -1668,7 +1684,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -1684,7 +1700,7 @@ dependencies = [
|
|||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
"http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1701,7 +1717,7 @@ version = "0.32.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pest_derive 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pest_derive 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1798,7 +1814,7 @@ dependencies = [
|
|||||||
"httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1852,7 +1868,7 @@ dependencies = [
|
|||||||
"attohttpc 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"attohttpc 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
"http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"xmltree 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xmltree 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1871,7 +1887,7 @@ name = "impl-rlp"
|
|||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1976,7 +1992,7 @@ dependencies = [
|
|||||||
"combine 3.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"combine 3.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jni-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jni-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1997,12 +2013,12 @@ dependencies = [
|
|||||||
"keccak-hasher 0.1.1",
|
"keccak-hasher 0.1.1",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"memory-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"memory-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2011,7 +2027,7 @@ version = "12.0.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2036,7 +2052,7 @@ dependencies = [
|
|||||||
"hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-server-utils 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-server-utils 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2049,7 +2065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-server-utils 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-server-utils 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-tokio-ipc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-tokio-ipc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2061,7 +2077,7 @@ version = "12.0.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -2075,7 +2091,7 @@ dependencies = [
|
|||||||
"globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2089,7 +2105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-server-utils 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-server-utils 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -2101,7 +2117,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-server-utils 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-server-utils 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ws 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ws 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2247,12 +2263,12 @@ name = "log"
|
|||||||
version = "0.3.9"
|
version = "0.3.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "log"
|
name = "log"
|
||||||
version = "0.4.6"
|
version = "0.4.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2274,6 +2290,40 @@ dependencies = [
|
|||||||
"toolshed 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"toolshed 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "machine"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"account-state 0.1.0",
|
||||||
|
"client-traits 0.1.0",
|
||||||
|
"common-types 0.1.0",
|
||||||
|
"crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"ethcore 1.12.0",
|
||||||
|
"ethcore-builtin 0.1.0",
|
||||||
|
"ethcore-call-contract 0.1.0",
|
||||||
|
"ethcore-io 1.12.0",
|
||||||
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"ethjson 0.1.0",
|
||||||
|
"ethkey 0.3.0",
|
||||||
|
"evm 0.1.0",
|
||||||
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"macros 0.1.0",
|
||||||
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"state-db 0.1.0",
|
||||||
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"trace 0.1.0",
|
||||||
|
"trie-vm-factories 0.1.0",
|
||||||
|
"vm 0.1.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "macros"
|
name = "macros"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@ -2354,7 +2404,7 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"macros 0.1.0",
|
"macros 0.1.0",
|
||||||
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -2388,7 +2438,7 @@ dependencies = [
|
|||||||
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2401,7 +2451,7 @@ version = "2.0.5"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -2411,7 +2461,7 @@ name = "mio-named-pipes"
|
|||||||
version = "0.1.6"
|
version = "0.1.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2484,8 +2534,9 @@ dependencies = [
|
|||||||
name = "node-filter"
|
name = "node-filter"
|
||||||
version = "1.12.0"
|
version = "1.12.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"common-types 0.1.0",
|
||||||
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethcore 1.12.0",
|
"ethcore 1.12.0",
|
||||||
"ethcore-io 1.12.0",
|
"ethcore-io 1.12.0",
|
||||||
@ -2493,7 +2544,7 @@ dependencies = [
|
|||||||
"ethcore-network-devp2p 1.12.0",
|
"ethcore-network-devp2p 1.12.0",
|
||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2664,7 +2715,7 @@ dependencies = [
|
|||||||
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -2677,6 +2728,7 @@ dependencies = [
|
|||||||
"blooms-db 0.1.0",
|
"blooms-db 0.1.0",
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cli-signer 1.4.0",
|
"cli-signer 1.4.0",
|
||||||
|
"client-traits 0.1.0",
|
||||||
"common-types 0.1.0",
|
"common-types 0.1.0",
|
||||||
"ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)",
|
"ctrlc 1.1.1 (git+https://github.com/paritytech/rust-ctrlc.git)",
|
||||||
"dir 0.1.2",
|
"dir 0.1.2",
|
||||||
@ -2707,7 +2759,7 @@ dependencies = [
|
|||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-rocksdb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"migration-rocksdb 0.1.0",
|
"migration-rocksdb 0.1.0",
|
||||||
"node-filter 1.12.0",
|
"node-filter 1.12.0",
|
||||||
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2728,7 +2780,7 @@ dependencies = [
|
|||||||
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"registrar 0.0.1",
|
"registrar 0.0.1",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rpassword 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rpassword 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2748,14 +2800,14 @@ name = "parity-hash-fetch"
|
|||||||
version = "1.12.0"
|
version = "1.12.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fake-fetch 0.0.1",
|
"fake-fetch 0.0.1",
|
||||||
"fetch 0.1.0",
|
"fetch 0.1.0",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2771,13 +2823,14 @@ name = "parity-ipfs-api"
|
|||||||
version = "1.12.0"
|
version = "1.12.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"common-types 0.1.0",
|
||||||
"ethcore 1.12.0",
|
"ethcore 1.12.0",
|
||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-http-server 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-http-server 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"multihash 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"multihash 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -2790,8 +2843,8 @@ dependencies = [
|
|||||||
"ethkey 0.3.0",
|
"ethkey 0.3.0",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2830,6 +2883,7 @@ dependencies = [
|
|||||||
"account-state 0.1.0",
|
"account-state 0.1.0",
|
||||||
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"client-traits 0.1.0",
|
||||||
"common-types 0.1.0",
|
"common-types 0.1.0",
|
||||||
"eip-712 0.1.0",
|
"eip-712 0.1.0",
|
||||||
"ethash 1.12.0",
|
"ethash 1.12.0",
|
||||||
@ -2858,7 +2912,8 @@ dependencies = [
|
|||||||
"jsonrpc-pubsub 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-pubsub 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-ws-server 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-ws-server 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"machine 0.1.0",
|
||||||
"macros 0.1.0",
|
"macros 0.1.0",
|
||||||
"multihash 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"multihash 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"order-stat 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"order-stat 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2871,7 +2926,7 @@ dependencies = [
|
|||||||
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pretty_assertions 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2896,7 +2951,7 @@ dependencies = [
|
|||||||
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-ws-server 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-ws-server 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-rpc 1.12.0",
|
"parity-rpc 1.12.0",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2938,7 +2993,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2954,14 +3009,14 @@ version = "1.12.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"common-types 0.1.0",
|
"common-types 0.1.0",
|
||||||
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethcore 1.12.0",
|
"ethcore 1.12.0",
|
||||||
"ethcore-sync 1.12.0",
|
"ethcore-sync 1.12.0",
|
||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-hash-fetch 1.12.0",
|
"parity-hash-fetch 1.12.0",
|
||||||
@ -2994,7 +3049,7 @@ name = "parity-version"
|
|||||||
version = "2.7.0"
|
version = "2.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -3079,7 +3134,7 @@ dependencies = [
|
|||||||
"keccak-hasher 0.1.1",
|
"keccak-hasher 0.1.1",
|
||||||
"memory-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"memory-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"trie-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"trie-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -3181,11 +3236,11 @@ dependencies = [
|
|||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hasher 0.1.1",
|
"keccak-hasher 0.1.1",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"macros 0.1.0",
|
"macros 0.1.0",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"patricia-trie-ethereum 0.1.0",
|
"patricia-trie-ethereum 0.1.0",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"trie-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"trie-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -3207,7 +3262,7 @@ dependencies = [
|
|||||||
"fake-fetch 0.0.1",
|
"fake-fetch 0.0.1",
|
||||||
"fetch 0.1.0",
|
"fetch 0.1.0",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-runtime 0.1.0",
|
"parity-runtime 0.1.0",
|
||||||
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -3312,7 +3367,7 @@ version = "0.6.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -3556,7 +3611,7 @@ name = "registrar"
|
|||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -3595,10 +3650,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rlp"
|
name = "rlp"
|
||||||
version = "0.4.0"
|
version = "0.4.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -3608,7 +3662,7 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"elastic-array 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"elastic-array 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3617,7 +3671,7 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
|
"proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -3671,7 +3725,7 @@ version = "0.15.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"sct 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"sct 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -3827,7 +3881,7 @@ version = "0.5.3"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"term 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"term 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -3907,7 +3961,7 @@ dependencies = [
|
|||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hasher 0.1.1",
|
"keccak-hasher 0.1.1",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"memory-cache 0.1.0",
|
"memory-cache 0.1.0",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -3927,7 +3981,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
name = "stats"
|
name = "stats"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4191,7 +4245,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4214,7 +4268,7 @@ dependencies = [
|
|||||||
"crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -4263,7 +4317,7 @@ dependencies = [
|
|||||||
"crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -4296,7 +4350,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -4312,7 +4366,7 @@ dependencies = [
|
|||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -4353,11 +4407,11 @@ dependencies = [
|
|||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"evm 0.1.0",
|
"evm 0.1.0",
|
||||||
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-util-mem 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp_derive 0.1.0",
|
"rlp_derive 0.1.0",
|
||||||
"vm 0.1.0",
|
"vm 0.1.0",
|
||||||
]
|
]
|
||||||
@ -4367,7 +4421,7 @@ name = "trace-time"
|
|||||||
version = "0.1.1"
|
version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4375,7 +4429,7 @@ name = "transaction-pool"
|
|||||||
version = "2.0.0"
|
version = "2.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"trace-time 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"trace-time 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@ -4393,7 +4447,7 @@ dependencies = [
|
|||||||
"elastic-array 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"elastic-array 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hash-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hash-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hashmap_core 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -4425,7 +4479,7 @@ version = "0.6.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"hash-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hash-db 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4604,7 +4658,7 @@ dependencies = [
|
|||||||
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"patricia-trie-ethereum 0.1.0",
|
"patricia-trie-ethereum 0.1.0",
|
||||||
"rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4628,7 +4682,7 @@ version = "0.0.6"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -4640,7 +4694,7 @@ dependencies = [
|
|||||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pwasm-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pwasm-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"vm 0.1.0",
|
"vm 0.1.0",
|
||||||
@ -4730,7 +4784,7 @@ dependencies = [
|
|||||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -4868,7 +4922,7 @@ dependencies = [
|
|||||||
"checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02"
|
"checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02"
|
||||||
"checksum eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)" = "<none>"
|
"checksum eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)" = "<none>"
|
||||||
"checksum ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b312e5740d6e0369491ebe81a8752f7797b70e495530f28bbb7cc967ded3d77c"
|
"checksum ethabi 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b312e5740d6e0369491ebe81a8752f7797b70e495530f28bbb7cc967ded3d77c"
|
||||||
"checksum ethabi-contract 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "272b7fcfada8d9b2631d75693385b505efc826752dbc7ae1815e56b35d5a3f9f"
|
"checksum ethabi-contract 8.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e0d6314f57a5451692753696f40903bacf870adf65d452911ab6b15bf6be41f8"
|
||||||
"checksum ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "65cdef3199bf5d1821dc53b5ab992f853a13b2e28d7a63983095d9d61fae58d3"
|
"checksum ethabi-derive 8.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "65cdef3199bf5d1821dc53b5ab992f853a13b2e28d7a63983095d9d61fae58d3"
|
||||||
"checksum ethbloom 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3932e82d64d347a045208924002930dc105a138995ccdc1479d0f05f0359f17c"
|
"checksum ethbloom 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3932e82d64d347a045208924002930dc105a138995ccdc1479d0f05f0359f17c"
|
||||||
"checksum ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "62d1bc682337e2c5ec98930853674dd2b4bd5d0d246933a9e98e5280f7c76c5f"
|
"checksum ethereum-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "62d1bc682337e2c5ec98930853674dd2b4bd5d0d246933a9e98e5280f7c76c5f"
|
||||||
@ -4950,7 +5004,7 @@ dependencies = [
|
|||||||
"checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a"
|
"checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a"
|
||||||
"checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff"
|
"checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff"
|
||||||
"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
|
"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
|
||||||
"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
|
"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
|
||||||
"checksum lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
|
"checksum lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
|
||||||
"checksum lunarity-lexer 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8a1670671f305792567116d4660e6e5bd785d6fa973e817c3445c0a7a54cecb6"
|
"checksum lunarity-lexer 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8a1670671f305792567116d4660e6e5bd785d6fa973e817c3445c0a7a54cecb6"
|
||||||
"checksum malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "35adee9ed962cf7d07d62cb58bc45029f3227f5b5b86246caa8632f06c187bc3"
|
"checksum malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "35adee9ed962cf7d07d62cb58bc45029f3227f5b5b86246caa8632f06c187bc3"
|
||||||
@ -5054,7 +5108,7 @@ dependencies = [
|
|||||||
"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
|
"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
|
||||||
"checksum ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)" = "426bc186e3e95cac1e4a4be125a4aca7e84c2d616ffc02244eef36e2a60a093c"
|
"checksum ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)" = "426bc186e3e95cac1e4a4be125a4aca7e84c2d616ffc02244eef36e2a60a093c"
|
||||||
"checksum ripemd160 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a"
|
"checksum ripemd160 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad5112e0dbbb87577bfbc56c42450235e3012ce336e29c5befd7807bd626da4a"
|
||||||
"checksum rlp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3b0d56c1450bfbef1181fdeb78b902dc1d23178de77c23d705317508e03d1b7c"
|
"checksum rlp 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fa2f7f9c612d133da9101ef7bcd3e603ca7098901eca852e71f87a83dd3e6b59"
|
||||||
"checksum rpassword 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b273c91bd242ca03ad6d71c143b6f17a48790e61f21a6c78568fa2b6774a24a4"
|
"checksum rpassword 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b273c91bd242ca03ad6d71c143b6f17a48790e61f21a6c78568fa2b6774a24a4"
|
||||||
"checksum rprompt 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1601f32bc5858aae3cbfa1c645c96c4d820cc5c16be0194f089560c00b6eb625"
|
"checksum rprompt 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1601f32bc5858aae3cbfa1c645c96c4d820cc5c16be0194f089560c00b6eb625"
|
||||||
"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
|
"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
|
||||||
|
@ -31,6 +31,7 @@ fdlimit = "0.1"
|
|||||||
ctrlc = { git = "https://github.com/paritytech/rust-ctrlc.git" }
|
ctrlc = { git = "https://github.com/paritytech/rust-ctrlc.git" }
|
||||||
jsonrpc-core = "12.0.0"
|
jsonrpc-core = "12.0.0"
|
||||||
parity-bytes = "0.1"
|
parity-bytes = "0.1"
|
||||||
|
client-traits = { path = "ethcore/client-traits" }
|
||||||
common-types = { path = "ethcore/types" }
|
common-types = { path = "ethcore/types" }
|
||||||
ethcore = { path = "ethcore", features = ["parity"] }
|
ethcore = { path = "ethcore", features = ["parity"] }
|
||||||
ethcore-accounts = { path = "accounts", optional = true }
|
ethcore-accounts = { path = "accounts", optional = true }
|
||||||
|
@ -10,6 +10,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
|||||||
account-db = { path = "account-db" }
|
account-db = { path = "account-db" }
|
||||||
ansi_term = "0.11"
|
ansi_term = "0.11"
|
||||||
blooms-db = { path = "../util/blooms-db", optional = true }
|
blooms-db = { path = "../util/blooms-db", optional = true }
|
||||||
|
client-traits = { path = "./client-traits" }
|
||||||
common-types = { path = "types" }
|
common-types = { path = "types" }
|
||||||
crossbeam-utils = "0.6"
|
crossbeam-utils = "0.6"
|
||||||
env_logger = { version = "0.5", optional = true }
|
env_logger = { version = "0.5", optional = true }
|
||||||
@ -44,6 +45,7 @@ lazy_static = "1.2.0"
|
|||||||
len-caching-lock = { path = "../util/len-caching-lock" }
|
len-caching-lock = { path = "../util/len-caching-lock" }
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
lru-cache = "0.1"
|
lru-cache = "0.1"
|
||||||
|
machine = { path = "./machine" }
|
||||||
macros = { path = "../util/macros" }
|
macros = { path = "../util/macros" }
|
||||||
memory-cache = { path = "../util/memory-cache" }
|
memory-cache = { path = "../util/memory-cache" }
|
||||||
num_cpus = "1.2"
|
num_cpus = "1.2"
|
||||||
@ -85,6 +87,7 @@ rlp_compress = { path = "../util/rlp-compress" }
|
|||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
tempdir = "0.3"
|
tempdir = "0.3"
|
||||||
trie-standardmap = "0.12.4"
|
trie-standardmap = "0.12.4"
|
||||||
|
machine = { path = "./machine", features = ["test-helpers"] }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
parity = ["work-notify", "price-info", "stratum"]
|
parity = ["work-notify", "price-info", "stratum"]
|
||||||
|
12
ethcore/client-traits/Cargo.toml
Normal file
12
ethcore/client-traits/Cargo.toml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[package]
|
||||||
|
description = "Trait definitions relative the ethereum client"
|
||||||
|
name = "client-traits"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
edition = "2018"
|
||||||
|
license = "GPL-3.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
ethereum-types = "0.6.0"
|
||||||
|
common-types = { path = "../types" }
|
||||||
|
|
37
ethcore/client-traits/src/lib.rs
Normal file
37
ethcore/client-traits/src/lib.rs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright 2015-2019 Parity Technologies (UK) Ltd.
|
||||||
|
// This file is part of Parity Ethereum.
|
||||||
|
|
||||||
|
// Parity Ethereum is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// Parity Ethereum is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
use ethereum_types::{Address, H256};
|
||||||
|
use common_types::{
|
||||||
|
header::Header,
|
||||||
|
encoded,
|
||||||
|
ids::BlockId,
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Provides various information on a block by it's ID
|
||||||
|
pub trait BlockInfo {
|
||||||
|
/// Get raw block header data by block id.
|
||||||
|
fn block_header(&self, id: BlockId) -> Option<encoded::Header>;
|
||||||
|
|
||||||
|
/// Get the best block header.
|
||||||
|
fn best_block_header(&self) -> Header;
|
||||||
|
|
||||||
|
/// Get raw block data by block header hash.
|
||||||
|
fn block(&self, id: BlockId) -> Option<encoded::Block>;
|
||||||
|
|
||||||
|
/// Get address code hash at given block's state.
|
||||||
|
fn code_hash(&self, address: &Address, id: BlockId) -> Option<H256>;
|
||||||
|
}
|
@ -9,12 +9,14 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
parity-bytes = "0.1"
|
parity-bytes = "0.1"
|
||||||
|
client-traits = { path = "../client-traits" }
|
||||||
common-types = { path = "../types" }
|
common-types = { path = "../types" }
|
||||||
derive_more = "0.14.0"
|
derive_more = "0.14.0"
|
||||||
ethcore = { path = ".."}
|
ethcore = { path = ".."}
|
||||||
ethcore-db = { path = "../db" }
|
ethcore-db = { path = "../db" }
|
||||||
ethcore-blockchain = { path = "../blockchain" }
|
ethcore-blockchain = { path = "../blockchain" }
|
||||||
ethereum-types = "0.6.0"
|
ethereum-types = "0.6.0"
|
||||||
|
machine = { path = "../machine" }
|
||||||
memory-db = "0.12.4"
|
memory-db = "0.12.4"
|
||||||
trie-db = "0.12.4"
|
trie-db = "0.12.4"
|
||||||
patricia-trie-ethereum = { path = "../../util/patricia-trie-ethereum" }
|
patricia-trie-ethereum = { path = "../../util/patricia-trie-ethereum" }
|
||||||
|
@ -54,6 +54,7 @@ extern crate serde_derive;
|
|||||||
extern crate log;
|
extern crate log;
|
||||||
|
|
||||||
extern crate bincode;
|
extern crate bincode;
|
||||||
|
extern crate client_traits;
|
||||||
extern crate common_types;
|
extern crate common_types;
|
||||||
extern crate ethcore_blockchain;
|
extern crate ethcore_blockchain;
|
||||||
extern crate ethcore_db;
|
extern crate ethcore_db;
|
||||||
@ -71,6 +72,7 @@ extern crate failsafe;
|
|||||||
extern crate futures;
|
extern crate futures;
|
||||||
extern crate itertools;
|
extern crate itertools;
|
||||||
extern crate keccak_hasher;
|
extern crate keccak_hasher;
|
||||||
|
extern crate machine;
|
||||||
extern crate memory_db;
|
extern crate memory_db;
|
||||||
extern crate trie_db as trie;
|
extern crate trie_db as trie;
|
||||||
extern crate patricia_trie_ethereum as ethtrie;
|
extern crate patricia_trie_ethereum as ethtrie;
|
||||||
|
@ -39,8 +39,8 @@ use net::{
|
|||||||
use cache::Cache;
|
use cache::Cache;
|
||||||
use request::{self as basic_request, Request as NetworkRequest};
|
use request::{self as basic_request, Request as NetworkRequest};
|
||||||
use self::request::CheckedRequest;
|
use self::request::CheckedRequest;
|
||||||
|
use machine::executed::ExecutionResult;
|
||||||
|
|
||||||
pub use ethcore::executed::ExecutionResult;
|
|
||||||
pub use self::request::{Request, Response, HeaderRef, Error as ValidityError};
|
pub use self::request::{Request, Response, HeaderRef, Error as ValidityError};
|
||||||
pub use self::request_guard::{RequestGuard, Error as RequestError};
|
pub use self::request_guard::{RequestGuard, Error as RequestError};
|
||||||
pub use self::response_guard::{ResponseGuard, Error as ResponseGuardError, Inner as ResponseGuardInner};
|
pub use self::response_guard::{ResponseGuard, Error as ResponseGuardError, Inner as ResponseGuardInner};
|
||||||
|
@ -1099,7 +1099,8 @@ mod tests {
|
|||||||
use trie::Recorder;
|
use trie::Recorder;
|
||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
|
|
||||||
use ethcore::client::{BlockChainClient, BlockInfo, TestBlockChainClient, EachBlockWith};
|
use ethcore::client::{BlockChainClient, TestBlockChainClient, EachBlockWith};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use common_types::header::Header;
|
use common_types::header::Header;
|
||||||
use common_types::encoded;
|
use common_types::encoded;
|
||||||
use common_types::receipt::{Receipt, TransactionOutcome};
|
use common_types::receipt::{Receipt, TransactionOutcome};
|
||||||
@ -1202,32 +1203,32 @@ mod tests {
|
|||||||
|
|
||||||
// Incorrect responses
|
// Incorrect responses
|
||||||
assert_eq!(header_with_ancestors(invalid_successor.hash().into(), 0)
|
assert_eq!(header_with_ancestors(invalid_successor.hash().into(), 0)
|
||||||
.check_response(&cache, &headers[0].hash().into(), &raw_headers[0..1]),
|
.check_response(&cache, &headers[0].hash().into(), &raw_headers[0..1]),
|
||||||
Err(Error::WrongHash(invalid_successor.hash(), headers[0].hash())));
|
Err(Error::WrongHash(invalid_successor.hash(), headers[0].hash())));
|
||||||
assert_eq!(header_with_ancestors(headers[0].hash().into(), 0)
|
assert_eq!(header_with_ancestors(headers[0].hash().into(), 0)
|
||||||
.check_response(&cache, &headers[0].hash().into(), &[]),
|
.check_response(&cache, &headers[0].hash().into(), &[]),
|
||||||
Err(Error::Empty));
|
Err(Error::Empty));
|
||||||
assert_eq!(header_with_ancestors(headers[0].hash().into(), 10)
|
assert_eq!(header_with_ancestors(headers[0].hash().into(), 10)
|
||||||
.check_response(&cache, &headers[0].hash().into(), &raw_headers[0..10]),
|
.check_response(&cache, &headers[0].hash().into(), &raw_headers[0..10]),
|
||||||
Err(Error::TooFewResults(11, 10)));
|
Err(Error::TooFewResults(11, 10)));
|
||||||
assert_eq!(header_with_ancestors(headers[0].hash().into(), 9)
|
assert_eq!(header_with_ancestors(headers[0].hash().into(), 9)
|
||||||
.check_response(&cache, &headers[0].hash().into(), &raw_headers[0..11]),
|
.check_response(&cache, &headers[0].hash().into(), &raw_headers[0..11]),
|
||||||
Err(Error::TooManyResults(10, 11)));
|
Err(Error::TooManyResults(10, 11)));
|
||||||
|
|
||||||
let response = &[raw_headers[0].clone(), raw_headers[2].clone()];
|
let response = &[raw_headers[0].clone(), raw_headers[2].clone()];
|
||||||
assert_eq!(header_with_ancestors(headers[0].hash().into(), 1)
|
assert_eq!(header_with_ancestors(headers[0].hash().into(), 1)
|
||||||
.check_response(&cache, &headers[0].hash().into(), response),
|
.check_response(&cache, &headers[0].hash().into(), response),
|
||||||
Err(Error::WrongHeaderSequence));
|
Err(Error::WrongHeaderSequence));
|
||||||
|
|
||||||
let response = &[raw_invalid_successor.clone(), raw_headers[0].clone()];
|
let response = &[raw_invalid_successor.clone(), raw_headers[0].clone()];
|
||||||
assert_eq!(header_with_ancestors(invalid_successor.hash().into(), 1)
|
assert_eq!(header_with_ancestors(invalid_successor.hash().into(), 1)
|
||||||
.check_response(&cache, &invalid_successor.hash().into(), response),
|
.check_response(&cache, &invalid_successor.hash().into(), response),
|
||||||
Err(Error::WrongHeaderSequence));
|
Err(Error::WrongHeaderSequence));
|
||||||
|
|
||||||
let response = &[raw_invalid_successor.clone(), raw_headers[1].clone()];
|
let response = &[raw_invalid_successor.clone(), raw_headers[1].clone()];
|
||||||
assert_eq!(header_with_ancestors(invalid_successor.hash().into(), 1)
|
assert_eq!(header_with_ancestors(invalid_successor.hash().into(), 1)
|
||||||
.check_response(&cache, &invalid_successor.hash().into(), response),
|
.check_response(&cache, &invalid_successor.hash().into(), response),
|
||||||
Err(Error::WrongHeaderSequence));
|
Err(Error::WrongHeaderSequence));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -19,11 +19,14 @@
|
|||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use common_types::blockchain_info::BlockChainInfo;
|
use common_types::{
|
||||||
use common_types::encoded;
|
blockchain_info::BlockChainInfo,
|
||||||
use common_types::ids::BlockId;
|
encoded,
|
||||||
use common_types::transaction::PendingTransaction;
|
ids::BlockId,
|
||||||
use ethcore::client::{BlockChainClient, ProvingBlockChainClient, ChainInfo, BlockInfo as ClientBlockInfo};
|
transaction::PendingTransaction,
|
||||||
|
};
|
||||||
|
use ethcore::client::{BlockChainClient, ProvingBlockChainClient, ChainInfo};
|
||||||
|
use client_traits::BlockInfo as ClientBlockInfo;
|
||||||
use ethereum_types::H256;
|
use ethereum_types::H256;
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
|
|
||||||
|
46
ethcore/machine/Cargo.toml
Normal file
46
ethcore/machine/Cargo.toml
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
[package]
|
||||||
|
description = "Ethereum state machine"
|
||||||
|
name = "machine"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
edition = "2018"
|
||||||
|
license = "GPL-3.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
account-state = { path = "../account-state" }
|
||||||
|
client-traits = { path = "../client-traits" }
|
||||||
|
common-types = { path = "../types" }
|
||||||
|
crossbeam-utils = "0.6"
|
||||||
|
ethabi = "8.0.0"
|
||||||
|
ethabi-contract = "8.0.0"
|
||||||
|
ethabi-derive = "8.0.0"
|
||||||
|
ethcore-builtin = { path = "../builtin" }
|
||||||
|
ethcore-call-contract = { path = "../call-contract" }
|
||||||
|
ethcore-io = { path = "../../util/io" }
|
||||||
|
ethereum-types = "0.6.0"
|
||||||
|
# Used for tests in other crates through the `test-helpers` feature
|
||||||
|
ethjson = { path = "../../json", optional = true }
|
||||||
|
evm = { path = "../evm" }
|
||||||
|
keccak-hash = "0.2.0"
|
||||||
|
log = "0.4"
|
||||||
|
lru-cache = "0.1.2"
|
||||||
|
parity-bytes = "0.1.0"
|
||||||
|
parking_lot = "0.8.0"
|
||||||
|
rlp = "0.4.2"
|
||||||
|
state-db = { path = "../state-db" }
|
||||||
|
trace = { path = "../trace" }
|
||||||
|
trie-vm-factories = { path = "../trie-vm-factories" }
|
||||||
|
vm = { path = "../vm" }
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
ethcore = { path = "../", features = ["test-helpers"] }
|
||||||
|
ethcore-io = { path = "../../util/io" }
|
||||||
|
ethjson = { path = "../../json" }
|
||||||
|
ethkey = { path = "../../accounts/ethkey" }
|
||||||
|
macros = { path = "../../util/macros" }
|
||||||
|
rustc-hex = "1.0"
|
||||||
|
tempdir = "0.3"
|
||||||
|
trace = { path = "../trace" }
|
||||||
|
|
||||||
|
[features]
|
||||||
|
test-helpers = ["ethjson"]
|
@ -17,10 +17,10 @@
|
|||||||
//! Transaction execution format module.
|
//! Transaction execution format module.
|
||||||
|
|
||||||
use ethereum_types::{U256, Address};
|
use ethereum_types::{U256, Address};
|
||||||
use bytes::Bytes;
|
use parity_bytes::Bytes;
|
||||||
use vm;
|
use vm;
|
||||||
use trace::{VMTrace, FlatTrace};
|
use trace::{VMTrace, FlatTrace};
|
||||||
use types::{
|
use common_types::{
|
||||||
state_diff::StateDiff,
|
state_diff::StateDiff,
|
||||||
log_entry::LogEntry,
|
log_entry::LogEntry,
|
||||||
errors::ExecutionError,
|
errors::ExecutionError,
|
101
ethcore/machine/src/executed_block.rs
Normal file
101
ethcore/machine/src/executed_block.rs
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
// Copyright 2015-2019 Parity Technologies (UK) Ltd.
|
||||||
|
// This file is part of Parity Ethereum.
|
||||||
|
|
||||||
|
// Parity Ethereum is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// Parity Ethereum is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//! `ExecutedBlock` is the underlying data structure used by other block types to store block
|
||||||
|
//! related info. As a block goes through processing we use different types to signal its state:
|
||||||
|
//! "open", "closed", "locked", "sealed". They all embed an `ExecutedBlock`.
|
||||||
|
|
||||||
|
use std::{
|
||||||
|
collections::HashSet,
|
||||||
|
sync::Arc,
|
||||||
|
};
|
||||||
|
|
||||||
|
use ethereum_types::{H256, U256};
|
||||||
|
|
||||||
|
use account_state::State;
|
||||||
|
use common_types::{
|
||||||
|
header::Header,
|
||||||
|
receipt::Receipt,
|
||||||
|
transaction::SignedTransaction,
|
||||||
|
};
|
||||||
|
use state_db::StateDB;
|
||||||
|
use trace::Tracing;
|
||||||
|
use vm::{EnvInfo, LastHashes};
|
||||||
|
|
||||||
|
/// An internal type for a block's common elements.
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct ExecutedBlock {
|
||||||
|
/// Executed block header.
|
||||||
|
pub header: Header,
|
||||||
|
/// Executed transactions.
|
||||||
|
pub transactions: Vec<SignedTransaction>,
|
||||||
|
/// Uncles.
|
||||||
|
pub uncles: Vec<Header>,
|
||||||
|
/// Transaction receipts.
|
||||||
|
pub receipts: Vec<Receipt>,
|
||||||
|
/// Hashes of already executed transactions.
|
||||||
|
pub transactions_set: HashSet<H256>,
|
||||||
|
/// Underlying state.
|
||||||
|
pub state: State<StateDB>,
|
||||||
|
/// Transaction traces.
|
||||||
|
pub traces: Tracing,
|
||||||
|
/// Hashes of last 256 blocks.
|
||||||
|
pub last_hashes: Arc<LastHashes>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ExecutedBlock {
|
||||||
|
/// Create a new block from the given `state`.
|
||||||
|
pub fn new(state: State<StateDB>, last_hashes: Arc<LastHashes>, tracing: bool) -> ExecutedBlock {
|
||||||
|
ExecutedBlock {
|
||||||
|
header: Default::default(),
|
||||||
|
transactions: Default::default(),
|
||||||
|
uncles: Default::default(),
|
||||||
|
receipts: Default::default(),
|
||||||
|
transactions_set: Default::default(),
|
||||||
|
state,
|
||||||
|
traces: if tracing {
|
||||||
|
Tracing::enabled()
|
||||||
|
} else {
|
||||||
|
Tracing::Disabled
|
||||||
|
},
|
||||||
|
last_hashes,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get the environment info concerning this block.
|
||||||
|
pub fn env_info(&self) -> EnvInfo {
|
||||||
|
// TODO: memoise.
|
||||||
|
EnvInfo {
|
||||||
|
number: self.header.number(),
|
||||||
|
author: self.header.author().clone(),
|
||||||
|
timestamp: self.header.timestamp(),
|
||||||
|
difficulty: self.header.difficulty().clone(),
|
||||||
|
last_hashes: self.last_hashes.clone(),
|
||||||
|
gas_used: self.receipts.last().map_or(U256::zero(), |r| r.gas_used),
|
||||||
|
gas_limit: self.header.gas_limit().clone(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get mutable access to a state.
|
||||||
|
pub fn state_mut(&mut self) -> &mut State<StateDB> {
|
||||||
|
&mut self.state
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get mutable reference to traces.
|
||||||
|
pub fn traces_mut(&mut self) -> &mut Tracing {
|
||||||
|
&mut self.traces
|
||||||
|
}
|
||||||
|
}
|
@ -15,30 +15,36 @@
|
|||||||
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Transaction Execution environment.
|
//! Transaction Execution environment.
|
||||||
use std::cmp;
|
|
||||||
use std::convert::TryFrom;
|
use std::{cmp, convert::TryFrom, sync::Arc};
|
||||||
use std::sync::Arc;
|
|
||||||
use hash::keccak;
|
use crossbeam_utils::thread;
|
||||||
use ethereum_types::{H256, U256, U512, Address};
|
use ethereum_types::{H256, U256, U512, Address};
|
||||||
use bytes::{Bytes, BytesRef};
|
use keccak_hash::keccak;
|
||||||
|
use parity_bytes::{Bytes, BytesRef};
|
||||||
|
use rlp::RlpStream;
|
||||||
|
use log::trace;
|
||||||
|
|
||||||
use account_state::{Backend as StateBackend, State, CleanupMode};
|
use account_state::{Backend as StateBackend, State, CleanupMode};
|
||||||
use substate::Substate;
|
|
||||||
use machine::Machine;
|
|
||||||
use evm::{CallType, Finalize, FinalizationResult};
|
use evm::{CallType, Finalize, FinalizationResult};
|
||||||
use vm::{
|
use vm::{
|
||||||
self, EnvInfo, CreateContractAddress, ReturnData, CleanDustMode, ActionParams,
|
self, EnvInfo, CreateContractAddress, ReturnData, CleanDustMode, ActionParams,
|
||||||
ActionValue, Schedule, TrapError, ResumeCall, ResumeCreate
|
ActionValue, Schedule, TrapError, ResumeCall, ResumeCreate
|
||||||
};
|
};
|
||||||
use trie_vm_factories::VmFactory;
|
use trie_vm_factories::VmFactory;
|
||||||
use externalities::*;
|
|
||||||
use trace::{self, Tracer, VMTracer};
|
use trace::{self, Tracer, VMTracer};
|
||||||
use types::{
|
use common_types::{
|
||||||
errors::ExecutionError,
|
errors::ExecutionError,
|
||||||
transaction::{Action, SignedTransaction},
|
transaction::{Action, SignedTransaction},
|
||||||
};
|
};
|
||||||
use transaction_ext::Transaction;
|
|
||||||
use crossbeam_utils::thread;
|
use crate::{
|
||||||
pub use executed::{Executed, ExecutionResult};
|
Machine,
|
||||||
|
substate::Substate,
|
||||||
|
externalities::{Externalities, OutputPolicy, OriginInfo}, // todo: make explicit
|
||||||
|
transaction_ext::Transaction,
|
||||||
|
executed::Executed,
|
||||||
|
};
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
/// Roughly estimate what stack size each level of evm depth will use. (Debug build)
|
/// Roughly estimate what stack size each level of evm depth will use. (Debug build)
|
||||||
@ -58,8 +64,6 @@ const STACK_SIZE_ENTRY_OVERHEAD: usize = 20 * 1024;
|
|||||||
|
|
||||||
/// Returns new address created from address, nonce, and code hash
|
/// Returns new address created from address, nonce, and code hash
|
||||||
pub fn contract_address(address_scheme: CreateContractAddress, sender: &Address, nonce: &U256, code: &[u8]) -> (Address, Option<H256>) {
|
pub fn contract_address(address_scheme: CreateContractAddress, sender: &Address, nonce: &U256, code: &[u8]) -> (Address, Option<H256>) {
|
||||||
use rlp::RlpStream;
|
|
||||||
|
|
||||||
match address_scheme {
|
match address_scheme {
|
||||||
CreateContractAddress::FromSenderAndNonce => {
|
CreateContractAddress::FromSenderAndNonce => {
|
||||||
let mut stream = RlpStream::new_list(2);
|
let mut stream = RlpStream::new_list(2);
|
||||||
@ -995,7 +999,7 @@ impl<'a, B: 'a + StateBackend> Executive<'a, B> {
|
|||||||
tracer: &mut T,
|
tracer: &mut T,
|
||||||
vm_tracer: &mut V
|
vm_tracer: &mut V
|
||||||
) -> vm::Result<FinalizationResult> where T: Tracer, V: VMTracer {
|
) -> vm::Result<FinalizationResult> where T: Tracer, V: VMTracer {
|
||||||
let local_stack_size = ::io::LOCAL_STACK_SIZE.with(|sz| sz.get());
|
let local_stack_size = ethcore_io::LOCAL_STACK_SIZE.with(|sz| sz.get());
|
||||||
let depth_threshold = local_stack_size.saturating_sub(STACK_SIZE_ENTRY_OVERHEAD) / STACK_SIZE_PER_DEPTH;
|
let depth_threshold = local_stack_size.saturating_sub(STACK_SIZE_ENTRY_OVERHEAD) / STACK_SIZE_PER_DEPTH;
|
||||||
|
|
||||||
if stack_depth != depth_threshold {
|
if stack_depth != depth_threshold {
|
||||||
@ -1086,7 +1090,7 @@ impl<'a, B: 'a + StateBackend> Executive<'a, B> {
|
|||||||
tracer: &mut T,
|
tracer: &mut T,
|
||||||
vm_tracer: &mut V,
|
vm_tracer: &mut V,
|
||||||
) -> vm::Result<FinalizationResult> where T: Tracer, V: VMTracer {
|
) -> vm::Result<FinalizationResult> where T: Tracer, V: VMTracer {
|
||||||
let local_stack_size = ::io::LOCAL_STACK_SIZE.with(|sz| sz.get());
|
let local_stack_size = ethcore_io::LOCAL_STACK_SIZE.with(|sz| sz.get());
|
||||||
let depth_threshold = local_stack_size.saturating_sub(STACK_SIZE_ENTRY_OVERHEAD) / STACK_SIZE_PER_DEPTH;
|
let depth_threshold = local_stack_size.saturating_sub(STACK_SIZE_ENTRY_OVERHEAD) / STACK_SIZE_PER_DEPTH;
|
||||||
|
|
||||||
if stack_depth != depth_threshold {
|
if stack_depth != depth_threshold {
|
||||||
@ -1208,36 +1212,52 @@ impl<'a, B: 'a + StateBackend> Executive<'a, B> {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use std::sync::Arc;
|
use std::{
|
||||||
use std::str::FromStr;
|
sync::Arc,
|
||||||
use std::collections::HashSet;
|
str::FromStr,
|
||||||
|
collections::HashSet,
|
||||||
|
};
|
||||||
|
|
||||||
use rustc_hex::FromHex;
|
use rustc_hex::FromHex;
|
||||||
use ethkey::{Generator, Random};
|
|
||||||
use super::*;
|
|
||||||
use ethereum_types::{H256, U256, U512, Address, BigEndianHash};
|
use ethereum_types::{H256, U256, U512, Address, BigEndianHash};
|
||||||
use vm::{ActionParams, ActionValue, CallType, EnvInfo, CreateContractAddress};
|
|
||||||
use evm::{Factory, VMType};
|
|
||||||
use machine::Machine;
|
|
||||||
use account_state::CleanupMode;
|
use account_state::CleanupMode;
|
||||||
use substate::Substate;
|
use common_types::{
|
||||||
use test_helpers::{get_temp_state_with_factory, get_temp_state};
|
|
||||||
use trace::trace;
|
|
||||||
use trace::{FlatTrace, Tracer, NoopTracer, ExecutiveTracer};
|
|
||||||
use trace::{VMTrace, VMOperation, VMExecutedOperation, MemoryDiff, StorageDiff, VMTracer, NoopVMTracer, ExecutiveVMTracer};
|
|
||||||
use types::{
|
|
||||||
errors::ExecutionError,
|
errors::ExecutionError,
|
||||||
transaction::{Action, Transaction},
|
transaction::{Action, Transaction},
|
||||||
};
|
};
|
||||||
use crate::spec;
|
use ethkey::{Generator, Random};
|
||||||
|
use evm::{Factory, VMType, evm_test, evm_test_ignore};
|
||||||
|
use macros::vec_into;
|
||||||
|
use vm::{ActionParams, ActionValue, CallType, EnvInfo, CreateContractAddress};
|
||||||
|
use ::trace::{
|
||||||
|
trace,
|
||||||
|
FlatTrace, Tracer, NoopTracer, ExecutiveTracer,
|
||||||
|
VMTrace, VMOperation, VMExecutedOperation, MemoryDiff, StorageDiff, VMTracer, NoopVMTracer, ExecutiveVMTracer,
|
||||||
|
};
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
use crate::{
|
||||||
|
Machine,
|
||||||
|
substate::Substate,
|
||||||
|
test_helpers::{
|
||||||
|
new_frontier_test_machine,
|
||||||
|
new_byzantium_test_machine,
|
||||||
|
new_constantinople_test_machine,
|
||||||
|
new_kovan_wasm_test_machine,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
use ethcore::test_helpers::{get_temp_state_with_factory, get_temp_state};
|
||||||
|
|
||||||
fn make_frontier_machine(max_depth: usize) -> Machine {
|
fn make_frontier_machine(max_depth: usize) -> Machine {
|
||||||
let mut machine = spec::new_frontier_test_machine();
|
let mut machine = new_frontier_test_machine();
|
||||||
machine.set_schedule_creation_rules(Box::new(move |s, _| s.max_depth = max_depth));
|
machine.set_schedule_creation_rules(Box::new(move |s, _| s.max_depth = max_depth));
|
||||||
machine
|
machine
|
||||||
}
|
}
|
||||||
|
|
||||||
fn make_byzantium_machine(max_depth: usize) -> Machine {
|
fn make_byzantium_machine(max_depth: usize) -> Machine {
|
||||||
let mut machine = spec::new_byzantium_test_machine();
|
let mut machine = new_byzantium_test_machine();
|
||||||
machine.set_schedule_creation_rules(Box::new(move |s, _| s.max_depth = max_depth));
|
machine.set_schedule_creation_rules(Box::new(move |s, _| s.max_depth = max_depth));
|
||||||
machine
|
machine
|
||||||
}
|
}
|
||||||
@ -1591,7 +1611,7 @@ mod tests {
|
|||||||
let mut state = get_temp_state();
|
let mut state = get_temp_state();
|
||||||
state.add_balance(&sender, &U256::from(100), CleanupMode::NoEmpty).unwrap();
|
state.add_balance(&sender, &U256::from(100), CleanupMode::NoEmpty).unwrap();
|
||||||
let info = EnvInfo::default();
|
let info = EnvInfo::default();
|
||||||
let machine = spec::new_byzantium_test_machine();
|
let machine = new_byzantium_test_machine();
|
||||||
let schedule = machine.schedule(info.number);
|
let schedule = machine.schedule(info.number);
|
||||||
let mut substate = Substate::new();
|
let mut substate = Substate::new();
|
||||||
let mut tracer = ExecutiveTracer::default();
|
let mut tracer = ExecutiveTracer::default();
|
||||||
@ -2123,7 +2143,7 @@ mod tests {
|
|||||||
params.code = Some(Arc::new(code));
|
params.code = Some(Arc::new(code));
|
||||||
params.value = ActionValue::Transfer(U256::zero());
|
params.value = ActionValue::Transfer(U256::zero());
|
||||||
let info = EnvInfo::default();
|
let info = EnvInfo::default();
|
||||||
let machine = spec::new_byzantium_test_machine();
|
let machine = new_byzantium_test_machine();
|
||||||
let schedule = machine.schedule(info.number);
|
let schedule = machine.schedule(info.number);
|
||||||
let mut substate = Substate::new();
|
let mut substate = Substate::new();
|
||||||
|
|
||||||
@ -2159,7 +2179,7 @@ mod tests {
|
|||||||
state.init_code(&y2, "600060006000600061100162fffffff4".from_hex().unwrap()).unwrap();
|
state.init_code(&y2, "600060006000600061100162fffffff4".from_hex().unwrap()).unwrap();
|
||||||
|
|
||||||
let info = EnvInfo::default();
|
let info = EnvInfo::default();
|
||||||
let machine = spec::new_constantinople_test_machine();
|
let machine = new_constantinople_test_machine();
|
||||||
let schedule = machine.schedule(info.number);
|
let schedule = machine.schedule(info.number);
|
||||||
|
|
||||||
assert_eq!(state.storage_at(&operating_address, &k).unwrap(), BigEndianHash::from_uint(&U256::from(0)));
|
assert_eq!(state.storage_at(&operating_address, &k).unwrap(), BigEndianHash::from_uint(&U256::from(0)));
|
||||||
@ -2229,7 +2249,7 @@ mod tests {
|
|||||||
info.number = 100;
|
info.number = 100;
|
||||||
|
|
||||||
// Network with wasm activated at block 10
|
// Network with wasm activated at block 10
|
||||||
let machine = spec::new_kovan_wasm_test_machine();
|
let machine = new_kovan_wasm_test_machine();
|
||||||
|
|
||||||
let mut output = [0u8; 20];
|
let mut output = [0u8; 20];
|
||||||
let FinalizationResult { gas_left: result, return_data, .. } = {
|
let FinalizationResult { gas_left: result, return_data, .. } = {
|
@ -15,21 +15,36 @@
|
|||||||
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Transaction Execution environment.
|
//! Transaction Execution environment.
|
||||||
use std::cmp;
|
|
||||||
use std::sync::Arc;
|
use std::{cmp, sync::Arc};
|
||||||
|
|
||||||
use ethereum_types::{H256, U256, Address, BigEndianHash};
|
use ethereum_types::{H256, U256, Address, BigEndianHash};
|
||||||
use bytes::Bytes;
|
use parity_bytes::Bytes;
|
||||||
|
use log::{debug, trace, warn};
|
||||||
|
|
||||||
use account_state::{Backend as StateBackend, State, CleanupMode};
|
use account_state::{Backend as StateBackend, State, CleanupMode};
|
||||||
use substate::Substate;
|
use common_types::{
|
||||||
use machine::Machine;
|
transaction::UNSIGNED_SENDER,
|
||||||
use executive::*;
|
log_entry::LogEntry,
|
||||||
|
};
|
||||||
|
use trace::{Tracer, VMTracer};
|
||||||
use vm::{
|
use vm::{
|
||||||
self, ActionParams, ActionValue, EnvInfo, CallType, Schedule,
|
self, ActionParams, ActionValue, EnvInfo, CallType, Schedule,
|
||||||
Ext, ContractCreateResult, MessageCallResult, CreateContractAddress,
|
Ext, ContractCreateResult, MessageCallResult, CreateContractAddress,
|
||||||
ReturnData, TrapKind
|
ReturnData, TrapKind
|
||||||
};
|
};
|
||||||
use types::transaction::UNSIGNED_SENDER;
|
|
||||||
use trace::{Tracer, VMTracer};
|
use crate::{
|
||||||
|
Machine,
|
||||||
|
substate::Substate,
|
||||||
|
executive::{
|
||||||
|
Executive,
|
||||||
|
contract_address,
|
||||||
|
into_message_call_result,
|
||||||
|
into_contract_create_result,
|
||||||
|
cleanup_mode
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
/// Policy for handling output data on `RETURN` opcode.
|
/// Policy for handling output data on `RETURN` opcode.
|
||||||
pub enum OutputPolicy {
|
pub enum OutputPolicy {
|
||||||
@ -97,18 +112,18 @@ impl<'a, T: 'a, V: 'a, B: 'a> Externalities<'a, T, V, B>
|
|||||||
static_flag: bool,
|
static_flag: bool,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
Externalities {
|
Externalities {
|
||||||
state: state,
|
state,
|
||||||
env_info: env_info,
|
env_info,
|
||||||
depth: depth,
|
depth,
|
||||||
stack_depth: stack_depth,
|
stack_depth,
|
||||||
origin_info: origin_info,
|
origin_info,
|
||||||
substate: substate,
|
substate,
|
||||||
machine: machine,
|
machine,
|
||||||
schedule: schedule,
|
schedule,
|
||||||
output: output,
|
output,
|
||||||
tracer: tracer,
|
tracer,
|
||||||
vm_tracer: vm_tracer,
|
vm_tracer,
|
||||||
static_flag: static_flag,
|
static_flag,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -137,10 +152,6 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_static(&self) -> bool {
|
|
||||||
return self.static_flag
|
|
||||||
}
|
|
||||||
|
|
||||||
fn exists(&self, address: &Address) -> vm::Result<bool> {
|
fn exists(&self, address: &Address) -> vm::Result<bool> {
|
||||||
self.state.exists(address).map_err(Into::into)
|
self.state.exists(address).map_err(Into::into)
|
||||||
}
|
}
|
||||||
@ -178,9 +189,9 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B>
|
|||||||
origin: self.origin_info.origin.clone(),
|
origin: self.origin_info.origin.clone(),
|
||||||
gas: self.machine.params().eip210_contract_gas,
|
gas: self.machine.params().eip210_contract_gas,
|
||||||
gas_price: 0.into(),
|
gas_price: 0.into(),
|
||||||
code: code,
|
code,
|
||||||
code_hash: code_hash,
|
code_hash,
|
||||||
code_version: code_version,
|
code_version,
|
||||||
data: Some(data.as_bytes().to_vec()),
|
data: Some(data.as_bytes().to_vec()),
|
||||||
call_type: CallType::Call,
|
call_type: CallType::Call,
|
||||||
params_type: vm::ParamsType::Separate,
|
params_type: vm::ParamsType::Separate,
|
||||||
@ -240,7 +251,7 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B>
|
|||||||
gas_price: self.origin_info.gas_price,
|
gas_price: self.origin_info.gas_price,
|
||||||
value: ActionValue::Transfer(*value),
|
value: ActionValue::Transfer(*value),
|
||||||
code: Some(Arc::new(code.to_vec())),
|
code: Some(Arc::new(code.to_vec())),
|
||||||
code_hash: code_hash,
|
code_hash,
|
||||||
code_version: *parent_version,
|
code_version: *parent_version,
|
||||||
data: None,
|
data: None,
|
||||||
call_type: CallType::None,
|
call_type: CallType::None,
|
||||||
@ -296,11 +307,11 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B>
|
|||||||
origin: self.origin_info.origin.clone(),
|
origin: self.origin_info.origin.clone(),
|
||||||
gas: *gas,
|
gas: *gas,
|
||||||
gas_price: self.origin_info.gas_price,
|
gas_price: self.origin_info.gas_price,
|
||||||
code: code,
|
code,
|
||||||
code_hash: code_hash,
|
code_hash,
|
||||||
code_version: code_version,
|
code_version,
|
||||||
data: Some(data.to_vec()),
|
data: Some(data.to_vec()),
|
||||||
call_type: call_type,
|
call_type,
|
||||||
params_type: vm::ParamsType::Separate,
|
params_type: vm::ParamsType::Separate,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -333,6 +344,21 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B>
|
|||||||
Ok(self.state.code_size(address)?)
|
Ok(self.state.code_size(address)?)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn log(&mut self, topics: Vec<H256>, data: &[u8]) -> vm::Result<()> {
|
||||||
|
if self.static_flag {
|
||||||
|
return Err(vm::Error::MutableCallInStaticContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
let address = self.origin_info.address.clone();
|
||||||
|
self.substate.logs.push(LogEntry {
|
||||||
|
address,
|
||||||
|
topics,
|
||||||
|
data: data.to_vec()
|
||||||
|
});
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
fn ret(self, gas: &U256, data: &ReturnData, apply_state: bool) -> vm::Result<U256>
|
fn ret(self, gas: &U256, data: &ReturnData, apply_state: bool) -> vm::Result<U256>
|
||||||
where Self: Sized {
|
where Self: Sized {
|
||||||
match self.output {
|
match self.output {
|
||||||
@ -356,23 +382,6 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn log(&mut self, topics: Vec<H256>, data: &[u8]) -> vm::Result<()> {
|
|
||||||
use types::log_entry::LogEntry;
|
|
||||||
|
|
||||||
if self.static_flag {
|
|
||||||
return Err(vm::Error::MutableCallInStaticContext);
|
|
||||||
}
|
|
||||||
|
|
||||||
let address = self.origin_info.address.clone();
|
|
||||||
self.substate.logs.push(LogEntry {
|
|
||||||
address: address,
|
|
||||||
topics: topics,
|
|
||||||
data: data.to_vec()
|
|
||||||
});
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn suicide(&mut self, refund_address: &Address) -> vm::Result<()> {
|
fn suicide(&mut self, refund_address: &Address) -> vm::Result<()> {
|
||||||
if self.static_flag {
|
if self.static_flag {
|
||||||
return Err(vm::Error::MutableCallInStaticContext);
|
return Err(vm::Error::MutableCallInStaticContext);
|
||||||
@ -430,19 +439,27 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B>
|
|||||||
fn trace_executed(&mut self, gas_used: U256, stack_push: &[U256], mem: &[u8]) {
|
fn trace_executed(&mut self, gas_used: U256, stack_push: &[U256], mem: &[u8]) {
|
||||||
self.vm_tracer.trace_executed(gas_used, stack_push, mem)
|
self.vm_tracer.trace_executed(gas_used, stack_push, mem)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_static(&self) -> bool {
|
||||||
|
return self.static_flag
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
use std::str::FromStr;
|
||||||
use ethereum_types::{U256, Address};
|
use ethereum_types::{U256, Address};
|
||||||
use evm::{EnvInfo, Ext, CallType};
|
use evm::{EnvInfo, Ext, CallType};
|
||||||
use account_state::State;
|
use account_state::State;
|
||||||
use substate::Substate;
|
use ethcore::test_helpers::get_temp_state;
|
||||||
use test_helpers::get_temp_state;
|
|
||||||
use super::*;
|
|
||||||
use trace::{NoopTracer, NoopVMTracer};
|
use trace::{NoopTracer, NoopVMTracer};
|
||||||
use std::str::FromStr;
|
|
||||||
use crate::spec;
|
use crate::{
|
||||||
|
machine::Machine,
|
||||||
|
substate::Substate,
|
||||||
|
test_helpers,
|
||||||
|
};
|
||||||
|
use super::*;
|
||||||
|
|
||||||
fn get_test_origin() -> OriginInfo {
|
fn get_test_origin() -> OriginInfo {
|
||||||
OriginInfo {
|
OriginInfo {
|
||||||
@ -467,7 +484,7 @@ mod tests {
|
|||||||
|
|
||||||
struct TestSetup {
|
struct TestSetup {
|
||||||
state: State<::state_db::StateDB>,
|
state: State<::state_db::StateDB>,
|
||||||
machine: ::machine::Machine,
|
machine: Machine,
|
||||||
schedule: Schedule,
|
schedule: Schedule,
|
||||||
sub_state: Substate,
|
sub_state: Substate,
|
||||||
env_info: EnvInfo
|
env_info: EnvInfo
|
||||||
@ -481,15 +498,15 @@ mod tests {
|
|||||||
|
|
||||||
impl TestSetup {
|
impl TestSetup {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
let machine = spec::new_test_machine();
|
let machine = test_helpers::load_machine(include_bytes!("../../res/null_morden.json"));
|
||||||
let env_info = get_test_env_info();
|
let env_info = get_test_env_info();
|
||||||
let schedule = machine.schedule(env_info.number);
|
let schedule = machine.schedule(env_info.number);
|
||||||
TestSetup {
|
TestSetup {
|
||||||
state: get_temp_state(),
|
state: get_temp_state(),
|
||||||
schedule: schedule,
|
schedule,
|
||||||
machine: machine,
|
machine,
|
||||||
sub_state: Substate::new(),
|
sub_state: Substate::new(),
|
||||||
env_info: env_info,
|
env_info,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
36
ethcore/machine/src/lib.rs
Normal file
36
ethcore/machine/src/lib.rs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// Copyright 2015-2019 Parity Technologies (UK) Ltd.
|
||||||
|
// This file is part of Parity Ethereum.
|
||||||
|
|
||||||
|
// Parity Ethereum is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// Parity Ethereum is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//! This crate provides a state machine and the facilities needed to execute transactions and the
|
||||||
|
//! code contained therein, as well as contract based transaction permissions. All ethereum
|
||||||
|
//! engines embed a `Machine`.
|
||||||
|
|
||||||
|
pub mod executed;
|
||||||
|
pub mod executed_block;
|
||||||
|
pub mod executive;
|
||||||
|
pub mod externalities;
|
||||||
|
pub mod machine;
|
||||||
|
pub mod substate;
|
||||||
|
pub mod transaction_ext;
|
||||||
|
pub mod tx_filter;
|
||||||
|
|
||||||
|
pub use crate::{
|
||||||
|
executed_block::ExecutedBlock,
|
||||||
|
machine::Machine
|
||||||
|
};
|
||||||
|
|
||||||
|
#[cfg(any(test, feature = "test-helpers"))]
|
||||||
|
pub mod test_helpers;
|
@ -22,7 +22,9 @@ use std::sync::Arc;
|
|||||||
|
|
||||||
use ethereum_types::{U256, H256, Address};
|
use ethereum_types::{U256, H256, Address};
|
||||||
use rlp::Rlp;
|
use rlp::Rlp;
|
||||||
use types::{
|
use log::debug;
|
||||||
|
|
||||||
|
use common_types::{
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
header::Header,
|
header::Header,
|
||||||
engines::{
|
engines::{
|
||||||
@ -35,15 +37,18 @@ use types::{
|
|||||||
use vm::{CallType, ActionParams, ActionValue, ParamsType};
|
use vm::{CallType, ActionParams, ActionValue, ParamsType};
|
||||||
use vm::{EnvInfo, Schedule};
|
use vm::{EnvInfo, Schedule};
|
||||||
|
|
||||||
use block::ExecutedBlock;
|
|
||||||
use builtin::Builtin;
|
|
||||||
use call_contract::CallContract;
|
|
||||||
use client::BlockInfo;
|
|
||||||
use executive::Executive;
|
|
||||||
use account_state::CleanupMode;
|
use account_state::CleanupMode;
|
||||||
use substate::Substate;
|
use client_traits::BlockInfo;
|
||||||
|
use ethcore_builtin::Builtin;
|
||||||
|
use ethcore_call_contract::CallContract;
|
||||||
use trace::{NoopTracer, NoopVMTracer};
|
use trace::{NoopTracer, NoopVMTracer};
|
||||||
use tx_filter::TransactionFilter;
|
|
||||||
|
use crate::{
|
||||||
|
executed_block::ExecutedBlock,
|
||||||
|
executive::Executive,
|
||||||
|
substate::Substate,
|
||||||
|
tx_filter::TransactionFilter,
|
||||||
|
};
|
||||||
|
|
||||||
/// Parity tries to round block.gas_limit to multiple of this constant
|
/// Parity tries to round block.gas_limit to multiple of this constant
|
||||||
pub const PARITY_GAS_LIMIT_DETERMINANT: U256 = U256([37, 0, 0, 0]);
|
pub const PARITY_GAS_LIMIT_DETERMINANT: U256 = U256([37, 0, 0, 0]);
|
||||||
@ -93,7 +98,7 @@ impl Machine {
|
|||||||
|
|
||||||
/// Execute a call as the system address. Block environment information passed to the
|
/// Execute a call as the system address. Block environment information passed to the
|
||||||
/// VM is modified to have its gas limit bounded at the upper limit of possible used
|
/// VM is modified to have its gas limit bounded at the upper limit of possible used
|
||||||
/// gases including this system call, capped at the maximum value able to be
|
/// gas, including this system call, capped at the maximum value able to be
|
||||||
/// represented by U256. This system call modifies the block state, but discards other
|
/// represented by U256. This system call modifies the block state, but discards other
|
||||||
/// information. If suicides, logs or refunds happen within the system call, they
|
/// information. If suicides, logs or refunds happen within the system call, they
|
||||||
/// will not be executed or recorded. Gas used by this system call will not be counted
|
/// will not be executed or recorded. Gas used by this system call will not be counted
|
||||||
@ -400,9 +405,10 @@ fn round_block_gas_limit(gas_limit: U256, lower_limit: U256, upper_limit: U256)
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use crate::spec;
|
use common_types::header::Header;
|
||||||
|
use super::*;
|
||||||
|
use ethcore::spec;
|
||||||
|
|
||||||
fn get_default_ethash_extensions() -> EthashExtensions {
|
fn get_default_ethash_extensions() -> EthashExtensions {
|
||||||
EthashExtensions {
|
EthashExtensions {
|
||||||
@ -425,7 +431,7 @@ mod tests {
|
|||||||
Default::default(),
|
Default::default(),
|
||||||
ethparams,
|
ethparams,
|
||||||
);
|
);
|
||||||
let mut header = ::types::header::Header::new();
|
let mut header = Header::new();
|
||||||
header.set_number(15);
|
header.set_number(15);
|
||||||
|
|
||||||
let res = machine.verify_transaction_basic(&transaction, &header);
|
let res = machine.verify_transaction_basic(&transaction, &header);
|
||||||
@ -445,8 +451,8 @@ mod tests {
|
|||||||
ethparams,
|
ethparams,
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut parent = ::types::header::Header::new();
|
let mut parent = Header::new();
|
||||||
let mut header = ::types::header::Header::new();
|
let mut header = Header::new();
|
||||||
header.set_number(1);
|
header.set_number(1);
|
||||||
|
|
||||||
// this test will work for this constant only
|
// this test will work for this constant only
|
@ -15,9 +15,10 @@
|
|||||||
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Execution environment substate.
|
//! Execution environment substate.
|
||||||
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use ethereum_types::Address;
|
use ethereum_types::Address;
|
||||||
use types::log_entry::LogEntry;
|
use common_types::log_entry::LogEntry;
|
||||||
|
|
||||||
/// State changes which should be applied in finalize,
|
/// State changes which should be applied in finalize,
|
||||||
/// after transaction is fully executed.
|
/// after transaction is fully executed.
|
||||||
@ -58,7 +59,7 @@ impl Substate {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use ethereum_types::Address;
|
use ethereum_types::Address;
|
||||||
use types::log_entry::LogEntry;
|
use common_types::log_entry::LogEntry;
|
||||||
use super::Substate;
|
use super::Substate;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
60
ethcore/machine/src/test_helpers.rs
Normal file
60
ethcore/machine/src/test_helpers.rs
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
// Copyright 2015-2019 Parity Technologies (UK) Ltd.
|
||||||
|
// This file is part of Parity Ethereum.
|
||||||
|
|
||||||
|
// Parity Ethereum is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// Parity Ethereum is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//! Provide facilities to create `Machine` instances for testing various networks.
|
||||||
|
|
||||||
|
use common_types::engines::params::CommonParams;
|
||||||
|
use ethjson;
|
||||||
|
use crate::Machine;
|
||||||
|
|
||||||
|
|
||||||
|
pub fn load_machine(reader: &[u8]) -> Machine {
|
||||||
|
let spec = ethjson::spec::Spec::load(reader).expect("chain spec is invalid");
|
||||||
|
|
||||||
|
let builtins = spec.accounts.builtins().into_iter().map(|p| (p.0.into(), From::from(p.1))).collect();
|
||||||
|
let params = CommonParams::from(spec.params);
|
||||||
|
|
||||||
|
if let ethjson::spec::Engine::Ethash(ref ethash) = spec.engine {
|
||||||
|
Machine::with_ethash_extensions(params, builtins, ethash.params.clone().into())
|
||||||
|
} else {
|
||||||
|
Machine::regular(params, builtins)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Create a new Foundation Frontier-era chain spec as though it never changes to Homestead.
|
||||||
|
pub fn new_frontier_test_machine() -> Machine { load_machine(include_bytes!("../../res/ethereum/frontier_test.json")) }
|
||||||
|
|
||||||
|
/// Create a new Foundation Homestead-era chain spec as though it never changed from Frontier.
|
||||||
|
pub fn new_homestead_test_machine() -> Machine { load_machine(include_bytes!("../../res/ethereum/homestead_test.json")) }
|
||||||
|
|
||||||
|
/// Create a new Foundation Homestead-EIP210-era chain spec as though it never changed from Homestead/Frontier.
|
||||||
|
pub fn new_eip210_test_machine() -> Machine { load_machine(include_bytes!("../../res/ethereum/eip210_test.json")) }
|
||||||
|
|
||||||
|
/// Create a new Foundation Byzantium era spec.
|
||||||
|
pub fn new_byzantium_test_machine() -> Machine { load_machine(include_bytes!("../../res/ethereum/byzantium_test.json")) }
|
||||||
|
|
||||||
|
/// Create a new Foundation Constantinople era spec.
|
||||||
|
pub fn new_constantinople_test_machine() -> Machine { load_machine(include_bytes!("../../res/ethereum/constantinople_test.json")) }
|
||||||
|
|
||||||
|
/// Create a new Foundation St. Peter's (Contantinople Fix) era spec.
|
||||||
|
pub fn new_constantinople_fix_test_machine() -> Machine { load_machine(include_bytes!("../../res/ethereum/st_peters_test.json")) }
|
||||||
|
|
||||||
|
/// Create a new Musicoin-MCIP3-era spec.
|
||||||
|
pub fn new_mcip3_test_machine() -> Machine { load_machine(include_bytes!("../../res/ethereum/mcip3_test.json")) }
|
||||||
|
|
||||||
|
/// Create new Kovan spec with wasm activated at certain block
|
||||||
|
pub fn new_kovan_wasm_test_machine() -> Machine { load_machine(include_bytes!("../../res/ethereum/kovan_wasm_test.json")) }
|
@ -17,7 +17,7 @@
|
|||||||
//! Ethereum transaction
|
//! Ethereum transaction
|
||||||
|
|
||||||
use evm::Schedule;
|
use evm::Schedule;
|
||||||
use types::transaction::{self, Action};
|
use common_types::transaction::{self, Action};
|
||||||
|
|
||||||
/// Extends transaction with gas verification method.
|
/// Extends transaction with gas verification method.
|
||||||
pub trait Transaction {
|
pub trait Transaction {
|
@ -16,22 +16,25 @@
|
|||||||
|
|
||||||
//! Smart contract based transaction filter.
|
//! Smart contract based transaction filter.
|
||||||
|
|
||||||
use ethereum_types::{H256, U256, Address};
|
|
||||||
use lru_cache::LruCache;
|
|
||||||
use ethabi::FunctionOutputDecoder;
|
use ethabi::FunctionOutputDecoder;
|
||||||
|
use ethabi_contract::use_contract;
|
||||||
|
use ethereum_types::{H256, U256, Address};
|
||||||
|
use log::{trace, error};
|
||||||
|
use lru_cache::LruCache;
|
||||||
|
|
||||||
use call_contract::CallContract;
|
use ethcore_call_contract::CallContract;
|
||||||
use client::{BlockId, BlockInfo};
|
use client_traits::BlockInfo;
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
use types::{
|
use common_types::{
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
|
ids::BlockId,
|
||||||
engines::params::CommonParams,
|
engines::params::CommonParams,
|
||||||
transaction::{Action, SignedTransaction}
|
transaction::{Action, SignedTransaction}
|
||||||
};
|
};
|
||||||
use hash::KECCAK_EMPTY;
|
use keccak_hash::KECCAK_EMPTY;
|
||||||
|
|
||||||
use_contract!(transact_acl_deprecated, "res/contracts/tx_acl_deprecated.json");
|
use_contract!(transact_acl_deprecated, "res/tx_acl_deprecated.json");
|
||||||
use_contract!(transact_acl, "res/contracts/tx_acl.json");
|
use_contract!(transact_acl, "res/tx_acl.json");
|
||||||
|
|
||||||
const MAX_CACHE_SIZE: usize = 4096;
|
const MAX_CACHE_SIZE: usize = 4096;
|
||||||
|
|
||||||
@ -146,21 +149,29 @@ impl TransactionFilter {
|
|||||||
mod test {
|
mod test {
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use spec::Spec;
|
|
||||||
use client::{BlockChainClient, Client, ClientConfig, BlockId};
|
|
||||||
use miner::Miner;
|
|
||||||
use ethereum_types::{U256, Address};
|
|
||||||
use io::IoChannel;
|
|
||||||
use ethkey::{Secret, KeyPair};
|
|
||||||
use super::TransactionFilter;
|
|
||||||
use types::transaction::{Transaction, Action};
|
|
||||||
use tempdir::TempDir;
|
use tempdir::TempDir;
|
||||||
use test_helpers;
|
use ethereum_types::{U256, Address};
|
||||||
|
|
||||||
|
use common_types::{
|
||||||
|
ids::BlockId,
|
||||||
|
transaction::{Transaction, Action}
|
||||||
|
};
|
||||||
|
use ethcore::{
|
||||||
|
client::{BlockChainClient, Client, ClientConfig},
|
||||||
|
spec::Spec,
|
||||||
|
miner::Miner,
|
||||||
|
test_helpers,
|
||||||
|
};
|
||||||
|
use ethkey::{Secret, KeyPair};
|
||||||
|
use ethcore_io::IoChannel;
|
||||||
|
|
||||||
|
use super::TransactionFilter;
|
||||||
|
|
||||||
/// Contract code: https://gist.github.com/VladLupashevskyi/84f18eabb1e4afadf572cf92af3e7e7f
|
/// Contract code: https://gist.github.com/VladLupashevskyi/84f18eabb1e4afadf572cf92af3e7e7f
|
||||||
#[test]
|
#[test]
|
||||||
fn transaction_filter() {
|
fn transaction_filter() {
|
||||||
let spec_data = include_str!("../res/tx_permission_tests/contract_ver_2_genesis.json");
|
let spec_data = include_str!("../../res/tx_permission_tests/contract_ver_2_genesis.json");
|
||||||
|
|
||||||
let db = test_helpers::new_db();
|
let db = test_helpers::new_db();
|
||||||
let tempdir = TempDir::new("").unwrap();
|
let tempdir = TempDir::new("").unwrap();
|
||||||
@ -239,7 +250,7 @@ mod test {
|
|||||||
/// Contract code: https://gist.github.com/arkpar/38a87cb50165b7e683585eec71acb05a
|
/// Contract code: https://gist.github.com/arkpar/38a87cb50165b7e683585eec71acb05a
|
||||||
#[test]
|
#[test]
|
||||||
fn transaction_filter_deprecated() {
|
fn transaction_filter_deprecated() {
|
||||||
let spec_data = include_str!("../res/tx_permission_tests/deprecated_contract_genesis.json");
|
let spec_data = include_str!("../../res/tx_permission_tests/deprecated_contract_genesis.json");
|
||||||
|
|
||||||
let db = test_helpers::new_db();
|
let db = test_helpers::new_db();
|
||||||
let tempdir = TempDir::new("").unwrap();
|
let tempdir = TempDir::new("").unwrap();
|
@ -7,6 +7,7 @@ version = "1.12.0"
|
|||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
common-types = { path = "../types" }
|
||||||
ethcore = { path = ".."}
|
ethcore = { path = ".."}
|
||||||
ethcore-network = { path = "../../util/network" }
|
ethcore-network = { path = "../../util/network" }
|
||||||
ethcore-network-devp2p = { path = "../../util/network-devp2p" }
|
ethcore-network-devp2p = { path = "../../util/network-devp2p" }
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
//! Smart contract based node filter.
|
//! Smart contract based node filter.
|
||||||
|
|
||||||
|
extern crate common_types;
|
||||||
extern crate ethabi;
|
extern crate ethabi;
|
||||||
extern crate ethcore;
|
extern crate ethcore;
|
||||||
extern crate ethcore_network as network;
|
extern crate ethcore_network as network;
|
||||||
@ -40,8 +41,8 @@ extern crate log;
|
|||||||
use std::collections::{HashMap, VecDeque};
|
use std::collections::{HashMap, VecDeque};
|
||||||
use std::sync::Weak;
|
use std::sync::Weak;
|
||||||
|
|
||||||
use ethcore::client::{BlockChainClient, BlockId, ChainNotify, NewBlocks};
|
use common_types::ids::BlockId;
|
||||||
|
use ethcore::client::{BlockChainClient, ChainNotify, NewBlocks};
|
||||||
use ethereum_types::{H256, Address};
|
use ethereum_types::{H256, Address};
|
||||||
use ethabi::FunctionOutputDecoder;
|
use ethabi::FunctionOutputDecoder;
|
||||||
use network::{ConnectionFilter, ConnectionDirection};
|
use network::{ConnectionFilter, ConnectionDirection};
|
||||||
@ -68,7 +69,7 @@ pub const CACHE_SIZE: usize = MAX_NODES_IN_TABLE + 1024;
|
|||||||
|
|
||||||
impl NodeFilter {
|
impl NodeFilter {
|
||||||
/// Create a new instance. Accepts a contract address.
|
/// Create a new instance. Accepts a contract address.
|
||||||
pub fn new(client: Weak<BlockChainClient>, contract_address: Address) -> NodeFilter {
|
pub fn new(client: Weak<dyn BlockChainClient>, contract_address: Address) -> NodeFilter {
|
||||||
NodeFilter {
|
NodeFilter {
|
||||||
client,
|
client,
|
||||||
contract_address,
|
contract_address,
|
||||||
|
@ -7,6 +7,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
account-state = { path = "../account-state" }
|
account-state = { path = "../account-state" }
|
||||||
|
client-traits = { path = "../client-traits" }
|
||||||
common-types = { path = "../types" }
|
common-types = { path = "../types" }
|
||||||
derive_more = "0.14.0"
|
derive_more = "0.14.0"
|
||||||
ethabi = "8.0"
|
ethabi = "8.0"
|
||||||
@ -24,6 +25,7 @@ futures = "0.1"
|
|||||||
parity-util-mem = "0.1"
|
parity-util-mem = "0.1"
|
||||||
keccak-hash = "0.2.0"
|
keccak-hash = "0.2.0"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
machine = { path = "../machine" }
|
||||||
parity-bytes = "0.1"
|
parity-bytes = "0.1"
|
||||||
parity-crypto = "0.4.0"
|
parity-crypto = "0.4.0"
|
||||||
parking_lot = "0.8"
|
parking_lot = "0.8"
|
||||||
|
@ -20,7 +20,7 @@ use std::sync::Arc;
|
|||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use ethereum_types::{H256, Address};
|
use ethereum_types::{H256, Address};
|
||||||
use call_contract::{CallContract, RegistryInfo};
|
use call_contract::{CallContract, RegistryInfo};
|
||||||
use ethcore::client::BlockId;
|
use types::ids::BlockId;
|
||||||
use ethabi::FunctionOutputDecoder;
|
use ethabi::FunctionOutputDecoder;
|
||||||
|
|
||||||
const ACL_CHECKER_CONTRACT_REGISTRY_NAME: &'static str = "secretstore_acl_checker";
|
const ACL_CHECKER_CONTRACT_REGISTRY_NAME: &'static str = "secretstore_acl_checker";
|
||||||
|
@ -24,6 +24,7 @@ mod error;
|
|||||||
mod log;
|
mod log;
|
||||||
|
|
||||||
extern crate account_state;
|
extern crate account_state;
|
||||||
|
extern crate client_traits;
|
||||||
extern crate common_types as types;
|
extern crate common_types as types;
|
||||||
extern crate ethabi;
|
extern crate ethabi;
|
||||||
extern crate ethcore;
|
extern crate ethcore;
|
||||||
@ -37,6 +38,7 @@ extern crate fetch;
|
|||||||
extern crate futures;
|
extern crate futures;
|
||||||
extern crate parity_util_mem;
|
extern crate parity_util_mem;
|
||||||
extern crate keccak_hash as hash;
|
extern crate keccak_hash as hash;
|
||||||
|
extern crate machine;
|
||||||
extern crate parity_bytes as bytes;
|
extern crate parity_bytes as bytes;
|
||||||
extern crate parity_crypto as crypto;
|
extern crate parity_crypto as crypto;
|
||||||
extern crate parking_lot;
|
extern crate parking_lot;
|
||||||
@ -87,14 +89,18 @@ use parking_lot::RwLock;
|
|||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use ethkey::{Signature, recover, public_to_address};
|
use ethkey::{Signature, recover, public_to_address};
|
||||||
use io::IoChannel;
|
use io::IoChannel;
|
||||||
use ethcore::executive::{Executive, TransactOptions};
|
use machine::{
|
||||||
use ethcore::executed::{Executed};
|
executive::{Executive, TransactOptions, contract_address as ethcore_contract_address},
|
||||||
use types::transaction::{SignedTransaction, Transaction, Action, UnverifiedTransaction};
|
executed::Executed,
|
||||||
use ethcore::{contract_address as ethcore_contract_address};
|
|
||||||
use ethcore::client::{
|
|
||||||
Client, ChainNotify, NewBlocks, ChainMessageType, ClientIoMessage, BlockId,
|
|
||||||
Call, BlockInfo
|
|
||||||
};
|
};
|
||||||
|
use types::{
|
||||||
|
ids::BlockId,
|
||||||
|
transaction::{SignedTransaction, Transaction, Action, UnverifiedTransaction}
|
||||||
|
};
|
||||||
|
use ethcore::client::{
|
||||||
|
Client, ChainNotify, NewBlocks, ChainMessageType, ClientIoMessage, Call
|
||||||
|
};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use ethcore::miner::{self, Miner, MinerService, pool_client::NonceCache};
|
use ethcore::miner::{self, Miner, MinerService, pool_client::NonceCache};
|
||||||
use state_db::StateDB;
|
use state_db::StateDB;
|
||||||
use account_state::State;
|
use account_state::State;
|
||||||
|
@ -24,6 +24,7 @@ extern crate ethcore_private_tx;
|
|||||||
extern crate ethkey;
|
extern crate ethkey;
|
||||||
extern crate keccak_hash as hash;
|
extern crate keccak_hash as hash;
|
||||||
extern crate rustc_hex;
|
extern crate rustc_hex;
|
||||||
|
extern crate machine;
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
extern crate log;
|
||||||
@ -33,13 +34,15 @@ use rustc_hex::{FromHex, ToHex};
|
|||||||
|
|
||||||
use types::ids::BlockId;
|
use types::ids::BlockId;
|
||||||
use types::transaction::{Transaction, Action};
|
use types::transaction::{Transaction, Action};
|
||||||
use ethcore::CreateContractAddress;
|
use ethcore::{
|
||||||
use ethcore::client::BlockChainClient;
|
CreateContractAddress,
|
||||||
use ethcore::executive::contract_address;
|
client::BlockChainClient,
|
||||||
use ethcore::miner::Miner;
|
test_helpers::{generate_dummy_client, push_block_with_transactions},
|
||||||
use ethcore::test_helpers::{generate_dummy_client, push_block_with_transactions};
|
miner::Miner,
|
||||||
use ethcore::spec;
|
spec,
|
||||||
|
};
|
||||||
use ethkey::{Secret, KeyPair, Signature};
|
use ethkey::{Secret, KeyPair, Signature};
|
||||||
|
use machine::executive::contract_address;
|
||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
|
|
||||||
use ethcore_private_tx::{NoopEncryptor, Provider, ProviderConfig, StoringKeyProvider};
|
use ethcore_private_tx::{NoopEncryptor, Provider, ProviderConfig, StoringKeyProvider};
|
||||||
|
@ -28,11 +28,10 @@
|
|||||||
//! `LockedBlock` is a version of a `ClosedBlock` that cannot be reopened. It can be sealed
|
//! `LockedBlock` is a version of a `ClosedBlock` that cannot be reopened. It can be sealed
|
||||||
//! using an engine.
|
//! using an engine.
|
||||||
//!
|
//!
|
||||||
//! `ExecutedBlock` is an underlying data structure used by all structs above to store block
|
//! `ExecutedBlock` from the `machine` crate is the underlying data structure used by all structs
|
||||||
//! related info.
|
//! above to store block related info.
|
||||||
|
|
||||||
use std::{cmp, ops};
|
use std::{cmp, ops};
|
||||||
use std::collections::HashSet;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
@ -45,7 +44,7 @@ use account_state::State;
|
|||||||
use trace::Tracing;
|
use trace::Tracing;
|
||||||
use triehash::ordered_trie_root;
|
use triehash::ordered_trie_root;
|
||||||
use unexpected::{Mismatch, OutOfBounds};
|
use unexpected::{Mismatch, OutOfBounds};
|
||||||
use vm::{EnvInfo, LastHashes};
|
use vm::LastHashes;
|
||||||
|
|
||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use rlp::{RlpStream, Encodable, encode_list};
|
use rlp::{RlpStream, Encodable, encode_list};
|
||||||
@ -57,6 +56,7 @@ use types::{
|
|||||||
receipt::{Receipt, TransactionOutcome},
|
receipt::{Receipt, TransactionOutcome},
|
||||||
};
|
};
|
||||||
use executive_state::ExecutiveState;
|
use executive_state::ExecutiveState;
|
||||||
|
use machine::ExecutedBlock;
|
||||||
|
|
||||||
/// Block that is ready for transactions to be added.
|
/// Block that is ready for transactions to be added.
|
||||||
///
|
///
|
||||||
@ -94,71 +94,6 @@ pub struct SealedBlock {
|
|||||||
block: ExecutedBlock,
|
block: ExecutedBlock,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// An internal type for a block's common elements.
|
|
||||||
#[derive(Clone)]
|
|
||||||
pub struct ExecutedBlock {
|
|
||||||
/// Executed block header.
|
|
||||||
pub header: Header,
|
|
||||||
/// Executed transactions.
|
|
||||||
pub transactions: Vec<SignedTransaction>,
|
|
||||||
/// Uncles.
|
|
||||||
pub uncles: Vec<Header>,
|
|
||||||
/// Transaction receipts.
|
|
||||||
pub receipts: Vec<Receipt>,
|
|
||||||
/// Hashes of already executed transactions.
|
|
||||||
pub transactions_set: HashSet<H256>,
|
|
||||||
/// Underlying state.
|
|
||||||
pub state: State<StateDB>,
|
|
||||||
/// Transaction traces.
|
|
||||||
pub traces: Tracing,
|
|
||||||
/// Hashes of last 256 blocks.
|
|
||||||
pub last_hashes: Arc<LastHashes>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ExecutedBlock {
|
|
||||||
/// Create a new block from the given `state`.
|
|
||||||
fn new(state: State<StateDB>, last_hashes: Arc<LastHashes>, tracing: bool) -> ExecutedBlock {
|
|
||||||
ExecutedBlock {
|
|
||||||
header: Default::default(),
|
|
||||||
transactions: Default::default(),
|
|
||||||
uncles: Default::default(),
|
|
||||||
receipts: Default::default(),
|
|
||||||
transactions_set: Default::default(),
|
|
||||||
state,
|
|
||||||
traces: if tracing {
|
|
||||||
Tracing::enabled()
|
|
||||||
} else {
|
|
||||||
Tracing::Disabled
|
|
||||||
},
|
|
||||||
last_hashes,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get the environment info concerning this block.
|
|
||||||
pub fn env_info(&self) -> EnvInfo {
|
|
||||||
// TODO: memoise.
|
|
||||||
EnvInfo {
|
|
||||||
number: self.header.number(),
|
|
||||||
author: self.header.author().clone(),
|
|
||||||
timestamp: self.header.timestamp(),
|
|
||||||
difficulty: self.header.difficulty().clone(),
|
|
||||||
last_hashes: self.last_hashes.clone(),
|
|
||||||
gas_used: self.receipts.last().map_or(U256::zero(), |r| r.gas_used),
|
|
||||||
gas_limit: self.header.gas_limit().clone(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get mutable access to a state.
|
|
||||||
pub fn state_mut(&mut self) -> &mut State<StateDB> {
|
|
||||||
&mut self.state
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get mutable reference to traces.
|
|
||||||
pub fn traces_mut(&mut self) -> &mut Tracing {
|
|
||||||
&mut self.traces
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Trait for an object that owns an `ExecutedBlock`
|
/// Trait for an object that owns an `ExecutedBlock`
|
||||||
pub trait Drain {
|
pub trait Drain {
|
||||||
/// Returns `ExecutedBlock`
|
/// Returns `ExecutedBlock`
|
||||||
|
@ -46,13 +46,18 @@ use client::{
|
|||||||
BlockChainReset
|
BlockChainReset
|
||||||
};
|
};
|
||||||
use client::{
|
use client::{
|
||||||
BlockId, TransactionId, UncleId, TraceId, ClientConfig, BlockChainClient,
|
ClientConfig, BlockChainClient,
|
||||||
TraceFilter, CallAnalytics, Mode,
|
TraceFilter, CallAnalytics, Mode,
|
||||||
ChainNotify, NewBlocks, ChainRoute, PruningInfo, ProvingBlockChainClient, EngineInfo, ChainMessageType,
|
ChainNotify, NewBlocks, ChainRoute, PruningInfo, ProvingBlockChainClient, EngineInfo, ChainMessageType,
|
||||||
IoClient, BadBlocks, bad_blocks, BlockInfo, ClientIoMessage,
|
IoClient, BadBlocks, bad_blocks, ClientIoMessage,
|
||||||
};
|
};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use engines::{Engine, EpochTransition, ForkChoice};
|
use engines::{Engine, EpochTransition, ForkChoice};
|
||||||
use executive::{Executive, Executed, TransactOptions, contract_address};
|
use machine::{
|
||||||
|
executed::Executed,
|
||||||
|
executive::{Executive, TransactOptions, contract_address},
|
||||||
|
transaction_ext::Transaction,
|
||||||
|
};
|
||||||
use trie_vm_factories::{Factories, VmFactory};
|
use trie_vm_factories::{Factories, VmFactory};
|
||||||
use miner::{Miner, MinerService};
|
use miner::{Miner, MinerService};
|
||||||
use snapshot::{self, io as snapshot_io, SnapshotClient};
|
use snapshot::{self, io as snapshot_io, SnapshotClient};
|
||||||
@ -61,7 +66,6 @@ use account_state::State;
|
|||||||
use executive_state;
|
use executive_state;
|
||||||
use state_db::StateDB;
|
use state_db::StateDB;
|
||||||
use trace::{self, TraceDB, ImportRequest as TraceImportRequest, LocalizedTrace, Database as TraceDatabase};
|
use trace::{self, TraceDB, ImportRequest as TraceImportRequest, LocalizedTrace, Database as TraceDatabase};
|
||||||
use transaction_ext::Transaction;
|
|
||||||
use types::{
|
use types::{
|
||||||
ancestry_action::AncestryAction,
|
ancestry_action::AncestryAction,
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
@ -74,6 +78,7 @@ use types::{
|
|||||||
machine::{AuxiliaryData, Call as MachineCall},
|
machine::{AuxiliaryData, Call as MachineCall},
|
||||||
},
|
},
|
||||||
errors::{EngineError, ExecutionError, BlockError, EthcoreError, SnapshotError, ImportError, EthcoreResult},
|
errors::{EngineError, ExecutionError, BlockError, EthcoreError, SnapshotError, ImportError, EthcoreResult},
|
||||||
|
ids::{BlockId, TransactionId, UncleId, TraceId},
|
||||||
transaction::{self, LocalizedTransaction, UnverifiedTransaction, SignedTransaction, Action, CallError},
|
transaction::{self, LocalizedTransaction, UnverifiedTransaction, SignedTransaction, Action, CallError},
|
||||||
filter::Filter,
|
filter::Filter,
|
||||||
log_entry::LocalizedLogEntry,
|
log_entry::LocalizedLogEntry,
|
||||||
@ -1759,7 +1764,7 @@ impl BlockChainClient for Client {
|
|||||||
self.config.spec_name.clone()
|
self.config.spec_name.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn chain(&self) -> Arc<BlockProvider> {
|
fn chain(&self) -> Arc<dyn BlockProvider> {
|
||||||
self.chain.read().clone()
|
self.chain.read().clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2652,20 +2657,27 @@ impl IoChannelQueue {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use ethereum_types::{H256, Address};
|
use ethereum_types::{H256, Address};
|
||||||
|
use client::{BlockChainClient, ChainInfo};
|
||||||
|
use types::{
|
||||||
|
encoded,
|
||||||
|
ids::{BlockId, TransactionId},
|
||||||
|
log_entry::{LogEntry, LocalizedLogEntry},
|
||||||
|
receipt::{Receipt, LocalizedReceipt, TransactionOutcome},
|
||||||
|
transaction::{Transaction, LocalizedTransaction, Action},
|
||||||
|
};
|
||||||
|
use test_helpers::{generate_dummy_client, get_good_dummy_block_hash, generate_dummy_client_with_data};
|
||||||
|
use std::thread;
|
||||||
|
use std::time::Duration;
|
||||||
|
use std::sync::Arc;
|
||||||
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
|
use kvdb::DBTransaction;
|
||||||
|
use blockchain::ExtrasInsert;
|
||||||
|
use hash::keccak;
|
||||||
|
use super::transaction_receipt;
|
||||||
|
use ethkey::KeyPair;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn should_not_cache_details_before_commit() {
|
fn should_not_cache_details_before_commit() {
|
||||||
use client::{BlockChainClient, ChainInfo};
|
|
||||||
use test_helpers::{generate_dummy_client, get_good_dummy_block_hash};
|
|
||||||
|
|
||||||
use std::thread;
|
|
||||||
use std::time::Duration;
|
|
||||||
use std::sync::Arc;
|
|
||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
|
||||||
use kvdb::DBTransaction;
|
|
||||||
use blockchain::ExtrasInsert;
|
|
||||||
use types::encoded;
|
|
||||||
|
|
||||||
let client = generate_dummy_client(0);
|
let client = generate_dummy_client(0);
|
||||||
let genesis = client.chain_info().best_block_hash;
|
let genesis = client.chain_info().best_block_hash;
|
||||||
let (new_hash, new_block) = get_good_dummy_block_hash();
|
let (new_hash, new_block) = get_good_dummy_block_hash();
|
||||||
@ -2693,9 +2705,6 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn should_return_block_receipts() {
|
fn should_return_block_receipts() {
|
||||||
use client::{BlockChainClient, BlockId, TransactionId};
|
|
||||||
use test_helpers::{generate_dummy_client_with_data};
|
|
||||||
|
|
||||||
let client = generate_dummy_client_with_data(2, 2, &[1.into(), 1.into()]);
|
let client = generate_dummy_client_with_data(2, 2, &[1.into(), 1.into()]);
|
||||||
let receipts = client.localized_block_receipts(BlockId::Latest).unwrap();
|
let receipts = client.localized_block_receipts(BlockId::Latest).unwrap();
|
||||||
|
|
||||||
@ -2719,13 +2728,6 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn should_return_correct_log_index() {
|
fn should_return_correct_log_index() {
|
||||||
use hash::keccak;
|
|
||||||
use super::transaction_receipt;
|
|
||||||
use ethkey::KeyPair;
|
|
||||||
use types::log_entry::{LogEntry, LocalizedLogEntry};
|
|
||||||
use types::receipt::{Receipt, LocalizedReceipt, TransactionOutcome};
|
|
||||||
use types::transaction::{Transaction, LocalizedTransaction, Action};
|
|
||||||
|
|
||||||
// given
|
// given
|
||||||
let key = KeyPair::from_secret_slice(keccak("test").as_bytes()).unwrap();
|
let key = KeyPair::from_secret_slice(keccak("test").as_bytes()).unwrap();
|
||||||
let secret = key.secret();
|
let secret = key.secret();
|
||||||
|
@ -21,7 +21,7 @@ use std::sync::Arc;
|
|||||||
use ethereum_types::{H256, U256, H160};
|
use ethereum_types::{H256, U256, H160};
|
||||||
use {trie_vm_factories, journaldb, trie, kvdb_memorydb};
|
use {trie_vm_factories, journaldb, trie, kvdb_memorydb};
|
||||||
use kvdb::{self, KeyValueDB};
|
use kvdb::{self, KeyValueDB};
|
||||||
use {state_db, client, executive, trace, db, spec};
|
use {state_db, client, trace, db, spec};
|
||||||
use pod::PodState;
|
use pod::PodState;
|
||||||
use types::{
|
use types::{
|
||||||
errors::EthcoreError,
|
errors::EthcoreError,
|
||||||
@ -35,7 +35,11 @@ use evm::{VMType, FinalizationResult};
|
|||||||
use vm::{self, ActionParams, CreateContractAddress};
|
use vm::{self, ActionParams, CreateContractAddress};
|
||||||
use ethtrie;
|
use ethtrie;
|
||||||
use account_state::{CleanupMode, State};
|
use account_state::{CleanupMode, State};
|
||||||
use substate::Substate;
|
use machine::{
|
||||||
|
executive,
|
||||||
|
substate::Substate,
|
||||||
|
};
|
||||||
|
|
||||||
use executive_state::ExecutiveState;
|
use executive_state::ExecutiveState;
|
||||||
|
|
||||||
/// EVM test Error.
|
/// EVM test Error.
|
||||||
|
@ -35,19 +35,18 @@ pub use self::io_message::ClientIoMessage;
|
|||||||
pub use self::test_client::{TestBlockChainClient, EachBlockWith, TestState};
|
pub use self::test_client::{TestBlockChainClient, EachBlockWith, TestState};
|
||||||
pub use self::chain_notify::{ChainNotify, NewBlocks, ChainRoute, ChainRouteType, ChainMessageType};
|
pub use self::chain_notify::{ChainNotify, NewBlocks, ChainRoute, ChainRouteType, ChainMessageType};
|
||||||
pub use self::traits::{
|
pub use self::traits::{
|
||||||
Nonce, Balance, ChainInfo, BlockInfo, ReopenBlock, PrepareOpenBlock, TransactionInfo, ScheduleInfo, ImportSealedBlock, BroadcastProposalBlock, ImportBlock,
|
Nonce, Balance, ChainInfo, ReopenBlock, PrepareOpenBlock, TransactionInfo, ScheduleInfo, ImportSealedBlock, BroadcastProposalBlock, ImportBlock,
|
||||||
StateOrBlock, StateClient, Call, EngineInfo, AccountData, BlockChain, BlockProducer, SealedBlockImporter, BadBlocks,
|
StateOrBlock, StateClient, Call, EngineInfo, AccountData, BlockChain, BlockProducer, SealedBlockImporter, BadBlocks,
|
||||||
BlockChainReset
|
BlockChainReset, BlockChainClient, EngineClient, ProvingBlockChainClient, IoClient
|
||||||
};
|
};
|
||||||
pub use account_state::state::StateInfo;
|
pub use account_state::state::StateInfo;
|
||||||
pub use self::traits::{BlockChainClient, EngineClient, ProvingBlockChainClient, IoClient};
|
|
||||||
|
|
||||||
pub use types::ids::*;
|
use types::{
|
||||||
pub use types::trace_filter::Filter as TraceFilter;
|
trace_filter::Filter as TraceFilter,
|
||||||
pub use types::pruning_info::PruningInfo;
|
pruning_info::PruningInfo,
|
||||||
pub use types::call_analytics::CallAnalytics;
|
call_analytics::CallAnalytics,
|
||||||
|
};
|
||||||
|
|
||||||
pub use executive::{Executed, Executive, TransactOptions};
|
|
||||||
pub use vm::{LastHashes, EnvInfo};
|
pub use vm::{LastHashes, EnvInfo};
|
||||||
|
|
||||||
pub use verification::VerifierType;
|
pub use verification::VerifierType;
|
||||||
|
@ -37,33 +37,37 @@ use kvdb_memorydb;
|
|||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use rlp::{Rlp, RlpStream};
|
use rlp::{Rlp, RlpStream};
|
||||||
use rustc_hex::FromHex;
|
use rustc_hex::FromHex;
|
||||||
use types::transaction::{self, Transaction, LocalizedTransaction, SignedTransaction, Action, CallError};
|
use types::{
|
||||||
use types::BlockNumber;
|
BlockNumber,
|
||||||
use types::basic_account::BasicAccount;
|
encoded,
|
||||||
use types::encoded;
|
ids::{BlockId, TransactionId, UncleId, TraceId},
|
||||||
use types::errors::{EthcoreError as Error, EthcoreResult};
|
basic_account::BasicAccount,
|
||||||
use types::filter::Filter;
|
errors::{EthcoreError as Error, EthcoreResult},
|
||||||
use types::header::Header;
|
transaction::{self, Transaction, LocalizedTransaction, SignedTransaction, Action, CallError},
|
||||||
use types::log_entry::LocalizedLogEntry;
|
filter::Filter,
|
||||||
use types::pruning_info::PruningInfo;
|
trace_filter::Filter as TraceFilter,
|
||||||
use types::receipt::{Receipt, LocalizedReceipt, TransactionOutcome};
|
call_analytics::CallAnalytics,
|
||||||
use types::view;
|
header::Header,
|
||||||
use types::views::BlockView;
|
log_entry::LocalizedLogEntry,
|
||||||
|
pruning_info::PruningInfo,
|
||||||
|
receipt::{Receipt, LocalizedReceipt, TransactionOutcome},
|
||||||
|
view,
|
||||||
|
views::BlockView,
|
||||||
|
};
|
||||||
use vm::Schedule;
|
use vm::Schedule;
|
||||||
|
|
||||||
use block::{OpenBlock, SealedBlock, ClosedBlock};
|
use block::{OpenBlock, SealedBlock, ClosedBlock};
|
||||||
use call_contract::{CallContract, RegistryInfo};
|
use call_contract::{CallContract, RegistryInfo};
|
||||||
use client::{
|
use client::{
|
||||||
Nonce, Balance, ChainInfo, ReopenBlock, TransactionInfo,
|
Nonce, Balance, ChainInfo, ReopenBlock, TransactionInfo,
|
||||||
PrepareOpenBlock, BlockChainClient, BlockChainInfo, BlockStatus, BlockId, Mode,
|
PrepareOpenBlock, BlockChainClient, BlockChainInfo, BlockStatus, Mode,
|
||||||
TransactionId, UncleId, TraceId, TraceFilter, LastHashes, CallAnalytics,
|
LastHashes, ProvingBlockChainClient, ScheduleInfo, ImportSealedBlock, BroadcastProposalBlock,
|
||||||
ProvingBlockChainClient, ScheduleInfo, ImportSealedBlock, BroadcastProposalBlock, ImportBlock, StateOrBlock,
|
ImportBlock, StateOrBlock, Call, StateClient, EngineInfo, AccountData, BlockChain, BlockProducer,
|
||||||
Call, StateClient, EngineInfo, AccountData, BlockChain, BlockProducer, SealedBlockImporter, IoClient,
|
SealedBlockImporter, IoClient, BadBlocks
|
||||||
BadBlocks
|
|
||||||
};
|
};
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
use executive::Executed;
|
use machine::executed::Executed;
|
||||||
use journaldb;
|
use journaldb;
|
||||||
use miner::{self, Miner, MinerService};
|
use miner::{self, Miner, MinerService};
|
||||||
use spec::{Spec, self};
|
use spec::{Spec, self};
|
||||||
@ -704,7 +708,7 @@ impl BlockChainClient for TestBlockChainClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn chain(&self) -> Arc<BlockProvider> {
|
fn chain(&self) -> Arc<dyn BlockProvider> {
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ use std::sync::Arc;
|
|||||||
use blockchain::{BlockReceipts, TreeRoute, BlockProvider};
|
use blockchain::{BlockReceipts, TreeRoute, BlockProvider};
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use call_contract::{CallContract, RegistryInfo};
|
use call_contract::{CallContract, RegistryInfo};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use ethcore_miner::pool::VerifiedTransaction;
|
use ethcore_miner::pool::VerifiedTransaction;
|
||||||
use ethereum_types::{H256, U256, Address};
|
use ethereum_types::{H256, U256, Address};
|
||||||
use evm::Schedule;
|
use evm::Schedule;
|
||||||
@ -49,7 +50,7 @@ use vm::LastHashes;
|
|||||||
use block::{OpenBlock, SealedBlock, ClosedBlock};
|
use block::{OpenBlock, SealedBlock, ClosedBlock};
|
||||||
use client::Mode;
|
use client::Mode;
|
||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
use executive::Executed;
|
use machine::executed::Executed;
|
||||||
use account_state::state::StateInfo;
|
use account_state::state::StateInfo;
|
||||||
use trace::LocalizedTrace;
|
use trace::LocalizedTrace;
|
||||||
use verification::queue::kind::blocks::Unverified; // todo this is reexported from common_types
|
use verification::queue::kind::blocks::Unverified; // todo this is reexported from common_types
|
||||||
@ -114,21 +115,6 @@ pub trait ChainInfo {
|
|||||||
fn chain_info(&self) -> BlockChainInfo;
|
fn chain_info(&self) -> BlockChainInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Provides various information on a block by it's ID
|
|
||||||
pub trait BlockInfo {
|
|
||||||
/// Get raw block header data by block id.
|
|
||||||
fn block_header(&self, id: BlockId) -> Option<encoded::Header>;
|
|
||||||
|
|
||||||
/// Get the best block header.
|
|
||||||
fn best_block_header(&self) -> Header;
|
|
||||||
|
|
||||||
/// Get raw block data by block header hash.
|
|
||||||
fn block(&self, id: BlockId) -> Option<encoded::Block>;
|
|
||||||
|
|
||||||
/// Get address code hash at given block's state.
|
|
||||||
fn code_hash(&self, address: &Address, id: BlockId) -> Option<H256>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Provides various information on a transaction by it's ID
|
/// Provides various information on a transaction by it's ID
|
||||||
pub trait TransactionInfo {
|
pub trait TransactionInfo {
|
||||||
/// Get the hash of block that contains the transaction, if any.
|
/// Get the hash of block that contains the transaction, if any.
|
||||||
@ -233,7 +219,8 @@ pub trait BlockChainClient : Sync + Send + AccountData + BlockChain + CallContra
|
|||||||
.expect("code will return Some if given BlockId::Latest; qed")
|
.expect("code will return Some if given BlockId::Latest; qed")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn chain(&self) -> Arc<BlockProvider>;
|
/// Get a reference to the `BlockProvider`.
|
||||||
|
fn chain(&self) -> Arc<dyn BlockProvider>;
|
||||||
|
|
||||||
/// Get block queue information.
|
/// Get block queue information.
|
||||||
fn queue_info(&self) -> BlockQueueInfo;
|
fn queue_info(&self) -> BlockQueueInfo;
|
||||||
|
@ -24,13 +24,15 @@ use std::sync::atomic::{AtomicUsize, AtomicBool, Ordering as AtomicOrdering};
|
|||||||
use std::sync::{Weak, Arc};
|
use std::sync::{Weak, Arc};
|
||||||
use std::time::{UNIX_EPOCH, Duration};
|
use std::time::{UNIX_EPOCH, Duration};
|
||||||
|
|
||||||
use block::*;
|
|
||||||
use client::EngineClient;
|
use client::EngineClient;
|
||||||
use engines::{Engine, Seal, ConstructedVerifier};
|
use engines::{Engine, Seal, ConstructedVerifier};
|
||||||
use engines::block_reward;
|
use engines::block_reward;
|
||||||
use engines::block_reward::{BlockRewardContract, RewardKind};
|
use engines::block_reward::{BlockRewardContract, RewardKind};
|
||||||
use ethjson;
|
use ethjson;
|
||||||
use machine::Machine;
|
use machine::{
|
||||||
|
ExecutedBlock,
|
||||||
|
Machine,
|
||||||
|
};
|
||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use super::signer::EngineSigner;
|
use super::signer::EngineSigner;
|
||||||
use super::validator_set::{ValidatorSet, SimpleList, new_validator_set};
|
use super::validator_set::{ValidatorSet, SimpleList, new_validator_set};
|
||||||
|
@ -20,12 +20,14 @@ use std::sync::Weak;
|
|||||||
use ethereum_types::{H256, H520};
|
use ethereum_types::{H256, H520};
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use ethkey::{self, Signature};
|
use ethkey::{self, Signature};
|
||||||
use block::*;
|
|
||||||
use engines::{Engine, Seal, ConstructedVerifier};
|
use engines::{Engine, Seal, ConstructedVerifier};
|
||||||
use engines::signer::EngineSigner;
|
use engines::signer::EngineSigner;
|
||||||
use ethjson;
|
use ethjson;
|
||||||
use client::EngineClient;
|
use client::EngineClient;
|
||||||
use machine::Machine;
|
use machine::{
|
||||||
|
Machine,
|
||||||
|
executed_block::ExecutedBlock,
|
||||||
|
};
|
||||||
use types::{
|
use types::{
|
||||||
header::Header,
|
header::Header,
|
||||||
engines::{
|
engines::{
|
||||||
|
@ -22,7 +22,7 @@ use ethereum_types::{Address, U256};
|
|||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use machine::Machine;
|
use machine::{Machine, ExecutedBlock};
|
||||||
use trace;
|
use trace;
|
||||||
use types::{
|
use types::{
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
@ -30,7 +30,6 @@ use types::{
|
|||||||
};
|
};
|
||||||
use super::{SystemOrCodeCall, SystemOrCodeCallKind};
|
use super::{SystemOrCodeCall, SystemOrCodeCallKind};
|
||||||
use trace::{Tracer, ExecutiveTracer, Tracing};
|
use trace::{Tracer, ExecutiveTracer, Tracing};
|
||||||
use block::ExecutedBlock;
|
|
||||||
|
|
||||||
use_contract!(block_reward_contract, "res/contracts/block_reward.json");
|
use_contract!(block_reward_contract, "res/contracts/block_reward.json");
|
||||||
|
|
||||||
|
@ -65,8 +65,7 @@ use std::thread;
|
|||||||
use std::time;
|
use std::time;
|
||||||
use std::time::{Instant, Duration, SystemTime, UNIX_EPOCH};
|
use std::time::{Instant, Duration, SystemTime, UNIX_EPOCH};
|
||||||
|
|
||||||
use block::ExecutedBlock;
|
use client::EngineClient;
|
||||||
use client::{BlockId, EngineClient};
|
|
||||||
use engines::clique::util::{extract_signers, recover_creator};
|
use engines::clique::util::{extract_signers, recover_creator};
|
||||||
use engines::{Engine, Seal, SealingState, EthashSeal};
|
use engines::{Engine, Seal, SealingState, EthashSeal};
|
||||||
use ethereum_types::{Address, H64, H160, H256, U256};
|
use ethereum_types::{Address, H64, H160, H256, U256};
|
||||||
@ -74,7 +73,10 @@ use ethkey::Signature;
|
|||||||
use hash::KECCAK_EMPTY_LIST_RLP;
|
use hash::KECCAK_EMPTY_LIST_RLP;
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use lru_cache::LruCache;
|
use lru_cache::LruCache;
|
||||||
use machine::Machine;
|
use machine::{
|
||||||
|
ExecutedBlock,
|
||||||
|
Machine,
|
||||||
|
};
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
use super::signer::EngineSigner;
|
use super::signer::EngineSigner;
|
||||||
@ -82,6 +84,7 @@ use unexpected::{Mismatch, OutOfBounds};
|
|||||||
use time_utils::CheckedSystemTime;
|
use time_utils::CheckedSystemTime;
|
||||||
use types::{
|
use types::{
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
|
ids::BlockId,
|
||||||
header::Header,
|
header::Header,
|
||||||
engines::{
|
engines::{
|
||||||
params::CommonParams,
|
params::CommonParams,
|
||||||
|
@ -32,11 +32,13 @@ use types::{
|
|||||||
|
|
||||||
use unexpected::{OutOfBounds, Mismatch};
|
use unexpected::{OutOfBounds, Mismatch};
|
||||||
|
|
||||||
use block::ExecutedBlock;
|
|
||||||
use engines::block_reward::{self, BlockRewardContract, RewardKind};
|
use engines::block_reward::{self, BlockRewardContract, RewardKind};
|
||||||
use engines::{self, Engine};
|
use engines::{self, Engine};
|
||||||
use ethash::{self, quick_get_difficulty, slow_hash_block_number, EthashManager, OptimizeFor};
|
use ethash::{self, quick_get_difficulty, slow_hash_block_number, EthashManager, OptimizeFor};
|
||||||
use machine::Machine;
|
use machine::{
|
||||||
|
ExecutedBlock,
|
||||||
|
Machine,
|
||||||
|
};
|
||||||
|
|
||||||
/// Number of blocks in an ethash snapshot.
|
/// Number of blocks in an ethash snapshot.
|
||||||
// make dependent on difficulty increment divisor?
|
// make dependent on difficulty increment divisor?
|
||||||
|
@ -15,7 +15,10 @@
|
|||||||
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
use engines::{Engine, Seal};
|
use engines::{Engine, Seal};
|
||||||
use machine::Machine;
|
use machine::{
|
||||||
|
ExecutedBlock,
|
||||||
|
Machine
|
||||||
|
};
|
||||||
use types::{
|
use types::{
|
||||||
header::Header,
|
header::Header,
|
||||||
engines::{
|
engines::{
|
||||||
@ -25,7 +28,6 @@ use types::{
|
|||||||
errors::EthcoreError as Error,
|
errors::EthcoreError as Error,
|
||||||
};
|
};
|
||||||
|
|
||||||
use block::ExecutedBlock;
|
|
||||||
|
|
||||||
/// `InstantSeal` params.
|
/// `InstantSeal` params.
|
||||||
#[derive(Default, Debug, PartialEq)]
|
#[derive(Default, Debug, PartialEq)]
|
||||||
|
@ -60,11 +60,13 @@ use types::{
|
|||||||
use snapshot::SnapshotComponents;
|
use snapshot::SnapshotComponents;
|
||||||
use client::EngineClient;
|
use client::EngineClient;
|
||||||
|
|
||||||
use ethkey::{Signature};
|
use ethkey::Signature;
|
||||||
use machine::Machine;
|
use machine::{
|
||||||
|
Machine,
|
||||||
|
executed_block::ExecutedBlock,
|
||||||
|
};
|
||||||
use ethereum_types::{H256, U256, Address};
|
use ethereum_types::{H256, U256, Address};
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use block::ExecutedBlock;
|
|
||||||
|
|
||||||
/// Seal type.
|
/// Seal type.
|
||||||
#[derive(Debug, PartialEq, Eq)]
|
#[derive(Debug, PartialEq, Eq)]
|
||||||
@ -91,7 +93,7 @@ pub enum SystemOrCodeCallKind {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Default SystemOrCodeCall implementation.
|
/// Default SystemOrCodeCall implementation.
|
||||||
pub fn default_system_or_code_call<'a>(machine: &'a Machine, block: &'a mut ::block::ExecutedBlock) -> impl FnMut(SystemOrCodeCallKind, Vec<u8>) -> Result<Vec<u8>, String> + 'a {
|
pub fn default_system_or_code_call<'a>(machine: &'a Machine, block: &'a mut ExecutedBlock) -> impl FnMut(SystemOrCodeCallKind, Vec<u8>) -> Result<Vec<u8>, String> + 'a {
|
||||||
move |to, data| {
|
move |to, data| {
|
||||||
let result = match to {
|
let result = match to {
|
||||||
SystemOrCodeCallKind::Address(address) => {
|
SystemOrCodeCallKind::Address(address) => {
|
||||||
|
@ -17,14 +17,16 @@
|
|||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
use engines::block_reward::{self, RewardKind};
|
use engines::block_reward::{self, RewardKind};
|
||||||
use ethereum_types::U256;
|
use ethereum_types::U256;
|
||||||
use machine::Machine;
|
use machine::{
|
||||||
|
ExecutedBlock,
|
||||||
|
Machine,
|
||||||
|
};
|
||||||
use types::{
|
use types::{
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
header::Header,
|
header::Header,
|
||||||
engines::params::CommonParams,
|
engines::params::CommonParams,
|
||||||
errors::EthcoreError as Error,
|
errors::EthcoreError as Error,
|
||||||
};
|
};
|
||||||
use block::ExecutedBlock;
|
|
||||||
|
|
||||||
/// Params for a null engine.
|
/// Params for a null engine.
|
||||||
#[derive(Clone, Default)]
|
#[derive(Clone, Default)]
|
||||||
|
@ -152,7 +152,7 @@ mod tests {
|
|||||||
use test_helpers::generate_dummy_client_with_spec;
|
use test_helpers::generate_dummy_client_with_spec;
|
||||||
use call_contract::CallContract;
|
use call_contract::CallContract;
|
||||||
use client::{BlockChainClient, ChainInfo};
|
use client::{BlockChainClient, ChainInfo};
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use super::super::ValidatorSet;
|
use super::super::ValidatorSet;
|
||||||
use super::ValidatorContract;
|
use super::ValidatorContract;
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ mod tests {
|
|||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use accounts::AccountProvider;
|
use accounts::AccountProvider;
|
||||||
use client::{BlockChainClient, ChainInfo, ImportBlock};
|
use client::{BlockChainClient, ChainInfo, ImportBlock};
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use engines::EpochChange;
|
use engines::EpochChange;
|
||||||
use engines::validator_set::ValidatorSet;
|
use engines::validator_set::ValidatorSet;
|
||||||
use ethkey::Secret;
|
use ethkey::Secret;
|
||||||
|
@ -458,7 +458,7 @@ mod tests {
|
|||||||
use accounts::AccountProvider;
|
use accounts::AccountProvider;
|
||||||
use types::transaction::{Transaction, Action};
|
use types::transaction::{Transaction, Action};
|
||||||
use client::{ChainInfo, ImportBlock};
|
use client::{ChainInfo, ImportBlock};
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use ethkey::Secret;
|
use ethkey::Secret;
|
||||||
use miner::{self, MinerService};
|
use miner::{self, MinerService};
|
||||||
use test_helpers::{generate_dummy_client_with_spec, generate_dummy_client_with_spec_and_data};
|
use test_helpers::{generate_dummy_client_with_spec, generate_dummy_client_with_spec_and_data};
|
||||||
|
@ -18,10 +18,12 @@
|
|||||||
//! `account-state` crates and contains everything that requires `Machine` or `Executive` (or types
|
//! `account-state` crates and contains everything that requires `Machine` or `Executive` (or types
|
||||||
//! thereof).
|
//! thereof).
|
||||||
|
|
||||||
use machine::Machine;
|
use machine::{
|
||||||
|
machine::Machine,
|
||||||
|
executive::{Executive, TransactOptions},
|
||||||
|
executed::Executed,
|
||||||
|
};
|
||||||
use vm::EnvInfo;
|
use vm::EnvInfo;
|
||||||
use executive::{Executive, TransactOptions};
|
|
||||||
use executed::Executed;
|
|
||||||
use types::{
|
use types::{
|
||||||
errors::{ExecutionError, EthcoreError as Error},
|
errors::{ExecutionError, EthcoreError as Error},
|
||||||
transaction::SignedTransaction,
|
transaction::SignedTransaction,
|
||||||
|
@ -18,24 +18,27 @@ use std::path::Path;
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use super::test_common::*;
|
use super::test_common::*;
|
||||||
use account_state::{Backend as StateBackend, State};
|
use account_state::{Backend as StateBackend, State};
|
||||||
use substate::Substate;
|
|
||||||
use executive::*;
|
|
||||||
use evm::{VMType, Finalize};
|
use evm::{VMType, Finalize};
|
||||||
use vm::{
|
use vm::{
|
||||||
self, ActionParams, CallType, Schedule, Ext,
|
self, ActionParams, CallType, Schedule, Ext,
|
||||||
ContractCreateResult, EnvInfo, MessageCallResult,
|
ContractCreateResult, EnvInfo, MessageCallResult,
|
||||||
CreateContractAddress, ReturnData,
|
CreateContractAddress, ReturnData,
|
||||||
};
|
};
|
||||||
use externalities::*;
|
use machine::{
|
||||||
|
Machine,
|
||||||
|
externalities::{OutputPolicy, OriginInfo, Externalities},
|
||||||
|
substate::Substate,
|
||||||
|
executive::contract_address,
|
||||||
|
test_helpers::new_frontier_test_machine,
|
||||||
|
};
|
||||||
|
|
||||||
use test_helpers::get_temp_state;
|
use test_helpers::get_temp_state;
|
||||||
use ethjson;
|
use ethjson;
|
||||||
use trace::{Tracer, NoopTracer};
|
use trace::{Tracer, NoopTracer, VMTracer, NoopVMTracer};
|
||||||
use trace::{VMTracer, NoopVMTracer};
|
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use ethtrie;
|
use ethtrie;
|
||||||
use rlp::RlpStream;
|
use rlp::RlpStream;
|
||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use machine::Machine;
|
|
||||||
use ethereum_types::BigEndianHash;
|
use ethereum_types::BigEndianHash;
|
||||||
use crate::spec;
|
use crate::spec;
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ use types::{
|
|||||||
errors::EthcoreError as Error,
|
errors::EthcoreError as Error,
|
||||||
transaction::UnverifiedTransaction
|
transaction::UnverifiedTransaction
|
||||||
};
|
};
|
||||||
use transaction_ext::Transaction;
|
use machine::transaction_ext::Transaction;
|
||||||
|
|
||||||
/// Run transaction jsontests on a given folder.
|
/// Run transaction jsontests on a given folder.
|
||||||
pub fn run_test_path<H: FnMut(&str, HookType)>(p: &Path, skip: &[&'static str], h: &mut H) {
|
pub fn run_test_path<H: FnMut(&str, HookType)>(p: &Path, skip: &[&'static str], h: &mut H) {
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
extern crate account_db;
|
extern crate account_db;
|
||||||
extern crate account_state;
|
extern crate account_state;
|
||||||
extern crate ansi_term;
|
extern crate ansi_term;
|
||||||
|
extern crate client_traits;
|
||||||
extern crate common_types as types;
|
extern crate common_types as types;
|
||||||
extern crate crossbeam_utils;
|
extern crate crossbeam_utils;
|
||||||
extern crate ethabi;
|
extern crate ethabi;
|
||||||
@ -83,6 +84,7 @@ extern crate kvdb_memorydb;
|
|||||||
|
|
||||||
extern crate len_caching_lock;
|
extern crate len_caching_lock;
|
||||||
extern crate lru_cache;
|
extern crate lru_cache;
|
||||||
|
extern crate machine;
|
||||||
extern crate memory_cache;
|
extern crate memory_cache;
|
||||||
extern crate num_cpus;
|
extern crate num_cpus;
|
||||||
extern crate parity_bytes as bytes;
|
extern crate parity_bytes as bytes;
|
||||||
@ -125,8 +127,6 @@ extern crate env_logger;
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
extern crate serde_json;
|
extern crate serde_json;
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate ethabi_derive;
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate ethabi_contract;
|
extern crate ethabi_contract;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
@ -152,20 +152,12 @@ extern crate parity_runtime;
|
|||||||
pub mod block;
|
pub mod block;
|
||||||
pub mod client;
|
pub mod client;
|
||||||
pub mod engines;
|
pub mod engines;
|
||||||
pub mod executed;
|
|
||||||
pub mod executive;
|
|
||||||
pub mod executive_state;
|
pub mod executive_state;
|
||||||
pub mod machine;
|
|
||||||
pub mod miner;
|
pub mod miner;
|
||||||
pub mod snapshot;
|
pub mod snapshot;
|
||||||
pub mod spec;
|
pub mod spec;
|
||||||
pub mod verification;
|
pub mod verification;
|
||||||
|
|
||||||
mod externalities;
|
|
||||||
mod substate;
|
|
||||||
mod transaction_ext;
|
|
||||||
mod tx_filter;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests;
|
mod tests;
|
||||||
#[cfg(feature = "json-tests")]
|
#[cfg(feature = "json-tests")]
|
||||||
@ -173,6 +165,5 @@ pub mod json_tests;
|
|||||||
#[cfg(any(test, feature = "test-helpers"))]
|
#[cfg(any(test, feature = "test-helpers"))]
|
||||||
pub mod test_helpers;
|
pub mod test_helpers;
|
||||||
|
|
||||||
pub use executive::contract_address;
|
|
||||||
pub use evm::CreateContractAddress;
|
pub use evm::CreateContractAddress;
|
||||||
pub use trie::TrieSpec;
|
pub use trie::TrieSpec;
|
||||||
|
@ -45,8 +45,10 @@ use types::transaction::{
|
|||||||
};
|
};
|
||||||
use types::{
|
use types::{
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
|
ids::TransactionId,
|
||||||
block::Block,
|
block::Block,
|
||||||
header::Header,
|
header::Header,
|
||||||
|
ids::BlockId,
|
||||||
engines::{SealingState},
|
engines::{SealingState},
|
||||||
errors::{EthcoreError as Error, ExecutionError},
|
errors::{EthcoreError as Error, ExecutionError},
|
||||||
receipt::RichReceipt,
|
receipt::RichReceipt,
|
||||||
@ -55,11 +57,10 @@ use using_queue::{UsingQueue, GetAction};
|
|||||||
|
|
||||||
use block::{ClosedBlock, SealedBlock};
|
use block::{ClosedBlock, SealedBlock};
|
||||||
use client::{
|
use client::{
|
||||||
BlockChain, ChainInfo, BlockProducer, SealedBlockImporter, Nonce, TransactionInfo, TransactionId, ClientIoMessage,
|
BlockChain, ChainInfo, BlockProducer, SealedBlockImporter, Nonce, TransactionInfo, ClientIoMessage,
|
||||||
};
|
};
|
||||||
use client::BlockId;
|
|
||||||
use engines::{Engine, Seal, EngineSigner};
|
use engines::{Engine, Seal, EngineSigner};
|
||||||
use executive::contract_address;
|
use machine::executive::contract_address;
|
||||||
use spec::Spec;
|
use spec::Spec;
|
||||||
use account_state::State;
|
use account_state::State;
|
||||||
use vm::CreateContractAddress;
|
use vm::CreateContractAddress;
|
||||||
|
@ -32,15 +32,18 @@ use types::transaction::{
|
|||||||
UnverifiedTransaction,
|
UnverifiedTransaction,
|
||||||
SignedTransaction,
|
SignedTransaction,
|
||||||
};
|
};
|
||||||
use types::header::Header;
|
use types::{
|
||||||
|
header::Header,
|
||||||
|
ids::TransactionId,
|
||||||
|
};
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
|
|
||||||
use call_contract::CallContract;
|
use call_contract::CallContract;
|
||||||
use client::{TransactionId, Nonce};
|
use client::Nonce;
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
|
use machine::transaction_ext::Transaction;
|
||||||
use miner;
|
use miner;
|
||||||
use transaction_ext::Transaction;
|
|
||||||
|
|
||||||
/// Cache for state nonces.
|
/// Cache for state nonces.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
|
@ -28,7 +28,8 @@ use super::{ManifestData, StateRebuilder, Rebuilder, RestorationStatus, Snapshot
|
|||||||
use super::io::{SnapshotReader, LooseReader, SnapshotWriter, LooseWriter};
|
use super::io::{SnapshotReader, LooseReader, SnapshotWriter, LooseWriter};
|
||||||
|
|
||||||
use blockchain::{BlockChain, BlockChainDB, BlockChainDBHandler};
|
use blockchain::{BlockChain, BlockChainDB, BlockChainDBHandler};
|
||||||
use client::{BlockChainClient, Client, ChainInfo, BlockInfo, ClientIoMessage};
|
use client::{BlockChainClient, Client, ChainInfo, ClientIoMessage};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use types::{
|
use types::{
|
||||||
|
@ -22,7 +22,7 @@ use std::sync::Arc;
|
|||||||
use tempdir::TempDir;
|
use tempdir::TempDir;
|
||||||
use blockchain::BlockProvider;
|
use blockchain::BlockProvider;
|
||||||
use client::{Client, ClientConfig, ImportBlock};
|
use client::{Client, ClientConfig, ImportBlock};
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use types::ids::BlockId;
|
use types::ids::BlockId;
|
||||||
use snapshot::io::{PackedReader, PackedWriter, SnapshotReader, SnapshotWriter};
|
use snapshot::io::{PackedReader, PackedWriter, SnapshotReader, SnapshotWriter};
|
||||||
use snapshot::service::{Service, ServiceParams};
|
use snapshot::service::{Service, ServiceParams};
|
||||||
|
@ -17,7 +17,8 @@
|
|||||||
//! Watcher for snapshot-related chain events.
|
//! Watcher for snapshot-related chain events.
|
||||||
|
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
use client::{BlockInfo, Client, ChainNotify, NewBlocks, ClientIoMessage};
|
use client::{Client, ChainNotify, NewBlocks, ClientIoMessage};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use types::ids::BlockId;
|
use types::ids::BlockId;
|
||||||
|
|
||||||
use io::IoChannel;
|
use io::IoChannel;
|
||||||
|
@ -14,9 +14,7 @@
|
|||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Ethereum protocol module.
|
//! Load chain specifications for all chains supported by the parity-ethereum client.
|
||||||
//!
|
|
||||||
//! Loads all protocols supported by parity-ethereum client.
|
|
||||||
|
|
||||||
macro_rules! bundle_release_spec {
|
macro_rules! bundle_release_spec {
|
||||||
($($path: expr => $name: ident), *) => {
|
($($path: expr => $name: ident), *) => {
|
||||||
|
@ -43,14 +43,16 @@ use engines::{
|
|||||||
Engine, NullEngine, InstantSeal, InstantSealParams, BasicAuthority, Clique,
|
Engine, NullEngine, InstantSeal, InstantSealParams, BasicAuthority, Clique,
|
||||||
AuthorityRound, Ethash,
|
AuthorityRound, Ethash,
|
||||||
};
|
};
|
||||||
use executive::Executive;
|
use machine::{
|
||||||
|
executive::Executive,
|
||||||
|
machine::Machine,
|
||||||
|
substate::Substate,
|
||||||
|
};
|
||||||
use trie_vm_factories::Factories;
|
use trie_vm_factories::Factories;
|
||||||
use machine::Machine;
|
|
||||||
use pod::PodState;
|
use pod::PodState;
|
||||||
use spec::Genesis;
|
use spec::Genesis;
|
||||||
use spec::seal::Generic as GenericSeal;
|
use spec::seal::Generic as GenericSeal;
|
||||||
use account_state::{Backend, State, backend::Basic as BasicBackend};
|
use account_state::{Backend, State, backend::Basic as BasicBackend};
|
||||||
use substate::Substate;
|
|
||||||
use trace::{NoopTracer, NoopVMTracer};
|
use trace::{NoopTracer, NoopVMTracer};
|
||||||
|
|
||||||
pub use ethash::OptimizeFor;
|
pub use ethash::OptimizeFor;
|
||||||
@ -96,7 +98,7 @@ impl<'a, T: AsRef<Path>> From<&'a T> for SpecParams<'a> {
|
|||||||
fn run_constructors<T: Backend>(
|
fn run_constructors<T: Backend>(
|
||||||
genesis_state: &PodState,
|
genesis_state: &PodState,
|
||||||
constructors: &[(Address, Bytes)],
|
constructors: &[(Address, Bytes)],
|
||||||
engine: &Engine,
|
engine: &dyn Engine,
|
||||||
author: Address,
|
author: Address,
|
||||||
timestamp: u64,
|
timestamp: u64,
|
||||||
difficulty: U256,
|
difficulty: U256,
|
||||||
|
@ -22,15 +22,18 @@ use ethkey::KeyPair;
|
|||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use io::IoChannel;
|
use io::IoChannel;
|
||||||
use tempdir::TempDir;
|
use tempdir::TempDir;
|
||||||
use types::transaction::{PendingTransaction, Transaction, Action, Condition};
|
use types::{
|
||||||
use types::filter::Filter;
|
ids::BlockId,
|
||||||
use types::view;
|
transaction::{PendingTransaction, Transaction, Action, Condition},
|
||||||
use types::views::BlockView;
|
filter::Filter,
|
||||||
|
view,
|
||||||
|
views::BlockView,
|
||||||
|
};
|
||||||
|
|
||||||
use client::{BlockChainClient, BlockChainReset, Client, ClientConfig, BlockId, ChainInfo, PrepareOpenBlock, ImportSealedBlock, ImportBlock};
|
use client::{BlockChainClient, BlockChainReset, Client, ClientConfig, ChainInfo, PrepareOpenBlock, ImportSealedBlock, ImportBlock};
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use crate::spec;
|
use crate::spec;
|
||||||
use executive::{Executive, TransactOptions};
|
use machine::executive::{Executive, TransactOptions};
|
||||||
use miner::{Miner, PendingOrdering, MinerService};
|
use miner::{Miner, PendingOrdering, MinerService};
|
||||||
use account_state::{State, CleanupMode, backend};
|
use account_state::{State, CleanupMode, backend};
|
||||||
use test_helpers::{
|
use test_helpers::{
|
||||||
|
@ -20,8 +20,11 @@ use std::sync::Arc;
|
|||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use vm::{EnvInfo, ActionParams, ActionValue, CallType, ParamsType};
|
use vm::{EnvInfo, ActionParams, ActionValue, CallType, ParamsType};
|
||||||
use evm::{Factory, VMType};
|
use evm::{Factory, VMType};
|
||||||
use executive::Executive;
|
use machine::{
|
||||||
use substate::Substate;
|
executive::Executive,
|
||||||
|
substate::Substate,
|
||||||
|
test_helpers::new_eip210_test_machine,
|
||||||
|
};
|
||||||
use test_helpers::get_temp_state_with_factory;
|
use test_helpers::get_temp_state_with_factory;
|
||||||
use trace::{NoopVMTracer, NoopTracer};
|
use trace::{NoopVMTracer, NoopTracer};
|
||||||
use types::transaction::SYSTEM_ADDRESS;
|
use types::transaction::SYSTEM_ADDRESS;
|
||||||
@ -29,7 +32,6 @@ use types::transaction::SYSTEM_ADDRESS;
|
|||||||
use rustc_hex::FromHex;
|
use rustc_hex::FromHex;
|
||||||
|
|
||||||
use ethereum_types::{H256, Address};
|
use ethereum_types::{H256, Address};
|
||||||
use crate::spec;
|
|
||||||
|
|
||||||
evm_test!{test_blockhash_eip210: test_blockhash_eip210_int}
|
evm_test!{test_blockhash_eip210: test_blockhash_eip210_int}
|
||||||
fn test_blockhash_eip210(factory: Factory) {
|
fn test_blockhash_eip210(factory: Factory) {
|
||||||
@ -39,7 +41,7 @@ fn test_blockhash_eip210(factory: Factory) {
|
|||||||
let test_blockhash_contract = "73fffffffffffffffffffffffffffffffffffffffe33141561007a57600143036020526000356101006020510755600061010060205107141561005057600035610100610100602051050761010001555b6000620100006020510714156100755760003561010062010000602051050761020001555b61014a565b4360003512151561009057600060405260206040f35b610100600035430312156100b357610100600035075460605260206060f3610149565b62010000600035430312156100d157600061010060003507146100d4565b60005b156100f6576101006101006000350507610100015460805260206080f3610148565b630100000060003543031215610116576000620100006000350714610119565b60005b1561013c57610100620100006000350507610200015460a052602060a0f3610147565b600060c052602060c0f35b5b5b5b5b";
|
let test_blockhash_contract = "73fffffffffffffffffffffffffffffffffffffffe33141561007a57600143036020526000356101006020510755600061010060205107141561005057600035610100610100602051050761010001555b6000620100006020510714156100755760003561010062010000602051050761020001555b61014a565b4360003512151561009057600060405260206040f35b610100600035430312156100b357610100600035075460605260206060f3610149565b62010000600035430312156100d157600061010060003507146100d4565b60005b156100f6576101006101006000350507610100015460805260206080f3610148565b630100000060003543031215610116576000620100006000350714610119565b60005b1561013c57610100620100006000350507610200015460a052602060a0f3610147565b600060c052602060c0f35b5b5b5b5b";
|
||||||
let blockhash_contract_code = Arc::new(test_blockhash_contract.from_hex().unwrap());
|
let blockhash_contract_code = Arc::new(test_blockhash_contract.from_hex().unwrap());
|
||||||
let blockhash_contract_code_hash = keccak(blockhash_contract_code.as_ref());
|
let blockhash_contract_code_hash = keccak(blockhash_contract_code.as_ref());
|
||||||
let machine = spec::new_eip210_test_machine();
|
let machine = new_eip210_test_machine();
|
||||||
let mut env_info = EnvInfo::default();
|
let mut env_info = EnvInfo::default();
|
||||||
|
|
||||||
// populate state with 256 last hashes
|
// populate state with 256 last hashes
|
||||||
|
@ -28,14 +28,18 @@ use client::{BlockChainClient, Client, ClientConfig};
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use miner::Miner;
|
use miner::Miner;
|
||||||
use types::transaction::{Action, Transaction};
|
|
||||||
use trace::{RewardType, LocalizedTrace};
|
use trace::{RewardType, LocalizedTrace};
|
||||||
use trace::trace::Action::Reward;
|
use trace::trace::Action::Reward;
|
||||||
use test_helpers;
|
use test_helpers;
|
||||||
use verification::queue::kind::blocks::Unverified;
|
use verification::queue::kind::blocks::Unverified;
|
||||||
use types::header::Header;
|
use types::{
|
||||||
use types::view;
|
ids::BlockId,
|
||||||
use types::views::BlockView;
|
transaction::{Action, Transaction},
|
||||||
|
trace_filter::Filter as TraceFilter,
|
||||||
|
header::Header,
|
||||||
|
view,
|
||||||
|
views::BlockView,
|
||||||
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_trace_block_and_uncle_reward() {
|
fn can_trace_block_and_uncle_reward() {
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
//! Canonical verifier.
|
//! Canonical verifier.
|
||||||
|
|
||||||
use call_contract::CallContract;
|
use call_contract::CallContract;
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
use types::{
|
use types::{
|
||||||
header::Header,
|
header::Header,
|
||||||
|
@ -29,7 +29,7 @@ pub use self::noop_verifier::NoopVerifier;
|
|||||||
pub use self::queue::{BlockQueue, Config as QueueConfig, VerificationQueue, QueueInfo};
|
pub use self::queue::{BlockQueue, Config as QueueConfig, VerificationQueue, QueueInfo};
|
||||||
|
|
||||||
use call_contract::CallContract;
|
use call_contract::CallContract;
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
|
|
||||||
/// Verifier type.
|
/// Verifier type.
|
||||||
#[derive(Debug, PartialEq, Clone)]
|
#[derive(Debug, PartialEq, Clone)]
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
//! No-op verifier.
|
//! No-op verifier.
|
||||||
|
|
||||||
use call_contract::CallContract;
|
use call_contract::CallContract;
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
use types::{
|
use types::{
|
||||||
header::Header,
|
header::Header,
|
||||||
|
@ -21,9 +21,7 @@ use engines::Engine;
|
|||||||
use parity_util_mem::MallocSizeOf;
|
use parity_util_mem::MallocSizeOf;
|
||||||
use ethereum_types::{H256, U256};
|
use ethereum_types::{H256, U256};
|
||||||
|
|
||||||
use types::{
|
use types::errors::EthcoreError as Error;
|
||||||
errors::EthcoreError as Error,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub use self::blocks::Blocks;
|
pub use self::blocks::Blocks;
|
||||||
pub use self::headers::Headers;
|
pub use self::headers::Headers;
|
||||||
|
@ -31,7 +31,7 @@ use unexpected::{Mismatch, OutOfBounds};
|
|||||||
|
|
||||||
use blockchain::*;
|
use blockchain::*;
|
||||||
use call_contract::CallContract;
|
use call_contract::CallContract;
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
use types::{
|
use types::{
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
//! A generic verifier trait.
|
//! A generic verifier trait.
|
||||||
|
|
||||||
use call_contract::CallContract;
|
use call_contract::CallContract;
|
||||||
use client::BlockInfo;
|
use client_traits::BlockInfo;
|
||||||
use engines::Engine;
|
use engines::Engine;
|
||||||
use types::{
|
use types::{
|
||||||
header::Header,
|
header::Header,
|
||||||
|
@ -8,6 +8,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
|||||||
[lib]
|
[lib]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
client-traits = { path = "../client-traits" }
|
||||||
common-types = { path = "../types" }
|
common-types = { path = "../types" }
|
||||||
enum_primitive = "0.1.1"
|
enum_primitive = "0.1.1"
|
||||||
ethcore = { path = ".." }
|
ethcore = { path = ".." }
|
||||||
@ -24,6 +25,7 @@ keccak-hash = "0.2.0"
|
|||||||
keccak-hasher = { path = "../../util/keccak-hasher" }
|
keccak-hasher = { path = "../../util/keccak-hasher" }
|
||||||
kvdb = "0.1"
|
kvdb = "0.1"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
|
machine = { path = "../machine" }
|
||||||
macros = { path = "../../util/macros" }
|
macros = { path = "../../util/macros" }
|
||||||
parity-bytes = "0.1"
|
parity-bytes = "0.1"
|
||||||
parking_lot = "0.8"
|
parking_lot = "0.8"
|
||||||
|
@ -25,9 +25,10 @@ use ethereum_types::H256;
|
|||||||
use rlp::{self, Rlp};
|
use rlp::{self, Rlp};
|
||||||
use types::{
|
use types::{
|
||||||
BlockNumber,
|
BlockNumber,
|
||||||
|
block_status::BlockStatus,
|
||||||
|
ids::BlockId,
|
||||||
errors::{EthcoreError, BlockError, ImportError},
|
errors::{EthcoreError, BlockError, ImportError},
|
||||||
};
|
};
|
||||||
use ethcore::client::{BlockStatus, BlockId};
|
|
||||||
use sync_io::SyncIo;
|
use sync_io::SyncIo;
|
||||||
use blocks::{BlockCollection, SyncBody, SyncHeader};
|
use blocks::{BlockCollection, SyncBody, SyncHeader};
|
||||||
use chain::BlockSet;
|
use chain::BlockSet;
|
||||||
|
@ -541,8 +541,11 @@ impl BlockCollection {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
use super::{BlockCollection, SyncHeader};
|
use super::{BlockCollection, SyncHeader};
|
||||||
use ethcore::client::{TestBlockChainClient, EachBlockWith, BlockId, BlockChainClient};
|
use ethcore::client::{TestBlockChainClient, EachBlockWith, BlockChainClient};
|
||||||
use types::BlockNumber;
|
use types::{
|
||||||
|
ids::BlockId,
|
||||||
|
BlockNumber
|
||||||
|
};
|
||||||
use ethcore::verification::queue::kind::blocks::Unverified;
|
use ethcore::verification::queue::kind::blocks::Unverified;
|
||||||
use rlp::*;
|
use rlp::*;
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ use bytes::Bytes;
|
|||||||
use rlp::{RlpStream, DecoderError};
|
use rlp::{RlpStream, DecoderError};
|
||||||
use network::{self, PeerId, PacketId};
|
use network::{self, PeerId, PacketId};
|
||||||
use network::client_version::ClientVersion;
|
use network::client_version::ClientVersion;
|
||||||
use ethcore::client::{BlockChainClient, BlockStatus, BlockId, BlockChainInfo, BlockQueueInfo};
|
use ethcore::client::{BlockChainClient, BlockStatus, BlockChainInfo, BlockQueueInfo};
|
||||||
use ethcore::snapshot::RestorationStatus;
|
use ethcore::snapshot::RestorationStatus;
|
||||||
use sync_io::SyncIo;
|
use sync_io::SyncIo;
|
||||||
use super::{WarpSync, SyncConfig};
|
use super::{WarpSync, SyncConfig};
|
||||||
@ -118,8 +118,11 @@ use snapshot::{Snapshot};
|
|||||||
use api::{EthProtocolInfo as PeerInfoDigest, WARP_SYNC_PROTOCOL_ID, PriorityTask};
|
use api::{EthProtocolInfo as PeerInfoDigest, WARP_SYNC_PROTOCOL_ID, PriorityTask};
|
||||||
use private_tx::PrivateTxHandler;
|
use private_tx::PrivateTxHandler;
|
||||||
use transactions_stats::{TransactionsStats, Stats as TransactionStats};
|
use transactions_stats::{TransactionsStats, Stats as TransactionStats};
|
||||||
use types::transaction::UnverifiedTransaction;
|
use types::{
|
||||||
use types::BlockNumber;
|
BlockNumber,
|
||||||
|
ids::BlockId,
|
||||||
|
transaction::UnverifiedTransaction
|
||||||
|
};
|
||||||
|
|
||||||
use self::handler::SyncHandler;
|
use self::handler::SyncHandler;
|
||||||
use self::sync_packet::{PacketInfo, SyncPacket};
|
use self::sync_packet::{PacketInfo, SyncPacket};
|
||||||
@ -1370,7 +1373,8 @@ pub mod tests {
|
|||||||
use super::*;
|
use super::*;
|
||||||
use ::SyncConfig;
|
use ::SyncConfig;
|
||||||
use super::{PeerInfo, PeerAsking};
|
use super::{PeerInfo, PeerAsking};
|
||||||
use ethcore::client::{BlockChainClient, EachBlockWith, TestBlockChainClient, ChainInfo, BlockInfo};
|
use ethcore::client::{BlockChainClient, EachBlockWith, TestBlockChainClient, ChainInfo};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use ethcore::miner::{MinerService, PendingOrdering};
|
use ethcore::miner::{MinerService, PendingOrdering};
|
||||||
use types::header::Header;
|
use types::header::Header;
|
||||||
|
|
||||||
|
@ -335,12 +335,15 @@ impl SyncPropagator {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use ethcore::client::{BlockInfo, ChainInfo, EachBlockWith, TestBlockChainClient};
|
use ethcore::client::{ChainInfo, EachBlockWith, TestBlockChainClient};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use rlp::{Rlp};
|
use rlp::Rlp;
|
||||||
use std::collections::{VecDeque};
|
use std::collections::VecDeque;
|
||||||
use tests::helpers::{TestIo};
|
use tests::{
|
||||||
use tests::snapshot::TestSnapshotService;
|
helpers::TestIo,
|
||||||
|
snapshot::TestSnapshotService,
|
||||||
|
};
|
||||||
|
|
||||||
use super::{*, super::{*, tests::*}};
|
use super::{*, super::{*, tests::*}};
|
||||||
|
|
||||||
|
@ -46,6 +46,8 @@ extern crate ethcore_light as light;
|
|||||||
#[cfg(test)] extern crate kvdb_memorydb;
|
#[cfg(test)] extern crate kvdb_memorydb;
|
||||||
#[cfg(test)] extern crate rustc_hex;
|
#[cfg(test)] extern crate rustc_hex;
|
||||||
#[cfg(test)] extern crate rand_xorshift;
|
#[cfg(test)] extern crate rand_xorshift;
|
||||||
|
#[cfg(test)] extern crate client_traits;
|
||||||
|
#[cfg(test)] extern crate machine;
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate enum_primitive;
|
extern crate enum_primitive;
|
||||||
|
@ -16,7 +16,9 @@
|
|||||||
|
|
||||||
use tests::helpers::TestNet;
|
use tests::helpers::TestNet;
|
||||||
|
|
||||||
use ethcore::client::{BlockInfo, BlockId, EachBlockWith};
|
use ethcore::client::EachBlockWith;
|
||||||
|
use client_traits::BlockInfo;
|
||||||
|
use types::ids::BlockId;
|
||||||
|
|
||||||
mod test_net;
|
mod test_net;
|
||||||
|
|
||||||
|
@ -15,8 +15,10 @@
|
|||||||
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use ethcore::client::{TestBlockChainClient, BlockChainClient, BlockId, EachBlockWith, ChainInfo, BlockInfo};
|
use types::ids::BlockId;
|
||||||
use chain::{SyncState};
|
use ethcore::client::{TestBlockChainClient, BlockChainClient, EachBlockWith, ChainInfo};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
|
use chain::SyncState;
|
||||||
use super::helpers::*;
|
use super::helpers::*;
|
||||||
use {SyncConfig, WarpSync};
|
use {SyncConfig, WarpSync};
|
||||||
use ethcore::spec;
|
use ethcore::spec;
|
||||||
|
@ -19,15 +19,17 @@ use hash::keccak;
|
|||||||
use io::{IoHandler, IoChannel};
|
use io::{IoHandler, IoChannel};
|
||||||
use types::transaction::{Transaction, Action};
|
use types::transaction::{Transaction, Action};
|
||||||
use types::ids::BlockId;
|
use types::ids::BlockId;
|
||||||
use ethcore::CreateContractAddress;
|
use ethcore::{
|
||||||
use ethcore::client::{ClientIoMessage, BlockChainClient};
|
CreateContractAddress,
|
||||||
use ethcore::executive::contract_address;
|
client::{ClientIoMessage, BlockChainClient},
|
||||||
use ethcore::engines;
|
engines,
|
||||||
use ethcore::miner::{self, MinerService};
|
miner::{self, MinerService},
|
||||||
use ethcore::spec::Spec;
|
spec::Spec,
|
||||||
use ethcore::test_helpers::{push_block_with_transactions};
|
test_helpers::push_block_with_transactions,
|
||||||
|
};
|
||||||
use ethcore_private_tx::{Provider, ProviderConfig, NoopEncryptor, Importer, SignedPrivateTransaction, StoringKeyProvider};
|
use ethcore_private_tx::{Provider, ProviderConfig, NoopEncryptor, Importer, SignedPrivateTransaction, StoringKeyProvider};
|
||||||
use ethkey::KeyPair;
|
use ethkey::KeyPair;
|
||||||
|
use machine::executive::contract_address;
|
||||||
use tests::helpers::{TestNet, TestIoHandler};
|
use tests::helpers::{TestNet, TestIoHandler};
|
||||||
use rustc_hex::FromHex;
|
use rustc_hex::FromHex;
|
||||||
use rlp::Rlp;
|
use rlp::Rlp;
|
||||||
|
@ -6,6 +6,7 @@ license = "GPL-3.0"
|
|||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
common-types = { path = "../ethcore/types" }
|
||||||
ethcore = { path = "../ethcore" }
|
ethcore = { path = "../ethcore" }
|
||||||
parity-bytes = "0.1"
|
parity-bytes = "0.1"
|
||||||
ethereum-types = "0.6.0"
|
ethereum-types = "0.6.0"
|
||||||
|
@ -19,6 +19,7 @@ extern crate cid;
|
|||||||
extern crate unicase;
|
extern crate unicase;
|
||||||
|
|
||||||
extern crate rlp;
|
extern crate rlp;
|
||||||
|
extern crate common_types;
|
||||||
extern crate ethcore;
|
extern crate ethcore;
|
||||||
extern crate parity_bytes as bytes;
|
extern crate parity_bytes as bytes;
|
||||||
extern crate ethereum_types;
|
extern crate ethereum_types;
|
||||||
|
@ -18,10 +18,10 @@ use {rlp, multihash, IpfsHandler};
|
|||||||
use error::{Error, Result};
|
use error::{Error, Result};
|
||||||
use cid::{ToCid, Codec};
|
use cid::{ToCid, Codec};
|
||||||
|
|
||||||
|
use common_types::ids::{BlockId, TransactionId};
|
||||||
use multihash::Hash;
|
use multihash::Hash;
|
||||||
use ethereum_types::H256;
|
use ethereum_types::H256;
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use ethcore::client::{BlockId, TransactionId};
|
|
||||||
|
|
||||||
type Reason = &'static str;
|
type Reason = &'static str;
|
||||||
|
|
||||||
|
@ -40,8 +40,6 @@ extern crate serde;
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate ethabi_contract;
|
extern crate ethabi_contract;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate ethabi_derive;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate log;
|
extern crate log;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -26,8 +26,9 @@ use hash::{keccak, KECCAK_NULL_RLP};
|
|||||||
use ethereum_types::{U256, H256, Address};
|
use ethereum_types::{U256, H256, Address};
|
||||||
use bytes::ToPretty;
|
use bytes::ToPretty;
|
||||||
use rlp::PayloadInfo;
|
use rlp::PayloadInfo;
|
||||||
|
use client_traits::BlockInfo;
|
||||||
use ethcore::client::{
|
use ethcore::client::{
|
||||||
Mode, DatabaseCompactionProfile, VMType, Nonce, Balance, BlockChainClient, BlockId, BlockInfo, ImportBlock, BlockChainReset
|
Mode, DatabaseCompactionProfile, VMType, Nonce, Balance, BlockChainClient, ImportBlock, BlockChainReset
|
||||||
};
|
};
|
||||||
use ethcore::miner::Miner;
|
use ethcore::miner::Miner;
|
||||||
use ethcore::verification::queue::VerifierSettings;
|
use ethcore::verification::queue::VerifierSettings;
|
||||||
@ -42,7 +43,10 @@ use user_defaults::UserDefaults;
|
|||||||
use ethcore_private_tx;
|
use ethcore_private_tx;
|
||||||
use db;
|
use db;
|
||||||
use ansi_term::Colour;
|
use ansi_term::Colour;
|
||||||
use types::errors::{ImportError, EthcoreError};
|
use types::{
|
||||||
|
ids::BlockId,
|
||||||
|
errors::{ImportError, EthcoreError}
|
||||||
|
};
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq)]
|
||||||
pub enum DataFormat {
|
pub enum DataFormat {
|
||||||
|
@ -1194,11 +1194,12 @@ mod tests {
|
|||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use tempdir::TempDir;
|
use tempdir::TempDir;
|
||||||
use ethcore::client::{VMType, BlockId};
|
use ethcore::client::VMType;
|
||||||
use ethcore::miner::MinerOptions;
|
use ethcore::miner::MinerOptions;
|
||||||
use miner::pool::PrioritizationStrategy;
|
use miner::pool::PrioritizationStrategy;
|
||||||
use parity_rpc::NetworkSettings;
|
use parity_rpc::NetworkSettings;
|
||||||
use updater::{UpdatePolicy, UpdateFilter, ReleaseTrack};
|
use updater::{UpdatePolicy, UpdateFilter, ReleaseTrack};
|
||||||
|
use types::ids::BlockId;
|
||||||
|
|
||||||
use account::{AccountCmd, NewAccount, ImportAccounts, ListAccounts};
|
use account::{AccountCmd, NewAccount, ImportAccounts, ListAccounts};
|
||||||
use blockchain::{BlockchainCmd, ImportBlockchain, ExportBlockchain, DataFormat, ExportState};
|
use blockchain::{BlockchainCmd, ImportBlockchain, ExportBlockchain, DataFormat, ExportState};
|
||||||
|
@ -21,7 +21,7 @@ use std::fs::File;
|
|||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use ethereum_types::{U256, Address};
|
use ethereum_types::{U256, Address};
|
||||||
use journaldb::Algorithm;
|
use journaldb::Algorithm;
|
||||||
use ethcore::client::{Mode, BlockId, VMType, DatabaseCompactionProfile, ClientConfig, VerifierType};
|
use ethcore::client::{Mode, VMType, DatabaseCompactionProfile, ClientConfig, VerifierType};
|
||||||
use ethcore::miner::{PendingSet, Penalization};
|
use ethcore::miner::{PendingSet, Penalization};
|
||||||
use miner::pool::PrioritizationStrategy;
|
use miner::pool::PrioritizationStrategy;
|
||||||
use cache::CacheConfig;
|
use cache::CacheConfig;
|
||||||
@ -32,6 +32,7 @@ use sync::{validate_node_url, self};
|
|||||||
use db::migrate;
|
use db::migrate;
|
||||||
use path;
|
use path;
|
||||||
use ethkey::Password;
|
use ethkey::Password;
|
||||||
|
use types::ids::BlockId;
|
||||||
|
|
||||||
pub fn to_duration(s: &str) -> Result<Duration, String> {
|
pub fn to_duration(s: &str) -> Result<Duration, String> {
|
||||||
to_seconds(s).map(Duration::from_secs)
|
to_seconds(s).map(Duration::from_secs)
|
||||||
@ -347,9 +348,10 @@ mod tests {
|
|||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use tempdir::TempDir;
|
use tempdir::TempDir;
|
||||||
use ethereum_types::U256;
|
use ethereum_types::U256;
|
||||||
use ethcore::client::{Mode, BlockId};
|
use ethcore::client::Mode;
|
||||||
use ethcore::miner::PendingSet;
|
use ethcore::miner::PendingSet;
|
||||||
use ethkey::Password;
|
use ethkey::Password;
|
||||||
|
use types::ids::BlockId;
|
||||||
use super::{to_duration, to_mode, to_block_id, to_u256, to_pending_set, to_address, to_addresses, to_price, geth_ipc_path, to_bootnodes, join_set, password_from_file};
|
use super::{to_duration, to_mode, to_block_id, to_u256, to_pending_set, to_address, to_addresses, to_price, geth_ipc_path, to_bootnodes, join_set, password_from_file};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -24,10 +24,14 @@ use std::time::{Instant, Duration};
|
|||||||
|
|
||||||
use atty;
|
use atty;
|
||||||
use ethcore::client::{
|
use ethcore::client::{
|
||||||
BlockId, ChainInfo, BlockInfo, BlockChainInfo, BlockChainClient,
|
ChainInfo, BlockChainInfo, BlockChainClient,
|
||||||
BlockQueueInfo, ChainNotify, NewBlocks, ClientReport, Client, ClientIoMessage
|
BlockQueueInfo, ChainNotify, NewBlocks, ClientReport, Client, ClientIoMessage
|
||||||
};
|
};
|
||||||
use types::BlockNumber;
|
use client_traits::BlockInfo;
|
||||||
|
use types::{
|
||||||
|
BlockNumber,
|
||||||
|
ids::BlockId,
|
||||||
|
};
|
||||||
use ethcore::snapshot::{RestorationStatus, SnapshotService as SS};
|
use ethcore::snapshot::{RestorationStatus, SnapshotService as SS};
|
||||||
use ethcore::snapshot::service::Service as SnapshotService;
|
use ethcore::snapshot::service::Service as SnapshotService;
|
||||||
use sync::{LightSyncProvider, LightSync, SyncProvider, ManageNetwork};
|
use sync::{LightSyncProvider, LightSync, SyncProvider, ManageNetwork};
|
||||||
|
@ -41,6 +41,8 @@ extern crate toml;
|
|||||||
|
|
||||||
extern crate blooms_db;
|
extern crate blooms_db;
|
||||||
extern crate cli_signer;
|
extern crate cli_signer;
|
||||||
|
|
||||||
|
extern crate client_traits;
|
||||||
extern crate common_types as types;
|
extern crate common_types as types;
|
||||||
extern crate ethcore;
|
extern crate ethcore;
|
||||||
extern crate ethcore_call_contract as call_contract;
|
extern crate ethcore_call_contract as call_contract;
|
||||||
|
@ -22,7 +22,8 @@ use std::thread;
|
|||||||
use ansi_term::Colour;
|
use ansi_term::Colour;
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
use call_contract::CallContract;
|
use call_contract::CallContract;
|
||||||
use ethcore::client::{BlockId, Client, Mode, DatabaseCompactionProfile, VMType, BlockChainClient, BlockInfo};
|
use client_traits::BlockInfo;
|
||||||
|
use ethcore::client::{Client, Mode, DatabaseCompactionProfile, VMType, BlockChainClient};
|
||||||
use ethcore::miner::{self, stratum, Miner, MinerService, MinerOptions};
|
use ethcore::miner::{self, stratum, Miner, MinerService, MinerOptions};
|
||||||
use ethcore::snapshot::{self, SnapshotConfiguration};
|
use ethcore::snapshot::{self, SnapshotConfiguration};
|
||||||
use ethcore::spec::{SpecParams, OptimizeFor};
|
use ethcore::spec::{SpecParams, OptimizeFor};
|
||||||
@ -40,6 +41,7 @@ use miner::work_notify::WorkPoster;
|
|||||||
use node_filter::NodeFilter;
|
use node_filter::NodeFilter;
|
||||||
use parity_runtime::Runtime;
|
use parity_runtime::Runtime;
|
||||||
use sync::{self, SyncConfig, PrivateTxHandler};
|
use sync::{self, SyncConfig, PrivateTxHandler};
|
||||||
|
use types::ids::BlockId;
|
||||||
use parity_rpc::{
|
use parity_rpc::{
|
||||||
Origin, Metadata, NetworkSettings, informant, PubSubSession, FutureResult, FutureResponse, FutureOutput
|
Origin, Metadata, NetworkSettings, informant, PubSubSession, FutureResult, FutureResponse, FutureOutput
|
||||||
};
|
};
|
||||||
|
@ -47,6 +47,7 @@ ethcore-private-tx = { path = "../ethcore/private-tx" }
|
|||||||
ethcore-sync = { path = "../ethcore/sync" }
|
ethcore-sync = { path = "../ethcore/sync" }
|
||||||
ethereum-types = "0.6.0"
|
ethereum-types = "0.6.0"
|
||||||
fastmap = { path = "../util/fastmap" }
|
fastmap = { path = "../util/fastmap" }
|
||||||
|
machine = { path = "../ethcore/machine" }
|
||||||
parity-bytes = "0.1"
|
parity-bytes = "0.1"
|
||||||
parity-crypto = "0.4.0"
|
parity-crypto = "0.4.0"
|
||||||
|
|
||||||
@ -66,6 +67,7 @@ trace = { path = "../ethcore/trace" }
|
|||||||
vm = { path = "../ethcore/vm" }
|
vm = { path = "../ethcore/vm" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
client-traits = { path = "../ethcore/client-traits" }
|
||||||
ethcore = { path = "../ethcore", features = ["test-helpers"] }
|
ethcore = { path = "../ethcore", features = ["test-helpers"] }
|
||||||
ethcore-accounts = { path = "../accounts" }
|
ethcore-accounts = { path = "../accounts" }
|
||||||
ethcore-io = { path = "../util/io" }
|
ethcore-io = { path = "../util/io" }
|
||||||
|
@ -43,6 +43,7 @@ extern crate futures;
|
|||||||
extern crate ansi_term;
|
extern crate ansi_term;
|
||||||
extern crate cid;
|
extern crate cid;
|
||||||
extern crate itertools;
|
extern crate itertools;
|
||||||
|
extern crate machine;
|
||||||
extern crate multihash;
|
extern crate multihash;
|
||||||
extern crate order_stat;
|
extern crate order_stat;
|
||||||
extern crate parking_lot;
|
extern crate parking_lot;
|
||||||
@ -120,6 +121,8 @@ extern crate fake_fetch;
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
extern crate ethcore_io as io;
|
extern crate ethcore_io as io;
|
||||||
|
#[cfg(test)]
|
||||||
|
extern crate client_traits;
|
||||||
|
|
||||||
pub extern crate jsonrpc_ws_server as ws;
|
pub extern crate jsonrpc_ws_server as ws;
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
use ethcore::client::BlockId;
|
|
||||||
use jsonrpc_core::{futures, Result as RpcResult, Error, ErrorCode, Value};
|
use jsonrpc_core::{futures, Result as RpcResult, Error, ErrorCode, Value};
|
||||||
use rlp::DecoderError;
|
use rlp::DecoderError;
|
||||||
use types::transaction::Error as TransactionError;
|
use types::transaction::Error as TransactionError;
|
||||||
@ -27,6 +26,7 @@ use vm::Error as VMError;
|
|||||||
use light::on_demand::error::{Error as OnDemandError};
|
use light::on_demand::error::{Error as OnDemandError};
|
||||||
use ethcore::client::BlockChainClient;
|
use ethcore::client::BlockChainClient;
|
||||||
use types::{
|
use types::{
|
||||||
|
ids::BlockId,
|
||||||
blockchain_info::BlockChainInfo,
|
blockchain_info::BlockChainInfo,
|
||||||
errors::{EthcoreError},
|
errors::{EthcoreError},
|
||||||
transaction::CallError,
|
transaction::CallError,
|
||||||
|
@ -39,11 +39,12 @@ use light::client::LightChainClient;
|
|||||||
use light::{cht, MAX_HEADERS_PER_REQUEST};
|
use light::{cht, MAX_HEADERS_PER_REQUEST};
|
||||||
use light::on_demand::{
|
use light::on_demand::{
|
||||||
request, OnDemandRequester, HeaderRef, Request as OnDemandRequest,
|
request, OnDemandRequester, HeaderRef, Request as OnDemandRequest,
|
||||||
Response as OnDemandResponse, ExecutionResult,
|
Response as OnDemandResponse,
|
||||||
};
|
};
|
||||||
use light::on_demand::error::Error as OnDemandError;
|
use light::on_demand::error::Error as OnDemandError;
|
||||||
use light::request::Field;
|
use light::request::Field;
|
||||||
use light::TransactionQueue;
|
use light::TransactionQueue;
|
||||||
|
use machine::executed::ExecutionResult;
|
||||||
|
|
||||||
use sync::{LightNetworkDispatcher, ManageNetwork, LightSyncProvider};
|
use sync::{LightNetworkDispatcher, ManageNetwork, LightSyncProvider};
|
||||||
|
|
||||||
|
@ -25,16 +25,19 @@ use ethereum_types::{Address, H64, H160, H256, U64, U256, BigEndianHash};
|
|||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
|
|
||||||
use ethash::{self, SeedHashCompute};
|
use ethash::{self, SeedHashCompute};
|
||||||
use ethcore::client::{BlockChainClient, BlockId, TransactionId, UncleId, StateOrBlock, StateClient, StateInfo, Call, EngineInfo, ProvingBlockChainClient};
|
use ethcore::client::{BlockChainClient, StateOrBlock, StateClient, StateInfo, Call, EngineInfo, ProvingBlockChainClient};
|
||||||
use ethcore::miner::{self, MinerService};
|
use ethcore::miner::{self, MinerService};
|
||||||
use ethcore::snapshot::SnapshotService;
|
use ethcore::snapshot::SnapshotService;
|
||||||
use hash::keccak;
|
use hash::keccak;
|
||||||
use miner::external::ExternalMinerService;
|
use miner::external::ExternalMinerService;
|
||||||
use sync::SyncProvider;
|
use sync::SyncProvider;
|
||||||
use types::transaction::{SignedTransaction, LocalizedTransaction};
|
use types::{
|
||||||
use types::BlockNumber as EthBlockNumber;
|
BlockNumber as EthBlockNumber,
|
||||||
use types::encoded;
|
encoded,
|
||||||
use types::filter::Filter as EthcoreFilter;
|
ids::{BlockId, TransactionId, UncleId},
|
||||||
|
filter::Filter as EthcoreFilter,
|
||||||
|
transaction::{SignedTransaction, LocalizedTransaction}
|
||||||
|
};
|
||||||
|
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
use jsonrpc_core::futures::future;
|
use jsonrpc_core::futures::future;
|
||||||
|
@ -19,11 +19,14 @@
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::collections::{BTreeSet, VecDeque};
|
use std::collections::{BTreeSet, VecDeque};
|
||||||
|
|
||||||
use ethcore::client::{BlockChainClient, BlockId};
|
use ethcore::client::BlockChainClient;
|
||||||
use ethcore::miner::{self, MinerService};
|
use ethcore::miner::{self, MinerService};
|
||||||
use ethereum_types::{H256, U256};
|
use ethereum_types::{H256, U256};
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
use types::filter::Filter as EthcoreFilter;
|
use types::{
|
||||||
|
ids::BlockId,
|
||||||
|
filter::Filter as EthcoreFilter
|
||||||
|
};
|
||||||
|
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
use jsonrpc_core::futures::{future, Future};
|
use jsonrpc_core::futures::{future, Future};
|
||||||
|
@ -31,7 +31,7 @@ use v1::traits::EthPubSub;
|
|||||||
use v1::types::{pubsub, RichHeader, Log};
|
use v1::types::{pubsub, RichHeader, Log};
|
||||||
|
|
||||||
use sync::{SyncState, Notification};
|
use sync::{SyncState, Notification};
|
||||||
use ethcore::client::{BlockChainClient, ChainNotify, NewBlocks, ChainRouteType, BlockId};
|
use ethcore::client::{BlockChainClient, ChainNotify, NewBlocks, ChainRouteType};
|
||||||
use ethereum_types::H256;
|
use ethereum_types::H256;
|
||||||
use light::cache::Cache;
|
use light::cache::Cache;
|
||||||
use light::client::{LightChainClient, LightChainNotify};
|
use light::client::{LightChainClient, LightChainNotify};
|
||||||
@ -41,8 +41,11 @@ use parking_lot::{RwLock, Mutex};
|
|||||||
|
|
||||||
use sync::{LightSyncProvider, LightNetworkDispatcher, ManageNetwork};
|
use sync::{LightSyncProvider, LightNetworkDispatcher, ManageNetwork};
|
||||||
|
|
||||||
use types::encoded;
|
use types::{
|
||||||
use types::filter::Filter as EthFilter;
|
ids::BlockId,
|
||||||
|
encoded,
|
||||||
|
filter::Filter as EthFilter,
|
||||||
|
};
|
||||||
|
|
||||||
type Client = Sink<pubsub::Result>;
|
type Client = Sink<pubsub::Result>;
|
||||||
|
|
||||||
|
@ -18,10 +18,14 @@
|
|||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use ethcore::client::{BlockChainClient, CallAnalytics, TransactionId, TraceId, StateClient, StateInfo, Call, BlockId};
|
use ethcore::client::{BlockChainClient, StateClient, StateInfo, Call};
|
||||||
use ethereum_types::H256;
|
use ethereum_types::H256;
|
||||||
use rlp::Rlp;
|
use rlp::Rlp;
|
||||||
use types::transaction::SignedTransaction;
|
use types::{
|
||||||
|
call_analytics::CallAnalytics,
|
||||||
|
ids::{BlockId, TransactionId, TraceId},
|
||||||
|
transaction::SignedTransaction,
|
||||||
|
};
|
||||||
|
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
use v1::Metadata;
|
use v1::Metadata;
|
||||||
|
@ -20,18 +20,22 @@ use std::sync::Arc;
|
|||||||
use std::time::{Instant, Duration, SystemTime, UNIX_EPOCH};
|
use std::time::{Instant, Duration, SystemTime, UNIX_EPOCH};
|
||||||
|
|
||||||
use accounts::AccountProvider;
|
use accounts::AccountProvider;
|
||||||
use ethcore::client::{BlockChainClient, BlockId, EachBlockWith, Executed, TestBlockChainClient, TransactionId};
|
use ethcore::client::{BlockChainClient, EachBlockWith, TestBlockChainClient};
|
||||||
use ethcore::miner::{self, MinerService};
|
use ethcore::miner::{self, MinerService};
|
||||||
use ethereum_types::{H160, H256, U256, Address, Bloom};
|
use ethereum_types::{H160, H256, U256, Address, Bloom};
|
||||||
|
use machine::executed::Executed;
|
||||||
use miner::external::ExternalMiner;
|
use miner::external::ExternalMiner;
|
||||||
use parity_runtime::Runtime;
|
use parity_runtime::Runtime;
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
use rlp;
|
use rlp;
|
||||||
use rustc_hex::{FromHex, ToHex};
|
use rustc_hex::{FromHex, ToHex};
|
||||||
use sync::SyncState;
|
use sync::SyncState;
|
||||||
use types::transaction::{Transaction, Action};
|
use types::{
|
||||||
use types::log_entry::{LocalizedLogEntry, LogEntry};
|
ids::{BlockId, TransactionId},
|
||||||
use types::receipt::{LocalizedReceipt, TransactionOutcome};
|
transaction::{Transaction, Action},
|
||||||
|
log_entry::{LocalizedLogEntry, LogEntry},
|
||||||
|
receipt::{LocalizedReceipt, TransactionOutcome},
|
||||||
|
};
|
||||||
|
|
||||||
use jsonrpc_core::IoHandler;
|
use jsonrpc_core::IoHandler;
|
||||||
use v1::{Eth, EthClient, EthClientOptions, EthFilter, EthFilterClient};
|
use v1::{Eth, EthClient, EthClientOptions, EthFilter, EthFilterClient};
|
||||||
|
@ -26,6 +26,12 @@ use v1::{EthPubSub, EthPubSubClient, Metadata};
|
|||||||
use ethcore::client::{TestBlockChainClient, EachBlockWith, ChainNotify, NewBlocks, ChainRoute, ChainRouteType};
|
use ethcore::client::{TestBlockChainClient, EachBlockWith, ChainNotify, NewBlocks, ChainRoute, ChainRouteType};
|
||||||
use parity_runtime::Runtime;
|
use parity_runtime::Runtime;
|
||||||
use ethereum_types::{Address, H256};
|
use ethereum_types::{Address, H256};
|
||||||
|
use client_traits::BlockInfo;
|
||||||
|
use types::{
|
||||||
|
log_entry::{LocalizedLogEntry, LogEntry},
|
||||||
|
ids::BlockId,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
const DURATION_ZERO: Duration = Duration::from_millis(0);
|
const DURATION_ZERO: Duration = Duration::from_millis(0);
|
||||||
|
|
||||||
@ -86,10 +92,6 @@ fn should_subscribe_to_new_heads() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn should_subscribe_to_logs() {
|
fn should_subscribe_to_logs() {
|
||||||
use ethcore::client::BlockInfo;
|
|
||||||
use types::log_entry::{LocalizedLogEntry, LogEntry};
|
|
||||||
use types::ids::BlockId;
|
|
||||||
|
|
||||||
// given
|
// given
|
||||||
let el = Runtime::with_thread_count(1);
|
let el = Runtime::with_thread_count(1);
|
||||||
let mut client = TestBlockChainClient::new();
|
let mut client = TestBlockChainClient::new();
|
||||||
|
@ -15,13 +15,17 @@
|
|||||||
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use ethcore::client::{TestBlockChainClient, Executed, TransactionId};
|
use ethcore::client::TestBlockChainClient;
|
||||||
use ethcore_logger::RotatingLogger;
|
use ethcore_logger::RotatingLogger;
|
||||||
use ethereum_types::{Address, U256, H256, BigEndianHash, Bloom};
|
use ethereum_types::{Address, U256, H256, BigEndianHash, Bloom};
|
||||||
use ethstore::ethkey::{Generator, Random};
|
use ethstore::ethkey::{Generator, Random};
|
||||||
|
use machine::executed::Executed;
|
||||||
use miner::pool::local_transactions::Status as LocalTransactionStatus;
|
use miner::pool::local_transactions::Status as LocalTransactionStatus;
|
||||||
use sync::ManageNetwork;
|
use sync::ManageNetwork;
|
||||||
use types::receipt::{LocalizedReceipt, TransactionOutcome};
|
use types::{
|
||||||
|
ids::TransactionId,
|
||||||
|
receipt::{LocalizedReceipt, TransactionOutcome},
|
||||||
|
};
|
||||||
|
|
||||||
use jsonrpc_core::IoHandler;
|
use jsonrpc_core::IoHandler;
|
||||||
use v1::{Parity, ParityClient};
|
use v1::{Parity, ParityClient};
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use ethcore::executed::Executed;
|
use machine::executed::Executed;
|
||||||
use trace::trace::{Action, Res, Call};
|
use trace::trace::{Action, Res, Call};
|
||||||
use trace::LocalizedTrace;
|
use trace::LocalizedTrace;
|
||||||
use ethcore::client::TestBlockChainClient;
|
use ethcore::client::TestBlockChainClient;
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
use std::fmt;
|
use std::fmt;
|
||||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||||
use serde::de::{Error, Visitor, MapAccess};
|
use serde::de::{Error, Visitor, MapAccess};
|
||||||
use ethcore::client::BlockId;
|
use types::ids::BlockId;
|
||||||
use ethereum_types::H256;
|
use ethereum_types::H256;
|
||||||
|
|
||||||
/// Represents rpc api block number param.
|
/// Represents rpc api block number param.
|
||||||
@ -191,7 +191,7 @@ pub fn block_number_to_id(number: BlockNumber) -> BlockId {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use ethcore::client::BlockId;
|
use types::ids::BlockId;
|
||||||
use super::*;
|
use super::*;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use serde_json;
|
use serde_json;
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
use ethcore::client::Executed;
|
use machine::executed::Executed;
|
||||||
use trace as et;
|
use trace as et;
|
||||||
use trace::{FlatTrace, LocalizedTrace as EthLocalizedTrace, trace, TraceError};
|
use trace::{FlatTrace, LocalizedTrace as EthLocalizedTrace, trace, TraceError};
|
||||||
use ethereum_types::{H160, H256, U256};
|
use ethereum_types::{H160, H256, U256};
|
||||||
|
@ -16,9 +16,12 @@
|
|||||||
|
|
||||||
//! Trace filter deserialization.
|
//! Trace filter deserialization.
|
||||||
|
|
||||||
use ethcore::client::BlockId;
|
|
||||||
use ethcore::client;
|
use ethcore::client;
|
||||||
use ethereum_types::H160;
|
use ethereum_types::H160;
|
||||||
|
use types::{
|
||||||
|
ids::BlockId,
|
||||||
|
trace_filter::Filter,
|
||||||
|
};
|
||||||
use v1::types::BlockNumber;
|
use v1::types::BlockNumber;
|
||||||
|
|
||||||
/// Trace filter
|
/// Trace filter
|
||||||
@ -40,8 +43,8 @@ pub struct TraceFilter {
|
|||||||
pub count: Option<usize>,
|
pub count: Option<usize>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Into<client::TraceFilter> for TraceFilter {
|
impl Into<Filter> for TraceFilter {
|
||||||
fn into(self) -> client::TraceFilter {
|
fn into(self) -> Filter {
|
||||||
let num_to_id = |num| match num {
|
let num_to_id = |num| match num {
|
||||||
BlockNumber::Hash { hash, .. } => BlockId::Hash(hash),
|
BlockNumber::Hash { hash, .. } => BlockId::Hash(hash),
|
||||||
BlockNumber::Num(n) => BlockId::Number(n),
|
BlockNumber::Num(n) => BlockId::Number(n),
|
||||||
@ -54,7 +57,7 @@ impl Into<client::TraceFilter> for TraceFilter {
|
|||||||
};
|
};
|
||||||
let start = self.from_block.map_or(BlockId::Latest, &num_to_id);
|
let start = self.from_block.map_or(BlockId::Latest, &num_to_id);
|
||||||
let end = self.to_block.map_or(BlockId::Latest, &num_to_id);
|
let end = self.to_block.map_or(BlockId::Latest, &num_to_id);
|
||||||
client::TraceFilter {
|
Filter {
|
||||||
range: start..end,
|
range: start..end,
|
||||||
from_address: self.from_address.map_or_else(Vec::new, |x| x.into_iter().map(Into::into).collect()),
|
from_address: self.from_address.map_or_else(Vec::new, |x| x.into_iter().map(Into::into).collect()),
|
||||||
to_address: self.to_address.map_or_else(Vec::new, |x| x.into_iter().map(Into::into).collect()),
|
to_address: self.to_address.map_or_else(Vec::new, |x| x.into_iter().map(Into::into).collect()),
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user