Skip to content

Commit

Permalink
fix for notifications
Browse files Browse the repository at this point in the history
  • Loading branch information
thomasv committed Nov 15, 2012
1 parent 8fc042e commit 0e851a5
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 8 deletions.
30 changes: 27 additions & 3 deletions lib/wallet.py
Expand Up @@ -446,7 +446,7 @@ def choose_tx_inputs( self, amount, fixed_fee, from_addr = None ):
for addr in domain:
h = self.history.get(addr, [])
if h == ['*']: continue
for tx_hash, tx_height, in h:
for tx_hash, tx_height in h:
tx = self.transactions.get(tx_hash)
for output in tx.get('outputs'):
if output.get('address') != addr: continue
Expand All @@ -459,7 +459,8 @@ def choose_tx_inputs( self, amount, fixed_fee, from_addr = None ):

for addr in self.prioritized_addresses:
h = self.history.get(addr, [])
for tx_hash, tx_height, in h:
if h == ['*']: continue
for tx_hash, tx_height in h:
for output in tx.get('outputs'):
if output.get('address') != addr: continue
key = tx_hash + ":%d" % output.get('index')
Expand Down Expand Up @@ -571,7 +572,14 @@ def receive_history_callback(self, addr, hist):
if hist != ['*']:
for tx_hash, tx_height in hist:
if tx_height>0:
# add it in case it was previously unconfirmed
self.verifier.add(tx_hash, tx_height)
# set the height in case it changed
tx = self.transactions.get(tx_hash)
if tx:
if tx.get('height') != tx_height:
print_error( "changing height for tx", tx_hash )
tx['height'] = tx_height


def get_tx_history(self):
Expand Down Expand Up @@ -892,7 +900,8 @@ def save(self):

def set_verifier(self, verifier):
self.verifier = verifier


# review transactions (they might not all be in history)
for tx_hash, tx in self.transactions.items():
tx_height = tx.get('height')
if tx_height <1:
Expand All @@ -909,6 +918,20 @@ def set_verifier(self, verifier):
self.set_tx_timestamp(tx_hash, timestamp)


# review existing history
for addr, hist in self.history.items():
if hist == ['*']: continue
for tx_hash, tx_height in hist:
if tx_height>0:
# add it in case it was previously unconfirmed
self.verifier.add(tx_hash, tx_height)
# set the height in case it changed
tx = self.transactions.get(tx_hash)
if tx:
if tx.get('height') != tx_height:
print_error( "changing height for tx", tx_hash )
tx['height'] = tx_height



def set_tx_timestamp(self, tx_hash, timestamp):
Expand Down Expand Up @@ -1064,6 +1087,7 @@ def run(self):

elif method == 'blockchain.address.get_history':
addr = params[0]
print_error("receiving history", addr, result)
if result == ['*']:
assert requested_histories.pop(addr) == '*'
self.wallet.receive_history_callback(addr, result)
Expand Down
13 changes: 8 additions & 5 deletions scripts/watch_address
@@ -1,6 +1,6 @@
#!/usr/bin/env python

import sys
import sys, time
from electrum import Interface

try:
Expand All @@ -9,15 +9,18 @@ except:
print "usage: watch_address <bitcoin_address>"
sys.exit(1)

i = Interface({'server':'electrum.novit.ro:50001:t'})
i = Interface({'server':'ecdsa.org:50001:t'})
i.start()
i.send([('blockchain.address.subscribe',[addr])])
i.send([('blockchain.address.subscribe',[addr])] )
time.sleep(1)

while True:
r = i.responses.get(True, 100000000000)
r = i.get_response()
method = r.get('method')
if method == 'blockchain.address.subscribe':
i.send([('blockchain.address.get_history',[addr])])
#i.send([('blockchain.address.get_history',[addr])])
print r

elif method == 'blockchain.address.get_history':
confirmed = unconfirmed = 0
h = r.get('result')
Expand Down

0 comments on commit 0e851a5

Please sign in to comment.