whisky_common/tx_tester/
validity_range.rs

1use super::TxTester;
2
3impl TxTester {
4    /// ## Testing methods for validity range
5    ///
6    /// Checks if the transaction is valid after a specified timestamp.
7    pub fn valid_after(&mut self, required_timestamp: u64) -> &mut Self {
8        let invalid_before =
9            if let Some(validity_range) = &self.tx_body.validity_range.invalid_hereafter {
10                *validity_range
11            } else {
12                9999_999_999_999 // A very large number representing "no limit"
13            };
14        let is_valid_after =
15            if let Some(validity_range) = &self.tx_body.validity_range.invalid_before {
16                *validity_range < required_timestamp
17            } else {
18                true
19            };
20
21        if !is_valid_after {
22            self.add_trace(
23                "valid_after",
24                &format!(
25                    "tx invalid before {}, with required_timestamp {}",
26                    invalid_before, required_timestamp
27                ),
28            );
29        }
30
31        self
32    }
33
34    /// ## Testing methods for validity range
35    ///
36    /// Checks if the transaction is valid before a specified timestamp.
37    pub fn valid_before(&mut self, required_timestamp: u64) -> &mut Self {
38        let invalid_hereafter =
39            if let Some(validity_range) = &self.tx_body.validity_range.invalid_before {
40                *validity_range
41            } else {
42                0 // Representing "no limit"
43            };
44
45        let is_valid_before =
46            if let Some(validity_range) = &self.tx_body.validity_range.invalid_hereafter {
47                *validity_range > required_timestamp
48            } else {
49                true
50            };
51
52        if !is_valid_before {
53            self.add_trace(
54                "valid_before",
55                &format!(
56                    "tx invalid after {}, with required_timestamp {}",
57                    invalid_hereafter, required_timestamp
58                ),
59            );
60        }
61
62        self
63    }
64}