mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-21 07:39:08 +01:00
Merge branch '0.6.0.x' into 0.6.x
This commit is contained in:
@@ -2,7 +2,7 @@ Bitcoin 0.6.3 BETA
|
||||
|
||||
Copyright (c) 2009-2012 Bitcoin Developers
|
||||
Distributed under the MIT/X11 software license, see the accompanying
|
||||
file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||
file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
This product includes software developed by the OpenSSL Project for use in
|
||||
the OpenSSL Toolkit (http://www.openssl.org/). This product includes
|
||||
cryptographic software written by Eric Young (eay@cryptsoft.com).
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Copyright (c) 2009-2012 Bitcoin Developers
|
||||
Distributed under the MIT/X11 software license, see the accompanying file
|
||||
license.txt or http://www.opensource.org/licenses/mit-license.php. This
|
||||
COPYING or http://www.opensource.org/licenses/mit-license.php. This
|
||||
product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit (http://www.openssl.org/). This product includes cryptographic
|
||||
software written by Eric Young (eay@cryptsoft.com) and UPnP software written by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Copyright (c) 2009-2012 Bitcoin Developers
|
||||
Distributed under the MIT/X11 software license, see the accompanying
|
||||
file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||
file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
This product includes software developed by the OpenSSL Project for use in
|
||||
the OpenSSL Toolkit (http://www.openssl.org/). This product includes
|
||||
cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
|
||||
|
||||
@@ -22,8 +22,8 @@ bool Function(char* psz, int n)
|
||||
- No extra spaces inside parenthesis; please don't do ( this )
|
||||
- No space after function names, one space after if, for and while
|
||||
|
||||
Variable names begin with the type in lowercase, like nSomeVariable.
|
||||
Please don't put the first word of the variable name in lowercase like
|
||||
Variable names begin with the type in lower-case, like nSomeVariable.
|
||||
Please don't put the first word of the variable name in lower-case like
|
||||
someVariable.
|
||||
|
||||
Common types:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Compiling/runing bitcoind unit tests
|
||||
Compiling/running bitcoind unit tests
|
||||
------------------------------------
|
||||
|
||||
bitcoind unit tests are in the src/test/ directory; they
|
||||
|
||||
@@ -116,7 +116,7 @@ public:
|
||||
// * Bucket selection is based on cryptographic hashing, using a randomly-generated 256-bit key, which should not
|
||||
// be observable by adversaries.
|
||||
// * Several indexes are kept for high performance. Defining DEBUG_ADDRMAN will introduce frequent (and expensive)
|
||||
// consistency checks for the entire datastructure.
|
||||
// consistency checks for the entire data structure.
|
||||
|
||||
// total number of buckets for tried addresses
|
||||
#define ADDRMAN_TRIED_BUCKET_COUNT 64
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
// could be used to create visually identical looking account numbers.
|
||||
// - A string with non-alphanumeric characters is not as easily accepted as an account number.
|
||||
// - E-mail usually won't line-break if there's no punctuation to break at.
|
||||
// - Doubleclicking selects the whole number as one word if it's all alphanumeric.
|
||||
// - Double-clicking selects the whole number as one word if it's all alphanumeric.
|
||||
//
|
||||
#ifndef BITCOIN_BASE58_H
|
||||
#define BITCOIN_BASE58_H
|
||||
|
||||
@@ -1807,8 +1807,13 @@ Value getwork(const Array& params, bool fHelp)
|
||||
delete pblock;
|
||||
vNewBlock.clear();
|
||||
}
|
||||
|
||||
// Clear pindexPrev so future getworks make a new block, despite any failures from here on
|
||||
pindexPrev = NULL;
|
||||
|
||||
// Store the pindexBest used before CreateNewBlock, to avoid races
|
||||
nTransactionsUpdatedLast = nTransactionsUpdated;
|
||||
pindexPrev = pindexBest;
|
||||
CBlockIndex* pindexPrevNew = pindexBest;
|
||||
nStart = GetTime();
|
||||
|
||||
// Create new block
|
||||
@@ -1816,6 +1821,9 @@ Value getwork(const Array& params, bool fHelp)
|
||||
if (!pblock)
|
||||
throw JSONRPCError(-7, "Out of memory");
|
||||
vNewBlock.push_back(pblock);
|
||||
|
||||
// Need to update only after we know CreateNewBlock succeeded
|
||||
pindexPrev = pindexPrevNew;
|
||||
}
|
||||
|
||||
// Update nTime
|
||||
@@ -1829,7 +1837,7 @@ Value getwork(const Array& params, bool fHelp)
|
||||
// Save
|
||||
mapNewBlock[pblock->hashMerkleRoot] = make_pair(pblock, pblock->vtx[0].vin[0].scriptSig);
|
||||
|
||||
// Prebuild hash buffers
|
||||
// Pre-build hash buffers
|
||||
char pmidstate[32];
|
||||
char pdata[128];
|
||||
char phash1[64];
|
||||
@@ -1906,16 +1914,26 @@ Value getmemorypool(const Array& params, bool fHelp)
|
||||
if (pindexPrev != pindexBest ||
|
||||
(nTransactionsUpdated != nTransactionsUpdatedLast && GetTime() - nStart > 5))
|
||||
{
|
||||
// Clear pindexPrev so future calls make a new block, despite any failures from here on
|
||||
pindexPrev = NULL;
|
||||
|
||||
// Store the pindexBest used before CreateNewBlock, to avoid races
|
||||
nTransactionsUpdatedLast = nTransactionsUpdated;
|
||||
pindexPrev = pindexBest;
|
||||
CBlockIndex* pindexPrevNew = pindexBest;
|
||||
nStart = GetTime();
|
||||
|
||||
// Create new block
|
||||
if(pblock)
|
||||
{
|
||||
delete pblock;
|
||||
pblock = NULL;
|
||||
}
|
||||
pblock = CreateNewBlock(reservekey);
|
||||
if (!pblock)
|
||||
throw JSONRPCError(-7, "Out of memory");
|
||||
|
||||
// Need to update only after we know CreateNewBlock succeeded
|
||||
pindexPrev = pindexPrevNew;
|
||||
}
|
||||
|
||||
// Update nTime
|
||||
@@ -2112,7 +2130,7 @@ string rfc1123Time()
|
||||
time(&now);
|
||||
struct tm* now_gmt = gmtime(&now);
|
||||
string locale(setlocale(LC_TIME, NULL));
|
||||
setlocale(LC_TIME, "C"); // we want posix (aka "C") weekday/month strings
|
||||
setlocale(LC_TIME, "C"); // we want POSIX (aka "C") weekday/month strings
|
||||
strftime(buffer, sizeof(buffer), "%a, %d %b %Y %H:%M:%S +0000", now_gmt);
|
||||
setlocale(LC_TIME, locale.c_str());
|
||||
return string(buffer);
|
||||
@@ -2399,7 +2417,7 @@ void ThreadRPCServer2(void* parg)
|
||||
}
|
||||
catch(boost::system::system_error &e)
|
||||
{
|
||||
ThreadSafeMessageBox(strprintf(_("An error occured while setting up the RPC port %i for listening: %s"), endpoint.port(), e.what()),
|
||||
ThreadSafeMessageBox(strprintf(_("An error occurred while setting up the RPC port %i for listening: %s"), endpoint.port(), e.what()),
|
||||
_("Error"), wxOK | wxMODAL);
|
||||
StartShutdown();
|
||||
return;
|
||||
@@ -2739,7 +2757,7 @@ int CommandLineRPC(int argc, char *argv[])
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
// Turn off microsoft heap dump noise
|
||||
// Turn off Microsoft heap dump noise
|
||||
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_WARN, CreateFile("NUL", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0));
|
||||
#endif
|
||||
|
||||
@@ -17,7 +17,7 @@ bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::v
|
||||
if (nRounds < 1 || chSalt.size() != WALLET_CRYPTO_SALT_SIZE)
|
||||
return false;
|
||||
|
||||
// Try to keep the keydata out of swap (and be a bit over-careful to keep the IV that we don't even use out of swap)
|
||||
// Try to keep the key data out of swap (and be a bit over-careful to keep the IV that we don't even use out of swap)
|
||||
// Note that this does nothing about suspend-to-disk (which will put all our key data on disk)
|
||||
// Note as well that at no point in this program is any attempt made to prevent stealing of keys by reading the memory of the running process.
|
||||
mlock(&chKey[0], sizeof chKey);
|
||||
@@ -44,7 +44,7 @@ bool CCrypter::SetKey(const CKeyingMaterial& chNewKey, const std::vector<unsigne
|
||||
if (chNewKey.size() != WALLET_CRYPTO_KEY_SIZE || chNewIV.size() != WALLET_CRYPTO_KEY_SIZE)
|
||||
return false;
|
||||
|
||||
// Try to keep the keydata out of swap
|
||||
// Try to keep the key data out of swap
|
||||
// Note that this does nothing about suspend-to-disk (which will put all our key data on disk)
|
||||
// Note as well that at no point in this program is any attempt made to prevent stealing of keys by reading the memory of the running process.
|
||||
mlock(&chKey[0], sizeof chKey);
|
||||
|
||||
@@ -76,7 +76,7 @@ void Shutdown(void* parg)
|
||||
printf("Bitcoin exiting\n\n");
|
||||
fExit = true;
|
||||
#ifndef QT_GUI
|
||||
// ensure non UI client get's exited here, but let Bitcoin-Qt reach return 0; in bitcoin.cpp
|
||||
// ensure non-UI client get's exited here, but let Bitcoin-Qt reach return 0; in bitcoin.cpp
|
||||
exit(0);
|
||||
#endif
|
||||
}
|
||||
@@ -136,12 +136,12 @@ bool AppInit(int argc, char* argv[])
|
||||
bool AppInit2(int argc, char* argv[])
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
// Turn off microsoft heap dump noise
|
||||
// Turn off Microsoft heap dump noise
|
||||
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_WARN, CreateFileA("NUL", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0));
|
||||
#endif
|
||||
#if _MSC_VER >= 1400
|
||||
// Disable confusing "helpful" text message on abort, ctrl-c
|
||||
// Disable confusing "helpful" text message on abort, Ctrl-C
|
||||
_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
|
||||
#endif
|
||||
#ifndef WIN32
|
||||
|
||||
@@ -206,7 +206,7 @@ void ThreadIRCSeed(void* parg)
|
||||
|
||||
void ThreadIRCSeed2(void* parg)
|
||||
{
|
||||
/* Dont advertise on IRC if we don't allow incoming connections */
|
||||
/* Don't advertise on IRC if we don't allow incoming connections */
|
||||
if (mapArgs.count("-connect") || fNoListen)
|
||||
return;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ err:
|
||||
|
||||
// Perform ECDSA key recovery (see SEC1 4.1.6) for curves over (mod p)-fields
|
||||
// recid selects which key is recovered
|
||||
// if check is nonzero, additional checks are performed
|
||||
// if check is non-zero, additional checks are performed
|
||||
int ECDSA_SIG_recover_key_GFp(EC_KEY *eckey, ECDSA_SIG *ecsig, const unsigned char *msg, int msglen, int recid, int check)
|
||||
{
|
||||
if (!eckey) return 0;
|
||||
|
||||
28
src/main.cpp
28
src/main.cpp
@@ -991,7 +991,7 @@ bool CTransaction::DisconnectInputs(CTxDB& txdb)
|
||||
// Remove transaction from index
|
||||
// This can fail if a duplicate of this transaction was in a chain that got
|
||||
// reorganized away. This is only possible if this transaction was completely
|
||||
// spent, so erasing it would be a no-op anway.
|
||||
// spent, so erasing it would be a no-op anyway.
|
||||
txdb.EraseTxIndex(*this);
|
||||
|
||||
return true;
|
||||
@@ -1556,7 +1556,7 @@ bool CBlock::SetBestChain(CTxDB& txdb, CBlockIndex* pindexNew)
|
||||
return error("SetBestChain() : Reorganize failed");
|
||||
}
|
||||
|
||||
// Connect futher blocks
|
||||
// Connect further blocks
|
||||
BOOST_REVERSE_FOREACH(CBlockIndex *pindex, vpindexSecondary)
|
||||
{
|
||||
CBlock block;
|
||||
@@ -1701,7 +1701,7 @@ bool CBlock::CheckBlock() const
|
||||
if (nSigOps > MAX_BLOCK_SIGOPS)
|
||||
return DoS(100, error("CheckBlock() : out-of-bounds SigOpCount"));
|
||||
|
||||
// Check merkleroot
|
||||
// Check merkle root
|
||||
if (hashMerkleRoot != BuildMerkleTree())
|
||||
return DoS(100, error("CheckBlock() : hashMerkleRoot mismatch"));
|
||||
|
||||
@@ -1895,7 +1895,7 @@ FILE* AppendBlockFile(unsigned int& nFileRet)
|
||||
return NULL;
|
||||
if (fseek(file, 0, SEEK_END) != 0)
|
||||
return NULL;
|
||||
// FAT32 filesize max 4GB, fseek and ftell max 2GB, so we must stay under 2GB
|
||||
// FAT32 file size max 4GB, fseek and ftell max 2GB, so we must stay under 2GB
|
||||
if (ftell(file) < 0x7F000000 - MAX_SIZE)
|
||||
{
|
||||
nFileRet = nCurrentBlockFile;
|
||||
@@ -1989,7 +1989,7 @@ bool LoadBlockIndex(bool fAllowNew)
|
||||
|
||||
void PrintBlockTree()
|
||||
{
|
||||
// precompute tree structure
|
||||
// pre-compute tree structure
|
||||
map<CBlockIndex*, vector<CBlockIndex*> > mapNext;
|
||||
for (map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.begin(); mi != mapBlockIndex.end(); ++mi)
|
||||
{
|
||||
@@ -2042,7 +2042,7 @@ void PrintBlockTree()
|
||||
|
||||
PrintWallets(block);
|
||||
|
||||
// put the main timechain first
|
||||
// put the main time-chain first
|
||||
vector<CBlockIndex*>& vNext = mapNext[pindex];
|
||||
for (unsigned int i = 0; i < vNext.size(); i++)
|
||||
{
|
||||
@@ -2208,7 +2208,7 @@ bool static AlreadyHave(CTxDB& txdb, const CInv& inv)
|
||||
|
||||
|
||||
// The message start string is designed to be unlikely to occur in normal data.
|
||||
// The characters are rarely used upper ascii, not valid as UTF-8, and produce
|
||||
// The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
||||
// a large 4-byte int at any alignment.
|
||||
unsigned char pchMessageStart[4] = { 0xf9, 0xbe, 0xb4, 0xd9 };
|
||||
|
||||
@@ -2880,12 +2880,12 @@ bool ProcessMessages(CNode* pfrom)
|
||||
{
|
||||
if (strstr(e.what(), "end of data"))
|
||||
{
|
||||
// Allow exceptions from underlength message on vRecv
|
||||
// Allow exceptions from under-length message on vRecv
|
||||
printf("ProcessMessages(%s, %u bytes) : Exception '%s' caught, normally caused by a message being shorter than its stated length\n", strCommand.c_str(), nMessageSize, e.what());
|
||||
}
|
||||
else if (strstr(e.what(), "size too large"))
|
||||
{
|
||||
// Allow exceptions from overlong size
|
||||
// Allow exceptions from over-long size
|
||||
printf("ProcessMessages(%s, %u bytes) : Exception '%s' caught\n", strCommand.c_str(), nMessageSize, e.what());
|
||||
}
|
||||
else
|
||||
@@ -3133,9 +3133,9 @@ unsigned int static ScanHash_CryptoPP(char* pmidstate, char* pdata, char* phash1
|
||||
unsigned int& nNonce = *(unsigned int*)(pdata + 12);
|
||||
for (;;)
|
||||
{
|
||||
// Crypto++ SHA-256
|
||||
// Crypto++ SHA256
|
||||
// Hash pdata using pmidstate as the starting state into
|
||||
// preformatted buffer phash1, then hash phash1 into phash
|
||||
// pre-formatted buffer phash1, then hash phash1 into phash
|
||||
nNonce++;
|
||||
SHA256Transform(phash1, pdata, pmidstate);
|
||||
SHA256Transform(phash, phash1, pSHA256InitState);
|
||||
@@ -3371,7 +3371,7 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int&
|
||||
void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash1)
|
||||
{
|
||||
//
|
||||
// Prebuild hash buffers
|
||||
// Pre-build hash buffers
|
||||
//
|
||||
struct
|
||||
{
|
||||
@@ -3496,7 +3496,7 @@ void static BitcoinMiner(CWallet *pwallet)
|
||||
|
||||
|
||||
//
|
||||
// Prebuild hash buffers
|
||||
// Pre-build hash buffers
|
||||
//
|
||||
char pmidstatebuf[32+16]; char* pmidstate = alignup<16>(pmidstatebuf);
|
||||
char pdatabuf[128+16]; char* pdata = alignup<16>(pdatabuf);
|
||||
@@ -3521,7 +3521,7 @@ void static BitcoinMiner(CWallet *pwallet)
|
||||
unsigned int nHashesDone = 0;
|
||||
unsigned int nNonceFound;
|
||||
|
||||
// Crypto++ SHA-256
|
||||
// Crypto++ SHA256
|
||||
nNonceFound = ScanHash_CryptoPP(pmidstate, pdata + 64, phash1,
|
||||
(char*)&hash, nHashesDone);
|
||||
|
||||
|
||||
10
src/net.cpp
10
src/net.cpp
@@ -198,7 +198,7 @@ bool GetMyExternalIP(CNetAddr& ipRet)
|
||||
{
|
||||
// We should be phasing out our use of sites like these. If we need
|
||||
// replacements, we should ask for volunteers to put this simple
|
||||
// php file on their webserver that prints the client IP:
|
||||
// php file on their web server that prints the client IP:
|
||||
// <?php echo $_SERVER["REMOTE_ADDR"]; ?>
|
||||
if (nHost == 1)
|
||||
{
|
||||
@@ -345,7 +345,7 @@ CNode* ConnectNode(CAddress addrConnect, int64 nTimeout)
|
||||
/// debug print
|
||||
printf("connected %s\n", addrConnect.ToString().c_str());
|
||||
|
||||
// Set to nonblocking
|
||||
// Set to non-blocking
|
||||
#ifdef WIN32
|
||||
u_long nOne = 1;
|
||||
if (ioctlsocket(hSocket, FIONBIO, &nOne) == SOCKET_ERROR)
|
||||
@@ -1529,7 +1529,7 @@ bool BindListenPort(string& strError)
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
// Set to nonblocking, incoming connections will also inherit this
|
||||
// Set to non-blocking, incoming connections will also inherit this
|
||||
if (ioctlsocket(hListenSocket, FIONBIO, (u_long*)&nOne) == SOCKET_ERROR)
|
||||
#else
|
||||
if (fcntl(hListenSocket, F_SETFL, O_NONBLOCK) == SOCKET_ERROR)
|
||||
@@ -1590,7 +1590,7 @@ void StartNode(void* parg)
|
||||
pnodeLocalHost = new CNode(INVALID_SOCKET, CAddress(CService("127.0.0.1", 0), nLocalServices));
|
||||
|
||||
#ifdef WIN32
|
||||
// Get local host ip
|
||||
// Get local host IP
|
||||
char pszHostName[1000] = "";
|
||||
if (gethostname(pszHostName, sizeof(pszHostName)) != SOCKET_ERROR)
|
||||
{
|
||||
@@ -1608,7 +1608,7 @@ void StartNode(void* parg)
|
||||
}
|
||||
}
|
||||
#else
|
||||
// Get local host ip
|
||||
// Get local host IP
|
||||
struct ifaddrs* myaddrs;
|
||||
if (getifaddrs(&myaddrs) == 0)
|
||||
{
|
||||
|
||||
@@ -132,7 +132,7 @@ protected:
|
||||
int nRefCount;
|
||||
|
||||
// Denial-of-service detection/prevention
|
||||
// Key is ip address, value is banned-until-time
|
||||
// Key is IP address, value is banned-until-time
|
||||
static std::map<CNetAddr, int64> setBanned;
|
||||
static CCriticalSection cs_setBanned;
|
||||
int nMisbehavior;
|
||||
|
||||
@@ -427,7 +427,7 @@ bool CNetAddr::IsMulticast() const
|
||||
|
||||
bool CNetAddr::IsValid() const
|
||||
{
|
||||
// Clean up 3-byte shifted addresses caused by garbage in size field
|
||||
// Cleanup 3-byte shifted addresses caused by garbage in size field
|
||||
// of addr messages from versions before 0.2.9 checksum.
|
||||
// Two consecutive addr messages look like this:
|
||||
// header20 vectorlen3 addr26 addr26 addr26 header20 vectorlen3 addr26 addr26 addr26...
|
||||
@@ -549,7 +549,7 @@ std::vector<unsigned char> CNetAddr::GetGroup() const
|
||||
nClass = 1;
|
||||
nStartByte = 2;
|
||||
}
|
||||
// for Teredo-tunneled IPv6 addresses, use the encapsulated IPv4 address
|
||||
// for Teredo-tunnelled IPv6 addresses, use the encapsulated IPv4 address
|
||||
else if (IsRFC4380())
|
||||
{
|
||||
vchRet.push_back(1);
|
||||
|
||||
@@ -34,9 +34,9 @@ class CNetAddr
|
||||
bool IsRFC1918() const; // IPv4 private networks (10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12)
|
||||
bool IsRFC3849() const; // IPv6 documentation address (2001:0DB8::/32)
|
||||
bool IsRFC3927() const; // IPv4 autoconfig (169.254.0.0/16)
|
||||
bool IsRFC3964() const; // IPv6 6to4 tunneling (2002::/16)
|
||||
bool IsRFC3964() const; // IPv6 6to4 tunnelling (2002::/16)
|
||||
bool IsRFC4193() const; // IPv6 unique local (FC00::/15)
|
||||
bool IsRFC4380() const; // IPv6 Teredo tunneling (2001::/32)
|
||||
bool IsRFC4380() const; // IPv6 Teredo tunnelling (2001::/32)
|
||||
bool IsRFC4843() const; // IPv6 ORCHID (2001:10::/28)
|
||||
bool IsRFC4862() const; // IPv6 autoconfig (FE80::/64)
|
||||
bool IsRFC6052() const; // IPv6 well-known prefix (64:FF9B::/96)
|
||||
|
||||
@@ -158,7 +158,7 @@ void AskPassphraseDialog::accept()
|
||||
if(model->changePassphrase(oldpass, newpass1))
|
||||
{
|
||||
QMessageBox::information(this, tr("Wallet encrypted"),
|
||||
tr("Wallet passphrase was succesfully changed."));
|
||||
tr("Wallet passphrase was successfully changed."));
|
||||
QDialog::accept(); // Success
|
||||
}
|
||||
else
|
||||
@@ -178,7 +178,7 @@ void AskPassphraseDialog::accept()
|
||||
|
||||
void AskPassphraseDialog::textChanged()
|
||||
{
|
||||
// Validate input, set Ok button to enabled when accepable
|
||||
// Validate input, set Ok button to enabled when acceptable
|
||||
bool acceptable = false;
|
||||
switch(mode)
|
||||
{
|
||||
|
||||
@@ -124,7 +124,7 @@ std::string _(const char* psz)
|
||||
static void handleRunawayException(std::exception *e)
|
||||
{
|
||||
PrintExceptionContinue(e, "Runaway exception");
|
||||
QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occured. Bitcoin can no longer continue safely and will quit.") + QString("\n\n") + QString::fromStdString(strMiscWarning));
|
||||
QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. Bitcoin can no longer continue safely and will quit.") + QString("\n\n") + QString::fromStdString(strMiscWarning));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -258,7 +258,7 @@ int main(int argc, char *argv[])
|
||||
window.show();
|
||||
}
|
||||
|
||||
// Place this here as guiref has to be defined if we dont want to lose URIs
|
||||
// Place this here as guiref has to be defined if we don't want to lose URIs
|
||||
ipcInit();
|
||||
|
||||
#if !defined(MAC_OSX) && !defined(WIN32)
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
This is:
|
||||
- All numbers except for '0'
|
||||
- All uppercase letters except for 'I' and 'O'
|
||||
- All lowercase letters except for 'l'
|
||||
- All upper-case letters except for 'I' and 'O'
|
||||
- All lower-case letters except for 'l'
|
||||
|
||||
User friendly Base58 input can map
|
||||
- 'l' and 'I' to '1'
|
||||
|
||||
@@ -40,7 +40,7 @@ signals:
|
||||
void textChanged();
|
||||
|
||||
protected:
|
||||
/** Intercept focus-in event and ',' keypresses */
|
||||
/** Intercept focus-in event and ',' key presses */
|
||||
bool eventFilter(QObject *object, QEvent *event);
|
||||
|
||||
private:
|
||||
|
||||
@@ -155,7 +155,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
|
||||
// Clicking on a transaction on the overview page simply sends you to transaction history page
|
||||
connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage()));
|
||||
|
||||
// Doubleclicking on a transaction on the transaction history page shows details
|
||||
// Double-clicking on a transaction on the transaction history page shows details
|
||||
connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails()));
|
||||
|
||||
gotoOverviewPage();
|
||||
@@ -362,7 +362,7 @@ void BitcoinGUI::setWalletModel(WalletModel *walletModel)
|
||||
setEncryptionStatus(walletModel->getEncryptionStatus());
|
||||
connect(walletModel, SIGNAL(encryptionStatusChanged(int)), this, SLOT(setEncryptionStatus(int)));
|
||||
|
||||
// Balloon popup for new transaction
|
||||
// Balloon pop-up for new transaction
|
||||
connect(walletModel->getTransactionTableModel(), SIGNAL(rowsInserted(QModelIndex,int,int)),
|
||||
this, SLOT(incomingTransaction(QModelIndex,int,int)));
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ private:
|
||||
|
||||
/** Create the main UI actions. */
|
||||
void createActions();
|
||||
/** Create the menu bar and submenus. */
|
||||
/** Create the menu bar and sub-menus. */
|
||||
void createMenuBar();
|
||||
/** Create the toolbars */
|
||||
void createToolBars();
|
||||
@@ -161,7 +161,7 @@ private slots:
|
||||
void backupWallet();
|
||||
/** Change encrypted wallet passphrase */
|
||||
void changePassphrase();
|
||||
/** Ask for pass phrase to unlock wallet temporarily */
|
||||
/** Ask for passphrase to unlock wallet temporarily */
|
||||
void unlockWallet();
|
||||
|
||||
/** Show window if hidden, unminimize when minimized */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <QAbstractListModel>
|
||||
|
||||
/** Bitcoin unit definitions. Encapsulates parsing and formatting
|
||||
and serves as list model for dropdown selection boxes.
|
||||
and serves as list model for drop-down selection boxes.
|
||||
*/
|
||||
class BitcoinUnits: public QAbstractListModel
|
||||
{
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
//! Unit conversion and formatting
|
||||
///@{
|
||||
|
||||
//! Get list of units, for dropdown box
|
||||
//! Get list of units, for drop-down box
|
||||
static QList<Unit> availableUnits();
|
||||
//! Is unit ID valid?
|
||||
static bool valid(int unit);
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
///@}
|
||||
|
||||
//! @name AbstractListModel implementation
|
||||
//! List model for unit dropdown selection box.
|
||||
//! List model for unit drop-down selection box.
|
||||
///@{
|
||||
enum RoleIndex {
|
||||
/** Unit identifier */
|
||||
|
||||
@@ -102,7 +102,7 @@ bool parseBitcoinURI(QString uri, SendCoinsRecipient *out)
|
||||
// Convert bitcoin:// to bitcoin:
|
||||
//
|
||||
// Cannot handle this later, because bitcoin:// will cause Qt to see the part after // as host,
|
||||
// which will lowercase it (and thus invalidate the address).
|
||||
// which will lower-case it (and thus invalidate the address).
|
||||
if(uri.startsWith("bitcoin://"))
|
||||
{
|
||||
uri.replace(0, 10, "bitcoin:");
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace GUIUtil
|
||||
void setupAddressWidget(QLineEdit *widget, QWidget *parent);
|
||||
void setupAmountWidget(QLineEdit *widget, QWidget *parent);
|
||||
|
||||
// Parse "bitcoin:" URI into recipient object, return true on succesful parsing
|
||||
// Parse "bitcoin:" URI into recipient object, return true on successful parsing
|
||||
// See Bitcoin URI definition discussion here: https://bitcointalk.org/index.php?topic=33490.0
|
||||
bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out);
|
||||
bool parseBitcoinURI(QString uri, SendCoinsRecipient *out);
|
||||
@@ -45,7 +45,7 @@ namespace GUIUtil
|
||||
*/
|
||||
void copyEntryData(QAbstractItemView *view, int column, int role=Qt::EditRole);
|
||||
|
||||
/** Get save file name, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
|
||||
/** Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
|
||||
when no suffix is provided by the user.
|
||||
|
||||
@param[in] parent Parent window (or 0)
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
|
||||
static int metaType();
|
||||
|
||||
// Image to variant that can be marshaled over DBus
|
||||
// Image to variant that can be marshalled over DBus
|
||||
static QVariant toVariant(const QImage &img);
|
||||
|
||||
private:
|
||||
@@ -294,7 +294,7 @@ void Notificator::notify(Class cls, const QString &title, const QString &text, c
|
||||
default:
|
||||
if(cls == Critical)
|
||||
{
|
||||
// Fall back to old fashioned popup dialog if critical and no other notification available
|
||||
// Fall back to old fashioned pop-up dialog if critical and no other notification available
|
||||
QMessageBox::critical(parent, title, text, QMessageBox::Ok, QMessageBox::Ok);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -27,7 +27,7 @@ public:
|
||||
{
|
||||
Information, /**< Informational message */
|
||||
Warning, /**< Notify user of potential problem */
|
||||
Critical /**< An error occured */
|
||||
Critical /**< An error occurred */
|
||||
};
|
||||
|
||||
public slots:
|
||||
|
||||
@@ -121,7 +121,7 @@ void SendCoinsDialog::on_sendButton_clicked()
|
||||
{
|
||||
case WalletModel::InvalidAddress:
|
||||
QMessageBox::warning(this, tr("Send Coins"),
|
||||
tr("The recepient address is not valid, please recheck."),
|
||||
tr("The recipient address is not valid, please recheck."),
|
||||
QMessageBox::Ok, QMessageBox::Ok);
|
||||
break;
|
||||
case WalletModel::InvalidAmount:
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
void setDateRange(const QDateTime &from, const QDateTime &to);
|
||||
void setAddressPrefix(const QString &addrPrefix);
|
||||
/**
|
||||
@note Type filter takes a bitfield created with TYPE() or ALL_TYPES
|
||||
@note Type filter takes a bit field created with TYPE() or ALL_TYPES
|
||||
*/
|
||||
void setTypeFilter(quint32 modes);
|
||||
void setMinAmount(qint64 minimum);
|
||||
|
||||
@@ -203,7 +203,7 @@ void TransactionView::chooseDate(int idx)
|
||||
TransactionFilterProxy::MAX_DATE);
|
||||
break;
|
||||
case ThisWeek: {
|
||||
// Find last monday
|
||||
// Find last Monday
|
||||
QDate startOfWeek = current.addDays(-(current.dayOfWeek()-1));
|
||||
transactionProxyModel->setDateRange(
|
||||
QDateTime(startOfWeek),
|
||||
|
||||
@@ -1069,7 +1069,7 @@ uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int
|
||||
}
|
||||
else if ((nHashType & 0x1f) == SIGHASH_SINGLE)
|
||||
{
|
||||
// Only lockin the txout payee at same index as txin
|
||||
// Only lock-in the txout payee at same index as txin
|
||||
unsigned int nOut = nIn;
|
||||
if (nOut >= txTmp.vout.size())
|
||||
{
|
||||
@@ -1271,7 +1271,7 @@ bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, vector<vector<unsi
|
||||
if (!script2.GetOp(pc2, opcode2, vch2))
|
||||
break;
|
||||
// Normal situation is to fall through
|
||||
// to other if/else statments
|
||||
// to other if/else statements
|
||||
}
|
||||
|
||||
if (opcode2 == OP_PUBKEY)
|
||||
@@ -1348,7 +1348,7 @@ bool SignN(const vector<valtype>& multisigdata, const CKeyStore& keystore, uint2
|
||||
// Sign scriptPubKey with private keys stored in keystore, given transaction hash and hash type.
|
||||
// Signatures are returned in scriptSigRet (or returns false if scriptPubKey can't be signed),
|
||||
// unless whichTypeRet is TX_SCRIPTHASH, in which case scriptSigRet is the redemption script.
|
||||
// Returns false if scriptPubKey could not be completely satisified.
|
||||
// Returns false if scriptPubKey could not be completely satisfied.
|
||||
//
|
||||
bool Solver(const CKeyStore& keystore, const CScript& scriptPubKey, uint256 hash, int nHashType,
|
||||
CScript& scriptSigRet, txnouttype& whichTypeRet)
|
||||
|
||||
@@ -37,7 +37,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
|
||||
CNode dummyNode1(INVALID_SOCKET, addr1, true);
|
||||
dummyNode1.Misbehaving(100); // Should get banned
|
||||
BOOST_CHECK(CNode::IsBanned(addr1));
|
||||
BOOST_CHECK(!CNode::IsBanned(ip(0xa0b0c001|0x0000ff00))); // Different ip, not banned
|
||||
BOOST_CHECK(!CNode::IsBanned(ip(0xa0b0c001|0x0000ff00))); // Different IP, not banned
|
||||
|
||||
CAddress addr2(ip(0xa0b0c002));
|
||||
CNode dummyNode2(INVALID_SOCKET, addr2, true);
|
||||
|
||||
@@ -130,7 +130,7 @@ BOOST_AUTO_TEST_CASE(norecurse)
|
||||
// Should not verify, because it will try to execute OP_INVALIDOPCODE
|
||||
BOOST_CHECK(!Verify(scriptSig, p2sh, true));
|
||||
|
||||
// Try to recurse, and verification should succeed because
|
||||
// Try to recur, and verification should succeed because
|
||||
// the inner HASH160 <> EQUAL should only check the hash:
|
||||
CScript p2sh2;
|
||||
p2sh2.SetPayToScriptHash(p2sh);
|
||||
@@ -225,7 +225,7 @@ BOOST_AUTO_TEST_CASE(is)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(switchover)
|
||||
{
|
||||
// Test switchover code
|
||||
// Test switch over code
|
||||
CScript notValid;
|
||||
notValid << OP_11 << OP_12 << OP_EQUALVERIFY;
|
||||
CScript scriptSig;
|
||||
|
||||
@@ -750,7 +750,7 @@ void CWallet::ReacceptWalletTransactions()
|
||||
}
|
||||
else
|
||||
{
|
||||
// Reaccept any txes of ours that aren't already in a block
|
||||
// Re-accept any txes of ours that aren't already in a block
|
||||
if (!wtx.IsCoinBase())
|
||||
wtx.AcceptWalletTransaction(txdb, false);
|
||||
}
|
||||
@@ -759,7 +759,7 @@ void CWallet::ReacceptWalletTransactions()
|
||||
{
|
||||
// TODO: optimize this to scan just part of the block chain?
|
||||
if (ScanForWalletTransactions(pindexGenesisBlock))
|
||||
fRepeat = true; // Found missing transactions: re-do Reaccept.
|
||||
fRepeat = true; // Found missing transactions: re-do re-accept.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user