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