whisky_csl/tx_parser/
change_datum.rs1use whisky_common::{Datum, WError};
2
3use super::CSLParser;
4
5impl CSLParser {
6 pub fn get_change_datum(&self) -> &Option<Datum> {
7 &self.tx_body.change_datum
8 }
9
10 pub(super) fn extract_change_datum(&mut self) -> Result<(), WError> {
11 let outputs = self.csl_tx_body.outputs();
12 let outputs_len = outputs.len();
13 if outputs_len > 0 {
14 let change_output = outputs.get(outputs_len - 1);
15 let change_datum = change_output.plutus_data();
16 if let Some(change_datum) = change_datum {
17 self.tx_body.change_datum = Some(Datum::Inline(change_datum.to_hex()));
18 } else if let Some(data_hash) = change_output.data_hash() {
19 self.tx_body.change_datum = Some(Datum::Hash(data_hash.to_hex()));
20 }
21 }
22 Ok(())
23 }
24}