Bitcoin
Classes | Functions | Variables
rpcwallet.cpp File Reference
#include <amount.h>
#include <consensus/validation.h>
#include <core_io.h>
#include <init.h>
#include <interfaces/chain.h>
#include <key_io.h>
#include <node/transaction.h>
#include <outputtype.h>
#include <policy/feerate.h>
#include <policy/fees.h>
#include <policy/rbf.h>
#include <rpc/rawtransaction_util.h>
#include <rpc/server.h>
#include <rpc/util.h>
#include <script/descriptor.h>
#include <script/sign.h>
#include <util/bip32.h>
#include <util/fees.h>
#include <util/moneystr.h>
#include <util/system.h>
#include <util/url.h>
#include <util/validation.h>
#include <wallet/coincontrol.h>
#include <wallet/feebumper.h>
#include <wallet/psbtwallet.h>
#include <wallet/rpcwallet.h>
#include <wallet/wallet.h>
#include <wallet/walletdb.h>
#include <wallet/walletutil.h>
#include <stdint.h>
#include <univalue.h>
#include <functional>

Classes

struct  tallyitem
 
class  DescribeWalletAddressVisitor
 

Functions

static bool GetAvoidReuseFlag (CWallet *const pwallet, const UniValue &param)
 
bool HaveKey (const CWallet &wallet, const CKey &key)
 
bool GetWalletNameFromJSONRPCRequest (const JSONRPCRequest &request, std::string &wallet_name)
 
std::shared_ptr< CWalletGetWalletForJSONRPCRequest (const JSONRPCRequest &request)
 
std::string HelpRequiringPassphrase (const CWallet *pwallet)
 
bool EnsureWalletIsAvailable (const CWallet *pwallet, bool avoidException)
 
void EnsureWalletIsUnlocked (const CWallet *pwallet)
 
static void WalletTxToJSON (interfaces::Chain &chain, interfaces::Chain::Lock &locked_chain, const CWalletTx &wtx, UniValue &entry)
 
static std::string LabelFromValue (const UniValue &value)
 
static UniValue getnewaddress (const JSONRPCRequest &request)
 
static UniValue getrawchangeaddress (const JSONRPCRequest &request)
 
static UniValue setlabel (const JSONRPCRequest &request)
 
static CTransactionRef SendMoney (interfaces::Chain::Lock &locked_chain, CWallet *const pwallet, const CTxDestination &address, CAmount nValue, bool fSubtractFeeFromAmount, const CCoinControl &coin_control, mapValue_t mapValue)
 
static UniValue sendtoaddress (const JSONRPCRequest &request)
 
static UniValue listaddressgroupings (const JSONRPCRequest &request)
 
static UniValue signmessage (const JSONRPCRequest &request)
 
static UniValue getreceivedbyaddress (const JSONRPCRequest &request)
 
static UniValue getreceivedbylabel (const JSONRPCRequest &request)
 
static UniValue getbalance (const JSONRPCRequest &request)
 
static UniValue getunconfirmedbalance (const JSONRPCRequest &request)
 
static UniValue sendmany (const JSONRPCRequest &request)
 
static UniValue addmultisigaddress (const JSONRPCRequest &request)
 
static UniValue ListReceived (interfaces::Chain::Lock &locked_chain, CWallet *const pwallet, const UniValue &params, bool by_label) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
 
static UniValue listreceivedbyaddress (const JSONRPCRequest &request)
 
static UniValue listreceivedbylabel (const JSONRPCRequest &request)
 
static void MaybePushAddress (UniValue &entry, const CTxDestination &dest)
 
static void ListTransactions (interfaces::Chain::Lock &locked_chain, CWallet *const pwallet, const CWalletTx &wtx, int nMinDepth, bool fLong, UniValue &ret, const isminefilter &filter_ismine, const std::string *filter_label) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
 
UniValue listtransactions (const JSONRPCRequest &request)
 
static UniValue listsinceblock (const JSONRPCRequest &request)
 
static UniValue gettransaction (const JSONRPCRequest &request)
 
static UniValue abandontransaction (const JSONRPCRequest &request)
 
static UniValue backupwallet (const JSONRPCRequest &request)
 
static UniValue keypoolrefill (const JSONRPCRequest &request)
 
static UniValue walletpassphrase (const JSONRPCRequest &request)
 
static UniValue walletpassphrasechange (const JSONRPCRequest &request)
 
static UniValue walletlock (const JSONRPCRequest &request)
 
static UniValue encryptwallet (const JSONRPCRequest &request)
 
static UniValue lockunspent (const JSONRPCRequest &request)
 
static UniValue listlockunspent (const JSONRPCRequest &request)
 
static UniValue settxfee (const JSONRPCRequest &request)
 
static UniValue getbalances (const JSONRPCRequest &request)
 
static UniValue getwalletinfo (const JSONRPCRequest &request)
 
static UniValue listwalletdir (const JSONRPCRequest &request)
 
static UniValue listwallets (const JSONRPCRequest &request)
 
static UniValue loadwallet (const JSONRPCRequest &request)
 
static UniValue setwalletflag (const JSONRPCRequest &request)
 
static UniValue createwallet (const JSONRPCRequest &request)
 
static UniValue unloadwallet (const JSONRPCRequest &request)
 
static UniValue listunspent (const JSONRPCRequest &request)
 
void FundTransaction (CWallet *const pwallet, CMutableTransaction &tx, CAmount &fee_out, int &change_position, UniValue options)
 
static UniValue fundrawtransaction (const JSONRPCRequest &request)
 
UniValue signrawtransactionwithwallet (const JSONRPCRequest &request)
 
static UniValue bumpfee (const JSONRPCRequest &request)
 
UniValue rescanblockchain (const JSONRPCRequest &request)
 
static UniValue DescribeWalletAddress (CWallet *pwallet, const CTxDestination &dest)
 
static UniValue AddressBookDataToJSON (const CAddressBookData &data, const bool verbose)
 
UniValue getaddressinfo (const JSONRPCRequest &request)
 
static UniValue getaddressesbylabel (const JSONRPCRequest &request)
 
static UniValue listlabels (const JSONRPCRequest &request)
 
UniValue sethdseed (const JSONRPCRequest &request)
 
UniValue walletprocesspsbt (const JSONRPCRequest &request)
 
UniValue walletcreatefundedpsbt (const JSONRPCRequest &request)
 
UniValue abortrescan (const JSONRPCRequest &request)
 
UniValue dumpprivkey (const JSONRPCRequest &request)
 
UniValue importprivkey (const JSONRPCRequest &request)
 
UniValue importaddress (const JSONRPCRequest &request)
 
UniValue importpubkey (const JSONRPCRequest &request)
 
UniValue dumpwallet (const JSONRPCRequest &request)
 
UniValue importwallet (const JSONRPCRequest &request)
 
UniValue importprunedfunds (const JSONRPCRequest &request)
 
UniValue removeprunedfunds (const JSONRPCRequest &request)
 
UniValue importmulti (const JSONRPCRequest &request)
 
void RegisterWalletRPCCommands (interfaces::Chain &chain, std::vector< std::unique_ptr< interfaces::Handler >> &handlers)
 

Variables

static const std::string WALLET_ENDPOINT_BASE = "/wallet/"
 
static const CRPCCommand commands []
 

Function Documentation

◆ abandontransaction()

static UniValue abandontransaction ( const JSONRPCRequest request)
static

◆ abortrescan()

UniValue abortrescan ( const JSONRPCRequest request)

◆ addmultisigaddress()

static UniValue addmultisigaddress ( const JSONRPCRequest request)
static

◆ AddressBookDataToJSON()

static UniValue AddressBookDataToJSON ( const CAddressBookData data,
const bool  verbose 
)
static

Convert CAddressBookData to JSON record.

◆ backupwallet()

static UniValue backupwallet ( const JSONRPCRequest request)
static

◆ bumpfee()

static UniValue bumpfee ( const JSONRPCRequest request)
static

◆ createwallet()

static UniValue createwallet ( const JSONRPCRequest request)
static

◆ DescribeWalletAddress()

static UniValue DescribeWalletAddress ( CWallet pwallet,
const CTxDestination dest 
)
static

◆ dumpprivkey()

UniValue dumpprivkey ( const JSONRPCRequest request)

◆ dumpwallet()

UniValue dumpwallet ( const JSONRPCRequest request)

◆ encryptwallet()

static UniValue encryptwallet ( const JSONRPCRequest request)
static

◆ EnsureWalletIsAvailable()

bool EnsureWalletIsAvailable ( const CWallet pwallet,
bool  avoidException 
)

◆ EnsureWalletIsUnlocked()

void EnsureWalletIsUnlocked ( const CWallet pwallet)

◆ fundrawtransaction()

static UniValue fundrawtransaction ( const JSONRPCRequest request)
static

◆ FundTransaction()

void FundTransaction ( CWallet *const  pwallet,
CMutableTransaction tx,
CAmount fee_out,
int &  change_position,
UniValue  options 
)

◆ getaddressesbylabel()

static UniValue getaddressesbylabel ( const JSONRPCRequest request)
static

◆ getaddressinfo()

UniValue getaddressinfo ( const JSONRPCRequest request)

◆ GetAvoidReuseFlag()

static bool GetAvoidReuseFlag ( CWallet *const  pwallet,
const UniValue param 
)
inlinestatic

◆ getbalance()

static UniValue getbalance ( const JSONRPCRequest request)
static

◆ getbalances()

static UniValue getbalances ( const JSONRPCRequest request)
static

◆ getnewaddress()

static UniValue getnewaddress ( const JSONRPCRequest request)
static

◆ getrawchangeaddress()

static UniValue getrawchangeaddress ( const JSONRPCRequest request)
static

◆ getreceivedbyaddress()

static UniValue getreceivedbyaddress ( const JSONRPCRequest request)
static

◆ getreceivedbylabel()

static UniValue getreceivedbylabel ( const JSONRPCRequest request)
static

◆ gettransaction()

static UniValue gettransaction ( const JSONRPCRequest request)
static

◆ getunconfirmedbalance()

static UniValue getunconfirmedbalance ( const JSONRPCRequest request)
static

◆ GetWalletForJSONRPCRequest()

std::shared_ptr<CWallet> GetWalletForJSONRPCRequest ( const JSONRPCRequest request)

Figures out what wallet, if any, to use for a JSONRPCRequest.

Parameters
[in]requestJSONRPCRequest that wishes to access a wallet
Returns
nullptr if no wallet should be used, or a pointer to the CWallet

◆ getwalletinfo()

static UniValue getwalletinfo ( const JSONRPCRequest request)
static

◆ GetWalletNameFromJSONRPCRequest()

bool GetWalletNameFromJSONRPCRequest ( const JSONRPCRequest request,
std::string &  wallet_name 
)

◆ HaveKey()

bool HaveKey ( const CWallet wallet,
const CKey key 
)

Checks if a CKey is in the given CWallet compressed or otherwise

◆ HelpRequiringPassphrase()

std::string HelpRequiringPassphrase ( const CWallet pwallet)

◆ importaddress()

UniValue importaddress ( const JSONRPCRequest request)

◆ importmulti()

UniValue importmulti ( const JSONRPCRequest request)

◆ importprivkey()

UniValue importprivkey ( const JSONRPCRequest request)

◆ importprunedfunds()

UniValue importprunedfunds ( const JSONRPCRequest request)

◆ importpubkey()

UniValue importpubkey ( const JSONRPCRequest request)

◆ importwallet()

UniValue importwallet ( const JSONRPCRequest request)

◆ keypoolrefill()

static UniValue keypoolrefill ( const JSONRPCRequest request)
static

◆ LabelFromValue()

static std::string LabelFromValue ( const UniValue value)
static

◆ listaddressgroupings()

static UniValue listaddressgroupings ( const JSONRPCRequest request)
static

◆ listlabels()

static UniValue listlabels ( const JSONRPCRequest request)
static

◆ listlockunspent()

static UniValue listlockunspent ( const JSONRPCRequest request)
static

◆ ListReceived()

static UniValue ListReceived ( interfaces::Chain::Lock locked_chain,
CWallet *const  pwallet,
const UniValue params,
bool  by_label 
) -> cs_wallet)
static

◆ listreceivedbyaddress()

static UniValue listreceivedbyaddress ( const JSONRPCRequest request)
static

◆ listreceivedbylabel()

static UniValue listreceivedbylabel ( const JSONRPCRequest request)
static

◆ listsinceblock()

static UniValue listsinceblock ( const JSONRPCRequest request)
static

◆ ListTransactions()

static void ListTransactions ( interfaces::Chain::Lock locked_chain,
CWallet *const  pwallet,
const CWalletTx wtx,
int  nMinDepth,
bool  fLong,
UniValue ret,
const isminefilter filter_ismine,
const std::string *  filter_label 
) -> cs_wallet)
static

List transactions based on the given criteria.

Parameters
pwalletThe wallet.
wtxThe wallet transaction.
nMinDepthThe minimum confirmation depth.
fLongWhether to include the JSON version of the transaction.
retThe UniValue into which the result is stored.
filter_ismineThe "is mine" filter flags.
filter_labelOptional label string to filter incoming transactions.

◆ listtransactions()

UniValue listtransactions ( const JSONRPCRequest request)

◆ listunspent()

static UniValue listunspent ( const JSONRPCRequest request)
static

◆ listwalletdir()

static UniValue listwalletdir ( const JSONRPCRequest request)
static

◆ listwallets()

static UniValue listwallets ( const JSONRPCRequest request)
static

◆ loadwallet()

static UniValue loadwallet ( const JSONRPCRequest request)
static

◆ lockunspent()

static UniValue lockunspent ( const JSONRPCRequest request)
static

◆ MaybePushAddress()

static void MaybePushAddress ( UniValue entry,
const CTxDestination dest 
)
static

◆ RegisterWalletRPCCommands()

void RegisterWalletRPCCommands ( interfaces::Chain chain,
std::vector< std::unique_ptr< interfaces::Handler >> &  handlers 
)

◆ removeprunedfunds()

UniValue removeprunedfunds ( const JSONRPCRequest request)

◆ rescanblockchain()

UniValue rescanblockchain ( const JSONRPCRequest request)

◆ sendmany()

static UniValue sendmany ( const JSONRPCRequest request)
static

◆ SendMoney()

static CTransactionRef SendMoney ( interfaces::Chain::Lock locked_chain,
CWallet *const  pwallet,
const CTxDestination address,
CAmount  nValue,
bool  fSubtractFeeFromAmount,
const CCoinControl coin_control,
mapValue_t  mapValue 
)
static

◆ sendtoaddress()

static UniValue sendtoaddress ( const JSONRPCRequest request)
static

◆ sethdseed()

UniValue sethdseed ( const JSONRPCRequest request)

◆ setlabel()

static UniValue setlabel ( const JSONRPCRequest request)
static

◆ settxfee()

static UniValue settxfee ( const JSONRPCRequest request)
static

◆ setwalletflag()

static UniValue setwalletflag ( const JSONRPCRequest request)
static

◆ signmessage()

static UniValue signmessage ( const JSONRPCRequest request)
static

◆ signrawtransactionwithwallet()

UniValue signrawtransactionwithwallet ( const JSONRPCRequest request)

◆ unloadwallet()

static UniValue unloadwallet ( const JSONRPCRequest request)
static

◆ walletcreatefundedpsbt()

UniValue walletcreatefundedpsbt ( const JSONRPCRequest request)

◆ walletlock()

static UniValue walletlock ( const JSONRPCRequest request)
static

◆ walletpassphrase()

static UniValue walletpassphrase ( const JSONRPCRequest request)
static

◆ walletpassphrasechange()

static UniValue walletpassphrasechange ( const JSONRPCRequest request)
static

◆ walletprocesspsbt()

UniValue walletprocesspsbt ( const JSONRPCRequest request)

◆ WalletTxToJSON()

static void WalletTxToJSON ( interfaces::Chain chain,
interfaces::Chain::Lock locked_chain,
const CWalletTx wtx,
UniValue entry 
)
static

Variable Documentation

◆ commands

const CRPCCommand commands[]
static

◆ WALLET_ENDPOINT_BASE

const std::string WALLET_ENDPOINT_BASE = "/wallet/"
static