aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoão Barbosa <joao.paulo.barbosa@gmail.com>2019-07-02 15:16:36 +0100
committerJoão Barbosa <joao.paulo.barbosa@gmail.com>2019-07-02 16:13:39 +0100
commit5c1b9714cb0a13be28324f91f4ec9ca66a1de8c7 (patch)
tree19c93e0e2cfb83d78d8646bf517b593b4c5ac667 /src
parent6c21a801f3df4942d09d5a33d3dab04807f7bb37 (diff)
downloadbitcoin-5c1b9714cb0a13be28324f91f4ec9ca66a1de8c7.tar.xz
wallet: Fix -maxtxfee check by moving it to CWallet::CreateTransaction
Diffstat (limited to 'src')
-rw-r--r--src/qt/walletmodel.cpp7
-rw-r--r--src/wallet/wallet.cpp10
2 files changed, 10 insertions, 7 deletions
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index c1eba61749..6f16834109 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -221,9 +221,12 @@ WalletModel::SendCoinsReturn WalletModel::prepareTransaction(WalletModelTransact
return TransactionCreationFailed;
}
- // Reject absurdly high fee
- if (nFeeRequired > m_wallet->getDefaultMaxTxFee())
+ // Reject absurdly high fee. (This can never happen because the
+ // wallet never creates transactions with fee greater than
+ // m_default_max_tx_fee. This merely a belt-and-suspenders check).
+ if (nFeeRequired > m_wallet->getDefaultMaxTxFee()) {
return AbsurdFee;
+ }
}
return SendCoinsReturn(OK);
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 8807acb6b7..565e551fae 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -2694,11 +2694,6 @@ bool CWallet::FundTransaction(CMutableTransaction& tx, CAmount& nFeeRet, int& nC
}
}
- if (nFeeRet > this->m_default_max_tx_fee) {
- strFailReason = TransactionErrorString(TransactionError::MAX_FEE_EXCEEDED);
- return false;
- }
-
return true;
}
@@ -3135,6 +3130,11 @@ bool CWallet::CreateTransaction(interfaces::Chain::Lock& locked_chain, const std
}
}
+ if (nFeeRet > m_default_max_tx_fee) {
+ strFailReason = TransactionErrorString(TransactionError::MAX_FEE_EXCEEDED);
+ return false;
+ }
+
if (gArgs.GetBoolArg("-walletrejectlongchains", DEFAULT_WALLET_REJECT_LONG_CHAINS)) {
// Lastly, ensure this tx will pass the mempool's chain limits
if (!chain().checkChainLimits(tx)) {