Changeset View
Changeset View
Standalone View
Standalone View
src/wallet/fees.cpp
// Copyright (c) 2009-2010 Satoshi Nakamoto | // Copyright (c) 2009-2010 Satoshi Nakamoto | ||||
// Copyright (c) 2009-2017 The Bitcoin Core developers | // Copyright (c) 2009-2017 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#include "wallet/fees.h" | #include "wallet/fees.h" | ||||
#include "config.h" | #include "config.h" | ||||
#include "policy/policy.h" | #include "policy/policy.h" | ||||
#include "txmempool.h" | #include "txmempool.h" | ||||
#include "util.h" | #include "util.h" | ||||
#include "validation.h" | #include "validation.h" | ||||
#include "wallet/coincontrol.h" | |||||
#include "wallet/wallet.h" | #include "wallet/wallet.h" | ||||
Amount GetMinimumFee(unsigned int nTxBytes, const CTxMemPool &pool, | Amount GetMinimumFee(unsigned int nTxBytes, const CTxMemPool &pool, | ||||
Amount targetFee) { | Amount targetFee) { | ||||
Amount nFeeNeeded = targetFee; | Amount nFeeNeeded = targetFee; | ||||
if (nFeeNeeded == Amount::zero()) { | if (nFeeNeeded == Amount::zero()) { | ||||
nFeeNeeded = pool.estimateFee().GetFeeCeiling(nTxBytes); | nFeeNeeded = pool.estimateFee().GetFeeCeiling(nTxBytes); | ||||
// ... unless we don't have enough mempool data for estimatefee, then | // ... unless we don't have enough mempool data for estimatefee, then | ||||
Show All 14 Lines | Amount GetMinimumFee(unsigned int nTxBytes, const CTxMemPool &pool, | ||||
return nFeeNeeded; | return nFeeNeeded; | ||||
} | } | ||||
Amount GetMinimumFee(unsigned int nTxBytes, const CTxMemPool &pool) { | Amount GetMinimumFee(unsigned int nTxBytes, const CTxMemPool &pool) { | ||||
// payTxFee is the user-set global for desired feerate. | // payTxFee is the user-set global for desired feerate. | ||||
return GetMinimumFee(nTxBytes, pool, payTxFee.GetFeeCeiling(nTxBytes)); | return GetMinimumFee(nTxBytes, pool, payTxFee.GetFeeCeiling(nTxBytes)); | ||||
} | } | ||||
Amount GetMinimumFee(unsigned int nTxBytes, const CTxMemPool &pool, | |||||
const CCoinControl &coinControl) { | |||||
if (coinControl.fOverrideFeeRate && coinControl.m_feerate) { | |||||
return GetMinimumFee(nTxBytes, pool, | |||||
coinControl.m_feerate->GetFee(nTxBytes)); | |||||
} else { | |||||
return GetMinimumFee(nTxBytes, pool); | |||||
} | |||||
} |