use bitcoin::Txid;
pub type UtxoKey = [u8; 12];
pub type Amount = u64;
pub type Balance = i64;
#[derive(Debug, Clone)]
pub struct ZeldOutput {
pub utxo_key: UtxoKey,
pub value: Amount,
pub reward: Amount,
pub distribution: Amount,
pub vout: u32,
pub address: Option<String>,
}
#[derive(Debug, Clone)]
pub struct ZeldInput {
pub utxo_key: UtxoKey,
}
#[derive(Debug, Clone)]
pub struct ZeldTransaction {
pub txid: Txid,
pub inputs: Vec<ZeldInput>,
pub outputs: Vec<ZeldOutput>,
pub zero_count: u8,
pub reward: Amount,
pub has_op_return_distribution: bool,
}
#[derive(Debug, Clone)]
pub struct PreProcessedZeldBlock {
pub transactions: Vec<ZeldTransaction>,
pub max_zero_count: u8,
}
#[derive(Debug, Clone)]
pub struct Reward {
pub txid: Txid,
pub vout: u32,
pub reward: Amount,
pub zero_count: u8,
pub address: Option<String>,
}
#[derive(Debug, Clone)]
pub struct ProcessedZeldBlock {
pub rewards: Vec<Reward>,
pub total_reward: Amount,
pub max_zero_count: u8,
pub nicest_txid: Option<Txid>,
pub utxo_spent_count: u64,
pub new_utxo_count: u64,
}