use crate::crypto::{Hash, PublicKey, Signature};
#[derive(Debug, Clone, PartialEq)]
pub struct SignedTreeHead {
pub size: u64,
pub root_hash: Hash,
pub signature: Signature,
pub cosignatures: Vec<WitnessCosignature>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct WitnessCosignature {
pub keyhash: Hash,
pub timestamp: u64,
pub cosignature: Signature,
}
#[derive(Debug, Clone, PartialEq)]
pub struct InclusionProof {
pub leaf_index: u64,
pub node_hashes: Vec<Hash>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Protoleaf {
pub message: Hash,
pub signature: Signature,
pub public_key: PublicKey,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Leaf {
pub digest: Hash,
pub signature: Signature,
pub keyhash: Hash,
}