use crate::{Script, Serializable};
use std::convert::TryInto;
pub struct TxOut {
pub value: u64,
pub script_pub_key: Script,
}
impl TxOut {
pub fn deserialize(cur: &mut [u8]) -> (TxOut, &mut [u8]) {
let (value_bytes, cur) = cur.split_at_mut(8);
let (script, cur) = Script::deserialize(cur);
let txout = TxOut {
value: u64::from_le_bytes((*value_bytes).try_into().unwrap()),
script_pub_key: script,
};
return (txout, cur);
}
pub fn get_vout(&self) -> Vec<u8> {
let mut vout: Vec<u8> = vec![];
vout.extend(self.value.to_le_bytes().to_vec());
vout.extend(self.script_pub_key.serialize());
return vout;
}
}