Files
rippled/src/RippleState.cpp
2012-07-02 17:05:08 -07:00

33 lines
805 B
C++

#include "RippleState.h"
RippleState::RippleState(SerializedLedgerEntry::pointer ledgerEntry) :
mLedgerEntry(ledgerEntry),
mValid(false),
mViewLowest(true)
{
if (!mLedgerEntry || mLedgerEntry->getType() != ltRIPPLE_STATE) return;
mLowID = mLedgerEntry->getIValueFieldAccount(sfLowID);
mHighID = mLedgerEntry->getIValueFieldAccount(sfHighID);
mLowLimit = mLedgerEntry->getIValueFieldAmount(sfLowLimit);
mHighLimit = mLedgerEntry->getIValueFieldAmount(sfHighLimit);
mBalance = mLedgerEntry->getIValueFieldAmount(sfBalance);
mValid = true;
}
void RippleState::setViewAccount(const NewcoinAddress& naView)
{
bool bViewLowestNew = mLowID.getAccountID() == naView.getAccountID();
if (bViewLowestNew != mViewLowest)
{
mViewLowest = bViewLowestNew;
mBalance.negate();
}
}
// vim:ts=4