Skip to content

Commit fe6286e

Browse files
committed
Wire SignableBuilder & ArtifactBuilder services in aggregator
1 parent 253602c commit fe6286e

File tree

2 files changed

+58
-4
lines changed

2 files changed

+58
-4
lines changed

mithril-aggregator/src/dependency.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use mithril_common::{
66
digesters::{ImmutableDigester, ImmutableFileObserver},
77
entities::{Certificate, Epoch, ProtocolParameters, SignerWithStake, StakeDistribution},
88
era::{EraChecker, EraReader},
9+
signable_builder::SignableBuilderService,
910
store::StakeStorer,
1011
BeaconProvider,
1112
};
@@ -15,10 +16,11 @@ use std::{collections::HashMap, sync::Arc};
1516
use tokio::sync::{Mutex, RwLock};
1617

1718
use crate::{
18-
configuration::*, database::provider::StakePoolStore, signer_registerer::SignerRecorder,
19-
CertificatePendingStore, CertificateStore, ProtocolParametersStore, ProtocolParametersStorer,
20-
SignerRegisterer, SignerRegistrationRoundOpener, SingleSignatureStore, Snapshotter,
21-
VerificationKeyStore, VerificationKeyStorer,
19+
artifact_builder::ArtifactBuilderService, configuration::*, database::provider::StakePoolStore,
20+
signer_registerer::SignerRecorder, CertificatePendingStore, CertificateStore,
21+
ProtocolParametersStore, ProtocolParametersStorer, SignerRegisterer,
22+
SignerRegistrationRoundOpener, SingleSignatureStore, Snapshotter, VerificationKeyStore,
23+
VerificationKeyStorer,
2224
};
2325
use crate::{event_store::EventMessage, snapshot_stores::SnapshotStore};
2426
use crate::{event_store::TransmitterService, multi_signer::MultiSigner};
@@ -111,6 +113,12 @@ pub struct DependencyManager {
111113

112114
/// Signer Recorder
113115
pub signer_recorder: Arc<dyn SignerRecorder>,
116+
117+
/// Signable Builder Service
118+
pub signable_builder_service: Arc<SignableBuilderService>,
119+
120+
/// Artifact Builder Service
121+
pub artifact_builder_service: Arc<ArtifactBuilderService>,
114122
}
115123

116124
#[doc(hidden)]

mithril-aggregator/src/dependency_injection/builder.rs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use mithril_common::{
1919
adapters::{EraReaderAdapterBuilder, EraReaderDummyAdapter},
2020
EraChecker, EraMarker, EraReader, EraReaderAdapter, SupportedEra,
2121
},
22+
signable_builder::{DummySignableBuilder, SignableBuilderService},
2223
store::adapter::{MemoryAdapter, SQLiteAdapter, StoreAdapter},
2324
BeaconProvider, BeaconProviderImpl,
2425
};
@@ -35,6 +36,7 @@ use tokio::{
3536
use warp::Filter;
3637

3738
use crate::{
39+
artifact_builder::{ArtifactBuilderService, DummyArtifactBuilder},
3840
configuration::{ExecutionEnvironment, LIST_SNAPSHOTS_MAX_ITEMS},
3941
database::provider::{
4042
CertificateStoreAdapter, EpochSettingStore, SignedEntityStoreAdapter,
@@ -156,6 +158,12 @@ pub struct DependenciesBuilder {
156158

157159
/// Signer Recorder
158160
pub signer_recorder: Option<Arc<dyn SignerRecorder>>,
161+
162+
/// Signable Builder Service
163+
pub signable_builder_service: Option<Arc<SignableBuilderService>>,
164+
165+
/// Artifact Builder Service
166+
pub artifact_builder_service: Option<Arc<ArtifactBuilderService>>,
159167
}
160168

161169
impl DependenciesBuilder {
@@ -193,6 +201,8 @@ impl DependenciesBuilder {
193201
stake_distribution_service: None,
194202
ticker_service: None,
195203
signer_recorder: None,
204+
signable_builder_service: None,
205+
artifact_builder_service: None,
196206
}
197207
}
198208

@@ -968,6 +978,40 @@ impl DependenciesBuilder {
968978
Ok(self.signer_recorder.as_ref().cloned().unwrap())
969979
}
970980

981+
async fn build_signable_builder_service(&mut self) -> Result<Arc<SignableBuilderService>> {
982+
let dummy_signable_builder = DummySignableBuilder::new();
983+
let signable_builder_service =
984+
Arc::new(SignableBuilderService::new(dummy_signable_builder));
985+
986+
Ok(signable_builder_service)
987+
}
988+
989+
/// [SignableBuilderService] service
990+
pub async fn get_signable_builder_service(&mut self) -> Result<Arc<SignableBuilderService>> {
991+
if self.signable_builder_service.is_none() {
992+
self.signable_builder_service = Some(self.build_signable_builder_service().await?);
993+
}
994+
995+
Ok(self.signable_builder_service.as_ref().cloned().unwrap())
996+
}
997+
998+
async fn build_artifact_builder_service(&mut self) -> Result<Arc<ArtifactBuilderService>> {
999+
let dummy_artifact_builder = DummyArtifactBuilder::new();
1000+
let artifact_builder_service =
1001+
Arc::new(ArtifactBuilderService::new(dummy_artifact_builder));
1002+
1003+
Ok(artifact_builder_service)
1004+
}
1005+
1006+
/// [ArtifactBuilderService] service
1007+
pub async fn get_artifact_builder_service(&mut self) -> Result<Arc<ArtifactBuilderService>> {
1008+
if self.artifact_builder_service.is_none() {
1009+
self.artifact_builder_service = Some(self.build_artifact_builder_service().await?);
1010+
}
1011+
1012+
Ok(self.artifact_builder_service.as_ref().cloned().unwrap())
1013+
}
1014+
9711015
/// Return an unconfigured [DependencyManager]
9721016
pub async fn build_dependency_container(&mut self) -> Result<DependencyManager> {
9731017
let dependency_manager = DependencyManager {
@@ -997,6 +1041,8 @@ impl DependenciesBuilder {
9971041
api_version_provider: self.get_api_version_provider().await?,
9981042
stake_distribution_service: self.get_stake_distribution_service().await?,
9991043
signer_recorder: self.get_signer_recorder().await?,
1044+
signable_builder_service: self.get_signable_builder_service().await?,
1045+
artifact_builder_service: self.get_artifact_builder_service().await?,
10001046
};
10011047

10021048
Ok(dependency_manager)

0 commit comments

Comments
 (0)