14 #include <boost/algorithm/string.hpp>
15 #include <boost/test/unit_test.hpp>
21 createArgs(
int nRequired,
const char* address1=
nullptr,
const char* address2=
nullptr)
26 if (address1) addresses.
push_back(address1);
27 if (address2) addresses.
push_back(address2);
34 std::vector<std::string> vArgs;
35 boost::split(vArgs, args, boost::is_any_of(
" \t"));
36 std::string strMethod = vArgs[0];
37 vArgs.erase(vArgs.begin());
41 request.
fHelp =
false;
45 UniValue result = (*method)(request);
49 throw std::runtime_error(
find_value(objError,
"message").get_str());
63 BOOST_CHECK_THROW(
CallRPC(
"getrawtransaction a3b807410df0b60fcb9736768df5823938b2f838694939ba45f3c0a1bff150ed not_int"), std::runtime_error);
76 std::string rawtx =
"0100000001a15d57094aa7a21a28cb20b59aab8fc7d1149a3bdbcddba9c622e4f5f6a99ece010000006c493046022100f93bb0e7d8db7bd46e40132d1f8242026e045f03a0efe71bbb8e3f475e970d790221009337cd7f1f929f00cc6ff01f03729b069a7c21b59b1736ddfee5db5946c5da8c0121033b9b137ee87d5a812d6f506efdd37f0affa7ffc310711c06c7f3e097c9447c52ffffffff0100e1f505000000001976a9140389035a9225b3839e2bbf32d826a1e222031fd888ac00000000";
123 std::string prevout =
124 "[{\"txid\":\"dd2888870cdc3f6e92661f6b0829667ee4bb07ed086c44205e726bbf3338f726\","
125 "\"vout\":1,\"scriptPubKey\":\"a914f5404a39a4799d8710e15db4c4512c5e06f97fed87\","
126 "\"redeemScript\":\"5121021431a18c7039660cd9e3612a2a47dc53b69cb38ea4ad743b7df8245fd0438f8e21029bbeff390ce736bd396af43b52a1c14ed52c086b1e5585c15931f68725772bac52ae\"}]";
127 r =
CallRPC(std::string(
"createrawtransaction ")+prevout+
" "+
128 "{\"6ckcNMWRYgTnPcrTXCdwhDnMLwj3zwseej\":1}");
129 std::string notsigned = r.
get_str();
130 std::string privkey1 =
"\"YVobcS47fr6kceZy9LzLJR8WQ6YRpUwYKoJhrnEXepebMxaSpbnn\"";
131 std::string privkey2 =
"\"YRyMjG8hbm8jHeDMAfrzSeHq5GgAj7kuHFvJtMudCUH3sCkq1WtA\"";
132 r =
CallRPC(std::string(
"signrawtransaction ")+notsigned+
" "+prevout+
" "+
"[]");
134 r =
CallRPC(std::string(
"signrawtransaction ")+notsigned+
" "+prevout+
" "+
"["+privkey1+
","+privkey2+
"]");
173 static UniValue ValueFromString(
const std::string &str)
196 BOOST_CHECK_EQUAL(
AmountFromValue(ValueFromString(
"0.000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000e64")), COIN);
261 banned_until =
find_value(o1,
"banned_until");
bool setNumStr(const std::string &val)
const std::string & get_str() const
int64_t get_int64() const
const UniValue & get_obj() const
bool push_back(const UniValue &val)
const UniValue & get_array() const
UniValue ParseNonRFCJSONValue(const std::string &strVal)
Non-RFC4627 JSON parser, accepts internal values (such as numbers, true, false, null) as well as obje...
UniValue RPCConvertValues(const std::string &strMethod, const std::vector< std::string > &strParams)
Convert positional arguments to command-specific RPC representation.
BOOST_AUTO_TEST_SUITE_END()
#define BOOST_CHECK_THROW(stmt, excMatch)
#define BOOST_FIXTURE_TEST_SUITE(a, b)
#define BOOST_CHECK_EQUAL(v1, v2)
#define BOOST_CHECK_NO_THROW(stmt)
#define BOOST_CHECK(expr)
UniValue CallRPC(std::string args)
BOOST_AUTO_TEST_CASE(rpc_rawparams)
UniValue createArgs(int nRequired, const char *address1=nullptr, const char *address2=nullptr)
UniValue ValueFromAmount(const CAmount &amount)
CAmount AmountFromValue(const UniValue &value)
UniValue(* rpcfn_type)(const JSONRPCRequest &jsonRequest)
const UniValue & find_value(const UniValue &obj, const std::string &name)
int64_t GetTime()
DEPRECATED Use either GetSystemTimeInSeconds (not mockable) or GetTime<T> (mockable)