aboutsummaryrefslogtreecommitdiffstats
path: root/accounts
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2015-12-15 00:38:10 +0800
committerFelix Lange <fjl@twurst.com>2015-12-15 00:38:10 +0800
commitfa187a366dda1894179635eeec2a929bfacc4ad3 (patch)
tree4494d4dcded47dd49f2fe7374e85fefa9249246e /accounts
parent787d71d6595df98586c625e82f4decb034215203 (diff)
parenteae81465c1c815c317cd30e4de6bdf4d59df2340 (diff)
downloadgo-tangerine-fa187a366dda1894179635eeec2a929bfacc4ad3.tar.gz
go-tangerine-fa187a366dda1894179635eeec2a929bfacc4ad3.tar.zst
go-tangerine-fa187a366dda1894179635eeec2a929bfacc4ad3.zip
Merge pull request #2035 from bas-vk/rcp-v2-rebase
rpc: new RPC implementation with pub/sub support
Diffstat (limited to 'accounts')
-rw-r--r--accounts/account_manager.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/accounts/account_manager.go b/accounts/account_manager.go
index 2781be656..74006395c 100644
--- a/accounts/account_manager.go
+++ b/accounts/account_manager.go
@@ -44,6 +44,10 @@ type Account struct {
Address common.Address
}
+func (acc *Account) MarshalJSON() ([]byte, error) {
+ return []byte(`"` + acc.Address.Hex() + `"`), nil
+}
+
type Manager struct {
keyStore crypto.KeyStore
unlocked map[common.Address]*unlocked
@@ -92,6 +96,17 @@ func (am *Manager) Unlock(addr common.Address, keyAuth string) error {
return am.TimedUnlock(addr, keyAuth, 0)
}
+func (am *Manager) Lock(addr common.Address) error {
+ am.mutex.Lock()
+ if unl, found := am.unlocked[addr]; found {
+ am.mutex.Unlock()
+ am.expire(addr, unl, time.Duration(0) * time.Nanosecond)
+ } else {
+ am.mutex.Unlock()
+ }
+ return nil
+}
+
// TimedUnlock unlocks the account with the given address. The account
// stays unlocked for the duration of timeout. A timeout of 0 unlocks the account
// until the program exits.