aboutsummaryrefslogtreecommitdiff
path: root/src/txdb.cpp
diff options
context:
space:
mode:
authorJonas Schnelli <[email protected]>2013-06-03 15:18:41 +0200
committerJonas Schnelli <[email protected]>2013-06-03 15:18:41 +0200
commit39fe9de6b2b255969971beca8fa25a33ad2e5750 (patch)
tree6686041f6b801d0ea5185b026a480a5be61510e6 /src/txdb.cpp
parentMaxOSX: settings fixes (#2371) (diff)
parentMerge pull request #2672 from Diapolo/Qt_testnet (diff)
downloaddiscoin-39fe9de6b2b255969971beca8fa25a33ad2e5750.tar.xz
discoin-39fe9de6b2b255969971beca8fa25a33ad2e5750.zip
Merge branch 'master' of git://github.com/bitcoin/bitcoin into prefsFix
Signed-off-by: Jonas Schnelli <[email protected]> Conflicts: bitcoin-qt.pro
Diffstat (limited to 'src/txdb.cpp')
-rw-r--r--src/txdb.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/txdb.cpp b/src/txdb.cpp
index 5b0527c76..3d34710d2 100644
--- a/src/txdb.cpp
+++ b/src/txdb.cpp
@@ -5,6 +5,7 @@
#include "txdb.h"
#include "main.h"
+#include "hash.h"
using namespace std;
@@ -114,6 +115,10 @@ bool CCoinsViewDB::GetStats(CCoinsStats &stats) {
leveldb::Iterator *pcursor = db.NewIterator();
pcursor->SeekToFirst();
+ CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION);
+ stats.hashBlock = GetBestBlock()->GetBlockHash();
+ ss << stats.hashBlock;
+ int64 nTotalAmount = 0;
while (pcursor->Valid()) {
boost::this_thread::interruption_point();
try {
@@ -128,13 +133,22 @@ bool CCoinsViewDB::GetStats(CCoinsStats &stats) {
ssValue >> coins;
uint256 txhash;
ssKey >> txhash;
-
+ ss << txhash;
+ ss << VARINT(coins.nVersion);
+ ss << (coins.fCoinBase ? 'c' : 'n');
+ ss << VARINT(coins.nHeight);
stats.nTransactions++;
- BOOST_FOREACH(const CTxOut &out, coins.vout) {
- if (!out.IsNull())
+ for (unsigned int i=0; i<coins.vout.size(); i++) {
+ const CTxOut &out = coins.vout[i];
+ if (!out.IsNull()) {
stats.nTransactionOutputs++;
+ ss << VARINT(i+1);
+ ss << out;
+ nTotalAmount += out.nValue;
+ }
}
stats.nSerializedSize += 32 + slValue.size();
+ ss << VARINT(0);
}
pcursor->Next();
} catch (std::exception &e) {
@@ -143,6 +157,8 @@ bool CCoinsViewDB::GetStats(CCoinsStats &stats) {
}
delete pcursor;
stats.nHeight = GetBestBlock()->nHeight;
+ stats.hashSerialized = ss.GetHash();
+ stats.nTotalAmount = nTotalAmount;
return true;
}