1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
extern crate sha2;

pub mod op;
pub mod script;
pub mod tx;
pub mod varint;

pub use script::Script;
use sha2::{Digest, Sha256};
pub use varint::VarInt;

pub trait Serializable<T> {
    fn deserialize(cur: &mut [u8]) -> (T, &mut [u8]);
    fn serialize(&self) -> Vec<u8>;
}

fn sha256d(input: Vec<u8>) -> Vec<u8> {
    return Sha256::digest(Sha256::digest(input.as_slice()).as_slice())
        .as_slice()
        .to_vec();
}