diff options
| author | Jonas Schnelli <[email protected]> | 2013-06-03 15:18:41 +0200 |
|---|---|---|
| committer | Jonas Schnelli <[email protected]> | 2013-06-03 15:18:41 +0200 |
| commit | 39fe9de6b2b255969971beca8fa25a33ad2e5750 (patch) | |
| tree | 6686041f6b801d0ea5185b026a480a5be61510e6 /src/txdb.cpp | |
| parent | MaxOSX: settings fixes (#2371) (diff) | |
| parent | Merge pull request #2672 from Diapolo/Qt_testnet (diff) | |
| download | discoin-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.cpp | 22 |
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; } |