diff --git a/sequencer/service/rpc/src/lib.rs b/sequencer/service/rpc/src/lib.rs index 6c03cdb6..2f177fb5 100644 --- a/sequencer/service/rpc/src/lib.rs +++ b/sequencer/service/rpc/src/lib.rs @@ -39,9 +39,10 @@ pub trait Rpc { #[method(name = "sendTransaction")] async fn send_transaction(&self, tx: NSSATransaction) -> Result; - // TODO: expand healthcheck response into some kind of report + /// Returns the current chain height (block count). + /// A sequencer is healthy if this value increases over time. #[method(name = "checkHealth")] - async fn check_health(&self) -> Result<(), ErrorObjectOwned>; + async fn check_health(&self) -> Result; // TODO: These functions should be removed after wallet starts using indexer // for this type of queries. diff --git a/sequencer/service/src/service.rs b/sequencer/service/src/service.rs index 71645363..1f2395e3 100644 --- a/sequencer/service/src/service.rs +++ b/sequencer/service/src/service.rs @@ -82,8 +82,9 @@ impl Result<(), ErrorObjectOwned> { - Ok(()) + async fn check_health(&self) -> Result { + let sequencer = self.sequencer.lock().await; + Ok(sequencer.chain_height()) } async fn get_block(&self, block_id: BlockId) -> Result, ErrorObjectOwned> {