mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-02-02 18:24:25 +00:00
Litecoin: Fix various tests
This commit is contained in:
parent
d429c192ab
commit
e838c27971
18
.travis.yml
18
.travis.yml
@ -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:
|
||||
- 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:
|
||||
# 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
|
||||
|
@ -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']
|
||||
|
@ -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)
|
||||
//
|
||||
// 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)
|
||||
|
||||
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)
|
||||
|
@ -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=\
|
||||
";
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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:
|
||||
|
@ -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() {
|
||||
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)
|
||||
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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);
|
||||
}
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"Kz6UJmQACJmLtaQj5A3JAge4kVTNQ8gbvXuwbmCj7bsaabudb3RD",
|
||||
"55c9bccb9ed68446d1b75273bbce89d7fe013a8acd1625514420fb2aca1a21c4",
|
||||
"93UCtAocH3kKPwoqEcjNGR1qi9MLkhQio2vMjWCMdEsBNwTKszg",
|
||||
"f8270343a5cc4936c0f304520700b9a9f443dddeb5b2bfa9ef8414d126e9835b",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -58,8 +58,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"9213qJab2HNEpMpYNBa7wHGFKKbkDn24jpANDs2huN3yi4J11ko",
|
||||
"36cb93b9ab1bdabf7fb9f2c04f1b9cc879933530ae7842398eef5a63a56800c2",
|
||||
"cU3MMfRXJpVuVXKdkqn1x8cqEHz4AfyBmVFj7CvBUdApAZYo6Lj8",
|
||||
"c0bbf61af02667b9a7c172c2d4bfa64ac9d4553f7ae19fb295c06e77cc799296",
|
||||
{
|
||||
"isCompressed": false,
|
||||
"isPrivkey": true,
|
||||
@ -67,8 +67,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"9213qJab2HNEpMpYNBa7wHGFKKbkDn24jpANDs2huN3yi4J11ko",
|
||||
"36cb93b9ab1bdabf7fb9f2c04f1b9cc879933530ae7842398eef5a63a56800c2",
|
||||
"LWZR9ybwmT8vSXP6tmrBX4b6nE9o94AjQG",
|
||||
"7c57bc50a38d8377ad55260f29f2c8619846ef08",
|
||||
{
|
||||
"isCompressed": false,
|
||||
"isPrivkey": true,
|
||||
@ -76,8 +76,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"cTpB4YiyKiBcPxnefsDpbnDxFDffjqJob8wGCEDXxgQ7zQoMXJdH",
|
||||
"b9f4892c9e8282028fea1d2667c4dc5213564d41fc5783896a0d843fc15089f3",
|
||||
"32wfwbXojzQN9vYFQGquFTt7sqKnB8Phyz",
|
||||
"0dbdaf6928107d60299f5069367c4cf07fa9b6e5",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -85,8 +85,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"cTpB4YiyKiBcPxnefsDpbnDxFDffjqJob8wGCEDXxgQ7zQoMXJdH",
|
||||
"b9f4892c9e8282028fea1d2667c4dc5213564d41fc5783896a0d843fc15089f3",
|
||||
"mvJg85FLYqN7xAcZeFZRVg7pMbJ53BqKmy",
|
||||
"a237653c5ae7e18e840d6463d380701ce3ba5035",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -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 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"L1RrrnXkcKut5DEMwtDthjwRcTTwED36thyL1DebVrKuwvohjMNi",
|
||||
"7d998b45c219a1e38e99e7cbd312ef67f77a455a9b50c730c27f02c6f730dfb4",
|
||||
"LWkdEB9SHUfuBiTvZofK2LqYE4RTTtUcqi",
|
||||
"7e766382cb564021bcbc273e23569dcaed536ac6",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -144,8 +144,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"93DVKyFYwSN6wEo3E2fCrFPUp17FtrtNi2Lf7n4G3garFb16CRj",
|
||||
"d6bca256b5abc5602ec2e1c121a08b0da2556587430bcf7e1898af2224885203",
|
||||
"32cjrquumLmwSmBrNCbkU5UTUmtgetWqaL",
|
||||
"0a290d74c272ab52dec1a87ce88e75d29c94fe5a",
|
||||
{
|
||||
"isCompressed": false,
|
||||
"isPrivkey": true,
|
||||
@ -153,8 +153,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"cTDVKtMGVYWTHCb1AFjmVbEbWjvKpKqKgMaR3QJxToMSQAhmCeTN",
|
||||
"a81ca4e8f90181ec4b61b6a7eb998af17b2cb04de8a03b504b9e34c4c61db7d9",
|
||||
"mtei3esVvHhww4Rw9FYnMdTUTVvbpWhLfF",
|
||||
"901111ab28cf850a5b6846e94e8c0c4a505603a9",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -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 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"L1axzbSyynNYA8mCAhzxkipKkfHtAXYF4YQnhSKcLV8YXA874fgT",
|
||||
"8248bd0375f2f75d7e274ae544fb920f51784480866b102384190b1addfbaa5c",
|
||||
"LVcGHJcTv1ctR6GLRXxR4SQSsycdmQ6pwZ",
|
||||
"71e9734a1283f2368bbd5a397d3c7a22610b2958",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -212,8 +212,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"927CnUkUbasYtDwYwVn2j8GdTuACNnKkjZ1rpZd2yBB1CLcnXpo",
|
||||
"44c4f6a096eac5238291a94cc24c01e3b19b8d8cef72874a079e00a242237a52",
|
||||
"35CcFdsWEiXv4cuHjR8G54FYvrrDtm4WUm",
|
||||
"268118c8299cd5d8d3b9561caaf8c94d4bd1af44",
|
||||
{
|
||||
"isCompressed": false,
|
||||
"isPrivkey": true,
|
||||
@ -221,8 +221,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"cUcfCMRjiQf85YMzzQEk9d1s5A4K7xL5SmBCLrezqXFuTVefyhY7",
|
||||
"d1de707020a9059d6d3abaf85e17967c6555151143db13dbb06db78df0f15c69",
|
||||
"myWBvpVEeY86YvJLb5kwH2iWbdXPGjTtZk",
|
||||
"c54d3aa920e78e56b72c0076d36e99bc87058397",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -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 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"L2xSYmMeVo3Zek3ZTsv9xUrXVAmrWxJ8Ua4cw8pkfbQhcEFhkXT8",
|
||||
"ab2b4bcdfc91d34dee0ae2a8c6b6668dadaeb3a88b9859743156f462325187af",
|
||||
"LPD8ZwGjE4WmQ1EEnjZHrvofSyvGtbEWsH",
|
||||
"2bb8b0991f396d7f411c2227af00cc09d1ae0adf",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -280,8 +280,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"92xFEve1Z9N8Z641KQQS7ByCSb8kGjsDzw6fAmjHN1LZGKQXyMq",
|
||||
"b4204389cef18bbe2b353623cbf93e8678fbc92a475b664ae98ed594e6cf0856",
|
||||
"35Bjf3NUkU6CNqUFB4HnkaYqN3VPMYwUED",
|
||||
"2656dc6ac50a5bdeb80348b9097af31e74698f44",
|
||||
{
|
||||
"isCompressed": false,
|
||||
"isPrivkey": true,
|
||||
@ -289,8 +289,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"92xFEve1Z9N8Z641KQQS7ByCSb8kGjsDzw6fAmjHN1LZGKQXyMq",
|
||||
"b4204389cef18bbe2b353623cbf93e8678fbc92a475b664ae98ed594e6cf0856",
|
||||
"mhv2Ti1xy9CsWoYgnEjehEunbhFiyFwLAp",
|
||||
"1a4d4bf230aabafd3a425770b8b98700bf06e370",
|
||||
{
|
||||
"isCompressed": false,
|
||||
"isPrivkey": true,
|
||||
@ -298,8 +298,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"cVM65tdYu1YK37tNoAyGoJTR13VBYFva1vg9FLuPAsJijGvG6NEA",
|
||||
"e7b230133f1b5489843260236b06edca25f66adb1be455fbd38d4010d48faeef",
|
||||
"2MwyQVPME89pGMxuX3fRwEgfXtgN1Y1wB7e",
|
||||
"33dabd6dfda94c9c1ef1654a3c3b1e0984a7aecf",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -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 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"L39Fy7AC2Hhj95gh3Yb2AU5YHh1mQSAHgpNixvm27poizcJyLtUi",
|
||||
"b0bbede33ef254e8376aceb1510253fc3550efd0fcf84dcd0c9998b288f166b3",
|
||||
"37h7vEB4v3jpqxKvX1qqJ5xZaqzLj7NPyN",
|
||||
"41d5c23a8188270b32d0afce2e11e4c3028afe6b",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -357,8 +357,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"91cTVUcgydqyZLgaANpf1fvL55FH53QMm4BsnCADVNYuWuqdVys",
|
||||
"037f4192c630f399d9271e26c575269b1d15be553ea1a7217f0cb8513cef41cb",
|
||||
"mhvk8vH4LaAgUBUJsU4UtL4KSWLavssToW",
|
||||
"1a701609b7d938f932d9517f965eb938ec45d067",
|
||||
{
|
||||
"isCompressed": false,
|
||||
"isPrivkey": true,
|
||||
@ -366,8 +366,8 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"cQspfSzsgLeiJGB2u8vrAiWpCU4MxUT6JseWo2SjXy4Qbzn2fwDw",
|
||||
"6251e205e8ad508bab5596bee086ef16cd4b239e0cc0c5d7c4e6035441e7d5de",
|
||||
"2NBbbBFBoKk85mhvTJH4tc11U1zh4oqp7SG",
|
||||
"c94c4561b8ec99cddd540dedc67380c6b859ae00",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
@ -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 @@
|
||||
}
|
||||
],
|
||||
[
|
||||
"KwV9KAfwbwt51veZWNscRTeZs9CKpojyu1MsPnaKTF5kz69H1UN2",
|
||||
"07f0803fc5399e773555ab1e8939907e9badacc17ca129e67a2f5f2ff84351dd",
|
||||
"3B7BZ4asi1qP4jQmo4UjshAp4ZtgmpA7CW",
|
||||
"674b274f2be5747793d2529972d964f1cfe9f985",
|
||||
{
|
||||
"isCompressed": true,
|
||||
"isPrivkey": true,
|
||||
|
@ -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 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 = "1HV9Lc3sNHZxwj4Zk6fB38tEmBryq2cBiF";
|
||||
static const std::string strAddressBad = "Lbi6bpMhSwp2CXkivEeUK9wzyQEFzHDfSr";
|
||||
|
||||
|
||||
BOOST_FIXTURE_TEST_SUITE(key_tests, BasicTestingSetup)
|
||||
|
@ -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; }
|
||||
|
@ -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)
|
||||
// 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());
|
||||
|
@ -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)
|
||||
|
@ -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+"]");
|
||||
|
@ -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>&
|
||||
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);
|
||||
|
@ -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)
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
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)
|
||||
|
||||
// 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
|
||||
|
@ -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'))
|
||||
|
@ -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):
|
||||
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()
|
||||
|
@ -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 #
|
||||
|
@ -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")
|
||||
|
||||
|
@ -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):
|
||||
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
|
||||
|
@ -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 @@
|
||||
"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 @@
|
||||
"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 @@
|
||||
"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 @@
|
||||
"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 @@
|
||||
{ "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)"
|
||||
|
@ -197,7 +197,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "pubkeyhash",
|
||||
"addresses": [
|
||||
"1E7SGgAZFCHDnVZLuRViX3gUmxpMfdvd2o"
|
||||
"LYLPXtUPKrXH3JFW5ZV1o4kEzBBdkaYVpD"
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -210,7 +210,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "pubkeyhash",
|
||||
"addresses": [
|
||||
"1AtWkdmfmYkErU16d3KYykJUbEp9MAj9Sb"
|
||||
"LV7U1r5VrCzJ7GhFoBJrFmNEoTBRUqZvNB"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -206,7 +206,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "pubkeyhash",
|
||||
"addresses": [
|
||||
"1E7SGgAZFCHDnVZLuRViX3gUmxpMfdvd2o"
|
||||
"LYLPXtUPKrXH3JFW5ZV1o4kEzBBdkaYVpD"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -206,7 +206,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "pubkeyhash",
|
||||
"addresses": [
|
||||
"1E7SGgAZFCHDnVZLuRViX3gUmxpMfdvd2o"
|
||||
"LYLPXtUPKrXH3JFW5ZV1o4kEzBBdkaYVpD"
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -219,7 +219,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "pubkeyhash",
|
||||
"addresses": [
|
||||
"1AtWkdmfmYkErU16d3KYykJUbEp9MAj9Sb"
|
||||
"LV7U1r5VrCzJ7GhFoBJrFmNEoTBRUqZvNB"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
02000000031f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff7cca453133921c50d5025878f7f738d1df891fd359763331935784cf6b9c82bf1200000000fffffffffccd319e04a996c96cfc0bf4c07539aa90bd0b1a700ef72fae535d6504f9a6220100000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d717000000001976a914f2d4db28cad6502226ee484ae24505c2885cb12d88ac00000000
|
||||
02000000031e1977dc524bec5929e95d8d0946812944b7b5bda12f5b99fdf557773f2ee65e0100000000ffffffff8a398e44546dce0245452b90130e86832b21fd68f26662bc33aeb7c6c115d23c1900000000ffffffffb807ab93a7fcdff7af6d24581a4a18aa7c1db1ebecba2617a6805b009513940f0c00000000ffffffff020001a04a000000001976a9145688ac6b45bcc02f738e2970d2381d068d68eea788ac27440f00000000001976a9141c2578aa5e5c10ba3b6c3b71a78bff48077d8ba188ac00000000
|
||||
|
@ -1,66 +1,66 @@
|
||||
{
|
||||
"txid": "fe7d174f42dce0cffa7a527e9bc8368956057619ec817648f6138b98f2533e8f",
|
||||
"hash": "fe7d174f42dce0cffa7a527e9bc8368956057619ec817648f6138b98f2533e8f",
|
||||
"txid": "1c50c1770374d7de2f81a87463a5225bb620d25fd467536223a5b715a47c9e32",
|
||||
"hash": "1c50c1770374d7de2f81a87463a5225bb620d25fd467536223a5b715a47c9e32",
|
||||
"version": 2,
|
||||
"size": 201,
|
||||
"vsize": 201,
|
||||
"locktime": 0,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f",
|
||||
"vout": 0,
|
||||
"scriptSig": {
|
||||
"asm": "",
|
||||
"hex": ""
|
||||
},
|
||||
"sequence": 4294967295
|
||||
},
|
||||
{
|
||||
"txid": "bf829c6bcf84579331337659d31f89dfd138f7f7785802d5501c92333145ca7c",
|
||||
"vout": 18,
|
||||
"scriptSig": {
|
||||
"asm": "",
|
||||
"hex": ""
|
||||
},
|
||||
"sequence": 4294967295
|
||||
},
|
||||
{
|
||||
"txid": "22a6f904655d53ae2ff70e701a0bbd90aa3975c0f40bfc6cc996a9049e31cdfc",
|
||||
"txid": "5ee62e3f7757f5fd995b2fa1bdb5b744298146098d5de92959ec4b52dc77191e",
|
||||
"vout": 1,
|
||||
"scriptSig": {
|
||||
"asm": "",
|
||||
"hex": ""
|
||||
},
|
||||
"sequence": 4294967295
|
||||
},
|
||||
{
|
||||
"txid": "3cd215c1c6b7ae33bc6266f268fd212b83860e13902b454502ce6d54448e398a",
|
||||
"vout": 25,
|
||||
"scriptSig": {
|
||||
"asm": "",
|
||||
"hex": ""
|
||||
},
|
||||
"sequence": 4294967295
|
||||
},
|
||||
{
|
||||
"txid": "0f941395005b80a61726baecebb11d7caa184a1a58246daff7dffca793ab07b8",
|
||||
"vout": 12,
|
||||
"scriptSig": {
|
||||
"asm": "",
|
||||
"hex": ""
|
||||
},
|
||||
"sequence": 4294967295
|
||||
}
|
||||
],
|
||||
"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"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000
|
||||
0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000ffffffff02400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000
|
||||
|
@ -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 @@
|
||||
],
|
||||
"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 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"hex": "01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000"
|
||||
"hex": "0100000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000ffffffff02400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac0084d71700000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000
|
||||
0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000ffffffff02400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000
|
||||
|
@ -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 @@
|
||||
],
|
||||
"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 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"hex": "02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000"
|
||||
"hex": "0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000ffffffff02400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac0000000000000000526a4c4f54686973204f505f52455455524e207472616e73616374696f6e206f7574707574207761732063726561746564206279206d6f646966696564206372656174657261777472616e73616374696f6e2e00000000"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
02000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000
|
||||
0200000001efc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000fdffffff01400d0300000000001976a914feda50542e61108cf53b93dbffa0959f91ccb32588ac00000000
|
||||
|
@ -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 @@
|
||||
],
|
||||
"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"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff1f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000
|
||||
01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffffefc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"txid": "c4dea671b0d7b48f8ab10bc46650e8329d3c5766931f548f513847a19f5ba75b",
|
||||
"hash": "c4dea671b0d7b48f8ab10bc46650e8329d3c5766931f548f513847a19f5ba75b",
|
||||
"txid": "e53e05d5591c15d8bea55d5649d5944bc9a75c2f61b42fa52cef36910d2a7653",
|
||||
"hash": "e53e05d5591c15d8bea55d5649d5944bc9a75c2f61b42fa52cef36910d2a7653",
|
||||
"version": 1,
|
||||
"size": 126,
|
||||
"vsize": 126,
|
||||
@ -16,7 +16,7 @@
|
||||
"sequence": 4294967293
|
||||
},
|
||||
{
|
||||
"txid": "5897de6bd6027a475eadd57019d4e6872c396d0716c4875a5f1a6fcfdf385c1f",
|
||||
"txid": "69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef",
|
||||
"vout": 0,
|
||||
"scriptSig": {
|
||||
"asm": "",
|
||||
@ -35,10 +35,10 @@
|
||||
"reqSigs": 1,
|
||||
"type": "pubkeyhash",
|
||||
"addresses": [
|
||||
"13tuJJDR2RgArmgfv6JScSdreahzgc4T6o"
|
||||
"LN7rZWXF75vE7aNq6EHjtThcro5GpGmjYy"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"hex": "01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff1f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000"
|
||||
"hex": "01000000021f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffffefc59c584fb0be1066baf08b93f8baf0d9b9beaafcdd318a59cda6302dc1e9690000000000010000000180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000"
|
||||
}
|
||||
|
@ -17,9 +17,9 @@
|
||||
"reqSigs": 2,
|
||||
"type": "multisig",
|
||||
"addresses": [
|
||||
"1FoG2386FG2tAJS9acMuiDsKy67aGg9MKz",
|
||||
"1FXtz9KU8JNmQDyHdiEm5HDiALuP3zdHvV",
|
||||
"14LuavcBbXZYJ6Tsz3cAUQj9SuQoL2xCQX"
|
||||
"La2DHFRvKvGwR78JkkMCzEw6BJUrSQa72A",
|
||||
"LZkrFMdJCxcpf2fSorE4MJHUNZGfAnD7gf",
|
||||
"LNZrr8v1gBobYuA3ABbTkRnuf7n5RRo5Cz"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "scripthash",
|
||||
"addresses": [
|
||||
"34HNh57oBCRKkxNyjTuWAJkTbuGh6jg2Ms"
|
||||
"MAVWzxXm8KGkZTesqLtqywzrvbs96FEoKy"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "scripthash",
|
||||
"addresses": [
|
||||
"3BoFUz1StqcNcgUTZE5cC1eFhuYFzj3fGH"
|
||||
"MJ1PnsRQqxToRBkMf74x1etf2c8i2imj3Y"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "pubkey",
|
||||
"addresses": [
|
||||
"1FoG2386FG2tAJS9acMuiDsKy67aGg9MKz"
|
||||
"La2DHFRvKvGwR78JkkMCzEw6BJUrSQa72A"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "scripthash",
|
||||
"addresses": [
|
||||
"3GnzN8FqgvYGYdhj8NW6UNxxVv3Uj1ApQn"
|
||||
"MP18g1foe3PhM8ydEFVSJ2DMpcdvhLebXR"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "scripthash",
|
||||
"addresses": [
|
||||
"3C5QarEGh9feKbDJ3QbMf2YNjnMoiPDhNp"
|
||||
"MJHYtjeEeGX586VC9HahUfnn4UxFmqozk8"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
"reqSigs": 1,
|
||||
"type": "scripthash",
|
||||
"addresses": [
|
||||
"3BNQbeFeJJGMAyDxPwWPuqxPMrjsFLjk3f"
|
||||
"MHaYuXfcFR7myUVrVpVjjVCngZLKDuRbn3"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
01000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d000000008b48304502210096a75056c9e2cc62b7214777b3d2a592cfda7092520126d4ebfcd6d590c99bd8022051bb746359cf98c0603f3004477eac68701132380db8facba19c89dc5ab5c5e201410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000
|
||||
0100000001f77bd0a57e5b5e041e95567e0f01c3789af7f624ff490f756fb408362489276c0000000000ffffffff01a0860100000000001976a914834584e0afbd77db57fcf4a3a076b8d3e02aa6fb88ac00000000
|
||||
|
@ -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 @@
|
||||
"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"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
02000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d000000008a473044022079c7aa014177a2e973caf6df7c7b8f15399083b91eba370ea1e19c4caed9181e02205f8f8763505ce8e6cbdd2cd28fab3fd407a75003e7d0dc04e6bebb0a3c89e7cb01410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000
|
||||
0200000001f77bd0a57e5b5e041e95567e0f01c3789af7f624ff490f756fb408362489276c0000000000ffffffff01a0860100000000001976a914834584e0afbd77db57fcf4a3a076b8d3e02aa6fb88ac00000000
|
||||
|
Loading…
x
Reference in New Issue
Block a user