I've been testing out watch-only descriptor wallet usage on 0.20.0 with BIP32 Electrum/HW wallets, and while it appears to be generating the correct addresses, it keeps making seemingly unnecessary log entries in debug.log with the default logging level. Specifically, on startup, it complains that:
[testwallet] External scriptPubKey Manager for output type 0 does not exist [testwallet] Internal scriptPubKey Manager for output type 0 does not exist [testwallet] Internal scriptPubKey Manager for output type 1 does not exist [testwallet] Internal scriptPubKey Manager for output type 2 does not exist
and every time getnewaddress is invoked, it logs:
[testwallet] External scriptPubKey Manager for output type 0 does not exist
It seems to be complaining that I didn't load descriptors for P2PKH receiving addresses or any type of change address, but seeing as this is a watch-only wallet that is only using p2sh-segwit and bech32 type addresses, that is expected, and unless I'm misunderstanding something here, this should not raise any errors unless I actually try to generate addresses of that type.
To reproduce:
createwallet "testwallet" true true "" false true true
importdescriptors '[{ "desc": "wpkh([.../84h/0h/0h]xpub.../0/*)#...", "timestamp":"now", "active": true, "range":[0,100000] }]'
importdescriptors '[{ "desc": "sh(wpkh([.../49h/0h/0h]xpub.../0/*))#...", "timestamp":"now", "active": true, "range":[0,100000] }]'
getnewaddress "" bech32
getnewaddress "" p2sh-segwit
Both invocations of getnewaddress work and generate the correct address, but trigger the error to be logged.