Remove JSON Spirit wrapper, remove JSON Spirit leftovers
- implement find_value() function for UniValue - replace all Array/Value/Object types with UniValues, remove JSON Spirit to UniValue wrapper - remove JSON Spirit sources
This commit is contained in:
committed by
Jack Grigg
parent
851f58f94e
commit
d014114d67
@@ -31,12 +31,11 @@
|
||||
|
||||
#include <boost/assign/list_of.hpp>
|
||||
|
||||
#include "json_spirit_wrapper.h"
|
||||
#include "univalue/univalue.h"
|
||||
|
||||
#include <numeric>
|
||||
|
||||
using namespace std;
|
||||
using namespace json_spirit;
|
||||
|
||||
using namespace libzcash;
|
||||
|
||||
@@ -73,7 +72,7 @@ void EnsureWalletIsUnlocked()
|
||||
throw JSONRPCError(RPC_WALLET_UNLOCK_NEEDED, "Error: Please enter the wallet passphrase with walletpassphrase first.");
|
||||
}
|
||||
|
||||
void WalletTxToJSON(const CWalletTx& wtx, Object& entry)
|
||||
void WalletTxToJSON(const CWalletTx& wtx, UniValue& entry)
|
||||
{
|
||||
int confirms = wtx.GetDepthInMainChain();
|
||||
entry.push_back(Pair("confirmations", confirms));
|
||||
@@ -99,7 +98,7 @@ void WalletTxToJSON(const CWalletTx& wtx, Object& entry)
|
||||
entry.push_back(Pair("vjoinsplit", TxJoinSplitToJSON(wtx)));
|
||||
}
|
||||
|
||||
string AccountFromValue(const Value& value)
|
||||
string AccountFromValue(const UniValue& value)
|
||||
{
|
||||
string strAccount = value.get_str();
|
||||
if (strAccount != "")
|
||||
@@ -107,7 +106,7 @@ string AccountFromValue(const Value& value)
|
||||
return strAccount;
|
||||
}
|
||||
|
||||
Value getnewaddress(const Array& params, bool fHelp)
|
||||
UniValue getnewaddress(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -184,7 +183,7 @@ CBitcoinAddress GetAccountAddress(string strAccount, bool bForceNew=false)
|
||||
return CBitcoinAddress(account.vchPubKey.GetID());
|
||||
}
|
||||
|
||||
Value getaccountaddress(const Array& params, bool fHelp)
|
||||
UniValue getaccountaddress(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -209,14 +208,14 @@ Value getaccountaddress(const Array& params, bool fHelp)
|
||||
// Parse the account first so we don't generate a key if there's an error
|
||||
string strAccount = AccountFromValue(params[0]);
|
||||
|
||||
Value ret;
|
||||
UniValue ret(UniValue::VSTR);
|
||||
|
||||
ret = GetAccountAddress(strAccount).ToString();
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Value getrawchangeaddress(const Array& params, bool fHelp)
|
||||
UniValue getrawchangeaddress(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -251,7 +250,7 @@ Value getrawchangeaddress(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value setaccount(const Array& params, bool fHelp)
|
||||
UniValue setaccount(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -297,7 +296,7 @@ Value setaccount(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value getaccount(const Array& params, bool fHelp)
|
||||
UniValue getaccount(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -329,7 +328,7 @@ Value getaccount(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value getaddressesbyaccount(const Array& params, bool fHelp)
|
||||
UniValue getaddressesbyaccount(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -397,7 +396,7 @@ static void SendMoney(const CTxDestination &address, CAmount nValue, bool fSubtr
|
||||
throw JSONRPCError(RPC_WALLET_ERROR, "Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.");
|
||||
}
|
||||
|
||||
Value sendtoaddress(const Array& params, bool fHelp)
|
||||
UniValue sendtoaddress(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -453,7 +452,7 @@ Value sendtoaddress(const Array& params, bool fHelp)
|
||||
return wtx.GetHash().GetHex();
|
||||
}
|
||||
|
||||
Value listaddressgroupings(const Array& params, bool fHelp)
|
||||
UniValue listaddressgroupings(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -504,7 +503,7 @@ Value listaddressgroupings(const Array& params, bool fHelp)
|
||||
return jsonGroupings;
|
||||
}
|
||||
|
||||
Value signmessage(const Array& params, bool fHelp)
|
||||
UniValue signmessage(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -560,7 +559,7 @@ Value signmessage(const Array& params, bool fHelp)
|
||||
return EncodeBase64(&vchSig[0], vchSig.size());
|
||||
}
|
||||
|
||||
Value getreceivedbyaddress(const Array& params, bool fHelp)
|
||||
UniValue getreceivedbyaddress(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -618,7 +617,7 @@ Value getreceivedbyaddress(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value getreceivedbyaccount(const Array& params, bool fHelp)
|
||||
UniValue getreceivedbyaccount(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -707,7 +706,7 @@ CAmount GetAccountBalance(const string& strAccount, int nMinDepth, const isminef
|
||||
}
|
||||
|
||||
|
||||
Value getbalance(const Array& params, bool fHelp)
|
||||
UniValue getbalance(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -779,7 +778,7 @@ Value getbalance(const Array& params, bool fHelp)
|
||||
return ValueFromAmount(nBalance);
|
||||
}
|
||||
|
||||
Value getunconfirmedbalance(const UniValue ¶ms, bool fHelp)
|
||||
UniValue getunconfirmedbalance(const UniValue ¶ms, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -795,7 +794,7 @@ Value getunconfirmedbalance(const UniValue ¶ms, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value movecmd(const Array& params, bool fHelp)
|
||||
UniValue movecmd(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -865,7 +864,7 @@ Value movecmd(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value sendfrom(const Array& params, bool fHelp)
|
||||
UniValue sendfrom(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -928,7 +927,7 @@ Value sendfrom(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value sendmany(const Array& params, bool fHelp)
|
||||
UniValue sendmany(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1007,7 +1006,7 @@ Value sendmany(const Array& params, bool fHelp)
|
||||
|
||||
bool fSubtractFeeFromAmount = false;
|
||||
for (unsigned int idx = 0; idx < subtractFeeFromAmount.size(); idx++) {
|
||||
const Value& addr = subtractFeeFromAmount[idx];
|
||||
const UniValue& addr = subtractFeeFromAmount[idx];
|
||||
if (addr.get_str() == name_)
|
||||
fSubtractFeeFromAmount = true;
|
||||
}
|
||||
@@ -1038,9 +1037,9 @@ Value sendmany(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
// Defined in rpcmisc.cpp
|
||||
extern CScript _createmultisig_redeemScript(const Array& params);
|
||||
extern CScript _createmultisig_redeemScript(const UniValue& params);
|
||||
|
||||
Value addmultisigaddress(const Array& params, bool fHelp)
|
||||
UniValue addmultisigaddress(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1103,7 +1102,7 @@ struct tallyitem
|
||||
}
|
||||
};
|
||||
|
||||
Value ListReceived(const Array& params, bool fByAccounts)
|
||||
UniValue ListReceived(const UniValue& params, bool fByAccounts)
|
||||
{
|
||||
// Minimum confirmations
|
||||
int nMinDepth = 1;
|
||||
@@ -1221,7 +1220,7 @@ Value ListReceived(const Array& params, bool fByAccounts)
|
||||
return ret;
|
||||
}
|
||||
|
||||
Value listreceivedbyaddress(const Array& params, bool fHelp)
|
||||
UniValue listreceivedbyaddress(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1258,7 +1257,7 @@ Value listreceivedbyaddress(const Array& params, bool fHelp)
|
||||
return ListReceived(params, false);
|
||||
}
|
||||
|
||||
Value listreceivedbyaccount(const Array& params, bool fHelp)
|
||||
UniValue listreceivedbyaccount(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1301,7 +1300,7 @@ static void MaybePushAddress(UniValue & entry, const CTxDestination &dest)
|
||||
entry.push_back(Pair("address", addr.ToString()));
|
||||
}
|
||||
|
||||
void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDepth, bool fLong, Array& ret, const isminefilter& filter)
|
||||
void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDepth, bool fLong, UniValue& ret, const isminefilter& filter)
|
||||
{
|
||||
CAmount nFee;
|
||||
string strSentAccount;
|
||||
@@ -1373,7 +1372,7 @@ void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDe
|
||||
}
|
||||
}
|
||||
|
||||
void AcentryToJSON(const CAccountingEntry& acentry, const string& strAccount, Array& ret)
|
||||
void AcentryToJSON(const CAccountingEntry& acentry, const string& strAccount, UniValue& ret)
|
||||
{
|
||||
bool fAllAccounts = (strAccount == string("*"));
|
||||
|
||||
@@ -1390,7 +1389,7 @@ void AcentryToJSON(const CAccountingEntry& acentry, const string& strAccount, Ar
|
||||
}
|
||||
}
|
||||
|
||||
Value listtransactions(const Array& params, bool fHelp)
|
||||
UniValue listtransactions(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1512,7 +1511,7 @@ Value listtransactions(const Array& params, bool fHelp)
|
||||
return ret;
|
||||
}
|
||||
|
||||
Value listaccounts(const Array& params, bool fHelp)
|
||||
UniValue listaccounts(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1592,7 +1591,7 @@ Value listaccounts(const Array& params, bool fHelp)
|
||||
return ret;
|
||||
}
|
||||
|
||||
Value listsinceblock(const Array& params, bool fHelp)
|
||||
UniValue listsinceblock(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1683,7 +1682,7 @@ Value listsinceblock(const Array& params, bool fHelp)
|
||||
return ret;
|
||||
}
|
||||
|
||||
Value gettransaction(const Array& params, bool fHelp)
|
||||
UniValue gettransaction(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1772,7 +1771,7 @@ Value gettransaction(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value backupwallet(const Array& params, bool fHelp)
|
||||
UniValue backupwallet(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1815,7 +1814,7 @@ Value backupwallet(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value keypoolrefill(const Array& params, bool fHelp)
|
||||
UniValue keypoolrefill(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1859,7 +1858,7 @@ static void LockWallet(CWallet* pWallet)
|
||||
pWallet->Lock();
|
||||
}
|
||||
|
||||
Value walletpassphrase(const Array& params, bool fHelp)
|
||||
UniValue walletpassphrase(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1921,7 +1920,7 @@ Value walletpassphrase(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value walletpassphrasechange(const Array& params, bool fHelp)
|
||||
UniValue walletpassphrasechange(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -1967,7 +1966,7 @@ Value walletpassphrasechange(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value walletlock(const Array& params, bool fHelp)
|
||||
UniValue walletlock(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -2006,7 +2005,7 @@ Value walletlock(const Array& params, bool fHelp)
|
||||
}
|
||||
|
||||
|
||||
Value encryptwallet(const Array& params, bool fHelp)
|
||||
UniValue encryptwallet(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -2074,7 +2073,7 @@ Value encryptwallet(const Array& params, bool fHelp)
|
||||
return "wallet encrypted; Zcash server stopping, restart to run with encrypted wallet. The keypool has been flushed, you need to make a new backup.";
|
||||
}
|
||||
|
||||
Value lockunspent(const Array& params, bool fHelp)
|
||||
UniValue lockunspent(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -2135,7 +2134,7 @@ Value lockunspent(const Array& params, bool fHelp)
|
||||
const UniValue& output = outputs[idx];
|
||||
if (!output.isObject())
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, expected object");
|
||||
const Object& o = output.get_obj();
|
||||
const UniValue& o = output.get_obj();
|
||||
|
||||
RPCTypeCheckObj(o, boost::assign::map_list_of("txid", UniValue::VSTR)("vout", UniValue::VNUM));
|
||||
|
||||
@@ -2158,7 +2157,7 @@ Value lockunspent(const Array& params, bool fHelp)
|
||||
return true;
|
||||
}
|
||||
|
||||
Value listlockunspent(const Array& params, bool fHelp)
|
||||
UniValue listlockunspent(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -2207,7 +2206,7 @@ Value listlockunspent(const Array& params, bool fHelp)
|
||||
return ret;
|
||||
}
|
||||
|
||||
Value settxfee(const Array& params, bool fHelp)
|
||||
UniValue settxfee(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -2236,7 +2235,7 @@ Value settxfee(const Array& params, bool fHelp)
|
||||
return true;
|
||||
}
|
||||
|
||||
Value getwalletinfo(const Array& params, bool fHelp)
|
||||
UniValue getwalletinfo(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -2276,7 +2275,7 @@ Value getwalletinfo(const Array& params, bool fHelp)
|
||||
return obj;
|
||||
}
|
||||
|
||||
Value resendwallettransactions(const Array& params, bool fHelp)
|
||||
UniValue resendwallettransactions(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -2301,7 +2300,7 @@ Value resendwallettransactions(const Array& params, bool fHelp)
|
||||
return result;
|
||||
}
|
||||
|
||||
Value listunspent(const Array& params, bool fHelp)
|
||||
UniValue listunspent(const UniValue& params, bool fHelp)
|
||||
{
|
||||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
@@ -2356,7 +2355,7 @@ Value listunspent(const Array& params, bool fHelp)
|
||||
if (params.size() > 2) {
|
||||
UniValue inputs = params[2].get_array();
|
||||
for (unsigned int idx = 0; idx < inputs.size(); idx++) {
|
||||
const Value& input = inputs[idx];
|
||||
const UniValue& input = inputs[idx];
|
||||
CBitcoinAddress address(input.get_str());
|
||||
if (!address.IsValid())
|
||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, string("Invalid Zcash address: ")+input.get_str());
|
||||
|
||||
Reference in New Issue
Block a user