solana catchup now detects when you try to catchup to yourself (#8635)

automerge
This commit is contained in:
Grimes
2020-03-04 14:44:21 -08:00
committed by GitHub
parent f23dc11a86
commit f89c22b5ee
7 changed files with 118 additions and 5 deletions

View File

@@ -6,8 +6,8 @@ use crate::{
rpc_request::RpcRequest,
rpc_response::{
Response, RpcAccount, RpcBlockhashFeeCalculator, RpcConfirmedBlock, RpcContactInfo,
RpcEpochInfo, RpcFeeRateGovernor, RpcKeyedAccount, RpcLeaderSchedule, RpcResponse,
RpcVersionInfo, RpcVoteAccountStatus,
RpcEpochInfo, RpcFeeRateGovernor, RpcIdentity, RpcKeyedAccount, RpcLeaderSchedule,
RpcResponse, RpcVersionInfo, RpcVoteAccountStatus,
},
};
use bincode::serialize;
@@ -356,6 +356,34 @@ impl RpcClient {
})
}
pub fn get_identity(&self) -> io::Result<Pubkey> {
let response = self
.client
.send(&RpcRequest::GetIdentity, Value::Null, 0)
.map_err(|err| {
io::Error::new(
io::ErrorKind::Other,
format!("GetIdentity request failure: {:?}", err),
)
})?;
serde_json::from_value(response)
.map_err(|err| {
io::Error::new(
io::ErrorKind::Other,
format!("GetIdentity failure: {:?}", err),
)
})
.and_then(|rpc_identity: RpcIdentity| {
rpc_identity.identity.parse::<Pubkey>().map_err(|err| {
io::Error::new(
io::ErrorKind::Other,
format!("GetIdentity invalid pubkey failure: {:?}", err),
)
})
})
}
pub fn get_inflation(&self) -> io::Result<Inflation> {
let response = self
.client