mirror of
https://github.com/JoinMarket-Org/joinmarket-clientserver.git
synced 2026-08-13 12:33:40 +02:00
remove uses of internal wallet data from electruminterface.
NOTE: changes untested, probably breaks electruminterface somehow
This commit is contained in:
parent
1f309678ca
commit
cdbb345bf9
1 changed files with 10 additions and 12 deletions
|
|
@ -12,7 +12,7 @@ from twisted.internet.protocol import ClientFactory
|
|||
from twisted.internet.ssl import ClientContextFactory
|
||||
from twisted.protocols.basic import LineReceiver
|
||||
from twisted.internet import reactor, task, defer
|
||||
from .blockchaininterface import BlockchainInterface, is_index_ahead_of_cache
|
||||
from .blockchaininterface import BlockchainInterface
|
||||
from .configure import get_p2sh_vbyte
|
||||
from .support import get_log
|
||||
from .electrum_data import (get_default_ports, get_default_servers,
|
||||
|
|
@ -248,10 +248,10 @@ class ElectrumInterface(BlockchainInterface):
|
|||
reactor.callLater(0.2, self.sync_addresses, wallet, restart_cb)
|
||||
return
|
||||
log.debug("downloading wallet history from Electrum server ...")
|
||||
for mixdepth in range(wallet.max_mix_depth):
|
||||
for mixdepth in range(wallet.max_mixdepth + 1):
|
||||
for forchange in [0, 1]:
|
||||
#start from a clean index
|
||||
wallet.index[mixdepth][forchange] = 0
|
||||
wallet.set_next_index(mixdepth, forchange, 0)
|
||||
self.synchronize_batch(wallet, mixdepth, forchange, 0)
|
||||
|
||||
def synchronize_batch(self, wallet, mixdepth, forchange, start_index):
|
||||
|
|
@ -295,9 +295,8 @@ class ElectrumInterface(BlockchainInterface):
|
|||
#existing index_cache from the wallet file; if both true, end, else, continue
|
||||
#to next batch
|
||||
if all([tah[i]['used'] is False for i in range(
|
||||
start_index+self.BATCH_SIZE-wallet.gaplimit,
|
||||
start_index+self.BATCH_SIZE)]) and is_index_ahead_of_cache(
|
||||
wallet, mixdepth, forchange):
|
||||
start_index + self.BATCH_SIZE - wallet.gap_limit,
|
||||
start_index + self.BATCH_SIZE)]):
|
||||
last_used_addr = None
|
||||
#to find last used, note that it may be in the *previous* batch;
|
||||
#may as well just search from the start, since it takes no time.
|
||||
|
|
@ -305,12 +304,11 @@ class ElectrumInterface(BlockchainInterface):
|
|||
if tah[i]['used']:
|
||||
last_used_addr = tah[i]['addr']
|
||||
if last_used_addr:
|
||||
wallet.index[mixdepth][forchange] = wallet.addr_cache[last_used_addr][2] + 1
|
||||
wallet.set_next_index(
|
||||
mixdepth, forchange,
|
||||
wallet.get_next_unused_index(mixdepth, forchange))
|
||||
else:
|
||||
wallet.index[mixdepth][forchange] = 0
|
||||
#account for index_cache
|
||||
if not is_index_ahead_of_cache(wallet, mixdepth, forchange):
|
||||
wallet.index[mixdepth][forchange] = wallet.index_cache[mixdepth][forchange]
|
||||
wallet.set_next_index(mixdepth, forchange, 0)
|
||||
tah["finished"] = True
|
||||
#check if all branches are finished to trigger next stage of sync.
|
||||
addr_sync_complete = True
|
||||
|
|
@ -350,7 +348,7 @@ class ElectrumInterface(BlockchainInterface):
|
|||
for internal in (True, False):
|
||||
for index in range(wallet.get_next_unused_index(md, internal)):
|
||||
addrs.add(wallet.get_addr(md, internal, index))
|
||||
for path in wallet.get_imported_paths(md):
|
||||
for path in wallet.yield_imported_paths(md):
|
||||
addrs.add(wallet.get_addr_path(path))
|
||||
|
||||
self.listunspent_calls = len(addrs)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue