Skip to content

Commit

Permalink
setup genesis command to validate the validators pubkey
Browse files Browse the repository at this point in the history
  • Loading branch information
charithabandi committed Mar 4, 2025
1 parent 85bbe65 commit 7b269a9
Showing 1 changed file with 19 additions and 8 deletions.
27 changes: 19 additions & 8 deletions app/setup/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,23 +167,34 @@ func mergeGenesisFlags(conf *config.GenesisConfig, cmd *cobra.Command, flagCfg *
for _, v := range flagCfg.validators {
parts := strings.Split(v, ":")
if len(parts) != 2 {
return nil, fmt.Errorf("invalid format for validator, expected key:power, received: %s", v)
return nil, fmt.Errorf("invalid format for validator, expected key#keyType:power, received: %s", v)
}

keyParts := strings.Split(parts[0], "#")
hexPub, err := hex.DecodeString(keyParts[0])
power, err := strconv.ParseInt(parts[1], 10, 64)
if err != nil {
return nil, fmt.Errorf("invalid public key for validator: %s", parts[0])
return nil, fmt.Errorf("invalid power for validator: %s", parts[1])
}

power, err := strconv.ParseInt(parts[1], 10, 64)
keyType := crypto.KeyTypeSecp256k1
keyParts := strings.Split(parts[0], "#")

if len(keyParts) > 2 {
return nil, fmt.Errorf("invalid format for validator, expected key#keyType:power, received: %s", v)
} else if len(keyParts) == 2 {
keyType, err = crypto.ParseKeyType(keyParts[1])
if err != nil {
return nil, fmt.Errorf("invalid key type for validator: %s", keyParts[1])
}
}

hexPub, err := hex.DecodeString(keyParts[0])
if err != nil {
return nil, fmt.Errorf("invalid power for validator: %s", parts[1])
return nil, fmt.Errorf("invalid public key for validator: %s", parts[0])
}

keyType, err := crypto.ParseKeyType(keyParts[1])
_, err = crypto.UnmarshalPublicKey(hexPub, keyType)
if err != nil {
return nil, fmt.Errorf("invalid key type for validator: %s", keyParts[1])
return nil, fmt.Errorf("invalid public key for validator: %s", parts[0])
}

conf.Validators = append(conf.Validators, &types.Validator{
Expand Down

0 comments on commit 7b269a9

Please sign in to comment.