mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-03 19:51:32 +02:00
Disallow sendtoaddress and sendmany when private keys disabled
This commit is contained in:
parent
3c9d9d21e1
commit
0997019e76
@ -400,6 +400,12 @@ UniValue SendMoney(CWallet* const pwallet, const CCoinControl &coin_control, std
|
|||||||
{
|
{
|
||||||
EnsureWalletIsUnlocked(pwallet);
|
EnsureWalletIsUnlocked(pwallet);
|
||||||
|
|
||||||
|
// This function is only used by sendtoaddress and sendmany.
|
||||||
|
// This should always try to sign, if we don't have private keys, don't try to do anything here.
|
||||||
|
if (pwallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS)) {
|
||||||
|
throw JSONRPCError(RPC_WALLET_ERROR, "Error: Private keys are disabled for this wallet");
|
||||||
|
}
|
||||||
|
|
||||||
// Shuffle recipient list
|
// Shuffle recipient list
|
||||||
std::shuffle(recipients.begin(), recipients.end(), FastRandomContext());
|
std::shuffle(recipients.begin(), recipients.end(), FastRandomContext());
|
||||||
|
|
||||||
@ -409,7 +415,7 @@ UniValue SendMoney(CWallet* const pwallet, const CCoinControl &coin_control, std
|
|||||||
bilingual_str error;
|
bilingual_str error;
|
||||||
CTransactionRef tx;
|
CTransactionRef tx;
|
||||||
FeeCalculation fee_calc_out;
|
FeeCalculation fee_calc_out;
|
||||||
bool fCreated = pwallet->CreateTransaction(recipients, tx, nFeeRequired, nChangePosRet, error, coin_control, fee_calc_out, !pwallet->IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS));
|
const bool fCreated = pwallet->CreateTransaction(recipients, tx, nFeeRequired, nChangePosRet, error, coin_control, fee_calc_out, true);
|
||||||
if (!fCreated) {
|
if (!fCreated) {
|
||||||
throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, error.original);
|
throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, error.original);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user