Convert to jsonrpc-derive, use jsonrpc-* from crates.io (#10298)
* Use jsonrpc crates on local path * Convert all RPC traits to use jsonrpc-derive * Use local jsonrpc at top level * Upgrade remaining jsonrpc dependencies * Checkout Cargo.lock to master HEAD * Use jsonrpc-* 10.0.1 from crates.io * Attribute after docs
This commit is contained in:
parent
06cae8a535
commit
89ae0f0ea0
188
Cargo.lock
generated
188
Cargo.lock
generated
@ -637,7 +637,7 @@ dependencies = [
|
|||||||
"heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"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)",
|
||||||
"syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1060,9 +1060,8 @@ version = "1.12.0"
|
|||||||
dependencies = [
|
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.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-macros 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-tcp-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-tcp-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
|
||||||
"keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1279,7 +1278,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
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)",
|
||||||
"syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1778,8 +1777,8 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonrpc-core"
|
name = "jsonrpc-core"
|
||||||
version = "9.0.0"
|
version = "10.0.1"
|
||||||
source = "git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2#84360bf1d03821b8fd669a6a95fcdf847aaf6cca"
|
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.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1788,14 +1787,24 @@ dependencies = [
|
|||||||
"serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jsonrpc-derive"
|
||||||
|
version = "10.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"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)",
|
||||||
|
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonrpc-http-server"
|
name = "jsonrpc-http-server"
|
||||||
version = "9.0.0"
|
version = "10.0.1"
|
||||||
source = "git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2#84360bf1d03821b8fd669a6a95fcdf847aaf6cca"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"hyper 0.12.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.12.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-server-utils 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-server-utils 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (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)",
|
||||||
"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)",
|
||||||
@ -1803,45 +1812,36 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonrpc-ipc-server"
|
name = "jsonrpc-ipc-server"
|
||||||
version = "9.0.0"
|
version = "10.0.1"
|
||||||
source = "git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2#84360bf1d03821b8fd669a6a95fcdf847aaf6cca"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-server-utils 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-server-utils 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (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.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.7.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)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonrpc-macros"
|
name = "jsonrpc-pubsub"
|
||||||
version = "9.0.0"
|
version = "10.0.1"
|
||||||
source = "git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2#84360bf1d03821b8fd669a6a95fcdf847aaf6cca"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "jsonrpc-pubsub"
|
|
||||||
version = "9.0.0"
|
|
||||||
source = "git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2#84360bf1d03821b8fd669a6a95fcdf847aaf6cca"
|
|
||||||
dependencies = [
|
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonrpc-server-utils"
|
name = "jsonrpc-server-utils"
|
||||||
version = "9.0.0"
|
version = "10.0.1"
|
||||||
source = "git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2#84360bf1d03821b8fd669a6a95fcdf847aaf6cca"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"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 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1852,28 +1852,28 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonrpc-tcp-server"
|
name = "jsonrpc-tcp-server"
|
||||||
version = "9.0.0"
|
version = "10.0.1"
|
||||||
source = "git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2#84360bf1d03821b8fd669a6a95fcdf847aaf6cca"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-server-utils 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-server-utils 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (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.7.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)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jsonrpc-ws-server"
|
name = "jsonrpc-ws-server"
|
||||||
version = "9.0.0"
|
version = "10.0.1"
|
||||||
source = "git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2#84360bf1d03821b8fd669a6a95fcdf847aaf6cca"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"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)",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-server-utils 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-server-utils 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parity-ws 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"parking_lot 0.7.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.7.9 (git+https://github.com/tomusdrw/ws-rs)",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2457,7 +2457,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)",
|
||||||
"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)",
|
||||||
"journaldb 0.2.0",
|
"journaldb 0.2.0",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.1.2 (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)",
|
||||||
@ -2527,8 +2527,8 @@ 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)",
|
||||||
"ethcore 1.12.0",
|
"ethcore 1.12.0",
|
||||||
"ethereum-types 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-http-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-http-server 10.0.1 (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.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2612,12 +2612,12 @@ 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)",
|
||||||
"hardware-wallet 1.12.0",
|
"hardware-wallet 1.12.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)",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-http-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-derive 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-ipc-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-http-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-macros 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-ipc-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-pubsub 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-ws-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-ws-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.1.2 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2653,8 +2653,8 @@ name = "parity-rpc-client"
|
|||||||
version = "1.4.0"
|
version = "1.4.0"
|
||||||
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)",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-ws-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-ws-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (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)",
|
||||||
@ -2764,9 +2764,9 @@ dependencies = [
|
|||||||
"ethereum-types 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ethereum-types 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ethkey 0.3.0",
|
"ethkey 0.3.0",
|
||||||
"hex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-macros 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-derive 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-pubsub 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"memzero 0.1.0",
|
"memzero 0.1.0",
|
||||||
"ordered-float 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ordered-float 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2792,6 +2792,23 @@ dependencies = [
|
|||||||
"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)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "parity-ws"
|
||||||
|
version = "0.8.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"bytes 0.4.10 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"mio 0.6.16 (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.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking_lot"
|
name = "parking_lot"
|
||||||
version = "0.6.4"
|
version = "0.6.4"
|
||||||
@ -3318,7 +3335,7 @@ 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.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlp 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3452,7 +3469,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
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)",
|
||||||
"syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3592,7 +3609,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "0.15.11"
|
version = "0.15.26"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
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)",
|
||||||
@ -3615,7 +3632,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
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)",
|
||||||
"syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -4181,7 +4198,7 @@ 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)",
|
||||||
"regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"validator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"validator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -4306,9 +4323,9 @@ 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)",
|
||||||
"ethcore-network 1.12.0",
|
"ethcore-network 1.12.0",
|
||||||
"ethcore-network-devp2p 1.12.0",
|
"ethcore-network-devp2p 1.12.0",
|
||||||
"jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-http-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-http-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)",
|
"jsonrpc-pubsub 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"panic_hook 0.1.0",
|
"panic_hook 0.1.0",
|
||||||
"parity-whisper 0.1.0",
|
"parity-whisper 0.1.0",
|
||||||
@ -4362,23 +4379,6 @@ dependencies = [
|
|||||||
"winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ws"
|
|
||||||
version = "0.7.9"
|
|
||||||
source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21"
|
|
||||||
dependencies = [
|
|
||||||
"byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"bytes 0.4.10 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"mio 0.6.16 (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.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ws2_32-sys"
|
name = "ws2_32-sys"
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
@ -4529,14 +4529,14 @@ dependencies = [
|
|||||||
"checksum jemallocator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9f0cd42ac65f758063fea55126b0148b1ce0a6354ff78e07a4d6806bc65c4ab3"
|
"checksum jemallocator 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9f0cd42ac65f758063fea55126b0148b1ce0a6354ff78e07a4d6806bc65c4ab3"
|
||||||
"checksum jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1ecfa3b81afc64d9a6539c4eece96ac9a93c551c713a313800dade8e33d7b5c1"
|
"checksum jni 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1ecfa3b81afc64d9a6539c4eece96ac9a93c551c713a313800dade8e33d7b5c1"
|
||||||
"checksum jni-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
|
"checksum jni-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
|
||||||
"checksum jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)" = "<none>"
|
"checksum jsonrpc-core 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a5152c3fda235dfd68341b3edf4121bc4428642c93acbd6de88c26bf95fc5d7"
|
||||||
"checksum jsonrpc-http-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)" = "<none>"
|
"checksum jsonrpc-derive 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8de4e89cf0938dec51a14255556172b1f5208e4d8999d613813eceeae1405d37"
|
||||||
"checksum jsonrpc-ipc-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)" = "<none>"
|
"checksum jsonrpc-http-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "99e1ce36c7cc9dcab398024d76849ab2cb917ee812653bce6f74fc9eb7c82d16"
|
||||||
"checksum jsonrpc-macros 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)" = "<none>"
|
"checksum jsonrpc-ipc-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fac6b8682243740a32bfb288880c71cc06eca29616cdf551e4136a190b11b96d"
|
||||||
"checksum jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)" = "<none>"
|
"checksum jsonrpc-pubsub 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "56608ed54b1b2a69f4357cb8bdfbcbd99fe1179383c03a09bb428931bd35f592"
|
||||||
"checksum jsonrpc-server-utils 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)" = "<none>"
|
"checksum jsonrpc-server-utils 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5521613b31ea22d36d9f95ad642058dccec846a94ed8690957652d479f620707"
|
||||||
"checksum jsonrpc-tcp-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)" = "<none>"
|
"checksum jsonrpc-tcp-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c873dac37a601fb88d40ba49eeac3f1aa60953c06b2e99ddbf0569b6f8028478"
|
||||||
"checksum jsonrpc-ws-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-2.2)" = "<none>"
|
"checksum jsonrpc-ws-server 10.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20b8333a5a6e6ccbcf5c90f90919de557cba4929efa164e9bd0e8e497eb20e46"
|
||||||
"checksum keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "253bbe643c32c816bf58fa5a88248fafedeebb139705ad17a62add3517854a86"
|
"checksum keccak-hash 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "253bbe643c32c816bf58fa5a88248fafedeebb139705ad17a62add3517854a86"
|
||||||
"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
|
"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
|
||||||
"checksum kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "72ae89206cea31c32014b39d5a454b96135894221610dbfd19cf4d2d044fa546"
|
"checksum kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "72ae89206cea31c32014b39d5a454b96135894221610dbfd19cf4d2d044fa546"
|
||||||
@ -4600,6 +4600,7 @@ dependencies = [
|
|||||||
"checksum parity-tokio-ipc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eb002c2d3539ccd3b82bd915ec060028d4ab350ad203dbffa20028c1e483af5b"
|
"checksum parity-tokio-ipc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eb002c2d3539ccd3b82bd915ec060028d4ab350ad203dbffa20028c1e483af5b"
|
||||||
"checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc"
|
"checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc"
|
||||||
"checksum parity-wordlist 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf13102febd98f4ad416a526b42deb82daf482626ba6ab10d0ebf8f45327514c"
|
"checksum parity-wordlist 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf13102febd98f4ad416a526b42deb82daf482626ba6ab10d0ebf8f45327514c"
|
||||||
|
"checksum parity-ws 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2fec5048fba72a2e01baeb0d08089db79aead4b57e2443df172fb1840075a233"
|
||||||
"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5"
|
"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5"
|
||||||
"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf"
|
"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf"
|
||||||
"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
|
"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
|
||||||
@ -4688,7 +4689,7 @@ dependencies = [
|
|||||||
"checksum string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00caf261d6f90f588f8450b8e1230fa0d5be49ee6140fdfbcb55335aff350970"
|
"checksum string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00caf261d6f90f588f8450b8e1230fa0d5be49ee6140fdfbcb55335aff350970"
|
||||||
"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
|
"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
|
||||||
"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
|
"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
|
||||||
"checksum syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b036b7b35e846707c0e55c2c9441fa47867c0f87fca416921db3261b1d8c741a"
|
"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9"
|
||||||
"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
|
"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
|
||||||
"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
|
"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
|
||||||
"checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe"
|
"checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe"
|
||||||
@ -4768,7 +4769,6 @@ dependencies = [
|
|||||||
"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab"
|
"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab"
|
||||||
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||||
"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
|
"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
|
||||||
"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "<none>"
|
|
||||||
"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
|
"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
|
||||||
"checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61"
|
"checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61"
|
||||||
"checksum xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c1cb601d29fe2c2ac60a2b2e5e293994d87a1f6fa9687a31a15270f909be9c2"
|
"checksum xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c1cb601d29fe2c2ac60a2b2e5e293994d87a1f6fa9687a31a15270f909be9c2"
|
||||||
|
@ -29,7 +29,7 @@ serde_derive = "1.0"
|
|||||||
futures = "0.1"
|
futures = "0.1"
|
||||||
fdlimit = "0.1"
|
fdlimit = "0.1"
|
||||||
ctrlc = { git = "https://github.com/paritytech/rust-ctrlc.git" }
|
ctrlc = { git = "https://github.com/paritytech/rust-ctrlc.git" }
|
||||||
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-core = "10.0.1"
|
||||||
ethcore = { path = "ethcore", features = ["parity"] }
|
ethcore = { path = "ethcore", features = ["parity"] }
|
||||||
parity-bytes = "0.1"
|
parity-bytes = "0.1"
|
||||||
common-types = { path = "ethcore/types" }
|
common-types = { path = "ethcore/types" }
|
||||||
|
@ -14,7 +14,7 @@ serde_json = "1.0"
|
|||||||
url = "1.2.0"
|
url = "1.2.0"
|
||||||
matches = "0.1"
|
matches = "0.1"
|
||||||
parking_lot = "0.7"
|
parking_lot = "0.7"
|
||||||
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-core = "10.0.1"
|
||||||
jsonrpc-ws-server = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-ws-server = "10.0.1"
|
||||||
parity-rpc = { path = "../../rpc" }
|
parity-rpc = { path = "../../rpc" }
|
||||||
keccak-hash = "0.1"
|
keccak-hash = "0.1"
|
||||||
|
@ -9,8 +9,8 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
|||||||
ethcore = { path = "../ethcore" }
|
ethcore = { path = "../ethcore" }
|
||||||
parity-bytes = "0.1"
|
parity-bytes = "0.1"
|
||||||
ethereum-types = "0.4"
|
ethereum-types = "0.4"
|
||||||
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-core = "10.0.1"
|
||||||
jsonrpc-http-server = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-http-server = "10.0.1"
|
||||||
rlp = { version = "0.3.0", features = ["ethereum"] }
|
rlp = { version = "0.3.0", features = ["ethereum"] }
|
||||||
cid = "0.3"
|
cid = "0.3"
|
||||||
multihash = "0.8"
|
multihash = "0.8"
|
||||||
|
@ -8,9 +8,8 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
ethereum-types = "0.4"
|
ethereum-types = "0.4"
|
||||||
keccak-hash = "0.1"
|
keccak-hash = "0.1"
|
||||||
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-core = "10.0.1"
|
||||||
jsonrpc-macros = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-tcp-server = "10.0.1"
|
||||||
jsonrpc-tcp-server = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
parking_lot = "0.7"
|
parking_lot = "0.7"
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
extern crate jsonrpc_tcp_server;
|
extern crate jsonrpc_tcp_server;
|
||||||
extern crate jsonrpc_core;
|
extern crate jsonrpc_core;
|
||||||
extern crate jsonrpc_macros;
|
|
||||||
extern crate ethereum_types;
|
extern crate ethereum_types;
|
||||||
extern crate keccak_hash as hash;
|
extern crate keccak_hash as hash;
|
||||||
extern crate parking_lot;
|
extern crate parking_lot;
|
||||||
@ -39,8 +38,7 @@ use jsonrpc_tcp_server::{
|
|||||||
Server as JsonRpcServer, ServerBuilder as JsonRpcServerBuilder,
|
Server as JsonRpcServer, ServerBuilder as JsonRpcServerBuilder,
|
||||||
RequestContext, MetaExtractor, Dispatcher, PushMessageError,
|
RequestContext, MetaExtractor, Dispatcher, PushMessageError,
|
||||||
};
|
};
|
||||||
use jsonrpc_core::{MetaIoHandler, Params, to_value, Value, Metadata, Compatibility};
|
use jsonrpc_core::{MetaIoHandler, Params, to_value, Value, Metadata, Compatibility, IoDelegate};
|
||||||
use jsonrpc_macros::IoDelegate;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
|
@ -27,12 +27,12 @@ tokio-timer = "0.1"
|
|||||||
transient-hashmap = "0.4"
|
transient-hashmap = "0.4"
|
||||||
itertools = "0.5"
|
itertools = "0.5"
|
||||||
|
|
||||||
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-core = "10.0.1"
|
||||||
jsonrpc-http-server = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-derive = "10.0.1"
|
||||||
jsonrpc-ws-server = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-http-server = "10.0.1"
|
||||||
jsonrpc-ipc-server = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-ws-server = "10.0.1"
|
||||||
jsonrpc-macros = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-ipc-server = "10.0.1"
|
||||||
jsonrpc-pubsub = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-pubsub = "10.0.1"
|
||||||
|
|
||||||
common-types = { path = "../ethcore/types" }
|
common-types = { path = "../ethcore/types" }
|
||||||
ethash = { path = "../ethash" }
|
ethash = { path = "../ethash" }
|
||||||
|
@ -37,6 +37,7 @@ extern crate tokio_timer;
|
|||||||
extern crate transient_hashmap;
|
extern crate transient_hashmap;
|
||||||
|
|
||||||
extern crate jsonrpc_core;
|
extern crate jsonrpc_core;
|
||||||
|
extern crate jsonrpc_derive;
|
||||||
extern crate jsonrpc_http_server as http;
|
extern crate jsonrpc_http_server as http;
|
||||||
extern crate jsonrpc_ipc_server as ipc;
|
extern crate jsonrpc_ipc_server as ipc;
|
||||||
extern crate jsonrpc_pubsub;
|
extern crate jsonrpc_pubsub;
|
||||||
@ -75,8 +76,6 @@ extern crate fake_hardware_wallet as hardware_wallet;
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
extern crate log;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate jsonrpc_macros;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
@ -29,7 +29,6 @@ use ethcore::executed::ExecutionError;
|
|||||||
use jsonrpc_core::{Result, Error};
|
use jsonrpc_core::{Result, Error};
|
||||||
use jsonrpc_core::futures::{future, Future};
|
use jsonrpc_core::futures::{future, Future};
|
||||||
use jsonrpc_core::futures::future::Either;
|
use jsonrpc_core::futures::future::Either;
|
||||||
use jsonrpc_macros::Trailing;
|
|
||||||
|
|
||||||
use light::cache::Cache;
|
use light::cache::Cache;
|
||||||
use light::client::LightChainClient;
|
use light::client::LightChainClient;
|
||||||
@ -202,7 +201,7 @@ impl LightFetch {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Helper for getting proved execution.
|
/// Helper for getting proved execution.
|
||||||
pub fn proved_read_only_execution(&self, req: CallRequest, num: Trailing<BlockNumber>) -> impl Future<Item = ExecutionResult, Error = Error> + Send {
|
pub fn proved_read_only_execution(&self, req: CallRequest, num: Option<BlockNumber>) -> impl Future<Item = ExecutionResult, Error = Error> + Send {
|
||||||
const DEFAULT_GAS_PRICE: u64 = 21_000;
|
const DEFAULT_GAS_PRICE: u64 = 21_000;
|
||||||
// (21000 G_transaction + 32000 G_create + some marginal to allow a few operations)
|
// (21000 G_transaction + 32000 G_create + some marginal to allow a few operations)
|
||||||
const START_GAS: u64 = 60_000;
|
const START_GAS: u64 = 60_000;
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
use std::{ops, str};
|
use std::{ops, str};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use jsonrpc_macros::pubsub::{Subscriber, Sink, SubscriptionId};
|
use jsonrpc_pubsub::{typed::{Subscriber, Sink}, SubscriptionId};
|
||||||
use rand::{Rng, StdRng};
|
use rand::{Rng, StdRng};
|
||||||
use v1::types::H64;
|
use v1::types::H64;
|
||||||
|
|
||||||
|
@ -39,7 +39,6 @@ use types::filter::Filter as EthcoreFilter;
|
|||||||
|
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
use jsonrpc_core::futures::future;
|
use jsonrpc_core::futures::future;
|
||||||
use jsonrpc_macros::Trailing;
|
|
||||||
|
|
||||||
use v1::helpers::{self, errors, limit_logs, fake_sign};
|
use v1::helpers::{self, errors, limit_logs, fake_sign};
|
||||||
use v1::helpers::dispatch::{FullDispatcher, default_gas_price};
|
use v1::helpers::dispatch::{FullDispatcher, default_gas_price};
|
||||||
@ -568,7 +567,7 @@ impl<C, SN: ?Sized, S: ?Sized, M, EM, T: StateInfo + 'static> Eth for EthClient<
|
|||||||
Ok(RpcU256::from(self.client.chain_info().best_block_number))
|
Ok(RpcU256::from(self.client.chain_info().best_block_number))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn balance(&self, address: RpcH160, num: Trailing<BlockNumber>) -> BoxFuture<RpcU256> {
|
fn balance(&self, address: RpcH160, num: Option<BlockNumber>) -> BoxFuture<RpcU256> {
|
||||||
let address = address.into();
|
let address = address.into();
|
||||||
|
|
||||||
let num = num.unwrap_or_default();
|
let num = num.unwrap_or_default();
|
||||||
@ -582,7 +581,7 @@ impl<C, SN: ?Sized, S: ?Sized, M, EM, T: StateInfo + 'static> Eth for EthClient<
|
|||||||
Box::new(future::done(res))
|
Box::new(future::done(res))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn proof(&self, address: RpcH160, values: Vec<RpcH256>, num: Trailing<BlockNumber>) -> BoxFuture<EthAccount> {
|
fn proof(&self, address: RpcH160, values: Vec<RpcH256>, num: Option<BlockNumber>) -> BoxFuture<EthAccount> {
|
||||||
try_bf!(errors::require_experimental(self.options.allow_experimental_rpcs, "1186"));
|
try_bf!(errors::require_experimental(self.options.allow_experimental_rpcs, "1186"));
|
||||||
|
|
||||||
let a: H160 = address.clone().into();
|
let a: H160 = address.clone().into();
|
||||||
@ -625,7 +624,7 @@ impl<C, SN: ?Sized, S: ?Sized, M, EM, T: StateInfo + 'static> Eth for EthClient<
|
|||||||
Box::new(future::done(res))
|
Box::new(future::done(res))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn storage_at(&self, address: RpcH160, pos: RpcU256, num: Trailing<BlockNumber>) -> BoxFuture<RpcH256> {
|
fn storage_at(&self, address: RpcH160, pos: RpcU256, num: Option<BlockNumber>) -> BoxFuture<RpcH256> {
|
||||||
let address: Address = RpcH160::into(address);
|
let address: Address = RpcH160::into(address);
|
||||||
let position: U256 = RpcU256::into(pos);
|
let position: U256 = RpcU256::into(pos);
|
||||||
|
|
||||||
@ -640,7 +639,7 @@ impl<C, SN: ?Sized, S: ?Sized, M, EM, T: StateInfo + 'static> Eth for EthClient<
|
|||||||
Box::new(future::done(res))
|
Box::new(future::done(res))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn transaction_count(&self, address: RpcH160, num: Trailing<BlockNumber>) -> BoxFuture<RpcU256> {
|
fn transaction_count(&self, address: RpcH160, num: Option<BlockNumber>) -> BoxFuture<RpcU256> {
|
||||||
let address: Address = RpcH160::into(address);
|
let address: Address = RpcH160::into(address);
|
||||||
|
|
||||||
let res = match num.unwrap_or_default() {
|
let res = match num.unwrap_or_default() {
|
||||||
@ -723,7 +722,7 @@ impl<C, SN: ?Sized, S: ?Sized, M, EM, T: StateInfo + 'static> Eth for EthClient<
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn code_at(&self, address: RpcH160, num: Trailing<BlockNumber>) -> BoxFuture<Bytes> {
|
fn code_at(&self, address: RpcH160, num: Option<BlockNumber>) -> BoxFuture<Bytes> {
|
||||||
let address: Address = RpcH160::into(address);
|
let address: Address = RpcH160::into(address);
|
||||||
|
|
||||||
let num = num.unwrap_or_default();
|
let num = num.unwrap_or_default();
|
||||||
@ -832,7 +831,7 @@ impl<C, SN: ?Sized, S: ?Sized, M, EM, T: StateInfo + 'static> Eth for EthClient<
|
|||||||
base_logs(&*self.client, &*self.miner, filter.into())
|
base_logs(&*self.client, &*self.miner, filter.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn work(&self, no_new_work_timeout: Trailing<u64>) -> Result<Work> {
|
fn work(&self, no_new_work_timeout: Option<u64>) -> Result<Work> {
|
||||||
let no_new_work_timeout = no_new_work_timeout.unwrap_or_default();
|
let no_new_work_timeout = no_new_work_timeout.unwrap_or_default();
|
||||||
|
|
||||||
// check if we're still syncing and return empty strings in that case
|
// check if we're still syncing and return empty strings in that case
|
||||||
@ -918,7 +917,7 @@ impl<C, SN: ?Sized, S: ?Sized, M, EM, T: StateInfo + 'static> Eth for EthClient<
|
|||||||
self.send_raw_transaction(raw)
|
self.send_raw_transaction(raw)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn call(&self, request: CallRequest, num: Trailing<BlockNumber>) -> BoxFuture<Bytes> {
|
fn call(&self, request: CallRequest, num: Option<BlockNumber>) -> BoxFuture<Bytes> {
|
||||||
let request = CallRequest::into(request);
|
let request = CallRequest::into(request);
|
||||||
let signed = try_bf!(fake_sign::sign_call(request));
|
let signed = try_bf!(fake_sign::sign_call(request));
|
||||||
|
|
||||||
@ -958,7 +957,7 @@ impl<C, SN: ?Sized, S: ?Sized, M, EM, T: StateInfo + 'static> Eth for EthClient<
|
|||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn estimate_gas(&self, request: CallRequest, num: Trailing<BlockNumber>) -> BoxFuture<RpcU256> {
|
fn estimate_gas(&self, request: CallRequest, num: Option<BlockNumber>) -> BoxFuture<RpcU256> {
|
||||||
let request = CallRequest::into(request);
|
let request = CallRequest::into(request);
|
||||||
let signed = try_bf!(fake_sign::sign_call(request));
|
let signed = try_bf!(fake_sign::sign_call(request));
|
||||||
let num = num.unwrap_or_default();
|
let num = num.unwrap_or_default();
|
||||||
|
@ -21,9 +21,7 @@ use std::collections::BTreeMap;
|
|||||||
|
|
||||||
use jsonrpc_core::{BoxFuture, Result, Error};
|
use jsonrpc_core::{BoxFuture, Result, Error};
|
||||||
use jsonrpc_core::futures::{self, Future, IntoFuture};
|
use jsonrpc_core::futures::{self, Future, IntoFuture};
|
||||||
use jsonrpc_macros::Trailing;
|
use jsonrpc_pubsub::{SubscriptionId, typed::{Sink, Subscriber}};
|
||||||
use jsonrpc_macros::pubsub::{Sink, Subscriber};
|
|
||||||
use jsonrpc_pubsub::SubscriptionId;
|
|
||||||
|
|
||||||
use v1::helpers::{errors, limit_logs, Subscribers};
|
use v1::helpers::{errors, limit_logs, Subscribers};
|
||||||
use v1::helpers::light_fetch::LightFetch;
|
use v1::helpers::light_fetch::LightFetch;
|
||||||
@ -262,7 +260,7 @@ impl<C: Send + Sync + 'static> EthPubSub for EthPubSubClient<C> {
|
|||||||
_meta: Metadata,
|
_meta: Metadata,
|
||||||
subscriber: Subscriber<pubsub::Result>,
|
subscriber: Subscriber<pubsub::Result>,
|
||||||
kind: pubsub::Kind,
|
kind: pubsub::Kind,
|
||||||
params: Trailing<pubsub::Params>,
|
params: Option<pubsub::Params>,
|
||||||
) {
|
) {
|
||||||
let error = match (kind, params.into()) {
|
let error = match (kind, params.into()) {
|
||||||
(pubsub::Kind::NewHeads, None) => {
|
(pubsub::Kind::NewHeads, None) => {
|
||||||
@ -299,7 +297,7 @@ impl<C: Send + Sync + 'static> EthPubSub for EthPubSubClient<C> {
|
|||||||
let _ = subscriber.reject(error);
|
let _ = subscriber.reject(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn unsubscribe(&self, id: SubscriptionId) -> Result<bool> {
|
fn unsubscribe(&self, _: Option<Self::Metadata>, id: SubscriptionId) -> Result<bool> {
|
||||||
let res = self.heads_subscribers.write().remove(&id).is_some();
|
let res = self.heads_subscribers.write().remove(&id).is_some();
|
||||||
let res2 = self.logs_subscribers.write().remove(&id).is_some();
|
let res2 = self.logs_subscribers.write().remove(&id).is_some();
|
||||||
let res3 = self.transactions_subscribers.write().remove(&id).is_some();
|
let res3 = self.transactions_subscribers.write().remove(&id).is_some();
|
||||||
|
@ -22,7 +22,6 @@ use std::sync::Arc;
|
|||||||
use jsonrpc_core::{Result, BoxFuture};
|
use jsonrpc_core::{Result, BoxFuture};
|
||||||
use jsonrpc_core::futures::{future, Future};
|
use jsonrpc_core::futures::{future, Future};
|
||||||
use jsonrpc_core::futures::future::Either;
|
use jsonrpc_core::futures::future::Either;
|
||||||
use jsonrpc_macros::Trailing;
|
|
||||||
|
|
||||||
use light::cache::Cache as LightDataCache;
|
use light::cache::Cache as LightDataCache;
|
||||||
use light::client::LightChainClient;
|
use light::client::LightChainClient;
|
||||||
@ -272,12 +271,12 @@ impl<T: LightChainClient + 'static> Eth for EthClient<T> {
|
|||||||
Ok(self.client.chain_info().best_block_number.into())
|
Ok(self.client.chain_info().best_block_number.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn balance(&self, address: RpcH160, num: Trailing<BlockNumber>) -> BoxFuture<RpcU256> {
|
fn balance(&self, address: RpcH160, num: Option<BlockNumber>) -> BoxFuture<RpcU256> {
|
||||||
Box::new(self.fetcher().account(address.into(), num.unwrap_or_default().to_block_id())
|
Box::new(self.fetcher().account(address.into(), num.unwrap_or_default().to_block_id())
|
||||||
.map(|acc| acc.map_or(0.into(), |a| a.balance).into()))
|
.map(|acc| acc.map_or(0.into(), |a| a.balance).into()))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn storage_at(&self, _address: RpcH160, _key: RpcU256, _num: Trailing<BlockNumber>) -> BoxFuture<RpcH256> {
|
fn storage_at(&self, _address: RpcH160, _key: RpcU256, _num: Option<BlockNumber>) -> BoxFuture<RpcH256> {
|
||||||
Box::new(future::err(errors::unimplemented(None)))
|
Box::new(future::err(errors::unimplemented(None)))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,7 +288,7 @@ impl<T: LightChainClient + 'static> Eth for EthClient<T> {
|
|||||||
Box::new(self.rich_block(num.to_block_id(), include_txs).map(Some))
|
Box::new(self.rich_block(num.to_block_id(), include_txs).map(Some))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn transaction_count(&self, address: RpcH160, num: Trailing<BlockNumber>) -> BoxFuture<RpcU256> {
|
fn transaction_count(&self, address: RpcH160, num: Option<BlockNumber>) -> BoxFuture<RpcU256> {
|
||||||
Box::new(self.fetcher().account(address.into(), num.unwrap_or_default().to_block_id())
|
Box::new(self.fetcher().account(address.into(), num.unwrap_or_default().to_block_id())
|
||||||
.map(|acc| acc.map_or(0.into(), |a| a.nonce).into()))
|
.map(|acc| acc.map_or(0.into(), |a| a.nonce).into()))
|
||||||
}
|
}
|
||||||
@ -358,7 +357,7 @@ impl<T: LightChainClient + 'static> Eth for EthClient<T> {
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn code_at(&self, address: RpcH160, num: Trailing<BlockNumber>) -> BoxFuture<Bytes> {
|
fn code_at(&self, address: RpcH160, num: Option<BlockNumber>) -> BoxFuture<Bytes> {
|
||||||
Box::new(self.fetcher().code(address.into(), num.unwrap_or_default().to_block_id()).map(Into::into))
|
Box::new(self.fetcher().code(address.into(), num.unwrap_or_default().to_block_id()).map(Into::into))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,7 +384,7 @@ impl<T: LightChainClient + 'static> Eth for EthClient<T> {
|
|||||||
self.send_raw_transaction(raw)
|
self.send_raw_transaction(raw)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn call(&self, req: CallRequest, num: Trailing<BlockNumber>) -> BoxFuture<Bytes> {
|
fn call(&self, req: CallRequest, num: Option<BlockNumber>) -> BoxFuture<Bytes> {
|
||||||
Box::new(self.fetcher().proved_read_only_execution(req, num).and_then(|res| {
|
Box::new(self.fetcher().proved_read_only_execution(req, num).and_then(|res| {
|
||||||
match res {
|
match res {
|
||||||
Ok(exec) => Ok(exec.output.into()),
|
Ok(exec) => Ok(exec.output.into()),
|
||||||
@ -394,7 +393,7 @@ impl<T: LightChainClient + 'static> Eth for EthClient<T> {
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn estimate_gas(&self, req: CallRequest, num: Trailing<BlockNumber>) -> BoxFuture<RpcU256> {
|
fn estimate_gas(&self, req: CallRequest, num: Option<BlockNumber>) -> BoxFuture<RpcU256> {
|
||||||
// TODO: binary chop for more accurate estimates.
|
// TODO: binary chop for more accurate estimates.
|
||||||
Box::new(self.fetcher().proved_read_only_execution(req, num).and_then(|res| {
|
Box::new(self.fetcher().proved_read_only_execution(req, num).and_then(|res| {
|
||||||
match res {
|
match res {
|
||||||
@ -475,7 +474,7 @@ impl<T: LightChainClient + 'static> Eth for EthClient<T> {
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn proof(&self, _address: RpcH160, _values:Vec<RpcH256>, _num: Trailing<BlockNumber>) -> BoxFuture<EthAccount> {
|
fn proof(&self, _address: RpcH160, _values:Vec<RpcH256>, _num: Option<BlockNumber>) -> BoxFuture<EthAccount> {
|
||||||
Box::new(future::err(errors::unimplemented(None)))
|
Box::new(future::err(errors::unimplemented(None)))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,7 +504,7 @@ impl<T: LightChainClient + 'static> Eth for EthClient<T> {
|
|||||||
}).map(move |logs| limit_logs(logs, limit)))
|
}).map(move |logs| limit_logs(logs, limit)))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn work(&self, _timeout: Trailing<u64>) -> Result<Work> {
|
fn work(&self, _timeout: Option<u64>) -> Result<Work> {
|
||||||
Err(errors::light_unimplemented(None))
|
Err(errors::light_unimplemented(None))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,6 @@ use ethcore_logger::RotatingLogger;
|
|||||||
|
|
||||||
use jsonrpc_core::{Result, BoxFuture};
|
use jsonrpc_core::{Result, BoxFuture};
|
||||||
use jsonrpc_core::futures::{future, Future};
|
use jsonrpc_core::futures::{future, Future};
|
||||||
use jsonrpc_macros::Trailing;
|
|
||||||
use v1::helpers::{self, errors, ipfs, SigningQueue, SignerService, NetworkSettings, verify_signature};
|
use v1::helpers::{self, errors, ipfs, SigningQueue, SignerService, NetworkSettings, verify_signature};
|
||||||
use v1::helpers::dispatch::LightDispatcher;
|
use v1::helpers::dispatch::LightDispatcher;
|
||||||
use v1::helpers::light_fetch::{LightFetch, light_all_transactions};
|
use v1::helpers::light_fetch::{LightFetch, light_all_transactions};
|
||||||
@ -232,11 +231,11 @@ impl Parity for ParityClient {
|
|||||||
Ok(Brain::new(phrase).generate().unwrap().address().into())
|
Ok(Brain::new(phrase).generate().unwrap().address().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn list_accounts(&self, _: u64, _: Option<H160>, _: Trailing<BlockNumber>) -> Result<Option<Vec<H160>>> {
|
fn list_accounts(&self, _: u64, _: Option<H160>, _: Option<BlockNumber>) -> Result<Option<Vec<H160>>> {
|
||||||
Err(errors::light_unimplemented(None))
|
Err(errors::light_unimplemented(None))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn list_storage_keys(&self, _: H160, _: u64, _: Option<H256>, _: Trailing<BlockNumber>) -> Result<Option<Vec<H256>>> {
|
fn list_storage_keys(&self, _: H160, _: u64, _: Option<H256>, _: Option<BlockNumber>) -> Result<Option<Vec<H256>>> {
|
||||||
Err(errors::light_unimplemented(None))
|
Err(errors::light_unimplemented(None))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,7 +245,7 @@ impl Parity for ParityClient {
|
|||||||
.map(Into::into)
|
.map(Into::into)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pending_transactions(&self, limit: Trailing<usize>) -> Result<Vec<Transaction>> {
|
fn pending_transactions(&self, limit: Option<usize>) -> Result<Vec<Transaction>> {
|
||||||
let txq = self.light_dispatch.transaction_queue.read();
|
let txq = self.light_dispatch.transaction_queue.read();
|
||||||
let chain_info = self.light_dispatch.client.chain_info();
|
let chain_info = self.light_dispatch.client.chain_info();
|
||||||
Ok(
|
Ok(
|
||||||
@ -365,7 +364,7 @@ impl Parity for ParityClient {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn block_header(&self, number: Trailing<BlockNumber>) -> BoxFuture<RichHeader> {
|
fn block_header(&self, number: Option<BlockNumber>) -> BoxFuture<RichHeader> {
|
||||||
use types::encoded;
|
use types::encoded;
|
||||||
|
|
||||||
let engine = self.light_dispatch.client.engine().clone();
|
let engine = self.light_dispatch.client.engine().clone();
|
||||||
@ -399,7 +398,7 @@ impl Parity for ParityClient {
|
|||||||
Box::new(self.fetcher().header(id).and_then(from_encoded))
|
Box::new(self.fetcher().header(id).and_then(from_encoded))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn block_receipts(&self, number: Trailing<BlockNumber>) -> BoxFuture<Vec<Receipt>> {
|
fn block_receipts(&self, number: Option<BlockNumber>) -> BoxFuture<Vec<Receipt>> {
|
||||||
let id = number.unwrap_or_default().to_block_id();
|
let id = number.unwrap_or_default().to_block_id();
|
||||||
Box::new(self.fetcher().receipts(id).and_then(|receipts| Ok(receipts.into_iter().map(Into::into).collect())))
|
Box::new(self.fetcher().receipts(id).and_then(|receipts| Ok(receipts.into_iter().map(Into::into).collect())))
|
||||||
}
|
}
|
||||||
@ -408,7 +407,7 @@ impl Parity for ParityClient {
|
|||||||
ipfs::cid(content)
|
ipfs::cid(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn call(&self, _requests: Vec<CallRequest>, _block: Trailing<BlockNumber>) -> Result<Vec<Bytes>> {
|
fn call(&self, _requests: Vec<CallRequest>, _block: Option<BlockNumber>) -> Result<Vec<Bytes>> {
|
||||||
Err(errors::light_unimplemented(None))
|
Err(errors::light_unimplemented(None))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
//! Traces api implementation.
|
//! Traces api implementation.
|
||||||
|
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
use jsonrpc_macros::Trailing;
|
|
||||||
use v1::Metadata;
|
use v1::Metadata;
|
||||||
use v1::traits::Traces;
|
use v1::traits::Traces;
|
||||||
use v1::helpers::errors;
|
use v1::helpers::errors;
|
||||||
@ -46,15 +45,15 @@ impl Traces for TracesClient {
|
|||||||
Err(errors::light_unimplemented(None))
|
Err(errors::light_unimplemented(None))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn call(&self, _request: CallRequest, _flags: TraceOptions, _block: Trailing<BlockNumber>) -> Result<TraceResults> {
|
fn call(&self, _request: CallRequest, _flags: TraceOptions, _block: Option<BlockNumber>) -> Result<TraceResults> {
|
||||||
Err(errors::light_unimplemented(None))
|
Err(errors::light_unimplemented(None))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn call_many(&self, _request: Vec<(CallRequest, TraceOptions)>, _block: Trailing<BlockNumber>) -> Result<Vec<TraceResults>> {
|
fn call_many(&self, _request: Vec<(CallRequest, TraceOptions)>, _block: Option<BlockNumber>) -> Result<Vec<TraceResults>> {
|
||||||
Err(errors::light_unimplemented(None))
|
Err(errors::light_unimplemented(None))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn raw_transaction(&self, _raw_transaction: Bytes, _flags: TraceOptions, _block: Trailing<BlockNumber>) -> Result<TraceResults> {
|
fn raw_transaction(&self, _raw_transaction: Bytes, _flags: TraceOptions, _block: Option<BlockNumber>) -> Result<TraceResults> {
|
||||||
Err(errors::light_unimplemented(None))
|
Err(errors::light_unimplemented(None))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,6 @@ use ethkey::{crypto::ecies, Brain, Generator};
|
|||||||
use ethstore::random_phrase;
|
use ethstore::random_phrase;
|
||||||
use jsonrpc_core::futures::future;
|
use jsonrpc_core::futures::future;
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
use jsonrpc_macros::Trailing;
|
|
||||||
use sync::{SyncProvider, ManageNetwork};
|
use sync::{SyncProvider, ManageNetwork};
|
||||||
use types::ids::BlockId;
|
use types::ids::BlockId;
|
||||||
use updater::{Service as UpdateService};
|
use updater::{Service as UpdateService};
|
||||||
@ -252,7 +251,7 @@ impl<C, M, U, S> Parity for ParityClient<C, M, U> where
|
|||||||
Ok(Brain::new(phrase).generate().unwrap().address().into())
|
Ok(Brain::new(phrase).generate().unwrap().address().into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn list_accounts(&self, count: u64, after: Option<H160>, block_number: Trailing<BlockNumber>) -> Result<Option<Vec<H160>>> {
|
fn list_accounts(&self, count: u64, after: Option<H160>, block_number: Option<BlockNumber>) -> Result<Option<Vec<H160>>> {
|
||||||
let number = match block_number.unwrap_or_default() {
|
let number = match block_number.unwrap_or_default() {
|
||||||
BlockNumber::Pending => {
|
BlockNumber::Pending => {
|
||||||
warn!("BlockNumber::Pending is unsupported");
|
warn!("BlockNumber::Pending is unsupported");
|
||||||
@ -267,7 +266,7 @@ impl<C, M, U, S> Parity for ParityClient<C, M, U> where
|
|||||||
.map(|a| a.into_iter().map(Into::into).collect()))
|
.map(|a| a.into_iter().map(Into::into).collect()))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn list_storage_keys(&self, address: H160, count: u64, after: Option<H256>, block_number: Trailing<BlockNumber>) -> Result<Option<Vec<H256>>> {
|
fn list_storage_keys(&self, address: H160, count: u64, after: Option<H256>, block_number: Option<BlockNumber>) -> Result<Option<Vec<H256>>> {
|
||||||
let number = match block_number.unwrap_or_default() {
|
let number = match block_number.unwrap_or_default() {
|
||||||
BlockNumber::Pending => {
|
BlockNumber::Pending => {
|
||||||
warn!("BlockNumber::Pending is unsupported");
|
warn!("BlockNumber::Pending is unsupported");
|
||||||
@ -288,7 +287,7 @@ impl<C, M, U, S> Parity for ParityClient<C, M, U> where
|
|||||||
.map(Into::into)
|
.map(Into::into)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pending_transactions(&self, limit: Trailing<usize>) -> Result<Vec<Transaction>> {
|
fn pending_transactions(&self, limit: Option<usize>) -> Result<Vec<Transaction>> {
|
||||||
let ready_transactions = self.miner.ready_transactions(
|
let ready_transactions = self.miner.ready_transactions(
|
||||||
&*self.client,
|
&*self.client,
|
||||||
limit.unwrap_or_else(usize::max_value),
|
limit.unwrap_or_else(usize::max_value),
|
||||||
@ -394,7 +393,7 @@ impl<C, M, U, S> Parity for ParityClient<C, M, U> where
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn block_header(&self, number: Trailing<BlockNumber>) -> BoxFuture<RichHeader> {
|
fn block_header(&self, number: Option<BlockNumber>) -> BoxFuture<RichHeader> {
|
||||||
const EXTRA_INFO_PROOF: &str = "Object exists in blockchain (fetched earlier), extra_info is always available if object exists; qed";
|
const EXTRA_INFO_PROOF: &str = "Object exists in blockchain (fetched earlier), extra_info is always available if object exists; qed";
|
||||||
let number = number.unwrap_or_default();
|
let number = number.unwrap_or_default();
|
||||||
|
|
||||||
@ -424,7 +423,7 @@ impl<C, M, U, S> Parity for ParityClient<C, M, U> where
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn block_receipts(&self, number: Trailing<BlockNumber>) -> BoxFuture<Vec<Receipt>> {
|
fn block_receipts(&self, number: Option<BlockNumber>) -> BoxFuture<Vec<Receipt>> {
|
||||||
let number = number.unwrap_or_default();
|
let number = number.unwrap_or_default();
|
||||||
|
|
||||||
let id = match number {
|
let id = match number {
|
||||||
@ -449,7 +448,7 @@ impl<C, M, U, S> Parity for ParityClient<C, M, U> where
|
|||||||
ipfs::cid(content)
|
ipfs::cid(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn call(&self, requests: Vec<CallRequest>, num: Trailing<BlockNumber>) -> Result<Vec<Bytes>> {
|
fn call(&self, requests: Vec<CallRequest>, num: Option<BlockNumber>) -> Result<Vec<Bytes>> {
|
||||||
let requests = requests
|
let requests = requests
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|request| Ok((
|
.map(|request| Ok((
|
||||||
|
@ -22,8 +22,7 @@ use parking_lot::RwLock;
|
|||||||
|
|
||||||
use jsonrpc_core::{self as core, Result, MetaIoHandler};
|
use jsonrpc_core::{self as core, Result, MetaIoHandler};
|
||||||
use jsonrpc_core::futures::{future, Future, Stream, Sink};
|
use jsonrpc_core::futures::{future, Future, Stream, Sink};
|
||||||
use jsonrpc_macros::Trailing;
|
use jsonrpc_pubsub::typed::Subscriber;
|
||||||
use jsonrpc_macros::pubsub::Subscriber;
|
|
||||||
use jsonrpc_pubsub::SubscriptionId;
|
use jsonrpc_pubsub::SubscriptionId;
|
||||||
use tokio_timer;
|
use tokio_timer;
|
||||||
|
|
||||||
@ -81,7 +80,7 @@ impl PubSubClient<core::NoopMiddleware> {
|
|||||||
impl<S: core::Middleware<Metadata>> PubSub for PubSubClient<S> {
|
impl<S: core::Middleware<Metadata>> PubSub for PubSubClient<S> {
|
||||||
type Metadata = Metadata;
|
type Metadata = Metadata;
|
||||||
|
|
||||||
fn parity_subscribe(&self, mut meta: Metadata, subscriber: Subscriber<core::Value>, method: String, params: Trailing<core::Params>) {
|
fn parity_subscribe(&self, mut meta: Metadata, subscriber: Subscriber<core::Value>, method: String, params: Option<core::Params>) {
|
||||||
let params = params.unwrap_or(core::Params::Array(vec![]));
|
let params = params.unwrap_or(core::Params::Array(vec![]));
|
||||||
// Make sure to get rid of PubSub session otherwise it will never be dropped.
|
// Make sure to get rid of PubSub session otherwise it will never be dropped.
|
||||||
meta.session = None;
|
meta.session = None;
|
||||||
@ -100,7 +99,7 @@ impl<S: core::Middleware<Metadata>> PubSub for PubSubClient<S> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parity_unsubscribe(&self, id: SubscriptionId) -> Result<bool> {
|
fn parity_unsubscribe(&self, _: Option<Self::Metadata>, id: SubscriptionId) -> Result<bool> {
|
||||||
let res = self.poll_manager.write().unsubscribe(&id);
|
let res = self.poll_manager.write().unsubscribe(&id);
|
||||||
Ok(res)
|
Ok(res)
|
||||||
}
|
}
|
||||||
|
@ -28,8 +28,7 @@ use types::transaction::{SignedTransaction, PendingTransaction};
|
|||||||
use jsonrpc_core::{Result, BoxFuture, Error};
|
use jsonrpc_core::{Result, BoxFuture, Error};
|
||||||
use jsonrpc_core::futures::{future, Future, IntoFuture};
|
use jsonrpc_core::futures::{future, Future, IntoFuture};
|
||||||
use jsonrpc_core::futures::future::Either;
|
use jsonrpc_core::futures::future::Either;
|
||||||
use jsonrpc_pubsub::SubscriptionId;
|
use jsonrpc_pubsub::{SubscriptionId, typed::{Sink, Subscriber}};
|
||||||
use jsonrpc_macros::pubsub::{Sink, Subscriber};
|
|
||||||
use v1::helpers::dispatch::{self, Dispatcher, WithToken, eth_data_hash};
|
use v1::helpers::dispatch::{self, Dispatcher, WithToken, eth_data_hash};
|
||||||
use v1::helpers::{errors, SignerService, SigningQueue, ConfirmationPayload, FilledTransactionRequest, Subscribers};
|
use v1::helpers::{errors, SignerService, SigningQueue, ConfirmationPayload, FilledTransactionRequest, Subscribers};
|
||||||
use v1::metadata::Metadata;
|
use v1::metadata::Metadata;
|
||||||
@ -255,7 +254,7 @@ impl<D: Dispatcher + 'static> Signer for SignerClient<D> {
|
|||||||
self.subscribers.lock().push(sub)
|
self.subscribers.lock().push(sub)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn unsubscribe_pending(&self, id: SubscriptionId) -> Result<bool> {
|
fn unsubscribe_pending(&self, _: Option<Self::Metadata>, id: SubscriptionId) -> Result<bool> {
|
||||||
let res = self.subscribers.lock().remove(&id).is_some();
|
let res = self.subscribers.lock().remove(&id).is_some();
|
||||||
Ok(res)
|
Ok(res)
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@ use rlp::Rlp;
|
|||||||
use types::transaction::SignedTransaction;
|
use types::transaction::SignedTransaction;
|
||||||
|
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
use jsonrpc_macros::Trailing;
|
|
||||||
use v1::Metadata;
|
use v1::Metadata;
|
||||||
use v1::traits::Traces;
|
use v1::traits::Traces;
|
||||||
use v1::helpers::{errors, fake_sign};
|
use v1::helpers::{errors, fake_sign};
|
||||||
@ -87,7 +86,7 @@ impl<C, S> Traces for TracesClient<C> where
|
|||||||
.map(LocalizedTrace::from))
|
.map(LocalizedTrace::from))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn call(&self, request: CallRequest, flags: TraceOptions, block: Trailing<BlockNumber>) -> Result<TraceResults> {
|
fn call(&self, request: CallRequest, flags: TraceOptions, block: Option<BlockNumber>) -> Result<TraceResults> {
|
||||||
let block = block.unwrap_or_default();
|
let block = block.unwrap_or_default();
|
||||||
|
|
||||||
let request = CallRequest::into(request);
|
let request = CallRequest::into(request);
|
||||||
@ -109,7 +108,7 @@ impl<C, S> Traces for TracesClient<C> where
|
|||||||
.map_err(errors::call)
|
.map_err(errors::call)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn call_many(&self, requests: Vec<(CallRequest, TraceOptions)>, block: Trailing<BlockNumber>) -> Result<Vec<TraceResults>> {
|
fn call_many(&self, requests: Vec<(CallRequest, TraceOptions)>, block: Option<BlockNumber>) -> Result<Vec<TraceResults>> {
|
||||||
let block = block.unwrap_or_default();
|
let block = block.unwrap_or_default();
|
||||||
|
|
||||||
let requests = requests.into_iter()
|
let requests = requests.into_iter()
|
||||||
@ -136,7 +135,7 @@ impl<C, S> Traces for TracesClient<C> where
|
|||||||
.map_err(errors::call)
|
.map_err(errors::call)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn raw_transaction(&self, raw_transaction: Bytes, flags: TraceOptions, block: Trailing<BlockNumber>) -> Result<TraceResults> {
|
fn raw_transaction(&self, raw_transaction: Bytes, flags: TraceOptions, block: Option<BlockNumber>) -> Result<TraceResults> {
|
||||||
let block = block.unwrap_or_default();
|
let block = block.unwrap_or_default();
|
||||||
|
|
||||||
let tx = Rlp::new(&raw_transaction.into_vec()).as_val().map_err(|e| errors::invalid_params("Transaction is not valid RLP", e))?;
|
let tx = Rlp::new(&raw_transaction.into_vec()).as_val().map_err(|e| errors::invalid_params("Transaction is not valid RLP", e))?;
|
||||||
|
@ -17,14 +17,14 @@
|
|||||||
//! Debug RPC interface.
|
//! Debug RPC interface.
|
||||||
|
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
use v1::types::RichBlock;
|
use v1::types::RichBlock;
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Debug RPC interface.
|
/// Debug RPC interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Debug {
|
pub trait Debug {
|
||||||
/// Returns recently seen bad blocks.
|
/// Returns recently seen bad blocks.
|
||||||
#[rpc(name = "debug_getBadBlocks")]
|
#[rpc(name = "debug_getBadBlocks")]
|
||||||
fn bad_blocks(&self) -> Result<Vec<RichBlock>>;
|
fn bad_blocks(&self) -> Result<Vec<RichBlock>>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -16,15 +16,16 @@
|
|||||||
|
|
||||||
//! Eth rpc interface.
|
//! Eth rpc interface.
|
||||||
use jsonrpc_core::{Result, BoxFuture};
|
use jsonrpc_core::{Result, BoxFuture};
|
||||||
use jsonrpc_macros::Trailing;
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
use v1::types::{RichBlock, BlockNumber, Bytes, CallRequest, Filter, FilterChanges, Index, EthAccount};
|
use v1::types::{RichBlock, BlockNumber, Bytes, CallRequest, Filter, FilterChanges, Index, EthAccount};
|
||||||
use v1::types::{Log, Receipt, SyncStatus, Transaction, Work};
|
use v1::types::{Log, Receipt, SyncStatus, Transaction, Work};
|
||||||
use v1::types::{H64, H160, H256, U256, U64};
|
use v1::types::{H64, H160, H256, U256, U64};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Eth rpc interface.
|
/// Eth rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Eth {
|
pub trait Eth {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
/// Returns protocol version encoded as a string (quotes are necessary).
|
/// Returns protocol version encoded as a string (quotes are necessary).
|
||||||
@ -67,15 +68,15 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Returns balance of the given account.
|
/// Returns balance of the given account.
|
||||||
#[rpc(name = "eth_getBalance")]
|
#[rpc(name = "eth_getBalance")]
|
||||||
fn balance(&self, H160, Trailing<BlockNumber>) -> BoxFuture<U256>;
|
fn balance(&self, H160, Option<BlockNumber>) -> BoxFuture<U256>;
|
||||||
|
|
||||||
/// Returns the account- and storage-values of the specified account including the Merkle-proof
|
/// Returns the account- and storage-values of the specified account including the Merkle-proof
|
||||||
#[rpc(name = "eth_getProof")]
|
#[rpc(name = "eth_getProof")]
|
||||||
fn proof(&self, H160, Vec<H256>, Trailing<BlockNumber>) -> BoxFuture<EthAccount>;
|
fn proof(&self, H160, Vec<H256>, Option<BlockNumber>) -> BoxFuture<EthAccount>;
|
||||||
|
|
||||||
/// Returns content of the storage at given address.
|
/// Returns content of the storage at given address.
|
||||||
#[rpc(name = "eth_getStorageAt")]
|
#[rpc(name = "eth_getStorageAt")]
|
||||||
fn storage_at(&self, H160, U256, Trailing<BlockNumber>) -> BoxFuture<H256>;
|
fn storage_at(&self, H160, U256, Option<BlockNumber>) -> BoxFuture<H256>;
|
||||||
|
|
||||||
/// Returns block with given hash.
|
/// Returns block with given hash.
|
||||||
#[rpc(name = "eth_getBlockByHash")]
|
#[rpc(name = "eth_getBlockByHash")]
|
||||||
@ -87,7 +88,7 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Returns the number of transactions sent from given address at given time (block number).
|
/// Returns the number of transactions sent from given address at given time (block number).
|
||||||
#[rpc(name = "eth_getTransactionCount")]
|
#[rpc(name = "eth_getTransactionCount")]
|
||||||
fn transaction_count(&self, H160, Trailing<BlockNumber>) -> BoxFuture<U256>;
|
fn transaction_count(&self, H160, Option<BlockNumber>) -> BoxFuture<U256>;
|
||||||
|
|
||||||
/// Returns the number of transactions in a block with given hash.
|
/// Returns the number of transactions in a block with given hash.
|
||||||
#[rpc(name = "eth_getBlockTransactionCountByHash")]
|
#[rpc(name = "eth_getBlockTransactionCountByHash")]
|
||||||
@ -107,7 +108,7 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Returns the code at given address at given time (block number).
|
/// Returns the code at given address at given time (block number).
|
||||||
#[rpc(name = "eth_getCode")]
|
#[rpc(name = "eth_getCode")]
|
||||||
fn code_at(&self, H160, Trailing<BlockNumber>) -> BoxFuture<Bytes>;
|
fn code_at(&self, H160, Option<BlockNumber>) -> BoxFuture<Bytes>;
|
||||||
|
|
||||||
/// Sends signed transaction, returning its hash.
|
/// Sends signed transaction, returning its hash.
|
||||||
#[rpc(name = "eth_sendRawTransaction")]
|
#[rpc(name = "eth_sendRawTransaction")]
|
||||||
@ -119,11 +120,11 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Call contract, returning the output data.
|
/// Call contract, returning the output data.
|
||||||
#[rpc(name = "eth_call")]
|
#[rpc(name = "eth_call")]
|
||||||
fn call(&self, CallRequest, Trailing<BlockNumber>) -> BoxFuture<Bytes>;
|
fn call(&self, CallRequest, Option<BlockNumber>) -> BoxFuture<Bytes>;
|
||||||
|
|
||||||
/// Estimate gas needed for execution of given contract.
|
/// Estimate gas needed for execution of given contract.
|
||||||
#[rpc(name = "eth_estimateGas")]
|
#[rpc(name = "eth_estimateGas")]
|
||||||
fn estimate_gas(&self, CallRequest, Trailing<BlockNumber>) -> BoxFuture<U256>;
|
fn estimate_gas(&self, CallRequest, Option<BlockNumber>) -> BoxFuture<U256>;
|
||||||
|
|
||||||
/// Get transaction by its hash.
|
/// Get transaction by its hash.
|
||||||
#[rpc(name = "eth_getTransactionByHash")]
|
#[rpc(name = "eth_getTransactionByHash")]
|
||||||
@ -175,7 +176,7 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Returns the hash of the current block, the seedHash, and the boundary condition to be met.
|
/// Returns the hash of the current block, the seedHash, and the boundary condition to be met.
|
||||||
#[rpc(name = "eth_getWork")]
|
#[rpc(name = "eth_getWork")]
|
||||||
fn work(&self, Trailing<u64>) -> Result<Work>;
|
fn work(&self, Option<u64>) -> Result<Work>;
|
||||||
|
|
||||||
/// Used for submitting a proof-of-work solution.
|
/// Used for submitting a proof-of-work solution.
|
||||||
#[rpc(name = "eth_submitWork")]
|
#[rpc(name = "eth_submitWork")]
|
||||||
@ -185,11 +186,10 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "eth_submitHashrate")]
|
#[rpc(name = "eth_submitHashrate")]
|
||||||
fn submit_hashrate(&self, U256, H256) -> Result<bool>;
|
fn submit_hashrate(&self, U256, H256) -> Result<bool>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Eth filters rpc api (polling).
|
/// Eth filters rpc api (polling).
|
||||||
// TODO: do filters api properly
|
// TODO: do filters api properly
|
||||||
|
#[rpc]
|
||||||
pub trait EthFilter {
|
pub trait EthFilter {
|
||||||
/// Returns id of new filter.
|
/// Returns id of new filter.
|
||||||
#[rpc(name = "eth_newFilter")]
|
#[rpc(name = "eth_newFilter")]
|
||||||
@ -215,4 +215,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "eth_uninstallFilter")]
|
#[rpc(name = "eth_uninstallFilter")]
|
||||||
fn uninstall_filter(&self, Index) -> Result<bool>;
|
fn uninstall_filter(&self, Index) -> Result<bool>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -17,25 +17,22 @@
|
|||||||
//! Eth PUB-SUB rpc interface.
|
//! Eth PUB-SUB rpc interface.
|
||||||
|
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
use jsonrpc_macros::Trailing;
|
use jsonrpc_derive::rpc;
|
||||||
use jsonrpc_macros::pubsub::Subscriber;
|
use jsonrpc_pubsub::{typed, SubscriptionId};
|
||||||
use jsonrpc_pubsub::SubscriptionId;
|
|
||||||
|
|
||||||
use v1::types::pubsub;
|
use v1::types::pubsub;
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Eth PUB-SUB rpc interface.
|
/// Eth PUB-SUB rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait EthPubSub {
|
pub trait EthPubSub {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
#[pubsub(name = "eth_subscription")] {
|
|
||||||
/// Subscribe to Eth subscription.
|
/// Subscribe to Eth subscription.
|
||||||
#[rpc(name = "eth_subscribe")]
|
#[pubsub(subscription = "eth_subscription", subscribe, name = "eth_subscribe")]
|
||||||
fn subscribe(&self, Self::Metadata, Subscriber<pubsub::Result>, pubsub::Kind, Trailing<pubsub::Params>);
|
fn subscribe(&self, Self::Metadata, typed::Subscriber<pubsub::Result>, pubsub::Kind, Option<pubsub::Params>);
|
||||||
|
|
||||||
/// Unsubscribe from existing Eth subscription.
|
/// Unsubscribe from existing Eth subscription.
|
||||||
#[rpc(name = "eth_unsubscribe")]
|
#[pubsub(subscription = "eth_subscription", unsubscribe, name = "eth_unsubscribe")]
|
||||||
fn unsubscribe(&self, SubscriptionId) -> Result<bool>;
|
fn unsubscribe(&self, Option<Self::Metadata>, SubscriptionId) -> Result<bool>;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -17,12 +17,14 @@
|
|||||||
//! Eth rpc interface.
|
//! Eth rpc interface.
|
||||||
|
|
||||||
use jsonrpc_core::BoxFuture;
|
use jsonrpc_core::BoxFuture;
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
use v1::types::{Bytes, H160, H256, H520, TransactionRequest, RichRawTransaction};
|
use v1::types::{Bytes, H160, H256, H520, TransactionRequest, RichRawTransaction};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Signing methods implementation relying on unlocked accounts.
|
/// Signing methods implementation relying on unlocked accounts.
|
||||||
|
#[rpc]
|
||||||
pub trait EthSigning {
|
pub trait EthSigning {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
/// Signs the hash of data with given address signature.
|
/// Signs the hash of data with given address signature.
|
||||||
@ -41,4 +43,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(meta, name = "eth_signTransaction")]
|
#[rpc(meta, name = "eth_signTransaction")]
|
||||||
fn sign_transaction(&self, Self::Metadata, TransactionRequest) -> BoxFuture<RichRawTransaction>;
|
fn sign_transaction(&self, Self::Metadata, TransactionRequest) -> BoxFuture<RichRawTransaction>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -16,9 +16,10 @@
|
|||||||
|
|
||||||
//! Net rpc interface.
|
//! Net rpc interface.
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Net rpc interface.
|
/// Net rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Net {
|
pub trait Net {
|
||||||
/// Returns protocol version.
|
/// Returns protocol version.
|
||||||
#[rpc(name = "net_version")]
|
#[rpc(name = "net_version")]
|
||||||
@ -33,4 +34,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "net_listening")]
|
#[rpc(name = "net_listening")]
|
||||||
fn is_listening(&self) -> Result<bool>;
|
fn is_listening(&self) -> Result<bool>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
use jsonrpc_macros::Trailing;
|
use jsonrpc_derive::rpc;
|
||||||
use v1::types::{
|
use v1::types::{
|
||||||
H160, H256, H512, U256, U64, H64, Bytes, CallRequest,
|
H160, H256, H512, U256, U64, H64, Bytes, CallRequest,
|
||||||
Peers, Transaction, RpcSettings, Histogram, RecoveredAccount,
|
Peers, Transaction, RpcSettings, Histogram, RecoveredAccount,
|
||||||
@ -29,9 +29,10 @@ use v1::types::{
|
|||||||
AccountInfo, HwAccountInfo, RichHeader, Receipt,
|
AccountInfo, HwAccountInfo, RichHeader, Receipt,
|
||||||
};
|
};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Parity-specific rpc interface.
|
/// Parity-specific rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Parity {
|
pub trait Parity {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
/// Returns accounts information.
|
/// Returns accounts information.
|
||||||
@ -125,12 +126,12 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Returns all addresses if Fat DB is enabled (`--fat-db`), or null if not.
|
/// Returns all addresses if Fat DB is enabled (`--fat-db`), or null if not.
|
||||||
#[rpc(name = "parity_listAccounts")]
|
#[rpc(name = "parity_listAccounts")]
|
||||||
fn list_accounts(&self, u64, Option<H160>, Trailing<BlockNumber>) -> Result<Option<Vec<H160>>>;
|
fn list_accounts(&self, u64, Option<H160>, Option<BlockNumber>) -> Result<Option<Vec<H160>>>;
|
||||||
|
|
||||||
/// Returns all storage keys of the given address (first parameter) if Fat DB is enabled (`--fat-db`),
|
/// Returns all storage keys of the given address (first parameter) if Fat DB is enabled (`--fat-db`),
|
||||||
/// or null if not.
|
/// or null if not.
|
||||||
#[rpc(name = "parity_listStorageKeys")]
|
#[rpc(name = "parity_listStorageKeys")]
|
||||||
fn list_storage_keys(&self, H160, u64, Option<H256>, Trailing<BlockNumber>) -> Result<Option<Vec<H256>>>;
|
fn list_storage_keys(&self, H160, u64, Option<H256>, Option<BlockNumber>) -> Result<Option<Vec<H256>>>;
|
||||||
|
|
||||||
/// Encrypt some data with a public key under ECIES.
|
/// Encrypt some data with a public key under ECIES.
|
||||||
/// First parameter is the 512-byte destination public key, second is the message.
|
/// First parameter is the 512-byte destination public key, second is the message.
|
||||||
@ -139,7 +140,7 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Returns all pending transactions from transaction queue.
|
/// Returns all pending transactions from transaction queue.
|
||||||
#[rpc(name = "parity_pendingTransactions")]
|
#[rpc(name = "parity_pendingTransactions")]
|
||||||
fn pending_transactions(&self, Trailing<usize>) -> Result<Vec<Transaction>>;
|
fn pending_transactions(&self, Option<usize>) -> Result<Vec<Transaction>>;
|
||||||
|
|
||||||
/// Returns all transactions from transaction queue.
|
/// Returns all transactions from transaction queue.
|
||||||
///
|
///
|
||||||
@ -206,13 +207,13 @@ build_rpc_trait! {
|
|||||||
/// Get block header.
|
/// Get block header.
|
||||||
/// Same as `eth_getBlockByNumber` but without uncles and transactions.
|
/// Same as `eth_getBlockByNumber` but without uncles and transactions.
|
||||||
#[rpc(name = "parity_getBlockHeaderByNumber")]
|
#[rpc(name = "parity_getBlockHeaderByNumber")]
|
||||||
fn block_header(&self, Trailing<BlockNumber>) -> BoxFuture<RichHeader>;
|
fn block_header(&self, Option<BlockNumber>) -> BoxFuture<RichHeader>;
|
||||||
|
|
||||||
/// Get block receipts.
|
/// Get block receipts.
|
||||||
/// Allows you to fetch receipts from the entire block at once.
|
/// Allows you to fetch receipts from the entire block at once.
|
||||||
/// If no parameter is provided defaults to `latest`.
|
/// If no parameter is provided defaults to `latest`.
|
||||||
#[rpc(name = "parity_getBlockReceipts")]
|
#[rpc(name = "parity_getBlockReceipts")]
|
||||||
fn block_receipts(&self, Trailing<BlockNumber>) -> BoxFuture<Vec<Receipt>>;
|
fn block_receipts(&self, Option<BlockNumber>) -> BoxFuture<Vec<Receipt>>;
|
||||||
|
|
||||||
/// Get IPFS CIDv0 given protobuf encoded bytes.
|
/// Get IPFS CIDv0 given protobuf encoded bytes.
|
||||||
#[rpc(name = "parity_cidV0")]
|
#[rpc(name = "parity_cidV0")]
|
||||||
@ -220,7 +221,7 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Call contract, returning the output data.
|
/// Call contract, returning the output data.
|
||||||
#[rpc(name = "parity_call")]
|
#[rpc(name = "parity_call")]
|
||||||
fn call(&self, Vec<CallRequest>, Trailing<BlockNumber>) -> Result<Vec<Bytes>>;
|
fn call(&self, Vec<CallRequest>, Option<BlockNumber>) -> Result<Vec<Bytes>>;
|
||||||
|
|
||||||
/// Used for submitting a proof-of-work solution (similar to `eth_submitWork`,
|
/// Used for submitting a proof-of-work solution (similar to `eth_submitWork`,
|
||||||
/// but returns block hash on success, and returns an explicit error message on failure).
|
/// but returns block hash on success, and returns an explicit error message on failure).
|
||||||
@ -246,6 +247,4 @@ build_rpc_trait! {
|
|||||||
/// Is allowed to skip filling transaction hash for faster query.
|
/// Is allowed to skip filling transaction hash for faster query.
|
||||||
#[rpc(name = "parity_getLogsNoTransactionHash")]
|
#[rpc(name = "parity_getLogsNoTransactionHash")]
|
||||||
fn logs_no_tx_hash(&self, Filter) -> BoxFuture<Vec<Log>>;
|
fn logs_no_tx_hash(&self, Filter) -> BoxFuture<Vec<Log>>;
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -18,12 +18,13 @@
|
|||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
use ethkey::Password;
|
use ethkey::Password;
|
||||||
use ethstore::KeyFile;
|
use ethstore::KeyFile;
|
||||||
use v1::types::{H160, H256, H520, DeriveHash, DeriveHierarchical, ExtAccountInfo};
|
use v1::types::{H160, H256, H520, DeriveHash, DeriveHierarchical, ExtAccountInfo};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Personal Parity rpc interface.
|
/// Personal Parity rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait ParityAccounts {
|
pub trait ParityAccounts {
|
||||||
/// Returns accounts information.
|
/// Returns accounts information.
|
||||||
#[rpc(name = "parity_allAccountsInfo")]
|
#[rpc(name = "parity_allAccountsInfo")]
|
||||||
@ -139,4 +140,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "parity_hardwarePinMatrixAck")]
|
#[rpc(name = "parity_hardwarePinMatrixAck")]
|
||||||
fn hardware_pin_matrix_ack(&self, String, String) -> Result<bool>;
|
fn hardware_pin_matrix_ack(&self, String, String) -> Result<bool>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -17,11 +17,12 @@
|
|||||||
//! Parity-specific rpc interface for operations altering the settings.
|
//! Parity-specific rpc interface for operations altering the settings.
|
||||||
|
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
use v1::types::{Bytes, H160, H256, U256, ReleaseInfo, Transaction};
|
use v1::types::{Bytes, H160, H256, U256, ReleaseInfo, Transaction};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Parity-specific rpc interface for operations altering the settings.
|
/// Parity-specific rpc interface for operations altering the settings.
|
||||||
|
#[rpc]
|
||||||
pub trait ParitySet {
|
pub trait ParitySet {
|
||||||
/// Sets new minimal gas price for mined blocks.
|
/// Sets new minimal gas price for mined blocks.
|
||||||
#[rpc(name = "parity_setMinGasPrice")]
|
#[rpc(name = "parity_setMinGasPrice")]
|
||||||
@ -112,4 +113,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "parity_removeTransaction")]
|
#[rpc(name = "parity_removeTransaction")]
|
||||||
fn remove_transaction(&self, H256) -> Result<Option<Transaction>>;
|
fn remove_transaction(&self, H256) -> Result<Option<Transaction>>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -16,12 +16,14 @@
|
|||||||
|
|
||||||
//! ParitySigning rpc interface.
|
//! ParitySigning rpc interface.
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
use v1::types::{U256, H160, Bytes, ConfirmationResponse, TransactionRequest, Either};
|
use v1::types::{U256, H160, Bytes, ConfirmationResponse, TransactionRequest, Either};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Signing methods implementation.
|
/// Signing methods implementation.
|
||||||
|
#[rpc]
|
||||||
pub trait ParitySigning {
|
pub trait ParitySigning {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
/// Given partial transaction request produces transaction with all fields filled in.
|
/// Given partial transaction request produces transaction with all fields filled in.
|
||||||
@ -49,4 +51,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(meta, name = "parity_decryptMessage")]
|
#[rpc(meta, name = "parity_decryptMessage")]
|
||||||
fn decrypt_message(&self, Self::Metadata, H160, Bytes) -> BoxFuture<Bytes>;
|
fn decrypt_message(&self, Self::Metadata, H160, Bytes) -> BoxFuture<Bytes>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -18,11 +18,13 @@
|
|||||||
use eip_712::EIP712;
|
use eip_712::EIP712;
|
||||||
use jsonrpc_core::types::Value;
|
use jsonrpc_core::types::Value;
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
use v1::types::{Bytes, U128, H160, H256, H520, TransactionRequest, RichRawTransaction as RpcRichRawTransaction, EIP191Version};
|
use v1::types::{Bytes, U128, H160, H256, H520, TransactionRequest, RichRawTransaction as RpcRichRawTransaction, EIP191Version};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Personal rpc interface. Safe (read-only) functions.
|
/// Personal rpc interface. Safe (read-only) functions.
|
||||||
|
#[rpc]
|
||||||
pub trait Personal {
|
pub trait Personal {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
/// Lists all stored accounts
|
/// Lists all stored accounts
|
||||||
@ -70,4 +72,3 @@ build_rpc_trait! {
|
|||||||
fn sign_and_send_transaction(&self, Self::Metadata, TransactionRequest, String) -> BoxFuture<H256>;
|
fn sign_and_send_transaction(&self, Self::Metadata, TransactionRequest, String) -> BoxFuture<H256>;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -17,13 +17,15 @@
|
|||||||
//! SecretStore-specific rpc interface.
|
//! SecretStore-specific rpc interface.
|
||||||
|
|
||||||
use jsonrpc_core::Error;
|
use jsonrpc_core::Error;
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
use v1::types::{Bytes, PrivateTransactionReceipt, H160, H256, U256, BlockNumber,
|
use v1::types::{Bytes, PrivateTransactionReceipt, H160, H256, U256, BlockNumber,
|
||||||
PrivateTransactionReceiptAndTransaction, CallRequest};
|
PrivateTransactionReceiptAndTransaction, CallRequest};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Private transaction management RPC interface.
|
/// Private transaction management RPC interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Private {
|
pub trait Private {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
/// Sends private transaction; Transaction will be added to the validation queue and sent out when ready.
|
/// Sends private transaction; Transaction will be added to the validation queue and sent out when ready.
|
||||||
@ -42,4 +44,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "private_contractKey")]
|
#[rpc(name = "private_contractKey")]
|
||||||
fn private_contract_key(&self, H160) -> Result<H256, Error>;
|
fn private_contract_key(&self, H160) -> Result<H256, Error>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -17,23 +17,20 @@
|
|||||||
//! Parity-specific PUB-SUB rpc interface.
|
//! Parity-specific PUB-SUB rpc interface.
|
||||||
|
|
||||||
use jsonrpc_core::{Result, Value, Params};
|
use jsonrpc_core::{Result, Value, Params};
|
||||||
use jsonrpc_pubsub::SubscriptionId;
|
use jsonrpc_pubsub::{typed::Subscriber, SubscriptionId};
|
||||||
use jsonrpc_macros::Trailing;
|
use jsonrpc_derive::rpc;
|
||||||
use jsonrpc_macros::pubsub::Subscriber;
|
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Parity-specific PUB-SUB rpc interface.
|
/// Parity-specific PUB-SUB rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait PubSub {
|
pub trait PubSub {
|
||||||
|
/// Pub/Sub Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
#[pubsub(name = "parity_subscription")] {
|
|
||||||
/// Subscribe to changes of any RPC method in Parity.
|
/// Subscribe to changes of any RPC method in Parity.
|
||||||
#[rpc(name = "parity_subscribe")]
|
#[pubsub(subscription = "parity_subscription", subscribe, name = "parity_subscribe")]
|
||||||
fn parity_subscribe(&self, Self::Metadata, Subscriber<Value>, String, Trailing<Params>);
|
fn parity_subscribe(&self, Self::Metadata, Subscriber<Value>, String, Option<Params>);
|
||||||
|
|
||||||
/// Unsubscribe from existing Parity subscription.
|
/// Unsubscribe from existing Parity subscription.
|
||||||
#[rpc(name = "parity_unsubscribe")]
|
#[pubsub(subscription = "parity_subscription", unsubscribe, name = "parity_unsubscribe")]
|
||||||
fn parity_unsubscribe(&self, SubscriptionId) -> Result<bool>;
|
fn parity_unsubscribe(&self, Option<Self::Metadata>, SubscriptionId) -> Result<bool>;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -19,9 +19,10 @@
|
|||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// RPC Interface.
|
/// RPC Interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Rpc {
|
pub trait Rpc {
|
||||||
/// Returns supported modules for Geth 1.3.6
|
/// Returns supported modules for Geth 1.3.6
|
||||||
/// @ignore
|
/// @ignore
|
||||||
@ -33,4 +34,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "rpc_modules")]
|
#[rpc(name = "rpc_modules")]
|
||||||
fn rpc_modules(&self) -> Result<BTreeMap<String, String>>;
|
fn rpc_modules(&self) -> Result<BTreeMap<String, String>>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -18,12 +18,13 @@
|
|||||||
|
|
||||||
use std::collections::BTreeSet;
|
use std::collections::BTreeSet;
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
use ethkey::Password;
|
use ethkey::Password;
|
||||||
|
|
||||||
use v1::types::{H160, H256, H512, Bytes, EncryptedDocumentKey};
|
use v1::types::{H160, H256, H512, Bytes, EncryptedDocumentKey};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Parity-specific rpc interface.
|
/// Parity-specific rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait SecretStore {
|
pub trait SecretStore {
|
||||||
/// Generate document key to store in secret store.
|
/// Generate document key to store in secret store.
|
||||||
/// Arguments: `account`, `password`, `server_key_public`.
|
/// Arguments: `account`, `password`, `server_key_public`.
|
||||||
@ -57,4 +58,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "secretstore_signRawHash")]
|
#[rpc(name = "secretstore_signRawHash")]
|
||||||
fn sign_raw_hash(&self, H160, Password, H256) -> Result<Bytes>;
|
fn sign_raw_hash(&self, H160, Password, H256) -> Result<Bytes>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -16,14 +16,15 @@
|
|||||||
|
|
||||||
//! Parity Signer-related rpc interface.
|
//! Parity Signer-related rpc interface.
|
||||||
use jsonrpc_core::{BoxFuture, Result};
|
use jsonrpc_core::{BoxFuture, Result};
|
||||||
use jsonrpc_pubsub::SubscriptionId;
|
use jsonrpc_pubsub::{typed::Subscriber, SubscriptionId};
|
||||||
use jsonrpc_macros::pubsub::Subscriber;
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
use v1::types::{U256, Bytes, TransactionModification, ConfirmationRequest, ConfirmationResponse, ConfirmationResponseWithToken};
|
use v1::types::{U256, Bytes, TransactionModification, ConfirmationRequest, ConfirmationResponse, ConfirmationResponseWithToken};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Signer extension for confirmations rpc interface.
|
/// Signer extension for confirmations rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Signer {
|
pub trait Signer {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
/// Returns a list of items to confirm.
|
/// Returns a list of items to confirm.
|
||||||
@ -54,14 +55,11 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "signer_generateWebProxyAccessToken")]
|
#[rpc(name = "signer_generateWebProxyAccessToken")]
|
||||||
fn generate_web_proxy_token(&self, String) -> Result<String>;
|
fn generate_web_proxy_token(&self, String) -> Result<String>;
|
||||||
|
|
||||||
#[pubsub(name = "signer_pending")] {
|
|
||||||
/// Subscribe to new pending requests on signer interface.
|
/// Subscribe to new pending requests on signer interface.
|
||||||
#[rpc(name = "signer_subscribePending")]
|
#[pubsub(subscription = "signer_pending", subscribe, name = "signer_subscribePending")]
|
||||||
fn subscribe_pending(&self, Self::Metadata, Subscriber<Vec<ConfirmationRequest>>);
|
fn subscribe_pending(&self, Self::Metadata, Subscriber<Vec<ConfirmationRequest>>);
|
||||||
|
|
||||||
/// Unsubscribe from pending requests subscription.
|
/// Unsubscribe from pending requests subscription.
|
||||||
#[rpc(name = "signer_unsubscribePending")]
|
#[pubsub(subscription = "signer_pending", unsubscribe, name = "signer_unsubscribePending")]
|
||||||
fn unsubscribe_pending(&self, SubscriptionId) -> Result<bool>;
|
fn unsubscribe_pending(&self, Option<Self::Metadata>, SubscriptionId) -> Result<bool>;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -17,12 +17,13 @@
|
|||||||
//! Traces specific rpc interface.
|
//! Traces specific rpc interface.
|
||||||
|
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
use jsonrpc_macros::Trailing;
|
use jsonrpc_derive::rpc;
|
||||||
use v1::types::{TraceFilter, LocalizedTrace, BlockNumber, Index, CallRequest, Bytes, TraceResults, TraceResultsWithTransactionHash, H256, TraceOptions};
|
use v1::types::{TraceFilter, LocalizedTrace, BlockNumber, Index, CallRequest, Bytes, TraceResults, TraceResultsWithTransactionHash, H256, TraceOptions};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Traces specific rpc interface.
|
/// Traces specific rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Traces {
|
pub trait Traces {
|
||||||
|
/// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
/// Returns traces matching given filter.
|
/// Returns traces matching given filter.
|
||||||
@ -43,15 +44,15 @@ build_rpc_trait! {
|
|||||||
|
|
||||||
/// Executes the given call and returns a number of possible traces for it.
|
/// Executes the given call and returns a number of possible traces for it.
|
||||||
#[rpc(name = "trace_call")]
|
#[rpc(name = "trace_call")]
|
||||||
fn call(&self, CallRequest, TraceOptions, Trailing<BlockNumber>) -> Result<TraceResults>;
|
fn call(&self, CallRequest, TraceOptions, Option<BlockNumber>) -> Result<TraceResults>;
|
||||||
|
|
||||||
/// Executes all given calls and returns a number of possible traces for each of it.
|
/// Executes all given calls and returns a number of possible traces for each of it.
|
||||||
#[rpc(name = "trace_callMany")]
|
#[rpc(name = "trace_callMany")]
|
||||||
fn call_many(&self, Vec<(CallRequest, TraceOptions)>, Trailing<BlockNumber>) -> Result<Vec<TraceResults>>;
|
fn call_many(&self, Vec<(CallRequest, TraceOptions)>, Option<BlockNumber>) -> Result<Vec<TraceResults>>;
|
||||||
|
|
||||||
/// Executes the given raw transaction and returns a number of possible traces for it.
|
/// Executes the given raw transaction and returns a number of possible traces for it.
|
||||||
#[rpc(name = "trace_rawTransaction")]
|
#[rpc(name = "trace_rawTransaction")]
|
||||||
fn raw_transaction(&self, Bytes, TraceOptions, Trailing<BlockNumber>) -> Result<TraceResults>;
|
fn raw_transaction(&self, Bytes, TraceOptions, Option<BlockNumber>) -> Result<TraceResults>;
|
||||||
|
|
||||||
/// Executes the transaction with the given hash and returns a number of possible traces for it.
|
/// Executes the transaction with the given hash and returns a number of possible traces for it.
|
||||||
#[rpc(name = "trace_replayTransaction")]
|
#[rpc(name = "trace_replayTransaction")]
|
||||||
@ -61,4 +62,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "trace_replayBlockTransactions")]
|
#[rpc(name = "trace_replayBlockTransactions")]
|
||||||
fn replay_block_transactions(&self, BlockNumber, TraceOptions) -> Result<Vec<TraceResultsWithTransactionHash>>;
|
fn replay_block_transactions(&self, BlockNumber, TraceOptions) -> Result<Vec<TraceResultsWithTransactionHash>>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -16,11 +16,12 @@
|
|||||||
|
|
||||||
//! Web3 rpc interface.
|
//! Web3 rpc interface.
|
||||||
use jsonrpc_core::Result;
|
use jsonrpc_core::Result;
|
||||||
|
use jsonrpc_derive::rpc;
|
||||||
|
|
||||||
use v1::types::{H256, Bytes};
|
use v1::types::{H256, Bytes};
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Web3 rpc interface.
|
/// Web3 rpc interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Web3 {
|
pub trait Web3 {
|
||||||
/// Returns current client version.
|
/// Returns current client version.
|
||||||
#[rpc(name = "web3_clientVersion")]
|
#[rpc(name = "web3_clientVersion")]
|
||||||
@ -30,4 +31,3 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "web3_sha3")]
|
#[rpc(name = "web3_sha3")]
|
||||||
fn sha3(&self, Bytes) -> Result<H256>;
|
fn sha3(&self, Bytes) -> Result<H256>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -25,6 +25,6 @@ slab = "0.3"
|
|||||||
smallvec = "0.6"
|
smallvec = "0.6"
|
||||||
tiny-keccak = "1.4"
|
tiny-keccak = "1.4"
|
||||||
|
|
||||||
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-core = "10.0.1"
|
||||||
jsonrpc-macros = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-derive = "10.0.1"
|
||||||
jsonrpc-pubsub = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-pubsub = "10.0.1"
|
||||||
|
@ -10,9 +10,9 @@ docopt = "1.0"
|
|||||||
env_logger = "0.5"
|
env_logger = "0.5"
|
||||||
ethcore-network = { path = "../../util/network" }
|
ethcore-network = { path = "../../util/network" }
|
||||||
ethcore-network-devp2p = { path = "../../util/network-devp2p" }
|
ethcore-network-devp2p = { path = "../../util/network-devp2p" }
|
||||||
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-core = "10.0.1"
|
||||||
jsonrpc-http-server = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-http-server = "10.0.1"
|
||||||
jsonrpc-pubsub = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-2.2" }
|
jsonrpc-pubsub = "10.0.1"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
panic_hook = { path = "../../util/panic-hook" }
|
panic_hook = { path = "../../util/panic-hook" }
|
||||||
parity-whisper = { path = "../" }
|
parity-whisper = { path = "../" }
|
||||||
|
@ -34,6 +34,7 @@ extern crate smallvec;
|
|||||||
extern crate tiny_keccak;
|
extern crate tiny_keccak;
|
||||||
|
|
||||||
extern crate jsonrpc_core;
|
extern crate jsonrpc_core;
|
||||||
|
extern crate jsonrpc_derive;
|
||||||
extern crate jsonrpc_pubsub;
|
extern crate jsonrpc_pubsub;
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
@ -42,9 +43,6 @@ extern crate bitflags;
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
extern crate log;
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
extern crate jsonrpc_macros;
|
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ use std::{sync::{Arc, atomic, atomic::AtomicBool, mpsc}, thread};
|
|||||||
|
|
||||||
use ethereum_types::{H256, H512};
|
use ethereum_types::{H256, H512};
|
||||||
use ethkey::Public;
|
use ethkey::Public;
|
||||||
use jsonrpc_macros::pubsub::{Subscriber, Sink};
|
use jsonrpc_pubsub::typed::{Subscriber, Sink};
|
||||||
use parking_lot::{Mutex, RwLock};
|
use parking_lot::{Mutex, RwLock};
|
||||||
use rand::{Rng, OsRng};
|
use rand::{Rng, OsRng};
|
||||||
|
|
||||||
|
@ -24,8 +24,8 @@
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use jsonrpc_core::{Error, ErrorCode, Metadata};
|
use jsonrpc_core::{Error, ErrorCode, Metadata};
|
||||||
use jsonrpc_pubsub::{Session, PubSubMetadata, SubscriptionId};
|
use jsonrpc_derive::rpc;
|
||||||
use jsonrpc_macros::pubsub;
|
use jsonrpc_pubsub::{Session, PubSubMetadata, SubscriptionId, typed::Subscriber};
|
||||||
|
|
||||||
use ethereum_types::H256;
|
use ethereum_types::H256;
|
||||||
use memzero::Memzero;
|
use memzero::Memzero;
|
||||||
@ -68,8 +68,8 @@ fn abridge_topic(topic: &[u8]) -> Topic {
|
|||||||
abridged.into()
|
abridged.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Whisper RPC interface.
|
/// Whisper RPC interface.
|
||||||
|
#[rpc]
|
||||||
pub trait Whisper {
|
pub trait Whisper {
|
||||||
/// Info about the node.
|
/// Info about the node.
|
||||||
#[rpc(name = "shh_info")]
|
#[rpc(name = "shh_info")]
|
||||||
@ -125,24 +125,21 @@ build_rpc_trait! {
|
|||||||
#[rpc(name = "shh_deleteMessageFilter")]
|
#[rpc(name = "shh_deleteMessageFilter")]
|
||||||
fn delete_filter(&self, types::Identity) -> Result<bool, Error>;
|
fn delete_filter(&self, types::Identity) -> Result<bool, Error>;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
build_rpc_trait! {
|
|
||||||
/// Whisper RPC pubsub.
|
/// Whisper RPC pubsub.
|
||||||
|
#[rpc]
|
||||||
pub trait WhisperPubSub {
|
pub trait WhisperPubSub {
|
||||||
|
// RPC Metadata
|
||||||
type Metadata;
|
type Metadata;
|
||||||
|
|
||||||
#[pubsub(name = "shh_subscription")] {
|
|
||||||
/// Subscribe to messages matching the filter.
|
/// Subscribe to messages matching the filter.
|
||||||
#[rpc(name = "shh_subscribe")]
|
#[pubsub(subscription = "shh_subscription", subscribe, name = "shh_subscribe")]
|
||||||
fn subscribe(&self, Self::Metadata, pubsub::Subscriber<types::FilterItem>, types::FilterRequest);
|
fn subscribe(&self, Self::Metadata, Subscriber<types::FilterItem>, types::FilterRequest);
|
||||||
|
|
||||||
/// Unsubscribe from filter matching given ID. Return
|
/// Unsubscribe from filter matching given ID. Return
|
||||||
/// true on success, error otherwise.
|
/// true on success, error otherwise.
|
||||||
#[rpc(name = "shh_unsubscribe")]
|
#[pubsub(subscription = "shh_subscription", unsubscribe, name = "shh_unsubscribe")]
|
||||||
fn unsubscribe(&self, SubscriptionId) -> Result<bool, Error>;
|
fn unsubscribe(&self, Option<Self::Metadata>, SubscriptionId) -> Result<bool, Error>;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Something which can send messages to the network.
|
/// Something which can send messages to the network.
|
||||||
@ -364,7 +361,7 @@ impl<P: PoolHandle + 'static, M: Send + Sync + PubSubMetadata> WhisperPubSub for
|
|||||||
fn subscribe(
|
fn subscribe(
|
||||||
&self,
|
&self,
|
||||||
_meta: Self::Metadata,
|
_meta: Self::Metadata,
|
||||||
subscriber: pubsub::Subscriber<types::FilterItem>,
|
subscriber: Subscriber<types::FilterItem>,
|
||||||
req: types::FilterRequest,
|
req: types::FilterRequest,
|
||||||
) {
|
) {
|
||||||
match Filter::new(req) {
|
match Filter::new(req) {
|
||||||
@ -377,7 +374,7 @@ impl<P: PoolHandle + 'static, M: Send + Sync + PubSubMetadata> WhisperPubSub for
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn unsubscribe(&self, id: SubscriptionId) -> Result<bool, Error> {
|
fn unsubscribe(&self, _: Option<Self::Metadata>, id: SubscriptionId) -> Result<bool, Error> {
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
let res = match id {
|
let res = match id {
|
||||||
|
Loading…
Reference in New Issue
Block a user