Merge branch 'DeathRay1977-master' into master-rc4

This commit is contained in:
Evan Duffield 2014-07-20 10:06:40 -07:00
commit 75ca973477
13 changed files with 230 additions and 162 deletions

View File

@ -7,7 +7,7 @@ use the Boost::Test unit-testing framework.
To compile and run the tests:
cd src
make -f makefile.unix test_darkcoin # Replace makefile.unix if you're not on unix
make -f makefile.unix test_darkcoin UNIT_TEST=1 # Replace makefile.unix if you're not on unix
./test_darkcoin # Runs the unit tests
If all tests succeed the last line of output will be:

View File

@ -19,7 +19,11 @@ using namespace std;
map<uint256, CAlert> mapAlerts;
CCriticalSection cs_mapAlerts;
#ifdef UNIT_TEST
static const char* pszMainKey = "043bcb5ad652b5680fadc0002a17c64542d2aff59c605d820960ab568af2c9ac7e3f130f7e4b638cfdc9069282f5500d67ee3f2803d6f0d6be44d387ac7ac286e4";
#else
static const char* pszMainKey = "048240a8748a80a286b270ba126705ced4f2ce5a7847b3610ea3c06513150dade2a8512ed5ea86320824683fc0818f0ac019214973e677acd1244f6d0571fc5103";
#endif
static const char* pszTestKey = "04517d8a699cb43d3938d7b24faaff7cda448ca4ea267723ba614784de661949bf632d6304316b244646dea079735b9a6fc4af804efb4752075b9fe2245e14e412";
void CUnsignedAlert::SetNull()

View File

@ -37,6 +37,9 @@ xCXXFLAGS=-O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter
xLDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -static-libgcc -static-libstdc++ $(LDFLAGS)
TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifdef UNIT_TEST
DEFS+=-DUNIT_TEST=1
endif
ifndef USE_UPNP
override USE_UPNP = -

View File

@ -50,6 +50,9 @@ CFLAGS=-mthreads -O2 -w -Wall -Wextra -Wformat -Wformat-security -Wno-unused-par
LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-aware
TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifdef UNIT_TEST
DEFS+=-DUNIT_TEST=1
endif
ifndef USE_UPNP
override USE_UPNP = -

View File

@ -25,6 +25,9 @@ USE_IPV6:=1
LIBS= -dead_strip
TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifdef UNIT_TEST
DEFS+=-DUNIT_TEST=1
endif
ifdef STATIC
# Build STATIC if you are redistributing the bitcoinf

View File

@ -19,6 +19,9 @@ DEFS += $(addprefix -I,$(CURDIR) $(CURDIR)/obj $(BOOST_INCLUDE_PATH) $(BDB_INCLU
LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data)
ifdef UNIT_TEST
DEFS+=-DUNIT_TEST=1
endif
LMODE = dynamic
LMODE2 = dynamic

View File

@ -10,26 +10,25 @@
using namespace std;
/*BOOST_AUTO_TEST_SUITE(Checkpoints_tests)
BOOST_AUTO_TEST_SUITE(Checkpoints_tests)
BOOST_AUTO_TEST_CASE(sanity)
{
uint256 p1500 = uint256("0x841a2965955dd288cfa707a755d05a54e45f8bd476835ec9af4402a2b59a2967");
uint256 p120000 = uint256("0xbd9d26924f05f6daa7f0155f32828ec89e8e29cee9e7121b026a7a3552ac6131");
uint256 p1500 = uint256("0x000000aaf0300f59f49bc3e970bad15c11f961fe2347accffff19d96ec9778e3");
uint256 p88805 = uint256("0x00000000001392f1652e9bf45cd8bc79dc60fe935277cd11538565b4a94fa85f");
BOOST_CHECK(Checkpoints::CheckBlock(1500, p1500));
BOOST_CHECK(Checkpoints::CheckBlock(120000, p120000));
BOOST_CHECK(Checkpoints::CheckBlock(88805, p88805));
// Wrong hashes at checkpoints should fail:
BOOST_CHECK(!Checkpoints::CheckBlock(1500, p120000));
BOOST_CHECK(!Checkpoints::CheckBlock(120000, p1500));
BOOST_CHECK(!Checkpoints::CheckBlock(1500, p88805));
BOOST_CHECK(!Checkpoints::CheckBlock(88805, p1500));
// ... but any hash not at a checkpoint should succeed:
BOOST_CHECK(Checkpoints::CheckBlock(1500+1, p120000));
BOOST_CHECK(Checkpoints::CheckBlock(120000+1, p1500));
BOOST_CHECK(Checkpoints::CheckBlock(1500+1, p88805));
BOOST_CHECK(Checkpoints::CheckBlock(88805+1, p1500));
BOOST_CHECK(Checkpoints::GetTotalBlocksEstimate() >= 120000);
}
BOOST_CHECK(Checkpoints::GetTotalBlocksEstimate() >= 88805);
}
BOOST_AUTO_TEST_SUITE_END()
*/

View File

@ -5,99 +5,157 @@
#include <boost/foreach.hpp>
#include <boost/test/unit_test.hpp>
#include <fstream>
#include <iostream>
#include <stdio.h>
#include "alert.h"
#include "base58.h"
#include "key.h"
#include "serialize.h"
#include "util.h"
#if 0
//
// alertTests contains 7 alerts, generated with this code:
// (SignAndSave code not shown, alert signing key is secret)
//
using namespace std;
namespace fs = boost::filesystem;
bool SignAndSave(CAlert &alert, std::vector<CAlert> &alerts)
{
CAlert alert;
alert.nRelayUntil = 60;
alert.nExpiration = 24 * 60 * 60;
alert.nID = 1;
alert.nCancel = 0; // cancels previous messages up to this ID number
alert.nMinVer = 0; // These versions are protocol versions
alert.nMaxVer = 70001;
alert.nPriority = 1;
alert.strComment = "Alert comment";
alert.strStatusBar = "Alert 1";
CDataStream ds(SER_DISK, PROTOCOL_VERSION);
ds << alert.nVersion
<< alert.nRelayUntil
<< alert.nExpiration
<< alert.nID
<< alert.nCancel
<< alert.setCancel
<< alert.nMinVer
<< alert.nMaxVer
<< alert.setSubVer
<< alert.nPriority
<< alert.strComment
<< alert.strStatusBar
<< alert.strReserved;
SignAndSave(alert, "test/alertTests");
alert.setSubVer.insert(std::string("/Satoshi:0.1.0/"));
alert.strStatusBar = "Alert 1 for Satoshi 0.1.0";
SignAndSave(alert, "test/alertTests");
alert.setSubVer.insert(std::string("/Satoshi:0.2.0/"));
alert.strStatusBar = "Alert 1 for Satoshi 0.1.0, 0.2.0";
SignAndSave(alert, "test/alertTests");
alert.setSubVer.clear();
++alert.nID;
alert.nCancel = 1;
alert.nPriority = 100;
alert.strStatusBar = "Alert 2, cancels 1";
SignAndSave(alert, "test/alertTests");
alert.nExpiration += 60;
++alert.nID;
SignAndSave(alert, "test/alertTests");
++alert.nID;
alert.nMinVer = 11;
alert.nMaxVer = 22;
SignAndSave(alert, "test/alertTests");
++alert.nID;
alert.strStatusBar = "Alert 2 for Satoshi 0.1.0";
alert.setSubVer.insert(std::string("/Satoshi:0.1.0/"));
SignAndSave(alert, "test/alertTests");
++alert.nID;
alert.nMinVer = 0;
alert.nMaxVer = 999999;
alert.strStatusBar = "Evil Alert'; /bin/ls; echo '";
alert.setSubVer.clear();
SignAndSave(alert, "test/alertTests");
}
#endif
struct ReadAlerts
{
ReadAlerts()
alert.vchMsg.assign(ds.begin(),ds.end());
uint256 hash = alert.GetHash();
std::vector<unsigned char> sig;
CBitcoinSecret secret;
if (!secret.SetString("7rDMuTnMxWdqRsvk5fYfwkaZoguWJMoDucyZvKmURVukdAkGiVb"))
{
cout << "Error Setting Private Key" << endl;
return false;
}
CKey key = secret.GetKey();
if (!key.Sign(hash, sig))
{
cout << "Could Not Sign Message" << endl;
return false;
}
alert.vchSig = sig;
try
{
alerts.push_back(alert);
}
catch (std::exception &e)
{
cout << "Exception caught " << e.what() << endl;
}
return true;
}
struct SetUpAlerts
{
SetUpAlerts()
{
CAlert alert;
alert.nRelayUntil = 60;
alert.nExpiration = 24 * 60 * 60;
alert.nID = 1;
alert.nCancel = 0; // cancels previous messages up to this ID number
alert.nMinVer = 0; // These versions are protocol versions
alert.nMaxVer = 70001;
alert.nPriority = 1;
alert.strComment = "Alert comment";
alert.strStatusBar = "Alert 1";
if (!SignAndSave(alert, alerts))
{
return;
}
CAlert alert2(alert);
alert2.setSubVer.insert(std::string("/Satoshi:0.1.0/"));
alert2.strStatusBar = "Alert 1 for Satoshi 0.1.0";
if (!SignAndSave(alert2, alerts))
{
return;
}
CAlert alert3(alert2);
alert3.setSubVer.insert(std::string("/Satoshi:0.2.0/"));
alert3.strStatusBar = "Alert 1 for Satoshi 0.1.0, 0.2.0";
if (!SignAndSave(alert3, alerts))
{
return;
}
CAlert alert4(alert3);
alert4.setSubVer.clear();
++alert4.nID;
alert4.nCancel = 1;
alert4.nPriority = 100;
alert4.strStatusBar = "Alert 2, cancels 1";
if (!SignAndSave(alert4, alerts))
{
return;
}
CAlert alert5(alert4);
alert5.nExpiration += 60;
++alert5.nID;
if (!SignAndSave(alert5, alerts))
{
return;
}
CAlert alert6(alert5);
++alert6.nID;
alert6.nMinVer = 11;
alert6.nMaxVer = 22;
if (!SignAndSave(alert6, alerts))
{
return;
}
CAlert alert7(alert6);
++alert7.nID;
alert7.strStatusBar = "Alert 2 for Satoshi 0.1.0";
alert7.setSubVer.insert(std::string("/Satoshi:0.1.0/"));
if (!SignAndSave(alert7, alerts))
{
return;
}
CAlert alert8(alert7);
++alert8.nID;
alert8.nMinVer = 0;
alert8.nMaxVer = 999999;
alert8.strStatusBar = "Evil Alert'; /bin/ls; echo '";
alert8.setSubVer.clear();
if (!SignAndSave(alert8, alerts))
{
return;
}
return;
}
~SetUpAlerts()
{
std::string filename("alertTests");
namespace fs = boost::filesystem;
fs::path testFile = fs::current_path() / "test" / "data" / filename;
#ifdef TEST_DATA_DIR
if (!fs::exists(testFile))
{
testFile = fs::path(BOOST_PP_STRINGIZE(TEST_DATA_DIR)) / filename;
}
#endif
FILE* fp = fopen(testFile.string().c_str(), "rb");
if (!fp) return;
CAutoFile filein = CAutoFile(fp, SER_DISK, CLIENT_VERSION);
if (!filein) return;
try {
while (!feof(filein))
{
CAlert alert;
filein >> alert;
alerts.push_back(alert);
}
}
catch (std::exception) { }
}
~ReadAlerts() { }
static std::vector<std::string> read_lines(boost::filesystem::path filepath)
{
@ -105,7 +163,7 @@ struct ReadAlerts
std::ifstream f(filepath.string().c_str());
std::string line;
while (std::getline(f,line))
while (std::getline(f, line))
result.push_back(line);
return result;
@ -114,8 +172,7 @@ struct ReadAlerts
std::vector<CAlert> alerts;
};
BOOST_FIXTURE_TEST_SUITE(Alert_tests, ReadAlerts)
BOOST_FIXTURE_TEST_SUITE(Alert_tests, SetUpAlerts)
BOOST_AUTO_TEST_CASE(AlertApplies)
{
@ -153,7 +210,6 @@ BOOST_AUTO_TEST_CASE(AlertApplies)
SetMockTime(0);
}
// This uses sh 'echo' to test the -alertnotify function, writing to a
// /tmp file. So skip it on Windows:
#ifndef WIN32
@ -167,17 +223,17 @@ BOOST_AUTO_TEST_CASE(AlertNotify)
mapArgs["-alertnotify"] = std::string("echo %s >> ") + temp.string();
BOOST_FOREACH(CAlert alert, alerts)
alert.ProcessAlert(false);
alert.ProcessAlert(false);
std::vector<std::string> r = read_lines(temp);
//
// Only want to run these tests if the "alertnotify.txt" has been read OK and has at least one record
// in it.
//
if (r.size() > 0 )
if (r.size() > 0)
{
BOOST_CHECK_EQUAL(r.size(), 1u);
BOOST_CHECK_EQUAL(r[0], "Evil Alert; /bin/ls; echo "); // single-quotes should be removed
BOOST_CHECK_EQUAL(r.size(), 1u);
BOOST_CHECK_EQUAL(r[0], "Evil Alert; /bin/ls; echo "); // single-quotes should be removed
}
boost::filesystem::remove(temp);

View File

@ -6,7 +6,7 @@
#include "base58.h"
#include "util.h"
/*using namespace json_spirit;
using namespace json_spirit;
extern Array read_json(const std::string& filename);
BOOST_AUTO_TEST_SUITE(base58_tests)
@ -259,4 +259,3 @@ BOOST_AUTO_TEST_CASE(base58_keys_invalid)
BOOST_AUTO_TEST_SUITE_END()
*/

View File

@ -10,7 +10,7 @@
using namespace std;
using namespace boost::tuples;
/*BOOST_AUTO_TEST_SUITE(bloom_tests)
BOOST_AUTO_TEST_SUITE(bloom_tests)
BOOST_AUTO_TEST_CASE(bloom_create_insert_serialize)
{
@ -69,7 +69,7 @@ BOOST_AUTO_TEST_CASE(bloom_create_insert_serialize_with_tweak)
BOOST_AUTO_TEST_CASE(bloom_create_insert_key)
{
string strSecret = string("6v7hgtX6r7frdh7XDRJ3L4JRLMAn9chCgNgSccwqWdp69XfPdX6");
string strSecret = string("7rBekcWBb6kBahTaUnsZi1PGmz7uRhNnPjURTPoi5LjUreTuie5");
CBitcoinSecret vchSecret;
BOOST_CHECK(vchSecret.SetString(strSecret));
@ -85,7 +85,7 @@ BOOST_AUTO_TEST_CASE(bloom_create_insert_key)
CDataStream stream(SER_NETWORK, PROTOCOL_VERSION);
filter.Serialize(stream, SER_NETWORK, PROTOCOL_VERSION);
vector<unsigned char> vch = ParseHex("0322ed23080000000000000001");
vector<unsigned char> vch = ParseHex("030a3cd2080000000000000001");
vector<char> expected(vch.size());
for (unsigned int i = 0; i < vch.size(); i++)
@ -444,4 +444,3 @@ BOOST_AUTO_TEST_CASE(merkle_block_4_test_update_none)
}
BOOST_AUTO_TEST_SUITE_END()
*/

Binary file not shown.

View File

@ -1,7 +1,7 @@
[
[
"Lf8Th7S4LDxFUZegQgn5z5se7BahrJ9DeV",
"da589613a4c031bafa9fa5490fdaea491e81e687",
"XeE3CtVQHV7BoSp3ZAYFiELn66o3btEDUy",
"26cec4110b090e2f0a16a7a401660d3c775faad6",
{
"addrType": "pubkey",
"isPrivkey": false,
@ -36,8 +36,8 @@
}
],
[
"6uoCwsNo3oV9rsYwHY7TeGtZpwLbWJyVcKCAQyz91Ah4XbZYxw3",
"58fb1bfc04bd9293a916d0688cba48ac143921a400e2086f43e16a02e572f2de",
"7r8PH9W3f8h3b5u5uPXi7zk2nsJbhKJR48nSZCYuzYVUZkz44Yq",
"4c1dca295faf461cebd294870e4b6c62910016c517d4850778c7eae890dfa6a9",
{
"isCompressed": false,
"isPrivkey": true,
@ -45,8 +45,8 @@
}
],
[
"T9wxCLuZLZ2uSs44HUzGW5ZC2hNtnZqsbZGKtWC1MhJjHbRNCVYP",
"cdc32fb8fab8b80ecf7e7501d93173f4c10bc45bd42c030ceaa7d947090bb441",
"XDH2VfG4T6FGFUTcK1Qfy5DfDJFymdjQVaMnkJvxyKuC8tEPqPo3",
"3b5cf3a8b2fe75de29635904b941572a4cc1d176bcd8a258c07acf2c198ab3c3",
{
"isCompressed": true,
"isPrivkey": true,
@ -72,8 +72,8 @@
}
],
[
"LP7Ls95NmnuWi5o9bKZrezLiyCPy1B5P1q",
"2aa075715a16b3f8fe726ae9c5c4aa044bbca054",
"XcdftPJ5mmJcdErhxWz5zpxaj4h3zudfmM",
"1556b380420e9c01e2fe3292fee91575f410e5bc",
{
"addrType": "pubkey",
"isPrivkey": false,
@ -108,8 +108,8 @@
}
],
[
"6vs3xk3YxdBcHAA12Y63qwALButouE5SBzZUnBzCq5N8wvMjnZ9",
"e5686121b71c57364887d32d7b90885af98ebd96972bd1c00a6bd2a8f1f35b45",
"7rdxt8URGT7F3SzRkX8p82qYiXGGPrawLAfGBbY1foxVVxkaVGt",
"8f47a99a637f77344819eaf3a8c218aab7805b9747b21d4de0fed2c4ee612332",
{
"isCompressed": false,
"isPrivkey": true,
@ -117,8 +117,8 @@
}
],
[
"T4rLdfaJrCLN3uemQQoi1nAhXSAFwepDX4Ahjw8EjVP27Avmjzo4",
"35b0165377348a7ba55184f5a30834e7b5ba20dcb3ed4c7bb330e1dc631b050f",
"XKLwepHXAP8g8h3yr9SVnbmMnCsV8mjABG8uaJrNBnV7h2CjM8Sj",
"f066fb8fc19b887841e3a100303b871a22a185545008bfc6170788deb4c4978a",
{
"isCompressed": true,
"isPrivkey": true,
@ -144,8 +144,8 @@
}
],
[
"LdaHb6WXgyf38F96JweN9XNWKJS91iCLNF",
"c94ab72be12aa1a05f1af875f7250333e5d27aa2",
"XoCWrh9XbkyLJ8GGXuDK45j36FUtftWzWA",
"893e260917577a6f45144a88a3b958fb1f696c2d",
{
"addrType": "pubkey",
"isPrivkey": false,
@ -180,8 +180,8 @@
}
],
[
"6uQT9bdxJhE83M8RjCQfo7U9oaAo5ncAP5skuzemx5DeuA6hB9o",
"2550053cc3dfc32104fd3d0b1bce0e6f6e65a0564d36018f1544d9aa4764ad39",
"7qdGzxb8BSChsdztx8jjBTnJM8MsyaG8dTbxBaa9JQwP2rfTJcQ",
"0a05c28b0d73d75f4674e582e07adde4c2ce0060f2a93a253cddb9b31cb0123a",
{
"isCompressed": false,
"isPrivkey": true,
@ -189,8 +189,8 @@
}
],
[
"T4cpoFeaPJhTCTdLfmbNmA2f2PyjJgpCWU2pcdzBwExj5F9panJ4",
"2ebc4b6d730064cf6023b006f2b4aff89a53ac04740f21d84efa6ef33d8855cd",
"XGh2Y5Zh9rmFTWwvCxuGqsuRWAJViBwty9HyZsnGNmFMTGBf4Lao",
"a138df9502fe7fb872ace38b4be6578b06451cf4a0770b0b5d8a1b0a0e83b94f",
{
"isCompressed": true,
"isPrivkey": true,
@ -216,8 +216,8 @@
}
],
[
"LX5YLxmAJ3YKHaRc2eR2A2s1cnw6fPA4SE",
"820a3743686bf0fd46005de06cfd382bbcbd70c5",
"Xv3MqkqScoAdRVnL3q6EcxLKi22Th1u4rT",
"d44bc254e2438fa1fdb158615053787d4a6dd00c",
{
"addrType": "pubkey",
"isPrivkey": false,
@ -252,8 +252,8 @@
}
],
[
"6usgadpSJcXjfNFqn2Cz1kgKEWYhtzANKvhBs5pAKpsoCCRRv6H",
"63252cd47897bd0380152475453e275cf504226ee82253bbc980a926b2a71689",
"7sNfR1sm45BFHiSWneetzReExhJQAQi3BFDALVioUmNC5FJHSHx",
"f03b9cf3325899c60ed5deeb461070d72da8b1ecdce897149d0130ec37684cb1",
{
"isCompressed": false,
"isPrivkey": true,
@ -261,8 +261,8 @@
}
],
[
"T8wbMCiccPDTa3hUFT23LUXeWU1AiNpVy8MgsQMFAbPjDjpWPVod",
"afbd7a0468460c25eef3576503578ce5ff985a598e30960018ad559282b3ef3c",
"XDqucwPdppRTJCqFM84b11NGBauXqUsmMssasXT5Z8Xx62GNGVpf",
"4c47504237fe12b251342a3da22931db0ff2009af44f0a13704d317931e05914",
{
"isCompressed": true,
"isPrivkey": true,
@ -288,8 +288,8 @@
}
],
[
"LZa2tVcdFafKLMVeEKijaJ45jvruvZSRFK",
"9d5df1006a8a175f342dd0610337331fceb45830",
"Xrm8tstPDpBqDpMsHBMNYwtcrCE9QiiEoD",
"b051eb607c19b9c0a1a895dbe46ad7e740a6472e",
{
"addrType": "pubkey",
"isPrivkey": false,
@ -324,8 +324,8 @@
}
],
[
"6vUB9QijBguaXPMoLXK5ZwLJCZTjKKAeQxgWfZLfJvForhka5D8",
"b176f3e34ff474dea2fb3cafb19be519e6e8f34fd39166f5d5ce657154eb05d6",
"7rviGWWwQuiAqK74gabdY3h5WZavs5SxLcGN6MfMoUMprCa8Cvy",
"b54ef27b02bbdf96fe19a640b1e1296ee581c7cd1092659cfe4a18f3dd5f954a",
{
"isCompressed": false,
"isPrivkey": true,
@ -333,8 +333,8 @@
}
],
[
"T5MCn7wUVMmffkTpoRNdW1MhWaRoSgNESC5tzeTSHie92tMBxjEZ",
"448970a2a25f412fd9fc48d9df5dee7a01ad039b824efc28663f31728b92cce2",
"XGgHcNuRiBDBnyoyr5nvbS5yhEM4s75Pq3sPREsxAnd2xGGw95U2",
"a0d767a7ec9b46fbf3460f698affa22eb6e4e174467950ae352b487280ba10e8",
{
"isCompressed": true,
"isPrivkey": true,
@ -360,8 +360,8 @@
}
],
[
"LPJfbhKmpiDNczUF1xwL8mBpwjg22kCRiw",
"2cc4ac26bb08dfad7a40aa48b88046cfd2c930fd",
"XtBZJ3F8tjb36Hxg4N2XG3dBuS6BEfYStN",
"bfe865562306cfeca7c4a1835e4ae56adda5779c",
{
"addrType": "pubkey",
"isPrivkey": false,
@ -396,8 +396,8 @@
}
],
[
"6vM32FdMdhMF7qS9TLDH2sTLC6wALamAk9ebRFESaUpq9yf2mbE",
"a1409598b6d7490548b3d5f3255b2c6adf487d82306a920d41362b98350b18a1",
"7qugvZ1dYDnMAmob8z4HRnYsECGazMjw7pn9rKHnN8hti8sV7XS",
"2f49ff39105bc7cbdb3e6371f6f1048f94312cf760f1fcd593a1c6ff4e0eaef3",
{
"isCompressed": false,
"isPrivkey": true,
@ -405,8 +405,8 @@
}
],
[
"TA8YZ69RUn4NjmCJ9gaoDmxesD9bb9xzkXKHDcymJApWVKTPbYTm",
"d3362922cebe534a1cef42928fc7208c9cfa1c4413422b2af741110fe5b0c8de",
"XFnMHmeccyAyV5ZMXagUTxUvkNnm5XtYFHYny5SCg3zK47ESLk1f",
"861f8fdd0941fbb23c87cda9dce2219628048b28751062b329046f67b1771733",
{
"isCompressed": true,
"isPrivkey": true,
@ -432,8 +432,8 @@
}
],
[
"LWzPZSe3opyEdEmRAiULVLR3zBZS3oY9Wu",
"8110cd88bfb26bfb08e0878ddb34af03fc03c8b7",
"XmKxfSvJF3L4VPzaTD9koUEzZmxDbd18zM",
"74b659c1038b31736523fcf2d56a354db9cc9e1fw",
{
"addrType": "pubkey",
"isPrivkey": false,

View File

@ -10,14 +10,14 @@
using namespace std;
/*static const string strSecret1 ("6uu5bsZLA2Lm6yCxgwxDxHyZmhYeqBMLQT83Fyq738YhYucQPQf");
static const string strSecret2 ("6vZDRwYgTNidWzmKs9x8QzQGeWCqbdUtNRpEKZMaP67ZSn8XMjb");
static const string strSecret1C ("T6UsJv9hYpvDfM5noKYkB3vfeHxhyegkeWJ4y7qKeQJuyXMK11XX");
static const string strSecret2C ("T9PBs5kq9QrkBPxeGNWKitMi4XuFVr25jaXTnuopLVZxCUAJbixA");
static const CBitcoinAddress addr1 ("LWaFezDtucfCA4xcVEfs3R3xfgGWjSwcZr");
static const CBitcoinAddress addr2 ("LXwHM6mRd432EzLJYwuKQMPhTzrgr7ur9K");
static const CBitcoinAddress addr1C("LZWK8h7C166niP6GmpUmiGrvn4oxPqQgFV");
static const CBitcoinAddress addr2C("Lgb6tdqmdW3n5E12johSuEAqRMt4kAr7yu");
static const string strSecret1 ("7qjmhxk9D41VG4izTKS4MwNQ5cdYsHMCujtZmtnYcBZV5MyymW6");
static const string strSecret2 ("7qtc7ho6k4y6gYxXYZZA9RMM8ecJxDrVXE4ecs5jPEvWz2Cd6ug");
static const string strSecret1C ("XJopfZ4NEgzmU8WFaq8gSkcB2oDYCvZa2Dbn88PpGHX3xWTvxbDw");
static const string strSecret2C ("XGwcaG95SeuQ9xUxyMPNk77UTd5U3EW4gYfXa9xU8oFzEfnKJQgr");
static const CBitcoinAddress addr1 ("XtgBkqNm1KdNqwtPXgcrx3XtTETsPJ3imW");
static const CBitcoinAddress addr2 ("XvSYzd8yGM4yBwcdWqF3wJtQ9543G2zUNh");
static const CBitcoinAddress addr1C("Xv2y1Z6MH3oPWLQpowdJSAT56eSjpEaRBb");
static const CBitcoinAddress addr2C("Xo5kbBBVQ52ZLfarQYFpG8Mt5XQ4phJBa6");
static const string strAddressBad("LRjyUS2uuieEPkhZNdQz8hE5YycxVEqSXA");
@ -97,21 +97,21 @@ BOOST_AUTO_TEST_CASE(key_test1)
BOOST_CHECK( pubkey1.Verify(hashMsg, sign1));
BOOST_CHECK(!pubkey1.Verify(hashMsg, sign2));
BOOST_CHECK( pubkey1.Verify(hashMsg, sign1C));
BOOST_CHECK(!pubkey1.Verify(hashMsg, sign1C));
BOOST_CHECK(!pubkey1.Verify(hashMsg, sign2C));
BOOST_CHECK(!pubkey2.Verify(hashMsg, sign1));
BOOST_CHECK( pubkey2.Verify(hashMsg, sign2));
BOOST_CHECK(!pubkey2.Verify(hashMsg, sign1C));
BOOST_CHECK( pubkey2.Verify(hashMsg, sign2C));
BOOST_CHECK(!pubkey2.Verify(hashMsg, sign2C));
BOOST_CHECK( pubkey1C.Verify(hashMsg, sign1));
BOOST_CHECK(!pubkey1C.Verify(hashMsg, sign1));
BOOST_CHECK(!pubkey1C.Verify(hashMsg, sign2));
BOOST_CHECK( pubkey1C.Verify(hashMsg, sign1C));
BOOST_CHECK(!pubkey1C.Verify(hashMsg, sign2C));
BOOST_CHECK(!pubkey2C.Verify(hashMsg, sign1));
BOOST_CHECK( pubkey2C.Verify(hashMsg, sign2));
BOOST_CHECK(!pubkey2C.Verify(hashMsg, sign2));
BOOST_CHECK(!pubkey2C.Verify(hashMsg, sign1C));
BOOST_CHECK( pubkey2C.Verify(hashMsg, sign2C));
@ -139,4 +139,3 @@ BOOST_AUTO_TEST_CASE(key_test1)
}
BOOST_AUTO_TEST_SUITE_END()
*/