use super::*; #[derive(Debug, Parser)] pub(crate) struct Find { #[arg(help = "Find output and offset of <SAT>.")] sat: Sat, #[clap(help = "Find output and offset of all sats in the range [<SAT>, <END>).")] end: Option<Sat>, } #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct Output { pub satpoint: SatPoint, } #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct FindRangeOutput { pub start: u64, pub size: u64, pub satpoint: SatPoint, } impl Find { pub(crate) fn run(self, options: Options) -> SubcommandResult { let index = Index::open(&options)?; if !index.has_sat_index() { bail!("find requires index created with `--index-sats` flag"); } index.update()?; match self.end { Some(end) => match index.find_range(self.sat.0, end.0)? { Some(result) => Ok(Box::new(result)), None => Err(anyhow!("range has not been mined as of index height")), }, None => match index.find(self.sat.0)? { Some(satpoint) => Ok(Box::new(Output { satpoint })),
Inscription #44976711
Collection
Ord
Owner
bc1pqy0efm...hapsl7e3zwID
8082fbd3c2...8b6e579ei0
Detail
History
Sign Up for our Newsletter
And be the first to know about any updates!