mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-02-05 20:31:01 +00:00
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from trezor import wire, ui, config
|
|
from trezor.pin import pin_to_int
|
|
|
|
|
|
async def layout_load_device(ctx, msg):
|
|
from trezor.crypto import bip39
|
|
from trezor.messages.Success import Success
|
|
from trezor.messages.FailureType import UnexpectedMessage, ProcessError
|
|
from trezor.ui.text import Text
|
|
from ..common.confirm import require_confirm
|
|
from ..common import storage
|
|
|
|
if storage.is_initialized():
|
|
raise wire.FailureError(UnexpectedMessage, 'Already initialized')
|
|
|
|
if msg.node is not None:
|
|
raise wire.FailureError(ProcessError, 'LoadDevice.node is not supported')
|
|
|
|
if not msg.skip_checksum and not bip39.check(msg.mnemonic):
|
|
raise wire.FailureError(ProcessError, 'Mnemonic is not valid')
|
|
|
|
await require_confirm(ctx, Text(
|
|
'Loading seed', ui.ICON_DEFAULT,
|
|
ui.BOLD, 'Loading private seed', 'is not recommended.',
|
|
ui.NORMAL, 'Continue only if you', 'know what you are doing!'))
|
|
|
|
storage.load_mnemonic(
|
|
mnemonic=msg.mnemonic, needs_backup=True)
|
|
storage.load_settings(
|
|
use_passphrase=msg.passphrase_protection, label=msg.label)
|
|
if msg.pin:
|
|
config.change_pin(pin_to_int(''), pin_to_int(msg.pin), None)
|
|
|
|
return Success(message='Device loaded')
|