extend conversion to UniValue
This commit is contained in:
parent
ed21d5bd4b
commit
9756b7bd29
|
@ -117,6 +117,7 @@ BITCOIN_CORE_H = \
|
||||||
ecwrapper.h \
|
ecwrapper.h \
|
||||||
hash.h \
|
hash.h \
|
||||||
init.h \
|
init.h \
|
||||||
|
json_spirit_wrapper.h \
|
||||||
key.h \
|
key.h \
|
||||||
keystore.h \
|
keystore.h \
|
||||||
leveldbwrapper.h \
|
leveldbwrapper.h \
|
||||||
|
|
|
@ -152,7 +152,7 @@ Object CallRPC(const string& strMethod, const Array& params)
|
||||||
throw runtime_error("no response from server");
|
throw runtime_error("no response from server");
|
||||||
|
|
||||||
// Parse reply
|
// Parse reply
|
||||||
Value valReply;
|
Value valReply(UniValue::VSTR);
|
||||||
if (!valReply.read(strReply))
|
if (!valReply.read(strReply))
|
||||||
throw runtime_error("couldn't parse reply from server");
|
throw runtime_error("couldn't parse reply from server");
|
||||||
const Object& reply = valReply.get_obj();
|
const Object& reply = valReply.get_obj();
|
||||||
|
|
|
@ -222,7 +222,7 @@ static bool rest_block(AcceptedConnection* conn,
|
||||||
|
|
||||||
case RF_JSON: {
|
case RF_JSON: {
|
||||||
Object objBlock = blockToJSON(block, pblockindex, showTxDetails);
|
Object objBlock = blockToJSON(block, pblockindex, showTxDetails);
|
||||||
string strJSON = write_string(Value(objBlock), false) + "\n";
|
string strJSON = objBlock.write() + "\n";
|
||||||
conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
|
conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -267,8 +267,7 @@ static bool rest_chaininfo(AcceptedConnection* conn,
|
||||||
case RF_JSON: {
|
case RF_JSON: {
|
||||||
Array rpcParams;
|
Array rpcParams;
|
||||||
Value chainInfoObject = getblockchaininfo(rpcParams, false);
|
Value chainInfoObject = getblockchaininfo(rpcParams, false);
|
||||||
|
string strJSON = chainInfoObject.write() + "\n";
|
||||||
string strJSON = write_string(chainInfoObject, false) + "\n";
|
|
||||||
conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
|
conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -319,7 +318,7 @@ static bool rest_tx(AcceptedConnection* conn,
|
||||||
case RF_JSON: {
|
case RF_JSON: {
|
||||||
Object objTx;
|
Object objTx;
|
||||||
TxToJSON(tx, hashBlock, objTx);
|
TxToJSON(tx, hashBlock, objTx);
|
||||||
string strJSON = write_string(Value(objTx), false) + "\n";
|
string strJSON = objTx.write() + "\n";
|
||||||
conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
|
conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -516,7 +515,7 @@ static bool rest_getutxos(AcceptedConnection* conn,
|
||||||
objGetUTXOResponse.push_back(Pair("utxos", utxos));
|
objGetUTXOResponse.push_back(Pair("utxos", utxos));
|
||||||
|
|
||||||
// return json string
|
// return json string
|
||||||
string strJSON = write_string(Value(objGetUTXOResponse), false) + "\n";
|
string strJSON = objGetUTXOResponse.write() + "\n";
|
||||||
conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
|
conn->stream() << HTTPReply(HTTP_OK, strJSON, fRun) << std::flush;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -757,7 +757,7 @@ Value invalidateblock(const Array& params, bool fHelp)
|
||||||
throw JSONRPCError(RPC_DATABASE_ERROR, state.GetRejectReason());
|
throw JSONRPCError(RPC_DATABASE_ERROR, state.GetRejectReason());
|
||||||
}
|
}
|
||||||
|
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Value reconsiderblock(const Array& params, bool fHelp)
|
Value reconsiderblock(const Array& params, bool fHelp)
|
||||||
|
@ -796,5 +796,5 @@ Value reconsiderblock(const Array& params, bool fHelp)
|
||||||
throw JSONRPCError(RPC_DATABASE_ERROR, state.GetRejectReason());
|
throw JSONRPCError(RPC_DATABASE_ERROR, state.GetRejectReason());
|
||||||
}
|
}
|
||||||
|
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,7 @@ static CRPCConvertTable rpcCvtTable;
|
||||||
/** Convert strings to command-specific RPC representation */
|
/** Convert strings to command-specific RPC representation */
|
||||||
Array RPCConvertValues(const std::string &strMethod, const std::vector<std::string> &strParams)
|
Array RPCConvertValues(const std::string &strMethod, const std::vector<std::string> &strParams)
|
||||||
{
|
{
|
||||||
Array params;
|
UniValue params(UniValue::VARR);
|
||||||
|
|
||||||
for (unsigned int idx = 0; idx < strParams.size(); idx++) {
|
for (unsigned int idx = 0; idx < strParams.size(); idx++) {
|
||||||
const std::string& strVal = strParams[idx];
|
const std::string& strVal = strParams[idx];
|
||||||
|
|
|
@ -522,7 +522,7 @@ Value getblocktemplate(const Array& params, bool fHelp)
|
||||||
if (strMode == "proposal")
|
if (strMode == "proposal")
|
||||||
{
|
{
|
||||||
const Value& dataval = find_value(oparam, "data");
|
const Value& dataval = find_value(oparam, "data");
|
||||||
if (dataval.type() != str_type)
|
if (dataval.isStr())
|
||||||
throw JSONRPCError(RPC_TYPE_ERROR, "Missing data String key for proposal");
|
throw JSONRPCError(RPC_TYPE_ERROR, "Missing data String key for proposal");
|
||||||
|
|
||||||
CBlock block;
|
CBlock block;
|
||||||
|
@ -646,7 +646,7 @@ Value getblocktemplate(const Array& params, bool fHelp)
|
||||||
UpdateTime(pblock, Params().GetConsensus(), pindexPrev);
|
UpdateTime(pblock, Params().GetConsensus(), pindexPrev);
|
||||||
pblock->nNonce = uint256();
|
pblock->nNonce = uint256();
|
||||||
|
|
||||||
static const Array aCaps = boost::assign::list_of("proposal");
|
Array aCaps; aCaps.push_back("proposal");
|
||||||
|
|
||||||
Value txCoinbase = Value::null;
|
Value txCoinbase = Value::null;
|
||||||
Array transactions;
|
Array transactions;
|
||||||
|
|
|
@ -454,8 +454,8 @@ Value setmocktime(const Array& params, bool fHelp)
|
||||||
|
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
|
|
||||||
RPCTypeCheck(params, boost::assign::list_of(int_type));
|
RPCTypeCheck(params, boost::assign::list_of(UniValue::VNUM));
|
||||||
SetMockTime(params[0].get_int64());
|
SetMockTime(params[0].get_int64());
|
||||||
|
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -258,7 +258,7 @@ int ReadHTTPMessage(std::basic_istream<char>& stream, map<string,
|
||||||
|
|
||||||
string JSONRPCRequest(const string& strMethod, const Array& params, const Value& id)
|
string JSONRPCRequest(const string& strMethod, const Array& params, const Value& id)
|
||||||
{
|
{
|
||||||
Object request;
|
Object request(UniValue::VOBJ);
|
||||||
request.push_back(Pair("method", strMethod));
|
request.push_back(Pair("method", strMethod));
|
||||||
request.push_back(Pair("params", params));
|
request.push_back(Pair("params", params));
|
||||||
request.push_back(Pair("id", id));
|
request.push_back(Pair("id", id));
|
||||||
|
@ -267,7 +267,7 @@ string JSONRPCRequest(const string& strMethod, const Array& params, const Value&
|
||||||
|
|
||||||
Object JSONRPCReplyObj(const Value& result, const Value& error, const Value& id)
|
Object JSONRPCReplyObj(const Value& result, const Value& error, const Value& id)
|
||||||
{
|
{
|
||||||
Object reply;
|
Object reply(UniValue::VOBJ);
|
||||||
if (!error.isNull())
|
if (!error.isNull())
|
||||||
reply.push_back(Pair("result", NullUniValue));
|
reply.push_back(Pair("result", NullUniValue));
|
||||||
else
|
else
|
||||||
|
@ -285,7 +285,7 @@ string JSONRPCReply(const Value& result, const Value& error, const Value& id)
|
||||||
|
|
||||||
Object JSONRPCError(int code, const string& message)
|
Object JSONRPCError(int code, const string& message)
|
||||||
{
|
{
|
||||||
Object error;
|
UniValue error(UniValue::VOBJ);
|
||||||
error.push_back(Pair("code", code));
|
error.push_back(Pair("code", code));
|
||||||
error.push_back(Pair("message", message));
|
error.push_back(Pair("message", message));
|
||||||
return error;
|
return error;
|
||||||
|
|
|
@ -306,7 +306,8 @@ Value gettxoutproof(const Array& params, bool fHelp)
|
||||||
set<uint256> setTxids;
|
set<uint256> setTxids;
|
||||||
uint256 oneTxid;
|
uint256 oneTxid;
|
||||||
Array txids = params[0].get_array();
|
Array txids = params[0].get_array();
|
||||||
BOOST_FOREACH(Value& txid, txids) {
|
for (unsigned int idx = 0; idx < txids.size(); idx++) {
|
||||||
|
const Value& txid = txids[idx];
|
||||||
if (txid.get_str().length() != 64 || !IsHex(txid.get_str()))
|
if (txid.get_str().length() != 64 || !IsHex(txid.get_str()))
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, string("Invalid txid ")+txid.get_str());
|
throw JSONRPCError(RPC_INVALID_PARAMETER, string("Invalid txid ")+txid.get_str());
|
||||||
uint256 hash(uint256S(txid.get_str()));
|
uint256 hash(uint256S(txid.get_str()));
|
||||||
|
@ -559,7 +560,7 @@ Value decoderawtransaction(const Array& params, bool fHelp)
|
||||||
if (!DecodeHexTx(tx, params[0].get_str()))
|
if (!DecodeHexTx(tx, params[0].get_str()))
|
||||||
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
|
throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
|
||||||
|
|
||||||
Object result;
|
UniValue result(UniValue::VOBJ);
|
||||||
TxToJSON(tx, uint256(), result);
|
TxToJSON(tx, uint256(), result);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -591,7 +592,7 @@ Value decodescript(const Array& params, bool fHelp)
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
RPCTypeCheck(params, boost::assign::list_of(str_type));
|
RPCTypeCheck(params, boost::assign::list_of(UniValue::VSTR));
|
||||||
|
|
||||||
Object r;
|
Object r;
|
||||||
CScript script;
|
CScript script;
|
||||||
|
|
|
@ -583,11 +583,13 @@ BOOST_AUTO_TEST_CASE(script_build)
|
||||||
Array json_good = read_json(std::string(json_tests::script_valid, json_tests::script_valid + sizeof(json_tests::script_valid)));
|
Array json_good = read_json(std::string(json_tests::script_valid, json_tests::script_valid + sizeof(json_tests::script_valid)));
|
||||||
Array json_bad = read_json(std::string(json_tests::script_invalid, json_tests::script_invalid + sizeof(json_tests::script_invalid)));
|
Array json_bad = read_json(std::string(json_tests::script_invalid, json_tests::script_invalid + sizeof(json_tests::script_invalid)));
|
||||||
|
|
||||||
BOOST_FOREACH(Value& tv, json_good) {
|
for (unsigned int idx = 0; idx < json_good.size(); idx++) {
|
||||||
tests_good.insert(write_string(Value(tv.get_array()), true));
|
const Value& tv = json_good[idx];
|
||||||
|
tests_good.insert(tv.get_array().write());
|
||||||
}
|
}
|
||||||
BOOST_FOREACH(Value& tv, json_bad) {
|
for (unsigned int idx = 0; idx < json_bad.size(); idx++) {
|
||||||
tests_bad.insert(write_string(Value(tv.get_array()), true));
|
const Value& tv = json_bad[idx];
|
||||||
|
tests_bad.insert(tv.get_array().write());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -596,7 +598,7 @@ BOOST_AUTO_TEST_CASE(script_build)
|
||||||
|
|
||||||
BOOST_FOREACH(TestBuilder& test, good) {
|
BOOST_FOREACH(TestBuilder& test, good) {
|
||||||
test.Test(true);
|
test.Test(true);
|
||||||
std::string str = write_string(Value(test.GetJSON()), true);
|
std::string str = test.GetJSON().write();
|
||||||
#ifndef UPDATE_JSON_TESTS
|
#ifndef UPDATE_JSON_TESTS
|
||||||
if (tests_good.count(str) == 0) {
|
if (tests_good.count(str) == 0) {
|
||||||
BOOST_CHECK_MESSAGE(false, "Missing auto script_valid test: " + test.GetComment());
|
BOOST_CHECK_MESSAGE(false, "Missing auto script_valid test: " + test.GetComment());
|
||||||
|
@ -606,7 +608,7 @@ BOOST_AUTO_TEST_CASE(script_build)
|
||||||
}
|
}
|
||||||
BOOST_FOREACH(TestBuilder& test, bad) {
|
BOOST_FOREACH(TestBuilder& test, bad) {
|
||||||
test.Test(false);
|
test.Test(false);
|
||||||
std::string str = write_string(Value(test.GetJSON()), true);
|
std::string str = test.GetJSON().write();
|
||||||
#ifndef UPDATE_JSON_TESTS
|
#ifndef UPDATE_JSON_TESTS
|
||||||
if (tests_bad.count(str) == 0) {
|
if (tests_bad.count(str) == 0) {
|
||||||
BOOST_CHECK_MESSAGE(false, "Missing auto script_invalid test: " + test.GetComment());
|
BOOST_CHECK_MESSAGE(false, "Missing auto script_invalid test: " + test.GetComment());
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include <boost/algorithm/string/classification.hpp>
|
#include <boost/algorithm/string/classification.hpp>
|
||||||
#include <boost/algorithm/string/split.hpp>
|
#include <boost/algorithm/string/split.hpp>
|
||||||
|
#include <boost/assign/list_of.hpp>
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <boost/assign/list_of.hpp>
|
#include <boost/assign/list_of.hpp>
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ std::string DecodeDumpString(const std::string &str) {
|
||||||
Value importprivkey(const Array& params, bool fHelp)
|
Value importprivkey(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 1 || params.size() > 3)
|
if (fHelp || params.size() < 1 || params.size() > 3)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -151,7 +151,7 @@ Value importprivkey(const Array& params, bool fHelp)
|
||||||
Value importaddress(const Array& params, bool fHelp)
|
Value importaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 1 || params.size() > 3)
|
if (fHelp || params.size() < 1 || params.size() > 3)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -247,7 +247,7 @@ Value z_importwallet(const Array& params, bool fHelp)
|
||||||
Value importwallet(const Array& params, bool fHelp)
|
Value importwallet(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 1)
|
if (fHelp || params.size() != 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -384,7 +384,7 @@ Value importwallet_impl(const Array& params, bool fHelp, bool fImportZKeys)
|
||||||
Value dumpprivkey(const Array& params, bool fHelp)
|
Value dumpprivkey(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 1)
|
if (fHelp || params.size() != 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -444,7 +444,7 @@ Value z_exportwallet(const Array& params, bool fHelp)
|
||||||
Value dumpwallet(const Array& params, bool fHelp)
|
Value dumpwallet(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 1)
|
if (fHelp || params.size() != 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
|
|
@ -110,7 +110,7 @@ string AccountFromValue(const Value& value)
|
||||||
Value getnewaddress(const Array& params, bool fHelp)
|
Value getnewaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 1)
|
if (fHelp || params.size() > 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -187,7 +187,7 @@ CBitcoinAddress GetAccountAddress(string strAccount, bool bForceNew=false)
|
||||||
Value getaccountaddress(const Array& params, bool fHelp)
|
Value getaccountaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 1)
|
if (fHelp || params.size() != 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -219,7 +219,7 @@ Value getaccountaddress(const Array& params, bool fHelp)
|
||||||
Value getrawchangeaddress(const Array& params, bool fHelp)
|
Value getrawchangeaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 1)
|
if (fHelp || params.size() > 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -254,7 +254,7 @@ Value getrawchangeaddress(const Array& params, bool fHelp)
|
||||||
Value setaccount(const Array& params, bool fHelp)
|
Value setaccount(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 1 || params.size() > 2)
|
if (fHelp || params.size() < 1 || params.size() > 2)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -300,7 +300,7 @@ Value setaccount(const Array& params, bool fHelp)
|
||||||
Value getaccount(const Array& params, bool fHelp)
|
Value getaccount(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 1)
|
if (fHelp || params.size() != 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -332,7 +332,7 @@ Value getaccount(const Array& params, bool fHelp)
|
||||||
Value getaddressesbyaccount(const Array& params, bool fHelp)
|
Value getaddressesbyaccount(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 1)
|
if (fHelp || params.size() != 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -400,7 +400,7 @@ static void SendMoney(const CTxDestination &address, CAmount nValue, bool fSubtr
|
||||||
Value sendtoaddress(const Array& params, bool fHelp)
|
Value sendtoaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 2 || params.size() > 5)
|
if (fHelp || params.size() < 2 || params.size() > 5)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -456,7 +456,7 @@ Value sendtoaddress(const Array& params, bool fHelp)
|
||||||
Value listaddressgroupings(const Array& params, bool fHelp)
|
Value listaddressgroupings(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp)
|
if (fHelp)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -507,7 +507,7 @@ Value listaddressgroupings(const Array& params, bool fHelp)
|
||||||
Value signmessage(const Array& params, bool fHelp)
|
Value signmessage(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 2)
|
if (fHelp || params.size() != 2)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -563,7 +563,7 @@ Value signmessage(const Array& params, bool fHelp)
|
||||||
Value getreceivedbyaddress(const Array& params, bool fHelp)
|
Value getreceivedbyaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 1 || params.size() > 2)
|
if (fHelp || params.size() < 1 || params.size() > 2)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -621,7 +621,7 @@ Value getreceivedbyaddress(const Array& params, bool fHelp)
|
||||||
Value getreceivedbyaccount(const Array& params, bool fHelp)
|
Value getreceivedbyaccount(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 1 || params.size() > 2)
|
if (fHelp || params.size() < 1 || params.size() > 2)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -710,7 +710,7 @@ CAmount GetAccountBalance(const string& strAccount, int nMinDepth, const isminef
|
||||||
Value getbalance(const Array& params, bool fHelp)
|
Value getbalance(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 3)
|
if (fHelp || params.size() > 3)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -782,7 +782,7 @@ Value getbalance(const Array& params, bool fHelp)
|
||||||
Value getunconfirmedbalance(const Array ¶ms, bool fHelp)
|
Value getunconfirmedbalance(const Array ¶ms, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 0)
|
if (fHelp || params.size() > 0)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -798,7 +798,7 @@ Value getunconfirmedbalance(const Array ¶ms, bool fHelp)
|
||||||
Value movecmd(const Array& params, bool fHelp)
|
Value movecmd(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 3 || params.size() > 5)
|
if (fHelp || params.size() < 3 || params.size() > 5)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -868,7 +868,7 @@ Value movecmd(const Array& params, bool fHelp)
|
||||||
Value sendfrom(const Array& params, bool fHelp)
|
Value sendfrom(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 3 || params.size() > 6)
|
if (fHelp || params.size() < 3 || params.size() > 6)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -931,7 +931,7 @@ Value sendfrom(const Array& params, bool fHelp)
|
||||||
Value sendmany(const Array& params, bool fHelp)
|
Value sendmany(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 2 || params.size() > 5)
|
if (fHelp || params.size() < 2 || params.size() > 5)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1006,9 +1006,11 @@ Value sendmany(const Array& params, bool fHelp)
|
||||||
totalAmount += nAmount;
|
totalAmount += nAmount;
|
||||||
|
|
||||||
bool fSubtractFeeFromAmount = false;
|
bool fSubtractFeeFromAmount = false;
|
||||||
BOOST_FOREACH(const Value& addr, subtractFeeFromAmount)
|
for (unsigned int idx = 0; idx < subtractFeeFromAmount.size(); idx++) {
|
||||||
if (addr.get_str() == s.name_)
|
const Value& addr = subtractFeeFromAmount[idx];
|
||||||
|
if (addr.get_str() == name_)
|
||||||
fSubtractFeeFromAmount = true;
|
fSubtractFeeFromAmount = true;
|
||||||
|
}
|
||||||
|
|
||||||
CRecipient recipient = {scriptPubKey, nAmount, fSubtractFeeFromAmount};
|
CRecipient recipient = {scriptPubKey, nAmount, fSubtractFeeFromAmount};
|
||||||
vecSend.push_back(recipient);
|
vecSend.push_back(recipient);
|
||||||
|
@ -1041,7 +1043,7 @@ extern CScript _createmultisig_redeemScript(const Array& params);
|
||||||
Value addmultisigaddress(const Array& params, bool fHelp)
|
Value addmultisigaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 2 || params.size() > 3)
|
if (fHelp || params.size() < 2 || params.size() > 3)
|
||||||
{
|
{
|
||||||
|
@ -1222,7 +1224,7 @@ Value ListReceived(const Array& params, bool fByAccounts)
|
||||||
Value listreceivedbyaddress(const Array& params, bool fHelp)
|
Value listreceivedbyaddress(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 3)
|
if (fHelp || params.size() > 3)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1259,7 +1261,7 @@ Value listreceivedbyaddress(const Array& params, bool fHelp)
|
||||||
Value listreceivedbyaccount(const Array& params, bool fHelp)
|
Value listreceivedbyaccount(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 3)
|
if (fHelp || params.size() > 3)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1391,7 +1393,7 @@ void AcentryToJSON(const CAccountingEntry& acentry, const string& strAccount, Ar
|
||||||
Value listtransactions(const Array& params, bool fHelp)
|
Value listtransactions(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 4)
|
if (fHelp || params.size() > 4)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1512,7 +1514,7 @@ Value listtransactions(const Array& params, bool fHelp)
|
||||||
Value listaccounts(const Array& params, bool fHelp)
|
Value listaccounts(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 2)
|
if (fHelp || params.size() > 2)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1592,7 +1594,7 @@ Value listaccounts(const Array& params, bool fHelp)
|
||||||
Value listsinceblock(const Array& params, bool fHelp)
|
Value listsinceblock(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp)
|
if (fHelp)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1683,7 +1685,7 @@ Value listsinceblock(const Array& params, bool fHelp)
|
||||||
Value gettransaction(const Array& params, bool fHelp)
|
Value gettransaction(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 1 || params.size() > 2)
|
if (fHelp || params.size() < 1 || params.size() > 2)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1772,7 +1774,7 @@ Value gettransaction(const Array& params, bool fHelp)
|
||||||
Value backupwallet(const Array& params, bool fHelp)
|
Value backupwallet(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 1)
|
if (fHelp || params.size() != 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1815,7 +1817,7 @@ Value backupwallet(const Array& params, bool fHelp)
|
||||||
Value keypoolrefill(const Array& params, bool fHelp)
|
Value keypoolrefill(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 1)
|
if (fHelp || params.size() > 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1859,7 +1861,7 @@ static void LockWallet(CWallet* pWallet)
|
||||||
Value walletpassphrase(const Array& params, bool fHelp)
|
Value walletpassphrase(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (pwalletMain->IsCrypted() && (fHelp || params.size() != 2))
|
if (pwalletMain->IsCrypted() && (fHelp || params.size() != 2))
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1921,7 +1923,7 @@ Value walletpassphrase(const Array& params, bool fHelp)
|
||||||
Value walletpassphrasechange(const Array& params, bool fHelp)
|
Value walletpassphrasechange(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (pwalletMain->IsCrypted() && (fHelp || params.size() != 2))
|
if (pwalletMain->IsCrypted() && (fHelp || params.size() != 2))
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -1967,7 +1969,7 @@ Value walletpassphrasechange(const Array& params, bool fHelp)
|
||||||
Value walletlock(const Array& params, bool fHelp)
|
Value walletlock(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (pwalletMain->IsCrypted() && (fHelp || params.size() != 0))
|
if (pwalletMain->IsCrypted() && (fHelp || params.size() != 0))
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -2006,7 +2008,7 @@ Value walletlock(const Array& params, bool fHelp)
|
||||||
Value encryptwallet(const Array& params, bool fHelp)
|
Value encryptwallet(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
auto fEnableWalletEncryption = fExperimentalMode && GetBoolArg("-developerencryptwallet", false);
|
auto fEnableWalletEncryption = fExperimentalMode && GetBoolArg("-developerencryptwallet", false);
|
||||||
|
|
||||||
|
@ -2074,7 +2076,7 @@ Value encryptwallet(const Array& params, bool fHelp)
|
||||||
Value lockunspent(const Array& params, bool fHelp)
|
Value lockunspent(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 1 || params.size() > 2)
|
if (fHelp || params.size() < 1 || params.size() > 2)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -2158,7 +2160,7 @@ Value lockunspent(const Array& params, bool fHelp)
|
||||||
Value listlockunspent(const Array& params, bool fHelp)
|
Value listlockunspent(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 0)
|
if (fHelp || params.size() > 0)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -2207,7 +2209,7 @@ Value listlockunspent(const Array& params, bool fHelp)
|
||||||
Value settxfee(const Array& params, bool fHelp)
|
Value settxfee(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() < 1 || params.size() > 1)
|
if (fHelp || params.size() < 1 || params.size() > 1)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -2236,7 +2238,7 @@ Value settxfee(const Array& params, bool fHelp)
|
||||||
Value getwalletinfo(const Array& params, bool fHelp)
|
Value getwalletinfo(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 0)
|
if (fHelp || params.size() != 0)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -2276,7 +2278,7 @@ Value getwalletinfo(const Array& params, bool fHelp)
|
||||||
Value resendwallettransactions(const Array& params, bool fHelp)
|
Value resendwallettransactions(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() != 0)
|
if (fHelp || params.size() != 0)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -2301,7 +2303,7 @@ Value resendwallettransactions(const Array& params, bool fHelp)
|
||||||
Value listunspent(const Array& params, bool fHelp)
|
Value listunspent(const Array& params, bool fHelp)
|
||||||
{
|
{
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return Value::null;
|
return NullUniValue;
|
||||||
|
|
||||||
if (fHelp || params.size() > 3)
|
if (fHelp || params.size() > 3)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
|
@ -2339,7 +2341,7 @@ Value listunspent(const Array& params, bool fHelp)
|
||||||
+ HelpExampleRpc("listunspent", "6, 9999999 \"[\\\"1PGFqEzfmQch1gKD3ra4k18PNj3tTUUSqg\\\",\\\"1LtvqCaApEdUGFkpKMM4MstjcaL4dKg8SP\\\"]\"")
|
+ HelpExampleRpc("listunspent", "6, 9999999 \"[\\\"1PGFqEzfmQch1gKD3ra4k18PNj3tTUUSqg\\\",\\\"1LtvqCaApEdUGFkpKMM4MstjcaL4dKg8SP\\\"]\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
RPCTypeCheck(params, boost::assign::list_of(int_type)(int_type)(array_type));
|
RPCTypeCheck(params, boost::assign::list_of(UniValue::VNUM)(UniValue::VNUM)(UniValue::VARR));
|
||||||
|
|
||||||
int nMinDepth = 1;
|
int nMinDepth = 1;
|
||||||
if (params.size() > 0)
|
if (params.size() > 0)
|
||||||
|
@ -2352,7 +2354,8 @@ Value listunspent(const Array& params, bool fHelp)
|
||||||
set<CBitcoinAddress> setAddress;
|
set<CBitcoinAddress> setAddress;
|
||||||
if (params.size() > 2) {
|
if (params.size() > 2) {
|
||||||
Array inputs = params[2].get_array();
|
Array inputs = params[2].get_array();
|
||||||
BOOST_FOREACH(Value& input, inputs) {
|
for (unsigned int idx = 0; idx < inputs.size(); idx++) {
|
||||||
|
const Value& input = inputs[idx];
|
||||||
CBitcoinAddress address(input.get_str());
|
CBitcoinAddress address(input.get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, string("Invalid Zcash address: ")+input.get_str());
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, string("Invalid Zcash address: ")+input.get_str());
|
||||||
|
|
Loading…
Reference in New Issue