Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
wallet::ExternalSignerScriptPubKeyMan Class Reference

#include <external_signer_scriptpubkeyman.h>

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

Public Member Functions

 ExternalSignerScriptPubKeyMan (WalletStorage &storage, WalletDescriptor &descriptor, int64_t keypool_size)
 ExternalSignerScriptPubKeyMan (WalletStorage &storage, int64_t keypool_size)
bool SetupDescriptor (WalletBatch &batch, std::unique_ptr< Descriptor >desc)
 Provide a descriptor at setup time Returns false if already setup or setup fails, true if setup is successful.
util::Result< void > DisplayAddress (const CTxDestination &dest, const ExternalSigner &signer) const
 Display address on the device and verify that the returned value matches.
std::optional< common::PSBTErrorFillPSBT (PartiallySignedTransaction &psbt, const PrecomputedTransactionData &txdata, std::optional< int > sighash_type=std::nullopt, 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.
Public Member Functions inherited from wallet::DescriptorScriptPubKeyMan
 DescriptorScriptPubKeyMan (WalletStorage &storage, WalletDescriptor &descriptor, int64_t keypool_size)
 DescriptorScriptPubKeyMan (WalletStorage &storage, int64_t keypool_size)
util::Result< CTxDestinationGetNewDestination (OutputType type) override
bool 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.
bool Encrypt (const CKeyingMaterial &master_key, WalletBatch *batch) override
util::Result< CTxDestinationGetReservedDestination (OutputType type, bool internal, int64_t &index) override
void ReturnDestination (int64_t index, bool internal, const CTxDestination &addr) override
bool TopUp (unsigned int size=0) override
 Fills internal address pool.
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.
bool IsHDEnabled () const override
bool SetupDescriptorGeneration (WalletBatch &batch, const CExtKey &master_key, OutputType addr_type, bool internal)
 Setup descriptors based on the given CExtkey.
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.
bool HaveCryptedKeys () 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.
std::unique_ptr< FlatSigningProviderGetSigningProvider (const CPubKey &pubkey) const
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.
SigningResult SignMessage (const std::string &message, const PKHash &pkhash, std::string &str_sig) const override
 Sign a message with the given script.
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
util::Result< 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.
std::unordered_set< CScript, SaltedSipHasherGetScriptPubKeys (int32_t minimum_index) const
int32_t GetEndRange () const
bool GetDescriptorString (std::string &out, bool priv) const
void UpgradeDescriptorCache ()
Public Member Functions inherited from wallet::ScriptPubKeyMan
 ScriptPubKeyMan (WalletStorage &storage)
virtual ~ScriptPubKeyMan ()=default
virtual void KeepDestination (int64_t index, const OutputType &type)
virtual void RewriteDB ()
 The action to do when the DB needs rewrite.
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.

Static Public Member Functions

static util::Result< ExternalSignerGetExternalSigner ()

Additional Inherited Members

Public Attributes inherited from wallet::DescriptorScriptPubKeyMan
RecursiveMutex cs_desc_man
Public Attributes inherited from wallet::ScriptPubKeyMan
boost::signals2::signal< void()> NotifyCanGetAddressesChanged
 Keypool has new keys.
boost::signals2::signal< void(const ScriptPubKeyMan *spkm, int64_t new_birth_time)> NotifyFirstKeyTimeChanged
 Birth time changed.
Protected Member Functions inherited from wallet::DescriptorScriptPubKeyMan
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.
Protected Attributes inherited from wallet::ScriptPubKeyMan
WalletStoragem_storage

Detailed Description

Definition at line 16 of file external_signer_scriptpubkeyman.h.

Constructor & Destructor Documentation

◆ ExternalSignerScriptPubKeyMan() [1/2]

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

Definition at line 19 of file external_signer_scriptpubkeyman.h.

Here is the call graph for this function:

◆ ExternalSignerScriptPubKeyMan() [2/2]

wallet::ExternalSignerScriptPubKeyMan::ExternalSignerScriptPubKeyMan ( WalletStorage & storage,
int64_t keypool_size )
inline

Definition at line 22 of file external_signer_scriptpubkeyman.h.

Here is the call graph for this function:

Member Function Documentation

◆ DisplayAddress()

util::Result< void > wallet::ExternalSignerScriptPubKeyMan::DisplayAddress ( const CTxDestination & dest,
const ExternalSigner & signer ) const

Display address on the device and verify that the returned value matches.

Returns
nothing or an error message

Definition at line 59 of file external_signer_scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ FillPSBT()

std::optional< PSBTError > wallet::ExternalSignerScriptPubKeyMan::FillPSBT ( PartiallySignedTransaction & psbt,
const PrecomputedTransactionData & txdata,
std::optional< int > sighash_type = std::nullopt,
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::DescriptorScriptPubKeyMan.

Definition at line 82 of file external_signer_scriptpubkeyman.cpp.

Here is the call graph for this function:

◆ GetExternalSigner()

util::Result< ExternalSigner > wallet::ExternalSignerScriptPubKeyMan::GetExternalSigner ( )
static

Definition at line 48 of file external_signer_scriptpubkeyman.cpp.

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

◆ SetupDescriptor()

bool wallet::ExternalSignerScriptPubKeyMan::SetupDescriptor ( WalletBatch & batch,
std::unique_ptr< Descriptor > desc )

Provide a descriptor at setup time Returns false if already setup or setup fails, true if setup is successful.

Definition at line 24 of file external_signer_scriptpubkeyman.cpp.

Here is the call graph for this function:

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