Browse Source

Update utxo state inbetween runs using wallet functions

Also fix minor bug in blockr interface: a repeated sync in the same
run must reset the index to zeros.
master
Adam Gibson 9 years ago
parent
commit
dd8e441d95
No known key found for this signature in database
GPG Key ID: B3AE09F1E9A3197A
  1. 2
      jmclient/jmclient/blockchaininterface.py
  2. 3
      jmclient/jmclient/taker.py
  3. 6
      scripts/sendpayment.py
  4. 7
      scripts/tumbler.py

2
jmclient/jmclient/blockchaininterface.py

@ -539,6 +539,8 @@ class BlockrInterface(BlockchainInterface): #pragma: no cover
# sets Wallet internal indexes to be at the next unused address # sets Wallet internal indexes to be at the next unused address
for mix_depth in range(wallet.max_mix_depth): for mix_depth in range(wallet.max_mix_depth):
for forchange in [0, 1]: for forchange in [0, 1]:
#must reset at the start so as to search forward from the beginning
wallet.index[mix_depth][forchange] = 0
unused_addr_count = 0 unused_addr_count = 0
last_used_addr = '' last_used_addr = ''
while (unused_addr_count < wallet.gaplimit or while (unused_addr_count < wallet.gaplimit or

3
jmclient/jmclient/taker.py

@ -621,4 +621,5 @@ class Taker(object):
jlog.debug("Confirmed callback in taker, confs: " + str(confirmations)) jlog.debug("Confirmed callback in taker, confs: " + str(confirmations))
fromtx=False if self.schedule_index + 1 == len(self.schedule) else True fromtx=False if self.schedule_index + 1 == len(self.schedule) else True
waittime = self.schedule[self.schedule_index][4] waittime = self.schedule[self.schedule_index][4]
self.on_finished_callback(True, fromtx=fromtx, waittime=waittime) self.on_finished_callback(True, fromtx=fromtx, waittime=waittime,
txdetails=(txd, txid))

6
scripts/sendpayment.py

@ -192,10 +192,12 @@ def main():
return False return False
return True return True
def taker_finished(res, fromtx=False, waittime=0.0): def taker_finished(res, fromtx=False, waittime=0.0, txdetails=None):
if fromtx: if fromtx:
if res: if res:
sync_wallet(wallet, fast=options.fastsync) txd, txid = txdetails
taker.wallet.remove_old_utxos(txd)
taker.wallet.add_new_utxos(txd, txid)
reactor.callLater(waittime*60, reactor.callLater(waittime*60,
clientfactory.getClient().clientStart) clientfactory.getClient().clientStart)
else: else:

7
scripts/tumbler.py

@ -100,7 +100,7 @@ def main():
def filter_orders_callback(orders_fees, cjamount): def filter_orders_callback(orders_fees, cjamount):
return True return True
def taker_finished(res, fromtx=False, waittime=0.0): def taker_finished(res, fromtx=False, waittime=0.0, txdetails=None):
"""on_finished_callback for tumbler """on_finished_callback for tumbler
""" """
def unconf_update(): def unconf_update():
@ -146,8 +146,9 @@ def main():
waiting_message = "Waiting for: " + str(waittime) + " minutes." waiting_message = "Waiting for: " + str(waittime) + " minutes."
tumble_log.info(waiting_message) tumble_log.info(waiting_message)
log.info(waiting_message) log.info(waiting_message)
txd, txid = txdetails
sync_wallet(wallet, fast=options['fastsync']) taker.wallet.remove_old_utxos(txd)
taker.wallet.add_new_utxos(txd, txid)
reactor.callLater(waittime*60, reactor.callLater(waittime*60,
clientfactory.getClient().clientStart) clientfactory.getClient().clientStart)
else: else:

Loading…
Cancel
Save