Skip to content

Commit 56113da

Browse files
committed
wallet: add taprootEnabled() to interface
1 parent 887796a commit 56113da

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/interfaces/wallet.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,9 @@ class Wallet
256256
// Return whether private keys enabled.
257257
virtual bool privateKeysDisabled() = 0;
258258

259+
// Return whether the wallet contains a Taproot scriptPubKeyMan
260+
virtual bool taprootEnabled() = 0;
261+
259262
// Return whether wallet uses an external signer.
260263
virtual bool hasExternalSigner() = 0;
261264

src/wallet/interfaces.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,11 @@ class WalletImpl : public Wallet
461461
bool canGetAddresses() override { return m_wallet->CanGetAddresses(); }
462462
bool hasExternalSigner() override { return m_wallet->IsWalletFlagSet(WALLET_FLAG_EXTERNAL_SIGNER); }
463463
bool privateKeysDisabled() override { return m_wallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS); }
464+
bool taprootEnabled() override {
465+
if (m_wallet->IsLegacy()) return false;
466+
auto spk_man = m_wallet->GetScriptPubKeyMan(OutputType::BECH32M, /*internal=*/false);
467+
return spk_man != nullptr;
468+
}
464469
OutputType getDefaultAddressType() override { return m_wallet->m_default_address_type; }
465470
CAmount getDefaultMaxTxFee() override { return m_wallet->m_default_max_tx_fee; }
466471
void remove() override

0 commit comments

Comments
 (0)