aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--configure.ac4
-rw-r--r--contrib/debian/copyright6
-rw-r--r--contrib/gitian-descriptors/README.md18
-rw-r--r--contrib/gitian-descriptors/deps-linux.yml63
-rw-r--r--contrib/gitian-descriptors/deps-win32.yml49
-rw-r--r--contrib/gitian-descriptors/gitian-linux.yml56
-rw-r--r--contrib/gitian-descriptors/gitian-win32.yml8
-rw-r--r--contrib/gitian-descriptors/gitian.yml74
-rw-r--r--contrib/gitian-descriptors/qt-win32.yml35
-rw-r--r--contrib/linearize/linearize.py7
-rw-r--r--doc/assets-attribution.md4
-rw-r--r--doc/build-osx.md2
-rw-r--r--doc/build-unix.md3
-rw-r--r--doc/release-process.md20
-rw-r--r--share/qt/Info.plist.in2
-rw-r--r--share/qt/img/reload.pngbin0 -> 9886 bytes
-rwxr-xr-xshare/qt/make_spinner.py13
-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
82 files changed, 711 insertions, 498 deletions
diff --git a/.gitignore b/.gitignore
index f867868185..7615fe3915 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,4 +81,4 @@ win32-build
qa/pull-tester/run-bitcoind-for-test.sh
qa/pull-tester/build-tests.sh
-!src/leveldb-*/Makefile
+!src/leveldb*/Makefile
diff --git a/configure.ac b/configure.ac
index 82f489a06d..88c20cdce6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@ define(_CLIENT_VERSION_MINOR, 8)
define(_CLIENT_VERSION_REVISION, 99)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_IS_RELEASE, false)
-define(_COPYRIGHT_YEAR, 2013)
+define(_COPYRIGHT_YEAR, 2014)
AC_INIT([Bitcoin],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[info@bitcoin.org],[bitcoin])
AC_CONFIG_AUX_DIR([src/build-aux])
AC_CONFIG_MACRO_DIR([src/m4])
@@ -395,7 +395,7 @@ LIBS="$TEMP_LIBS"
fi
if test x$boost_sleep != xyes; then
- AC_MSG_ERROR(No working boost sleep implementation found)
+ AC_MSG_ERROR(No working boost sleep implementation found. If on ubuntu 13.10 with libboost1.54-all-dev remove libboost.1.54-all-dev and use libboost1.53-all-dev)
fi
BITCOIN_QT_INIT
diff --git a/contrib/debian/copyright b/contrib/debian/copyright
index b99604913c..a6ee201991 100644
--- a/contrib/debian/copyright
+++ b/contrib/debian/copyright
@@ -6,9 +6,9 @@ Source: http://sourceforge.net/projects/bitcoin/files/
https://github.com/bitcoin/bitcoin
Files: *
-Copyright: 2009-2012, Bitcoin Developers
+Copyright: 2009-2012, Bitcoin Core Developers
License: Expat
-Comment: The Bitcoin Developers encompasses the current developers listed on bitcoin.org,
+Comment: The Bitcoin Core Developers encompasses the current developers listed on bitcoin.org,
as well as the numerous contributors to the project.
Files: src/json/*
@@ -71,7 +71,7 @@ Copyright: Bitboy (optimized for 16x16 by Wladimir van der Laan)
License: PUB-DOM
Comment: Site: https://bitcointalk.org/?topic=1756.0
-Files: scripts/img/reload.xcf, src/qt/res/movies/update_spinner.mng
+Files: scripts/img/reload.xcf, src/qt/res/movies/*.png
Copyright: Everaldo (Everaldo Coelho)
License: GPL-3+
Comment: Icon Pack: Kids
diff --git a/contrib/gitian-descriptors/README.md b/contrib/gitian-descriptors/README.md
index 40bdbd8e32..3a90b4d038 100644
--- a/contrib/gitian-descriptors/README.md
+++ b/contrib/gitian-descriptors/README.md
@@ -25,18 +25,8 @@ Once you've got the right hardware and software:
mkdir gitian-builder/inputs
cd gitian-builder/inputs
- # Inputs for Linux and Win32:
- wget -O miniupnpc-1.6.tar.gz 'http://miniupnp.tuxfamily.org/files/download.php?file=miniupnpc-1.6.tar.gz'
- wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2'
-
- # Inputs for Win32: (Linux has packages for these)
- wget 'https://downloads.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2'
- wget 'http://www.openssl.org/source/openssl-1.0.1c.tar.gz'
- wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
- wget 'https://downloads.sourceforge.net/project/libpng/zlib/1.2.6/zlib-1.2.6.tar.gz'
- wget 'https://downloads.sourceforge.net/project/libpng/libpng15/older-releases/1.5.9/libpng-1.5.9.tar.gz'
- wget 'https://download.qt-project.org/archive/qt/4.8/4.8.3/qt-everywhere-opensource-src-4.8.3.tar.gz'
- wget 'http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2'
+ # Get inputs (see doc/release-process.md for exact inputs needed and where to get them)
+ ...
cd ../..
cd gitian-builder
@@ -49,7 +39,7 @@ Once you've got the right hardware and software:
git pull
cd ../gitian-builder
git pull
- ./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/gitian.yml
+ ./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
# Build Win32 dependencies: (only needs to be done once, or when dependency versions change)
./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/boost-win32.yml
@@ -87,4 +77,4 @@ Here's a description of Gavin's setup on OSX 10.6:
export USE_LXC=1
git clone git://github.com/bitcoin/bitcoin.git
- ... etc \ No newline at end of file
+ ... etc
diff --git a/contrib/gitian-descriptors/deps-linux.yml b/contrib/gitian-descriptors/deps-linux.yml
new file mode 100644
index 0000000000..4ebf5c53a3
--- /dev/null
+++ b/contrib/gitian-descriptors/deps-linux.yml
@@ -0,0 +1,63 @@
+---
+name: "bitcoin"
+suites:
+- "precise"
+architectures:
+- "i386"
+- "amd64"
+packages:
+- "unzip"
+- "zip"
+- "pkg-config"
+- "libtool"
+- "faketime"
+- "bsdmainutils"
+reference_datetime: "2013-06-01 00:00:00"
+remotes: []
+files:
+- "miniupnpc-1.8.tar.gz"
+- "qrencode-3.4.3.tar.bz2"
+- "protobuf-2.5.0.tar.bz2"
+- "db-4.8.30.NC.tar.gz"
+script: |
+ STAGING="$HOME/install"
+ OPTFLAGS='-O2'
+ export LIBRARY_PATH="$STAGING/lib"
+ # Integrity Check
+ echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c
+ echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c
+ echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c
+ echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c
+
+ tar xzfm miniupnpc-1.8.tar.gz
+ cd miniupnpc-1.8
+ # miniupnpc is always built with -fPIC
+ INSTALLPREFIX=$STAGING make $MAKEOPTS install
+ rm -f $STAGING/lib/libminiupnpc.so* # no way to skip shared lib build
+ cd ..
+ #
+ tar xjfm qrencode-3.4.3.tar.bz2
+ cd qrencode-3.4.3
+ # need --with-pic to avoid relocation error in 64 bit builds
+ ./configure --prefix=$STAGING --enable-static --disable-shared -with-pic --without-tools
+ make $MAKEOPTS install
+ cd ..
+ #
+ tar xjfm protobuf-2.5.0.tar.bz2
+ cd protobuf-2.5.0
+ mkdir -p $STAGING/host/bin
+ # need --with-pic to avoid relocation error in 64 bit builds
+ ./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared --with-pic
+ make $MAKEOPTS install
+ cd ..
+ #
+ tar xzf db-4.8.30.NC.tar.gz
+ cd db-4.8.30.NC/build_unix
+ # need --with-pic to avoid relocation error in 64 bit builds
+ ../dist/configure --prefix=$STAGING --enable-cxx --disable-shared --with-pic
+ make $MAKEOPTS library_build
+ make install_lib install_include
+ cd ../..
+ #
+ cd $STAGING
+ zip -r $OUTDIR/bitcoin-deps-linux${GBUILD_BITS}-gitian-r1.zip include lib bin host
diff --git a/contrib/gitian-descriptors/deps-win32.yml b/contrib/gitian-descriptors/deps-win32.yml
index addb11d726..12b9dfc70c 100644
--- a/contrib/gitian-descriptors/deps-win32.yml
+++ b/contrib/gitian-descriptors/deps-win32.yml
@@ -14,12 +14,12 @@ packages:
reference_datetime: "2011-01-30 00:00:00"
remotes: []
files:
-- "openssl-1.0.1c.tar.gz"
+- "openssl-1.0.1e.tar.gz"
- "db-4.8.30.NC.tar.gz"
-- "miniupnpc-1.6.tar.gz"
-- "zlib-1.2.6.tar.gz"
-- "libpng-1.5.9.tar.gz"
-- "qrencode-3.2.0.tar.bz2"
+- "miniupnpc-1.8.tar.gz"
+- "zlib-1.2.8.tar.gz"
+- "libpng-1.6.8.tar.gz"
+- "qrencode-3.4.3.tar.bz2"
script: |
#
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
@@ -28,17 +28,17 @@ script: |
export INSTALLPREFIX=$OUTDIR/staging/deps
export HOST=i686-w64-mingw32
# Input Integrity Check
- echo "2a9eb3cd4e8b114eb9179c0d3884d61658e7d8e8bf4984798a5f5bd48e325ebe openssl-1.0.1c.tar.gz" | sha256sum -c
+ echo "f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3 openssl-1.0.1e.tar.gz" | sha256sum -c
echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c
- echo "bbd6b756e6af44b5a5b0f9b93eada3fb8922ed1d6451b7d6f184d0ae0c813994 miniupnpc-1.6.tar.gz" | sha256sum -c
- echo "21235e08552e6feba09ea5e8d750805b3391c62fb81c71a235c0044dc7a8a61b zlib-1.2.6.tar.gz" | sha256sum -c
- echo "b75dae26151f9b031062c8d2f577a094b08da0ae44fe8c11175d0b9ff434cc02 libpng-1.5.9.tar.gz" | sha256sum -c
- echo "03c4bc7cd9a75747c3815d509bbe061907d615764f2357923f0db948c567068f qrencode-3.2.0.tar.bz2" | sha256sum -c
+ echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c
+ echo "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d zlib-1.2.8.tar.gz" | sha256sum -c
+ echo "32c7acf1608b9c8b71b743b9780adb7a7b347563dbfb4a5263761056da44cc96 libpng-1.6.8.tar.gz" | sha256sum -c
+ echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c
mkdir -p $INSTALLPREFIX
- tar xzf openssl-1.0.1c.tar.gz
- cd openssl-1.0.1c
+ tar xzf openssl-1.0.1e.tar.gz
+ cd openssl-1.0.1e
./Configure --cross-compile-prefix=$HOST- mingw --openssldir=$INSTALLPREFIX
make
make install_sw
@@ -51,11 +51,11 @@ script: |
make install_lib install_include
cd ../..
#
- tar xzf miniupnpc-1.6.tar.gz
- cd miniupnpc-1.6
+ tar xzf miniupnpc-1.8.tar.gz
+ cd miniupnpc-1.8
echo "
- --- miniupnpc-1.6/Makefile.mingw.orig 2013-09-29 18:52:51.014087958 -1000
- +++ miniupnpc-1.6/Makefile.mingw 2013-09-29 19:09:29.663318691 -1000
+ --- miniupnpc-1.8/Makefile.mingw.orig 2013-09-29 18:52:51.014087958 -1000
+ +++ miniupnpc-1.8/Makefile.mingw 2013-09-29 19:09:29.663318691 -1000
@@ -67,8 +67,8 @@
wingenminiupnpcstrings.o: wingenminiupnpcstrings.c
@@ -75,26 +75,27 @@ script: |
install libminiupnpc.a $INSTALLPREFIX/lib
cd ..
#
- tar xzf zlib-1.2.6.tar.gz
- cd zlib-1.2.6
+ tar xzf zlib-1.2.8.tar.gz
+ cd zlib-1.2.8
CROSS_PREFIX=$HOST- ./configure --prefix=$INSTALLPREFIX --static
make
make install
cd ..
#
- tar xzf libpng-1.5.9.tar.gz
- cd libpng-1.5.9
- CFLAGS="-I$INSTALLPREFIX/include" LDFLAGS="-L$INSTALLPREFIX/lib" ./configure --disable-shared --prefix=$INSTALLPREFIX --host=$HOST
+ tar xzf libpng-1.6.8.tar.gz
+ cd libpng-1.6.8
+ OPT="-O2"
+ CPPFLAGS="${OPT} -I$INSTALLPREFIX/include" CFLAGS="${OPT} -I$INSTALLPREFIX/include" LDFLAGS="${OPT} -L$INSTALLPREFIX/lib" ./configure --disable-shared --prefix=$INSTALLPREFIX --host=$HOST
make $MAKEOPTS
make install
cd ..
#
- tar xjf qrencode-3.2.0.tar.bz2
- cd qrencode-3.2.0
+ tar xjf qrencode-3.4.3.tar.bz2
+ cd qrencode-3.4.3
png_CFLAGS="-I$INSTALLPREFIX/include" png_LIBS="-L$INSTALLPREFIX/lib -lpng" ./configure --prefix=$INSTALLPREFIX --host=$HOST
make
make install
cd ..
#
cd $INSTALLPREFIX
- zip -r $OUTDIR/bitcoin-deps-win32-gitian-r9.zip include lib
+ zip -r $OUTDIR/bitcoin-deps-win32-gitian-r10.zip include lib
diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml
new file mode 100644
index 0000000000..b0fe86e259
--- /dev/null
+++ b/contrib/gitian-descriptors/gitian-linux.yml
@@ -0,0 +1,56 @@
+---
+name: "bitcoin"
+suites:
+- "precise"
+architectures:
+- "i386"
+- "amd64"
+packages:
+- "qt4-qmake"
+- "libqt4-dev"
+- "libboost-system-dev"
+- "libboost-filesystem-dev"
+- "libboost-program-options-dev"
+- "libboost-thread-dev"
+- "libboost-test-dev"
+- "libssl-dev"
+- "git-core"
+- "unzip"
+- "pkg-config"
+- "autoconf2.13"
+- "libtool"
+- "automake"
+- "faketime"
+- "bsdmainutils"
+reference_datetime: "2013-06-01 00:00:00"
+remotes:
+- "url": "https://github.com/bitcoin/bitcoin.git"
+ "dir": "bitcoin"
+files:
+- "bitcoin-deps-linux32-gitian-r1.zip"
+- "bitcoin-deps-linux64-gitian-r1.zip"
+script: |
+ STAGING="$HOME/install"
+ OPTFLAGS='-O2'
+ BINDIR="${OUTDIR}/bin/${GBUILD_BITS}" # 32/64 bit build specific output directory
+ export LIBRARY_PATH="$STAGING/lib"
+ mkdir -p ${BINDIR}
+ #
+ mkdir -p $STAGING
+ cd $STAGING
+ unzip ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r1.zip
+ cd ../build
+ #
+ cd bitcoin
+ export TAR_OPTIONS=--mtime=`echo $REFERENCE_DATETIME | awk '{ print $1 }'`
+ ./autogen.sh
+ ./configure --prefix=$STAGING --bindir=$BINDIR --with-protoc-bindir=$STAGING/host/bin --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}"
+ make dist
+ mkdir -p distsrc
+ cd distsrc
+ tar --strip-components=1 -xf ../bitcoin-*.tar.*
+ ./configure --prefix=$STAGING --bindir=$BINDIR --with-protoc-bindir=$STAGING/host/bin --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}"
+ make $MAKEOPTS
+ make $MAKEOPTS install-strip
+ mkdir -p $OUTDIR/src
+ cp ../bitcoin-*.tar.* $OUTDIR/src
diff --git a/contrib/gitian-descriptors/gitian-win32.yml b/contrib/gitian-descriptors/gitian-win32.yml
index a863335ce9..794fa27f1f 100644
--- a/contrib/gitian-descriptors/gitian-win32.yml
+++ b/contrib/gitian-descriptors/gitian-win32.yml
@@ -22,9 +22,9 @@ remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
"dir": "bitcoin"
files:
-- "qt-win32-4.8.3-gitian-r4.zip"
+- "qt-win32-5.2.0-gitian-r1.zip"
- "boost-win32-1.55.0-gitian-r6.zip"
-- "bitcoin-deps-win32-gitian-r9.zip"
+- "bitcoin-deps-win32-gitian-r10.zip"
- "protobuf-win32-2.5.0-gitian-r3.zip"
script: |
#
@@ -34,9 +34,9 @@ script: |
#
mkdir -p $STAGING
cd $STAGING
- unzip ../build/qt-win32-4.8.3-gitian-r4.zip
+ unzip ../build/qt-win32-5.2.0-gitian-r1.zip
unzip ../build/boost-win32-1.55.0-gitian-r6.zip
- unzip ../build/bitcoin-deps-win32-gitian-r9.zip
+ unzip ../build/bitcoin-deps-win32-gitian-r10.zip
unzip ../build/protobuf-win32-2.5.0-gitian-r3.zip
cd $HOME/build/
#
diff --git a/contrib/gitian-descriptors/gitian.yml b/contrib/gitian-descriptors/gitian.yml
deleted file mode 100644
index e29033d29b..0000000000
--- a/contrib/gitian-descriptors/gitian.yml
+++ /dev/null
@@ -1,74 +0,0 @@
----
-name: "bitcoin"
-suites:
-- "lucid"
-architectures:
-- "i386"
-- "amd64"
-packages:
-- "libdb4.8++-dev"
-- "qt4-qmake"
-- "libqt4-dev"
-- "libboost-system-dev"
-- "libboost-filesystem-dev"
-- "libboost-program-options-dev"
-- "libboost-thread-dev"
-- "libboost-test-dev"
-- "libssl-dev"
-- "git-core"
-- "unzip"
-- "pkg-config"
-- "libpng12-dev"
-- "autoconf2.13"
-- "libtool"
-- "automake"
-- "faketime"
-- "bsdmainutils"
-reference_datetime: "2013-06-01 00:00:00"
-remotes:
-- "url": "https://github.com/bitcoin/bitcoin.git"
- "dir": "bitcoin"
-files:
-- "miniupnpc-1.6.tar.gz"
-- "qrencode-3.2.0.tar.bz2"
-- "protobuf-2.5.0.tar.bz2"
-script: |
- STAGING="$HOME/install"
- export LIBRARY_PATH="$STAGING/lib"
- # Integrity Check
- echo "bbd6b756e6af44b5a5b0f9b93eada3fb8922ed1d6451b7d6f184d0ae0c813994 miniupnpc-1.6.tar.gz" | sha256sum -c
- echo "03c4bc7cd9a75747c3815d509bbe061907d615764f2357923f0db948c567068f qrencode-3.2.0.tar.bz2" | sha256sum -c
- echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c
-
- tar xzfm miniupnpc-1.6.tar.gz
- cd miniupnpc-1.6
- INSTALLPREFIX=$STAGING make $MAKEOPTS install
- cd ..
- #
- tar xjfm qrencode-3.2.0.tar.bz2
- cd qrencode-3.2.0
- sed -i 's/@LIBPTHREAD@//' libqrencode.pc.in
- ./configure --prefix=$STAGING --enable-static --disable-shared
- make $MAKEOPTS install
- cd ..
- #
- tar xjfm protobuf-2.5.0.tar.bz2
- cd protobuf-2.5.0
- mkdir -p $STAGING/host/bin
- ./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared
- make $MAKEOPTS install
- cd ..
- #
- cd bitcoin
- export TAR_OPTIONS=--mtime=`echo $REFERENCE_DATETIME | awk '{ print $1 }'`
- ./autogen.sh
- ./configure --prefix=$STAGING --bindir=$OUTDIR --with-protoc-bindir=$STAGING/host/bin --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include" LDFLAGS="-L$STAGING/lib" CXXFLAGS="-frandom-seed=bitcoin"
- make dist
- mkdir -p distsrc
- cd distsrc
- tar --strip-components=1 -xf ../bitcoin-*.tar.*
- ./configure --prefix=$STAGING --bindir=$OUTDIR --with-protoc-bindir=$STAGING/host/bin --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include" LDFLAGS="-L$STAGING/lib" CXXFLAGS="-frandom-seed=bitcoin"
- make $MAKEOPTS
- make $MAKEOPTS install-strip
- mkdir -p $OUTDIR/src
- cp ../bitcoin-*.tar.* $OUTDIR/src
diff --git a/contrib/gitian-descriptors/qt-win32.yml b/contrib/gitian-descriptors/qt-win32.yml
index ffa8bcab46..8bc53bbf25 100644
--- a/contrib/gitian-descriptors/qt-win32.yml
+++ b/contrib/gitian-descriptors/qt-win32.yml
@@ -10,41 +10,38 @@ packages:
- "zip"
- "unzip"
- "faketime"
-- "unzip"
+- "libz-dev"
reference_datetime: "2011-01-30 00:00:00"
remotes: []
files:
-- "qt-everywhere-opensource-src-4.8.3.tar.gz"
-- "bitcoin-deps-win32-gitian-r9.zip"
+- "qt-everywhere-opensource-src-5.2.0.tar.gz"
+- "bitcoin-deps-win32-gitian-r10.zip"
script: |
#
HOST=i686-w64-mingw32
INSTDIR="$HOME/qt/"
# Integrity Check
- echo "f1f72974f924861be04019f49f07cd43ab3c95056db2ba8f34b283487cccc728 qt-everywhere-opensource-src-4.8.3.tar.gz" | sha256sum -c
+ echo "395ec72277c5786c65b8163ef5817fd03d0a1f524a6d47f53624baf8056f1081 qt-everywhere-opensource-src-5.2.0.tar.gz" | sha256sum -c
mkdir $INSTDIR
mkdir -p $INSTDIR/host/bin
#
# Need mingw-compiled openssl from bitcoin-deps:
- unzip bitcoin-deps-win32-gitian-r9.zip
+ unzip bitcoin-deps-win32-gitian-r10.zip
DEPSDIR=`pwd`
#
- tar xzf qt-everywhere-opensource-src-4.8.3.tar.gz
- cd qt-everywhere-opensource-src-4.8.3
+ tar xzf qt-everywhere-opensource-src-5.2.0.tar.gz
+ cd qt-everywhere-opensource-src-5.2.0
+ SPECNAME="win32-g++"
+ SPECFILE="qtbase/mkspecs/${SPECNAME}/qmake.conf"
sed 's/$TODAY/2011-01-30/' -i configure
- sed "s/i686-pc-mingw32-/$HOST-/" -i mkspecs/unsupported/win32-g++-cross/qmake.conf
- sed --posix "s|QMAKE_CFLAGS\t\t= -pipe|QMAKE_CFLAGS\t\t= -pipe -isystem /usr/$HOST/include/ -frandom-seed=qtbuild|" -i mkspecs/unsupported/win32-g++-cross/qmake.conf
- sed 's/QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads/QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf
- sed 's/QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads/QMAKE_LFLAGS_EXCEPTIONS_ON = -lmingwthrd/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf
- sed --posix "s/QMAKE_MOC\t\t= $HOST-moc/QMAKE_MOC\t\t= moc/" -i mkspecs/unsupported/win32-g++-cross/qmake.conf
- sed --posix "s/QMAKE_RCC\t\t= $HOST-rcc/QMAKE_RCC\t\t= rcc/" -i mkspecs/unsupported/win32-g++-cross/qmake.conf
- sed --posix "s/QMAKE_UIC\t\t= $HOST-uic/QMAKE_UIC\t\t= uic/" -i mkspecs/unsupported/win32-g++-cross/qmake.conf
+ sed --posix "s|QMAKE_CFLAGS = -pipe -fno-keep-inline-dllexport|QMAKE_CFLAGS\t\t= -pipe -fno-keep-inline-dllexport -isystem /usr/$HOST/include/ -frandom-seed=qtbuild -I$DEPSDIR/include|" -i ${SPECFILE}
+ sed --posix "s|QMAKE_LFLAGS =|QMAKE_LFLAGS\t\t= -L$DEPSDIR/lib|" -i ${SPECFILE}
# ar adds timestamps to every object file included in the static library
# providing -D as ar argument is supposed to solve it, but doesn't work as qmake strips off the arguments and adds -M to pass a script...
# which somehow cannot be combined with other flags.
# use faketime only for ar, as it confuses make/qmake into hanging sometimes
- sed --posix "s|QMAKE_LIB\t\t= $HOST-ar -ru|QMAKE_LIB\t\t= $HOME/ar -Dr|" -i mkspecs/unsupported/win32-g++-cross/qmake.conf
+ sed --posix "s|QMAKE_LIB = \\\$\\\${CROSS_COMPILE}ar -ru|QMAKE_LIB\t\t= $HOME/ar -Dr|" -i ${SPECFILE}
echo '#!/bin/bash' > $HOME/ar
echo 'export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1' >> $HOME/ar
echo "$HOST-ar \"\$@\"" >> $HOME/ar
@@ -52,14 +49,12 @@ script: |
#export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
+ #
# Compile static libraries, and use statically linked openssl (-openssl-linked):
- OPENSSL_LIBS="-L$DEPSDIR/lib -lssl -lcrypto -lgdi32" ./configure -prefix $INSTDIR -bindir $INSTDIR/host/bin -I $DEPSDIR/include -confirm-license -release -opensource -static -no-qt3support -xplatform unsupported/win32-g++-cross -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-declarative -no-script -no-scripttools -no-javascript-jit -no-webkit -no-svg -no-xmlpatterns -no-sql-sqlite -no-nis -no-cups -no-iconv -no-dbus -no-gif -no-libtiff -no-opengl -nomake examples -nomake demos -nomake docs -no-feature-style-plastique -no-feature-style-cleanlooks -no-feature-style-motif -no-feature-style-cde -no-feature-style-windowsce -no-feature-style-windowsmobile -no-feature-style-s60 -openssl-linked
- find . -name *.prl | xargs -l sed 's|/\.||' -i
- find . -name *.prl | xargs -l sed 's|/$||' -i
+ OPENSSL_LIBS="-L$DEPSDIR/lib -lssl -lcrypto -lgdi32" ./configure -prefix $INSTDIR -bindir $INSTDIR/host/bin -confirm-license -release -opensource -static -xplatform $SPECNAME -device-option CROSS_COMPILE="$HOST-" -no-audio-backend -no-javascript-jit -no-sql-sqlite -no-sql-odbc -no-nis -no-cups -no-iconv -no-dbus -no-gif -no-opengl -no-compile-examples -no-feature-style-windowsce -no-feature-style-windowsmobile -no-qml-debug -openssl-linked -skip qtsvg -skip qtwebkit -skip qtwebkit-examples -skip qtserialport -skip qtdeclarative -skip qtmultimedia -skip qtimageformats -skip qtlocation -skip qtsensors -skip qtquick1 -skip qtquickcontrols -skip qtactiveqt -skip qtconnectivity -skip qtwinextras -skip qtxmlpatterns -skip qtscript -skip qtdoc -system-libpng -system-zlib
make $MAKEOPTS install
cd $INSTDIR
- find . -name *.prl | xargs -l sed 's|/$||' -i
# as zip stores file timestamps, use faketime to intercept stat calls to set dates for all files to reference date
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
- zip -r $OUTDIR/qt-win32-4.8.3-gitian-r4.zip *
+ zip -r $OUTDIR/qt-win32-5.2.0-gitian-r1.zip *
diff --git a/contrib/linearize/linearize.py b/contrib/linearize/linearize.py
index 2d8509f83c..12049100dc 100644
--- a/contrib/linearize/linearize.py
+++ b/contrib/linearize/linearize.py
@@ -73,9 +73,9 @@ def get_blocks(settings):
rpc = BitcoinRPC(settings['host'], settings['port'],
settings['rpcuser'], settings['rpcpass'])
- outf = open(settings['output'], 'wb')
+ outf = open(settings['output'], 'ab')
- for height in xrange(settings['max_height']+1):
+ for height in xrange(settings['min_height'], settings['max_height']+1):
data = getblock(rpc, settings, height)
outhdr = settings['netmagic']
@@ -114,6 +114,8 @@ if __name__ == '__main__':
settings['host'] = '127.0.0.1'
if 'port' not in settings:
settings['port'] = 8332
+ if 'min_height' not in settings:
+ settings['min_height'] = 0
if 'max_height' not in settings:
settings['max_height'] = 250000
if 'rpcuser' not in settings or 'rpcpass' not in settings:
@@ -122,6 +124,7 @@ if __name__ == '__main__':
settings['netmagic'] = settings['netmagic'].decode('hex')
settings['port'] = int(settings['port'])
+ settings['min_height'] = int(settings['min_height'])
settings['max_height'] = int(settings['max_height'])
get_blocks(settings)
diff --git a/doc/assets-attribution.md b/doc/assets-attribution.md
index b095491285..d42be8fb24 100644
--- a/doc/assets-attribution.md
+++ b/doc/assets-attribution.md
@@ -76,7 +76,7 @@ Everaldo (Everaldo Coelho)
* Site: [http://findicons.com/icon/17102/reload?id=17102](http://findicons.com/icon/17102/reload?id=17102)
### Assets Used
- scripts/img/reload.xcf (modified), src/qt/res/movies/update_spinner.mng
+ scripts/img/reload.xcf (modified), src/qt/res/movies/*.png
[Vignoni David](http://www.oxygen-icons.org)
-----------------------
@@ -101,4 +101,4 @@ Jonas Schnelli
src/qt/res/src/bitcoin.ico, src/qt/res/src/bitcoin.png,
src/qt/res/src/bitcoin_testnet.png, docs/bitcoin_logo_doxygen.png,
src/qt/res/icons/toolbar.png, src/qt/res/icons/toolbar_testnet.png,
- src/qt/res/images/splash.png, src/qt/res/images/splash_testnet.png \ No newline at end of file
+ src/qt/res/images/splash.png, src/qt/res/images/splash_testnet.png
diff --git a/doc/build-osx.md b/doc/build-osx.md
index a9a78b374b..381e8b6f0a 100644
--- a/doc/build-osx.md
+++ b/doc/build-osx.md
@@ -45,7 +45,7 @@ Instructions: MacPorts
Installing the dependencies using MacPorts is very straightforward.
- sudo port install boost db48@+no_java openssl miniupnpc autoconf pkgconfig
+ sudo port install boost db48@+no_java openssl miniupnpc autoconf pkgconfig automake
### Building `bitcoind`
diff --git a/doc/build-unix.md b/doc/build-unix.md
index b88186a70e..5124205a34 100644
--- a/doc/build-unix.md
+++ b/doc/build-unix.md
@@ -68,6 +68,9 @@ for Ubuntu 12.04 and later:
Ubuntu 12.04 and later have packages for libdb5.1-dev and libdb5.1++-dev,
but using these will break binary wallet compatibility, and is not recommended.
+
+for Ubuntu 13.10:
+ libboost1.54-all-dev will not work. Remove libboost1.54-all-dev and install libboost1.53-all-dev
for other Ubuntu & Debian:
diff --git a/doc/release-process.md b/doc/release-process.md
index 2c0e2a3677..4281936819 100644
--- a/doc/release-process.md
+++ b/doc/release-process.md
@@ -39,18 +39,20 @@ Release Process
Fetch and build inputs: (first time, or when dependency versions change)
mkdir -p inputs; cd inputs/
- wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.6.tar.gz' -O miniupnpc-1.6.tar.gz
- wget 'https://www.openssl.org/source/openssl-1.0.1c.tar.gz'
+ wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz' -O miniupnpc-1.8.tar.gz
+ wget 'https://www.openssl.org/source/openssl-1.0.1e.tar.gz'
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
- wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/history/zlib/zlib-1.2.6.tar.gz'
- wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/history/libpng15/libpng-1.5.9.tar.gz'
- wget 'https://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2'
- wget 'https://downloads.sourceforge.net/project/boost/boost/1.54.0/boost_1_54_0.tar.bz2'
+ wget 'http://zlib.net/zlib-1.2.8.tar.gz'
+ wget 'ftp://ftp.simplesystems.org/pub/png/src/libpng16/libpng-1.6.8.tar.gz'
+ wget 'https://fukuchi.org/works/qrencode/qrencode-3.4.3.tar.bz2'
+ wget 'https://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2'
wget 'https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch' -O \
boost-mingw-gas-cross-compile-2013-03-03.patch
- wget 'https://download.qt-project.org/archive/qt/4.8/4.8.3/qt-everywhere-opensource-src-4.8.3.tar.gz'
+ wget 'https://download.qt-project.org/official_releases/qt/5.2/5.2.0/single/qt-everywhere-opensource-src-5.2.0.tar.gz'
wget 'https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2'
cd ..
+ ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-linux.yml
+ mv build/out/bitcoin-deps-*.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml
mv build/out/boost-win32-*.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml
@@ -62,8 +64,8 @@ Release Process
Build bitcoind and bitcoin-qt on Linux32, Linux64, and Win32:
- ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian.yml
- ./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.yml
+ ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
+ ./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
pushd build/out
zip -r bitcoin-${VERSION}-linux-gitian.zip *
mv bitcoin-${VERSION}-linux-gitian.zip ../../../
diff --git a/share/qt/Info.plist.in b/share/qt/Info.plist.in
index 54ced278f2..b1c2dcb462 100644
--- a/share/qt/Info.plist.in
+++ b/share/qt/Info.plist.in
@@ -9,7 +9,7 @@
<string>APPL</string>
<key>CFBundleGetInfoString</key>
- <string>@CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@, Copyright © 2009-@COPYRIGHT_YEAR@ The Bitcoin developers</string>
+ <string>@CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@, Copyright © 2009-@COPYRIGHT_YEAR@ The Bitcoin Core developers</string>
<key>CFBundleShortVersionString</key>
<string>@CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@</string>
diff --git a/share/qt/img/reload.png b/share/qt/img/reload.png
new file mode 100644
index 0000000000..9068db9a63
--- /dev/null
+++ b/share/qt/img/reload.png
Binary files differ
diff --git a/share/qt/make_spinner.py b/share/qt/make_spinner.py
index 136aff3cb7..bb19e91508 100755
--- a/share/qt/make_spinner.py
+++ b/share/qt/make_spinner.py
@@ -1,16 +1,15 @@
#!/usr/bin/env python
# W.J. van der Laan, 2011
-# Make spinning .mng animation from a .png
+# Make spinning animation from a .png
# Requires imagemagick 6.7+
from __future__ import division
from os import path
from PIL import Image
from subprocess import Popen
-SRC='img/reload_scaled.png'
-DST='../../src/qt/res/movies/update_spinner.mng'
-TMPDIR='/tmp'
-TMPNAME='tmp-%03i.png'
+SRC='img/reload.png'
+TMPDIR='../../src/qt/res/movies/'
+TMPNAME='spinner-%03i.png'
NUMFRAMES=35
FRAMERATE=10.0
CONVERT='convert'
@@ -36,8 +35,4 @@ for frame in xrange(NUMFRAMES):
im_new.save(outfile, 'png')
frame_files.append(outfile)
-p = Popen([CONVERT, "-delay", str(FRAMERATE), "-dispose", "2"] + frame_files + [DST])
-p.communicate()
-
-
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",