mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 10:43:19 -03:00
refactor: Combine GetWalletForJSONRPCRequest and EnsureWalletIsAvailable functions
This simplifies control flow and also helps get rid of the ::vpwallets variable, because EnsureWalletIsAvailable doesn't have access to the request context.
This commit is contained in:
parent
0fc6ea216c
commit
f42f5e58f5
3 changed files with 58 additions and 212 deletions
|
@ -93,10 +93,8 @@ static void RescanWallet(CWallet& wallet, const WalletRescanReserver& reserver,
|
||||||
UniValue importprivkey(const JSONRPCRequest& request)
|
UniValue importprivkey(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"importprivkey",
|
RPCHelpMan{"importprivkey",
|
||||||
"\nAdds a private key (as returned by dumpprivkey) to your wallet. Requires a new wallet backup.\n"
|
"\nAdds a private key (as returned by dumpprivkey) to your wallet. Requires a new wallet backup.\n"
|
||||||
|
@ -196,10 +194,8 @@ UniValue importprivkey(const JSONRPCRequest& request)
|
||||||
UniValue abortrescan(const JSONRPCRequest& request)
|
UniValue abortrescan(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"abortrescan",
|
RPCHelpMan{"abortrescan",
|
||||||
"\nStops current wallet rescan triggered by an RPC call, e.g. by an importprivkey call.\n"
|
"\nStops current wallet rescan triggered by an RPC call, e.g. by an importprivkey call.\n"
|
||||||
|
@ -224,10 +220,8 @@ UniValue abortrescan(const JSONRPCRequest& request)
|
||||||
UniValue importaddress(const JSONRPCRequest& request)
|
UniValue importaddress(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"importaddress",
|
RPCHelpMan{"importaddress",
|
||||||
"\nAdds an address or script (in hex) that can be watched as if it were in your wallet but cannot be used to spend. Requires a new wallet backup.\n"
|
"\nAdds an address or script (in hex) that can be watched as if it were in your wallet but cannot be used to spend. Requires a new wallet backup.\n"
|
||||||
|
@ -326,10 +320,8 @@ UniValue importaddress(const JSONRPCRequest& request)
|
||||||
UniValue importprunedfunds(const JSONRPCRequest& request)
|
UniValue importprunedfunds(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"importprunedfunds",
|
RPCHelpMan{"importprunedfunds",
|
||||||
"\nImports funds without rescan. Corresponding address or script must previously be included in wallet. Aimed towards pruned wallets. The end-user is responsible to import additional transactions that subsequently spend the imported outputs or rescan after the point in the blockchain the transaction is included.\n",
|
"\nImports funds without rescan. Corresponding address or script must previously be included in wallet. Aimed towards pruned wallets. The end-user is responsible to import additional transactions that subsequently spend the imported outputs or rescan after the point in the blockchain the transaction is included.\n",
|
||||||
|
@ -384,10 +376,8 @@ UniValue importprunedfunds(const JSONRPCRequest& request)
|
||||||
UniValue removeprunedfunds(const JSONRPCRequest& request)
|
UniValue removeprunedfunds(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"removeprunedfunds",
|
RPCHelpMan{"removeprunedfunds",
|
||||||
"\nDeletes the specified transaction from the wallet. Meant for use with pruned wallets and as a companion to importprunedfunds. This will affect wallet balances.\n",
|
"\nDeletes the specified transaction from the wallet. Meant for use with pruned wallets and as a companion to importprunedfunds. This will affect wallet balances.\n",
|
||||||
|
@ -423,10 +413,8 @@ UniValue removeprunedfunds(const JSONRPCRequest& request)
|
||||||
UniValue importpubkey(const JSONRPCRequest& request)
|
UniValue importpubkey(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"importpubkey",
|
RPCHelpMan{"importpubkey",
|
||||||
"\nAdds a public key (in hex) that can be watched as if it were in your wallet but cannot be used to spend. Requires a new wallet backup.\n"
|
"\nAdds a public key (in hex) that can be watched as if it were in your wallet but cannot be used to spend. Requires a new wallet backup.\n"
|
||||||
|
@ -510,10 +498,8 @@ UniValue importpubkey(const JSONRPCRequest& request)
|
||||||
UniValue importwallet(const JSONRPCRequest& request)
|
UniValue importwallet(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"importwallet",
|
RPCHelpMan{"importwallet",
|
||||||
"\nImports keys from a wallet dump file (see dumpwallet). Requires a new wallet backup to include imported keys.\n"
|
"\nImports keys from a wallet dump file (see dumpwallet). Requires a new wallet backup to include imported keys.\n"
|
||||||
|
@ -668,10 +654,8 @@ UniValue importwallet(const JSONRPCRequest& request)
|
||||||
UniValue dumpprivkey(const JSONRPCRequest& request)
|
UniValue dumpprivkey(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"dumpprivkey",
|
RPCHelpMan{"dumpprivkey",
|
||||||
"\nReveals the private key corresponding to 'address'.\n"
|
"\nReveals the private key corresponding to 'address'.\n"
|
||||||
|
@ -715,9 +699,7 @@ UniValue dumpprivkey(const JSONRPCRequest& request)
|
||||||
UniValue dumpwallet(const JSONRPCRequest& request)
|
UniValue dumpwallet(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const pwallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const pwallet = GetWalletForJSONRPCRequest(request);
|
||||||
if (!EnsureWalletIsAvailable(pwallet.get(), request.fHelp)) {
|
if (!pwallet) return NullUniValue;
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"dumpwallet",
|
RPCHelpMan{"dumpwallet",
|
||||||
"\nDumps all wallet keys in a human-readable format to a server-side file. This does not allow overwriting existing files.\n"
|
"\nDumps all wallet keys in a human-readable format to a server-side file. This does not allow overwriting existing files.\n"
|
||||||
|
@ -1260,10 +1242,8 @@ static int64_t GetImportTimestamp(const UniValue& data, int64_t now)
|
||||||
UniValue importmulti(const JSONRPCRequest& mainRequest)
|
UniValue importmulti(const JSONRPCRequest& mainRequest)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(mainRequest);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(mainRequest);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, mainRequest.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"importmulti",
|
RPCHelpMan{"importmulti",
|
||||||
"\nImport addresses/scripts (with private or public keys, redeem script (P2SH)), optionally rescanning the blockchain from the earliest creation time of the imported scripts. Requires a new wallet backup.\n"
|
"\nImport addresses/scripts (with private or public keys, redeem script (P2SH)), optionally rescanning the blockchain from the earliest creation time of the imported scripts. Requires a new wallet backup.\n"
|
||||||
|
@ -1588,10 +1568,8 @@ static UniValue ProcessDescriptorImport(CWallet * const pwallet, const UniValue&
|
||||||
UniValue importdescriptors(const JSONRPCRequest& main_request) {
|
UniValue importdescriptors(const JSONRPCRequest& main_request) {
|
||||||
// Acquire the wallet
|
// Acquire the wallet
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(main_request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(main_request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
if (!EnsureWalletIsAvailable(pwallet, main_request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"importdescriptors",
|
RPCHelpMan{"importdescriptors",
|
||||||
"\nImport descriptors. This will trigger a rescan of the blockchain based on the earliest timestamp of all descriptors being imported. Requires a new wallet backup.\n"
|
"\nImport descriptors. This will trigger a rescan of the blockchain based on the earliest timestamp of all descriptors being imported. Requires a new wallet backup.\n"
|
||||||
|
|
|
@ -101,13 +101,12 @@ std::shared_ptr<CWallet> GetWalletForJSONRPCRequest(const JSONRPCRequest& reques
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::shared_ptr<CWallet>> wallets = GetWallets();
|
std::vector<std::shared_ptr<CWallet>> wallets = GetWallets();
|
||||||
return wallets.size() == 1 || (request.fHelp && wallets.size() > 0) ? wallets[0] : nullptr;
|
if (wallets.size() == 1 || (request.fHelp && wallets.size() > 0)) {
|
||||||
}
|
return wallets[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (request.fHelp) return nullptr;
|
||||||
|
|
||||||
bool EnsureWalletIsAvailable(const CWallet* pwallet, bool avoidException)
|
|
||||||
{
|
|
||||||
if (pwallet) return true;
|
|
||||||
if (avoidException) return false;
|
|
||||||
if (!HasWallets()) {
|
if (!HasWallets()) {
|
||||||
throw JSONRPCError(
|
throw JSONRPCError(
|
||||||
RPC_METHOD_NOT_FOUND, "Method not found (wallet method is disabled because no wallet is loaded)");
|
RPC_METHOD_NOT_FOUND, "Method not found (wallet method is disabled because no wallet is loaded)");
|
||||||
|
@ -196,12 +195,9 @@ static std::string LabelFromValue(const UniValue& value)
|
||||||
static UniValue getnewaddress(const JSONRPCRequest& request)
|
static UniValue getnewaddress(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getnewaddress",
|
RPCHelpMan{"getnewaddress",
|
||||||
"\nReturns a new Bitcoin address for receiving payments.\n"
|
"\nReturns a new Bitcoin address for receiving payments.\n"
|
||||||
"If 'label' is specified, it is added to the address book \n"
|
"If 'label' is specified, it is added to the address book \n"
|
||||||
|
@ -249,12 +245,9 @@ static UniValue getnewaddress(const JSONRPCRequest& request)
|
||||||
static UniValue getrawchangeaddress(const JSONRPCRequest& request)
|
static UniValue getrawchangeaddress(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getrawchangeaddress",
|
RPCHelpMan{"getrawchangeaddress",
|
||||||
"\nReturns a new Bitcoin address, for receiving change.\n"
|
"\nReturns a new Bitcoin address, for receiving change.\n"
|
||||||
"This is for use with raw transactions, NOT normal use.\n",
|
"This is for use with raw transactions, NOT normal use.\n",
|
||||||
|
@ -295,12 +288,9 @@ static UniValue getrawchangeaddress(const JSONRPCRequest& request)
|
||||||
static UniValue setlabel(const JSONRPCRequest& request)
|
static UniValue setlabel(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"setlabel",
|
RPCHelpMan{"setlabel",
|
||||||
"\nSets the label associated with the given address.\n",
|
"\nSets the label associated with the given address.\n",
|
||||||
{
|
{
|
||||||
|
@ -367,12 +357,9 @@ static CTransactionRef SendMoney(CWallet* const pwallet, const CTxDestination& a
|
||||||
static UniValue sendtoaddress(const JSONRPCRequest& request)
|
static UniValue sendtoaddress(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"sendtoaddress",
|
RPCHelpMan{"sendtoaddress",
|
||||||
"\nSend an amount to a given address." +
|
"\nSend an amount to a given address." +
|
||||||
HELP_REQUIRING_PASSPHRASE,
|
HELP_REQUIRING_PASSPHRASE,
|
||||||
|
@ -462,12 +449,9 @@ static UniValue sendtoaddress(const JSONRPCRequest& request)
|
||||||
static UniValue listaddressgroupings(const JSONRPCRequest& request)
|
static UniValue listaddressgroupings(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"listaddressgroupings",
|
RPCHelpMan{"listaddressgroupings",
|
||||||
"\nLists groups of addresses which have had their common ownership\n"
|
"\nLists groups of addresses which have had their common ownership\n"
|
||||||
"made public by common use as inputs or as the resulting change\n"
|
"made public by common use as inputs or as the resulting change\n"
|
||||||
|
@ -524,12 +508,9 @@ static UniValue listaddressgroupings(const JSONRPCRequest& request)
|
||||||
static UniValue signmessage(const JSONRPCRequest& request)
|
static UniValue signmessage(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"signmessage",
|
RPCHelpMan{"signmessage",
|
||||||
"\nSign a message with the private key of an address" +
|
"\nSign a message with the private key of an address" +
|
||||||
HELP_REQUIRING_PASSPHRASE,
|
HELP_REQUIRING_PASSPHRASE,
|
||||||
|
@ -629,12 +610,9 @@ static CAmount GetReceived(const CWallet& wallet, const UniValue& params, bool b
|
||||||
static UniValue getreceivedbyaddress(const JSONRPCRequest& request)
|
static UniValue getreceivedbyaddress(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getreceivedbyaddress",
|
RPCHelpMan{"getreceivedbyaddress",
|
||||||
"\nReturns the total amount received by the given address in transactions with at least minconf confirmations.\n",
|
"\nReturns the total amount received by the given address in transactions with at least minconf confirmations.\n",
|
||||||
{
|
{
|
||||||
|
@ -669,12 +647,9 @@ static UniValue getreceivedbyaddress(const JSONRPCRequest& request)
|
||||||
static UniValue getreceivedbylabel(const JSONRPCRequest& request)
|
static UniValue getreceivedbylabel(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getreceivedbylabel",
|
RPCHelpMan{"getreceivedbylabel",
|
||||||
"\nReturns the total amount received by addresses with <label> in transactions with at least [minconf] confirmations.\n",
|
"\nReturns the total amount received by addresses with <label> in transactions with at least [minconf] confirmations.\n",
|
||||||
{
|
{
|
||||||
|
@ -709,12 +684,9 @@ static UniValue getreceivedbylabel(const JSONRPCRequest& request)
|
||||||
static UniValue getbalance(const JSONRPCRequest& request)
|
static UniValue getbalance(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getbalance",
|
RPCHelpMan{"getbalance",
|
||||||
"\nReturns the total available balance.\n"
|
"\nReturns the total available balance.\n"
|
||||||
"The available balance is what the wallet considers currently spendable, and is\n"
|
"The available balance is what the wallet considers currently spendable, and is\n"
|
||||||
|
@ -766,12 +738,9 @@ static UniValue getbalance(const JSONRPCRequest& request)
|
||||||
static UniValue getunconfirmedbalance(const JSONRPCRequest &request)
|
static UniValue getunconfirmedbalance(const JSONRPCRequest &request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getunconfirmedbalance",
|
RPCHelpMan{"getunconfirmedbalance",
|
||||||
"DEPRECATED\nIdentical to getbalances().mine.untrusted_pending\n",
|
"DEPRECATED\nIdentical to getbalances().mine.untrusted_pending\n",
|
||||||
{},
|
{},
|
||||||
|
@ -792,12 +761,9 @@ static UniValue getunconfirmedbalance(const JSONRPCRequest &request)
|
||||||
static UniValue sendmany(const JSONRPCRequest& request)
|
static UniValue sendmany(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"sendmany",
|
RPCHelpMan{"sendmany",
|
||||||
"\nSend multiple times. Amounts are double-precision floating point numbers." +
|
"\nSend multiple times. Amounts are double-precision floating point numbers." +
|
||||||
HELP_REQUIRING_PASSPHRASE,
|
HELP_REQUIRING_PASSPHRASE,
|
||||||
|
@ -926,12 +892,9 @@ static UniValue sendmany(const JSONRPCRequest& request)
|
||||||
static UniValue addmultisigaddress(const JSONRPCRequest& request)
|
static UniValue addmultisigaddress(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"addmultisigaddress",
|
RPCHelpMan{"addmultisigaddress",
|
||||||
"\nAdd an nrequired-to-sign multisignature address to the wallet. Requires a new wallet backup.\n"
|
"\nAdd an nrequired-to-sign multisignature address to the wallet. Requires a new wallet backup.\n"
|
||||||
"Each key is a Bitcoin address or hex-encoded public key.\n"
|
"Each key is a Bitcoin address or hex-encoded public key.\n"
|
||||||
|
@ -1168,12 +1131,9 @@ static UniValue ListReceived(const CWallet* const pwallet, const UniValue& param
|
||||||
static UniValue listreceivedbyaddress(const JSONRPCRequest& request)
|
static UniValue listreceivedbyaddress(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"listreceivedbyaddress",
|
RPCHelpMan{"listreceivedbyaddress",
|
||||||
"\nList balances by receiving address.\n",
|
"\nList balances by receiving address.\n",
|
||||||
{
|
{
|
||||||
|
@ -1219,12 +1179,9 @@ static UniValue listreceivedbyaddress(const JSONRPCRequest& request)
|
||||||
static UniValue listreceivedbylabel(const JSONRPCRequest& request)
|
static UniValue listreceivedbylabel(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"listreceivedbylabel",
|
RPCHelpMan{"listreceivedbylabel",
|
||||||
"\nList received transactions by label.\n",
|
"\nList received transactions by label.\n",
|
||||||
{
|
{
|
||||||
|
@ -1380,12 +1337,9 @@ static const std::vector<RPCResult> TransactionDescriptionString()
|
||||||
UniValue listtransactions(const JSONRPCRequest& request)
|
UniValue listtransactions(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"listtransactions",
|
RPCHelpMan{"listtransactions",
|
||||||
"\nIf a label name is provided, this will return only incoming transactions paying to addresses with the specified label.\n"
|
"\nIf a label name is provided, this will return only incoming transactions paying to addresses with the specified label.\n"
|
||||||
"\nReturns up to 'count' most recent transactions skipping the first 'from' transactions.\n",
|
"\nReturns up to 'count' most recent transactions skipping the first 'from' transactions.\n",
|
||||||
|
@ -1493,10 +1447,7 @@ UniValue listtransactions(const JSONRPCRequest& request)
|
||||||
static UniValue listsinceblock(const JSONRPCRequest& request)
|
static UniValue listsinceblock(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const pwallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const pwallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!pwallet) return NullUniValue;
|
||||||
if (!EnsureWalletIsAvailable(pwallet.get(), request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"listsinceblock",
|
RPCHelpMan{"listsinceblock",
|
||||||
"\nGet all transactions in blocks since block [blockhash], or all transactions if omitted.\n"
|
"\nGet all transactions in blocks since block [blockhash], or all transactions if omitted.\n"
|
||||||
|
@ -1634,12 +1585,9 @@ static UniValue listsinceblock(const JSONRPCRequest& request)
|
||||||
static UniValue gettransaction(const JSONRPCRequest& request)
|
static UniValue gettransaction(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"gettransaction",
|
RPCHelpMan{"gettransaction",
|
||||||
"\nGet detailed information about in-wallet transaction <txid>\n",
|
"\nGet detailed information about in-wallet transaction <txid>\n",
|
||||||
{
|
{
|
||||||
|
@ -1747,12 +1695,9 @@ static UniValue gettransaction(const JSONRPCRequest& request)
|
||||||
static UniValue abandontransaction(const JSONRPCRequest& request)
|
static UniValue abandontransaction(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"abandontransaction",
|
RPCHelpMan{"abandontransaction",
|
||||||
"\nMark in-wallet transaction <txid> as abandoned\n"
|
"\nMark in-wallet transaction <txid> as abandoned\n"
|
||||||
"This will mark this transaction and all its in-wallet descendants as abandoned which will allow\n"
|
"This will mark this transaction and all its in-wallet descendants as abandoned which will allow\n"
|
||||||
|
@ -1791,12 +1736,9 @@ static UniValue abandontransaction(const JSONRPCRequest& request)
|
||||||
static UniValue backupwallet(const JSONRPCRequest& request)
|
static UniValue backupwallet(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"backupwallet",
|
RPCHelpMan{"backupwallet",
|
||||||
"\nSafely copies current wallet file to destination, which can be a directory or a path with filename.\n",
|
"\nSafely copies current wallet file to destination, which can be a directory or a path with filename.\n",
|
||||||
{
|
{
|
||||||
|
@ -1827,12 +1769,9 @@ static UniValue backupwallet(const JSONRPCRequest& request)
|
||||||
static UniValue keypoolrefill(const JSONRPCRequest& request)
|
static UniValue keypoolrefill(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"keypoolrefill",
|
RPCHelpMan{"keypoolrefill",
|
||||||
"\nFills the keypool."+
|
"\nFills the keypool."+
|
||||||
HELP_REQUIRING_PASSPHRASE,
|
HELP_REQUIRING_PASSPHRASE,
|
||||||
|
@ -1874,12 +1813,9 @@ static UniValue keypoolrefill(const JSONRPCRequest& request)
|
||||||
static UniValue walletpassphrase(const JSONRPCRequest& request)
|
static UniValue walletpassphrase(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"walletpassphrase",
|
RPCHelpMan{"walletpassphrase",
|
||||||
"\nStores the wallet decryption key in memory for 'timeout' seconds.\n"
|
"\nStores the wallet decryption key in memory for 'timeout' seconds.\n"
|
||||||
"This is needed prior to performing transactions related to private keys such as sending bitcoins\n"
|
"This is needed prior to performing transactions related to private keys such as sending bitcoins\n"
|
||||||
|
@ -1971,12 +1907,9 @@ static UniValue walletpassphrase(const JSONRPCRequest& request)
|
||||||
static UniValue walletpassphrasechange(const JSONRPCRequest& request)
|
static UniValue walletpassphrasechange(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"walletpassphrasechange",
|
RPCHelpMan{"walletpassphrasechange",
|
||||||
"\nChanges the wallet passphrase from 'oldpassphrase' to 'newpassphrase'.\n",
|
"\nChanges the wallet passphrase from 'oldpassphrase' to 'newpassphrase'.\n",
|
||||||
{
|
{
|
||||||
|
@ -2021,12 +1954,9 @@ static UniValue walletpassphrasechange(const JSONRPCRequest& request)
|
||||||
static UniValue walletlock(const JSONRPCRequest& request)
|
static UniValue walletlock(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"walletlock",
|
RPCHelpMan{"walletlock",
|
||||||
"\nRemoves the wallet encryption key from memory, locking the wallet.\n"
|
"\nRemoves the wallet encryption key from memory, locking the wallet.\n"
|
||||||
"After calling this method, you will need to call walletpassphrase again\n"
|
"After calling this method, you will need to call walletpassphrase again\n"
|
||||||
|
@ -2061,12 +1991,9 @@ static UniValue walletlock(const JSONRPCRequest& request)
|
||||||
static UniValue encryptwallet(const JSONRPCRequest& request)
|
static UniValue encryptwallet(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"encryptwallet",
|
RPCHelpMan{"encryptwallet",
|
||||||
"\nEncrypts the wallet with 'passphrase'. This is for first time encryption.\n"
|
"\nEncrypts the wallet with 'passphrase'. This is for first time encryption.\n"
|
||||||
"After this, any calls that interact with private keys such as sending or signing \n"
|
"After this, any calls that interact with private keys such as sending or signing \n"
|
||||||
|
@ -2121,12 +2048,9 @@ static UniValue encryptwallet(const JSONRPCRequest& request)
|
||||||
static UniValue lockunspent(const JSONRPCRequest& request)
|
static UniValue lockunspent(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"lockunspent",
|
RPCHelpMan{"lockunspent",
|
||||||
"\nUpdates list of temporarily unspendable outputs.\n"
|
"\nUpdates list of temporarily unspendable outputs.\n"
|
||||||
"Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs.\n"
|
"Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs.\n"
|
||||||
|
@ -2247,12 +2171,9 @@ static UniValue lockunspent(const JSONRPCRequest& request)
|
||||||
static UniValue listlockunspent(const JSONRPCRequest& request)
|
static UniValue listlockunspent(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"listlockunspent",
|
RPCHelpMan{"listlockunspent",
|
||||||
"\nReturns list of temporarily unspendable outputs.\n"
|
"\nReturns list of temporarily unspendable outputs.\n"
|
||||||
"See the lockunspent call to lock and unlock transactions for spending.\n",
|
"See the lockunspent call to lock and unlock transactions for spending.\n",
|
||||||
|
@ -2302,12 +2223,9 @@ static UniValue listlockunspent(const JSONRPCRequest& request)
|
||||||
static UniValue settxfee(const JSONRPCRequest& request)
|
static UniValue settxfee(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"settxfee",
|
RPCHelpMan{"settxfee",
|
||||||
"\nSet the transaction fee per kB for this wallet. Overrides the global -paytxfee command line parameter.\n"
|
"\nSet the transaction fee per kB for this wallet. Overrides the global -paytxfee command line parameter.\n"
|
||||||
"Can be deactivated by passing 0 as the fee. In that case automatic fee selection will be used by default.\n",
|
"Can be deactivated by passing 0 as the fee. In that case automatic fee selection will be used by default.\n",
|
||||||
|
@ -2345,9 +2263,7 @@ static UniValue settxfee(const JSONRPCRequest& request)
|
||||||
static UniValue getbalances(const JSONRPCRequest& request)
|
static UniValue getbalances(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const rpc_wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const rpc_wallet = GetWalletForJSONRPCRequest(request);
|
||||||
if (!EnsureWalletIsAvailable(rpc_wallet.get(), request.fHelp)) {
|
if (!rpc_wallet) return NullUniValue;
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
CWallet& wallet = *rpc_wallet;
|
CWallet& wallet = *rpc_wallet;
|
||||||
|
|
||||||
RPCHelpMan{
|
RPCHelpMan{
|
||||||
|
@ -2412,12 +2328,9 @@ static UniValue getbalances(const JSONRPCRequest& request)
|
||||||
static UniValue getwalletinfo(const JSONRPCRequest& request)
|
static UniValue getwalletinfo(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getwalletinfo",
|
RPCHelpMan{"getwalletinfo",
|
||||||
"Returns an object containing various wallet state info.\n",
|
"Returns an object containing various wallet state info.\n",
|
||||||
{},
|
{},
|
||||||
|
@ -2560,12 +2473,7 @@ static UniValue listwallets(const JSONRPCRequest& request)
|
||||||
UniValue obj(UniValue::VARR);
|
UniValue obj(UniValue::VARR);
|
||||||
|
|
||||||
for (const std::shared_ptr<CWallet>& wallet : GetWallets()) {
|
for (const std::shared_ptr<CWallet>& wallet : GetWallets()) {
|
||||||
if (!EnsureWalletIsAvailable(wallet.get(), request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
LOCK(wallet->cs_wallet);
|
LOCK(wallet->cs_wallet);
|
||||||
|
|
||||||
obj.push_back(wallet->GetName());
|
obj.push_back(wallet->GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2622,12 +2530,9 @@ static UniValue loadwallet(const JSONRPCRequest& request)
|
||||||
static UniValue setwalletflag(const JSONRPCRequest& request)
|
static UniValue setwalletflag(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string flags = "";
|
std::string flags = "";
|
||||||
for (auto& it : WALLET_FLAG_MAP)
|
for (auto& it : WALLET_FLAG_MAP)
|
||||||
if (it.second & MUTABLE_WALLET_FLAGS)
|
if (it.second & MUTABLE_WALLET_FLAGS)
|
||||||
|
@ -2805,12 +2710,9 @@ static UniValue unloadwallet(const JSONRPCRequest& request)
|
||||||
static UniValue listunspent(const JSONRPCRequest& request)
|
static UniValue listunspent(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{
|
RPCHelpMan{
|
||||||
"listunspent",
|
"listunspent",
|
||||||
"\nReturns array of unspent transaction outputs\n"
|
"\nReturns array of unspent transaction outputs\n"
|
||||||
|
@ -3138,12 +3040,9 @@ void FundTransaction(CWallet* const pwallet, CMutableTransaction& tx, CAmount& f
|
||||||
static UniValue fundrawtransaction(const JSONRPCRequest& request)
|
static UniValue fundrawtransaction(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"fundrawtransaction",
|
RPCHelpMan{"fundrawtransaction",
|
||||||
"\nAdd inputs to a transaction until it has enough in value to meet its out value.\n"
|
"\nAdd inputs to a transaction until it has enough in value to meet its out value.\n"
|
||||||
"This will not modify existing inputs, and will add at most one change output to the outputs.\n"
|
"This will not modify existing inputs, and will add at most one change output to the outputs.\n"
|
||||||
|
@ -3238,12 +3137,9 @@ static UniValue fundrawtransaction(const JSONRPCRequest& request)
|
||||||
UniValue signrawtransactionwithwallet(const JSONRPCRequest& request)
|
UniValue signrawtransactionwithwallet(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"signrawtransactionwithwallet",
|
RPCHelpMan{"signrawtransactionwithwallet",
|
||||||
"\nSign inputs for raw transaction (serialized, hex-encoded).\n"
|
"\nSign inputs for raw transaction (serialized, hex-encoded).\n"
|
||||||
"The second optional argument (may be null) is an array of previous transaction outputs that\n"
|
"The second optional argument (may be null) is an array of previous transaction outputs that\n"
|
||||||
|
@ -3332,12 +3228,9 @@ UniValue signrawtransactionwithwallet(const JSONRPCRequest& request)
|
||||||
static UniValue bumpfee(const JSONRPCRequest& request)
|
static UniValue bumpfee(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp))
|
|
||||||
return NullUniValue;
|
|
||||||
|
|
||||||
RPCHelpMan{"bumpfee",
|
RPCHelpMan{"bumpfee",
|
||||||
"\nBumps the fee of an opt-in-RBF transaction T, replacing it with a new transaction B.\n"
|
"\nBumps the fee of an opt-in-RBF transaction T, replacing it with a new transaction B.\n"
|
||||||
"An opt-in RBF transaction with the given txid must be in the wallet.\n"
|
"An opt-in RBF transaction with the given txid must be in the wallet.\n"
|
||||||
|
@ -3504,12 +3397,9 @@ static UniValue bumpfee(const JSONRPCRequest& request)
|
||||||
UniValue rescanblockchain(const JSONRPCRequest& request)
|
UniValue rescanblockchain(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"rescanblockchain",
|
RPCHelpMan{"rescanblockchain",
|
||||||
"\nRescan the local blockchain for wallet related transactions.\n"
|
"\nRescan the local blockchain for wallet related transactions.\n"
|
||||||
"Note: Use \"getwalletinfo\" to query the scanning progress.\n",
|
"Note: Use \"getwalletinfo\" to query the scanning progress.\n",
|
||||||
|
@ -3703,12 +3593,9 @@ static UniValue AddressBookDataToJSON(const CAddressBookData& data, const bool v
|
||||||
UniValue getaddressinfo(const JSONRPCRequest& request)
|
UniValue getaddressinfo(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getaddressinfo",
|
RPCHelpMan{"getaddressinfo",
|
||||||
"\nReturn information about the given bitcoin address.\n"
|
"\nReturn information about the given bitcoin address.\n"
|
||||||
"Some of the information will only be present if the address is in the active wallet.\n",
|
"Some of the information will only be present if the address is in the active wallet.\n",
|
||||||
|
@ -3846,12 +3733,9 @@ UniValue getaddressinfo(const JSONRPCRequest& request)
|
||||||
static UniValue getaddressesbylabel(const JSONRPCRequest& request)
|
static UniValue getaddressesbylabel(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"getaddressesbylabel",
|
RPCHelpMan{"getaddressesbylabel",
|
||||||
"\nReturns the list of addresses assigned the specified label.\n",
|
"\nReturns the list of addresses assigned the specified label.\n",
|
||||||
{
|
{
|
||||||
|
@ -3906,12 +3790,9 @@ static UniValue getaddressesbylabel(const JSONRPCRequest& request)
|
||||||
static UniValue listlabels(const JSONRPCRequest& request)
|
static UniValue listlabels(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"listlabels",
|
RPCHelpMan{"listlabels",
|
||||||
"\nReturns the list of all labels, or labels that are assigned to addresses with a specific purpose.\n",
|
"\nReturns the list of all labels, or labels that are assigned to addresses with a specific purpose.\n",
|
||||||
{
|
{
|
||||||
|
@ -3962,12 +3843,9 @@ static UniValue listlabels(const JSONRPCRequest& request)
|
||||||
UniValue sethdseed(const JSONRPCRequest& request)
|
UniValue sethdseed(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"sethdseed",
|
RPCHelpMan{"sethdseed",
|
||||||
"\nSet or generate a new HD wallet seed. Non-HD wallets will not be upgraded to being a HD wallet. Wallets that are already\n"
|
"\nSet or generate a new HD wallet seed. Non-HD wallets will not be upgraded to being a HD wallet. Wallets that are already\n"
|
||||||
"HD will have a new HD seed set so that new keys added to the keypool will be derived from this new seed.\n"
|
"HD will have a new HD seed set so that new keys added to the keypool will be derived from this new seed.\n"
|
||||||
|
@ -4035,12 +3913,9 @@ UniValue sethdseed(const JSONRPCRequest& request)
|
||||||
UniValue walletprocesspsbt(const JSONRPCRequest& request)
|
UniValue walletprocesspsbt(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
const CWallet* const pwallet = wallet.get();
|
const CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"walletprocesspsbt",
|
RPCHelpMan{"walletprocesspsbt",
|
||||||
"\nUpdate a PSBT with input information from our wallet and then sign inputs\n"
|
"\nUpdate a PSBT with input information from our wallet and then sign inputs\n"
|
||||||
"that we can sign for." +
|
"that we can sign for." +
|
||||||
|
@ -4102,12 +3977,9 @@ UniValue walletprocesspsbt(const JSONRPCRequest& request)
|
||||||
UniValue walletcreatefundedpsbt(const JSONRPCRequest& request)
|
UniValue walletcreatefundedpsbt(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"walletcreatefundedpsbt",
|
RPCHelpMan{"walletcreatefundedpsbt",
|
||||||
"\nCreates and funds a transaction in the Partially Signed Transaction format. Inputs will be added if supplied inputs are not enough\n"
|
"\nCreates and funds a transaction in the Partially Signed Transaction format. Inputs will be added if supplied inputs are not enough\n"
|
||||||
"Implements the Creator and Updater roles.\n",
|
"Implements the Creator and Updater roles.\n",
|
||||||
|
@ -4227,12 +4099,9 @@ UniValue walletcreatefundedpsbt(const JSONRPCRequest& request)
|
||||||
static UniValue upgradewallet(const JSONRPCRequest& request)
|
static UniValue upgradewallet(const JSONRPCRequest& request)
|
||||||
{
|
{
|
||||||
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
std::shared_ptr<CWallet> const wallet = GetWalletForJSONRPCRequest(request);
|
||||||
|
if (!wallet) return NullUniValue;
|
||||||
CWallet* const pwallet = wallet.get();
|
CWallet* const pwallet = wallet.get();
|
||||||
|
|
||||||
if (!EnsureWalletIsAvailable(pwallet, request.fHelp)) {
|
|
||||||
return NullUniValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
RPCHelpMan{"upgradewallet",
|
RPCHelpMan{"upgradewallet",
|
||||||
"\nUpgrade the wallet. Upgrades to the latest version if no version number is specified\n"
|
"\nUpgrade the wallet. Upgrades to the latest version if no version number is specified\n"
|
||||||
"New keys may be generated and a new wallet backup will need to be made.",
|
"New keys may be generated and a new wallet backup will need to be made.",
|
||||||
|
|
|
@ -31,7 +31,6 @@ Span<const CRPCCommand> GetWalletRPCCommands();
|
||||||
std::shared_ptr<CWallet> GetWalletForJSONRPCRequest(const JSONRPCRequest& request);
|
std::shared_ptr<CWallet> GetWalletForJSONRPCRequest(const JSONRPCRequest& request);
|
||||||
|
|
||||||
void EnsureWalletIsUnlocked(const CWallet*);
|
void EnsureWalletIsUnlocked(const CWallet*);
|
||||||
bool EnsureWalletIsAvailable(const CWallet*, bool avoidException);
|
|
||||||
WalletContext& EnsureWalletContext(const util::Ref& context);
|
WalletContext& EnsureWalletContext(const util::Ref& context);
|
||||||
LegacyScriptPubKeyMan& EnsureLegacyScriptPubKeyMan(CWallet& wallet, bool also_create = false);
|
LegacyScriptPubKeyMan& EnsureLegacyScriptPubKeyMan(CWallet& wallet, bool also_create = false);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue