whisky_common/tx_tester/
mod.rs

1use crate::{Output, TxBuilderBody, TxIn, WError};
2
3mod extra_signatories;
4mod inputs;
5mod mints;
6mod outputs;
7mod validity_range;
8
9#[derive(Clone)]
10pub struct TxTester {
11    pub tx_body: TxBuilderBody,
12    pub inputs_evaluating: Vec<TxIn>,
13    pub outputs_evaluating: Vec<Output>,
14    pub traces: Option<WError>,
15}
16
17impl TxTester {
18    pub fn new(tx_body: &TxBuilderBody) -> Self {
19        TxTester {
20            tx_body: tx_body.clone(),
21            inputs_evaluating: vec![],
22            outputs_evaluating: vec![],
23            traces: None,
24        }
25    }
26
27    pub fn add_trace(&mut self, func_name: &str, message: &str) {
28        if let Some(existing_trace) = &mut self.traces {
29            let msg = format!("[Error - {}]: {}", func_name, message);
30            existing_trace.add_trace(&msg);
31        } else {
32            self.traces = Some(WError::new(func_name, message));
33        }
34    }
35
36    pub fn success(&self) -> bool {
37        self.traces.is_none()
38    }
39
40    pub fn errors(&self) -> String {
41        if let Some(traces) = &self.traces {
42            format!("{:?}", traces)
43        } else {
44            "No errors".to_string()
45        }
46    }
47}