neptune-explorer/src/rpc/block_info.rs
sword_smith 552923ae40
chore: Update neptune-core dependency
Also: format imports.
2025-10-02 15:56:49 +02:00

32 lines
886 B
Rust

use std::sync::Arc;
use axum::extract::Path;
use axum::extract::State;
use axum::response::Json;
use axum::response::Response;
use neptune_cash::protocol::consensus::block::block_info::BlockInfo;
use tarpc::context;
use crate::http_util::not_found_err;
use crate::http_util::rpc_err;
use crate::http_util::rpc_method_err;
use crate::model::app_state::AppState;
use crate::model::block_selector_extended::BlockSelectorExtended;
#[axum::debug_handler]
pub async fn block_info(
Path(selector): Path<BlockSelectorExtended>,
State(state): State<Arc<AppState>>,
) -> Result<Json<BlockInfo>, Response> {
let s = state.load();
let block_info = s
.rpc_client
.block_info(context::current(), s.token(), selector.into())
.await
.map_err(rpc_err)?
.map_err(rpc_method_err)?
.ok_or_else(not_found_err)?;
Ok(Json(block_info))
}