A user reported to me that they are unable to create a PSBT with a legacy watchonly wallet when they use the GUI. They get an error “The amount exceeds your balance”.
I think the issue is that the GUI will retrieve the wallet’s balance via AvailableCoins
before calling CreateTransaction
. This call to AvailableCoins
is resulting in fewer coins being returned with recent changes to how AvailableCoins
works, particularly with additional filtering of spendable coins and preset coins.
Note that this does not effect descriptor wallets. A workaround for this issue is to switch to using descriptor wallets. An existing legacy wallet can be turned into a descriptor wallet using the migratewallet
RPC. However many watchonly legacy wallets are likely the result of importing descriptors via importmulti
. For such wallets, I recommend creating a new descriptor wallet and re-importing the descriptors.