cmd/utils: improve parsing of --miner.etherbase address (#26541)
This fixes a regression where the flag did not accept values without the 0x prefix anymore. What's worse, if an invalid value was passed, the client would just log an INFO level message and continue.
This commit is contained in:
parent
163e996d0e
commit
59a48e0289
@ -21,6 +21,7 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"crypto/ecdsa"
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
"fmt"
|
||||
"math"
|
||||
@ -1344,14 +1345,19 @@ func MakeAddress(ks *keystore.KeyStore, account string) (accounts.Account, error
|
||||
|
||||
// setEtherbase retrieves the etherbase from the directly specified command line flags.
|
||||
func setEtherbase(ctx *cli.Context, cfg *ethconfig.Config) {
|
||||
if ctx.IsSet(MinerEtherbaseFlag.Name) {
|
||||
b, err := hexutil.Decode(ctx.String(MinerEtherbaseFlag.Name))
|
||||
if err != nil || len(b) != common.AddressLength {
|
||||
log.Info("Failed to decode etherbase", "err", err)
|
||||
return
|
||||
}
|
||||
cfg.Miner.Etherbase = common.BytesToAddress(b)
|
||||
if !ctx.IsSet(MinerEtherbaseFlag.Name) {
|
||||
return
|
||||
}
|
||||
addr := ctx.String(MinerEtherbaseFlag.Name)
|
||||
if strings.HasPrefix(addr, "0x") || strings.HasPrefix(addr, "0X") {
|
||||
addr = addr[2:]
|
||||
}
|
||||
b, err := hex.DecodeString(addr)
|
||||
if err != nil || len(b) != common.AddressLength {
|
||||
Fatalf("-%s: invalid etherbase address %q", MinerEtherbaseFlag.Name, addr)
|
||||
return
|
||||
}
|
||||
cfg.Miner.Etherbase = common.BytesToAddress(b)
|
||||
}
|
||||
|
||||
// MakePasswordList reads password lines from the file specified by the global --password flag.
|
||||
|
Loading…
Reference in New Issue
Block a user