mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-03-28 14:05:43 +00:00
30 lines
978 B
Python
30 lines
978 B
Python
from trezor import wire
|
|
from trezor.messages.FailureType import ProcessError
|
|
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.FailureError(ProcessError, 'Device is not initialized')
|
|
if not storage.needs_backup():
|
|
raise wire.FailureError(ProcessError, 'Seed already backed up')
|
|
|
|
mnemonic = storage.get_mnemonic()
|
|
|
|
# warn user about mnemonic safety
|
|
await show_warning(ctx)
|
|
|
|
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)
|
|
|
|
return Success(message='Seed successfully backed up')
|