Function to get just txn metadata.

This commit is contained in:
JoelKatz
2013-02-15 05:38:01 -08:00
parent c559fd2fb3
commit 7bbf01e114
2 changed files with 18 additions and 0 deletions

View File

@@ -362,6 +362,23 @@ bool Ledger::getTransaction(const uint256& txID, Transaction::pointer& txn, Tran
return true;
}
bool Ledger::getTransactionMeta(const uint256& txID, TransactionMetaSet::pointer& meta)
{
SHAMapTreeNode::TNType type;
SHAMapItem::pointer item = mTransactionMap->peekItem(txID, type);
if (!item)
return false;
if (type != SHAMapTreeNode::tnTRANSACTION_MD)
return false;
SerializerIterator it(item->peekSerializer());
it.getVL(); // skip transaction
meta = boost::make_shared<TransactionMetaSet>(txID, mLedgerSeq, it.getVL());
return true;
}
uint256 Ledger::getHash()
{
if (!mValidHash)

View File

@@ -179,6 +179,7 @@ public:
bool hasTransaction(const uint256& TransID) const { return mTransactionMap->hasItem(TransID); }
Transaction::pointer getTransaction(const uint256& transID) const;
bool getTransaction(const uint256& transID, Transaction::pointer& txn, TransactionMetaSet::pointer& txMeta);
bool getTransactionMeta(const uint256& transID, TransactionMetaSet::pointer& txMeta);
static SerializedTransaction::pointer getSTransaction(SHAMapItem::ref, SHAMapTreeNode::TNType);
SerializedTransaction::pointer getSMTransaction(SHAMapItem::ref, SHAMapTreeNode::TNType,