Browse Source

simplification

283
thomasv 13 years ago
parent
commit
9c7a3c8329
  1. 11
      interface.py
  2. 19
      wallet.py

11
interface.py

@ -51,7 +51,7 @@ class Interface(threading.Thread):
#json
self.message_id = 0
self.responses = Queue.Queue()
self.methods = {}
self.unanswered_requests = {}
def poke(self):
# push a fake response so that the getting thread exits its loop
@ -68,7 +68,7 @@ class Interface(threading.Thread):
return
if msg_id is not None:
method, params = self.methods.pop(msg_id)
method, params = self.unanswered_requests.pop(msg_id)
result = c.get('result')
else:
# notification
@ -163,7 +163,7 @@ class HttpStratumInterface(PollingInterface):
method, params = m
if type(params) != type([]): params = [params]
data.append( { 'method':method, 'id':self.message_id, 'params':params } )
self.methods[self.message_id] = method, params
self.unanswered_requests[self.message_id] = method, params
self.message_id += 1
if data:
@ -256,7 +256,7 @@ class TcpStratumInterface(Interface):
for m in messages:
method, params = m
request = json.dumps( { 'id':self.message_id, 'method':method, 'params':params } )
self.methods[self.message_id] = method, params
self.unanswered_requests[self.message_id] = method, params
#print "-->",request
self.message_id += 1
out += request + '\n'
@ -362,9 +362,6 @@ class WalletSynchronizer(threading.Thread):
new_addresses = self.wallet.synchronize()
if new_addresses:
self.interface.subscribe(new_addresses)
for addr in new_addresses:
with self.wallet.lock:
self.wallet.addresses_waiting_for_status.append(addr)
if self.wallet.is_up_to_date():
if not self.wallet.up_to_date:

19
wallet.py

@ -283,9 +283,6 @@ class Wallet:
self.lock = threading.Lock()
self.tx_event = threading.Event()
#
self.addresses_waiting_for_status = []
self.addresses_waiting_for_history = []
self.pick_random_server()
@ -294,8 +291,7 @@ class Wallet:
self.server = random.choice( DEFAULT_SERVERS ) # random choice when the wallet is created
def is_up_to_date(self):
return self.interface.responses.empty() and not ( self.addresses_waiting_for_status or self.addresses_waiting_for_history )
return self.interface.responses.empty() and not self.interface.unanswered_requests
def set_server(self, server):
# raise an error if the format isnt correct
@ -719,10 +715,7 @@ class Wallet:
with self.lock:
if self.get_status(addr) != status:
#print "updating status for", addr, status
self.addresses_waiting_for_history.append(addr)
self.interface.get_history(addr)
if addr in self.addresses_waiting_for_status:
self.addresses_waiting_for_status.remove(addr)
def receive_history_callback(self, addr, data):
#print "updating history for", addr
@ -730,7 +723,6 @@ class Wallet:
self.history[addr] = data
self.update_tx_history()
self.save()
if addr in self.addresses_waiting_for_history: self.addresses_waiting_for_history.remove(addr)
def get_tx_history(self):
lines = self.tx_history.values()
@ -953,15 +945,8 @@ class Wallet:
def start_session(self, interface):
self.interface = interface
with self.lock:
self.addresses_waiting_for_status = []
self.addresses_waiting_for_history = []
addresses = self.all_addresses()
for addr in addresses:
self.addresses_waiting_for_status.append(addr)
self.interface.send([('server.banner',[]), ('blockchain.numblocks.subscribe',[]), ('server.peers.subscribe',[])])
self.interface.subscribe(addresses)
self.interface.subscribe(self.all_addresses())

Loading…
Cancel
Save