@@ -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