wallet: address_is_old is now checked using SPV (during sync)
This commit is contained in:
@@ -976,17 +976,18 @@ class Abstract_Wallet(AddressSynchronizer):
|
|||||||
return not self.is_watching_only() and hasattr(self.keystore, 'get_private_key')
|
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:
|
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."""
|
||||||
|
|
||||||
Note: this is NOT verified using SPV. (TODO should it be?)
|
|
||||||
"""
|
|
||||||
max_conf = -1
|
max_conf = -1
|
||||||
h = self.db.get_addr_history(address)
|
h = self.db.get_addr_history(address)
|
||||||
|
needs_spv_check = not self.config.get("skipmerklecheck", False)
|
||||||
for tx_hash, tx_height in h:
|
for tx_hash, tx_height in h:
|
||||||
if tx_height <= 0:
|
if needs_spv_check:
|
||||||
tx_age = 0
|
tx_age = self.get_tx_height(tx_hash).conf
|
||||||
else:
|
else:
|
||||||
tx_age = self.get_local_height() - tx_height + 1
|
if tx_height <= 0:
|
||||||
|
tx_age = 0
|
||||||
|
else:
|
||||||
|
tx_age = self.get_local_height() - tx_height + 1
|
||||||
max_conf = max(max_conf, tx_age)
|
max_conf = max(max_conf, tx_age)
|
||||||
return max_conf >= req_conf
|
return max_conf >= req_conf
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user