use crate::types::{BalanceDiffs, ConsumedOutput, CreatedOutput};
use bee_message::{milestone::MilestoneIndex, output::OutputId, MessageId};
use bee_tangle::ConflictReason;
use std::collections::HashMap;
pub struct WhiteFlagMetadata {
pub(crate) index: MilestoneIndex,
pub(crate) referenced_messages: usize,
pub(crate) excluded_no_transaction_messages: Vec<MessageId>,
pub(crate) excluded_conflicting_messages: Vec<(MessageId, ConflictReason)>,
pub(crate) included_messages: Vec<MessageId>,
pub(crate) created_outputs: HashMap<OutputId, CreatedOutput>,
pub(crate) consumed_outputs: HashMap<OutputId, (CreatedOutput, ConsumedOutput)>,
pub(crate) balance_diffs: BalanceDiffs,
pub(crate) merkle_proof: Vec<u8>,
}
impl WhiteFlagMetadata {
pub fn new(index: MilestoneIndex) -> WhiteFlagMetadata {
WhiteFlagMetadata {
index,
referenced_messages: 0,
excluded_no_transaction_messages: Vec::new(),
excluded_conflicting_messages: Vec::new(),
included_messages: Vec::new(),
created_outputs: HashMap::new(),
consumed_outputs: HashMap::new(),
balance_diffs: BalanceDiffs::new(),
merkle_proof: Vec::new(),
}
}
pub fn merkle_proof(&self) -> &[u8] {
&self.merkle_proof
}
}