17 const std::string
HELP_REQUIRING_PASSPHRASE{
"\nRequires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.\n"};
21 bool avoid_reuse = param.
isNull() ? can_avoid_reuse : param.
get_bool();
23 if (avoid_reuse && !can_avoid_reuse) {
36 if (include_watchonly.
isNull()) {
60 std::string wallet_name;
73 RPC_WALLET_NOT_FOUND,
"No wallet is loaded. Load a wallet using loadwallet or create a new one with createwallet. (Note: A default wallet is no longer automatically created)");
76 "Wallet file not specified (must request wallet RPC through /wallet/<filename> uri-path).");
88 auto wallet_context = util::AnyPtr<WalletContext>(
context);
89 if (!wallet_context) {
92 return *wallet_context;
99 if (!spk_man && also_create) {
100 spk_man =
wallet.GetOrCreateLegacyScriptPubKeyMan();
119 std::string label = value.
get_str();
128 for (
const auto& desc:
wallet.GetWalletDescriptors(script_pubkey)) {
129 parent_descs.
push_back(desc.descriptor->ToString());
131 entry.
pushKV(
"parent_descs", parent_descs);
No wallet specified (error when there are multiple wallets loaded)
void push_back(UniValue val)
Enter the wallet passphrase with walletpassphrase first.
#define CHECK_NONFATAL(condition)
Identity function.
bool ParseIncludeWatchonly(const UniValue &include_watchonly, const CWallet &wallet)
Used by RPC commands that have an include_watchonly parameter.
const std::string & get_str() const
This same wallet is already loaded.
Invalid, missing or duplicate parameter.
void HandleWalletError(const std::shared_ptr< CWallet > wallet, DatabaseStatus &status, bilingual_str &error)
UniValue JSONRPCError(int code, const std::string &message)
std::string LabelFromValue(const UniValue &value)
enum JSONRPCRequest::Mode mode
WalletContext & EnsureWalletContext(const std::any &context)
A CWallet maintains a set of transactions and balances, and provides the ability to create new transa...
Invalid wallet specified.
const std::string HELP_REQUIRING_PASSPHRASE
LegacyScriptPubKeyMan & EnsureLegacyScriptPubKeyMan(CWallet &wallet, bool also_create)
std::shared_ptr< CWallet > GetWallet(WalletContext &context, const std::string &name)
void pushKV(std::string key, UniValue val)
Serialized script, used inside transaction inputs and outputs.
WalletContext struct containing references to state shared between CWallet instances, like the reference to the chain interface, and the list of opened wallets.
UrlDecodeFn *const URL_DECODE
bool GetAvoidReuseFlag(const CWallet &wallet, const UniValue ¶m)
void EnsureWalletIsUnlocked(const CWallet &wallet)
std::shared_ptr< CWallet > wallet
There is already a wallet with the same name.
RPCErrorCode
Bitcoin RPC error codes.
void PushParentDescriptors(const CWallet &wallet, const CScript &script_pubkey, UniValue &entry)
Fetch parent descriptors of this scriptPubKey.
const LegacyScriptPubKeyMan & EnsureConstLegacyScriptPubKeyMan(const CWallet &wallet)
std::shared_ptr< CWallet > GetDefaultWallet(WalletContext &context, size_t &count)
bool error(const char *fmt, const Args &... args)
static const std::string WALLET_ENDPOINT_BASE
std::shared_ptr< CWallet > GetWalletForJSONRPCRequest(const JSONRPCRequest &request)
Figures out what wallet, if any, to use for a JSONRPCRequest.
bool GetWalletNameFromJSONRPCRequest(const JSONRPCRequest &request, std::string &wallet_name)