tsend_tx - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 55a6b1d1e898a35fedfaf71db350c8c6a2da5bee DIR parent 94b4ad8be77f8470e90274871d4a99f9c9074487 HTML Author: ThomasV <thomasv@gitorious> Date: Tue, 13 Mar 2012 23:06:06 +0100 send_tx Diffstat: M client/interface.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) --- DIR diff --git a/client/interface.py b/client/interface.py t@@ -195,6 +195,7 @@ class NativeInterface(Interface): +import threading class TCPInterface(Interface): """json-rpc over persistent TCP connection""" t@@ -205,13 +206,19 @@ class TCPInterface(Interface): self.port = 50001 self.s = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) self.s.connect(( self.host, self.port)) + self.tx_event = threading.Event() def send(self, cmd, params = []): request = json.dumps( { 'method':cmd, 'params':params } ) self.s.send( request + '\n' ) def send_tx(self, data): - out = self.send('transaction.broadcast', data ) + self.tx_event.clear() + self.send('transaction.broadcast', data ) + print "waiting for event.." + self.tx_event.wait() + out = self.tx_result + print "result:", out return out def listen_thread(self, wallet): t@@ -233,9 +240,15 @@ class TCPInterface(Interface): cmd = c.get('method') if cmd == 'server.banner': self.message = c.get('result') + + elif cmd == 'transaction.broadcast': + self.tx_result = c.get('result') + self.tx_event.set() + elif cmd == 'numblocks.subscribe': self.blocks = c.get('result') print "num blocks",self.blocks + elif cmd =='address.subscribe': addr = c.get('address') status = c.get('status') t@@ -245,6 +258,7 @@ class TCPInterface(Interface): self.is_up_to_date = False else: self.is_up_to_date = True + elif cmd == 'address.get_history': addr = c.get('address') print "updating history for", addr