@@ -19,6 +19,7 @@ use mithril_common::{
19
19
adapters:: { EraReaderAdapterBuilder , EraReaderDummyAdapter } ,
20
20
EraChecker , EraMarker , EraReader , EraReaderAdapter , SupportedEra ,
21
21
} ,
22
+ signable_builder:: DummySignableBuilder ,
22
23
store:: adapter:: { MemoryAdapter , SQLiteAdapter , StoreAdapter } ,
23
24
BeaconProvider , BeaconProviderImpl ,
24
25
} ;
@@ -35,13 +36,15 @@ use tokio::{
35
36
use warp:: Filter ;
36
37
37
38
use crate :: {
39
+ artifact_builder:: { ArtifactBuilderService , DummyArtifactBuilder } ,
38
40
configuration:: { ExecutionEnvironment , LIST_SNAPSHOTS_MAX_ITEMS } ,
39
41
database:: provider:: {
40
42
CertificateStoreAdapter , EpochSettingStore , SignedEntityStoreAdapter ,
41
43
SignerRegistrationStoreAdapter , SignerStore , StakePoolStore ,
42
44
} ,
43
45
event_store:: { EventMessage , EventStore , TransmitterService } ,
44
46
http_server:: routes:: router,
47
+ signable_builder:: SignableBuilderService ,
45
48
signer_registerer:: SignerRecorder ,
46
49
stake_distribution_service:: { MithrilStakeDistributionService , StakeDistributionService } ,
47
50
ticker_service:: { MithrilTickerService , TickerService } ,
@@ -156,6 +159,12 @@ pub struct DependenciesBuilder {
156
159
157
160
/// Signer Recorder
158
161
pub signer_recorder : Option < Arc < dyn SignerRecorder > > ,
162
+
163
+ /// Signable Builder Service
164
+ pub signable_builder_service : Option < Arc < SignableBuilderService > > ,
165
+
166
+ /// Artifact Builder Service
167
+ pub artifact_builder_service : Option < Arc < ArtifactBuilderService > > ,
159
168
}
160
169
161
170
impl DependenciesBuilder {
@@ -193,6 +202,8 @@ impl DependenciesBuilder {
193
202
stake_distribution_service : None ,
194
203
ticker_service : None ,
195
204
signer_recorder : None ,
205
+ signable_builder_service : None ,
206
+ artifact_builder_service : None ,
196
207
}
197
208
}
198
209
@@ -968,6 +979,40 @@ impl DependenciesBuilder {
968
979
Ok ( self . signer_recorder . as_ref ( ) . cloned ( ) . unwrap ( ) )
969
980
}
970
981
982
+ async fn build_signable_builder_service ( & mut self ) -> Result < Arc < SignableBuilderService > > {
983
+ let dummy_signable_builder = DummySignableBuilder :: new ( ) ;
984
+ let signable_builder_service =
985
+ Arc :: new ( SignableBuilderService :: new ( dummy_signable_builder) ) ;
986
+
987
+ Ok ( signable_builder_service)
988
+ }
989
+
990
+ /// [SignableBuilderService] service
991
+ pub async fn get_signable_builder_service ( & mut self ) -> Result < Arc < SignableBuilderService > > {
992
+ if self . signable_builder_service . is_none ( ) {
993
+ self . signable_builder_service = Some ( self . build_signable_builder_service ( ) . await ?) ;
994
+ }
995
+
996
+ Ok ( self . signable_builder_service . as_ref ( ) . cloned ( ) . unwrap ( ) )
997
+ }
998
+
999
+ async fn build_artifact_builder_service ( & mut self ) -> Result < Arc < ArtifactBuilderService > > {
1000
+ let dummy_artifact_builder = DummyArtifactBuilder :: new ( ) ;
1001
+ let artifact_builder_service =
1002
+ Arc :: new ( ArtifactBuilderService :: new ( dummy_artifact_builder) ) ;
1003
+
1004
+ Ok ( artifact_builder_service)
1005
+ }
1006
+
1007
+ /// [ArtifactBuilderService] service
1008
+ pub async fn get_artifact_builder_service ( & mut self ) -> Result < Arc < ArtifactBuilderService > > {
1009
+ if self . artifact_builder_service . is_none ( ) {
1010
+ self . artifact_builder_service = Some ( self . build_artifact_builder_service ( ) . await ?) ;
1011
+ }
1012
+
1013
+ Ok ( self . artifact_builder_service . as_ref ( ) . cloned ( ) . unwrap ( ) )
1014
+ }
1015
+
971
1016
/// Return an unconfigured [DependencyManager]
972
1017
pub async fn build_dependency_container ( & mut self ) -> Result < DependencyManager > {
973
1018
let dependency_manager = DependencyManager {
@@ -997,6 +1042,8 @@ impl DependenciesBuilder {
997
1042
api_version_provider : self . get_api_version_provider ( ) . await ?,
998
1043
stake_distribution_service : self . get_stake_distribution_service ( ) . await ?,
999
1044
signer_recorder : self . get_signer_recorder ( ) . await ?,
1045
+ signable_builder_service : self . get_signable_builder_service ( ) . await ?,
1046
+ artifact_builder_service : self . get_artifact_builder_service ( ) . await ?,
1000
1047
} ;
1001
1048
1002
1049
Ok ( dependency_manager)
0 commit comments