Skip to content

Commit f68e0e8

Browse files
committed
Wire SignedEntityStorer in dependencies
1 parent 6f3b65a commit f68e0e8

File tree

2 files changed

+37
-6
lines changed

2 files changed

+37
-6
lines changed

mithril-aggregator/src/dependency.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,15 @@ use std::{collections::HashMap, sync::Arc};
1717
use tokio::sync::{Mutex, RwLock};
1818

1919
use crate::{
20-
artifact_builder::ArtifactBuilderService, certifier_service::CertifierService,
21-
configuration::*, database::provider::StakePoolStore, signer_registerer::SignerRecorder,
22-
ticker_service::TickerService, CertificatePendingStore, CertificateStore,
23-
ProtocolParametersStore, ProtocolParametersStorer, SignerRegisterer,
24-
SignerRegistrationRoundOpener, Snapshotter, VerificationKeyStore, VerificationKeyStorer,
20+
artifact_builder::ArtifactBuilderService,
21+
certifier_service::CertifierService,
22+
configuration::*,
23+
database::provider::{SignedEntityStorer, StakePoolStore},
24+
signer_registerer::SignerRecorder,
25+
ticker_service::TickerService,
26+
CertificatePendingStore, CertificateStore, ProtocolParametersStore, ProtocolParametersStorer,
27+
SignerRegisterer, SignerRegistrationRoundOpener, Snapshotter, VerificationKeyStore,
28+
VerificationKeyStorer,
2529
};
2630
use crate::{event_store::EventMessage, snapshot_stores::SnapshotStore};
2731
use crate::{event_store::TransmitterService, multi_signer::MultiSigner};
@@ -123,6 +127,9 @@ pub struct DependencyManager {
123127

124128
/// Ticker Service
125129
pub ticker_service: Arc<dyn TickerService>,
130+
131+
/// Signed Entity storer
132+
pub signed_entity_storer: Arc<dyn SignedEntityStorer>,
126133
}
127134

128135
#[doc(hidden)]

mithril-aggregator/src/dependency_injection/builder.rs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ use crate::{
4444
configuration::{ExecutionEnvironment, LIST_SNAPSHOTS_MAX_ITEMS},
4545
database::provider::{
4646
CertificateRepository, CertificateStoreAdapter, EpochSettingStore, OpenMessageRepository,
47-
SignedEntityStoreAdapter, SignerRegistrationStoreAdapter, SignerStore,
47+
SignedEntityStoreAdapter, SignedEntityStorer, SignerRegistrationStoreAdapter, SignerStore,
4848
SingleSignatureRepository, StakePoolStore,
4949
},
5050
event_store::{EventMessage, EventStore, TransmitterService},
@@ -179,6 +179,9 @@ pub struct DependenciesBuilder {
179179

180180
/// Certifier service
181181
pub certifier_service: Option<Arc<dyn CertifierService>>,
182+
183+
/// Signed Entity storer
184+
pub signed_entity_storer: Option<Arc<dyn SignedEntityStorer>>,
182185
}
183186

184187
impl DependenciesBuilder {
@@ -218,6 +221,7 @@ impl DependenciesBuilder {
218221
signable_builder_service: None,
219222
artifact_builder_service: None,
220223
certifier_service: None,
224+
signed_entity_storer: None,
221225
}
222226
}
223227

@@ -904,6 +908,7 @@ impl DependenciesBuilder {
904908
}
905909

906910
async fn build_artifact_builder_service(&mut self) -> Result<Arc<dyn ArtifactBuilderService>> {
911+
let signed_entity_storer = self.build_signed_entity_storer().await?;
907912
let multi_signer = self.get_multi_signer().await?;
908913
let mithril_stake_distribution_artifact_builder =
909914
Arc::new(MithrilStakeDistributionArtifactBuilder::new(multi_signer));
@@ -913,6 +918,7 @@ impl DependenciesBuilder {
913918
CardanoImmutableFilesFullArtifactBuilder::new(snapshotter, snapshot_uploader),
914919
);
915920
let artifact_builder_service = Arc::new(MithrilArtifactBuilderService::new(
921+
signed_entity_storer,
916922
mithril_stake_distribution_artifact_builder,
917923
cardano_immutable_files_full_artifact_builder,
918924
));
@@ -931,6 +937,23 @@ impl DependenciesBuilder {
931937
Ok(self.artifact_builder_service.as_ref().cloned().unwrap())
932938
}
933939

940+
async fn build_signed_entity_storer(&mut self) -> Result<Arc<dyn SignedEntityStorer>> {
941+
let signed_entity_storer = Arc::new(SignedEntityStoreAdapter::new(
942+
self.get_sqlite_connection().await?,
943+
));
944+
945+
Ok(signed_entity_storer)
946+
}
947+
948+
/// [SignedEntityStorer] service
949+
pub async fn get_signed_entity_storer(&mut self) -> Result<Arc<dyn SignedEntityStorer>> {
950+
if self.signed_entity_storer.is_none() {
951+
self.signed_entity_storer = Some(self.build_signed_entity_storer().await?);
952+
}
953+
954+
Ok(self.signed_entity_storer.as_ref().cloned().unwrap())
955+
}
956+
934957
/// Return an unconfigured [DependencyManager]
935958
pub async fn build_dependency_container(&mut self) -> Result<DependencyManager> {
936959
let dependency_manager = DependencyManager {
@@ -963,6 +986,7 @@ impl DependenciesBuilder {
963986
artifact_builder_service: self.get_artifact_builder_service().await?,
964987
certifier_service: self.get_certifier_service().await?,
965988
ticker_service: self.get_ticker_service().await?,
989+
signed_entity_storer: self.get_signed_entity_storer().await?,
966990
};
967991

968992
Ok(dependency_manager)

0 commit comments

Comments
 (0)