prysm-pulse/beacon-chain/utils/genesis_json.go

29 lines
699 B
Go
Raw Normal View History

2018-10-15 13:17:07 +00:00
package utils
import (
"fmt"
"os"
"github.com/golang/protobuf/jsonpb"
pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1"
)
// InitialValidatorsFromJSON retrieves the validator set that is stored in
// genesis.json.
func InitialValidatorsFromJSON(genesisJSONPath string) ([]*pb.ValidatorRecord, error) {
// #nosec G304
// genesisJSONPath is a user input for the path of genesis.json.
// Ex: /path/to/my/genesis.json.
f, err := os.Open(genesisJSONPath)
if err != nil {
return nil, err
}
cState := &pb.CrystallizedState{}
if err := jsonpb.Unmarshal(f, cState); err != nil {
return nil, fmt.Errorf("error converting JSON to proto: %v", err)
}
return cState.Validators, nil
}