#66,349,345textInscription #65983730#65,983,730png#64,479,200dmt-mint.fidenza#63,068,907tapdmt-mint.fidenza#63,068,906tapdmt-mint.fidenza#63,068,905tapdmt-mint.fidenza#63,068,904tapdmt-mint.fidenza#63,068,903tapdmt-mint.fidenza#63,068,902tapdmt-mint.fidenza#63,068,901tapdmt-mint.fidenza#63,068,900tapdmt-mint.fidenza#63,068,899tapdmt-mint.fidenza#63,068,898tapdmt-mint.natmonkeys#62,987,619tapdmt-mint.natmonkeys#62,985,738tapdmt-mint.coolnats#62,795,787tapdmt-mint.coolnats#62,754,649tapdmt-mint.natdogs#62,069,934tapInscription #60679258#60,679,258webpInscription #53967089#53,967,089webpInscription #50629444#50,629,444pngInscription #50628995#50,628,995pngInscription #49132249#49,132,249pngInscription #45354987#45,354,987pngInscription #45221258#45,221,258pnguse {super::*, crate::wallet::Wallet}; #[derive(Debug, Parser)] pub(crate) struct Sats { #[arg( long, help = "Find satoshis listed in first column of tab-separated value file <TSV>." )] tsv: Option<PathBuf>, } #[derive(Serialize, Deserialize)] pub struct OutputTsv { pub sat: String, pub output: OutPoint, } #[derive(Serialize, Deserialize)] pub struct OutputRare { pub sat: Sat, pub output: OutPoint, pub offset: u64, pub rarity: Rarity, } impl Sats { pub(crate) fn run(&self, options: Options) -> SubcommandResult { let index = Index::open(&options)?; if !index.has_sat_index() { bail!("sats requires index created with `--index-sats` flag"); } index.update()?; let utxos = index.get_unspent_output_ranges(Wallet::load(&options)?)?; if let Some(path) = &self.tsv { let mut output = Vec::new(); for (outpoint, sat) in sats_from_tsv( utxos, &fs::read_to_string(path) .with_context(|| format!("I/O error reading `{}`", path.display()))?,#45,037,205textInscription #44952804#44,952,804pngInscription #44721263#44,721,263svgInscription #44696732#44,696,732svgcazetv.btc#44,375,011textpacova.btc#44,375,009textcenaslamentaveis.btc#44,375,008textdengo.btc#44,375,002textliveforclass.btc#44,374,995textsenna.btc#44,374,993textstmarche.btc#44,374,984textamazonbrasil.btc#44,374,983textarruda.btc#44,374,972textvinho.btc#44,374,941textpeppo.btc#44,374,939textespnbrasil.btc#44,374,923textcampari.btc#44,374,922textnegroni.btc#44,374,921textcerveja.btc#44,374,920textestadao.btc#44,374,919textspfc.btc#43,719,557textibba.btc#43,719,463textsnkrs.btc#43,719,426textbirken.btc#43,719,186textcryptopro.btc#43,719,121textoriba.btc#43,718,937textpravaler.btc#43,711,198textcasimiro.btc#43,711,147textc6bank.btc#43,710,958textxpinc.btc#43,710,937textnikerunclub.btc#43,710,856textmercadopago.btc#43,710,855textbawclothing.btc#43,710,854textvidabandida.btc#43,710,853textsantanderbr.btc#43,710,852text