use {
self::{inscription_updater::InscriptionUpdater, rune_updater::RuneUpdater},
super::{fetcher::Fetcher, *},
futures::future::try_join_all,
std::sync::mpsc,
tokio::sync::mpsc::{error::TryRecvError, Receiver, Sender},
};
mod inscription_updater;
mod rune_updater;
pub(crate) struct BlockData {
pub(crate) header: Header,
pub(crate) txdata: Vec<(Transaction, Txid)>,
}
impl From<Block> for BlockData {
fn from(block: Block) -> Self {
BlockData {
header: block.header,
txdata: block
.txdata
.into_iter()
.map(|transaction| {
let txid = transaction.txid();
(transaction, txid)
})
.collect(),
}
}
}
pub(crate) struct Updater<'index> {
range_cache: HashMap<OutPointValue, Vec<u8>>,
height: u32,
index: &'index Index,
sat_ranges_since_flush: u64,
outputs_cached: u64,
outputs_inserted_since_flush: u64,
outputs_traversed: u64,
}
impl<'index> Updater<'_> {
pub(crate) fn new(index: &'index Index) -> Result<Updater<'index>> {