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();
}