aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/utils/flags.go15
-rw-r--r--eth/backend.go11
2 files changed, 15 insertions, 11 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index aa999eaae..30edf199c 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -746,6 +746,12 @@ func MakeAddress(ks *keystore.KeyStore, account string) (accounts.Account, error
if err != nil || index < 0 {
return accounts.Account{}, fmt.Errorf("invalid account address or index %q", account)
}
+ log.Warn("-------------------------------------------------------------------")
+ log.Warn("Referring to accounts by order in the keystore folder is dangerous!")
+ log.Warn("This functionality is deprecated and will be removed in the future!")
+ log.Warn("Please use explicit addresses! (can search via `geth account list`)")
+ log.Warn("-------------------------------------------------------------------")
+
accs := ks.Accounts()
if len(accs) <= index {
return accounts.Account{}, fmt.Errorf("index %d higher than number of accounts %d", index, len(accs))
@@ -762,15 +768,6 @@ func setEtherbase(ctx *cli.Context, ks *keystore.KeyStore, cfg *eth.Config) {
Fatalf("Option %q: %v", EtherbaseFlag.Name, err)
}
cfg.Etherbase = account.Address
- return
- }
- accounts := ks.Accounts()
- if (cfg.Etherbase == common.Address{}) {
- if len(accounts) > 0 {
- cfg.Etherbase = accounts[0].Address
- } else {
- log.Warn("No etherbase set and no accounts found as default")
- }
}
}
diff --git a/eth/backend.go b/eth/backend.go
index e7f0f57dd..c39974a2c 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -310,10 +310,17 @@ func (s *Ethereum) Etherbase() (eb common.Address, err error) {
}
if wallets := s.AccountManager().Wallets(); len(wallets) > 0 {
if accounts := wallets[0].Accounts(); len(accounts) > 0 {
- return accounts[0].Address, nil
+ etherbase := accounts[0].Address
+
+ s.lock.Lock()
+ s.etherbase = etherbase
+ s.lock.Unlock()
+
+ log.Info("Etherbase automatically configured", "address", etherbase)
+ return etherbase, nil
}
}
- return common.Address{}, fmt.Errorf("etherbase address must be explicitly specified")
+ return common.Address{}, fmt.Errorf("etherbase must be explicitly specified")
}
// set in js console via admin interface or wrapper from cli flags