coincontrol.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // ECOin - Copyright (c) - 2014/2022 - GPLv3 - epsylon@riseup.net (https://03c8.net)
  2. #ifndef COINCONTROL_H
  3. #define COINCONTROL_H
  4. class CCoinControl
  5. {
  6. public:
  7. CTxDestination destChange;
  8. CCoinControl()
  9. {
  10. SetNull();
  11. }
  12. void SetNull()
  13. {
  14. destChange = CNoDestination();
  15. setSelected.clear();
  16. }
  17. bool HasSelected() const
  18. {
  19. return (setSelected.size() > 0);
  20. }
  21. bool IsSelected(const uint256& hash, unsigned int n) const
  22. {
  23. COutPoint outpt(hash, n);
  24. return (setSelected.count(outpt) > 0);
  25. }
  26. void Select(COutPoint& output)
  27. {
  28. setSelected.insert(output);
  29. }
  30. void UnSelect(COutPoint& output)
  31. {
  32. setSelected.erase(output);
  33. }
  34. void UnSelectAll()
  35. {
  36. setSelected.clear();
  37. }
  38. void ListSelected(std::vector<COutPoint>& vOutpoints)
  39. {
  40. vOutpoints.assign(setSelected.begin(), setSelected.end());
  41. }
  42. private:
  43. std::set<COutPoint> setSelected;
  44. };
  45. #endif // COINCONTROL_H