network interface stub

This commit is contained in:
NikVolf 2016-12-12 16:03:56 +01:00
parent a6e8f376ca
commit 7ada7d0323
4 changed files with 47 additions and 1 deletions

View File

@ -1,7 +1,9 @@
mod blockchain;
mod miner;
mod raw;
mod network;
pub use self::blockchain::BlockChain;
pub use self::miner::Miner;
pub use self::raw::Raw;
pub use self::raw::Raw;
pub use self::network::Network;

View File

@ -0,0 +1,11 @@
use jsonrpc_core::Error;
use v1::types::AddNodeOperation;
build_rpc_trait! {
/// Parity-bitcoin network interface
pub trait Network {
/// Add/remove/connecto to the node
#[rpc(name = "addnode")]
fn add_node(&self, String, AddNodeOperation) -> Result<(), Error>;
}
}

View File

@ -9,6 +9,7 @@ mod raw_block;
mod raw_transaction;
mod script;
mod uint;
mod nodes;
pub use self::block_template::{BlockTemplate, BlockTemplateTransaction};
pub use self::block_template_request::{BlockTemplateRequest, BlockTemplateRequestMode};
@ -21,3 +22,4 @@ pub use self::raw_block::RawBlock;
pub use self::raw_transaction::RawTransaction;
pub use self::script::ScriptType;
pub use self::uint::U256;
pub use self::nodes::AddNodeOperation;

31
rpc/src/v1/types/nodes.rs Normal file
View File

@ -0,0 +1,31 @@
use serde::{Deserialize, Deserializer};
#[derive(Debug, PartialEq)]
pub enum AddNodeOperation {
Add,
Remove,
OneTry,
}
impl Deserialize for AddNodeOperation {
fn deserialize<D>(deserializer: &mut D) -> Result<Self, D::Error> where D: Deserializer {
use serde::de::Visitor;
struct DummyVisitor;
impl Visitor for DummyVisitor {
type Value = AddNodeOperation;
fn visit_str<E>(&mut self, value: &str) -> Result<AddNodeOperation, E> where E: ::serde::de::Error {
match value {
"add" => Ok(AddNodeOperation::Add),
"remove" => Ok(AddNodeOperation::Remove),
"onetry" => Ok(AddNodeOperation::OneTry),
_ => Err(E::invalid_value(&format!("unknown ScriptType variant: {}", value))),
}
}
}
deserializer.deserialize(DummyVisitor)
}
}