mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-16 03:18:09 +00:00
src/apps/ethereum: fix get_address ui
This commit is contained in:
parent
27f9f986c5
commit
9549ef9865
@ -1,4 +1,4 @@
|
|||||||
from trezor import ui
|
from apps.wallet.get_address import _show_address, _show_qr
|
||||||
|
|
||||||
|
|
||||||
async def ethereum_get_address(ctx, msg):
|
async def ethereum_get_address(ctx, msg):
|
||||||
@ -16,31 +16,16 @@ async def ethereum_get_address(ctx, msg):
|
|||||||
address = sha3_256(public_key[1:]).digest(True)[12:] # Keccak
|
address = sha3_256(public_key[1:]).digest(True)[12:] # Keccak
|
||||||
|
|
||||||
if msg.show_display:
|
if msg.show_display:
|
||||||
await _show_address(ctx, address)
|
hex_addr = _ethereum_address_hex(address)
|
||||||
|
while True:
|
||||||
|
if await _show_address(ctx, hex_addr):
|
||||||
|
break
|
||||||
|
if await _show_qr(ctx, hex_addr):
|
||||||
|
break
|
||||||
|
|
||||||
return EthereumAddress(address=address)
|
return EthereumAddress(address=address)
|
||||||
|
|
||||||
|
|
||||||
async def _show_address(ctx, address):
|
|
||||||
from trezor.messages.ButtonRequestType import Address
|
|
||||||
from trezor.ui.text import Text
|
|
||||||
from trezor.ui.qr import Qr
|
|
||||||
from trezor.ui.container import Container
|
|
||||||
from ..common.confirm import require_confirm
|
|
||||||
|
|
||||||
address = _ethereum_address_hex(address)
|
|
||||||
lines = _split_address(address)
|
|
||||||
content = Container(
|
|
||||||
Qr(address, (120, 135), 3),
|
|
||||||
Text('Confirm address', ui.ICON_DEFAULT, ui.MONO, *lines))
|
|
||||||
await require_confirm(ctx, content, code=Address)
|
|
||||||
|
|
||||||
|
|
||||||
def _split_address(address):
|
|
||||||
from trezor.utils import chunks
|
|
||||||
return chunks(address, 21)
|
|
||||||
|
|
||||||
|
|
||||||
def _ethereum_address_hex(address):
|
def _ethereum_address_hex(address):
|
||||||
from ubinascii import hexlify
|
from ubinascii import hexlify
|
||||||
from trezor.crypto.hashlib import sha3_256
|
from trezor.crypto.hashlib import sha3_256
|
||||||
|
@ -22,7 +22,7 @@ async def get_address(ctx, msg):
|
|||||||
while True:
|
while True:
|
||||||
if await _show_address(ctx, address):
|
if await _show_address(ctx, address):
|
||||||
break
|
break
|
||||||
if await _show_qr(ctx, address, msg.script_type):
|
if await _show_qr(ctx, address.upper() if msg.script_type == InputScriptType.SPENDWITNESS else address):
|
||||||
break
|
break
|
||||||
|
|
||||||
return Address(address=address)
|
return Address(address=address)
|
||||||
@ -39,14 +39,11 @@ async def _show_address(ctx, address: str):
|
|||||||
cancel_style=ui.BTN_KEY)
|
cancel_style=ui.BTN_KEY)
|
||||||
|
|
||||||
|
|
||||||
async def _show_qr(ctx, address: str, script_type: int):
|
async def _show_qr(ctx, address: str):
|
||||||
qr_x = const(120)
|
qr_x = const(120)
|
||||||
qr_y = const(115)
|
qr_y = const(115)
|
||||||
qr_coef = const(4)
|
qr_coef = const(4)
|
||||||
|
|
||||||
if script_type == InputScriptType.SPENDWITNESS:
|
|
||||||
address = address.upper()
|
|
||||||
|
|
||||||
content = Container(
|
content = Container(
|
||||||
Qr(address, (qr_x, qr_y), qr_coef),
|
Qr(address, (qr_x, qr_y), qr_coef),
|
||||||
Text('Confirm address', ui.ICON_RECEIVE, ui.MONO, icon_color=ui.GREEN))
|
Text('Confirm address', ui.ICON_RECEIVE, ui.MONO, icon_color=ui.GREEN))
|
||||||
|
Loading…
Reference in New Issue
Block a user