aboutsummaryrefslogtreecommitdiff
path: root/src/coincontrol.h
diff options
context:
space:
mode:
authorCozz Lovan <cozzlovan@yahoo.com>2013-08-12 17:03:03 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2013-11-14 14:25:10 +0100
commit6a86c24db146d9ca5d1d5c83099d935c3feb63bb (patch)
tree84ea08401061e81d178a4c2caf34233281227da4 /src/coincontrol.h
parent8dfd8c62dccac96afbda5ad0e66e68ee4820481f (diff)
Coin Control Features
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