mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Add nickname node functions. Simplify.
This commit is contained in:
@@ -77,6 +77,9 @@ protected:
|
|||||||
|
|
||||||
static Ledger::pointer getSQL(const std::string& sqlStatement);
|
static Ledger::pointer getSQL(const std::string& sqlStatement);
|
||||||
|
|
||||||
|
SerializedLedgerEntry::pointer getASNode(LedgerStateParms& parms, const uint256& nodeID,
|
||||||
|
LedgerEntryType let);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Ledger(const NewcoinAddress& masterID, uint64 startAmount); // used for the starting bootstrap ledger
|
Ledger(const NewcoinAddress& masterID, uint64 startAmount); // used for the starting bootstrap ledger
|
||||||
Ledger(const uint256 &parentHash, const uint256 &transHash, const uint256 &accountHash,
|
Ledger(const uint256 &parentHash, const uint256 &transHash, const uint256 &accountHash,
|
||||||
|
|||||||
@@ -24,12 +24,9 @@ LedgerStateParms Ledger::writeBack(LedgerStateParms parms, SerializedLedgerEntry
|
|||||||
return create ? lepCREATED : lepOKAY;
|
return create ? lepCREATED : lepOKAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
SerializedLedgerEntry::pointer Ledger::getAccountRoot(LedgerStateParms& parms, const uint160& accountID)
|
SerializedLedgerEntry::pointer Ledger::getASNode(LedgerStateParms& parms, const uint256& nodeID,
|
||||||
|
LedgerEntryType let )
|
||||||
{
|
{
|
||||||
uint256 nodeID=getAccountRootIndex(accountID);
|
|
||||||
|
|
||||||
ScopedLock l(mAccountStateMap->Lock());
|
|
||||||
|
|
||||||
SHAMapItem::pointer account = mAccountStateMap->peekItem(nodeID);
|
SHAMapItem::pointer account = mAccountStateMap->peekItem(nodeID);
|
||||||
if (!account)
|
if (!account)
|
||||||
{
|
{
|
||||||
@@ -39,26 +36,57 @@ SerializedLedgerEntry::pointer Ledger::getAccountRoot(LedgerStateParms& parms, c
|
|||||||
return SerializedLedgerEntry::pointer();
|
return SerializedLedgerEntry::pointer();
|
||||||
}
|
}
|
||||||
|
|
||||||
parms = lepCREATED;
|
parms = parms | lepCREATED | lepOKAY;
|
||||||
SerializedLedgerEntry::pointer sle=boost::make_shared<SerializedLedgerEntry>(ltACCOUNT_ROOT);
|
SerializedLedgerEntry::pointer sle=boost::make_shared<SerializedLedgerEntry>(let);
|
||||||
sle->setIndex(nodeID);
|
sle->setIndex(nodeID);
|
||||||
return sle;
|
return sle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SerializedLedgerEntry::pointer sle =
|
||||||
|
boost::make_shared<SerializedLedgerEntry>(account->peekSerializer(), nodeID);
|
||||||
|
|
||||||
|
if(sle->getType() != let)
|
||||||
|
{ // maybe it's a currency or something
|
||||||
|
parms = parms | lepWRONGTYPE;
|
||||||
|
return SerializedLedgerEntry::pointer();
|
||||||
|
}
|
||||||
|
|
||||||
|
parms = parms | lepOKAY;
|
||||||
|
return sle;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
SerializedLedgerEntry::pointer Ledger::getAccountRoot(LedgerStateParms& parms, const uint160& accountID)
|
||||||
|
{
|
||||||
|
uint256 nodeID=getAccountRootIndex(accountID);
|
||||||
|
|
||||||
|
ScopedLock l(mAccountStateMap->Lock());
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SerializedLedgerEntry::pointer sle =
|
return getASNode(parms, nodeID, ltACCOUNT_ROOT);
|
||||||
boost::make_shared<SerializedLedgerEntry>(account->peekSerializer(), nodeID);
|
|
||||||
|
|
||||||
if(sle->getType() != ltACCOUNT_ROOT)
|
|
||||||
{ // maybe it's a currency or something
|
|
||||||
parms = lepWRONGTYPE;
|
|
||||||
return SerializedLedgerEntry::pointer();
|
|
||||||
}
|
|
||||||
parms = lepOKAY;
|
|
||||||
return sle;
|
|
||||||
}
|
}
|
||||||
catch(...)
|
catch (...)
|
||||||
|
{
|
||||||
|
parms = lepERROR;
|
||||||
|
return SerializedLedgerEntry::pointer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SerializedLedgerEntry::pointer Ledger::getNickname(LedgerStateParms& parms, const std::string& nickname)
|
||||||
|
{
|
||||||
|
return getNickname(parms, Serializer::getSHA512Half(nickname));
|
||||||
|
}
|
||||||
|
|
||||||
|
SerializedLedgerEntry::pointer Ledger::getNickname(LedgerStateParms& parms, const uint256& nickHash)
|
||||||
|
{
|
||||||
|
ScopedLock l(mAccountStateMap->Lock());
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return getASNode(parms, nickHash, ltNICKNAME);
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
{
|
{
|
||||||
parms = lepERROR;
|
parms = lepERROR;
|
||||||
return SerializedLedgerEntry::pointer();
|
return SerializedLedgerEntry::pointer();
|
||||||
|
|||||||
Reference in New Issue
Block a user