use gendoc struct for genesis rpc response

This commit is contained in:
Ethan Buchman
2015-06-03 19:26:31 -04:00
parent 7a57f1069c
commit bf1c9a869c
2 changed files with 27 additions and 18 deletions

View File

@ -3,6 +3,7 @@ package core
import (
"io/ioutil"
"github.com/tendermint/tendermint/binary"
dbm "github.com/tendermint/tendermint/db"
ctypes "github.com/tendermint/tendermint/rpc/core/types"
sm "github.com/tendermint/tendermint/state"
@ -62,12 +63,19 @@ func NetInfo() (*ctypes.ResponseNetInfo, error) {
//-----------------------------------------------------------------------------
// returns pointer because the rpc-gen code returns nil (TODO!)
func Genesis() (*string, error) {
b, err := ioutil.ReadFile(config.GetString("genesis_file"))
if err != nil {
return nil, err
// cache the genesis structure
var genDoc *sm.GenesisDoc
func Genesis() (*sm.GenesisDoc, error) {
if genDoc == nil {
b, err := ioutil.ReadFile(config.GetString("genesis_file"))
if err != nil {
return nil, err
}
binary.ReadJSON(&genDoc, b, &err)
if err != nil {
return nil, err
}
}
ret := string(b)
return &ret, nil
return genDoc, nil
}