aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
authorMatt Corallo <git@bluematt.me>2015-06-10 01:04:08 -0700
committerMatt Corallo <git@bluematt.me>2015-07-20 16:01:37 -0700
commitf5813bdd3eb93a2a8d7ba01989eef5b299fcbca4 (patch)
tree7830024c8e7ab4a638ee534b5bab1b190010c2ee /src/qt
parentd3354c52d7c0c6446cad4074c1d0e04bb1b3d84e (diff)
downloadbitcoin-f5813bdd3eb93a2a8d7ba01989eef5b299fcbca4.tar.xz
Add logic to track pubkeys as watch-only, not just scripts
Diffstat (limited to 'src/qt')
-rw-r--r--src/qt/sendcoinsdialog.cpp3
-rw-r--r--src/qt/walletmodel.cpp5
-rw-r--r--src/qt/walletmodel.h1
3 files changed, 7 insertions, 2 deletions
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp
index e13cd714a6..34da38285f 100644
--- a/src/qt/sendcoinsdialog.cpp
+++ b/src/qt/sendcoinsdialog.cpp
@@ -752,10 +752,9 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
}
else // Valid address
{
- CPubKey pubkey;
CKeyID keyid;
addr.GetKeyID(keyid);
- if (!model->getPubKey(keyid, pubkey)) // Unknown change address
+ if (!model->havePrivKey(keyid)) // Unknown change address
{
ui->labelCoinControlChangeLabel->setText(tr("Warning: Unknown change address"));
}
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index 168a0255ff..4e3d97fc42 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -554,6 +554,11 @@ bool WalletModel::getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const
return wallet->GetPubKey(address, vchPubKeyOut);
}
+bool WalletModel::havePrivKey(const CKeyID &address) const
+{
+ return wallet->HaveKey(address);
+}
+
// returns a list of COutputs from COutPoints
void WalletModel::getOutputs(const std::vector<COutPoint>& vOutpoints, std::vector<COutput>& vOutputs)
{
diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h
index 40bc623543..1c1684b278 100644
--- a/src/qt/walletmodel.h
+++ b/src/qt/walletmodel.h
@@ -186,6 +186,7 @@ public:
UnlockContext requestUnlock();
bool getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const;
+ bool havePrivKey(const CKeyID &address) const;
void getOutputs(const std::vector<COutPoint>& vOutpoints, std::vector<COutput>& vOutputs);
bool isSpent(const COutPoint& outpoint) const;
void listCoins(std::map<QString, std::vector<COutput> >& mapCoins) const;