package types import ( "encoding/json" "time" "github.com/tendermint/go-crypto" "github.com/tendermint/go-wire/data" cmn "github.com/tendermint/tmlibs/common" ) //------------------------------------------------------------ // we store the gendoc in the db var GenDocKey = []byte("GenDocKey") //------------------------------------------------------------ // core types for a genesis definition type GenesisValidator struct { PubKey crypto.PubKey `json:"pub_key"` Amount int64 `json:"amount"` Name string `json:"name"` } type GenesisDoc struct { GenesisTime time.Time `json:"genesis_time"` ChainID string `json:"chain_id"` Validators []GenesisValidator `json:"validators"` AppHash data.Bytes `json:"app_hash"` } // Utility method for saving GenensisDoc as JSON file. func (genDoc *GenesisDoc) SaveAs(file string) error { genDocBytes, err := json.Marshal(genDoc) if err != nil { return err } return cmn.WriteFile(file, genDocBytes, 0644) } //------------------------------------------------------------ // Make genesis state from file func GenesisDocFromJSON(jsonBlob []byte) (*GenesisDoc, error) { genDoc := GenesisDoc{} err := json.Unmarshal(jsonBlob, &genDoc) return &genDoc, err }