mithril_aggregator/services/
chain_data_importer.rs

1use std::sync::Arc;
2
3use mithril_cardano_node_chain::chain_importer::ChainDataImporter;
4use mithril_common::StdResult;
5use mithril_common::entities::BlockNumber;
6use mithril_common::signable_builder::TransactionsImporter;
7
8/// Services responsible for importing chain data into the aggregator data stores.
9pub struct AggregatorChainDataImporter {
10    inner: Arc<dyn ChainDataImporter>,
11}
12
13impl AggregatorChainDataImporter {
14    /// Instantiate a new instance of `AggregatorChainDataImporter`.
15    pub fn new(inner: Arc<dyn ChainDataImporter>) -> Self {
16        Self { inner }
17    }
18}
19
20#[async_trait::async_trait]
21impl TransactionsImporter for AggregatorChainDataImporter {
22    async fn import(&self, up_to_beacon: BlockNumber) -> StdResult<()> {
23        self.inner.import(up_to_beacon).await
24    }
25}