@@ -44,7 +44,7 @@ use crate::{
44
44
configuration:: { ExecutionEnvironment , LIST_SNAPSHOTS_MAX_ITEMS } ,
45
45
database:: provider:: {
46
46
CertificateRepository , CertificateStoreAdapter , EpochSettingStore , OpenMessageRepository ,
47
- SignedEntityStoreAdapter , SignerRegistrationStoreAdapter , SignerStore ,
47
+ SignedEntityStoreAdapter , SignedEntityStorer , SignerRegistrationStoreAdapter , SignerStore ,
48
48
SingleSignatureRepository , StakePoolStore ,
49
49
} ,
50
50
event_store:: { EventMessage , EventStore , TransmitterService } ,
@@ -179,6 +179,9 @@ pub struct DependenciesBuilder {
179
179
180
180
/// Certifier service
181
181
pub certifier_service : Option < Arc < dyn CertifierService > > ,
182
+
183
+ /// Signed Entity storer
184
+ pub signed_entity_storer : Option < Arc < dyn SignedEntityStorer > > ,
182
185
}
183
186
184
187
impl DependenciesBuilder {
@@ -218,6 +221,7 @@ impl DependenciesBuilder {
218
221
signable_builder_service : None ,
219
222
artifact_builder_service : None ,
220
223
certifier_service : None ,
224
+ signed_entity_storer : None ,
221
225
}
222
226
}
223
227
@@ -904,6 +908,7 @@ impl DependenciesBuilder {
904
908
}
905
909
906
910
async fn build_artifact_builder_service ( & mut self ) -> Result < Arc < dyn ArtifactBuilderService > > {
911
+ let signed_entity_storer = self . build_signed_entity_storer ( ) . await ?;
907
912
let multi_signer = self . get_multi_signer ( ) . await ?;
908
913
let mithril_stake_distribution_artifact_builder =
909
914
Arc :: new ( MithrilStakeDistributionArtifactBuilder :: new ( multi_signer) ) ;
@@ -913,6 +918,7 @@ impl DependenciesBuilder {
913
918
CardanoImmutableFilesFullArtifactBuilder :: new ( snapshotter, snapshot_uploader) ,
914
919
) ;
915
920
let artifact_builder_service = Arc :: new ( MithrilArtifactBuilderService :: new (
921
+ signed_entity_storer,
916
922
mithril_stake_distribution_artifact_builder,
917
923
cardano_immutable_files_full_artifact_builder,
918
924
) ) ;
@@ -931,6 +937,23 @@ impl DependenciesBuilder {
931
937
Ok ( self . artifact_builder_service . as_ref ( ) . cloned ( ) . unwrap ( ) )
932
938
}
933
939
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
+
934
957
/// Return an unconfigured [DependencyManager]
935
958
pub async fn build_dependency_container ( & mut self ) -> Result < DependencyManager > {
936
959
let dependency_manager = DependencyManager {
@@ -963,6 +986,7 @@ impl DependenciesBuilder {
963
986
artifact_builder_service : self . get_artifact_builder_service ( ) . await ?,
964
987
certifier_service : self . get_certifier_service ( ) . await ?,
965
988
ticker_service : self . get_ticker_service ( ) . await ?,
989
+ signed_entity_storer : self . get_signed_entity_storer ( ) . await ?,
966
990
} ;
967
991
968
992
Ok ( dependency_manager)
0 commit comments