1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-22 06:18:07 +00:00

fix(core/ethereum): use built-in ethereum_pubkeyhash() in get_address

This commit is contained in:
matejcik 2021-10-14 16:17:44 +02:00 committed by matejcik
parent faa807f995
commit eacaffd079

View File

@ -1,5 +1,3 @@
from trezor.crypto.curve import secp256k1
from trezor.crypto.hashlib import sha3_256
from trezor.messages import EthereumAddress
from trezor.ui.layouts import show_address
@ -23,15 +21,12 @@ async def get_address(
await paths.validate_path(ctx, keychain, msg.address_n)
node = keychain.derive(msg.address_n)
seckey = node.private_key()
public_key = secp256k1.publickey(seckey, False) # uncompressed
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] & 0x7FFF_FFFF)
else:
network = None
address = address_from_bytes(address_bytes, network)
address = address_from_bytes(node.ethereum_pubkeyhash(), network)
if msg.show_display:
title = paths.address_n_to_str(msg.address_n)