Add first Updater RPC.
This commit is contained in:
parent
d81d9d77b2
commit
2d0d4682ad
@ -38,7 +38,7 @@ use v1::types::{
|
||||
Bytes, U256, H160, H256, H512,
|
||||
Peers, Transaction, RpcSettings, Histogram,
|
||||
TransactionStats, LocalTransactionStatus,
|
||||
BlockNumber,
|
||||
BlockNumber, ConsensusCapability
|
||||
};
|
||||
use v1::helpers::{errors, SigningQueue, SignerService, NetworkSettings};
|
||||
use v1::helpers::dispatch::DEFAULT_MAC;
|
||||
@ -360,4 +360,10 @@ impl<C, M, S: ?Sized, U> Parity for ParityClient<C, M, S, U> where
|
||||
(format!("0x{}", a.hex()), m)
|
||||
}).collect())
|
||||
}
|
||||
|
||||
fn consensus_capability(&self) -> Result<ConsensusCapability, Error> {
|
||||
try!(self.active());
|
||||
let updater = take_weak!(self.updater);
|
||||
Ok(updater.capability().into())
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ use v1::types::{
|
||||
H160, H256, H512, U256, Bytes,
|
||||
Peers, Transaction, RpcSettings, Histogram,
|
||||
TransactionStats, LocalTransactionStatus,
|
||||
BlockNumber
|
||||
BlockNumber, ConsensusCapability
|
||||
};
|
||||
|
||||
build_rpc_trait! {
|
||||
@ -155,5 +155,9 @@ build_rpc_trait! {
|
||||
/// Returns accounts information.
|
||||
#[rpc(name = "parity_accounts")]
|
||||
fn accounts(&self) -> Result<BTreeMap<String, BTreeMap<String, String>>, Error>;
|
||||
|
||||
/// Returns information on current consensus capability.
|
||||
#[rpc(name = "parity_consensusCapability")]
|
||||
fn consensus_capability(&self) -> Result<ConsensusCapability, Error>;
|
||||
}
|
||||
}
|
||||
|
46
rpc/src/v1/types/consensus_status.rs
Normal file
46
rpc/src/v1/types/consensus_status.rs
Normal file
@ -0,0 +1,46 @@
|
||||
// Copyright 2015, 2016 Parity Technologies (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/>.
|
||||
|
||||
use updater::CapState;
|
||||
|
||||
/// Capability info
|
||||
#[derive(Debug, Serialize, PartialEq)]
|
||||
pub enum ConsensusCapability {
|
||||
/// Unknown.
|
||||
#[serde(rename="unknown")]
|
||||
Unknown,
|
||||
/// Capable of consensus indefinitely.
|
||||
#[serde(rename="capable")]
|
||||
Capable,
|
||||
/// Capable of consensus up until a definite block.
|
||||
#[serde(rename="capableUntil")]
|
||||
CapableUntil(u64),
|
||||
/// Incapable of consensus since a particular block.
|
||||
#[serde(rename="incapableSince")]
|
||||
IncapableSince(u64),
|
||||
}
|
||||
|
||||
impl Into<ConsensusCapability> for CapState {
|
||||
fn into(self) -> ConsensusCapability {
|
||||
match self {
|
||||
CapState::Unknown => ConsensusCapability::Unknown,
|
||||
CapState::Capable => ConsensusCapability::Capable,
|
||||
CapState::CapableUntil(n) => ConsensusCapability::CapableUntil(n),
|
||||
CapState::IncapableSince(n) => ConsensusCapability::IncapableSince(n),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ mod trace_filter;
|
||||
mod uint;
|
||||
mod work;
|
||||
mod histogram;
|
||||
mod consensus_status;
|
||||
|
||||
pub use self::bytes::Bytes;
|
||||
pub use self::block::{RichBlock, Block, BlockTransactions};
|
||||
@ -55,3 +56,4 @@ pub use self::trace_filter::TraceFilter;
|
||||
pub use self::uint::{U128, U256};
|
||||
pub use self::work::Work;
|
||||
pub use self::histogram::Histogram;
|
||||
pub use self::consensus_status::ConsensusCapability;
|
Loading…
Reference in New Issue
Block a user