Browse Source

make sure new addresses always get imported

master
undeath 8 years ago
parent
commit
8ca6cfc057
  1. 8
      jmclient/jmclient/maker.py
  2. 11
      jmclient/jmclient/taker.py
  3. 11
      jmclient/jmclient/taker_utils.py
  4. 1
      jmclient/jmclient/yieldgenerator.py

8
jmclient/jmclient/maker.py

@ -216,3 +216,11 @@ class Maker(object):
if len(oldorder_s) > 0:
self.offerlist.remove(oldorder_s[0])
self.offerlist += to_announce
def import_new_addresses(self, addr_list):
# FIXME: same code as in taker.py
bci = jm_single().bc_interface
if not hasattr(bci, 'import_addresses'):
return
assert hasattr(bci, 'get_wallet_name')
bci.import_addresses(addr_list, bci.get_wallet_name(self.wallet))

11
jmclient/jmclient/taker.py

@ -4,7 +4,6 @@ from __future__ import print_function
import base64
import pprint
import random
from itertools import chain
import btc
from jmclient.configure import jm_single, get_p2pk_vbyte, get_p2sh_vbyte
@ -184,6 +183,7 @@ class Taker(object):
jlog.info("Choosing a destination from mixdepth: " + str(next_mixdepth))
self.my_cj_addr = self.wallet.get_internal_addr(next_mixdepth)
jlog.info("Chose destination address: " + self.my_cj_addr)
self.import_new_addresses([self.my_cj_addr])
self.outputs = []
self.cjfee_total = 0
self.maker_txfee_contributions = 0
@ -268,6 +268,7 @@ class Taker(object):
if self.cjamount != 0:
try:
self.my_change_addr = self.wallet.get_internal_addr(self.mixdepth)
self.import_new_addresses([self.my_change_addr])
except:
self.taker_info_callback("ABORT", "Failed to get a change address")
return False
@ -806,3 +807,11 @@ class Taker(object):
waittime = self.schedule[self.schedule_index][4]
self.on_finished_callback(True, fromtx=fromtx, waittime=waittime,
txdetails=(txd, txid))
def import_new_addresses(self, addr_list):
# FIXME: same code as in maker.py
bci = jm_single().bc_interface
if not hasattr(bci, 'import_addresses'):
return
assert hasattr(bci, 'get_wallet_name')
bci.import_addresses(addr_list, bci.get_wallet_name(self.wallet))

11
jmclient/jmclient/taker_utils.py

@ -67,6 +67,7 @@ def direct_send(wallet, amount, mixdepth, destaddr, answeryes=False,
changeval = total_inputs_val - fee_est - amount
outs = [{"value": amount, "address": destaddr}]
change_addr = wallet.get_internal_addr(mixdepth)
import_new_addresses(wallet, [change_addr])
outs.append({"value": changeval, "address": change_addr})
#Now ready to construct transaction
@ -104,6 +105,16 @@ def direct_send(wallet, amount, mixdepth, destaddr, answeryes=False,
cb(successmsg)
return txid
def import_new_addresses(wallet, addr_list):
# FIXME: same code as in maker.py and taker.py
bci = jm_single().bc_interface
if not hasattr(bci, 'import_addresses'):
return
assert hasattr(bci, 'get_wallet_name')
bci.import_addresses(addr_list, bci.get_wallet_name(wallet))
def get_tumble_log(logsdir):
tumble_log = logging.getLogger('tumbler')
tumble_log.setLevel(logging.DEBUG)

1
jmclient/jmclient/yieldgenerator.py

@ -132,6 +132,7 @@ class YieldGeneratorBasic(YieldGenerator):
cj_addr = self.wallet.get_internal_addr((mixdepth + 1) %
self.wallet.max_mix_depth)
change_addr = self.wallet.get_internal_addr(mixdepth)
self.import_new_addresses([cj_addr, change_addr])
utxos = self.wallet.select_utxos(mixdepth, total_amount)
my_total_in = sum([va['value'] for va in utxos.values()])

Loading…
Cancel
Save