mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-06 06:42:33 +00:00
37 lines
957 B
Python
37 lines
957 B
Python
from trezor import wire
|
|
from trezor.messages.Success import Success
|
|
|
|
from apps.common import storage
|
|
from apps.management.reset_device import (
|
|
check_mnemonic,
|
|
show_mnemonic,
|
|
show_warning,
|
|
show_wrong_entry,
|
|
)
|
|
|
|
|
|
async def backup_device(ctx, msg):
|
|
if not storage.is_initialized():
|
|
raise wire.ProcessError('Device is not initialized')
|
|
if not storage.needs_backup():
|
|
raise wire.ProcessError('Seed already backed up')
|
|
|
|
mnemonic = storage.get_mnemonic()
|
|
|
|
# warn user about mnemonic safety
|
|
await show_warning(ctx)
|
|
|
|
storage.set_unfinished_backup(True)
|
|
storage.set_backed_up()
|
|
|
|
while True:
|
|
# show mnemonic and require confirmation of a random word
|
|
await show_mnemonic(ctx, mnemonic)
|
|
if await check_mnemonic(ctx, mnemonic):
|
|
break
|
|
await show_wrong_entry(ctx)
|
|
|
|
storage.set_unfinished_backup(False)
|
|
|
|
return Success(message='Seed successfully backed up')
|