501 lines
16 KiB
Diff
501 lines
16 KiB
Diff
diff --git a/Makefile.am b/Makefile.am
|
|
index b51f477..58241df 100644
|
|
--- a/Makefile.am
|
|
+++ b/Makefile.am
|
|
@@ -35,6 +35,11 @@ COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \
|
|
baseline_filtered.info block_test_filtered.info \
|
|
leveldb_baseline_filtered.info test_bitcoin_coverage.info test_bitcoin.info
|
|
|
|
+if ENABLE_DAEMONLIB
|
|
+all:
|
|
+ $(MAKE) -C src
|
|
+endif
|
|
+
|
|
dist-hook:
|
|
-$(MAKE) -C $(top_distdir)/src/leveldb clean
|
|
-$(MAKE) -C $(top_distdir)/src/secp256k1 distclean
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 9814197..3f25415 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -126,6 +126,12 @@ AC_ARG_ENABLE([reduce-exports],
|
|
[use_reduce_exports=$enableval],
|
|
[use_reduce_exports=auto])
|
|
|
|
+AC_ARG_ENABLE([daemonlib],
|
|
+ [AS_HELP_STRING([--enable-daemonlib],
|
|
+ [compile all of bitcoind as a library (default is no)])],
|
|
+ [use_daemonlib=$enableval],
|
|
+ [use_daemonlib=no])
|
|
+
|
|
AC_ARG_ENABLE([ccache],
|
|
[AS_HELP_STRING([--enable-ccache],
|
|
[use ccache for building (default is yes if ccache is found)])],
|
|
@@ -387,6 +393,9 @@ fi
|
|
if test x$use_hardening != xno; then
|
|
AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"])
|
|
AX_CHECK_COMPILE_FLAG([-fstack-protector-all],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fstack-protector-all"])
|
|
+ if test x$use_daemonlib = xno; then
|
|
+ AX_CHECK_COMPILE_FLAG([-fPIE],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fPIE"])
|
|
+ fi
|
|
|
|
AX_CHECK_PREPROC_FLAG([-D_FORTIFY_SOURCE=2],[
|
|
AX_CHECK_PREPROC_FLAG([-U_FORTIFY_SOURCE],[
|
|
@@ -400,7 +409,7 @@ if test x$use_hardening != xno; then
|
|
AX_CHECK_LINK_FLAG([[-Wl,-z,relro]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,relro"])
|
|
AX_CHECK_LINK_FLAG([[-Wl,-z,now]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,-z,now"])
|
|
|
|
- if test x$TARGET_OS != xwindows; then
|
|
+ if test x$TARGET_OS != xwindows -a x$use_daemonlib = xno; then
|
|
# All windows code is PIC, forcing it on just adds useless compile warnings
|
|
AX_CHECK_COMPILE_FLAG([-fPIE],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fPIE"])
|
|
AX_CHECK_LINK_FLAG([[-pie]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -pie"])
|
|
@@ -418,6 +427,17 @@ if test x$use_hardening != xno; then
|
|
OBJCXXFLAGS="$CXXFLAGS"
|
|
fi
|
|
|
|
+AC_DEFINE([ENABLE_DAEMONLIB],[0],[Enable daemonlib.])
|
|
+AM_CONDITIONAL([ENABLE_DAEMONLIB],[false])
|
|
+if test x$use_daemonlib != xno; then
|
|
+ AX_CHECK_COMPILE_FLAG([-fPIC],[DAEMONLIB_CXXFLAGS="$DAEMONLIB_CXXFLAGS -fPIC"])
|
|
+ AC_DEFINE([ENABLE_DAEMONLIB],[1],[Enable daemonlib.])
|
|
+ AM_CONDITIONAL([ENABLE_DAEMONLIB],[true])
|
|
+ CXXFLAGS="$CXXFLAGS $DAEMONLIB_CXXFLAGS"
|
|
+ CPPFLAGS="$CPPFLAGS $DAEMONLIB_CPPFLAGS"
|
|
+ OBJCXXFLAGS="$CXXFLAGS"
|
|
+fi
|
|
+
|
|
dnl this flag screws up non-darwin gcc even when the check fails. special-case it.
|
|
if test x$TARGET_OS = xdarwin; then
|
|
AX_CHECK_LINK_FLAG([[-Wl,-dead_strip]], [LDFLAGS="$LDFLAGS -Wl,-dead_strip"])
|
|
@@ -463,7 +483,7 @@ AC_LINK_IFELSE([AC_LANG_SOURCE([
|
|
]
|
|
)
|
|
|
|
-if test x$use_reduce_exports != xno; then
|
|
+if test x$use_reduce_exports != xno -a x$use_daemonlib = xno; then
|
|
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden],[RE_CXXFLAGS="-fvisibility=hidden"],
|
|
[
|
|
if test x$use_reduce_exports = xyes; then
|
|
@@ -811,6 +831,13 @@ if test x$build_bitcoin_utils$build_bitcoin_libs$build_bitcoind$bitcoin_enable_q
|
|
AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui or --enable-tests])
|
|
fi
|
|
|
|
+AC_MSG_CHECKING([whether to compile as daemonlib])
|
|
+if test x$use_daemonlib != xno; then
|
|
+ AC_MSG_RESULT([yes])
|
|
+else
|
|
+ AC_MSG_RESULT([no])
|
|
+fi
|
|
+
|
|
AM_CONDITIONAL([TARGET_DARWIN], [test x$TARGET_OS = xdarwin])
|
|
AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
|
|
AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
|
|
diff --git a/doc/build-unix.md b/doc/build-unix.md
|
|
index 8ddee3b..c4274a3 100644
|
|
--- a/doc/build-unix.md
|
|
+++ b/doc/build-unix.md
|
|
@@ -239,3 +239,42 @@ In this case there is no dependency on Berkeley DB 4.8.
|
|
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
|
|
call not `getwork`.
|
|
|
|
+Compiling bitcoind as a shared object (`libbitcoind.so`)
|
|
+--------------------------------------------------------
|
|
+
|
|
+### Compiling as a library
|
|
+
|
|
+``` bash
|
|
+# ensure clean up
|
|
+$ make clean
|
|
+
|
|
+# create configure file
|
|
+$ ./autogen.sh
|
|
+
|
|
+# configure as a library with -fPIC on all object files
|
|
+# use --with-incompatible-bdb if necessary
|
|
+# use --prefix=/usr if necessary
|
|
+$ ./configure --enable-daemonlib
|
|
+
|
|
+# build libbitcoind.so
|
|
+$ time make
|
|
+...
|
|
+real 31m33.128s
|
|
+user 16m23.930s
|
|
+sys 2m52.310s
|
|
+```
|
|
+
|
|
+`--enable-daemonlib` will compile all object files with `-fPIC` (Position
|
|
+Independent Code - needed to create a shared object).
|
|
+
|
|
+`make` will then compile `./src/libbitcoind.so` (with `-shared -fPIC`), linking
|
|
+to all the freshly compiled PIC object files. This will completely ignore
|
|
+compiling tests and the QT object files.
|
|
+
|
|
+Without `--enable-daemonlib`, the Makefile with compile bitcoind with -fPIE
|
|
+(Position Independent for Executable), this allows compiling of bitcoind.
|
|
+
|
|
+#### Todo
|
|
+
|
|
+- Find a way to compile bitcoind and libbitcoind.so at the same time without
|
|
+ recompiling object files each time? Possibly use libtool's .lo/.la.
|
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
|
index d6ac6e1..4ac63a2 100644
|
|
--- a/src/Makefile.am
|
|
+++ b/src/Makefile.am
|
|
@@ -31,12 +31,15 @@ LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
|
|
LIBBITCOIN_UNIVALUE=univalue/libbitcoin_univalue.a
|
|
LIBBITCOINQT=qt/libbitcoinqt.a
|
|
LIBSECP256K1=secp256k1/libsecp256k1.la
|
|
+LIBBITCOIND=libbitcoind.so
|
|
|
|
$(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
|
|
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
|
|
|
|
# Make is not made aware of per-object dependencies to avoid limiting building parallelization
|
|
# But to build the less dependent modules first, we manually select their order here:
|
|
+
|
|
+if !ENABLE_DAEMONLIB
|
|
noinst_LIBRARIES = \
|
|
crypto/libbitcoin_crypto.a \
|
|
libbitcoin_util.a \
|
|
@@ -76,6 +79,7 @@ BITCOIN_CORE_H = \
|
|
amount.h \
|
|
base58.h \
|
|
bloom.h \
|
|
+ bitcoind.h \
|
|
chain.h \
|
|
chainparams.h \
|
|
chainparamsbase.h \
|
|
@@ -152,10 +156,17 @@ JSON_H = \
|
|
json/json_spirit_writer.h \
|
|
json/json_spirit_writer_template.h
|
|
|
|
+else
|
|
+.PHONY: FORCE
|
|
+BITCOIN_INCLUDES += $(BDB_CPPFLAGS)
|
|
+endif
|
|
+
|
|
obj/build.h: FORCE
|
|
@$(MKDIR_P) $(builddir)/obj
|
|
@$(top_srcdir)/share/genbuild.sh $(abs_top_builddir)/src/obj/build.h \
|
|
$(abs_top_srcdir)
|
|
+
|
|
+if !ENABLE_DAEMONLIB
|
|
libbitcoin_util_a-clientversion.$(OBJEXT): obj/build.h
|
|
|
|
# server: shared between bitcoind and bitcoin-qt
|
|
@@ -165,6 +176,7 @@ libbitcoin_server_a_SOURCES = \
|
|
alert.cpp \
|
|
bloom.cpp \
|
|
chain.cpp \
|
|
+ bitcoind.cpp \
|
|
checkpoints.cpp \
|
|
init.cpp \
|
|
leveldbwrapper.cpp \
|
|
@@ -304,7 +316,7 @@ bitcoind_LDADD = \
|
|
if ENABLE_WALLET
|
|
bitcoind_LDADD += libbitcoin_wallet.a
|
|
endif
|
|
-bitcoind_SOURCES = bitcoind.cpp
|
|
+bitcoind_SOURCES = bitcoin-main.cpp
|
|
#
|
|
|
|
if TARGET_WINDOWS
|
|
@@ -380,6 +392,7 @@ if USE_LIBSECP256K1
|
|
libbitcoinconsensus_la_LIBADD += secp256k1/libsecp256k1.la
|
|
endif
|
|
endif
|
|
+endif
|
|
|
|
CLEANFILES = leveldb/libleveldb.a leveldb/libmemenv.a *.gcda *.gcno
|
|
|
|
@@ -405,6 +418,9 @@ clean-local:
|
|
@test -f $(PROTOC)
|
|
$(AM_V_GEN) $(PROTOC) --cpp_out=$(@D) --proto_path=$(abspath $(<D) $<)
|
|
|
|
+if ENABLE_DAEMONLIB
|
|
+include Makefile.daemon.include
|
|
+else
|
|
if ENABLE_TESTS
|
|
include Makefile.test.include
|
|
endif
|
|
@@ -416,3 +432,4 @@ endif
|
|
if ENABLE_QT_TESTS
|
|
include Makefile.qttest.include
|
|
endif
|
|
+endif
|
|
diff --git a/src/Makefile.daemon.include b/src/Makefile.daemon.include
|
|
new file mode 100644
|
|
index 0000000..f411ea8
|
|
--- /dev/null
|
|
+++ b/src/Makefile.daemon.include
|
|
@@ -0,0 +1,43 @@
|
|
+all: $(LIBBITCOIND)
|
|
+
|
|
+leveldb_obj = \
|
|
+ $(patsubst %test.o,,\
|
|
+ $(patsubst %bench.o,,\
|
|
+ $(subst leveldb/db/leveldb_main.o,,\
|
|
+ $(subst leveldb/util/testharness.o,,\
|
|
+ $(subst leveldb/util/testutil.o,,\
|
|
+ $(subst leveldb/port/port_win.o,,\
|
|
+ $(subst .cc,.o,$(wildcard leveldb/**/*.cc)) \
|
|
+ $(subst .cc,.o,$(wildcard leveldb/helpers/memenv/memenv.cc)) \
|
|
+ ))))))
|
|
+
|
|
+libbitcoind_obj = \
|
|
+ $(subst bitcoin-main.o,, \
|
|
+ $(subst bitcoin-cli.o,, \
|
|
+ $(subst bitcoin-tx.o,, \
|
|
+ $(subst .cpp,.o,$(wildcard *.cpp))))) \
|
|
+ $(subst compat/glibcxx_compat.o,, \
|
|
+ $(subst compat/glibc_compat.o,, \
|
|
+ $(subst .cpp,.o,$(wildcard compat/*.cpp)))) \
|
|
+ $(subst .cpp,.o,$(wildcard primitives/*.cpp)) \
|
|
+ $(subst .cpp,.o,$(wildcard crypto/*.cpp)) \
|
|
+ $(subst .cpp,.o,$(wildcard script/*.cpp)) \
|
|
+ $(subst .cpp,.o,$(wildcard secp256k1/*.cpp)) \
|
|
+ $(subst univalue/gen.o,, \
|
|
+ $(subst .cpp,.o,$(wildcard univalue/*.cpp)))
|
|
+
|
|
+if GLIBC_BACK_COMPAT
|
|
+libbitcoind_obj += compat/glibc_compat.o
|
|
+libbitcoind_obj += compat/glibcxx_compat.o
|
|
+endif
|
|
+
|
|
+clientversion.o: clientversion.cpp obj/build.h
|
|
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
|
+ $(BITCOIN_INCLUDES) $(BITCOIN_CONFIG_INCLUDES) \
|
|
+ $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
|
|
+
|
|
+$(LIBBITCOIND): $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) $(libbitcoind_obj)
|
|
+ $(CC) -shared $(CXXFLAGS) $(CPPFLAGS) $(DEFS) $(LEVELDB_CPPFLAGS) \
|
|
+ $(BITCOIN_INCLUDES) $(BITCOIN_CONFIG_INCLUDES) -o $@ $(BOOST_LIBS) \
|
|
+ $(BDB_LIBS) $(PROTOBUF_LIBS) $(SSL_LIBS) $(LIBS) \
|
|
+ $(leveldb_obj) $(libbitcoind_obj)
|
|
diff --git a/src/bitcoin-main.cpp b/src/bitcoin-main.cpp
|
|
new file mode 100644
|
|
index 0000000..b37f9cf
|
|
--- /dev/null
|
|
+++ b/src/bitcoin-main.cpp
|
|
@@ -0,0 +1,15 @@
|
|
+// Copyright (c) 2009-2010 Satoshi Nakamoto
|
|
+// Copyright (c) 2009-2013 The Bitcoin developers
|
|
+// Distributed under the MIT/X11 software license, see the accompanying
|
|
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
+
|
|
+#include "bitcoind.h"
|
|
+
|
|
+int main(int argc, char* argv[]) {
|
|
+ SetupEnvironment();
|
|
+
|
|
+ // Connect bitcoind signal handlers
|
|
+ noui_connect();
|
|
+
|
|
+ return (AppInit(argc, argv) ? 0 : 1);
|
|
+}
|
|
diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp
|
|
index be7757b..0e76df1 100644
|
|
--- a/src/bitcoind.cpp
|
|
+++ b/src/bitcoind.cpp
|
|
@@ -3,17 +3,7 @@
|
|
// Distributed under the MIT/X11 software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
-#include "clientversion.h"
|
|
-#include "rpcserver.h"
|
|
-#include "init.h"
|
|
-#include "main.h"
|
|
-#include "noui.h"
|
|
-#include "ui_interface.h"
|
|
-#include "util.h"
|
|
-
|
|
-#include <boost/algorithm/string/predicate.hpp>
|
|
-#include <boost/filesystem.hpp>
|
|
-#include <boost/thread.hpp>
|
|
+#include "bitcoind.h"
|
|
|
|
/* Introduction text for doxygen: */
|
|
|
|
@@ -174,13 +164,3 @@ bool AppInit(int argc, char* argv[])
|
|
|
|
return fRet;
|
|
}
|
|
-
|
|
-int main(int argc, char* argv[])
|
|
-{
|
|
- SetupEnvironment();
|
|
-
|
|
- // Connect bitcoind signal handlers
|
|
- noui_connect();
|
|
-
|
|
- return (AppInit(argc, argv) ? 0 : 1);
|
|
-}
|
|
diff --git a/src/bitcoind.h b/src/bitcoind.h
|
|
new file mode 100644
|
|
index 0000000..0e34008
|
|
--- /dev/null
|
|
+++ b/src/bitcoind.h
|
|
@@ -0,0 +1,25 @@
|
|
+// Copyright (c) 2009-2010 Satoshi Nakamoto
|
|
+// Copyright (c) 2009-2013 The Bitcoin developers
|
|
+// Distributed under the MIT/X11 software license, see the accompanying
|
|
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
+
|
|
+#ifndef _BITCOIN_BITCOIND
|
|
+#define _BITCOIN_BITCOIND 1
|
|
+
|
|
+#include "clientversion.h"
|
|
+#include "rpcserver.h"
|
|
+#include "init.h"
|
|
+#include "main.h"
|
|
+#include "noui.h"
|
|
+#include "ui_interface.h"
|
|
+#include "util.h"
|
|
+#include "rpcclient.h"
|
|
+
|
|
+#include <boost/algorithm/string/predicate.hpp>
|
|
+#include <boost/filesystem.hpp>
|
|
+#include <boost/thread.hpp>
|
|
+
|
|
+extern void DetectShutdownThread(boost::thread_group* threadGroup);
|
|
+extern bool AppInit(int argc, char* argv[]);
|
|
+
|
|
+#endif
|
|
diff --git a/src/init.h b/src/init.h
|
|
index f2f7ac6..10abc3a 100644
|
|
--- a/src/init.h
|
|
+++ b/src/init.h
|
|
@@ -15,7 +15,15 @@ namespace boost
|
|
class thread_group;
|
|
} // namespace boost
|
|
|
|
+#ifdef ENABLE_WALLET
|
|
+extern std::string strWalletFile;
|
|
extern CWallet* pwalletMain;
|
|
+#endif
|
|
+
|
|
+#include <boost/filesystem/path.hpp>
|
|
+#include <boost/thread/mutex.hpp>
|
|
+
|
|
+void ThreadImport(std::vector<boost::filesystem::path> vImportFiles);
|
|
|
|
void StartShutdown();
|
|
bool ShutdownRequested();
|
|
diff --git a/src/leveldbwrapper.h b/src/leveldbwrapper.h
|
|
index 4247920..08c8164 100644
|
|
--- a/src/leveldbwrapper.h
|
|
+++ b/src/leveldbwrapper.h
|
|
@@ -29,10 +29,9 @@ class CLevelDBBatch
|
|
{
|
|
friend class CLevelDBWrapper;
|
|
|
|
-private:
|
|
+public:
|
|
leveldb::WriteBatch batch;
|
|
|
|
-public:
|
|
template <typename K, typename V>
|
|
void Write(const K& key, const V& value)
|
|
{
|
|
@@ -63,7 +62,7 @@ public:
|
|
|
|
class CLevelDBWrapper
|
|
{
|
|
-private:
|
|
+public:
|
|
//! custom environment this database is using (may be NULL in case of default environment)
|
|
leveldb::Env* penv;
|
|
|
|
@@ -85,7 +84,6 @@ private:
|
|
//! the database itself
|
|
leveldb::DB* pdb;
|
|
|
|
-public:
|
|
CLevelDBWrapper(const boost::filesystem::path& path, size_t nCacheSize, bool fMemory = false, bool fWipe = false);
|
|
~CLevelDBWrapper();
|
|
|
|
diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp
|
|
index 8b95373..53f9a5a 100644
|
|
--- a/src/rpcdump.cpp
|
|
+++ b/src/rpcdump.cpp
|
|
@@ -26,11 +26,11 @@ using namespace std;
|
|
|
|
void EnsureWalletIsUnlocked();
|
|
|
|
-std::string static EncodeDumpTime(int64_t nTime) {
|
|
+std::string EncodeDumpTime(int64_t nTime) {
|
|
return DateTimeStrFormat("%Y-%m-%dT%H:%M:%SZ", nTime);
|
|
}
|
|
|
|
-int64_t static DecodeDumpTime(const std::string &str) {
|
|
+int64_t DecodeDumpTime(const std::string &str) {
|
|
static const boost::posix_time::ptime epoch = boost::posix_time::from_time_t(0);
|
|
static const std::locale loc(std::locale::classic(),
|
|
new boost::posix_time::time_input_facet("%Y-%m-%dT%H:%M:%SZ"));
|
|
@@ -43,7 +43,7 @@ int64_t static DecodeDumpTime(const std::string &str) {
|
|
return (ptime - epoch).total_seconds();
|
|
}
|
|
|
|
-std::string static EncodeDumpString(const std::string &str) {
|
|
+std::string EncodeDumpString(const std::string &str) {
|
|
std::stringstream ret;
|
|
BOOST_FOREACH(unsigned char c, str) {
|
|
if (c <= 32 || c >= 128 || c == '%') {
|
|
diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp
|
|
index d2d14ad..e8abb3d 100644
|
|
--- a/src/rpcwallet.cpp
|
|
+++ b/src/rpcwallet.cpp
|
|
@@ -4,6 +4,7 @@
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include "amount.h"
|
|
+#include "rpcwallet.h"
|
|
#include "base58.h"
|
|
#include "core_io.h"
|
|
#include "rpcserver.h"
|
|
diff --git a/src/rpcwallet.h b/src/rpcwallet.h
|
|
new file mode 100644
|
|
index 0000000..2b53241
|
|
--- /dev/null
|
|
+++ b/src/rpcwallet.h
|
|
@@ -0,0 +1,17 @@
|
|
+// Copyright (c) 2010 Satoshi Nakamoto
|
|
+// Copyright (c) 2009-2013 The Bitcoin developers
|
|
+// Distributed under the MIT/X11 software license, see the accompanying
|
|
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
+
|
|
+#ifndef _BITCOINRPC_WALLET_H_
|
|
+#define _BITCOINRPC_WALLET_H_ 1
|
|
+
|
|
+#include "wallet.h"
|
|
+#include "walletdb.h"
|
|
+
|
|
+#include <stdint.h>
|
|
+
|
|
+CAmount GetAccountBalance(CWalletDB& walletdb, const std::string& strAccount, int nMinDepth, const isminefilter& filter);
|
|
+CAmount GetAccountBalance(const std::string& strAccount, int nMinDepth, const isminefilter& filter);
|
|
+
|
|
+#endif
|
|
diff --git a/src/wallet.h b/src/wallet.h
|
|
index 70d274c..604e9e7 100644
|
|
--- a/src/wallet.h
|
|
+++ b/src/wallet.h
|
|
@@ -105,8 +105,6 @@ public:
|
|
class CWallet : public CCryptoKeyStore, public CValidationInterface
|
|
{
|
|
private:
|
|
- bool SelectCoins(const CAmount& nTargetValue, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet, const CCoinControl *coinControl = NULL) const;
|
|
-
|
|
CWalletDB *pwalletdbEncryption;
|
|
|
|
//! the current wallet version: clients below this version are not able to load the wallet
|
|
@@ -201,6 +199,7 @@ public:
|
|
bool CanSupportFeature(enum WalletFeature wf) { AssertLockHeld(cs_wallet); return nWalletMaxVersion >= wf; }
|
|
|
|
void AvailableCoins(std::vector<COutput>& vCoins, bool fOnlyConfirmed=true, const CCoinControl *coinControl = NULL) const;
|
|
+ bool SelectCoins(const CAmount& nTargetValue, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet, const CCoinControl *coinControl = NULL) const;
|
|
bool SelectCoinsMinConf(const CAmount& nTargetValue, int nConfMine, int nConfTheirs, std::vector<COutput> vCoins, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet) const;
|
|
|
|
bool IsSpent(const uint256& hash, unsigned int n) const;
|