1.21 codebase rebrand (#1711)
* build: Brand codebase as Dogecoin via automake/autoconf files. * build: Update internal resource files for windows builds. * build: Update internal application names and data directories. * build: Update immediately visible remaining bitcoin name references from cli binaries and qt. * build: Update immediately visible bitcoin references in the main gui itself. * Update functional tests to match Dogecoin * wallet: Add missing check for -descriptors wallet tool option * correct output for functional tests (errorlevels?) Co-authored-by: Ross Nicoll <ross.nicoll@r3.com> Co-authored-by: MarcoFalke <falke.marco@gmail.com>
This commit is contained in:
parent
7d8a10a6f4
commit
8f77f8870d
20
.gitignore
vendored
20
.gitignore
vendored
|
@ -2,17 +2,17 @@
|
||||||
|
|
||||||
*.exe
|
*.exe
|
||||||
*.pdb
|
*.pdb
|
||||||
src/bitcoin
|
src/dogecoin
|
||||||
src/bitcoind
|
src/dogecoind
|
||||||
src/bitcoin-cli
|
src/dogecoin-cli
|
||||||
src/bitcoin-gui
|
src/dogecoin-gui
|
||||||
src/bitcoin-node
|
src/dogecoin-node
|
||||||
src/bitcoin-tx
|
src/dogecoin-tx
|
||||||
src/bitcoin-wallet
|
src/dogecoin-wallet
|
||||||
src/test/fuzz/*
|
src/test/fuzz/*
|
||||||
!src/test/fuzz/*.*
|
!src/test/fuzz/*.*
|
||||||
src/test/test_bitcoin
|
src/test/test_dogecoin
|
||||||
src/qt/test/test_bitcoin-qt
|
src/qt/test/test_dogecoin-qt
|
||||||
|
|
||||||
# autoreconf
|
# autoreconf
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
@ -92,7 +92,7 @@ src/qt/bitcoin-qt.includes
|
||||||
*.qm
|
*.qm
|
||||||
Makefile
|
Makefile
|
||||||
!depends/Makefile
|
!depends/Makefile
|
||||||
src/qt/bitcoin-qt
|
src/qt/dogecoin-qt
|
||||||
Bitcoin-Qt.app
|
Bitcoin-Qt.app
|
||||||
background.tiff*
|
background.tiff*
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ BEGIN_FOLD distdir
|
||||||
DOCKER_EXEC make distdir VERSION=$HOST
|
DOCKER_EXEC make distdir VERSION=$HOST
|
||||||
END_FOLD
|
END_FOLD
|
||||||
|
|
||||||
export P_CI_DIR="${BASE_BUILD_DIR}/bitcoin-$HOST"
|
export P_CI_DIR="${BASE_BUILD_DIR}/dogecoin-$HOST"
|
||||||
|
|
||||||
BEGIN_FOLD configure
|
BEGIN_FOLD configure
|
||||||
DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( (DOCKER_EXEC cat config.log) && false)
|
DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( (DOCKER_EXEC cat config.log) && false)
|
||||||
|
|
12
configure.ac
12
configure.ac
|
@ -8,7 +8,7 @@ define(_CLIENT_VERSION_IS_RELEASE, true)
|
||||||
define(_COPYRIGHT_YEAR, 2020)
|
define(_COPYRIGHT_YEAR, 2020)
|
||||||
define(_COPYRIGHT_HOLDERS,[The %s developers])
|
define(_COPYRIGHT_HOLDERS,[The %s developers])
|
||||||
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
|
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
|
||||||
AC_INIT([Bitcoin Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_REVISION, m4_if(_CLIENT_VERSION_BUILD, [0], [], _CLIENT_VERSION_BUILD))m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/bitcoin/bitcoin/issues],[bitcoin],[https://bitcoincore.org/])
|
AC_INIT([Dogecoin Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_REVISION, m4_if(_CLIENT_VERSION_BUILD, [0], [], _CLIENT_VERSION_BUILD))m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/dogecoin/dogecoin/issues],[dogecoin],[https://dogecoin.com/])
|
||||||
AC_CONFIG_SRCDIR([src/validation.cpp])
|
AC_CONFIG_SRCDIR([src/validation.cpp])
|
||||||
AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
|
AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
|
@ -20,11 +20,11 @@ if test "x$PKG_CONFIG" = x; then
|
||||||
AC_MSG_ERROR([pkg-config not found])
|
AC_MSG_ERROR([pkg-config not found])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BITCOIN_DAEMON_NAME=bitcoind
|
BITCOIN_DAEMON_NAME=dogecoind
|
||||||
BITCOIN_GUI_NAME=bitcoin-qt
|
BITCOIN_GUI_NAME=dogecoin-qt
|
||||||
BITCOIN_CLI_NAME=bitcoin-cli
|
BITCOIN_CLI_NAME=dogecoin-cli
|
||||||
BITCOIN_TX_NAME=bitcoin-tx
|
BITCOIN_TX_NAME=dogecoin-tx
|
||||||
BITCOIN_WALLET_TOOL_NAME=bitcoin-wallet
|
BITCOIN_WALLET_TOOL_NAME=dogecoin-wallet
|
||||||
|
|
||||||
dnl Unless the user specified ARFLAGS, force it to be cr
|
dnl Unless the user specified ARFLAGS, force it to be cr
|
||||||
AC_ARG_VAR(ARFLAGS, [Flags for the archiver, defaults to <cr> if not set])
|
AC_ARG_VAR(ARFLAGS, [Flags for the archiver, defaults to <cr> if not set])
|
||||||
|
|
|
@ -82,22 +82,22 @@ TESTS =
|
||||||
BENCHMARKS =
|
BENCHMARKS =
|
||||||
|
|
||||||
if BUILD_BITCOIND
|
if BUILD_BITCOIND
|
||||||
bin_PROGRAMS += bitcoind
|
bin_PROGRAMS += dogecoind
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if BUILD_BITCOIN_NODE
|
if BUILD_BITCOIN_NODE
|
||||||
bin_PROGRAMS += bitcoin-node
|
bin_PROGRAMS += dogecoin-node
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if BUILD_BITCOIN_CLI
|
if BUILD_BITCOIN_CLI
|
||||||
bin_PROGRAMS += bitcoin-cli
|
bin_PROGRAMS += dogecoin-cli
|
||||||
endif
|
endif
|
||||||
if BUILD_BITCOIN_TX
|
if BUILD_BITCOIN_TX
|
||||||
bin_PROGRAMS += bitcoin-tx
|
bin_PROGRAMS += dogecoin-tx
|
||||||
endif
|
endif
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
if BUILD_BITCOIN_WALLET
|
if BUILD_BITCOIN_WALLET
|
||||||
bin_PROGRAMS += bitcoin-wallet
|
bin_PROGRAMS += dogecoin-wallet
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -572,16 +572,16 @@ nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
|
||||||
#
|
#
|
||||||
|
|
||||||
# bitcoind & bitcoin-node binaries #
|
# bitcoind & bitcoin-node binaries #
|
||||||
bitcoin_daemon_sources = bitcoind.cpp
|
dogecoin_daemon_sources = bitcoind.cpp
|
||||||
bitcoin_bin_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
dogecoin_bin_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
||||||
bitcoin_bin_cxxflags = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
dogecoin_bin_cxxflags = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
bitcoin_bin_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
dogecoin_bin_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
||||||
|
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
bitcoin_daemon_sources += bitcoind-res.rc
|
dogecoin_daemon_sources += bitcoind-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bitcoin_bin_ldadd = \
|
dogecoin_bin_ldadd = \
|
||||||
$(LIBBITCOIN_WALLET) \
|
$(LIBBITCOIN_WALLET) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
|
@ -594,50 +594,50 @@ bitcoin_bin_ldadd = \
|
||||||
$(LIBMEMENV) \
|
$(LIBMEMENV) \
|
||||||
$(LIBSECP256K1)
|
$(LIBSECP256K1)
|
||||||
|
|
||||||
bitcoin_bin_ldadd += $(BOOST_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(SQLITE_LIBS)
|
dogecoin_bin_ldadd += $(BOOST_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(SQLITE_LIBS)
|
||||||
|
|
||||||
bitcoind_SOURCES = $(bitcoin_daemon_sources)
|
dogecoind_SOURCES = $(dogecoin_daemon_sources)
|
||||||
bitcoind_CPPFLAGS = $(bitcoin_bin_cppflags)
|
dogecoind_CPPFLAGS = $(dogecoin_bin_cppflags)
|
||||||
bitcoind_CXXFLAGS = $(bitcoin_bin_cxxflags)
|
dogecoind_CXXFLAGS = $(dogecoin_bin_cxxflags)
|
||||||
bitcoind_LDFLAGS = $(bitcoin_bin_ldflags)
|
dogecoind_LDFLAGS = $(dogecoin_bin_ldflags)
|
||||||
bitcoind_LDADD = $(LIBBITCOIN_SERVER) $(bitcoin_bin_ldadd)
|
dogecoind_LDADD = $(LIBBITCOIN_SERVER) $(dogecoin_bin_ldadd)
|
||||||
|
|
||||||
bitcoin_node_SOURCES = $(bitcoin_daemon_sources)
|
dogecoin_node_SOURCES = $(dogecoin_daemon_sources)
|
||||||
bitcoin_node_CPPFLAGS = $(bitcoin_bin_cppflags)
|
dogecoin_node_CPPFLAGS = $(dogecoin_bin_cppflags)
|
||||||
bitcoin_node_CXXFLAGS = $(bitcoin_bin_cxxflags)
|
dogecoin_node_CXXFLAGS = $(dogecoin_bin_cxxflags)
|
||||||
bitcoin_node_LDFLAGS = $(bitcoin_bin_ldflags)
|
dogecoin_node_LDFLAGS = $(dogecoin_bin_ldflags)
|
||||||
bitcoin_node_LDADD = $(LIBBITCOIN_SERVER) $(bitcoin_bin_ldadd)
|
dogecoin_node_LDADD = $(LIBBITCOIN_SERVER) $(dogecoin_bin_ldadd)
|
||||||
|
|
||||||
# bitcoin-cli binary #
|
# bitcoin-cli binary #
|
||||||
bitcoin_cli_SOURCES = bitcoin-cli.cpp
|
dogecoin_cli_SOURCES = bitcoin-cli.cpp
|
||||||
bitcoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS)
|
dogecoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS)
|
||||||
bitcoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
dogecoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
bitcoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
dogecoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
||||||
|
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
bitcoin_cli_SOURCES += bitcoin-cli-res.rc
|
dogecoin_cli_SOURCES += bitcoin-cli-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bitcoin_cli_LDADD = \
|
dogecoin_cli_LDADD = \
|
||||||
$(LIBBITCOIN_CLI) \
|
$(LIBBITCOIN_CLI) \
|
||||||
$(LIBUNIVALUE) \
|
$(LIBUNIVALUE) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
$(LIBBITCOIN_CRYPTO)
|
$(LIBBITCOIN_CRYPTO)
|
||||||
|
|
||||||
bitcoin_cli_LDADD += $(BOOST_LIBS) $(EVENT_LIBS)
|
dogecoin_cli_LDADD += $(BOOST_LIBS) $(EVENT_LIBS)
|
||||||
#
|
#
|
||||||
|
|
||||||
# bitcoin-tx binary #
|
# bitcoin-tx binary #
|
||||||
bitcoin_tx_SOURCES = bitcoin-tx.cpp
|
dogecoin_tx_SOURCES = bitcoin-tx.cpp
|
||||||
bitcoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
dogecoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
||||||
bitcoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
dogecoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
bitcoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
dogecoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
||||||
|
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
bitcoin_tx_SOURCES += bitcoin-tx-res.rc
|
dogecoin_tx_SOURCES += bitcoin-tx-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bitcoin_tx_LDADD = \
|
dogecoin_tx_LDADD = \
|
||||||
$(LIBUNIVALUE) \
|
$(LIBUNIVALUE) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
|
@ -645,18 +645,18 @@ bitcoin_tx_LDADD = \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBSECP256K1)
|
$(LIBSECP256K1)
|
||||||
|
|
||||||
bitcoin_tx_LDADD += $(BOOST_LIBS)
|
dogecoin_tx_LDADD += $(BOOST_LIBS)
|
||||||
#
|
#
|
||||||
|
|
||||||
# bitcoin-wallet binary #
|
# bitcoin-wallet binary #
|
||||||
bitcoin_wallet_SOURCES = bitcoin-wallet.cpp
|
dogecoin_wallet_SOURCES = bitcoin-wallet.cpp
|
||||||
bitcoin_wallet_CPPFLAGS = $(bitcoin_bin_cppflags)
|
dogecoin_wallet_CPPFLAGS = $(dogecoin_bin_cppflags)
|
||||||
bitcoin_wallet_CXXFLAGS = $(bitcoin_bin_cxxflags)
|
dogecoin_wallet_CXXFLAGS = $(dogecoin_bin_cxxflags)
|
||||||
bitcoin_wallet_LDFLAGS = $(bitcoin_bin_ldflags)
|
dogecoin_wallet_LDFLAGS = $(dogecoin_bin_ldflags)
|
||||||
bitcoin_wallet_LDADD = $(LIBBITCOIN_WALLET_TOOL) $(bitcoin_bin_ldadd)
|
dogecoin_wallet_LDADD = $(LIBBITCOIN_WALLET_TOOL) $(dogecoin_bin_ldadd)
|
||||||
|
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
bitcoin_wallet_SOURCES += bitcoin-wallet-res.rc
|
dogecoin_wallet_SOURCES += bitcoin-wallet-res.rc
|
||||||
endif
|
endif
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,15 @@
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
bin_PROGRAMS += bench/bench_bitcoin
|
bin_PROGRAMS += bench/bench_dogecoin
|
||||||
BENCH_SRCDIR = bench
|
BENCH_SRCDIR = bench
|
||||||
BENCH_BINARY = bench/bench_bitcoin$(EXEEXT)
|
BENCH_BINARY = bench/bench_dogecoin$(EXEEXT)
|
||||||
|
|
||||||
RAW_BENCH_FILES = \
|
RAW_BENCH_FILES = \
|
||||||
bench/data/block413567.raw
|
bench/data/block413567.raw
|
||||||
GENERATED_BENCH_FILES = $(RAW_BENCH_FILES:.raw=.raw.h)
|
GENERATED_BENCH_FILES = $(RAW_BENCH_FILES:.raw=.raw.h)
|
||||||
|
|
||||||
bench_bench_bitcoin_SOURCES = \
|
bench_bench_dogecoin_SOURCES = \
|
||||||
$(RAW_BENCH_FILES) \
|
$(RAW_BENCH_FILES) \
|
||||||
bench/addrman.cpp \
|
bench/addrman.cpp \
|
||||||
bench/bench_bitcoin.cpp \
|
bench/bench_bitcoin.cpp \
|
||||||
|
@ -45,11 +45,11 @@ bench_bench_bitcoin_SOURCES = \
|
||||||
bench/poly1305.cpp \
|
bench/poly1305.cpp \
|
||||||
bench/prevector.cpp
|
bench/prevector.cpp
|
||||||
|
|
||||||
nodist_bench_bench_bitcoin_SOURCES = $(GENERATED_BENCH_FILES)
|
nodist_bench_bench_dogecoin_SOURCES = $(GENERATED_BENCH_FILES)
|
||||||
|
|
||||||
bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/
|
bench_bench_dogecoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/
|
||||||
bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
bench_bench_dogecoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
bench_bench_bitcoin_LDADD = \
|
bench_bench_dogecoin_LDADD = \
|
||||||
$(LIBBITCOIN_SERVER) \
|
$(LIBBITCOIN_SERVER) \
|
||||||
$(LIBBITCOIN_WALLET) \
|
$(LIBBITCOIN_WALLET) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
|
@ -66,16 +66,16 @@ bench_bench_bitcoin_LDADD = \
|
||||||
$(EVENT_LIBS)
|
$(EVENT_LIBS)
|
||||||
|
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
bench_bench_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
bench_bench_dogecoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
bench_bench_bitcoin_SOURCES += bench/coin_selection.cpp
|
bench_bench_dogecoin_SOURCES += bench/coin_selection.cpp
|
||||||
bench_bench_bitcoin_SOURCES += bench/wallet_balance.cpp
|
bench_bench_dogecoin_SOURCES += bench/wallet_balance.cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bench_bench_bitcoin_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(MINIUPNPC_LIBS) $(SQLITE_LIBS)
|
bench_bench_dogecoin_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(MINIUPNPC_LIBS) $(SQLITE_LIBS)
|
||||||
bench_bench_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
bench_bench_dogecoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
||||||
|
|
||||||
CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_BENCH_FILES)
|
CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_BENCH_FILES)
|
||||||
|
|
||||||
|
@ -83,13 +83,13 @@ CLEANFILES += $(CLEAN_BITCOIN_BENCH)
|
||||||
|
|
||||||
bench/data.cpp: bench/data/block413567.raw.h
|
bench/data.cpp: bench/data/block413567.raw.h
|
||||||
|
|
||||||
bitcoin_bench: $(BENCH_BINARY)
|
dogecoin_bench: $(BENCH_BINARY)
|
||||||
|
|
||||||
bench: $(BENCH_BINARY) FORCE
|
bench: $(BENCH_BINARY) FORCE
|
||||||
$(BENCH_BINARY)
|
$(BENCH_BINARY)
|
||||||
|
|
||||||
bitcoin_bench_clean : FORCE
|
bitcoin_bench_clean : FORCE
|
||||||
rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_bitcoin_OBJECTS) $(BENCH_BINARY)
|
rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_dogecoin_OBJECTS) $(BENCH_BINARY)
|
||||||
|
|
||||||
%.raw.h: %.raw
|
%.raw.h: %.raw
|
||||||
@$(MKDIR_P) $(@D)
|
@$(MKDIR_P) $(@D)
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
bin_PROGRAMS += qt/bitcoin-qt
|
bin_PROGRAMS += qt/dogecoin-qt
|
||||||
|
|
||||||
if BUILD_BITCOIN_GUI
|
if BUILD_BITCOIN_GUI
|
||||||
bin_PROGRAMS += bitcoin-gui
|
bin_PROGRAMS += dogecoin-gui
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXTRA_LIBRARIES += qt/libbitcoinqt.a
|
EXTRA_LIBRARIES += qt/libbitcoinqt.a
|
||||||
|
@ -301,7 +301,7 @@ QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI:
|
||||||
# Most files will depend on the forms and moc files as includes. Generate them
|
# Most files will depend on the forms and moc files as includes. Generate them
|
||||||
# before anything else.
|
# before anything else.
|
||||||
$(QT_MOC): $(QT_FORMS_H)
|
$(QT_MOC): $(QT_FORMS_H)
|
||||||
$(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) $(bitcoin_gui_OBJECTS) : | $(QT_MOC)
|
$(qt_libbitcoinqt_a_OBJECTS) $(qt_dogecoin_qt_OBJECTS) $(dogecoin_gui_OBJECTS) : | $(QT_MOC)
|
||||||
|
|
||||||
# bitcoin-qt and bitcoin-gui binaries #
|
# bitcoin-qt and bitcoin-gui binaries #
|
||||||
bitcoin_qt_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
bitcoin_qt_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
||||||
|
@ -325,19 +325,19 @@ bitcoin_qt_ldadd += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(
|
||||||
bitcoin_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
bitcoin_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
||||||
bitcoin_qt_libtoolflags = $(AM_LIBTOOLFLAGS) --tag CXX
|
bitcoin_qt_libtoolflags = $(AM_LIBTOOLFLAGS) --tag CXX
|
||||||
|
|
||||||
qt_bitcoin_qt_CPPFLAGS = $(bitcoin_qt_cppflags)
|
qt_dogecoin_qt_CPPFLAGS = $(bitcoin_qt_cppflags)
|
||||||
qt_bitcoin_qt_CXXFLAGS = $(bitcoin_qt_cxxflags)
|
qt_dogecoin_qt_CXXFLAGS = $(bitcoin_qt_cxxflags)
|
||||||
qt_bitcoin_qt_SOURCES = $(bitcoin_qt_sources)
|
qt_dogecoin_qt_SOURCES = $(bitcoin_qt_sources)
|
||||||
qt_bitcoin_qt_LDADD = $(bitcoin_qt_ldadd)
|
qt_dogecoin_qt_LDADD = $(bitcoin_qt_ldadd)
|
||||||
qt_bitcoin_qt_LDFLAGS = $(bitcoin_qt_ldflags)
|
qt_dogecoin_qt_LDFLAGS = $(bitcoin_qt_ldflags)
|
||||||
qt_bitcoin_qt_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags)
|
qt_dogecoin_qt_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags)
|
||||||
|
|
||||||
bitcoin_gui_CPPFLAGS = $(bitcoin_qt_cppflags)
|
dogecoin_gui_CPPFLAGS = $(bitcoin_qt_cppflags)
|
||||||
bitcoin_gui_CXXFLAGS = $(bitcoin_qt_cxxflags)
|
dogecoin_gui_CXXFLAGS = $(bitcoin_qt_cxxflags)
|
||||||
bitcoin_gui_SOURCES = $(bitcoin_qt_sources)
|
dogecoin_gui_SOURCES = $(bitcoin_qt_sources)
|
||||||
bitcoin_gui_LDADD = $(bitcoin_qt_ldadd)
|
dogecoin_gui_LDADD = $(bitcoin_qt_ldadd)
|
||||||
bitcoin_gui_LDFLAGS = $(bitcoin_qt_ldflags)
|
dogecoin_gui_LDFLAGS = $(bitcoin_qt_ldflags)
|
||||||
bitcoin_gui_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags)
|
dogecoin_gui_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags)
|
||||||
|
|
||||||
#locale/foo.ts -> locale/foo.qm
|
#locale/foo.ts -> locale/foo.qm
|
||||||
QT_QM=$(QT_TS:.ts=.qm)
|
QT_QM=$(QT_TS:.ts=.qm)
|
||||||
|
@ -369,9 +369,9 @@ CLEAN_QT = $(nodist_qt_libbitcoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda
|
||||||
CLEANFILES += $(CLEAN_QT)
|
CLEANFILES += $(CLEAN_QT)
|
||||||
|
|
||||||
bitcoin_qt_clean: FORCE
|
bitcoin_qt_clean: FORCE
|
||||||
rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) qt/bitcoin-qt$(EXEEXT) $(LIBBITCOINQT)
|
rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_dogecoin_qt_OBJECTS) qt/dogecoin-qt$(EXEEXT) $(LIBBITCOINQT)
|
||||||
|
|
||||||
bitcoin_qt : qt/bitcoin-qt$(EXEEXT)
|
bitcoin_qt : qt/dogecoin-qt$(EXEEXT)
|
||||||
|
|
||||||
ui_%.h: %.ui
|
ui_%.h: %.ui
|
||||||
@test -f $(UIC)
|
@test -f $(UIC)
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
bin_PROGRAMS += qt/test/test_bitcoin-qt
|
bin_PROGRAMS += qt/test/test_dogecoin-qt
|
||||||
TESTS += qt/test/test_bitcoin-qt
|
TESTS += qt/test/test_dogecoin-qt
|
||||||
|
|
||||||
TEST_QT_MOC_CPP = \
|
TEST_QT_MOC_CPP = \
|
||||||
qt/test/moc_apptests.cpp \
|
qt/test/moc_apptests.cpp \
|
||||||
|
@ -26,10 +26,10 @@ TEST_QT_H = \
|
||||||
qt/test/util.h \
|
qt/test/util.h \
|
||||||
qt/test/wallettests.h
|
qt/test/wallettests.h
|
||||||
|
|
||||||
qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
qt_test_test_dogecoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
||||||
$(QT_INCLUDES) $(QT_TEST_INCLUDES)
|
$(QT_INCLUDES) $(QT_TEST_INCLUDES)
|
||||||
|
|
||||||
qt_test_test_bitcoin_qt_SOURCES = \
|
qt_test_test_dogecoin_qt_SOURCES = \
|
||||||
qt/test/apptests.cpp \
|
qt/test/apptests.cpp \
|
||||||
qt/test/compattests.cpp \
|
qt/test/compattests.cpp \
|
||||||
qt/test/rpcnestedtests.cpp \
|
qt/test/rpcnestedtests.cpp \
|
||||||
|
@ -38,36 +38,36 @@ qt_test_test_bitcoin_qt_SOURCES = \
|
||||||
qt/test/util.cpp \
|
qt/test/util.cpp \
|
||||||
$(TEST_QT_H)
|
$(TEST_QT_H)
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
qt_test_test_bitcoin_qt_SOURCES += \
|
qt_test_test_dogecoin_qt_SOURCES += \
|
||||||
qt/test/addressbooktests.cpp \
|
qt/test/addressbooktests.cpp \
|
||||||
qt/test/wallettests.cpp \
|
qt/test/wallettests.cpp \
|
||||||
wallet/test/wallet_test_fixture.cpp
|
wallet/test/wallet_test_fixture.cpp
|
||||||
endif # ENABLE_WALLET
|
endif # ENABLE_WALLET
|
||||||
|
|
||||||
nodist_qt_test_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP)
|
nodist_qt_test_test_dogecoin_qt_SOURCES = $(TEST_QT_MOC_CPP)
|
||||||
|
|
||||||
qt_test_test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) $(LIBTEST_UTIL)
|
qt_test_test_dogecoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) $(LIBTEST_UTIL)
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET)
|
qt_test_test_dogecoin_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET)
|
||||||
endif
|
endif
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
qt_test_test_dogecoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
||||||
endif
|
endif
|
||||||
qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \
|
qt_test_test_dogecoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \
|
||||||
$(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \
|
$(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \
|
||||||
$(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \
|
$(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \
|
||||||
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS)
|
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS)
|
||||||
qt_test_test_bitcoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
qt_test_test_dogecoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
||||||
qt_test_test_bitcoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
|
qt_test_test_dogecoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
|
||||||
|
|
||||||
CLEAN_BITCOIN_QT_TEST = $(TEST_QT_MOC_CPP) qt/test/*.gcda qt/test/*.gcno
|
CLEAN_BITCOIN_QT_TEST = $(TEST_QT_MOC_CPP) qt/test/*.gcda qt/test/*.gcno
|
||||||
|
|
||||||
CLEANFILES += $(CLEAN_BITCOIN_QT_TEST)
|
CLEANFILES += $(CLEAN_BITCOIN_QT_TEST)
|
||||||
|
|
||||||
test_bitcoin_qt : qt/test/test_bitcoin-qt$(EXEEXT)
|
test_dogecoin_qt : qt/test/test_dogecoin-qt$(EXEEXT)
|
||||||
|
|
||||||
test_bitcoin_qt_check : qt/test/test_bitcoin-qt$(EXEEXT) FORCE
|
test_dogecoin_qt_check : qt/test/test_dogecoin-qt$(EXEEXT) FORCE
|
||||||
$(MAKE) check-TESTS TESTS=$^
|
$(MAKE) check-TESTS TESTS=$^
|
||||||
|
|
||||||
test_bitcoin_qt_clean: FORCE
|
test_dogecoin_qt_clean: FORCE
|
||||||
rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_bitcoin_qt_OBJECTS)
|
rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_dogecoin_qt_OBJECTS)
|
||||||
|
|
|
@ -162,11 +162,11 @@ FUZZ_TARGETS = \
|
||||||
if ENABLE_FUZZ
|
if ENABLE_FUZZ
|
||||||
noinst_PROGRAMS += $(FUZZ_TARGETS:=)
|
noinst_PROGRAMS += $(FUZZ_TARGETS:=)
|
||||||
else
|
else
|
||||||
bin_PROGRAMS += test/test_bitcoin
|
bin_PROGRAMS += test/test_dogecoin
|
||||||
endif
|
endif
|
||||||
|
|
||||||
TEST_SRCDIR = test
|
TEST_SRCDIR = test
|
||||||
TEST_BINARY=test/test_bitcoin$(EXEEXT)
|
TEST_BINARY=test/test_dogecoin$(EXEEXT)
|
||||||
|
|
||||||
JSON_TEST_FILES = \
|
JSON_TEST_FILES = \
|
||||||
test/data/script_tests.json \
|
test/data/script_tests.json \
|
||||||
|
@ -308,22 +308,22 @@ BITCOIN_TEST_SUITE += \
|
||||||
wallet/test/init_test_fixture.h
|
wallet/test/init_test_fixture.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test_test_bitcoin_SOURCES = $(BITCOIN_TEST_SUITE) $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
|
test_test_dogecoin_SOURCES = $(BITCOIN_TEST_SUITE) $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
|
||||||
test_test_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(TESTDEFS) $(EVENT_CFLAGS)
|
test_test_dogecoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(TESTDEFS) $(EVENT_CFLAGS)
|
||||||
test_test_bitcoin_LDADD = $(LIBTEST_UTIL)
|
test_test_dogecoin_LDADD = $(LIBTEST_UTIL)
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
|
test_test_dogecoin_LDADD += $(LIBBITCOIN_WALLET)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \
|
test_test_dogecoin_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \
|
||||||
$(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS)
|
$(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS)
|
||||||
test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
test_test_dogecoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
|
|
||||||
test_test_bitcoin_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(SQLITE_LIBS)
|
test_test_dogecoin_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(SQLITE_LIBS)
|
||||||
test_test_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -static
|
test_test_dogecoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -static
|
||||||
|
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
test_test_dogecoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ENABLE_FUZZ
|
if ENABLE_FUZZ
|
||||||
|
@ -1262,7 +1262,7 @@ test_fuzz_uint256_deserialize_SOURCES = test/fuzz/deserialize.cpp
|
||||||
|
|
||||||
endif # ENABLE_FUZZ
|
endif # ENABLE_FUZZ
|
||||||
|
|
||||||
nodist_test_test_bitcoin_SOURCES = $(GENERATED_TEST_FILES)
|
nodist_test_test_dogecoin_SOURCES = $(GENERATED_TEST_FILES)
|
||||||
|
|
||||||
$(BITCOIN_TESTS): $(GENERATED_TEST_FILES)
|
$(BITCOIN_TESTS): $(GENERATED_TEST_FILES)
|
||||||
|
|
||||||
|
@ -1284,7 +1284,7 @@ bitcoin_test_check: $(TEST_BINARY) FORCE
|
||||||
$(MAKE) check-TESTS TESTS=$^
|
$(MAKE) check-TESTS TESTS=$^
|
||||||
|
|
||||||
bitcoin_test_clean : FORCE
|
bitcoin_test_clean : FORCE
|
||||||
rm -f $(CLEAN_BITCOIN_TEST) $(test_test_bitcoin_OBJECTS) $(TEST_BINARY)
|
rm -f $(CLEAN_BITCOIN_TEST) $(test_test_dogecoin_OBJECTS) $(TEST_BINARY)
|
||||||
|
|
||||||
check-local: $(BITCOIN_TESTS:.cpp=.cpp.test)
|
check-local: $(BITCOIN_TESTS:.cpp=.cpp.test)
|
||||||
if BUILD_BITCOIN_TX
|
if BUILD_BITCOIN_TX
|
||||||
|
|
2
src/bench/.gitignore
vendored
2
src/bench/.gitignore
vendored
|
@ -1 +1 @@
|
||||||
bench_bitcoin
|
bench_dogecoin
|
||||||
|
|
|
@ -16,14 +16,14 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Dogecoin"
|
||||||
VALUE "FileDescription", "bitcoin-cli (JSON-RPC client for " PACKAGE_NAME ")"
|
VALUE "FileDescription", "dogecoin-cli (JSON-RPC client for " PACKAGE_NAME ")"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoin-cli"
|
VALUE "InternalName", "dogecoin-cli"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoin-cli.exe"
|
VALUE "OriginalFilename", "dogecoin-cli.exe"
|
||||||
VALUE "ProductName", "bitcoin-cli"
|
VALUE "ProductName", "dogecoin-cli"
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
|
@ -57,7 +57,7 @@ static void SetupCliArgs(ArgsManager& argsman)
|
||||||
argsman.AddArg("-version", "Print version and exit", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-version", "Print version and exit", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-conf=<file>", strprintf("Specify configuration file. Relative paths will be prefixed by datadir location. (default: %s)", BITCOIN_CONF_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-conf=<file>", strprintf("Specify configuration file. Relative paths will be prefixed by datadir location. (default: %s)", BITCOIN_CONF_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-generate", strprintf("Generate blocks immediately, equivalent to RPC generatenewaddress followed by RPC generatetoaddress. Optional positional integer arguments are number of blocks to generate (default: %s) and maximum iterations to try (default: %s), equivalent to RPC generatetoaddress nblocks and maxtries arguments. Example: bitcoin-cli -generate 4 1000", DEFAULT_NBLOCKS, DEFAULT_MAX_TRIES), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-generate", strprintf("Generate blocks immediately, equivalent to RPC generatenewaddress followed by RPC generatetoaddress. Optional positional integer arguments are number of blocks to generate (default: %s) and maximum iterations to try (default: %s), equivalent to RPC generatetoaddress nblocks and maxtries arguments. Example: dogecoin-cli -generate 4 1000", DEFAULT_NBLOCKS, DEFAULT_MAX_TRIES), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-getinfo", "Get general information from the remote server. Note that unlike server-side RPC calls, the results of -getinfo is the result of multiple non-atomic requests. Some entries in the result may represent results from different states (e.g. wallet balance may be as of a different block from the chain state reported)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-getinfo", "Get general information from the remote server. Note that unlike server-side RPC calls, the results of -getinfo is the result of multiple non-atomic requests. Some entries in the result may represent results from different states (e.g. wallet balance may be as of a different block from the chain state reported)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-netinfo", "Get network peer connection information from the remote server. An optional integer argument from 0 to 4 can be passed for different peers listings (default: 0).", ArgsManager::ALLOW_INT, OptionsCategory::OPTIONS);
|
argsman.AddArg("-netinfo", "Get network peer connection information from the remote server. An optional integer argument from 0 to 4 can be passed for different peers listings (default: 0).", ArgsManager::ALLOW_INT, OptionsCategory::OPTIONS);
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ static void SetupCliArgs(ArgsManager& argsman)
|
||||||
argsman.AddArg("-rpcport=<port>", strprintf("Connect to JSON-RPC on <port> (default: %u, testnet: %u, signet: %u, regtest: %u)", defaultBaseParams->RPCPort(), testnetBaseParams->RPCPort(), signetBaseParams->RPCPort(), regtestBaseParams->RPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-rpcport=<port>", strprintf("Connect to JSON-RPC on <port> (default: %u, testnet: %u, signet: %u, regtest: %u)", defaultBaseParams->RPCPort(), testnetBaseParams->RPCPort(), signetBaseParams->RPCPort(), regtestBaseParams->RPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-rpcuser=<user>", "Username for JSON-RPC connections", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-rpcuser=<user>", "Username for JSON-RPC connections", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-rpcwait", "Wait for RPC server to start", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-rpcwait", "Wait for RPC server to start", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-rpcwallet=<walletname>", "Send RPC for non-default wallet on RPC server (needs to exactly match corresponding -wallet option passed to bitcoind). This changes the RPC endpoint used, e.g. http://127.0.0.1:8332/wallet/<walletname>", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-rpcwallet=<walletname>", "Send RPC for non-default wallet on RPC server (needs to exactly match corresponding -wallet option passed to dogecoind). This changes the RPC endpoint used, e.g. http://127.0.0.1:8332/wallet/<walletname>", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-stdin", "Read extra arguments from standard input, one per line until EOF/Ctrl-D (recommended for sensitive information such as passphrases). When combined with -stdinrpcpass, the first line from standard input is used for the RPC password.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-stdin", "Read extra arguments from standard input, one per line until EOF/Ctrl-D (recommended for sensitive information such as passphrases). When combined with -stdinrpcpass, the first line from standard input is used for the RPC password.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-stdinrpcpass", "Read RPC password from standard input as a single line. When combined with -stdin, the first line from standard input is used for the RPC password. When combined with -stdinwalletpassphrase, -stdinrpcpass consumes the first line, and -stdinwalletpassphrase consumes the second.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-stdinrpcpass", "Read RPC password from standard input as a single line. When combined with -stdin, the first line from standard input is used for the RPC password. When combined with -stdinwalletpassphrase, -stdinrpcpass consumes the first line, and -stdinwalletpassphrase consumes the second.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-stdinwalletpassphrase", "Read wallet passphrase from standard input as a single line. When combined with -stdin, the first line from standard input is used for the wallet passphrase.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-stdinwalletpassphrase", "Read wallet passphrase from standard input as a single line. When combined with -stdin, the first line from standard input is used for the wallet passphrase.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
|
@ -118,10 +118,10 @@ static int AppInitRPC(int argc, char* argv[])
|
||||||
std::string strUsage = PACKAGE_NAME " RPC client version " + FormatFullVersion() + "\n";
|
std::string strUsage = PACKAGE_NAME " RPC client version " + FormatFullVersion() + "\n";
|
||||||
if (!gArgs.IsArgSet("-version")) {
|
if (!gArgs.IsArgSet("-version")) {
|
||||||
strUsage += "\n"
|
strUsage += "\n"
|
||||||
"Usage: bitcoin-cli [options] <command> [params] Send command to " PACKAGE_NAME "\n"
|
"Usage: dogecoin-cli [options] <command> [params] Send command to " PACKAGE_NAME "\n"
|
||||||
"or: bitcoin-cli [options] -named <command> [name=value]... Send command to " PACKAGE_NAME " (with named arguments)\n"
|
"or: dogecoin-cli [options] -named <command> [name=value]... Send command to " PACKAGE_NAME " (with named arguments)\n"
|
||||||
"or: bitcoin-cli [options] help List commands\n"
|
"or: dogecoin-cli [options] help List commands\n"
|
||||||
"or: bitcoin-cli [options] help <command> Get help for a command\n";
|
"or: dogecoin-cli [options] help <command> Get help for a command\n";
|
||||||
strUsage += "\n" + gArgs.GetHelpMessage();
|
strUsage += "\n" + gArgs.GetHelpMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ public:
|
||||||
|
|
||||||
const UniValue& networkinfo{batch[ID_NETWORKINFO]["result"]};
|
const UniValue& networkinfo{batch[ID_NETWORKINFO]["result"]};
|
||||||
if (networkinfo["version"].get_int() < 209900) {
|
if (networkinfo["version"].get_int() < 209900) {
|
||||||
throw std::runtime_error("-netinfo requires bitcoind server to be running v0.21.0 and up");
|
throw std::runtime_error("-netinfo requires dogecoind server to be running v0.21.0 and up");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Count peer connection totals, and if DetailsRequested(), store peer data in a vector of structs.
|
// Count peer connection totals, and if DetailsRequested(), store peer data in a vector of structs.
|
||||||
|
@ -609,7 +609,7 @@ static UniValue CallRPC(BaseRequestHandler* rh, const std::string& strMethod, co
|
||||||
if (response.error != -1) {
|
if (response.error != -1) {
|
||||||
responseErrorMessage = strprintf(" (error code %d - \"%s\")", response.error, http_errorstring(response.error));
|
responseErrorMessage = strprintf(" (error code %d - \"%s\")", response.error, http_errorstring(response.error));
|
||||||
}
|
}
|
||||||
throw CConnectionFailed(strprintf("Could not connect to the server %s:%d%s\n\nMake sure the bitcoind server is running and that you are connecting to the correct RPC port.", host, port, responseErrorMessage));
|
throw CConnectionFailed(strprintf("Could not connect to the server %s:%d%s\n\nMake sure the dogecoind server is running and that you are connecting to the correct RPC port.", host, port, responseErrorMessage));
|
||||||
} else if (response.status == HTTP_UNAUTHORIZED) {
|
} else if (response.status == HTTP_UNAUTHORIZED) {
|
||||||
if (failedToGetAuthCookie) {
|
if (failedToGetAuthCookie) {
|
||||||
throw std::runtime_error(strprintf(
|
throw std::runtime_error(strprintf(
|
||||||
|
@ -689,7 +689,7 @@ static void ParseError(const UniValue& error, std::string& strPrint, int& nRet)
|
||||||
strPrint += ("error message:\n" + err_msg.get_str());
|
strPrint += ("error message:\n" + err_msg.get_str());
|
||||||
}
|
}
|
||||||
if (err_code.isNum() && err_code.get_int() == RPC_WALLET_NOT_SPECIFIED) {
|
if (err_code.isNum() && err_code.get_int() == RPC_WALLET_NOT_SPECIFIED) {
|
||||||
strPrint += "\nTry adding \"-rpcwallet=<filename>\" option to bitcoin-cli command line.";
|
strPrint += "\nTry adding \"-rpcwallet=<filename>\" option to dogecoin-cli command line.";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
strPrint = "error: " + error.write();
|
strPrint = "error: " + error.write();
|
||||||
|
|
|
@ -16,14 +16,14 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Dogecoin"
|
||||||
VALUE "FileDescription", "bitcoin-tx (CLI Bitcoin transaction editor utility)"
|
VALUE "FileDescription", "dogecoin-tx (CLI Dogecoin transaction editor utility)"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoin-tx"
|
VALUE "InternalName", "dogecoin-tx"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoin-tx.exe"
|
VALUE "OriginalFilename", "dogecoin-tx.exe"
|
||||||
VALUE "ProductName", "bitcoin-tx"
|
VALUE "ProductName", "dogecoin-tx"
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
|
@ -97,9 +97,9 @@ static int AppInitRawTx(int argc, char* argv[])
|
||||||
|
|
||||||
if (argc < 2 || HelpRequested(gArgs)) {
|
if (argc < 2 || HelpRequested(gArgs)) {
|
||||||
// First part of help message is specific to this utility
|
// First part of help message is specific to this utility
|
||||||
std::string strUsage = PACKAGE_NAME " bitcoin-tx utility version " + FormatFullVersion() + "\n\n" +
|
std::string strUsage = PACKAGE_NAME " dogecoin-tx utility version " + FormatFullVersion() + "\n\n" +
|
||||||
"Usage: bitcoin-tx [options] <hex-tx> [commands] Update hex-encoded bitcoin transaction\n" +
|
"Usage: dogecoin-tx [options] <hex-tx> [commands] Update hex-encoded bitcoin transaction\n" +
|
||||||
"or: bitcoin-tx [options] -create [commands] Create hex-encoded bitcoin transaction\n" +
|
"or: dogecoin-tx [options] -create [commands] Create hex-encoded bitcoin transaction\n" +
|
||||||
"\n";
|
"\n";
|
||||||
strUsage += gArgs.GetHelpMessage();
|
strUsage += gArgs.GetHelpMessage();
|
||||||
|
|
||||||
|
|
|
@ -16,14 +16,14 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Dogecoin"
|
||||||
VALUE "FileDescription", "bitcoin-wallet (CLI tool for " PACKAGE_NAME " wallets)"
|
VALUE "FileDescription", "dogecoin-wallet (CLI tool for " PACKAGE_NAME " wallets)"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoin-wallet"
|
VALUE "InternalName", "dogecoin-wallet"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoin-wallet.exe"
|
VALUE "OriginalFilename", "dogecoin-wallet.exe"
|
||||||
VALUE "ProductName", "bitcoin-wallet"
|
VALUE "ProductName", "dogecoin-wallet"
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
|
@ -26,7 +26,10 @@ static void SetupWalletToolArgs(ArgsManager& argsman)
|
||||||
|
|
||||||
argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-wallet=<wallet-name>", "Specify wallet name", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-wallet=<wallet-name>", "Specify wallet name", ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::OPTIONS);
|
||||||
|
argsman.AddArg("-dumpfile=<file name>", "When used with 'dump', writes out the records to this file. When used with 'createfromdump', loads the records into a new wallet.", ArgsManager::ALLOW_STRING, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-debug=<category>", "Output debugging information (default: 0).", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
|
argsman.AddArg("-debug=<category>", "Output debugging information (default: 0).", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
|
||||||
|
argsman.AddArg("-descriptors", "Create descriptors wallet. Only for 'create'", ArgsManager::ALLOW_BOOL, OptionsCategory::OPTIONS);
|
||||||
|
argsman.AddArg("-format=<format>", "The format of the wallet file to create. Either \"bdb\" or \"sqlite\". Only used with 'createfromdump'", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-printtoconsole", "Send trace/debug info to console (default: 1 when no -debug is true, 0 otherwise).", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
|
argsman.AddArg("-printtoconsole", "Send trace/debug info to console (default: 1 when no -debug is true, 0 otherwise).", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
|
||||||
|
|
||||||
argsman.AddArg("info", "Get wallet info", ArgsManager::ALLOW_ANY, OptionsCategory::COMMANDS);
|
argsman.AddArg("info", "Get wallet info", ArgsManager::ALLOW_ANY, OptionsCategory::COMMANDS);
|
||||||
|
@ -43,12 +46,12 @@ static bool WalletAppInit(int argc, char* argv[])
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (argc < 2 || HelpRequested(gArgs)) {
|
if (argc < 2 || HelpRequested(gArgs)) {
|
||||||
std::string usage = strprintf("%s bitcoin-wallet version", PACKAGE_NAME) + " " + FormatFullVersion() + "\n\n" +
|
std::string usage = strprintf("%s dogecoin-wallet version", PACKAGE_NAME) + " " + FormatFullVersion() + "\n\n" +
|
||||||
"bitcoin-wallet is an offline tool for creating and interacting with " PACKAGE_NAME " wallet files.\n" +
|
"dogecoin-wallet is an offline tool for creating and interacting with " PACKAGE_NAME " wallet files.\n" +
|
||||||
"By default bitcoin-wallet will act on wallets in the default mainnet wallet directory in the datadir.\n" +
|
"By default dogecoin-wallet will act on wallets in the default mainnet wallet directory in the datadir.\n" +
|
||||||
"To change the target wallet, use the -datadir, -wallet and -testnet/-regtest arguments.\n\n" +
|
"To change the target wallet, use the -datadir, -wallet and -testnet/-regtest arguments.\n\n" +
|
||||||
"Usage:\n" +
|
"Usage:\n" +
|
||||||
" bitcoin-wallet [options] <command>\n\n" +
|
" dogecoin-wallet [options] <command>\n\n" +
|
||||||
gArgs.GetHelpMessage();
|
gArgs.GetHelpMessage();
|
||||||
|
|
||||||
tfm::format(std::cout, "%s", usage);
|
tfm::format(std::cout, "%s", usage);
|
||||||
|
@ -98,7 +101,7 @@ int main(int argc, char* argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (method.empty()) {
|
if (method.empty()) {
|
||||||
tfm::format(std::cerr, "No method provided. Run `bitcoin-wallet -help` for valid methods.\n");
|
tfm::format(std::cerr, "No method provided. Run `dogecoin-wallet -help` for valid methods.\n");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,14 +16,14 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Dogecoin"
|
||||||
VALUE "FileDescription", "bitcoind (Bitcoin node with a JSON-RPC server)"
|
VALUE "FileDescription", "dogecoind (Dogecoin node with a JSON-RPC server)"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoind"
|
VALUE "InternalName", "dogecoind"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoind.exe"
|
VALUE "OriginalFilename", "dogecoind.exe"
|
||||||
VALUE "ProductName", "bitcoind"
|
VALUE "ProductName", "dogecoind"
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
|
@ -45,7 +45,7 @@ static bool AppInit(int argc, char* argv[])
|
||||||
|
|
||||||
util::ThreadSetInternalName("init");
|
util::ThreadSetInternalName("init");
|
||||||
|
|
||||||
// If Qt is used, parameters/bitcoin.conf are parsed in qt/bitcoin.cpp's main()
|
// If Qt is used, parameters/dogecoin.conf are parsed in qt/dogecoin.cpp's main()
|
||||||
SetupServerArgs(node);
|
SetupServerArgs(node);
|
||||||
ArgsManager& args = *Assert(node.args);
|
ArgsManager& args = *Assert(node.args);
|
||||||
std::string error;
|
std::string error;
|
||||||
|
@ -60,7 +60,7 @@ static bool AppInit(int argc, char* argv[])
|
||||||
if (args.IsArgSet("-version")) {
|
if (args.IsArgSet("-version")) {
|
||||||
strUsage += FormatParagraph(LicenseInfo()) + "\n";
|
strUsage += FormatParagraph(LicenseInfo()) + "\n";
|
||||||
} else {
|
} else {
|
||||||
strUsage += "\nUsage: bitcoind [options] Start " PACKAGE_NAME "\n";
|
strUsage += "\nUsage: dogecoind [options] Start " PACKAGE_NAME "\n";
|
||||||
strUsage += "\n" + args.GetHelpMessage();
|
strUsage += "\n" + args.GetHelpMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ static bool AppInit(int argc, char* argv[])
|
||||||
// Error out when loose non-argument tokens are encountered on command line
|
// Error out when loose non-argument tokens are encountered on command line
|
||||||
for (int i = 1; i < argc; i++) {
|
for (int i = 1; i < argc; i++) {
|
||||||
if (!IsSwitchChar(argv[i][0])) {
|
if (!IsSwitchChar(argv[i][0])) {
|
||||||
return InitError(Untranslated(strprintf("Command line contains unexpected token '%s', see bitcoind -h for a list of options.\n", argv[i])));
|
return InitError(Untranslated(strprintf("Command line contains unexpected token '%s', see dogecoind -h for a list of options.\n", argv[i])));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ static bool AppInit(int argc, char* argv[])
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -server defaults to true for bitcoind but not for the GUI so do this here
|
// -server defaults to true for dogecoind but not for the GUI so do this here
|
||||||
args.SoftSetBoolArg("-server", true);
|
args.SoftSetBoolArg("-server", true);
|
||||||
// Set this early so that parameter interactions go to console
|
// Set this early so that parameter interactions go to console
|
||||||
InitLogging(args);
|
InitLogging(args);
|
||||||
|
@ -166,7 +166,7 @@ int main(int argc, char* argv[])
|
||||||
#endif
|
#endif
|
||||||
SetupEnvironment();
|
SetupEnvironment();
|
||||||
|
|
||||||
// Connect bitcoind signal handlers
|
// Connect dogecoind signal handlers
|
||||||
noui_connect();
|
noui_connect();
|
||||||
|
|
||||||
return (AppInit(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE);
|
return (AppInit(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE);
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name of client reported in the 'version' message. Report the same name
|
* Name of client reported in the 'version' message. Report the same name
|
||||||
* for both bitcoind and bitcoin-qt, to make it harder for attackers to
|
* for both dogecoind and dogecoin-qt, to make it harder for attackers to
|
||||||
* target servers or GUI users specifically.
|
* target servers or GUI users specifically.
|
||||||
*/
|
*/
|
||||||
const std::string CLIENT_NAME("Satoshi");
|
const std::string CLIENT_NAME("Shibetoshi");
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_BUILD_INFO
|
#ifdef HAVE_BUILD_INFO
|
||||||
|
|
|
@ -106,7 +106,7 @@ static const char* DEFAULT_ASMAP_FILENAME="ip_asn.map";
|
||||||
/**
|
/**
|
||||||
* The PID file facilities.
|
* The PID file facilities.
|
||||||
*/
|
*/
|
||||||
static const char* BITCOIN_PID_FILENAME = "bitcoind.pid";
|
static const char* BITCOIN_PID_FILENAME = "dogecoind.pid";
|
||||||
|
|
||||||
static fs::path GetPidFile(const ArgsManager& args)
|
static fs::path GetPidFile(const ArgsManager& args)
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,8 +11,8 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
const std::string CURRENCY_UNIT = "BTC"; // One formatted unit
|
const std::string CURRENCY_UNIT = "DOGE"; // One formatted unit
|
||||||
const std::string CURRENCY_ATOM = "sat"; // One indivisible minimum value unit
|
const std::string CURRENCY_ATOM = "koinu"; // One indivisible minimum value unit
|
||||||
|
|
||||||
/* Used to determine type of fee estimation requested */
|
/* Used to determine type of fee estimation requested */
|
||||||
enum class FeeEstimateMode {
|
enum class FeeEstimateMode {
|
||||||
|
|
|
@ -194,7 +194,7 @@ void BitcoinCore::shutdown()
|
||||||
}
|
}
|
||||||
|
|
||||||
static int qt_argc = 1;
|
static int qt_argc = 1;
|
||||||
static const char* qt_argv = "bitcoin-qt";
|
static const char* qt_argv = "dogecoin-qt";
|
||||||
|
|
||||||
BitcoinApplication::BitcoinApplication():
|
BitcoinApplication::BitcoinApplication():
|
||||||
QApplication(qt_argc, const_cast<char **>(&qt_argv)),
|
QApplication(qt_argc, const_cast<char **>(&qt_argv)),
|
||||||
|
|
|
@ -249,7 +249,7 @@ void BitcoinGUI::createActions()
|
||||||
tabGroup->addAction(overviewAction);
|
tabGroup->addAction(overviewAction);
|
||||||
|
|
||||||
sendCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/send"), tr("&Send"), this);
|
sendCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/send"), tr("&Send"), this);
|
||||||
sendCoinsAction->setStatusTip(tr("Send coins to a Bitcoin address"));
|
sendCoinsAction->setStatusTip(tr("Send coins to a Dogecoin address"));
|
||||||
sendCoinsAction->setToolTip(sendCoinsAction->statusTip());
|
sendCoinsAction->setToolTip(sendCoinsAction->statusTip());
|
||||||
sendCoinsAction->setCheckable(true);
|
sendCoinsAction->setCheckable(true);
|
||||||
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
|
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
|
||||||
|
@ -260,7 +260,7 @@ void BitcoinGUI::createActions()
|
||||||
sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip());
|
sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip());
|
||||||
|
|
||||||
receiveCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/receiving_addresses"), tr("&Receive"), this);
|
receiveCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/receiving_addresses"), tr("&Receive"), this);
|
||||||
receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and bitcoin: URIs)"));
|
receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and dogecoin: URIs)"));
|
||||||
receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip());
|
receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip());
|
||||||
receiveCoinsAction->setCheckable(true);
|
receiveCoinsAction->setCheckable(true);
|
||||||
receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3));
|
receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3));
|
||||||
|
@ -320,13 +320,13 @@ void BitcoinGUI::createActions()
|
||||||
changePassphraseAction = new QAction(tr("&Change Passphrase..."), this);
|
changePassphraseAction = new QAction(tr("&Change Passphrase..."), this);
|
||||||
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
||||||
signMessageAction = new QAction(tr("Sign &message..."), this);
|
signMessageAction = new QAction(tr("Sign &message..."), this);
|
||||||
signMessageAction->setStatusTip(tr("Sign messages with your Bitcoin addresses to prove you own them"));
|
signMessageAction->setStatusTip(tr("Sign messages with your Dogecoin addresses to prove you own them"));
|
||||||
verifyMessageAction = new QAction(tr("&Verify message..."), this);
|
verifyMessageAction = new QAction(tr("&Verify message..."), this);
|
||||||
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses"));
|
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Dogecoin addresses"));
|
||||||
m_load_psbt_action = new QAction(tr("&Load PSBT from file..."), this);
|
m_load_psbt_action = new QAction(tr("&Load PSBT from file..."), this);
|
||||||
m_load_psbt_action->setStatusTip(tr("Load Partially Signed Bitcoin Transaction"));
|
m_load_psbt_action->setStatusTip(tr("Load Partially Signed Dogecoin Transaction"));
|
||||||
m_load_psbt_clipboard_action = new QAction(tr("Load PSBT from clipboard..."), this);
|
m_load_psbt_clipboard_action = new QAction(tr("Load PSBT from clipboard..."), this);
|
||||||
m_load_psbt_clipboard_action->setStatusTip(tr("Load Partially Signed Bitcoin Transaction from clipboard"));
|
m_load_psbt_clipboard_action->setStatusTip(tr("Load Partially Signed Dogecoin Transaction from clipboard"));
|
||||||
|
|
||||||
openRPCConsoleAction = new QAction(tr("Node window"), this);
|
openRPCConsoleAction = new QAction(tr("Node window"), this);
|
||||||
openRPCConsoleAction->setStatusTip(tr("Open node debugging and diagnostic console"));
|
openRPCConsoleAction->setStatusTip(tr("Open node debugging and diagnostic console"));
|
||||||
|
@ -340,7 +340,7 @@ void BitcoinGUI::createActions()
|
||||||
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
||||||
|
|
||||||
openAction = new QAction(tr("Open &URI..."), this);
|
openAction = new QAction(tr("Open &URI..."), this);
|
||||||
openAction->setStatusTip(tr("Open a bitcoin: URI"));
|
openAction->setStatusTip(tr("Open a dogecoin: URI"));
|
||||||
|
|
||||||
m_open_wallet_action = new QAction(tr("Open Wallet"), this);
|
m_open_wallet_action = new QAction(tr("Open Wallet"), this);
|
||||||
m_open_wallet_action->setEnabled(false);
|
m_open_wallet_action->setEnabled(false);
|
||||||
|
@ -359,7 +359,7 @@ void BitcoinGUI::createActions()
|
||||||
|
|
||||||
showHelpMessageAction = new QAction(tr("&Command-line options"), this);
|
showHelpMessageAction = new QAction(tr("&Command-line options"), this);
|
||||||
showHelpMessageAction->setMenuRole(QAction::NoRole);
|
showHelpMessageAction->setMenuRole(QAction::NoRole);
|
||||||
showHelpMessageAction->setStatusTip(tr("Show the %1 help message to get a list with possible Bitcoin command-line options").arg(PACKAGE_NAME));
|
showHelpMessageAction->setStatusTip(tr("Show the %1 help message to get a list with possible Dogecoin command-line options").arg(PACKAGE_NAME));
|
||||||
|
|
||||||
m_mask_values_action = new QAction(tr("&Mask values"), this);
|
m_mask_values_action = new QAction(tr("&Mask values"), this);
|
||||||
m_mask_values_action->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_M));
|
m_mask_values_action->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_M));
|
||||||
|
@ -913,7 +913,7 @@ void BitcoinGUI::updateNetworkState()
|
||||||
QString tooltip;
|
QString tooltip;
|
||||||
|
|
||||||
if (m_node.getNetworkActive()) {
|
if (m_node.getNetworkActive()) {
|
||||||
tooltip = tr("%n active connection(s) to Bitcoin network", "", count) + QString(".<br>") + tr("Click to disable network activity.");
|
tooltip = tr("%n active connection(s) to Dogecoin network", "", count) + QString(".<br>") + tr("Click to disable network activity.");
|
||||||
} else {
|
} else {
|
||||||
tooltip = tr("Network activity disabled.") + QString("<br>") + tr("Click to enable network activity again.");
|
tooltip = tr("Network activity disabled.") + QString("<br>") + tr("Click to enable network activity again.");
|
||||||
icon = ":/icons/network_disabled";
|
icon = ":/icons/network_disabled";
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
static const char UNUSED *bitcoin_strings[] = {
|
static const char UNUSED *bitcoin_strings[] = {
|
||||||
QT_TRANSLATE_NOOP("bitcoin-core", "The %s developers"),
|
QT_TRANSLATE_NOOP("bitcoin-core", "The %s developers"),
|
||||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||||
"%s corrupt. Try using the wallet tool bitcoin-wallet to salvage or restoring "
|
"%s corrupt. Try using the wallet tool dogecoin-wallet to salvage or restoring "
|
||||||
"a backup."),
|
"a backup."),
|
||||||
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
QT_TRANSLATE_NOOP("bitcoin-core", ""
|
||||||
"-maxtxfee is set very high! Fees this large could be paid on a single "
|
"-maxtxfee is set very high! Fees this large could be paid on a single "
|
||||||
|
|
|
@ -42,32 +42,27 @@ QString BitcoinUnits::longName(int unit)
|
||||||
{
|
{
|
||||||
switch(unit)
|
switch(unit)
|
||||||
{
|
{
|
||||||
case BTC: return QString("BTC");
|
case BTC: return QString("DOGE");
|
||||||
case mBTC: return QString("mBTC");
|
case mBTC: return QString("mDOGE");
|
||||||
case uBTC: return QString::fromUtf8("µBTC (bits)");
|
case uBTC: return QString::fromUtf8("µDOGE");
|
||||||
case SAT: return QString("Satoshi (sat)");
|
case SAT: return QString("Koinu");
|
||||||
default: return QString("???");
|
default: return QString("???");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BitcoinUnits::shortName(int unit)
|
QString BitcoinUnits::shortName(int unit)
|
||||||
{
|
{
|
||||||
switch(unit)
|
return longName(unit);
|
||||||
{
|
|
||||||
case uBTC: return QString::fromUtf8("bits");
|
|
||||||
case SAT: return QString("sat");
|
|
||||||
default: return longName(unit);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BitcoinUnits::description(int unit)
|
QString BitcoinUnits::description(int unit)
|
||||||
{
|
{
|
||||||
switch(unit)
|
switch(unit)
|
||||||
{
|
{
|
||||||
case BTC: return QString("Bitcoins");
|
case BTC: return QString("Dogecoins");
|
||||||
case mBTC: return QString("Milli-Bitcoins (1 / 1" THIN_SP_UTF8 "000)");
|
case mBTC: return QString("Milli-Dogecoins (1 / 1" THIN_SP_UTF8 "000)");
|
||||||
case uBTC: return QString("Micro-Bitcoins (bits) (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)");
|
case uBTC: return QString("Micro-Dogecoins (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)");
|
||||||
case SAT: return QString("Satoshi (sat) (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)");
|
case SAT: return QString("Koinu (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)");
|
||||||
default: return QString("???");
|
default: return QString("???");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,12 +42,12 @@ static const int TOOLTIP_WRAP_THRESHOLD = 80;
|
||||||
/* Number of frames in spinner animation */
|
/* Number of frames in spinner animation */
|
||||||
#define SPINNER_FRAMES 36
|
#define SPINNER_FRAMES 36
|
||||||
|
|
||||||
#define QAPP_ORG_NAME "Bitcoin"
|
#define QAPP_ORG_NAME "Dogecoin"
|
||||||
#define QAPP_ORG_DOMAIN "bitcoin.org"
|
#define QAPP_ORG_DOMAIN "dogecoin.com"
|
||||||
#define QAPP_APP_NAME_DEFAULT "Bitcoin-Qt"
|
#define QAPP_APP_NAME_DEFAULT "Dogecoin-Qt"
|
||||||
#define QAPP_APP_NAME_TESTNET "Bitcoin-Qt-testnet"
|
#define QAPP_APP_NAME_TESTNET "Dogecoin-Qt-testnet"
|
||||||
#define QAPP_APP_NAME_SIGNET "Bitcoin-Qt-signet"
|
#define QAPP_APP_NAME_SIGNET "Dogecoin-Qt-signet"
|
||||||
#define QAPP_APP_NAME_REGTEST "Bitcoin-Qt-regtest"
|
#define QAPP_APP_NAME_REGTEST "Dogecoin-Qt-regtest"
|
||||||
|
|
||||||
/* One gigabyte (GB) in bytes */
|
/* One gigabyte (GB) in bytes */
|
||||||
static constexpr uint64_t GB_BYTES{1000000000};
|
static constexpr uint64_t GB_BYTES{1000000000};
|
||||||
|
|
|
@ -19,13 +19,13 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Dogecoin"
|
||||||
VALUE "FileDescription", PACKAGE_NAME " (GUI node for Bitcoin)"
|
VALUE "FileDescription", PACKAGE_NAME " (GUI node for Dogecoin)"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoin-qt"
|
VALUE "InternalName", "dogecoin-qt"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoin-qt.exe"
|
VALUE "OriginalFilename", "dogecoin-qt.exe"
|
||||||
VALUE "ProductName", PACKAGE_NAME
|
VALUE "ProductName", PACKAGE_NAME
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
all:
|
all:
|
||||||
$(MAKE) -C ../../ test_bitcoin_qt
|
$(MAKE) -C ../../ test_dogecoin_qt
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -C ../../ test_bitcoin_qt_clean
|
$(MAKE) -C ../../ test_dogecoin_qt_clean
|
||||||
check:
|
check:
|
||||||
$(MAKE) -C ../../ test_bitcoin_qt_check
|
$(MAKE) -C ../../ test_dogecoin_qt_check
|
||||||
|
|
|
@ -58,7 +58,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) :
|
||||||
ui->helpMessage->setVisible(false);
|
ui->helpMessage->setVisible(false);
|
||||||
} else {
|
} else {
|
||||||
setWindowTitle(tr("Command-line options"));
|
setWindowTitle(tr("Command-line options"));
|
||||||
QString header = "Usage: bitcoin-qt [command-line options] \n";
|
QString header = "Usage: dogecoin-qt [command-line options] \n";
|
||||||
QTextCursor cursor(ui->helpMessage->document());
|
QTextCursor cursor(ui->helpMessage->document());
|
||||||
cursor.insertText(version);
|
cursor.insertText(version);
|
||||||
cursor.insertBlock();
|
cursor.insertBlock();
|
||||||
|
|
|
@ -98,7 +98,7 @@ BOOST_AUTO_TEST_CASE(BinaryOperatorTest)
|
||||||
BOOST_CHECK(a <= a);
|
BOOST_CHECK(a <= a);
|
||||||
BOOST_CHECK(b >= a);
|
BOOST_CHECK(b >= a);
|
||||||
BOOST_CHECK(b >= b);
|
BOOST_CHECK(b >= b);
|
||||||
// a should be 0.00000002 BTC/kvB now
|
// a should be 0.00000002 DOGE/kvB now
|
||||||
a += a;
|
a += a;
|
||||||
BOOST_CHECK(a == b);
|
BOOST_CHECK(a == b);
|
||||||
}
|
}
|
||||||
|
@ -107,9 +107,9 @@ BOOST_AUTO_TEST_CASE(ToStringTest)
|
||||||
{
|
{
|
||||||
CFeeRate feeRate;
|
CFeeRate feeRate;
|
||||||
feeRate = CFeeRate(1);
|
feeRate = CFeeRate(1);
|
||||||
BOOST_CHECK_EQUAL(feeRate.ToString(), "0.00000001 BTC/kvB");
|
BOOST_CHECK_EQUAL(feeRate.ToString(), "0.00000001 DOGE/kvB");
|
||||||
BOOST_CHECK_EQUAL(feeRate.ToString(FeeEstimateMode::BTC_KVB), "0.00000001 BTC/kvB");
|
BOOST_CHECK_EQUAL(feeRate.ToString(FeeEstimateMode::BTC_KVB), "0.00000001 DOGE/kvB");
|
||||||
BOOST_CHECK_EQUAL(feeRate.ToString(FeeEstimateMode::SAT_VB), "0.001 sat/vB");
|
BOOST_CHECK_EQUAL(feeRate.ToString(FeeEstimateMode::SAT_VB), "0.001 koinu/vB");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
// Application startup time (used for uptime calculation)
|
// Application startup time (used for uptime calculation)
|
||||||
const int64_t nStartupTime = GetTime();
|
const int64_t nStartupTime = GetTime();
|
||||||
|
|
||||||
const char * const BITCOIN_CONF_FILENAME = "bitcoin.conf";
|
const char * const BITCOIN_CONF_FILENAME = "dogecoin.conf";
|
||||||
const char * const BITCOIN_SETTINGS_FILENAME = "settings.json";
|
const char * const BITCOIN_SETTINGS_FILENAME = "settings.json";
|
||||||
|
|
||||||
ArgsManager gArgs;
|
ArgsManager gArgs;
|
||||||
|
@ -631,7 +631,7 @@ static std::string FormatException(const std::exception* pex, const char* pszThr
|
||||||
char pszModule[MAX_PATH] = "";
|
char pszModule[MAX_PATH] = "";
|
||||||
GetModuleFileNameA(nullptr, pszModule, sizeof(pszModule));
|
GetModuleFileNameA(nullptr, pszModule, sizeof(pszModule));
|
||||||
#else
|
#else
|
||||||
const char* pszModule = "bitcoin";
|
const char* pszModule = "dogecoin";
|
||||||
#endif
|
#endif
|
||||||
if (pex)
|
if (pex)
|
||||||
return strprintf(
|
return strprintf(
|
||||||
|
@ -650,12 +650,12 @@ void PrintExceptionContinue(const std::exception* pex, const char* pszThread)
|
||||||
|
|
||||||
fs::path GetDefaultDataDir()
|
fs::path GetDefaultDataDir()
|
||||||
{
|
{
|
||||||
// Windows: C:\Users\Username\AppData\Roaming\Bitcoin
|
// Windows: C:\Users\Username\AppData\Roaming\Dogecoin
|
||||||
// macOS: ~/Library/Application Support/Bitcoin
|
// macOS: ~/Library/Application Support/Dogecoin
|
||||||
// Unix-like: ~/.bitcoin
|
// Unix-like: ~/.dogecoin
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
// Windows
|
// Windows
|
||||||
return GetSpecialFolderPath(CSIDL_APPDATA) / "Bitcoin";
|
return GetSpecialFolderPath(CSIDL_APPDATA) / "Dogecoin";
|
||||||
#else
|
#else
|
||||||
fs::path pathRet;
|
fs::path pathRet;
|
||||||
char* pszHome = getenv("HOME");
|
char* pszHome = getenv("HOME");
|
||||||
|
@ -665,10 +665,10 @@ fs::path GetDefaultDataDir()
|
||||||
pathRet = fs::path(pszHome);
|
pathRet = fs::path(pszHome);
|
||||||
#ifdef MAC_OSX
|
#ifdef MAC_OSX
|
||||||
// macOS
|
// macOS
|
||||||
return pathRet / "Library/Application Support/Bitcoin";
|
return pathRet / "Library/Application Support/Dogecoin";
|
||||||
#else
|
#else
|
||||||
// Unix-like
|
// Unix-like
|
||||||
return pathRet / ".bitcoin";
|
return pathRet / ".dogecoin";
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -226,7 +226,7 @@ void SQLiteDatabase::Open()
|
||||||
// Now begin a transaction to acquire the exclusive lock. This lock won't be released until we close because of the exclusive locking mode.
|
// Now begin a transaction to acquire the exclusive lock. This lock won't be released until we close because of the exclusive locking mode.
|
||||||
ret = sqlite3_exec(m_db, "BEGIN EXCLUSIVE TRANSACTION", nullptr, nullptr, nullptr);
|
ret = sqlite3_exec(m_db, "BEGIN EXCLUSIVE TRANSACTION", nullptr, nullptr, nullptr);
|
||||||
if (ret != SQLITE_OK) {
|
if (ret != SQLITE_OK) {
|
||||||
throw std::runtime_error("SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another bitcoind?\n");
|
throw std::runtime_error("SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another dogecoind?\n");
|
||||||
}
|
}
|
||||||
ret = sqlite3_exec(m_db, "COMMIT", nullptr, nullptr, nullptr);
|
ret = sqlite3_exec(m_db, "COMMIT", nullptr, nullptr, nullptr);
|
||||||
if (ret != SQLITE_OK) {
|
if (ret != SQLITE_OK) {
|
||||||
|
|
|
@ -109,6 +109,19 @@ bool ExecuteWalletToolFunc(const std::string& command, const std::string& name)
|
||||||
{
|
{
|
||||||
fs::path path = fs::absolute(name, GetWalletDir());
|
fs::path path = fs::absolute(name, GetWalletDir());
|
||||||
|
|
||||||
|
if (gArgs.IsArgSet("-format") && command != "createfromdump") {
|
||||||
|
tfm::format(std::cerr, "The -format option can only be used with the \"createfromdump\" command.\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (gArgs.IsArgSet("-dumpfile") && command != "dump" && command != "createfromdump") {
|
||||||
|
tfm::format(std::cerr, "The -dumpfile option can only be used with the \"dump\" and \"createfromdump\" commands.\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (gArgs.IsArgSet("-descriptors") && command != "create") {
|
||||||
|
tfm::format(std::cerr, "The -descriptors option can only be used with the 'create' command.\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (command == "create") {
|
if (command == "create") {
|
||||||
std::shared_ptr<CWallet> wallet_instance = MakeWallet(name, path, /* create= */ true);
|
std::shared_ptr<CWallet> wallet_instance = MakeWallet(name, path, /* create= */ true);
|
||||||
if (wallet_instance) {
|
if (wallet_instance) {
|
||||||
|
|
|
@ -20,7 +20,7 @@ class ConfArgsTest(BitcoinTestFramework):
|
||||||
# Assume node is stopped
|
# Assume node is stopped
|
||||||
|
|
||||||
inc_conf_file_path = os.path.join(self.nodes[0].datadir, 'include.conf')
|
inc_conf_file_path = os.path.join(self.nodes[0].datadir, 'include.conf')
|
||||||
with open(os.path.join(self.nodes[0].datadir, 'bitcoin.conf'), 'a', encoding='utf-8') as conf:
|
with open(os.path.join(self.nodes[0].datadir, 'dogecoin.conf'), 'a', encoding='utf-8') as conf:
|
||||||
conf.write('includeconf={}\n'.format(inc_conf_file_path))
|
conf.write('includeconf={}\n'.format(inc_conf_file_path))
|
||||||
|
|
||||||
self.nodes[0].assert_start_raises_init_error(
|
self.nodes[0].assert_start_raises_init_error(
|
||||||
|
@ -64,7 +64,7 @@ class ConfArgsTest(BitcoinTestFramework):
|
||||||
self.nodes[0].assert_start_raises_init_error(expected_msg='Error: Error reading configuration file: parse error on line 4, using # in rpcpassword can be ambiguous and should be avoided')
|
self.nodes[0].assert_start_raises_init_error(expected_msg='Error: Error reading configuration file: parse error on line 4, using # in rpcpassword can be ambiguous and should be avoided')
|
||||||
|
|
||||||
inc_conf_file2_path = os.path.join(self.nodes[0].datadir, 'include2.conf')
|
inc_conf_file2_path = os.path.join(self.nodes[0].datadir, 'include2.conf')
|
||||||
with open(os.path.join(self.nodes[0].datadir, 'bitcoin.conf'), 'a', encoding='utf-8') as conf:
|
with open(os.path.join(self.nodes[0].datadir, 'dogecoin.conf'), 'a', encoding='utf-8') as conf:
|
||||||
conf.write('includeconf={}\n'.format(inc_conf_file2_path))
|
conf.write('includeconf={}\n'.format(inc_conf_file2_path))
|
||||||
|
|
||||||
with open(inc_conf_file_path, 'w', encoding='utf-8') as conf:
|
with open(inc_conf_file_path, 'w', encoding='utf-8') as conf:
|
||||||
|
@ -167,7 +167,7 @@ class ConfArgsTest(BitcoinTestFramework):
|
||||||
self.nodes[0].assert_start_raises_init_error(['-datadir=' + new_data_dir], 'Error: Specified data directory "' + new_data_dir + '" does not exist.')
|
self.nodes[0].assert_start_raises_init_error(['-datadir=' + new_data_dir], 'Error: Specified data directory "' + new_data_dir + '" does not exist.')
|
||||||
|
|
||||||
# Check that using non-existent datadir in conf file fails
|
# Check that using non-existent datadir in conf file fails
|
||||||
conf_file = os.path.join(default_data_dir, "bitcoin.conf")
|
conf_file = os.path.join(default_data_dir, "dogecoin.conf")
|
||||||
|
|
||||||
# datadir needs to be set before [chain] section
|
# datadir needs to be set before [chain] section
|
||||||
conf_file_contents = open(conf_file, encoding='utf8').read()
|
conf_file_contents = open(conf_file, encoding='utf8').read()
|
||||||
|
|
|
@ -32,7 +32,7 @@ class IncludeConfTest(BitcoinTestFramework):
|
||||||
# - tmpdir/node0/relative2.conf
|
# - tmpdir/node0/relative2.conf
|
||||||
with open(os.path.join(self.options.tmpdir, "node0", "relative2.conf"), "w", encoding="utf8") as f:
|
with open(os.path.join(self.options.tmpdir, "node0", "relative2.conf"), "w", encoding="utf8") as f:
|
||||||
f.write("uacomment=relative2\n")
|
f.write("uacomment=relative2\n")
|
||||||
with open(os.path.join(self.options.tmpdir, "node0", "bitcoin.conf"), "a", encoding='utf8') as f:
|
with open(os.path.join(self.options.tmpdir, "node0", "dogecoin.conf"), "a", encoding='utf8') as f:
|
||||||
f.write("uacomment=main\nincludeconf=relative.conf\n")
|
f.write("uacomment=main\nincludeconf=relative.conf\n")
|
||||||
|
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
|
@ -70,7 +70,7 @@ class IncludeConfTest(BitcoinTestFramework):
|
||||||
# Restore initial file contents
|
# Restore initial file contents
|
||||||
f.write("uacomment=relative\n")
|
f.write("uacomment=relative\n")
|
||||||
|
|
||||||
with open(os.path.join(self.options.tmpdir, "node0", "bitcoin.conf"), "a", encoding='utf8') as f:
|
with open(os.path.join(self.options.tmpdir, "node0", "dogecoin.conf"), "a", encoding='utf8') as f:
|
||||||
f.write("includeconf=relative2.conf\n")
|
f.write("includeconf=relative2.conf\n")
|
||||||
|
|
||||||
self.start_node(0)
|
self.start_node(0)
|
||||||
|
|
|
@ -22,7 +22,7 @@ class SettingsTest(BitcoinTestFramework):
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
node, = self.nodes
|
node, = self.nodes
|
||||||
settings = Path(node.datadir, self.chain, "settings.json")
|
settings = Path(node.datadir, self.chain, "settings.json")
|
||||||
conf = Path(node.datadir, "bitcoin.conf")
|
conf = Path(node.datadir, "dogecoin.conf")
|
||||||
|
|
||||||
# Assert empty settings file was created
|
# Assert empty settings file was created
|
||||||
self.stop_node(0)
|
self.stop_node(0)
|
||||||
|
|
|
@ -707,7 +707,7 @@ class RawTransactionsTest(BitcoinTestFramework):
|
||||||
wwatch.unloadwallet()
|
wwatch.unloadwallet()
|
||||||
|
|
||||||
def test_option_feerate(self):
|
def test_option_feerate(self):
|
||||||
self.log.info("Test fundrawtxn with explicit fee rates (fee_rate sat/vB and feeRate BTC/kvB)")
|
self.log.info("Test fundrawtxn with explicit fee rates (fee_rate koinu/vB and feeRate DOGE/kvB)")
|
||||||
node = self.nodes[3]
|
node = self.nodes[3]
|
||||||
# Make sure there is exactly one input so coin selection can't skew the result.
|
# Make sure there is exactly one input so coin selection can't skew the result.
|
||||||
assert_equal(len(self.nodes[3].listunspent(1)), 1)
|
assert_equal(len(self.nodes[3].listunspent(1)), 1)
|
||||||
|
@ -768,12 +768,12 @@ class RawTransactionsTest(BitcoinTestFramework):
|
||||||
assert_raises_rpc_error(-3, "Invalid amount",
|
assert_raises_rpc_error(-3, "Invalid amount",
|
||||||
node.fundrawtransaction, rawtx, {param: "", "add_inputs": True})
|
node.fundrawtransaction, rawtx, {param: "", "add_inputs": True})
|
||||||
|
|
||||||
self.log.info("Test min fee rate checks are bypassed with fundrawtxn, e.g. a fee_rate under 1 sat/vB is allowed")
|
self.log.info("Test min fee rate checks are bypassed with fundrawtxn, e.g. a fee_rate under 1 koinu/vB is allowed")
|
||||||
node.fundrawtransaction(rawtx, {"fee_rate": 0.99999999, "add_inputs": True})
|
node.fundrawtransaction(rawtx, {"fee_rate": 0.99999999, "add_inputs": True})
|
||||||
node.fundrawtransaction(rawtx, {"feeRate": 0.00000999, "add_inputs": True})
|
node.fundrawtransaction(rawtx, {"feeRate": 0.00000999, "add_inputs": True})
|
||||||
|
|
||||||
self.log.info("- raises RPC error if both feeRate and fee_rate are passed")
|
self.log.info("- raises RPC error if both feeRate and fee_rate are passed")
|
||||||
assert_raises_rpc_error(-8, "Cannot specify both fee_rate (sat/vB) and feeRate (BTC/kvB)",
|
assert_raises_rpc_error(-8, "Cannot specify both fee_rate (koinu/vB) and feeRate (DOGE/kvB)",
|
||||||
node.fundrawtransaction, rawtx, {"fee_rate": 0.1, "feeRate": 0.1, "add_inputs": True})
|
node.fundrawtransaction, rawtx, {"fee_rate": 0.1, "feeRate": 0.1, "add_inputs": True})
|
||||||
|
|
||||||
self.log.info("- raises RPC error if both feeRate and estimate_mode passed")
|
self.log.info("- raises RPC error if both feeRate and estimate_mode passed")
|
||||||
|
|
|
@ -187,13 +187,13 @@ class PSBTTest(BitcoinTestFramework):
|
||||||
assert_equal(walletprocesspsbt_out['complete'], True)
|
assert_equal(walletprocesspsbt_out['complete'], True)
|
||||||
self.nodes[1].sendrawtransaction(self.nodes[1].finalizepsbt(walletprocesspsbt_out['psbt'])['hex'])
|
self.nodes[1].sendrawtransaction(self.nodes[1].finalizepsbt(walletprocesspsbt_out['psbt'])['hex'])
|
||||||
|
|
||||||
self.log.info("Test walletcreatefundedpsbt fee rate of 10000 sat/vB and 0.1 BTC/kvB produces a total fee at or slightly below -maxtxfee (~0.05290000)")
|
self.log.info("Test walletcreatefundedpsbt fee rate of 10000 koinu/vB and 0.1 DOGE/kvB produces a total fee at or slightly below -maxtxfee (~0.05290000)")
|
||||||
res1 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"fee_rate": 10000, "add_inputs": True})
|
res1 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"fee_rate": 10000, "add_inputs": True})
|
||||||
assert_approx(res1["fee"], 0.055, 0.005)
|
assert_approx(res1["fee"], 0.055, 0.005)
|
||||||
res2 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"feeRate": "0.1", "add_inputs": True})
|
res2 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"feeRate": "0.1", "add_inputs": True})
|
||||||
assert_approx(res2["fee"], 0.055, 0.005)
|
assert_approx(res2["fee"], 0.055, 0.005)
|
||||||
|
|
||||||
self.log.info("Test min fee rate checks with walletcreatefundedpsbt are bypassed, e.g. a fee_rate under 1 sat/vB is allowed")
|
self.log.info("Test min fee rate checks with walletcreatefundedpsbt are bypassed, e.g. a fee_rate under 1 koinu/vB is allowed")
|
||||||
res3 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"fee_rate": "0.99999999", "add_inputs": True})
|
res3 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"fee_rate": "0.99999999", "add_inputs": True})
|
||||||
assert_approx(res3["fee"], 0.00000381, 0.0000001)
|
assert_approx(res3["fee"], 0.00000381, 0.0000001)
|
||||||
res4 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"feeRate": 0.00000999, "add_inputs": True})
|
res4 = self.nodes[1].walletcreatefundedpsbt(inputs, outputs, 0, {"feeRate": 0.00000999, "add_inputs": True})
|
||||||
|
@ -215,7 +215,7 @@ class PSBTTest(BitcoinTestFramework):
|
||||||
self.nodes[1].walletcreatefundedpsbt, inputs, outputs, 0, {param: "", "add_inputs": True})
|
self.nodes[1].walletcreatefundedpsbt, inputs, outputs, 0, {param: "", "add_inputs": True})
|
||||||
|
|
||||||
self.log.info("- raises RPC error if both feeRate and fee_rate are passed")
|
self.log.info("- raises RPC error if both feeRate and fee_rate are passed")
|
||||||
assert_raises_rpc_error(-8, "Cannot specify both fee_rate (sat/vB) and feeRate (BTC/kvB)",
|
assert_raises_rpc_error(-8, "Cannot specify both fee_rate (koinu/vB) and feeRate (DOGE/kvB)",
|
||||||
self.nodes[1].walletcreatefundedpsbt, inputs, outputs, 0, {"fee_rate": 0.1, "feeRate": 0.1, "add_inputs": True})
|
self.nodes[1].walletcreatefundedpsbt, inputs, outputs, 0, {"fee_rate": 0.1, "feeRate": 0.1, "add_inputs": True})
|
||||||
|
|
||||||
self.log.info("- raises RPC error if both feeRate and estimate_mode passed")
|
self.log.info("- raises RPC error if both feeRate and estimate_mode passed")
|
||||||
|
|
|
@ -64,11 +64,11 @@ class HTTPBasicsTest(BitcoinTestFramework):
|
||||||
rpcauth3 = lines[1]
|
rpcauth3 = lines[1]
|
||||||
self.password = lines[3]
|
self.password = lines[3]
|
||||||
|
|
||||||
with open(os.path.join(get_datadir_path(self.options.tmpdir, 0), "bitcoin.conf"), 'a', encoding='utf8') as f:
|
with open(os.path.join(get_datadir_path(self.options.tmpdir, 0), "dogecoin.conf"), 'a', encoding='utf8') as f:
|
||||||
f.write(rpcauth + "\n")
|
f.write(rpcauth + "\n")
|
||||||
f.write(rpcauth2 + "\n")
|
f.write(rpcauth2 + "\n")
|
||||||
f.write(rpcauth3 + "\n")
|
f.write(rpcauth3 + "\n")
|
||||||
with open(os.path.join(get_datadir_path(self.options.tmpdir, 1), "bitcoin.conf"), 'a', encoding='utf8') as f:
|
with open(os.path.join(get_datadir_path(self.options.tmpdir, 1), "dogecoin.conf"), 'a', encoding='utf8') as f:
|
||||||
f.write("rpcuser={}\n".format(self.rpcuser))
|
f.write("rpcuser={}\n".format(self.rpcuser))
|
||||||
f.write("rpcpassword={}\n".format(self.rpcpassword))
|
f.write("rpcpassword={}\n".format(self.rpcpassword))
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ class RPCWhitelistTest(BitcoinTestFramework):
|
||||||
]
|
]
|
||||||
# These commands shouldn't be allowed for any user to test failures
|
# These commands shouldn't be allowed for any user to test failures
|
||||||
self.never_allowed = ["getnetworkinfo"]
|
self.never_allowed = ["getnetworkinfo"]
|
||||||
with open(os.path.join(get_datadir_path(self.options.tmpdir, 0), "bitcoin.conf"), 'a', encoding='utf8') as f:
|
with open(os.path.join(get_datadir_path(self.options.tmpdir, 0), "dogecoin.conf"), 'a', encoding='utf8') as f:
|
||||||
f.write("\nrpcwhitelistdefault=0\n")
|
f.write("\nrpcwhitelistdefault=0\n")
|
||||||
for user in self.users:
|
for user in self.users:
|
||||||
f.write("rpcauth=" + user[0] + ":" + user[1] + "\n")
|
f.write("rpcauth=" + user[0] + ":" + user[1] + "\n")
|
||||||
|
|
|
@ -210,12 +210,12 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||||
fname_bitcoind = os.path.join(
|
fname_bitcoind = os.path.join(
|
||||||
config["environment"]["BUILDDIR"],
|
config["environment"]["BUILDDIR"],
|
||||||
"src",
|
"src",
|
||||||
"bitcoind" + config["environment"]["EXEEXT"],
|
"dogecoind" + config["environment"]["EXEEXT"],
|
||||||
)
|
)
|
||||||
fname_bitcoincli = os.path.join(
|
fname_bitcoincli = os.path.join(
|
||||||
config["environment"]["BUILDDIR"],
|
config["environment"]["BUILDDIR"],
|
||||||
"src",
|
"src",
|
||||||
"bitcoin-cli" + config["environment"]["EXEEXT"],
|
"dogecoin-cli" + config["environment"]["EXEEXT"],
|
||||||
)
|
)
|
||||||
self.options.bitcoind = os.getenv("BITCOIND", default=fname_bitcoind)
|
self.options.bitcoind = os.getenv("BITCOIND", default=fname_bitcoind)
|
||||||
self.options.bitcoincli = os.getenv("BITCOINCLI", default=fname_bitcoincli)
|
self.options.bitcoincli = os.getenv("BITCOINCLI", default=fname_bitcoincli)
|
||||||
|
@ -446,9 +446,9 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||||
if versions is None:
|
if versions is None:
|
||||||
versions = [None] * num_nodes
|
versions = [None] * num_nodes
|
||||||
if binary is None:
|
if binary is None:
|
||||||
binary = [get_bin_from_version(v, 'bitcoind', self.options.bitcoind) for v in versions]
|
binary = [get_bin_from_version(v, 'dogecoind', self.options.bitcoind) for v in versions]
|
||||||
if binary_cli is None:
|
if binary_cli is None:
|
||||||
binary_cli = [get_bin_from_version(v, 'bitcoin-cli', self.options.bitcoincli) for v in versions]
|
binary_cli = [get_bin_from_version(v, 'dogecoin-cli', self.options.bitcoincli) for v in versions]
|
||||||
assert_equal(len(extra_confs), num_nodes)
|
assert_equal(len(extra_confs), num_nodes)
|
||||||
assert_equal(len(extra_args), num_nodes)
|
assert_equal(len(extra_args), num_nodes)
|
||||||
assert_equal(len(versions), num_nodes)
|
assert_equal(len(versions), num_nodes)
|
||||||
|
@ -768,7 +768,7 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||||
def skip_if_no_bitcoind_zmq(self):
|
def skip_if_no_bitcoind_zmq(self):
|
||||||
"""Skip the running test if bitcoind has not been compiled with zmq support."""
|
"""Skip the running test if bitcoind has not been compiled with zmq support."""
|
||||||
if not self.is_zmq_compiled():
|
if not self.is_zmq_compiled():
|
||||||
raise SkipTest("bitcoind has not been built with zmq enabled.")
|
raise SkipTest("dogecoind has not been built with zmq enabled.")
|
||||||
|
|
||||||
def skip_if_no_wallet(self):
|
def skip_if_no_wallet(self):
|
||||||
"""Skip the running test if wallet has not been compiled."""
|
"""Skip the running test if wallet has not been compiled."""
|
||||||
|
@ -785,12 +785,12 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||||
def skip_if_no_wallet_tool(self):
|
def skip_if_no_wallet_tool(self):
|
||||||
"""Skip the running test if bitcoin-wallet has not been compiled."""
|
"""Skip the running test if bitcoin-wallet has not been compiled."""
|
||||||
if not self.is_wallet_tool_compiled():
|
if not self.is_wallet_tool_compiled():
|
||||||
raise SkipTest("bitcoin-wallet has not been compiled")
|
raise SkipTest("dogecoin-wallet has not been compiled")
|
||||||
|
|
||||||
def skip_if_no_cli(self):
|
def skip_if_no_cli(self):
|
||||||
"""Skip the running test if bitcoin-cli has not been compiled."""
|
"""Skip the running test if bitcoin-cli has not been compiled."""
|
||||||
if not self.is_cli_compiled():
|
if not self.is_cli_compiled():
|
||||||
raise SkipTest("bitcoin-cli has not been compiled.")
|
raise SkipTest("dogecoin-cli has not been compiled.")
|
||||||
|
|
||||||
def skip_if_no_previous_releases(self):
|
def skip_if_no_previous_releases(self):
|
||||||
"""Skip the running test if previous releases are not available."""
|
"""Skip the running test if previous releases are not available."""
|
||||||
|
|
|
@ -72,7 +72,7 @@ class TestNode():
|
||||||
|
|
||||||
self.index = i
|
self.index = i
|
||||||
self.datadir = datadir
|
self.datadir = datadir
|
||||||
self.bitcoinconf = os.path.join(self.datadir, "bitcoin.conf")
|
self.bitcoinconf = os.path.join(self.datadir, "dogecoin.conf")
|
||||||
self.stdout_dir = os.path.join(self.datadir, "stdout")
|
self.stdout_dir = os.path.join(self.datadir, "stdout")
|
||||||
self.stderr_dir = os.path.join(self.datadir, "stderr")
|
self.stderr_dir = os.path.join(self.datadir, "stderr")
|
||||||
self.chain = chain
|
self.chain = chain
|
||||||
|
@ -218,7 +218,7 @@ class TestNode():
|
||||||
for _ in range(poll_per_s * self.rpc_timeout):
|
for _ in range(poll_per_s * self.rpc_timeout):
|
||||||
if self.process.poll() is not None:
|
if self.process.poll() is not None:
|
||||||
raise FailedToStartError(self._node_msg(
|
raise FailedToStartError(self._node_msg(
|
||||||
'bitcoind exited with status {} during initialization'.format(self.process.returncode)))
|
'dogecoind exited with status {} during initialization'.format(self.process.returncode)))
|
||||||
try:
|
try:
|
||||||
rpc = get_rpc_proxy(
|
rpc = get_rpc_proxy(
|
||||||
rpc_url(self.datadir, self.index, self.chain, self.rpchost),
|
rpc_url(self.datadir, self.index, self.chain, self.rpchost),
|
||||||
|
@ -276,7 +276,7 @@ class TestNode():
|
||||||
if "No RPC credentials" not in str(e):
|
if "No RPC credentials" not in str(e):
|
||||||
raise
|
raise
|
||||||
time.sleep(1.0 / poll_per_s)
|
time.sleep(1.0 / poll_per_s)
|
||||||
self._raise_assertion_error("Unable to connect to bitcoind after {}s".format(self.rpc_timeout))
|
self._raise_assertion_error("Unable to connect to dogecoind after {}s".format(self.rpc_timeout))
|
||||||
|
|
||||||
def wait_for_cookie_credentials(self):
|
def wait_for_cookie_credentials(self):
|
||||||
"""Ensures auth cookie credentials can be read, e.g. for testing CLI with -rpcwait before RPC connection is up."""
|
"""Ensures auth cookie credentials can be read, e.g. for testing CLI with -rpcwait before RPC connection is up."""
|
||||||
|
@ -432,7 +432,7 @@ class TestNode():
|
||||||
|
|
||||||
if not test_success('readelf -S {} | grep .debug_str'.format(shlex.quote(self.binary))):
|
if not test_success('readelf -S {} | grep .debug_str'.format(shlex.quote(self.binary))):
|
||||||
self.log.warning(
|
self.log.warning(
|
||||||
"perf output won't be very useful without debug symbols compiled into bitcoind")
|
"perf output won't be very useful without debug symbols compiled into dogecoind")
|
||||||
|
|
||||||
output_path = tempfile.NamedTemporaryFile(
|
output_path = tempfile.NamedTemporaryFile(
|
||||||
dir=self.datadir,
|
dir=self.datadir,
|
||||||
|
@ -486,7 +486,7 @@ class TestNode():
|
||||||
self.stop_node()
|
self.stop_node()
|
||||||
self.wait_until_stopped()
|
self.wait_until_stopped()
|
||||||
except FailedToStartError as e:
|
except FailedToStartError as e:
|
||||||
self.log.debug('bitcoind failed to start: %s', e)
|
self.log.debug('dogecoind failed to start: %s', e)
|
||||||
self.running = False
|
self.running = False
|
||||||
self.process = None
|
self.process = None
|
||||||
# Check stderr for expected message
|
# Check stderr for expected message
|
||||||
|
@ -507,9 +507,9 @@ class TestNode():
|
||||||
'Expected message "{}" does not fully match stderr:\n"{}"'.format(expected_msg, stderr))
|
'Expected message "{}" does not fully match stderr:\n"{}"'.format(expected_msg, stderr))
|
||||||
else:
|
else:
|
||||||
if expected_msg is None:
|
if expected_msg is None:
|
||||||
assert_msg = "bitcoind should have exited with an error"
|
assert_msg = "dogecoind should have exited with an error"
|
||||||
else:
|
else:
|
||||||
assert_msg = "bitcoind should have exited with expected error " + expected_msg
|
assert_msg = "dogecoind should have exited with expected error " + expected_msg
|
||||||
self._raise_assertion_error(assert_msg)
|
self._raise_assertion_error(assert_msg)
|
||||||
|
|
||||||
def add_p2p_connection(self, p2p_conn, *, wait_for_verack=True, **kwargs):
|
def add_p2p_connection(self, p2p_conn, *, wait_for_verack=True, **kwargs):
|
||||||
|
@ -584,7 +584,7 @@ class TestNodeCLI():
|
||||||
self.binary = binary
|
self.binary = binary
|
||||||
self.datadir = datadir
|
self.datadir = datadir
|
||||||
self.input = None
|
self.input = None
|
||||||
self.log = logging.getLogger('TestFramework.bitcoincli')
|
self.log = logging.getLogger('TestFramework.dogecoincli')
|
||||||
|
|
||||||
def __call__(self, *options, input=None):
|
def __call__(self, *options, input=None):
|
||||||
# TestNodeCLI is callable with bitcoin-cli command-line options
|
# TestNodeCLI is callable with bitcoin-cli command-line options
|
||||||
|
@ -616,7 +616,7 @@ class TestNodeCLI():
|
||||||
if command is not None:
|
if command is not None:
|
||||||
p_args += [command]
|
p_args += [command]
|
||||||
p_args += pos_args + named_args
|
p_args += pos_args + named_args
|
||||||
self.log.debug("Running bitcoin-cli {}".format(p_args[2:]))
|
self.log.debug("Running dogecoin-cli {}".format(p_args[2:]))
|
||||||
process = subprocess.Popen(p_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
process = subprocess.Popen(p_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
||||||
cli_stdout, cli_stderr = process.communicate(input=self.input)
|
cli_stdout, cli_stderr = process.communicate(input=self.input)
|
||||||
returncode = process.poll()
|
returncode = process.poll()
|
||||||
|
|
|
@ -304,6 +304,7 @@ def get_rpc_proxy(url, node_number, *, timeout=None, coveragedir=None):
|
||||||
if timeout is not None:
|
if timeout is not None:
|
||||||
proxy_kwargs['timeout'] = int(timeout)
|
proxy_kwargs['timeout'] = int(timeout)
|
||||||
|
|
||||||
|
print("Proxy: " + url)
|
||||||
proxy = AuthServiceProxy(url, **proxy_kwargs)
|
proxy = AuthServiceProxy(url, **proxy_kwargs)
|
||||||
proxy.url = url # store URL on proxy for info
|
proxy.url = url # store URL on proxy for info
|
||||||
|
|
||||||
|
@ -349,7 +350,7 @@ def initialize_datadir(dirname, n, chain):
|
||||||
else:
|
else:
|
||||||
chain_name_conf_arg = chain
|
chain_name_conf_arg = chain
|
||||||
chain_name_conf_section = chain
|
chain_name_conf_section = chain
|
||||||
with open(os.path.join(datadir, "bitcoin.conf"), 'w', encoding='utf8') as f:
|
with open(os.path.join(datadir, "dogecoin.conf"), 'w', encoding='utf8') as f:
|
||||||
f.write("{}=1\n".format(chain_name_conf_arg))
|
f.write("{}=1\n".format(chain_name_conf_arg))
|
||||||
f.write("[{}]\n".format(chain_name_conf_section))
|
f.write("[{}]\n".format(chain_name_conf_section))
|
||||||
f.write("port=" + str(p2p_port(n)) + "\n")
|
f.write("port=" + str(p2p_port(n)) + "\n")
|
||||||
|
@ -373,7 +374,7 @@ def get_datadir_path(dirname, n):
|
||||||
|
|
||||||
|
|
||||||
def append_config(datadir, options):
|
def append_config(datadir, options):
|
||||||
with open(os.path.join(datadir, "bitcoin.conf"), 'a', encoding='utf8') as f:
|
with open(os.path.join(datadir, "dogecoin.conf"), 'a', encoding='utf8') as f:
|
||||||
for option in options:
|
for option in options:
|
||||||
f.write(option + "\n")
|
f.write(option + "\n")
|
||||||
|
|
||||||
|
@ -381,8 +382,8 @@ def append_config(datadir, options):
|
||||||
def get_auth_cookie(datadir, chain):
|
def get_auth_cookie(datadir, chain):
|
||||||
user = None
|
user = None
|
||||||
password = None
|
password = None
|
||||||
if os.path.isfile(os.path.join(datadir, "bitcoin.conf")):
|
if os.path.isfile(os.path.join(datadir, "dogecoin.conf")):
|
||||||
with open(os.path.join(datadir, "bitcoin.conf"), 'r', encoding='utf8') as f:
|
with open(os.path.join(datadir, "dogecoin.conf"), 'r', encoding='utf8') as f:
|
||||||
for line in f:
|
for line in f:
|
||||||
if line.startswith("rpcuser="):
|
if line.startswith("rpcuser="):
|
||||||
assert user is None # Ensure that there is only one rpcuser line
|
assert user is None # Ensure that there is only one rpcuser line
|
||||||
|
|
|
@ -344,7 +344,7 @@ def main():
|
||||||
logging.basicConfig(format='%(message)s', level=logging_level)
|
logging.basicConfig(format='%(message)s', level=logging_level)
|
||||||
|
|
||||||
# Create base test directory
|
# Create base test directory
|
||||||
tmpdir = "%s/test_runner_₿_🏃_%s" % (args.tmpdirprefix, datetime.datetime.now().strftime("%Y%m%d_%H%M%S"))
|
tmpdir = "%s/test_runner_Đ_🏃_%s" % (args.tmpdirprefix, datetime.datetime.now().strftime("%Y%m%d_%H%M%S"))
|
||||||
|
|
||||||
os.makedirs(tmpdir)
|
os.makedirs(tmpdir)
|
||||||
|
|
||||||
|
|
|
@ -27,9 +27,12 @@ class ToolWalletTest(BitcoinTestFramework):
|
||||||
self.skip_if_no_wallet_tool()
|
self.skip_if_no_wallet_tool()
|
||||||
|
|
||||||
def bitcoin_wallet_process(self, *args):
|
def bitcoin_wallet_process(self, *args):
|
||||||
binary = self.config["environment"]["BUILDDIR"] + '/src/bitcoin-wallet' + self.config["environment"]["EXEEXT"]
|
binary = self.config["environment"]["BUILDDIR"] + '/src/dogecoin-wallet' + self.config["environment"]["EXEEXT"]
|
||||||
args = ['-datadir={}'.format(self.nodes[0].datadir), '-chain=%s' % self.chain] + list(args)
|
default_args = ['-datadir={}'.format(self.nodes[0].datadir), '-chain=%s' % self.chain]
|
||||||
return subprocess.Popen([binary] + args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
if self.options.descriptors and 'create' in args:
|
||||||
|
default_args.append('-descriptors')
|
||||||
|
|
||||||
|
return subprocess.Popen([binary] + default_args + list(args), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
||||||
|
|
||||||
def assert_raises_tool_error(self, error, *args):
|
def assert_raises_tool_error(self, error, *args):
|
||||||
p = self.bitcoin_wallet_process(*args)
|
p = self.bitcoin_wallet_process(*args)
|
||||||
|
@ -73,7 +76,7 @@ class ToolWalletTest(BitcoinTestFramework):
|
||||||
locked_dir = os.path.join(self.options.tmpdir, "node0", "regtest", "wallets")
|
locked_dir = os.path.join(self.options.tmpdir, "node0", "regtest", "wallets")
|
||||||
error = 'Error initializing wallet database environment "{}"!'.format(locked_dir)
|
error = 'Error initializing wallet database environment "{}"!'.format(locked_dir)
|
||||||
if self.options.descriptors:
|
if self.options.descriptors:
|
||||||
error = "SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another bitcoind?"
|
error = "SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another dogecoind?"
|
||||||
self.assert_raises_tool_error(
|
self.assert_raises_tool_error(
|
||||||
error,
|
error,
|
||||||
'-wallet=' + self.default_wallet_name,
|
'-wallet=' + self.default_wallet_name,
|
||||||
|
@ -255,6 +258,83 @@ class ToolWalletTest(BitcoinTestFramework):
|
||||||
|
|
||||||
self.assert_tool_output('', '-wallet=salvage', 'salvage')
|
self.assert_tool_output('', '-wallet=salvage', 'salvage')
|
||||||
|
|
||||||
|
def test_dump_createfromdump(self):
|
||||||
|
self.start_node(0)
|
||||||
|
self.nodes[0].createwallet("todump")
|
||||||
|
file_format = self.nodes[0].get_wallet_rpc("todump").getwalletinfo()["format"]
|
||||||
|
self.nodes[0].createwallet("todump2")
|
||||||
|
self.stop_node(0)
|
||||||
|
|
||||||
|
self.log.info('Checking dump arguments')
|
||||||
|
self.assert_raises_tool_error('No dump file provided. To use dump, -dumpfile=<filename> must be provided.', '-wallet=todump', 'dump')
|
||||||
|
|
||||||
|
self.log.info('Checking basic dump')
|
||||||
|
wallet_dump = os.path.join(self.nodes[0].datadir, "wallet.dump")
|
||||||
|
self.assert_tool_output('The dumpfile may contain private keys. To ensure the safety of your Bitcoin, do not share the dumpfile.\n', '-wallet=todump', '-dumpfile={}'.format(wallet_dump), 'dump')
|
||||||
|
|
||||||
|
dump_data = self.read_dump(wallet_dump)
|
||||||
|
orig_dump = dump_data.copy()
|
||||||
|
# Check the dump magic
|
||||||
|
assert_equal(dump_data['DOGECOIN_CORE_WALLET_DUMP'], '1')
|
||||||
|
# Check the file format
|
||||||
|
assert_equal(dump_data["format"], file_format)
|
||||||
|
|
||||||
|
self.log.info('Checking that a dumpfile cannot be overwritten')
|
||||||
|
self.assert_raises_tool_error('File {} already exists. If you are sure this is what you want, move it out of the way first.'.format(wallet_dump), '-wallet=todump2', '-dumpfile={}'.format(wallet_dump), 'dump')
|
||||||
|
|
||||||
|
self.log.info('Checking createfromdump arguments')
|
||||||
|
self.assert_raises_tool_error('No dump file provided. To use createfromdump, -dumpfile=<filename> must be provided.', '-wallet=todump', 'createfromdump')
|
||||||
|
non_exist_dump = os.path.join(self.nodes[0].datadir, "wallet.nodump")
|
||||||
|
self.assert_raises_tool_error('Unknown wallet file format "notaformat" provided. Please provide one of "bdb" or "sqlite".', '-wallet=todump', '-format=notaformat', '-dumpfile={}'.format(wallet_dump), 'createfromdump')
|
||||||
|
self.assert_raises_tool_error('Dump file {} does not exist.'.format(non_exist_dump), '-wallet=todump', '-dumpfile={}'.format(non_exist_dump), 'createfromdump')
|
||||||
|
wallet_path = os.path.join(self.nodes[0].datadir, 'regtest/wallets/todump2')
|
||||||
|
self.assert_raises_tool_error('Failed to create database path \'{}\'. Database already exists.'.format(wallet_path), '-wallet=todump2', '-dumpfile={}'.format(wallet_dump), 'createfromdump')
|
||||||
|
self.assert_raises_tool_error("The -descriptors option can only be used with the 'create' command.", '-descriptors', '-wallet=todump2', '-dumpfile={}'.format(wallet_dump), 'createfromdump')
|
||||||
|
|
||||||
|
self.log.info('Checking createfromdump')
|
||||||
|
self.do_tool_createfromdump("load", "wallet.dump")
|
||||||
|
self.do_tool_createfromdump("load-bdb", "wallet.dump", "bdb")
|
||||||
|
if self.is_sqlite_compiled():
|
||||||
|
self.do_tool_createfromdump("load-sqlite", "wallet.dump", "sqlite")
|
||||||
|
|
||||||
|
self.log.info('Checking createfromdump handling of magic and versions')
|
||||||
|
bad_ver_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_ver1.dump")
|
||||||
|
dump_data["DOGECOIN_CORE_WALLET_DUMP"] = "0"
|
||||||
|
self.write_dump(dump_data, bad_ver_wallet_dump)
|
||||||
|
self.assert_raises_tool_error('Error: Dumpfile version is not supported. This version of dogecoin-wallet only supports version 1 dumpfiles. Got dumpfile with version 0', '-wallet=badload', '-dumpfile={}'.format(bad_ver_wallet_dump), 'createfromdump')
|
||||||
|
assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "regtest/wallets", "badload"))
|
||||||
|
bad_ver_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_ver2.dump")
|
||||||
|
dump_data["DOGECOIN_CORE_WALLET_DUMP"] = "2"
|
||||||
|
self.write_dump(dump_data, bad_ver_wallet_dump)
|
||||||
|
self.assert_raises_tool_error('Error: Dumpfile version is not supported. This version of dogecoin-wallet only supports version 1 dumpfiles. Got dumpfile with version 2', '-wallet=badload', '-dumpfile={}'.format(bad_ver_wallet_dump), 'createfromdump')
|
||||||
|
assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "regtest/wallets", "badload"))
|
||||||
|
bad_magic_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_magic.dump")
|
||||||
|
del dump_data["DOGECOIN_CORE_WALLET_DUMP"]
|
||||||
|
dump_data["not_the_right_magic"] = "1"
|
||||||
|
self.write_dump(dump_data, bad_magic_wallet_dump, "not_the_right_magic")
|
||||||
|
self.assert_raises_tool_error('Error: Dumpfile identifier record is incorrect. Got "not_the_right_magic", expected "DOGECOIN_CORE_WALLET_DUMP".', '-wallet=badload', '-dumpfile={}'.format(bad_magic_wallet_dump), 'createfromdump')
|
||||||
|
assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "regtest/wallets", "badload"))
|
||||||
|
|
||||||
|
self.log.info('Checking createfromdump handling of checksums')
|
||||||
|
bad_sum_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_sum1.dump")
|
||||||
|
dump_data = orig_dump.copy()
|
||||||
|
checksum = dump_data["checksum"]
|
||||||
|
dump_data["checksum"] = "1" * 64
|
||||||
|
self.write_dump(dump_data, bad_sum_wallet_dump)
|
||||||
|
self.assert_raises_tool_error('Error: Dumpfile checksum does not match. Computed {}, expected {}'.format(checksum, "1" * 64), '-wallet=bad', '-dumpfile={}'.format(bad_sum_wallet_dump), 'createfromdump')
|
||||||
|
assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "regtest/wallets", "badload"))
|
||||||
|
bad_sum_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_sum2.dump")
|
||||||
|
del dump_data["checksum"]
|
||||||
|
self.write_dump(dump_data, bad_sum_wallet_dump, skip_checksum=True)
|
||||||
|
self.assert_raises_tool_error('Error: Missing checksum', '-wallet=badload', '-dumpfile={}'.format(bad_sum_wallet_dump), 'createfromdump')
|
||||||
|
assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "regtest/wallets", "badload"))
|
||||||
|
bad_sum_wallet_dump = os.path.join(self.nodes[0].datadir, "wallet-bad_sum3.dump")
|
||||||
|
dump_data["checksum"] = "2" * 10
|
||||||
|
self.write_dump(dump_data, bad_sum_wallet_dump)
|
||||||
|
self.assert_raises_tool_error('Error: Dumpfile checksum does not match. Computed {}, expected {}{}'.format(checksum, "2" * 10, "0" * 54), '-wallet=badload', '-dumpfile={}'.format(bad_sum_wallet_dump), 'createfromdump')
|
||||||
|
assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "regtest/wallets", "badload"))
|
||||||
|
|
||||||
|
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
self.wallet_path = os.path.join(self.nodes[0].datadir, self.chain, 'wallets', self.default_wallet_name, self.wallet_data_filename)
|
self.wallet_path = os.path.join(self.nodes[0].datadir, self.chain, 'wallets', self.default_wallet_name, self.wallet_data_filename)
|
||||||
self.test_invalid_tool_commands_and_args()
|
self.test_invalid_tool_commands_and_args()
|
||||||
|
|
|
@ -230,7 +230,7 @@ class WalletTest(BitcoinTestFramework):
|
||||||
assert_equal(self.nodes[2].getbalance(), node_2_bal)
|
assert_equal(self.nodes[2].getbalance(), node_2_bal)
|
||||||
node_0_bal = self.check_fee_amount(self.nodes[0].getbalance(), node_0_bal + Decimal('10'), fee_per_byte, self.get_vsize(self.nodes[2].gettransaction(txid)['hex']))
|
node_0_bal = self.check_fee_amount(self.nodes[0].getbalance(), node_0_bal + Decimal('10'), fee_per_byte, self.get_vsize(self.nodes[2].gettransaction(txid)['hex']))
|
||||||
|
|
||||||
self.log.info("Test sendmany with fee_rate param (explicit fee rate in sat/vB)")
|
self.log.info("Test sendmany with fee_rate param (explicit fee rate in koinu/vB)")
|
||||||
fee_rate_sat_vb = 2
|
fee_rate_sat_vb = 2
|
||||||
fee_rate_btc_kvb = fee_rate_sat_vb * 1e3 / 1e8
|
fee_rate_btc_kvb = fee_rate_sat_vb * 1e3 / 1e8
|
||||||
explicit_fee_rate_btc_kvb = Decimal(fee_rate_btc_kvb) / 1000
|
explicit_fee_rate_btc_kvb = Decimal(fee_rate_btc_kvb) / 1000
|
||||||
|
@ -261,11 +261,11 @@ class WalletTest(BitcoinTestFramework):
|
||||||
|
|
||||||
# Test setting explicit fee rate just below the minimum.
|
# Test setting explicit fee rate just below the minimum.
|
||||||
self.log.info("Test sendmany raises 'fee rate too low' if fee_rate of 0.99999999 is passed")
|
self.log.info("Test sendmany raises 'fee rate too low' if fee_rate of 0.99999999 is passed")
|
||||||
assert_raises_rpc_error(-6, "Fee rate (0.999 sat/vB) is lower than the minimum fee rate setting (1.000 sat/vB)",
|
assert_raises_rpc_error(-6, "Fee rate (0.999 koinu/vB) is lower than the minimum fee rate setting (1.000 koinu/vB)",
|
||||||
self.nodes[2].sendmany, amounts={address: 10}, fee_rate=0.99999999)
|
self.nodes[2].sendmany, amounts={address: 10}, fee_rate=0.99999999)
|
||||||
|
|
||||||
self.log.info("Test sendmany raises if fee_rate of 0 or -1 is passed")
|
self.log.info("Test sendmany raises if fee_rate of 0 or -1 is passed")
|
||||||
assert_raises_rpc_error(-6, "Fee rate (0.000 sat/vB) is lower than the minimum fee rate setting (1.000 sat/vB)",
|
assert_raises_rpc_error(-6, "Fee rate (0.000 koinu/vB) is lower than the minimum fee rate setting (1.000 koinu/vB)",
|
||||||
self.nodes[2].sendmany, amounts={address: 10}, fee_rate=0)
|
self.nodes[2].sendmany, amounts={address: 10}, fee_rate=0)
|
||||||
assert_raises_rpc_error(-3, OUT_OF_RANGE, self.nodes[2].sendmany, amounts={address: 10}, fee_rate=-1)
|
assert_raises_rpc_error(-3, OUT_OF_RANGE, self.nodes[2].sendmany, amounts={address: 10}, fee_rate=-1)
|
||||||
|
|
||||||
|
@ -273,7 +273,7 @@ class WalletTest(BitcoinTestFramework):
|
||||||
for target, mode in product([-1, 0, 1009], ["economical", "conservative"]):
|
for target, mode in product([-1, 0, 1009], ["economical", "conservative"]):
|
||||||
assert_raises_rpc_error(-8, "Invalid conf_target, must be between 1 and 1008", # max value of 1008 per src/policy/fees.h
|
assert_raises_rpc_error(-8, "Invalid conf_target, must be between 1 and 1008", # max value of 1008 per src/policy/fees.h
|
||||||
self.nodes[2].sendmany, amounts={address: 1}, conf_target=target, estimate_mode=mode)
|
self.nodes[2].sendmany, amounts={address: 1}, conf_target=target, estimate_mode=mode)
|
||||||
for target, mode in product([-1, 0], ["btc/kb", "sat/b"]):
|
for target, mode in product([-1, 0], ["doge/kb", "koinu/b"]):
|
||||||
assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"',
|
assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"',
|
||||||
self.nodes[2].sendmany, amounts={address: 1}, conf_target=target, estimate_mode=mode)
|
self.nodes[2].sendmany, amounts={address: 1}, conf_target=target, estimate_mode=mode)
|
||||||
|
|
||||||
|
@ -410,7 +410,7 @@ class WalletTest(BitcoinTestFramework):
|
||||||
self.nodes[0].generate(1)
|
self.nodes[0].generate(1)
|
||||||
self.sync_all(self.nodes[0:3])
|
self.sync_all(self.nodes[0:3])
|
||||||
|
|
||||||
self.log.info("Test sendtoaddress with fee_rate param (explicit fee rate in sat/vB)")
|
self.log.info("Test sendtoaddress with fee_rate param (explicit fee rate in koinu/vB)")
|
||||||
prebalance = self.nodes[2].getbalance()
|
prebalance = self.nodes[2].getbalance()
|
||||||
assert prebalance > 2
|
assert prebalance > 2
|
||||||
address = self.nodes[1].getnewaddress()
|
address = self.nodes[1].getnewaddress()
|
||||||
|
@ -444,11 +444,11 @@ class WalletTest(BitcoinTestFramework):
|
||||||
|
|
||||||
# Test setting explicit fee rate just below the minimum.
|
# Test setting explicit fee rate just below the minimum.
|
||||||
self.log.info("Test sendtoaddress raises 'fee rate too low' if fee_rate of 0.99999999 is passed")
|
self.log.info("Test sendtoaddress raises 'fee rate too low' if fee_rate of 0.99999999 is passed")
|
||||||
assert_raises_rpc_error(-6, "Fee rate (0.999 sat/vB) is lower than the minimum fee rate setting (1.000 sat/vB)",
|
assert_raises_rpc_error(-6, "Fee rate (0.999 koinu/vB) is lower than the minimum fee rate setting (1.000 koinu/vB)",
|
||||||
self.nodes[2].sendtoaddress, address=address, amount=1, fee_rate=0.99999999)
|
self.nodes[2].sendtoaddress, address=address, amount=1, fee_rate=0.99999999)
|
||||||
|
|
||||||
self.log.info("Test sendtoaddress raises if fee_rate of 0 or -1 is passed")
|
self.log.info("Test sendtoaddress raises if fee_rate of 0 or -1 is passed")
|
||||||
assert_raises_rpc_error(-6, "Fee rate (0.000 sat/vB) is lower than the minimum fee rate setting (1.000 sat/vB)",
|
assert_raises_rpc_error(-6, "Fee rate (0.000 koinu/vB) is lower than the minimum fee rate setting (1.000 koinu/vB)",
|
||||||
self.nodes[2].sendtoaddress, address=address, amount=10, fee_rate=0)
|
self.nodes[2].sendtoaddress, address=address, amount=10, fee_rate=0)
|
||||||
assert_raises_rpc_error(-3, OUT_OF_RANGE, self.nodes[2].sendtoaddress, address=address, amount=1.0, fee_rate=-1)
|
assert_raises_rpc_error(-3, OUT_OF_RANGE, self.nodes[2].sendtoaddress, address=address, amount=1.0, fee_rate=-1)
|
||||||
|
|
||||||
|
@ -456,7 +456,7 @@ class WalletTest(BitcoinTestFramework):
|
||||||
for target, mode in product([-1, 0, 1009], ["economical", "conservative"]):
|
for target, mode in product([-1, 0, 1009], ["economical", "conservative"]):
|
||||||
assert_raises_rpc_error(-8, "Invalid conf_target, must be between 1 and 1008", # max value of 1008 per src/policy/fees.h
|
assert_raises_rpc_error(-8, "Invalid conf_target, must be between 1 and 1008", # max value of 1008 per src/policy/fees.h
|
||||||
self.nodes[2].sendtoaddress, address=address, amount=1, conf_target=target, estimate_mode=mode)
|
self.nodes[2].sendtoaddress, address=address, amount=1, conf_target=target, estimate_mode=mode)
|
||||||
for target, mode in product([-1, 0], ["btc/kb", "sat/b"]):
|
for target, mode in product([-1, 0], ["doge/kb", "koinu/b"]):
|
||||||
assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"',
|
assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"',
|
||||||
self.nodes[2].sendtoaddress, address=address, amount=1, conf_target=target, estimate_mode=mode)
|
self.nodes[2].sendtoaddress, address=address, amount=1, conf_target=target, estimate_mode=mode)
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,7 @@ class BumpFeeTest(BitcoinTestFramework):
|
||||||
for k, v in {"number": 42, "object": {"foo": "bar"}}.items():
|
for k, v in {"number": 42, "object": {"foo": "bar"}}.items():
|
||||||
assert_raises_rpc_error(-3, "Expected type string for estimate_mode, got {}".format(k),
|
assert_raises_rpc_error(-3, "Expected type string for estimate_mode, got {}".format(k),
|
||||||
rbf_node.bumpfee, rbfid, {"estimate_mode": v})
|
rbf_node.bumpfee, rbfid, {"estimate_mode": v})
|
||||||
for mode in ["foo", Decimal("3.1415"), "sat/B", "BTC/kB"]:
|
for mode in ["foo", Decimal("3.1415"), "koinu/B", "DOGE/kB"]:
|
||||||
assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"',
|
assert_raises_rpc_error(-8, 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"',
|
||||||
rbf_node.bumpfee, rbfid, {"estimate_mode": mode})
|
rbf_node.bumpfee, rbfid, {"estimate_mode": mode})
|
||||||
|
|
||||||
|
|
|
@ -199,7 +199,7 @@ class MultiWalletTest(BitcoinTestFramework):
|
||||||
self.restart_node(0, ['-nowallet', '-walletdir=' + competing_wallet_dir])
|
self.restart_node(0, ['-nowallet', '-walletdir=' + competing_wallet_dir])
|
||||||
self.nodes[0].createwallet(self.default_wallet_name)
|
self.nodes[0].createwallet(self.default_wallet_name)
|
||||||
if self.options.descriptors:
|
if self.options.descriptors:
|
||||||
exp_stderr = r"Error: SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another bitcoind?"
|
exp_stderr = r"Error: SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another dogecoind?"
|
||||||
else:
|
else:
|
||||||
exp_stderr = r"Error: Error initializing wallet database environment \"\S+competing_walletdir\S*\"!"
|
exp_stderr = r"Error: Error initializing wallet database environment \"\S+competing_walletdir\S*\"!"
|
||||||
self.nodes[1].assert_start_raises_init_error(['-walletdir=' + competing_wallet_dir], exp_stderr, match=ErrorMatch.PARTIAL_REGEX)
|
self.nodes[1].assert_start_raises_init_error(['-walletdir=' + competing_wallet_dir], exp_stderr, match=ErrorMatch.PARTIAL_REGEX)
|
||||||
|
@ -300,7 +300,7 @@ class MultiWalletTest(BitcoinTestFramework):
|
||||||
# Fail to load duplicate wallets
|
# Fail to load duplicate wallets
|
||||||
path = os.path.join(self.options.tmpdir, "node0", "regtest", "wallets", "w1", "wallet.dat")
|
path = os.path.join(self.options.tmpdir, "node0", "regtest", "wallets", "w1", "wallet.dat")
|
||||||
if self.options.descriptors:
|
if self.options.descriptors:
|
||||||
assert_raises_rpc_error(-4, "Wallet file verification failed. SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another bitcoind?", self.nodes[0].loadwallet, wallet_names[0])
|
assert_raises_rpc_error(-4, "Wallet file verification failed. SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another dogecoind?", self.nodes[0].loadwallet, wallet_names[0])
|
||||||
else:
|
else:
|
||||||
assert_raises_rpc_error(-4, "Wallet file verification failed. Refusing to load database. Data file '{}' is already loaded.".format(path), self.nodes[0].loadwallet, wallet_names[0])
|
assert_raises_rpc_error(-4, "Wallet file verification failed. Refusing to load database. Data file '{}' is already loaded.".format(path), self.nodes[0].loadwallet, wallet_names[0])
|
||||||
|
|
||||||
|
|
|
@ -281,7 +281,7 @@ class WalletSendTest(BitcoinTestFramework):
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_fee_rate=1, fee_rate=1, add_to_wallet=False,
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_fee_rate=1, fee_rate=1, add_to_wallet=False,
|
||||||
expect_error=(-8, "Pass the fee_rate either as an argument, or in the options object, but not both"))
|
expect_error=(-8, "Pass the fee_rate either as an argument, or in the options object, but not both"))
|
||||||
|
|
||||||
assert_raises_rpc_error(-8, "Use fee_rate (sat/vB) instead of feeRate", w0.send, {w1.getnewaddress(): 1}, 6, "conservative", 1, {"feeRate": 0.01})
|
assert_raises_rpc_error(-8, "Use fee_rate (koinu/vB) instead of feeRate", w0.send, {w1.getnewaddress(): 1}, 6, "conservative", 1, {"feeRate": 0.01})
|
||||||
|
|
||||||
assert_raises_rpc_error(-3, "Unexpected key totalFee", w0.send, {w1.getnewaddress(): 1}, 6, "conservative", 1, {"totalFee": 0.01})
|
assert_raises_rpc_error(-3, "Unexpected key totalFee", w0.send, {w1.getnewaddress(): 1}, 6, "conservative", 1, {"totalFee": 0.01})
|
||||||
|
|
||||||
|
@ -289,14 +289,14 @@ class WalletSendTest(BitcoinTestFramework):
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=target, estimate_mode=mode,
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=target, estimate_mode=mode,
|
||||||
expect_error=(-8, "Invalid conf_target, must be between 1 and 1008")) # max value of 1008 per src/policy/fees.h
|
expect_error=(-8, "Invalid conf_target, must be between 1 and 1008")) # max value of 1008 per src/policy/fees.h
|
||||||
msg = 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"'
|
msg = 'Invalid estimate_mode parameter, must be one of: "unset", "economical", "conservative"'
|
||||||
for target, mode in product([-1, 0], ["btc/kb", "sat/b"]):
|
for target, mode in product([-1, 0], ["doge/kb", "koinu/b"]):
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=target, estimate_mode=mode, expect_error=(-8, msg))
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=target, estimate_mode=mode, expect_error=(-8, msg))
|
||||||
for mode in ["", "foo", Decimal("3.141592")]:
|
for mode in ["", "foo", Decimal("3.141592")]:
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=0.1, estimate_mode=mode, expect_error=(-8, msg))
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=0.1, estimate_mode=mode, expect_error=(-8, msg))
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_conf_target=0.1, arg_estimate_mode=mode, expect_error=(-8, msg))
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_conf_target=0.1, arg_estimate_mode=mode, expect_error=(-8, msg))
|
||||||
assert_raises_rpc_error(-8, msg, w0.send, {w1.getnewaddress(): 1}, 0.1, mode)
|
assert_raises_rpc_error(-8, msg, w0.send, {w1.getnewaddress(): 1}, 0.1, mode)
|
||||||
|
|
||||||
for mode in ["economical", "conservative", "btc/kb", "sat/b"]:
|
for mode in ["economical", "conservative", "doge/kb", "koinu/b"]:
|
||||||
self.log.debug("{}".format(mode))
|
self.log.debug("{}".format(mode))
|
||||||
for k, v in {"string": "true", "object": {"foo": "bar"}}.items():
|
for k, v in {"string": "true", "object": {"foo": "bar"}}.items():
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=v, estimate_mode=mode,
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=v, estimate_mode=mode,
|
||||||
|
@ -305,16 +305,16 @@ class WalletSendTest(BitcoinTestFramework):
|
||||||
# Test setting explicit fee rate just below the minimum and at zero.
|
# Test setting explicit fee rate just below the minimum and at zero.
|
||||||
self.log.info("Explicit fee rate raises RPC error 'fee rate too low' if fee_rate of 0.99999999 is passed")
|
self.log.info("Explicit fee rate raises RPC error 'fee rate too low' if fee_rate of 0.99999999 is passed")
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, fee_rate=0.99999999,
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, fee_rate=0.99999999,
|
||||||
expect_error=(-4, "Fee rate (0.999 sat/vB) is lower than the minimum fee rate setting (1.000 sat/vB)"))
|
expect_error=(-4, "Fee rate (0.999 koinu/vB) is lower than the minimum fee rate setting (1.000 koinu/vB)"))
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_fee_rate=0.99999999,
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_fee_rate=0.99999999,
|
||||||
expect_error=(-4, "Fee rate (0.999 sat/vB) is lower than the minimum fee rate setting (1.000 sat/vB)"))
|
expect_error=(-4, "Fee rate (0.999 koinu/vB) is lower than the minimum fee rate setting (1.000 koinu/vB)"))
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, fee_rate=0,
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, fee_rate=0,
|
||||||
expect_error=(-4, "Fee rate (0.000 sat/vB) is lower than the minimum fee rate setting (1.000 sat/vB)"))
|
expect_error=(-4, "Fee rate (0.000 koinu/vB) is lower than the minimum fee rate setting (1.000 koinu/vB)"))
|
||||||
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_fee_rate=0,
|
self.test_send(from_wallet=w0, to_wallet=w1, amount=1, arg_fee_rate=0,
|
||||||
expect_error=(-4, "Fee rate (0.000 sat/vB) is lower than the minimum fee rate setting (1.000 sat/vB)"))
|
expect_error=(-4, "Fee rate (0.000 koinu/vB) is lower than the minimum fee rate setting (1.000 koinu/vB)"))
|
||||||
|
|
||||||
# TODO: Return hex if fee rate is below -maxmempool
|
# TODO: Return hex if fee rate is below -maxmempool
|
||||||
# res = self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=0.1, estimate_mode="sat/b", add_to_wallet=False)
|
# res = self.test_send(from_wallet=w0, to_wallet=w1, amount=1, conf_target=0.1, estimate_mode="koinu/b", add_to_wallet=False)
|
||||||
# assert res["hex"]
|
# assert res["hex"]
|
||||||
# hex = res["hex"]
|
# hex = res["hex"]
|
||||||
# res = self.nodes[0].testmempoolaccept([hex])
|
# res = self.nodes[0].testmempoolaccept([hex])
|
||||||
|
|
|
@ -1,108 +1,108 @@
|
||||||
[
|
[
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "nversion=1"],
|
"args": ["-create", "nversion=1"],
|
||||||
"output_cmp": "blanktxv1.hex",
|
"output_cmp": "blanktxv1.hex",
|
||||||
"description": "Creates a blank v1 transaction"
|
"description": "Creates a blank v1 transaction"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json","-create", "nversion=1"],
|
"args": ["-json","-create", "nversion=1"],
|
||||||
"output_cmp": "blanktxv1.json",
|
"output_cmp": "blanktxv1.json",
|
||||||
"description": "Creates a blank v1 transaction (output in json)"
|
"description": "Creates a blank v1 transaction (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-"],
|
"args": ["-"],
|
||||||
"input": "blanktxv2.hex",
|
"input": "blanktxv2.hex",
|
||||||
"output_cmp": "blanktxv2.hex",
|
"output_cmp": "blanktxv2.hex",
|
||||||
"description": "Creates a blank transaction when nothing is piped into bitcoin-tx"
|
"description": "Creates a blank transaction when nothing is piped into dogecoin-tx"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json","-create"],
|
"args": ["-json","-create"],
|
||||||
"output_cmp": "blanktxv2.json",
|
"output_cmp": "blanktxv2.json",
|
||||||
"description": "Creates a blank transaction (output in json)"
|
"description": "Creates a blank transaction (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json","-"],
|
"args": ["-json","-"],
|
||||||
"input": "blanktxv2.hex",
|
"input": "blanktxv2.hex",
|
||||||
"output_cmp": "blanktxv2.json",
|
"output_cmp": "blanktxv2.json",
|
||||||
"description": "Creates a blank transaction when nothing is piped into bitcoin-tx (output in json)"
|
"description": "Creates a blank transaction when nothing is piped into dogecoin-tx (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "nversion=1foo"],
|
"args": ["-create", "nversion=1foo"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: Invalid TX version requested",
|
"error_txt": "error: Invalid TX version requested",
|
||||||
"description": "Tests the check for invalid nversion value"
|
"description": "Tests the check for invalid nversion value"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-", "delin=1"],
|
"args": ["-", "delin=1"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"output_cmp": "tt-delin1-out.hex",
|
"output_cmp": "tt-delin1-out.hex",
|
||||||
"description": "Deletes a single input from a transaction"
|
"description": "Deletes a single input from a transaction"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-", "delin=1"],
|
"args": ["-json", "-", "delin=1"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"output_cmp": "tt-delin1-out.json",
|
"output_cmp": "tt-delin1-out.json",
|
||||||
"description": "Deletes a single input from a transaction (output in json)"
|
"description": "Deletes a single input from a transaction (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-", "delin=31"],
|
"args": ["-", "delin=31"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: Invalid TX input index '31'",
|
"error_txt": "error: Invalid TX input index '31'",
|
||||||
"description": "Attempts to delete an input with a bad index from a transaction. Expected to fail."
|
"description": "Attempts to delete an input with a bad index from a transaction. Expected to fail."
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-", "delin=1foo"],
|
"args": ["-", "delin=1foo"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: Invalid TX input index",
|
"error_txt": "error: Invalid TX input index",
|
||||||
"description": "Tests the check for an invalid input index with delin"
|
"description": "Tests the check for an invalid input index with delin"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-", "delout=1"],
|
"args": ["-", "delout=1"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"output_cmp": "tt-delout1-out.hex",
|
"output_cmp": "tt-delout1-out.hex",
|
||||||
"description": "Deletes a single output from a transaction"
|
"description": "Deletes a single output from a transaction"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-", "delout=1"],
|
"args": ["-json", "-", "delout=1"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"output_cmp": "tt-delout1-out.json",
|
"output_cmp": "tt-delout1-out.json",
|
||||||
"description": "Deletes a single output from a transaction (output in json)"
|
"description": "Deletes a single output from a transaction (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-", "delout=2"],
|
"args": ["-", "delout=2"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: Invalid TX output index '2'",
|
"error_txt": "error: Invalid TX output index '2'",
|
||||||
"description": "Attempts to delete an output with a bad index from a transaction. Expected to fail."
|
"description": "Attempts to delete an output with a bad index from a transaction. Expected to fail."
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-", "delout=1foo"],
|
"args": ["-", "delout=1foo"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: Invalid TX output index",
|
"error_txt": "error: Invalid TX output index",
|
||||||
"description": "Tests the check for an invalid output index with delout"
|
"description": "Tests the check for an invalid output index with delout"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-", "locktime=317000"],
|
"args": ["-", "locktime=317000"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"output_cmp": "tt-locktime317000-out.hex",
|
"output_cmp": "tt-locktime317000-out.hex",
|
||||||
"description": "Adds an nlocktime to a transaction"
|
"description": "Adds an nlocktime to a transaction"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-", "locktime=317000"],
|
"args": ["-json", "-", "locktime=317000"],
|
||||||
"input": "tx394b54bb.hex",
|
"input": "tx394b54bb.hex",
|
||||||
"output_cmp": "tt-locktime317000-out.json",
|
"output_cmp": "tt-locktime317000-out.json",
|
||||||
"description": "Adds an nlocktime to a transaction (output in json)"
|
"description": "Adds an nlocktime to a transaction (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "locktime=317000foo"],
|
"args": ["-create", "locktime=317000foo"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: Invalid TX locktime requested",
|
"error_txt": "error: Invalid TX locktime requested",
|
||||||
"description": "Tests the check for invalid locktime value"
|
"description": "Tests the check for invalid locktime value"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=Z897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0"],
|
"in=Z897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0"],
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
"error_txt": "error: invalid TX input txid",
|
"error_txt": "error: invalid TX input txid",
|
||||||
"description": "Tests the check for an invalid txid invalid hex"
|
"description": "Tests the check for an invalid txid invalid hex"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6:0"],
|
"in=5897de6bd6:0"],
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
"error_txt": "error: invalid TX input txid",
|
"error_txt": "error: invalid TX input txid",
|
||||||
"description": "Tests the check for an invalid txid valid hex but too short"
|
"description": "Tests the check for an invalid txid valid hex but too short"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f12:0"],
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f12:0"],
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
"error_txt": "error: invalid TX input txid",
|
"error_txt": "error: invalid TX input txid",
|
||||||
"description": "Tests the check for an invalid txid valid hex but too long"
|
"description": "Tests the check for an invalid txid valid hex but too long"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
||||||
|
@ -135,7 +135,7 @@
|
||||||
"error_txt": "error: Invalid TX input index",
|
"error_txt": "error: Invalid TX input index",
|
||||||
"description": "Tests the check for an invalid input index with replaceable"
|
"description": "Tests the check for an invalid input index with replaceable"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0x"],
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0x"],
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
"error_txt": "error: invalid TX input vout",
|
"error_txt": "error: invalid TX input vout",
|
||||||
"description": "Tests the check for an invalid vout value when adding an input"
|
"description": "Tests the check for an invalid vout value when adding an input"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"outaddr=1"],
|
"outaddr=1"],
|
||||||
|
@ -151,7 +151,7 @@
|
||||||
"error_txt": "error: TX output missing or too many separators",
|
"error_txt": "error: TX output missing or too many separators",
|
||||||
"description": "Malformed outaddr argument (no address specified). Expected to fail."
|
"description": "Malformed outaddr argument (no address specified). Expected to fail."
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"outaddr=1:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o:garbage"],
|
"outaddr=1:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o:garbage"],
|
||||||
|
@ -159,7 +159,7 @@
|
||||||
"error_txt": "error: TX output missing or too many separators",
|
"error_txt": "error: TX output missing or too many separators",
|
||||||
"description": "Malformed outaddr argument (too many separators). Expected to fail."
|
"description": "Malformed outaddr argument (too many separators). Expected to fail."
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"outpubkey=0"],
|
"outpubkey=0"],
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
"error_txt": "error: TX output missing or too many separators",
|
"error_txt": "error: TX output missing or too many separators",
|
||||||
"description": "Malformed outpubkey argument (no pubkey specified). Expected to fail."
|
"description": "Malformed outpubkey argument (no pubkey specified). Expected to fail."
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W:non53nse"],
|
"outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W:non53nse"],
|
||||||
|
@ -175,7 +175,7 @@
|
||||||
"error_txt": "error: TX output missing or too many separators",
|
"error_txt": "error: TX output missing or too many separators",
|
||||||
"description": "Malformed outpubkey argument (too many separators). Expected to fail."
|
"description": "Malformed outpubkey argument (too many separators). Expected to fail."
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
||||||
|
@ -186,7 +186,7 @@
|
||||||
"output_cmp": "txcreate1.hex",
|
"output_cmp": "txcreate1.hex",
|
||||||
"description": "Creates a new transaction with three inputs and two outputs"
|
"description": "Creates a new transaction with three inputs and two outputs"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json",
|
["-json",
|
||||||
"-create",
|
"-create",
|
||||||
|
@ -198,107 +198,107 @@
|
||||||
"output_cmp": "txcreate1.json",
|
"output_cmp": "txcreate1.json",
|
||||||
"description": "Creates a new transaction with three inputs and two outputs (output in json)"
|
"description": "Creates a new transaction with three inputs and two outputs (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:"],
|
"args": ["-create", "outscript=0:"],
|
||||||
"output_cmp": "txcreate2.hex",
|
"output_cmp": "txcreate2.hex",
|
||||||
"description": "Creates a new transaction with a single empty output script"
|
"description": "Creates a new transaction with a single empty output script"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outscript=0:"],
|
"args": ["-json", "-create", "outscript=0:"],
|
||||||
"output_cmp": "txcreate2.json",
|
"output_cmp": "txcreate2.json",
|
||||||
"description": "Creates a new transaction with a single empty output script (output in json)"
|
"description": "Creates a new transaction with a single empty output script (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["02000000000100000000000000000000000000"],
|
"args": ["02000000000100000000000000000000000000"],
|
||||||
"output_cmp": "txcreate2.hex",
|
"output_cmp": "txcreate2.hex",
|
||||||
"description": "Parses a transaction with no inputs and a single output script"
|
"description": "Parses a transaction with no inputs and a single output script"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "02000000000100000000000000000000000000"],
|
"args": ["-json", "02000000000100000000000000000000000000"],
|
||||||
"output_cmp": "txcreate2.json",
|
"output_cmp": "txcreate2.json",
|
||||||
"description": "Parses a transaction with no inputs and a single output script (output in json)"
|
"description": "Parses a transaction with no inputs and a single output script (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:123badscript"],
|
"args": ["-create", "outscript=0:123badscript"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: script parse error",
|
"error_txt": "error: script parse error",
|
||||||
"description": "Create a new transaction with an invalid output script"
|
"description": "Create a new transaction with an invalid output script"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:OP_DROP", "nversion=1"],
|
"args": ["-create", "outscript=0:OP_DROP", "nversion=1"],
|
||||||
"output_cmp": "txcreatescript1.hex",
|
"output_cmp": "txcreatescript1.hex",
|
||||||
"description": "Create a new transaction with a single output script (OP_DROP)"
|
"description": "Create a new transaction with a single output script (OP_DROP)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outscript=0:OP_DROP", "nversion=1"],
|
"args": ["-json", "-create", "outscript=0:OP_DROP", "nversion=1"],
|
||||||
"output_cmp": "txcreatescript1.json",
|
"output_cmp": "txcreatescript1.json",
|
||||||
"description": "Create a new transaction with a single output script (OP_DROP) (output as json)"
|
"description": "Create a new transaction with a single output script (OP_DROP) (output as json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:OP_DROP:S", "nversion=1"],
|
"args": ["-create", "outscript=0:OP_DROP:S", "nversion=1"],
|
||||||
"output_cmp": "txcreatescript2.hex",
|
"output_cmp": "txcreatescript2.hex",
|
||||||
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH"
|
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outscript=0:OP_DROP:S", "nversion=1"],
|
"args": ["-json", "-create", "outscript=0:OP_DROP:S", "nversion=1"],
|
||||||
"output_cmp": "txcreatescript2.json",
|
"output_cmp": "txcreatescript2.json",
|
||||||
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH (output as json)"
|
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH (output as json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:OP_DROP:W", "nversion=1"],
|
"args": ["-create", "outscript=0:OP_DROP:W", "nversion=1"],
|
||||||
"output_cmp": "txcreatescript3.hex",
|
"output_cmp": "txcreatescript3.hex",
|
||||||
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH"
|
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outscript=0:OP_DROP:W", "nversion=1"],
|
"args": ["-json", "-create", "outscript=0:OP_DROP:W", "nversion=1"],
|
||||||
"output_cmp": "txcreatescript3.json",
|
"output_cmp": "txcreatescript3.json",
|
||||||
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH (output as json)"
|
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH (output as json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:OP_DROP:WS", "nversion=1"],
|
"args": ["-create", "outscript=0:OP_DROP:WS", "nversion=1"],
|
||||||
"output_cmp": "txcreatescript4.hex",
|
"output_cmp": "txcreatescript4.hex",
|
||||||
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH, wrapped in a P2SH"
|
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH, wrapped in a P2SH"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outscript=0:OP_DROP:WS", "nversion=1"],
|
"args": ["-json", "-create", "outscript=0:OP_DROP:WS", "nversion=1"],
|
||||||
"output_cmp": "txcreatescript4.json",
|
"output_cmp": "txcreatescript4.json",
|
||||||
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH, wrapped in a P2SH (output as json)"
|
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH, wrapped in a P2SH (output as json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:9999999999"],
|
"args": ["-create", "outscript=0:9999999999"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: script parse error: decimal numeric value only allowed in the range -0xFFFFFFFF...0xFFFFFFFF",
|
"error_txt": "error: script parse error: decimal numeric value only allowed in the range -0xFFFFFFFF...0xFFFFFFFF",
|
||||||
"description": "Try to parse an output script with a decimal number above the allowed range"
|
"description": "Try to parse an output script with a decimal number above the allowed range"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:4294967296"],
|
"args": ["-create", "outscript=0:4294967296"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: script parse error: decimal numeric value only allowed in the range -0xFFFFFFFF...0xFFFFFFFF",
|
"error_txt": "error: script parse error: decimal numeric value only allowed in the range -0xFFFFFFFF...0xFFFFFFFF",
|
||||||
"description": "Try to parse an output script with a decimal number just above the allowed range"
|
"description": "Try to parse an output script with a decimal number just above the allowed range"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:4294967295"],
|
"args": ["-create", "outscript=0:4294967295"],
|
||||||
"output_cmp": "txcreatescript5.hex",
|
"output_cmp": "txcreatescript5.hex",
|
||||||
"description": "Try to parse an output script with a decimal number at the upper limit of the allowed range"
|
"description": "Try to parse an output script with a decimal number at the upper limit of the allowed range"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:-9999999999"],
|
"args": ["-create", "outscript=0:-9999999999"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: script parse error: decimal numeric value only allowed in the range -0xFFFFFFFF...0xFFFFFFFF",
|
"error_txt": "error: script parse error: decimal numeric value only allowed in the range -0xFFFFFFFF...0xFFFFFFFF",
|
||||||
"description": "Try to parse an output script with a decimal number below the allowed range"
|
"description": "Try to parse an output script with a decimal number below the allowed range"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:-4294967296"],
|
"args": ["-create", "outscript=0:-4294967296"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: script parse error: decimal numeric value only allowed in the range -0xFFFFFFFF...0xFFFFFFFF",
|
"error_txt": "error: script parse error: decimal numeric value only allowed in the range -0xFFFFFFFF...0xFFFFFFFF",
|
||||||
"description": "Try to parse an output script with a decimal number just below the allowed range"
|
"description": "Try to parse an output script with a decimal number just below the allowed range"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outscript=0:-4294967295"],
|
"args": ["-create", "outscript=0:-4294967295"],
|
||||||
"output_cmp": "txcreatescript6.hex",
|
"output_cmp": "txcreatescript6.hex",
|
||||||
"description": "Try to parse an output script with a decimal number at the lower limit of the allowed range"
|
"description": "Try to parse an output script with a decimal number at the lower limit of the allowed range"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create", "nversion=1",
|
["-create", "nversion=1",
|
||||||
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
||||||
|
@ -309,7 +309,7 @@
|
||||||
"output_cmp": "txcreatesignv1.hex",
|
"output_cmp": "txcreatesignv1.hex",
|
||||||
"description": "Creates a new v1 transaction with a single input and a single output, and then signs the transaction"
|
"description": "Creates a new v1 transaction with a single input and a single output, and then signs the transaction"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json",
|
["-json",
|
||||||
"-create", "nversion=1",
|
"-create", "nversion=1",
|
||||||
|
@ -321,7 +321,7 @@
|
||||||
"output_cmp": "txcreatesignv1.json",
|
"output_cmp": "txcreatesignv1.json",
|
||||||
"description": "Creates a new v1 transaction with a single input and a single output, and then signs the transaction (output in json)"
|
"description": "Creates a new v1 transaction with a single input and a single output, and then signs the transaction (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
||||||
|
@ -332,7 +332,7 @@
|
||||||
"output_cmp": "txcreatesignv2.hex",
|
"output_cmp": "txcreatesignv2.hex",
|
||||||
"description": "Creates a new transaction with a single input and a single output, and then signs the transaction"
|
"description": "Creates a new transaction with a single input and a single output, and then signs the transaction"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
||||||
|
@ -344,7 +344,7 @@
|
||||||
"error_txt": "error: prevtxs internal object typecheck fail",
|
"error_txt": "error: prevtxs internal object typecheck fail",
|
||||||
"description": "Tests the check for invalid vout index in prevtxs for sign"
|
"description": "Tests the check for invalid vout index in prevtxs for sign"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
||||||
|
@ -356,7 +356,7 @@
|
||||||
"error_txt": "error: txid must be hexadecimal string (not 'Zd49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59412')",
|
"error_txt": "error: txid must be hexadecimal string (not 'Zd49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59412')",
|
||||||
"description": "Tests the check for invalid txid due to invalid hex"
|
"description": "Tests the check for invalid txid due to invalid hex"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
||||||
|
@ -368,7 +368,7 @@
|
||||||
"error_txt": "error: txid must be hexadecimal string (not '4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc594')",
|
"error_txt": "error: txid must be hexadecimal string (not '4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc594')",
|
||||||
"description": "Tests the check for invalid txid valid hex, but too short"
|
"description": "Tests the check for invalid txid valid hex, but too short"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
|
||||||
|
@ -380,50 +380,50 @@
|
||||||
"error_txt": "error: txid must be hexadecimal string (not '4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc5948512')",
|
"error_txt": "error: txid must be hexadecimal string (not '4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc5948512')",
|
||||||
"description": "Tests the check for invalid txid valid hex, but too long"
|
"description": "Tests the check for invalid txid valid hex, but too long"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397", "nversion=1"],
|
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397", "nversion=1"],
|
||||||
"output_cmp": "txcreateoutpubkey1.hex",
|
"output_cmp": "txcreateoutpubkey1.hex",
|
||||||
"description": "Creates a new transaction with a single pay-to-pubkey output"
|
"description": "Creates a new transaction with a single pay-to-pubkey output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397", "nversion=1"],
|
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397", "nversion=1"],
|
||||||
"output_cmp": "txcreateoutpubkey1.json",
|
"output_cmp": "txcreateoutpubkey1.json",
|
||||||
"description": "Creates a new transaction with a single pay-to-pubkey output (output as json)"
|
"description": "Creates a new transaction with a single pay-to-pubkey output (output as json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W", "nversion=1"],
|
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W", "nversion=1"],
|
||||||
"output_cmp": "txcreateoutpubkey2.hex",
|
"output_cmp": "txcreateoutpubkey2.hex",
|
||||||
"description": "Creates a new transaction with a single pay-to-witness-pubkey output"
|
"description": "Creates a new transaction with a single pay-to-witness-pubkey output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W", "nversion=1"],
|
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W", "nversion=1"],
|
||||||
"output_cmp": "txcreateoutpubkey2.json",
|
"output_cmp": "txcreateoutpubkey2.json",
|
||||||
"description": "Creates a new transaction with a single pay-to-witness-pubkey output (output as json)"
|
"description": "Creates a new transaction with a single pay-to-witness-pubkey output (output as json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:WS", "nversion=1"],
|
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:WS", "nversion=1"],
|
||||||
"output_cmp": "txcreateoutpubkey3.hex",
|
"output_cmp": "txcreateoutpubkey3.hex",
|
||||||
"description": "Creates a new transaction with a single pay-to-witness-pubkey, wrapped in P2SH output"
|
"description": "Creates a new transaction with a single pay-to-witness-pubkey, wrapped in P2SH output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:WS", "nversion=1"],
|
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:WS", "nversion=1"],
|
||||||
"output_cmp": "txcreateoutpubkey3.json",
|
"output_cmp": "txcreateoutpubkey3.json",
|
||||||
"description": "Creates a new transaction with a single pay-to-pub-key output, wrapped in P2SH (output as json)"
|
"description": "Creates a new transaction with a single pay-to-pub-key output, wrapped in P2SH (output as json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json", "-create", "outpubkey=0:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:WS", "nversion=1"],
|
["-json", "-create", "outpubkey=0:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:WS", "nversion=1"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: Uncompressed pubkeys are not useable for SegWit outputs",
|
"error_txt": "error: Uncompressed pubkeys are not useable for SegWit outputs",
|
||||||
"description": "Creates a new transaction with a single pay-to-pub-key output, wrapped in P2SH (output as json)"
|
"description": "Creates a new transaction with a single pay-to-pub-key output, wrapped in P2SH (output as json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
||||||
|
@ -432,7 +432,7 @@
|
||||||
"error_txt": "error: invalid TX output data",
|
"error_txt": "error: invalid TX output data",
|
||||||
"description": "Attempts to create a new transaction with one input and an output with malformed hex data. Expected to fail"
|
"description": "Attempts to create a new transaction with one input and an output with malformed hex data. Expected to fail"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
||||||
|
@ -441,7 +441,7 @@
|
||||||
"error_txt": "error: invalid TX output data",
|
"error_txt": "error: invalid TX output data",
|
||||||
"description": "Attempts to create a new transaction with one input and an output with no value and malformed hex data. Expected to fail"
|
"description": "Attempts to create a new transaction with one input and an output with no value and malformed hex data. Expected to fail"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
||||||
|
@ -450,7 +450,7 @@
|
||||||
"output_cmp": "txcreatedata1.hex",
|
"output_cmp": "txcreatedata1.hex",
|
||||||
"description": "Creates a new transaction with one input, one address output and one data output"
|
"description": "Creates a new transaction with one input, one address output and one data output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json",
|
["-json",
|
||||||
"-create", "nversion=1",
|
"-create", "nversion=1",
|
||||||
|
@ -460,7 +460,7 @@
|
||||||
"output_cmp": "txcreatedata1.json",
|
"output_cmp": "txcreatedata1.json",
|
||||||
"description": "Creates a new v1 transaction with one input, one address output and one data output (output in json)"
|
"description": "Creates a new v1 transaction with one input, one address output and one data output (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
|
||||||
|
@ -469,7 +469,7 @@
|
||||||
"output_cmp": "txcreatedata2.hex",
|
"output_cmp": "txcreatedata2.hex",
|
||||||
"description": "Creates a new transaction with one input, one address output and one data (zero value) output"
|
"description": "Creates a new transaction with one input, one address output and one data (zero value) output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json",
|
["-json",
|
||||||
"-create",
|
"-create",
|
||||||
|
@ -479,7 +479,7 @@
|
||||||
"output_cmp": "txcreatedata2.json",
|
"output_cmp": "txcreatedata2.json",
|
||||||
"description": "Creates a new transaction with one input, one address output and one data (zero value) output (output in json)"
|
"description": "Creates a new transaction with one input, one address output and one data (zero value) output (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-create",
|
["-create",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0:4294967293",
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0:4294967293",
|
||||||
|
@ -487,7 +487,7 @@
|
||||||
"output_cmp": "txcreatedata_seq0.hex",
|
"output_cmp": "txcreatedata_seq0.hex",
|
||||||
"description": "Creates a new transaction with one input with sequence number and one address output"
|
"description": "Creates a new transaction with one input with sequence number and one address output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json",
|
["-json",
|
||||||
"-create",
|
"-create",
|
||||||
|
@ -496,14 +496,14 @@
|
||||||
"output_cmp": "txcreatedata_seq0.json",
|
"output_cmp": "txcreatedata_seq0.json",
|
||||||
"description": "Creates a new transaction with one input with sequence number and one address output (output in json)"
|
"description": "Creates a new transaction with one input with sequence number and one address output (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000",
|
["01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000",
|
||||||
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0:1"],
|
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0:1"],
|
||||||
"output_cmp": "txcreatedata_seq1.hex",
|
"output_cmp": "txcreatedata_seq1.hex",
|
||||||
"description": "Adds a new input with sequence number to a transaction"
|
"description": "Adds a new input with sequence number to a transaction"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args":
|
"args":
|
||||||
["-json",
|
["-json",
|
||||||
"01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000",
|
"01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000",
|
||||||
|
@ -511,52 +511,52 @@
|
||||||
"output_cmp": "txcreatedata_seq1.json",
|
"output_cmp": "txcreatedata_seq1.json",
|
||||||
"description": "Adds a new input with sequence number to a transaction (output in json)"
|
"description": "Adds a new input with sequence number to a transaction (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485", "nversion=1"],
|
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485", "nversion=1"],
|
||||||
"output_cmp": "txcreatemultisig1.hex",
|
"output_cmp": "txcreatemultisig1.hex",
|
||||||
"description": "Creates a new transaction with a single 2-of-3 multisig output"
|
"description": "Creates a new transaction with a single 2-of-3 multisig output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485", "nversion=1"],
|
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485", "nversion=1"],
|
||||||
"output_cmp": "txcreatemultisig1.json",
|
"output_cmp": "txcreatemultisig1.json",
|
||||||
"description": "Creates a new transaction with a single 2-of-3 multisig output (output in json)"
|
"description": "Creates a new transaction with a single 2-of-3 multisig output (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:S", "nversion=1"],
|
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:S", "nversion=1"],
|
||||||
"output_cmp": "txcreatemultisig2.hex",
|
"output_cmp": "txcreatemultisig2.hex",
|
||||||
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2SH output"
|
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2SH output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:S", "nversion=1"],
|
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:S", "nversion=1"],
|
||||||
"output_cmp": "txcreatemultisig2.json",
|
"output_cmp": "txcreatemultisig2.json",
|
||||||
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2SH output (output in json)"
|
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2SH output (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:W", "nversion=1"],
|
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:W", "nversion=1"],
|
||||||
"output_cmp": "txcreatemultisig3.hex",
|
"output_cmp": "txcreatemultisig3.hex",
|
||||||
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output"
|
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:W", "nversion=1"],
|
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:W", "nversion=1"],
|
||||||
"output_cmp": "txcreatemultisig3.json",
|
"output_cmp": "txcreatemultisig3.json",
|
||||||
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output (output in json)"
|
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:WS", "nversion=1"],
|
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:WS", "nversion=1"],
|
||||||
"output_cmp": "txcreatemultisig4.hex",
|
"output_cmp": "txcreatemultisig4.hex",
|
||||||
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output, wrapped in P2SH"
|
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output, wrapped in P2SH"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:WS", "nversion=1"],
|
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:WS", "nversion=1"],
|
||||||
"output_cmp": "txcreatemultisig4.json",
|
"output_cmp": "txcreatemultisig4.json",
|
||||||
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output, wrapped in P2SH (output in json)"
|
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output, wrapped in P2SH (output in json)"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:S"],
|
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:S"],
|
||||||
"output_cmp": "txcreatemultisig5.json",
|
"output_cmp": "txcreatemultisig5.json",
|
||||||
"description": "Uncompressed pubkeys should work just fine for non-witness outputs"
|
"description": "Uncompressed pubkeys should work just fine for non-witness outputs"
|
||||||
},
|
},
|
||||||
{ "exec": "./bitcoin-tx",
|
{ "exec": "./dogecoin-tx",
|
||||||
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:WS"],
|
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:WS"],
|
||||||
"return_code": 1,
|
"return_code": 1,
|
||||||
"error_txt": "error: Uncompressed pubkeys are not useable for SegWit outputs",
|
"error_txt": "error: Uncompressed pubkeys are not useable for SegWit outputs",
|
||||||
|
|
Loading…
Reference in a new issue