@@ -14,6 +14,7 @@ use crate::dependency_injection::{DependenciesBuilder, Result};
14
14
use crate :: get_dependency;
15
15
use crate :: services:: {
16
16
AggregatorClient , AggregatorHTTPClient , MessageService , MithrilMessageService ,
17
+ SequentialSignatureProcessor , SignatureConsumer , SignatureConsumerNoop , SignatureProcessor ,
17
18
} ;
18
19
impl DependenciesBuilder {
19
20
async fn build_signed_entity_type_lock ( & mut self ) -> Result < Arc < SignedEntityTypeLock > > {
@@ -26,7 +27,7 @@ impl DependenciesBuilder {
26
27
get_dependency ! ( self . signed_entity_type_lock)
27
28
}
28
29
29
- /// build HTTP message service
30
+ /// Builds HTTP message service
30
31
pub async fn build_message_service ( & mut self ) -> Result < Arc < dyn MessageService > > {
31
32
let certificate_repository = Arc :: new ( CertificateRepository :: new (
32
33
self . get_sqlite_connection ( ) . await ?,
@@ -49,7 +50,7 @@ impl DependenciesBuilder {
49
50
get_dependency ! ( self . message_service)
50
51
}
51
52
52
- /// build an [AggregatorClient]
53
+ /// Builds an [AggregatorClient]
53
54
pub async fn build_leader_aggregator_client ( & mut self ) -> Result < Arc < dyn AggregatorClient > > {
54
55
let leader_aggregator_endpoint = self
55
56
. configuration
@@ -70,4 +71,22 @@ impl DependenciesBuilder {
70
71
pub async fn get_leader_aggregator_client ( & mut self ) -> Result < Arc < dyn AggregatorClient > > {
71
72
get_dependency ! ( self . leader_aggregator_client)
72
73
}
74
+
75
+ /// Builds a [SignatureConsumer]
76
+ pub async fn build_signature_consumer ( & mut self ) -> Result < Arc < dyn SignatureConsumer > > {
77
+ let signature_consumer = SignatureConsumerNoop :: default ( ) ;
78
+
79
+ Ok ( Arc :: new ( signature_consumer) )
80
+ }
81
+
82
+ /// Builds a [SignatureProcessor]
83
+ pub async fn create_signature_processor ( & mut self ) -> Result < Arc < dyn SignatureProcessor > > {
84
+ let signature_processor = SequentialSignatureProcessor :: new (
85
+ self . build_signature_consumer ( ) . await ?,
86
+ self . get_certifier_service ( ) . await ?,
87
+ self . root_logger ( ) ,
88
+ ) ;
89
+
90
+ Ok ( Arc :: new ( signature_processor) )
91
+ }
73
92
}
0 commit comments