diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2016-10-21 11:47:10 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2016-10-21 11:48:18 +0200 |
commit | 1ae5839ff024096c65e1590084f2720fa08d3e23 (patch) | |
tree | cf001d4dff838416239b579d75cd6f4bc08e468f /src/wallet | |
parent | 0e228557f239d8e43bf94b19b3a96240e7a75359 (diff) |
moveonly: move `coincontrol` to `src/wallet`
Diffstat (limited to 'src/wallet')
-rw-r--r-- | src/wallet/coincontrol.h | 76 | ||||
-rw-r--r-- | src/wallet/wallet.cpp | 2 |
2 files changed, 77 insertions, 1 deletions
diff --git a/src/wallet/coincontrol.h b/src/wallet/coincontrol.h new file mode 100644 index 0000000000..78516770e6 --- /dev/null +++ b/src/wallet/coincontrol.h @@ -0,0 +1,76 @@ +// Copyright (c) 2011-2015 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_WALLET_COINCONTROL_H +#define BITCOIN_WALLET_COINCONTROL_H + +#include "primitives/transaction.h" + +/** Coin Control Features. */ +class CCoinControl +{ +public: + CTxDestination destChange; + //! If false, allows unselected inputs, but requires all selected inputs be used + bool fAllowOtherInputs; + //! Includes watch only addresses which match the ISMINE_WATCH_SOLVABLE criteria + bool fAllowWatchOnly; + //! Minimum absolute fee (not per kilobyte) + CAmount nMinimumTotalFee; + //! Override estimated feerate + bool fOverrideFeeRate; + //! Feerate to use if overrideFeeRate is true + CFeeRate nFeeRate; + + CCoinControl() + { + SetNull(); + } + + void SetNull() + { + destChange = CNoDestination(); + fAllowOtherInputs = false; + fAllowWatchOnly = false; + setSelected.clear(); + nMinimumTotalFee = 0; + nFeeRate = CFeeRate(0); + fOverrideFeeRate = false; + } + + bool HasSelected() const + { + return (setSelected.size() > 0); + } + + bool IsSelected(const COutPoint& output) const + { + return (setSelected.count(output) > 0); + } + + void Select(const COutPoint& output) + { + setSelected.insert(output); + } + + void UnSelect(const COutPoint& output) + { + setSelected.erase(output); + } + + void UnSelectAll() + { + setSelected.clear(); + } + + void ListSelected(std::vector<COutPoint>& vOutpoints) const + { + vOutpoints.assign(setSelected.begin(), setSelected.end()); + } + +private: + std::set<COutPoint> setSelected; +}; + +#endif // BITCOIN_WALLET_COINCONTROL_H diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index c7f98b238e..60a769704b 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -8,7 +8,7 @@ #include "base58.h" #include "checkpoints.h" #include "chain.h" -#include "coincontrol.h" +#include "wallet/coincontrol.h" #include "consensus/consensus.h" #include "consensus/validation.h" #include "key.h" |