7 #ifndef PIVX_KEYSTORE_H
8 #define PIVX_KEYSTORE_H
16 #include <boost/signals2/signal.hpp>
37 virtual std::set<CKeyID>
GetKeys()
const = 0;
80 typedef std::map<CKeyID, CKey>
KeyMap;
117 std::set<CKeyID>
GetKeys()
const;
155 typedef std::map<CKeyID, std::pair<CPubKey, std::vector<unsigned char> > >
CryptedKeyMap;
Basic key store, that keeps keys in an address->secret map.
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 HaveKey(const CExchangeKeyID &address) const
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.
A reference to a CKey: the Hash160 of its serialized public key, special case for exchange key.
An encapsulated private key.
A reference to a CKey: the Hash160 of its serialized public key.
A virtual base class for key stores.
virtual bool AddKey(const CKey &key)
virtual bool AddWatchOnly(const CScript &dest)=0
Support for Watch-only addresses.
virtual bool HaveSaplingFullViewingKey(const libzcash::SaplingIncomingViewingKey &ivk) const =0
virtual bool HaveWatchOnly(const CScript &dest) const =0
virtual bool GetPubKey(const CKeyID &address, CPubKey &vchPubKeyOut) const =0
virtual bool GetSaplingIncomingViewingKey(const libzcash::SaplingPaymentAddress &addr, libzcash::SaplingIncomingViewingKey &ivkOut) const =0
virtual bool AddKeyPubKey(const CKey &key, const CPubKey &pubkey)=0
Add a key to the store.
virtual void GetSaplingPaymentAddresses(std::set< libzcash::SaplingPaymentAddress > &setAddress) const =0
RecursiveMutex cs_KeyStore
virtual bool GetKey(const CKeyID &address, CKey &keyOut) const =0
virtual bool AddCScript(const CScript &redeemScript)=0
Support for BIP 0013 : see https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki.
virtual bool HaveSaplingSpendingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk) const =0
virtual bool AddSaplingSpendingKey(const libzcash::SaplingExtendedSpendingKey &sk)=0
Support for Sapling.
virtual bool HaveCScript(const CScriptID &hash) const =0
virtual bool GetSaplingSpendingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk, libzcash::SaplingExtendedSpendingKey &skOut) const =0
virtual bool HaveWatchOnly() const =0
virtual bool HaveKey(const CKeyID &address) const =0
Check whether a key corresponding to a given address is present in the store.
virtual bool AddSaplingFullViewingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk)=0
Support for Sapling full viewing keys.
virtual bool AddSaplingIncomingViewingKey(const libzcash::SaplingIncomingViewingKey &ivk, const libzcash::SaplingPaymentAddress &addr)=0
Sapling incoming viewing keys.
virtual bool RemoveWatchOnly(const CScript &dest)=0
virtual bool HaveSaplingIncomingViewingKey(const libzcash::SaplingPaymentAddress &addr) const =0
virtual std::set< CKeyID > GetKeys() const =0
virtual bool GetCScript(const CScriptID &hash, CScript &redeemScriptOut) const =0
virtual bool GetSaplingFullViewingKey(const libzcash::SaplingIncomingViewingKey &ivk, libzcash::SaplingExtendedFullViewingKey &extfvkOut) const =0
An encapsulated public key.
Serialized script, used inside transaction inputs and outputs.
A reference to a CScript: the Hash160 of its serialization (see script.h)
std::map< CKeyID, CPubKey > WatchKeyMap
std::map< CKeyID, CKey > KeyMap
std::set< CScript > WatchOnlySet
std::vector< unsigned char, secure_allocator< unsigned char > > CKeyingMaterial
std::map< libzcash::SaplingExtendedFullViewingKey, std::vector< unsigned char > > CryptedSaplingSpendingKeyMap
Sapling.
std::map< CKeyID, std::pair< CPubKey, std::vector< unsigned char > > > CryptedKeyMap
std::map< libzcash::SaplingPaymentAddress, libzcash::SaplingIncomingViewingKey > SaplingIncomingViewingKeyMap
std::map< CScriptID, CScript > ScriptMap
std::map< libzcash::SaplingIncomingViewingKey, libzcash::SaplingExtendedFullViewingKey > SaplingFullViewingKeyMap
std::map< libzcash::SaplingExtendedFullViewingKey, libzcash::SaplingExtendedSpendingKey > SaplingSpendingKeyMap