Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/qt/rpcconsole.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ namespace {

// don't add private key handling cmd's to the history
const QStringList historyFilter = QStringList()
<< "createwallet"
<< "createwalletdescriptor"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why add this, but not importdescriptors?

Copy link
Author

@waketraindev waketraindev Oct 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I was testing this patch, I ran into some exceptions in importdescriptors related to
the internal label and the range label (see bitcoin repo #31514, #32376, #33614, #33655)
and the command line history was helpful for manually editing to get it to pass succesfully;

At that point, I used #882 to manually clear the command history.

I wasn't sure about the commands that require a "desc" (descriptor) and allowed private ones,
so I held off until I could do some manual testing.

Potential list:

  • Have passphrase:
    added createwallet "wallet_name" ( disable_private_keys blank "passphrase" avoid_reuse descriptors load_on_startup external_signer )
    added encryptwallet "passphrase"
    added migratewallet ( "wallet_name" "passphrase" )
    added walletpassphrase "passphrase" timeout
    added walletpassphrasechange "oldpassphrase" "newpassphrase

  • Have hdkey:
    added createwalletdescriptor "type" ( {"internal":bool,"hdkey":"str",...} )

  • Have privatekey or privkey
    added signrawtransactionwithkey "hexstring" ["privatekey",...] ( [{"txid":"hex","vout":n,"scriptPubKey":"hex","redeemScript":"hex","witnessScript":"hex","amount":amount},...] "sighashtype" )
    added signmessagewithprivkey "privkey" "message"

To check which support or allow private descriptors:

  • Have desc or descriptor:
    deriveaddresses "descriptor" ( range ) [accepts private descriptor]
    getdescriptorinfo "descriptor" [accepts private descriptor]
    descriptorprocesspsbt "psbt" ["",{"desc":"str","range":n or [n,n]},...] ( "sighashtype" bip32derivs finalize ) [accepts private descriptor]
    utxoupdatepsbt "psbt" ( ["",{"desc":"str","range":n or [n,n]},...] ) [accepts private descriptor]
    importdescriptors requests descriptor in requests [accepts private descriptor]

I also noticed that commands with more complex parameters or arguments (#907) can behave unexpectedly when repeated from the command line, at which point manually clearing the command history (#882) can be more practical for the user.

I'd be happy to add importdescriptors and other suggested privacy related commands.

Should all the commands accepting descriptor be added?

<< "migratewallet"
<< "signmessagewithprivkey"
<< "signrawtransactionwithkey"
<< "walletpassphrase"
Expand Down
Loading