multiversx_sc_scenario/scenario/model/transaction/
tx_response_status.rs

1use multiversx_sc::chain_core::types::ReturnCode;
2
3#[derive(Debug, Default, Clone, PartialEq, Eq)]
4/// The status of a transaction.
5pub struct TxResponseStatus {
6    /// The status of the transaction.
7    pub status: ReturnCode,
8    /// The message of the transaction.
9    pub message: String,
10}
11
12impl TxResponseStatus {
13    /// Creates a [`TxResponseStatus`]
14    pub fn new(status: ReturnCode, message: &str) -> Self {
15        Self {
16            status,
17            message: message.to_string(),
18        }
19    }
20
21    /// Creates a [`TxResponseStatus`] that signals an error.
22    pub fn signal_error(message: &str) -> Self {
23        Self::new(ReturnCode::UserError, message)
24    }
25
26    /// Checks if the transaction was successful.
27    pub fn is_success(&self) -> bool {
28        self.status.is_success()
29    }
30}
31
32impl std::fmt::Display for TxResponseStatus {
33    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
34        if self.is_success() {
35            write!(f, "transaction successful")
36        } else {
37            write!(
38                f,
39                "transaction failed: (status: {}, message: {})",
40                self.status, self.message
41            )
42        }
43    }
44}