Changeset View
Changeset View
Standalone View
Standalone View
src/qt/walletmodel.h
// Copyright (c) 2011-2019 The Bitcoin Core developers | // Copyright (c) 2011-2019 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#ifndef BITCOIN_QT_WALLETMODEL_H | #ifndef BITCOIN_QT_WALLETMODEL_H | ||||
#define BITCOIN_QT_WALLETMODEL_H | #define BITCOIN_QT_WALLETMODEL_H | ||||
#include <chainparams.h> | #include <chainparams.h> | ||||
#include <interfaces/wallet.h> | #include <interfaces/wallet.h> | ||||
#if defined(HAVE_CONFIG_H) | |||||
#include <config/bitcoin-config.h> | |||||
#endif | |||||
#ifdef ENABLE_BIP70 | |||||
#include <qt/paymentrequestplus.h> | #include <qt/paymentrequestplus.h> | ||||
#endif | |||||
#include <qt/walletmodeltransaction.h> | #include <qt/walletmodeltransaction.h> | ||||
#include <support/allocators/secure.h> | #include <support/allocators/secure.h> | ||||
#include <QObject> | #include <QObject> | ||||
#include <map> | #include <map> | ||||
#include <vector> | #include <vector> | ||||
Show All 35 Lines | public: | ||||
// requests, we can abuse it for displaying an address list. | // requests, we can abuse it for displaying an address list. | ||||
// TOFO: This is a hack, should be replaced with a cleaner solution! | // TOFO: This is a hack, should be replaced with a cleaner solution! | ||||
QString address; | QString address; | ||||
QString label; | QString label; | ||||
Amount amount; | Amount amount; | ||||
// If from a payment request, this is used for storing the memo | // If from a payment request, this is used for storing the memo | ||||
QString message; | QString message; | ||||
#ifdef ENABLE_BIP70 | |||||
// If from a payment request, paymentRequest.IsInitialized() will be true | // If from a payment request, paymentRequest.IsInitialized() will be true | ||||
PaymentRequestPlus paymentRequest; | PaymentRequestPlus paymentRequest; | ||||
#else | |||||
// If building with BIP70 is disabled, keep the payment request around as | |||||
// serialized string to ensure load/store is lossless | |||||
std::string sPaymentRequest; | |||||
#endif | |||||
// Empty if no authentication or invalid signature/cert/etc. | // Empty if no authentication or invalid signature/cert/etc. | ||||
QString authenticatedMerchant; | QString authenticatedMerchant; | ||||
// memory only | // memory only | ||||
bool fSubtractFeeFromAmount; | bool fSubtractFeeFromAmount; | ||||
static const int CURRENT_VERSION = 1; | static const int CURRENT_VERSION = 1; | ||||
int nVersion; | int nVersion; | ||||
ADD_SERIALIZE_METHODS; | ADD_SERIALIZE_METHODS; | ||||
template <typename Stream, typename Operation> | template <typename Stream, typename Operation> | ||||
inline void SerializationOp(Stream &s, Operation ser_action) { | inline void SerializationOp(Stream &s, Operation ser_action) { | ||||
std::string sAddress = address.toStdString(); | std::string sAddress = address.toStdString(); | ||||
std::string sLabel = label.toStdString(); | std::string sLabel = label.toStdString(); | ||||
std::string sMessage = message.toStdString(); | std::string sMessage = message.toStdString(); | ||||
#ifdef ENABLE_BIP70 | |||||
std::string sPaymentRequest; | std::string sPaymentRequest; | ||||
if (!ser_action.ForRead() && paymentRequest.IsInitialized()) { | if (!ser_action.ForRead() && paymentRequest.IsInitialized()) { | ||||
paymentRequest.SerializeToString(&sPaymentRequest); | paymentRequest.SerializeToString(&sPaymentRequest); | ||||
} | } | ||||
#endif | |||||
std::string sAuthenticatedMerchant = | std::string sAuthenticatedMerchant = | ||||
authenticatedMerchant.toStdString(); | authenticatedMerchant.toStdString(); | ||||
READWRITE(this->nVersion); | READWRITE(this->nVersion); | ||||
READWRITE(sAddress); | READWRITE(sAddress); | ||||
READWRITE(sLabel); | READWRITE(sLabel); | ||||
READWRITE(amount); | READWRITE(amount); | ||||
READWRITE(sMessage); | READWRITE(sMessage); | ||||
READWRITE(sPaymentRequest); | READWRITE(sPaymentRequest); | ||||
READWRITE(sAuthenticatedMerchant); | READWRITE(sAuthenticatedMerchant); | ||||
if (ser_action.ForRead()) { | if (ser_action.ForRead()) { | ||||
address = QString::fromStdString(sAddress); | address = QString::fromStdString(sAddress); | ||||
label = QString::fromStdString(sLabel); | label = QString::fromStdString(sLabel); | ||||
message = QString::fromStdString(sMessage); | message = QString::fromStdString(sMessage); | ||||
#ifdef ENABLE_BIP70 | |||||
if (!sPaymentRequest.empty()) { | if (!sPaymentRequest.empty()) { | ||||
paymentRequest.parse(QByteArray::fromRawData( | paymentRequest.parse(QByteArray::fromRawData( | ||||
sPaymentRequest.data(), sPaymentRequest.size())); | sPaymentRequest.data(), sPaymentRequest.size())); | ||||
} | } | ||||
#endif | |||||
authenticatedMerchant = | authenticatedMerchant = | ||||
QString::fromStdString(sAuthenticatedMerchant); | QString::fromStdString(sAuthenticatedMerchant); | ||||
} | } | ||||
} | } | ||||
}; | }; | ||||
/** Interface to Bitcoin wallet from Qt view code. */ | /** Interface to Bitcoin wallet from Qt view code. */ | ||||
▲ Show 20 Lines • Show All 194 Lines • Show Last 20 Lines |