]> Git Repo - VerusCoin.git/blob - src/keystore.cpp
c++11: don't forward-declare types used in maps
[VerusCoin.git] / src / keystore.cpp
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2014 The Bitcoin Core developers
3 // Distributed under the MIT 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 "util.h"
11
12 #include <boost/foreach.hpp>
13
14 bool CKeyStore::GetPubKey(const CKeyID &address, CPubKey &vchPubKeyOut) const
15 {
16     CKey key;
17     if (!GetKey(address, key))
18         return false;
19     vchPubKeyOut = key.GetPubKey();
20     return true;
21 }
22
23 bool CKeyStore::AddKey(const CKey &key) {
24     return AddKeyPubKey(key, key.GetPubKey());
25 }
26
27 bool CBasicKeyStore::AddKeyPubKey(const CKey& key, const CPubKey &pubkey)
28 {
29     LOCK(cs_KeyStore);
30     mapKeys[pubkey.GetID()] = key;
31     return true;
32 }
33
34 bool CBasicKeyStore::AddCScript(const CScript& redeemScript)
35 {
36     if (redeemScript.size() > MAX_SCRIPT_ELEMENT_SIZE)
37         return error("CBasicKeyStore::AddCScript(): redeemScripts > %i bytes are invalid", MAX_SCRIPT_ELEMENT_SIZE);
38
39     LOCK(cs_KeyStore);
40     mapScripts[CScriptID(redeemScript)] = redeemScript;
41     return true;
42 }
43
44 bool CBasicKeyStore::HaveCScript(const CScriptID& hash) const
45 {
46     LOCK(cs_KeyStore);
47     return mapScripts.count(hash) > 0;
48 }
49
50 bool CBasicKeyStore::GetCScript(const CScriptID &hash, CScript& redeemScriptOut) const
51 {
52     LOCK(cs_KeyStore);
53     ScriptMap::const_iterator mi = mapScripts.find(hash);
54     if (mi != mapScripts.end())
55     {
56         redeemScriptOut = (*mi).second;
57         return true;
58     }
59     return false;
60 }
61
62 bool CBasicKeyStore::AddWatchOnly(const CScript &dest)
63 {
64     LOCK(cs_KeyStore);
65     setWatchOnly.insert(dest);
66     return true;
67 }
68
69 bool CBasicKeyStore::RemoveWatchOnly(const CScript &dest)
70 {
71     LOCK(cs_KeyStore);
72     setWatchOnly.erase(dest);
73     return true;
74 }
75
76 bool CBasicKeyStore::HaveWatchOnly(const CScript &dest) const
77 {
78     LOCK(cs_KeyStore);
79     return setWatchOnly.count(dest) > 0;
80 }
81
82 bool CBasicKeyStore::HaveWatchOnly() const
83 {
84     LOCK(cs_KeyStore);
85     return (!setWatchOnly.empty());
86 }
This page took 0.026647 seconds and 4 git commands to generate.