whisky_common/tx_tester/
mod.rs1use 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}