mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03:00
Merge #12559: Avoid locking cs_main in some wallet RPC
00f58f8c48
rpc: Avoid locking cs_main in some wallet RPC (João Barbosa)
Pull request description:
Avoid locking `cs_main` in the folllowing wallet RPC:
- `decoderawtransaction`
- `getnewaddress`
- `getrawchangeaddress`
- `setlabel`
Tree-SHA512: 54089766b2a969a17479af6c60e8ce151fac1f8cec268d43c61e679d5d17e76d17e414240c9ca2bfd280165f3a04e24a51310eb283591cd601a7eebc8b2423ea
This commit is contained in:
commit
540bf8aacc
2 changed files with 3 additions and 4 deletions
|
@ -562,7 +562,6 @@ static UniValue decoderawtransaction(const JSONRPCRequest& request)
|
||||||
+ HelpExampleRpc("decoderawtransaction", "\"hexstring\"")
|
+ HelpExampleRpc("decoderawtransaction", "\"hexstring\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK(cs_main);
|
|
||||||
RPCTypeCheck(request.params, {UniValue::VSTR, UniValue::VBOOL});
|
RPCTypeCheck(request.params, {UniValue::VSTR, UniValue::VBOOL});
|
||||||
|
|
||||||
CMutableTransaction mtx;
|
CMutableTransaction mtx;
|
||||||
|
|
|
@ -165,7 +165,7 @@ static UniValue getnewaddress(const JSONRPCRequest& request)
|
||||||
throw JSONRPCError(RPC_WALLET_ERROR, "Error: Private keys are disabled for this wallet");
|
throw JSONRPCError(RPC_WALLET_ERROR, "Error: Private keys are disabled for this wallet");
|
||||||
}
|
}
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK(pwallet->cs_wallet);
|
||||||
|
|
||||||
// Parse the label first so we don't generate a key if there's an error
|
// Parse the label first so we don't generate a key if there's an error
|
||||||
std::string label;
|
std::string label;
|
||||||
|
@ -276,7 +276,7 @@ static UniValue getrawchangeaddress(const JSONRPCRequest& request)
|
||||||
throw JSONRPCError(RPC_WALLET_ERROR, "Error: Private keys are disabled for this wallet");
|
throw JSONRPCError(RPC_WALLET_ERROR, "Error: Private keys are disabled for this wallet");
|
||||||
}
|
}
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK(pwallet->cs_wallet);
|
||||||
|
|
||||||
if (!pwallet->IsLocked()) {
|
if (!pwallet->IsLocked()) {
|
||||||
pwallet->TopUpKeyPool();
|
pwallet->TopUpKeyPool();
|
||||||
|
@ -331,7 +331,7 @@ static UniValue setlabel(const JSONRPCRequest& request)
|
||||||
+ HelpExampleRpc("setlabel", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\", \"tabby\"")
|
+ HelpExampleRpc("setlabel", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\", \"tabby\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK(pwallet->cs_wallet);
|
||||||
|
|
||||||
CTxDestination dest = DecodeDestination(request.params[0].get_str());
|
CTxDestination dest = DecodeDestination(request.params[0].get_str());
|
||||||
if (!IsValidDestination(dest)) {
|
if (!IsValidDestination(dest)) {
|
||||||
|
|
Loading…
Reference in a new issue