multiversx_sc_scenario/scenario/model/transaction/
tx_response_status.rs1use multiversx_sc::chain_core::types::ReturnCode;
2
3#[derive(Debug, Default, Clone, PartialEq, Eq)]
4pub struct TxResponseStatus {
6 pub status: ReturnCode,
8 pub message: String,
10}
11
12impl TxResponseStatus {
13 pub fn new(status: ReturnCode, message: &str) -> Self {
15 Self {
16 status,
17 message: message.to_string(),
18 }
19 }
20
21 pub fn signal_error(message: &str) -> Self {
23 Self::new(ReturnCode::UserError, message)
24 }
25
26 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}