3 // ChainStatus indicate chain status
4 type ChainStatus struct {
5 CurrentHeight uint64 `json:"current_height"`
6 CurrentHash string `json:"current_hash"`
7 FinalizedHeight uint64 `json:"finalized_height"`
8 FinalizedHash string `json:"finalized_hash"`
9 JustifiedHeight uint64 `json:"justified_height"`
10 JustifiedHash string `json:"justified_hash"`
13 // getChainStatus return chain status
14 func (a *API) getChainStatus() Response {
15 chainStatus, err := a.GetChainStatus()
17 return NewErrorResponse(err)
20 return NewSuccessResponse(chainStatus)
23 // GetChainStatus return chain status
24 func (a *API) GetChainStatus() (*ChainStatus, error) {
25 finalizedBlockHeader, err := a.chain.LastFinalizedHeader()
30 justifiedBlockHeader, err := a.chain.LastJustifiedHeader()
35 finalizedHash := finalizedBlockHeader.Hash()
36 justifiedHash := justifiedBlockHeader.Hash()
38 CurrentHeight: a.chain.BestBlockHeight(),
39 CurrentHash: a.chain.BestBlockHash().String(),
40 FinalizedHeight: finalizedBlockHeader.Height,
41 FinalizedHash: finalizedHash.String(),
42 JustifiedHeight: justifiedBlockHeader.Height,
43 JustifiedHash: justifiedHash.String(),