From d2f8184c8e22b98523a49aaf8f812d4b625e6d81 Mon Sep 17 00:00:00 2001 From: Aniket Prajapati Date: Sun, 8 Jan 2023 19:54:23 +0530 Subject: [PATCH] getSignatureStatuses use global tx_store --- src/bridge.rs | 23 +++++------------------ src/workers/block_listenser.rs | 18 ------------------ 2 files changed, 5 insertions(+), 36 deletions(-) diff --git a/src/bridge.rs b/src/bridge.rs index 384c4560..0520110f 100644 --- a/src/bridge.rs +++ b/src/bridge.rs @@ -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, _config: Option, ) -> crate::rpc::Result>>> { - 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 { diff --git a/src/workers/block_listenser.rs b/src/workers/block_listenser.rs index 0d68dab5..88617237 100644 --- a/src/workers/block_listenser.rs +++ b/src/workers/block_listenser.rs @@ -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> { - 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 {