bitcointx 0.0.15

Bitcoin TX utility crate
Documentation
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;
    }
}