@@ -76,8 +76,9 @@ use crate::{
76
76
AggregatorConfig , AggregatorRunner , AggregatorRuntime , CertificatePendingStore ,
77
77
CompressedArchiveSnapshotter , Configuration , DependencyContainer , DumbSnapshotUploader ,
78
78
DumbSnapshotter , LocalSnapshotUploader , MithrilSignerRegisterer , MultiSigner , MultiSignerImpl ,
79
- ProtocolParametersStorer , RemoteSnapshotUploader , SnapshotUploader , SnapshotUploaderType ,
80
- Snapshotter , SnapshotterCompressionAlgorithm , VerificationKeyStorer ,
79
+ ProtocolParametersStorer , RemoteSnapshotUploader , SingleSignatureAuthenticator ,
80
+ SnapshotUploader , SnapshotUploaderType , Snapshotter , SnapshotterCompressionAlgorithm ,
81
+ VerificationKeyStorer ,
81
82
} ;
82
83
83
84
const SQLITE_FILE : & str = "aggregator.sqlite3" ;
@@ -230,6 +231,9 @@ pub struct DependenciesBuilder {
230
231
231
232
/// Upkeep service
232
233
pub upkeep_service : Option < Arc < dyn UpkeepService > > ,
234
+
235
+ /// Single signer authenticator
236
+ pub single_signer_authenticator : Option < Arc < SingleSignatureAuthenticator > > ,
233
237
}
234
238
235
239
impl DependenciesBuilder {
@@ -280,6 +284,7 @@ impl DependenciesBuilder {
280
284
signed_entity_type_lock : None ,
281
285
transactions_importer : None ,
282
286
upkeep_service : None ,
287
+ single_signer_authenticator : None ,
283
288
}
284
289
}
285
290
@@ -1263,6 +1268,27 @@ impl DependenciesBuilder {
1263
1268
Ok ( self . upkeep_service . as_ref ( ) . cloned ( ) . unwrap ( ) )
1264
1269
}
1265
1270
1271
+ async fn build_single_signature_authenticator (
1272
+ & mut self ,
1273
+ ) -> Result < Arc < SingleSignatureAuthenticator > > {
1274
+ let authenticator =
1275
+ SingleSignatureAuthenticator :: new ( self . get_multi_signer ( ) . await ?, self . get_logger ( ) ?) ;
1276
+
1277
+ Ok ( Arc :: new ( authenticator) )
1278
+ }
1279
+
1280
+ /// [MithrilSignerRegisterer] service
1281
+ pub async fn get_single_signature_authenticator (
1282
+ & mut self ,
1283
+ ) -> Result < Arc < SingleSignatureAuthenticator > > {
1284
+ if self . single_signer_authenticator . is_none ( ) {
1285
+ self . single_signer_authenticator =
1286
+ Some ( self . build_single_signature_authenticator ( ) . await ?) ;
1287
+ }
1288
+
1289
+ Ok ( self . single_signer_authenticator . as_ref ( ) . cloned ( ) . unwrap ( ) )
1290
+ }
1291
+
1266
1292
/// Return an unconfigured [DependencyContainer]
1267
1293
pub async fn build_dependency_container ( & mut self ) -> Result < DependencyContainer > {
1268
1294
let dependency_manager = DependencyContainer {
@@ -1307,6 +1333,7 @@ impl DependenciesBuilder {
1307
1333
prover_service : self . get_prover_service ( ) . await ?,
1308
1334
signed_entity_type_lock : self . get_signed_entity_lock ( ) . await ?,
1309
1335
upkeep_service : self . get_upkeep_service ( ) . await ?,
1336
+ single_signer_authenticator : self . get_single_signature_authenticator ( ) . await ?,
1310
1337
} ;
1311
1338
1312
1339
Ok ( dependency_manager)
0 commit comments