Bitcoin Core 28.99.0
P2P Digital Currency
|
#include <external_signer_scriptpubkeyman.h>
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. More... | |
util::Result< void > | DisplayAddress (const CTxDestination &dest, const ExternalSigner &signer) const |
Display address on the device and verify that the returned value matches. More... | |
std::optional< common::PSBTError > | FillPSBT (PartiallySignedTransaction &psbt, const PrecomputedTransactionData &txdata, int sighash_type=1, 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... | |
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< CTxDestination > | GetNewDestination (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< CTxDestination > | GetReservedDestination (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< WalletDestination > | MarkUnusedAddresses (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< CKey > | GetKey (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< CKeyMetadata > | GetMetadata (const CTxDestination &dest) const override |
bool | CanGetAddresses (bool internal=false) const override |
std::unique_ptr< SigningProvider > | GetSolvingProvider (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::PSBTError > | 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 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, SaltedSipHasher > | GetScriptPubKeys () const override |
Returns a set of all the scriptPubKeys that this ScriptPubKeyMan watches. More... | |
std::unordered_set< CScript, SaltedSipHasher > | GetScriptPubKeys (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< CTxDestination > | GetNewDestination (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< CTxDestination > | GetReservedDestination (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< WalletDestination > | MarkUnusedAddresses (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< CKeyMetadata > | GetMetadata (const CTxDestination &dest) const |
virtual std::unique_ptr< SigningProvider > | GetSolvingProvider (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::PSBTError > | 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 |
Adds script and derivation path information to a PSBT, and optionally signs it. More... | |
virtual uint256 | GetID () const |
virtual std::unordered_set< CScript, SaltedSipHasher > | GetScriptPubKeys () 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... | |
Static Public Member Functions | |
static ExternalSigner | GetExternalSigner () |
Additional Inherited Members | |
Public Attributes inherited from wallet::DescriptorScriptPubKeyMan | |
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 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. More... | |
Protected Attributes inherited from wallet::ScriptPubKeyMan | |
WalletStorage & | m_storage |
Definition at line 15 of file external_signer_scriptpubkeyman.h.
|
inline |
Definition at line 18 of file external_signer_scriptpubkeyman.h.
|
inline |
Definition at line 21 of file external_signer_scriptpubkeyman.h.
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.
Definition at line 59 of file external_signer_scriptpubkeyman.cpp.
|
overridevirtual |
Adds script and derivation path information to a PSBT, and optionally signs it.
Reimplemented from wallet::ScriptPubKeyMan.
Definition at line 82 of file external_signer_scriptpubkeyman.cpp.
|
static |
Definition at line 48 of file external_signer_scriptpubkeyman.cpp.
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.