ord 0.4.2

◉ Ordinal wallet and block explorer
Documentation
use super::*;
use std::collections::BTreeSet;

pub(crate) fn run(options: Options) -> Result {
  let index = Index::open(&options)?;
  index.update()?;

  let inscription_outputs = index
    .get_inscriptions(None)?
    .keys()
    .map(|satpoint| satpoint.outpoint)
    .collect::<BTreeSet<OutPoint>>();

  let mut balance = 0;
  for (outpoint, amount) in get_unspent_outputs(&options)? {
    if !inscription_outputs.contains(&outpoint) {
      balance += amount.to_sat()
    }
  }

  println!("{}", balance);

  Ok(())
}