mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-01 10:43:10 +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);
|
||||
|
||||
// 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
|
||||
std::shuffle(recipients.begin(), recipients.end(), FastRandomContext());
|
||||
|
||||
@ -409,7 +415,7 @@ UniValue SendMoney(CWallet* const pwallet, const CCoinControl &coin_control, std
|
||||
bilingual_str error;
|
||||
CTransactionRef tx;
|
||||
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) {
|
||||
throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, error.original);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user