]> Git Repo - VerusCoin.git/blob - src/keystore.cpp
Merge pull request #4825
[VerusCoin.git] / src / keystore.cpp
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2013 The Bitcoin developers
3 // Distributed under the MIT/X11 software license, see the accompanying
4 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6 #include "keystore.h"
7
8 #include "crypter.h"
9 #include "key.h"
10 #include "script/script.h"
11 #include "util.h"
12
13 #include <boost/foreach.hpp>
14
15 bool CKeyStore::GetPubKey(const CKeyID &address, CPubKey &vchPubKeyOut) const
16 {
17     CKey key;
18     if (!GetKey(address, key))
19         return false;
20     vchPubKeyOut = key.GetPubKey();
21     return true;
22 }
23
24 bool CKeyStore::AddKey(const CKey &key) {
25     return AddKeyPubKey(key, key.GetPubKey());
26 }
27
28 bool CBasicKeyStore::AddKeyPubKey(const CKey& key, const CPubKey &pubkey)
29 {
30     LOCK(cs_KeyStore);
31     mapKeys[pubkey.GetID()] = key;
32     return true;
33 }
34
35 bool CBasicKeyStore::AddCScript(const CScript& redeemScript)
36 {
37     if (redeemScript.size() > MAX_SCRIPT_ELEMENT_SIZE)
38         return error("CBasicKeyStore::AddCScript() : redeemScripts > %i bytes are invalid", MAX_SCRIPT_ELEMENT_SIZE);
39
40     LOCK(cs_KeyStore);
41     mapScripts[redeemScript.GetID()] = redeemScript;
42     return true;
43 }
44
45 bool CBasicKeyStore::HaveCScript(const CScriptID& hash) const
46 {
47     LOCK(cs_KeyStore);
48     return mapScripts.count(hash) > 0;
49 }
50
51 bool CBasicKeyStore::GetCScript(const CScriptID &hash, CScript& redeemScriptOut) const
52 {
53     LOCK(cs_KeyStore);
54     ScriptMap::const_iterator mi = mapScripts.find(hash);
55     if (mi != mapScripts.end())
56     {
57         redeemScriptOut = (*mi).second;
58         return true;
59     }
60     return false;
61 }
62
63 bool CBasicKeyStore::AddWatchOnly(const CScript &dest)
64 {
65     LOCK(cs_KeyStore);
66     setWatchOnly.insert(dest);
67     return true;
68 }
69
70 bool CBasicKeyStore::HaveWatchOnly(const CScript &dest) const
71 {
72     LOCK(cs_KeyStore);
73     return setWatchOnly.count(dest) > 0;
74 }
75
76 bool CBasicKeyStore::HaveWatchOnly() const
77 {
78     LOCK(cs_KeyStore);
79     return (!setWatchOnly.empty());
80 }
This page took 0.02738 seconds and 4 git commands to generate.