aboutsummaryrefslogtreecommitdiffstats
path: root/accounts/account_manager.go
diff options
context:
space:
mode:
authorBas van Kervel <bas@ethdev.com>2016-05-13 01:32:04 +0800
committerBas van Kervel <bas@ethdev.com>2016-05-20 21:54:18 +0800
commit64a6c2c1b6c81fddccc7d3d728b7a05c5814124b (patch)
tree05d6c04a1c5eeb5746425b3d7e691ee071f66c0e /accounts/account_manager.go
parente798e4fd750745cec99c5a531e42998d9a7be85e (diff)
downloadgo-tangerine-64a6c2c1b6c81fddccc7d3d728b7a05c5814124b.tar
go-tangerine-64a6c2c1b6c81fddccc7d3d728b7a05c5814124b.tar.gz
go-tangerine-64a6c2c1b6c81fddccc7d3d728b7a05c5814124b.tar.bz2
go-tangerine-64a6c2c1b6c81fddccc7d3d728b7a05c5814124b.tar.lz
go-tangerine-64a6c2c1b6c81fddccc7d3d728b7a05c5814124b.tar.xz
go-tangerine-64a6c2c1b6c81fddccc7d3d728b7a05c5814124b.tar.zst
go-tangerine-64a6c2c1b6c81fddccc7d3d728b7a05c5814124b.zip
eth: add new RPC method (personal.) SignAndSendTransaction
Diffstat (limited to 'accounts/account_manager.go')
-rw-r--r--accounts/account_manager.go16
1 files changed, 14 insertions, 2 deletions
diff --git a/accounts/account_manager.go b/accounts/account_manager.go
index 3afadf6b2..bfb7556d6 100644
--- a/accounts/account_manager.go
+++ b/accounts/account_manager.go
@@ -147,9 +147,21 @@ func (am *Manager) Sign(addr common.Address, hash []byte) (signature []byte, err
return crypto.Sign(hash, unlockedKey.PrivateKey)
}
+// SignWithPassphrase signs hash if the private key matching the given address can be
+// decrypted with the given passphrase.
+func (am *Manager) SignWithPassphrase(addr common.Address, passphrase string, hash []byte) (signature []byte, err error) {
+ _, key, err := am.getDecryptedKey(Account{Address: addr}, passphrase)
+ if err != nil {
+ return nil, err
+ }
+
+ defer zeroKey(key.PrivateKey)
+ return crypto.Sign(hash, key.PrivateKey)
+}
+
// Unlock unlocks the given account indefinitely.
-func (am *Manager) Unlock(a Account, keyAuth string) error {
- return am.TimedUnlock(a, keyAuth, 0)
+func (am *Manager) Unlock(a Account, passphrase string) error {
+ return am.TimedUnlock(a, passphrase, 0)
}
// Lock removes the private key with the given address from memory.