use crate::{CreditId, SignatureShare, SignedCredit, SignedCreditShare};
use serde::{Deserialize, Serialize};
pub type NodeAge = u8;
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
pub struct RewardProposal {
pub section_key: crate::PublicKey,
pub rewards: Vec<SignedCreditShare>,
}
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
pub struct RewardAccumulation {
pub section_key: crate::PublicKey,
pub rewards: Vec<AccumulatingReward>,
}
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
pub struct AccumulatingReward {
pub signed_credit: SignedCredit,
pub sig: SignatureShare,
}
impl AccumulatingReward {
pub fn id(&self) -> &CreditId {
self.signed_credit.id()
}
}