diff options
| author | MarcoFalke <[email protected]> | 2016-10-30 18:22:22 +0100 |
|---|---|---|
| committer | MarcoFalke <[email protected]> | 2016-10-30 18:23:37 +0100 |
| commit | 3333e5a1e582225907b201cca64322d7620fbeec (patch) | |
| tree | 38815c7743959ac357be455833ecb2de8ae30d16 /src | |
| parent | Merge #8989: [Qt] overhaul smart-fee slider, adjust default confirmation target (diff) | |
| download | discoin-3333e5a1e582225907b201cca64322d7620fbeec.tar.xz discoin-3333e5a1e582225907b201cca64322d7620fbeec.zip | |
[qt] Return useful error message on ATMP failure
Diffstat (limited to 'src')
| -rw-r--r-- | src/qt/sendcoinsdialog.cpp | 2 | ||||
| -rw-r--r-- | src/qt/walletmodel.cpp | 2 | ||||
| -rw-r--r-- | src/qt/walletmodel.h | 8 |
3 files changed, 8 insertions, 4 deletions
diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index d338bbf68..57b217943 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -534,7 +534,7 @@ void SendCoinsDialog::processSendCoinsReturn(const WalletModel::SendCoinsReturn msgParams.second = CClientUIInterface::MSG_ERROR; break; case WalletModel::TransactionCommitFailed: - msgParams.first = tr("The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."); + msgParams.first = tr("The transaction was rejected with the following reason: %1").arg(sendCoinsReturn.reasonCommitFailed); msgParams.second = CClientUIInterface::MSG_ERROR; break; case WalletModel::AbsurdFee: diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 4bf03f78d..3490d1c1c 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -331,7 +331,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(WalletModelTransaction &tran CReserveKey *keyChange = transaction.getPossibleKeyChange(); CValidationState state; if(!wallet->CommitTransaction(*newTx, *keyChange, g_connman.get(), state)) - return TransactionCommitFailed; + return SendCoinsReturn(TransactionCommitFailed, QString::fromStdString(state.GetRejectReason())); CTransaction* t = (CTransaction*)newTx; CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION); diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 521d84599..6a5670e37 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -144,9 +144,13 @@ public: // Return status record for SendCoins, contains error id + information struct SendCoinsReturn { - SendCoinsReturn(StatusCode _status = OK): - status(_status) {} + SendCoinsReturn(StatusCode _status = OK, QString _reasonCommitFailed = "") + : status(_status), + reasonCommitFailed(_reasonCommitFailed) + { + } StatusCode status; + QString reasonCommitFailed; }; // prepare transaction for getting txfee before sending coins |