floating_inscriptions.sort_by_key(|flotsam| flotsam.offset); let mut inscriptions = floating_inscriptions.into_iter().peekable(); let mut range_to_vout = BTreeMap::new(); let mut new_locations = Vec::new(); let mut output_value = 0; for (vout, tx_out) in tx.output.iter().enumerate() { let end = output_value + tx_out.value; while let Some(flotsam) = inscriptions.peek() { if flotsam.offset >= end { break; } let new_satpoint = SatPoint { outpoint: OutPoint { txid, vout: vout.try_into().unwrap(), }, offset: flotsam.offset - output_value, }; new_locations.push((new_satpoint, inscriptions.next().unwrap())); } range_to_vout.insert((output_value, end), vout.try_into().unwrap()); output_value = end; self.value_cache.insert( OutPoint { vout: vout.try_into().unwrap(), txid, }, tx_out.value, ); } for (new_satpoint, mut flotsam) in new_locations.into_iter() {