mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-28 06:55:50 +00:00
76 lines
1.9 KiB
C++
76 lines
1.9 KiB
C++
//------------------------------------------------------------------------------
|
|
/*
|
|
Copyright (c) 2011-2013, OpenCoin, Inc.
|
|
*/
|
|
//==============================================================================
|
|
|
|
#ifndef RIPPLE_DISPUTEDTX_H
|
|
#define RIPPLE_DISPUTEDTX_H
|
|
|
|
/** A transaction discovered to be in dispute during conensus.
|
|
|
|
During consensus, a @ref DisputedTx is created when a transaction
|
|
is discovered to be disputed. The object persists only as long as
|
|
the dispute.
|
|
|
|
Undisputed transactions have no corresponding @ref DisputedTx object.
|
|
*/
|
|
class DisputedTx
|
|
{
|
|
public:
|
|
typedef boost::shared_ptr <DisputedTx> pointer;
|
|
|
|
DisputedTx (uint256 const& txID,
|
|
Blob const& tx,
|
|
bool ourVote) :
|
|
mTransactionID (txID), mYays (0), mNays (0), mOurVote (ourVote), transaction (tx)
|
|
{
|
|
;
|
|
}
|
|
|
|
uint256 const& getTransactionID () const
|
|
{
|
|
return mTransactionID;
|
|
}
|
|
|
|
bool getOurVote () const
|
|
{
|
|
return mOurVote;
|
|
}
|
|
|
|
// VFALCO TODO make this const
|
|
Serializer& peekTransaction ()
|
|
{
|
|
return transaction;
|
|
}
|
|
|
|
void setOurVote (bool o)
|
|
{
|
|
mOurVote = o;
|
|
}
|
|
|
|
// VFALCO NOTE its not really a peer, its the 160 bit hash of the validator's public key
|
|
//
|
|
void setVote (uint160 const& peer, bool votesYes);
|
|
void unVote (uint160 const& peer);
|
|
|
|
bool updateVote (int percentTime, bool proposing);
|
|
Json::Value getJson ();
|
|
|
|
private:
|
|
uint256 mTransactionID;
|
|
int mYays;
|
|
int mNays;
|
|
bool mOurVote;
|
|
Serializer transaction;
|
|
boost::unordered_map <uint160, bool> mVotes;
|
|
};
|
|
|
|
// VFALCO TODO Rename and put these in a tidy place
|
|
typedef std::map<uint256, DisputedTx::pointer>::value_type u256_lct_pair;
|
|
typedef std::map<uint160, LedgerProposal::pointer>::value_type u160_prop_pair;
|
|
#define LEDGER_TOTAL_PASSES 8
|
|
#define LEDGER_RETRY_PASSES 5
|
|
|
|
#endif
|