confirm_secret_for_address returns the previous secret

This commit is contained in:
Sosthene 2024-11-25 22:26:50 +01:00 committed by Nicolas Cantu
parent 4412cc00b2
commit 933c579366

View File

@ -92,15 +92,16 @@ impl SecretsStore {
self.unconfirmed_secrets.push(new_secret);
}
pub fn confirm_secret_for_address(&mut self, secret: AnkSharedSecretHash, address: SilentPaymentAddress) {
/// Returns the previous secret for this address, if any
pub fn confirm_secret_for_address(&mut self, secret: AnkSharedSecretHash, address: SilentPaymentAddress) -> Option<AnkSharedSecretHash> {
if let Some(pos) = self.unconfirmed_secrets.iter()
.position(|s| *s == secret)
{
self.shared_secrets.insert(address, self.unconfirmed_secrets.swap_remove(pos));
self.shared_secrets.insert(address, self.unconfirmed_secrets.swap_remove(pos))
} else {
// We didn't know about that secret, just add it
// TODO if we already had a secret for this address we just replace it for now
self.shared_secrets.insert(address, secret);
self.shared_secrets.insert(address, secret)
}
}