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
|
|
|
}
|