From faca18dcf499e36069ce5fcd3e02a5ee86639436 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Mon, 29 Jan 2018 18:25:35 -0500 Subject: [PATCH] feebumper: Use PreconditionChecks to determine bump eligibility --- src/wallet/feebumper.cpp | 8 ++++++-- src/wallet/feebumper.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/wallet/feebumper.cpp b/src/wallet/feebumper.cpp index e78095bf7..5234a6971 100644 --- a/src/wallet/feebumper.cpp +++ b/src/wallet/feebumper.cpp @@ -89,11 +89,15 @@ static feebumper::Result PreconditionChecks(const CWallet* wallet, const CWallet namespace feebumper { -bool TransactionCanBeBumped(CWallet* wallet, const uint256& txid) +bool TransactionCanBeBumped(const CWallet* wallet, const uint256& txid) { LOCK2(cs_main, wallet->cs_wallet); const CWalletTx* wtx = wallet->GetWalletTx(txid); - return wtx && SignalsOptInRBF(*wtx->tx) && !wtx->mapValue.count("replaced_by_txid"); + if (wtx == nullptr) return false; + + std::vector errors_dummy; + feebumper::Result res = PreconditionChecks(wallet, *wtx, errors_dummy); + return res == feebumper::Result::OK; } Result CreateTransaction(const CWallet* wallet, const uint256& txid, const CCoinControl& coin_control, CAmount total_fee, std::vector& errors, diff --git a/src/wallet/feebumper.h b/src/wallet/feebumper.h index 8eec30440..7e36a9766 100644 --- a/src/wallet/feebumper.h +++ b/src/wallet/feebumper.h @@ -26,7 +26,7 @@ enum class Result }; //! Return whether transaction can be bumped. -bool TransactionCanBeBumped(CWallet* wallet, const uint256& txid); +bool TransactionCanBeBumped(const CWallet* wallet, const uint256& txid); //! Create bumpfee transaction. Result CreateTransaction(const CWallet* wallet,