fix(x/genutil): fix logic error in simapp start (#20693)
This commit is contained in:
parent
6335631348
commit
65ac3f42ec
@ -33,7 +33,9 @@ func ExportGenesisFile(genesis *types.AppGenesis, genFile string) error {
|
||||
|
||||
// ExportGenesisFileWithTime creates and writes the genesis configuration to disk.
|
||||
// An error is returned if building or writing the configuration to file fails.
|
||||
func ExportGenesisFileWithTime(genFile, chainID string, validators []cmttypes.GenesisValidator, appState json.RawMessage, genTime time.Time) error {
|
||||
func ExportGenesisFileWithTime(
|
||||
genFile, chainID string, validators []cmttypes.GenesisValidator, appState json.RawMessage, genTime time.Time,
|
||||
) error {
|
||||
appGenesis := types.NewAppGenesisWithVersion(chainID, appState)
|
||||
appGenesis.GenesisTime = genTime
|
||||
appGenesis.Consensus.Validators = validators
|
||||
@ -46,13 +48,17 @@ func ExportGenesisFileWithTime(genFile, chainID string, validators []cmttypes.Ge
|
||||
}
|
||||
|
||||
// InitializeNodeValidatorFiles creates private validator and p2p configuration files.
|
||||
func InitializeNodeValidatorFiles(config *cfg.Config, keyType string) (nodeID string, valPubKey cryptotypes.PubKey, err error) {
|
||||
func InitializeNodeValidatorFiles(config *cfg.Config, keyType string) (
|
||||
nodeID string, valPubKey cryptotypes.PubKey, err error,
|
||||
) {
|
||||
return InitializeNodeValidatorFilesFromMnemonic(config, "", keyType)
|
||||
}
|
||||
|
||||
// InitializeNodeValidatorFilesFromMnemonic creates private validator and p2p configuration files using the given mnemonic.
|
||||
// If no valid mnemonic is given, a random one will be used instead.
|
||||
func InitializeNodeValidatorFilesFromMnemonic(config *cfg.Config, mnemonic, keyType string) (nodeID string, valPubKey cryptotypes.PubKey, err error) {
|
||||
func InitializeNodeValidatorFilesFromMnemonic(config *cfg.Config, mnemonic, keyType string) (
|
||||
nodeID string, valPubKey cryptotypes.PubKey, err error,
|
||||
) {
|
||||
if len(mnemonic) > 0 && !bip39.IsMnemonicValid(mnemonic) {
|
||||
return "", nil, fmt.Errorf("invalid mnemonic")
|
||||
}
|
||||
@ -81,14 +87,15 @@ func InitializeNodeValidatorFilesFromMnemonic(config *cfg.Config, mnemonic, keyT
|
||||
if len(mnemonic) == 0 {
|
||||
switch keyType {
|
||||
case "ed25519":
|
||||
privKey = tmed25519.GenPrivKey()
|
||||
filePV = loadOrGenFilePV(tmed25519.GenPrivKey(), pvKeyFile, pvStateFile)
|
||||
case "bls12_381":
|
||||
privKey, err = cmtbls12381.GenPrivKey()
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
filePV = loadOrGenFilePV(privKey, pvKeyFile, pvStateFile)
|
||||
default:
|
||||
privKey = tmed25519.GenPrivKey()
|
||||
filePV = loadOrGenFilePV(tmed25519.GenPrivKey(), pvKeyFile, pvStateFile)
|
||||
}
|
||||
} else {
|
||||
switch keyType {
|
||||
@ -100,11 +107,10 @@ func InitializeNodeValidatorFilesFromMnemonic(config *cfg.Config, mnemonic, keyT
|
||||
default:
|
||||
privKey = tmed25519.GenPrivKeyFromSecret([]byte(mnemonic))
|
||||
}
|
||||
filePV = privval.NewFilePV(privKey, pvKeyFile, pvStateFile)
|
||||
filePV.Save()
|
||||
}
|
||||
|
||||
filePV = privval.NewFilePV(privKey, pvKeyFile, pvStateFile)
|
||||
filePV.Save()
|
||||
|
||||
tmValPubKey, err := filePV.GetPubKey()
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
@ -117,3 +123,19 @@ func InitializeNodeValidatorFilesFromMnemonic(config *cfg.Config, mnemonic, keyT
|
||||
|
||||
return nodeID, valPubKey, nil
|
||||
}
|
||||
|
||||
// loadOrGenFilePV loads a FilePV from the given filePaths
|
||||
// or else generates a new one and saves it to the filePaths.
|
||||
func loadOrGenFilePV(privKey cmtcrypto.PrivKey, keyFilePath, stateFilePath string) *privval.FilePV {
|
||||
_, err := os.Stat(keyFilePath)
|
||||
exists := !os.IsNotExist(err)
|
||||
|
||||
var pv *privval.FilePV
|
||||
if exists {
|
||||
pv = privval.LoadFilePV(keyFilePath, stateFilePath)
|
||||
} else {
|
||||
pv = privval.NewFilePV(privKey, keyFilePath, stateFilePath)
|
||||
pv.Save()
|
||||
}
|
||||
return pv
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user