use committable::{Committable, RawCommitmentBuilder};
use serde::{Deserialize, Serialize};
use crate::traits::{node_implementation::NodeType, signature_key::SignatureKey};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
pub struct ProposalRequestPayload<TYPES: NodeType> {
pub view_number: TYPES::View,
pub key: TYPES::SignatureKey,
}
impl<TYPES: NodeType> Committable for ProposalRequestPayload<TYPES> {
fn commit(&self) -> committable::Commitment<Self> {
RawCommitmentBuilder::new("signed proposal request commitment")
.u64_field("view number", *self.view_number)
.var_size_bytes(&self.key.to_bytes())
.finalize()
}
}