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<bool> {
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<Option<SatPoint>> {
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());