1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-02-09 14:12:51 +00:00
trezor-firmware/src/apps/common/confirm.py

39 lines
1.2 KiB
Python
Raw Normal View History

from trezor import ui, wire
from trezor.messages import ButtonRequestType, MessageType
2018-02-27 15:35:21 +00:00
from trezor.messages.ButtonRequest import ButtonRequest
from trezor.ui.confirm import CONFIRMED, ConfirmDialog, HoldToConfirmDialog
2017-10-10 13:34:23 +00:00
@ui.layout
2017-08-15 13:09:09 +00:00
async def confirm(ctx, content, code=None, *args, **kwargs):
if code is None:
2018-02-27 15:35:21 +00:00
code = ButtonRequestType.Other
await ctx.call(ButtonRequest(code=code), MessageType.ButtonAck)
2017-09-16 13:00:31 +00:00
dialog = ConfirmDialog(content, *args, **kwargs)
return await ctx.wait(dialog) == CONFIRMED
2016-09-26 11:06:28 +00:00
2017-10-10 13:34:23 +00:00
@ui.layout
2017-08-15 13:09:09 +00:00
async def hold_to_confirm(ctx, content, code=None, *args, **kwargs):
if code is None:
2018-02-27 15:35:21 +00:00
code = ButtonRequestType.Other
await ctx.call(ButtonRequest(code=code), MessageType.ButtonAck)
2017-09-16 13:00:31 +00:00
2018-07-03 14:20:58 +00:00
dialog = HoldToConfirmDialog(content, "Hold to confirm", *args, **kwargs)
return await ctx.wait(dialog) == CONFIRMED
async def require_confirm(*args, **kwargs):
2016-09-26 11:06:28 +00:00
confirmed = await confirm(*args, **kwargs)
if not confirmed:
2018-07-03 14:20:58 +00:00
raise wire.ActionCancelled("Cancelled")
async def require_hold_to_confirm(*args, **kwargs):
confirmed = await hold_to_confirm(*args, **kwargs)
if not confirmed:
2018-07-03 14:20:58 +00:00
raise wire.ActionCancelled("Cancelled")