From 1dfa9d061533f7237adfa6705a450b6c2e114401 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Fri, 1 Jun 2012 20:32:05 -0700 Subject: [PATCH] We can't adjust the ledger coin total when we are processing transactions non-finally. --- src/TransactionEngine.cpp | 5 ++++- src/TransactionEngine.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/TransactionEngine.cpp b/src/TransactionEngine.cpp index 09be834c25..67d4e5ac8b 100644 --- a/src/TransactionEngine.cpp +++ b/src/TransactionEngine.cpp @@ -520,7 +520,10 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran Serializer s; txn.add(s); - mLedger->addTransaction(txID, s, saPaid); + if (!mLedger->addTransaction(txID, s)) + assert(false); + if ((params & tepUPDATE_TOTAL) != tepNONE) + mLedger->destroyCoins(saPaid.getNValue()); } return result; diff --git a/src/TransactionEngine.h b/src/TransactionEngine.h index 679cc8d29a..04e00c9878 100644 --- a/src/TransactionEngine.h +++ b/src/TransactionEngine.h @@ -60,6 +60,7 @@ enum TransactionEngineParams tepNONE = 0, tepNO_CHECK_SIGN = 1, // Signature already checked tepNO_CHECK_FEE = 2, // It was voted into a ledger anyway + tepUPDATE_TOTAL = 4, // Update the total coins }; enum TransactionAccountAction