unlocking coinbase without knowing address
- accounts: remove Manager.getKey - cli: for -unlock coinbase, use account manager Coinbase()
This commit is contained in:
		
							parent
							
								
									4ec38e3932
								
							
						
					
					
						commit
						11d2ebc06f
					
				| @ -36,9 +36,8 @@ import ( | ||||
| 	"bytes" | ||||
| 	"crypto/ecdsa" | ||||
| 	crand "crypto/rand" | ||||
| 	"os" | ||||
| 
 | ||||
| 	"errors" | ||||
| 	"os" | ||||
| 	"sync" | ||||
| 	"time" | ||||
| 
 | ||||
| @ -101,17 +100,6 @@ func (am *Manager) firstAddr() ([]byte, error) { | ||||
| 	return addrs[0], nil | ||||
| } | ||||
| 
 | ||||
| func (am *Manager) getKey(addr []byte, keyAuth string) (*crypto.Key, error) { | ||||
| 	if len(addr) == 0 { | ||||
| 		var err error | ||||
| 		addr, err = am.firstAddr() | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
| 	return am.keyStore.GetKey(addr, keyAuth) | ||||
| } | ||||
| 
 | ||||
| func (am *Manager) DeleteAccount(address []byte, auth string) error { | ||||
| 	return am.keyStore.DeleteKey(address, auth) | ||||
| } | ||||
| @ -130,7 +118,7 @@ func (am *Manager) Sign(a Account, toSign []byte) (signature []byte, err error) | ||||
| // TimedUnlock unlocks the account with the given address.
 | ||||
| // When timeout has passed, the account will be locked again.
 | ||||
| func (am *Manager) TimedUnlock(addr []byte, keyAuth string, timeout time.Duration) error { | ||||
| 	key, err := am.getKey(addr, keyAuth) | ||||
| 	key, err := am.keyStore.GetKey(addr, keyAuth) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| @ -143,7 +131,7 @@ func (am *Manager) TimedUnlock(addr []byte, keyAuth string, timeout time.Duratio | ||||
| // stays unlocked until the program exits or until a TimedUnlock
 | ||||
| // timeout (started after the call to Unlock) expires.
 | ||||
| func (am *Manager) Unlock(addr []byte, keyAuth string) error { | ||||
| 	key, err := am.getKey(addr, keyAuth) | ||||
| 	key, err := am.keyStore.GetKey(addr, keyAuth) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| @ -294,7 +294,7 @@ func unlockAccount(ctx *cli.Context, am *accounts.Manager, account string) (pass | ||||
| 		var err error | ||||
| 		// Load startup keys. XXX we are going to need a different format
 | ||||
| 		// Attempt to unlock the account
 | ||||
| 		passphrase := getPassPhrase(ctx, "", false) | ||||
| 		passphrase = getPassPhrase(ctx, "", false) | ||||
| 		err = am.Unlock(common.FromHex(account), passphrase) | ||||
| 		if err != nil { | ||||
| 			utils.Fatalf("Unlock account failed '%v'", err) | ||||
| @ -310,7 +310,11 @@ func startEth(ctx *cli.Context, eth *eth.Ethereum) { | ||||
| 	account := ctx.GlobalString(utils.UnlockedAccountFlag.Name) | ||||
| 	if len(account) > 0 { | ||||
| 		if account == "coinbase" { | ||||
| 			account = "" | ||||
| 			accbytes, err := am.Coinbase() | ||||
| 			if err != nil { | ||||
| 				utils.Fatalf("no coinbase account: %v", err) | ||||
| 			} | ||||
| 			account = common.ToHex(accbytes) | ||||
| 		} | ||||
| 		unlockAccount(ctx, am, account) | ||||
| 	} | ||||
| @ -420,6 +424,7 @@ func accountExport(ctx *cli.Context) { | ||||
| 	} | ||||
| 	am := utils.GetAccountManager(ctx) | ||||
| 	auth := unlockAccount(ctx, am, account) | ||||
| 
 | ||||
| 	err := am.Export(keyfile, common.FromHex(account), auth) | ||||
| 	if err != nil { | ||||
| 		utils.Fatalf("Account export failed: %v", err) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user