//------------------------------------------------------------------------------ /* Copyright (c) 2011-2013, OpenCoin, Inc. */ //============================================================================== AccountItem::pointer RippleState::makeItem (const uint160& accountID, SerializedLedgerEntry::ref ledgerEntry) { if (!ledgerEntry || ledgerEntry->getType () != ltRIPPLE_STATE) return AccountItem::pointer (); RippleState* rs = new RippleState (ledgerEntry); rs->setViewAccount (accountID); return AccountItem::pointer (rs); } RippleState::RippleState (SerializedLedgerEntry::ref ledgerEntry) : AccountItem (ledgerEntry), mValid (false), mViewLowest (true), mLowLimit (ledgerEntry->getFieldAmount (sfLowLimit)), mHighLimit (ledgerEntry->getFieldAmount (sfHighLimit)), mLowID (mLowLimit.getIssuer ()), mHighID (mHighLimit.getIssuer ()), mBalance (ledgerEntry->getFieldAmount (sfBalance)) { mFlags = mLedgerEntry->getFieldU32 (sfFlags); mLowQualityIn = mLedgerEntry->getFieldU32 (sfLowQualityIn); mLowQualityOut = mLedgerEntry->getFieldU32 (sfLowQualityOut); mHighQualityIn = mLedgerEntry->getFieldU32 (sfHighQualityIn); mHighQualityOut = mLedgerEntry->getFieldU32 (sfHighQualityOut); mValid = true; } void RippleState::setViewAccount (const uint160& accountID) { bool bViewLowestNew = mLowID == accountID; if (bViewLowestNew != mViewLowest) { mViewLowest = bViewLowestNew; mBalance.negate (); } } Json::Value RippleState::getJson (int) { Json::Value ret (Json::objectValue); ret["low_id"] = mLowID.GetHex (); ret["high_id"] = mHighID.GetHex (); return ret; } // vim:ts=4