removing correctly the transactions from the map while confirming

This commit is contained in:
Godmode Galactus 2023-06-20 15:19:18 +02:00
parent 92a0db9cc3
commit 72c4f79911
No known key found for this signature in database
GPG Key ID: A04142C71ABB0DEA
1 changed files with 3 additions and 9 deletions

View File

@ -171,8 +171,6 @@ pub fn confirmation_by_lite_rpc_notification_stream(
let mut tx_record_rx = tx_record_rx; let mut tx_record_rx = tx_record_rx;
let mut notification_stream = notification_stream; let mut notification_stream = notification_stream;
#[allow(unused_assignments)]
let mut remove_tx = None;
while !transaction_map.is_empty() || !exit_signal.load(Ordering::Relaxed) { while !transaction_map.is_empty() || !exit_signal.load(Ordering::Relaxed) {
tokio::select! { tokio::select! {
transaction_record = tx_record_rx.recv() => { transaction_record = tx_record_rx.recv() => {
@ -184,7 +182,6 @@ pub fn confirmation_by_lite_rpc_notification_stream(
}, },
notification = notification_stream.recv() => { notification = notification_stream.recv() => {
if let Some(notification) = notification { if let Some(notification) = notification {
remove_tx = None;
match notification { match notification {
NotificationMsg::BlockNotificationMsg(block_notification) => { NotificationMsg::BlockNotificationMsg(block_notification) => {
@ -209,9 +206,8 @@ pub fn confirmation_by_lite_rpc_notification_stream(
}, },
_ => None _ => None
}; };
remove_tx = Some(tx_notification.signature.clone());
let _ = tx_confirm_records.send(TransactionConfirmRecord { let _ = tx_confirm_records.send(TransactionConfirmRecord {
signature: tx_notification.signature, signature: tx_notification.signature.clone(),
confirmed_slot: Some(tx_notification.slot), confirmed_slot: Some(tx_notification.slot),
confirmed_at: Some(Utc::now().to_string()), confirmed_at: Some(Utc::now().to_string()),
sent_at: tx_sent_record.sent_at.to_string(), sent_at: tx_sent_record.sent_at.to_string(),
@ -228,16 +224,14 @@ pub fn confirmation_by_lite_rpc_notification_stream(
priority_fees: tx_sent_record.priority_fees, priority_fees: tx_sent_record.priority_fees,
}); });
} }
transaction_map.remove(&tx_notification.signature);
} }
}, },
_ => { _ => {
// others do nothing // others do nothing
} }
} }
if let Some(signature) = &remove_tx {
transaction_map.remove(signature);
}
} }
}, },
_ = tokio::time::sleep(Duration::from_secs(1)) => { _ = tokio::time::sleep(Duration::from_secs(1)) => {