From a9a7f21f51e27cb5abc319d414fc79a7b02dad57 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 1 Apr 2021 07:30:25 +0000 Subject: [PATCH] Add RpcClient::get_stake_activation() (bp #16165) (#16294) * Add RpcClient::get_stake_activation() (cherry picked from commit 5791b95b17452f78973b983d0c3723cf1fda9288) # Conflicts: # client/src/rpc_client.rs * Fix conflicts * Derive PartialEq for StakeActivationState Co-authored-by: Michael Vines Co-authored-by: Tyera Eulberg --- client/src/rpc_client.rs | 21 +++++++++++++++++++-- client/src/rpc_request.rs | 2 ++ client/src/rpc_response.rs | 2 +- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/client/src/rpc_client.rs b/client/src/rpc_client.rs index 06d4b6894e..7adce47791 100644 --- a/client/src/rpc_client.rs +++ b/client/src/rpc_client.rs @@ -7,7 +7,7 @@ use crate::{ RpcConfirmedBlockConfig, RpcConfirmedTransactionConfig, RpcGetConfirmedSignaturesForAddress2Config, RpcLargestAccountsConfig, RpcProgramAccountsConfig, RpcSendTransactionConfig, RpcSimulateTransactionConfig, - RpcTokenAccountsFilter, + RpcStakeConfig, RpcTokenAccountsFilter, }, rpc_request::{RpcError, RpcRequest, RpcResponseErrorData, TokenAccountsFilter}, rpc_response::*, @@ -24,7 +24,7 @@ use solana_account_decoder::{ use solana_sdk::{ account::Account, clock::{ - Slot, UnixTimestamp, DEFAULT_TICKS_PER_SECOND, DEFAULT_TICKS_PER_SLOT, + Epoch, Slot, UnixTimestamp, DEFAULT_TICKS_PER_SECOND, DEFAULT_TICKS_PER_SLOT, MAX_HASH_AGE_IN_SECONDS, }, commitment_config::{CommitmentConfig, CommitmentLevel}, @@ -421,6 +421,23 @@ impl RpcClient { }) } + pub fn get_stake_activation( + &self, + stake_account: Pubkey, + epoch: Option, + ) -> ClientResult { + self.send( + RpcRequest::GetStakeActivation, + json!([ + stake_account.to_string(), + RpcStakeConfig { + epoch, + commitment: Some(self.commitment_config), + } + ]), + ) + } + pub fn supply(&self) -> RpcResult { self.supply_with_commitment(self.commitment_config) } diff --git a/client/src/rpc_request.rs b/client/src/rpc_request.rs index 0418ebc8a7..c5b445a090 100644 --- a/client/src/rpc_request.rs +++ b/client/src/rpc_request.rs @@ -44,6 +44,7 @@ pub enum RpcRequest { GetStorageTurn, GetStorageTurnRate, GetSlotsPerSegment, + GetStakeActivation, GetStoragePubkeysForSlot, GetSupply, GetTokenAccountBalance, @@ -100,6 +101,7 @@ impl fmt::Display for RpcRequest { RpcRequest::GetSlot => "getSlot", RpcRequest::GetSlotLeader => "getSlotLeader", RpcRequest::GetSlotLeaders => "getSlotLeaders", + RpcRequest::GetStakeActivation => "getStakeActivation", RpcRequest::GetStorageTurn => "getStorageTurn", RpcRequest::GetStorageTurnRate => "getStorageTurnRate", RpcRequest::GetSlotsPerSegment => "getSlotsPerSegment", diff --git a/client/src/rpc_response.rs b/client/src/rpc_response.rs index a6d14e6b33..940d4fcd1a 100644 --- a/client/src/rpc_response.rs +++ b/client/src/rpc_response.rs @@ -313,7 +313,7 @@ pub struct RpcSupply { pub non_circulating_accounts: Vec, } -#[derive(Serialize, Deserialize, Clone, Debug)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] #[serde(rename_all = "camelCase")] pub enum StakeActivationState { Activating,