X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fdb.cpp;h=af2ae834dd40bedc09fa589a315354bfa5fc3b4d;hb=21d9f36781604e4ca9fc35dc65265593423b73e9;hp=9b29e799e0a23138d243494b0e1a16c914fec33d;hpb=4c6e22953ef8ae0764576993088ec83d729d18f8;p=novacoin.git diff --git a/src/db.cpp b/src/db.cpp index 9b29e79..af2ae83 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -3,6 +3,8 @@ // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php. +#include + #include "headers.h" #include "db.h" #include "net.h" @@ -14,7 +16,7 @@ using namespace boost; unsigned int nWalletDBUpdated; -uint64 nAccountingEntryNumber = 0; +uint64_t nAccountingEntryNumber = 0; @@ -131,7 +133,7 @@ CDB::CDB(const char* pszFile, const char* pszMode) : pdb(NULL) { bool fTmp = fReadOnly; fReadOnly = false; - WriteVersion(VERSION); + WriteVersion(CLIENT_VERSION); fReadOnly = fTmp; } @@ -236,7 +238,7 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip) { // Update version: ssValue.clear(); - ssValue << VERSION; + ssValue << CLIENT_VERSION; } Dbt datKey(&ssKey[0], ssKey.size()); Dbt datValue(&ssValue[0], ssValue.size()); @@ -705,12 +707,12 @@ bool CWalletDB::WriteAccountingEntry(const CAccountingEntry& acentry) return Write(boost::make_tuple(string("acentry"), acentry.strAccount, ++nAccountingEntryNumber), acentry); } -int64 CWalletDB::GetAccountCreditDebit(const string& strAccount) +int64_t CWalletDB::GetAccountCreditDebit(const string& strAccount) { list entries; ListAccountCreditDebit(strAccount, entries); - int64 nCreditDebit = 0; + int64_t nCreditDebit = 0; BOOST_FOREACH (const CAccountingEntry& entry, entries) nCreditDebit += entry.nCreditDebit; @@ -730,7 +732,7 @@ void CWalletDB::ListAccountCreditDebit(const string& strAccount, list> strAccount; - uint64 nNumber; + uint64_t nNumber; ssKey >> nNumber; if (nNumber > nAccountingEntryNumber) nAccountingEntryNumber = nNumber; @@ -899,7 +901,7 @@ int CWalletDB::LoadWallet(CWallet* pwallet) } else if (strType == "pool") { - int64 nIndex; + int64_t nIndex; ssKey >> nIndex; pwallet->setKeyPool.insert(nIndex); } @@ -931,9 +933,18 @@ int CWalletDB::LoadWallet(CWallet* pwallet) { int nMinVersion = 0; ssValue >> nMinVersion; - if (nMinVersion > VERSION) + if (nMinVersion > CLIENT_VERSION) return DB_TOO_NEW; } + else if (strType == "cscript") + { + uint160 hash; + ssKey >> hash; + CScript script; + ssValue >> script; + if (!pwallet->LoadCScript(hash, script)) + return DB_CORRUPT; + } } pcursor->close(); } @@ -956,13 +967,13 @@ int CWalletDB::LoadWallet(CWallet* pwallet) if (fIsEncrypted && (nFileVersion == 40000 || nFileVersion == 50000)) return DB_NEED_REWRITE; - if (nFileVersion < VERSION) // Update + if (nFileVersion < CLIENT_VERSION) // Update { // Get rid of old debug.log file in current directory if (nFileVersion <= 105 && !pszSetDataDir[0]) unlink("debug.log"); - WriteVersion(VERSION); + WriteVersion(CLIENT_VERSION); } return DB_LOAD_OK; @@ -980,7 +991,7 @@ void ThreadFlushWalletDB(void* parg) unsigned int nLastSeen = nWalletDBUpdated; unsigned int nLastFlushed = nWalletDBUpdated; - int64 nLastWalletUpdate = GetTime(); + int64_t nLastWalletUpdate = GetTime(); while (!fShutdown) { Sleep(500); @@ -1012,7 +1023,7 @@ void ThreadFlushWalletDB(void* parg) printf("%s ", DateTimeStrFormat("%x %H:%M:%S", GetTime()).c_str()); printf("Flushing wallet.dat\n"); nLastFlushed = nWalletDBUpdated; - int64 nStart = GetTimeMillis(); + int64_t nStart = GetTimeMillis(); // Flush wallet.dat so it's self contained CloseDb(strFile);