diff options
author | zelig <viktor.tron@gmail.com> | 2015-03-24 20:37:00 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-03-27 03:00:18 +0800 |
commit | fd8d18ec280c3fe2c3d2651870c31c65b02039ba (patch) | |
tree | e079cd2306e48e8537b95e6c00730f611553a01e /accounts | |
parent | 859f1f08ca48de99408c825eba8d6ed4bfea3235 (diff) | |
download | dexon-fd8d18ec280c3fe2c3d2651870c31c65b02039ba.tar.gz dexon-fd8d18ec280c3fe2c3d2651870c31c65b02039ba.tar.zst dexon-fd8d18ec280c3fe2c3d2651870c31c65b02039ba.zip |
unlocking coinbase
- extract accounts.getKey method - if given empty address it retrieves coinbase (first account)
- cli -unlock coinbase will unlock coinbase
Diffstat (limited to 'accounts')
-rw-r--r-- | accounts/account_manager.go | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/accounts/account_manager.go b/accounts/account_manager.go index 670d4337f..21ef46991 100644 --- a/accounts/account_manager.go +++ b/accounts/account_manager.go @@ -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) } @@ -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 } @@ -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 } |