Allow to opt-into RBF when creating a transaction

This commit is contained in:
Jonas Schnelli 2015-12-03 09:53:23 +01:00 committed by Russell Yanofsky
parent 82274c02ed
commit 568c05a591
2 changed files with 6 additions and 1 deletions

View File

@ -6,6 +6,7 @@
#define BITCOIN_WALLET_COINCONTROL_H
#include "primitives/transaction.h"
#include "wallet/wallet.h"
/** Coin Control Features. */
class CCoinControl
@ -24,6 +25,8 @@ public:
CFeeRate nFeeRate;
//! Override the default confirmation target, 0 = use default
int nConfirmTarget;
//! Signal BIP-125 replace by fee.
bool signalRbf;
CCoinControl()
{
@ -40,6 +43,7 @@ public:
nFeeRate = CFeeRate(0);
fOverrideFeeRate = false;
nConfirmTarget = 0;
signalRbf = fWalletRbf;
}
bool HasSelected() const

View File

@ -2566,9 +2566,10 @@ bool CWallet::CreateTransaction(const vector<CRecipient>& vecSend, CWalletTx& wt
// to avoid conflicting with other possible uses of nSequence,
// and in the spirit of "smallest posible change from prior
// behavior."
bool rbf = coinControl ? coinControl->signalRbf : fWalletRbf;
for (const auto& coin : setCoins)
txNew.vin.push_back(CTxIn(coin.first->GetHash(),coin.second,CScript(),
std::numeric_limits<unsigned int>::max() - (fWalletRbf ? 2 : 1)));
std::numeric_limits<unsigned int>::max() - (rbf ? 2 : 1)));
// Fill in dummy signatures for fee calculation.
int nIn = 0;