22 if (!
GetKey(address, key)) {
23 WatchKeyMap::const_iterator it =
mapWatchKeys.find(address);
25 vchPubKeyOut = it->second;
43 if (redeemScript.
size() > MAX_SCRIPT_ELEMENT_SIZE)
44 return error(
"CBasicKeyStore::AddCScript() : redeemScripts > %i bytes are invalid", MAX_SCRIPT_ELEMENT_SIZE);
60 ScriptMap::const_iterator mi =
mapScripts.find(hash);
62 redeemScriptOut = (*mi).second;
73 std::vector<unsigned char> vch;
74 if (!dest.
GetOp(pc, opcode, vch) || vch.size() < 33 || vch.size() > 65)
89 if (ExtractPubKey(dest, pubKey))
99 if (ExtractPubKey(dest, pubKey))
121 result = (
mapKeys.count(address) > 0);
129 std::set<CKeyID> set_address;
130 for (
const auto& mi :
mapKeys) {
131 set_address.insert(mi.first);
139 KeyMap::const_iterator mi =
mapKeys.find(address);
152 auto extfvk = sk.
ToXFVK();
222 extfvkOut = mi->second;
259 setAddress.insert((*mi).first);
virtual bool HaveSaplingIncomingViewingKey(const libzcash::SaplingPaymentAddress &addr) const
virtual bool RemoveWatchOnly(const CScript &dest)
virtual bool AddWatchOnly(const CScript &dest)
Support for Watch-only addresses.
SaplingSpendingKeyMap mapSaplingSpendingKeys
virtual bool GetSaplingFullViewingKey(const libzcash::SaplingIncomingViewingKey &ivk, libzcash::SaplingExtendedFullViewingKey &extfvkOut) const
virtual bool HaveSaplingFullViewingKey(const libzcash::SaplingIncomingViewingKey &ivk) const
void GetSaplingPaymentAddresses(std::set< libzcash::SaplingPaymentAddress > &setAddress) const
virtual bool HaveCScript(const CScriptID &hash) const
virtual bool AddCScript(const CScript &redeemScript)
Support for BIP 0013 : see https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki.
bool GetKey(const CKeyID &address, CKey &keyOut) const
virtual bool AddSaplingIncomingViewingKey(const libzcash::SaplingIncomingViewingKey &ivk, const libzcash::SaplingPaymentAddress &addr)
Sapling incoming viewing keys.
bool HaveSaplingSpendingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk) const
SaplingIncomingViewingKeyMap mapSaplingIncomingViewingKeys
bool GetSaplingSpendingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk, libzcash::SaplingExtendedSpendingKey &skOut) const
virtual bool GetCScript(const CScriptID &hash, CScript &redeemScriptOut) const
virtual bool HaveWatchOnly() const
virtual bool GetSaplingIncomingViewingKey(const libzcash::SaplingPaymentAddress &addr, libzcash::SaplingIncomingViewingKey &ivkOut) const
virtual bool AddSaplingFullViewingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk)
Support for Sapling full viewing keys.
SaplingFullViewingKeyMap mapSaplingFullViewingKeys
WatchOnlySet setWatchOnly
bool AddSaplingSpendingKey(const libzcash::SaplingExtendedSpendingKey &sk)
Sapling.
std::set< CKeyID > GetKeys() const
bool AddKeyPubKey(const CKey &key, const CPubKey &pubkey)
Add a key to the store.
bool GetPubKey(const CKeyID &address, CPubKey &vchPubKeyOut) const
bool GetSaplingExtendedSpendingKey(const libzcash::SaplingPaymentAddress &addr, libzcash::SaplingExtendedSpendingKey &extskOut) const
bool HaveKey(const CKeyID &address) const
Check whether a key corresponding to a given address is present in the store.
An encapsulated private key.
CPubKey GetPubKey() const
Compute the public key from a private key.
A reference to a CKey: the Hash160 of its serialized public key.
virtual bool AddKey(const CKey &key)
virtual bool AddKeyPubKey(const CKey &key, const CPubKey &pubkey)=0
Add a key to the store.
RecursiveMutex cs_KeyStore
An encapsulated public key.
CKeyID GetID() const
Get the KeyID of this public key (hash of its serialization)
bool IsFullyValid() const
fully validate whether this is a valid public key (more expensive than IsValid())
Serialized script, used inside transaction inputs and outputs.
bool GetOp(iterator &pc, opcodetype &opcodeRet, std::vector< unsigned char > &vchRet)
A reference to a CScript: the Hash160 of its serialization (see script.h)
SaplingIncomingViewingKey in_viewing_key() const
opcodetype
Script opcodes.
libzcash::SaplingFullViewingKey fvk
libzcash::SaplingPaymentAddress DefaultAddress() const
SaplingExtendedFullViewingKey ToXFVK() const
#define WITH_LOCK(cs, code)
Run code while locking a mutex.
bool error(const char *fmt, const Args &... args)