Bitcoin Core 28.99.0
P2P Digital Currency
Public Member Functions | Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
wallet::DescriptorScriptPubKeyMan Class Reference

#include <scriptpubkeyman.h>

Inheritance diagram for wallet::DescriptorScriptPubKeyMan:
[legend]
Collaboration diagram for wallet::DescriptorScriptPubKeyMan:
[legend]

Public Member Functions

 DescriptorScriptPubKeyMan (WalletStorage &storage, WalletDescriptor &descriptor, int64_t keypool_size)
 
 DescriptorScriptPubKeyMan (WalletStorage &storage, int64_t keypool_size)
 
util::Result< CTxDestinationGetNewDestination (const OutputType type) override
 
isminetype IsMine (const CScript &script) const override
 
bool CheckDecryptionKey (const CKeyingMaterial &master_key) override
 Check that the given decryption key is valid for this ScriptPubKeyMan, i.e. it decrypts all of the keys handled by it. More...
 
bool Encrypt (const CKeyingMaterial &master_key, WalletBatch *batch) override
 
util::Result< CTxDestinationGetReservedDestination (const OutputType type, bool internal, int64_t &index, CKeyPool &keypool) override
 
void ReturnDestination (int64_t index, bool internal, const CTxDestination &addr) override
 
bool TopUp (unsigned int size=0) override
 Fills internal address pool. More...
 
std::vector< WalletDestinationMarkUnusedAddresses (const CScript &script) override
 Mark unused addresses as being used Affects all keys up to and including the one determined by provided script. More...
 
bool IsHDEnabled () const override
 
bool SetupDescriptorGeneration (WalletBatch &batch, const CExtKey &master_key, OutputType addr_type, bool internal)
 Setup descriptors based on the given CExtkey. More...
 
bool HavePrivateKeys () const override
 
bool HasPrivKey (const CKeyID &keyid) const EXCLUSIVE_LOCKS_REQUIRED(cs_desc_man)
 
std::optional< CKeyGetKey (const CKeyID &keyid) const EXCLUSIVE_LOCKS_REQUIRED(cs_desc_man)
 Retrieve the particular key if it is available. Returns nullopt if the key is not in the wallet, or if the wallet is locked. More...
 
std::optional< int64_t > GetOldestKeyPoolTime () const override
 
unsigned int GetKeyPoolSize () const override
 
int64_t GetTimeFirstKey () const override
 
std::unique_ptr< CKeyMetadataGetMetadata (const CTxDestination &dest) const override
 
bool CanGetAddresses (bool internal=false) const override
 
std::unique_ptr< SigningProviderGetSolvingProvider (const CScript &script) const override
 
bool CanProvide (const CScript &script, SignatureData &sigdata) override
 Whether this ScriptPubKeyMan can provide a SigningProvider (via GetSolvingProvider) that, combined with sigdata, can produce solving data. More...
 
bool SignTransaction (CMutableTransaction &tx, const std::map< COutPoint, Coin > &coins, int sighash, std::map< int, bilingual_str > &input_errors) const override
 Creates new signatures and adds them to the transaction. More...
 
SigningResult SignMessage (const std::string &message, const PKHash &pkhash, std::string &str_sig) const override
 Sign a message with the given script. More...
 
std::optional< common::PSBTErrorFillPSBT (PartiallySignedTransaction &psbt, const PrecomputedTransactionData &txdata, int sighash_type=SIGHASH_DEFAULT, bool sign=true, bool bip32derivs=false, int *n_signed=nullptr, bool finalize=true) const override
 Adds script and derivation path information to a PSBT, and optionally signs it. More...
 
uint256 GetID () const override
 
void SetCache (const DescriptorCache &cache)
 
bool AddKey (const CKeyID &key_id, const CKey &key)
 
bool AddCryptedKey (const CKeyID &key_id, const CPubKey &pubkey, const std::vector< unsigned char > &crypted_key)
 
bool HasWalletDescriptor (const WalletDescriptor &desc) const
 
void UpdateWalletDescriptor (WalletDescriptor &descriptor)
 
bool CanUpdateToWalletDescriptor (const WalletDescriptor &descriptor, std::string &error)
 
void AddDescriptorKey (const CKey &key, const CPubKey &pubkey)
 
void WriteDescriptor ()
 
WalletDescriptor GetWalletDescriptor () const EXCLUSIVE_LOCKS_REQUIRED(cs_desc_man)
 
std::unordered_set< CScript, SaltedSipHasherGetScriptPubKeys () const override
 Returns a set of all the scriptPubKeys that this ScriptPubKeyMan watches. More...
 
std::unordered_set< CScript, SaltedSipHasherGetScriptPubKeys (int32_t minimum_index) const
 
int32_t GetEndRange () const
 
bool GetDescriptorString (std::string &out, const bool priv) const
 
void UpgradeDescriptorCache ()
 
- Public Member Functions inherited from wallet::ScriptPubKeyMan
 ScriptPubKeyMan (WalletStorage &storage)
 
virtual ~ScriptPubKeyMan ()=default
 
virtual util::Result< CTxDestinationGetNewDestination (const OutputType type)
 
virtual isminetype IsMine (const CScript &script) const
 
virtual bool CheckDecryptionKey (const CKeyingMaterial &master_key)
 Check that the given decryption key is valid for this ScriptPubKeyMan, i.e. it decrypts all of the keys handled by it. More...
 
virtual bool Encrypt (const CKeyingMaterial &master_key, WalletBatch *batch)
 
virtual util::Result< CTxDestinationGetReservedDestination (const OutputType type, bool internal, int64_t &index, CKeyPool &keypool)
 
virtual void KeepDestination (int64_t index, const OutputType &type)
 
virtual void ReturnDestination (int64_t index, bool internal, const CTxDestination &addr)
 
virtual bool TopUp (unsigned int size=0)
 Fills internal address pool. More...
 
virtual std::vector< WalletDestinationMarkUnusedAddresses (const CScript &script)
 Mark unused addresses as being used Affects all keys up to and including the one determined by provided script. More...
 
virtual bool SetupGeneration (bool force=false)
 Sets up the key generation stuff, i.e. More...
 
virtual bool IsHDEnabled () const
 
virtual bool CanGetAddresses (bool internal=false) const
 
virtual bool Upgrade (int prev_version, int new_version, bilingual_str &error)
 Upgrades the wallet to the specified version. More...
 
virtual bool HavePrivateKeys () const
 
virtual void RewriteDB ()
 The action to do when the DB needs rewrite. More...
 
virtual std::optional< int64_t > GetOldestKeyPoolTime () const
 
virtual unsigned int GetKeyPoolSize () const
 
virtual int64_t GetTimeFirstKey () const
 
virtual std::unique_ptr< CKeyMetadataGetMetadata (const CTxDestination &dest) const
 
virtual std::unique_ptr< SigningProviderGetSolvingProvider (const CScript &script) const
 
virtual bool CanProvide (const CScript &script, SignatureData &sigdata)
 Whether this ScriptPubKeyMan can provide a SigningProvider (via GetSolvingProvider) that, combined with sigdata, can produce solving data. More...
 
virtual bool SignTransaction (CMutableTransaction &tx, const std::map< COutPoint, Coin > &coins, int sighash, std::map< int, bilingual_str > &input_errors) const
 Creates new signatures and adds them to the transaction. More...
 
virtual SigningResult SignMessage (const std::string &message, const PKHash &pkhash, std::string &str_sig) const
 Sign a message with the given script. More...
 
virtual std::optional< common::PSBTErrorFillPSBT (PartiallySignedTransaction &psbt, const PrecomputedTransactionData &txdata, int sighash_type=SIGHASH_DEFAULT, bool sign=true, bool bip32derivs=false, int *n_signed=nullptr, bool finalize=true) const
 Adds script and derivation path information to a PSBT, and optionally signs it. More...
 
virtual uint256 GetID () const
 
virtual std::unordered_set< CScript, SaltedSipHasherGetScriptPubKeys () const
 Returns a set of all the scriptPubKeys that this ScriptPubKeyMan watches. More...
 
template<typename... Params>
void WalletLogPrintf (util::ConstevalFormatString< sizeof...(Params)> wallet_fmt, const Params &... params) const
 Prepends the wallet name in logging output to ease debugging in multi-wallet use cases. More...
 

Public Attributes

RecursiveMutex cs_desc_man
 
- Public Attributes inherited from wallet::ScriptPubKeyMan
boost::signals2::signal< void(bool fHaveWatchOnly)> NotifyWatchonlyChanged
 Watch-only address added. More...
 
boost::signals2::signal< void()> NotifyCanGetAddressesChanged
 Keypool has new keys. More...
 
boost::signals2::signal< void(const ScriptPubKeyMan *spkm, int64_t new_birth_time)> NotifyFirstKeyTimeChanged
 Birth time changed. More...
 

Protected Member Functions

WalletDescriptor m_wallet_descriptor GUARDED_BY (cs_desc_man)
 
bool TopUpWithDB (WalletBatch &batch, unsigned int size=0)
 Same as 'TopUp' but designed for use within a batch transaction context. More...
 

Private Types

using ScriptPubKeyMap = std::map< CScript, int32_t >
 
using PubKeyMap = std::map< CPubKey, int32_t >
 
using CryptedKeyMap = std::map< CKeyID, std::pair< CPubKey, std::vector< unsigned char > > >
 
using KeyMap = std::map< CKeyID, CKey >
 

Private Member Functions

ScriptPubKeyMap m_map_script_pub_keys GUARDED_BY (cs_desc_man)
 
PubKeyMap m_map_pubkeys GUARDED_BY (cs_desc_man)
 
KeyMap m_map_keys GUARDED_BY (cs_desc_man)
 
CryptedKeyMap m_map_crypted_keys GUARDED_BY (cs_desc_man)
 
int64_t m_keypool_size GUARDED_BY (cs_desc_man)
 Number of pre-generated keys/scripts (part of the look-ahead process, used to detect payments) More...
 
bool AddDescriptorKeyWithDB (WalletBatch &batch, const CKey &key, const CPubKey &pubkey) EXCLUSIVE_LOCKS_REQUIRED(cs_desc_man)
 
KeyMap GetKeys () const EXCLUSIVE_LOCKS_REQUIRED(cs_desc_man)
 
std::unique_ptr< FlatSigningProviderGetSigningProvider (const CScript &script, bool include_private=false) const
 
std::unique_ptr< FlatSigningProviderGetSigningProvider (const CPubKey &pubkey) const
 
std::unique_ptr< FlatSigningProviderGetSigningProvider (int32_t index, bool include_private=false) const EXCLUSIVE_LOCKS_REQUIRED(cs_desc_man)
 

Private Attributes

int32_t m_max_cached_index = -1
 
bool m_decryption_thoroughly_checked = false
 keeps track of whether Unlock has run a thorough check before More...
 
std::map< int32_t, FlatSigningProviderm_map_signing_providers
 

Friends

class LegacyDataSPKM
 

Additional Inherited Members

- Protected Attributes inherited from wallet::ScriptPubKeyMan
WalletStoragem_storage
 

Detailed Description

Definition at line 584 of file scriptpubkeyman.h.

Member Typedef Documentation

◆ CryptedKeyMap

using wallet::DescriptorScriptPubKeyMan::CryptedKeyMap = std::map<CKeyID, std::pair<CPubKey, std::vector<unsigned char> >>
private

Definition at line 590 of file scriptpubkeyman.h.

◆ KeyMap

Definition at line 591 of file scriptpubkeyman.h.

◆ PubKeyMap

using wallet::DescriptorScriptPubKeyMan::PubKeyMap = std::map<CPubKey, int32_t>
private

Definition at line 589 of file scriptpubkeyman.h.

◆ ScriptPubKeyMap

using wallet::DescriptorScriptPubKeyMan::ScriptPubKeyMap = std::map<CScript, int32_t>
private

Definition at line 588 of file scriptpubkeyman.h.

Constructor & Destructor Documentation

◆ DescriptorScriptPubKeyMan() [1/2]

wallet::DescriptorScriptPubKeyMan::DescriptorScriptPubKeyMan ( WalletStorage storage,
WalletDescriptor descriptor,
int64_t  keypool_size 
)
inline

Definition at line 626 of file scriptpubkeyman.h.

◆ DescriptorScriptPubKeyMan() [2/2]

wallet::DescriptorScriptPubKeyMan::DescriptorScriptPubKeyMan ( WalletStorage storage,
int64_t  keypool_size 
)
inline

Definition at line 631 of file scriptpubkeyman.h.

Member Function Documentation

◆ AddCryptedKey()

bool wallet::DescriptorScriptPubKeyMan::AddCryptedKey ( const CKeyID key_id,
const CPubKey pubkey,
const std::vector< unsigned char > &  crypted_key 
)

Definition at line 2695 of file scriptpubkeyman.cpp.

◆ AddDescriptorKey()

void wallet::DescriptorScriptPubKeyMan::AddDescriptorKey ( const CKey key,
const CPubKey pubkey 
)

Definition at line 2324 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ AddDescriptorKeyWithDB()

bool wallet::DescriptorScriptPubKeyMan::AddDescriptorKeyWithDB ( WalletBatch batch,
const CKey key,
const CPubKey pubkey 
)
private

Definition at line 2333 of file scriptpubkeyman.cpp.

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

◆ AddKey()

bool wallet::DescriptorScriptPubKeyMan::AddKey ( const CKeyID key_id,
const CKey key 
)

Definition at line 2688 of file scriptpubkeyman.cpp.

◆ CanGetAddresses()

bool wallet::DescriptorScriptPubKeyMan::CanGetAddresses ( bool  internal = false) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2398 of file scriptpubkeyman.cpp.

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

◆ CanProvide()

bool wallet::DescriptorScriptPubKeyMan::CanProvide ( const CScript script,
SignatureData sigdata 
)
overridevirtual

Whether this ScriptPubKeyMan can provide a SigningProvider (via GetSolvingProvider) that, combined with sigdata, can produce solving data.

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2495 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ CanUpdateToWalletDescriptor()

bool wallet::DescriptorScriptPubKeyMan::CanUpdateToWalletDescriptor ( const WalletDescriptor descriptor,
std::string &  error 
)

Definition at line 2810 of file scriptpubkeyman.cpp.

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

◆ CheckDecryptionKey()

bool wallet::DescriptorScriptPubKeyMan::CheckDecryptionKey ( const CKeyingMaterial master_key)
overridevirtual

Check that the given decryption key is valid for this ScriptPubKeyMan, i.e. it decrypts all of the keys handled by it.

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2099 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ Encrypt()

bool wallet::DescriptorScriptPubKeyMan::Encrypt ( const CKeyingMaterial master_key,
WalletBatch batch 
)
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2131 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ FillPSBT()

std::optional< PSBTError > wallet::DescriptorScriptPubKeyMan::FillPSBT ( PartiallySignedTransaction psbt,
const PrecomputedTransactionData txdata,
int  sighash_type = SIGHASH_DEFAULT,
bool  sign = true,
bool  bip32derivs = false,
int *  n_signed = nullptr,
bool  finalize = true 
) const
overridevirtual

Adds script and derivation path information to a PSBT, and optionally signs it.

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2532 of file scriptpubkeyman.cpp.

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

◆ GetDescriptorString()

bool wallet::DescriptorScriptPubKeyMan::GetDescriptorString ( std::string &  out,
const bool  priv 
) const

Definition at line 2748 of file scriptpubkeyman.cpp.

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

◆ GetEndRange()

int32_t wallet::DescriptorScriptPubKeyMan::GetEndRange ( ) const

Definition at line 2743 of file scriptpubkeyman.cpp.

◆ GetID()

uint256 wallet::DescriptorScriptPubKeyMan::GetID ( ) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2648 of file scriptpubkeyman.cpp.

Here is the caller graph for this function:

◆ GetKey()

std::optional< CKey > wallet::DescriptorScriptPubKeyMan::GetKey ( const CKeyID keyid) const

Retrieve the particular key if it is available. Returns nullopt if the key is not in the wallet, or if the wallet is locked.

Definition at line 2198 of file scriptpubkeyman.cpp.

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

◆ GetKeyPoolSize()

unsigned int wallet::DescriptorScriptPubKeyMan::GetKeyPoolSize ( ) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2421 of file scriptpubkeyman.cpp.

◆ GetKeys()

std::map< CKeyID, CKey > wallet::DescriptorScriptPubKeyMan::GetKeys ( ) const
private

Definition at line 2173 of file scriptpubkeyman.cpp.

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

◆ GetMetadata()

std::unique_ptr< CKeyMetadata > wallet::DescriptorScriptPubKeyMan::GetMetadata ( const CTxDestination dest) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2630 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ GetNewDestination()

util::Result< CTxDestination > wallet::DescriptorScriptPubKeyMan::GetNewDestination ( const OutputType  type)
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2051 of file scriptpubkeyman.cpp.

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

◆ GetOldestKeyPoolTime()

std::optional< int64_t > wallet::DescriptorScriptPubKeyMan::GetOldestKeyPoolTime ( ) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2414 of file scriptpubkeyman.cpp.

◆ GetReservedDestination()

util::Result< CTxDestination > wallet::DescriptorScriptPubKeyMan::GetReservedDestination ( const OutputType  type,
bool  internal,
int64_t &  index,
CKeyPool keypool 
)
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2154 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ GetScriptPubKeys() [1/2]

std::unordered_set< CScript, SaltedSipHasher > wallet::DescriptorScriptPubKeyMan::GetScriptPubKeys ( ) const
overridevirtual

Returns a set of all the scriptPubKeys that this ScriptPubKeyMan watches.

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2726 of file scriptpubkeyman.cpp.

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

◆ GetScriptPubKeys() [2/2]

std::unordered_set< CScript, SaltedSipHasher > wallet::DescriptorScriptPubKeyMan::GetScriptPubKeys ( int32_t  minimum_index) const

Definition at line 2731 of file scriptpubkeyman.cpp.

◆ GetSigningProvider() [1/3]

std::unique_ptr< FlatSigningProvider > wallet::DescriptorScriptPubKeyMan::GetSigningProvider ( const CPubKey pubkey) const
private

Definition at line 2447 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ GetSigningProvider() [2/3]

std::unique_ptr< FlatSigningProvider > wallet::DescriptorScriptPubKeyMan::GetSigningProvider ( const CScript script,
bool  include_private = false 
) const
private

Definition at line 2433 of file scriptpubkeyman.cpp.

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

◆ GetSigningProvider() [3/3]

std::unique_ptr< FlatSigningProvider > wallet::DescriptorScriptPubKeyMan::GetSigningProvider ( int32_t  index,
bool  include_private = false 
) const
private

Definition at line 2462 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ GetSolvingProvider()

std::unique_ptr< SigningProvider > wallet::DescriptorScriptPubKeyMan::GetSolvingProvider ( const CScript script) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2490 of file scriptpubkeyman.cpp.

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

◆ GetTimeFirstKey()

int64_t wallet::DescriptorScriptPubKeyMan::GetTimeFirstKey ( ) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2427 of file scriptpubkeyman.cpp.

◆ GetWalletDescriptor()

WalletDescriptor wallet::DescriptorScriptPubKeyMan::GetWalletDescriptor ( ) const

Definition at line 2721 of file scriptpubkeyman.cpp.

Here is the caller graph for this function:

◆ GUARDED_BY() [1/6]

ScriptPubKeyMap m_map_script_pub_keys wallet::DescriptorScriptPubKeyMan::GUARDED_BY ( cs_desc_man  )
private

◆ GUARDED_BY() [2/6]

PubKeyMap m_map_pubkeys wallet::DescriptorScriptPubKeyMan::GUARDED_BY ( cs_desc_man  )
private

◆ GUARDED_BY() [3/6]

KeyMap m_map_keys wallet::DescriptorScriptPubKeyMan::GUARDED_BY ( cs_desc_man  )
private

◆ GUARDED_BY() [4/6]

CryptedKeyMap m_map_crypted_keys wallet::DescriptorScriptPubKeyMan::GUARDED_BY ( cs_desc_man  )
private

◆ GUARDED_BY() [5/6]

int64_t m_keypool_size wallet::DescriptorScriptPubKeyMan::GUARDED_BY ( cs_desc_man  )
inlineprivate

Number of pre-generated keys/scripts (part of the look-ahead process, used to detect payments)

Definition at line 604 of file scriptpubkeyman.h.

◆ GUARDED_BY() [6/6]

WalletDescriptor m_wallet_descriptor wallet::DescriptorScriptPubKeyMan::GUARDED_BY ( cs_desc_man  )
protected

◆ HasPrivKey()

bool wallet::DescriptorScriptPubKeyMan::HasPrivKey ( const CKeyID keyid) const

Definition at line 2192 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ HasWalletDescriptor()

bool wallet::DescriptorScriptPubKeyMan::HasWalletDescriptor ( const WalletDescriptor desc) const

Definition at line 2706 of file scriptpubkeyman.cpp.

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

◆ HavePrivateKeys()

bool wallet::DescriptorScriptPubKeyMan::HavePrivateKeys ( ) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2408 of file scriptpubkeyman.cpp.

Here is the caller graph for this function:

◆ IsHDEnabled()

bool wallet::DescriptorScriptPubKeyMan::IsHDEnabled ( ) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2392 of file scriptpubkeyman.cpp.

◆ IsMine()

isminetype wallet::DescriptorScriptPubKeyMan::IsMine ( const CScript script) const
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2090 of file scriptpubkeyman.cpp.

Here is the caller graph for this function:

◆ MarkUnusedAddresses()

std::vector< WalletDestination > wallet::DescriptorScriptPubKeyMan::MarkUnusedAddresses ( const CScript script)
overridevirtual

Mark unused addresses as being used Affects all keys up to and including the one determined by provided script.

Parameters
scriptdetermines the last key to mark as used
Returns
All of the addresses affected

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2296 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ ReturnDestination()

void wallet::DescriptorScriptPubKeyMan::ReturnDestination ( int64_t  index,
bool  internal,
const CTxDestination addr 
)
overridevirtual

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2162 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ SetCache()

void wallet::DescriptorScriptPubKeyMan::SetCache ( const DescriptorCache cache)

Definition at line 2654 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ SetupDescriptorGeneration()

bool wallet::DescriptorScriptPubKeyMan::SetupDescriptorGeneration ( WalletBatch batch,
const CExtKey master_key,
OutputType  addr_type,
bool  internal 
)

Setup descriptors based on the given CExtkey.

Definition at line 2365 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ SignMessage()

SigningResult wallet::DescriptorScriptPubKeyMan::SignMessage ( const std::string &  message,
const PKHash pkhash,
std::string &  str_sig 
) const
overridevirtual

Sign a message with the given script.

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2514 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ SignTransaction()

bool wallet::DescriptorScriptPubKeyMan::SignTransaction ( CMutableTransaction tx,
const std::map< COutPoint, Coin > &  coins,
int  sighash,
std::map< int, bilingual_str > &  input_errors 
) const
overridevirtual

Creates new signatures and adds them to the transaction.

Returns whether all inputs were signed

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2500 of file scriptpubkeyman.cpp.

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

◆ TopUp()

bool wallet::DescriptorScriptPubKeyMan::TopUp ( unsigned int  size = 0)
overridevirtual

Fills internal address pool.

Use within ScriptPubKeyMan implementations should be used sparingly and only when something from the address pool is removed, excluding GetNewDestination and GetReservedDestination. External wallet code is primarily responsible for topping up prior to fetching new addresses

Reimplemented from wallet::ScriptPubKeyMan.

Definition at line 2222 of file scriptpubkeyman.cpp.

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

◆ TopUpWithDB()

bool wallet::DescriptorScriptPubKeyMan::TopUpWithDB ( WalletBatch batch,
unsigned int  size = 0 
)
protected

Same as 'TopUp' but designed for use within a batch transaction context.

Definition at line 2231 of file scriptpubkeyman.cpp.

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

◆ UpdateWalletDescriptor()

void wallet::DescriptorScriptPubKeyMan::UpdateWalletDescriptor ( WalletDescriptor descriptor)

Definition at line 2794 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ UpgradeDescriptorCache()

void wallet::DescriptorScriptPubKeyMan::UpgradeDescriptorCache ( )

Definition at line 2765 of file scriptpubkeyman.cpp.

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

◆ WriteDescriptor()

void wallet::DescriptorScriptPubKeyMan::WriteDescriptor ( )

Definition at line 2712 of file scriptpubkeyman.cpp.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ LegacyDataSPKM

friend class LegacyDataSPKM
friend

Definition at line 586 of file scriptpubkeyman.h.

Member Data Documentation

◆ cs_desc_man

RecursiveMutex wallet::DescriptorScriptPubKeyMan::cs_desc_man
mutable

Definition at line 636 of file scriptpubkeyman.h.

◆ m_decryption_thoroughly_checked

bool wallet::DescriptorScriptPubKeyMan::m_decryption_thoroughly_checked = false
private

keeps track of whether Unlock has run a thorough check before

Definition at line 601 of file scriptpubkeyman.h.

◆ m_map_signing_providers

std::map<int32_t, FlatSigningProvider> wallet::DescriptorScriptPubKeyMan::m_map_signing_providers
mutableprivate

Definition at line 611 of file scriptpubkeyman.h.

◆ m_max_cached_index

int32_t wallet::DescriptorScriptPubKeyMan::m_max_cached_index = -1
private

Definition at line 595 of file scriptpubkeyman.h.


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