rtx.open_table(SEQUENCE_NUMBER_TO_INSCRIPTION_ENTRY)?; let sat_to_sequence_number = rtx.open_multimap_table(SAT_TO_SEQUENCE_NUMBER)?; if inscription_index < 0 { sat_to_sequence_number .get(&sat.n())? .nth_back((inscription_index + 1).abs_diff(0)) } else { sat_to_sequence_number .get(&sat.n())? .nth(inscription_index.abs_diff(0)) } .map(|result| { result .and_then(|sequence_number| { let sequence_number = sequence_number.value(); sequence_number_to_inscription_entry .get(sequence_number) .map(|entry| InscriptionEntry::load(entry.unwrap().value()).id) }) .map_err(|err| anyhow!(err.to_string())) }) .transpose() } pub(crate) fn get_inscription_id_by_sequence_number( &self, n: u32, ) -> Result> { Ok( self .database .begin_read()? .open_table(SEQUENCE_NUMBER_TO_INSCRIPTION_ENTRY)? .get(&n)?