}
Some(&ReorgError::Unrecoverable) => {
self
.unrecoverably_reorged
.store(true, atomic::Ordering::Relaxed);
return Err(anyhow!(ReorgError::Unrecoverable));
}
_ => return Err(err),
};
}
}
}
}
pub(crate) fn export(&self, filename: &String, include_addresses: bool) -> Result {
let mut writer = BufWriter::new(File::create(filename)?);
let rtx = self.database.begin_read()?;
let blocks_indexed = rtx
.open_table(HEIGHT_TO_BLOCK_HASH)?
.range(0..)?
.next_back()
.and_then(|result| result.ok())
.map(|(height, _hash)| height.value() + 1)
.unwrap_or(0);
writeln!(writer, "# export at block height {}", blocks_indexed)?;
log::info!("exporting database tables to {filename}");
let sequence_number_to_satpoint = rtx.open_table(SEQUENCE_NUMBER_TO_SATPOINT)?;
for result in rtx
.open_table(SEQUENCE_NUMBER_TO_INSCRIPTION_ENTRY)?