|
|
|
@ -40,17 +40,17 @@
|
|
|
|
|
|
|
|
|
|
static const std::string WALLET_ENDPOINT_BASE = "/wallet/";
|
|
|
|
|
|
|
|
|
|
CWallet *GetWalletForJSONRPCRequest(const JSONRPCRequest& request)
|
|
|
|
|
std::shared_ptr<CWallet> GetWalletForJSONRPCRequest(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
if (request.URI.substr(0, WALLET_ENDPOINT_BASE.size()) == WALLET_ENDPOINT_BASE) {
|
|
|
|
|
// wallet endpoint was used
|
|
|
|
|
std::string requestedWallet = urlDecode(request.URI.substr(WALLET_ENDPOINT_BASE.size()));
|
|
|
|
|
CWallet* pwallet = GetWallet(requestedWallet);
|
|
|
|
|
std::shared_ptr<CWallet> pwallet = GetWallet(requestedWallet);
|
|
|
|
|
if (!pwallet) throw JSONRPCError(RPC_WALLET_NOT_FOUND, "Requested wallet does not exist or is not loaded");
|
|
|
|
|
return pwallet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::vector<CWallet*> wallets = GetWallets();
|
|
|
|
|
std::vector<std::shared_ptr<CWallet>> wallets = GetWallets();
|
|
|
|
|
return wallets.size() == 1 || (request.fHelp && wallets.size() > 0) ? wallets[0] : nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -134,7 +134,9 @@ static std::string LabelFromValue(const UniValue& value)
|
|
|
|
|
|
|
|
|
|
static UniValue getnewaddress(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -198,7 +200,9 @@ CTxDestination GetLabelDestination(CWallet* const pwallet, const std::string& la
|
|
|
|
|
|
|
|
|
|
static UniValue getlabeladdress(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -256,7 +260,9 @@ static UniValue getlabeladdress(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getrawchangeaddress(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -304,7 +310,9 @@ static UniValue getrawchangeaddress(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue setlabel(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -358,7 +366,9 @@ static UniValue setlabel(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getaccount(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -401,7 +411,9 @@ static UniValue getaccount(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getaddressesbyaccount(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -487,7 +499,9 @@ static CTransactionRef SendMoney(CWallet * const pwallet, const CTxDestination &
|
|
|
|
|
|
|
|
|
|
static UniValue sendtoaddress(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -574,7 +588,9 @@ static UniValue sendtoaddress(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue listaddressgroupings(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -631,7 +647,9 @@ static UniValue listaddressgroupings(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue signmessage(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -692,7 +710,9 @@ static UniValue signmessage(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getreceivedbyaddress(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -757,7 +777,9 @@ static UniValue getreceivedbyaddress(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getreceivedbylabel(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -827,7 +849,9 @@ static UniValue getreceivedbylabel(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getbalance(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -910,7 +934,9 @@ static UniValue getbalance(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getunconfirmedbalance(const JSONRPCRequest &request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -932,7 +958,9 @@ static UniValue getunconfirmedbalance(const JSONRPCRequest &request)
|
|
|
|
|
|
|
|
|
|
static UniValue movecmd(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -989,7 +1017,9 @@ static UniValue movecmd(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue sendfrom(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -1062,7 +1092,9 @@ static UniValue sendfrom(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue sendmany(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -1257,7 +1289,9 @@ static UniValue sendmany(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue addmultisigaddress(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -1392,7 +1426,9 @@ public:
|
|
|
|
|
|
|
|
|
|
static UniValue addwitnessaddress(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -1624,7 +1660,9 @@ static UniValue ListReceived(CWallet * const pwallet, const UniValue& params, bo
|
|
|
|
|
|
|
|
|
|
static UniValue listreceivedbyaddress(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -1673,7 +1711,9 @@ static UniValue listreceivedbyaddress(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue listreceivedbylabel(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -1838,7 +1878,9 @@ static void AcentryToJSON(const CAccountingEntry& acentry, const std::string& st
|
|
|
|
|
|
|
|
|
|
UniValue listtransactions(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2026,7 +2068,9 @@ UniValue listtransactions(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue listaccounts(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2119,7 +2163,9 @@ static UniValue listaccounts(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue listsinceblock(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2258,7 +2304,9 @@ static UniValue listsinceblock(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue gettransaction(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2352,7 +2400,9 @@ static UniValue gettransaction(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue abandontransaction(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2396,7 +2446,9 @@ static UniValue abandontransaction(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue backupwallet(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2429,7 +2481,9 @@ static UniValue backupwallet(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue keypoolrefill(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2476,7 +2530,9 @@ static void LockWallet(CWallet* pWallet)
|
|
|
|
|
|
|
|
|
|
static UniValue walletpassphrase(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2549,7 +2605,9 @@ static UniValue walletpassphrase(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue walletpassphrasechange(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2598,7 +2656,9 @@ static UniValue walletpassphrasechange(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue walletlock(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2636,7 +2696,9 @@ static UniValue walletlock(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue encryptwallet(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2696,7 +2758,9 @@ static UniValue encryptwallet(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue lockunspent(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2823,7 +2887,9 @@ static UniValue lockunspent(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue listlockunspent(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2874,7 +2940,9 @@ static UniValue listlockunspent(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue settxfee(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2903,7 +2971,9 @@ static UniValue settxfee(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getwalletinfo(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -2984,14 +3054,14 @@ static UniValue listwallets(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
UniValue obj(UniValue::VARR);
|
|
|
|
|
|
|
|
|
|
for (CWallet* pwallet : GetWallets()) {
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
for (const std::shared_ptr<CWallet>& wallet : GetWallets()) {
|
|
|
|
|
if (!EnsureWalletIsAvailable(wallet.get(), request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LOCK(pwallet->cs_wallet);
|
|
|
|
|
LOCK(wallet->cs_wallet);
|
|
|
|
|
|
|
|
|
|
obj.push_back(pwallet->GetName());
|
|
|
|
|
obj.push_back(wallet->GetName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return obj;
|
|
|
|
@ -3029,7 +3099,7 @@ UniValue loadwallet(const JSONRPCRequest& request)
|
|
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Wallet file verification failed: " + error);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CWallet * const wallet = CWallet::CreateWalletFromFile(wallet_file, fs::absolute(wallet_file, GetWalletDir()));
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = CWallet::CreateWalletFromFile(wallet_file, fs::absolute(wallet_file, GetWalletDir()));
|
|
|
|
|
if (!wallet) {
|
|
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Wallet loading failed.");
|
|
|
|
|
}
|
|
|
|
@ -3046,7 +3116,9 @@ UniValue loadwallet(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue resendwallettransactions(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -3081,7 +3153,9 @@ static UniValue resendwallettransactions(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue listunspent(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -3252,7 +3326,9 @@ static UniValue listunspent(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue fundrawtransaction(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -3452,7 +3528,9 @@ static UniValue fundrawtransaction(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
UniValue signrawtransactionwithwallet(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -3521,7 +3599,9 @@ UniValue signrawtransactionwithwallet(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue bumpfee(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp))
|
|
|
|
|
return NullUniValue;
|
|
|
|
@ -3670,7 +3750,9 @@ static UniValue bumpfee(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
UniValue generate(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
@ -3715,7 +3797,9 @@ UniValue generate(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
UniValue rescanblockchain(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -3920,7 +4004,9 @@ static UniValue AddressBookDataToJSON(const CAddressBookData& data, const bool v
|
|
|
|
|
|
|
|
|
|
UniValue getaddressinfo(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -4038,7 +4124,9 @@ UniValue getaddressinfo(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue getaddressesbylabel(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -4081,7 +4169,9 @@ static UniValue getaddressesbylabel(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
static UniValue listlabels(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet * const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|
}
|
|
|
|
@ -4133,7 +4223,8 @@ static UniValue listlabels(const JSONRPCRequest& request)
|
|
|
|
|
|
|
|
|
|
UniValue sethdseed(const JSONRPCRequest& request)
|
|
|
|
|
{
|
|
|
|
|
CWallet* const pwallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
|
|
|
|
CWallet* const pwallet = wallet.get();
|
|
|
|
|
|
|
|
|
|
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
|
|
|
return NullUniValue;
|
|
|
|
|