9
9
"os"
10
10
"path/filepath"
11
11
"runtime"
12
+ "strconv"
12
13
13
14
"github.com/ethereum/go-ethereum/metrics"
14
15
@@ -122,8 +123,8 @@ var (
122
123
}
123
124
EtherbaseFlag = cli.StringFlag {
124
125
Name : "etherbase" ,
125
- Usage : "Public address for block mining rewards. By default the address of your primary account is used" ,
126
- Value : "primary " ,
126
+ Usage : "Public address for block mining rewards. By default the address first created is used" ,
127
+ Value : "0 " ,
127
128
}
128
129
GasPriceFlag = cli.StringFlag {
129
130
Name : "gasprice" ,
@@ -351,6 +352,8 @@ func MakeEthConfig(clientID, version string, ctx *cli.Context) *eth.Config {
351
352
if len (customName ) > 0 {
352
353
clientID += "/" + customName
353
354
}
355
+ am := MakeAccountManager (ctx )
356
+
354
357
return & eth.Config {
355
358
Name : common .MakeName (clientID , version ),
356
359
DataDir : ctx .GlobalString (DataDirFlag .Name ),
@@ -361,9 +364,9 @@ func MakeEthConfig(clientID, version string, ctx *cli.Context) *eth.Config {
361
364
LogFile : ctx .GlobalString (LogFileFlag .Name ),
362
365
Verbosity : ctx .GlobalInt (VerbosityFlag .Name ),
363
366
LogJSON : ctx .GlobalString (LogJSONFlag .Name ),
364
- Etherbase : ctx .GlobalString (EtherbaseFlag .Name ),
367
+ Etherbase : common . HexToAddress ( ParamToAddress ( ctx .GlobalString (EtherbaseFlag .Name ), am ) ),
365
368
MinerThreads : ctx .GlobalInt (MinerThreadsFlag .Name ),
366
- AccountManager : MakeAccountManager ( ctx ) ,
369
+ AccountManager : am ,
367
370
VmDebug : ctx .GlobalBool (VMDebugFlag .Name ),
368
371
MaxPeers : ctx .GlobalInt (MaxPeersFlag .Name ),
369
372
MaxPendingPeers : ctx .GlobalInt (MaxPendingPeersFlag .Name ),
@@ -488,3 +491,20 @@ func StartPProf(ctx *cli.Context) {
488
491
log .Println (http .ListenAndServe (address , nil ))
489
492
}()
490
493
}
494
+
495
+ func ParamToAddress (addr string , am * accounts.Manager ) (addrHex string ) {
496
+ if ! ((len (addr ) == 40 ) || (len (addr ) == 42 )) { // with or without 0x
497
+ index , err := strconv .Atoi (addr )
498
+ if err != nil {
499
+ Fatalf ("Invalid account address '%s'" , addr )
500
+ }
501
+
502
+ addrHex , err = am .AddressByIndex (index )
503
+ if err != nil {
504
+ Fatalf ("%v" , err )
505
+ }
506
+ } else {
507
+ addrHex = addr
508
+ }
509
+ return
510
+ }
0 commit comments