Skip to content

Commit 26fd00d

Browse files
committed
feat(tron): Update TRC-20 token list.
[no changelog]
1 parent 515b040 commit 26fd00d

1 file changed

Lines changed: 71 additions & 59 deletions

File tree

core/src/apps/tron/consts.py

Lines changed: 71 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -35,76 +35,88 @@ def get_contract_type_name(contract_type: int) -> str:
3535
raise ValueError(f"Unknown contract type: {contract_type}")
3636

3737

38-
def token_iterator() -> Iterator[Tuple[AnyBytes, int, str]]:
38+
# TRC-20 token address bytes (21-byte, 0x41-prefixed)
39+
_SHASTA_USDT_ADDRESS = b"\x41\x42\xa1\xe3\x9a\xef\xa4\x92\x90\xf2\xb3\xf9\xed\x68\x8d\x7c\xec\xf8\x6c\xd6\xe0"
40+
_USDT_ADDRESS = b"\x41\xa6\x14\xf8\x03\xb6\xfd\x78\x09\x86\xa4\x2c\x78\xec\x9c\x7f\x77\xe6\xde\xd1\x3c"
41+
_USDD_ADDRESS = b"\x41\xe9\x1a\x74\x11\xe5\x6c\xe7\x9e\x83\x57\x05\x70\xf4\x9b\x9f\xc3\x5b\x77\x27\xc5"
42+
_SUN_ADDRESS = b"\x41\xb4\xa4\x28\xab\x70\x92\xc2\xf1\x39\x5f\x37\x6c\xe2\x97\x03\x3b\x3b\xb4\x46\xc1"
43+
_JST_ADDRESS = b"\x41\x18\xfd\x06\x26\xda\xf3\xaf\x02\x38\x9a\xef\x3e\xd8\x7d\xb9\xc3\x3f\x63\x8f\xfa"
44+
_BTT_ADDRESS = b"\x41\x03\x20\x17\x41\x1f\x46\x63\xb3\x17\xfe\x77\xc2\x57\xd2\x8d\x5c\xd1\xb2\x6e\x3d"
45+
_WIN_ADDRESS = b"\x41\x74\x47\x2e\x7d\x35\x39\x5a\x6b\x5a\xdd\x42\x7e\xec\xb7\xf4\xb6\x2a\xd2\xb0\x71"
46+
_WBTC_ADDRESS = b"\x41\xf9\x53\x35\xa4\xd4\x2d\xb4\xb7\x0a\x96\x88\xa3\x93\x27\x9f\x2c\x90\xfa\x10\x25"
47+
_ETH_TRON_ADDRESS = b"\x41\x53\x90\x83\x08\xf4\xaa\x22\x0f\xb1\x0d\x77\x8b\x5d\x1b\x34\x48\x9c\xd6\xed\xfc"
48+
_USD1_ADDRESS = b"\x41\x91\xbe\xd8\xe7\x84\x24\x9c\x91\x61\x1e\x61\xc4\x58\x5c\x40\xe2\x1f\xd0\xac\xe2"
49+
_HTX_ADDRESS = b"\x41\xca\x03\x03\xe8\xb9\xa7\x38\x12\x17\x77\x11\x6d\xce\xa4\x19\xfe\x52\x4f\x27\x1a"
50+
_TUSD_ADDRESS = b"\x41\xce\xbd\xe7\x10\x77\xb8\x30\xb9\x58\xc8\xda\x17\xbc\xdd\xee\xb8\x5d\x0b\xcf\x25"
51+
_WBT_ADDRESS = b"\x41\x40\x3e\x0f\xfc\xa2\x31\xf6\x0f\x8d\x3e\xba\xd4\x26\xf7\x7a\xa6\xb5\x07\x30\x9d"
52+
_WTRX_ADDRESS = b"\x41\x89\x1c\xdb\x91\xd1\x49\xf2\x3b\x1a\x45\xd9\xc5\xca\x78\xa8\x8d\x0c\xb4\x4c\x18"
53+
_SUNOLD_ADDRESS = b"\x41\x6b\x51\x51\x32\x03\x59\xec\x18\xb0\x86\x07\xc7\x0a\x3b\x74\x39\xaf\x62\x6a\xa3"
54+
_AINFT_ADDRESS = b"\x41\x3d\xfe\x63\x7b\x2b\x9a\xe4\x19\x0a\x45\x8b\x5f\x3e\xfc\x19\x69\xaf\xe2\x78\x19"
55+
_STRX_ADDRESS = b"\x41\xc6\x4e\x69\xac\xde\x1c\x7b\x16\xc2\xa3\xef\xcd\xbb\xda\xa9\x6c\x36\x44\xc2\xb3"
56+
_KLEVER_ADDRESS = b"\x41\xd8\xb8\x08\x98\x56\xce\xd3\x03\x86\x01\xcb\xeb\x1e\x3f\x76\x5c\xab\xc1\x2a\x41"
57+
58+
if __debug__:
59+
from trezor.crypto import base58
60+
3961
# https://shasta.tronscan.org/#/token20/TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs
40-
yield (
41-
b"\x41\x42\xa1\xe3\x9a\xef\xa4\x92\x90\xf2\xb3\xf9\xed\x68\x8d\x7c\xec\xf8\x6c\xd6\xe0",
42-
6,
43-
"tUSDT",
62+
assert (
63+
base58.encode_check(_SHASTA_USDT_ADDRESS)
64+
== "TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs"
4465
)
4566
# https://tronscan.org/#/token20/TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
46-
yield (
47-
b"\x41\xa6\x14\xf8\x03\xb6\xfd\x78\x09\x86\xa4\x2c\x78\xec\x9c\x7f\x77\xe6\xde\xd1\x3c",
48-
6,
49-
"USDT",
50-
)
67+
assert base58.encode_check(_USDT_ADDRESS) == "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
5168
# https://tronscan.org/#/token20/TXDk8mbtRbXeYuMNS83CfKPaYYT8XWv9Hz
52-
yield (
53-
b"\x41\xe9\x1a\x74\x11\xe5\x6c\xe7\x9e\x83\x57\x05\x70\xf4\x9b\x9f\xc3\x5b\x77\x27\xc5",
54-
18,
55-
"USDD",
56-
)
69+
assert base58.encode_check(_USDD_ADDRESS) == "TXDk8mbtRbXeYuMNS83CfKPaYYT8XWv9Hz"
5770
# https://tronscan.org/#/token20/TSSMHYeV2uE9qYH95DqyoCuNCzEL1NvU3S
58-
yield (
59-
b"\x41\xb4\xa4\x28\xab\x70\x92\xc2\xf1\x39\x5f\x37\x6c\xe2\x97\x03\x3b\x3b\xb4\x46\xc1",
60-
18,
61-
"SUN",
62-
)
71+
assert base58.encode_check(_SUN_ADDRESS) == "TSSMHYeV2uE9qYH95DqyoCuNCzEL1NvU3S"
6372
# https://tronscan.org/#/token20/TCFLL5dx5ZJdKnWuesXxi1VPwjLVmWZZy9
64-
yield (
65-
b"\x41\x18\xfd\x06\x26\xda\xf3\xaf\x02\x38\x9a\xef\x3e\xd8\x7d\xb9\xc3\x3f\x63\x8f\xfa",
66-
18,
67-
"JST",
68-
)
73+
assert base58.encode_check(_JST_ADDRESS) == "TCFLL5dx5ZJdKnWuesXxi1VPwjLVmWZZy9"
6974
# https://tronscan.org/#/token20/TAFjULxiVgT4qWk6UZwjqwZXTSaGaqnVp4
70-
yield (
71-
b"\x41\x03\x20\x17\x41\x1f\x46\x63\xb3\x17\xfe\x77\xc2\x57\xd2\x8d\x5c\xd1\xb2\x6e\x3d",
72-
18,
73-
"BTT",
74-
)
75+
assert base58.encode_check(_BTT_ADDRESS) == "TAFjULxiVgT4qWk6UZwjqwZXTSaGaqnVp4"
7576
# https://tronscan.org/#/token20/TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7
76-
yield (
77-
b"\x41\x74\x47\x2e\x7d\x35\x39\x5a\x6b\x5a\xdd\x42\x7e\xec\xb7\xf4\xb6\x2a\xd2\xb0\x71",
78-
6,
79-
"WIN",
80-
)
77+
assert base58.encode_check(_WIN_ADDRESS) == "TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7"
8178
# https://tronscan.org/#/token20/TYhWwKpw43ENFWBTGpzLHn3882f2au7SMi
82-
yield (
83-
b"\x41\xf9\x53\x35\xa4\xd4\x2d\xb4\xb7\x0a\x96\x88\xa3\x93\x27\x9f\x2c\x90\xfa\x10\x25",
84-
8,
85-
"WBTC",
86-
)
79+
assert base58.encode_check(_WBTC_ADDRESS) == "TYhWwKpw43ENFWBTGpzLHn3882f2au7SMi"
8780
# https://tronscan.org/#/token20/THb4CqiFdwNHsWsQCs4JhzwjMWys4aqCbF
88-
yield (
89-
b"\x41\x53\x90\x83\x08\xf4\xaa\x22\x0f\xb1\x0d\x77\x8b\x5d\x1b\x34\x48\x9c\xd6\xed\xfc",
90-
18,
91-
"ETH(Tron)",
81+
assert (
82+
base58.encode_check(_ETH_TRON_ADDRESS) == "THb4CqiFdwNHsWsQCs4JhzwjMWys4aqCbF"
9283
)
9384
# https://tronscan.org/#/token20/TPFqcBAaaUMCSVRCqPaQ9QnzKhmuoLR6Rc
94-
yield (
95-
b"\x41\x91\xbe\xd8\xe7\x84\x24\x9c\x91\x61\x1e\x61\xc4\x58\x5c\x40\xe2\x1f\xd0\xac\xe2",
96-
18,
97-
"USD1",
98-
)
85+
assert base58.encode_check(_USD1_ADDRESS) == "TPFqcBAaaUMCSVRCqPaQ9QnzKhmuoLR6Rc"
9986
# https://tronscan.org/#/token20/TUPM7K8REVzD2UdV4R5fe5M8XbnR2DdoJ6
100-
yield (
101-
b"\x41\xca\x03\x03\xe8\xb9\xa7\x38\x12\x17\x77\x11\x6d\xce\xa4\x19\xfe\x52\x4f\x27\x1a",
102-
18,
103-
"HTX",
104-
)
87+
assert base58.encode_check(_HTX_ADDRESS) == "TUPM7K8REVzD2UdV4R5fe5M8XbnR2DdoJ6"
10588
# https://tronscan.org/#/token20/TUpMhErZL2fhh4sVNULAbNKLokS4GjC1F4
106-
yield (
107-
b"\x41\xce\xbd\xe7\x10\x77\xb8\x30\xb9\x58\xc8\xda\x17\xbc\xdd\xee\xb8\x5d\x0b\xcf\x25",
108-
18,
109-
"TUSD",
110-
)
89+
assert base58.encode_check(_TUSD_ADDRESS) == "TUpMhErZL2fhh4sVNULAbNKLokS4GjC1F4"
90+
# https://tronscan.org/#/token20/TFptbWaARrWTX5Yvy3gNG5Lm8BmhPx82Bt
91+
assert base58.encode_check(_WBT_ADDRESS) == "TFptbWaARrWTX5Yvy3gNG5Lm8BmhPx82Bt"
92+
# https://tronscan.org/#/token20/TNUC9Qb1rRpS5CbWLmNMxXBjyFoydXjWFR
93+
assert base58.encode_check(_WTRX_ADDRESS) == "TNUC9Qb1rRpS5CbWLmNMxXBjyFoydXjWFR"
94+
# https://tronscan.org/#/token20/TKkeiboTkxXKJpbmVFbv4a8ov5rAfRDMf9
95+
assert base58.encode_check(_SUNOLD_ADDRESS) == "TKkeiboTkxXKJpbmVFbv4a8ov5rAfRDMf9"
96+
# https://tronscan.org/#/token20/TFczxzPhnThNSqr5by8tvxsdCFRRz6cPNq
97+
assert base58.encode_check(_AINFT_ADDRESS) == "TFczxzPhnThNSqr5by8tvxsdCFRRz6cPNq"
98+
# https://tronscan.org/#/token20/TU3kjFuhtEo42tsCBtfYUAZxoqQ4yuSLQ5
99+
assert base58.encode_check(_STRX_ADDRESS) == "TU3kjFuhtEo42tsCBtfYUAZxoqQ4yuSLQ5"
100+
# https://tronscan.org/#/token20/TVj7RNVHy6thbM7BWdSe9G6gXwKhjhdNZS
101+
assert base58.encode_check(_KLEVER_ADDRESS) == "TVj7RNVHy6thbM7BWdSe9G6gXwKhjhdNZS"
102+
103+
104+
def token_iterator() -> Iterator[Tuple[AnyBytes, int, str]]:
105+
yield (_SHASTA_USDT_ADDRESS, 6, "tUSDT")
106+
yield (_USDT_ADDRESS, 6, "USDT")
107+
yield (_USDD_ADDRESS, 18, "USDD")
108+
yield (_SUN_ADDRESS, 18, "SUN")
109+
yield (_JST_ADDRESS, 18, "JST")
110+
yield (_BTT_ADDRESS, 18, "BTT")
111+
yield (_WIN_ADDRESS, 6, "WIN")
112+
yield (_WBTC_ADDRESS, 8, "WBTC")
113+
yield (_ETH_TRON_ADDRESS, 18, "ETH(Tron)")
114+
yield (_USD1_ADDRESS, 18, "USD1")
115+
yield (_HTX_ADDRESS, 18, "HTX")
116+
yield (_TUSD_ADDRESS, 18, "TUSD")
117+
yield (_WBT_ADDRESS, 8, "WBT")
118+
yield (_WTRX_ADDRESS, 6, "WTRX")
119+
yield (_SUNOLD_ADDRESS, 18, "SUNOLD")
120+
yield (_AINFT_ADDRESS, 6, "AINFT")
121+
yield (_STRX_ADDRESS, 18, "sTRX")
122+
yield (_KLEVER_ADDRESS, 6, "Klever")

0 commit comments

Comments
 (0)