This PR is replaced by #27224 (because of a permissions issue it was closed and locked and couldn’t be reopened)
This is based on #21353. The non-base commits are:
This is cleanup that doesn’t change external behavior.
- Removes awkward
StringMap
intermediate representation - Deals with receive request “rr” keys in walletdb.cpp instead of all over qt, wallet, and interfaces code
- Deals with destination “used” keys in walletdb.cpp instead of all over wallet code
- Adds test coverage
- Reduces code (+85/-138 lines)
- Reduces memory usage
This PR doesn’t change externally observable behavior. Internally, only change in behavior is that EraseDestData deletes directly from database because the StringMap
is gone. This is more direct and efficient because it uses a single btree 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