aboutsummaryrefslogtreecommitdiff
path: root/src/coincontrol.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/coincontrol.h')
-rw-r--r--src/coincontrol.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/coincontrol.h b/src/coincontrol.h
new file mode 100644
index 0000000000..0164bf1f84
--- /dev/null
+++ b/src/coincontrol.h
@@ -0,0 +1,59 @@
+#ifndef COINCONTROL_H
+#define COINCONTROL_H
+
+#include "core.h"
+
+/** Coin Control Features. */
+class CCoinControl
+{
+public:
+ CTxDestination destChange;
+
+ CCoinControl()
+ {
+ SetNull();
+ }
+
+ void SetNull()
+ {
+ destChange = CNoDestination();
+ setSelected.clear();
+ }
+
+ bool HasSelected() const
+ {
+ return (setSelected.size() > 0);
+ }
+
+ bool IsSelected(const uint256& hash, unsigned int n) const
+ {
+ COutPoint outpt(hash, n);
+ return (setSelected.count(outpt) > 0);
+ }
+
+ void Select(COutPoint& output)
+ {
+ setSelected.insert(output);
+ }
+
+ void UnSelect(COutPoint& output)
+ {
+ setSelected.erase(output);
+ }
+
+ void UnSelectAll()
+ {
+ setSelected.clear();
+ }
+
+ void ListSelected(std::vector<COutPoint>& vOutpoints)
+ {
+ vOutpoints.assign(setSelected.begin(), setSelected.end());
+ }
+
+private:
+ std::set<COutPoint> setSelected;
+
+};
+
+#endif // COINCONTROL_H