whisky_csl/tx_parser/
change_address.rs

1use whisky_common::WError;
2
3use super::CSLParser;
4
5impl CSLParser {
6    pub fn get_change_address(&self) -> &String {
7        &self.tx_body.change_address
8    }
9
10    pub(super) fn extract_change_address(&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_address = outputs
15                .get(outputs_len - 1)
16                .address()
17                .to_bech32(None)
18                .map_err(|e| {
19                    WError::new(
20                        "extract_change_address",
21                        &format!("Failed to convert change address to bech32: {:?}", e),
22                    )
23                })?;
24            self.tx_body.change_address = change_address;
25        }
26        Ok(())
27    }
28}