fix(wallet): avoids empty addresses in node identity #5224
Merged
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.
Description
Returns an empty set of addresses if the wallet address has never been set.
Motivation and Context
Previously a Multiaddr::empty would be persisted in the wallet db as the first entry. This PR changes this so that when comms assigns an onion address later (if configured to do so) that address will be the first entry.
Wallet connections would fail on the base node with this error:
Peer connection upgrade failed for peer because 'InvalidMultiaddr("Multiaddr was empty")'
The function
NodeIdentity::first_public_address
will panic with no addresses, but does not seem to be causing an issue so any further fixes are left to another PRIf this error is encountered, you'll need to remove the empty address from the node identity/db (probably just delete your wallet db).
How Has This Been Tested?
Manually: fresh wallet connects to base node