use bitcoin::Txid;
pub type UtxoKey = [u8; 8];
pub type Amount = u64;
#[derive(Debug, Clone)]
pub struct MhinOutput {
pub utxo_key: UtxoKey,
pub value: Amount,
pub reward: Amount,
pub distribution: Amount,
pub vout: u32,
}
#[derive(Debug, Clone)]
pub struct MhinInput {
pub utxo_key: UtxoKey,
}
#[derive(Debug, Clone)]
pub struct MhinTransaction {
pub txid: Txid,
pub inputs: Vec<MhinInput>,
pub outputs: Vec<MhinOutput>,
pub zero_count: u8,
pub reward: Amount,
pub has_op_return_distribution: bool,
}
#[derive(Debug, Clone)]
pub struct PreProcessedMhinBlock {
pub transactions: Vec<MhinTransaction>,
pub max_zero_count: u8,
}
#[derive(Debug, Clone)]
pub struct Reward {
pub txid: Txid,
pub vout: u32,
pub reward: Amount,
pub zero_count: u8,
}
#[derive(Debug, Clone)]
pub struct ProcessedMhinBlock {
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,
}