Use optimistic confirmation in getSignatureStatuses, and various downstream client methods (#14430)

* Add optimistically_confirmed field to TransactionStatus

* Update docs

* Convert new field to confirmation_status

* Update docs to confirmationStatus

* Update variants

* Update docs

* Just Confirmed
This commit is contained in:
Tyera Eulberg
2021-01-15 09:05:05 -07:00
committed by GitHub
parent 299b3eb99d
commit 9a89689ad3
11 changed files with 162 additions and 30 deletions

View File

@ -41,6 +41,7 @@ use solana_sdk::{
system_program,
transaction::Transaction,
};
use solana_transaction_status::TransactionConfirmationStatus;
use std::{
cmp::min, collections::HashMap, error, fs::File, io::Read, net::UdpSocket, path::PathBuf,
sync::Arc, thread::sleep, time::Duration,
@ -1578,7 +1579,11 @@ fn send_and_confirm_transactions_with_spinner<T: Signers>(
for (signature, status) in pending_signatures.into_iter().zip(statuses.into_iter()) {
if let Some(status) = status {
if status.confirmations.is_none() || status.confirmations.unwrap() > 1 {
if let Some(confirmation_status) = &status.confirmation_status {
if *confirmation_status != TransactionConfirmationStatus::Processed {
let _ = pending_transactions.remove(&signature);
}
} else if status.confirmations.is_none() || status.confirmations.unwrap() > 1 {
let _ = pending_transactions.remove(&signature);
}
}