wallet: store watch-only wallet correctly when change_password()
is called
#8998
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Monero GUI code was calling
Monero::wallet::setPassword()
on every open/close for some reason, and the oldstore_to()
code calledstore_keys()
withwatch_only=false
, even for watch-only wallets. This caused a bug where the watch-only keys file got saved with with the JSON fieldwatch_only
set to 0, and after saving a watch-only wallet once, a user could never open it back up against becauseload()
errored out. This never got brought up before this because you would have to change the file location of the watch-only wallet to see this bug, and I guess that didn't happen often, but calling the newstore_to()
function with the newforce_rewrite
parameter set totrue
triggers key restoring and the bug appeared.