add get_account to BenchTpsClient (#26068)
* add get_account to BenchTpsClient * improve error reporting in get_account
This commit is contained in:
parent
51f26dc96e
commit
4031a37521
|
@ -1,8 +1,9 @@
|
||||||
use {
|
use {
|
||||||
solana_client::{client_error::ClientError, tpu_client::TpuSenderError},
|
solana_client::{client_error::ClientError, tpu_client::TpuSenderError},
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
commitment_config::CommitmentConfig, epoch_info::EpochInfo, hash::Hash, message::Message,
|
account::Account, commitment_config::CommitmentConfig, epoch_info::EpochInfo, hash::Hash,
|
||||||
pubkey::Pubkey, signature::Signature, transaction::Transaction, transport::TransportError,
|
message::Message, pubkey::Pubkey, signature::Signature, transaction::Transaction,
|
||||||
|
transport::TransportError,
|
||||||
},
|
},
|
||||||
thiserror::Error,
|
thiserror::Error,
|
||||||
};
|
};
|
||||||
|
@ -79,6 +80,9 @@ pub trait BenchTpsClient {
|
||||||
lamports: u64,
|
lamports: u64,
|
||||||
recent_blockhash: &Hash,
|
recent_blockhash: &Hash,
|
||||||
) -> Result<Signature>;
|
) -> Result<Signature>;
|
||||||
|
|
||||||
|
/// Returns all information associated with the account of the provided pubkey
|
||||||
|
fn get_account(&self, pubkey: &Pubkey) -> Result<Account>;
|
||||||
}
|
}
|
||||||
|
|
||||||
mod bank_client;
|
mod bank_client;
|
||||||
|
|
|
@ -2,6 +2,7 @@ use {
|
||||||
crate::bench_tps_client::{BenchTpsClient, BenchTpsError, Result},
|
crate::bench_tps_client::{BenchTpsClient, BenchTpsError, Result},
|
||||||
solana_runtime::bank_client::BankClient,
|
solana_runtime::bank_client::BankClient,
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
|
account::Account,
|
||||||
client::{AsyncClient, SyncClient},
|
client::{AsyncClient, SyncClient},
|
||||||
commitment_config::CommitmentConfig,
|
commitment_config::CommitmentConfig,
|
||||||
epoch_info::EpochInfo,
|
epoch_info::EpochInfo,
|
||||||
|
@ -82,4 +83,14 @@ impl BenchTpsClient for BankClient {
|
||||||
// BankClient doesn't support airdrops
|
// BankClient doesn't support airdrops
|
||||||
Err(BenchTpsError::AirdropFailure)
|
Err(BenchTpsError::AirdropFailure)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_account(&self, pubkey: &Pubkey) -> Result<Account> {
|
||||||
|
SyncClient::get_account(self, pubkey)
|
||||||
|
.map_err(|err| err.into())
|
||||||
|
.and_then(|account| {
|
||||||
|
account.ok_or_else(|| {
|
||||||
|
BenchTpsError::Custom(format!("AccountNotFound: pubkey={}", pubkey))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,8 @@ use {
|
||||||
crate::bench_tps_client::{BenchTpsClient, Result},
|
crate::bench_tps_client::{BenchTpsClient, Result},
|
||||||
solana_client::rpc_client::RpcClient,
|
solana_client::rpc_client::RpcClient,
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
commitment_config::CommitmentConfig, epoch_info::EpochInfo, hash::Hash, message::Message,
|
account::Account, commitment_config::CommitmentConfig, epoch_info::EpochInfo, hash::Hash,
|
||||||
pubkey::Pubkey, signature::Signature, transaction::Transaction,
|
message::Message, pubkey::Pubkey, signature::Signature, transaction::Transaction,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -80,4 +80,8 @@ impl BenchTpsClient for RpcClient {
|
||||||
RpcClient::request_airdrop_with_blockhash(self, pubkey, lamports, recent_blockhash)
|
RpcClient::request_airdrop_with_blockhash(self, pubkey, lamports, recent_blockhash)
|
||||||
.map_err(|err| err.into())
|
.map_err(|err| err.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_account(&self, pubkey: &Pubkey) -> Result<Account> {
|
||||||
|
RpcClient::get_account(self, pubkey).map_err(|err| err.into())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ use {
|
||||||
crate::bench_tps_client::{BenchTpsClient, Result},
|
crate::bench_tps_client::{BenchTpsClient, Result},
|
||||||
solana_client::thin_client::ThinClient,
|
solana_client::thin_client::ThinClient,
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
|
account::Account,
|
||||||
client::{AsyncClient, Client, SyncClient},
|
client::{AsyncClient, Client, SyncClient},
|
||||||
commitment_config::CommitmentConfig,
|
commitment_config::CommitmentConfig,
|
||||||
epoch_info::EpochInfo,
|
epoch_info::EpochInfo,
|
||||||
|
@ -83,4 +84,10 @@ impl BenchTpsClient for ThinClient {
|
||||||
.request_airdrop_with_blockhash(pubkey, lamports, recent_blockhash)
|
.request_airdrop_with_blockhash(pubkey, lamports, recent_blockhash)
|
||||||
.map_err(|err| err.into())
|
.map_err(|err| err.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_account(&self, pubkey: &Pubkey) -> Result<Account> {
|
||||||
|
self.rpc_client()
|
||||||
|
.get_account(pubkey)
|
||||||
|
.map_err(|err| err.into())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,8 @@ use {
|
||||||
crate::bench_tps_client::{BenchTpsClient, Result},
|
crate::bench_tps_client::{BenchTpsClient, Result},
|
||||||
solana_client::tpu_client::TpuClient,
|
solana_client::tpu_client::TpuClient,
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
commitment_config::CommitmentConfig, epoch_info::EpochInfo, hash::Hash, message::Message,
|
account::Account, commitment_config::CommitmentConfig, epoch_info::EpochInfo, hash::Hash,
|
||||||
pubkey::Pubkey, signature::Signature, transaction::Transaction,
|
message::Message, pubkey::Pubkey, signature::Signature, transaction::Transaction,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -96,4 +96,10 @@ impl BenchTpsClient for TpuClient {
|
||||||
.request_airdrop_with_blockhash(pubkey, lamports, recent_blockhash)
|
.request_airdrop_with_blockhash(pubkey, lamports, recent_blockhash)
|
||||||
.map_err(|err| err.into())
|
.map_err(|err| err.into())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_account(&self, pubkey: &Pubkey) -> Result<Account> {
|
||||||
|
self.rpc_client()
|
||||||
|
.get_account(pubkey)
|
||||||
|
.map_err(|err| err.into())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue