mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-12 13:43:43 +01:00
Merge pull request #5620
6715efb [Qt] Payment request expiration bug fix (re-done) (Philip Kaufmann)
This commit is contained in:
@@ -521,8 +521,6 @@ bool PaymentServer::processPaymentRequest(PaymentRequestPlus& request, SendCoins
|
||||
return false;
|
||||
|
||||
if (request.IsInitialized()) {
|
||||
const payments::PaymentDetails& details = request.getDetails();
|
||||
|
||||
// Payment request network matches client network?
|
||||
if (!verifyNetwork(request.getDetails())) {
|
||||
emit message(tr("Payment request rejected"), tr("Payment request network doesn't match client network."),
|
||||
@@ -531,16 +529,15 @@ bool PaymentServer::processPaymentRequest(PaymentRequestPlus& request, SendCoins
|
||||
return false;
|
||||
}
|
||||
|
||||
// Expired payment request?
|
||||
if (details.has_expires() && (int64_t)details.expires() < GetTime())
|
||||
{
|
||||
emit message(tr("Payment request rejected"), tr("Payment request has expired."),
|
||||
// Make sure any payment requests involved are still valid.
|
||||
// This is re-checked just before sending coins in WalletModel::sendCoins().
|
||||
if (verifyExpired(request.getDetails())) {
|
||||
emit message(tr("Payment request rejected"), tr("Payment request expired."),
|
||||
CClientUIInterface::MSG_ERROR);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
emit message(tr("Payment request error"), tr("Payment request is not initialized."),
|
||||
CClientUIInterface::MSG_ERROR);
|
||||
|
||||
@@ -759,3 +756,15 @@ bool PaymentServer::verifyNetwork(const payments::PaymentDetails& requestDetails
|
||||
}
|
||||
return fVerified;
|
||||
}
|
||||
|
||||
bool PaymentServer::verifyExpired(const payments::PaymentDetails& requestDetails)
|
||||
{
|
||||
bool fVerified = (requestDetails.has_expires() && (int64_t)requestDetails.expires() < GetTime());
|
||||
if (fVerified) {
|
||||
const QString requestExpires = QString::fromStdString(DateTimeStrFormat("%Y-%m-%d %H:%M:%S", (int64_t)requestDetails.expires()));
|
||||
qWarning() << QString("PaymentServer::%1: Payment request expired \"%2\".")
|
||||
.arg(__func__)
|
||||
.arg(requestExpires);
|
||||
}
|
||||
return fVerified;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user