Ok( self .client .get_raw_transaction_info(&txid, None) .into_option()? .and_then(|info| { if info.in_active_chain.unwrap_or_default() { info.blockhash } else { None } }), ) } pub(crate) fn is_transaction_in_active_chain(&self, txid: Txid) -> Result { Ok( self .client .get_raw_transaction_info(&txid, None) .into_option()? .and_then(|info| info.in_active_chain) .unwrap_or(false), ) } pub(crate) fn find(&self, sat: u64) -> Result> { let rtx = self.begin_read()?; if rtx.block_count()? <= Sat(sat).height().n() { return Ok(None); } let outpoint_to_sat_ranges = rtx.0.open_table(OUTPOINT_TO_SAT_RANGES)?; for range in outpoint_to_sat_ranges.range::<&[u8; 36]>(&[0; 36]..)? { let (key, value) = range?; let mut offset = 0; for chunk in value.value().chunks_exact(11) { let (start, end) = SatRange::load(chunk.try_into().unwrap());