mithril_common/signable_builder/
mithril_stake_distribution.rs

1use async_trait::async_trait;
2
3use crate::{
4    entities::{Epoch, ProtocolMessage},
5    signable_builder::SignableBuilder,
6    StdResult,
7};
8
9/// A [MithrilStakeDistributionSignableBuilder] builder
10#[derive(Default)]
11pub struct MithrilStakeDistributionSignableBuilder {}
12
13#[async_trait]
14impl SignableBuilder<Epoch> for MithrilStakeDistributionSignableBuilder {
15    async fn compute_protocol_message(&self, _beacon: Epoch) -> StdResult<ProtocolMessage> {
16        Ok(ProtocolMessage::new())
17    }
18}
19
20#[cfg(test)]
21mod tests {
22    use super::*;
23
24    #[tokio::test]
25    async fn test_compute_signable() {
26        let mithril_stake_distribution_signable_builder =
27            MithrilStakeDistributionSignableBuilder::default();
28        let signable = mithril_stake_distribution_signable_builder
29            .compute_protocol_message(Epoch(1))
30            .await
31            .unwrap();
32        let signable_expected = ProtocolMessage::new();
33        assert_eq!(signable_expected, signable);
34    }
35}