don't use address_is_old in code that can be run offline (again)
[electrum-nvc.git] / scripts / watch_address
index 7c21ee9..ab9365e 100755 (executable)
@@ -1,34 +1,26 @@
 #!/usr/bin/env python
 
-import sys
-from electrum import Interface
+import sys, time, electrum
 
 try:
     addr = sys.argv[1]
-except:
+except Exception:
     print "usage: watch_address <bitcoin_address>"
     sys.exit(1)
 
-i = Interface({'server':'electrum.novit.ro:50001:t'})
-i.start()
-i.send([('blockchain.address.subscribe',[addr])])
 
-while True:
-    r = i.responses.get(True, 100000000000)
-    method = r.get('method') 
-    if method == 'blockchain.address.subscribe':
-        i.send([('blockchain.address.get_history',[addr])])
-    elif method == 'blockchain.address.get_history':
-        confirmed = unconfirmed = 0
-        h = r.get('result')
-        if h is None:
-            continue
-        for item in h:
-            v = item['value']
-            if item['height']:
-                confirmed += v
-            else:
-                unconfirmed += v
-        print (confirmed+unconfirmed)/1.e8
+# 1. start the interface and wait for connection
+interface = electrum.Interface('electrum.no-ip.org:50002:s')
+interface.start(wait = True)
+if not interface.is_connected:
+    print "not connected"
+    exit()
+
+# 2. send the subscription
+callback = lambda _,result: electrum.print_json(result.get('result'))
+interface.send([('blockchain.address.subscribe',[addr])], callback)
 
+# 3. wait for results
+while True:
+    time.sleep(1)