whisky_csl/tx_parser/
parsable.rs1use whisky_common::{TxBuilderBody, TxParsable, TxTester, UTxO, WError};
2
3use crate::WhiskyCSL;
4
5use super::CSLParser;
6
7impl TxParsable for WhiskyCSL {
8 fn parse(&mut self, tx_hex: &str, resolved_utxos: &[UTxO]) -> Result<(), WError> {
9 let mut parser = CSLParser::new();
10 parser.parse(tx_hex, resolved_utxos)?;
11 self.parser = parser;
12 Ok(())
13 }
14
15 fn get_builder_body(&self) -> TxBuilderBody {
16 self.tx_builder_body.clone()
17 }
18
19 fn get_builder_body_without_change(&self) -> TxBuilderBody {
20 let mut tx_body = self.parser.tx_body.clone();
21 let outputs = self.parser.csl_tx_body.outputs();
22 let outputs_len = outputs.len();
23 if outputs_len > 0 {
24 tx_body.outputs.pop();
25 }
26 tx_body
27 }
28
29 fn to_tester(&self) -> TxTester {
30 TxTester::new(&self.parser.tx_body)
31 }
32}