Merge #813: db: check for change using address strings only

79c5f92d9c690c36308a9d3fa4b35a4c4f6e01d4 db: check for change using address strings only (jp1ac4)

Pull request description:

  Comparing the address itself includes the network, but an unchecked signet address will have its network set as testnet by `assume_checked` and so change addresses will not be matched.

ACKs for top commit:
  darosior:
    utACK 79c5f92d9c690c36308a9d3fa4b35a4c4f6e01d4

Tree-SHA512: 50c87a6feac3f659584e92ad8781092bf513d63a590453f87d8617ec4b309ec3128050e6c10114d0150e08a373d4d1824a99b2530ab82eb5b14dd3790ec15237
This commit is contained in:
Antoine Poinsot 2023-11-15 12:35:58 +01:00
commit e0fba88930
No known key found for this signature in database
GPG Key ID: E13FC145CD3F4304

View File

@ -243,7 +243,10 @@ impl DatabaseConnection for SqliteConn {
self.db_address(address).map(|db_addr| {
(
db_addr.derivation_index,
address == &db_addr.change_address.assume_checked(),
// We only compare address strings in case `assume_checked()` uses a different network.
// E.g. An unchecked signet address would have its network set to testnet and so comparing
// to a signet `Address` would never match.
address.to_string() == db_addr.change_address.assume_checked().to_string(),
)
})
}