diff options
Diffstat (limited to 'src')
57 files changed, 525 insertions, 441 deletions
diff --git a/src/base58.h b/src/base58.h index cba638f4e0..3f2d82f11b 100644 --- a/src/base58.h +++ b/src/base58.h @@ -15,6 +15,8 @@ #ifndef BITCOIN_BASE58_H #define BITCOIN_BASE58_H +#include <stdint.h> + #include <string> #include <vector> #include "bignum.h" diff --git a/src/bignum.h b/src/bignum.h index 135eade679..baa9cb55da 100644 --- a/src/bignum.h +++ b/src/bignum.h @@ -5,6 +5,8 @@ #ifndef BITCOIN_BIGNUM_H #define BITCOIN_BIGNUM_H +#include <stdint.h> + #include <stdexcept> #include <vector> #include <openssl/bn.h> @@ -81,12 +83,12 @@ public: CBigNum(short n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); } CBigNum(int n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); } CBigNum(long n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); } - CBigNum(int64 n) { BN_init(this); setint64(n); } + CBigNum(int64_t n) { BN_init(this); setint64(n); } CBigNum(unsigned char n) { BN_init(this); setulong(n); } CBigNum(unsigned short n) { BN_init(this); setulong(n); } CBigNum(unsigned int n) { BN_init(this); setulong(n); } CBigNum(unsigned long n) { BN_init(this); setulong(n); } - CBigNum(uint64 n) { BN_init(this); setuint64(n); } + CBigNum(uint64_t n) { BN_init(this); setuint64(n); } explicit CBigNum(uint256 n) { BN_init(this); setuint256(n); } explicit CBigNum(const std::vector<unsigned char>& vch) @@ -120,12 +122,12 @@ public: return (n > std::numeric_limits<int>::max() ? std::numeric_limits<int>::min() : -(int)n); } - void setint64(int64 n) + void setint64(int64_t n) { unsigned char pch[sizeof(n) + 6]; unsigned char* p = pch + 4; bool fNegative = false; - if (n < (int64)0) + if (n < (int64_t)0) { n = -n; fNegative = true; @@ -155,7 +157,7 @@ public: BN_mpi2bn(pch, p - pch, this); } - void setuint64(uint64 n) + void setuint64(uint64_t n) { unsigned char pch[sizeof(n) + 6]; unsigned char* p = pch + 4; diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp index bed90d4f6c..0c22e0bb8b 100644 --- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.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 <stdint.h> + #include "headers.h" #include "db.h" #include "net.h" @@ -40,7 +42,7 @@ extern map<string, rpcfn_type> mapCallTable; static std::string strRPCUserColonPass; -static int64 nWalletUnlockTime; +static int64_t nWalletUnlockTime; static CCriticalSection cs_nWalletUnlockTime; extern Value dumpprivkey(const Array& params, bool fHelp); @@ -73,18 +75,18 @@ void PrintConsole(const std::string &format, ...) } -int64 AmountFromValue(const Value& value) +int64_t AmountFromValue(const Value& value) { double dAmount = value.get_real(); if (dAmount <= 0.0 || dAmount > 21000000.0) throw JSONRPCError(-3, "Invalid amount"); - int64 nAmount = roundint64(dAmount * COIN); + int64_t nAmount = roundint64(dAmount * COIN); if (!MoneyRange(nAmount)) throw JSONRPCError(-3, "Invalid amount"); return nAmount; } -Value ValueFromAmount(int64 amount) +Value ValueFromAmount(int64_t amount) { return (double)amount / (double)COIN; } @@ -499,7 +501,7 @@ Value settxfee(const Array& params, bool fHelp) "<amount> is a real and is rounded to the nearest 0.00000001"); // Amount - int64 nAmount = 0; + int64_t nAmount = 0; if (params[0].get_real() != 0.0) nAmount = AmountFromValue(params[0]); // rejects 0.0 amounts @@ -524,7 +526,7 @@ Value sendtoaddress(const Array& params, bool fHelp) throw JSONRPCError(-5, "Invalid bitcoin address"); // Amount - int64 nAmount = AmountFromValue(params[1]); + int64_t nAmount = AmountFromValue(params[1]); // Wallet comments CWalletTx wtx; @@ -632,7 +634,7 @@ Value getreceivedbyaddress(const Array& params, bool fHelp) nMinDepth = params[1].get_int(); // Tally - int64 nAmount = 0; + int64_t nAmount = 0; for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it) { const CWalletTx& wtx = (*it).second; @@ -679,7 +681,7 @@ Value getreceivedbyaccount(const Array& params, bool fHelp) GetAccountAddresses(strAccount, setAddress); // Tally - int64 nAmount = 0; + int64_t nAmount = 0; for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it) { const CWalletTx& wtx = (*it).second; @@ -699,9 +701,9 @@ Value getreceivedbyaccount(const Array& params, bool fHelp) } -int64 GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMinDepth) +int64_t GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMinDepth) { - int64 nBalance = 0; + int64_t nBalance = 0; // Tally wallet transactions for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it) @@ -710,7 +712,7 @@ int64 GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMinD if (!wtx.IsFinal()) continue; - int64 nGenerated, nReceived, nSent, nFee; + int64_t nGenerated, nReceived, nSent, nFee; wtx.GetAccountAmounts(strAccount, nGenerated, nReceived, nSent, nFee); if (nReceived != 0 && wtx.GetDepthInMainChain() >= nMinDepth) @@ -724,7 +726,7 @@ int64 GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMinD return nBalance; } -int64 GetAccountBalance(const string& strAccount, int nMinDepth) +int64_t GetAccountBalance(const string& strAccount, int nMinDepth) { CWalletDB walletdb(pwalletMain->strWalletFile); return GetAccountBalance(walletdb, strAccount, nMinDepth); @@ -750,23 +752,23 @@ Value getbalance(const Array& params, bool fHelp) // Calculate total balance a different way from GetBalance() // (GetBalance() sums up all unspent TxOuts) // getbalance and getbalance '*' should always return the same number. - int64 nBalance = 0; + int64_t nBalance = 0; for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it) { const CWalletTx& wtx = (*it).second; if (!wtx.IsFinal()) continue; - int64 allGeneratedImmature, allGeneratedMature, allFee; + int64_t allGeneratedImmature, allGeneratedMature, allFee; allGeneratedImmature = allGeneratedMature = allFee = 0; string strSentAccount; - list<pair<CBitcoinAddress, int64> > listReceived; - list<pair<CBitcoinAddress, int64> > listSent; + list<pair<CBitcoinAddress, int64_t> > listReceived; + list<pair<CBitcoinAddress, int64_t> > listSent; wtx.GetAmounts(allGeneratedImmature, allGeneratedMature, listReceived, listSent, allFee, strSentAccount); if (wtx.GetDepthInMainChain() >= nMinDepth) - BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64)& r, listReceived) + BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64_t)& r, listReceived) nBalance += r.second; - BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64)& r, listSent) + BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64_t)& r, listSent) nBalance -= r.second; nBalance -= allFee; nBalance += allGeneratedMature; @@ -776,7 +778,7 @@ Value getbalance(const Array& params, bool fHelp) string strAccount = AccountFromValue(params[0]); - int64 nBalance = GetAccountBalance(strAccount, nMinDepth); + int64_t nBalance = GetAccountBalance(strAccount, nMinDepth); return ValueFromAmount(nBalance); } @@ -791,7 +793,7 @@ Value movecmd(const Array& params, bool fHelp) string strFrom = AccountFromValue(params[0]); string strTo = AccountFromValue(params[1]); - int64 nAmount = AmountFromValue(params[2]); + int64_t nAmount = AmountFromValue(params[2]); if (params.size() > 3) // unused parameter, used to be nMinDepth, keep type-checking it though (void)params[3].get_int(); @@ -802,7 +804,7 @@ Value movecmd(const Array& params, bool fHelp) CWalletDB walletdb(pwalletMain->strWalletFile); walletdb.TxnBegin(); - int64 nNow = GetAdjustedTime(); + int64_t nNow = GetAdjustedTime(); // Debit CAccountingEntry debit; @@ -844,7 +846,7 @@ Value sendfrom(const Array& params, bool fHelp) CBitcoinAddress address(params[1].get_str()); if (!address.IsValid()) throw JSONRPCError(-5, "Invalid bitcoin address"); - int64 nAmount = AmountFromValue(params[2]); + int64_t nAmount = AmountFromValue(params[2]); int nMinDepth = 1; if (params.size() > 3) nMinDepth = params[3].get_int(); @@ -860,7 +862,7 @@ Value sendfrom(const Array& params, bool fHelp) throw JSONRPCError(-13, "Error: Please enter the wallet passphrase with walletpassphrase first."); // Check funds - int64 nBalance = GetAccountBalance(strAccount, nMinDepth); + int64_t nBalance = GetAccountBalance(strAccount, nMinDepth); if (nAmount > nBalance) throw JSONRPCError(-6, "Account has insufficient funds"); @@ -897,9 +899,9 @@ Value sendmany(const Array& params, bool fHelp) wtx.mapValue["comment"] = params[3].get_str(); set<CBitcoinAddress> setAddress; - vector<pair<CScript, int64> > vecSend; + vector<pair<CScript, int64_t> > vecSend; - int64 totalAmount = 0; + int64_t totalAmount = 0; BOOST_FOREACH(const Pair& s, sendTo) { CBitcoinAddress address(s.name_); @@ -912,7 +914,7 @@ Value sendmany(const Array& params, bool fHelp) CScript scriptPubKey; scriptPubKey.SetBitcoinAddress(address); - int64 nAmount = AmountFromValue(s.value_); + int64_t nAmount = AmountFromValue(s.value_); totalAmount += nAmount; vecSend.push_back(make_pair(scriptPubKey, nAmount)); @@ -922,13 +924,13 @@ Value sendmany(const Array& params, bool fHelp) throw JSONRPCError(-13, "Error: Please enter the wallet passphrase with walletpassphrase first."); // Check funds - int64 nBalance = GetAccountBalance(strAccount, nMinDepth); + int64_t nBalance = GetAccountBalance(strAccount, nMinDepth); if (totalAmount > nBalance) throw JSONRPCError(-6, "Account has insufficient funds"); // Send CReserveKey keyChange(pwalletMain); - int64 nFeeRequired = 0; + int64_t nFeeRequired = 0; bool fCreated = pwalletMain->CreateTransaction(vecSend, wtx, keyChange, nFeeRequired); if (!fCreated) { @@ -1007,7 +1009,7 @@ Value addmultisigaddress(const Array& params, bool fHelp) struct tallyitem { - int64 nAmount; + int64_t nAmount; int nConf; tallyitem() { @@ -1063,7 +1065,7 @@ Value ListReceived(const Array& params, bool fByAccounts) if (it == mapTally.end() && !fIncludeEmpty) continue; - int64 nAmount = 0; + int64_t nAmount = 0; int nConf = std::numeric_limits<int>::max(); if (it != mapTally.end()) { @@ -1092,7 +1094,7 @@ Value ListReceived(const Array& params, bool fByAccounts) { for (map<string, tallyitem>::iterator it = mapAccountTally.begin(); it != mapAccountTally.end(); ++it) { - int64 nAmount = (*it).second.nAmount; + int64_t nAmount = (*it).second.nAmount; int nConf = (*it).second.nConf; Object obj; obj.push_back(Pair("account", (*it).first)); @@ -1138,10 +1140,10 @@ Value listreceivedbyaccount(const Array& params, bool fHelp) void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDepth, bool fLong, Array& ret) { - int64 nGeneratedImmature, nGeneratedMature, nFee; + int64_t nGeneratedImmature, nGeneratedMature, nFee; string strSentAccount; - list<pair<CBitcoinAddress, int64> > listReceived; - list<pair<CBitcoinAddress, int64> > listSent; + list<pair<CBitcoinAddress, int64_t> > listReceived; + list<pair<CBitcoinAddress, int64_t> > listSent; wtx.GetAmounts(nGeneratedImmature, nGeneratedMature, listReceived, listSent, nFee, strSentAccount); bool fAllAccounts = (strAccount == string("*")); @@ -1169,7 +1171,7 @@ void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDe // Sent if ((!listSent.empty() || nFee != 0) && (fAllAccounts || strAccount == strSentAccount)) { - BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64)& s, listSent) + BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64_t)& s, listSent) { Object entry; entry.push_back(Pair("account", strSentAccount)); @@ -1185,7 +1187,7 @@ void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDe // Received if (listReceived.size() > 0 && wtx.GetDepthInMainChain() >= nMinDepth) - BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64)& r, listReceived) + BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64_t)& r, listReceived) { string account; if (pwalletMain->mapAddressBook.count(r.first)) @@ -1243,7 +1245,7 @@ Value listtransactions(const Array& params, bool fHelp) // Firs: get all CWalletTx and CAccountingEntry into a sorted-by-time multimap: typedef pair<CWalletTx*, CAccountingEntry*> TxPair; - typedef multimap<int64, TxPair > TxItems; + typedef multimap<int64_t, TxPair > TxItems; TxItems txByTime; for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it) @@ -1297,7 +1299,7 @@ Value listaccounts(const Array& params, bool fHelp) if (params.size() > 0) nMinDepth = params[0].get_int(); - map<string, int64> mapAccountBalances; + map<string, int64_t> mapAccountBalances; BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, string)& entry, pwalletMain->mapAddressBook) { if (pwalletMain->HaveKey(entry.first)) // This address belongs to me mapAccountBalances[entry.second] = 0; @@ -1306,18 +1308,18 @@ Value listaccounts(const Array& params, bool fHelp) for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it) { const CWalletTx& wtx = (*it).second; - int64 nGeneratedImmature, nGeneratedMature, nFee; + int64_t nGeneratedImmature, nGeneratedMature, nFee; string strSentAccount; - list<pair<CBitcoinAddress, int64> > listReceived; - list<pair<CBitcoinAddress, int64> > listSent; + list<pair<CBitcoinAddress, int64_t> > listReceived; + list<pair<CBitcoinAddress, int64_t> > listSent; wtx.GetAmounts(nGeneratedImmature, nGeneratedMature, listReceived, listSent, nFee, strSentAccount); mapAccountBalances[strSentAccount] -= nFee; - BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64)& s, listSent) + BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64_t)& s, listSent) mapAccountBalances[strSentAccount] -= s.second; if (wtx.GetDepthInMainChain() >= nMinDepth) { mapAccountBalances[""] += nGeneratedMature; - BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64)& r, listReceived) + BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, int64_t)& r, listReceived) if (pwalletMain->mapAddressBook.count(r.first)) mapAccountBalances[pwalletMain->mapAddressBook[r.first]] += r.second; else @@ -1331,7 +1333,7 @@ Value listaccounts(const Array& params, bool fHelp) mapAccountBalances[entry.strAccount] += entry.nCreditDebit; Object ret; - BOOST_FOREACH(const PAIRTYPE(string, int64)& accountBalance, mapAccountBalances) { + BOOST_FOREACH(const PAIRTYPE(string, int64_t)& accountBalance, mapAccountBalances) { ret.push_back(Pair(accountBalance.first, ValueFromAmount(accountBalance.second))); } return ret; @@ -1417,10 +1419,10 @@ Value gettransaction(const Array& params, bool fHelp) throw JSONRPCError(-5, "Invalid or non-wallet transaction id"); const CWalletTx& wtx = pwalletMain->mapWallet[hash]; - int64 nCredit = wtx.GetCredit(); - int64 nDebit = wtx.GetDebit(); - int64 nNet = nCredit - nDebit; - int64 nFee = (wtx.IsFromMe() ? wtx.GetValueOut() - nDebit : 0); + int64_t nCredit = wtx.GetCredit(); + int64_t nDebit = wtx.GetDebit(); + int64_t nNet = nCredit - nDebit; + int64_t nFee = (wtx.IsFromMe() ? wtx.GetValueOut() - nDebit : 0); entry.push_back(Pair("amount", ValueFromAmount(nNet - nFee))); if (wtx.IsFromMe()) @@ -1480,7 +1482,7 @@ void ThreadTopUpKeyPool(void* parg) void ThreadCleanWalletPassphrase(void* parg) { - int64 nMyWakeTime = GetTime() + *((int*)parg); + int64_t nMyWakeTime = GetTime() + *((int*)parg); if (nWalletUnlockTime == 0) { @@ -1727,7 +1729,7 @@ Value getwork(const Array& params, bool fHelp) // Update block static unsigned int nTransactionsUpdatedLast; static CBlockIndex* pindexPrev; - static int64 nStart; + static int64_t nStart; static CBlock* pblock; if (pindexPrev != pindexBest || (nTransactionsUpdated != nTransactionsUpdatedLast && GetTime() - nStart > 60)) @@ -1831,7 +1833,7 @@ Value getmemorypool(const Array& params, bool fHelp) // Update block static unsigned int nTransactionsUpdatedLast; static CBlockIndex* pindexPrev; - static int64 nStart; + static int64_t nStart; static CBlock* pblock; if (pindexPrev != pindexBest || (nTransactionsUpdated != nTransactionsUpdatedLast && GetTime() - nStart > 5)) diff --git a/src/checkpoints.cpp b/src/checkpoints.cpp index c7e054df37..578742e309 100644 --- a/src/checkpoints.cpp +++ b/src/checkpoints.cpp @@ -2,6 +2,8 @@ // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php. +#include <stdint.h> + #include <boost/assign/list_of.hpp> // for 'map_list_of()' #include <boost/foreach.hpp> @@ -52,7 +54,7 @@ namespace Checkpoints { if (fTestNet) return NULL; - int64 nResult; + int64_t nResult; BOOST_REVERSE_FOREACH(const MapCheckpoints::value_type& i, mapCheckpoints) { const uint256& hash = i.second; diff --git a/src/db.cpp b/src/db.cpp index f43b2a5656..af2ae834dd 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 <stdint.h> + #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; @@ -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<CAccountingEntry> 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<CAccountin // Read next record CDataStream ssKey; if (fFlags == DB_SET_RANGE) - ssKey << boost::make_tuple(string("acentry"), (fAllAccounts? string("") : strAccount), uint64(0)); + ssKey << boost::make_tuple(string("acentry"), (fAllAccounts? string("") : strAccount), uint64_t(0)); CDataStream ssValue; int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags); fFlags = DB_NEXT; @@ -846,7 +848,7 @@ int CWalletDB::LoadWallet(CWallet* pwallet) { string strAccount; ssKey >> 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); } @@ -989,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); @@ -1021,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); @@ -5,6 +5,8 @@ #ifndef BITCOIN_DB_H #define BITCOIN_DB_H +#include <stdint.h> + #include "key.h" #include <map> @@ -317,7 +319,7 @@ bool LoadAddresses(); class CKeyPool { public: - int64 nTime; + int64_t nTime; std::vector<unsigned char> vchPubKey; CKeyPool() @@ -456,18 +458,18 @@ public: return Write(std::string("defaultkey"), vchPubKey); } - bool ReadPool(int64 nPool, CKeyPool& keypool) + bool ReadPool(int64_t nPool, CKeyPool& keypool) { return Read(std::make_pair(std::string("pool"), nPool), keypool); } - bool WritePool(int64 nPool, const CKeyPool& keypool) + bool WritePool(int64_t nPool, const CKeyPool& keypool) { nWalletDBUpdated++; return Write(std::make_pair(std::string("pool"), nPool), keypool); } - bool ErasePool(int64 nPool) + bool ErasePool(int64_t nPool) { nWalletDBUpdated++; return Erase(std::make_pair(std::string("pool"), nPool)); @@ -489,7 +491,7 @@ public: bool ReadAccount(const std::string& strAccount, CAccount& account); bool WriteAccount(const std::string& strAccount, const CAccount& account); bool WriteAccountingEntry(const CAccountingEntry& acentry); - int64 GetAccountCreditDebit(const std::string& strAccount); + int64_t GetAccountCreditDebit(const std::string& strAccount); void ListAccountCreditDebit(const std::string& strAccount, std::list<CAccountingEntry>& acentries); int LoadWallet(CWallet* pwallet); diff --git a/src/init.cpp b/src/init.cpp index 1e389b226b..6fa25ac281 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -2,6 +2,9 @@ // Copyright (c) 2011 The Bitcoin developers // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php. + +#include <stdint.h> + #include "headers.h" #include "db.h" #include "bitcoinrpc.h" @@ -349,7 +352,7 @@ bool AppInit2(int argc, char* argv[]) // if (fDaemon) fprintf(stdout, "bitcoin server starting\n"); - int64 nStart; + int64_t nStart; InitMessage(_("Loading addresses...")); printf("Loading addresses...\n"); diff --git a/src/irc.cpp b/src/irc.cpp index 5278488dcd..0f6f46e5f7 100644 --- a/src/irc.cpp +++ b/src/irc.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 <stdint.h> + #include "headers.h" #include "irc.h" #include "net.h" @@ -354,7 +356,7 @@ void ThreadIRCSeed2(void* parg) Send(hSocket, strprintf("WHO #bitcoin%02d\r", channel_number).c_str()); } - int64 nStart = GetTime(); + int64_t nStart = GetTime(); string strLine; strLine.reserve(10000); while (!fShutdown && RecvLineIRC(hSocket, strLine)) diff --git a/src/keystore.cpp b/src/keystore.cpp index 21fb0f91b2..c1f54a5fa8 100644 --- a/src/keystore.cpp +++ b/src/keystore.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 <stdint.h> + #include "headers.h" #include "crypter.h" #include "db.h" diff --git a/src/keystore.h b/src/keystore.h index 669bf90174..975c2b9ba9 100644 --- a/src/keystore.h +++ b/src/keystore.h @@ -5,6 +5,8 @@ #ifndef BITCOIN_KEYSTORE_H #define BITCOIN_KEYSTORE_H +#include <stdint.h> + #include "crypter.h" #include "script.h" diff --git a/src/main.cpp b/src/main.cpp index bef76f7374..0b004466a0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,6 +2,9 @@ // Copyright (c) 2011 The Bitcoin developers // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php. + +#include <stdint.h> + #include "headers.h" #include "checkpoints.h" #include "db.h" @@ -42,7 +45,7 @@ CBigNum bnBestChainWork = 0; CBigNum bnBestInvalidWork = 0; uint256 hashBestChain = 0; CBlockIndex* pindexBest = NULL; -int64 nTimeBestReceived = 0; +int64_t nTimeBestReceived = 0; CMedianFilter<int> cPeerBlockCounts(5, 0); // Amount of blocks that other nodes claim to have @@ -54,11 +57,11 @@ multimap<uint256, CDataStream*> mapOrphanTransactionsByPrev; double dHashesPerSec; -int64 nHPSTimerStart; +int64_t nHPSTimerStart; // Settings int fGenerateBitcoins = false; -int64 nTransactionFee = 0; +int64_t nTransactionFee = 0; int fLimitProcessors = false; int nLimitProcessors = 1; int fMinimizeToTray = true; @@ -378,7 +381,7 @@ bool CTransaction::CheckTransaction() const return DoS(100, error("CTransaction::CheckTransaction() : size limits failed")); // Check for negative or overflow output values - int64 nValueOut = 0; + int64_t nValueOut = 0; BOOST_FOREACH(const CTxOut& txout, vout) { if (txout.nValue < 0) @@ -427,7 +430,7 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi return DoS(100, error("AcceptToMemoryPool() : coinbase as individual tx")); // To help v0.1.5 clients who would see it as a negative number - if ((int64)nLockTime > std::numeric_limits<int>::max()) + if ((int64_t)nLockTime > std::numeric_limits<int>::max()) return error("AcceptToMemoryPool() : not accepting nLockTime beyond 2038 yet"); // Rather not work on nonstandard transactions (unless -testnet) @@ -487,7 +490,7 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi return error("AcceptToMemoryPool() : nonstandard transaction input"); // Check against previous transactions - int64 nFees = 0; + int64_t nFees = 0; int nSigOps = 0; if (!ConnectInputs(mapInputs, mapUnused, CDiskTxPos(1,1,1), pindexBest, nFees, false, false, nSigOps)) { @@ -513,8 +516,8 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi { static CCriticalSection cs; static double dFreeCount; - static int64 nLastTime; - int64 nNow = GetTime(); + static int64_t nLastTime; + int64_t nNow = GetTime(); CRITICAL_BLOCK(cs) { @@ -725,9 +728,9 @@ uint256 static GetOrphanRoot(const CBlock* pblock) return pblock->GetHash(); } -int64 static GetBlockValue(int nHeight, int64 nFees) +int64_t static GetBlockValue(int nHeight, int64_t nFees) { - int64 nSubsidy = 50 * COIN; + int64_t nSubsidy = 50 * COIN; // Subsidy is cut in half every 4 years nSubsidy >>= (nHeight / 210000); @@ -735,15 +738,15 @@ int64 static GetBlockValue(int nHeight, int64 nFees) return nSubsidy + nFees; } -static const int64 nTargetTimespan = 14 * 24 * 60 * 60; // two weeks -static const int64 nTargetSpacing = 10 * 60; -static const int64 nInterval = nTargetTimespan / nTargetSpacing; +static const int64_t nTargetTimespan = 14 * 24 * 60 * 60; // two weeks +static const int64_t nTargetSpacing = 10 * 60; +static const int64_t nInterval = nTargetTimespan / nTargetSpacing; // // minimum amount of work that could possibly be required nTime after // minimum work required was nBase // -unsigned int ComputeMinWork(unsigned int nBase, int64 nTime) +unsigned int ComputeMinWork(unsigned int nBase, int64_t nTime) { CBigNum bnResult; bnResult.SetCompact(nBase); @@ -777,7 +780,7 @@ unsigned int static GetNextWorkRequired(const CBlockIndex* pindexLast) assert(pindexFirst); // Limit adjustment step - int64 nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime(); + int64_t nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime(); printf(" nActualTimespan = %"PRI64d" before bounds\n", nActualTimespan); if (nActualTimespan < nTargetTimespan/4) nActualTimespan = nTargetTimespan/4; @@ -828,7 +831,7 @@ bool IsInitialBlockDownload() { if (pindexBest == NULL || nBestHeight < (Checkpoints::GetTotalBlocksEstimate()-nInitialBlockThreshold)) return true; - static int64 nLastUpdate; + static int64_t nLastUpdate; static CBlockIndex* pindexLastBest; if (pindexBest != pindexLastBest) { @@ -951,7 +954,7 @@ bool CTransaction::FetchInputs(CTxDB& txdb, const map<uint256, CTxIndex>& mapTes bool CTransaction::ConnectInputs(map<uint256, pair<CTxIndex, CTransaction> > inputs, map<uint256, CTxIndex>& mapTestPool, CDiskTxPos posThisTx, - CBlockIndex* pindexBlock, int64& nFees, bool fBlock, bool fMiner, int& nSigOpsRet, int64 nMinFee) + CBlockIndex* pindexBlock, int64_t& nFees, bool fBlock, bool fMiner, int& nSigOpsRet, int64_t nMinFee) { // Take over previous transactions' spent pointers // fBlock is true when this is called from AcceptBlock when a new best-block is added to the blockchain @@ -959,7 +962,7 @@ bool CTransaction::ConnectInputs(map<uint256, pair<CTxIndex, CTransaction> > inp // ... both are false when called from CTransaction::AcceptToMemoryPool if (!IsCoinBase()) { - int64 nValueIn = 0; + int64_t nValueIn = 0; for (int i = 0; i < vin.size(); i++) { COutPoint prevout = vin[i].prevout; @@ -989,7 +992,7 @@ bool CTransaction::ConnectInputs(map<uint256, pair<CTxIndex, CTransaction> > inp // To avoid being on the short end of a block-chain split, // interpret OP_EVAL as a NO_OP until blocks with timestamps // after opevaltime: - int64 nEvalSwitchTime = GetArg("opevaltime", 1328054400); // Feb 1, 2012 + int64_t nEvalSwitchTime = GetArg("opevaltime", 1328054400); // Feb 1, 2012 fStrictOpEval = (pindexBlock->nTime >= nEvalSwitchTime); } // if !fBlock, then always be strict-- don't accept @@ -1027,7 +1030,7 @@ bool CTransaction::ConnectInputs(map<uint256, pair<CTxIndex, CTransaction> > inp return DoS(100, error("ConnectInputs() : %s value in < value out", GetHash().ToString().substr(0,10).c_str())); // Tally transaction fees - int64 nTxFee = nValueIn - GetValueOut(); + int64_t nTxFee = nValueIn - GetValueOut(); if (nTxFee < 0) return DoS(100, error("ConnectInputs() : %s nTxFee < 0", GetHash().ToString().substr(0,10).c_str())); if (nTxFee < nMinFee) @@ -1060,7 +1063,7 @@ bool CTransaction::ClientConnectInputs() // Take over previous transactions' spent pointers CRITICAL_BLOCK(cs_mapTransactions) { - int64 nValueIn = 0; + int64_t nValueIn = 0; for (int i = 0; i < vin.size(); i++) { // Get prev tx from single transactions in memory @@ -1131,7 +1134,7 @@ bool CBlock::ConnectBlock(CTxDB& txdb, CBlockIndex* pindex) unsigned int nTxPos = pindex->nBlockPos + ::GetSerializeSize(CBlock(), SER_DISK) - 1 + GetSizeOfCompactSize(vtx.size()); map<uint256, CTxIndex> mapQueuedChanges; - int64 nFees = 0; + int64_t nFees = 0; int nSigOps = 0; BOOST_FOREACH(CTransaction& tx, vtx) { @@ -1499,7 +1502,7 @@ bool ProcessBlock(CNode* pfrom, CBlock* pblock) if (pcheckpoint && pblock->hashPrevBlock != hashBestChain) { // Extra checks to prevent "fill up memory by spamming with bogus blocks" - int64 deltaTime = pblock->GetBlockTime() - pcheckpoint->nTime; + int64_t deltaTime = pblock->GetBlockTime() - pcheckpoint->nTime; if (deltaTime < 0) { pfrom->Misbehaving(100); @@ -1565,12 +1568,12 @@ bool ProcessBlock(CNode* pfrom, CBlock* pblock) -bool CheckDiskSpace(uint64 nAdditionalBytes) +bool CheckDiskSpace(uint64_t nAdditionalBytes) { - uint64 nFreeBytesAvailable = filesystem::space(GetDataDir()).available; + uint64_t nFreeBytesAvailable = filesystem::space(GetDataDir()).available; // Check for 15MB because database could create another 10MB log file at any time - if (nFreeBytesAvailable < (uint64)15000000 + nAdditionalBytes) + if (nFreeBytesAvailable < (uint64_t)15000000 + nAdditionalBytes) { fShutdown = true; string strMessage = _("Warning: Disk space is low "); @@ -1945,10 +1948,10 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) return false; } - int64 nTime; + int64_t nTime; CAddress addrMe; CAddress addrFrom; - uint64 nNonce = 1; + uint64_t nNonce = 1; vRecv >> pfrom->nVersion >> pfrom->nServices >> nTime >> addrMe; if (pfrom->nVersion == 10300) pfrom->nVersion = 300; @@ -2059,8 +2062,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) // Store the new addresses CAddrDB addrDB; addrDB.TxnBegin(); - int64 nNow = GetAdjustedTime(); - int64 nSince = nNow - 10 * 60; + int64_t nNow = GetAdjustedTime(); + int64_t nSince = nNow - 10 * 60; BOOST_FOREACH(CAddress& addr, vAddr) { if (fShutdown) @@ -2082,7 +2085,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) static uint256 hashSalt; if (hashSalt == 0) RAND_bytes((unsigned char*)&hashSalt, sizeof(hashSalt)); - uint256 hashRand = hashSalt ^ (((int64)addr.ip)<<32) ^ ((GetTime()+addr.ip)/(24*60*60)); + uint256 hashRand = hashSalt ^ (((int64_t)addr.ip)<<32) ^ ((GetTime()+addr.ip)/(24*60*60)); hashRand = Hash(BEGIN(hashRand), END(hashRand)); multimap<uint256, CNode*> mapMix; BOOST_FOREACH(CNode* pnode, vNodes) @@ -2344,7 +2347,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) { // Nodes rebroadcast an addr every 24 hours pfrom->vAddrToSend.clear(); - int64 nSince = GetAdjustedTime() - 3 * 60 * 60; // in the last 3 hours + int64_t nSince = GetAdjustedTime() - 3 * 60 * 60; // in the last 3 hours CRITICAL_BLOCK(cs_mapAddresses) { unsigned int nCount = 0; @@ -2582,7 +2585,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) ResendWalletTransactions(); // Address refresh broadcast - static int64 nLastRebroadcast; + static int64_t nLastRebroadcast; if (GetTime() - nLastRebroadcast > 24 * 60 * 60) { nLastRebroadcast = GetTime(); @@ -2605,7 +2608,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) } // Clear out old addresses periodically so it's not too much work at once - static int64 nLastClear; + static int64_t nLastClear; if (nLastClear == 0) nLastClear = GetTime(); if (GetTime() - nLastClear > 10 * 60 && vNodes.size() >= 3) @@ -2614,7 +2617,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) CRITICAL_BLOCK(cs_mapAddresses) { CAddrDB addrdb; - int64 nSince = GetAdjustedTime() - 14 * 24 * 60 * 60; + int64_t nSince = GetAdjustedTime() - 14 * 24 * 60 * 60; for (map<vector<unsigned char>, CAddress>::iterator mi = mapAddresses.begin(); mi != mapAddresses.end();) { @@ -2722,7 +2725,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) // Message: getdata // vector<CInv> vGetData; - int64 nNow = GetTime() * 1000000; + int64_t nNow = GetTime() * 1000000; CTxDB txdb("r"); while (!pto->mapAskFor.empty() && (*pto->mapAskFor.begin()).first <= nNow) { @@ -2877,7 +2880,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey) pblock->vtx.push_back(txNew); // Collect memory pool transactions into the block - int64 nFees = 0; + int64_t nFees = 0; CRITICAL_BLOCK(cs_main) CRITICAL_BLOCK(cs_mapTransactions) { @@ -2913,7 +2916,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey) porphan->setDependsOn.insert(txin.prevout.hash); continue; } - int64 nValueIn = txPrev.vout[txin.prevout.n].nValue; + int64_t nValueIn = txPrev.vout[txin.prevout.n].nValue; // Read block header int nConf = txindex.GetDepthInMainChain(); @@ -2943,7 +2946,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey) // Collect transactions into block map<uint256, CTxIndex> mapTestPool; - uint64 nBlockSize = 1000; + uint64_t nBlockSize = 1000; int nBlockSigOps = 100; while (!mapPriority.empty()) { @@ -2959,7 +2962,7 @@ CBlock* CreateNewBlock(CReserveKey& reservekey) // Transaction fee required depends on block size bool fAllowFree = (nBlockSize + nTxSize < 4000 || CTransaction::AllowFree(dPriority)); - int64 nMinFee = tx.GetMinFee(nBlockSize, fAllowFree, GMF_BLOCK); + int64_t nMinFee = tx.GetMinFee(nBlockSize, fAllowFree, GMF_BLOCK); // Connecting shouldn't fail due to dependency on other memory pool transactions // because we're already processing them in order of dependency @@ -3169,7 +3172,7 @@ void static BitcoinMiner(CWallet *pwallet) // // Search // - int64 nStart = GetTime(); + int64_t nStart = GetTime(); uint256 hashTarget = CBigNum().SetCompact(pblock->nBits).getuint256(); uint256 hashbuf[2]; uint256& hash = *alignup<16>(hashbuf); @@ -3202,7 +3205,7 @@ void static BitcoinMiner(CWallet *pwallet) } // Meter hashes/sec - static int64 nHashCounter; + static int64_t nHashCounter; if (nHPSTimerStart == 0) { nHPSTimerStart = GetTimeMillis(); @@ -3222,7 +3225,7 @@ void static BitcoinMiner(CWallet *pwallet) nHashCounter = 0; string strStatus = strprintf(" %.0f khash/s", dHashesPerSec/1000.0); UIThreadCall(boost::bind(CalledSetStatusBar, strStatus, 0)); - static int64 nLogTime; + static int64_t nLogTime; if (GetTime() - nLogTime > 30 * 60) { nLogTime = GetTime(); diff --git a/src/main.h b/src/main.h index d613d284b6..7b18d22b69 100644 --- a/src/main.h +++ b/src/main.h @@ -5,6 +5,8 @@ #ifndef BITCOIN_MAIN_H #define BITCOIN_MAIN_H +#include <stdint.h> + #include "bignum.h" #include "net.h" #include "key.h" @@ -34,12 +36,12 @@ extern const std::string CLIENT_NAME; static const unsigned int MAX_BLOCK_SIZE = 1000000; static const unsigned int MAX_BLOCK_SIZE_GEN = MAX_BLOCK_SIZE/2; static const int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50; -static const int64 COIN = 100000000; -static const int64 CENT = 1000000; -static const int64 MIN_TX_FEE = 50000; -static const int64 MIN_RELAY_TX_FEE = 10000; -static const int64 MAX_MONEY = 21000000 * COIN; -inline bool MoneyRange(int64 nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); } +static const int64_t COIN = 100000000; +static const int64_t CENT = 1000000; +static const int64_t MIN_TX_FEE = 50000; +static const int64_t MIN_RELAY_TX_FEE = 10000; +static const int64_t MAX_MONEY = 21000000 * COIN; +inline bool MoneyRange(int64_t nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); } static const int COINBASE_MATURITY = 100; // Threshold for nLockTime: below this value it is interpreted as block number, otherwise as UNIX timestamp. static const int LOCKTIME_THRESHOLD = 500000000; // Tue Nov 5 00:53:20 1985 UTC @@ -65,14 +67,14 @@ extern uint256 hashBestChain; extern CBlockIndex* pindexBest; extern unsigned int nTransactionsUpdated; extern double dHashesPerSec; -extern int64 nHPSTimerStart; -extern int64 nTimeBestReceived; +extern int64_t nHPSTimerStart; +extern int64_t nTimeBestReceived; extern CCriticalSection cs_setpwalletRegistered; extern std::set<CWallet*> setpwalletRegistered; // Settings extern int fGenerateBitcoins; -extern int64 nTransactionFee; +extern int64_t nTransactionFee; extern int fLimitProcessors; extern int nLimitProcessors; extern int fMinimizeToTray; @@ -90,7 +92,7 @@ class CTxIndex; void RegisterWallet(CWallet* pwalletIn); void UnregisterWallet(CWallet* pwalletIn); bool ProcessBlock(CNode* pfrom, CBlock* pblock); -bool CheckDiskSpace(uint64 nAdditionalBytes=0); +bool CheckDiskSpace(uint64_t nAdditionalBytes=0); FILE* OpenBlockFile(unsigned int nFile, unsigned int nBlockPos, const char* pszMode="rb"); FILE* AppendBlockFile(unsigned int& nFileRet); bool LoadBlockIndex(bool fAllowNew=true); @@ -103,7 +105,7 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int& void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash1); bool CheckWork(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey); bool CheckProofOfWork(uint256 hash, unsigned int nBits); -unsigned int ComputeMinWork(unsigned int nBase, int64 nTime); +unsigned int ComputeMinWork(unsigned int nBase, int64_t nTime); int GetNumBlocksOfPeers(); bool IsInitialBlockDownload(); std::string GetWarnings(std::string strFor); @@ -330,7 +332,7 @@ public: class CTxOut { public: - int64 nValue; + int64_t nValue; CScript scriptPubKey; CTxOut() @@ -338,7 +340,7 @@ public: SetNull(); } - CTxOut(int64 nValueIn, CScript scriptPubKeyIn) + CTxOut(int64_t nValueIn, CScript scriptPubKeyIn) { nValue = nValueIn; scriptPubKey = scriptPubKeyIn; @@ -449,7 +451,7 @@ public: return SerializeHash(*this); } - bool IsFinal(int nBlockHeight=0, int64 nBlockTime=0) const + bool IsFinal(int nBlockHeight=0, int64_t nBlockTime=0) const { // Time based nLockTime implemented in 0.1.6 if (nLockTime == 0) @@ -458,7 +460,7 @@ public: nBlockHeight = nBestHeight; if (nBlockTime == 0) nBlockTime = GetAdjustedTime(); - if ((int64)nLockTime < (nLockTime < LOCKTIME_THRESHOLD ? (int64)nBlockHeight : nBlockTime)) + if ((int64_t)nLockTime < (nLockTime < LOCKTIME_THRESHOLD ? (int64_t)nBlockHeight : nBlockTime)) return true; BOOST_FOREACH(const CTxIn& txin, vin) if (!txin.IsFinal()) @@ -503,9 +505,9 @@ public: bool IsStandard() const; bool AreInputsStandard(std::map<uint256, std::pair<CTxIndex, CTransaction> > mapInputs) const; - int64 GetValueOut() const + int64_t GetValueOut() const { - int64 nValueOut = 0; + int64_t nValueOut = 0; BOOST_FOREACH(const CTxOut& txout, vout) { nValueOut += txout.nValue; @@ -522,14 +524,14 @@ public: return dPriority > COIN * 144 / 250; } - int64 GetMinFee(unsigned int nBlockSize=1, bool fAllowFree=true, enum GetMinFee_mode mode=GMF_BLOCK) const + int64_t GetMinFee(unsigned int nBlockSize=1, bool fAllowFree=true, enum GetMinFee_mode mode=GMF_BLOCK) const { // Base fee is either MIN_TX_FEE or MIN_RELAY_TX_FEE - int64 nBaseFee = (mode == GMF_RELAY) ? MIN_RELAY_TX_FEE : MIN_TX_FEE; + int64_t nBaseFee = (mode == GMF_RELAY) ? MIN_RELAY_TX_FEE : MIN_TX_FEE; unsigned int nBytes = ::GetSerializeSize(*this, SER_NETWORK); unsigned int nNewBlockSize = nBlockSize + nBytes; - int64 nMinFee = (1 + (int64)nBytes / 1000) * nBaseFee; + int64_t nMinFee = (1 + (int64_t)nBytes / 1000) * nBaseFee; if (fAllowFree) { @@ -635,7 +637,7 @@ public: bool fBlock, bool fMiner, std::map<uint256, std::pair<CTxIndex, CTransaction> >& inputsRet); bool ConnectInputs(std::map<uint256, std::pair<CTxIndex, CTransaction> > inputs, std::map<uint256, CTxIndex>& mapTestPool, CDiskTxPos posThisTx, - CBlockIndex* pindexBlock, int64& nFees, bool fBlock, bool fMiner, int& nSigOpsRet, int64 nMinFee=0); + CBlockIndex* pindexBlock, int64_t& nFees, bool fBlock, bool fMiner, int& nSigOpsRet, int64_t nMinFee=0); bool ClientConnectInputs(); bool CheckTransaction() const; bool AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs=true, bool* pfMissingInputs=NULL); @@ -840,9 +842,9 @@ public: return Hash(BEGIN(nVersion), END(nNonce)); } - int64 GetBlockTime() const + int64_t GetBlockTime() const { - return (int64)nTime; + return (int64_t)nTime; } @@ -1066,9 +1068,9 @@ public: return *phashBlock; } - int64 GetBlockTime() const + int64_t GetBlockTime() const { - return (int64)nTime; + return (int64_t)nTime; } CBigNum GetBlockWork() const @@ -1107,11 +1109,11 @@ public: enum { nMedianTimeSpan=11 }; - int64 GetMedianTimePast() const + int64_t GetMedianTimePast() const { - int64 pmedian[nMedianTimeSpan]; - int64* pbegin = &pmedian[nMedianTimeSpan]; - int64* pend = &pmedian[nMedianTimeSpan]; + int64_t pmedian[nMedianTimeSpan]; + int64_t* pbegin = &pmedian[nMedianTimeSpan]; + int64_t* pend = &pmedian[nMedianTimeSpan]; const CBlockIndex* pindex = this; for (int i = 0; i < nMedianTimeSpan && pindex; i++, pindex = pindex->pprev) @@ -1121,7 +1123,7 @@ public: return pbegin[(pend - pbegin)/2]; } - int64 GetMedianTime() const + int64_t GetMedianTime() const { const CBlockIndex* pindex = this; for (int i = 0; i < nMedianTimeSpan/2; i++) @@ -1375,8 +1377,8 @@ class CUnsignedAlert { public: int nVersion; - int64 nRelayUntil; // when newer nodes stop relaying to newer nodes - int64 nExpiration; + int64_t nRelayUntil; // when newer nodes stop relaying to newer nodes + int64_t nExpiration; int nID; int nCancel; std::set<int> setCancel; diff --git a/src/net.cpp b/src/net.cpp index 9b8dbe11e8..b90eebde4f 100644 --- a/src/net.cpp +++ b/src/net.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 <stdint.h> + #include "headers.h" #include "irc.h" #include "db.h" @@ -44,10 +46,10 @@ bool OpenNetworkConnection(const CAddress& addrConnect); // bool fClient = false; bool fAllowDNS = false; -uint64 nLocalServices = (fClient ? 0 : NODE_NETWORK); +uint64_t nLocalServices = (fClient ? 0 : NODE_NETWORK); CAddress addrLocalHost("0.0.0.0", 0, false, nLocalServices); static CNode* pnodeLocalHost = NULL; -uint64 nLocalHostNonce = 0; +uint64_t nLocalHostNonce = 0; array<int, 10> vnThreadsRunning; static SOCKET hListenSocket = INVALID_SOCKET; @@ -56,9 +58,9 @@ CCriticalSection cs_vNodes; map<vector<unsigned char>, CAddress> mapAddresses; CCriticalSection cs_mapAddresses; map<CInv, CDataStream> mapRelay; -deque<pair<int64, CInv> > vRelayExpiration; +deque<pair<int64_t, CInv> > vRelayExpiration; CCriticalSection cs_mapRelay; -map<CInv, int64> mapAlreadyAskedFor; +map<CInv, int64_t> mapAlreadyAskedFor; // Settings int fUseProxy = false; @@ -437,13 +439,13 @@ void ThreadGetMyExternalIP(void* parg) -bool AddAddress(CAddress addr, int64 nTimePenalty, CAddrDB *pAddrDB) +bool AddAddress(CAddress addr, int64_t nTimePenalty, CAddrDB *pAddrDB) { if (!addr.IsRoutable()) return false; if (addr.ip == addrLocalHost.ip) return false; - addr.nTime = max((int64)0, (int64)addr.nTime - nTimePenalty); + addr.nTime = max((int64_t)0, (int64_t)addr.nTime - nTimePenalty); bool fUpdated = false; bool fNew = false; CAddress addrFound = addr; @@ -469,7 +471,7 @@ bool AddAddress(CAddress addr, int64 nTimePenalty, CAddrDB *pAddrDB) fUpdated = true; } bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < 24 * 60 * 60); - int64 nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60); + int64_t nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60); if (addrFound.nTime < addr.nTime - nUpdateInterval) { // Periodically update most recently seen time @@ -503,7 +505,7 @@ void AddressCurrentlyConnected(const CAddress& addr) if (it != mapAddresses.end()) { CAddress& addrFound = (*it).second; - int64 nUpdateInterval = 20 * 60; + int64_t nUpdateInterval = 20 * 60; if (addrFound.nTime < GetAdjustedTime() - nUpdateInterval) { // Periodically update most recently seen time @@ -642,7 +644,7 @@ CNode* FindNode(CAddress addr) return NULL; } -CNode* ConnectNode(CAddress addrConnect, int64 nTimeout) +CNode* ConnectNode(CAddress addrConnect, int64_t nTimeout) { if (addrConnect.ip == addrLocalHost.ip) return NULL; @@ -730,7 +732,7 @@ void CNode::Cleanup() void CNode::PushVersion() { /// when NTP implemented, change to just nTime = GetAdjustedTime() - int64 nTime = (fInbound ? GetAdjustedTime() : GetTime()); + int64_t nTime = (fInbound ? GetAdjustedTime() : GetTime()); CAddress addrYou = (fUseProxy ? CAddress("0.0.0.0") : addr); CAddress addrMe = (fUseProxy ? CAddress("0.0.0.0") : addrLocalHost); RAND_bytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce)); @@ -742,7 +744,7 @@ void CNode::PushVersion() -std::map<unsigned int, int64> CNode::setBanned; +std::map<unsigned int, int64_t> CNode::setBanned; CCriticalSection CNode::cs_setBanned; void CNode::ClearBanned() @@ -755,10 +757,10 @@ bool CNode::IsBanned(unsigned int ip) bool fResult = false; CRITICAL_BLOCK(cs_setBanned) { - std::map<unsigned int, int64>::iterator i = setBanned.find(ip); + std::map<unsigned int, int64_t>::iterator i = setBanned.find(ip); if (i != setBanned.end()) { - int64 t = (*i).second; + int64_t t = (*i).second; if (GetTime() < t) fResult = true; } @@ -777,7 +779,7 @@ bool CNode::Misbehaving(int howmuch) nMisbehavior += howmuch; if (nMisbehavior >= GetArg("-banscore", 100)) { - int64 banTime = GetTime()+GetArg("-bantime", 60*60*24); // Default 24-hour ban + int64_t banTime = GetTime()+GetArg("-bantime", 60*60*24); // Default 24-hour ban CRITICAL_BLOCK(cs_setBanned) if (setBanned[addr.ip] < banTime) setBanned[addr.ip] = banTime; @@ -1403,7 +1405,7 @@ void ThreadOpenConnections2(void* parg) // Connect to specific addresses if (mapArgs.count("-connect")) { - for (int64 nLoop = 0;; nLoop++) + for (int64_t nLoop = 0;; nLoop++) { BOOST_FOREACH(string strAddr, mapMultiArgs["-connect"]) { @@ -1437,7 +1439,7 @@ void ThreadOpenConnections2(void* parg) } // Initiate network connections - int64 nStart = GetTime(); + int64_t nStart = GetTime(); loop { // Limit outbound connections @@ -1474,7 +1476,7 @@ void ThreadOpenConnections2(void* parg) // it'll get a pile of addresses with newer timestamps. // Seed nodes are given a random 'last seen time' of between one and two // weeks ago. - const int64 nOneWeek = 7*24*60*60; + const int64_t nOneWeek = 7*24*60*60; CAddress addr; addr.ip = pnSeed[i]; addr.nTime = GetTime()-GetRand(nOneWeek)-nOneWeek; @@ -1488,7 +1490,7 @@ void ThreadOpenConnections2(void* parg) // Choose an address to connect to based on most recently seen // CAddress addrConnect; - int64 nBest = std::numeric_limits<int64>::min(); + int64_t nBest = std::numeric_limits<int64_t>::min(); // Only connect to one address per a.b.?.? range. // Do this here so we don't have to critsect vNodes inside mapAddresses critsect. @@ -1497,7 +1499,7 @@ void ThreadOpenConnections2(void* parg) BOOST_FOREACH(CNode* pnode, vNodes) setConnected.insert(pnode->addr.ip & 0x0000ffff); - int64 nANow = GetAdjustedTime(); + int64_t nANow = GetAdjustedTime(); CRITICAL_BLOCK(cs_mapAddresses) { @@ -1506,11 +1508,11 @@ void ThreadOpenConnections2(void* parg) const CAddress& addr = item.second; if (!addr.IsIPv4() || !addr.IsValid() || setConnected.count(addr.ip & 0x0000ffff)) continue; - int64 nSinceLastSeen = nANow - addr.nTime; - int64 nSinceLastTry = nANow - addr.nLastTry; + int64_t nSinceLastSeen = nANow - addr.nTime; + int64_t nSinceLastTry = nANow - addr.nLastTry; // Randomize the order in a deterministic way, putting the standard port first - int64 nRandomizer = (uint64)(nStart * 4951 + addr.nLastTry * 9567851 + addr.ip * 7789) % (2 * 60 * 60); + int64_t nRandomizer = (uint64_t)(nStart * 4951 + addr.nLastTry * 9567851 + addr.ip * 7789) % (2 * 60 * 60); if (addr.port != htons(GetDefaultPort())) nRandomizer += 2 * 60 * 60; @@ -1524,7 +1526,7 @@ void ThreadOpenConnections2(void* parg) // 30 days 27 hours // 90 days 46 hours // 365 days 93 hours - int64 nDelay = (int64)(3600.0 * sqrt(fabs((double)nSinceLastSeen) / 3600.0) + nRandomizer); + int64_t nDelay = (int64_t)(3600.0 * sqrt(fabs((double)nSinceLastSeen) / 3600.0) + nRandomizer); // Fast reconnect for one hour after last seen if (nSinceLastSeen < 60 * 60) @@ -1545,7 +1547,7 @@ void ThreadOpenConnections2(void* parg) // If multiple addresses are ready, prioritize by time since // last seen and time since last tried. - int64 nScore = min(nSinceLastTry, (int64)24 * 60 * 60) - nSinceLastSeen - nRandomizer; + int64_t nScore = min(nSinceLastTry, (int64_t)24 * 60 * 60) - nSinceLastSeen - nRandomizer; if (nScore > nBest) { nBest = nScore; @@ -1852,7 +1854,7 @@ bool StopNode() printf("StopNode()\n"); fShutdown = true; nTransactionsUpdated++; - int64 nStart = GetTime(); + int64_t nStart = GetTime(); while (vnThreadsRunning[0] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0 #ifdef USE_UPNP || vnThreadsRunning[5] > 0 @@ -5,6 +5,8 @@ #ifndef BITCOIN_NET_H #define BITCOIN_NET_H +#include <stdint.h> + #include <deque> #include <boost/array.hpp> #include <boost/foreach.hpp> @@ -33,10 +35,10 @@ bool ConnectSocket(const CAddress& addrConnect, SOCKET& hSocketRet, int nTimeout bool Lookup(const char *pszName, std::vector<CAddress>& vaddr, int nServices, int nMaxSolutions, bool fAllowLookup = false, int portDefault = 0, bool fAllowPort = false); bool Lookup(const char *pszName, CAddress& addr, int nServices, bool fAllowLookup = false, int portDefault = 0, bool fAllowPort = false); bool GetMyExternalIP(unsigned int& ipRet); -bool AddAddress(CAddress addr, int64 nTimePenalty=0, CAddrDB *pAddrDB=NULL); +bool AddAddress(CAddress addr, int64_t nTimePenalty=0, CAddrDB *pAddrDB=NULL); void AddressCurrentlyConnected(const CAddress& addr); CNode* FindNode(unsigned int ip); -CNode* ConnectNode(CAddress addrConnect, int64 nTimeout=0); +CNode* ConnectNode(CAddress addrConnect, int64_t nTimeout=0); void AbandonRequests(void (*fn)(void*, CDataStream&), void* param1); bool AnySubscribed(unsigned int nChannel); void MapPort(bool fMapPort); @@ -74,9 +76,9 @@ public: extern bool fClient; extern bool fAllowDNS; -extern uint64 nLocalServices; +extern uint64_t nLocalServices; extern CAddress addrLocalHost; -extern uint64 nLocalHostNonce; +extern uint64_t nLocalHostNonce; extern boost::array<int, 10> vnThreadsRunning; extern std::vector<CNode*> vNodes; @@ -84,9 +86,9 @@ extern CCriticalSection cs_vNodes; extern std::map<std::vector<unsigned char>, CAddress> mapAddresses; extern CCriticalSection cs_mapAddresses; extern std::map<CInv, CDataStream> mapRelay; -extern std::deque<std::pair<int64, CInv> > vRelayExpiration; +extern std::deque<std::pair<int64_t, CInv> > vRelayExpiration; extern CCriticalSection cs_mapRelay; -extern std::map<CInv, int64> mapAlreadyAskedFor; +extern std::map<CInv, int64_t> mapAlreadyAskedFor; // Settings extern int fUseProxy; @@ -101,16 +103,16 @@ class CNode { public: // socket - uint64 nServices; + uint64_t nServices; SOCKET hSocket; CDataStream vSend; CDataStream vRecv; CCriticalSection cs_vSend; CCriticalSection cs_vRecv; - int64 nLastSend; - int64 nLastRecv; - int64 nLastSendEmpty; - int64 nTimeConnected; + int64_t nLastSend; + int64_t nLastRecv; + int64_t nLastSendEmpty; + int64_t nTimeConnected; unsigned int nHeaderStart; unsigned int nMessageStart; CAddress addr; @@ -126,12 +128,12 @@ protected: // Denial-of-service detection/prevention // Key is ip address, value is banned-until-time - static std::map<unsigned int, int64> setBanned; + static std::map<unsigned int, int64_t> setBanned; static CCriticalSection cs_setBanned; int nMisbehavior; public: - int64 nReleaseTime; + int64_t nReleaseTime; std::map<uint256, CRequestTracker> mapRequests; CCriticalSection cs_mapRequests; uint256 hashContinue; @@ -149,7 +151,7 @@ public: std::set<CInv> setInventoryKnown; std::vector<CInv> vInventoryToSend; CCriticalSection cs_inventory; - std::multimap<int64, CInv> mapAskFor; + std::multimap<int64_t, CInv> mapAskFor; // publish and subscription std::vector<char> vfSubscribe; @@ -217,7 +219,7 @@ public: return std::max(nRefCount, 0) + (GetTime() < nReleaseTime ? 1 : 0); } - CNode* AddRef(int64 nTimeout=0) + CNode* AddRef(int64_t nTimeout=0) { if (nTimeout != 0) nReleaseTime = std::max(nReleaseTime, GetTime() + nTimeout); @@ -265,12 +267,12 @@ public: { // We're using mapAskFor as a priority queue, // the key is the earliest time the request can be sent - int64& nRequestTime = mapAlreadyAskedFor[inv]; + int64_t& nRequestTime = mapAlreadyAskedFor[inv]; printf("askfor %s %"PRI64d"\n", inv.ToString().c_str(), nRequestTime); // Make sure not to reuse time indexes to keep things in the same order - int64 nNow = (GetTime() - 1) * 1000000; - static int64 nLastTime; + int64_t nNow = (GetTime() - 1) * 1000000; + static int64_t nLastTime; nLastTime = nNow = std::max(nNow, ++nLastTime); // Each retry is 2 minutes after the last diff --git a/src/noui.h b/src/noui.h index 754c2225fc..5f6cc752b0 100644 --- a/src/noui.h +++ b/src/noui.h @@ -5,6 +5,8 @@ #ifndef BITCOIN_NOUI_H #define BITCOIN_NOUI_H +#include <stdint.h> + #include <string> #include <boost/function.hpp> #include "wallet.h" @@ -50,7 +52,7 @@ inline int ThreadSafeMessageBox(const std::string& message, const std::string& c return MyMessageBox(message, caption, style, parent, x, y); } -inline bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent) +inline bool ThreadSafeAskFee(int64_t nFeeRequired, const std::string& strCaption, wxWindow* parent) { return true; } diff --git a/src/protocol.cpp b/src/protocol.cpp index 27efb8f293..8e588652de 100644 --- a/src/protocol.cpp +++ b/src/protocol.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 <stdint.h> + #include "protocol.h" #include "util.h" @@ -82,7 +84,7 @@ CAddress::CAddress() Init(); } -CAddress::CAddress(unsigned int ipIn, unsigned short portIn, uint64 nServicesIn) +CAddress::CAddress(unsigned int ipIn, unsigned short portIn, uint64_t nServicesIn) { Init(); ip = ipIn; @@ -90,7 +92,7 @@ CAddress::CAddress(unsigned int ipIn, unsigned short portIn, uint64 nServicesIn) nServices = nServicesIn; } -CAddress::CAddress(const struct sockaddr_in& sockaddr, uint64 nServicesIn) +CAddress::CAddress(const struct sockaddr_in& sockaddr, uint64_t nServicesIn) { Init(); ip = sockaddr.sin_addr.s_addr; @@ -98,25 +100,25 @@ CAddress::CAddress(const struct sockaddr_in& sockaddr, uint64 nServicesIn) nServices = nServicesIn; } -CAddress::CAddress(const char* pszIn, int portIn, bool fNameLookup, uint64 nServicesIn) +CAddress::CAddress(const char* pszIn, int portIn, bool fNameLookup, uint64_t nServicesIn) { Init(); Lookup(pszIn, *this, nServicesIn, fNameLookup, portIn); } -CAddress::CAddress(const char* pszIn, bool fNameLookup, uint64 nServicesIn) +CAddress::CAddress(const char* pszIn, bool fNameLookup, uint64_t nServicesIn) { Init(); Lookup(pszIn, *this, nServicesIn, fNameLookup, 0, true); } -CAddress::CAddress(std::string strIn, int portIn, bool fNameLookup, uint64 nServicesIn) +CAddress::CAddress(std::string strIn, int portIn, bool fNameLookup, uint64_t nServicesIn) { Init(); Lookup(strIn.c_str(), *this, nServicesIn, fNameLookup, portIn); } -CAddress::CAddress(std::string strIn, bool fNameLookup, uint64 nServicesIn) +CAddress::CAddress(std::string strIn, bool fNameLookup, uint64_t nServicesIn) { Init(); Lookup(strIn.c_str(), *this, nServicesIn, fNameLookup, 0, true); diff --git a/src/protocol.h b/src/protocol.h index 53d3eef4d5..4d1b329514 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -10,6 +10,8 @@ #ifndef __INCLUDED_PROTOCOL_H__ #define __INCLUDED_PROTOCOL_H__ +#include <stdint.h> + #include "serialize.h" #include <string> #include "uint256.h" @@ -65,12 +67,12 @@ class CAddress { public: CAddress(); - CAddress(unsigned int ipIn, unsigned short portIn=0, uint64 nServicesIn=NODE_NETWORK); - explicit CAddress(const struct sockaddr_in& sockaddr, uint64 nServicesIn=NODE_NETWORK); - explicit CAddress(const char* pszIn, int portIn, bool fNameLookup = false, uint64 nServicesIn=NODE_NETWORK); - explicit CAddress(const char* pszIn, bool fNameLookup = false, uint64 nServicesIn=NODE_NETWORK); - explicit CAddress(std::string strIn, int portIn, bool fNameLookup = false, uint64 nServicesIn=NODE_NETWORK); - explicit CAddress(std::string strIn, bool fNameLookup = false, uint64 nServicesIn=NODE_NETWORK); + CAddress(unsigned int ipIn, unsigned short portIn=0, uint64_t nServicesIn=NODE_NETWORK); + explicit CAddress(const struct sockaddr_in& sockaddr, uint64_t nServicesIn=NODE_NETWORK); + explicit CAddress(const char* pszIn, int portIn, bool fNameLookup = false, uint64_t nServicesIn=NODE_NETWORK); + explicit CAddress(const char* pszIn, bool fNameLookup = false, uint64_t nServicesIn=NODE_NETWORK); + explicit CAddress(std::string strIn, int portIn, bool fNameLookup = false, uint64_t nServicesIn=NODE_NETWORK); + explicit CAddress(std::string strIn, bool fNameLookup = false, uint64_t nServicesIn=NODE_NETWORK); void Init(); @@ -109,7 +111,7 @@ class CAddress // TODO: make private (improves encapsulation) public: - uint64 nServices; + uint64_t nServices; unsigned char pchReserved[12]; unsigned int ip; unsigned short port; diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index cba4e851b4..f696ca0f89 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -9,6 +9,7 @@ #include "headers.h" #include "init.h" +#include <QtGlobal> #include <QApplication> #include <QMessageBox> #include <QThread> @@ -56,7 +57,7 @@ int ThreadSafeMessageBox(const std::string& message, const std::string& caption, return 4; } -bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent) +bool ThreadSafeAskFee(qint64 nFeeRequired, const std::string& strCaption, wxWindow* parent) { if(!guiref) return false; diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp index 19cd5655cc..f385bc55e8 100644 --- a/src/qt/bitcoinamountfield.cpp +++ b/src/qt/bitcoinamountfield.cpp @@ -4,6 +4,7 @@ #include "guiconstants.h" +#include <QtGlobal> #include <QLabel> #include <QLineEdit> #include <QRegExpValidator> diff --git a/src/qt/bitcoinamountfield.h b/src/qt/bitcoinamountfield.h index ead8bdb84b..954ed1ebd0 100644 --- a/src/qt/bitcoinamountfield.h +++ b/src/qt/bitcoinamountfield.h @@ -1,6 +1,7 @@ #ifndef BITCOINFIELD_H #define BITCOINFIELD_H +#include <QtGlobal> #include <QWidget> QT_BEGIN_NAMESPACE diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 1c49683364..fa317a25ef 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -27,6 +27,7 @@ #include "macdockiconhandler.h" #endif +#include <QtGlobal> #include <QApplication> #include <QMainWindow> #include <QMenuBar> diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index a0905e44ad..a0b3652fc0 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -1,6 +1,7 @@ #ifndef BITCOINGUI_H #define BITCOINGUI_H +#include <QtGlobal> #include <QMainWindow> #include <QSystemTrayIcon> diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index 624ff58ce5..b4ebe9d723 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -82,4 +82,4 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "Warning: Please check that your computer's date and time are correct. If " "your clock is wrong Bitcoin will not work properly."), QT_TRANSLATE_NOOP("bitcoin-core", "beta"), -};
\ No newline at end of file +}; diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index 9a9a4890dc..0845d2104b 100644 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -1,5 +1,6 @@ #include "bitcoinunits.h" +#include <QtGlobal> #include <QStringList> BitcoinUnits::BitcoinUnits(QObject *parent): diff --git a/src/qt/bitcoinunits.h b/src/qt/bitcoinunits.h index 18fa36a0b7..35c0d8ea0d 100644 --- a/src/qt/bitcoinunits.h +++ b/src/qt/bitcoinunits.h @@ -1,6 +1,7 @@ #ifndef BITCOINUNITS_H #define BITCOINUNITS_H +#include <QtGlobal> #include <QString> #include <QAbstractListModel> diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 158b84a285..378660b049 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -5,6 +5,7 @@ #include "headers.h" +#include <QtGlobal> #include <QString> #include <QDateTime> #include <QDoubleValidator> diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 94e3314d14..4a4cc62345 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -1,6 +1,7 @@ #ifndef GUIUTIL_H #define GUIUTIL_H +#include <QtGlobal> #include <QString> QT_BEGIN_NAMESPACE diff --git a/src/qt/notificator.cpp b/src/qt/notificator.cpp index a2314caa47..5e9969bf9e 100644 --- a/src/qt/notificator.cpp +++ b/src/qt/notificator.cpp @@ -1,5 +1,6 @@ #include "notificator.h" +#include <QtGlobal> #include <QMetaType> #include <QVariant> #include <QIcon> diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index a68c84c957..bc56bdea03 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -1,3 +1,5 @@ +#include <QtGlobal> + #include "optionsmodel.h" #include "bitcoinunits.h" diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index 775362d636..13d964b256 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -1,6 +1,7 @@ #ifndef OPTIONSMODEL_H #define OPTIONSMODEL_H +#include <QtGlobal> #include <QAbstractListModel> class CWallet; diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 5b5a8f5271..1710519e0d 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -9,6 +9,7 @@ #include "guiutil.h" #include "guiconstants.h" +#include <QtGlobal> #include <QAbstractItemDelegate> #include <QPainter> diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h index 1199227168..46317d9b9e 100644 --- a/src/qt/overviewpage.h +++ b/src/qt/overviewpage.h @@ -1,6 +1,7 @@ #ifndef OVERVIEWPAGE_H #define OVERVIEWPAGE_H +#include <QtGlobal> #include <QWidget> QT_BEGIN_NAMESPACE diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 762f27dfa6..e6b500cfde 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -8,6 +8,7 @@ #include "guiutil.h" #include "askpassphrasedialog.h" +#include <QtGlobal> #include <QMessageBox> #include <QLocale> #include <QTextDocument> diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h index 82910257f0..d879fbe973 100644 --- a/src/qt/sendcoinsdialog.h +++ b/src/qt/sendcoinsdialog.h @@ -1,6 +1,7 @@ #ifndef SENDCOINSDIALOG_H #define SENDCOINSDIALOG_H +#include <QtGlobal> #include <QDialog> namespace Ui { diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp index 6ca3ac8c4b..a19ec875d9 100644 --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -6,6 +6,7 @@ #include "headers.h" #include "qtui.h" +#include <QtGlobal> #include <QString> #include <QTextDocument> // For Qt::escape @@ -55,10 +56,10 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx) strHTML.reserve(4000); strHTML += "<html><font face='verdana, arial, helvetica, sans-serif'>"; - int64 nTime = wtx.GetTxTime(); - int64 nCredit = wtx.GetCredit(); - int64 nDebit = wtx.GetDebit(); - int64 nNet = nCredit - nDebit; + qint64 nTime = wtx.GetTxTime(); + qint64 nCredit = wtx.GetCredit(); + qint64 nDebit = wtx.GetDebit(); + qint64 nNet = nCredit - nDebit; strHTML += tr("<b>Status:</b> ") + FormatTxStatus(wtx); int nRequests = wtx.GetRequestCount(); @@ -141,7 +142,7 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx) // // Coinbase // - int64 nUnmatured = 0; + qint64 nUnmatured = 0; BOOST_FOREACH(const CTxOut& txout, wtx.vout) nUnmatured += wallet->GetCredit(txout); strHTML += tr("<b>Credit:</b> "); @@ -200,13 +201,13 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx) if (fAllToMe) { // Payment to self - int64 nChange = wtx.GetChange(); - int64 nValue = nCredit - nChange; + qint64 nChange = wtx.GetChange(); + qint64 nValue = nCredit - nChange; strHTML += tr("<b>Debit:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, -nValue) + "<br>"; strHTML += tr("<b>Credit:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC, nValue) + "<br>"; } - int64 nTxFee = nDebit - wtx.GetValueOut(); + qint64 nTxFee = nDebit - wtx.GetValueOut(); if (nTxFee > 0) strHTML += tr("<b>Transaction fee:</b> ") + BitcoinUnits::formatWithUnit(BitcoinUnits::BTC,-nTxFee) + "<br>"; } diff --git a/src/qt/transactionfilterproxy.cpp b/src/qt/transactionfilterproxy.cpp index 16fb4dab92..278186fe6e 100644 --- a/src/qt/transactionfilterproxy.cpp +++ b/src/qt/transactionfilterproxy.cpp @@ -1,6 +1,7 @@ #include "transactionfilterproxy.h" #include "transactiontablemodel.h" +#include <QtGlobal> #include <QDateTime> #include <cstdlib> diff --git a/src/qt/transactionfilterproxy.h b/src/qt/transactionfilterproxy.h index 76cf46f156..e33b5e5fb0 100644 --- a/src/qt/transactionfilterproxy.h +++ b/src/qt/transactionfilterproxy.h @@ -1,6 +1,7 @@ #ifndef TRANSACTIONFILTERPROXY_H #define TRANSACTIONFILTERPROXY_H +#include <QtGlobal> #include <QSortFilterProxyModel> #include <QDateTime> diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp index 53cd35b2da..8a1f1b6772 100644 --- a/src/qt/transactionrecord.cpp +++ b/src/qt/transactionrecord.cpp @@ -1,3 +1,5 @@ +#include <QtGlobal> + #include "transactionrecord.h" #include "headers.h" @@ -33,10 +35,10 @@ bool TransactionRecord::showTransaction(const CWalletTx &wtx) QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet *wallet, const CWalletTx &wtx) { QList<TransactionRecord> parts; - int64 nTime = wtx.nTimeDisplayed = wtx.GetTxTime(); - int64 nCredit = wtx.GetCredit(true); - int64 nDebit = wtx.GetDebit(); - int64 nNet = nCredit - nDebit; + qint64 nTime = wtx.nTimeDisplayed = wtx.GetTxTime(); + qint64 nCredit = wtx.GetCredit(true); + qint64 nDebit = wtx.GetDebit(); + qint64 nNet = nCredit - nDebit; uint256 hash = wtx.GetHash(); std::map<std::string, std::string> mapValue = wtx.mapValue; @@ -58,7 +60,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet * if (nCredit == 0) { - int64 nUnmatured = 0; + qint64 nUnmatured = 0; BOOST_FOREACH(const CTxOut& txout, wtx.vout) nUnmatured += wallet->GetCredit(txout); sub.credit = nUnmatured; @@ -103,7 +105,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet * if (fAllFromMe && fAllToMe) { // Payment to self - int64 nChange = wtx.GetChange(); + qint64 nChange = wtx.GetChange(); parts.append(TransactionRecord(hash, nTime, TransactionRecord::SendToSelf, "", -(nDebit - nChange), nCredit - nChange)); @@ -113,7 +115,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet * // // Debit // - int64 nTxFee = nDebit - wtx.GetValueOut(); + qint64 nTxFee = nDebit - wtx.GetValueOut(); for (int nOut = 0; nOut < wtx.vout.size(); nOut++) { @@ -144,7 +146,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet * } } - int64 nValue = txout.nValue; + qint64 nValue = txout.nValue; /* Add fee to first output */ if (nTxFee > 0) { @@ -227,7 +229,7 @@ void TransactionRecord::updateStatus(const CWalletTx &wtx) // For generated transactions, determine maturity if(type == TransactionRecord::Generated) { - int64 nCredit = wtx.GetCredit(true); + qint64 nCredit = wtx.GetCredit(true); if (nCredit == 0) { status.maturity = TransactionStatus::Immature; diff --git a/src/qt/transactionrecord.h b/src/qt/transactionrecord.h index 704cfe65b7..db29b94576 100644 --- a/src/qt/transactionrecord.h +++ b/src/qt/transactionrecord.h @@ -3,6 +3,7 @@ #include "uint256.h" +#include <QtGlobal> #include <QList> class CWallet; @@ -46,8 +47,8 @@ public: /** @name Reported status @{*/ Status status; - int64 depth; - int64 open_for; /**< Timestamp if status==OpenUntilDate, otherwise number of blocks */ + qint64 depth; + qint64 open_for; /**< Timestamp if status==OpenUntilDate, otherwise number of blocks */ /**@}*/ /** Current number of blocks (to know whether cached status is still valid) */ @@ -79,15 +80,15 @@ public: { } - TransactionRecord(uint256 hash, int64 time): + TransactionRecord(uint256 hash, qint64 time): hash(hash), time(time), type(Other), address(""), debit(0), credit(0), idx(0) { } - TransactionRecord(uint256 hash, int64 time, + TransactionRecord(uint256 hash, qint64 time, Type type, const std::string &address, - int64 debit, int64 credit): + qint64 debit, qint64 credit): hash(hash), time(time), type(type), address(address), debit(debit), credit(credit), idx(0) { @@ -101,11 +102,11 @@ public: /** @name Immutable transaction attributes @{*/ uint256 hash; - int64 time; + qint64 time; Type type; std::string address; - int64 debit; - int64 credit; + qint64 debit; + qint64 credit; /**@}*/ /** Subtransaction index, for sort key */ diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp index 2dcbf1ea8a..af9597117d 100644 --- a/src/qt/transactionview.cpp +++ b/src/qt/transactionview.cpp @@ -11,6 +11,7 @@ #include "editaddressdialog.h" #include "optionsmodel.h" +#include <QtGlobal> #include <QScrollBar> #include <QComboBox> #include <QDoubleValidator> diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index f028f10f6c..b71256a23d 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -6,6 +6,7 @@ #include "headers.h" +#include <QtGlobal> #include <QTimer> #include <QSet> @@ -120,7 +121,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(const QList<SendCoinsRecipie CRITICAL_BLOCK(wallet->cs_wallet) { // Sendmany - std::vector<std::pair<CScript, int64> > vecSend; + std::vector<std::pair<CScript, qint64> > vecSend; foreach(const SendCoinsRecipient &rcp, recipients) { CScript scriptPubKey; @@ -130,7 +131,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(const QList<SendCoinsRecipie CWalletTx wtx; CReserveKey keyChange(wallet); - int64 nFeeRequired = 0; + qint64 nFeeRequired = 0; bool fCreated = wallet->CreateTransaction(vecSend, wtx, keyChange, nFeeRequired); if(!fCreated) diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 89e8cdd2a0..6c0d6d2afd 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -1,6 +1,7 @@ #ifndef WALLETMODEL_H #define WALLETMODEL_H +#include <QtGlobal> #include <QObject> #include "util.h" diff --git a/src/qtui.h b/src/qtui.h index 17fc44e94b..3eef1ce5e0 100644 --- a/src/qtui.h +++ b/src/qtui.h @@ -4,6 +4,8 @@ #ifndef BITCOIN_EXTERNUI_H #define BITCOIN_EXTERNUI_H +#include <stdint.h> + #include <string> #include <boost/function/function0.hpp> #include "wallet.h" @@ -39,7 +41,7 @@ typedef void wxWindow; extern int MyMessageBox(const std::string& message, const std::string& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1); #define wxMessageBox MyMessageBox extern int ThreadSafeMessageBox(const std::string& message, const std::string& caption, int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1); -extern bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent); +extern bool ThreadSafeAskFee(int64_t nFeeRequired, const std::string& strCaption, wxWindow* parent); extern void CalledSetStatusBar(const std::string& strText, int nField); extern void UIThreadCall(boost::function0<void> fn); extern void MainFrameRepaint(); diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp index f3978fbce8..c7c5b1d36c 100644 --- a/src/rpcdump.cpp +++ b/src/rpcdump.cpp @@ -2,6 +2,8 @@ // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php. +#include <stdint.h> + #include "headers.h" #include "init.h" // for pwalletMain #include "bitcoinrpc.h" @@ -31,7 +33,7 @@ class CTxDump { public: CBlockIndex *pindex; - int64 nValue; + int64_t nValue; bool fSpent; CWalletTx* ptx; int nOut; diff --git a/src/script.h b/src/script.h index b671e15963..e3c6b15b6d 100644 --- a/src/script.h +++ b/src/script.h @@ -5,6 +5,8 @@ #ifndef H_BITCOIN_SCRIPT #define H_BITCOIN_SCRIPT +#include <stdint.h> + #include "base58.h" #include <string> @@ -219,7 +221,7 @@ inline std::string StackString(const std::vector<std::vector<unsigned char> >& v class CScript : public std::vector<unsigned char> { protected: - CScript& push_int64(int64 n) + CScript& push_int64(int64_t n) { if (n == -1 || (n >= 1 && n <= 16)) { @@ -233,7 +235,7 @@ protected: return *this; } - CScript& push_uint64(uint64 n) + CScript& push_uint64(uint64_t n) { if (n >= 1 && n <= 16) { @@ -273,12 +275,12 @@ public: explicit CScript(short b) { operator<<(b); } explicit CScript(int b) { operator<<(b); } explicit CScript(long b) { operator<<(b); } - explicit CScript(int64 b) { operator<<(b); } + explicit CScript(int64_t b) { operator<<(b); } explicit CScript(unsigned char b) { operator<<(b); } explicit CScript(unsigned int b) { operator<<(b); } explicit CScript(unsigned short b) { operator<<(b); } explicit CScript(unsigned long b) { operator<<(b); } - explicit CScript(uint64 b) { operator<<(b); } + explicit CScript(uint64_t b) { operator<<(b); } explicit CScript(opcodetype b) { operator<<(b); } explicit CScript(const uint256& b) { operator<<(b); } @@ -290,12 +292,12 @@ public: CScript& operator<<(short b) { return push_int64(b); } CScript& operator<<(int b) { return push_int64(b); } CScript& operator<<(long b) { return push_int64(b); } - CScript& operator<<(int64 b) { return push_int64(b); } + CScript& operator<<(int64_t b) { return push_int64(b); } CScript& operator<<(unsigned char b) { return push_uint64(b); } CScript& operator<<(unsigned int b) { return push_uint64(b); } CScript& operator<<(unsigned short b) { return push_uint64(b); } CScript& operator<<(unsigned long b) { return push_uint64(b); } - CScript& operator<<(uint64 b) { return push_uint64(b); } + CScript& operator<<(uint64_t b) { return push_uint64(b); } CScript& operator<<(opcodetype opcode) { diff --git a/src/serialize.h b/src/serialize.h index 54555907d8..4bfff0a1a2 100644 --- a/src/serialize.h +++ b/src/serialize.h @@ -5,6 +5,8 @@ #ifndef BITCOIN_SERIALIZE_H #define BITCOIN_SERIALIZE_H +#include <stdint.h> + #include <string> #include <vector> #include <map> @@ -19,9 +21,6 @@ #include <boost/tuple/tuple_comparison.hpp> #include <boost/tuple/tuple_io.hpp> -typedef long long int64; -typedef unsigned long long uint64; - #ifdef WIN32 #include <windows.h> // This is used to attempt to keep keying material out of swap @@ -137,8 +136,8 @@ inline unsigned int GetSerializeSize(signed int a, int, int=0) { return size inline unsigned int GetSerializeSize(unsigned int a, int, int=0) { return sizeof(a); } inline unsigned int GetSerializeSize(signed long a, int, int=0) { return sizeof(a); } inline unsigned int GetSerializeSize(unsigned long a, int, int=0) { return sizeof(a); } -inline unsigned int GetSerializeSize(int64 a, int, int=0) { return sizeof(a); } -inline unsigned int GetSerializeSize(uint64 a, int, int=0) { return sizeof(a); } +inline unsigned int GetSerializeSize(int64_t a, int, int=0) { return sizeof(a); } +inline unsigned int GetSerializeSize(uint64_t a, int, int=0) { return sizeof(a); } inline unsigned int GetSerializeSize(float a, int, int=0) { return sizeof(a); } inline unsigned int GetSerializeSize(double a, int, int=0) { return sizeof(a); } @@ -151,8 +150,8 @@ template<typename Stream> inline void Serialize(Stream& s, signed int a, int template<typename Stream> inline void Serialize(Stream& s, unsigned int a, int, int=0) { WRITEDATA(s, a); } template<typename Stream> inline void Serialize(Stream& s, signed long a, int, int=0) { WRITEDATA(s, a); } template<typename Stream> inline void Serialize(Stream& s, unsigned long a, int, int=0) { WRITEDATA(s, a); } -template<typename Stream> inline void Serialize(Stream& s, int64 a, int, int=0) { WRITEDATA(s, a); } -template<typename Stream> inline void Serialize(Stream& s, uint64 a, int, int=0) { WRITEDATA(s, a); } +template<typename Stream> inline void Serialize(Stream& s, int64_t a, int, int=0) { WRITEDATA(s, a); } +template<typename Stream> inline void Serialize(Stream& s, uint64_t a, int, int=0) { WRITEDATA(s, a); } template<typename Stream> inline void Serialize(Stream& s, float a, int, int=0) { WRITEDATA(s, a); } template<typename Stream> inline void Serialize(Stream& s, double a, int, int=0) { WRITEDATA(s, a); } @@ -165,8 +164,8 @@ template<typename Stream> inline void Unserialize(Stream& s, signed int& a, template<typename Stream> inline void Unserialize(Stream& s, unsigned int& a, int, int=0) { READDATA(s, a); } template<typename Stream> inline void Unserialize(Stream& s, signed long& a, int, int=0) { READDATA(s, a); } template<typename Stream> inline void Unserialize(Stream& s, unsigned long& a, int, int=0) { READDATA(s, a); } -template<typename Stream> inline void Unserialize(Stream& s, int64& a, int, int=0) { READDATA(s, a); } -template<typename Stream> inline void Unserialize(Stream& s, uint64& a, int, int=0) { READDATA(s, a); } +template<typename Stream> inline void Unserialize(Stream& s, int64_t& a, int, int=0) { READDATA(s, a); } +template<typename Stream> inline void Unserialize(Stream& s, uint64_t& a, int, int=0) { READDATA(s, a); } template<typename Stream> inline void Unserialize(Stream& s, float& a, int, int=0) { READDATA(s, a); } template<typename Stream> inline void Unserialize(Stream& s, double& a, int, int=0) { READDATA(s, a); } @@ -186,16 +185,16 @@ template<typename Stream> inline void Unserialize(Stream& s, bool& a, int, int=0 // size <= UINT_MAX -- 5 bytes (254 + 4 bytes) // size > UINT_MAX -- 9 bytes (255 + 8 bytes) // -inline unsigned int GetSizeOfCompactSize(uint64 nSize) +inline unsigned int GetSizeOfCompactSize(uint64_t nSize) { if (nSize < 253) return sizeof(unsigned char); else if (nSize <= std::numeric_limits<unsigned short>::max()) return sizeof(unsigned char) + sizeof(unsigned short); else if (nSize <= std::numeric_limits<unsigned int>::max()) return sizeof(unsigned char) + sizeof(unsigned int); - else return sizeof(unsigned char) + sizeof(uint64); + else return sizeof(unsigned char) + sizeof(uint64_t); } template<typename Stream> -void WriteCompactSize(Stream& os, uint64 nSize) +void WriteCompactSize(Stream& os, uint64_t nSize) { if (nSize < 253) { @@ -219,7 +218,7 @@ void WriteCompactSize(Stream& os, uint64 nSize) else { unsigned char chSize = 255; - uint64 xSize = nSize; + uint64_t xSize = nSize; WRITEDATA(os, chSize); WRITEDATA(os, xSize); } @@ -227,11 +226,11 @@ void WriteCompactSize(Stream& os, uint64 nSize) } template<typename Stream> -uint64 ReadCompactSize(Stream& is) +uint64_t ReadCompactSize(Stream& is) { unsigned char chSize; READDATA(is, chSize); - uint64 nSizeRet = 0; + uint64_t nSizeRet = 0; if (chSize < 253) { nSizeRet = chSize; @@ -250,11 +249,11 @@ uint64 ReadCompactSize(Stream& is) } else { - uint64 xSize; + uint64_t xSize; READDATA(is, xSize); nSizeRet = xSize; } - if (nSizeRet > (uint64)MAX_SIZE) + if (nSizeRet > (uint64_t)MAX_SIZE) throw std::ios_base::failure("ReadCompactSize() : size too large"); return nSizeRet; } diff --git a/src/test/DoS_tests.cpp b/src/test/DoS_tests.cpp index e9b7b4517a..bea671c311 100644 --- a/src/test/DoS_tests.cpp +++ b/src/test/DoS_tests.cpp @@ -1,6 +1,8 @@ // // Unit tests for denial-of-service detection/prevention code // +#include <stdint.h> + #include <boost/assign/list_of.hpp> // for 'map_list_of()' #include <boost/test/unit_test.hpp> #include <boost/foreach.hpp> @@ -50,7 +52,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore) BOOST_AUTO_TEST_CASE(DoS_bantime) { CNode::ClearBanned(); - int64 nStartTime = GetTime(); + int64_t nStartTime = GetTime(); SetMockTime(nStartTime); // Overrides future calls to GetTime() CAddress addr(0xa0b0c001); @@ -66,11 +68,11 @@ BOOST_AUTO_TEST_CASE(DoS_bantime) BOOST_CHECK(!CNode::IsBanned(addr.ip)); } -static bool CheckNBits(unsigned int nbits1, int64 time1, unsigned int nbits2, int64 time2) +static bool CheckNBits(unsigned int nbits1, int64_t time1, unsigned int nbits2, int64_t time2) { if (time1 > time2) return CheckNBits(nbits2, time2, nbits1, time1); - int64 deltaTime = time2-time1; + int64_t deltaTime = time2-time1; CBigNum required; required.SetCompact(ComputeMinWork(nbits1, deltaTime)); @@ -85,7 +87,7 @@ BOOST_AUTO_TEST_CASE(DoS_checknbits) // Timestamps,nBits from the bitcoin blockchain. // These are the block-chain checkpoint blocks - typedef std::map<int64, unsigned int> BlockData; + typedef std::map<int64_t, unsigned int> BlockData; BlockData chainData = map_list_of(1239852051,486604799)(1262749024,486594666) (1279305360,469854461)(1280200847,469830746)(1281678674,469809688) diff --git a/src/test/base58_tests.cpp b/src/test/base58_tests.cpp index d52ac74982..0ceff9f28f 100644 --- a/src/test/base58_tests.cpp +++ b/src/test/base58_tests.cpp @@ -1,3 +1,5 @@ +#include <stdint.h> + #include <boost/test/unit_test.hpp> #include "main.h" diff --git a/src/test/script_op_eval_tests.cpp b/src/test/script_op_eval_tests.cpp index c44642c6e9..14c025b425 100644 --- a/src/test/script_op_eval_tests.cpp +++ b/src/test/script_op_eval_tests.cpp @@ -1,3 +1,5 @@ +#include <stdint.h> + #include <boost/assert.hpp> #include <boost/assign/list_of.hpp> #include <boost/assign/list_inserter.hpp> diff --git a/src/test/uint160_tests.cpp b/src/test/uint160_tests.cpp index 35cb35b25a..d986c30870 100644 --- a/src/test/uint160_tests.cpp +++ b/src/test/uint160_tests.cpp @@ -1,3 +1,5 @@ +#include <stdint.h> + #include <boost/test/unit_test.hpp> #include "uint256.h" @@ -10,7 +12,7 @@ BOOST_AUTO_TEST_CASE(uint160_equality) uint160 num2 = 11; BOOST_CHECK(num1+1 == num2); - uint64 num3 = 10; + uint64_t num3 = 10; BOOST_CHECK(num1 == num3); BOOST_CHECK(num1+num2 == num3+num2); } diff --git a/src/test/uint256_tests.cpp b/src/test/uint256_tests.cpp index efdc8a6aeb..d7e1e51379 100644 --- a/src/test/uint256_tests.cpp +++ b/src/test/uint256_tests.cpp @@ -1,3 +1,5 @@ +#include <stdint.h> + #include <boost/test/unit_test.hpp> #include "uint256.h" @@ -10,7 +12,7 @@ BOOST_AUTO_TEST_CASE(uint256_equality) uint256 num2 = 11; BOOST_CHECK(num1+1 == num2); - uint64 num3 = 10; + uint64_t num3 = 10; BOOST_CHECK(num1 == num3); BOOST_CHECK(num1+num2 == num3+num2); } diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index 9571c47382..08d243751e 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -1,3 +1,5 @@ +#include <stdint.h> + #include <vector> #include <boost/test/unit_test.hpp> #include <boost/foreach.hpp> @@ -186,7 +188,7 @@ BOOST_AUTO_TEST_CASE(util_FormatMoney) BOOST_AUTO_TEST_CASE(util_ParseMoney) { - int64 ret = 0; + int64_t ret = 0; BOOST_CHECK(ParseMoney("0.0", ret)); BOOST_CHECK_EQUAL(ret, 0); diff --git a/src/uint256.h b/src/uint256.h index d3da1f26d2..20438993cd 100644 --- a/src/uint256.h +++ b/src/uint256.h @@ -5,15 +5,14 @@ #ifndef BITCOIN_UINT256_H #define BITCOIN_UINT256_H +#include <stdint.h> + #include "serialize.h" #include <limits.h> #include <string> #include <vector> -typedef long long int64; -typedef unsigned long long uint64; - inline int Testuint256AdHoc(std::vector<std::string> vArg); @@ -55,7 +54,7 @@ public: } - base_uint& operator=(uint64 b) + base_uint& operator=(uint64_t b) { pn[0] = (unsigned int)b; pn[1] = (unsigned int)(b >> 32); @@ -85,21 +84,21 @@ public: return *this; } - base_uint& operator^=(uint64 b) + base_uint& operator^=(uint64_t b) { pn[0] ^= (unsigned int)b; pn[1] ^= (unsigned int)(b >> 32); return *this; } - base_uint& operator&=(uint64 b) + base_uint& operator&=(uint64_t b) { pn[0] &= (unsigned int)b; pn[1] &= (unsigned int)(b >> 32); return *this; } - base_uint& operator|=(uint64 b) + base_uint& operator|=(uint64_t b) { pn[0] |= (unsigned int)b; pn[1] |= (unsigned int)(b >> 32); @@ -142,10 +141,10 @@ public: base_uint& operator+=(const base_uint& b) { - uint64 carry = 0; + uint64_t carry = 0; for (int i = 0; i < WIDTH; i++) { - uint64 n = carry + pn[i] + b.pn[i]; + uint64_t n = carry + pn[i] + b.pn[i]; pn[i] = n & 0xffffffff; carry = n >> 32; } @@ -158,7 +157,7 @@ public: return *this; } - base_uint& operator+=(uint64 b64) + base_uint& operator+=(uint64_t b64) { base_uint b; b = b64; @@ -166,7 +165,7 @@ public: return *this; } - base_uint& operator-=(uint64 b64) + base_uint& operator-=(uint64_t b64) { base_uint b; b = b64; @@ -266,7 +265,7 @@ public: return true; } - friend inline bool operator==(const base_uint& a, uint64 b) + friend inline bool operator==(const base_uint& a, uint64_t b) { if (a.pn[0] != (unsigned int)b) return false; @@ -283,7 +282,7 @@ public: return (!(a == b)); } - friend inline bool operator!=(const base_uint& a, uint64 b) + friend inline bool operator!=(const base_uint& a, uint64_t b) { return (!(a == b)); } @@ -420,7 +419,7 @@ public: return *this; } - uint160(uint64 b) + uint160(uint64_t b) { pn[0] = (unsigned int)b; pn[1] = (unsigned int)(b >> 32); @@ -428,7 +427,7 @@ public: pn[i] = 0; } - uint160& operator=(uint64 b) + uint160& operator=(uint64_t b) { pn[0] = (unsigned int)b; pn[1] = (unsigned int)(b >> 32); @@ -451,8 +450,8 @@ public: } }; -inline bool operator==(const uint160& a, uint64 b) { return (base_uint160)a == b; } -inline bool operator!=(const uint160& a, uint64 b) { return (base_uint160)a != b; } +inline bool operator==(const uint160& a, uint64_t b) { return (base_uint160)a == b; } +inline bool operator!=(const uint160& a, uint64_t b) { return (base_uint160)a != b; } inline const uint160 operator<<(const base_uint160& a, unsigned int shift) { return uint160(a) <<= shift; } inline const uint160 operator>>(const base_uint160& a, unsigned int shift) { return uint160(a) >>= shift; } inline const uint160 operator<<(const uint160& a, unsigned int shift) { return uint160(a) <<= shift; } @@ -534,7 +533,7 @@ public: return *this; } - uint256(uint64 b) + uint256(uint64_t b) { pn[0] = (unsigned int)b; pn[1] = (unsigned int)(b >> 32); @@ -542,7 +541,7 @@ public: pn[i] = 0; } - uint256& operator=(uint64 b) + uint256& operator=(uint64_t b) { pn[0] = (unsigned int)b; pn[1] = (unsigned int)(b >> 32); @@ -565,8 +564,8 @@ public: } }; -inline bool operator==(const uint256& a, uint64 b) { return (base_uint256)a == b; } -inline bool operator!=(const uint256& a, uint64 b) { return (base_uint256)a != b; } +inline bool operator==(const uint256& a, uint64_t b) { return (base_uint256)a == b; } +inline bool operator!=(const uint256& a, uint64_t b) { return (base_uint256)a != b; } inline const uint256 operator<<(const base_uint256& a, unsigned int shift) { return uint256(a) <<= shift; } inline const uint256 operator>>(const base_uint256& a, unsigned int shift) { return uint256(a) >>= shift; } inline const uint256 operator<<(const uint256& a, unsigned int shift) { return uint256(a) <<= shift; } diff --git a/src/util.cpp b/src/util.cpp index a45ce33a1c..d4d4520b66 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -2,6 +2,9 @@ // Copyright (c) 2011 The Bitcoin developers // Distributed under the MIT/X11 software license, see the accompanying // file license.txt or http://www.opensource.org/licenses/mit-license.php. + +#include <stdint.h> + #include "headers.h" #include "strlcpy.h" #include <boost/algorithm/string/join.hpp> @@ -31,7 +34,7 @@ string strMiscWarning; bool fTestNet = false; bool fNoListen = false; bool fLogTimestamps = false; -CMedianFilter<int64> vTimeOffsets(200,0); +CMedianFilter<int64_t> vTimeOffsets(200,0); @@ -94,7 +97,7 @@ instance_of_cinit; void RandAddSeed() { // Seed with CPU performance counter - int64 nCounter = GetPerformanceCounter(); + int64_t nCounter = GetPerformanceCounter(); RAND_add(&nCounter, sizeof(nCounter), 1.5); memset(&nCounter, 0, sizeof(nCounter)); } @@ -104,7 +107,7 @@ void RandAddSeedPerfmon() RandAddSeed(); // This can take up to 2 seconds, so only do it every 10 minutes - static int64 nLastPerfmon; + static int64_t nLastPerfmon; if (GetTime() < nLastPerfmon + 10 * 60) return; nLastPerfmon = GetTime(); @@ -126,15 +129,15 @@ void RandAddSeedPerfmon() #endif } -uint64 GetRand(uint64 nMax) +uint64_t GetRand(uint64_t nMax) { if (nMax == 0) return 0; // The range of the random source must be a multiple of the modulus // to give every possible output value an equal possibility - uint64 nRange = (std::numeric_limits<uint64>::max() / nMax) * nMax; - uint64 nRand = 0; + uint64_t nRange = (std::numeric_limits<uint64_t>::max() / nMax) * nMax; + uint64_t nRand = 0; do RAND_bytes((unsigned char*)&nRand, sizeof(nRand)); while (nRand >= nRange); @@ -330,13 +333,13 @@ void ParseString(const string& str, char c, vector<string>& v) } -string FormatMoney(int64 n, bool fPlus) +string FormatMoney(int64_t n, bool fPlus) { // Note: not using straight sprintf here because we do NOT want // localized number formatting. - int64 n_abs = (n > 0 ? n : -n); - int64 quotient = n_abs/COIN; - int64 remainder = n_abs%COIN; + int64_t n_abs = (n > 0 ? n : -n); + int64_t quotient = n_abs/COIN; + int64_t remainder = n_abs%COIN; string str = strprintf("%"PRI64d".%08"PRI64d, quotient, remainder); // Right-trim excess 0's before the decimal point: @@ -354,15 +357,15 @@ string FormatMoney(int64 n, bool fPlus) } -bool ParseMoney(const string& str, int64& nRet) +bool ParseMoney(const string& str, int64_t& nRet) { return ParseMoney(str.c_str(), nRet); } -bool ParseMoney(const char* pszIn, int64& nRet) +bool ParseMoney(const char* pszIn, int64_t& nRet) { string strWhole; - int64 nUnits = 0; + int64_t nUnits = 0; const char* p = pszIn; while (isspace(*p)) p++; @@ -371,7 +374,7 @@ bool ParseMoney(const char* pszIn, int64& nRet) if (*p == '.') { p++; - int64 nMult = CENT*10; + int64_t nMult = CENT*10; while (isdigit(*p) && (nMult > 0)) { nUnits += nMult * (*p++ - '0'); @@ -392,8 +395,8 @@ bool ParseMoney(const char* pszIn, int64& nRet) return false; if (nUnits < 0 || nUnits > COIN) return false; - int64 nWhole = atoi64(strWhole); - int64 nValue = nWhole*COIN + nUnits; + int64_t nWhole = atoi64(strWhole); + int64_t nValue = nWhole*COIN + nUnits; nRet = nValue; return true; @@ -910,30 +913,30 @@ void ShrinkDebugFile() // - Median of other nodes's clocks // - The user (asking the user to fix the system clock if the first two disagree) // -static int64 nMockTime = 0; // For unit testing +static int64_t nMockTime = 0; // For unit testing -int64 GetTime() +int64_t GetTime() { if (nMockTime) return nMockTime; return time(NULL); } -void SetMockTime(int64 nMockTimeIn) +void SetMockTime(int64_t nMockTimeIn) { nMockTime = nMockTimeIn; } -static int64 nTimeOffset = 0; +static int64_t nTimeOffset = 0; -int64 GetAdjustedTime() +int64_t GetAdjustedTime() { return GetTime() + nTimeOffset; } -void AddTimeData(unsigned int ip, int64 nTime) +void AddTimeData(unsigned int ip, int64_t nTime) { - int64 nOffsetSample = nTime - GetTime(); + int64_t nOffsetSample = nTime - GetTime(); // Ignore duplicates static set<unsigned int> setKnown; @@ -945,8 +948,8 @@ void AddTimeData(unsigned int ip, int64 nTime) printf("Added time data, samples %d, offset %+"PRI64d" (%+"PRI64d" minutes)\n", vTimeOffsets.size(), nOffsetSample, nOffsetSample/60); if (vTimeOffsets.size() >= 5 && vTimeOffsets.size() % 2 == 1) { - int64 nMedian = vTimeOffsets.median(); - std::vector<int64> vSorted = vTimeOffsets.sorted(); + int64_t nMedian = vTimeOffsets.median(); + std::vector<int64_t> vSorted = vTimeOffsets.sorted(); // Only let other nodes change our time by so much if (abs64(nMedian) < 70 * 60) { @@ -961,7 +964,7 @@ void AddTimeData(unsigned int ip, int64 nTime) { // If nobody has a time different than ours but within 5 minutes of ours, give a warning bool fMatch = false; - BOOST_FOREACH(int64 nOffset, vSorted) + BOOST_FOREACH(int64_t nOffset, vSorted) if (nOffset != 0 && abs64(nOffset) < 5 * 60) fMatch = true; @@ -976,7 +979,7 @@ void AddTimeData(unsigned int ip, int64 nTime) } } if (fDebug) { - BOOST_FOREACH(int64 n, vSorted) + BOOST_FOREACH(int64_t n, vSorted) printf("%+"PRI64d" ", n); printf("| "); } diff --git a/src/util.h b/src/util.h index bb90869962..8dd08d8a80 100644 --- a/src/util.h +++ b/src/util.h @@ -5,6 +5,8 @@ #ifndef BITCOIN_UTIL_H #define BITCOIN_UTIL_H +#include <stdint.h> + #include "uint256.h" #ifndef WIN32 @@ -25,9 +27,6 @@ #include <openssl/ripemd.h> -typedef long long int64; -typedef unsigned long long uint64; - #define loop for (;;) #define BEGIN(a) ((char*)&(a)) #define END(a) ((char*)&((&(a))[1])) @@ -98,7 +97,7 @@ typedef u_int SOCKET; #define _strlwr(psz) to_lower(psz) #define MAX_PATH 1024 #define Beep(n1,n2) (0) -inline void Sleep(int64 n) +inline void Sleep(int64_t n) { boost::thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(n)); } @@ -158,9 +157,9 @@ void LogException(std::exception* pex, const char* pszThread); void PrintException(std::exception* pex, const char* pszThread); void PrintExceptionContinue(std::exception* pex, const char* pszThread); void ParseString(const std::string& str, char c, std::vector<std::string>& v); -std::string FormatMoney(int64 n, bool fPlus=false); -bool ParseMoney(const std::string& str, int64& nRet); -bool ParseMoney(const char* pszIn, int64& nRet); +std::string FormatMoney(int64_t n, bool fPlus=false); +bool ParseMoney(const std::string& str, int64_t& nRet); +bool ParseMoney(const char* pszIn, int64_t& nRet); std::vector<unsigned char> ParseHex(const char* psz); std::vector<unsigned char> ParseHex(const std::string& str); std::vector<unsigned char> DecodeBase64(const char* p, bool* pfInvalid = NULL); @@ -183,11 +182,11 @@ std::string GetDefaultDataDir(); std::string GetDataDir(); void ShrinkDebugFile(); int GetRandInt(int nMax); -uint64 GetRand(uint64 nMax); -int64 GetTime(); -void SetMockTime(int64 nMockTimeIn); -int64 GetAdjustedTime(); -void AddTimeData(unsigned int ip, int64 nTime); +uint64_t GetRand(uint64_t nMax); +int64_t GetTime(); +void SetMockTime(int64_t nMockTimeIn); +int64_t GetAdjustedTime(); +void AddTimeData(unsigned int ip, int64_t nTime); std::string FormatFullVersion(); std::string FormatSubVersion(const std::string& name, int nClientVersion, const std::vector<std::string>& comments); @@ -284,7 +283,7 @@ typedef std::basic_string<char, std::char_traits<char>, secure_allocator<char> > -inline std::string i64tostr(int64 n) +inline std::string i64tostr(int64_t n) { return strprintf("%"PRI64d, n); } @@ -294,7 +293,7 @@ inline std::string itostr(int n) return strprintf("%d", n); } -inline int64 atoi64(const char* psz) +inline int64_t atoi64(const char* psz) { #ifdef _MSC_VER return _atoi64(psz); @@ -303,7 +302,7 @@ inline int64 atoi64(const char* psz) #endif } -inline int64 atoi64(const std::string& str) +inline int64_t atoi64(const std::string& str) { #ifdef _MSC_VER return _atoi64(str.c_str()); @@ -322,12 +321,12 @@ inline int roundint(double d) return (int)(d > 0 ? d + 0.5 : d - 0.5); } -inline int64 roundint64(double d) +inline int64_t roundint64(double d) { - return (int64)(d > 0 ? d + 0.5 : d - 0.5); + return (int64_t)(d > 0 ? d + 0.5 : d - 0.5); } -inline int64 abs64(int64 n) +inline int64_t abs64(int64_t n) { return (n >= 0 ? n : -n); } @@ -381,9 +380,9 @@ inline void PrintHex(const std::vector<unsigned char>& vch, const char* pszForma printf(pszFormat, HexStr(vch, fSpaces).c_str()); } -inline int64 GetPerformanceCounter() +inline int64_t GetPerformanceCounter() { - int64 nCounter = 0; + int64_t nCounter = 0; #ifdef WIN32 QueryPerformanceCounter((LARGE_INTEGER*)&nCounter); #else @@ -394,13 +393,13 @@ inline int64 GetPerformanceCounter() return nCounter; } -inline int64 GetTimeMillis() +inline int64_t GetTimeMillis() { return (boost::posix_time::ptime(boost::posix_time::microsec_clock::universal_time()) - boost::posix_time::ptime(boost::gregorian::date(1970,1,1))).total_milliseconds(); } -inline std::string DateTimeStrFormat(const char* pszFormat, int64 nTime) +inline std::string DateTimeStrFormat(const char* pszFormat, int64_t nTime) { time_t n = nTime; struct tm* ptmTime = gmtime(&n); @@ -432,7 +431,7 @@ inline std::string GetArg(const std::string& strArg, const std::string& strDefau return strDefault; } -inline int64 GetArg(const std::string& strArg, int64 nDefault) +inline int64_t GetArg(const std::string& strArg, int64_t nDefault) { if (mapArgs.count(strArg)) return atoi64(mapArgs[strArg]); diff --git a/src/wallet.cpp b/src/wallet.cpp index c35081ce44..20336a380c 100644 --- a/src/wallet.cpp +++ b/src/wallet.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 <stdint.h> + #include "headers.h" #include "db.h" #include "crypter.h" @@ -90,7 +92,7 @@ bool CWallet::ChangeWalletPassphrase(const SecureString& strOldWalletPassphrase, return false; if (CCryptoKeyStore::Unlock(vMasterKey)) { - int64 nStartTime = GetTimeMillis(); + int64_t nStartTime = GetTimeMillis(); crypter.SetKeyFromPassphrase(strNewWalletPassphrase, pMasterKey.second.vchSalt, pMasterKey.second.nDeriveIterations, pMasterKey.second.nDerivationMethod); pMasterKey.second.nDeriveIterations = pMasterKey.second.nDeriveIterations * (100 / ((double)(GetTimeMillis() - nStartTime))); @@ -149,7 +151,7 @@ bool CWallet::EncryptWallet(const SecureString& strWalletPassphrase) RAND_bytes(&kMasterKey.vchSalt[0], WALLET_CRYPTO_SALT_SIZE); CCrypter crypter; - int64 nStartTime = GetTimeMillis(); + int64_t nStartTime = GetTimeMillis(); crypter.SetKeyFromPassphrase(strWalletPassphrase, kMasterKey.vchSalt, 25000, kMasterKey.nDerivationMethod); kMasterKey.nDeriveIterations = 2500000 / ((double)(GetTimeMillis() - nStartTime)); @@ -367,7 +369,7 @@ bool CWallet::IsMine(const CTxIn &txin) const return false; } -int64 CWallet::GetDebit(const CTxIn &txin) const +int64_t CWallet::GetDebit(const CTxIn &txin) const { CRITICAL_BLOCK(cs_wallet) { @@ -401,7 +403,7 @@ bool CWallet::IsChange(const CTxOut& txout) const return false; } -int64 CWalletTx::GetTxTime() const +int64_t CWalletTx::GetTxTime() const { return nTimeReceived; } @@ -445,8 +447,8 @@ int CWalletTx::GetRequestCount() const return nRequests; } -void CWalletTx::GetAmounts(int64& nGeneratedImmature, int64& nGeneratedMature, list<pair<CBitcoinAddress, int64> >& listReceived, - list<pair<CBitcoinAddress, int64> >& listSent, int64& nFee, string& strSentAccount) const +void CWalletTx::GetAmounts(int64_t& nGeneratedImmature, int64_t& nGeneratedMature, list<pair<CBitcoinAddress, int64_t> >& listReceived, + list<pair<CBitcoinAddress, int64_t> >& listSent, int64_t& nFee, string& strSentAccount) const { nGeneratedImmature = nGeneratedMature = nFee = 0; listReceived.clear(); @@ -463,10 +465,10 @@ void CWalletTx::GetAmounts(int64& nGeneratedImmature, int64& nGeneratedMature, l } // Compute fee: - int64 nDebit = GetDebit(); + int64_t nDebit = GetDebit(); if (nDebit > 0) // debit>0 means we signed/sent this transaction { - int64 nValueOut = GetValueOut(); + int64_t nValueOut = GetValueOut(); nFee = nDebit - nValueOut; } @@ -495,29 +497,29 @@ void CWalletTx::GetAmounts(int64& nGeneratedImmature, int64& nGeneratedMature, l } -void CWalletTx::GetAccountAmounts(const string& strAccount, int64& nGenerated, int64& nReceived, - int64& nSent, int64& nFee) const +void CWalletTx::GetAccountAmounts(const string& strAccount, int64_t& nGenerated, int64_t& nReceived, + int64_t& nSent, int64_t& nFee) const { nGenerated = nReceived = nSent = nFee = 0; - int64 allGeneratedImmature, allGeneratedMature, allFee; + int64_t allGeneratedImmature, allGeneratedMature, allFee; allGeneratedImmature = allGeneratedMature = allFee = 0; string strSentAccount; - list<pair<CBitcoinAddress, int64> > listReceived; - list<pair<CBitcoinAddress, int64> > listSent; + list<pair<CBitcoinAddress, int64_t> > listReceived; + list<pair<CBitcoinAddress, int64_t> > listSent; GetAmounts(allGeneratedImmature, allGeneratedMature, listReceived, listSent, allFee, strSentAccount); if (strAccount == "") nGenerated = allGeneratedMature; if (strAccount == strSentAccount) { - BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64)& s, listSent) + BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64_t)& s, listSent) nSent += s.second; nFee = allFee; } CRITICAL_BLOCK(pwallet->cs_wallet) { - BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64)& r, listReceived) + BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress,int64_t)& r, listReceived) { if (pwallet->mapAddressBook.count(r.first)) { @@ -720,7 +722,7 @@ void CWallet::ResendWalletTransactions() { // Do this infrequently and randomly to avoid giving away // that these are our transactions. - static int64 nNextTime; + static int64_t nNextTime; if (GetTime() < nNextTime) return; bool fFirst = (nNextTime == 0); @@ -729,7 +731,7 @@ void CWallet::ResendWalletTransactions() return; // Only do it if there's been a new block since last time - static int64 nLastTime; + static int64_t nLastTime; if (nTimeBestReceived < nLastTime) return; nLastTime = GetTime(); @@ -746,7 +748,7 @@ void CWallet::ResendWalletTransactions() CWalletTx& wtx = item.second; // Don't rebroadcast until it's had plenty of time that // it should have gotten in already by now. - if (nTimeBestReceived - (int64)wtx.nTimeReceived > 5 * 60) + if (nTimeBestReceived - (int64_t)wtx.nTimeReceived > 5 * 60) mapSorted.insert(make_pair(wtx.nTimeReceived, &wtx)); } BOOST_FOREACH(PAIRTYPE(const unsigned int, CWalletTx*)& item, mapSorted) @@ -768,9 +770,9 @@ void CWallet::ResendWalletTransactions() // -int64 CWallet::GetBalance() const +int64_t CWallet::GetBalance() const { - int64 nTotal = 0; + int64_t nTotal = 0; CRITICAL_BLOCK(cs_wallet) { for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) @@ -785,9 +787,9 @@ int64 CWallet::GetBalance() const return nTotal; } -int64 CWallet::GetUnconfirmedBalance() const +int64_t CWallet::GetUnconfirmedBalance() const { - int64 nTotal = 0; + int64_t nTotal = 0; CRITICAL_BLOCK(cs_wallet) { for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) @@ -801,17 +803,17 @@ int64 CWallet::GetUnconfirmedBalance() const return nTotal; } -bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfTheirs, set<pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64& nValueRet) const +bool CWallet::SelectCoinsMinConf(int64_t nTargetValue, int nConfMine, int nConfTheirs, set<pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64_t& nValueRet) const { setCoinsRet.clear(); nValueRet = 0; // List of values less than target - pair<int64, pair<const CWalletTx*,unsigned int> > coinLowestLarger; - coinLowestLarger.first = std::numeric_limits<int64>::max(); + pair<int64_t, pair<const CWalletTx*,unsigned int> > coinLowestLarger; + coinLowestLarger.first = std::numeric_limits<int64_t>::max(); coinLowestLarger.second.first = NULL; - vector<pair<int64, pair<const CWalletTx*,unsigned int> > > vValue; - int64 nTotalLower = 0; + vector<pair<int64_t, pair<const CWalletTx*,unsigned int> > > vValue; + int64_t nTotalLower = 0; CRITICAL_BLOCK(cs_wallet) { @@ -838,12 +840,12 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe if (pcoin->IsSpent(i) || !IsMine(pcoin->vout[i])) continue; - int64 n = pcoin->vout[i].nValue; + int64_t n = pcoin->vout[i].nValue; if (n <= 0) continue; - pair<int64,pair<const CWalletTx*,unsigned int> > coin = make_pair(n,make_pair(pcoin,i)); + pair<int64_t,pair<const CWalletTx*,unsigned int> > coin = make_pair(n,make_pair(pcoin,i)); if (n == nTargetValue) { @@ -890,12 +892,12 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe sort(vValue.rbegin(), vValue.rend()); vector<char> vfIncluded; vector<char> vfBest(vValue.size(), true); - int64 nBest = nTotalLower; + int64_t nBest = nTotalLower; for (int nRep = 0; nRep < 1000 && nBest != nTargetValue; nRep++) { vfIncluded.assign(vValue.size(), false); - int64 nTotal = 0; + int64_t nTotal = 0; bool fReachedTarget = false; for (int nPass = 0; nPass < 2 && !fReachedTarget; nPass++) { @@ -946,7 +948,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe return true; } -bool CWallet::SelectCoins(int64 nTargetValue, set<pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64& nValueRet) const +bool CWallet::SelectCoins(int64_t nTargetValue, set<pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64_t& nValueRet) const { return (SelectCoinsMinConf(nTargetValue, 1, 6, setCoinsRet, nValueRet) || SelectCoinsMinConf(nTargetValue, 1, 1, setCoinsRet, nValueRet) || @@ -956,10 +958,10 @@ bool CWallet::SelectCoins(int64 nTargetValue, set<pair<const CWalletTx*,unsigned -bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet) +bool CWallet::CreateTransaction(const vector<pair<CScript, int64_t> >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet) { - int64 nValue = 0; - BOOST_FOREACH (const PAIRTYPE(CScript, int64)& s, vecSend) + int64_t nValue = 0; + BOOST_FOREACH (const PAIRTYPE(CScript, int64_t)& s, vecSend) { if (nValue < 0) return false; @@ -983,30 +985,30 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW wtxNew.vout.clear(); wtxNew.fFromMe = true; - int64 nTotalValue = nValue + nFeeRet; + int64_t nTotalValue = nValue + nFeeRet; double dPriority = 0; // vouts to the payees - BOOST_FOREACH (const PAIRTYPE(CScript, int64)& s, vecSend) + BOOST_FOREACH (const PAIRTYPE(CScript, int64_t)& s, vecSend) wtxNew.vout.push_back(CTxOut(s.second, s.first)); // Choose coins to use set<pair<const CWalletTx*,unsigned int> > setCoins; - int64 nValueIn = 0; + int64_t nValueIn = 0; if (!SelectCoins(nTotalValue, setCoins, nValueIn)) return false; BOOST_FOREACH(PAIRTYPE(const CWalletTx*, unsigned int) pcoin, setCoins) { - int64 nCredit = pcoin.first->vout[pcoin.second].nValue; + int64_t nCredit = pcoin.first->vout[pcoin.second].nValue; dPriority += (double)nCredit * pcoin.first->GetDepthInMainChain(); } - int64 nChange = nValueIn - nValue - nFeeRet; + int64_t nChange = nValueIn - nValue - nFeeRet; // if sub-cent change is required, the fee must be raised to at least MIN_TX_FEE // or until nChange becomes zero // NOTE: this depends on the exact behaviour of GetMinFee if (nFeeRet < MIN_TX_FEE && nChange > 0 && nChange < CENT) { - int64 nMoveToFee = min(nChange, MIN_TX_FEE - nFeeRet); + int64_t nMoveToFee = min(nChange, MIN_TX_FEE - nFeeRet); nChange -= nMoveToFee; nFeeRet += nMoveToFee; } @@ -1054,9 +1056,9 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW dPriority /= nBytes; // Check that enough fee is included - int64 nPayFee = nTransactionFee * (1 + (int64)nBytes / 1000); + int64_t nPayFee = nTransactionFee * (1 + (int64_t)nBytes / 1000); bool fAllowFree = CTransaction::AllowFree(dPriority); - int64 nMinFee = wtxNew.GetMinFee(1, fAllowFree, GMF_SEND); + int64_t nMinFee = wtxNew.GetMinFee(1, fAllowFree, GMF_SEND); if (nFeeRet < max(nPayFee, nMinFee)) { nFeeRet = max(nPayFee, nMinFee); @@ -1074,9 +1076,9 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW return true; } -bool CWallet::CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet) +bool CWallet::CreateTransaction(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet) { - vector< pair<CScript, int64> > vecSend; + vector< pair<CScript, int64_t> > vecSend; vecSend.push_back(make_pair(scriptPubKey, nValue)); return CreateTransaction(vecSend, wtxNew, reservekey, nFeeRet); } @@ -1135,10 +1137,10 @@ bool CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey) -string CWallet::SendMoney(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, bool fAskFee) +string CWallet::SendMoney(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew, bool fAskFee) { CReserveKey reservekey(this); - int64 nFeeRequired; + int64_t nFeeRequired; if (IsLocked()) { @@ -1169,7 +1171,7 @@ string CWallet::SendMoney(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, -string CWallet::SendMoneyToBitcoinAddress(const CBitcoinAddress& address, int64 nValue, CWalletTx& wtxNew, bool fAskFee) +string CWallet::SendMoneyToBitcoinAddress(const CBitcoinAddress& address, int64_t nValue, CWalletTx& wtxNew, bool fAskFee) { // Check amount if (nValue <= 0) @@ -1299,17 +1301,17 @@ bool CWallet::NewKeyPool() CRITICAL_BLOCK(cs_wallet) { CWalletDB walletdb(strWalletFile); - BOOST_FOREACH(int64 nIndex, setKeyPool) + BOOST_FOREACH(int64_t nIndex, setKeyPool) walletdb.ErasePool(nIndex); setKeyPool.clear(); if (IsLocked()) return false; - int64 nKeys = max(GetArg("-keypool", 100), (int64)0); + int64_t nKeys = max(GetArg("-keypool", 100), (int64_t)0); for (int i = 0; i < nKeys; i++) { - int64 nIndex = i+1; + int64_t nIndex = i+1; walletdb.WritePool(nIndex, CKeyPool(GenerateNewKey())); setKeyPool.insert(nIndex); } @@ -1328,10 +1330,10 @@ bool CWallet::TopUpKeyPool() CWalletDB walletdb(strWalletFile); // Top up key pool - int64 nTargetSize = max(GetArg("-keypool", 100), (int64)0); + int64_t nTargetSize = max(GetArg("-keypool", 100), (int64_t)0); while (setKeyPool.size() < nTargetSize+1) { - int64 nEnd = 1; + int64_t nEnd = 1; if (!setKeyPool.empty()) nEnd = *(--setKeyPool.end()) + 1; if (!walletdb.WritePool(nEnd, CKeyPool(GenerateNewKey()))) @@ -1343,7 +1345,7 @@ bool CWallet::TopUpKeyPool() return true; } -void CWallet::ReserveKeyFromKeyPool(int64& nIndex, CKeyPool& keypool) +void CWallet::ReserveKeyFromKeyPool(int64_t& nIndex, CKeyPool& keypool) { nIndex = -1; keypool.vchPubKey.clear(); @@ -1369,14 +1371,14 @@ void CWallet::ReserveKeyFromKeyPool(int64& nIndex, CKeyPool& keypool) } } -int64 CWallet::AddReserveKey(const CKeyPool& keypool) +int64_t CWallet::AddReserveKey(const CKeyPool& keypool) { CRITICAL_BLOCK(cs_main) CRITICAL_BLOCK(cs_wallet) { CWalletDB walletdb(strWalletFile); - int64 nIndex = 1 + *(--setKeyPool.end()); + int64_t nIndex = 1 + *(--setKeyPool.end()); if (!walletdb.WritePool(nIndex, keypool)) throw runtime_error("AddReserveKey() : writing added key failed"); setKeyPool.insert(nIndex); @@ -1385,7 +1387,7 @@ int64 CWallet::AddReserveKey(const CKeyPool& keypool) return -1; } -void CWallet::KeepKey(int64 nIndex) +void CWallet::KeepKey(int64_t nIndex) { // Remove from key pool if (fFileBacked) @@ -1396,7 +1398,7 @@ void CWallet::KeepKey(int64 nIndex) printf("keypool keep %"PRI64d"\n", nIndex); } -void CWallet::ReturnKey(int64 nIndex) +void CWallet::ReturnKey(int64_t nIndex) { // Return to key pool CRITICAL_BLOCK(cs_wallet) @@ -1406,7 +1408,7 @@ void CWallet::ReturnKey(int64 nIndex) bool CWallet::GetKeyFromPool(vector<unsigned char>& result, bool fAllowReuse) { - int64 nIndex = 0; + int64_t nIndex = 0; CKeyPool keypool; CRITICAL_BLOCK(cs_wallet) { @@ -1428,9 +1430,9 @@ bool CWallet::GetKeyFromPool(vector<unsigned char>& result, bool fAllowReuse) return true; } -int64 CWallet::GetOldestKeyPoolTime() +int64_t CWallet::GetOldestKeyPoolTime() { - int64 nIndex = 0; + int64_t nIndex = 0; CKeyPool keypool; ReserveKeyFromKeyPool(nIndex, keypool); if (nIndex == -1) @@ -1481,7 +1483,7 @@ void CWallet::GetAllReserveAddresses(set<CBitcoinAddress>& setAddress) CRITICAL_BLOCK(cs_main) CRITICAL_BLOCK(cs_wallet) - BOOST_FOREACH(const int64& id, setKeyPool) + BOOST_FOREACH(const int64_t& id, setKeyPool) { CKeyPool keypool; if (!walletdb.ReadPool(id, keypool)) diff --git a/src/wallet.h b/src/wallet.h index a7d07c993f..7ab1c708f7 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -5,6 +5,8 @@ #ifndef BITCOIN_WALLET_H #define BITCOIN_WALLET_H +#include <stdint.h> + #include "bignum.h" #include "key.h" #include "keystore.h" @@ -20,8 +22,8 @@ class CWalletDB; class CWallet : public CCryptoKeyStore { private: - bool SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfTheirs, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64& nValueRet) const; - bool SelectCoins(int64 nTargetValue, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64& nValueRet) const; + bool SelectCoinsMinConf(int64_t nTargetValue, int nConfMine, int nConfTheirs, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64_t& nValueRet) const; + bool SelectCoins(int64_t nTargetValue, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64_t& nValueRet) const; CWalletDB *pwalletdbEncryption; @@ -31,7 +33,7 @@ public: bool fFileBacked; std::string strWalletFile; - std::set<int64> setKeyPool; + std::set<int64_t> setKeyPool; typedef std::map<unsigned int, CMasterKey> MasterKeyMap; MasterKeyMap mapMasterKeys; @@ -86,39 +88,39 @@ public: int ScanForWalletTransaction(const uint256& hashTx); void ReacceptWalletTransactions(); void ResendWalletTransactions(); - int64 GetBalance() const; - int64 GetUnconfirmedBalance() const; - bool CreateTransaction(const std::vector<std::pair<CScript, int64> >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet); - bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet); + int64_t GetBalance() const; + int64_t GetUnconfirmedBalance() const; + bool CreateTransaction(const std::vector<std::pair<CScript, int64_t> >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet); + bool CreateTransaction(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64_t& nFeeRet); bool CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey); bool BroadcastTransaction(CWalletTx& wtxNew); - std::string SendMoney(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, bool fAskFee=false); - std::string SendMoneyToBitcoinAddress(const CBitcoinAddress& address, int64 nValue, CWalletTx& wtxNew, bool fAskFee=false); + std::string SendMoney(CScript scriptPubKey, int64_t nValue, CWalletTx& wtxNew, bool fAskFee=false); + std::string SendMoneyToBitcoinAddress(const CBitcoinAddress& address, int64_t nValue, CWalletTx& wtxNew, bool fAskFee=false); bool NewKeyPool(); bool TopUpKeyPool(); - int64 AddReserveKey(const CKeyPool& keypool); - void ReserveKeyFromKeyPool(int64& nIndex, CKeyPool& keypool); - void KeepKey(int64 nIndex); - void ReturnKey(int64 nIndex); + int64_t AddReserveKey(const CKeyPool& keypool); + void ReserveKeyFromKeyPool(int64_t& nIndex, CKeyPool& keypool); + void KeepKey(int64_t nIndex); + void ReturnKey(int64_t nIndex); bool GetKeyFromPool(std::vector<unsigned char> &key, bool fAllowReuse=true); - int64 GetOldestKeyPoolTime(); + int64_t GetOldestKeyPoolTime(); void GetAllReserveAddresses(std::set<CBitcoinAddress>& setAddress); bool IsMine(const CTxIn& txin) const; - int64 GetDebit(const CTxIn& txin) const; + int64_t GetDebit(const CTxIn& txin) const; bool IsMine(const CTxOut& txout) const { return ::IsMine(*this, txout.scriptPubKey); } - int64 GetCredit(const CTxOut& txout) const + int64_t GetCredit(const CTxOut& txout) const { if (!MoneyRange(txout.nValue)) throw std::runtime_error("CWallet::GetCredit() : value out of range"); return (IsMine(txout) ? txout.nValue : 0); } bool IsChange(const CTxOut& txout) const; - int64 GetChange(const CTxOut& txout) const + int64_t GetChange(const CTxOut& txout) const { if (!MoneyRange(txout.nValue)) throw std::runtime_error("CWallet::GetChange() : value out of range"); @@ -135,9 +137,9 @@ public: { return (GetDebit(tx) > 0); } - int64 GetDebit(const CTransaction& tx) const + int64_t GetDebit(const CTransaction& tx) const { - int64 nDebit = 0; + int64_t nDebit = 0; BOOST_FOREACH(const CTxIn& txin, tx.vin) { nDebit += GetDebit(txin); @@ -146,9 +148,9 @@ public: } return nDebit; } - int64 GetCredit(const CTransaction& tx) const + int64_t GetCredit(const CTransaction& tx) const { - int64 nCredit = 0; + int64_t nCredit = 0; BOOST_FOREACH(const CTxOut& txout, tx.vout) { nCredit += GetCredit(txout); @@ -157,9 +159,9 @@ public: } return nCredit; } - int64 GetChange(const CTransaction& tx) const + int64_t GetChange(const CTransaction& tx) const { - int64 nChange = 0; + int64_t nChange = 0; BOOST_FOREACH(const CTxOut& txout, tx.vout) { nChange += GetChange(txout); @@ -214,7 +216,7 @@ class CReserveKey { protected: CWallet* pwallet; - int64 nIndex; + int64_t nIndex; std::vector<unsigned char> vchPubKey; public: CReserveKey(CWallet* pwalletIn) @@ -260,10 +262,10 @@ public: mutable char fCreditCached; mutable char fAvailableCreditCached; mutable char fChangeCached; - mutable int64 nDebitCached; - mutable int64 nCreditCached; - mutable int64 nAvailableCreditCached; - mutable int64 nChangeCached; + mutable int64_t nDebitCached; + mutable int64_t nCreditCached; + mutable int64_t nAvailableCreditCached; + mutable int64_t nChangeCached; // memory only UI hints mutable unsigned int nTimeDisplayed; @@ -416,7 +418,7 @@ public: return (!!vfSpent[nOut]); } - int64 GetDebit() const + int64_t GetDebit() const { if (vin.empty()) return 0; @@ -427,7 +429,7 @@ public: return nDebitCached; } - int64 GetCredit(bool fUseCache=true) const + int64_t GetCredit(bool fUseCache=true) const { // Must wait until coinbase is safely deep enough in the chain before valuing it if (IsCoinBase() && GetBlocksToMaturity() > 0) @@ -441,7 +443,7 @@ public: return nCreditCached; } - int64 GetAvailableCredit(bool fUseCache=true) const + int64_t GetAvailableCredit(bool fUseCache=true) const { // Must wait until coinbase is safely deep enough in the chain before valuing it if (IsCoinBase() && GetBlocksToMaturity() > 0) @@ -450,7 +452,7 @@ public: if (fUseCache && fAvailableCreditCached) return nAvailableCreditCached; - int64 nCredit = 0; + int64_t nCredit = 0; for (int i = 0; i < vout.size(); i++) { if (!IsSpent(i)) @@ -468,7 +470,7 @@ public: } - int64 GetChange() const + int64_t GetChange() const { if (fChangeCached) return nChangeCached; @@ -477,11 +479,11 @@ public: return nChangeCached; } - void GetAmounts(int64& nGeneratedImmature, int64& nGeneratedMature, std::list<std::pair<CBitcoinAddress, int64> >& listReceived, - std::list<std::pair<CBitcoinAddress, int64> >& listSent, int64& nFee, std::string& strSentAccount) const; + void GetAmounts(int64_t& nGeneratedImmature, int64_t& nGeneratedMature, std::list<std::pair<CBitcoinAddress, int64_t> >& listReceived, + std::list<std::pair<CBitcoinAddress, int64_t> >& listSent, int64_t& nFee, std::string& strSentAccount) const; - void GetAccountAmounts(const std::string& strAccount, int64& nGenerated, int64& nReceived, - int64& nSent, int64& nFee) const; + void GetAccountAmounts(const std::string& strAccount, int64_t& nGenerated, int64_t& nReceived, + int64_t& nSent, int64_t& nFee) const; bool IsFromMe() const { @@ -531,7 +533,7 @@ public: bool WriteToDisk(); - int64 GetTxTime() const; + int64_t GetTxTime() const; int GetRequestCount() const; void AddSupportingTransactions(CTxDB& txdb); @@ -551,13 +553,13 @@ class CWalletKey { public: CPrivKey vchPrivKey; - int64 nTimeCreated; - int64 nTimeExpires; + int64_t nTimeCreated; + int64_t nTimeExpires; std::string strComment; //// todo: add something to note what created it (user, getnewaddress, change) //// maybe should have a map<string, string> property map - CWalletKey(int64 nExpires=0) + CWalletKey(int64_t nExpires=0) { nTimeCreated = (nExpires ? GetTime() : 0); nTimeExpires = nExpires; @@ -616,8 +618,8 @@ class CAccountingEntry { public: std::string strAccount; - int64 nCreditDebit; - int64 nTime; + int64_t nCreditDebit; + int64_t nTime; std::string strOtherAccount; std::string strComment; |