Skip to content

Commit 9ba0ef6

Browse files
committed
refactor(signer): unify signers registration publisher and retriever in the same parent module
and split the retriever in several modules like the publisher
1 parent 0693d6a commit 9ba0ef6

File tree

11 files changed

+75
-67
lines changed

11 files changed

+75
-67
lines changed

mithril-signer/src/services/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ mod epoch_service;
1515
mod signable_builder;
1616
mod signature_publisher;
1717
mod signer_registration;
18-
mod signers_registration_retriever;
1918
mod single_signer;
2019
mod upkeep_service;
2120

@@ -25,8 +24,5 @@ pub use epoch_service::*;
2524
pub use signable_builder::*;
2625
pub use signature_publisher::*;
2726
pub use signer_registration::*;
28-
#[cfg(test)]
29-
pub(crate) use signers_registration_retriever::dumb::DumbSignersRegistrationRetriever;
30-
pub use signers_registration_retriever::*;
3127
pub use single_signer::*;
3228
pub use upkeep_service::*;
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
mod http;
2-
mod interface;
3-
#[cfg(test)]
4-
mod spy;
1+
mod publisher;
2+
mod retriever;
53

6-
pub use interface::*;
7-
#[cfg(test)]
8-
pub use spy::*;
4+
pub use publisher::*;
5+
pub use retriever::*;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
mod http;
2+
mod interface;
3+
#[cfg(test)]
4+
mod spy;
5+
6+
pub use interface::*;
7+
#[cfg(test)]
8+
pub use spy::*;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
use tokio::sync::RwLock;
2+
3+
use mithril_common::StdResult;
4+
use mithril_common::test::double::Dummy;
5+
6+
use crate::RegisteredSigners;
7+
use crate::services::signer_registration::retriever::interface::SignersRegistrationRetriever;
8+
9+
/// Dumb `SignersRegistrationRetriever` implementation for testing
10+
pub struct DumbSignersRegistrationRetriever {
11+
epoch_settings: RwLock<Option<RegisteredSigners>>,
12+
}
13+
14+
impl Default for DumbSignersRegistrationRetriever {
15+
fn default() -> Self {
16+
Self {
17+
epoch_settings: RwLock::new(Some(RegisteredSigners::dummy())),
18+
}
19+
}
20+
}
21+
22+
#[async_trait::async_trait]
23+
impl SignersRegistrationRetriever for DumbSignersRegistrationRetriever {
24+
async fn retrieve_all_signer_registrations(&self) -> StdResult<Option<RegisteredSigners>> {
25+
let epoch_settings = self.epoch_settings.read().await.clone();
26+
27+
Ok(epoch_settings)
28+
}
29+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use mithril_aggregator_client::{AggregatorHttpClient, query::GetEpochSettingsQuery};
2+
use mithril_common::{StdResult, messages::TryFromMessageAdapter};
3+
4+
use crate::services::SignersRegistrationRetriever;
5+
use crate::{FromEpochSettingsAdapter, RegisteredSigners};
6+
7+
#[async_trait::async_trait]
8+
impl SignersRegistrationRetriever for AggregatorHttpClient {
9+
async fn retrieve_all_signer_registrations(&self) -> StdResult<Option<RegisteredSigners>> {
10+
let message = self.send(GetEpochSettingsQuery::current()).await?;
11+
let epoch_settings = FromEpochSettingsAdapter::try_adapt(message)?;
12+
13+
Ok(Some(epoch_settings))
14+
}
15+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
use mithril_common::StdResult;
2+
3+
use crate::RegisteredSigners;
4+
5+
/// Service responsible for retrieving the signer's registration from the mithril network
6+
#[cfg_attr(test, mockall::automock)]
7+
#[async_trait::async_trait]
8+
pub trait SignersRegistrationRetriever: Sync + Send {
9+
/// Retrieves signer's registration from the mithril network
10+
async fn retrieve_all_signer_registrations(&self) -> StdResult<Option<RegisteredSigners>>;
11+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#[cfg(test)]
2+
mod dumb;
3+
mod http;
4+
mod interface;
5+
6+
#[cfg(test)]
7+
pub use dumb::*;
8+
pub use interface::*;

0 commit comments

Comments
 (0)