aboutsummaryrefslogtreecommitdiff
path: root/src/qt/messagepage.cpp
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2012-05-14 23:44:52 +0200
committerPieter Wuille <pieter.wuille@gmail.com>2012-05-24 20:26:19 +0200
commit1025440184ef100a22d07c7bb543ee45cf169d64 (patch)
treecd85ae7d981820189e506167e518adaf820aa638 /src/qt/messagepage.cpp
parentfd61d6f5068cf92d34569862b4225f177049a4f0 (diff)
downloadbitcoin-1025440184ef100a22d07c7bb543ee45cf169d64.tar.xz
Refactor: split CKeyID/CScriptID/CTxDestination from CBitcoinAddress
This introduces internal types: * CKeyID: reference (hash160) of a key * CScriptID: reference (hash160) of a script * CTxDestination: a boost::variant of the former two CBitcoinAddress is retrofitted to be a Base58 encoding of a CTxDestination. This allows all internal code to only use the internal types, and only have RPC and GUI depend on the base58 code. Furthermore, the header dependencies are a lot saner now. base58.h is at the top (right below rpc and gui) instead of at the bottom. For the rest: wallet -> script -> keystore -> key. Only keystore still requires a forward declaration of CScript. Solving that would require splitting script into two layers.
Diffstat (limited to 'src/qt/messagepage.cpp')
-rw-r--r--src/qt/messagepage.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/qt/messagepage.cpp b/src/qt/messagepage.cpp
index 1f895e28ff..ab3ea5a0c5 100644
--- a/src/qt/messagepage.cpp
+++ b/src/qt/messagepage.cpp
@@ -10,6 +10,7 @@
#include "main.h"
#include "wallet.h"
#include "init.h"
+#include "base58.h"
#include "messagepage.h"
#include "ui_messagepage.h"
@@ -83,6 +84,13 @@ void MessagePage::on_signMessage_clicked()
QMessageBox::Abort, QMessageBox::Abort);
return;
}
+ CKeyID keyID;
+ if (!addr.GetKeyID(keyID))
+ {
+ QMessageBox::critical(this, tr("Error signing"), tr("%1 does not refer to a key.").arg(address),
+ QMessageBox::Abort, QMessageBox::Abort);
+ return;
+ }
WalletModel::UnlockContext ctx(model->requestUnlock());
if(!ctx.isValid())
@@ -92,7 +100,7 @@ void MessagePage::on_signMessage_clicked()
}
CKey key;
- if (!pwalletMain->GetKey(addr, key))
+ if (!pwalletMain->GetKey(keyID, key))
{
QMessageBox::critical(this, tr("Error signing"), tr("Private key for %1 is not available.").arg(address),
QMessageBox::Abort, QMessageBox::Abort);