let mut envelopes = ParsedEnvelope::from_transaction(tx).into_iter().peekable(); let mut floating_inscriptions = Vec::new(); let mut inscribed_offsets = BTreeMap::new(); let mut total_input_value = 0; let mut id_counter = 0; for (input_index, tx_in) in tx.input.iter().enumerate() { // skip subsidy since no inscriptions possible if tx_in.previous_output.is_null() { total_input_value += Height(self.height).subsidy(); continue; } // find existing inscriptions on input (transfers of inscriptions) for (old_satpoint, inscription_id) in Index::inscriptions_on_output( self.satpoint_to_sequence_number, self.sequence_number_to_entry, tx_in.previous_output, )? { let offset = total_input_value + old_satpoint.offset; floating_inscriptions.push(Flotsam { offset, inscription_id, origin: Origin::Old { old_satpoint }, }); inscribed_offsets .entry(offset)