mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Lots of debugging.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
|
||||
#include "Ledger.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <boost/make_shared.hpp>
|
||||
|
||||
@@ -45,31 +46,42 @@ LedgerStateParms Ledger::writeBack(LedgerStateParms parms, SerializedLedgerEntry
|
||||
SerializedLedgerEntry::pointer Ledger::getASNode(LedgerStateParms& parms, const uint256& nodeID,
|
||||
LedgerEntryType let )
|
||||
{
|
||||
std::cerr << "getASNode>" << nodeID.ToString() << std::endl;
|
||||
SHAMapItem::pointer account = mAccountStateMap->peekItem(nodeID);
|
||||
std::cerr << "getASNode: d: " << nodeID.ToString() << std::endl;
|
||||
if (!account)
|
||||
{
|
||||
if ( (parms & lepCREATE) == 0 )
|
||||
{
|
||||
parms = lepMISSING;
|
||||
std::cerr << "getASNode: missing: " << nodeID.ToString() << std::endl;
|
||||
return SerializedLedgerEntry::pointer();
|
||||
}
|
||||
|
||||
std::cerr << "getASNode: c: " << nodeID.ToString() << std::endl;
|
||||
parms = parms | lepCREATED | lepOKAY;
|
||||
SerializedLedgerEntry::pointer sle=boost::make_shared<SerializedLedgerEntry>(let);
|
||||
sle->setIndex(nodeID);
|
||||
|
||||
return sle;
|
||||
}
|
||||
|
||||
std::cerr << "getASNode: a: " << nodeID.ToString() << std::endl;
|
||||
std::cerr << "getASNode: e: " << strHex(account->peekSerializer().getData()) << std::endl;
|
||||
SerializedLedgerEntry::pointer sle =
|
||||
boost::make_shared<SerializedLedgerEntry>(account->peekSerializer(), nodeID);
|
||||
|
||||
std::cerr << "getASNode: b: " << nodeID.ToString() << std::endl;
|
||||
if(sle->getType() != let)
|
||||
{ // maybe it's a currency or something
|
||||
std::cerr << "getASNode: wrong type: " << nodeID.ToString() << std::endl;
|
||||
parms = parms | lepWRONGTYPE;
|
||||
return SerializedLedgerEntry::pointer();
|
||||
}
|
||||
|
||||
parms = parms | lepOKAY;
|
||||
std::cerr << "getASNode<" << nodeID.ToString() << std::endl;
|
||||
|
||||
return sle;
|
||||
|
||||
}
|
||||
@@ -203,12 +215,14 @@ SerializedLedgerEntry::pointer Ledger::getDirNode(LedgerStateParms& parms, const
|
||||
{
|
||||
ScopedLock l(mAccountStateMap->Lock());
|
||||
|
||||
std::cerr << "getDirNode: " << uNodeIndex.ToString() << std::endl;
|
||||
try
|
||||
{
|
||||
return getASNode(parms, uNodeIndex, ltDIR_NODE);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
std::cerr << "getDirNode: ERROR: " << uNodeIndex.ToString() << std::endl;
|
||||
parms = lepERROR;
|
||||
return SerializedLedgerEntry::pointer();
|
||||
}
|
||||
|
||||
@@ -182,8 +182,19 @@ bool NetworkOPs::getDirInfo(
|
||||
|
||||
if (sleRoot)
|
||||
{
|
||||
uDirLineNodeFirst = uRootIndex | sleRoot->getIFieldU64(sfFirstNode);
|
||||
uDirLineNodeLast = uRootIndex | sleRoot->getIFieldU64(sfLastNode);
|
||||
std::cerr << "getDirInfo: root index: " << uRootIndex.ToString() << std::endl;
|
||||
|
||||
std::cerr << "getDirInfo: first: " << strHex(sleRoot->getIFieldU64(sfFirstNode)) << std::endl;
|
||||
std::cerr << "getDirInfo: last: " << strHex(sleRoot->getIFieldU64(sfLastNode)) << std::endl;
|
||||
uDirLineNodeFirst = Ledger::getDirIndex(uBase, letKind, sleRoot->getIFieldU64(sfFirstNode));
|
||||
uDirLineNodeLast = Ledger::getDirIndex(uBase, letKind, sleRoot->getIFieldU64(sfLastNode));
|
||||
|
||||
std::cerr << "getDirInfo: first: " << uDirLineNodeFirst.ToString() << std::endl;
|
||||
std::cerr << "getDirInfo: last: " << uDirLineNodeLast.ToString() << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "getDirInfo: root index: NOT FOUND: " << uRootIndex.ToString() << std::endl;
|
||||
}
|
||||
|
||||
return !!sleRoot;
|
||||
@@ -197,7 +208,15 @@ STVector256 NetworkOPs::getDirNode(const uint256& uLedger, const uint256& uDirLi
|
||||
SLE::pointer sleNode = mLedgerMaster->getLedgerByHash(uLedger)->getDirNode(lspNode, uDirLineNode);
|
||||
|
||||
if (sleNode)
|
||||
{
|
||||
std::cerr << "getDirNode: node index: " << uDirLineNode.ToString() << std::endl;
|
||||
|
||||
svIndexes = sleNode->getIFieldV256(sfIndexes);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "getDirNode: node index: NOT FOUND: " << uDirLineNode.ToString() << std::endl;
|
||||
}
|
||||
|
||||
return svIndexes;
|
||||
}
|
||||
|
||||
@@ -367,14 +367,11 @@ Json::Value RPCServer::doAccountLines(Json::Value ¶ms)
|
||||
|
||||
Json::Value ret;
|
||||
|
||||
// This needs to use a ledger.
|
||||
ret = accountFromString(uLedger, naAccount, bIndex, strIdent, iIndex);
|
||||
|
||||
if (!ret.empty())
|
||||
return ret;
|
||||
|
||||
// SHAMap::pointer smAccounts = theApp->getMasterLedger().getCurrentLedger()->peekAccountStateMap();
|
||||
|
||||
// Get info on account.
|
||||
ret = Json::Value(Json::objectValue);
|
||||
|
||||
@@ -382,13 +379,12 @@ Json::Value RPCServer::doAccountLines(Json::Value ¶ms)
|
||||
if (bIndex)
|
||||
ret["index"] = iIndex;
|
||||
|
||||
AccountState::pointer as = mNetOps->getAccountState(uLedger, naAccount);
|
||||
AccountState::pointer as = mNetOps->getAccountState(uLedger, naAccount);
|
||||
if (as)
|
||||
{
|
||||
ret["account"] = naAccount.humanAccountID();
|
||||
|
||||
// We access a committed ledger and need not worry about changes.
|
||||
// XXX We need to get the ID of the commited ledger for a conistent view.
|
||||
uint256 uDirLineNodeFirst;
|
||||
uint256 uDirLineNodeLast;
|
||||
|
||||
|
||||
@@ -36,10 +36,16 @@ TransactionEngineResult TransactionEngine::dirAdd(
|
||||
uNodeDir = 1;
|
||||
|
||||
sleRoot = boost::make_shared<SerializedLedgerEntry>(ltDIR_ROOT);
|
||||
|
||||
|
||||
sleRoot->setIndex(uRootIndex);
|
||||
std::cerr << "dirAdd: Creating dir index: " << sleRoot->getIndex().ToString() << std::endl;
|
||||
|
||||
sleRoot->setIFieldU64(sfFirstNode, uNodeDir);
|
||||
sleRoot->setIFieldU64(sfLastNode, uNodeDir);
|
||||
|
||||
std::cerr << "dirAdd: first & last: " << strHex(uNodeDir) << std::endl;
|
||||
|
||||
accounts.push_back(std::make_pair(taaCREATE, sleRoot));
|
||||
}
|
||||
|
||||
@@ -72,6 +78,8 @@ TransactionEngineResult TransactionEngine::dirAdd(
|
||||
// Record new last node.
|
||||
sleNode = SLE::pointer();
|
||||
|
||||
std::cerr << "dirAdd: last: " << strHex(uNodeDir) << std::endl;
|
||||
|
||||
sleRoot->setIFieldU64(sfLastNode, uNodeDir);
|
||||
accounts.push_back(std::make_pair(taaMODIFY, sleRoot));
|
||||
}
|
||||
@@ -83,6 +91,8 @@ TransactionEngineResult TransactionEngine::dirAdd(
|
||||
sleNode = boost::make_shared<SerializedLedgerEntry>(ltDIR_NODE);
|
||||
sleNode->setIndex(uNodeIndex);
|
||||
|
||||
std::cerr << "dirAdd: Creating dir node: " << sleNode->getIndex().ToString() << std::endl;
|
||||
|
||||
STVector256 svIndexes;
|
||||
|
||||
svIndexes.peekValue().push_back(uLedgerIndex);
|
||||
@@ -597,13 +607,15 @@ TransactionEngineResult TransactionEngine::doCreditSet(const SerializedTransacti
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "doCreditSet: Creating ripple line." << std::endl;
|
||||
STAmount saZero(uCurrency);
|
||||
|
||||
bAddIndex = true;
|
||||
sleRippleState = boost::make_shared<SerializedLedgerEntry>(ltRIPPLE_STATE);
|
||||
|
||||
sleRippleState->setIndex(Ledger::getRippleStateIndex(uSrcAccountID, uDstAccountID, uCurrency));
|
||||
std::cerr << "doCreditSet: Creating ripple line: "
|
||||
<< sleRippleState->getIndex().ToString()
|
||||
<< std::endl;
|
||||
|
||||
sleRippleState->setFlag(uFlags);
|
||||
sleRippleState->setIFieldAmount(sfBalance, saZero); // Zero balance in currency.
|
||||
|
||||
Reference in New Issue
Block a user