|
|
@ -110,11 +110,11 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) |
|
|
|
* setaccount |
|
|
|
*********************************/ |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("setaccount " + setaccountDemoAddress.ToString() + " nullaccount")); |
|
|
|
/* 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ is not owned by the test wallet. */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("setaccount 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ 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); |
|
|
|
/* 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X (33 chars) is an illegal address (should be 34 chars) */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("setaccount 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X nullaccount"), runtime_error); |
|
|
|
/* t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg (34 chars) is an illegal address (should be 35 chars) */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("setaccount t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg nullaccount"), runtime_error); |
|
|
|
|
|
|
|
|
|
|
|
/*********************************
|
|
|
@ -214,15 +214,15 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) |
|
|
|
BOOST_CHECK_NO_THROW(retValue = CallRPC("signmessage " + demoAddress.ToString() + " 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 1QFqqMUD55ZV3PJEJZtaKCsQmjLT6JkjvJ mymessage"), runtime_error); |
|
|
|
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); |
|
|
|
/* Illegal address */ |
|
|
|
BOOST_CHECK_THROW(CallRPC("verifymessage 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X " + retValue.get_str() + " mymessage"), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("verifymessage t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg " + retValue.get_str() + " mymessage"), runtime_error); |
|
|
|
/* wrong address */ |
|
|
|
BOOST_CHECK(CallRPC("verifymessage 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ " + retValue.get_str() + " mymessage").get_bool() == false); |
|
|
|
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); |
|
|
|
/* Correct address, message and signature*/ |
|
|
@ -265,9 +265,9 @@ BOOST_AUTO_TEST_CASE(rpc_wallet_getbalance) |
|
|
|
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_getbalance too many args"), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("z_getbalance invalidaddress"), runtime_error); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("z_getbalance mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG")); |
|
|
|
BOOST_CHECK_THROW(CallRPC("z_getbalance mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG -1"), runtime_error); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("z_getbalance mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG 0")); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("z_getbalance tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab")); |
|
|
|
BOOST_CHECK_THROW(CallRPC("z_getbalance tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab -1"), runtime_error); |
|
|
|
BOOST_CHECK_NO_THROW(CallRPC("z_getbalance tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab 0")); |
|
|
|
BOOST_CHECK_THROW(CallRPC("z_getbalance tnRZ8bPq2pff3xBWhTJhNkVUkm2uhzksDeW5PvEa7aFKGT9Qi3YgTALZfjaY4jU3HLVKBtHdSXxoPoLA3naMPcHBcY88FcF 1"), runtime_error); |
|
|
|
|
|
|
|
|
|
|
@ -278,9 +278,9 @@ BOOST_AUTO_TEST_CASE(rpc_wallet_getbalance) |
|
|
|
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress too many args"), runtime_error); |
|
|
|
// negative minconf not allowed
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG -1"), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab -1"), runtime_error); |
|
|
|
// invalid zaddr, taddr not allowed
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress mhu9XfNv9o9JfTmEoTA6xKJHBfH2BVF8qG 0"), runtime_error); |
|
|
|
BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress tmC6YZnCUhm19dEXxh3Jb7srdBJxDawaCab 0"), runtime_error); |
|
|
|
// don't have the spending key
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_listreceivedbyaddress tnRZ8bPq2pff3xBWhTJhNkVUkm2uhzksDeW5PvEa7aFKGT9Qi3YgTALZfjaY4jU3HLVKBtHdSXxoPoLA3naMPcHBcY88FcF 1"), runtime_error); |
|
|
|
} |
|
|
@ -753,10 +753,10 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) |
|
|
|
|
|
|
|
// bad from address
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_sendmany " |
|
|
|
"INVALIDmwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs []"), runtime_error); |
|
|
|
"INVALIDtmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ []"), runtime_error); |
|
|
|
// empty amounts
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_sendmany " |
|
|
|
"mwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs []"), runtime_error); |
|
|
|
"tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ []"), runtime_error); |
|
|
|
|
|
|
|
// don't have the spending key for this address
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_sendmany " |
|
|
@ -765,9 +765,9 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) |
|
|
|
|
|
|
|
// duplicate address
|
|
|
|
BOOST_CHECK_THROW(CallRPC("z_sendmany " |
|
|
|
"mwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs " |
|
|
|
"[{\"address\":\"mvBkHw3UTeV2ivipmSA6uo8yjN4DqZ5KoG\", \"amount\":50.0}," |
|
|
|
" {\"address\":\"mvBkHw3UTeV2ivipmSA6uo8yjN4DqZ5KoG\", \"amount\":12.0} ]" |
|
|
|
"tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ " |
|
|
|
"[{\"address\":\"tmQP9L3s31cLsghVYf2Jb5MhKj1jRBPoeQn\", \"amount\":50.0}," |
|
|
|
" {\"address\":\"tmQP9L3s31cLsghVYf2Jb5MhKj1jRBPoeQn\", \"amount\":12.0} ]" |
|
|
|
), runtime_error); |
|
|
|
|
|
|
|
// memo bigger than allowed length of ZC_MEMO_SIZE
|
|
|
@ -776,7 +776,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) |
|
|
|
std::string badmemo(v.begin(), v.end()); |
|
|
|
CZCPaymentAddress pa = pwalletMain->GenerateNewZKey(); |
|
|
|
std::string zaddr1 = pa.ToString(); |
|
|
|
BOOST_CHECK_THROW(CallRPC(string("z_sendmany mwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs ") |
|
|
|
BOOST_CHECK_THROW(CallRPC(string("z_sendmany tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ ") |
|
|
|
+ "[{\"address\":\"" + zaddr1 + "\", \"amount\":123.456}]"), runtime_error); |
|
|
|
|
|
|
|
// Test constructor of AsyncRPCOperation_sendmany
|
|
|
@ -793,7 +793,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany("mwehwBzEHJTB5hiyxjmVkuFu9CHD2Cojjs", {}, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany("tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ", {}, {}, 1) ); |
|
|
|
} catch (const Object& objError) { |
|
|
|
BOOST_CHECK( find_error(objError, "No recipients")); |
|
|
|
} |
|
|
@ -938,9 +938,9 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
// add_taddr_outputs_to_tx() will append many vouts to a raw transaction
|
|
|
|
{ |
|
|
|
std::vector<SendManyRecipient> recipients = { |
|
|
|
SendManyRecipient("my53aS89nQ8SgJ8YgJ34cMHTWR33P5RTJ5",CAmount(1.23), ""), |
|
|
|
SendManyRecipient("mzFCFsENQq5VxfCeKwTTb1QPWKYcKXPNvj",CAmount(4.56), ""), |
|
|
|
SendManyRecipient("n4MmVRZdq7EgcJXgcvF5jkZT7wzH2CaWkv",CAmount(7.89), ""), |
|
|
|
SendManyRecipient("tmTGScYwiLMzHe4uGZtBYmuqoW4iEoYNMXt",CAmount(1.23), ""), |
|
|
|
SendManyRecipient("tmUSbHz3vxnwLvRyNDXbwkZxjVyDodMJEhh",CAmount(4.56), ""), |
|
|
|
SendManyRecipient("tmYZAXYPCP56Xa5JQWWPZuK7o7bfUQW6kkd",CAmount(7.89), ""), |
|
|
|
}; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(zaddr1, recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation_sendmany> ptr = std::dynamic_pointer_cast<AsyncRPCOperation_sendmany> (operation); |
|
|
|