URI: 
       twallet: min_acceptable_gap should mimic wallet.synchronize - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit ac6a5a3c5fb0acb43384538f874f22ed49bd538d
   DIR parent f90d96b3465733cc9aeec73b131c741c84a7c34c
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Mon,  2 Mar 2020 18:53:04 +0100
       
       wallet: min_acceptable_gap should mimic wallet.synchronize
       
       if wallet.synchronize uses address_is_old, so should min_acceptable_gap
       
       Diffstat:
         M electrum/wallet.py                  |       9 ++++++---
       
       1 file changed, 6 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/electrum/wallet.py b/electrum/wallet.py
       t@@ -1187,7 +1187,9 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
                return not self.is_watching_only() and hasattr(self.keystore, 'get_private_key')
        
            def address_is_old(self, address: str, *, req_conf: int = 3) -> bool:
       -        """Returns whether address has any history that is deeply confirmed."""
       +        """Returns whether address has any history that is deeply confirmed.
       +        Used for reorg-safe(ish) gap limit roll-forward.
       +        """
                max_conf = -1
                h = self.db.get_addr_history(address)
                needs_spv_check = not self.config.get("skipmerklecheck", False)
       t@@ -2155,6 +2157,7 @@ class Deterministic_Wallet(Abstract_Wallet):
        
            def change_gap_limit(self, value):
                '''This method is not called in the code, it is kept for console use'''
       +        value = int(value)
                if value >= self.min_acceptable_gap():
                    self.gap_limit = value
                    self.db.put('gap_limit', self.gap_limit)
       t@@ -2171,14 +2174,14 @@ class Deterministic_Wallet(Abstract_Wallet):
                    k += 1
                return k
        
       -    def min_acceptable_gap(self):
       +    def min_acceptable_gap(self) -> int:
                # fixme: this assumes wallet is synchronized
                n = 0
                nmax = 0
                addresses = self.get_receiving_addresses()
                k = self.num_unused_trailing_addresses(addresses)
                for addr in addresses[0:-k]:
       -            if self.db.get_addr_history(addr):
       +            if self.address_is_old(addr):
                        n = 0
                    else:
                        n += 1