diff --git a/src/cpp/ripple/NetworkOPs.cpp b/src/cpp/ripple/NetworkOPs.cpp index d48a971d3c..dc43c7e789 100644 --- a/src/cpp/ripple/NetworkOPs.cpp +++ b/src/cpp/ripple/NetworkOPs.cpp @@ -1227,6 +1227,10 @@ NetworkOPs::getAccountTxs (const RippleAddress& account, int32 minLedger, int32 } else rawMeta.resize (metaSize); + if (rawMeta.getLength() == 0) + { // FIXME metadata isn't in the table, update metadata and sequence in Transactions DB from ledger + } + TransactionMetaSet::pointer meta = boost::make_shared (txn->getID (), txn->getLedger (), rawMeta.getData ()); ret.push_back (std::pair (txn, meta)); } diff --git a/src/cpp/ripple/Transaction.cpp b/src/cpp/ripple/Transaction.cpp index 2e0d2dc8e8..0d71e23433 100644 --- a/src/cpp/ripple/Transaction.cpp +++ b/src/cpp/ripple/Transaction.cpp @@ -156,6 +156,8 @@ void Transaction::save () Database* db = getApp().getTxnDB ()->getDB (); ScopedLock dbLock (getApp().getTxnDB ()->getDBLock ()); + + // FIXME: This can destroy metadata db->executeSQL (mTransaction->getSQLInsertReplaceHeader () + mTransaction->getSQL (getLedger (), status) + ";"); } diff --git a/src/cpp/ripple/ripple_AcceptedLedgerTx.cpp b/src/cpp/ripple/ripple_AcceptedLedgerTx.cpp index 23346f01d9..383cc8a1bc 100644 --- a/src/cpp/ripple/ripple_AcceptedLedgerTx.cpp +++ b/src/cpp/ripple/ripple_AcceptedLedgerTx.cpp @@ -10,7 +10,7 @@ AcceptedLedgerTx::AcceptedLedgerTx (uint32 seq, SerializerIterator& sit) SerializerIterator txnIt (txnSer); mTxn = boost::make_shared (boost::ref (txnIt)); - mRawMeta = sit.getVL (); + mRawMeta = sit.getVL (); mMeta = boost::make_shared (mTxn->getTransactionID (), seq, mRawMeta); mAffected = mMeta->getAffectedAccounts (); mResult = mMeta->getResultTER ();