diff --git a/src/apps/ethereum/layout.py b/src/apps/ethereum/layout.py index 5ad457c5a..9d17e0de0 100644 --- a/src/apps/ethereum/layout.py +++ b/src/apps/ethereum/layout.py @@ -1,4 +1,5 @@ from apps.common.confirm import * +from apps.ethereum import tokens from trezor import ui from trezor.utils import chunks, format_amount from trezor.messages import ButtonRequestType @@ -53,6 +54,8 @@ def split_address(address): def format_ethereum_amount(value: int, token, chain_id: int, tx_type=None): if token: + if token is tokens.UNKNOWN_TOKEN: + return 'Unknown token value' suffix = token[2] decimals = token[3] else: diff --git a/src/apps/ethereum/tokens.py b/src/apps/ethereum/tokens.py index 88a1c465b..222ecef4e 100644 --- a/src/apps/ethereum/tokens.py +++ b/src/apps/ethereum/tokens.py @@ -1,12 +1,12 @@ def token_by_chain_address(chain_id, address): - if not address: - return None for token in tokens: if chain_id == token[0] and address == token[1]: return token - return None + return UNKNOWN_TOKEN +UNKNOWN_TOKEN = (None, None, None, None) + # rest of the file is generated using trezor-common/ethereum_tokens-gen.py # DO NOT EDIT MANUALLY! tokens = [ diff --git a/tests/test_apps.ethereum.tokens.py b/tests/test_apps.ethereum.tokens.py index e91a58def..c5576d65b 100644 --- a/tests/test_apps.ethereum.tokens.py +++ b/tests/test_apps.ethereum.tokens.py @@ -22,7 +22,7 @@ class TestEthereumTokens(unittest.TestCase): # invalid adress, invalid chain token = tokens.token_by_chain_address(999, b'\x00\xFF') - self.assertEqual(token, None) + self.assertIs(token, tokens.UNKNOWN_TOKEN) if __name__ == '__main__':