Update getSignatureStatuses to return historical statuses (#9314)

automerge
This commit is contained in:
Tyera Eulberg
2020-04-06 04:04:54 -06:00
committed by GitHub
parent b28ec430e4
commit acf64f8476
6 changed files with 257 additions and 26 deletions

View File

@@ -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()));
}
}