Introduce DescriptorScriptPubKeyMan as a dummy class

pull/764/head
Andrew Chow 5 years ago
parent 06620302c7
commit 6b8119af53

@ -1499,3 +1499,113 @@ std::set<CKeyID> LegacyScriptPubKeyMan::GetKeys() const
}
void LegacyScriptPubKeyMan::SetType(OutputType type, bool internal) {}
bool DescriptorScriptPubKeyMan::GetNewDestination(const OutputType type, CTxDestination& dest, std::string& error)
{
return false;
}
isminetype DescriptorScriptPubKeyMan::IsMine(const CScript& script) const
{
return ISMINE_NO;
}
bool DescriptorScriptPubKeyMan::CheckDecryptionKey(const CKeyingMaterial& master_key, bool accept_no_keys)
{
return false;
}
bool DescriptorScriptPubKeyMan::Encrypt(const CKeyingMaterial& master_key, WalletBatch* batch)
{
return false;
}
bool DescriptorScriptPubKeyMan::GetReservedDestination(const OutputType type, bool internal, CTxDestination& address, int64_t& index, CKeyPool& keypool)
{
return false;
}
void DescriptorScriptPubKeyMan::ReturnDestination(int64_t index, bool internal, const CTxDestination& addr)
{
}
bool DescriptorScriptPubKeyMan::TopUp(unsigned int size)
{
return false;
}
void DescriptorScriptPubKeyMan::MarkUnusedAddresses(const CScript& script)
{
}
bool DescriptorScriptPubKeyMan::IsHDEnabled() const
{
return false;
}
bool DescriptorScriptPubKeyMan::CanGetAddresses(bool internal) const
{
return false;
}
bool DescriptorScriptPubKeyMan::HavePrivateKeys() const
{
return false;
}
int64_t DescriptorScriptPubKeyMan::GetOldestKeyPoolTime() const
{
return GetTime();
}
size_t DescriptorScriptPubKeyMan::KeypoolCountExternalKeys() const
{
return 0;
}
unsigned int DescriptorScriptPubKeyMan::GetKeyPoolSize() const
{
return 0;
}
int64_t DescriptorScriptPubKeyMan::GetTimeFirstKey() const
{
return 0;
}
std::unique_ptr<SigningProvider> DescriptorScriptPubKeyMan::GetSolvingProvider(const CScript& script) const
{
return nullptr;
}
bool DescriptorScriptPubKeyMan::CanProvide(const CScript& script, SignatureData& sigdata)
{
return false;
}
bool DescriptorScriptPubKeyMan::SignTransaction(CMutableTransaction& tx, const std::map<COutPoint, Coin>& coins, int sighash, std::map<int, std::string>& input_errors) const
{
return false;
}
SigningResult DescriptorScriptPubKeyMan::SignMessage(const std::string& message, const PKHash& pkhash, std::string& str_sig) const
{
return SigningResult::SIGNING_FAILED;
}
TransactionError DescriptorScriptPubKeyMan::FillPSBT(PartiallySignedTransaction& psbt, int sighash_type, bool sign, bool bip32derivs) const
{
return TransactionError::INVALID_PSBT;
}
const CKeyMetadata* DescriptorScriptPubKeyMan::GetMetadata(const CTxDestination& dest) const
{
return nullptr;
}
uint256 DescriptorScriptPubKeyMan::GetID() const
{
return uint256();
}
void DescriptorScriptPubKeyMan::SetType(OutputType type, bool internal) {}

@ -6,6 +6,7 @@
#define BITCOIN_WALLET_SCRIPTPUBKEYMAN_H
#include <psbt.h>
#include <script/descriptor.h>
#include <script/signingprovider.h>
#include <script/standard.h>
#include <util/error.h>
@ -481,4 +482,49 @@ public:
bool GetKeyOrigin(const CKeyID& keyid, KeyOriginInfo& info) const override { return m_spk_man.GetKeyOrigin(keyid, info); }
};
class DescriptorScriptPubKeyMan : public ScriptPubKeyMan
{
public:
using ScriptPubKeyMan::ScriptPubKeyMan;
bool GetNewDestination(const OutputType type, CTxDestination& dest, std::string& error) override;
isminetype IsMine(const CScript& script) const override;
bool CheckDecryptionKey(const CKeyingMaterial& master_key, bool accept_no_keys = false) override;
bool Encrypt(const CKeyingMaterial& master_key, WalletBatch* batch) override;
bool GetReservedDestination(const OutputType type, bool internal, CTxDestination& address, int64_t& index, CKeyPool& keypool) override;
void ReturnDestination(int64_t index, bool internal, const CTxDestination& addr) override;
bool TopUp(unsigned int size = 0) override;
void MarkUnusedAddresses(const CScript& script) override;
bool IsHDEnabled() const override;
bool HavePrivateKeys() const override;
int64_t GetOldestKeyPoolTime() const override;
size_t KeypoolCountExternalKeys() const override;
unsigned int GetKeyPoolSize() const override;
int64_t GetTimeFirstKey() const override;
const 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;
bool SignTransaction(CMutableTransaction& tx, const std::map<COutPoint, Coin>& coins, int sighash, std::map<int, std::string>& input_errors) const override;
SigningResult SignMessage(const std::string& message, const PKHash& pkhash, std::string& str_sig) const override;
TransactionError FillPSBT(PartiallySignedTransaction& psbt, int sighash_type = 1 /* SIGHASH_ALL */, bool sign = true, bool bip32derivs = false) const override;
uint256 GetID() const override;
void SetType(OutputType type, bool internal) override;
};
#endif // BITCOIN_WALLET_SCRIPTPUBKEYMAN_H

Loading…
Cancel
Save