mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
wallet: Construct ExternalSignerSPKM with the new descriptor
Instead of constructing then setting the descriptor with SetupDescriptor, just pass in that descriptor to the constructor.
This commit is contained in:
parent
dc4c61f7ec
commit
39db554fe0
3 changed files with 8 additions and 14 deletions
|
@ -21,7 +21,8 @@
|
|||
using common::PSBTError;
|
||||
|
||||
namespace wallet {
|
||||
bool ExternalSignerScriptPubKeyMan::SetupDescriptor(WalletBatch& batch, std::unique_ptr<Descriptor> desc)
|
||||
ExternalSignerScriptPubKeyMan::ExternalSignerScriptPubKeyMan(WalletStorage& storage, WalletBatch& batch, int64_t keypool_size, std::unique_ptr<Descriptor> desc)
|
||||
: DescriptorScriptPubKeyMan(storage, keypool_size)
|
||||
{
|
||||
LOCK(cs_desc_man);
|
||||
assert(m_storage.IsWalletFlagSet(WALLET_FLAG_DESCRIPTORS));
|
||||
|
@ -42,7 +43,6 @@ bool ExternalSignerScriptPubKeyMan::SetupDescriptor(WalletBatch& batch, std::uni
|
|||
TopUpWithDB(batch);
|
||||
|
||||
m_storage.UnsetBlankWalletFlag(batch);
|
||||
return true;
|
||||
}
|
||||
|
||||
ExternalSigner ExternalSignerScriptPubKeyMan::GetExternalSigner() {
|
||||
|
|
|
@ -14,18 +14,13 @@ struct bilingual_str;
|
|||
namespace wallet {
|
||||
class ExternalSignerScriptPubKeyMan : public DescriptorScriptPubKeyMan
|
||||
{
|
||||
public:
|
||||
ExternalSignerScriptPubKeyMan(WalletStorage& storage, const uint256& id, WalletDescriptor& descriptor, int64_t keypool_size, const KeyMap& keys, const CryptedKeyMap& ckeys)
|
||||
public:
|
||||
//! Create an ExternalSPKM from existing wallet data
|
||||
ExternalSignerScriptPubKeyMan(WalletStorage& storage, const uint256& id, WalletDescriptor& descriptor, int64_t keypool_size, const KeyMap& keys, const CryptedKeyMap& ckeys)
|
||||
: DescriptorScriptPubKeyMan(storage, id, descriptor, keypool_size, keys, ckeys)
|
||||
{}
|
||||
ExternalSignerScriptPubKeyMan(WalletStorage& storage, int64_t keypool_size)
|
||||
: DescriptorScriptPubKeyMan(storage, keypool_size)
|
||||
{}
|
||||
|
||||
/** Provide a descriptor at setup time
|
||||
* Returns false if already setup or setup fails, true if setup is successful
|
||||
*/
|
||||
bool SetupDescriptor(WalletBatch& batch, std::unique_ptr<Descriptor>desc);
|
||||
//! Create a new ExternalSPKM from just a descriptor
|
||||
ExternalSignerScriptPubKeyMan(WalletStorage& storage, WalletBatch& batch, int64_t keypool_size, std::unique_ptr<Descriptor> desc);
|
||||
|
||||
static ExternalSigner GetExternalSigner();
|
||||
|
||||
|
|
|
@ -3800,8 +3800,7 @@ void CWallet::SetupDescriptorScriptPubKeyMans()
|
|||
continue;
|
||||
}
|
||||
OutputType t = *desc->GetOutputType();
|
||||
auto spk_manager = std::unique_ptr<ExternalSignerScriptPubKeyMan>(new ExternalSignerScriptPubKeyMan(*this, m_keypool_size));
|
||||
spk_manager->SetupDescriptor(batch, std::move(desc));
|
||||
auto spk_manager = std::unique_ptr<ExternalSignerScriptPubKeyMan>(new ExternalSignerScriptPubKeyMan(*this, batch, m_keypool_size, std::move(desc)));
|
||||
uint256 id = spk_manager->GetID();
|
||||
AddScriptPubKeyMan(id, std::move(spk_manager));
|
||||
AddActiveScriptPubKeyManWithDb(batch, id, t, internal);
|
||||
|
|
Loading…
Add table
Reference in a new issue