aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.include1
-rw-r--r--src/bitcoin-cli-res.rc2
-rw-r--r--src/bitcoind-res.rc2
-rw-r--r--src/clientversion.h2
-rw-r--r--src/m4/bitcoin_qt.m46
-rw-r--r--src/main.cpp58
-rw-r--r--src/net.h4
-rw-r--r--src/qt/Makefile.am88
-rw-r--r--src/qt/aboutdialog.cpp2
-rw-r--r--src/qt/bitcoin.cpp14
-rw-r--r--src/qt/bitcoin.qrc36
-rw-r--r--src/qt/bitcoingui.cpp20
-rw-r--r--src/qt/bitcoingui.h2
-rw-r--r--src/qt/bitcoinstrings.cpp7
-rw-r--r--src/qt/forms/optionsdialog.ui2
-rw-r--r--src/qt/forms/overviewpage.ui17
-rw-r--r--src/qt/forms/receivecoinsdialog.ui2
-rw-r--r--src/qt/guiconstants.h3
-rw-r--r--src/qt/locale/bitcoin_en.ts488
-rw-r--r--src/qt/paymentserver.cpp54
-rw-r--r--src/qt/paymentserver.h2
-rw-r--r--src/qt/res/movies/spinner-000.pngbin0 -> 861 bytes
-rw-r--r--src/qt/res/movies/spinner-001.pngbin0 -> 835 bytes
-rw-r--r--src/qt/res/movies/spinner-002.pngbin0 -> 849 bytes
-rw-r--r--src/qt/res/movies/spinner-003.pngbin0 -> 844 bytes
-rw-r--r--src/qt/res/movies/spinner-004.pngbin0 -> 836 bytes
-rw-r--r--src/qt/res/movies/spinner-005.pngbin0 -> 855 bytes
-rw-r--r--src/qt/res/movies/spinner-006.pngbin0 -> 852 bytes
-rw-r--r--src/qt/res/movies/spinner-007.pngbin0 -> 888 bytes
-rw-r--r--src/qt/res/movies/spinner-008.pngbin0 -> 865 bytes
-rw-r--r--src/qt/res/movies/spinner-009.pngbin0 -> 847 bytes
-rw-r--r--src/qt/res/movies/spinner-010.pngbin0 -> 854 bytes
-rw-r--r--src/qt/res/movies/spinner-011.pngbin0 -> 856 bytes
-rw-r--r--src/qt/res/movies/spinner-012.pngbin0 -> 861 bytes
-rw-r--r--src/qt/res/movies/spinner-013.pngbin0 -> 882 bytes
-rw-r--r--src/qt/res/movies/spinner-014.pngbin0 -> 847 bytes
-rw-r--r--src/qt/res/movies/spinner-015.pngbin0 -> 849 bytes
-rw-r--r--src/qt/res/movies/spinner-016.pngbin0 -> 851 bytes
-rw-r--r--src/qt/res/movies/spinner-017.pngbin0 -> 848 bytes
-rw-r--r--src/qt/res/movies/spinner-018.pngbin0 -> 850 bytes
-rw-r--r--src/qt/res/movies/spinner-019.pngbin0 -> 830 bytes
-rw-r--r--src/qt/res/movies/spinner-020.pngbin0 -> 847 bytes
-rw-r--r--src/qt/res/movies/spinner-021.pngbin0 -> 850 bytes
-rw-r--r--src/qt/res/movies/spinner-022.pngbin0 -> 858 bytes
-rw-r--r--src/qt/res/movies/spinner-023.pngbin0 -> 854 bytes
-rw-r--r--src/qt/res/movies/spinner-024.pngbin0 -> 868 bytes
-rw-r--r--src/qt/res/movies/spinner-025.pngbin0 -> 865 bytes
-rw-r--r--src/qt/res/movies/spinner-026.pngbin0 -> 864 bytes
-rw-r--r--src/qt/res/movies/spinner-027.pngbin0 -> 855 bytes
-rw-r--r--src/qt/res/movies/spinner-028.pngbin0 -> 836 bytes
-rw-r--r--src/qt/res/movies/spinner-029.pngbin0 -> 846 bytes
-rw-r--r--src/qt/res/movies/spinner-030.pngbin0 -> 866 bytes
-rw-r--r--src/qt/res/movies/spinner-031.pngbin0 -> 871 bytes
-rw-r--r--src/qt/res/movies/spinner-032.pngbin0 -> 861 bytes
-rw-r--r--src/qt/res/movies/spinner-033.pngbin0 -> 849 bytes
-rw-r--r--src/qt/res/movies/spinner-034.pngbin0 -> 859 bytes
-rw-r--r--src/qt/res/movies/update_spinner.mngbin27817 -> 0 bytes
-rw-r--r--src/qt/test/Makefile.am8
-rw-r--r--src/qt/walletmodel.cpp1
-rw-r--r--src/rpcmisc.cpp3
-rw-r--r--src/rpcrawtransaction.cpp8
-rw-r--r--src/rpcserver.cpp2
-rw-r--r--src/test/Makefile.am3
-rw-r--r--src/walletdb.cpp6
64 files changed, 511 insertions, 332 deletions
diff --git a/src/Makefile.include b/src/Makefile.include
index 070902c519..b9e6c262ca 100644
--- a/src/Makefile.include
+++ b/src/Makefile.include
@@ -12,7 +12,6 @@ LIBBITCOIN_CLI=$(top_builddir)/src/libbitcoin_cli.a
LIBLEVELDB=$(top_builddir)/src/leveldb/libleveldb.a
LIBMEMENV=$(top_builddir)/src/leveldb/libmemenv.a
LIBBITCOINQT=$(top_builddir)/src/qt/libbitcoinqt.a
-MOC_DEFS=$(DEFS) -I$(top_srcdir)/src
$(LIBBITCOIN):
$(MAKE) -C $(top_builddir)/src $(@F)
diff --git a/src/bitcoin-cli-res.rc b/src/bitcoin-cli-res.rc
index 337897753e..f8bfb3a881 100644
--- a/src/bitcoin-cli-res.rc
+++ b/src/bitcoin-cli-res.rc
@@ -5,7 +5,7 @@
#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD)
#define VER_FILEVERSION VER_PRODUCTVERSION
#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR
-#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin developers"
+#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin Core developers"
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
diff --git a/src/bitcoind-res.rc b/src/bitcoind-res.rc
index 202b7ab352..dc5c56b797 100644
--- a/src/bitcoind-res.rc
+++ b/src/bitcoind-res.rc
@@ -5,7 +5,7 @@
#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD)
#define VER_FILEVERSION VER_PRODUCTVERSION
#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR
-#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin developers"
+#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin Core developers"
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
diff --git a/src/clientversion.h b/src/clientversion.h
index b376a67c8a..a06ceb7505 100644
--- a/src/clientversion.h
+++ b/src/clientversion.h
@@ -19,7 +19,7 @@
// Copyright year (2009-this)
// Todo: update this when changing our copyright comments in the source
-#define COPYRIGHT_YEAR 2013
+#define COPYRIGHT_YEAR 2014
#endif //HAVE_CONFIG_H
diff --git a/src/m4/bitcoin_qt.m4 b/src/m4/bitcoin_qt.m4
index 91c399eef0..758aea3499 100644
--- a/src/m4/bitcoin_qt.m4
+++ b/src/m4/bitcoin_qt.m4
@@ -100,13 +100,13 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
BITCOIN_QT_PATH_PROGS([LRELEASE], [lrelease-qt${bitcoin_qt_got_major_vers} lrelease${bitcoin_qt_got_major_vers} lrelease], $qt_bin_path)
BITCOIN_QT_PATH_PROGS([LUPDATE], [lupdate-qt${bitcoin_qt_got_major_vers} lupdate${bitcoin_qt_got_major_vers} lupdate],$qt_bin_path, yes)
+ MOC_DEFS='-DHAVE_CONFIG_H -I$(top_srcdir)/src'
case $host in
*darwin*)
BITCOIN_QT_CHECK([
- MOC_DEFS="-DQ_OS_MAC"
+ MOC_DEFS="${MOC_DEFS} -DQ_OS_MAC"
base_frameworks="-framework Foundation -framework ApplicationServices -framework AppKit"
AX_CHECK_LINK_FLAG([[$base_frameworks]],[QT_LIBS="$QT_LIBS $base_frameworks"],[AC_MSG_ERROR(could not find base frameworks)])
- AC_SUBST(MOC_DEFS)
])
;;
esac
@@ -142,6 +142,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
AC_SUBST(QT_TEST_INCLUDES)
AC_SUBST(QT_TEST_LIBS)
AC_SUBST(QT_SELECT, qt${bitcoin_qt_got_major_vers})
+ AC_SUBST(MOC_DEFS)
])
dnl All macros below are internal and should _not_ be used from the main
@@ -316,6 +317,7 @@ AC_DEFUN([_BITCOIN_QT_FIND_LIBS_WITHOUT_PKGCONFIG],[
])
BITCOIN_QT_CHECK(AC_CHECK_LIB([z] ,[main],,BITCOIN_QT_FAIL(zlib not found)))
+ BITCOIN_QT_CHECK(AC_CHECK_LIB([png] ,[main],,BITCOIN_QT_FAIL(png not found)))
BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Core] ,[main],,BITCOIN_QT_FAIL(lib$QT_LIB_PREFIXCore not found)))
BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Gui] ,[main],,BITCOIN_QT_FAIL(lib$QT_LIB_PREFIXGui not found)))
BITCOIN_QT_CHECK(AC_CHECK_LIB([${QT_LIB_PREFIX}Network],[main],,BITCOIN_QT_FAIL(lib$QT_LIB_PREFIXNetwork not found)))
diff --git a/src/main.cpp b/src/main.cpp
index 017a0768d5..9c6c1ba0c3 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -56,8 +56,13 @@ int64_t CTransaction::nMinRelayTxFee = 10000;
static CMedianFilter<int> cPeerBlockCounts(8, 0); // Amount of blocks that other nodes claim to have
-map<uint256, CBlock*> mapOrphanBlocks;
-multimap<uint256, CBlock*> mapOrphanBlocksByPrev;
+struct COrphanBlock {
+ uint256 hashBlock;
+ uint256 hashPrev;
+ vector<unsigned char> vchBlock;
+};
+map<uint256, COrphanBlock*> mapOrphanBlocks;
+multimap<uint256, COrphanBlock*> mapOrphanBlocksByPrev;
map<uint256, CTransaction> mapOrphanTransactions;
map<uint256, set<uint256> > mapOrphanTransactionsByPrev;
@@ -985,12 +990,19 @@ bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex)
return true;
}
-uint256 static GetOrphanRoot(const CBlockHeader* pblock)
+uint256 static GetOrphanRoot(const uint256& hash)
{
+ map<uint256, COrphanBlock*>::iterator it = mapOrphanBlocks.find(hash);
+ if (it == mapOrphanBlocks.end())
+ return hash;
+
// Work back to the first block in the orphan chain
- while (mapOrphanBlocks.count(pblock->hashPrevBlock))
- pblock = mapOrphanBlocks[pblock->hashPrevBlock];
- return pblock->GetHash();
+ do {
+ map<uint256, COrphanBlock*>::iterator it2 = mapOrphanBlocks.find(it->second->hashPrev);
+ if (it2 == mapOrphanBlocks.end())
+ return it->first;
+ it = it2;
+ } while(true);
}
int64_t GetBlockValue(int nHeight, int64_t nFees)
@@ -2277,12 +2289,19 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl
// Accept orphans as long as there is a node to request its parents from
if (pfrom) {
- CBlock* pblock2 = new CBlock(*pblock);
+ COrphanBlock* pblock2 = new COrphanBlock();
+ {
+ CDataStream ss(SER_DISK, CLIENT_VERSION);
+ ss << *pblock;
+ pblock2->vchBlock = std::vector<unsigned char>(ss.begin(), ss.end());
+ }
+ pblock2->hashBlock = hash;
+ pblock2->hashPrev = pblock->hashPrevBlock;
mapOrphanBlocks.insert(make_pair(hash, pblock2));
- mapOrphanBlocksByPrev.insert(make_pair(pblock2->hashPrevBlock, pblock2));
+ mapOrphanBlocksByPrev.insert(make_pair(pblock2->hashPrev, pblock2));
// Ask this guy to fill in what we're missing
- PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(pblock2));
+ PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(hash));
}
return true;
}
@@ -2297,17 +2316,22 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl
for (unsigned int i = 0; i < vWorkQueue.size(); i++)
{
uint256 hashPrev = vWorkQueue[i];
- for (multimap<uint256, CBlock*>::iterator mi = mapOrphanBlocksByPrev.lower_bound(hashPrev);
+ for (multimap<uint256, COrphanBlock*>::iterator mi = mapOrphanBlocksByPrev.lower_bound(hashPrev);
mi != mapOrphanBlocksByPrev.upper_bound(hashPrev);
++mi)
{
- CBlock* pblockOrphan = (*mi).second;
+ CBlock block;
+ {
+ CDataStream ss(mi->second->vchBlock, SER_DISK, CLIENT_VERSION);
+ ss >> block;
+ }
+ block.BuildMerkleTree();
// Use a dummy CValidationState so someone can't setup nodes to counter-DoS based on orphan resolution (that is, feeding people an invalid block based on LegitBlockX in order to get anyone relaying LegitBlockX banned)
CValidationState stateDummy;
- if (AcceptBlock(*pblockOrphan, stateDummy))
- vWorkQueue.push_back(pblockOrphan->GetHash());
- mapOrphanBlocks.erase(pblockOrphan->GetHash());
- delete pblockOrphan;
+ if (AcceptBlock(block, stateDummy))
+ vWorkQueue.push_back(mi->second->hashBlock);
+ mapOrphanBlocks.erase(mi->second->hashBlock);
+ delete mi->second;
}
mapOrphanBlocksByPrev.erase(hashPrev);
}
@@ -3331,7 +3355,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
if (!fImporting && !fReindex)
pfrom->AskFor(inv);
} else if (inv.type == MSG_BLOCK && mapOrphanBlocks.count(inv.hash)) {
- PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(mapOrphanBlocks[inv.hash]));
+ PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(inv.hash));
} else if (nInv == nLastBlock) {
// In case we are on a very long side-chain, it is possible that we already have
// the last block in an inv bundle sent in response to getblocks. Try to detect
@@ -4119,7 +4143,7 @@ public:
mapBlockIndex.clear();
// orphan blocks
- std::map<uint256, CBlock*>::iterator it2 = mapOrphanBlocks.begin();
+ std::map<uint256, COrphanBlock*>::iterator it2 = mapOrphanBlocks.begin();
for (; it2 != mapOrphanBlocks.end(); it2++)
delete (*it2).second;
mapOrphanBlocks.clear();
diff --git a/src/net.h b/src/net.h
index 5835001739..a181e275ca 100644
--- a/src/net.h
+++ b/src/net.h
@@ -209,7 +209,7 @@ public:
std::string addrName;
CService addrLocal;
int nVersion;
- // strSubVer is whatever byte array we read from the wire. However, this field is intended
+ // strSubVer is whatever byte array we read from the wire. However, this field is intended
// to be printed out, displayed to humans in various forms and so on. So we sanitize it and
// store the sanitized version in cleanSubVer. The original should be used when dealing with
// the network or wire types and the cleaned string used when displayed or logged.
@@ -264,7 +264,7 @@ public:
int64_t nPingUsecStart;
int64_t nPingUsecTime;
bool fPingQueued;
-
+
CNode(SOCKET hSocketIn, CAddress addrIn, std::string addrNameIn = "", bool fInboundIn=false) : ssSend(SER_NETWORK, INIT_PROTO_VERSION)
{
nServices = 0;
diff --git a/src/qt/Makefile.am b/src/qt/Makefile.am
index ac11625c86..274cebcf3a 100644
--- a/src/qt/Makefile.am
+++ b/src/qt/Makefile.am
@@ -84,8 +84,8 @@ QT_FORMS_UI = \
forms/openuridialog.ui \
forms/optionsdialog.ui \
forms/overviewpage.ui \
- forms/receiverequestdialog.ui \
forms/receivecoinsdialog.ui \
+ forms/receiverequestdialog.ui \
forms/rpcconsole.ui \
forms/sendcoinsdialog.ui \
forms/sendcoinsentry.ui \
@@ -117,10 +117,10 @@ QT_MOC_CPP = \
moc_optionsmodel.cpp \
moc_overviewpage.cpp \
moc_paymentserver.cpp \
- moc_receiverequestdialog.cpp \
moc_qvalidatedlineedit.cpp \
moc_qvaluecombobox.cpp \
moc_receivecoinsdialog.cpp \
+ moc_receiverequestdialog.cpp \
moc_recentrequeststablemodel.cpp \
moc_rpcconsole.cpp \
moc_sendcoinsdialog.cpp \
@@ -137,9 +137,15 @@ QT_MOC_CPP = \
moc_walletmodel.cpp \
moc_walletview.cpp
-BITCOIN_MM = macdockiconhandler.mm macnotificationhandler.mm
+BITCOIN_MM = \
+ macdockiconhandler.mm \
+ macnotificationhandler.mm
-QT_MOC = intro.moc overviewpage.moc rpcconsole.moc bitcoin.moc
+QT_MOC = \
+ bitcoin.moc \
+ intro.moc \
+ overviewpage.moc \
+ rpcconsole.moc
QT_QRC_CPP = qrc_bitcoin.cpp
QT_QRC = bitcoin.qrc
@@ -175,19 +181,19 @@ BITCOIN_QT_H = \
overviewpage.h \
paymentrequestplus.h \
paymentserver.h \
- receivecoinsdialog.h \
- recentrequeststablemodel.h \
- receiverequestdialog.h \
qvalidatedlineedit.h \
qvaluecombobox.h \
+ receivecoinsdialog.h \
+ receiverequestdialog.h \
+ recentrequeststablemodel.h \
rpcconsole.h \
sendcoinsdialog.h \
sendcoinsentry.h \
signverifymessagedialog.h \
splashscreen.h \
trafficgraphwidget.h \
- transactiondescdialog.h \
transactiondesc.h \
+ transactiondescdialog.h \
transactionfilterproxy.h \
transactionrecord.h \
transactiontablemodel.h \
@@ -198,54 +204,54 @@ BITCOIN_QT_H = \
walletview.h
RES_ICONS = \
- res/icons/bitcoin.png \
+ res/icons/add.png \
res/icons/address-book.png \
- res/icons/quit.png \
- res/icons/send.png \
- res/icons/toolbar.png \
- res/icons/connect0_16.png \
- res/icons/connect1_16.png \
- res/icons/connect2_16.png \
- res/icons/connect3_16.png \
- res/icons/connect4_16.png \
- res/icons/transaction0.png \
- res/icons/transaction2.png \
+ res/icons/bitcoin.ico \
+ res/icons/bitcoin.png \
+ res/icons/bitcoin_testnet.ico \
+ res/icons/bitcoin_testnet.png \
res/icons/clock1.png \
res/icons/clock2.png \
res/icons/clock3.png \
res/icons/clock4.png \
res/icons/clock5.png \
res/icons/configure.png \
- res/icons/receive.png \
- res/icons/editpaste.png \
- res/icons/editcopy.png \
- res/icons/add.png \
- res/icons/bitcoin_testnet.png \
- res/icons/toolbar_testnet.png \
+ res/icons/connect0_16.png \
+ res/icons/connect1_16.png \
+ res/icons/connect2_16.png \
+ res/icons/connect3_16.png \
+ res/icons/connect4_16.png \
+ res/icons/debugwindow.png \
res/icons/edit.png \
+ res/icons/editcopy.png \
+ res/icons/editpaste.png \
+ res/icons/export.png \
+ res/icons/filesave.png \
res/icons/history.png \
+ res/icons/key.png \
+ res/icons/lock_closed.png \
+ res/icons/lock_open.png \
res/icons/overview.png \
- res/icons/export.png \
- res/icons/synced.png \
+ res/icons/qrcode.png \
+ res/icons/quit.png \
+ res/icons/receive.png \
res/icons/remove.png \
- res/icons/tx_mined.png \
+ res/icons/send.png \
+ res/icons/synced.png \
+ res/icons/toolbar.png \
+ res/icons/toolbar_testnet.png \
+ res/icons/transaction0.png \
+ res/icons/transaction2.png \
+ res/icons/tx_inout.png \
res/icons/tx_input.png \
res/icons/tx_output.png \
- res/icons/tx_inout.png \
- res/icons/lock_closed.png \
- res/icons/lock_open.png \
- res/icons/key.png \
- res/icons/filesave.png \
- res/icons/qrcode.png \
- res/icons/debugwindow.png \
- res/icons/bitcoin.ico \
- res/icons/bitcoin_testnet.ico
+ res/icons/tx_mined.png
BITCOIN_QT_CPP = \
aboutdialog.cpp \
+ bitcoin.cpp \
bitcoinaddressvalidator.cpp \
bitcoinamountfield.cpp \
- bitcoin.cpp \
bitcoingui.cpp \
bitcoinunits.cpp \
clientmodel.cpp \
@@ -292,10 +298,12 @@ BITCOIN_QT_CPP += \
walletview.cpp
endif
-RES_IMAGES = res/images/about.png res/images/splash.png \
+RES_IMAGES = \
+ res/images/about.png \
+ res/images/splash.png \
res/images/splash_testnet.png
-RES_MOVIES = res/movies/update_spinner.mng
+RES_MOVIES = $(wildcard res/movies/spinner-*.png)
BITCOIN_RC = res/bitcoin-qt-res.rc
diff --git a/src/qt/aboutdialog.cpp b/src/qt/aboutdialog.cpp
index 797ebf97ed..6581a19c18 100644
--- a/src/qt/aboutdialog.cpp
+++ b/src/qt/aboutdialog.cpp
@@ -16,7 +16,7 @@ AboutDialog::AboutDialog(QWidget *parent) :
ui->setupUi(this);
// Set current copyright year
- ui->copyrightLabel->setText(tr("Copyright") + QString(" &copy; 2009-%1 ").arg(COPYRIGHT_YEAR) + tr("The Bitcoin developers"));
+ ui->copyrightLabel->setText(tr("Copyright") + QString(" &copy; 2009-%1 ").arg(COPYRIGHT_YEAR) + tr("The Bitcoin Core developers"));
}
void AboutDialog::setModel(ClientModel *model)
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index d04a49ebe7..3cf7e53c02 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -2,7 +2,10 @@
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#if defined(HAVE_CONFIG_H)
#include "bitcoin-config.h"
+#endif
+
#include "bitcoingui.h"
#include "clientmodel.h"
@@ -356,7 +359,7 @@ void BitcoinApplication::requestShutdown()
QWidget *shutdownWindow = new QWidget();
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(new QLabel(
- tr("Bitcoin Core is shutting down...\n") +
+ tr("Bitcoin Core is shutting down...") + "<br /><br />" +
tr("Do not shut down the computer until this window disappears.")));
shutdownWindow->setLayout(layout);
@@ -553,15 +556,6 @@ int main(int argc, char *argv[])
// Subscribe to global signals from core
uiInterface.InitMessage.connect(InitMessage);
- // Show help message immediately after parsing command-line options (for "-lang") and setting locale,
- // but before showing splash screen.
- if (mapArgs.count("-?") || mapArgs.count("--help"))
- {
- GUIUtil::HelpMessageBox help;
- help.showOrPrint();
- return 1;
- }
-
if (GetBoolArg("-splash", true) && !GetBoolArg("-min", false))
app.createSplashScreen(isaTestNet);
diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc
index 3c3220c2b3..746b5a4092 100644
--- a/src/qt/bitcoin.qrc
+++ b/src/qt/bitcoin.qrc
@@ -47,7 +47,41 @@
<file alias="splash_testnet">res/images/splash_testnet.png</file>
</qresource>
<qresource prefix="/movies">
- <file alias="update_spinner">res/movies/update_spinner.mng</file>
+ <file alias="spinner-000">res/movies/spinner-000.png</file>
+ <file alias="spinner-001">res/movies/spinner-001.png</file>
+ <file alias="spinner-002">res/movies/spinner-002.png</file>
+ <file alias="spinner-003">res/movies/spinner-003.png</file>
+ <file alias="spinner-004">res/movies/spinner-004.png</file>
+ <file alias="spinner-005">res/movies/spinner-005.png</file>
+ <file alias="spinner-006">res/movies/spinner-006.png</file>
+ <file alias="spinner-007">res/movies/spinner-007.png</file>
+ <file alias="spinner-008">res/movies/spinner-008.png</file>
+ <file alias="spinner-009">res/movies/spinner-009.png</file>
+ <file alias="spinner-010">res/movies/spinner-010.png</file>
+ <file alias="spinner-011">res/movies/spinner-011.png</file>
+ <file alias="spinner-012">res/movies/spinner-012.png</file>
+ <file alias="spinner-013">res/movies/spinner-013.png</file>
+ <file alias="spinner-014">res/movies/spinner-014.png</file>
+ <file alias="spinner-015">res/movies/spinner-015.png</file>
+ <file alias="spinner-016">res/movies/spinner-016.png</file>
+ <file alias="spinner-017">res/movies/spinner-017.png</file>
+ <file alias="spinner-018">res/movies/spinner-018.png</file>
+ <file alias="spinner-019">res/movies/spinner-019.png</file>
+ <file alias="spinner-020">res/movies/spinner-020.png</file>
+ <file alias="spinner-021">res/movies/spinner-021.png</file>
+ <file alias="spinner-022">res/movies/spinner-022.png</file>
+ <file alias="spinner-023">res/movies/spinner-023.png</file>
+ <file alias="spinner-024">res/movies/spinner-024.png</file>
+ <file alias="spinner-025">res/movies/spinner-025.png</file>
+ <file alias="spinner-026">res/movies/spinner-026.png</file>
+ <file alias="spinner-027">res/movies/spinner-027.png</file>
+ <file alias="spinner-028">res/movies/spinner-028.png</file>
+ <file alias="spinner-029">res/movies/spinner-029.png</file>
+ <file alias="spinner-030">res/movies/spinner-030.png</file>
+ <file alias="spinner-031">res/movies/spinner-031.png</file>
+ <file alias="spinner-032">res/movies/spinner-032.png</file>
+ <file alias="spinner-033">res/movies/spinner-033.png</file>
+ <file alias="spinner-034">res/movies/spinner-034.png</file>
</qresource>
<qresource prefix="/translations">
<file alias="ach">locale/bitcoin_ach.qm</file>
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 22c41a6201..692fb6dc1d 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -39,7 +39,6 @@
#include <QMenuBar>
#include <QMessageBox>
#include <QMimeData>
-#include <QMovie>
#include <QProgressBar>
#include <QSettings>
#include <QStackedWidget>
@@ -68,7 +67,8 @@ BitcoinGUI::BitcoinGUI(bool fIsTestnet, QWidget *parent) :
trayIcon(0),
notificator(0),
rpcConsole(0),
- prevBlocks(0)
+ prevBlocks(0),
+ spinnerFrame(0)
{
GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this);
@@ -187,8 +187,6 @@ BitcoinGUI::BitcoinGUI(bool fIsTestnet, QWidget *parent) :
statusBar()->addWidget(progressBar);
statusBar()->addPermanentWidget(frameBlocks);
- syncIconMovie = new QMovie(":/movies/update_spinner", "mng", this);
-
connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show()));
// prevents an oben debug window from becoming stuck/unusable on client shutdown
@@ -302,12 +300,12 @@ void BitcoinGUI::createActions(bool fIsTestnet)
openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this);
openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console"));
- usedSendingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Used sending addresses..."), this);
+ usedSendingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Sending addresses..."), this);
usedSendingAddressesAction->setStatusTip(tr("Show the list of used sending addresses and labels"));
- usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("Used &receiving addresses..."), this);
+ usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Receiving addresses..."), this);
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
- openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open URI..."), this);
+ openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open &URI..."), this);
openAction->setStatusTip(tr("Open a bitcoin: URI or payment request"));
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
@@ -684,9 +682,13 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
progressBar->setVisible(true);
tooltip = tr("Catching up...") + QString("<br>") + tooltip;
- labelBlocksIcon->setMovie(syncIconMovie);
if(count != prevBlocks)
- syncIconMovie->jumpToNextFrame();
+ {
+ labelBlocksIcon->setPixmap(QIcon(QString(
+ ":/movies/spinner-%1").arg(spinnerFrame, 3, 10, QChar('0')))
+ .pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE));
+ spinnerFrame = (spinnerFrame + 1) % SPINNER_FRAMES;
+ }
prevBlocks = count;
#ifdef ENABLE_WALLET
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index 1038e2739c..d5bbdca484 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -98,9 +98,9 @@ private:
Notificator *notificator;
RPCConsole *rpcConsole;
- QMovie *syncIconMovie;
/** Keep track of previous number of blocks, to detect progress */
int prevBlocks;
+ int spinnerFrame;
/** Create the main UI actions. */
void createActions(bool fIsTestnet);
diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp
index 183a98061d..b88c7ec290 100644
--- a/src/qt/bitcoinstrings.cpp
+++ b/src/qt/bitcoinstrings.cpp
@@ -40,6 +40,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", ""
"be solved instantly. This is intended for regression testing tools and app "
"development."),
QT_TRANSLATE_NOOP("bitcoin-core", ""
+"Enter regression test mode, which uses a special chain in which blocks can "
+"be solved instantly."),
+QT_TRANSLATE_NOOP("bitcoin-core", ""
"Error: The transaction was rejected! This might happen if some of the coins "
"in your wallet were already spent, such as if you used a copy of wallet.dat "
"and coins were spent in the copy but not marked as spent here."),
@@ -119,6 +122,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Connect to JSON-RPC on <port> (default: 8332
QT_TRANSLATE_NOOP("bitcoin-core", "Connect to a node to retrieve peer addresses, and disconnect"),
QT_TRANSLATE_NOOP("bitcoin-core", "Corrupted block database detected"),
QT_TRANSLATE_NOOP("bitcoin-core", "Discover own IP address (default: 1 when listening and no -externalip)"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Do not load the wallet and disable wallet RPC calls"),
QT_TRANSLATE_NOOP("bitcoin-core", "Do you want to rebuild the block database now?"),
QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"),
QT_TRANSLATE_NOOP("bitcoin-core", "Error initializing block database"),
@@ -185,7 +189,6 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Select SOCKS version for -proxy (4 or 5, defa
QT_TRANSLATE_NOOP("bitcoin-core", "Send command to Bitcoin server"),
QT_TRANSLATE_NOOP("bitcoin-core", "Send commands to node running on <ip> (default: 127.0.0.1)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Send trace/debug info to console instead of debug.log file"),
-QT_TRANSLATE_NOOP("bitcoin-core", "Send trace/debug info to debugger"),
QT_TRANSLATE_NOOP("bitcoin-core", "Server certificate file (default: server.cert)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Server private key (default: server.pem)"),
QT_TRANSLATE_NOOP("bitcoin-core", "Set database cache size in megabytes (default: 25)"),
@@ -204,6 +207,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Specify your own public address"),
QT_TRANSLATE_NOOP("bitcoin-core", "Start Bitcoin server"),
QT_TRANSLATE_NOOP("bitcoin-core", "System error: "),
QT_TRANSLATE_NOOP("bitcoin-core", "This help message"),
+QT_TRANSLATE_NOOP("bitcoin-core", "This is intended for regression testing tools and app development."),
QT_TRANSLATE_NOOP("bitcoin-core", "Threshold for disconnecting misbehaving peers (default: 100)"),
QT_TRANSLATE_NOOP("bitcoin-core", "To use the %s option"),
QT_TRANSLATE_NOOP("bitcoin-core", "Transaction amount too small"),
@@ -225,6 +229,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Verifying wallet..."),
QT_TRANSLATE_NOOP("bitcoin-core", "Wait for RPC server to start"),
QT_TRANSLATE_NOOP("bitcoin-core", "Wallet %s resides outside data directory %s"),
QT_TRANSLATE_NOOP("bitcoin-core", "Wallet needed to be rewritten: restart Bitcoin to complete"),
+QT_TRANSLATE_NOOP("bitcoin-core", "Wallet options:"),
QT_TRANSLATE_NOOP("bitcoin-core", "Warning"),
QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Deprecated argument -debugnet ignored, use -debug=net"),
QT_TRANSLATE_NOOP("bitcoin-core", "Warning: This version is obsolete, upgrade required!"),
diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui
index 9056ab7696..e0d99aac39 100644
--- a/src/qt/forms/optionsdialog.ui
+++ b/src/qt/forms/optionsdialog.ui
@@ -473,7 +473,7 @@
<item>
<widget class="QLabel" name="overriddenByCommandLineInfoLabel">
<property name="text">
- <string>Active command-line options that override above options: </string>
+ <string>Active command-line options that override above options:</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui
index 9d0d838daa..d1ca969431 100644
--- a/src/qt/forms/overviewpage.ui
+++ b/src/qt/forms/overviewpage.ui
@@ -90,6 +90,8 @@
</layout>
</item>
<item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
@@ -234,6 +236,21 @@
</item>
</layout>
</item>
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
</layout>
</widget>
</item>
diff --git a/src/qt/forms/receivecoinsdialog.ui b/src/qt/forms/receivecoinsdialog.ui
index e7138f5371..8242763e77 100644
--- a/src/qt/forms/receivecoinsdialog.ui
+++ b/src/qt/forms/receivecoinsdialog.ui
@@ -202,7 +202,7 @@
</font>
</property>
<property name="text">
- <string>Previously requested payments</string>
+ <string>Requested payments</string>
</property>
</widget>
</item>
diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h
index 6c9fa6a755..d1a601706b 100644
--- a/src/qt/guiconstants.h
+++ b/src/qt/guiconstants.h
@@ -38,4 +38,7 @@ static const int MAX_PAYMENT_REQUEST_SIZE = 50000; // bytes
/* QRCodeDialog -- size of exported QR Code image */
#define EXPORT_IMAGE_SIZE 256
+/* Number of frames in spinner animation */
+#define SPINNER_FRAMES 35
+
#endif // GUICONSTANTS_H
diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts
index 368a4d6003..f52544687b 100644
--- a/src/qt/locale/bitcoin_en.ts
+++ b/src/qt/locale/bitcoin_en.ts
@@ -322,24 +322,43 @@ This product includes software developed by the OpenSSL Project for use in the O
</message>
</context>
<context>
+ <name>BitcoinApplication</name>
+ <message>
+ <location filename="../bitcoin.cpp" line="+362"/>
+ <source>Bitcoin Core is shutting down...
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Do not shut down the computer until this window disappears.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>BitcoinGUI</name>
<message>
- <location filename="../bitcoingui.cpp" line="+260"/>
+ <location filename="../bitcoingui.cpp" line="+297"/>
<source>Sign &amp;message...</source>
<translation>Sign &amp;message...</translation>
</message>
<message>
- <location line="+290"/>
+ <location line="+323"/>
<source>Synchronizing with network...</source>
<translation>Synchronizing with network...</translation>
</message>
<message>
- <location line="-360"/>
+ <location line="-395"/>
<source>&amp;Overview</source>
<translation>&amp;Overview</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="-139"/>
+ <source>Node</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+140"/>
<source>Show general overview of wallet</source>
<translation>Show general overview of wallet</translation>
</message>
@@ -354,7 +373,7 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>Browse transaction history</translation>
</message>
<message>
- <location line="+15"/>
+ <location line="+17"/>
<source>E&amp;xit</source>
<translation>E&amp;xit</translation>
</message>
@@ -400,7 +419,22 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>&amp;Change Passphrase...</translation>
</message>
<message>
- <location line="+295"/>
+ <location line="+10"/>
+ <source>&amp;Sending addresses...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>&amp;Receiving addresses...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Open &amp;URI...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+313"/>
<source>Importing blocks from disk...</source>
<translation>Importing blocks from disk...</translation>
</message>
@@ -410,12 +444,12 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>Reindexing blocks on disk...</translation>
</message>
<message>
- <location line="-358"/>
+ <location line="-393"/>
<source>Send coins to a Bitcoin address</source>
<translation>Send coins to a Bitcoin address</translation>
</message>
<message>
- <location line="+47"/>
+ <location line="+49"/>
<source>Modify configuration options for Bitcoin</source>
<translation>Modify configuration options for Bitcoin</translation>
</message>
@@ -445,18 +479,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>&amp;Verify message...</translation>
</message>
<message>
- <location line="+375"/>
+ <location line="+414"/>
<source>Bitcoin</source>
<translation>Bitcoin</translation>
</message>
<message>
- <location line="-563"/>
- <location line="+10"/>
+ <location line="-629"/>
<source>Wallet</source>
<translation>Wallet</translation>
</message>
<message>
- <location line="+113"/>
+ <location line="+148"/>
<source>&amp;Send</source>
<translation>&amp;Send</translation>
</message>
@@ -466,7 +499,7 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>&amp;Receive</translation>
</message>
<message>
- <location line="+44"/>
+ <location line="+46"/>
<location line="+2"/>
<source>&amp;Show / Hide</source>
<translation>&amp;Show / Hide</translation>
@@ -492,86 +525,70 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>Verify messages to ensure they were signed with specified Bitcoin addresses</translation>
</message>
<message>
- <location line="+39"/>
+ <location line="+44"/>
<source>&amp;File</source>
<translation>&amp;File</translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+14"/>
<source>&amp;Settings</source>
<translation>&amp;Settings</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+9"/>
<source>&amp;Help</source>
<translation>&amp;Help</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+14"/>
<source>Tabs toolbar</source>
<translation>Tabs toolbar</translation>
</message>
<message>
- <location line="-244"/>
- <location line="+321"/>
+ <location line="-281"/>
+ <location line="+373"/>
<source>[testnet]</source>
<translation>[testnet]</translation>
</message>
<message>
- <location line="-331"/>
- <location line="+10"/>
+ <location line="-398"/>
<source>Bitcoin Core</source>
<translation type="unfinished">Bitcoin Core</translation>
</message>
<message>
- <location line="+121"/>
+ <location line="+165"/>
<source>Request payments (generates QR codes and bitcoin: URIs)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+27"/>
+ <location line="+29"/>
<location line="+2"/>
<source>&amp;About Bitcoin Core</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+34"/>
- <source>&amp;Used sending addresses...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
+ <location line="+35"/>
<source>Show the list of used sending addresses and labels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
- <source>Used &amp;receiving addresses...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+1"/>
- <source>Show the list of used receiving addresses and labels</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location line="+2"/>
- <source>Open URI...</source>
+ <source>Show the list of used receiving addresses and labels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+3"/>
<source>Open a bitcoin: URI or payment request</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+126"/>
+ <location line="+157"/>
<location line="+5"/>
<source>Bitcoin client</source>
<translation>Bitcoin client</translation>
</message>
<message numerus="yes">
- <location line="+133"/>
+ <location line="+135"/>
<source>%n active connection(s) to Bitcoin network</source>
<translation>
<numerusform>%n active connection to Bitcoin network</numerusform>
@@ -594,7 +611,7 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>Processed %1 blocks of transaction history.</translation>
</message>
<message numerus="yes">
- <location line="+20"/>
+ <location line="+23"/>
<source>%n hour(s)</source>
<translation>
<numerusform>%n hour</numerusform>
@@ -623,7 +640,7 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>%1 behind</translation>
</message>
<message>
- <location line="+14"/>
+ <location line="+17"/>
<source>Last received block was generated %1 ago.</source>
<translation>Last received block was generated %1 ago.</translation>
</message>
@@ -648,27 +665,17 @@ This product includes software developed by the OpenSSL Project for use in the O
<translation>Information</translation>
</message>
<message>
- <location line="+77"/>
- <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source>
- <translation>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</translation>
- </message>
- <message>
- <location line="-152"/>
+ <location line="-81"/>
<source>Up to date</source>
<translation>Up to date</translation>
</message>
<message>
- <location line="+31"/>
+ <location line="+34"/>
<source>Catching up...</source>
<translation>Catching up...</translation>
</message>
<message>
- <location line="+124"/>
- <source>Confirm transaction fee</source>
- <translation>Confirm transaction fee</translation>
- </message>
- <message>
- <location line="+8"/>
+ <location line="+126"/>
<source>Sent transaction</source>
<translation>Sent transaction</translation>
</message>
@@ -691,7 +698,7 @@ Address: %4
</translation>
</message>
<message>
- <location line="+67"/>
+ <location line="+69"/>
<source>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</source>
<translation>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;unlocked&lt;/b&gt;</translation>
</message>
@@ -701,7 +708,7 @@ Address: %4
<translation>Wallet is &lt;b&gt;encrypted&lt;/b&gt; and currently &lt;b&gt;locked&lt;/b&gt;</translation>
</message>
<message>
- <location filename="../bitcoin.cpp" line="+116"/>
+ <location filename="../bitcoin.cpp" line="+78"/>
<source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source>
<translation>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</translation>
</message>
@@ -923,7 +930,12 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+171"/>
+ <location line="+31"/>
+ <source>none</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+140"/>
<source>Dust</source>
<translation type="unfinished"></translation>
</message>
@@ -960,7 +972,7 @@ Address: %4
</message>
<message>
<location line="+1"/>
- <source>This label turns red, if the priority is smaller than &quot;medium&quot;</source>
+ <source>This label turns red, if the priority is smaller than &quot;medium&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -1029,7 +1041,7 @@ Address: %4
<translation>&amp;Address</translation>
</message>
<message>
- <location filename="../editaddressdialog.cpp" line="+25"/>
+ <location filename="../editaddressdialog.cpp" line="+28"/>
<source>New receiving address</source>
<translation>New receiving address</translation>
</message>
@@ -1240,7 +1252,7 @@ Address: %4
<translation>Options</translation>
</message>
<message>
- <location line="+16"/>
+ <location line="+13"/>
<source>&amp;Main</source>
<translation>&amp;Main</translation>
</message>
@@ -1265,7 +1277,47 @@ Address: %4
<translation>&amp;Start Bitcoin on system login</translation>
</message>
<message>
- <location line="+35"/>
+ <location line="+9"/>
+ <source>Size of &amp;database cache</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Set database cache size in megabytes (default: 25)</source>
+ <translation type="unfinished">Set database cache size in megabytes (default: 25)</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>MB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Number of script &amp;verification threads</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Set the number of script verification threads (up to 16, 0 = auto, &lt;0 = leave that many cores free, default: 0)</source>
+ <translation type="unfinished">Set the number of script verification threads (up to 16, 0 = auto, &lt;0 = leave that many cores free, default: 0)</translation>
+ </message>
+ <message>
+ <location line="+58"/>
+ <source>Connect to the Bitcoin network through a SOCKS proxy.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&amp;Connect through SOCKS proxy (default proxy):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+267"/>
<source>Reset all client options to default.</source>
<translation>Reset all client options to default.</translation>
</message>
@@ -1275,7 +1327,7 @@ Address: %4
<translation>&amp;Reset Options</translation>
</message>
<message>
- <location line="+13"/>
+ <location line="-323"/>
<source>&amp;Network</source>
<translation>&amp;Network</translation>
</message>
@@ -1290,32 +1342,17 @@ Address: %4
<translation>Map port using &amp;UPnP</translation>
</message>
<message>
- <location line="+7"/>
- <source>Connect to the Bitcoin network through a SOCKS proxy (e.g. when connecting through Tor).</source>
- <translation>Connect to the Bitcoin network through a SOCKS proxy (e.g. when connecting through Tor).</translation>
- </message>
- <message>
- <location line="+3"/>
- <source>&amp;Connect through SOCKS proxy:</source>
- <translation>&amp;Connect through SOCKS proxy:</translation>
- </message>
- <message>
- <location line="+9"/>
+ <location line="+19"/>
<source>Proxy &amp;IP:</source>
<translation>Proxy &amp;IP:</translation>
</message>
<message>
- <location line="+19"/>
- <source>IP address of the proxy (e.g. 127.0.0.1)</source>
- <translation>IP address of the proxy (e.g. 127.0.0.1)</translation>
- </message>
- <message>
- <location line="+7"/>
+ <location line="+32"/>
<source>&amp;Port:</source>
<translation>&amp;Port:</translation>
</message>
<message>
- <location line="+19"/>
+ <location line="+25"/>
<source>Port of the proxy (e.g. 9050)</source>
<translation>Port of the proxy (e.g. 9050)</translation>
</message>
@@ -1400,7 +1437,12 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+71"/>
+ <location line="+29"/>
+ <source>Active command-line options that override above options: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+107"/>
<source>&amp;OK</source>
<translation>&amp;OK</translation>
</message>
@@ -1410,44 +1452,38 @@ Address: %4
<translation>&amp;Cancel</translation>
</message>
<message>
- <location line="+10"/>
- <source>&amp;Apply</source>
- <translation>&amp;Apply</translation>
- </message>
- <message>
- <location filename="../optionsdialog.cpp" line="+63"/>
+ <location filename="../optionsdialog.cpp" line="+68"/>
<source>default</source>
<translation>default</translation>
</message>
<message>
- <location line="+131"/>
+ <location line="+57"/>
+ <source>none</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+75"/>
<source>Confirm options reset</source>
<translation>Confirm options reset</translation>
</message>
<message>
<location line="+1"/>
- <source>Some settings may require a client restart to take effect.</source>
- <translation>Some settings may require a client restart to take effect.</translation>
- </message>
- <message>
- <location line="+0"/>
- <source>Do you want to proceed?</source>
- <translation>Do you want to proceed?</translation>
+ <location line="+29"/>
+ <source>Client restart required to activate changes.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location line="+42"/>
- <location line="+9"/>
- <source>Warning</source>
- <translation>Warning</translation>
+ <location line="-29"/>
+ <source>Client will be shutdown, do you want to proceed?</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location line="-9"/>
- <location line="+9"/>
- <source>This setting will take effect after restarting Bitcoin.</source>
- <translation>This setting will take effect after restarting Bitcoin.</translation>
+ <location line="+33"/>
+ <source>This change would require a client restart.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location line="+29"/>
+ <location line="+34"/>
<source>The supplied proxy address is invalid.</source>
<translation>The supplied proxy address is invalid.</translation>
</message>
@@ -1461,22 +1497,22 @@ Address: %4
</message>
<message>
<location line="+50"/>
- <location line="+214"/>
+ <location line="+231"/>
<source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source>
<translation>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</translation>
</message>
<message>
- <location line="-140"/>
+ <location line="-155"/>
<source>Unconfirmed:</source>
<translation>Unconfirmed:</translation>
</message>
<message>
- <location line="-81"/>
+ <location line="-83"/>
<source>Wallet</source>
<translation>Wallet</translation>
</message>
<message>
- <location line="+49"/>
+ <location line="+51"/>
<source>Confirmed:</source>
<translation>Confirmed:</translation>
</message>
@@ -1511,7 +1547,7 @@ Address: %4
<translation>Your current total balance</translation>
</message>
<message>
- <location line="+56"/>
+ <location line="+71"/>
<source>&lt;b&gt;Recent transactions&lt;/b&gt;</source>
<translation>&lt;b&gt;Recent transactions&lt;/b&gt;</translation>
</message>
@@ -1525,7 +1561,8 @@ Address: %4
<context>
<name>PaymentServer</name>
<message>
- <location filename="../paymentserver.cpp" line="+397"/>
+ <location filename="../paymentserver.cpp" line="+400"/>
+ <location line="+13"/>
<source>URI handling</source>
<translation type="unfinished">URI handling</translation>
</message>
@@ -1535,24 +1572,42 @@ Address: %4
<translation type="unfinished">URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</translation>
</message>
<message>
- <location line="+91"/>
+ <location line="+96"/>
<source>Requested payment amount of %1 is too small (considered dust).</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-204"/>
- <location line="+195"/>
+ <location line="-216"/>
+ <location line="+207"/>
<location line="+13"/>
+ <location line="+95"/>
+ <location line="+18"/>
+ <location line="+16"/>
<source>Payment request error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-207"/>
+ <location line="-348"/>
<source>Cannot start bitcoin: click-to-pay handler</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+195"/>
+ <location line="+106"/>
+ <source>Payment request fetch URL is invalid: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Payment request file handling</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Payment request file can not be read or processed! This can be caused by an invalid payment request file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+73"/>
<source>Unverified payment requests to custom payment scripts are unsupported.</source>
<translation type="unfinished"></translation>
</message>
@@ -1562,24 +1617,27 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+42"/>
+ <location line="+43"/>
<source>Error communicating with %1: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+24"/>
+ <source>Payment request can not be parsed or processed!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+11"/>
<source>Bad response from server %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+32"/>
+ <location line="+33"/>
<source>Payment acknowledged</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-55"/>
- <location line="+27"/>
- <location line="+17"/>
+ <location line="-11"/>
<source>Network request error</source>
<translation type="unfinished"></translation>
</message>
@@ -1587,18 +1645,18 @@ Address: %4
<context>
<name>QObject</name>
<message>
- <location filename="../bitcoin.cpp" line="+119"/>
- <location line="+5"/>
+ <location filename="../bitcoin.cpp" line="+71"/>
+ <location line="+11"/>
<source>Bitcoin</source>
<translation>Bitcoin</translation>
</message>
<message>
- <location line="-4"/>
+ <location line="+1"/>
<source>Error: Specified data directory &quot;%1&quot; does not exist.</source>
<translation>Error: Specified data directory &quot;%1&quot; does not exist.</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="-12"/>
<source>Error: Invalid combination of -regtest and -testnet.</source>
<translation type="unfinished"></translation>
</message>
@@ -1640,7 +1698,8 @@ Address: %4
<location line="+23"/>
<location line="+23"/>
<location line="+36"/>
- <location line="+53"/>
+ <location line="+23"/>
+ <location line="+36"/>
<location line="+23"/>
<location line="+23"/>
<location filename="../rpcconsole.cpp" line="+360"/>
@@ -1648,7 +1707,7 @@ Address: %4
<translation>N/A</translation>
</message>
<message>
- <location line="-217"/>
+ <location line="-223"/>
<source>Client version</source>
<translation>Client version</translation>
</message>
@@ -1663,7 +1722,12 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+78"/>
+ <location line="+25"/>
+ <source>General</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+53"/>
<source>Using OpenSSL version</source>
<translation>Using OpenSSL version</translation>
</message>
@@ -1679,16 +1743,16 @@ Address: %4
</message>
<message>
<location line="+7"/>
- <source>Number of connections</source>
- <translation>Number of connections</translation>
+ <source>Name</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
- <source>On testnet</source>
- <translation>On testnet</translation>
+ <source>Number of connections</source>
+ <translation>Number of connections</translation>
</message>
<message>
- <location line="+23"/>
+ <location line="+29"/>
<source>Block chain</source>
<translation>Block chain</translation>
</message>
@@ -1753,17 +1817,12 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-541"/>
+ <location line="-547"/>
<source>Build date</source>
<translation>Build date</translation>
</message>
<message>
- <location line="-79"/>
- <source>Bitcoin Core</source>
- <translation>Bitcoin Core</translation>
- </message>
- <message>
- <location line="+279"/>
+ <location line="+206"/>
<source>Debug log file</source>
<translation>Debug log file</translation>
</message>
@@ -1897,7 +1956,7 @@ Address: %4
</message>
<message>
<location line="+47"/>
- <source>Previously requested payments</source>
+ <source>Requested payments</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -1992,7 +2051,7 @@ Address: %4
<context>
<name>RecentRequestsTableModel</name>
<message>
- <location filename="../recentrequeststablemodel.cpp" line="+14"/>
+ <location filename="../recentrequeststablemodel.cpp" line="+17"/>
<source>Date</source>
<translation type="unfinished">Date</translation>
</message>
@@ -2012,7 +2071,7 @@ Address: %4
<translation type="unfinished">Amount</translation>
</message>
<message>
- <location line="+36"/>
+ <location line="+38"/>
<source>(no label)</source>
<translation type="unfinished">(no label)</translation>
</message>
@@ -2027,7 +2086,7 @@ Address: %4
<message>
<location filename="../forms/sendcoinsdialog.ui" line="+14"/>
<location filename="../sendcoinsdialog.cpp" line="+381"/>
- <location line="+81"/>
+ <location line="+80"/>
<source>Send Coins</source>
<translation>Send Coins</translation>
</message>
@@ -2137,7 +2196,7 @@ Address: %4
<translation>S&amp;end</translation>
</message>
<message>
- <location filename="../sendcoinsdialog.cpp" line="-229"/>
+ <location filename="../sendcoinsdialog.cpp" line="-228"/>
<source>Confirm send coins</source>
<translation>Confirm send coins</translation>
</message>
@@ -2240,22 +2299,22 @@ Address: %4
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+113"/>
+ <location line="+112"/>
<source>Warning: Invalid Bitcoin address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+13"/>
+ <location line="+21"/>
<source>(no label)</source>
<translation type="unfinished">(no label)</translation>
</message>
<message>
- <location line="+8"/>
+ <location line="-11"/>
<source>Warning: Unknown change address</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="-378"/>
+ <location line="-366"/>
<source>Are you sure you want to send?</source>
<translation type="unfinished"></translation>
</message>
@@ -2565,7 +2624,7 @@ Address: %4
<context>
<name>SplashScreen</name>
<message>
- <location filename="../splashscreen.cpp" line="+26"/>
+ <location filename="../splashscreen.cpp" line="+28"/>
<source>Bitcoin Core</source>
<translation type="unfinished">Bitcoin Core</translation>
</message>
@@ -2811,8 +2870,13 @@ Address: %4
<source>Amount</source>
<translation>Amount</translation>
</message>
+ <message>
+ <location line="+59"/>
+ <source>Immature (%1 confirmations, will be available after %2)</source>
+ <translation type="unfinished"></translation>
+ </message>
<message numerus="yes">
- <location line="+57"/>
+ <location line="+16"/>
<source>Open for %n more block(s)</source>
<translation>
<numerusform>Open for %n more block</numerusform>
@@ -2835,20 +2899,13 @@ Address: %4
<translation>Unconfirmed (%1 of %2 confirmations)</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="-22"/>
+ <location line="+25"/>
<source>Confirmed (%1 confirmations)</source>
<translation>Confirmed (%1 confirmations)</translation>
</message>
- <message numerus="yes">
- <location line="+8"/>
- <source>Mined balance will be available when it matures in %n more block(s)</source>
- <translation>
- <numerusform>Mined balance will be available when it matures in %n more block</numerusform>
- <numerusform>Mined balance will be available when it matures in %n more blocks</numerusform>
- </translation>
- </message>
<message>
- <location line="+5"/>
+ <location line="-22"/>
<source>This block was not received by any other nodes and will probably not be accepted!</source>
<translation>This block was not received by any other nodes and will probably not be accepted!</translation>
</message>
@@ -2858,7 +2915,7 @@ Address: %4
<translation>Generated but not accepted</translation>
</message>
<message>
- <location line="+43"/>
+ <location line="+62"/>
<source>Received with</source>
<translation>Received with</translation>
</message>
@@ -3154,7 +3211,7 @@ Address: %4
<context>
<name>bitcoin-core</name>
<message>
- <location filename="../bitcoinstrings.cpp" line="+217"/>
+ <location filename="../bitcoinstrings.cpp" line="+221"/>
<source>Usage:</source>
<translation>Usage:</translation>
</message>
@@ -3174,7 +3231,7 @@ Address: %4
<translation>Options:</translation>
</message>
<message>
- <location line="+23"/>
+ <location line="+22"/>
<source>Specify configuration file (default: bitcoin.conf)</source>
<translation>Specify configuration file (default: bitcoin.conf)</translation>
</message>
@@ -3194,7 +3251,7 @@ Address: %4
<translation>Set database cache size in megabytes (default: 25)</translation>
</message>
<message>
- <location line="-27"/>
+ <location line="-26"/>
<source>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</source>
<translation>Listen for connections on &lt;port&gt; (default: 8333 or testnet: 18333)</translation>
</message>
@@ -3204,7 +3261,7 @@ Address: %4
<translation>Maintain at most &lt;n&gt; connections to peers (default: 125)</translation>
</message>
<message>
- <location line="-50"/>
+ <location line="-51"/>
<source>Connect to a node to retrieve peer addresses, and disconnect</source>
<translation>Connect to a node to retrieve peer addresses, and disconnect</translation>
</message>
@@ -3214,22 +3271,22 @@ Address: %4
<translation>Specify your own public address</translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+5"/>
<source>Threshold for disconnecting misbehaving peers (default: 100)</source>
<translation>Threshold for disconnecting misbehaving peers (default: 100)</translation>
</message>
<message>
- <location line="-147"/>
+ <location line="-148"/>
<source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source>
<translation>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</translation>
</message>
<message>
- <location line="-33"/>
+ <location line="-36"/>
<source>An error occurred while setting up the RPC port %u for listening on IPv4: %s</source>
<translation>An error occurred while setting up the RPC port %u for listening on IPv4: %s</translation>
</message>
<message>
- <location line="+31"/>
+ <location line="+34"/>
<source>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332 or testnet: 18332)</source>
<translation>Listen for JSON-RPC connections on &lt;port&gt; (default: 8332 or testnet: 18332)</translation>
</message>
@@ -3239,7 +3296,7 @@ Address: %4
<translation>Accept command line and JSON-RPC commands</translation>
</message>
<message>
- <location line="+79"/>
+ <location line="+80"/>
<source>Run in the background as a daemon and accept commands</source>
<translation>Run in the background as a daemon and accept commands</translation>
</message>
@@ -3249,12 +3306,12 @@ Address: %4
<translation>Use the test network</translation>
</message>
<message>
- <location line="-117"/>
+ <location line="-118"/>
<source>Accept connections from outside (default: 1 if no -proxy or -connect)</source>
<translation>Accept connections from outside (default: 1 if no -proxy or -connect)</translation>
</message>
<message>
- <location line="-92"/>
+ <location line="-95"/>
<source>%s, you must set a rpcpassword in the configuration file:
%s
It is recommended you use the following random password:
@@ -3305,6 +3362,11 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
</message>
<message>
<location line="+4"/>
+ <source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
<source>Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source>
<translation>Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</translation>
</message>
@@ -3410,6 +3472,11 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
</message>
<message>
<location line="+1"/>
+ <source>Do not load the wallet and disable wallet RPC calls</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>Do you want to rebuild the block database now?</source>
<translation>Do you want to rebuild the block database now?</translation>
</message>
@@ -3574,7 +3641,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+8"/>
+ <location line="+7"/>
<source>Set maximum block size in bytes (default: %d)</source>
<translation type="unfinished"></translation>
</message>
@@ -3594,7 +3661,12 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+12"/>
+ <location line="+3"/>
+ <source>This is intended for regression testing tools and app development.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
<source>Usage (deprecated, use bitcoin-cli):</source>
<translation type="unfinished"></translation>
</message>
@@ -3619,7 +3691,12 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Wallet %s resides outside data directory %s</translation>
</message>
<message>
- <location line="+3"/>
+ <location line="+2"/>
+ <source>Wallet options:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
<source>Warning: Deprecated argument -debugnet ignored, use -debug=net</source>
<translation type="unfinished"></translation>
</message>
@@ -3629,12 +3706,12 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>You need to rebuild the database using -reindex to change -txindex</translation>
</message>
<message>
- <location line="-78"/>
+ <location line="-79"/>
<source>Imports blocks from external blk000??.dat file</source>
<translation>Imports blocks from external blk000??.dat file</translation>
</message>
<message>
- <location line="-104"/>
+ <location line="-105"/>
<source>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</source>
<translation>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</translation>
</message>
@@ -3654,7 +3731,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Set the number of script verification threads (up to 16, 0 = auto, &lt;0 = leave that many cores free, default: 0)</translation>
</message>
<message>
- <location line="+88"/>
+ <location line="+89"/>
<source>Information</source>
<translation>Information</translation>
</message>
@@ -3704,11 +3781,6 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Send trace/debug info to console instead of debug.log file</translation>
</message>
<message>
- <location line="+1"/>
- <source>Send trace/debug info to debugger</source>
- <translation>Send trace/debug info to debugger</translation>
- </message>
- <message>
<location line="+6"/>
<source>Set minimum block size in bytes (default: 0)</source>
<translation>Set minimum block size in bytes (default: 0)</translation>
@@ -3734,7 +3806,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>System error: </translation>
</message>
<message>
- <location line="+4"/>
+ <location line="+5"/>
<source>Transaction amount too small</source>
<translation>Transaction amount too small</translation>
</message>
@@ -3764,7 +3836,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Username for JSON-RPC connections</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>Warning</source>
<translation>Warning</translation>
</message>
@@ -3784,37 +3856,37 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>wallet.dat corrupt, salvage failed</translation>
</message>
<message>
- <location line="-57"/>
+ <location line="-58"/>
<source>Password for JSON-RPC connections</source>
<translation>Password for JSON-RPC connections</translation>
</message>
<message>
- <location line="-69"/>
+ <location line="-70"/>
<source>Allow JSON-RPC connections from specified IP address</source>
<translation>Allow JSON-RPC connections from specified IP address</translation>
</message>
<message>
- <location line="+79"/>
+ <location line="+80"/>
<source>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</source>
<translation>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</translation>
</message>
<message>
- <location line="-131"/>
+ <location line="-132"/>
<source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
<translation>Execute command when the best block changes (%s in cmd is replaced by block hash)</translation>
</message>
<message>
- <location line="+160"/>
+ <location line="+161"/>
<source>Upgrade wallet to latest format</source>
<translation>Upgrade wallet to latest format</translation>
</message>
<message>
- <location line="-23"/>
+ <location line="-24"/>
<source>Set key pool size to &lt;n&gt; (default: 100)</source>
<translation>Set key pool size to &lt;n&gt; (default: 100)</translation>
</message>
<message>
- <location line="-12"/>
+ <location line="-11"/>
<source>Rescan the block chain for missing wallet transactions</source>
<translation>Rescan the block chain for missing wallet transactions</translation>
</message>
@@ -3824,7 +3896,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Use OpenSSL (https) for JSON-RPC connections</translation>
</message>
<message>
- <location line="-29"/>
+ <location line="-30"/>
<source>Server certificate file (default: server.cert)</source>
<translation>Server certificate file (default: server.cert)</translation>
</message>
@@ -3839,17 +3911,17 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>This help message</translation>
</message>
<message>
- <location line="+6"/>
+ <location line="+7"/>
<source>Unable to bind to %s on this computer (bind returned error %d, %s)</source>
<translation>Unable to bind to %s on this computer (bind returned error %d, %s)</translation>
</message>
<message>
- <location line="-106"/>
+ <location line="-107"/>
<source>Allow DNS lookups for -addnode, -seednode and -connect</source>
<translation>Allow DNS lookups for -addnode, -seednode and -connect</translation>
</message>
<message>
- <location line="+59"/>
+ <location line="+60"/>
<source>Loading addresses...</source>
<translation>Loading addresses...</translation>
</message>
@@ -3889,7 +3961,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Unknown -socks proxy version requested: %i</translation>
</message>
<message>
- <location line="-100"/>
+ <location line="-101"/>
<source>Cannot resolve -bind address: &apos;%s&apos;</source>
<translation>Cannot resolve -bind address: &apos;%s&apos;</translation>
</message>
@@ -3899,7 +3971,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Cannot resolve -externalip address: &apos;%s&apos;</translation>
</message>
<message>
- <location line="+47"/>
+ <location line="+48"/>
<source>Invalid amount for -paytxfee=&lt;amount&gt;: &apos;%s&apos;</source>
<translation>Invalid amount for -paytxfee=&lt;amount&gt;: &apos;%s&apos;</translation>
</message>
@@ -3919,7 +3991,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Loading block index...</translation>
</message>
<message>
- <location line="-61"/>
+ <location line="-62"/>
<source>Add a node to connect to and attempt to keep the connection open</source>
<translation>Add a node to connect to and attempt to keep the connection open</translation>
</message>
@@ -3929,12 +4001,12 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Unable to bind to %s on this computer. Bitcoin is probably already running.</translation>
</message>
<message>
- <location line="+94"/>
+ <location line="+95"/>
<source>Loading wallet...</source>
<translation>Loading wallet...</translation>
</message>
<message>
- <location line="-55"/>
+ <location line="-56"/>
<source>Cannot downgrade wallet</source>
<translation>Cannot downgrade wallet</translation>
</message>
@@ -3944,7 +4016,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Cannot write default address</translation>
</message>
<message>
- <location line="+66"/>
+ <location line="+67"/>
<source>Rescanning...</source>
<translation>Rescanning...</translation>
</message>
@@ -3964,7 +4036,7 @@ for example: alertnotify=echo %%s | mail -s &quot;Bitcoin Alert&quot; admin@foo.
<translation>Error</translation>
</message>
<message>
- <location line="-34"/>
+ <location line="-35"/>
<source>You must set rpcpassword=&lt;password&gt; in the configuration file:
%s
If the file does not exist, create it with owner-readable-only file permissions.</source>
diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp
index 17d80940b7..7642cd117a 100644
--- a/src/qt/paymentserver.cpp
+++ b/src/qt/paymentserver.cpp
@@ -8,8 +8,6 @@
#include "guiconstants.h"
#include "guiutil.h"
#include "optionsmodel.h"
-#include "paymentserver.h"
-#include "walletmodel.h"
#include "base58.h"
#include "ui_interface.h"
@@ -382,40 +380,52 @@ void PaymentServer::handleURIOrFile(const QString& s)
#else
QUrlQuery uri((QUrl(s)));
#endif
- if (uri.hasQueryItem("r"))
+ if (uri.hasQueryItem("r")) // payment request URI
{
QByteArray temp;
temp.append(uri.queryItemValue("r"));
QString decoded = QUrl::fromPercentEncoding(temp);
QUrl fetchUrl(decoded, QUrl::StrictMode);
- qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")";
-
if (fetchUrl.isValid())
+ {
+ qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")";
fetchRequest(fetchUrl);
+ }
else
+ {
qDebug() << "PaymentServer::handleURIOrFile : Invalid URL: " << fetchUrl;
+ emit message(tr("URI handling"),
+ tr("Payment request fetch URL is invalid: %1").arg(fetchUrl.toString()),
+ CClientUIInterface::ICON_WARNING);
+ }
return;
}
+ else // normal URI
+ {
+ SendCoinsRecipient recipient;
+ if (GUIUtil::parseBitcoinURI(s, &recipient))
+ emit receivedPaymentRequest(recipient);
+ else
+ emit message(tr("URI handling"),
+ tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."),
+ CClientUIInterface::ICON_WARNING);
- SendCoinsRecipient recipient;
- if (GUIUtil::parseBitcoinURI(s, &recipient))
- emit receivedPaymentRequest(recipient);
- else
- emit message(tr("URI handling"),
- tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."),
- CClientUIInterface::ICON_WARNING);
-
- return;
+ return;
+ }
}
- if (QFile::exists(s))
+ if (QFile::exists(s)) // payment request file
{
PaymentRequestPlus request;
SendCoinsRecipient recipient;
if (readPaymentRequest(s, request) && processPaymentRequest(request, recipient))
emit receivedPaymentRequest(recipient);
+ else
+ emit message(tr("Payment request file handling"),
+ tr("Payment request file can not be read or processed! This can be caused by an invalid payment request file."),
+ CClientUIInterface::ICON_WARNING);
return;
}
@@ -594,7 +604,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
.arg(reply->errorString());
qDebug() << "PaymentServer::netRequestFinished : " << msg;
- emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR);
+ emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
return;
}
@@ -606,9 +616,16 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
PaymentRequestPlus request;
SendCoinsRecipient recipient;
if (request.parse(data) && processPaymentRequest(request, recipient))
+ {
emit receivedPaymentRequest(recipient);
+ }
else
+ {
qDebug() << "PaymentServer::netRequestFinished : Error processing payment request";
+ emit message(tr("Payment request error"),
+ tr("Payment request can not be parsed or processed!"),
+ CClientUIInterface::MSG_ERROR);
+ }
return;
}
@@ -621,9 +638,10 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
.arg(reply->request().url().toString());
qDebug() << "PaymentServer::netRequestFinished : " << msg;
- emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR);
+ emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
}
- else {
+ else
+ {
emit receivedPaymentACK(GUIUtil::HtmlEscape(paymentACK.memo()));
}
}
diff --git a/src/qt/paymentserver.h b/src/qt/paymentserver.h
index 5ee85f7db4..af19661bdd 100644
--- a/src/qt/paymentserver.h
+++ b/src/qt/paymentserver.h
@@ -102,7 +102,7 @@ public slots:
// Submit Payment message to a merchant, get back PaymentACK:
void fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipient, QByteArray transaction);
- // Handle an incoming URI or file
+ // Handle an incoming URI, URI with local file scheme or file
void handleURIOrFile(const QString& s);
private slots:
diff --git a/src/qt/res/movies/spinner-000.png b/src/qt/res/movies/spinner-000.png
new file mode 100644
index 0000000000..1f4fb732ef
--- /dev/null
+++ b/src/qt/res/movies/spinner-000.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-001.png b/src/qt/res/movies/spinner-001.png
new file mode 100644
index 0000000000..e6ca67a1b0
--- /dev/null
+++ b/src/qt/res/movies/spinner-001.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-002.png b/src/qt/res/movies/spinner-002.png
new file mode 100644
index 0000000000..2360467aff
--- /dev/null
+++ b/src/qt/res/movies/spinner-002.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-003.png b/src/qt/res/movies/spinner-003.png
new file mode 100644
index 0000000000..52bed62566
--- /dev/null
+++ b/src/qt/res/movies/spinner-003.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-004.png b/src/qt/res/movies/spinner-004.png
new file mode 100644
index 0000000000..de5c88a56f
--- /dev/null
+++ b/src/qt/res/movies/spinner-004.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-005.png b/src/qt/res/movies/spinner-005.png
new file mode 100644
index 0000000000..27b30336a1
--- /dev/null
+++ b/src/qt/res/movies/spinner-005.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-006.png b/src/qt/res/movies/spinner-006.png
new file mode 100644
index 0000000000..1fa6b0e242
--- /dev/null
+++ b/src/qt/res/movies/spinner-006.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-007.png b/src/qt/res/movies/spinner-007.png
new file mode 100644
index 0000000000..f54fa8775e
--- /dev/null
+++ b/src/qt/res/movies/spinner-007.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-008.png b/src/qt/res/movies/spinner-008.png
new file mode 100644
index 0000000000..d25aa5300f
--- /dev/null
+++ b/src/qt/res/movies/spinner-008.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-009.png b/src/qt/res/movies/spinner-009.png
new file mode 100644
index 0000000000..1349b87586
--- /dev/null
+++ b/src/qt/res/movies/spinner-009.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-010.png b/src/qt/res/movies/spinner-010.png
new file mode 100644
index 0000000000..6020e275f1
--- /dev/null
+++ b/src/qt/res/movies/spinner-010.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-011.png b/src/qt/res/movies/spinner-011.png
new file mode 100644
index 0000000000..0d0e811ea7
--- /dev/null
+++ b/src/qt/res/movies/spinner-011.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-012.png b/src/qt/res/movies/spinner-012.png
new file mode 100644
index 0000000000..937afb6be2
--- /dev/null
+++ b/src/qt/res/movies/spinner-012.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-013.png b/src/qt/res/movies/spinner-013.png
new file mode 100644
index 0000000000..4ae5a671a3
--- /dev/null
+++ b/src/qt/res/movies/spinner-013.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-014.png b/src/qt/res/movies/spinner-014.png
new file mode 100644
index 0000000000..c3a81add0e
--- /dev/null
+++ b/src/qt/res/movies/spinner-014.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-015.png b/src/qt/res/movies/spinner-015.png
new file mode 100644
index 0000000000..184a9fe424
--- /dev/null
+++ b/src/qt/res/movies/spinner-015.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-016.png b/src/qt/res/movies/spinner-016.png
new file mode 100644
index 0000000000..2da9b9dc72
--- /dev/null
+++ b/src/qt/res/movies/spinner-016.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-017.png b/src/qt/res/movies/spinner-017.png
new file mode 100644
index 0000000000..ada83fbe84
--- /dev/null
+++ b/src/qt/res/movies/spinner-017.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-018.png b/src/qt/res/movies/spinner-018.png
new file mode 100644
index 0000000000..cc436ba8cb
--- /dev/null
+++ b/src/qt/res/movies/spinner-018.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-019.png b/src/qt/res/movies/spinner-019.png
new file mode 100644
index 0000000000..03da25bc2a
--- /dev/null
+++ b/src/qt/res/movies/spinner-019.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-020.png b/src/qt/res/movies/spinner-020.png
new file mode 100644
index 0000000000..e7f2ac78e8
--- /dev/null
+++ b/src/qt/res/movies/spinner-020.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-021.png b/src/qt/res/movies/spinner-021.png
new file mode 100644
index 0000000000..dc9e580bf3
--- /dev/null
+++ b/src/qt/res/movies/spinner-021.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-022.png b/src/qt/res/movies/spinner-022.png
new file mode 100644
index 0000000000..6e236c805e
--- /dev/null
+++ b/src/qt/res/movies/spinner-022.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-023.png b/src/qt/res/movies/spinner-023.png
new file mode 100644
index 0000000000..f1c3228485
--- /dev/null
+++ b/src/qt/res/movies/spinner-023.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-024.png b/src/qt/res/movies/spinner-024.png
new file mode 100644
index 0000000000..d8cf21f178
--- /dev/null
+++ b/src/qt/res/movies/spinner-024.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-025.png b/src/qt/res/movies/spinner-025.png
new file mode 100644
index 0000000000..2b5ede3293
--- /dev/null
+++ b/src/qt/res/movies/spinner-025.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-026.png b/src/qt/res/movies/spinner-026.png
new file mode 100644
index 0000000000..5ee3d2fa8e
--- /dev/null
+++ b/src/qt/res/movies/spinner-026.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-027.png b/src/qt/res/movies/spinner-027.png
new file mode 100644
index 0000000000..c2ee8082bd
--- /dev/null
+++ b/src/qt/res/movies/spinner-027.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-028.png b/src/qt/res/movies/spinner-028.png
new file mode 100644
index 0000000000..f70d3531ad
--- /dev/null
+++ b/src/qt/res/movies/spinner-028.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-029.png b/src/qt/res/movies/spinner-029.png
new file mode 100644
index 0000000000..02b97207a9
--- /dev/null
+++ b/src/qt/res/movies/spinner-029.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-030.png b/src/qt/res/movies/spinner-030.png
new file mode 100644
index 0000000000..0c74e82c6f
--- /dev/null
+++ b/src/qt/res/movies/spinner-030.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-031.png b/src/qt/res/movies/spinner-031.png
new file mode 100644
index 0000000000..c5e29bcec7
--- /dev/null
+++ b/src/qt/res/movies/spinner-031.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-032.png b/src/qt/res/movies/spinner-032.png
new file mode 100644
index 0000000000..d72c9bf0dd
--- /dev/null
+++ b/src/qt/res/movies/spinner-032.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-033.png b/src/qt/res/movies/spinner-033.png
new file mode 100644
index 0000000000..a8b822bfaf
--- /dev/null
+++ b/src/qt/res/movies/spinner-033.png
Binary files differ
diff --git a/src/qt/res/movies/spinner-034.png b/src/qt/res/movies/spinner-034.png
new file mode 100644
index 0000000000..684aa385e0
--- /dev/null
+++ b/src/qt/res/movies/spinner-034.png
Binary files differ
diff --git a/src/qt/res/movies/update_spinner.mng b/src/qt/res/movies/update_spinner.mng
deleted file mode 100644
index 7df3baac6f..0000000000
--- a/src/qt/res/movies/update_spinner.mng
+++ /dev/null
Binary files differ
diff --git a/src/qt/test/Makefile.am b/src/qt/test/Makefile.am
index 9c3f0417ac..00ccfadf3f 100644
--- a/src/qt/test/Makefile.am
+++ b/src/qt/test/Makefile.am
@@ -16,12 +16,13 @@ endif
TEST_QT_H = \
uritests.h \
- paymentservertests.h \
- paymentrequestdata.h
+ paymentrequestdata.h \
+ paymentservertests.h
BUILT_SOURCES = $(TEST_QT_MOC_CPP)
test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(QT_INCLUDES) $(QT_TEST_INCLUDES)
+
test_bitcoin_qt_SOURCES = \
test_main.cpp \
uritests.cpp \
@@ -30,7 +31,9 @@ if ENABLE_WALLET
test_bitcoin_qt_SOURCES += \
paymentservertests.cpp
endif
+
nodist_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP)
+
test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER)
if ENABLE_WALLET
test_bitcoin_qt_LDADD += $(LIBBITCOIN_WALLET)
@@ -40,4 +43,3 @@ test_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBLEVELDB) \
$(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS)
CLEANFILES = $(BUILT_SOURCES) *.gcda *.gcno
-
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index 6f3e3b0aaf..14f29c933b 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -488,6 +488,7 @@ bool WalletModel::getPubKey(const CKeyID &address, CPubKey& vchPubKeyOut) const
// returns a list of COutputs from COutPoints
void WalletModel::getOutputs(const std::vector<COutPoint>& vOutpoints, std::vector<COutput>& vOutputs)
{
+ LOCK(wallet->cs_wallet);
BOOST_FOREACH(const COutPoint& outpoint, vOutpoints)
{
if (!wallet->mapWallet.count(outpoint.hash)) continue;
diff --git a/src/rpcmisc.cpp b/src/rpcmisc.cpp
index c61cc4192b..f8a7d07fc3 100644
--- a/src/rpcmisc.cpp
+++ b/src/rpcmisc.cpp
@@ -4,11 +4,11 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "base58.h"
-#include "rpcserver.h"
#include "init.h"
#include "main.h"
#include "net.h"
#include "netbase.h"
+#include "rpcserver.h"
#include "util.h"
#ifdef ENABLE_WALLET
#include "wallet.h"
@@ -323,4 +323,3 @@ Value verifymessage(const Array& params, bool fHelp)
return (pubkey.GetID() == keyID);
}
-
diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp
index 86025918ef..ff652ca34d 100644
--- a/src/rpcrawtransaction.cpp
+++ b/src/rpcrawtransaction.cpp
@@ -4,13 +4,13 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "base58.h"
-#include "rpcserver.h"
+#include "core.h"
#include "init.h"
+#include "keystore.h"
+#include "main.h"
#include "net.h"
+#include "rpcserver.h"
#include "uint256.h"
-#include "core.h"
-#include "main.h"
-#include "keystore.h"
#ifdef ENABLE_WALLET
#include "wallet.h"
#endif
diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp
index 9f2100a8d7..9d34a900ff 100644
--- a/src/rpcserver.cpp
+++ b/src/rpcserver.cpp
@@ -8,8 +8,8 @@
#include "base58.h"
#include "init.h"
#include "main.h"
-#include "util.h"
#include "ui_interface.h"
+#include "util.h"
#ifdef ENABLE_WALLET
#include "wallet.h"
#endif
diff --git a/src/test/Makefile.am b/src/test/Makefile.am
index ff1d22cc24..667e53c6b4 100644
--- a/src/test/Makefile.am
+++ b/src/test/Makefile.am
@@ -37,7 +37,8 @@ test_bitcoin_SOURCES = \
base58_tests.cpp \
base64_tests.cpp \
bignum_tests.cpp \
- bloom_tests.cpp canonical_tests.cpp \
+ bloom_tests.cpp \
+ canonical_tests.cpp \
checkblock_tests.cpp \
Checkpoints_tests.cpp \
compress_tests.cpp \
diff --git a/src/walletdb.cpp b/src/walletdb.cpp
index 2dc6594e93..9c5bddba60 100644
--- a/src/walletdb.cpp
+++ b/src/walletdb.cpp
@@ -357,16 +357,13 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
{
uint256 hash;
ssKey >> hash;
- CWalletTx& wtx = pwallet->mapWallet[hash];
+ CWalletTx wtx;
ssValue >> wtx;
CValidationState state;
if (CheckTransaction(wtx, state) && (wtx.GetHash() == hash) && state.IsValid())
wtx.BindWallet(pwallet);
else
- {
- pwallet->mapWallet.erase(hash);
return false;
- }
// Undo serialize changes in 31600
if (31404 <= wtx.fTimeReceivedIsTxTime && wtx.fTimeReceivedIsTxTime <= 31703)
@@ -391,6 +388,7 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
if (wtx.nOrderPos == -1)
wss.fAnyUnordered = true;
+ pwallet->mapWallet[hash] = wtx;
//// debug print
//LogPrintf("LoadWallet %s\n", wtx.GetHash().ToString().c_str());
//LogPrintf(" %12"PRId64" %s %s %s\n",