use std::sync::atomic::Ordering;
use miden_node_proto::generated as grpc;
use super::ValidatorService;
#[tonic::async_trait]
impl grpc::server::validator_api::Status for ValidatorService {
type Input = ();
type Output = ();
async fn full(
&self,
_request: tonic::Request<()>,
) -> tonic::Result<grpc::validator::ValidatorStatus> {
let status = match self.serve_lock.try_read() {
Ok(_guard) => "OK",
Err(_) => "BACKUP",
};
Ok(grpc::validator::ValidatorStatus {
version: env!("CARGO_PKG_VERSION").to_string(),
status: status.to_string(),
chain_tip: self.committed_tip.borrow().as_u32(),
validated_transactions_count: self.validated_transactions_count.load(Ordering::Relaxed),
signed_blocks_count: self.signed_blocks_count.load(Ordering::Relaxed),
})
}
async fn handle(
&self,
_input: Self::Input,
_metadata: &tonic::metadata::MetadataMap,
_extensions: &tonic::codegen::http::Extensions,
) -> tonic::Result<Self::Output> {
unimplemented!()
}
fn decode(_request: ()) -> tonic::Result<Self::Input> {
unimplemented!()
}
fn encode(_output: Self::Output) -> tonic::Result<grpc::validator::ValidatorStatus> {
unimplemented!()
}
}