From 5d21f63e8a3514108f4489d4571774b74477b682 Mon Sep 17 00:00:00 2001 From: Kirill Fomichev Date: Tue, 13 Jul 2021 19:26:14 +0300 Subject: [PATCH] Replace get_clock by get_sysvar in BanksClient --- banks-client/src/lib.rs | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/banks-client/src/lib.rs b/banks-client/src/lib.rs index 4abba3fca2..417bc16ea2 100644 --- a/banks-client/src/lib.rs +++ b/banks-client/src/lib.rs @@ -10,8 +10,8 @@ use futures::{future::join_all, Future, FutureExt}; pub use solana_banks_interface::{BanksClient as TarpcClient, TransactionStatus}; use solana_banks_interface::{BanksRequest, BanksResponse}; use solana_program::{ - clock::Clock, clock::Slot, fee_calculator::FeeCalculator, hash::Hash, program_pack::Pack, - pubkey::Pubkey, rent::Rent, sysvar, + clock::Slot, fee_calculator::FeeCalculator, hash::Hash, program_pack::Pack, pubkey::Pubkey, + rent::Rent, sysvar::Sysvar, }; use solana_sdk::{ account::{from_account, Account}, @@ -114,17 +114,6 @@ impl BanksClient { self.send_transaction_with_context(context::current(), transaction) } - /// Return the cluster clock - pub fn get_clock(&mut self) -> impl Future> + '_ { - self.get_account(sysvar::clock::id()).map(|result| { - let clock_sysvar = result? - .ok_or_else(|| io::Error::new(io::ErrorKind::Other, "Clock sysvar not present"))?; - from_account::(&clock_sysvar).ok_or_else(|| { - io::Error::new(io::ErrorKind::Other, "Failed to deserialize Clock sysvar") - }) - }) - } - /// Return the fee parameters associated with a recent, rooted blockhash. The cluster /// will use the transaction's blockhash to look up these same fee parameters and /// use them to calculate the transaction fee. @@ -134,15 +123,19 @@ impl BanksClient { self.get_fees_with_commitment_and_context(context::current(), CommitmentLevel::default()) } + /// Return the cluster Sysvar + pub fn get_sysvar(&mut self) -> impl Future> + '_ { + self.get_account(T::id()).map(|result| { + let sysvar = result? + .ok_or_else(|| io::Error::new(io::ErrorKind::Other, "Sysvar not present"))?; + from_account::(&sysvar) + .ok_or_else(|| io::Error::new(io::ErrorKind::Other, "Failed to deserialize sysvar")) + }) + } + /// Return the cluster rent pub fn get_rent(&mut self) -> impl Future> + '_ { - self.get_account(sysvar::rent::id()).map(|result| { - let rent_sysvar = result? - .ok_or_else(|| io::Error::new(io::ErrorKind::Other, "Rent sysvar not present"))?; - from_account::(&rent_sysvar).ok_or_else(|| { - io::Error::new(io::ErrorKind::Other, "Failed to deserialize Rent sysvar") - }) - }) + self.get_sysvar::() } /// Return a recent, rooted blockhash from the server. The cluster will only accept