tendermint/rpc/blocks.go

38 lines
795 B
Go
Raw Normal View History

2014-11-30 18:31:44 -08:00
package rpc
import (
"net/http"
2015-01-06 15:51:41 -08:00
. "github.com/tendermint/tendermint/block"
. "github.com/tendermint/tendermint/common"
2014-11-30 18:31:44 -08:00
)
2015-01-06 15:51:41 -08:00
type BlockchainInfoResponse struct {
LastHeight uint
BlockMetas []*BlockMeta
}
func BlockchainInfoHandler(w http.ResponseWriter, r *http.Request) {
minHeight, _ := GetParamUint(r, "min_height")
maxHeight, _ := GetParamUint(r, "max_height")
if maxHeight == 0 {
maxHeight = blockStore.Height()
}
if minHeight == 0 {
minHeight = MaxUint(0, maxHeight-20)
}
blockMetas := []*BlockMeta{}
for height := minHeight; height <= maxHeight; height++ {
blockMetas = append(blockMetas, blockStore.LoadBlockMeta(height))
}
res := BlockchainInfoResponse{
LastHeight: blockStore.Height(),
BlockMetas: blockMetas,
}
2014-11-30 18:31:44 -08:00
2015-01-06 15:51:41 -08:00
WriteAPIResponse(w, API_OK, res)
return
2014-11-30 18:31:44 -08:00
}