use massa_models::{
block_id::BlockId,
endorsement::{EndorsementId, SecureShareEndorsement},
};
use serde::{Deserialize, Serialize};
use crate::display_if_true;
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct EndorsementInfo {
pub id: EndorsementId,
pub in_pool: bool,
pub in_blocks: Vec<BlockId>,
pub is_final: bool,
pub endorsement: SecureShareEndorsement,
}
impl std::fmt::Display for EndorsementInfo {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
writeln!(
f,
"Endorsement {}{}{}",
self.id,
display_if_true(self.in_pool, " (in pool)"),
display_if_true(self.is_final, " (final)")
)?;
writeln!(f, "In blocks:")?;
for block_id in &self.in_blocks {
writeln!(f, "\t- {}", block_id)?;
}
writeln!(f, "{}", self.endorsement)?;
Ok(())
}
}