Remove use of IsRBFOptIn in wallet code

This commit does not change behavior.
This commit is contained in:
Russell Yanofsky 2017-07-28 19:25:26 -04:00
parent 80f52a2267
commit bdc6628683
3 changed files with 13 additions and 3 deletions

View file

@ -6,9 +6,11 @@
#include <chain.h>
#include <chainparams.h>
#include <policy/rbf.h>
#include <primitives/block.h>
#include <sync.h>
#include <threadsafety.h>
#include <txmempool.h>
#include <uint256.h>
#include <util/system.h>
#include <validation.h>
@ -183,6 +185,11 @@ public:
LOCK(cs_main);
return GuessVerificationProgress(Params().TxData(), LookupBlockIndex(block_hash));
}
RBFTransactionState isRBFOptIn(const CTransaction& tx) override
{
LOCK(::mempool.cs);
return IsRBFOptIn(tx, ::mempool);
}
};
} // namespace

View file

@ -5,7 +5,8 @@
#ifndef BITCOIN_INTERFACES_CHAIN_H
#define BITCOIN_INTERFACES_CHAIN_H
#include <optional.h>
#include <optional.h> // For Optional and nullopt
#include <policy/rbf.h> // For RBFTransactionState
#include <memory>
#include <stdint.h>
@ -131,6 +132,9 @@ public:
//! Estimate fraction of total transactions verified if blocks up to
//! the specified block hash are verified.
virtual double guessVerificationProgress(const uint256& block_hash) = 0;
//! Check if transaction is RBF opt in.
virtual RBFTransactionState isRBFOptIn(const CTransaction& tx) = 0;
};
//! Interface to let node manage chain clients (wallets, or maybe tools for

View file

@ -124,8 +124,7 @@ static void WalletTxToJSON(interfaces::Chain& chain, interfaces::Chain::Lock& lo
// Add opt-in RBF status
std::string rbfStatus = "no";
if (confirms <= 0) {
LOCK(mempool.cs);
RBFTransactionState rbfState = IsRBFOptIn(*wtx.tx, mempool);
RBFTransactionState rbfState = chain.isRBFOptIn(*wtx.tx);
if (rbfState == RBFTransactionState::UNKNOWN)
rbfStatus = "unknown";
else if (rbfState == RBFTransactionState::REPLACEABLE_BIP125)