aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces
diff options
context:
space:
mode:
authorRussell Yanofsky <russ@yanofsky.org>2017-07-28 21:40:29 -0400
committerRussell Yanofsky <russ@yanofsky.org>2019-02-22 15:43:02 -0400
commitcc02c796d3517931acc861b0f9bc50e36e1c95f9 (patch)
treeadc01a513b50ceed34412f362644999de61ff561 /src/interfaces
parent1fb0a4a04e9cda19ed5ad04694a39c83c91b6072 (diff)
downloadbitcoin-cc02c796d3517931acc861b0f9bc50e36e1c95f9.tar.xz
Remove uses of fee globals in wallet code
This commit does not change behavior.
Diffstat (limited to 'src/interfaces')
-rw-r--r--src/interfaces/chain.cpp14
-rw-r--r--src/interfaces/chain.h10
-rw-r--r--src/interfaces/wallet.cpp2
3 files changed, 25 insertions, 1 deletions
diff --git a/src/interfaces/chain.cpp b/src/interfaces/chain.cpp
index c12215cd60..f888606879 100644
--- a/src/interfaces/chain.cpp
+++ b/src/interfaces/chain.cpp
@@ -6,6 +6,8 @@
#include <chain.h>
#include <chainparams.h>
+#include <policy/fees.h>
+#include <policy/policy.h>
#include <policy/rbf.h>
#include <primitives/block.h>
#include <sync.h>
@@ -214,6 +216,18 @@ public:
return ::mempool.CalculateMemPoolAncestors(entry, ancestors, limit_ancestor_count, limit_ancestor_size,
limit_descendant_count, limit_descendant_size, unused_error_string);
}
+ CFeeRate estimateSmartFee(int num_blocks, bool conservative, FeeCalculation* calc) override
+ {
+ return ::feeEstimator.estimateSmartFee(num_blocks, calc, conservative);
+ }
+ unsigned int estimateMaxBlocks() override
+ {
+ return ::feeEstimator.HighestTargetTracked(FeeEstimateHorizon::LONG_HALFLIFE);
+ }
+ CFeeRate mempoolMinFee() override
+ {
+ return ::mempool.GetMinFee(gArgs.GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000);
+ }
};
} // namespace
diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h
index 2e0328eb25..d0f74cb100 100644
--- a/src/interfaces/chain.h
+++ b/src/interfaces/chain.h
@@ -19,6 +19,7 @@ class CScheduler;
class CTransaction;
class uint256;
struct CBlockLocator;
+struct FeeCalculation;
namespace interfaces {
@@ -145,6 +146,15 @@ public:
//! Check chain limits.
virtual bool checkChainLimits(CTransactionRef tx) = 0;
+
+ //! Estimate smart fee.
+ virtual CFeeRate estimateSmartFee(int num_blocks, bool conservative, FeeCalculation* calc = nullptr) = 0;
+
+ //! Fee estimator max target.
+ virtual unsigned int estimateMaxBlocks() = 0;
+
+ //! Pool min fee.
+ virtual CFeeRate mempoolMinFee() = 0;
};
//! Interface to let node manage chain clients (wallets, or maybe tools for
diff --git a/src/interfaces/wallet.cpp b/src/interfaces/wallet.cpp
index e870d3d537..f3a0b416db 100644
--- a/src/interfaces/wallet.cpp
+++ b/src/interfaces/wallet.cpp
@@ -457,7 +457,7 @@ public:
{
FeeCalculation fee_calc;
CAmount result;
- result = GetMinimumFee(*m_wallet, tx_bytes, coin_control, ::mempool, ::feeEstimator, &fee_calc);
+ result = GetMinimumFee(*m_wallet, tx_bytes, coin_control, &fee_calc);
if (returned_target) *returned_target = fee_calc.returnedTarget;
if (reason) *reason = fee_calc.reason;
return result;