From 3387b157a710a54f5bd560fb37618a138dbc294f Mon Sep 17 00:00:00 2001 From: Tomas Susanka Date: Fri, 25 Jan 2019 16:16:43 +0100 Subject: [PATCH] eth: EthereumGetAddress returns address as a string --- src/apps/ethereum/get_address.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/apps/ethereum/get_address.py b/src/apps/ethereum/get_address.py index 39c7bacb6..6531905f7 100644 --- a/src/apps/ethereum/get_address.py +++ b/src/apps/ethereum/get_address.py @@ -14,19 +14,20 @@ async def get_address(ctx, msg, keychain): node = keychain.derive(msg.address_n) seckey = node.private_key() public_key = secp256k1.publickey(seckey, False) # uncompressed - address = sha3_256(public_key[1:], keccak=True).digest()[12:] + address_bytes = sha3_256(public_key[1:], keccak=True).digest()[12:] + + if len(msg.address_n) > 1: # path has slip44 network identifier + network = networks.by_slip44(msg.address_n[1] & 0x7FFFFFFF) + else: + network = None + address = ethereum_address_hex(address_bytes, network) if msg.show_display: - if len(msg.address_n) > 1: # path has slip44 network identifier - network = networks.by_slip44(msg.address_n[1] & 0x7FFFFFFF) - else: - network = None - hex_addr = ethereum_address_hex(address, network) desc = address_n_to_str(msg.address_n) while True: - if await show_address(ctx, hex_addr, desc=desc): + if await show_address(ctx, address, desc=desc): break - if await show_qr(ctx, hex_addr, desc=desc): + if await show_qr(ctx, address, desc=desc): break - return EthereumAddress(address=address) + return EthereumAddress(address)