anvil_zksync_core/formatter/transaction/
status.rs1use std::fmt::Display;
2
3use zksync_multivm::interface::ExecutionResult;
4
5pub enum TransactionStatus {
9 Success,
10 Failure,
11 Halt,
12}
13
14impl TransactionStatus {
15 pub fn emoji(&self) -> &str {
16 match self {
17 Self::Success => "✅",
18 Self::Failure => "❌",
19 Self::Halt => "⏸️",
20 }
21 }
22}
23impl From<&zksync_multivm::interface::ExecutionResult> for TransactionStatus {
24 fn from(value: &ExecutionResult) -> Self {
25 match value {
26 ExecutionResult::Success { .. } => Self::Success,
27 ExecutionResult::Revert { .. } => Self::Failure,
28 ExecutionResult::Halt { .. } => Self::Halt,
29 }
30 }
31}
32impl Display for TransactionStatus {
33 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
34 f.write_str(match self {
35 TransactionStatus::Success => "SUCCESS",
36 TransactionStatus::Failure => "FAILED",
37 TransactionStatus::Halt => "HALTED",
38 })
39 }
40}