Browse Source

Litecoin: Fix various tests

0.16
Adrian Gallagher 7 years ago
parent
commit
e838c27971
No known key found for this signature in database
GPG Key ID: FE3348877809386C
  1. 18
      .travis.yml
  2. 4
      contrib/testgen/gen_base58_test_vectors.py
  3. 8
      src/qt/guiutil.cpp
  4. 38
      src/qt/test/paymentrequestdata.h
  5. 2
      src/qt/test/rpcnestedtests.cpp
  6. 36
      src/qt/test/uritests.cpp
  7. 2
      src/rpc/mining.cpp
  8. 21
      src/test/README.md
  9. 20
      src/test/blockencodings_tests.cpp
  10. 2
      src/test/bloom_tests.cpp
  11. 94
      src/test/data/base58_keys_invalid.json
  12. 200
      src/test/data/base58_keys_valid.json
  13. 20
      src/test/key_tests.cpp
  14. 4
      src/test/main_tests.cpp
  15. 58
      src/test/miner_tests.cpp
  16. 38
      src/test/pow_tests.cpp
  17. 4
      src/test/rpc_tests.cpp
  18. 4
      src/test/test_bitcoin.cpp
  19. 26
      src/test/versionbits_tests.cpp
  20. 2
      test/functional/feature_block.py
  21. 4
      test/functional/p2p_compactblocks.py
  22. 2
      test/functional/rpc_fundrawtransaction.py
  23. 4
      test/functional/rpc_users.py
  24. 6
      test/functional/test_framework/util.py
  25. 196
      test/util/data/bitcoin-util-test.json
  26. 4
      test/util/data/tt-delin1-out.json
  27. 2
      test/util/data/tt-delout1-out.json
  28. 4
      test/util/data/tt-locktime317000-out.json
  29. 2
      test/util/data/txcreate1.hex
  30. 34
      test/util/data/txcreate1.json
  31. 2
      test/util/data/txcreatedata1.hex
  32. 16
      test/util/data/txcreatedata1.json
  33. 2
      test/util/data/txcreatedata2.hex
  34. 16
      test/util/data/txcreatedata2.json
  35. 2
      test/util/data/txcreatedata_seq0.hex
  36. 16
      test/util/data/txcreatedata_seq0.json
  37. 2
      test/util/data/txcreatedata_seq1.hex
  38. 10
      test/util/data/txcreatedata_seq1.json
  39. 6
      test/util/data/txcreatemultisig1.json
  40. 2
      test/util/data/txcreatemultisig2.json
  41. 2
      test/util/data/txcreatemultisig4.json
  42. 2
      test/util/data/txcreateoutpubkey1.json
  43. 2
      test/util/data/txcreateoutpubkey3.json
  44. 2
      test/util/data/txcreatescript2.json
  45. 2
      test/util/data/txcreatescript4.json
  46. 2
      test/util/data/txcreatesignv1.hex
  47. 18
      test/util/data/txcreatesignv1.json
  48. 2
      test/util/data/txcreatesignv2.hex

18
.travis.yml

@ -21,21 +21,22 @@ env: @@ -21,21 +21,22 @@ env:
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
- WINEDEBUG=fixme-all
- LITECOIN_SCRYPT=0
matrix:
# ARM
- HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf python3-pip" DEP_OPTS="NO_QT=1" CHECK_DOC=1 GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
# Win32
- HOST=i686-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-i686 wine1.6" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
- HOST=i686-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-i686 wine1.6" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports" LITECOIN_SCRYPT=1
# Qt4 & system libs
- HOST=x86_64-unknown-linux-gnu PACKAGES="python3-zmq qt4-dev-tools libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libdb5.1++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev xvfb" NO_DEPENDS=1 NEED_XVFB=1 RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt4 CPPFLAGS=-DDEBUG_LOCKORDER"
- HOST=x86_64-unknown-linux-gnu PACKAGES="python3-zmq qt4-dev-tools libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libdb5.1++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev xvfb" NO_DEPENDS=1 NEED_XVFB=1 RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt4 CPPFLAGS=-DDEBUG_LOCKORDER" LITECOIN_SCRYPT=1
# 32-bit + dash
- HOST=i686-pc-linux-gnu PACKAGES="g++-multilib python3-zmq" DEP_OPTS="NO_QT=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/dash"
- HOST=i686-pc-linux-gnu PACKAGES="g++-multilib python3-zmq" DEP_OPTS="NO_QT=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/dash" LITECOIN_SCRYPT=1
# Win64
- HOST=x86_64-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine1.6" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
- HOST=x86_64-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine1.6" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports" LITECOIN_SCRYPT=1
# x86_64 Linux (uses qt5 dev package instead of depends Qt to speed up build and avoid timeout)
- HOST=x86_64-unknown-linux-gnu PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports CPPFLAGS=-DDEBUG_LOCKORDER"
- HOST=x86_64-unknown-linux-gnu PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports CPPFLAGS=-DDEBUG_LOCKORDER" LITECOIN_SCRYPT=1
# x86_64 Linux, No wallet
- HOST=x86_64-unknown-linux-gnu PACKAGES="python3" DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
- HOST=x86_64-unknown-linux-gnu PACKAGES="python3" DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports" LITECOIN_SCRYPT=1
# Cross-Mac
- HOST=x86_64-apple-darwin11 PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --enable-werror" OSX_SDK=10.11 GOAL="deploy"
@ -46,6 +47,7 @@ install: @@ -46,6 +47,7 @@ install:
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then travis_retry pip3 install flake8 --user; fi
- if [ "$LITECOIN_SCRYPT" = 1 ]; then travis_retry sudo pip3 install litecoin_scrypt; fi
before_script:
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then contrib/devtools/commit-script-check.sh $TRAVIS_COMMIT_RANGE; fi
- if [ "$CHECK_DOC" = 1 ]; then contrib/devtools/git-subtree-check.sh src/crypto/ctaes; fi
@ -63,8 +65,8 @@ before_script: @@ -63,8 +65,8 @@ before_script:
# Start xvfb if needed, as documented at https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-xvfb-to-Run-Tests-That-Require-a-GUI
- if [ "$NEED_XVFB" = 1 ]; then export DISPLAY=:99.0; /sbin/start-stop-daemon --start --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac; fi
script:
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then while read LINE; do travis_retry gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys; fi
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then contrib/verify-commits/verify-commits.sh; fi
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "litecoin-project/litecoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then while read LINE; do travis_retry gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys; fi
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "litecoin-project/litecoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then contrib/verify-commits/verify-commits.sh; fi
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
- if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST

4
contrib/testgen/gen_base58_test_vectors.py

@ -18,11 +18,11 @@ import random @@ -18,11 +18,11 @@ import random
from binascii import b2a_hex
# key types
PUBKEY_ADDRESS = 0
PUBKEY_ADDRESS = 48
SCRIPT_ADDRESS = 5
PUBKEY_ADDRESS_TEST = 111
SCRIPT_ADDRESS_TEST = 196
PRIVKEY = 128
PRIVKEY = 176
PRIVKEY_TEST = 239
metadata_keys = ['isPrivkey', 'isTestnet', 'addrType', 'isCompressed']

8
src/qt/guiutil.cpp

@ -146,7 +146,7 @@ void setupAmountWidget(QLineEdit *widget, QWidget *parent) @@ -146,7 +146,7 @@ void setupAmountWidget(QLineEdit *widget, QWidget *parent)
bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out)
{
// return if URI is not valid or is no bitcoin: URI
if(!uri.isValid() || uri.scheme() != QString("bitcoin"))
if(!uri.isValid() || uri.scheme() != QString("litecoin"))
return false;
SendCoinsRecipient rv;
@ -210,9 +210,9 @@ bool parseBitcoinURI(QString uri, SendCoinsRecipient *out) @@ -210,9 +210,9 @@ bool parseBitcoinURI(QString uri, SendCoinsRecipient *out)
//
// Cannot handle this later, because bitcoin:// will cause Qt to see the part after // as host,
// which will lower-case it (and thus invalidate the address).
if(uri.startsWith("bitcoin://", Qt::CaseInsensitive))
if(uri.startsWith("litecoin://", Qt::CaseInsensitive))
{
uri.replace(0, 10, "bitcoin:");
uri.replace(0, 11, "litecoin:");
}
QUrl uriInstance(uri);
return parseBitcoinURI(uriInstance, out);
@ -220,7 +220,7 @@ bool parseBitcoinURI(QString uri, SendCoinsRecipient *out) @@ -220,7 +220,7 @@ bool parseBitcoinURI(QString uri, SendCoinsRecipient *out)
QString formatBitcoinURI(const SendCoinsRecipient &info)
{
QString ret = QString("bitcoin:%1").arg(info.address);
QString ret = QString("litecoin:%1").arg(info.address);
int paramCount = 0;
if (info.amount)

38
src/qt/test/paymentrequestdata.h

@ -435,26 +435,26 @@ d2hj739GDLz0b5KuJ2SG6VknMRQM976w/m2qlq0ccVGaaZ2zMIGfpzL3p6adwx/5\ @@ -435,26 +435,26 @@ d2hj739GDLz0b5KuJ2SG6VknMRQM976w/m2qlq0ccVGaaZ2zMIGfpzL3p6adwx/5\
";
//
// Payment request with amount overflow (amount is set to 21000001 BTC)
// Payment request with amount overflow (amount is set to 84000001 LTC)
//
const char* paymentrequest5_cert2_BASE64 =
"\
Egt4NTA5K3NoYTI1NhrQBArNBDCCAkkwggExoAMCAQICAQEwDQYJKoZIhvcNAQEL\
BQAwITEfMB0GA1UEAwwWUGF5bWVudFJlcXVlc3QgVGVzdCBDQTAeFw0xNTAxMTEx\
ODIxMDhaFw0yNTAxMDgxODIxMDhaMCExHzAdBgNVBAMMFlBheW1lbnRSZXF1ZXN0\
IFRlc3QgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMsZqzkzeBGo+i2N\
mUak3Ciodr1V7S062VOy7N0OQYNDQHYkgDFAUET7cEb5VJaHPv5m3ppTBpU9xBcf\
wbHHUt4VjA+mhRmYrl1khjvZM+X8kEqvWn20BtcM9R6r0yIYec8UERDDHBleL/P8\
RkxEnVLjYTV9zigCXfMsgYb3EQShAgMBAAGjEDAOMAwGA1UdEwQFMAMBAf8wDQYJ\
KoZIhvcNAQELBQADggEBABUJpl3QCqsoDSxAsQdV6zKT4VGV76AzoGj7etQsQY+r\
+S26VfWh/fMobEzuxFChr0USgLJ6FoK78hAtoZvt1lrye9yqFv/ig3WLWsJKWHHb\
3RT6oR03CIwZXFSUasi08QDVLxafwsU5OMcPLucF3a1lRL1ccYrNgVCCx1+X7Bos\
tIgDGRQQ4AyoHTcfVd2hEGeUv7k14mOxFsAp6851yosHq9Q2kwmdH+rHEJbjof87\
yyKLagc4owyXBZYkQmkeHWCNqnuRmO5vUsfVb0UUrkD64o7Th/NjwooA7SCiUXl6\
dfygT1b7ggpx7GC+sP2DsIM47IAZ55drjqX5u2f+Ba0iTAoEdGVzdBIkCIDC9P+F\
vt0DEhl2qRQErGqUUwSsaMpDvWIaGnJGNQqi8oisGLzcrKYFKhhUZXN0aW5nIGFt\
b3VudCBvdmVyZmxvdyEqgAG8S7WEDUC6tCL6q2CTBjop/AitgEy31RL9IqYruytR\
iEBFUrBDJZU+UEezGwr7/zoECjo5ZY3PmtZcM2sILNjyweJF6XVzGqTxUw6pN6sW\
XR2T3Gy2LzRvhVA25QgGqpz0/juS2BtmNbsZPkN9gMMwKimgzc+PuCzmEKwPK9cQ\
YQ==\
Egt4NTA5K3NoYTI1NhryBArvBDCCAmswggFToAMCAQICAQEwDQYJKoZIhvcNAQEL\
BQAwITEfMB0GA1UEAwwWUGF5bWVudFJlcXVlc3QgVGVzdCBDQTAeFw0xNjExMTYw\
MDU1NTFaFw0yNjExMTQwMDU1NTFaMEMxGTAXBgNVBAMMEHRlc3RtZXJjaGFudC5v\
cmcxJjAkBgNVBAoMHVBheW1lbnQgUmVxdWVzdCBUZXN0IE1lcmNoYW50MIGfMA0G\
CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQsHxApsShFxVBsS8EKqCSwQFIPV8fTdTb\
6a+apXmbiXPuqs8Ga5KmOe+AuYs7bolSoFGqe9tjFU+W9VEUMmx8y6EDsOrTZuqC\
ZH2Sl4nSW358F6McO2aJftCg7NKpW9Hca/qf5IZXJ1TDuyEVLmXtJI3RFhgC/lik\
Y5u5IjSFbwIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IB\
AQCyGrRABBP+ONSFjcoQoCx4nVSlS+YjgR5HR41Mkgy67K7BWexhklz0RLRUtxLF\
5XOYCfL1ZBB0ZCf22+QBVlhKlzZldMVRaGvlWIwF3u7Q0hnRTetkBfUunY/7bEF+\
OIuLAW2C0mvxli+ZQUUxTWZnNrSn67ZylCpNCt5ssOK2vZqJIcxE2mNlPWqIa9Gz\
Uz0lls2Nlx3fYSw9VlWgoesYl8Un9kyhr9/zPRJ3nVlFcrd0GlfaF3wexhZWViK8\
3tP0AAx3j3wg8jpDSM24R0xX15EGTB9qFLysaYFeG/YkLa2SNaU9sy/RclHeTFpS\
prYZy5/E0R3Zpfg81R2LkJ+IIkYSJAiAwsvwlvj1DhIZdqkUcqXt94tkwh5sokNv\
ETxkJlR7FJGIrBj+ia/BBSoYVGVzdGluZyBhbW91bnQgb3ZlcmZsb3chKoABcG6J\
s7WGhoR2oeePOiH8WF9rNnZYfNR9t26afph2vTTHPMQQoS6o7HeKA9RcPxbdl441\
4Mt8Ii0Fds+15AUPAfCjQ6YFuYfxO+HuMyhzJh6sFJbpZU7GrBNvqjn5kx52F6nn\
KuPIpNvaauPm/XqqdoQfqtj+AlQWLZF8pQeTbEU=\
";

2
src/qt/test/rpcnestedtests.cpp

@ -73,7 +73,7 @@ void RPCNestedTests::rpcNestedTests() @@ -73,7 +73,7 @@ void RPCNestedTests::rpcNestedTests()
QVERIFY(result == result2);
RPCConsole::RPCExecuteCommandLine(result, "getblock(getbestblockhash())[tx][0]", &filtered);
QVERIFY(result == "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b");
QVERIFY(result == "97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9");
QVERIFY(filtered == "getblock(getbestblockhash())[tx][0]");
RPCConsole::RPCParseCommandLine(result, "importprivkey", false, &filtered);

36
src/qt/test/uritests.cpp

@ -13,54 +13,54 @@ void URITests::uriTests() @@ -13,54 +13,54 @@ void URITests::uriTests()
{
SendCoinsRecipient rv;
QUrl uri;
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist="));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?req-dontexist="));
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist="));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?dontexist="));
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
QVERIFY(rv.address == QString("LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2"));
QVERIFY(rv.label == QString());
QVERIFY(rv.amount == 0);
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Wikipedia Example Address"));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?label=Wikipedia Example Address"));
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
QVERIFY(rv.address == QString("LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2"));
QVERIFY(rv.label == QString("Wikipedia Example Address"));
QVERIFY(rv.amount == 0);
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001"));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?amount=0.001"));
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
QVERIFY(rv.address == QString("LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2"));
QVERIFY(rv.label == QString());
QVERIFY(rv.amount == 100000);
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001"));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?amount=1.001"));
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
QVERIFY(rv.address == QString("LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2"));
QVERIFY(rv.label == QString());
QVERIFY(rv.amount == 100100000);
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&label=Wikipedia Example"));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?amount=100&label=Wikipedia Example"));
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
QVERIFY(rv.address == QString("LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2"));
QVERIFY(rv.amount == 10000000000LL);
QVERIFY(rv.label == QString("Wikipedia Example"));
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address"));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?message=Wikipedia Example Address"));
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
QVERIFY(rv.address == QString("LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2"));
QVERIFY(rv.label == QString());
QVERIFY(GUIUtil::parseBitcoinURI("bitcoin://175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address", &rv));
QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
QVERIFY(GUIUtil::parseBitcoinURI("litecoin://LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?message=Wikipedia Example Address", &rv));
QVERIFY(rv.address == QString("LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2"));
QVERIFY(rv.label == QString());
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=Wikipedia Example Address"));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?req-message=Wikipedia Example Address"));
QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000&label=Wikipedia Example"));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?amount=1,000&label=Wikipedia Example"));
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000.0&label=Wikipedia Example"));
uri.setUrl(QString("litecoin:LEr4HnaeFWYhBmGxCfP2po1NPRueIk8kM2?amount=1,000.0&label=Wikipedia Example"));
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
}

2
src/rpc/mining.cpp

@ -126,7 +126,7 @@ UniValue generateBlocks(std::shared_ptr<CReserveScript> coinbaseScript, int nGen @@ -126,7 +126,7 @@ UniValue generateBlocks(std::shared_ptr<CReserveScript> coinbaseScript, int nGen
LOCK(cs_main);
IncrementExtraNonce(pblock, chainActive.Tip(), nExtraNonce);
}
while (nMaxTries > 0 && pblock->nNonce < nInnerLoopCount && !CheckProofOfWork(pblock->GetHash(), pblock->nBits, Params().GetConsensus())) {
while (nMaxTries > 0 && pblock->nNonce < nInnerLoopCount && !CheckProofOfWork(pblock->GetPoWHash(), pblock->nBits, Params().GetConsensus())) {
++pblock->nNonce;
--nMaxTries;
}

21
src/test/README.md

@ -35,20 +35,23 @@ Run `test_bitcoin --help` for the full list. @@ -35,20 +35,23 @@ Run `test_bitcoin --help` for the full list.
### Note on adding test cases
The sources in this directory are unit test cases. Boost includes a
unit testing framework, and since bitcoin already uses boost, it makes
unit testing framework, and since litecoin already uses boost, it makes
sense to simply use this framework rather than require developers to
configure some other framework (we want as few impediments to creating
unit tests as possible).
The build system is setup to compile an executable called `test_bitcoin`
The build system is setup to compile an executable called "test_litecoin"
that runs all of the unit tests. The main source file is called
test_bitcoin.cpp. To add a new unit test file to our test suite you need
to add the file to `src/Makefile.test.include`. The pattern is to create
one test file for each class or source file for which you want to create
unit tests. The file naming convention is `<source_filename>_tests.cpp`
and such files should wrap their tests in a test suite
called `<source_filename>_tests`. For an example of this pattern,
examine `uint256_tests.cpp`.
test_bitcoin.cpp, which simply includes other files that contain the
actual unit tests (outside of a couple required preprocessor
directives). The pattern is to create one test file for each class or
source file for which you want to create unit tests. The file naming
convention is "<source_filename>_tests.cpp" and such files should wrap
their tests in a test suite called "<source_filename>_tests". For an
examples of this pattern, examine uint160_tests.cpp and
uint256_tests.cpp.
Add the source files to /src/Makefile.test.include to add them to the build.
For further reading, I found the following website to be helpful in
explaining how the boost unit test framework works:

20
src/test/blockencodings_tests.cpp

@ -29,9 +29,9 @@ static CBlock BuildBlockTestCase() { @@ -29,9 +29,9 @@ static CBlock BuildBlockTestCase() {
block.vtx.resize(3);
block.vtx[0] = MakeTransactionRef(tx);
block.nVersion = 42;
block.nVersion = 1;
block.hashPrevBlock = InsecureRand256();
block.nBits = 0x207fffff;
block.nBits = 0x1e0ffff0;
tx.vin[0].prevout.hash = InsecureRand256();
tx.vin[0].prevout.n = 0;
@ -47,7 +47,7 @@ static CBlock BuildBlockTestCase() { @@ -47,7 +47,7 @@ static CBlock BuildBlockTestCase() {
bool mutated;
block.hashMerkleRoot = BlockMerkleRoot(block, &mutated);
assert(!mutated);
while (!CheckProofOfWork(block.GetHash(), block.nBits, Params().GetConsensus())) ++block.nNonce;
while (!CheckProofOfWork(block.GetPoWHash(), block.nBits, Params().GetConsensus())) ++block.nNonce;
return block;
}
@ -105,7 +105,7 @@ BOOST_AUTO_TEST_CASE(SimpleRoundTripTest) @@ -105,7 +105,7 @@ BOOST_AUTO_TEST_CASE(SimpleRoundTripTest)
CBlock block3;
BOOST_CHECK(partialBlock.FillBlock(block3, {block.vtx[1]}) == READ_STATUS_OK);
BOOST_CHECK_EQUAL(block.GetHash().ToString(), block3.GetHash().ToString());
BOOST_CHECK_EQUAL(block.GetPoWHash().ToString(), block3.GetPoWHash().ToString());
BOOST_CHECK_EQUAL(block.hashMerkleRoot.ToString(), BlockMerkleRoot(block3, &mutated).ToString());
BOOST_CHECK(!mutated);
}
@ -209,7 +209,7 @@ BOOST_AUTO_TEST_CASE(NonCoinbasePreforwardRTTest) @@ -209,7 +209,7 @@ BOOST_AUTO_TEST_CASE(NonCoinbasePreforwardRTTest)
CBlock block3;
PartiallyDownloadedBlock partialBlockCopy = partialBlock;
BOOST_CHECK(partialBlock.FillBlock(block3, {block.vtx[0]}) == READ_STATUS_OK);
BOOST_CHECK_EQUAL(block.GetHash().ToString(), block3.GetHash().ToString());
BOOST_CHECK_EQUAL(block.GetPoWHash().ToString(), block3.GetPoWHash().ToString());
BOOST_CHECK_EQUAL(block.hashMerkleRoot.ToString(), BlockMerkleRoot(block3, &mutated).ToString());
BOOST_CHECK(!mutated);
@ -260,7 +260,7 @@ BOOST_AUTO_TEST_CASE(SufficientPreforwardRTTest) @@ -260,7 +260,7 @@ BOOST_AUTO_TEST_CASE(SufficientPreforwardRTTest)
CBlock block2;
PartiallyDownloadedBlock partialBlockCopy = partialBlock;
BOOST_CHECK(partialBlock.FillBlock(block2, {}) == READ_STATUS_OK);
BOOST_CHECK_EQUAL(block.GetHash().ToString(), block2.GetHash().ToString());
BOOST_CHECK_EQUAL(block.GetPoWHash().ToString(), block2.GetPoWHash().ToString());
bool mutated;
BOOST_CHECK_EQUAL(block.hashMerkleRoot.ToString(), BlockMerkleRoot(block2, &mutated).ToString());
BOOST_CHECK(!mutated);
@ -285,14 +285,14 @@ BOOST_AUTO_TEST_CASE(EmptyBlockRoundTripTest) @@ -285,14 +285,14 @@ BOOST_AUTO_TEST_CASE(EmptyBlockRoundTripTest)
CBlock block;
block.vtx.resize(1);
block.vtx[0] = MakeTransactionRef(std::move(coinbase));
block.nVersion = 42;
block.nVersion = 1;
block.hashPrevBlock = InsecureRand256();
block.nBits = 0x207fffff;
block.nBits = 0x1e0ffff0;
bool mutated;
block.hashMerkleRoot = BlockMerkleRoot(block, &mutated);
assert(!mutated);
while (!CheckProofOfWork(block.GetHash(), block.nBits, Params().GetConsensus())) ++block.nNonce;
while (!CheckProofOfWork(block.GetPoWHash(), block.nBits, Params().GetConsensus())) ++block.nNonce;
// Test simple header round-trip with only coinbase
{
@ -311,7 +311,7 @@ BOOST_AUTO_TEST_CASE(EmptyBlockRoundTripTest) @@ -311,7 +311,7 @@ BOOST_AUTO_TEST_CASE(EmptyBlockRoundTripTest)
CBlock block2;
std::vector<CTransactionRef> vtx_missing;
BOOST_CHECK(partialBlock.FillBlock(block2, vtx_missing) == READ_STATUS_OK);
BOOST_CHECK_EQUAL(block.GetHash().ToString(), block2.GetHash().ToString());
BOOST_CHECK_EQUAL(block.GetPoWHash().ToString(), block2.GetPoWHash().ToString());
BOOST_CHECK_EQUAL(block.hashMerkleRoot.ToString(), BlockMerkleRoot(block2, &mutated).ToString());
BOOST_CHECK(!mutated);
}

2
src/test/bloom_tests.cpp

@ -84,7 +84,7 @@ BOOST_AUTO_TEST_CASE(bloom_create_insert_serialize_with_tweak) @@ -84,7 +84,7 @@ BOOST_AUTO_TEST_CASE(bloom_create_insert_serialize_with_tweak)
BOOST_AUTO_TEST_CASE(bloom_create_insert_key)
{
std::string strSecret = std::string("5Kg1gnAjaLfKiwhhPpGS3QfRg2m6awQvaj98JCZBZQ5SuS2F15C");
std::string strSecret = std::string("6vyk9uiGUm8CCKbYue4PpoSbdWKZnjrxMQYJ1PaDGrQ4bLHTxQJ");
CBitcoinSecret vchSecret;
BOOST_CHECK(vchSecret.SetString(strSecret));

94
src/test/data/base58_keys_invalid.json

@ -6,145 +6,145 @@ @@ -6,145 +6,145 @@
"x"
],
[
"37qgekLpCCHrQuSjvX3fs496FWTGsHFHizjJAs6NPcR47aefnnCWECAhHV6E3g4YN7u7Yuwod5Y"
"gZXdHjj9QCnNz5KnSqrXo2w8XghqUaYQmoFxMFaks8ZTLCcu2LtWmWFTNH3HdXQ46yJNha24p3T"
],
[
"dzb7VV1Ui55BARxv7ATxAtCUeJsANKovDGWFVgpTbhq9gvPqP3yv"
"6vFieKyF36RmFmvMaBVC9UJyQUm2b1xmYRhwJY97tv4p5LF68FF"
],
[
"MuNu7ZAEDFiHthiunm7dPjwKqrVNCM3mAz6rP9zFveQu14YA8CxExSJTHcVP9DErn6u84E6Ej7S"
"cQWGj8MhCtKbN26j23EPbuTPXZ5pyPKuYFFTBJLxQvCWQvJEMBEXW"
],
[
"rPpQpYknyNQ5AEHuY6H8ijJJrYc2nDKKk9jjmKEXsWzyAQcFGpDLU2Zvsmoi8JLR7hAwoy3RQWf"
"JBoefAMfPKWWaUYPo5edWZvvt1CCjaTCPcpLbtVPvmajm1RTZnLTxgtCxM9QVEf8if9u7Eg88fV1"
],
[
"4Uc3FmN6NQ6zLBK5QQBXRBUREaaHwCZYsGCueHauuDmJpZKn6jkEskMB2Zi2CNgtb5r6epWEFfUJq"
"TbxPvvXwEtvLwVJGsAzFHqskzVcHVkSYporbcVXfkUSsgFewgEsf"
],
[
"7aQgR5DFQ25vyXmqZAWmnVCjL3PkBcdVkBUpjrjMTcghHx3E8wb"
"2NUDYkhC7duHz13gNFxkwPdL1i2UATDDUAgYzE7Lhg3VkLxpCNkqThs6SR6zMiiNzQer6RZPURqf"
],
[
"17QpPprjeg69fW1DV8DcYYCKvWjYhXvWkov6MJ1iTTvMFj6weAqW7wybZeH57WTNxXVCRH4veVs"
"LgcotVvFQgGHygDWCkkyqVgyctGTe3pH4G"
],
[
"KxuACDviz8Xvpn1xAh9MfopySZNuyajYMZWz16Dv2mHHryznWUp3"
"5mfqm4pggSkz238Tju7k9UhnHpvuSNbYKckmXKV29KBwYFNdCZBMRfbaikVNyjvz3Mj2rHpYtF7wg"
],
[
"7nK3GSmqdXJQtdohvGfJ7KsSmn3TmGqExug49583bDAL91pVSGq5xS9SHoAYL3Wv3ijKTit65th"
"2U4ajn8ASmYcM42hDCGqi7rFCKuzZJ7nNWUgjeRtQdrz4kKVS7t6iG2QEE4xABbuoedzK4ya7u8B"
],
[
"cTivdBmq7bay3RFGEBBuNfMh2P1pDCgRYN2Wbxmgwr4ki3jNUL2va"
"2PGCEn9m7Vx1hcwjZzvm61UBfdm8rynZcNb"
],
[
"gjMV4vjNjyMrna4fsAr8bWxAbwtmMUBXJS3zL4NJt5qjozpbQLmAfK1uA3CquSqsZQMpoD1g2nk"
"2iKcv8HMvVtbHVEmfPPp52AMbjLQqgvbFYt"
],
[
"emXm1naBMoVzPjbk7xpeTVMFy4oDEe25UmoyGgKEB1gGWsK8kRGs"
"uDpgjm6HCQypJFQcVTmqv5qHioEhpsvZb1rsQX4ivTSwEPaZBp"
],
[
"7VThQnNRj1o3Zyvc7XHPRrjDf8j2oivPTeDXnRPYWeYGE4pXeRJDZgf28ppti5hsHWXS2GSobdqyo"
"4MxF1GvQDokfTcUm9BVfkAgnUdd1QaMo7jx7zrbvtg41YWJPecL"
],
[
"1G9u6oCVCPh2o8m3t55ACiYvG1y5BHewUkDSdiQarDcYXXhFHYdzMdYfUAhfxn5vNZBwpgUNpso"
"cQcyPZ6SYhkauD8rywrqVYhoib1qfLN7o8BMjsTFziCrmtppGuAw"
],
[
"31QQ7ZMLkScDiB4VyZjuptr7AEc9j1SjstF7pRoLhHTGkW4Q2y9XELobQmhhWxeRvqcukGd1XCq"
"5ngBnqMF5sDmGqaA42FXWuK1TornGT8irTU2jggc66NN6B9Pw7LH2qgYU7Msr6MLwNLxpnKxai2UV"
],
[
"DHqKSnpxa8ZdQyH8keAhvLTrfkyBMQxqngcQA5N8LQ9KVt25kmGN"
"cRSUJiBwxSUuswwFWRpk2fdBLK6KWHby3mgNyTRTpEMs7XJQ3xkbT"
],
[
"2LUHcJPbwLCy9GLH1qXmfmAwvadWw4bp4PCpDfduLqV17s6iDcy1imUwhQJhAoNoN1XNmweiJP4i"
"2KtV23FPhBCmkPYE43kXfJFm5bvzGaGxEj5"
],
[
"7USRzBXAnmck8fX9HmW7RAb4qt92VFX6soCnts9s74wxm4gguVhtG5of8fZGbNPJA83irHVY6bCos"
"25xmYrwhzccp4mK4x7DWJQ1KYqKcw6ckso4TraMXnRhn1aimYFPWEVFCgcfjxgWH9tBHziipv4isE"
],
[
"1DGezo7BfVebZxAbNT3XGujdeHyNNBF3vnficYoTSp4PfK2QaML9bHzAMxke3wdKdHYWmsMTJVu"
"5mqiJJe7ej7245THhVmyhFuNekhCJkotVpeuQvstRKDdW8wYUdqZFyPRqFPuen7AEaSu69AiEzYJp"
],
[
"2D12DqDZKwCxxkzs1ZATJWvgJGhQ4cFi3WrizQ5zLAyhN5HxuAJ1yMYaJp8GuYsTLLxTAz6otCfb"
"cN6EEuVvKaubeqiqVfDSyGA72UoZ8j8KPPRahQ57jxuyBMdaT19vR"
],
[
"8AFJzuTujXjw1Z6M3fWhQ1ujDW7zsV4ePeVjVo7D1egERqSW9nZ"
"wVwfGNa9BkYKseBzr7Vb458bZqTXMQL94V"
],
[
"163Q17qLbTCue8YY3AvjpUhotuaodLm2uqMhpYirsKjVqnxJRWTEoywMVY3NbBAHuhAJ2cF9GAZ"
"HfLPJ1eL8KGMhmHXSptJnSe4oBmXzMZ1PfvnKWewBdv9vhEiSVmevKjgwHffL9oM24YNAj5zAau"
],
[
"2MnmgiRH4eGLyLc9eAqStzk7dFgBjFtUCtu"
"Yk5B6MRro1YEay6CiX1Qj8qHY1R5o3c4EsXN644EAmjB2JMrgex5"
],
[
"461QQ2sYWxU7H2PV4oBwJGNch8XVTYYbZxU"
"LbW5JEaVWMLuMeiRhUQ3vmPzzzQ8sgXTFme"
],
[
"2UCtv53VttmQYkVU4VMtXB31REvQg4ABzs41AEKZ8UcB7DAfVzdkV9JDErwGwyj5AUHLkmgZeobs"
"FwVS4Xy2KUEypF76i9n5dkKvUM1YjbyRYJ"
],
[
"cSNjAsnhgtiFMi6MtfvgscMB2Cbhn2v1FUYfviJ1CdjfidvmeW6mn"
"T3Xe7hU6cgBveFinLV45SE8WHT1aJ6xEBXkyAqAtj4CqfKPb3ZEG"
],
[
"gmsow2Y6EWAFDFE1CE4Hd3Tpu2BvfmBfG1SXsuRARbnt1WjkZnFh1qGTiptWWbjsq2Q6qvpgJVj"
"M8LH9iCJBTzgSjTE5y8RtSLo3vabSv6RWjLr54pZHqXZCBJtkEbV"
],
[
"nksUKSkzS76v8EsSgozXGMoQFiCoCHzCVajFKAXqzK5on9ZJYVHMD5CKwgmX3S3c7M1U3xabUny"
"JKAsgoe5RRWDFruerwz2TVEifnGLkHkMiWkJzm9Y1KkDpMXW2nssdyXaHfQzPoxqvazpTEmRPe6"
],
[
"L3favK1UzFGgdzYBF2oBT5tbayCo4vtVBLJhg2iYuMeePxWG8SQc"
"7sTp4xUuNRta4baVDHf96n7fqba2NJ1DjAnYXYswEh1xm8hbZJF"
],
[
"7VxLxGGtYT6N99GdEfi6xz56xdQ8nP2dG1CavuXx7Rf2PrvNMTBNevjkfgs9JmkcGm6EXpj8ipyPZ"
"cUSxdRJwpEP8czXTLPSXPNYAB75xyFi7AYwc7azPvGqQLcyEb7jq"
],
[
"2mbZwFXF6cxShaCo2czTRB62WTx9LxhTtpP"
"JKSnxB43ogNNPW9F27d8amwPWimdRLG95EUCiSrFJybfxVFPUjBFZFdeGdjzBygXCi7rinvS6Rz"
],
[
"dB7cwYdcPSgiyAwKWL3JwCVwSk6epU2txw"
"tJgWcJ8FqGWWuX6DGeMxnCKjfhm2osTu6Q"
],
[
"HPhFUhUAh8ZQQisH8QQWafAxtQYju3SFTX"
"2UDnhZGfuHzAKd4HSo99ALrVax5TgKxzALJR1Ct36ibrZqXsnwRBsVvKneDYWxiQjcpnQ3NWK2as"
],
[
"4ctAH6AkHzq5ioiM1m9T3E2hiYEev5mTsB"
"JCK4Kx3L6ZbHkSJwPYJPijK6SNgQDutbtE4XAxgTFgFWmFx1w97XczfKptjZKn3THosoZ2k81mb"
],
[
"Hn1uFi4dNexWrqARpjMqgT6cX1UsNPuV3cHdGg9ExyXw8HTKadbktRDtdeVmY3M1BxJStiL4vjJ"
"AbnXu1Rgaemzvbg1tVgTBjah1owubWPkFZ"
],
[
"Sq3fDbvutABmnAHHExJDgPLQn44KnNC7UsXuT7KZecpaYDMU9Txs"
"928wcz8UaXY3tHmeseuFAfYLNSBjrs8jdxKRGkJGk5Wyx2CvhmkPzTrPKporxAKqLs9bAh29Btb"
],
[
"6TqWyrqdgUEYDQU1aChMuFMMEimHX44qHFzCUgGfqxGgZNMUVWJ"
"Qp7EyuWueg4cazBtJW3uYKwLmL1uR3PkgDVoBsGSMZWu1njcRRJ"
],
[
"giqJo7oWqFxNKWyrgcBxAVHXnjJ1t6cGoEffce5Y1y7u649Noj5wJ4mmiUAKEVVrYAGg2KPB3Y4"
"6R9r5RHQdN6Fgk9K2PHSx1sXKpk8QskdyzXtCSNAfJmehY9DD1Dd"
],
[
"cNzHY5e8vcmM3QVJUcjCyiKMYfeYvyueq5qCMV3kqcySoLyGLYUK"
"271T9hGPSeP9QRTb7g5tRZYT7ADbJhivFb6"
],
[
"37uTe568EYc9WLoHEd9jXEvUiWbq5LFLscNyqvAzLU5vBArUJA6eydkLmnMwJDjkL5kXc2VK7ig"
"2x7WjATScgcSHNpGMGz8TKKS2g2E7Qkg9x3CMuGxxCDCHy1rQr1RFEjdjP6Lw6qksGJLcp7i6U6"
],
[
"EsYbG4tWWWY45G31nox838qNdzksbPySWc"
"2jwUaPdB93pxW5dJpoGjq3RCKyBEqTqfcq3"
],
[
"nbuzhfwMoNzA3PaFnyLcRxE9bTJPDkjZ6Rf6Y6o2ckXZfzZzXBT"
"7VkJFJwgtTaqCXks8JrxuJEkEoDGGUrGQBBUp2SVwb93UWAQ6d3kYK8y3u1CQKZi6f8fZWCoDpr3pP"
],
[
"cQN9PoxZeCWK1x56xnz6QYAsvR11XAce3Ehp3gMUdfSQ53Y2mPzx"
"T4UVQQSBJdRVkNvgNxkmcP9mVtWoBLWqmzZo1T8Z9GDNPYj6rV1s"
],
[
"1Gm3N3rkef6iMbx4voBzaxtXcmmiMTqZPhcuAepRzYUJQW4qRpEnHvMojzof42hjFRf8PE2jPde"
"2UA3wL1KGhNh2UR2HYRPVgJ9Dx32qEGapePi8wp1SZ9UmTCHV5fkudMA2CZ78t7KKDAQWtNB3PFc"
],
[
"2TAq2tuN6x6m233bpT7yqdYQPELdTDJn1eU"
"gcBstMZS9mKRXeGiYQJ5vG2ukiEKRirxskCEqZ6rmFwWuh2kyNxwqsd6pnduEdV7Zvvkgcu9VKt"
],
[
"ntEtnnGhqPii4joABvBtSEJG6BxjT2tUZqE8PcVYgk3RHpgxgHDCQxNbLJf7ardf1dDk2oCQ7Cf"
"5mqKtSZGj3bHtMgmSDbt9Qmp9NnQ8ECnYQ8b54eJKERw5stGCTZ42ECVxeTWU1JTC9o8Tewe4WxEW"
],
[
"Ky1YjoZNgQ196HJV3HpdkecfhRBmRZdMJk89Hi5KGfpfPwS2bUbfd"
"31q9AKvsdwuSP2znBRMLugqALxQ1aSfAqWbT1gyS1tsjFFj2ZZMSGAEE1kyFsC6H6fy7v6yTTtb"
],
[
"2A1q1YsMZowabbvta7kTy2Fd6qN4r5ZCeG3qLpvZBMzCixMUdkN2Y4dHB1wPsZAeVXUGD83MfRED"

200
src/test/data/base58_keys_valid.json

@ -1,47 +1,47 @@ @@ -1,47 +1,47 @@
[
[
"1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i",
"76a91465a16059864a2fdbc7c99a4723a8395bc6f188eb88ac",
"LdwLvykqj2nUH3MWcut6mtjHxVxVFC7st5",
"cd463dbc6f8076c7021f2766b36ea7e19c5c9e2e",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou",
"a91474f209f6ea907e2ea48f74fae05782ae8a66525787",
"3QiEMZmknJkHxz9q2VjTCT1tvUicLvBpdZ",
"fc85afab90ad569ed50fe8771d70aff8a7eb788d",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs",
"76a91453c0307d6851aa0ce7825ba883c6bd9ad242b48688ac",
"mmCKZS7toE69QgXNs1JZcjW6LFj8LfUbz6",
"3e4a9a4a79dcad8800b6cfcdf102bf98064b7454",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs",
"76a91453c0307d6851aa0ce7825ba883c6bd9ad242b48688ac",
"2N5X5FB9Cro2qW4Dww1pEKYXMhQt8PK6KHM",
"86a0ddc5ce64594f0b84d96596657e1f5e0af7f6",
{
"isPrivkey": false,
"chain": "regtest"
}
],
[
"2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br",
"a9146349a418fc4578d10a372b54b45c280cc8c4382f87",
"6uyyEQaLajn2bVG4DQ9LkwKqdTLWv5fxzSgBBwFMhZnY6SHamHF",
"716bbb0c59dc95f658b169b09c9ada6b106d79ef637dc0a1361aea83b67f3281",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr",
"eddbdc1168f1daeadbd3e44c1e3f8f5a284c2029f78ad26af98583a499de5b19",
"T92ej9rAJ2HEKBtXKpcQEB88KMjBUW43uVxzwgAAYmm97CbDfuB2",
"b257a0d8b63aac2cbac1f6b57c73ee6313650a000ac895456f633e05e1f276b1",
{
"isCompressed": false,
"isPrivkey": true,
@ -49,8 +49,8 @@ @@ -49,8 +49,8 @@
}
],
[
"Kz6UJmQACJmLtaQj5A3JAge4kVTNQ8gbvXuwbmCj7bsaabudb3RD",
"55c9bccb9ed68446d1b75273bbce89d7fe013a8acd1625514420fb2aca1a21c4",
"93UCtAocH3kKPwoqEcjNGR1qi9MLkhQio2vMjWCMdEsBNwTKszg",
"f8270343a5cc4936c0f304520700b9a9f443dddeb5b2bfa9ef8414d126e9835b",
{
"isCompressed": true,
"isPrivkey": true,
@ -58,8 +58,8 @@ @@ -58,8 +58,8 @@
}
],
[
"9213qJab2HNEpMpYNBa7wHGFKKbkDn24jpANDs2huN3yi4J11ko",
"36cb93b9ab1bdabf7fb9f2c04f1b9cc879933530ae7842398eef5a63a56800c2",
"cU3MMfRXJpVuVXKdkqn1x8cqEHz4AfyBmVFj7CvBUdApAZYo6Lj8",
"c0bbf61af02667b9a7c172c2d4bfa64ac9d4553f7ae19fb295c06e77cc799296",
{
"isCompressed": false,
"isPrivkey": true,
@ -67,8 +67,8 @@ @@ -67,8 +67,8 @@
}
],
[
"9213qJab2HNEpMpYNBa7wHGFKKbkDn24jpANDs2huN3yi4J11ko",
"36cb93b9ab1bdabf7fb9f2c04f1b9cc879933530ae7842398eef5a63a56800c2",
"LWZR9ybwmT8vSXP6tmrBX4b6nE9o94AjQG",
"7c57bc50a38d8377ad55260f29f2c8619846ef08",
{
"isCompressed": false,
"isPrivkey": true,
@ -76,8 +76,8 @@ @@ -76,8 +76,8 @@
}
],
[
"cTpB4YiyKiBcPxnefsDpbnDxFDffjqJob8wGCEDXxgQ7zQoMXJdH",
"b9f4892c9e8282028fea1d2667c4dc5213564d41fc5783896a0d843fc15089f3",
"32wfwbXojzQN9vYFQGquFTt7sqKnB8Phyz",
"0dbdaf6928107d60299f5069367c4cf07fa9b6e5",
{
"isCompressed": true,
"isPrivkey": true,
@ -85,8 +85,8 @@ @@ -85,8 +85,8 @@
}
],
[
"cTpB4YiyKiBcPxnefsDpbnDxFDffjqJob8wGCEDXxgQ7zQoMXJdH",
"b9f4892c9e8282028fea1d2667c4dc5213564d41fc5783896a0d843fc15089f3",
"mvJg85FLYqN7xAcZeFZRVg7pMbJ53BqKmy",
"a237653c5ae7e18e840d6463d380701ce3ba5035",
{
"isCompressed": true,
"isPrivkey": true,
@ -94,40 +94,40 @@ @@ -94,40 +94,40 @@
}
],
[
"1Ax4gZtb7gAit2TivwejZHYtNNLT18PUXJ",
"76a9146d23156cbbdcc82a5a47eee4c2c7c583c18b6bf488ac",
"2NCGcqUHf4q4vE2MZD6bnaVzFUSKPM4WCDX",
"d0ade0e231a81794ed1baa081604de53ddd8b083",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"3QjYXhTkvuj8qPaXHTTWb5wjXhdsLAAWVy",
"a914fcc5460dd6e2487c7d75b1963625da0e8f4c597587",
"6w3nZ8BsJLuJwe42QpFAwCZC9EFz4e2k1ewhRT9ab2poUv8KSu7",
"fdc80a3b189a9d64a1fb8e5a9905d92922f77e135a235a06046147f10d4f09be",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"n3ZddxzLvAY9o7184TB4c6FJasAybsw4HZ",
"76a914f1d470f9b02370fdec2e6b708b08ac431bf7a5f788ac",
"T5EAeSR4zfUGvNiA4iCVPpV8Gz6ZUGAT94bsBqTv3kd81hNQCgzY",
"40eab9b09d0469a7d9f84dae6bc5f98199e0b187fe4e74013cab437f9306ea00",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"2NBFNJTktNa7GZusGbDbGKRZTxdK9VVez3n",
"a914c579342c2c4c9220205e2cdc285617040c924a0a87",
"92hDYngM3s5oLTK6Fsq1JKLLSgL5NdarzLm8r9ymzEfQzCB24cJ",
"92001dd4cb225cdc0cf9fe2f824c807ffedd5235c9c0ca014949d0793fc66868",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"5K494XZwps2bGyeL71pWid4noiSNA2cfCibrvRWqcHSptoFn7rc",
"a326b95ebae30164217d7a7f57d72ab2b54e3be64928a19da0210b9568d4015e",
"cQFFjska277aBhcbCaEdBSixz1BXEgnLoGYECu9mKJip3GBco8CL",
"4f8210f4e6830d16fa8818d37fa9aed65664a20f3c41bfa5b502cdc8d1173dcb",
{
"isCompressed": false,
"isPrivkey": true,
@ -135,8 +135,8 @@ @@ -135,8 +135,8 @@
}
],
[
"L1RrrnXkcKut5DEMwtDthjwRcTTwED36thyL1DebVrKuwvohjMNi",
"7d998b45c219a1e38e99e7cbd312ef67f77a455a9b50c730c27f02c6f730dfb4",
"LWkdEB9SHUfuBiTvZofK2LqYE4RTTtUcqi",
"7e766382cb564021bcbc273e23569dcaed536ac6",
{
"isCompressed": true,
"isPrivkey": true,
@ -144,8 +144,8 @@ @@ -144,8 +144,8 @@
}
],
[
"93DVKyFYwSN6wEo3E2fCrFPUp17FtrtNi2Lf7n4G3garFb16CRj",
"d6bca256b5abc5602ec2e1c121a08b0da2556587430bcf7e1898af2224885203",
"32cjrquumLmwSmBrNCbkU5UTUmtgetWqaL",
"0a290d74c272ab52dec1a87ce88e75d29c94fe5a",
{
"isCompressed": false,
"isPrivkey": true,
@ -153,8 +153,8 @@ @@ -153,8 +153,8 @@
}
],
[
"cTDVKtMGVYWTHCb1AFjmVbEbWjvKpKqKgMaR3QJxToMSQAhmCeTN",
"a81ca4e8f90181ec4b61b6a7eb998af17b2cb04de8a03b504b9e34c4c61db7d9",
"mtei3esVvHhww4Rw9FYnMdTUTVvbpWhLfF",
"901111ab28cf850a5b6846e94e8c0c4a505603a9",
{
"isCompressed": true,
"isPrivkey": true,
@ -162,40 +162,40 @@ @@ -162,40 +162,40 @@
}
],
[
"1C5bSj1iEGUgSTbziymG7Cn18ENQuT36vv",
"76a9147987ccaa53d02c8873487ef919677cd3db7a691288ac",
"2N85CqWKWqfZ5Hc9qGXWmr5JKZzMqZCRDPM",
"a2a4c41bd7150d28aa730140cebf7aa5341e2619",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"3AnNxabYGoTxYiTEZwFEnerUoeFXK2Zoks",
"a91463bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb87",
"6vfWJ2KcJLjvXXx8aZNsLcQQnxTvXA38ci22BvhprTq5QpRS6k6",
"cb30eec426333b2396d2362d4a380d7f6a4ae50a2701309a53f500fa389c166c",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"n3LnJXCqbPjghuVs8ph9CYsAe4Sh4j97wk",
"76a914ef66444b5b17f14e8fae6e7e19b045a78c54fd7988ac",
"T9xQZ1QYhGyYp7wzRQuLdfm1te8BwrnvWsibt6GXuK58Xoq2wryN",
"cdff0814191533898aa1e6291f2c77e1a1945a732f70b8f09aadc637e9241e59",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"2NB72XtkjpnATMggui83aEtPawyyKvnbX2o",
"a914c3e55fceceaa4391ed2a9677f4a4d34eacd021a087",
"93C56vYXBM3XycR9M9pDNY333bTLT8KeqTpRXKSncruKpeuvfZ5",
"d3849230c2d8bd3590708a8ff485deea6a73916a664255f95179282b146854fe",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"5KaBW9vNtWNhc3ZEDyNCiXLPdVPHCikRxSBWwV9NrpLLa4LsXi9",
"e75d936d56377f432f404aabb406601f892fd49da90eb6ac558a733c93b47252",
"cV7TW5gn8yJjrVy4mfYLDY1tfYN7o81tjeubEeqWxzyjdcU7Bv9F",
"e0af129330504deb99dd989339b96d77ce3782a852b8e61a4367394505abc3e0",
{
"isCompressed": false,
"isPrivkey": true,
@ -203,8 +203,8 @@ @@ -203,8 +203,8 @@
}
],
[
"L1axzbSyynNYA8mCAhzxkipKkfHtAXYF4YQnhSKcLV8YXA874fgT",
"8248bd0375f2f75d7e274ae544fb920f51784480866b102384190b1addfbaa5c",
"LVcGHJcTv1ctR6GLRXxR4SQSsycdmQ6pwZ",
"71e9734a1283f2368bbd5a397d3c7a22610b2958",
{
"isCompressed": true,
"isPrivkey": true,
@ -212,8 +212,8 @@ @@ -212,8 +212,8 @@
}
],
[
"927CnUkUbasYtDwYwVn2j8GdTuACNnKkjZ1rpZd2yBB1CLcnXpo",
"44c4f6a096eac5238291a94cc24c01e3b19b8d8cef72874a079e00a242237a52",
"35CcFdsWEiXv4cuHjR8G54FYvrrDtm4WUm",
"268118c8299cd5d8d3b9561caaf8c94d4bd1af44",
{
"isCompressed": false,
"isPrivkey": true,
@ -221,8 +221,8 @@ @@ -221,8 +221,8 @@
}
],
[
"cUcfCMRjiQf85YMzzQEk9d1s5A4K7xL5SmBCLrezqXFuTVefyhY7",
"d1de707020a9059d6d3abaf85e17967c6555151143db13dbb06db78df0f15c69",
"myWBvpVEeY86YvJLb5kwH2iWbdXPGjTtZk",
"c54d3aa920e78e56b72c0076d36e99bc87058397",
{
"isCompressed": true,
"isPrivkey": true,
@ -230,40 +230,40 @@ @@ -230,40 +230,40 @@
}
],
[
"1Gqk4Tv79P91Cc1STQtU3s1W6277M2CVWu",
"76a914adc1cc2081a27206fae25792f28bbc55b831549d88ac",
"2N54Ew2vPqzA9PxG89rB1LM8MVfgePiCKqV",
"818db8c869c5911d286d37088de9020cca43f702",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"33vt8ViH5jsr115AGkW6cEmEz9MpvJSwDk",
"a914188f91a931947eddd7432d6e614387e32b24470987",
"6uM1BTu9jkS6cMfFTtxzutmcNQYVpTome57XhxES6xKiiN7eM4v",
"1d7bee7a5f4be2bcd945a4bdce28a479bb1afcf4d925d29de0124325bb55277d",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"mhaMcBxNh5cqXm4aTQ6EcVbKtfL6LGyK2H",
"76a9141694f5bc1a7295b600f40018a618a6ea48eeb49888ac",
"T6gDa2FYoYuCDpeJy8ePrdTVqxxvZ9H5nCqmdVCiRvLBWr1jymE9",
"6c27d6190e8c49919b7c0919d1ca1b033c2b72b03234728d0b092087983f2544",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"2MxgPqX1iThW3oZVk9KoFcE5M4JpiETssVN",
"a9143b9b3fd7a50d4f08d1a5b0f62f644fa7115ae2f387",
"91epwsbfDsLwAum2kYeibW9v3cyM9ALeHxFoR1wh7g8w58gihCj",
"08e0d6cf0999a1427830e034b5281c8112d707d463da05d993d8b2b66985d91f",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"5HtH6GdcwCJA4ggWEL1B3jzBBUB8HPiBi9SBc5h9i4Wk4PSeApR",
"091035445ef105fa1bb125eccfb1882f3fe69592265956ade751fd095033d8d0",
"cTNjHC1zu7CifxVJ7g9V16LKVokd7D1XuEvqTtA88uwTsRUFXmWj",
"acdd979c5e6eb9e619dfede5c7112af1057442c8799c1e1d85d7bf59892c923a",
{
"isCompressed": false,
"isPrivkey": true,
@ -271,8 +271,8 @@ @@ -271,8 +271,8 @@
}
],
[
"L2xSYmMeVo3Zek3ZTsv9xUrXVAmrWxJ8Ua4cw8pkfbQhcEFhkXT8",
"ab2b4bcdfc91d34dee0ae2a8c6b6668dadaeb3a88b9859743156f462325187af",
"LPD8ZwGjE4WmQ1EEnjZHrvofSyvGtbEWsH",
"2bb8b0991f396d7f411c2227af00cc09d1ae0adf",
{
"isCompressed": true,
"isPrivkey": true,
@ -280,8 +280,8 @@ @@ -280,8 +280,8 @@
}
],
[
"92xFEve1Z9N8Z641KQQS7ByCSb8kGjsDzw6fAmjHN1LZGKQXyMq",
"b4204389cef18bbe2b353623cbf93e8678fbc92a475b664ae98ed594e6cf0856",
"35Bjf3NUkU6CNqUFB4HnkaYqN3VPMYwUED",
"2656dc6ac50a5bdeb80348b9097af31e74698f44",
{
"isCompressed": false,
"isPrivkey": true,
@ -289,8 +289,8 @@ @@ -289,8 +289,8 @@
}
],
[
"92xFEve1Z9N8Z641KQQS7ByCSb8kGjsDzw6fAmjHN1LZGKQXyMq",
"b4204389cef18bbe2b353623cbf93e8678fbc92a475b664ae98ed594e6cf0856",
"mhv2Ti1xy9CsWoYgnEjehEunbhFiyFwLAp",
"1a4d4bf230aabafd3a425770b8b98700bf06e370",
{
"isCompressed": false,
"isPrivkey": true,
@ -298,8 +298,8 @@ @@ -298,8 +298,8 @@
}
],
[
"cVM65tdYu1YK37tNoAyGoJTR13VBYFva1vg9FLuPAsJijGvG6NEA",
"e7b230133f1b5489843260236b06edca25f66adb1be455fbd38d4010d48faeef",
"2MwyQVPME89pGMxuX3fRwEgfXtgN1Y1wB7e",
"33dabd6dfda94c9c1ef1654a3c3b1e0984a7aecf",
{
"isCompressed": true,
"isPrivkey": true,
@ -307,40 +307,40 @@ @@ -307,40 +307,40 @@
}
],
[
"1JwMWBVLtiqtscbaRHai4pqHokhFCbtoB4",
"76a914c4c1b72491ede1eedaca00618407ee0b772cad0d88ac",
"6uqTHcTC88EcZ8RQJDoH7dFfH46E8ZNpThbEKXCiQ12ag2GeHQ7",
"5e15635f0be1e9717529fb2b65b0d430355f0f5db5811b47fc6545efbe082b23",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"3QCzvfL4ZRvmJFiWWBVwxfdaNBT8EtxB5y",
"a914f6fe69bcb548a829cce4c57bf6fff8af3a5981f987",
"T34vLND26MHR4j1L8qsmojWcHtwYcmDdibMrsgo41SRYDDDdJzQe",
"007c379af039e5472c784a1f41ccea5de8b8d6fde03139644f12294a5a4dc20d",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"mizXiucXRCsEriQCHUkCqef9ph9qtPbZZ6",
"76a914261f83568a098a8638844bd7aeca039d5f2352c088ac",
"932VXf7wK3qQTGzudkeHWME2iweTTdyfyxQV4HqWLZsocbVQMgZ",
"bdc494c6c492168886d7d19fe35c4e67c477f8e19bfe1b50a4b28a7f0910ac02",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"2NEWDzHWwY5ZZp8CQWbB7ouNMLqCia6YRda",
"a914e930e1834a4d234702773951d627cce82fbb5d2e87",
"cUNY2YHa2TZRNMKBjypnZ1kh7LnPzgBhapKQgqh8MXGGVQTqdqQS",
"ca9a6a553f353255f2d91fde1718bd1f86c40c0b16f2aaccf8efefe242f5a7b6",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"5KQmDryMNDcisTzRp3zEq9e4awRmJrEVU1j5vFRTKpRNYPqYrMg",
"d1fab7ab7385ad26872237f1eb9789aa25cc986bacc695e07ac571d6cdac8bc0",
"LPGeGFBPCVLHdGVD1i1oikzD92XZoTEVyh",
"2c62b9d0c13b499167506863248f473416b18850",
{
"isCompressed": false,
"isPrivkey": true,
@ -348,8 +348,8 @@ @@ -348,8 +348,8 @@
}
],
[
"L39Fy7AC2Hhj95gh3Yb2AU5YHh1mQSAHgpNixvm27poizcJyLtUi",
"b0bbede33ef254e8376aceb1510253fc3550efd0fcf84dcd0c9998b288f166b3",
"37h7vEB4v3jpqxKvX1qqJ5xZaqzLj7NPyN",
"41d5c23a8188270b32d0afce2e11e4c3028afe6b",
{
"isCompressed": true,
"isPrivkey": true,
@ -357,8 +357,8 @@ @@ -357,8 +357,8 @@
}
],
[
"91cTVUcgydqyZLgaANpf1fvL55FH53QMm4BsnCADVNYuWuqdVys",
"037f4192c630f399d9271e26c575269b1d15be553ea1a7217f0cb8513cef41cb",
"mhvk8vH4LaAgUBUJsU4UtL4KSWLavssToW",
"1a701609b7d938f932d9517f965eb938ec45d067",
{
"isCompressed": false,
"isPrivkey": true,
@ -366,8 +366,8 @@ @@ -366,8 +366,8 @@
}
],
[
"cQspfSzsgLeiJGB2u8vrAiWpCU4MxUT6JseWo2SjXy4Qbzn2fwDw",
"6251e205e8ad508bab5596bee086ef16cd4b239e0cc0c5d7c4e6035441e7d5de",
"2NBbbBFBoKk85mhvTJH4tc11U1zh4oqp7SG",
"c94c4561b8ec99cddd540dedc67380c6b859ae00",
{
"isCompressed": true,
"isPrivkey": true,
@ -375,40 +375,40 @@ @@ -375,40 +375,40 @@
}
],
[
"19dcawoKcZdQz365WpXWMhX6QCUpR9SY4r",
"76a9145eadaf9bb7121f0f192561a5a62f5e5f5421029288ac",
"6vQqYTYdTXyHLcAivoZ6N2pginHXkZj9DF8uu9rroj5jT32joQn",
"a9e2a8019c11e6fd215f5c2ae834c7f07207723cac79b4e22744800c97212ac1",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"37Sp6Rv3y4kVd1nQ1JV5pfqXccHNyZm1x3",
"a9143f210e7277c899c3a155cc1c90f4106cbddeec6e87",
"T7qqfYACj4bdqNMm9ZMMNtbaMXRzePBpL59msQiWw7i5JRuDLFVB",
"8ef16edbbc8996a1be1c8a8d7de566a489a84484912060471158c0d20fcd42ba",
{
"isPrivkey": false,
"chain": "main"
}
],
[
"myoqcgYiehufrsnnkqdqbp69dddVDMopJu",
"76a914c8a3c2a09a298592c3e180f02487cd91ba3400b588ac",
"91pvMZgXhzBit7xx2NrbgMiuVZJep46gTCdvFkQTijTA76Gzxfc",
"1fcbd613ad91f41e062a66b11299585cff1639775df447360e74fbeea1e336c8",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"2N7FuwuUuoTBrDFdrAZ9KxBmtqMLxce9i1C",
"a91499b31df7c9068d1481b596578ddbb4d3bd90baeb87",
"cVWTK7AxBVgndSKS6Xs54XonuEh4NUhaHVtyzrWhHfQ2rLWdVrNy",
"ec83a732c245dc6df111d6412aa1b2ed78072ae3ebaa499660ccb7f013adca8f",
{
"isPrivkey": false,
"chain": "test"
}
],
[
"5KL6zEaMtPRXZKo1bbMq7JDjjo1bJuQcsgL33je3oY8uSJCR5b4",
"c7666842503db6dc6ea061f092cfb9c388448629a6fe868d068c42a488b478ae",
"LhLu7S8qdG7YZR1GgSP8g4aqN8nXCRLkzX",
"f2a30c60e4abcbbdcdf7cb34520b742ae07b6018",
{
"isCompressed": false,
"isPrivkey": true,
@ -416,8 +416,8 @@ @@ -416,8 +416,8 @@
}
],
[
"KwV9KAfwbwt51veZWNscRTeZs9CKpojyu1MsPnaKTF5kz69H1UN2",
"07f0803fc5399e773555ab1e8939907e9badacc17ca129e67a2f5f2ff84351dd",
"3B7BZ4asi1qP4jQmo4UjshAp4ZtgmpA7CW",
"674b274f2be5747793d2529972d964f1cfe9f985",
{
"isCompressed": true,
"isPrivkey": true,

20
src/test/key_tests.cpp

@ -16,16 +16,16 @@ @@ -16,16 +16,16 @@
#include <boost/test/unit_test.hpp>
static const std::string strSecret1 = "5HxWvvfubhXpYYpS3tJkw6fq9jE9j18THftkZjHHfmFiWtmAbrj";
static const std::string strSecret2 = "5KC4ejrDjv152FGwP386VD1i2NYc5KkfSMyv1nGy1VGDxGHqVY3";
static const std::string strSecret1C = "Kwr371tjA9u2rFSMZjTNun2PXXP3WPZu2afRHTcta6KxEUdm1vEw";
static const std::string strSecret2C = "L3Hq7a8FEQwJkW1M2GNKDW28546Vp5miewcCzSqUD9kCAXrJdS3g";
static const std::string addr1 = "1QFqqMUD55ZV3PJEJZtaKCsQmjLT6JkjvJ";
static const std::string addr2 = "1F5y5E5FMc5YzdJtB9hLaUe43GDxEKXENJ";
static const std::string addr1C = "1NoJrossxPBKfCHuJXT4HadJrXRE9Fxiqs";
static const std::string addr2C = "1CRj2HyM1CXWzHAXLQtiGLyggNT9WQqsDs";
static const std::string strAddressBad = "1HV9Lc3sNHZxwj4Zk6fB38tEmBryq2cBiF";
static const std::string strSecret1 = "6uGFQ4DSW7zh1viHZi6iiVT17CncvoaV4MHvGvJKPDaLCdymj87";
static const std::string strSecret2 = "6vVo7sPkeLTwVdAntrv4Gbnsyr75H8ChD3P5iyHziwaqe8mCYR5";
static const std::string strSecret1C = "T3gJYmBuZXsdd65E7NQF88ZmUP2MaUanqnZg9GFS94W7kND4Ebjq";
static const std::string strSecret2C = "T986ZKRRdnuuXLeDZuKBRrZW1ujotAncU9WTrFU1n7vMgRW75ZtF";
static const std::string addr1 = "LiUo6Zn39joYJBzPUhssbDwAywhjFcoHE3";
static const std::string addr2 = "LZJvLSP5SGKcFS13MHgdrVhpFUbEMB5XVC";
static const std::string addr1C = "Lh2G82Bi33RNuzz4UfSMZbh54jnWHVnmw8";
static const std::string addr2C = "LWegHWHB5rmaF5rgWYt1YN3StapRdnGJfU";
static const std::string strAddressBad = "Lbi6bpMhSwp2CXkivEeUK9wzyQEFzHDfSr";
BOOST_FIXTURE_TEST_SUITE(key_tests, BasicTestingSetup)

4
src/test/main_tests.cpp

@ -49,13 +49,13 @@ BOOST_AUTO_TEST_CASE(subsidy_limit_test) @@ -49,13 +49,13 @@ BOOST_AUTO_TEST_CASE(subsidy_limit_test)
{
const auto chainParams = CreateChainParams(CBaseChainParams::MAIN);
CAmount nSum = 0;
for (int nHeight = 0; nHeight < 14000000; nHeight += 1000) {
for (int nHeight = 0; nHeight < 56000000; nHeight += 1000) {
CAmount nSubsidy = GetBlockSubsidy(nHeight, chainParams->GetConsensus());
BOOST_CHECK(nSubsidy <= 50 * COIN);
nSum += nSubsidy * 1000;
BOOST_CHECK(MoneyRange(nSum));
}
BOOST_CHECK_EQUAL(nSum, 2099999997690000ULL);
BOOST_CHECK_EQUAL(nSum, 8399999990760000ULL);
}
bool ReturnFalse() { return false; }

58
src/test/miner_tests.cpp

@ -52,34 +52,34 @@ struct { @@ -52,34 +52,34 @@ struct {
unsigned char extranonce;
unsigned int nonce;
} blockinfo[] = {
{4, 0xa4a3e223}, {2, 0x15c32f9e}, {1, 0x0375b547}, {1, 0x7004a8a5},
{2, 0xce440296}, {2, 0x52cfe198}, {1, 0x77a72cd0}, {2, 0xbb5d6f84},
{2, 0x83f30c2c}, {1, 0x48a73d5b}, {1, 0xef7dcd01}, {2, 0x6809c6c4},
{2, 0x0883ab3c}, {1, 0x087bbbe2}, {2, 0x2104a814}, {2, 0xdffb6daa},
{1, 0xee8a0a08}, {2, 0xba4237c1}, {1, 0xa70349dc}, {1, 0x344722bb},
{3, 0xd6294733}, {2, 0xec9f5c94}, {2, 0xca2fbc28}, {1, 0x6ba4f406},
{2, 0x015d4532}, {1, 0x6e119b7c}, {2, 0x43e8f314}, {2, 0x27962f38},
{2, 0xb571b51b}, {2, 0xb36bee23}, {2, 0xd17924a8}, {2, 0x6bc212d9},
{1, 0x630d4948}, {2, 0x9a4c4ebb}, {2, 0x554be537}, {1, 0xd63ddfc7},
{2, 0xa10acc11}, {1, 0x759a8363}, {2, 0xfb73090d}, {1, 0xe82c6a34},
{1, 0xe33e92d7}, {3, 0x658ef5cb}, {2, 0xba32ff22}, {5, 0x0227a10c},
{1, 0xa9a70155}, {5, 0xd096d809}, {1, 0x37176174}, {1, 0x830b8d0f},
{1, 0xc6e3910e}, {2, 0x823f3ca8}, {1, 0x99850849}, {1, 0x7521fb81},
{1, 0xaacaabab}, {1, 0xd645a2eb}, {5, 0x7aea1781}, {5, 0x9d6e4b78},
{1, 0x4ce90fd8}, {1, 0xabdc832d}, {6, 0x4a34f32a}, {2, 0xf2524c1c},
{2, 0x1bbeb08a}, {1, 0xad47f480}, {1, 0x9f026aeb}, {1, 0x15a95049},
{2, 0xd1cb95b2}, {2, 0xf84bbda5}, {1, 0x0fa62cd1}, {1, 0xe05f9169},
{1, 0x78d194a9}, {5, 0x3e38147b}, {5, 0x737ba0d4}, {1, 0x63378e10},
{1, 0x6d5f91cf}, {2, 0x88612eb8}, {2, 0xe9639484}, {1, 0xb7fabc9d},
{2, 0x19b01592}, {1, 0x5a90dd31}, {2, 0x5bd7e028}, {2, 0x94d00323},
{1, 0xa9b9c01a}, {1, 0x3a40de61}, {1, 0x56e7eec7}, {5, 0x859f7ef6},
{1, 0xfd8e5630}, {1, 0x2b0c9f7f}, {1, 0xba700e26}, {1, 0x7170a408},
{1, 0x70de86a8}, {1, 0x74d64cd5}, {1, 0x49e738a1}, {2, 0x6910b602},
{0, 0x643c565f}, {1, 0x54264b3f}, {2, 0x97ea6396}, {2, 0x55174459},
{2, 0x03e8779a}, {1, 0x98f34d8f}, {1, 0xc07b2b07}, {1, 0xdfe29668},
{1, 0x3141c7c1}, {1, 0xb3b595f4}, {1, 0x735abf08}, {5, 0x623bfbce},
{2, 0xd351e722}, {1, 0xf4ca48c9}, {1, 0x5b19c670}, {1, 0xa164bf0e},
{2, 0xbbbeb305}, {2, 0xfe1c810a},
{4, 0xa4ad9f65}, {2, 0x15cf2b27}, {1, 0x037620ac}, {1, 0x700d9c54},
{2, 0xce79f74f}, {2, 0x52d9c194}, {1, 0x77bc3efc}, {2, 0xbb62c5e8},
{2, 0x83ff997a}, {1, 0x48b984ee}, {1, 0xef925da0}, {2, 0x680d2979},
{2, 0x08953af7}, {1, 0x087dd553}, {2, 0x210e2818}, {2, 0xdfffcdef},
{1, 0xeea1b209}, {2, 0xba4a8943}, {1, 0xa7333e77}, {1, 0x344f3e2a},
{3, 0xd651f08e}, {2, 0xeca3957f}, {2, 0xca35aa49}, {1, 0x6bb2065d},
{2, 0x0170ee44}, {1, 0x6e12f4aa}, {2, 0x43f4f4db}, {2, 0x279c1c44},
{2, 0xb5a50f10}, {2, 0xb3902841}, {2, 0xd198647e}, {2, 0x6bc40d88},
{1, 0x633a9a1c}, {2, 0x9a722ed8}, {2, 0x55580d10}, {1, 0xd65022a1},
{2, 0xa12ffcc8}, {1, 0x75a6a9c7}, {2, 0xfb7c80b7}, {1, 0xe8403e6c},
{1, 0xe34017a0}, {3, 0x659e177b}, {2, 0xba5c40bf}, {5, 0x022f11ef},
{1, 0xa9ab516a}, {5, 0xd0999ed4}, {1, 0x37277cb3}, {1, 0x830f735f},
{1, 0xc6e3d947}, {2, 0x824a0c1b}, {1, 0x99962416}, {1, 0x75336f63},
{1, 0xaacf0fea}, {1, 0xd6531aec}, {5, 0x7afcf541}, {5, 0x9d6fac0d},
{1, 0x4cf5c4df}, {1, 0xabe0f2a0}, {6, 0x4a3dac18}, {2, 0xf265febe},
{2, 0x1bc9f23f}, {1, 0xad49ab71}, {1, 0x9f2d8923}, {1, 0x15acb65d},
{2, 0xd1cecb52}, {2, 0xf856808b}, {1, 0x0fa96e29}, {1, 0xe063ecbc},
{1, 0x78d926c6}, {5, 0x3e38ad35}, {5, 0x73901915}, {1, 0x63424be0},
{1, 0x6d6b0a1d}, {2, 0x888ba681}, {2, 0xe96b0714}, {1, 0xb7fcaa55},
{2, 0x19c106eb}, {1, 0x5aa13484}, {2, 0x5bf4c2f3}, {2, 0x94d401dd},
{1, 0xa9bc23d9}, {1, 0x3a69c375}, {1, 0x56ed2006}, {5, 0x85ba6dbd},
{1, 0xfd9b2000}, {1, 0x2b2be19a}, {1, 0xba724468}, {1, 0x717eb6e5},
{1, 0x70de86d9}, {1, 0x74e23a42}, {1, 0x49e92832}, {2, 0x6926dbb9},
{0, 0x64452497}, {1, 0x54306d6f}, {2, 0x97ebf052}, {2, 0x55198b70},
{2, 0x03fe61f0}, {1, 0x98f9e67f}, {1, 0xc0842a09}, {1, 0xdfed39c5},
{1, 0x3144223e}, {1, 0xb3d12f84}, {1, 0x7366ceb7}, {5, 0x6240691b},
{2, 0xd3529b57}, {1, 0xf4cae3b1}, {1, 0x5b1df222}, {1, 0xa16a5c70},
{2, 0xbbccedc6}, {2, 0xfe38d0ef},
};
CBlockIndex CreateBlockIndex(int nHeight)
@ -368,7 +368,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) @@ -368,7 +368,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
// subsidy changing
int nHeight = chainActive.Height();
// Create an actual 209999-long block chain (without valid blocks).
while (chainActive.Tip()->nHeight < 209999) {
while (chainActive.Tip()->nHeight < 839999) {
CBlockIndex* prev = chainActive.Tip();
CBlockIndex* next = new CBlockIndex();
next->phashBlock = new uint256(InsecureRand256());

38
src/test/pow_tests.cpp

@ -17,48 +17,48 @@ BOOST_FIXTURE_TEST_SUITE(pow_tests, BasicTestingSetup) @@ -17,48 +17,48 @@ BOOST_FIXTURE_TEST_SUITE(pow_tests, BasicTestingSetup)
BOOST_AUTO_TEST_CASE(get_next_work)
{
const auto chainParams = CreateChainParams(CBaseChainParams::MAIN);
int64_t nLastRetargetTime = 1261130161; // Block #30240
int64_t nLastRetargetTime = 1358118740; // Block #278207
CBlockIndex pindexLast;
pindexLast.nHeight = 32255;
pindexLast.nTime = 1262152739; // Block #32255
pindexLast.nBits = 0x1d00ffff;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1d00d86a);
pindexLast.nHeight = 280223;
pindexLast.nTime = 1358378777; // Block #280223
pindexLast.nBits = 0x1c0ac141;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1c093f8d);
}
/* Test the constraint on the upper bound for next work */
BOOST_AUTO_TEST_CASE(get_next_work_pow_limit)
{
const auto chainParams = CreateChainParams(CBaseChainParams::MAIN);
int64_t nLastRetargetTime = 1231006505; // Block #0
int64_t nLastRetargetTime = 1317972665; // Block #0
CBlockIndex pindexLast;
pindexLast.nHeight = 2015;
pindexLast.nTime = 1233061996; // Block #2015
pindexLast.nBits = 0x1d00ffff;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1d00ffff);
pindexLast.nTime = 1318480354; // Block #2015
pindexLast.nBits = 0x1e0ffff0;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1e0fffff);
}
/* Test the constraint on the lower bound for actual time taken */
BOOST_AUTO_TEST_CASE(get_next_work_lower_limit_actual)
{
const auto chainParams = CreateChainParams(CBaseChainParams::MAIN);
int64_t nLastRetargetTime = 1279008237; // Block #66528
int64_t nLastRetargetTime = 1401682934; // NOTE: Not an actual block time
CBlockIndex pindexLast;
pindexLast.nHeight = 68543;
pindexLast.nTime = 1279297671; // Block #68543
pindexLast.nBits = 0x1c05a3f4;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1c0168fd);
pindexLast.nHeight = 578591;
pindexLast.nTime = 1401757934; // Block #578591
pindexLast.nBits = 0x1b075cf1;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1b01d73c);
}
/* Test the constraint on the upper bound for actual time taken */
BOOST_AUTO_TEST_CASE(get_next_work_upper_limit_actual)
{
const auto chainParams = CreateChainParams(CBaseChainParams::MAIN);
int64_t nLastRetargetTime = 1263163443; // NOTE: Not an actual block time
int64_t nLastRetargetTime = 1463690315; // NOTE: Not an actual block time
CBlockIndex pindexLast;
pindexLast.nHeight = 46367;
pindexLast.nTime = 1269211443; // Block #46367
pindexLast.nBits = 0x1c387f6f;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1d00e1fd);
pindexLast.nHeight = 1001951;
pindexLast.nTime = 1464900315; // Block #46367
pindexLast.nBits = 0x1b015318;
BOOST_CHECK_EQUAL(CalculateNextWorkRequired(&pindexLast, nLastRetargetTime, chainParams->GetConsensus()), 0x1b054c60);
}
BOOST_AUTO_TEST_CASE(GetBlockProofEquivalentTime_test)

4
src/test/rpc_tests.cpp

@ -117,8 +117,8 @@ BOOST_AUTO_TEST_CASE(rpc_rawsign) @@ -117,8 +117,8 @@ BOOST_AUTO_TEST_CASE(rpc_rawsign)
r = CallRPC(std::string("createrawtransaction ")+prevout+" "+
"{\"3HqAe9LtNBjnsfM4CyYaWTnvCaUYT7v4oZ\":11}");
std::string notsigned = r.get_str();
std::string privkey1 = "\"KzsXybp9jX64P5ekX1KUxRQ79Jht9uzW7LorgwE65i5rWACL6LQe\"";
std::string privkey2 = "\"Kyhdf5LuKTRx4ge69ybABsiUAWjVRK4XGxAKk2FQLp2HjGMy87Z4\"";
std::string privkey1 = "\"T6hoRM7L8u4f9vHd4eGMAmwV6AMCE11PvYi7YjrdegG223kw64r1\"";
std::string privkey2 = "\"T5Xu6pe5iqQYqXGxhcY2QEFr7NNoVQ5R6A4abpswunCTF9w85g8V\"";
r = CallRPC(std::string("signrawtransaction ")+notsigned+" "+prevout+" "+"[]");
BOOST_CHECK(find_value(r.get_obj(), "complete").get_bool() == false);
r = CallRPC(std::string("signrawtransaction ")+notsigned+" "+prevout+" "+"["+privkey1+","+privkey2+"]");

4
src/test/test_bitcoin.cpp

@ -65,7 +65,7 @@ TestingSetup::TestingSetup(const std::string& chainName) : BasicTestingSetup(cha @@ -65,7 +65,7 @@ TestingSetup::TestingSetup(const std::string& chainName) : BasicTestingSetup(cha
RegisterAllCoreRPCCommands(tableRPC);
ClearDatadirCache();
pathTemp = fs::temp_directory_path() / strprintf("test_bitcoin_%lu_%i", (unsigned long)GetTime(), (int)(InsecureRandRange(100000)));
pathTemp = fs::temp_directory_path() / strprintf("test_litecoin_%lu_%i", (unsigned long)GetTime(), (int)(InsecureRandRange(100000)));
fs::create_directories(pathTemp);
gArgs.ForceSetArg("-datadir", pathTemp.string());
@ -148,7 +148,7 @@ TestChain100Setup::CreateAndProcessBlock(const std::vector<CMutableTransaction>& @@ -148,7 +148,7 @@ TestChain100Setup::CreateAndProcessBlock(const std::vector<CMutableTransaction>&
IncrementExtraNonce(&block, chainActive.Tip(), extraNonce);
}
while (!CheckProofOfWork(block.GetHash(), block.nBits, chainparams.GetConsensus())) ++block.nNonce;
while (!CheckProofOfWork(block.GetPoWHash(), block.nBits, chainparams.GetConsensus())) ++block.nNonce;
std::shared_ptr<const CBlock> shared_pblock = std::make_shared<const CBlock>(block);
ProcessNewBlock(chainparams, shared_pblock, true, nullptr);

26
src/test/versionbits_tests.cpp

@ -271,12 +271,12 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion) @@ -271,12 +271,12 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion)
// Before MedianTimePast of the chain has crossed nStartTime, the bit
// should not be set.
CBlockIndex *lastBlock = nullptr;
lastBlock = firstChain.Mine(2016, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
lastBlock = firstChain.Mine(8064, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
BOOST_CHECK_EQUAL(ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit), 0);
// Mine 2011 more blocks at the old time, and check that CBV isn't setting the bit yet.
for (int i=1; i<2012; i++) {
lastBlock = firstChain.Mine(2016+i, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
for (int i=1; i<8060; i++) {
lastBlock = firstChain.Mine(8064+i, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
// This works because VERSIONBITS_LAST_OLD_BLOCK_VERSION happens
// to be 4, and the bit we're testing happens to be bit 28.
BOOST_CHECK_EQUAL(ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit), 0);
@ -284,13 +284,13 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion) @@ -284,13 +284,13 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion)
// Now mine 5 more blocks at the start time -- MTP should not have passed yet, so
// CBV should still not yet set the bit.
nTime = nStartTime;
for (int i=2012; i<=2016; i++) {
lastBlock = firstChain.Mine(2016+i, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
for (int i=8060; i<=8064; i++) {
lastBlock = firstChain.Mine(8064+i, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
BOOST_CHECK_EQUAL(ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit), 0);
}
// Advance to the next period and transition to STARTED,
lastBlock = firstChain.Mine(6048, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
lastBlock = firstChain.Mine(24192, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
// so ComputeBlockVersion should now set the bit,
BOOST_CHECK((ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit)) != 0);
// and should also be using the VERSIONBITS_TOP_BITS.
@ -298,8 +298,8 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion) @@ -298,8 +298,8 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion)
// Check that ComputeBlockVersion will set the bit until nTimeout
nTime += 600;
int blocksToMine = 4032; // test blocks for up to 2 time periods
int nHeight = 6048;
int blocksToMine = 16128; // test blocks for up to 2 time periods
int nHeight = 24192;
// These blocks are all before nTimeout is reached.
while (nTime < nTimeout && blocksToMine > 0) {
lastBlock = firstChain.Mine(nHeight+1, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
@ -313,7 +313,7 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion) @@ -313,7 +313,7 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion)
nTime = nTimeout;
// FAILED is only triggered at the end of a period, so CBV should be setting
// the bit until the period transition.
for (int i=0; i<2015; i++) {
for (int i=0; i<8063; i++) {
lastBlock = firstChain.Mine(nHeight+1, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
BOOST_CHECK((ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit)) != 0);
nHeight += 1;
@ -329,20 +329,20 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion) @@ -329,20 +329,20 @@ BOOST_AUTO_TEST_CASE(versionbits_computeblockversion)
// Mine one period worth of blocks, and check that the bit will be on for the
// next period.
lastBlock = secondChain.Mine(2016, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
lastBlock = secondChain.Mine(8064, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
BOOST_CHECK((ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit)) != 0);
// Mine another period worth of blocks, signaling the new bit.
lastBlock = secondChain.Mine(4032, nTime, VERSIONBITS_TOP_BITS | (1<<bit)).Tip();
lastBlock = secondChain.Mine(16128, nTime, VERSIONBITS_TOP_BITS | (1<<bit)).Tip();
// After one period of setting the bit on each block, it should have locked in.
// We keep setting the bit for one more period though, until activation.
BOOST_CHECK((ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit)) != 0);
// Now check that we keep mining the block until the end of this period, and
// then stop at the beginning of the next period.
lastBlock = secondChain.Mine(6047, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
lastBlock = secondChain.Mine(24191, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
BOOST_CHECK((ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit)) != 0);
lastBlock = secondChain.Mine(6048, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
lastBlock = secondChain.Mine(24192, nTime, VERSIONBITS_LAST_OLD_BLOCK_VERSION).Tip();
BOOST_CHECK_EQUAL(ComputeBlockVersion(lastBlock, mainnetParams) & (1<<bit), 0);
// Finally, verify that after a soft fork has activated, CBV no longer uses

2
test/functional/feature_block.py

@ -665,7 +665,7 @@ class FullBlockTest(ComparisonTestFramework): @@ -665,7 +665,7 @@ class FullBlockTest(ComparisonTestFramework):
tip(44)
b47 = block(47, solve=False)
target = uint256_from_compact(b47.nBits)
while b47.sha256 < target: #changed > to <
while b47.scrypt256 < target: #changed > to <
b47.nNonce += 1
b47.rehash()
yield rejected(RejectResult(16, b'high-hash'))

4
test/functional/p2p_compactblocks.py

@ -14,6 +14,8 @@ from test_framework.util import * @@ -14,6 +14,8 @@ from test_framework.util import *
from test_framework.blocktools import create_block, create_coinbase, add_witness_commitment
from test_framework.script import CScript, OP_TRUE
VB_TOP_BITS = 0x20000000
# TestNode: A peer we use to send messages to bitcoind, and store responses.
class TestNode(P2PInterface):
def __init__(self):
@ -103,7 +105,7 @@ class CompactBlocksTest(BitcoinTestFramework): @@ -103,7 +105,7 @@ class CompactBlocksTest(BitcoinTestFramework):
tip = node.getbestblockhash()
mtp = node.getblockheader(tip)['mediantime']
block = create_block(int(tip, 16), create_coinbase(height + 1), mtp + 1)
block.nVersion = 4
block.nVersion = VB_TOP_BITS
if segwit:
add_witness_commitment(block)
block.solve()

2
test/functional/rpc_fundrawtransaction.py

@ -192,7 +192,7 @@ class RawTransactionsTest(BitcoinTestFramework): @@ -192,7 +192,7 @@ class RawTransactionsTest(BitcoinTestFramework):
dec_tx = self.nodes[2].decoderawtransaction(rawtx)
assert_equal(utx['txid'], dec_tx['vin'][0]['txid'])
assert_raises_rpc_error(-5, "changeAddress must be a valid bitcoin address", self.nodes[2].fundrawtransaction, rawtx, {'changeAddress':'foobar'})
assert_raises_rpc_error(-5, "changeAddress must be a valid litecoin address", self.nodes[2].fundrawtransaction, rawtx, {'changeAddress':'foobar'})
############################################################
# test a fundrawtransaction with a provided change address #

4
test/functional/rpc_users.py

@ -22,10 +22,10 @@ class HTTPBasicsTest (BitcoinTestFramework): @@ -22,10 +22,10 @@ class HTTPBasicsTest (BitcoinTestFramework):
rpcauth2 = "rpcauth=rt2:f8607b1a88861fac29dfccf9b52ff9f$ff36a0c23c8c62b4846112e50fa888416e94c17bfd4c42f88fd8f55ec6a3137e"
rpcuser = "rpcuser=rpcuser💻"
rpcpassword = "rpcpassword=rpcpassword🔑"
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", "litecoin.conf"), 'a', encoding='utf8') as f:
f.write(rpcauth+"\n")
f.write(rpcauth2+"\n")
with open(os.path.join(self.options.tmpdir+"/node1", "bitcoin.conf"), 'a', encoding='utf8') as f:
with open(os.path.join(self.options.tmpdir+"/node1", "litecoin.conf"), 'a', encoding='utf8') as f:
f.write(rpcuser+"\n")
f.write(rpcpassword+"\n")

6
test/functional/test_framework/util.py

@ -287,7 +287,7 @@ def initialize_datadir(dirname, n): @@ -287,7 +287,7 @@ def initialize_datadir(dirname, n):
datadir = os.path.join(dirname, "node" + str(n))
if not os.path.isdir(datadir):
os.makedirs(datadir)
with open(os.path.join(datadir, "bitcoin.conf"), 'w', encoding='utf8') as f:
with open(os.path.join(datadir, "litecoin.conf"), 'w', encoding='utf8') as f:
f.write("regtest=1\n")
f.write("port=" + str(p2p_port(n)) + "\n")
f.write("rpcport=" + str(rpc_port(n)) + "\n")
@ -300,8 +300,8 @@ def get_datadir_path(dirname, n): @@ -300,8 +300,8 @@ def get_datadir_path(dirname, n):
def get_auth_cookie(datadir):
user = None
password = None
if os.path.isfile(os.path.join(datadir, "bitcoin.conf")):
with open(os.path.join(datadir, "bitcoin.conf"), 'r', encoding='utf8') as f:
if os.path.isfile(os.path.join(datadir, "litecoin.conf")):
with open(os.path.join(datadir, "litecoin.conf"), 'r', encoding='utf8') as f:
for line in f:
if line.startswith("rpcuser="):
assert user is None # Ensure that there is only one rpcuser line

196
test/util/data/bitcoin-util-test.json

@ -1,82 +1,82 @@ @@ -1,82 +1,82 @@
[
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "nversion=1"],
"output_cmp": "blanktxv1.hex",
"description": "Creates a blank v1 transaction"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json","-create", "nversion=1"],
"output_cmp": "blanktxv1.json",
"description": "Creates a blank v1 transaction (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-"],
"input": "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 litecoin-tx"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json","-create"],
"output_cmp": "blanktxv2.json",
"description": "Creates a blank transaction (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json","-"],
"input": "blanktxv2.hex",
"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 litecoin-tx (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-", "delin=1"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-delin1-out.hex",
"description": "Deletes a single input from a transaction"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-", "delin=1"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-delin1-out.json",
"description": "Deletes a single input from a transaction (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-", "delin=31"],
"input": "tx394b54bb.hex",
"return_code": 1,
"error_txt": "error: Invalid TX input index '31'",
"description": "Attempts to delete an input with a bad index from a transaction. Expected to fail."
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-", "delout=1"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-delout1-out.hex",
"description": "Deletes a single output from a transaction"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-", "delout=1"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-delout1-out.json",
"description": "Deletes a single output from a transaction (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-", "delout=2"],
"input": "tx394b54bb.hex",
"return_code": 1,
"error_txt": "error: Invalid TX output index '2'",
"description": "Attempts to delete an output with a bad index from a transaction. Expected to fail."
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-", "locktime=317000"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-locktime317000-out.hex",
"description": "Adds an nlocktime to a transaction"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-", "locktime=317000"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-locktime317000-out.json",
"description": "Adds an nlocktime to a transaction (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"outaddr=1"],
@ -84,7 +84,7 @@ @@ -84,7 +84,7 @@
"error_txt": "error: TX output missing or too many separators",
"description": "Malformed outaddr argument (no address specified). Expected to fail."
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"outaddr=1:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o:garbage"],
@ -92,7 +92,7 @@ @@ -92,7 +92,7 @@
"error_txt": "error: TX output missing or too many separators",
"description": "Malformed outaddr argument (too many separators). Expected to fail."
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"outpubkey=0"],
@ -100,7 +100,7 @@ @@ -100,7 +100,7 @@
"error_txt": "error: TX output missing or too many separators",
"description": "Malformed outpubkey argument (no pubkey specified). Expected to fail."
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W:non53nse"],
@ -108,160 +108,160 @@ @@ -108,160 +108,160 @@
"error_txt": "error: TX output missing or too many separators",
"description": "Malformed outpubkey argument (too many separators). Expected to fail."
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
"in=bf829c6bcf84579331337659d31f89dfd138f7f7785802d5501c92333145ca7c:18",
"in=22a6f904655d53ae2ff70e701a0bbd90aa3975c0f40bfc6cc996a9049e31cdfc:1",
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o",
"outaddr=4:1P8yWvZW8jVihP1bzHeqfE4aoXNX8AVa46"],
"in=5ee62e3f7757f5fd995b2fa1bdb5b744298146098d5de92959ec4b52dc77191e:1",
"in=3cd215c1c6b7ae33bc6266f268fd212b83860e13902b454502ce6d54448e398a:25",
"in=0f941395005b80a61726baecebb11d7caa184a1a58246daff7dffca793ab07b8:12",
"outaddr=12.52000000:LT7W6xCWK9tZVyyg3iifzHp8vUgMKke4sY",
"outaddr=0.01000487:LMnn592npBwmeLtTfKc9RoZUqAe2rDgvKX"],
"output_cmp": "txcreate1.hex",
"description": "Creates a new transaction with three inputs and two outputs"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json",
"-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
"in=bf829c6bcf84579331337659d31f89dfd138f7f7785802d5501c92333145ca7c:18",
"in=22a6f904655d53ae2ff70e701a0bbd90aa3975c0f40bfc6cc996a9049e31cdfc:1",
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o",
"outaddr=4:1P8yWvZW8jVihP1bzHeqfE4aoXNX8AVa46"],
"in=5ee62e3f7757f5fd995b2fa1bdb5b744298146098d5de92959ec4b52dc77191e:1",
"in=3cd215c1c6b7ae33bc6266f268fd212b83860e13902b454502ce6d54448e398a:25",
"in=0f941395005b80a61726baecebb11d7caa184a1a58246daff7dffca793ab07b8:12",
"outaddr=12.52000000:LMgENNXzzuPxp7vfMjDrCU44bsmrEMgqvc",
"outaddr=0.01000487:LV1ByjbJNFTHyFQqwqwdJXKJznYDzXzg4B"],
"output_cmp": "txcreate1.json",
"description": "Creates a new transaction with three inputs and two outputs (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outscript=0:"],
"output_cmp": "txcreate2.hex",
"description": "Creates a new transaction with a single empty output script"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outscript=0:"],
"output_cmp": "txcreate2.json",
"description": "Creates a new transaction with a single empty output script (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["02000000000100000000000000000000000000"],
"output_cmp": "txcreate2.hex",
"description": "Parses a transation with no inputs and a single output script"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "02000000000100000000000000000000000000"],
"output_cmp": "txcreate2.json",
"description": "Parses a transation with no inputs and a single output script (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outscript=0:OP_DROP", "nversion=1"],
"output_cmp": "txcreatescript1.hex",
"description": "Create a new transaction with a single output script (OP_DROP)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outscript=0:OP_DROP", "nversion=1"],
"output_cmp": "txcreatescript1.json",
"description": "Create a new transaction with a single output script (OP_DROP) (output as json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outscript=0:OP_DROP:S", "nversion=1"],
"output_cmp": "txcreatescript2.hex",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outscript=0:OP_DROP:S", "nversion=1"],
"output_cmp": "txcreatescript2.json",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH (output as json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outscript=0:OP_DROP:W", "nversion=1"],
"output_cmp": "txcreatescript3.hex",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outscript=0:OP_DROP:W", "nversion=1"],
"output_cmp": "txcreatescript3.json",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH (output as json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outscript=0:OP_DROP:WS", "nversion=1"],
"output_cmp": "txcreatescript4.hex",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH, wrapped in a P2SH"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outscript=0:OP_DROP:WS", "nversion=1"],
"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)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create", "nversion=1",
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
"set=privatekeys:[\"5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf\"]",
"set=prevtxs:[{\"txid\":\"4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485\",\"vout\":0,\"scriptPubKey\":\"76a91491b24bf9f5288532960ac687abb035127b1d28a588ac\"}]",
"in=6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7:0",
"set=privatekeys:[\"T3Eyvg7Me8fuajt2RJvQaRokRabBweiyBWVJiQG8P1bwDUEXPhqv\"]",
"set=prevtxs:[{\"txid\":\"6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7\",\"vout\":0,\"scriptPubKey\":\"6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7\"}]",
"sign=ALL",
"outaddr=0.001:193P6LtvS4nCnkDvM9uXn1gsSRqh4aDAz7"],
"outaddr=0.001:LXC44cQhuRufFtaDhDYv4q8nxQJBkUAsXp"],
"output_cmp": "txcreatesignv1.hex",
"description": "Creates a new v1 transaction with a single input and a single output, and then signs the transaction"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json",
"-create", "nversion=1",
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
"set=privatekeys:[\"5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf\"]",
"set=prevtxs:[{\"txid\":\"4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485\",\"vout\":0,\"scriptPubKey\":\"76a91491b24bf9f5288532960ac687abb035127b1d28a588ac\"}]",
"in=6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7:0",
"set=privatekeys:[\"T3Eyvg7Me8fuajt2RJvQaRokRabBweiyBWVJiQG8P1bwDUEXPhqv\"]",
"set=prevtxs:[{\"txid\":\"6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7\",\"vout\":0,\"scriptPubKey\":\"6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7\"}]",
"sign=ALL",
"outaddr=0.001:193P6LtvS4nCnkDvM9uXn1gsSRqh4aDAz7"],
"outaddr=0.001:LXC44cQhuRufFtaDhDYv4q8nxQJBkUAsXp"],
"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)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"in=4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485:0",
"set=privatekeys:[\"5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf\"]",
"set=prevtxs:[{\"txid\":\"4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485\",\"vout\":0,\"scriptPubKey\":\"76a91491b24bf9f5288532960ac687abb035127b1d28a588ac\"}]",
"in=6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7:0",
"set=privatekeys:[\"T3Eyvg7Me8fuajt2RJvQaRokRabBweiyBWVJiQG8P1bwDUEXPhqv\"]",
"set=prevtxs:[{\"txid\":\"6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7\",\"vout\":0,\"scriptPubKey\":\"6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7\"}]",
"sign=ALL",
"outaddr=0.001:193P6LtvS4nCnkDvM9uXn1gsSRqh4aDAz7"],
"outaddr=0.001:LXC44cQhuRufFtaDhDYv4q8nxQJBkUAsXp"],
"output_cmp": "txcreatesignv2.hex",
"description": "Creates a new transaction with a single input and a single output, and then signs the transaction"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397", "nversion=1"],
"output_cmp": "txcreateoutpubkey1.hex",
"description": "Creates a new transaction with a single pay-to-pubkey output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397", "nversion=1"],
"output_cmp": "txcreateoutpubkey1.json",
"description": "Creates a new transaction with a single pay-to-pubkey output (output as json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W", "nversion=1"],
"output_cmp": "txcreateoutpubkey2.hex",
"description": "Creates a new transaction with a single pay-to-witness-pubkey output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W", "nversion=1"],
"output_cmp": "txcreateoutpubkey2.json",
"description": "Creates a new transaction with a single pay-to-witness-pubkey output (output as json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:WS", "nversion=1"],
"output_cmp": "txcreateoutpubkey3.hex",
"description": "Creates a new transaction with a single pay-to-witness-pubkey, wrapped in P2SH output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:WS", "nversion=1"],
"output_cmp": "txcreateoutpubkey3.json",
"description": "Creates a new transaction with a single pay-to-pub-key output, wrapped in P2SH (output as json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json", "-create", "outpubkey=0:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:WS", "nversion=1"],
"return_code": 1,
@ -271,127 +271,127 @@ @@ -271,127 +271,127 @@
{ "exec": "./bitcoin-tx",
"args":
["-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
"outdata=4:badhexdata"],
"return_code": 1,
"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"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
"outdata=badhexdata"],
"return_code": 1,
"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"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
"outaddr=0.002:LiTVReQ6N8rWc2pNg2XMwCWq7A9P15teWg",
"outdata=4:54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e"],
"output_cmp": "txcreatedata1.hex",
"description": "Creates a new transaction with one input, one address output and one data output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json",
"-create", "nversion=1",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
"outaddr=0.002:LiTVReQ6N8rWc2pNg2XMwCWq7A9P15teWg",
"outdata=4:54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e"],
"output_cmp": "txcreatedata1.json",
"description": "Creates a new v1 transaction with one input, one address output and one data output (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
"outaddr=0.002:LiTVReQ6N8rWc2pNg2XMwCWq7A9P15teWg",
"outdata=54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e"],
"output_cmp": "txcreatedata2.hex",
"description": "Creates a new transaction with one input, one address output and one data (zero value) output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json",
"-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0",
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
"outaddr=0.002:LiTVReQ6N8rWc2pNg2XMwCWq7A9P15teWg",
"outdata=54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e"],
"output_cmp": "txcreatedata2.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": "./litecoin-tx",
"args":
["-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0:4294967293",
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o"],
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0:4294967293",
"outaddr=0.002:LiTVReQ6N8rWc2pNg2XMwCWq7A9P15teWg"],
"output_cmp": "txcreatedata_seq0.hex",
"description": "Creates a new transaction with one input with sequence number and one address output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json",
"-create",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0:4294967293",
"outaddr=0.18:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o"],
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0:4294967293",
"outaddr=0.002:LhzRRruapBx5gEtAf9RuVEePrzcG1wxRYa"],
"output_cmp": "txcreatedata_seq0.json",
"description": "Creates a new transaction with one input with sequence number and one address output (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0:1"],
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0:1"],
"output_cmp": "txcreatedata_seq1.hex",
"description": "Adds a new input with sequence number to a transaction"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args":
["-json",
"01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000",
"in=5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f:0:1"],
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0:1"],
"output_cmp": "txcreatedata_seq1.json",
"description": "Adds a new input with sequence number to a transaction (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485", "nversion=1"],
"output_cmp": "txcreatemultisig1.hex",
"description": "Creates a new transaction with a single 2-of-3 multisig output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485", "nversion=1"],
"output_cmp": "txcreatemultisig1.json",
"description": "Creates a new transaction with a single 2-of-3 multisig output (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:S", "nversion=1"],
"output_cmp": "txcreatemultisig2.hex",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2SH output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:S", "nversion=1"],
"output_cmp": "txcreatemultisig2.json",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2SH output (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:W", "nversion=1"],
"output_cmp": "txcreatemultisig3.hex",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:W", "nversion=1"],
"output_cmp": "txcreatemultisig3.json",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output (output in json)"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:WS", "nversion=1"],
"output_cmp": "txcreatemultisig4.hex",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output, wrapped in P2SH"
},
{ "exec": "./bitcoin-tx",
{ "exec": "./litecoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:WS", "nversion=1"],
"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)"

4
test/util/data/tt-delin1-out.json

@ -197,7 +197,7 @@ @@ -197,7 +197,7 @@
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"1E7SGgAZFCHDnVZLuRViX3gUmxpMfdvd2o"
"LYLPXtUPKrXH3JFW5ZV1o4kEzBBdkaYVpD"
]
}
},
@ -210,7 +210,7 @@ @@ -210,7 +210,7 @@
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"1AtWkdmfmYkErU16d3KYykJUbEp9MAj9Sb"
"LV7U1r5VrCzJ7GhFoBJrFmNEoTBRUqZvNB"
]
}
}

2
test/util/data/tt-delout1-out.json

@ -206,7 +206,7 @@ @@ -206,7 +206,7 @@
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"1E7SGgAZFCHDnVZLuRViX3gUmxpMfdvd2o"
"LYLPXtUPKrXH3JFW5ZV1o4kEzBBdkaYVpD"
]
}
}

4
test/util/data/tt-locktime317000-out.json

@ -206,7 +206,7 @@ @@ -206,7 +206,7 @@
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"1E7SGgAZFCHDnVZLuRViX3gUmxpMfdvd2o"
"LYLPXtUPKrXH3JFW5ZV1o4kEzBBdkaYVpD"
]
}
},
@ -219,7 +219,7 @@ @@ -219,7 +219,7 @@
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"1AtWkdmfmYkErU16d3KYykJUbEp9MAj9Sb"
"LV7U1r5VrCzJ7GhFoBJrFmNEoTBRUqZvNB"
]
}
}

2
test/util/data/txcreate1.hex

@ -1 +1 @@ @@ -1 +1 @@
02000000031f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff7cca453133921c50d5025878f7f738d1df891fd359763331935784cf6b9c82bf1200000000fffffffffccd319e04a996c96cfc0bf4c07539aa90bd0b1a700ef72fae535d6504f9a6220100000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d717000000001976a914f2d4db28cad6502226ee484ae24505c2885cb12d88ac00000000
02000000031e1977dc524bec5929e95d8d0946812944b7b5bda12f5b99fdf557773f2ee65e0100000000ffffffff8a398e44546dce0245452b90130e86832b21fd68f26662bc33aeb7c6c115d23c1900000000ffffffffb807ab93a7fcdff7af6d24581a4a18aa7c1db1ebecba2617a6805b009513940f0c00000000ffffffff020001a04a000000001976a9145688ac6b45bcc02f738e2970d2381d068d68eea788ac27440f00000000001976a9141c2578aa5e5c10ba3b6c3b71a78bff48077d8ba188ac00000000

34
test/util/data/txcreate1.json

@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
{
"txid": "fe7d174f42dce0cffa7a527e9bc8368956057619ec817648f6138b98f2533e8f",
"hash": "fe7d174f42dce0cffa7a527e9bc8368956057619ec817648f6138b98f2533e8f",
"txid": "1c50c1770374d7de2f81a87463a5225bb620d25fd467536223a5b715a47c9e32",
"hash": "1c50c1770374d7de2f81a87463a5225bb620d25fd467536223a5b715a47c9e32",
"version": 2,
"size": 201,
"vsize": 201,
"locktime": 0,
"vin": [
{
"txid": "5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f",
"vout": 0,
"txid": "5ee62e3f7757f5fd995b2fa1bdb5b744298146098d5de92959ec4b52dc77191e",
"vout": 1,
"scriptSig": {
"asm": "",
"hex": ""
@ -16,8 +16,8 @@ @@ -16,8 +16,8 @@
"sequence": 4294967295
},
{
"txid": "bf829c6bcf84579331337659d31f89dfd138f7f7785802d5501c92333145ca7c",
"vout": 18,
"txid": "3cd215c1c6b7ae33bc6266f268fd212b83860e13902b454502ce6d54448e398a",
"vout": 25,
"scriptSig": {
"asm": "",
"hex": ""
@ -25,8 +25,8 @@ @@ -25,8 +25,8 @@
"sequence": 4294967295
},
{
"txid": "22a6f904655d53ae2ff70e701a0bbd90aa3975c0f40bfc6cc996a9049e31cdfc",
"vout": 1,
"txid": "0f941395005b80a61726baecebb11d7caa184a1a58246daff7dffca793ab07b8",
"vout": 12,
"scriptSig": {
"asm": "",
"hex": ""
@ -36,31 +36,31 @@ @@ -36,31 +36,31 @@
],
"vout": [
{
"value": 0.18000000,
"value": 12.52000000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 1fc11f39be1729bf973a7ab6a615ca4729d64574 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac",
"asm": "OP_DUP OP_HASH160 1ae882e788091732da6910595314447c9e38bd8d OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9141ae882e788091732da6910595314447c9e38bd8d88ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"13tuJJDR2RgArmgfv6JScSdreahzgc4T6o"
"LMgENNXzzuPxp7vfMjDrCU44bsmrEMgqvc"
]
}
},
{
"value": 4.00000000,
"value": 0.01000487,
"n": 1,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 f2d4db28cad6502226ee484ae24505c2885cb12d OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914f2d4db28cad6502226ee484ae24505c2885cb12d88ac",
"asm": "OP_DUP OP_HASH160 6b474cbf0f6004329b630bdd4798f2c23d1751b6 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9146b474cbf0f6004329b630bdd4798f2c23d1751b688ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"1P8yWvZW8jVihP1bzHeqfE4aoXNX8AVa46"
"LV1ByjbJNFTHyFQqwqwdJXKJznYDzXzg4B"
]
}
}
],
"hex": "02000000031f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff7cca453133921c50d5025878f7f738d1df891fd359763331935784cf6b9c82bf1200000000fffffffffccd319e04a996c96cfc0bf4c07539aa90bd0b1a700ef72fae535d6504f9a6220100000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d717000000001976a914f2d4db28cad6502226ee484ae24505c2885cb12d88ac00000000"
"hex": "02000000031e1977dc524bec5929e95d8d0946812944b7b5bda12f5b99fdf557773f2ee65e0100000000ffffffff8a398e44546dce0245452b90130e86832b21fd68f26662bc33aeb7c6c115d23c1900000000ffffffffb807ab93a7fcdff7af6d24581a4a18aa7c1db1ebecba2617a6805b009513940f0c00000000ffffffff020001a04a000000001976a9141ae882e788091732da6910595314447c9e38bd8d88ac27440f00000000001976a9146b474cbf0f6004329b630bdd4798f2c23d1751b688ac00000000"
}

2
test/util/data/txcreatedata1.hex

@ -1 +1 @@ @@ -1 +1 @@
02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000
0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000ffffffff02400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000

16
test/util/data/txcreatedata1.json

@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
{
"txid": "07894b4d12fe7853dd911402db1620920d261b9627c447f931417d330c25f06e",
"hash": "07894b4d12fe7853dd911402db1620920d261b9627c447f931417d330c25f06e",
"txid": "111faf6fcbb3c31500966d87044cb34d47e698cae2ba85640c673fd1ad3d68b9",
"hash": "111faf6fcbb3c31500966d87044cb34d47e698cae2ba85640c673fd1ad3d68b9",
"version": 1,
"size": 176,
"vsize": 176,
"locktime": 0,
"vin": [
{
"txid": "5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f",
"txid": "69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef",
"vout": 0,
"scriptSig": {
"asm": "",
@ -18,15 +18,15 @@ @@ -18,15 +18,15 @@
],
"vout": [
{
"value": 0.18000000,
"value": 0.00200000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 1fc11f39be1729bf973a7ab6a615ca4729d64574 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac",
"asm": "OP_DUP OP_HASH160 feda50542e61108cf53b93dbffa0959f91ccb325 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914feda50542e61108cf53b93dbffa0959f91ccb32588ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"13tuJJDR2RgArmgfv6JScSdreahzgc4T6o"
"LiTVReQ6N8rWc2pNg2XMwCWq7A9P15teWg"
]
}
},
@ -40,5 +40,5 @@ @@ -40,5 +40,5 @@
}
}
],
"hex": "01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000"
"hex": "0100000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000ffffffff02400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000"
}

2
test/util/data/txcreatedata2.hex

@ -1 +1 @@ @@ -1 +1 @@
02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000
0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000ffffffff02400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000

16
test/util/data/txcreatedata2.json

@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
{
"txid": "c14b007fa3a6c1e7765919c1d14c1cfc2b8642c3a5d3be4b1fa8c4ccfec98bb0",
"hash": "c14b007fa3a6c1e7765919c1d14c1cfc2b8642c3a5d3be4b1fa8c4ccfec98bb0",
"txid": "17e220f41ed113fbca2b5ae97382018b54819990cb84d2004fe9099e64d2aa77",
"hash": "17e220f41ed113fbca2b5ae97382018b54819990cb84d2004fe9099e64d2aa77",
"version": 2,
"size": 176,
"vsize": 176,
"locktime": 0,
"vin": [
{
"txid": "5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f",
"txid": "69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef",
"vout": 0,
"scriptSig": {
"asm": "",
@ -18,15 +18,15 @@ @@ -18,15 +18,15 @@
],
"vout": [
{
"value": 0.18000000,
"value": 0.00200000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 1fc11f39be1729bf973a7ab6a615ca4729d64574 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac",
"asm": "OP_DUP OP_HASH160 feda50542e61108cf53b93dbffa0959f91ccb325 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914feda50542e61108cf53b93dbffa0959f91ccb32588ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"13tuJJDR2RgArmgfv6JScSdreahzgc4T6o"
"LiTVReQ6N8rWc2pNg2XMwCWq7A9P15teWg"
]
}
},
@ -40,5 +40,5 @@ @@ -40,5 +40,5 @@
}
}
],
"hex": "02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000"
"hex": "0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000ffffffff02400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000"
}

2
test/util/data/txcreatedata_seq0.hex

@ -1 +1 @@ @@ -1 +1 @@
02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000
0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000fdffffff01400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac00000000

16
test/util/data/txcreatedata_seq0.json

@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
{
"txid": "8df6ed527472542dd5e137c242a7c5a9f337ac34f7b257ae4af886aeaebb51b0",
"hash": "8df6ed527472542dd5e137c242a7c5a9f337ac34f7b257ae4af886aeaebb51b0",
"txid": "6d91ec40ccf2f0e1f4aad31d7a2eaeff34be2f78a743ce938eb285efbcafc3cd",
"hash": "6d91ec40ccf2f0e1f4aad31d7a2eaeff34be2f78a743ce938eb285efbcafc3cd",
"version": 2,
"size": 85,
"vsize": 85,
"locktime": 0,
"vin": [
{
"txid": "5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f",
"txid": "69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef",
"vout": 0,
"scriptSig": {
"asm": "",
@ -18,18 +18,18 @@ @@ -18,18 +18,18 @@
],
"vout": [
{
"value": 0.18000000,
"value": 0.00200000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 1fc11f39be1729bf973a7ab6a615ca4729d64574 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac",
"asm": "OP_DUP OP_HASH160 f9bbbf34117bfd1384c0708a13509f5599bb49e7 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914f9bbbf34117bfd1384c0708a13509f5599bb49e788ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"13tuJJDR2RgArmgfv6JScSdreahzgc4T6o"
"LhzRRruapBx5gEtAf9RuVEePrzcG1wxRYa"
]
}
}
],
"hex": "02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000"
"hex": "0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000fdffffff01400d0300000000001976a914f9bbbf34117bfd1384c0708a13509f5599bb49e788ac00000000"
}

2
test/util/data/txcreatedata_seq1.hex

@ -1 +1 @@ @@ -1 +1 @@
01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff1f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000
01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffffefc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000

10
test/util/data/txcreatedata_seq1.json

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
{
"txid": "c4dea671b0d7b48f8ab10bc46650e8329d3c5766931f548f513847a19f5ba75b",
"hash": "c4dea671b0d7b48f8ab10bc46650e8329d3c5766931f548f513847a19f5ba75b",
"txid": "e53e05d5591c15d8bea55d5649d5944bc9a75c2f61b42fa52cef36910d2a7653",
"hash": "e53e05d5591c15d8bea55d5649d5944bc9a75c2f61b42fa52cef36910d2a7653",
"version": 1,
"size": 126,
"vsize": 126,
@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
"sequence": 4294967293
},
{
"txid": "5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f",
"txid": "69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef",
"vout": 0,
"scriptSig": {
"asm": "",
@ -35,10 +35,10 @@ @@ -35,10 +35,10 @@
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"13tuJJDR2RgArmgfv6JScSdreahzgc4T6o"
"LN7rZWXF75vE7aNq6EHjtThcro5GpGmjYy"
]
}
}
],
"hex": "01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff1f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000"
"hex": "01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffffefc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000"
}

6
test/util/data/txcreatemultisig1.json

@ -17,9 +17,9 @@ @@ -17,9 +17,9 @@
"reqSigs": 2,
"type": "multisig",
"addresses": [
"1FoG2386FG2tAJS9acMuiDsKy67aGg9MKz",
"1FXtz9KU8JNmQDyHdiEm5HDiALuP3zdHvV",
"14LuavcBbXZYJ6Tsz3cAUQj9SuQoL2xCQX"
"La2DHFRvKvGwR78JkkMCzEw6BJUrSQa72A",
"LZkrFMdJCxcpf2fSorE4MJHUNZGfAnD7gf",
"LNZrr8v1gBobYuA3ABbTkRnuf7n5RRo5Cz"
]
}
}

2
test/util/data/txcreatemultisig2.json

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"34HNh57oBCRKkxNyjTuWAJkTbuGh6jg2Ms"
"MAVWzxXm8KGkZTesqLtqywzrvbs96FEoKy"
]
}
}

2
test/util/data/txcreatemultisig4.json

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"3BoFUz1StqcNcgUTZE5cC1eFhuYFzj3fGH"
"MJ1PnsRQqxToRBkMf74x1etf2c8i2imj3Y"
]
}
}

2
test/util/data/txcreateoutpubkey1.json

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
"reqSigs": 1,
"type": "pubkey",
"addresses": [
"1FoG2386FG2tAJS9acMuiDsKy67aGg9MKz"
"La2DHFRvKvGwR78JkkMCzEw6BJUrSQa72A"
]
}
}

2
test/util/data/txcreateoutpubkey3.json

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"3GnzN8FqgvYGYdhj8NW6UNxxVv3Uj1ApQn"
"MP18g1foe3PhM8ydEFVSJ2DMpcdvhLebXR"
]
}
}

2
test/util/data/txcreatescript2.json

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"3C5QarEGh9feKbDJ3QbMf2YNjnMoiPDhNp"
"MJHYtjeEeGX586VC9HahUfnn4UxFmqozk8"
]
}
}

2
test/util/data/txcreatescript4.json

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"3BNQbeFeJJGMAyDxPwWPuqxPMrjsFLjk3f"
"MHaYuXfcFR7myUVrVpVjjVCngZLKDuRbn3"
]
}
}

2
test/util/data/txcreatesignv1.hex

@ -1 +1 @@ @@ -1 +1 @@
01000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d000000008b48304502210096a75056c9e2cc62b7214777b3d2a592cfda7092520126d4ebfcd6d590c99bd8022051bb746359cf98c0603f3004477eac68701132380db8facba19c89dc5ab5c5e201410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000
0100000001f77bd0a57e5b5e041e95567e0f01c3789af7f624ff490f756fb408362489276c0000000000ffffffff01a0860100000000001976a914834584e0afbd77db57fcf4a3a076b8d3e02aa6fb88ac00000000

18
test/util/data/txcreatesignv1.json

@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
{
"txid": "977e7cd286cb72cd470d539ba6cb48400f8f387d97451d45cdb8819437a303af",
"hash": "977e7cd286cb72cd470d539ba6cb48400f8f387d97451d45cdb8819437a303af",
"txid": "bf7c8b55745d4f9d9b2e33b5fbec5d08e38f3dcfc1838cb424a16db3ebc52f13",
"hash": "bf7c8b55745d4f9d9b2e33b5fbec5d08e38f3dcfc1838cb424a16db3ebc52f13",
"version": 1,
"size": 224,
"vsize": 224,
"locktime": 0,
"vin": [
{
"txid": "4d49a71ec9da436f71ec4ee231d04f292a29cd316f598bb7068feccabdc59485",
"txid": "6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7",
"vout": 0,
"scriptSig": {
"asm": "304502210096a75056c9e2cc62b7214777b3d2a592cfda7092520126d4ebfcd6d590c99bd8022051bb746359cf98c0603f3004477eac68701132380db8facba19c89dc5ab5c5e2[ALL] 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",
"hex": "48304502210096a75056c9e2cc62b7214777b3d2a592cfda7092520126d4ebfcd6d590c99bd8022051bb746359cf98c0603f3004477eac68701132380db8facba19c89dc5ab5c5e201410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
"asm": "",
"hex": ""
},
"sequence": 4294967295
}
@ -21,15 +21,15 @@ @@ -21,15 +21,15 @@
"value": 0.00100000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 5834479edbbe0539b31ffd3a8f8ebadc2165ed01 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac",
"asm": "OP_DUP OP_HASH160 834584e0afbd77db57fcf4a3a076b8d3e02aa6fb OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914834584e0afbd77db57fcf4a3a076b8d3e02aa6fb88ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"193P6LtvS4nCnkDvM9uXn1gsSRqh4aDAz7"
"LXC44cQhuRufFtaDhDYv4q8nxQJBkUAsXp"
]
}
}
],
"hex": "01000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d000000008b48304502210096a75056c9e2cc62b7214777b3d2a592cfda7092520126d4ebfcd6d590c99bd8022051bb746359cf98c0603f3004477eac68701132380db8facba19c89dc5ab5c5e201410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000"
"hex": "0100000001f77bd0a57e5b5e041e95567e0f01c3789af7f624ff490f756fb408362489276c0000000000ffffffff01a0860100000000001976a914834584e0afbd77db57fcf4a3a076b8d3e02aa6fb88ac00000000"
}

2
test/util/data/txcreatesignv2.hex

@ -1 +1 @@ @@ -1 +1 @@
02000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d000000008a473044022079c7aa014177a2e973caf6df7c7b8f15399083b91eba370ea1e19c4caed9181e02205f8f8763505ce8e6cbdd2cd28fab3fd407a75003e7d0dc04e6bebb0a3c89e7cb01410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000
0200000001f77bd0a57e5b5e041e95567e0f01c3789af7f624ff490f756fb408362489276c0000000000ffffffff01a0860100000000001976a914834584e0afbd77db57fcf4a3a076b8d3e02aa6fb88ac00000000

Loading…
Cancel
Save