simplify the create/restore procedure
This commit is contained in:
@@ -87,8 +87,7 @@ class Wallet:
|
||||
# there is a difference between wallet.up_to_date and interface.is_up_to_date()
|
||||
# interface.is_up_to_date() returns true when all requests have been answered and processed
|
||||
# wallet.up_to_date is true when the wallet is synchronized (stronger requirement)
|
||||
self.up_to_date_event = threading.Event()
|
||||
self.up_to_date_event.clear()
|
||||
|
||||
self.up_to_date = False
|
||||
self.lock = threading.Lock()
|
||||
self.tx_event = threading.Event()
|
||||
@@ -100,9 +99,11 @@ class Wallet:
|
||||
self.update_tx_outputs(tx_hash)
|
||||
|
||||
|
||||
def init_up_to_date(self):
|
||||
self.up_to_date_event.clear()
|
||||
self.up_to_date = False
|
||||
def set_up_to_date(self,b):
|
||||
with self.lock: self.up_to_date = b
|
||||
|
||||
def is_up_to_date(self):
|
||||
with self.lock: return self.up_to_date
|
||||
|
||||
|
||||
def import_key(self, keypair, password):
|
||||
@@ -920,10 +921,6 @@ class Wallet:
|
||||
return address, amount, label, message, signature, identity, url
|
||||
|
||||
|
||||
def update(self):
|
||||
self.interface.poke('synchronizer')
|
||||
self.up_to_date_event.wait(10000000000)
|
||||
|
||||
|
||||
def freeze(self,addr):
|
||||
if addr in self.all_addresses() and addr not in self.frozen_addresses:
|
||||
@@ -1086,7 +1083,7 @@ class WalletSynchronizer(threading.Thread):
|
||||
self.wallet = wallet
|
||||
self.interface = self.wallet.interface
|
||||
self.interface.register_channel('synchronizer')
|
||||
self.wallet.interface.register_callback('connected', self.wallet.init_up_to_date)
|
||||
self.wallet.interface.register_callback('connected', lambda: self.wallet.set_up_to_date(False))
|
||||
self.wallet.interface.register_callback('connected', lambda: self.interface.send([('server.banner',[])],'synchronizer') )
|
||||
self.was_updated = True
|
||||
|
||||
@@ -1098,14 +1095,13 @@ class WalletSynchronizer(threading.Thread):
|
||||
return
|
||||
|
||||
if not self.interface.is_up_to_date('synchronizer'):
|
||||
if self.wallet.up_to_date:
|
||||
self.wallet.up_to_date = False
|
||||
if self.wallet.is_up_to_date():
|
||||
self.wallet.set_up_to_date(False)
|
||||
self.was_updated = True
|
||||
return
|
||||
|
||||
self.wallet.up_to_date = True
|
||||
self.wallet.set_up_to_date(True)
|
||||
self.was_updated = True
|
||||
self.wallet.up_to_date_event.set()
|
||||
|
||||
|
||||
def subscribe_to_addresses(self, addresses):
|
||||
|
||||
Reference in New Issue
Block a user