Browse Source

Second half of fix for ENV1-91

Add better messaging for address range searching
Fix a bug when saving next_addrs (was comparing dicts by ref)
PASS1-133
Ken Carpenter 3 years ago
committed by Ken Carpenter
parent
commit
edcb1e9203
  1. 6
      ports/stm32/boards/Passport/modules/actions.py
  2. 1
      ports/stm32/boards/Passport/modules/flow.py
  3. 4
      ports/stm32/boards/Passport/modules/settings.py
  4. 21
      ports/stm32/boards/Passport/modules/utils.py

6
ports/stm32/boards/Passport/modules/actions.py

@ -2027,3 +2027,9 @@ async def clear_ovc(*a):
from history import OutptValueCache
from common import flash_cache
OutptValueCache.clear()
async def set_last_verified_addr(*a):
from utils import save_next_addr
from public_constants import AF_P2WPKH
save_next_addr(0, AF_P2WPKH, 76)

1
ports/stm32/boards/Passport/modules/flow.py

@ -116,6 +116,7 @@ from noise_source import NoiseSource
DeveloperMenu = [
# MenuItem('Settings Error 2', f=generate_settings_error2),
# MenuItem('Settings Error', f=generate_settings_error),
MenuItem('Set Last Addr', f=set_last_verified_addr),
MenuItem('Clear OVC', f=clear_ovc),
MenuItem('Test UR1', f=test_ur1),
MenuItem('Reset Device', f=reset_device),

4
ports/stm32/boards/Passport/modules/settings.py

@ -221,9 +221,9 @@ class Settings:
self.loop.call_later_ms(250, self.write_out())
def set(self, kn, v):
if self.curr_dict.get(kn, '!~$~!') != v: # So that None can be set
# print('Settings: Set {} to {}'.format(kn, to_str(v)))
if isinstance(v, dict) or self.curr_dict.get(kn, '!~$~!') != v: # So that None can be set
self.curr_dict[kn] = v
# print('Settings: Set {} to {}'.format(kn, to_str(v)))
self.changed()
def remove(self, kn):

21
ports/stm32/boards/Passport/modules/utils.py

@ -596,7 +596,7 @@ def get_next_address_range(range, max_size):
return ((high, high + max_size), max_size)
async def scan_for_address(acct_num, address, addr_type, deriv_path, ms_wallet):
from common import system
from common import system, dis
from ux import ux_show_story
# print('Address to verify = {}'.format(address))
@ -610,6 +610,7 @@ async def scan_for_address(acct_num, address, addr_type, deriv_path, ms_wallet):
# Setup the initial ranges
a = get_next_addr(acct_num, addr_type)
first_time = True
low_range, low_size = get_prev_address_range((a, a), NUM_TO_CHECK // 2)
high_range, high_size = get_next_address_range((a, a), NUM_TO_CHECK - low_size)
@ -617,6 +618,8 @@ async def scan_for_address(acct_num, address, addr_type, deriv_path, ms_wallet):
# See if the address is valid
system.show_busy_bar()
dis.fullscreen('Searching Addresses...')
addr_idx = -1
# Check downwards
@ -649,9 +652,21 @@ async def scan_for_address(acct_num, address, addr_type, deriv_path, ms_wallet):
return addr_idx
else:
# Address was not found in that batch of 100, so offer to keep searching
result = await ux_show_story('''The scanned address was not yet found.
msg = 'Searched {} addresses:\n\n'.format(NUM_TO_CHECK)
if first_time:
msg += '{}-{}\n'.format(low_range[0], high_range[1] - 1)
first_time = False
else:
if low_size > 0:
msg += '{}-{}\n'.format(low_range[0], low_range[1] - 1)
# Add the upper range
msg += '{}-{}\n'.format(high_range[0], high_range[1] - 1)
msg += '\nDo you want to keep searching?'
Do you want to continue searching addresses?''', title='Not Found', left_btn='BACK', right_btn='CONTINUE',
result = await ux_show_story(msg, title='Not Found', left_btn='NO', right_btn='YES',
center=True, center_vertically=True)
if result == 'x':
return -1

Loading…
Cancel
Save