From 1a8cc68f53cf59b91fcec09d375092730bd6ce72 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Fri, 18 Nov 2022 16:59:47 +0000 Subject: [PATCH] wallet: _requests_addr_to_key map to prefer unexpired reqs if collision --- electrum/wallet.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/electrum/wallet.py b/electrum/wallet.py index 9a8cbe2fa..d5fd202da 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -1061,6 +1061,10 @@ class Abstract_Wallet(ABC, Logger, EventListener): self._requests_addr_to_key = {} for req in self._receive_requests.values(): if req.is_lightning() and (addr:=req.get_address()): + # give priority to not-yet-expired requests, to postpone reusing the address + # FIXME maybe self._receive_requests should be a multi-map instead + if req.has_expired() and addr in self._requests_addr_to_key: + continue self._requests_addr_to_key[addr] = req.get_id() def _prepare_onchain_invoice_paid_detection(self):