Bitcoin ABC  0.26.3
P2P Digital Currency
Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | List of all members
FillableSigningProvider Class Reference

Fillable signing provider that keeps keys in an address->secret map. More...

#include <signingprovider.h>

Inheritance diagram for FillableSigningProvider:
[legend]
Collaboration diagram for FillableSigningProvider:
[legend]

Public Member Functions

virtual bool AddKeyPubKey (const CKey &key, const CPubKey &pubkey)
 
virtual bool AddKey (const CKey &key)
 
virtual bool GetPubKey (const CKeyID &address, CPubKey &vchPubKeyOut) const override
 
virtual bool HaveKey (const CKeyID &address) const override
 
virtual std::set< CKeyIDGetKeys () const
 
virtual bool GetKey (const CKeyID &address, CKey &keyOut) const override
 
virtual bool AddCScript (const CScript &redeemScript)
 
virtual bool HaveCScript (const CScriptID &hash) const override
 
virtual std::set< CScriptIDGetCScripts () const
 
virtual bool GetCScript (const CScriptID &hash, CScript &redeemScriptOut) const override
 
- Public Member Functions inherited from SigningProvider
virtual ~SigningProvider ()
 
virtual bool GetKeyOrigin (const CKeyID &keyid, KeyOriginInfo &info) const
 

Public Attributes

RecursiveMutex cs_KeyStore
 

Protected Types

using KeyMap = std::map< CKeyID, CKey >
 
using ScriptMap = std::map< CScriptID, CScript >
 

Protected Member Functions

KeyMap mapKeys GUARDED_BY (cs_KeyStore)
 Map of key id to unencrypted private keys known by the signing provider. More...
 
ScriptMap mapScripts GUARDED_BY (cs_KeyStore)
 (This comment has been elided for clarity since most of it detailed Core SegWit implementation details, see Core commit 005f8a9) More...
 

Detailed Description

Fillable signing provider that keeps keys in an address->secret map.

Definition at line 76 of file signingprovider.h.

Member Typedef Documentation

◆ KeyMap

using FillableSigningProvider::KeyMap = std::map<CKeyID, CKey>
protected

Definition at line 78 of file signingprovider.h.

◆ ScriptMap

Definition at line 79 of file signingprovider.h.

Member Function Documentation

◆ AddCScript()

bool FillableSigningProvider::AddCScript ( const CScript redeemScript)
virtual

Reimplemented in LegacyScriptPubKeyMan.

Definition at line 127 of file signingprovider.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddKey()

virtual bool FillableSigningProvider::AddKey ( const CKey key)
inlinevirtual

Definition at line 110 of file signingprovider.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddKeyPubKey()

bool FillableSigningProvider::AddKeyPubKey ( const CKey key,
const CPubKey pubkey 
)
virtual

Reimplemented in LegacyScriptPubKeyMan.

Definition at line 95 of file signingprovider.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCScript()

bool FillableSigningProvider::GetCScript ( const CScriptID hash,
CScript redeemScriptOut 
) const
overridevirtual

Reimplemented from SigningProvider.

Definition at line 154 of file signingprovider.cpp.

Here is the caller graph for this function:

◆ GetCScripts()

std::set< CScriptID > FillableSigningProvider::GetCScripts ( ) const
virtual

Definition at line 145 of file signingprovider.cpp.

Here is the caller graph for this function:

◆ GetKey()

bool FillableSigningProvider::GetKey ( const CKeyID address,
CKey keyOut 
) const
overridevirtual

Reimplemented from SigningProvider.

Reimplemented in LegacyScriptPubKeyMan.

Definition at line 116 of file signingprovider.cpp.

Here is the caller graph for this function:

◆ GetKeys()

std::set< CKeyID > FillableSigningProvider::GetKeys ( ) const
virtual

Reimplemented in LegacyScriptPubKeyMan.

Definition at line 107 of file signingprovider.cpp.

Here is the caller graph for this function:

◆ GetPubKey()

bool FillableSigningProvider::GetPubKey ( const CKeyID address,
CPubKey vchPubKeyOut 
) const
overridevirtual

Reimplemented from SigningProvider.

Reimplemented in LegacyScriptPubKeyMan.

Definition at line 85 of file signingprovider.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GUARDED_BY() [1/2]

KeyMap mapKeys FillableSigningProvider::GUARDED_BY ( cs_KeyStore  )
protected

Map of key id to unencrypted private keys known by the signing provider.

Map may be empty if the provider has another source of keys, like an encrypted store.

◆ GUARDED_BY() [2/2]

ScriptMap mapScripts FillableSigningProvider::GUARDED_BY ( cs_KeyStore  )
protected

(This comment has been elided for clarity since most of it detailed Core SegWit implementation details, see Core commit 005f8a9)

The FillableSigningProvider::mapScripts script map should not be confused with LegacyScriptPubKeyMan::setWatchOnly script set. The two collections can hold the same scripts, but they serve different purposes. The setWatchOnly script set is intended to expand the set of outputs the wallet considers payments. Every output with a script it contains is considered to belong to the wallet, regardless of whether the script is solvable or signable. By contrast, the scripts in mapScripts are only used for solving, and to restrict which outputs are considered payments by the wallet. An output with a script in mapScripts, unlike setWatchOnly, is not automatically considered to belong to the wallet if it can't be solved and signed for.

◆ HaveCScript()

bool FillableSigningProvider::HaveCScript ( const CScriptID hash) const
overridevirtual

Reimplemented from SigningProvider.

Definition at line 140 of file signingprovider.cpp.

Here is the caller graph for this function:

◆ HaveKey()

bool FillableSigningProvider::HaveKey ( const CKeyID address) const
overridevirtual

Reimplemented from SigningProvider.

Reimplemented in LegacyScriptPubKeyMan.

Definition at line 102 of file signingprovider.cpp.

Here is the caller graph for this function:

Member Data Documentation

◆ cs_KeyStore

RecursiveMutex FillableSigningProvider::cs_KeyStore
mutable

Definition at line 107 of file signingprovider.h.


The documentation for this class was generated from the following files: