Files
rippled/LocalTransaction.h
JoelKatz 94e4e1d04b Handle all the weird edge cases, such as:
A remote transaction is received *from* a local account. We neeed
to update our balance and sequence tracking.
A local transaction loses to a conflict.
2012-01-18 15:33:58 -08:00

52 lines
1.3 KiB
C++

#ifndef __LOCALTRANSACTION__
#define __LOCALTRANSACTION__
// A structure to represent a local transaction
#include <string>
#include <boost/shared_ptr.hpp>
#include "uint256.h"
#include "Transaction.h"
class LocalTransaction
{
public:
typedef boost::shared_ptr<LocalTransaction> pointer;
protected:
// core specifications
uint160 mDestAcctID;
uint64 mAmount;
uint32 mTag;
std::string mComment;
bool mPaid;
Transaction::pointer mTransaction;
public:
LocalTransaction(const uint160 &dest, uint64 amount, uint32 tag) :
mDestAcctID(dest), mAmount(amount), mTag(tag), mPaid(false) { ; }
void setComment(const std::string& comment) { mComment=comment; }
const uint160& getDestinationAccount() const { return mDestAcctID; }
uint64 getAmount() const { return mAmount; }
uint32 getTag() const { return mTag; }
const std::string& getComment() const { return mComment; }
Transaction::pointer getTransaction() { return mTransaction; }
void setTransaction(Transaction::pointer t) { mTransaction=t; }
bool isPaid() const { return mPaid; }
void setPaid() { mPaid=true; }
void setUnpaid() { mPaid=false; }
void performTransaction(); // perform this transaction as if we received it from the network
bool makeTransaction(); // create a transaction object according to these rules
};
#endif