add meta to account_tx

This commit is contained in:
jed
2012-11-29 09:22:44 -08:00
parent e90a1a404d
commit 32c231ab57
4 changed files with 22 additions and 25 deletions

View File

@@ -877,10 +877,10 @@ void NetworkOPs::setMode(OperatingMode om)
}
std::vector< std::pair<uint32, uint256> >
std::vector< std::pair<Transaction::pointer, TransactionMetaSet::pointer> >
NetworkOPs::getAccountTxs(const RippleAddress& account, uint32 minLedger, uint32 maxLedger)
{
std::vector< std::pair<uint32, uint256> > affectedAccounts;
std::vector< std::pair<Transaction::pointer, TransactionMetaSet::pointer> > ret;
std::string sql =
str(boost::format("SELECT LedgerSeq,Status,RawTxn,TxnMeta FROM Transactions where TransID in (SELECT TransID from AccountTransactions "
@@ -893,12 +893,24 @@ std::vector< std::pair<uint32, uint256> >
SQL_FOREACH(db, sql)
{
affectedAccounts.push_back(std::make_pair<uint32, uint256>(db->getInt("LedgerSeq"), uint256(db->getStrBinary("TransID"))));
Transaction::pointer txn=Transaction::transactionFromSQL(db,false);
Serializer rawMeta;
int metaSize = 2048;
rawMeta.resize(metaSize);
metaSize = db->getBinary("RawTxn", &*rawMeta.begin(), rawMeta.getLength());
if (metaSize > rawMeta.getLength())
{
rawMeta.resize(metaSize);
db->getBinary("RawTxn", &*rawMeta.begin(), rawMeta.getLength());
}else rawMeta.resize(metaSize);
TransactionMetaSet::pointer meta= boost::make_shared<TransactionMetaSet>(txn->getID(), txn->getLedger(), rawMeta.getData());
ret.push_back(std::make_pair<Transaction::pointer, TransactionMetaSet::pointer>(txn,meta));
}
}
return affectedAccounts;
return ret;
}
std::vector<RippleAddress>

View File

@@ -230,7 +230,7 @@ public:
uint256 getConsensusLCL();
// client information retrieval functions
std::vector< std::pair<uint32, uint256> >
std::vector< std::pair<Transaction::pointer, TransactionMetaSet::pointer> >
getAccountTxs(const RippleAddress& account, uint32 minLedger, uint32 maxLedger);
std::vector<RippleAddress> getLedgerAffectedAccounts(uint32 ledgerSeq);
std::vector<SerializedTransaction> getLedgerTransactions(uint32 ledgerSeq);

View File

@@ -1300,26 +1300,10 @@ Json::Value RPCHandler::doAccountTransactions(const Json::Value& params)
// uint32 currentLedger = 0;
for (std::vector< std::pair<Transaction::pointer, TransactionMetaSet::pointer> >::iterator it = txns.begin(), end = txns.end(); it != end; ++it)
{
Json::objectValue obj;
obj["tx"]=it->first->getJson(1);
obj["meta"]=it->second->getJson(0);
Json::Value obj(Json::objectValue);
if(it->first) obj["tx"]=it->first->getJson(1);
if(it->second) obj["meta"]=it->second->getJson(0);
ret["transactions"].append(obj);
Transaction::pointer txn = theApp->getMasterTransaction().fetch(it->second, true);
if (!txn)
{
ret["transactions"].append(it->second.GetHex());
}
else
{
txn->setLedger(it->first);
ret["transactions"].append(txn->getJson(1));
TransactionMetaSet::pointer meta = boost::make_shared<TransactionMetaSet>(
stTxn.getTransactionID(), lpAccepted->getLedgerSeq(), it.getVL());
}
}
return ret;
#ifndef DEBUG

View File

@@ -245,6 +245,7 @@ Transaction::pointer Transaction::transactionFromSQL(const std::string& sql)
return tr;
}
Transaction::pointer Transaction::load(const uint256& id)
{
std::string sql = "SELECT LedgerSeq,Status,RawTxn FROM Transactions WHERE TransID='";