minimum: Rune::minimum_at_height(Height(self.height)),
outpoint_to_balances: &mut outpoint_to_rune_balances,
rune_to_id: &mut rune_to_rune_id,
runes,
sequence_number_to_rune: &mut sequence_number_to_rune,
statistic_to_count: &mut statistic_to_count,
timestamp: block.header.time,
transaction_id_to_rune: &mut transaction_id_to_rune,
};
for (i, (tx, txid)) in block.txdata.iter().enumerate() {
rune_updater.index_runes(i, tx, *txid)?;
}
}
height_to_block_hash.insert(&self.height, &block.header.block_hash().store())?;
self.height += 1;
self.outputs_traversed += outputs_in_block;
log::info!(
"Wrote {sat_ranges_written} sat ranges from {outputs_in_block} outputs in {} ms",
(Instant::now() - start).as_millis(),
);
Ok(())
}
fn index_transaction_sats(
&mut self,
tx: &Transaction,
txid: Txid,
sat_to_satpoint: &mut Table<u64, &SatPointValue>,
input_sat_ranges: &mut VecDeque<(u64, u64)>,