|
1 |
| -use std::sync::Arc; |
2 |
| - |
3 | 1 | use async_trait::async_trait;
|
4 |
| -use tokio::sync::RwLock; |
5 | 2 |
|
6 | 3 | use mithril_common::{
|
7 |
| - entities::{Epoch, ProtocolMessage, ProtocolMessagePartKey}, |
| 4 | + entities::{Epoch, ProtocolMessage}, |
8 | 5 | signable_builder::SignableBuilder,
|
9 | 6 | StdResult,
|
10 | 7 | };
|
11 | 8 |
|
12 |
| -use crate::MultiSigner; |
13 |
| - |
14 |
| -/// A [SignableBuilder] for mithril stake distribution. |
15 |
| -pub struct MithrilStakeDistributionSignableBuilder { |
16 |
| - multi_signer: Arc<RwLock<dyn MultiSigner>>, |
17 |
| -} |
| 9 | +/// A [MithrilStakeDistributionSignable] builder |
| 10 | +pub struct MithrilStakeDistributionSignableBuilder {} |
18 | 11 |
|
19 | 12 | impl MithrilStakeDistributionSignableBuilder {
|
20 | 13 | /// MithrilStakeDistribution signable builder factory
|
21 |
| - pub fn new(multi_signer: Arc<RwLock<dyn MultiSigner>>) -> Self { |
22 |
| - Self { multi_signer } |
| 14 | + pub fn new() -> Self { |
| 15 | + Self {} |
| 16 | + } |
| 17 | +} |
| 18 | + |
| 19 | +impl Default for MithrilStakeDistributionSignableBuilder { |
| 20 | + fn default() -> Self { |
| 21 | + Self::new() |
23 | 22 | }
|
24 | 23 | }
|
25 | 24 |
|
26 | 25 | #[async_trait]
|
27 | 26 | impl SignableBuilder<Epoch, ProtocolMessage> for MithrilStakeDistributionSignableBuilder {
|
| 27 | + // We just need to return an empty protocol message as the next AVK will be appended by the signing engine automatically |
28 | 28 | async fn compute_signable(&self, _beacon: Epoch) -> StdResult<ProtocolMessage> {
|
29 |
| - let mut protocol_message = ProtocolMessage::new(); |
30 |
| - let multi_signer = self.multi_signer.read().await; |
31 |
| - protocol_message.set_message_part( |
32 |
| - ProtocolMessagePartKey::NextAggregateVerificationKey, |
33 |
| - multi_signer |
34 |
| - .compute_next_stake_distribution_aggregate_verification_key() |
35 |
| - .await? |
36 |
| - .unwrap_or_default(), |
37 |
| - ); |
38 |
| - |
39 |
| - Ok(protocol_message) |
| 29 | + Ok(ProtocolMessage::new()) |
40 | 30 | }
|
41 | 31 | }
|
42 | 32 |
|
43 | 33 | #[cfg(test)]
|
44 | 34 | mod tests {
|
45 | 35 | use super::*;
|
46 | 36 |
|
47 |
| - use crate::multi_signer::MockMultiSigner; |
48 |
| - |
49 | 37 | #[tokio::test]
|
50 | 38 | async fn test_compute_signable() {
|
51 |
| - let mut mock_multi_signer = MockMultiSigner::new(); |
52 |
| - mock_multi_signer |
53 |
| - .expect_compute_next_stake_distribution_aggregate_verification_key() |
54 |
| - .return_once(|| Ok(Some("avk-123".to_string()))); |
55 | 39 | let mithril_stake_distribution_signable_builder =
|
56 |
| - MithrilStakeDistributionSignableBuilder::new(Arc::new(RwLock::new(mock_multi_signer))); |
| 40 | + MithrilStakeDistributionSignableBuilder::new(); |
57 | 41 | let signable = mithril_stake_distribution_signable_builder
|
58 | 42 | .compute_signable(Epoch(1))
|
59 | 43 | .await
|
60 | 44 | .unwrap();
|
61 |
| - let mut signable_expected = ProtocolMessage::new(); |
62 |
| - signable_expected.set_message_part( |
63 |
| - ProtocolMessagePartKey::NextAggregateVerificationKey, |
64 |
| - "avk-123".to_string(), |
65 |
| - ); |
| 45 | + let signable_expected = ProtocolMessage::new(); |
66 | 46 | assert_eq!(signable_expected, signable);
|
67 | 47 | }
|
68 | 48 | }
|
0 commit comments