getSignatureStatuses use global tx_store
This commit is contained in:
parent
0cd7377d9d
commit
d2f8184c8e
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue