1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#![warn(missing_docs, unused_extern_crates)]
#![cfg_attr(feature = "cargo-clippy", warn(clippy::all, clippy::pedantic))]
#![cfg_attr(
feature = "cargo-clippy",
allow(
clippy::cast_lossless,
clippy::module_name_repetitions,
clippy::single_match_else,
clippy::type_complexity,
clippy::use_self,
clippy::match_bool,
clippy::needless_pass_by_value,
clippy::similar_names,
clippy::doc_markdown,
),
warn(clippy::indexing_slicing)
)]
#[macro_use]
extern crate futures;
extern crate ansi_term;
extern crate itertools;
extern crate order_stat;
extern crate parking_lot;
extern crate rand;
extern crate rustc_hex;
extern crate serde;
extern crate serde_json;
extern crate tokio_timer;
extern crate transient_hashmap;
extern crate jsonrpc_core;
extern crate jsonrpc_derive;
extern crate jsonrpc_http_server as http;
extern crate jsonrpc_ipc_server as ipc;
extern crate jsonrpc_pubsub;
extern crate common_types as types;
extern crate eip_712;
extern crate ethash;
extern crate ethcore;
extern crate ethcore_logger;
extern crate ethcore_miner as miner;
extern crate ethcore_network as network;
extern crate ethcore_sync as sync;
extern crate ethereum_types;
extern crate ethkey;
extern crate ethstore;
extern crate fetch;
extern crate keccak_hash as hash;
extern crate parity_bytes as bytes;
extern crate parity_crypto as crypto;
extern crate parity_runtime;
extern crate parity_version as version;
extern crate rlp;
extern crate stats;
extern crate vm;
#[cfg(any(test, feature = "ethcore-accounts"))]
extern crate ethcore_accounts as accounts;
#[cfg(any(test, feature = "ethcore-accounts"))]
extern crate tiny_keccak;
#[macro_use]
extern crate log;
#[macro_use]
extern crate serde_derive;
#[cfg(test)]
extern crate ethjson;
#[cfg(test)]
#[macro_use]
extern crate pretty_assertions;
#[cfg(test)]
#[macro_use]
extern crate macros;
#[cfg(test)]
extern crate fake_fetch;
#[cfg(test)]
extern crate ethcore_io as io;
extern crate tempdir;
extern crate rpc_servers;
extern crate rpc_common;
pub extern crate jsonrpc_ws_server as ws;
mod authcodes;
pub mod v1;
pub mod tests;
pub use http::{
cors::AccessControlAllowHeaders, hyper, AccessControlAllowOrigin, DomainsValidation, Host,
RequestMiddleware, RequestMiddlewareAction,
};
pub use ipc::{
MetaExtractor as IpcMetaExtractor, RequestContext as IpcRequestContext, Server as IpcServer,
};
pub use jsonrpc_pubsub::Session as PubSubSession;
pub use authcodes::{AuthCodes, TimeProvider};
pub use v1::{
block_import::{is_major_importing, is_major_importing_or_waiting},
dispatch,
extractors::{RpcExtractor, WsDispatcher, WsExtractor, WsStats},
informant, signer, Metadata, NetworkSettings, Origin,
};
pub type HttpServer = http::Server;