Skip to content

Commit 4583578

Browse files
committed
Adapt CardanoTransactionsImporter implementations
1 parent 69154d1 commit 4583578

File tree

2 files changed

+33
-18
lines changed

2 files changed

+33
-18
lines changed

mithril-aggregator/src/services/cardano_transactions_importer.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use anyhow::anyhow;
12
use std::mem;
23
use std::ops::Range;
34
use std::path::{Path, PathBuf};
@@ -6,7 +7,7 @@ use std::sync::Arc;
67
use async_trait::async_trait;
78
use slog::{debug, Logger};
89

9-
use mithril_common::cardano_block_scanner::BlockScanner;
10+
use mithril_common::cardano_block_scanner::{BlockScanner, ChainScannedBlocks};
1011
use mithril_common::crypto_helper::{MKTree, MKTreeNode};
1112
use mithril_common::entities::{BlockNumber, BlockRange, CardanoTransaction, ImmutableFileNumber};
1213
use mithril_common::signable_builder::TransactionsImporter;
@@ -105,14 +106,21 @@ impl CardanoTransactionsImporter {
105106
let mut streamer = self.block_scanner.scan(&self.dirpath, from, until).await?;
106107

107108
while let Some(blocks) = streamer.poll_next().await? {
108-
let parsed_transactions: Vec<CardanoTransaction> = blocks
109-
.into_iter()
110-
.flat_map(|b| b.into_transactions())
111-
.collect();
112-
113-
self.transaction_store
114-
.store_transactions(parsed_transactions)
115-
.await?;
109+
match blocks {
110+
ChainScannedBlocks::RollForwards(forward_blocks) => {
111+
let parsed_transactions: Vec<CardanoTransaction> = forward_blocks
112+
.into_iter()
113+
.flat_map(|b| b.into_transactions())
114+
.collect();
115+
116+
self.transaction_store
117+
.store_transactions(parsed_transactions)
118+
.await?;
119+
}
120+
ChainScannedBlocks::RollBackward(_) => {
121+
return Err(anyhow!("RollBackward not yet implemented"))
122+
}
123+
}
116124
}
117125

118126
Ok(())

mithril-signer/src/cardano_transactions_importer.rs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::sync::Arc;
66
use async_trait::async_trait;
77
use slog::{debug, Logger};
88

9-
use mithril_common::cardano_block_scanner::BlockScanner;
9+
use mithril_common::cardano_block_scanner::{BlockScanner, ChainScannedBlocks};
1010
use mithril_common::crypto_helper::{MKTree, MKTreeNode};
1111
use mithril_common::entities::{BlockNumber, BlockRange, CardanoTransaction, ImmutableFileNumber};
1212
use mithril_common::signable_builder::TransactionsImporter;
@@ -105,14 +105,21 @@ impl CardanoTransactionsImporter {
105105
let mut streamer = self.block_scanner.scan(&self.dirpath, from, until).await?;
106106

107107
while let Some(blocks) = streamer.poll_next().await? {
108-
let parsed_transactions: Vec<CardanoTransaction> = blocks
109-
.into_iter()
110-
.flat_map(|b| b.into_transactions())
111-
.collect();
112-
113-
self.transaction_store
114-
.store_transactions(parsed_transactions)
115-
.await?;
108+
match blocks {
109+
ChainScannedBlocks::RollForwards(blocks) => {
110+
let parsed_transactions: Vec<CardanoTransaction> = blocks
111+
.into_iter()
112+
.flat_map(|b| b.into_transactions())
113+
.collect();
114+
115+
self.transaction_store
116+
.store_transactions(parsed_transactions)
117+
.await?;
118+
}
119+
ChainScannedBlocks::RollBackward(_) => {
120+
return Err(anyhow::anyhow!("RollBackward not supported"));
121+
}
122+
}
116123
}
117124

118125
Ok(())

0 commit comments

Comments
 (0)