getSignatureStatuses use global tx_store

This commit is contained in:
Aniket Prajapati 2023-01-08 19:54:23 +05:30
parent 0cd7377d9d
commit d2f8184c8e
No known key found for this signature in database
GPG Key ID: D4346D8C9C5398F2
2 changed files with 5 additions and 36 deletions

View File

@ -24,7 +24,7 @@ use solana_sdk::{
pubkey::Pubkey,
transaction::VersionedTransaction,
};
use solana_transaction_status::{TransactionStatus};
use solana_transaction_status::TransactionStatus;
use tokio::{net::ToSocketAddrs, task::JoinHandle};
/// A bridge between clients and tpu
@ -260,23 +260,10 @@ impl LiteRpcServer for LiteBridge {
sigs: Vec<String>,
_config: Option<solana_client::rpc_config::RpcSignatureStatusConfig>,
) -> crate::rpc::Result<RpcResponse<Vec<Option<TransactionStatus>>>> {
let mut sig_statuses = self
.confirmed_block_listenser
.get_signature_statuses(&sigs)
.await;
// merge
let mut sig_index = 0;
for finalized_block in self
.finalized_block_listenser
.get_signature_statuses(&sigs)
.await
{
if let Some(finalized_block) = finalized_block {
sig_statuses[sig_index] = Some(finalized_block);
}
sig_index += 0;
}
let sig_statuses = sigs
.iter()
.map(|sig| self.txs_sent.get(sig).and_then(|v| v.clone()))
.collect();
Ok(RpcResponse {
context: RpcResponseContext {

View File

@ -18,8 +18,6 @@ use solana_sdk::{
use solana_transaction_status::{TransactionConfirmationStatus, TransactionStatus};
use tokio::{sync::RwLock, task::JoinHandle};
/// Background worker which listen's to new blocks
/// and keeps a track of confirmed txs
#[derive(Clone)]
@ -61,22 +59,6 @@ impl BlockListener {
})
}
/// # Return
/// commitment_level for the list of txs from the cache
pub async fn get_signature_statuses(&self, sigs: &[String]) -> Vec<Option<TransactionStatus>> {
let mut commitment_levels = Vec::with_capacity(sigs.len());
for sig in sigs {
commitment_levels.push(
self.txs_sent
.get(sig)
.map_or_else(|| None, |some| some.value().clone()),
);
}
commitment_levels
}
pub async fn num_of_sigs_commited(&self, sigs: &[String]) -> usize {
let mut num_of_sigs_commited = 0;
for sig in sigs {