diff options
| author | Gavin Andresen <[email protected]> | 2013-07-22 16:50:39 +1000 |
|---|---|---|
| committer | Gavin Andresen <[email protected]> | 2013-08-22 16:18:25 +1000 |
| commit | a41d5fe01947f2f878c055670986a165af800f9a (patch) | |
| tree | 40eeada1ebc180f8e3669a7d164104686dc0c618 /src/qt/paymentrequestplus.h | |
| parent | Route qDebug() messages to debug.log (diff) | |
| download | discoin-a41d5fe01947f2f878c055670986a165af800f9a.tar.xz discoin-a41d5fe01947f2f878c055670986a165af800f9a.zip | |
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.
Diffstat (limited to 'src/qt/paymentrequestplus.h')
| -rw-r--r-- | src/qt/paymentrequestplus.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/qt/paymentrequestplus.h b/src/qt/paymentrequestplus.h new file mode 100644 index 000000000..846d256ac --- /dev/null +++ b/src/qt/paymentrequestplus.h @@ -0,0 +1,41 @@ +#ifndef PAYMENTREQUESTPLUS_H +#define PAYMENTREQUESTPLUS_H + +#include <QByteArray> +#include <QList> +#include <QString> + +#include "base58.h" +#include "paymentrequest.pb.h" + +// +// Wraps dumb protocol buffer paymentRequest +// with extra methods +// + +class PaymentRequestPlus +{ +public: + PaymentRequestPlus() { } + + bool parse(const QByteArray& data); + bool SerializeToString(string* output) const; + + bool IsInitialized() const; + QString getPKIType() const; + // Returns true if merchant's identity is authenticated, and + // returns human-readable merchant identity in merchant + bool getMerchant(X509_STORE* certStore, QString& merchant) const; + + // Returns list of outputs, amount + QList<std::pair<CScript,qint64> > getPayTo() const; + + const payments::PaymentDetails& getDetails() const { return details; } + +private: + payments::PaymentRequest paymentRequest; + payments::PaymentDetails details; +}; + +#endif // PAYMENTREQUESTPLUS_H + |