Modules RPC (#1019)

This commit is contained in:
Tomasz Drwięga
2016-04-29 20:52:08 +02:00
committed by Gav Wood
parent 4fe99b7dea
commit e942f86bd7
7 changed files with 145 additions and 5 deletions

View File

@@ -30,10 +30,12 @@ mod eth;
mod net;
mod personal;
mod ethcore;
mod rpc;
pub use self::web3::Web3Client;
pub use self::eth::{EthClient, EthFilterClient};
pub use self::net::NetClient;
pub use self::personal::PersonalClient;
pub use self::ethcore::EthcoreClient;
pub use self::rpc::RpcClient;

44
rpc/src/v1/impls/rpc.rs Normal file
View File

@@ -0,0 +1,44 @@
// Copyright 2015, 2016 Ethcore (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// Parity is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
//! RPC generic methods implementation.
use std::collections::BTreeMap;
use jsonrpc_core::*;
use v1::traits::Rpc;
/// RPC generic methods implementation.
pub struct RpcClient {
modules: BTreeMap<String, String>,
}
impl RpcClient {
/// Creates new `RpcClient`.
pub fn new(modules: BTreeMap<String, String>) -> Self {
RpcClient {
modules: modules
}
}
}
impl Rpc for RpcClient {
fn modules(&self, _: Params) -> Result<Value, Error> {
let modules = self.modules.iter().fold(BTreeMap::new(), |mut map, (k, v)| {
map.insert(k.to_owned(), Value::String(v.to_owned()));
map
});
Ok(Value::Object(modules))
}
}