|
|
@ -970,26 +970,26 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) |
|
|
|
|
|
|
|
// Test constructor of AsyncRPCOperation_sendmany
|
|
|
|
try { |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation(new AsyncRPCOperation_sendmany(mtx, "",{}, {}, -1)); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation(new AsyncRPCOperation_sendmany(boost::none, mtx, "",{}, {}, -1)); |
|
|
|
} catch (const UniValue& objError) { |
|
|
|
BOOST_CHECK( find_error(objError, "Minconf cannot be negative")); |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation(new AsyncRPCOperation_sendmany(mtx, "",{}, {}, 1)); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation(new AsyncRPCOperation_sendmany(boost::none, mtx, "",{}, {}, 1)); |
|
|
|
} catch (const UniValue& objError) { |
|
|
|
BOOST_CHECK( find_error(objError, "From address parameter missing")); |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, "tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ", {}, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, "tmRr6yJonqGK23UVhrKuyvTpF8qxQQjKigJ", {}, {}, 1) ); |
|
|
|
} catch (const UniValue& objError) { |
|
|
|
BOOST_CHECK( find_error(objError, "No recipients")); |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient("dummy",1.0, "") }; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, "INVALID", recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, "INVALID", recipients, {}, 1) ); |
|
|
|
} catch (const UniValue& objError) { |
|
|
|
BOOST_CHECK( find_error(objError, "Invalid from address")); |
|
|
|
} |
|
|
@ -997,7 +997,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) |
|
|
|
// Testnet payment addresses begin with 'zt'. This test detects an incorrect prefix.
|
|
|
|
try { |
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient("dummy",1.0, "") }; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, "zcMuhvq8sEkHALuSU2i4NbNQxshSAYrpCExec45ZjtivYPbuiFPwk6WHy4SvsbeZ4siy1WheuRGjtaJmoD1J8bFqNXhsG6U", recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, "zcMuhvq8sEkHALuSU2i4NbNQxshSAYrpCExec45ZjtivYPbuiFPwk6WHy4SvsbeZ4siy1WheuRGjtaJmoD1J8bFqNXhsG6U", recipients, {}, 1) ); |
|
|
|
} catch (const UniValue& objError) { |
|
|
|
BOOST_CHECK( find_error(objError, "Invalid from address")); |
|
|
|
} |
|
|
@ -1006,7 +1006,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_parameters) |
|
|
|
// invokes a method on pwalletMain, which is undefined in the google test environment.
|
|
|
|
try { |
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient("dummy",1.0, "") }; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, "ztjiDe569DPNbyTE6TSdJTaSDhoXEHLGvYoUnBU1wfVNU52TEyT6berYtySkd21njAeEoh8fFJUT42kua9r8EnhBaEKqCpP", recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, "ztjiDe569DPNbyTE6TSdJTaSDhoXEHLGvYoUnBU1wfVNU52TEyT6berYtySkd21njAeEoh8fFJUT42kua9r8EnhBaEKqCpP", recipients, {}, 1) ); |
|
|
|
} catch (const UniValue& objError) { |
|
|
|
BOOST_CHECK( find_error(objError, "no spending key found for zaddr")); |
|
|
|
} |
|
|
@ -1039,7 +1039,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
// there are no utxos to spend
|
|
|
|
{ |
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient(zaddr1,100.0, "DEADBEEF") }; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, taddr1, {}, recipients, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, taddr1, {}, recipients, 1) ); |
|
|
|
operation->main(); |
|
|
|
BOOST_CHECK(operation->isFailed()); |
|
|
|
std::string msg = operation->getErrorMessage(); |
|
|
@ -1050,7 +1050,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
{ |
|
|
|
try { |
|
|
|
std::vector<SendManyRecipient> recipients = {SendManyRecipient(taddr1, 100.0, "DEADBEEF")}; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation(new AsyncRPCOperation_sendmany(mtx, zaddr1, recipients, {}, 0)); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation(new AsyncRPCOperation_sendmany(boost::none, mtx, zaddr1, recipients, {}, 0)); |
|
|
|
BOOST_CHECK(false); // Fail test if an exception is not thrown
|
|
|
|
} catch (const UniValue& objError) { |
|
|
|
BOOST_CHECK(find_error(objError, "Minconf cannot be zero when sending from zaddr")); |
|
|
@ -1061,7 +1061,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
// there are no unspent notes to spend
|
|
|
|
{ |
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient(taddr1,100.0, "DEADBEEF") }; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, zaddr1, recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, zaddr1, recipients, {}, 1) ); |
|
|
|
operation->main(); |
|
|
|
BOOST_CHECK(operation->isFailed()); |
|
|
|
std::string msg = operation->getErrorMessage(); |
|
|
@ -1071,7 +1071,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
// get_memo_from_hex_string())
|
|
|
|
{ |
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient(zaddr1,100.0, "DEADBEEF") }; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, zaddr1, recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, zaddr1, recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation_sendmany> ptr = std::dynamic_pointer_cast<AsyncRPCOperation_sendmany> (operation); |
|
|
|
TEST_FRIEND_AsyncRPCOperation_sendmany proxy(ptr); |
|
|
|
|
|
|
@ -1122,7 +1122,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
// add_taddr_change_output_to_tx() will append a vout to a raw transaction
|
|
|
|
{ |
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient(zaddr1,100.0, "DEADBEEF") }; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, zaddr1, recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, zaddr1, recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation_sendmany> ptr = std::dynamic_pointer_cast<AsyncRPCOperation_sendmany> (operation); |
|
|
|
TEST_FRIEND_AsyncRPCOperation_sendmany proxy(ptr); |
|
|
|
|
|
|
@ -1151,7 +1151,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
SendManyRecipient("tmUSbHz3vxnwLvRyNDXbwkZxjVyDodMJEhh",CAmount(4.56), ""), |
|
|
|
SendManyRecipient("tmYZAXYPCP56Xa5JQWWPZuK7o7bfUQW6kkd",CAmount(7.89), ""), |
|
|
|
}; |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, zaddr1, recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, zaddr1, recipients, {}, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation_sendmany> ptr = std::dynamic_pointer_cast<AsyncRPCOperation_sendmany> (operation); |
|
|
|
TEST_FRIEND_AsyncRPCOperation_sendmany proxy(ptr); |
|
|
|
|
|
|
@ -1174,7 +1174,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
// we have the spending key for the dummy recipient zaddr1
|
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient(zaddr1, 0.0005, "ABCD") }; |
|
|
|
|
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, zaddr1, {}, recipients, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, zaddr1, {}, recipients, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation_sendmany> ptr = std::dynamic_pointer_cast<AsyncRPCOperation_sendmany> (operation); |
|
|
|
TEST_FRIEND_AsyncRPCOperation_sendmany proxy(ptr); |
|
|
|
|
|
|
@ -1199,7 +1199,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_sendmany_internals) |
|
|
|
// Dummy input so the operation object can be instantiated.
|
|
|
|
std::vector<SendManyRecipient> recipients = { SendManyRecipient(zaddr1, 0.0005, "ABCD") }; |
|
|
|
|
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(mtx, zaddr1, {}, recipients, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation> operation( new AsyncRPCOperation_sendmany(boost::none, mtx, zaddr1, {}, recipients, 1) ); |
|
|
|
std::shared_ptr<AsyncRPCOperation_sendmany> ptr = std::dynamic_pointer_cast<AsyncRPCOperation_sendmany> (operation); |
|
|
|
TEST_FRIEND_AsyncRPCOperation_sendmany proxy(ptr); |
|
|
|
|
|
|
|