@@ -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 , SignableBuilderService } ,
22
23
store:: adapter:: { MemoryAdapter , SQLiteAdapter , StoreAdapter } ,
23
24
BeaconProvider , BeaconProviderImpl ,
24
25
} ;
@@ -35,6 +36,7 @@ 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 ,
@@ -156,6 +158,12 @@ pub struct DependenciesBuilder {
156
158
157
159
/// Signer Recorder
158
160
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 > > ,
159
167
}
160
168
161
169
impl DependenciesBuilder {
@@ -193,6 +201,8 @@ impl DependenciesBuilder {
193
201
stake_distribution_service : None ,
194
202
ticker_service : None ,
195
203
signer_recorder : None ,
204
+ signable_builder_service : None ,
205
+ artifact_builder_service : None ,
196
206
}
197
207
}
198
208
@@ -968,6 +978,40 @@ impl DependenciesBuilder {
968
978
Ok ( self . signer_recorder . as_ref ( ) . cloned ( ) . unwrap ( ) )
969
979
}
970
980
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
+
971
1015
/// Return an unconfigured [DependencyManager]
972
1016
pub async fn build_dependency_container ( & mut self ) -> Result < DependencyManager > {
973
1017
let dependency_manager = DependencyManager {
@@ -997,6 +1041,8 @@ impl DependenciesBuilder {
997
1041
api_version_provider : self . get_api_version_provider ( ) . await ?,
998
1042
stake_distribution_service : self . get_stake_distribution_service ( ) . await ?,
999
1043
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 ?,
1000
1046
} ;
1001
1047
1002
1048
Ok ( dependency_manager)
0 commit comments