Update getSignatureStatuses to return historical statuses (#9314)
automerge
This commit is contained in:
@@ -4,6 +4,7 @@ extern crate serde_derive;
|
||||
use bincode;
|
||||
use solana_sdk::{
|
||||
clock::Slot,
|
||||
commitment_config::CommitmentConfig,
|
||||
message::MessageHeader,
|
||||
transaction::{Result, Transaction, TransactionError},
|
||||
};
|
||||
@@ -68,6 +69,13 @@ pub struct TransactionStatus {
|
||||
pub err: Option<TransactionError>,
|
||||
}
|
||||
|
||||
impl TransactionStatus {
|
||||
pub fn satisfies_commitment(&self, commitment_config: CommitmentConfig) -> bool {
|
||||
(commitment_config == CommitmentConfig::default() && self.confirmations.is_none())
|
||||
|| commitment_config == CommitmentConfig::recent()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub struct Reward {
|
||||
pub pubkey: String,
|
||||
@@ -171,3 +179,31 @@ impl EncodedTransaction {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_satisfies_commitment() {
|
||||
let status = TransactionStatus {
|
||||
slot: 0,
|
||||
confirmations: None,
|
||||
status: Ok(()),
|
||||
err: None,
|
||||
};
|
||||
|
||||
assert!(status.satisfies_commitment(CommitmentConfig::default()));
|
||||
assert!(status.satisfies_commitment(CommitmentConfig::recent()));
|
||||
|
||||
let status = TransactionStatus {
|
||||
slot: 0,
|
||||
confirmations: Some(10),
|
||||
status: Ok(()),
|
||||
err: None,
|
||||
};
|
||||
|
||||
assert!(!status.satisfies_commitment(CommitmentConfig::default()));
|
||||
assert!(status.satisfies_commitment(CommitmentConfig::recent()));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user