From b4198029af0c872a978ed0e004b94acac94d575b Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Mon, 14 Nov 2011 10:39:09 -0800 Subject: [PATCH] Class for tracking conflicted/rejected transactions --- Confirmation.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Confirmation.h diff --git a/Confirmation.h b/Confirmation.h new file mode 100644 index 000000000..665e7a3cd --- /dev/null +++ b/Confirmation.h @@ -0,0 +1,44 @@ +#ifndef __CONFIRMATION__ +#define __CONFIRMATION__ + +#include "newcoin.pb.h" +#include "uint256.h" +#include + +enum ConfirmationStatus +{ + NEW, // first for this account/seq + CONFLICTED, // rejected as of this time + ACCEPTED, // in active bundle, has confirmations + COMMITTED +}; + + +class Confirmation +{ // used primarily to report conflicted or rejected transactions +public: + typedef boost::shared_ptr pointer; + +private: + uint256 mTransactionID; + uint160 mHanko; + uint64 mTimestamp; + ConfirmationStatus mStatus; + bool mConflicts; + std::vector mSignature; + +public: + Transaction(); + Transaction(const uint256 &id); + Transaction(const std::vector rawTransaction); + + const uint256& GetID() const { return mTransactionID; } + const uint160& GetHanko() const { return mHanko; } + uint64 GetTimestamp() const { return mTimestamp; } + ConfirmationStatus() const { return mStatus; } + bool HasConflicts() const { return mConflicts; } + + bool save(); +}; + +#endif