Skip to content

Commit

Permalink
unlocking coinbase
Browse files Browse the repository at this point in the history
- extract accounts.getKey method - if given empty address it retrieves coinbase (first account)
- cli -unlock coinbase will unlock coinbase
  • Loading branch information
zelig committed Mar 26, 2015
1 parent 859f1f0 commit fd8d18e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
15 changes: 13 additions & 2 deletions accounts/account_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,17 @@ 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)
}
Expand All @@ -119,7 +130,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.keyStore.GetKey(addr, keyAuth)
key, err := am.getKey(addr, keyAuth)
if err != nil {
return err
}
Expand All @@ -132,7 +143,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.keyStore.GetKey(addr, keyAuth)
key, err := am.getKey(addr, keyAuth)
if err != nil {
return err
}
Expand Down
5 changes: 4 additions & 1 deletion cmd/ethereum/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ Exports the given account's private key into keyfile using the canonical EC form
The account needs to be unlocked, if it is not the user is prompted for a passphrase to unlock it.
For non-interactive use, the password can be specified with the --unlock flag:
ethereum --unlock <passwrdfile> account export <address> <keyfile>
ethereum --password <passwrdfile> account export <address> <keyfile>
Note:
Since you can directly copy your encrypted accounts to another ethereum instance, this import/export mechanism is not needed when you transfer an account between nodes.
Expand Down Expand Up @@ -305,6 +305,9 @@ func startEth(ctx *cli.Context, eth *eth.Ethereum) {

account := ctx.GlobalString(utils.UnlockedAccountFlag.Name)
if len(account) > 0 {
if account == "coinbase" {
account = ""
}
unlockAccount(ctx, am, account)
}
// Start auxiliary services if enabled.
Expand Down

0 comments on commit fd8d18e

Please sign in to comment.