Skip to content

Commit 0ab4ef1

Browse files
authored
Merge pull request #901 from input-output-hk/ensemble/853-use-signable-builder-service-aggregator
Use Signable Builder Service in aggregator
2 parents 0c2476b + 2849055 commit 0ab4ef1

23 files changed

+237
-265
lines changed

Cargo.lock

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mithril-aggregator/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mithril-aggregator"
3-
version = "0.3.12"
3+
version = "0.3.13"
44
description = "A Mithril Aggregator server"
55
authors = { workspace = true }
66
edition = { workspace = true }

mithril-aggregator/src/artifact_builder/artifact_builder_service.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ impl ArtifactBuilderService for MithrilArtifactBuilderService {
6969
.compute_artifact(beacon, certificate)
7070
.await?,
7171
)),
72-
_ => todo!(),
72+
SignedEntityType::CardanoStakeDistribution(_) => todo!(),
7373
}
7474
}
7575
}

mithril-aggregator/src/artifact_builder/dummy_artifact.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
use async_trait::async_trait;
22
use mithril_common::{
3-
entities::Certificate,
4-
signable_builder::{Artifact, DummyBeacon},
3+
entities::{Beacon, Certificate},
4+
signable_builder::Artifact,
55
StdResult,
66
};
77
use serde::{Deserialize, Serialize};
88

99
use crate::artifact_builder::ArtifactBuilder;
1010

11+
type DummyBeacon = Beacon;
12+
1113
/// Dummy artifact
1214
#[derive(Serialize, Deserialize, PartialEq, Debug)]
1315
pub struct DummyArtifact {

mithril-aggregator/src/dependency.rs

+4-15
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ pub struct DependencyManager {
112112
pub signer_recorder: Arc<dyn SignerRecorder>,
113113

114114
/// Signable Builder Service
115-
pub signable_builder_service: Arc<SignableBuilderService>,
115+
pub signable_builder_service: Arc<dyn SignableBuilderService>,
116116

117117
/// Artifact Builder Service
118118
pub artifact_builder_service: Arc<dyn ArtifactBuilderService>,
@@ -311,23 +311,12 @@ impl DependencyManager {
311311

312312
#[cfg(test)]
313313
pub mod tests {
314-
use crate::{
315-
dependency_injection::DependenciesBuilder, AggregatorConfig, Configuration,
316-
DependencyManager,
317-
};
318-
use mithril_common::CardanoNetwork;
314+
use crate::{dependency_injection::DependenciesBuilder, Configuration, DependencyManager};
319315

320-
pub async fn initialize_dependencies() -> (DependencyManager, AggregatorConfig) {
316+
pub async fn initialize_dependencies() -> DependencyManager {
321317
let config = Configuration::new_sample();
322318
let mut builder = DependenciesBuilder::new(config);
323-
let dependency_manager = builder.build_dependency_container().await.unwrap();
324319

325-
let config = AggregatorConfig::new(
326-
dependency_manager.config.run_interval,
327-
CardanoNetwork::TestNet(42),
328-
dependency_manager.config.db_directory.as_path(),
329-
);
330-
331-
(dependency_manager, config)
320+
builder.build_dependency_container().await.unwrap()
332321
}
333322
}

mithril-aggregator/src/dependency_injection/builder.rs

+12-9
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ use crate::{
4848
},
4949
event_store::{EventMessage, EventStore, TransmitterService},
5050
http_server::routes::router,
51-
signable_builder::SignableBuilderService,
51+
signable_builder::{MithrilSignableBuilderService, SignableBuilderService},
5252
signer_registerer::SignerRecorder,
5353
stake_distribution_service::{MithrilStakeDistributionService, StakeDistributionService},
5454
ticker_service::{MithrilTickerService, TickerService},
@@ -172,7 +172,7 @@ pub struct DependenciesBuilder {
172172
pub signer_recorder: Option<Arc<dyn SignerRecorder>>,
173173

174174
/// Signable Builder Service
175-
pub signable_builder_service: Option<Arc<SignableBuilderService>>,
175+
pub signable_builder_service: Option<Arc<dyn SignableBuilderService>>,
176176

177177
/// Artifact Builder Service
178178
pub artifact_builder_service: Option<Arc<dyn ArtifactBuilderService>>,
@@ -877,13 +877,14 @@ impl DependenciesBuilder {
877877
Ok(self.signer_recorder.as_ref().cloned().unwrap())
878878
}
879879

880-
async fn build_signable_builder_service(&mut self) -> Result<Arc<SignableBuilderService>> {
881-
let mithril_stake_distribution_builder = MithrilStakeDistributionSignableBuilder::default();
882-
let immutable_signable_builder = CardanoImmutableFilesFullSignableBuilder::new(
880+
async fn build_signable_builder_service(&mut self) -> Result<Arc<dyn SignableBuilderService>> {
881+
let mithril_stake_distribution_builder =
882+
Arc::new(MithrilStakeDistributionSignableBuilder::default());
883+
let immutable_signable_builder = Arc::new(CardanoImmutableFilesFullSignableBuilder::new(
883884
self.get_immutable_digester().await?,
884885
self.get_logger().await?,
885-
);
886-
let signable_builder_service = Arc::new(SignableBuilderService::new(
886+
));
887+
let signable_builder_service = Arc::new(MithrilSignableBuilderService::new(
887888
mithril_stake_distribution_builder,
888889
immutable_signable_builder,
889890
));
@@ -892,7 +893,9 @@ impl DependenciesBuilder {
892893
}
893894

894895
/// [SignableBuilderService] service
895-
pub async fn get_signable_builder_service(&mut self) -> Result<Arc<SignableBuilderService>> {
896+
pub async fn get_signable_builder_service(
897+
&mut self,
898+
) -> Result<Arc<dyn SignableBuilderService>> {
896899
if self.signable_builder_service.is_none() {
897900
self.signable_builder_service = Some(self.build_signable_builder_service().await?);
898901
}
@@ -1035,7 +1038,7 @@ impl DependenciesBuilder {
10351038
let runtime = AggregatorRuntime::new(
10361039
Duration::from_millis(config.interval),
10371040
None,
1038-
Arc::new(AggregatorRunner::new(config, dependency_container)),
1041+
Arc::new(AggregatorRunner::new(dependency_container)),
10391042
)
10401043
.await
10411044
.map_err(|e| DependenciesBuilderError::Initialization {

mithril-aggregator/src/http_server/routes/certificate_routes.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ mod tests {
115115
async fn test_certificate_pending_get_ok() {
116116
let method = Method::GET.as_str();
117117
let path = "/certificate-pending";
118-
let (dependency_manager, _) = initialize_dependencies().await;
118+
let dependency_manager = initialize_dependencies().await;
119119

120120
let response = request()
121121
.method(method)
@@ -135,7 +135,7 @@ mod tests {
135135

136136
#[tokio::test]
137137
async fn test_certificate_pending_get_ok_204() {
138-
let (dependency_manager, _) = initialize_dependencies().await;
138+
let dependency_manager = initialize_dependencies().await;
139139

140140
let method = Method::GET.as_str();
141141
let path = "/certificate-pending";
@@ -160,7 +160,7 @@ mod tests {
160160
async fn test_certificate_pending_get_ko_500() {
161161
let method = Method::GET.as_str();
162162
let path = "/certificate-pending";
163-
let (dependency_manager, _) = initialize_dependencies().await;
163+
let dependency_manager = initialize_dependencies().await;
164164

165165
let response = request()
166166
.method(method)
@@ -180,7 +180,7 @@ mod tests {
180180

181181
#[tokio::test]
182182
async fn test_certificate_certificate_hash_get_ok() {
183-
let (dependency_manager, _) = initialize_dependencies().await;
183+
let dependency_manager = initialize_dependencies().await;
184184
dependency_manager
185185
.certificate_store
186186
.save(fake_data::genesis_certificate(
@@ -210,7 +210,7 @@ mod tests {
210210

211211
#[tokio::test]
212212
async fn test_certificate_certificate_hash_get_ok_404() {
213-
let (dependency_manager, _) = initialize_dependencies().await;
213+
let dependency_manager = initialize_dependencies().await;
214214

215215
let method = Method::GET.as_str();
216216
let path = "/certificate/{certificate_hash}";
@@ -233,7 +233,7 @@ mod tests {
233233

234234
#[tokio::test]
235235
async fn test_certificate_certificate_hash_get_ko() {
236-
let (mut dependency_manager, _) = initialize_dependencies().await;
236+
let mut dependency_manager = initialize_dependencies().await;
237237
let certificate_store = CertificateStore::new(Box::new(FailStoreAdapter::<
238238
String,
239239
entities::Certificate,

mithril-aggregator/src/http_server/routes/epoch_routes.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ mod tests {
109109
async fn test_epoch_settings_get_ok() {
110110
let method = Method::GET.as_str();
111111
let path = "/epoch-settings";
112-
let (dependency_manager, _) = initialize_dependencies().await;
112+
let dependency_manager = initialize_dependencies().await;
113113

114114
let response = request()
115115
.method(method)
@@ -131,7 +131,7 @@ mod tests {
131131
async fn test_epoch_settings_get_ko_500() {
132132
let method = Method::GET.as_str();
133133
let path = "/epoch-settings";
134-
let (dependency_manager, _) = initialize_dependencies().await;
134+
let dependency_manager = initialize_dependencies().await;
135135

136136
let response = request()
137137
.method(method)

mithril-aggregator/src/http_server/routes/signatures_routes.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ mod tests {
116116
mock_certifier_service
117117
.expect_register_single_signature()
118118
.return_once(move |_, _| Ok(()));
119-
let (mut dependency_manager, _) = initialize_dependencies().await;
119+
let mut dependency_manager = initialize_dependencies().await;
120120
dependency_manager.certifier_service = Arc::new(mock_certifier_service);
121121

122122
let message = RegisterSignatureMessage::dummy();
@@ -147,7 +147,7 @@ mod tests {
147147
mock_certifier_service
148148
.expect_register_single_signature()
149149
.return_once(move |_, _| Ok(()));
150-
let (mut dependency_manager, _) = initialize_dependencies().await;
150+
let mut dependency_manager = initialize_dependencies().await;
151151
dependency_manager.certifier_service = Arc::new(mock_certifier_service);
152152

153153
let mut message = RegisterSignatureMessage::dummy();
@@ -185,7 +185,7 @@ mod tests {
185185
signed_entity_type,
186186
)))
187187
});
188-
let (mut dependency_manager, _) = initialize_dependencies().await;
188+
let mut dependency_manager = initialize_dependencies().await;
189189
dependency_manager.certifier_service = Arc::new(mock_certifier_service);
190190

191191
let method = Method::POST.as_str();
@@ -220,7 +220,7 @@ mod tests {
220220
signed_entity_type,
221221
)))
222222
});
223-
let (mut dependency_manager, _) = initialize_dependencies().await;
223+
let mut dependency_manager = initialize_dependencies().await;
224224
dependency_manager.certifier_service = Arc::new(mock_certifier_service);
225225

226226
let method = Method::POST.as_str();
@@ -253,7 +253,7 @@ mod tests {
253253
"an error occurred".to_string(),
254254
)))
255255
});
256-
let (mut dependency_manager, _) = initialize_dependencies().await;
256+
let mut dependency_manager = initialize_dependencies().await;
257257
dependency_manager.certifier_service = Arc::new(mock_certifier_service);
258258

259259
let message = RegisterSignatureMessage::dummy();

mithril-aggregator/src/http_server/routes/signer_routes.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ mod tests {
168168
mock_signer_registerer
169169
.expect_get_current_round()
170170
.return_once(|| None);
171-
let (mut dependency_manager, _) = initialize_dependencies().await;
171+
let mut dependency_manager = initialize_dependencies().await;
172172
dependency_manager.signer_registerer = Arc::new(mock_signer_registerer);
173173

174174
let signer: RegisterSignerMessage = RegisterSignerMessage::dummy();
@@ -203,7 +203,7 @@ mod tests {
203203
mock_signer_registerer
204204
.expect_get_current_round()
205205
.return_once(|| None);
206-
let (mut dependency_manager, _) = initialize_dependencies().await;
206+
let mut dependency_manager = initialize_dependencies().await;
207207
dependency_manager.signer_registerer = Arc::new(mock_signer_registerer);
208208

209209
let signer: RegisterSignerMessage = RegisterSignerMessage::dummy();
@@ -241,7 +241,7 @@ mod tests {
241241
mock_signer_registerer
242242
.expect_get_current_round()
243243
.return_once(|| None);
244-
let (mut dependency_manager, _) = initialize_dependencies().await;
244+
let mut dependency_manager = initialize_dependencies().await;
245245
dependency_manager.signer_registerer = Arc::new(mock_signer_registerer);
246246

247247
let signer: RegisterSignerMessage = RegisterSignerMessage::dummy();
@@ -279,7 +279,7 @@ mod tests {
279279
mock_signer_registerer
280280
.expect_get_current_round()
281281
.return_once(|| None);
282-
let (mut dependency_manager, _) = initialize_dependencies().await;
282+
let mut dependency_manager = initialize_dependencies().await;
283283
dependency_manager.signer_registerer = Arc::new(mock_signer_registerer);
284284

285285
let signer: RegisterSignerMessage = RegisterSignerMessage::dummy();

mithril-aggregator/src/http_server/routes/snapshot_routes.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ mod tests {
206206
.expect_list_snapshots()
207207
.return_const(Ok(fake_snapshots))
208208
.once();
209-
let (mut dependency_manager, _) = initialize_dependencies().await;
209+
let mut dependency_manager = initialize_dependencies().await;
210210
dependency_manager.snapshot_store = Arc::new(mock_snapshot_store);
211211

212212
let method = Method::GET.as_str();
@@ -237,7 +237,7 @@ mod tests {
237237
"an error occurred".to_string(),
238238
)))
239239
.once();
240-
let (mut dependency_manager, _) = initialize_dependencies().await;
240+
let mut dependency_manager = initialize_dependencies().await;
241241
dependency_manager.snapshot_store = Arc::new(mock_snapshot_store);
242242

243243
let method = Method::GET.as_str();
@@ -267,7 +267,7 @@ mod tests {
267267
.expect_get_snapshot_details()
268268
.return_const(Ok(Some(fake_snapshot)))
269269
.once();
270-
let (mut dependency_manager, _) = initialize_dependencies().await;
270+
let mut dependency_manager = initialize_dependencies().await;
271271
dependency_manager.snapshot_store = Arc::new(mock_snapshot_store);
272272

273273
let method = Method::GET.as_str();
@@ -296,7 +296,7 @@ mod tests {
296296
.expect_get_snapshot_details()
297297
.return_const(Ok(None))
298298
.once();
299-
let (mut dependency_manager, _) = initialize_dependencies().await;
299+
let mut dependency_manager = initialize_dependencies().await;
300300
dependency_manager.snapshot_store = Arc::new(mock_snapshot_store);
301301

302302
let method = Method::GET.as_str();
@@ -327,7 +327,7 @@ mod tests {
327327
"an error occurred".to_string(),
328328
)))
329329
.once();
330-
let (mut dependency_manager, _) = initialize_dependencies().await;
330+
let mut dependency_manager = initialize_dependencies().await;
331331
dependency_manager.snapshot_store = Arc::new(mock_snapshot_store);
332332

333333
let method = Method::GET.as_str();
@@ -357,7 +357,7 @@ mod tests {
357357
.expect_get_snapshot_details()
358358
.return_const(Ok(Some(fake_snapshot)))
359359
.once();
360-
let (mut dependency_manager, _) = initialize_dependencies().await;
360+
let mut dependency_manager = initialize_dependencies().await;
361361
dependency_manager.snapshot_store = Arc::new(mock_snapshot_store);
362362

363363
let method = Method::GET.as_str();
@@ -386,7 +386,7 @@ mod tests {
386386
.expect_get_snapshot_details()
387387
.return_const(Ok(None))
388388
.once();
389-
let (mut dependency_manager, _) = initialize_dependencies().await;
389+
let mut dependency_manager = initialize_dependencies().await;
390390
dependency_manager.snapshot_store = Arc::new(mock_snapshot_store);
391391

392392
let method = Method::GET.as_str();
@@ -417,7 +417,7 @@ mod tests {
417417
"an error occurred".to_string(),
418418
)))
419419
.once();
420-
let (mut dependency_manager, _) = initialize_dependencies().await;
420+
let mut dependency_manager = initialize_dependencies().await;
421421
dependency_manager.snapshot_store = Arc::new(mock_snapshot_store);
422422

423423
let method = Method::GET.as_str();

0 commit comments

Comments
 (0)