Payment Protocol: X509-validated payment requests
Add support for a Payment Protocol to Bitcoin-Qt. Payment messages are protocol-buffer encoded and communicated over http(s), so this adds a dependency on the Google protocol buffer library, and requires Qt with OpenSSL support.
This commit is contained in:
@@ -45,6 +45,7 @@
|
||||
#include <QDragEnterEvent>
|
||||
#if QT_VERSION < 0x050000
|
||||
#include <QUrl>
|
||||
#include <QTextDocument>
|
||||
#endif
|
||||
#include <QMimeData>
|
||||
#include <QStyle>
|
||||
@@ -707,7 +708,8 @@ void BitcoinGUI::dropEvent(QDropEvent *event)
|
||||
QList<QUrl> uris = event->mimeData()->urls();
|
||||
foreach(const QUrl &uri, uris)
|
||||
{
|
||||
if (walletFrame->handleURI(uri.toString()))
|
||||
SendCoinsRecipient r;
|
||||
if (GUIUtil::parseBitcoinURI(uri, &r) && walletFrame->handlePaymentRequest(r))
|
||||
nValidUrisFound++;
|
||||
}
|
||||
|
||||
@@ -734,12 +736,18 @@ bool BitcoinGUI::eventFilter(QObject *object, QEvent *event)
|
||||
return QMainWindow::eventFilter(object, event);
|
||||
}
|
||||
|
||||
void BitcoinGUI::handleURI(QString strURI)
|
||||
void BitcoinGUI::handlePaymentRequest(const SendCoinsRecipient& recipient)
|
||||
{
|
||||
// URI has to be valid
|
||||
if (!walletFrame->handleURI(strURI))
|
||||
message(tr("URI handling"), tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."),
|
||||
CClientUIInterface::ICON_WARNING);
|
||||
walletFrame->handlePaymentRequest(recipient);
|
||||
}
|
||||
|
||||
void BitcoinGUI::showPaymentACK(QString msg)
|
||||
{
|
||||
#if QT_VERSION < 0x050000
|
||||
message(tr("Payment acknowledged"), Qt::escape(msg), CClientUIInterface::MODAL);
|
||||
#else
|
||||
message(tr("Payment acknowledged"), msg.toHtmlEscaped(), CClientUIInterface::MODAL);
|
||||
#endif
|
||||
}
|
||||
|
||||
void BitcoinGUI::setEncryptionStatus(int status)
|
||||
|
||||
Reference in New Issue
Block a user