You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
3.7 KiB
154 lines
3.7 KiB
from typing import TYPE_CHECKING
|
|
|
|
from trezor.enums import ButtonRequestType
|
|
from trezor.ui.layouts import confirm_address, confirm_metadata, confirm_properties
|
|
|
|
if TYPE_CHECKING:
|
|
from trezor.wire import Context
|
|
|
|
|
|
BR_SIGN_TX = ButtonRequestType.SignTx # global_import_cache
|
|
|
|
|
|
async def require_confirm_tx(ctx: Context, to: str, value: int) -> None:
|
|
from trezor.ui.layouts import confirm_output
|
|
|
|
await confirm_output(
|
|
ctx,
|
|
to,
|
|
format_tezos_amount(value),
|
|
br_code=BR_SIGN_TX,
|
|
)
|
|
|
|
|
|
async def require_confirm_fee(ctx: Context, value: int, fee: int) -> None:
|
|
from trezor.ui.layouts import confirm_total
|
|
|
|
await confirm_total(
|
|
ctx,
|
|
format_tezos_amount(value),
|
|
format_tezos_amount(fee),
|
|
total_label="Amount:",
|
|
)
|
|
|
|
|
|
async def require_confirm_origination(ctx: Context, address: str) -> None:
|
|
await confirm_address(
|
|
ctx,
|
|
"Confirm origination",
|
|
address,
|
|
"Address:",
|
|
"confirm_origination",
|
|
BR_SIGN_TX,
|
|
)
|
|
|
|
|
|
async def require_confirm_origination_fee(ctx: Context, balance: int, fee: int) -> None:
|
|
await confirm_properties(
|
|
ctx,
|
|
"confirm_origination_final",
|
|
"Confirm origination",
|
|
(
|
|
("Balance:", format_tezos_amount(balance)),
|
|
("Fee:", format_tezos_amount(fee)),
|
|
),
|
|
hold=True,
|
|
)
|
|
|
|
|
|
async def require_confirm_delegation_baker(ctx: Context, baker: str) -> None:
|
|
await confirm_address(
|
|
ctx,
|
|
"Confirm delegation",
|
|
baker,
|
|
"Baker address:",
|
|
"confirm_delegation",
|
|
BR_SIGN_TX,
|
|
)
|
|
|
|
|
|
async def require_confirm_set_delegate(ctx: Context, fee: int) -> None:
|
|
await confirm_metadata(
|
|
ctx,
|
|
"confirm_delegation_final",
|
|
"Confirm delegation",
|
|
"Fee:\n{}",
|
|
format_tezos_amount(fee),
|
|
BR_SIGN_TX,
|
|
hold=True,
|
|
)
|
|
|
|
|
|
async def require_confirm_register_delegate(
|
|
ctx: Context, address: str, fee: int
|
|
) -> None:
|
|
await confirm_properties(
|
|
ctx,
|
|
"confirm_register_delegate",
|
|
"Register delegate",
|
|
(
|
|
("Fee:", format_tezos_amount(fee)),
|
|
("Address:", address),
|
|
),
|
|
hold=True,
|
|
br_code=BR_SIGN_TX,
|
|
)
|
|
|
|
|
|
def format_tezos_amount(value: int) -> str:
|
|
from trezor.strings import format_amount
|
|
from .helpers import TEZOS_AMOUNT_DECIMALS
|
|
|
|
formatted_value = format_amount(value, TEZOS_AMOUNT_DECIMALS)
|
|
return formatted_value + " XTZ"
|
|
|
|
|
|
async def require_confirm_ballot(ctx: Context, proposal: str, ballot: str) -> None:
|
|
await confirm_properties(
|
|
ctx,
|
|
"confirm_ballot",
|
|
"Submit ballot",
|
|
(
|
|
("Ballot:", ballot),
|
|
("Proposal:", proposal),
|
|
),
|
|
hold=True,
|
|
br_code=BR_SIGN_TX,
|
|
)
|
|
|
|
|
|
async def require_confirm_proposals(ctx: Context, proposals: list[str]) -> None:
|
|
await confirm_properties(
|
|
ctx,
|
|
"confirm_proposals",
|
|
"Submit proposals" if len(proposals) > 1 else "Submit proposal",
|
|
[("Proposal " + str(i), proposal) for i, proposal in enumerate(proposals, 1)],
|
|
hold=True,
|
|
br_code=BR_SIGN_TX,
|
|
)
|
|
|
|
|
|
async def require_confirm_delegation_manager_withdraw(
|
|
ctx: Context, address: str
|
|
) -> None:
|
|
await confirm_address(
|
|
ctx,
|
|
"Remove delegation",
|
|
address,
|
|
"Delegator:",
|
|
"confirm_undelegation",
|
|
BR_SIGN_TX,
|
|
)
|
|
|
|
|
|
async def require_confirm_manager_remove_delegate(ctx: Context, fee: int) -> None:
|
|
await confirm_metadata(
|
|
ctx,
|
|
"confirm_undelegation_final",
|
|
"Remove delegation",
|
|
"Fee:\n{}",
|
|
format_tezos_amount(fee),
|
|
BR_SIGN_TX,
|
|
hold=True,
|
|
)
|