Browse Source

Show backup filename to user after successful backup (#18)

Fix PASS1-92
PASS1-133
Ken Carpenter 3 years ago
parent
commit
e9b556e12b
  1. 6
      ports/stm32/boards/Passport/modules/actions.py
  2. 20
      ports/stm32/boards/Passport/modules/export.py
  3. 6
      ports/stm32/boards/Passport/modules/utils.py

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

@ -22,7 +22,7 @@ import common
from common import settings, system, noise, dis
from utils import (UXStateMachine, imported, pretty_short_delay, xfp2str, to_str,
truncate_string_to_width, set_next_addr, scan_for_address, get_accounts, run_chooser,
make_account_name_num, is_valid_address, save_next_addr, needs_microsd, format_btc_address)
make_account_name_num, is_valid_address, save_next_addr, needs_microsd, format_btc_address, get_backups_folder_path)
from wallets.utils import get_export_mode, get_addr_type_from_address, get_deriv_path_from_addr_type_and_acct
from ux import (the_ux, ux_confirm, ux_enter_pin,
ux_enter_text, ux_scan_qr_code, ux_shutdown,
@ -927,7 +927,7 @@ async def verify_microsd_backup(*A):
with imported('export') as exp:
fn = await file_picker('Select the backup to verify.',
suffix='.7z', max_size=exp.MAX_BACKUP_FILE_SIZE, folder_path='/sd/backups')
suffix='.7z', max_size=exp.MAX_BACKUP_FILE_SIZE, folder_path=get_backups_folder_path())
if fn:
# do a limited CRC-check over encrypted file
@ -965,7 +965,7 @@ async def restore_microsd_backup(*A):
# Choose a backup file -- must be in 7z format
fn = await file_picker('Select the backup to restore and then enter the six-word password.',
suffix='.7z', max_size=10000, folder_path='/sd/backups')
suffix='.7z', max_size=10000, folder_path=get_backups_folder_path())
if fn:
with imported('export') as exp:

20
ports/stm32/boards/Passport/modules/export.py

@ -23,7 +23,8 @@ import version
from ubinascii import hexlify as b2a_hex
from ubinascii import unhexlify as a2b_hex
from uio import StringIO
from utils import imported, xfp2str, get_bytewords_for_buf, to_str, run_chooser, ensure_folder_exists, file_exists, is_dir, get_accounts
from utils import (imported, xfp2str, get_bytewords_for_buf, to_str, run_chooser, ensure_folder_exists, file_exists,
is_dir, get_accounts, get_backups_folder_path)
from ux import ux_confirm, ux_show_story
from common import noise
@ -472,12 +473,6 @@ async def view_backup_password(*a):
ch = await ux_show_story(msg, title='Password', sensitive=True, right_btn='OK')
stash.blank_object(msg)
def get_backups_folder_path(card):
# from common import settings
# xfp = xfp2str(settings.get('xfp', 0))
# return '{}/backups-{}'.format(card.get_sd_root(), xfp)
return '{}/backups'.format(card.get_sd_root())
async def write_complete_backup(words, auto_backup=False, is_first_backup=False):
# Just do the writing
from common import dis, pa, settings, system
@ -516,6 +511,8 @@ async def write_complete_backup(words, auto_backup=False, is_first_backup=False)
filesize = len(body)+10
while True:
base_filename = ''
try:
with CardSlot() as card:
backups_path = get_backups_folder_path(card)
@ -523,7 +520,8 @@ async def write_complete_backup(words, auto_backup=False, is_first_backup=False)
# Make a unique filename
while True:
fname = '{}/passport-backup-{}.7z'.format(backups_path, backup_num)
base_filename = 'passport-backup-{}.7z'.format(backup_num)
fname = '{}/{}'.format(backups_path, base_filename)
# Ensure filename doesn't already exist
if not file_exists(fname):
@ -564,9 +562,9 @@ async def write_complete_backup(words, auto_backup=False, is_first_backup=False)
backup_num += 1
settings.set('backup_num', backup_num)
if not auto_backup:
dis.fullscreen('Backup Successful!')
await sleep_ms(2000)
if not auto_backup: # /backups/passport-backup-3.7z
await ux_show_story('Saved backup to\n\n{}\n\nin /backups folder.'.format(base_filename),
title='Success', left_btn='NEXT', center=True, center_vertically=True)
if await ux_confirm('Do you want to make an additional backup?\n\nIf so, insert another microSD card.',
title='Backup'):

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

@ -821,4 +821,10 @@ def format_btc_address(address, addr_type):
return '\n'.join([address[i:i+width] for i in range(0, len(address), width)])
def get_backups_folder_path(card):
# from common import settings
# xfp = xfp2str(settings.get('xfp', 0))
# return '{}/backups-{}'.format(card.get_sd_root(), xfp)
return '{}/backups'.format(card.get_sd_root())
# EOF

Loading…
Cancel
Save