diff options
59 files changed, 645 insertions, 25 deletions
diff --git a/doc/README.md b/doc/README.md index 148db94214..9a7d101185 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Bitcoin 0.9.0rc1 BETA +Bitcoin 0.9.0 BETA ===================== Copyright (c) 2009-2014 Bitcoin Developers diff --git a/doc/release-notes/release-notes-0.9.0.md b/doc/release-notes/release-notes-0.9.0.md new file mode 100644 index 0000000000..170410ca40 --- /dev/null +++ b/doc/release-notes/release-notes-0.9.0.md @@ -0,0 +1,411 @@ +Bitcoin Core version 0.9.0 is now available from: + + https://bitcoin.org/bin/0.9.0/ + +This is a new major version release, bringing both new features and +bug fixes. + +Please report bugs using the issue tracker at github: + + https://github.com/bitcoin/bitcoin/issues + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), uninstall all +earlier versions of Bitcoin, then run the installer (on Windows) or just copy +over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). + +If you are upgrading from version 0.7.2 or earlier, the first time you run +0.9.0 your blockchain files will be re-indexed, which will take anywhere from +30 minutes to several hours, depending on the speed of your machine. + +On Windows, do not forget to uninstall all earlier versions of the Bitcoin +client first, especially if you are switching to the 64-bit version. + +Windows 64-bit installer +------------------------- + +New in 0.9.0 is the Windows 64-bit version of the client. There have been +frequent reports of users running out of virtual memory on 32-bit systems +during the initial sync. Because of this it is recommended to install the +64-bit version if your system supports it. + +NOTE: Release candidate 2 Windows binaries are not code-signed; use PGP +and the SHA256SUMS.asc file to make sure your binaries are correct. +In the final 0.9.0 release, Windows setup.exe binaries will be code-signed. + +OSX 10.5 / 32-bit no longer supported +------------------------------------- + +0.9.0 drops support for older Macs. The minimum requirements are now: +* A 64-bit-capable CPU (see http://support.apple.com/kb/ht3696); +* Mac OS 10.6 or later (see https://support.apple.com/kb/ht1633). + +Downgrading warnings +-------------------- + +The 'chainstate' for this release is not always compatible with previous +releases, so if you run 0.9 and then decide to switch back to a +0.8.x release you might get a blockchain validation error when starting the +old release (due to 'pruned outputs' being omitted from the index of +unspent transaction outputs). + +Running the old release with the -reindex option will rebuild the chainstate +data structures and correct the problem. + +Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan +the blockchain for missing spent coins, which will take a long time (tens +of minutes on a typical machine). + +Rebranding to Bitcoin Core +--------------------------- + +To reduce confusion between Bitcoin-the-network and Bitcoin-the-software we +have renamed the reference client to Bitcoin Core. + + +OP_RETURN and data in the block chain +------------------------------------- +On OP_RETURN: There was been some confusion and misunderstanding in +the community, regarding the OP_RETURN feature in 0.9 and data in the +blockchain. This change is not an endorsement of storing data in the +blockchain. The OP_RETURN change creates a provably-prunable output, +to avoid data storage schemes -- some of which were already deployed -- +that were storing arbitrary data such as images as forever-unspendable +TX outputs, bloating bitcoin's UTXO database. + +Storing arbitrary data in the blockchain is still a bad idea; it is less +costly and far more efficient to store non-currency data elsewhere. + +Autotools build system +----------------------- + +For 0.9.0 we switched to an autotools-based build system instead of individual +(q)makefiles. + +Using the standard "./autogen.sh; ./configure; make" to build Bitcoin-Qt and +bitcoind makes it easier for experienced open source developers to contribute +to the project. + +Be sure to check doc/build-*.md for your platform before building from source. + +Bitcoin-cli +------------- + +Another change in the 0.9 release is moving away from the bitcoind executable +functioning both as a server and as a RPC client. The RPC client functionality +("tell the running bitcoin daemon to do THIS") was split into a separate +executable, 'bitcoin-cli'. The RPC client code will eventually be removed from +bitcoind, but will be kept for backwards compatibility for a release or two. + +`walletpassphrase` RPC +----------------------- + +The behavior of the `walletpassphrase` RPC when the wallet is already unlocked +has changed between 0.8 and 0.9. + +The 0.8 behavior of `walletpassphrase` is to fail when the wallet is already unlocked: + + > walletpassphrase 1000 + walletunlocktime = now + 1000 + > walletpassphrase 10 + Error: Wallet is already unlocked (old unlock time stays) + +The new behavior of `walletpassphrase` is to set a new unlock time overriding +the old one: + + > walletpassphrase 1000 + walletunlocktime = now + 1000 + > walletpassphrase 10 + walletunlocktime = now + 10 (overriding the old unlock time) + +Transaction malleability-related fixes +-------------------------------------- + +This release contains a few fixes for transaction ID (TXID) malleability +issues: + +- -nospendzeroconfchange command-line option, to avoid spending + zero-confirmation change +- IsStandard() transaction rules tightened to prevent relaying and mining of + mutated transactions +- Additional information in listtransactions/gettransaction output to + report wallet transactions that conflict with each other because + they spend the same outputs. +- Bug fixes to the getbalance/listaccounts RPC commands, which would report + incorrect balances for double-spent (or mutated) transactions. +- New option: -zapwallettxes to rebuild the wallet's transaction information + +Transaction Fees +---------------- + +This release drops the default fee required to relay transactions across the +network and for miners to consider the transaction in their blocks to +0.01mBTC per kilobyte. + +Note that getting a transaction relayed across the network does NOT guarantee +that the transaction will be accepted by a miner; by default, miners fill +their blocks with 50 kilobytes of high-priority transactions, and then with +700 kilobytes of the highest-fee-per-kilobyte transactions. + +The minimum relay/mining fee-per-kilobyte may be changed with the +minrelaytxfee option. Note that previous releases incorrectly used +the mintxfee setting to determine which low-priority transactions should +be considered for inclusion in blocks. + +The wallet code still uses a default fee for low-priority transactions of +0.1mBTC per kilobyte. During periods of heavy transaction volume, even this +fee may not be enough to get transactions confirmed quickly; the mintxfee +option may be used to override the default. + +0.9.0 Release notes +======================= + +RPC: + +- New notion of 'conflicted' transactions, reported as confirmations: -1 +- 'listreceivedbyaddress' now provides tx ids +- Add raw transaction hex to 'gettransaction' output +- Updated help and tests for 'getreceivedby(account|address)' +- In 'getblock', accept 2nd 'verbose' parameter, similar to getrawtransaction, + but defaulting to 1 for backward compatibility +- Add 'verifychain', to verify chain database at runtime +- Add 'dumpwallet' and 'importwallet' RPCs +- 'keypoolrefill' gains optional size parameter +- Add 'getbestblockhash', to return tip of best chain +- Add 'chainwork' (the total work done by all blocks since the genesis block) + to 'getblock' output +- Make RPC password resistant to timing attacks +- Clarify help messages and add examples +- Add 'getrawchangeaddress' call for raw transaction change destinations +- Reject insanely high fees by default in 'sendrawtransaction' +- Add RPC call 'decodescript' to decode a hex-encoded transaction script +- Make 'validateaddress' provide redeemScript +- Add 'getnetworkhashps' to get the calculated network hashrate +- New RPC 'ping' command to request ping, new 'pingtime' and 'pingwait' fields + in 'getpeerinfo' output +- Adding new 'addrlocal' field to 'getpeerinfo' output +- Add verbose boolean to 'getrawmempool' +- Add rpc command 'getunconfirmedbalance' to obtain total unconfirmed balance +- Explicitly ensure that wallet is unlocked in `importprivkey` +- Add check for valid keys in `importprivkey` + +Command-line options: + +- New option: -nospendzeroconfchange to never spend unconfirmed change outputs +- New option: -zapwallettxes to rebuild the wallet's transaction information +- Rename option '-tor' to '-onion' to better reflect what it does +- Add '-disablewallet' mode to let bitcoind run entirely without wallet (when + built with wallet) +- Update default '-rpcsslciphers' to include TLSv1.2 +- make '-logtimestamps' default on and rework help-message +- RPC client option: '-rpcwait', to wait for server start +- Remove '-logtodebugger' +- Allow `-noserver` with bitcoind + +Block-chain handling and storage: + +- Update leveldb to 1.15 +- Check for correct genesis (prevent cases where a datadir from the wrong + network is accidentally loaded) +- Allow txindex to be removed and add a reindex dialog +- Log aborted block database rebuilds +- Store orphan blocks in serialized form, to save memory +- Limit the number of orphan blocks in memory to 750 +- Fix non-standard disconnected transactions causing mempool orphans +- Add a new checkpoint at block 279,000 + +Wallet: + +- Bug fixes and new regression tests to correctly compute + the balance of wallets containing double-spent (or mutated) transactions +- Store key creation time. Calculate whole-wallet birthday. +- Optimize rescan to skip blocks prior to birthday +- Let user select wallet file with -wallet=foo.dat +- Consider generated coins mature at 101 instead of 120 blocks +- Improve wallet load time +- Don't count txins for priority to encourage sweeping +- Don't create empty transactions when reading a corrupted wallet +- Fix rescan to start from beginning after importprivkey +- Only create signatures with low S values + +Mining: + +- Increase default -blockmaxsize/prioritysize to 750K/50K +- 'getblocktemplate' does not require a key to create a block template +- Mining code fee policy now matches relay fee policy + +Protocol and network: + +- Drop the fee required to relay a transaction to 0.01mBTC per kilobyte +- Send tx relay flag with version +- New 'reject' P2P message (BIP 0061, see + https://gist.github.com/gavinandresen/7079034 for draft) +- Dump addresses every 15 minutes instead of 10 seconds +- Relay OP_RETURN data TxOut as standard transaction type +- Remove CENT-output free transaction rule when relaying +- Lower maximum size for free transaction creation +- Send multiple inv messages if mempool.size > MAX_INV_SZ +- Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION +- Do not treat fFromMe transaction differently when broadcasting +- Process received messages one at a time without sleeping between messages +- Improve logging of failed connections +- Bump protocol version to 70002 +- Add some additional logging to give extra network insight +- Added new DNS seed from bitcoinstats.com + +Validation: + +- Log reason for non-standard transaction rejection +- Prune provably-unspendable outputs, and adapt consistency check for it. +- Detect any sufficiently long fork and add a warning +- Call the -alertnotify script when we see a long or invalid fork +- Fix multi-block reorg transaction resurrection +- Reject non-canonically-encoded serialization sizes +- Reject dust amounts during validation +- Accept nLockTime transactions that finalize in the next block + +Build system: + +- Switch to autotools-based build system +- Build without wallet by passing `--disable-wallet` to configure, this + removes the BerkeleyDB dependency +- Upgrade gitian dependencies (libpng, libz, libupnpc, boost, openssl) to more + recent versions +- Windows 64-bit build support +- Solaris compatibility fixes +- Check integrity of gitian input source tarballs +- Enable full GCC Stack-smashing protection for all OSes + +GUI: + +- Switch to Qt 5.2.0 for Windows build +- Add payment request (BIP 0070) support +- Improve options dialog +- Show transaction fee in new send confirmation dialog +- Add total balance in overview page +- Allow user to choose data directory on first start, when data directory is + missing, or when the -choosedatadir option is passed +- Save and restore window positions +- Add vout index to transaction id in transactions details dialog +- Add network traffic graph in debug window +- Add open URI dialog +- Add Coin Control Features +- Improve receive coins workflow: make the 'Receive' tab into a form to request + payments, and move historical address list functionality to File menu. +- Rebrand to `Bitcoin Core` +- Move initialization/shutdown to a thread. This prevents "Not responding" + messages during startup. Also show a window during shutdown. +- Don't regenerate autostart link on every client startup +- Show and store message of normal bitcoin:URI +- Fix richtext detection hang issue on very old Qt versions +- OS X: Make use of the 10.8+ user notification center to display Growl-like + notifications +- OS X: Added NSHighResolutionCapable flag to Info.plist for better font + rendering on Retina displays. +- OS X: Fix bitcoin-qt startup crash when clicking dock icon +- Linux: Fix Gnome bitcoin: URI handler + +Miscellaneous: + +- Add Linux script (contrib/qos/tc.sh) to limit outgoing bandwidth +- Add '-regtest' mode, similar to testnet but private with instant block + generation with 'setgenerate' RPC. +- Add 'linearize.py' script to contrib, for creating bootstrap.dat +- Add separate bitcoin-cli client + +Credits +-------- + +Thanks to everyone who contributed to this release: + +- Andrey +- Ashley Holman +- b6393ce9-d324-4fe1-996b-acf82dbc3d53 +- bitsofproof +- Brandon Dahler +- Calvin Tam +- Christian Decker +- Christian von Roques +- Christopher Latham +- Chuck +- coblee +- constantined +- Cory Fields +- Cozz Lovan +- daniel +- Daniel Larimer +- David Hill +- Dmitry Smirnov +- Drak +- Eric Lombrozo +- fanquake +- fcicq +- Florin +- frewil +- Gavin Andresen +- Gregory Maxwell +- gubatron +- Guillermo Céspedes Tabárez +- Haakon Nilsen +- HaltingState +- Han Lin Yap +- harry +- Ian Kelling +- Jeff Garzik +- Johnathan Corgan +- Jonas Schnelli +- Josh Lehan +- Josh Triplett +- Julian Langschaedel +- Kangmo +- Lake Denman +- Luke Dashjr +- Mark Friedenbach +- Matt Corallo +- Michael Bauer +- Michael Ford +- Michagogo +- Midnight Magic +- Mike Hearn +- Nils Schneider +- Noel Tiernan +- Olivier Langlois +- patrick s +- Patrick Strateman +- paveljanik +- Peter Todd +- phantomcircuit +- phelixbtc +- Philip Kaufmann +- Pieter Wuille +- Rav3nPL +- R E Broadley +- regergregregerrge +- Robert Backhaus +- Roman Mindalev +- Rune K. Svendsen +- Ryan Niebur +- Scott Ellis +- Scott Willeke +- Sergey Kazenyuk +- Shawn Wilkinson +- Sined +- sje +- Subo1978 +- super3 +- Tamas Blummer +- theuni +- Thomas Holenstein +- Timon Rapp +- Timothy Stranex +- Tom Geller +- Torstein Husebø +- Vaclav Vobornik +- vhf / victor felder +- Vinnie Falco +- Warren Togami +- Wil Bown +- Wladimir J. van der Laan diff --git a/qa/pull-tester/build-tests.sh.in b/qa/pull-tester/build-tests.sh.in index 86d4d9d0e9..e7db721110 100755 --- a/qa/pull-tester/build-tests.sh.in +++ b/qa/pull-tester/build-tests.sh.in @@ -1,4 +1,8 @@ #!/bin/bash +# Copyright (c) 2013 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +# # Param1: The prefix to mingw staging # Param2: Path to java comparison tool # Param3: Number of make jobs. Defaults to 1. diff --git a/qa/pull-tester/pull-tester.py b/qa/pull-tester/pull-tester.py index b05ac2c527..61ce813d80 100755 --- a/qa/pull-tester/pull-tester.py +++ b/qa/pull-tester/pull-tester.py @@ -1,4 +1,8 @@ #!/usr/bin/python +# Copyright (c) 2013 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +# import json from urllib import urlopen import requests diff --git a/qa/pull-tester/pull-tester.sh b/qa/pull-tester/pull-tester.sh index 13c800c16a..bbee92967d 100755 --- a/qa/pull-tester/pull-tester.sh +++ b/qa/pull-tester/pull-tester.sh @@ -1,4 +1,8 @@ #!/bin/sh +# Copyright (c) 2013 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +# # Helper script for pull-tester. #Param 1: path to bitcoin srcroot #Param ...: arguments for build-test.sh diff --git a/qa/pull-tester/run-bitcoind-for-test.sh.in b/qa/pull-tester/run-bitcoind-for-test.sh.in index 25faf9c42d..391046ab85 100755 --- a/qa/pull-tester/run-bitcoind-for-test.sh.in +++ b/qa/pull-tester/run-bitcoind-for-test.sh.in @@ -1,4 +1,8 @@ #!/bin/bash +# Copyright (c) 2013 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +# DATADIR="@abs_top_builddir@/.bitcoin" rm -rf "$DATADIR" mkdir -p "$DATADIR"/regtest diff --git a/qa/rpc-tests/conflictedbalance.sh b/qa/rpc-tests/conflictedbalance.sh index 9d854d2d87..849ad31fb8 100755 --- a/qa/rpc-tests/conflictedbalance.sh +++ b/qa/rpc-tests/conflictedbalance.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # Test marking of spent outputs diff --git a/qa/rpc-tests/listtransactions.py b/qa/rpc-tests/listtransactions.py index fec3acfbb3..6ffee6bbe8 100755 --- a/qa/rpc-tests/listtransactions.py +++ b/qa/rpc-tests/listtransactions.py @@ -1,4 +1,7 @@ #!/usr/bin/env python +# Copyright (c) 2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # Exercise the listtransactions API diff --git a/qa/rpc-tests/send.sh b/qa/rpc-tests/send.sh index 2c0d5375c0..bfbf791d07 100755 --- a/qa/rpc-tests/send.sh +++ b/qa/rpc-tests/send.sh @@ -1,4 +1,7 @@ #!/bin/bash +# Copyright (c) 2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. TIMEOUT=10 SIGNAL=HUP PIDFILE=.send.pid diff --git a/qa/rpc-tests/skeleton.py b/qa/rpc-tests/skeleton.py index 0bace6f4eb..5d4b62e55f 100755 --- a/qa/rpc-tests/skeleton.py +++ b/qa/rpc-tests/skeleton.py @@ -1,4 +1,7 @@ #!/usr/bin/env python +# Copyright (c) 2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # Skeleton for python-based regression tests using # JSON-RPC diff --git a/qa/rpc-tests/txnmall.sh b/qa/rpc-tests/txnmall.sh index 11e0276494..bd36967a63 100755 --- a/qa/rpc-tests/txnmall.sh +++ b/qa/rpc-tests/txnmall.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # Test proper accounting with malleable transactions diff --git a/qa/rpc-tests/util.py b/qa/rpc-tests/util.py index fbb27ae2df..6184c1fbad 100644 --- a/qa/rpc-tests/util.py +++ b/qa/rpc-tests/util.py @@ -1,3 +1,6 @@ +# Copyright (c) 2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # # Helpful routines for regression testing # diff --git a/qa/rpc-tests/util.sh b/qa/rpc-tests/util.sh index 9001c42fbc..1e7bd6a7ee 100644 --- a/qa/rpc-tests/util.sh +++ b/qa/rpc-tests/util.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # Functions used by more than one test diff --git a/qa/rpc-tests/wallet.sh b/qa/rpc-tests/wallet.sh index 2940566af9..98532fa858 100755 --- a/qa/rpc-tests/wallet.sh +++ b/qa/rpc-tests/wallet.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2013-2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # Test block generation and basic wallet sending diff --git a/qa/rpc-tests/walletbackup.sh b/qa/rpc-tests/walletbackup.sh index 9207243b62..7444670980 100755 --- a/qa/rpc-tests/walletbackup.sh +++ b/qa/rpc-tests/walletbackup.sh @@ -1,4 +1,7 @@ #!/usr/bin/env bash +# Copyright (c) 2014 The Bitcoin Core developers +# Distributed under the MIT/X11 software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. # Test wallet backup / dump / restore functionality diff --git a/src/alert.cpp b/src/alert.cpp index 46e861be9e..99164d63e5 100644 --- a/src/alert.cpp +++ b/src/alert.cpp @@ -10,6 +10,7 @@ #include "ui_interface.h" #include "util.h" +#include <stdint.h> #include <algorithm> #include <map> diff --git a/src/qt/forms/receivecoinsdialog.ui b/src/qt/forms/receivecoinsdialog.ui index 3e1a8bccc7..e1a0a28f81 100644 --- a/src/qt/forms/receivecoinsdialog.ui +++ b/src/qt/forms/receivecoinsdialog.ui @@ -263,6 +263,9 @@ <property name="text"> <string>Show</string> </property> + <property name="enabled"> + <bool>false</bool> + </property> <property name="icon"> <iconset resource="../bitcoin.qrc"> <normaloff>:/icons/edit</normaloff>:/icons/edit</iconset> @@ -277,6 +280,9 @@ <property name="text"> <string>Remove</string> </property> + <property name="enabled"> + <bool>false</bool> + </property> <property name="icon"> <iconset resource="../bitcoin.qrc"> <normaloff>:/icons/remove</normaloff>:/icons/remove</iconset> diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index 3b83a5ff62..b61fdd2301 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -30,6 +30,11 @@ OptionsModel::OptionsModel(QObject *parent) : Init(); } +void OptionsModel::addOverriddenOption(const std::string &option) +{ + strOverriddenByCommandLine += QString::fromStdString(option) + "=" + QString::fromStdString(mapArgs[option]) + " "; +} + // Writes all missing QSettings with their default values void OptionsModel::Init() { @@ -76,23 +81,23 @@ void OptionsModel::Init() settings.setValue("nTransactionFee", 0); nTransactionFee = settings.value("nTransactionFee").toLongLong(); // if -paytxfee is set, this will be overridden later in init.cpp if (mapArgs.count("-paytxfee")) - strOverriddenByCommandLine += "-paytxfee "; + addOverriddenOption("-paytxfee"); if (!settings.contains("bSpendZeroConfChange")) settings.setValue("bSpendZeroConfChange", true); if (!SoftSetBoolArg("-spendzeroconfchange", settings.value("bSpendZeroConfChange").toBool())) - strOverriddenByCommandLine += "-spendzeroconfchange "; + addOverriddenOption("-spendzeroconfchange"); #endif if (!settings.contains("nDatabaseCache")) settings.setValue("nDatabaseCache", (qint64)nDefaultDbCache); if (!SoftSetArg("-dbcache", settings.value("nDatabaseCache").toString().toStdString())) - strOverriddenByCommandLine += "-dbcache "; + addOverriddenOption("-dbcache"); if (!settings.contains("nThreadsScriptVerif")) settings.setValue("nThreadsScriptVerif", 0); if (!SoftSetArg("-par", settings.value("nThreadsScriptVerif").toString().toStdString())) - strOverriddenByCommandLine += "-par "; + addOverriddenOption("-par"); // Network if (!settings.contains("fUseUPnP")) @@ -100,9 +105,9 @@ void OptionsModel::Init() settings.setValue("fUseUPnP", true); #else settings.setValue("fUseUPnP", false); -#endif +#endif if (!SoftSetBoolArg("-upnp", settings.value("fUseUPnP").toBool())) - strOverriddenByCommandLine += "-upnp "; + addOverriddenOption("-upnp"); if (!settings.contains("fUseProxy")) settings.setValue("fUseProxy", false); @@ -110,18 +115,18 @@ void OptionsModel::Init() settings.setValue("addrProxy", "127.0.0.1:9050"); // Only try to set -proxy, if user has enabled fUseProxy if (settings.value("fUseProxy").toBool() && !SoftSetArg("-proxy", settings.value("addrProxy").toString().toStdString())) - strOverriddenByCommandLine += "-proxy "; + addOverriddenOption("-proxy"); if (!settings.contains("nSocksVersion")) settings.setValue("nSocksVersion", 5); // Only try to set -socks, if user has enabled fUseProxy if (settings.value("fUseProxy").toBool() && !SoftSetArg("-socks", settings.value("nSocksVersion").toString().toStdString())) - strOverriddenByCommandLine += "-socks "; + addOverriddenOption("-socks"); // Display if (!settings.contains("language")) settings.setValue("language", ""); if (!SoftSetArg("-lang", settings.value("language").toString().toStdString())) - strOverriddenByCommandLine += "-lang"; + addOverriddenOption("-lang"); language = settings.value("language").toString(); } diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index a3487ddd2e..ece5ef78a4 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -75,6 +75,9 @@ private: /* settings that were overriden by command-line */ QString strOverriddenByCommandLine; + /// Add option to list of GUI options overridden through command line/config file + void addOverriddenOption(const std::string &option); + signals: void displayUnitChanged(int unit); void transactionFeeChanged(qint64); diff --git a/src/qt/receivecoinsdialog.cpp b/src/qt/receivecoinsdialog.cpp index 7539645b47..2af3949ae4 100644 --- a/src/qt/receivecoinsdialog.cpp +++ b/src/qt/receivecoinsdialog.cpp @@ -19,6 +19,7 @@ #include <QMessageBox> #include <QTextDocument> #include <QScrollBar> +#include <QItemSelection> ReceiveCoinsDialog::ReceiveCoinsDialog(QWidget *parent) : QDialog(parent), @@ -77,6 +78,11 @@ void ReceiveCoinsDialog::setModel(WalletModel *model) ui->recentRequestsView->horizontalHeader()->resizeSection(RecentRequestsTableModel::Amount, 100); model->getRecentRequestsTableModel()->sort(RecentRequestsTableModel::Date, Qt::DescendingOrder); + + connect(ui->recentRequestsView->selectionModel(), + SIGNAL(selectionChanged(QItemSelection, QItemSelection)), + this, + SLOT(on_recentRequestsView_selectionChanged(QItemSelection, QItemSelection))); } } @@ -161,6 +167,15 @@ void ReceiveCoinsDialog::on_recentRequestsView_doubleClicked(const QModelIndex & dialog->show(); } +void ReceiveCoinsDialog::on_recentRequestsView_selectionChanged(const QItemSelection &selected, + const QItemSelection &deselected) +{ + // Enable Show/Remove buttons only if anything is selected. + bool enable = !ui->recentRequestsView->selectionModel()->selectedRows().isEmpty(); + ui->showRequestButton->setEnabled(enable); + ui->removeRequestButton->setEnabled(enable); +} + void ReceiveCoinsDialog::on_showRequestButton_clicked() { if(!model || !model->getRecentRequestsTableModel() || !ui->recentRequestsView->selectionModel()) diff --git a/src/qt/receivecoinsdialog.h b/src/qt/receivecoinsdialog.h index 12d2235782..bfe8b3401f 100644 --- a/src/qt/receivecoinsdialog.h +++ b/src/qt/receivecoinsdialog.h @@ -10,6 +10,7 @@ #include <QMenu> #include <QPoint> #include <QVariant> +#include <QItemSelection> namespace Ui { class ReceiveCoinsDialog; @@ -51,6 +52,7 @@ private slots: void on_showRequestButton_clicked(); void on_removeRequestButton_clicked(); void on_recentRequestsView_doubleClicked(const QModelIndex &index); + void on_recentRequestsView_selectionChanged(const QItemSelection &, const QItemSelection &); void updateDisplayUnit(); void showMenu(const QPoint &); void copyLabel(); diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp index ad8dd7b732..e0f56f8cd2 100644 --- a/src/qt/sendcoinsentry.cpp +++ b/src/qt/sendcoinsentry.cpp @@ -195,8 +195,10 @@ void SendCoinsEntry::setValue(const SendCoinsRecipient &value) ui->messageTextLabel->setVisible(!recipient.message.isEmpty()); ui->messageLabel->setVisible(!recipient.message.isEmpty()); - ui->payTo->setText(recipient.address); - ui->addAsLabel->setText(recipient.label); + ui->addAsLabel->clear(); + ui->payTo->setText(recipient.address); // this may set a label from addressbook + if (!recipient.label.isEmpty()) // if a label had been set from the addressbook, dont overwrite with an empty label + ui->addAsLabel->setText(recipient.label); ui->payAmount->setValue(recipient.amount); } } diff --git a/src/test/Checkpoints_tests.cpp b/src/test/Checkpoints_tests.cpp index 78b0236b74..8f70f18c7c 100644 --- a/src/test/Checkpoints_tests.cpp +++ b/src/test/Checkpoints_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + // // Unit tests for block-chain checkpoints // diff --git a/src/test/DoS_tests.cpp b/src/test/DoS_tests.cpp index 7bf7b19b54..d86cc7a290 100644 --- a/src/test/DoS_tests.cpp +++ b/src/test/DoS_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2011-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + // // Unit tests for denial-of-service detection/prevention code // diff --git a/src/test/accounting_tests.cpp b/src/test/accounting_tests.cpp index bfdb95927b..e2a75da349 100644 --- a/src/test/accounting_tests.cpp +++ b/src/test/accounting_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2012-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "wallet.h" #include "walletdb.h" diff --git a/src/test/alert_tests.cpp b/src/test/alert_tests.cpp index a7e668222d..b16f3f7f57 100644 --- a/src/test/alert_tests.cpp +++ b/src/test/alert_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + // // Unit tests for alert system // diff --git a/src/test/allocator_tests.cpp b/src/test/allocator_tests.cpp index 490dff87e5..2752a0b215 100644 --- a/src/test/allocator_tests.cpp +++ b/src/test/allocator_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "util.h" diff --git a/src/test/base32_tests.cpp b/src/test/base32_tests.cpp index 580e87f65f..87473585e3 100644 --- a/src/test/base32_tests.cpp +++ b/src/test/base32_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "util.h" diff --git a/src/test/base58_tests.cpp b/src/test/base58_tests.cpp index 94e84049be..5689e69995 100644 --- a/src/test/base58_tests.cpp +++ b/src/test/base58_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2011-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "base58.h" #include "data/base58_encode_decode.json.h" diff --git a/src/test/base64_tests.cpp b/src/test/base64_tests.cpp index c59c290669..d4a23d9aa0 100644 --- a/src/test/base64_tests.cpp +++ b/src/test/base64_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "util.h" diff --git a/src/test/bignum_tests.cpp b/src/test/bignum_tests.cpp index 205b15adcf..6587389a07 100644 --- a/src/test/bignum_tests.cpp +++ b/src/test/bignum_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "bignum.h" #include <limits> diff --git a/src/test/bip32_tests.cpp b/src/test/bip32_tests.cpp index 2bcca24336..9cf07fc38c 100644 --- a/src/test/bip32_tests.cpp +++ b/src/test/bip32_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include <boost/test/unit_test.hpp> #include "base58.h" diff --git a/src/test/bloom_tests.cpp b/src/test/bloom_tests.cpp index c4e4403b70..abedd3093c 100644 --- a/src/test/bloom_tests.cpp +++ b/src/test/bloom_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "bloom.h" #include "base58.h" diff --git a/src/test/canonical_tests.cpp b/src/test/canonical_tests.cpp index c521f2cf9c..a26ad335a4 100644 --- a/src/test/canonical_tests.cpp +++ b/src/test/canonical_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + // // Unit tests for canonical signatures // diff --git a/src/test/checkblock_tests.cpp b/src/test/checkblock_tests.cpp index 67503b200b..10352240f4 100644 --- a/src/test/checkblock_tests.cpp +++ b/src/test/checkblock_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2013-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + // // Unit tests for block.CheckBlock() // diff --git a/src/test/compress_tests.cpp b/src/test/compress_tests.cpp index 4d16914774..719955ba85 100644 --- a/src/test/compress_tests.cpp +++ b/src/test/compress_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "main.h" #include "util.h" diff --git a/src/test/data/README.md b/src/test/data/README.md new file mode 100644 index 0000000000..f69a021ca0 --- /dev/null +++ b/src/test/data/README.md @@ -0,0 +1,14 @@ +Description +------------ + +This directory contains data-driven tests for various aspects of Bitcoin. + +License +-------- + +The data files in this directory are + + Copyright (c) 2012-2014 The Bitcoin Core developers + Distributed under the MIT/X11 software license, see the accompanying + file COPYING or http://www.opensource.org/licenses/mit-license.php. + diff --git a/src/test/getarg_tests.cpp b/src/test/getarg_tests.cpp index d76124885b..8cadcdd716 100644 --- a/src/test/getarg_tests.cpp +++ b/src/test/getarg_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "util.h" diff --git a/src/test/hash_tests.cpp b/src/test/hash_tests.cpp index 28410f0fed..4568c8769b 100644 --- a/src/test/hash_tests.cpp +++ b/src/test/hash_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "hash.h" #include "util.h" diff --git a/src/test/hmac_tests.cpp b/src/test/hmac_tests.cpp index 68868866aa..780ce480ce 100644 --- a/src/test/hmac_tests.cpp +++ b/src/test/hmac_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "hash.h" #include "util.h" diff --git a/src/test/key_tests.cpp b/src/test/key_tests.cpp index 421ffeac45..864d90128c 100644 --- a/src/test/key_tests.cpp +++ b/src/test/key_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "key.h" #include "base58.h" diff --git a/src/test/main_tests.cpp b/src/test/main_tests.cpp index b7f4312cda..3f8ad20020 100644 --- a/src/test/main_tests.cpp +++ b/src/test/main_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "core.h" #include "main.h" diff --git a/src/test/miner_tests.cpp b/src/test/miner_tests.cpp index d35137a663..b72ba0293f 100644 --- a/src/test/miner_tests.cpp +++ b/src/test/miner_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2011-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "main.h" #include "miner.h" diff --git a/src/test/mruset_tests.cpp b/src/test/mruset_tests.cpp index 638c88fabe..60f11c147a 100644 --- a/src/test/mruset_tests.cpp +++ b/src/test/mruset_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "mruset.h" #include "util.h" diff --git a/src/test/multisig_tests.cpp b/src/test/multisig_tests.cpp index 772217b888..3775abd633 100644 --- a/src/test/multisig_tests.cpp +++ b/src/test/multisig_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "key.h" #include "keystore.h" diff --git a/src/test/netbase_tests.cpp b/src/test/netbase_tests.cpp index 412ba04910..7d38700736 100644 --- a/src/test/netbase_tests.cpp +++ b/src/test/netbase_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "netbase.h" #include <string> diff --git a/src/test/pmt_tests.cpp b/src/test/pmt_tests.cpp index dea5e1b824..7d7e6681df 100644 --- a/src/test/pmt_tests.cpp +++ b/src/test/pmt_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "main.h" #include "serialize.h" diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index 29195545da..5bc38ce2de 100644 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "rpcserver.h" #include "rpcclient.h" diff --git a/src/test/rpc_wallet_tests.cpp b/src/test/rpc_wallet_tests.cpp index 628ba95067..af34e496e2 100644 --- a/src/test/rpc_wallet_tests.cpp +++ b/src/test/rpc_wallet_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2013-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "rpcserver.h" #include "rpcclient.h" diff --git a/src/test/script_P2SH_tests.cpp b/src/test/script_P2SH_tests.cpp index e57dc9bbba..03dbdde57b 100644 --- a/src/test/script_P2SH_tests.cpp +++ b/src/test/script_P2SH_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "script.h" #include "key.h" diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index dd1b613047..7bc2bfb6dd 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "script.h" #include "data/script_invalid.json.h" diff --git a/src/test/serialize_tests.cpp b/src/test/serialize_tests.cpp index 415f957811..867a7df888 100644 --- a/src/test/serialize_tests.cpp +++ b/src/test/serialize_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "serialize.h" #include <stdint.h> diff --git a/src/test/sighash_tests.cpp b/src/test/sighash_tests.cpp index f098d46186..04b93fb105 100644 --- a/src/test/sighash_tests.cpp +++ b/src/test/sighash_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include <boost/test/unit_test.hpp> #include "main.h" diff --git a/src/test/sigopcount_tests.cpp b/src/test/sigopcount_tests.cpp index 96f663ccef..722f14a989 100644 --- a/src/test/sigopcount_tests.cpp +++ b/src/test/sigopcount_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2012-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "key.h" #include "script.h" diff --git a/src/test/test_bitcoin.cpp b/src/test/test_bitcoin.cpp index 96d0712403..3b75aad14b 100644 --- a/src/test/test_bitcoin.cpp +++ b/src/test/test_bitcoin.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #define BOOST_TEST_MODULE Bitcoin Test Suite diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index 588c8013c7..2ebb652f00 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -1,4 +1,6 @@ - +// Copyright (c) 2011-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "data/tx_invalid.json.h" #include "data/tx_valid.json.h" diff --git a/src/test/uint256_tests.cpp b/src/test/uint256_tests.cpp index 368484fdff..815babf107 100644 --- a/src/test/uint256_tests.cpp +++ b/src/test/uint256_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include <boost/test/unit_test.hpp> #include <stdint.h> #include <sstream> diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index 706737b115..b8f107f644 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2011-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "util.h" #include "sync.h" diff --git a/src/test/wallet_tests.cpp b/src/test/wallet_tests.cpp index bd0517ae08..1993358826 100644 --- a/src/test/wallet_tests.cpp +++ b/src/test/wallet_tests.cpp @@ -1,3 +1,7 @@ +// Copyright (c) 2012-2014 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "wallet.h" #include <set> |