Skip to content

Commit f51ac9a

Browse files
committed
Wire SingleSignatureAuthenticator in aggregator dependencies
1 parent ebdea24 commit f51ac9a

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed

mithril-aggregator/src/dependency_injection/builder.rs

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ use crate::{
7676
AggregatorConfig, AggregatorRunner, AggregatorRuntime, CertificatePendingStore,
7777
CompressedArchiveSnapshotter, Configuration, DependencyContainer, DumbSnapshotUploader,
7878
DumbSnapshotter, LocalSnapshotUploader, MithrilSignerRegisterer, MultiSigner, MultiSignerImpl,
79-
ProtocolParametersStorer, RemoteSnapshotUploader, SnapshotUploader, SnapshotUploaderType,
80-
Snapshotter, SnapshotterCompressionAlgorithm, VerificationKeyStorer,
79+
ProtocolParametersStorer, RemoteSnapshotUploader, SingleSignatureAuthenticator,
80+
SnapshotUploader, SnapshotUploaderType, Snapshotter, SnapshotterCompressionAlgorithm,
81+
VerificationKeyStorer,
8182
};
8283

8384
const SQLITE_FILE: &str = "aggregator.sqlite3";
@@ -230,6 +231,9 @@ pub struct DependenciesBuilder {
230231

231232
/// Upkeep service
232233
pub upkeep_service: Option<Arc<dyn UpkeepService>>,
234+
235+
/// Single signer authenticator
236+
pub single_signer_authenticator: Option<Arc<SingleSignatureAuthenticator>>,
233237
}
234238

235239
impl DependenciesBuilder {
@@ -280,6 +284,7 @@ impl DependenciesBuilder {
280284
signed_entity_type_lock: None,
281285
transactions_importer: None,
282286
upkeep_service: None,
287+
single_signer_authenticator: None,
283288
}
284289
}
285290

@@ -1263,6 +1268,27 @@ impl DependenciesBuilder {
12631268
Ok(self.upkeep_service.as_ref().cloned().unwrap())
12641269
}
12651270

1271+
async fn build_single_signature_authenticator(
1272+
&mut self,
1273+
) -> Result<Arc<SingleSignatureAuthenticator>> {
1274+
let authenticator =
1275+
SingleSignatureAuthenticator::new(self.get_multi_signer().await?, self.get_logger()?);
1276+
1277+
Ok(Arc::new(authenticator))
1278+
}
1279+
1280+
/// [MithrilSignerRegisterer] service
1281+
pub async fn get_single_signature_authenticator(
1282+
&mut self,
1283+
) -> Result<Arc<SingleSignatureAuthenticator>> {
1284+
if self.single_signer_authenticator.is_none() {
1285+
self.single_signer_authenticator =
1286+
Some(self.build_single_signature_authenticator().await?);
1287+
}
1288+
1289+
Ok(self.single_signer_authenticator.as_ref().cloned().unwrap())
1290+
}
1291+
12661292
/// Return an unconfigured [DependencyContainer]
12671293
pub async fn build_dependency_container(&mut self) -> Result<DependencyContainer> {
12681294
let dependency_manager = DependencyContainer {
@@ -1307,6 +1333,7 @@ impl DependenciesBuilder {
13071333
prover_service: self.get_prover_service().await?,
13081334
signed_entity_type_lock: self.get_signed_entity_lock().await?,
13091335
upkeep_service: self.get_upkeep_service().await?,
1336+
single_signer_authenticator: self.get_single_signature_authenticator().await?,
13101337
};
13111338

13121339
Ok(dependency_manager)

mithril-aggregator/src/dependency_injection/containers.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ use crate::{
3333
signer_registerer::SignerRecorder,
3434
snapshot_uploaders::SnapshotUploader,
3535
CertificatePendingStore, ProtocolParametersStorer, SignerRegisterer,
36-
SignerRegistrationRoundOpener, Snapshotter, VerificationKeyStorer,
36+
SignerRegistrationRoundOpener, SingleSignatureAuthenticator, Snapshotter,
37+
VerificationKeyStorer,
3738
};
3839

3940
/// EpochServiceWrapper wraps a [EpochService]
@@ -161,6 +162,9 @@ pub struct DependencyContainer {
161162

162163
/// Upkeep service
163164
pub upkeep_service: Arc<dyn UpkeepService>,
165+
166+
/// Single signer authenticator
167+
pub single_signer_authenticator: Arc<SingleSignatureAuthenticator>,
164168
}
165169

166170
#[doc(hidden)]

0 commit comments

Comments
 (0)