mithril_aggregator/dependency_injection/builder/protocol/
proving.rs1use std::sync::Arc;
2
3use mithril_common::crypto_helper::MKTreeStoreInMemory;
4
5use crate::dependency_injection::{DependenciesBuilder, Result};
6use crate::get_dependency;
7use crate::services::{MithrilProverService, ProverService};
8impl DependenciesBuilder {
9 pub async fn build_prover_service(&mut self) -> Result<Arc<dyn ProverService>> {
11 let mk_map_pool_size = self.configuration.cardano_transactions_prover_cache_pool_size();
12 let transaction_retriever = self.get_transaction_repository().await?;
13 let block_range_root_retriever = self.get_transaction_repository().await?;
14 let logger = self.root_logger();
15 let prover_service = MithrilProverService::<MKTreeStoreInMemory>::new(
16 transaction_retriever,
17 block_range_root_retriever,
18 mk_map_pool_size,
19 logger,
20 );
21
22 Ok(Arc::new(prover_service))
23 }
24
25 pub async fn get_prover_service(&mut self) -> Result<Arc<dyn ProverService>> {
27 get_dependency!(self.prover_service)
28 }
29}