use {super::*, crate::wallet::Wallet};
#[derive(Serialize, Deserialize)]
pub struct Output {
pub inscription: InscriptionId,
pub location: SatPoint,
pub explorer: String,
pub postage: u64,
}
pub(crate) fn run(options: Options) -> SubcommandResult {
let index = Index::open(&options)?;
index.update()?;
let unspent_outputs = index.get_unspent_outputs(Wallet::load(&options)?)?;
let inscriptions = index.get_inscriptions(&unspent_outputs)?;
let explorer = match options.chain() {
Chain::Mainnet => "https://ordinals.com/inscription/",
Chain::Regtest => "http://localhost/inscription/",
Chain::Signet => "https://signet.ordinals.com/inscription/",
Chain::Testnet => "https://testnet.ordinals.com/inscription/",
};
let mut output = Vec::new();
for (location, inscription) in inscriptions {
if let Some(postage) = unspent_outputs.get(&location.outpoint) {
output.push(Output {
location,
inscription,
explorer: format!("{explorer}{inscription}"),
postage: postage.to_sat(),