This is cleanup that doesn’t change external behavior. Benefits of the cleanup are:
- Removes awkward
StringMap
intermediate representation for wallet address metadata. - Simplifies
CWallet
, deals with used address and received request serialization inwalletdb.cpp
instead of higher level wallet code - Adds test coverage and documentation
This PR doesn’t change externally observable behavior. Internally, the only change in behavior is that EraseDestData
deletes rows directly from the database because they are no longer stored in memory. This is more direct and efficient because it uses a single lookup and scan instead of multiple lookups.
Motivation for this cleanup is making changes like #18550, #18192, #13756 easier to reason about and less likely to result in unintended behavior and bugs
This PR is a rebased copy of #18608. For some reason that PR is locked and couldn’t be reopened or commented on.
This PR is an alternative to #27215 with differences described in #27215#pullrequestreview-1329028143