|
|
@ -68,18 +68,18 @@ BOOST_AUTO_TEST_CASE(rpc_addmultisig) |
|
|
|
const char address2Hex[] = "0388c2037017c62240b6b72ac1a2a5f94da790596ebd06177c8572752922165cb4"; |
|
|
|
|
|
|
|
UniValue v; |
|
|
|
CBitcoinAddress address; |
|
|
|
CTxDestination address; |
|
|
|
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(1, address1Hex), false)); |
|
|
|
address.SetString(v.get_str()); |
|
|
|
BOOST_CHECK(address.IsValid() && address.IsScript()); |
|
|
|
address = DecodeDestination(v.get_str()); |
|
|
|
BOOST_CHECK(IsValidDestination(address) && boost::get<CScriptID>(&address) != nullptr); |
|
|
|
|
|
|
|
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(1, address1Hex, address2Hex), false)); |
|
|
|
address.SetString(v.get_str()); |
|
|
|
BOOST_CHECK(address.IsValid() && address.IsScript()); |
|
|
|
address = DecodeDestination(v.get_str()); |
|
|
|
BOOST_CHECK(IsValidDestination(address) && boost::get<CScriptID>(&address) != nullptr); |
|
|
|
|
|
|
|
BOOST_CHECK_NO_THROW(v = addmultisig(createArgs(2, address1Hex, address2Hex), false)); |
|
|
|
address.SetString(v.get_str()); |
|
|
|
BOOST_CHECK(address.IsValid() && address.IsScript()); |
|
|
|
address = DecodeDestination(v.get_str()); |
|
|
|
BOOST_CHECK(IsValidDestination(address) && boost::get<CScriptID>(&address) != nullptr); |
|
|
|
|
|
|
|
BOOST_CHECK_THROW(addmultisig(createArgs(0), false), runtime_error); |
|
|
|
BOOST_CHECK_THROW(addmultisig(createArgs(1), false), runtime_error); |
|
|
@ -103,7 +103,7 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) |
|
|
|
LOCK2(cs_main, pwalletMain->cs_wallet); |
|
|
|
|
|
|
|
CPubKey demoPubkey = pwalletMain->GenerateNewKey(); |
|
|
|
CBitcoinAddress demoAddress = CBitcoinAddress(CTxDestination(demoPubkey.GetID())); |
|
|
|
CTxDestination demoAddress(CTxDestination(demoPubkey.GetID())); |
|
|
|
UniValue retValue; |
|
|
|
string strAccount = ""; |
|
|
|
string strPurpose = "receive"; |
|
|
@ -116,14 +116,14 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) |
|
|
|
}); |
|
|
|
|
|
|
|
CPubKey setaccountDemoPubkey = pwalletMain->GenerateNewKey(); |
|
|
|
CBitcoinAddress setaccountDemoAddress = CBitcoinAddress(CTxDestination(setaccountDemoPubkey.GetID())); |
|
|
|
CTxDestination setaccountDemoAddress(CTxDestination(setaccountDemoPubkey.GetID())); |
|
|
|
|
|
|
|
/*********************************
|
|
|
|
* setaccount |
|
|
|
*********************************/ |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("setaccount " + setaccountDemoAddress.ToString() + " \"\"")); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("setaccount " + EncodeDestination(setaccountDemoAddress) + " \"\"")); |
|
|
|
/* Accounts are disabled */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("setaccount " + setaccountDemoAddress.ToString() + " nullaccount"), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("setaccount " + EncodeDestination(setaccountDemoAddress) + " nullaccount"), runtime_error); |
|
|
|
/* t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1GpgV is not owned by the test wallet. */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("setaccount t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1GpgV nullaccount"), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("setaccount"), runtime_error); |
|
|
@ -135,7 +135,7 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) |
|
|
|
* getbalance |
|
|
|
*********************************/ |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("getbalance")); |
|
|
|
BOOST_CHECK_THROW(CallRPC("getbalance " + demoAddress.ToString()), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("getbalance " + EncodeDestination(demoAddress)), runtime_error); |
|
|
|
|
|
|
|
/*********************************
|
|
|
|
* listunspent |
|
|
@ -177,10 +177,10 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) |
|
|
|
* listtransactions |
|
|
|
*********************************/ |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("listtransactions")); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + demoAddress.ToString())); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + demoAddress.ToString() + " 20")); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + demoAddress.ToString() + " 20 0")); |
|
|
|
BOOST_CHECK_THROW(CallRPC("listtransactions " + demoAddress.ToString() + " not_int"), runtime_error); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + EncodeDestination(demoAddress))); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + EncodeDestination(demoAddress) + " 20")); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + EncodeDestination(demoAddress) + " 20 0")); |
|
|
|
BOOST_CHECK_THROW(CallRPC("listtransactions " + EncodeDestination(demoAddress) + " not_int"), runtime_error); |
|
|
|
|
|
|
|
/*********************************
|
|
|
|
* listlockunspent |
|
|
@ -217,33 +217,33 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) |
|
|
|
/* Accounts are deprecated */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("getaccountaddress accountThatDoesntExists"), runtime_error); |
|
|
|
BOOST_CHECK_NO_THROW(retValue = CallRPC("getaccountaddress " + strAccount)); |
|
|
|
BOOST_CHECK(CBitcoinAddress(retValue.get_str()).Get() == demoAddress.Get()); |
|
|
|
BOOST_CHECK(DecodeDestination(retValue.get_str()) == demoAddress); |
|
|
|
|
|
|
|
/*********************************
|
|
|
|
* getaccount |
|
|
|
*********************************/ |
|
|
|
BOOST_CHECK_THROW(CallRPC("getaccount"), runtime_error); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("getaccount " + demoAddress.ToString())); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("getaccount " + EncodeDestination(demoAddress))); |
|
|
|
|
|
|
|
/*********************************
|
|
|
|
* signmessage + verifymessage |
|
|
|
*********************************/ |
|
|
|
BOOST_CHECK_NO_THROW(retValue = CallRPC("signmessage " + demoAddress.ToString() + " mymessage")); |
|
|
|
BOOST_CHECK_NO_THROW(retValue = CallRPC("signmessage " + EncodeDestination(demoAddress) + " mymessage")); |
|
|
|
BOOST_CHECK_THROW(CallRPC("signmessage"), runtime_error); |
|
|
|
/* Should throw error because this address is not loaded in the wallet */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("signmessage t1h8SqgtM3QM5e2M8EzhhT1yL2PXXtA6oqe mymessage"), runtime_error); |
|
|
|
|
|
|
|
/* missing arguments */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("verifymessage " + demoAddress.ToString()), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("verifymessage " + demoAddress.ToString() + " " + retValue.get_str()), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("verifymessage " + EncodeDestination(demoAddress)), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("verifymessage " + EncodeDestination(demoAddress) + " " + retValue.get_str()), runtime_error); |
|
|
|
/* Illegal address */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("verifymessage t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg " + retValue.get_str() + " mymessage"), runtime_error); |
|
|
|
/* wrong address */ |
|
|
|
BOOST_CHECK(CallRPC("verifymessage t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1GpgV " + retValue.get_str() + " mymessage").get_bool() == false); |
|
|
|
/* Correct address and signature but wrong message */ |
|
|
|
BOOST_CHECK(CallRPC("verifymessage " + demoAddress.ToString() + " " + retValue.get_str() + " wrongmessage").get_bool() == false); |
|
|
|
BOOST_CHECK(CallRPC("verifymessage " + EncodeDestination(demoAddress) + " " + retValue.get_str() + " wrongmessage").get_bool() == false); |
|
|
|
/* Correct address, message and signature*/ |
|
|
|
BOOST_CHECK(CallRPC("verifymessage " + demoAddress.ToString() + " " + retValue.get_str() + " mymessage").get_bool() == true); |
|
|
|
BOOST_CHECK(CallRPC("verifymessage " + EncodeDestination(demoAddress) + " " + retValue.get_str() + " mymessage").get_bool() == true); |
|
|
|
|
|
|
|
/*********************************
|
|
|
|
* getaddressesbyaccount |
|
|
@ -254,7 +254,7 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) |
|
|
|
BOOST_CHECK_EQUAL(4, arr.size()); |
|
|
|
bool notFound = true; |
|
|
|
for (auto a : arr.getValues()) { |
|
|
|
notFound &= CBitcoinAddress(a.get_str()).Get() != demoAddress.Get(); |
|
|
|
notFound &= DecodeDestination(a.get_str()) != demoAddress; |
|
|
|
} |
|
|
|
BOOST_CHECK(!notFound); |
|
|
|
|
|
|
|