offset: sat.third(),
rarity: sat.rarity(),
percentile: sat.percentile(),
satpoint,
timestamp: blocktime.timestamp().timestamp(),
inscriptions,
})
.into_response()
} else {
SatHtml {
sat,
satpoint,
blocktime,
inscriptions,
}
.page(page_config)
.into_response()
})
}
async fn ordinal(Path(sat): Path<String>) -> Redirect {
Redirect::to(&format!("/sat/{sat}"))
}
async fn output(
Extension(page_config): Extension<Arc<PageConfig>>,
Extension(index): Extension<Arc<Index>>,
Path(outpoint): Path<OutPoint>,
accept_json: AcceptJson,
) -> ServerResult<Response> {
let list = index.list(outpoint)?;
let output = if outpoint == OutPoint::null() || outpoint == unbound_outpoint() {
let mut value = 0;
if let Some(List::Unspent(ranges)) = &list {
for (start, end) in ranges {
value += end - start;
}
}
TxOut {
value,