Add getSnapshotSlot RPC method

This commit is contained in:
Michael Vines
2021-01-14 21:45:11 -08:00
committed by mergify[bot]
parent dacb95083d
commit 4003f86f04
7 changed files with 89 additions and 12 deletions

View File

@ -274,6 +274,10 @@ impl RpcClient {
)
}
pub fn get_snapshot_slot(&self) -> ClientResult<Slot> {
self.send(RpcRequest::GetSnapshotSlot, Value::Null)
}
pub fn get_signature_status(
&self,
signature: &Signature,

View File

@ -11,6 +11,7 @@ pub const JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE: i64 = -32004;
pub const JSON_RPC_SERVER_ERROR_NODE_UNHEALTHLY: i64 = -32005;
pub const JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: i64 = -32006;
pub const JSON_RPC_SERVER_ERROR_SLOT_SKIPPED: i64 = -32007;
pub const JSON_RPC_SERVER_ERROR_NO_SNAPSHOT: i64 = -32008;
pub enum RpcCustomError {
BlockCleanedUp {
@ -32,6 +33,7 @@ pub enum RpcCustomError {
SlotSkipped {
slot: Slot,
},
NoSnapshot,
}
#[derive(Debug, Serialize, Deserialize)]
@ -95,6 +97,11 @@ impl From<RpcCustomError> for Error {
),
data: None,
},
RpcCustomError::NoSnapshot => Self {
code: ErrorCode::ServerError(JSON_RPC_SERVER_ERROR_NO_SNAPSHOT),
message: "No snapshot".to_string(),
data: None,
},
}
}
}

View File

@ -35,6 +35,7 @@ pub enum RpcRequest {
GetMultipleAccounts,
GetProgramAccounts,
GetRecentBlockhash,
GetSnapshotSlot,
GetSignatureStatuses,
GetSlot,
GetSlotLeader,
@ -91,6 +92,7 @@ impl fmt::Display for RpcRequest {
RpcRequest::GetMultipleAccounts => "getMultipleAccounts",
RpcRequest::GetProgramAccounts => "getProgramAccounts",
RpcRequest::GetRecentBlockhash => "getRecentBlockhash",
RpcRequest::GetSnapshotSlot => "getSnapshotSlot",
RpcRequest::GetSignatureStatuses => "getSignatureStatuses",
RpcRequest::GetSlot => "getSlot",
RpcRequest::GetSlotLeader => "getSlotLeader",