diff options
author | Andrew Chow <achow101-github@achow101.com> | 2021-10-05 15:49:06 -0400 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2022-01-24 11:23:31 -0500 |
commit | 4060c50d7ee31dc8a39229e3553d3d92f8f3516d (patch) | |
tree | e130ab3737cc8c66cb481682f25012876ac7739b /src | |
parent | e3de7cb9039770e0fd5b8bb8a5cba35c87ae8f00 (diff) | |
download | bitcoin-4060c50d7ee31dc8a39229e3553d3d92f8f3516d.tar.xz |
wallet: add input weights to CCoinControl
In order to allow coin selection to take weights from the user,
CCoinControl needs to be able to set and get them.
Diffstat (limited to 'src')
-rw-r--r-- | src/wallet/coincontrol.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/wallet/coincontrol.h b/src/wallet/coincontrol.h index 5ef2295c88..65a5c83366 100644 --- a/src/wallet/coincontrol.h +++ b/src/wallet/coincontrol.h @@ -115,9 +115,28 @@ public: vOutpoints.assign(setSelected.begin(), setSelected.end()); } + void SetInputWeight(const COutPoint& outpoint, int64_t weight) + { + m_input_weights[outpoint] = weight; + } + + bool HasInputWeight(const COutPoint& outpoint) const + { + return m_input_weights.count(outpoint) > 0; + } + + int64_t GetInputWeight(const COutPoint& outpoint) const + { + auto it = m_input_weights.find(outpoint); + assert(it != m_input_weights.end()); + return it->second; + } + private: std::set<COutPoint> setSelected; std::map<COutPoint, CTxOut> m_external_txouts; + //! Map of COutPoints to the maximum weight for that input + std::map<COutPoint, int64_t> m_input_weights; }; } // namespace wallet |