simplification
authorthomasv <thomasv@gitorious>
Fri, 4 May 2012 07:28:44 +0000 (09:28 +0200)
committerthomasv <thomasv@gitorious>
Fri, 4 May 2012 07:28:44 +0000 (09:28 +0200)
interface.py
wallet.py

index cc89c7a..0ace32b 100644 (file)
@@ -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:
index 8c79ee2..1cce9fe 100644 (file)
--- a/wallet.py
+++ b/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())