From 4060c50d7ee31dc8a39229e3553d3d92f8f3516d Mon Sep 17 00:00:00 2001 From: Andrew Chow Date: Tue, 5 Oct 2021 15:49:06 -0400 Subject: 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. --- src/wallet/coincontrol.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/wallet/coincontrol.h') 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 setSelected; std::map m_external_txouts; + //! Map of COutPoints to the maximum weight for that input + std::map m_input_weights; }; } // namespace wallet -- cgit v1.2.3