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, input_sat_ranges: &mut VecDeque<(u64, u64)>,