openzeppelin_relayer/constants/
transactions.rs

1//! Transaction-related constants
2
3use crate::models::TransactionStatus;
4
5/// Transaction statuses that are considered final states.
6pub const FINAL_TRANSACTION_STATUSES: &[TransactionStatus] = &[
7    TransactionStatus::Canceled,
8    TransactionStatus::Confirmed,
9    TransactionStatus::Failed,
10    TransactionStatus::Expired,
11];
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16
17    #[test]
18    fn test_final_transaction_statuses_contains_expected_values() {
19        assert_eq!(FINAL_TRANSACTION_STATUSES.len(), 4);
20        assert!(FINAL_TRANSACTION_STATUSES.contains(&TransactionStatus::Canceled));
21        assert!(FINAL_TRANSACTION_STATUSES.contains(&TransactionStatus::Confirmed));
22        assert!(FINAL_TRANSACTION_STATUSES.contains(&TransactionStatus::Failed));
23        assert!(FINAL_TRANSACTION_STATUSES.contains(&TransactionStatus::Expired));
24    }
25
26    #[test]
27    fn test_final_transaction_statuses_excludes_non_final_states() {
28        assert!(!FINAL_TRANSACTION_STATUSES.contains(&TransactionStatus::Pending));
29        assert!(!FINAL_TRANSACTION_STATUSES.contains(&TransactionStatus::Sent));
30        assert!(!FINAL_TRANSACTION_STATUSES.contains(&TransactionStatus::Submitted));
31        assert!(!FINAL_TRANSACTION_STATUSES.contains(&TransactionStatus::Mined));
32    }
33}