Add get_vote_accounts() to RPC client

This commit is contained in:
Michael Vines
2019-10-07 12:30:22 +09:00
parent 5508ac6272
commit 88bb55ffd2
3 changed files with 53 additions and 33 deletions

View File

@@ -2,7 +2,7 @@ use crate::client_error::ClientError;
use crate::generic_rpc_client_request::GenericRpcClientRequest;
use crate::mock_rpc_client_request::MockRpcClientRequest;
use crate::rpc_client_request::RpcClientRequest;
use crate::rpc_request::{RpcEpochInfo, RpcRequest};
use crate::rpc_request::{RpcEpochInfo, RpcRequest, RpcVoteAccountStatus};
use bincode::serialize;
use log::*;
use serde_json::{json, Value};
@@ -100,6 +100,25 @@ impl RpcClient {
})
}
pub fn get_vote_accounts(&self) -> io::Result<RpcVoteAccountStatus> {
let response = self
.client
.send(&RpcRequest::GetVoteAccounts, None, 0)
.map_err(|err| {
io::Error::new(
io::ErrorKind::Other,
format!("GetVoteAccounts request failure: {:?}", err),
)
})?;
serde_json::from_value(response).map_err(|err| {
io::Error::new(
io::ErrorKind::Other,
format!("GetVoteAccounts parse failure: {}", err),
)
})
}
pub fn get_epoch_info(&self) -> io::Result<RpcEpochInfo> {
let response = self
.client