mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 23:18:14 +01:00
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:
@@ -21,10 +21,9 @@
|
||||
|
||||
#include <boost/assign/list_of.hpp>
|
||||
|
||||
#include "json_spirit_wrapper.h"
|
||||
#include "univalue/univalue.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace json_spirit;
|
||||
|
||||
int64_t nWalletUnlockTime;
|
||||
static CCriticalSection cs_nWalletUnlockTime;
|
||||
@@ -54,7 +53,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));
|
||||
@@ -78,7 +77,7 @@ void WalletTxToJSON(const CWalletTx& wtx, Object& entry)
|
||||
entry.push_back(Pair(item.first, item.second));
|
||||
}
|
||||
|
||||
string AccountFromValue(const Value& value)
|
||||
string AccountFromValue(const UniValue& value)
|
||||
{
|
||||
string strAccount = value.get_str();
|
||||
if (strAccount == "*")
|
||||
@@ -86,7 +85,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;
|
||||
@@ -165,7 +164,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;
|
||||
@@ -190,14 +189,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;
|
||||
@@ -232,7 +231,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;
|
||||
@@ -278,7 +277,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;
|
||||
@@ -310,7 +309,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;
|
||||
@@ -378,7 +377,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;
|
||||
@@ -434,7 +433,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;
|
||||
@@ -486,7 +485,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;
|
||||
@@ -542,7 +541,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;
|
||||
@@ -600,7 +599,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;
|
||||
@@ -689,7 +688,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;
|
||||
@@ -764,7 +763,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;
|
||||
@@ -780,7 +779,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;
|
||||
@@ -850,7 +849,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;
|
||||
@@ -913,7 +912,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;
|
||||
@@ -992,7 +991,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;
|
||||
}
|
||||
@@ -1023,9 +1022,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;
|
||||
@@ -1088,7 +1087,7 @@ struct tallyitem
|
||||
}
|
||||
};
|
||||
|
||||
Value ListReceived(const Array& params, bool fByAccounts)
|
||||
UniValue ListReceived(const UniValue& params, bool fByAccounts)
|
||||
{
|
||||
// Minimum confirmations
|
||||
int nMinDepth = 1;
|
||||
@@ -1206,7 +1205,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;
|
||||
@@ -1243,7 +1242,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;
|
||||
@@ -1286,7 +1285,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;
|
||||
@@ -1356,7 +1355,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("*"));
|
||||
|
||||
@@ -1373,7 +1372,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;
|
||||
@@ -1494,7 +1493,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;
|
||||
@@ -1574,7 +1573,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;
|
||||
@@ -1665,7 +1664,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;
|
||||
@@ -1743,7 +1742,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;
|
||||
@@ -1769,7 +1768,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;
|
||||
@@ -1813,7 +1812,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;
|
||||
@@ -1873,7 +1872,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;
|
||||
@@ -1919,7 +1918,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;
|
||||
@@ -1958,7 +1957,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;
|
||||
@@ -2015,7 +2014,7 @@ Value encryptwallet(const Array& params, bool fHelp)
|
||||
return "wallet encrypted; Bitcoin 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;
|
||||
@@ -2076,7 +2075,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));
|
||||
|
||||
@@ -2099,7 +2098,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;
|
||||
@@ -2148,7 +2147,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;
|
||||
@@ -2177,7 +2176,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;
|
||||
@@ -2217,7 +2216,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;
|
||||
@@ -2242,7 +2241,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;
|
||||
@@ -2297,7 +2296,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 Bitcoin address: ")+input.get_str());
|
||||
|
||||
Reference in New Issue
Block a user