1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-22 07:28:10 +00:00

chore(common): update chains and tokens

This commit is contained in:
Martin Milata 2022-03-29 17:54:06 +02:00
parent 78feb5fe03
commit 29bab9e8a4
7 changed files with 2316 additions and 1024 deletions

File diff suppressed because it is too large Load Diff

@ -1 +1 @@
Subproject commit c2dcfd82e737d894044635f9cb4f0a6d8cf0d158
Subproject commit 427b0628145b86911ffe571bb1ced0ca883c48f5

@ -1 +1 @@
Subproject commit 502ed91029c4b5c89f5059f561cc98fa346fdda2
Subproject commit 9045282fce6e3b40f6bbed29ce9bf8a86d415cf3

File diff suppressed because it is too large Load Diff

View File

@ -235,7 +235,8 @@ def _load_ethereum_networks():
chain_data = load_json(chain)
shortcut = chain_data["nativeCurrency"]["symbol"]
name = chain_data["name"]
is_testnet = "testnet" in name.lower()
title = chain_data.get("title", "")
is_testnet = "testnet" in name.lower() or "testnet" in title.lower()
if is_testnet:
slip44 = 1
else:

View File

@ -60,21 +60,21 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
chain_id=3,
slip44=1,
shortcut="tROP",
name="Ethereum Testnet Ropsten",
name="Ropsten",
rskip60=False,
)
yield NetworkInfo(
chain_id=4,
slip44=1,
shortcut="tRIN",
name="Ethereum Testnet Rinkeby",
name="Rinkeby",
rskip60=False,
)
yield NetworkInfo(
chain_id=5,
slip44=1,
shortcut="tGOR",
name="Ethereum Testnet Görli",
name="Görli",
rskip60=False,
)
yield NetworkInfo(
@ -105,13 +105,6 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Ubiq Network Testnet",
rskip60=False,
)
yield NetworkInfo(
chain_id=10,
slip44=60,
shortcut="OETH",
name="Optimistic Ethereum",
rskip60=False,
)
yield NetworkInfo(
chain_id=11,
slip44=916,
@ -179,7 +172,14 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
chain_id=20,
slip44=60,
shortcut="ELA",
name="ELA-ETH-Sidechain",
name="Elastos Smart Chain",
rskip60=False,
)
yield NetworkInfo(
chain_id=24,
slip44=60,
shortcut="DTH",
name="Dithereum",
rskip60=False,
)
yield NetworkInfo(
@ -249,7 +249,7 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
chain_id=42,
slip44=1,
shortcut="tKOV",
name="Ethereum Testnet Kovan",
name="Kovan",
rskip60=False,
)
yield NetworkInfo(
@ -340,7 +340,7 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
chain_id=66,
slip44=60,
shortcut="OKT",
name="OKExChain",
name="OKXChain",
rskip60=False,
)
yield NetworkInfo(
@ -361,7 +361,14 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
chain_id=69,
slip44=1,
shortcut="tKOR",
name="Optimistic Ethereum Testnet Kovan",
name="Optimism Kovan",
rskip60=False,
)
yield NetworkInfo(
chain_id=74,
slip44=60,
shortcut="EIDI",
name="IDChain",
rskip60=False,
)
yield NetworkInfo(
@ -406,6 +413,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="GateChain",
rskip60=False,
)
yield NetworkInfo(
chain_id=87,
slip44=60,
shortcut="SNT",
name="Nova Network",
rskip60=False,
)
yield NetworkInfo(
chain_id=88,
slip44=889,
@ -413,6 +427,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="TomoChain",
rskip60=False,
)
yield NetworkInfo(
chain_id=90,
slip44=60,
shortcut="GAR",
name="Garizon Stage0",
rskip60=False,
)
yield NetworkInfo(
chain_id=96,
slip44=60,
@ -448,6 +469,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="EtherInc",
rskip60=False,
)
yield NetworkInfo(
chain_id=105,
slip44=60,
shortcut="W3G",
name="Web3Games Devnet",
rskip60=False,
)
yield NetworkInfo(
chain_id=106,
slip44=60,
@ -490,6 +518,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Decentralized Web",
rskip60=False,
)
yield NetworkInfo(
chain_id=126,
slip44=126,
shortcut="OY",
name="OYchain",
rskip60=False,
)
yield NetworkInfo(
chain_id=127,
slip44=127,
@ -567,6 +602,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Permission",
rskip60=False,
)
yield NetworkInfo(
chain_id=225,
slip44=60,
shortcut="LA",
name="LACHAIN",
rskip60=False,
)
yield NetworkInfo(
chain_id=246,
slip44=246,
@ -588,6 +630,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Huobi ECO Chain Testnet",
rskip60=False,
)
yield NetworkInfo(
chain_id=258,
slip44=60,
shortcut="SETM",
name="Setheum",
rskip60=False,
)
yield NetworkInfo(
chain_id=262,
slip44=60,
@ -609,6 +658,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="KCC",
rskip60=False,
)
yield NetworkInfo(
chain_id=333,
slip44=60,
shortcut="W3Q",
name="Web3Q",
rskip60=False,
)
yield NetworkInfo(
chain_id=336,
slip44=60,
@ -644,6 +700,20 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Rupaya",
rskip60=False,
)
yield NetworkInfo(
chain_id=512,
slip44=1512,
shortcut="AAC",
name="Double-A Chain",
rskip60=False,
)
yield NetworkInfo(
chain_id=555,
slip44=60,
shortcut="CLASS",
name="Vela1 Chain",
rskip60=False,
)
yield NetworkInfo(
chain_id=558,
slip44=60,
@ -665,6 +735,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Karura Network",
rskip60=False,
)
yield NetworkInfo(
chain_id=707,
slip44=60,
shortcut="BCS",
name="BlockChain Station",
rskip60=False,
)
yield NetworkInfo(
chain_id=777,
slip44=60,
@ -770,6 +847,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Clover",
rskip60=False,
)
yield NetworkInfo(
chain_id=1030,
slip44=60,
shortcut="CFX",
name="Conflux eSpace",
rskip60=False,
)
yield NetworkInfo(
chain_id=1088,
slip44=60,
@ -791,6 +875,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="MathChain Testnet",
rskip60=False,
)
yield NetworkInfo(
chain_id=1197,
slip44=60,
shortcut="IORA",
name="Iora Chain",
rskip60=False,
)
yield NetworkInfo(
chain_id=1202,
slip44=60,
@ -805,6 +896,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Popcateum",
rskip60=False,
)
yield NetworkInfo(
chain_id=1214,
slip44=60,
shortcut="ENTER",
name="EnterChain",
rskip60=False,
)
yield NetworkInfo(
chain_id=1280,
slip44=60,
@ -826,13 +924,6 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Moonriver",
rskip60=False,
)
yield NetworkInfo(
chain_id=1286,
slip44=60,
shortcut="ROC",
name="Moonrock",
rskip60=False,
)
yield NetworkInfo(
chain_id=1287,
slip44=60,
@ -843,8 +934,8 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
yield NetworkInfo(
chain_id=1288,
slip44=60,
shortcut="MSHD",
name="Moonshadow",
shortcut="ROC",
name="Moonrock",
rskip60=False,
)
yield NetworkInfo(
@ -868,6 +959,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Teslafunds",
rskip60=False,
)
yield NetworkInfo(
chain_id=1898,
slip44=60,
shortcut="BOY",
name="BON Network",
rskip60=False,
)
yield NetworkInfo(
chain_id=1987,
slip44=1987,
@ -903,6 +1001,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Ecoball",
rskip60=False,
)
yield NetworkInfo(
chain_id=2213,
slip44=60,
shortcut="EVA",
name="Evanesco",
rskip60=False,
)
yield NetworkInfo(
chain_id=2559,
slip44=60,
@ -910,6 +1015,20 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Kortho",
rskip60=False,
)
yield NetworkInfo(
chain_id=3400,
slip44=60,
shortcut="PRB",
name="Paribu Net",
rskip60=False,
)
yield NetworkInfo(
chain_id=3966,
slip44=60,
shortcut="DYNO",
name="DYNO",
rskip60=False,
)
yield NetworkInfo(
chain_id=4689,
slip44=60,
@ -945,6 +1064,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Pixie Chain",
rskip60=False,
)
yield NetworkInfo(
chain_id=8000,
slip44=60,
shortcut="TELE",
name="Teleport",
rskip60=False,
)
yield NetworkInfo(
chain_id=8217,
slip44=8217,
@ -966,6 +1092,20 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="bloxberg",
rskip60=False,
)
yield NetworkInfo(
chain_id=9001,
slip44=60,
shortcut="EVMOS",
name="Evmos",
rskip60=False,
)
yield NetworkInfo(
chain_id=9100,
slip44=60,
shortcut="GNC",
name="Genesis Coin",
rskip60=False,
)
yield NetworkInfo(
chain_id=10101,
slip44=60,
@ -973,6 +1113,20 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Blockchain Genesis",
rskip60=False,
)
yield NetworkInfo(
chain_id=10823,
slip44=60,
shortcut="CCP",
name="CryptoCoinPay",
rskip60=False,
)
yield NetworkInfo(
chain_id=11111,
slip44=60,
shortcut="WGM",
name="WAGMI",
rskip60=False,
)
yield NetworkInfo(
chain_id=12052,
slip44=621,
@ -980,6 +1134,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Singularity ZERO",
rskip60=False,
)
yield NetworkInfo(
chain_id=13381,
slip44=60,
shortcut="PHX",
name="Phoenix",
rskip60=False,
)
yield NetworkInfo(
chain_id=16000,
slip44=60,
@ -994,6 +1155,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="BTCIX Network",
rskip60=False,
)
yield NetworkInfo(
chain_id=21816,
slip44=60,
shortcut="OML",
name="omChain",
rskip60=False,
)
yield NetworkInfo(
chain_id=24484,
slip44=227,
@ -1059,9 +1227,9 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
)
yield NetworkInfo(
chain_id=43114,
slip44=9000,
slip44=9005,
shortcut="AVAX",
name="Avalanche",
name="Avalanche C-Chain",
rskip60=False,
)
yield NetworkInfo(
@ -1071,6 +1239,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Celo Alfajores Testnet",
rskip60=False,
)
yield NetworkInfo(
chain_id=47805,
slip44=60,
shortcut="REI",
name="REI Network",
rskip60=False,
)
yield NetworkInfo(
chain_id=49797,
slip44=1,
@ -1078,6 +1253,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Energi Testnet",
rskip60=False,
)
yield NetworkInfo(
chain_id=53935,
slip44=60,
shortcut="JEWEL",
name="DFK Chain",
rskip60=False,
)
yield NetworkInfo(
chain_id=62320,
slip44=1,
@ -1085,6 +1267,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Celo Baklava Testnet",
rskip60=False,
)
yield NetworkInfo(
chain_id=63000,
slip44=60,
shortcut="ECS",
name="eCredits",
rskip60=False,
)
yield NetworkInfo(
chain_id=73799,
slip44=1,
@ -1103,7 +1292,14 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
chain_id=80001,
slip44=1,
shortcut="tMATIC",
name="Polygon Testnet Mumbai",
name="Mumbai",
rskip60=False,
)
yield NetworkInfo(
chain_id=99999,
slip44=60,
shortcut="UBC",
name="UB Smart Chain",
rskip60=False,
)
yield NetworkInfo(
@ -1169,6 +1365,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="QuarkChain",
rskip60=False,
)
yield NetworkInfo(
chain_id=108801,
slip44=60,
shortcut="BRO",
name="BROChain",
rskip60=False,
)
yield NetworkInfo(
chain_id=200625,
slip44=200625,
@ -1183,6 +1386,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Alaya",
rskip60=False,
)
yield NetworkInfo(
chain_id=210425,
slip44=60,
shortcut="lat",
name="PlatON",
rskip60=False,
)
yield NetworkInfo(
chain_id=246529,
slip44=246529,
@ -1211,6 +1421,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Polis",
rskip60=False,
)
yield NetworkInfo(
chain_id=888888,
slip44=60,
shortcut="VS",
name="Vision -",
rskip60=False,
)
yield NetworkInfo(
chain_id=955305,
slip44=1011,
@ -1239,6 +1456,13 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="Musicoin",
rskip60=False,
)
yield NetworkInfo(
chain_id=11155111,
slip44=1,
shortcut="tSEP",
name="Sepolia",
rskip60=False,
)
yield NetworkInfo(
chain_id=13371337,
slip44=60,
@ -1309,13 +1533,6 @@ def _networks_iterator() -> Iterator[NetworkInfo]:
name="IPOS Network",
rskip60=False,
)
yield NetworkInfo(
chain_id=1313161554,
slip44=60,
shortcut="aETH",
name="Aurora",
rskip60=False,
)
yield NetworkInfo(
chain_id=1666600000,
slip44=60,

View File

@ -85,6 +85,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("AFA", 2) # eth / Africahead Ipparts
if address == b"\x8e\xb2\x43\x19\x39\x37\x16\x66\x8d\x76\x8d\xce\xc2\x93\x56\xae\x9c\xff\xe2\x85":
return TokenInfo("AGI", 8) # eth / SingularityNET
if address == b"\x73\x88\x65\x30\x1a\x9b\x7d\xd8\x0d\xc3\x66\x6d\xd4\x8c\xf0\x34\xec\x42\xbd\xda":
return TokenInfo("AGRS", 8) # eth / Agoras: Currency of Tau
if address == b"\x7d\xb5\x45\x4f\x35\x00\xf2\x81\x71\xd1\xf9\xc7\xa3\x85\x27\xc9\xcf\x94\xe6\xb2":
return TokenInfo("AGS", 4) # eth / Silver Standard
if address == b"\x51\x21\xe3\x48\xe8\x97\xda\xef\x1e\xef\x23\x95\x9a\xb2\x90\xe5\x55\x7c\xf2\x74":
@ -113,6 +115,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("aLINK", 18) # eth / Aave Interest bearing LINK
if address == b"\xea\x61\x0b\x11\x53\x47\x77\x20\x74\x8d\xc1\x3e\xd3\x78\x00\x39\x41\xd8\x4f\xab":
return TokenInfo("ALIS", 18) # eth / ALIS Token
if address == b"\xe0\xcc\xa8\x6b\x25\x40\x05\x88\x9a\xc3\xa8\x1e\x73\x7f\x56\xa1\x4f\x4a\x38\xf5":
return TokenInfo("ALTA", 18) # eth / Alta Finance
if address == b"\x63\x8a\xc1\x49\xea\x8e\xf9\xa1\x28\x6c\x41\xb9\x77\x01\x7a\xa7\x35\x9e\x6c\xfa":
return TokenInfo("ALTS", 18) # eth / ALTS Token
if address == b"\x49\xb1\x27\xbc\x33\xce\x7e\x15\x86\xec\x28\xce\xc6\xa6\x5b\x11\x25\x96\xc8\x22":
@ -521,8 +525,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("CHSB", 8) # eth / SwissBorg
if address == b"\x14\x60\xa5\x80\x96\xd8\x0a\x50\xa2\xf1\xf9\x56\xdd\xa4\x97\x61\x1f\xa4\xf1\x65":
return TokenInfo("CHX", 18) # eth / Own
if address == b"\x00\x38\x01\x43\x12\x91\x67\x39\x5e\x8b\x4f\x0a\x35\xed\xc1\xbc\x60\xe7\xce\x65":
return TokenInfo("CIG", 8) # eth / Clorigin
if address == b"\x37\xfe\x0f\x06\x7f\xa8\x08\xff\xbd\xd1\x28\x91\xc0\x85\x85\x32\xcf\xe7\x36\x1d":
return TokenInfo("CIV", 18) # eth / Civilization
if address == b"\xf7\x5f\xbf\xa2\xf6\x81\x86\x0b\x9a\x6d\x19\xfc\x3f\xf3\xd3\x4c\xb3\x22\xe2\xd6":
@ -555,6 +557,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("CNB", 8) # eth / Canabio
if address == b"\xd4\xc4\x35\xf5\xb0\x9f\x85\x5c\x33\x17\xc8\x52\x4c\xb1\xf5\x86\xe4\x27\x95\xfa":
return TokenInfo("CND", 18) # eth / Cindicator
if address == b"\xbc\x13\x8b\xd2\x0c\x98\x18\x6c\xc0\x34\x2c\x8e\x38\x09\x53\xaf\x0c\xb4\x8b\xa8":
return TokenInfo("CNDL", 18) # eth / Candle
if address == b"\x87\x13\xd2\x66\x37\xcf\x49\xe1\xb6\xb4\xa7\xce\x57\x10\x6a\xab\xc9\x32\x53\x43":
return TokenInfo("CNN", 18) # eth / Content Neutrality Network
if address == b"\xb4\xb1\xd2\xc2\x17\xec\x07\x76\x58\x4c\xe0\x8d\x3d\xd9\x8f\x90\xed\xed\xa4\x4b":
@ -677,8 +681,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("DACS", 18) # eth / DACSEE
if address == b"\xfb\x2f\x26\xf2\x66\xfb\x28\x05\xa3\x87\x23\x0f\x2a\xa0\xa3\x31\xb4\xd9\x6f\xba":
return TokenInfo("DADI", 18) # eth / DADI
if address == b"\x6b\x17\x54\x74\xe8\x90\x94\xc4\x4d\xa9\x8b\x95\x4e\xed\xea\xc4\x95\x27\x1d\x0f":
return TokenInfo("DAI", 18) # eth / Dai Stablecoin v2.0
if address == b"\x1d\x01\x98\x82\x9c\xba\x76\x8e\x4e\xf2\xf7\x62\xcd\x82\x84\x2b\xba\x3e\x34\x58":
return TokenInfo("DAF", 6) # eth / Diamonds are Forever
if address == b"\x07\xd9\xe4\x9e\xa4\x02\x19\x4b\xf4\x8a\x82\x76\xda\xfb\x16\xe4\xed\x63\x33\x17":
return TokenInfo("DALC", 8) # eth / DaleCoin
if address == b"\x9b\x70\x74\x0e\x70\x8a\x08\x3c\x6f\xf3\x8d\xf5\x22\x97\x02\x0f\x5d\xfa\xa5\xee":
@ -731,8 +735,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("DEX", 18) # eth / DEX
if address == b"\x43\x1a\xd2\xff\x6a\x9c\x36\x58\x05\xeb\xad\x47\xee\x02\x11\x48\xd6\xf7\xdb\xe0":
return TokenInfo("DF", 18) # eth / dForce Platform Token
if address == b"\xe0\xb7\x92\x7c\x4a\xf2\x37\x65\xcb\x51\x31\x4a\x0e\x05\x21\xa9\x64\x5f\x0e\x2a":
return TokenInfo("DGD", 9) # eth / Digix DAO
if address == b"\xf6\xcf\xe5\x3d\x6f\xeb\xae\xea\x05\x1f\x40\x0f\xf5\xfc\x14\xf0\xcb\xbd\xac\xa1":
return TokenInfo("DGPT", 18) # eth / DigiPulse
if address == b"\x6a\xed\xbf\x8d\xff\x31\x43\x72\x20\xdf\x35\x19\x50\xba\x2a\x33\x62\x16\x8d\x1b":
@ -1213,8 +1215,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("GLA", 8) # eth / Gladius
if address == b"\x68\x10\xe7\x76\x88\x0c\x02\x93\x3d\x47\xdb\x1b\x9f\xc0\x59\x08\xe5\x38\x6b\x96":
return TokenInfo("GNO", 18) # eth / Gnosis
if address == b"\xa7\x44\x76\x44\x31\x19\xa9\x42\xde\x49\x85\x90\xfe\x1f\x24\x54\xd7\xd4\xac\x0d":
return TokenInfo("GNT", 18) # eth / Golem
if address == b"\x6e\xc8\xa2\x4c\xab\xdc\x33\x9a\x06\xa1\x72\xf8\x22\x3e\xa5\x57\x05\x5a\xda\xa5":
return TokenInfo("GNX", 9) # eth / Genaro Network
if address == b"\x24\x75\x51\xf2\xeb\x33\x62\xe2\x22\xc7\x42\xe9\xc7\x88\xb8\x95\x7d\x9b\xc8\x7e":
@ -1255,8 +1255,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("GUESS", 2) # eth / Peerguess
if address == b"\x98\x47\x34\x5d\xe8\xb6\x14\xc9\x56\x14\x6b\xbe\xa5\x49\x33\x6d\x9c\x8d\x26\xb6":
return TokenInfo("GULD", 8) # eth / GULD ERC20
if address == b"\xf7\xb0\x98\x29\x8f\x7c\x69\xfc\x14\x61\x0b\xf7\x1d\x5e\x02\xc6\x07\x92\x89\x4c":
return TokenInfo("GUP", 3) # eth / Matchpool
if address == b"\x05\x6f\xd4\x09\xe1\xd7\xa1\x24\xbd\x70\x17\x45\x9d\xfe\xa2\xf3\x87\xb6\xd5\xcd":
return TokenInfo("GUSD", 2) # eth / Gemini dollar
if address == b"\x10\x3c\x3a\x20\x9d\xa5\x9d\x3e\x7c\x4a\x89\x30\x7e\x66\x52\x1e\x08\x1c\xfd\xf0":
@ -1503,8 +1501,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("KAN", 18) # eth / BitKan
if address == b"\xe1\x52\x54\xa1\x3d\x34\xf9\x70\x03\x20\x33\x0a\xbc\xb7\xc7\xf8\x57\xaf\x2f\xb7":
return TokenInfo("KAPA", 2) # eth / KAPA COIN
if address == b"\x0d\x6d\xd9\xf6\x8d\x24\xec\x1d\x5f\xe2\x17\x4f\x3e\xc8\xda\xb5\x2b\x52\xba\xf5":
return TokenInfo("KC", 18) # eth / KMCC
if address == b"\x03\x9b\x56\x49\xa5\x99\x67\xe3\xe9\x36\xd7\x47\x1f\x9c\x37\x00\x10\x0e\xe1\xab":
return TokenInfo("KCS", 6) # eth / KuCoin
if address == b"\x72\xd3\x2a\xc1\xc5\xe6\x6b\xfc\x5b\x08\x80\x62\x71\xf8\xee\xf9\x15\x54\x51\x64":
@ -1625,6 +1621,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("[deprecated] LRC (old)", 18) # eth / Loopring
if address == b"\x5d\xbe\x29\x6f\x97\xb2\x3c\x4a\x6a\xa6\x18\x3d\x73\xe5\x74\xd0\x2b\xa5\xc7\x19":
return TokenInfo("LUC", 18) # eth / LUCToken
if address == b"\xa5\xef\x74\x06\x8d\x04\xba\x08\x09\xb7\x37\x9d\xd7\x6a\xf5\xce\x34\xab\x7c\x57":
return TokenInfo("LUCHOW", 18) # eth / LunaChow
if address == b"\xfb\x12\xe3\xcc\xa9\x83\xb9\xf5\x9d\x90\x91\x2f\xd1\x7f\x8d\x74\x5a\x8b\x29\x53":
return TokenInfo("LUCK", 0) # eth / LUCK
if address == b"\x01\xcd\x3d\x9d\xf5\x86\x9c\xa7\x95\x47\x45\x66\x3b\xd6\x20\x1c\x57\x1e\x05\xcf":
@ -1667,6 +1665,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("MDT", 18) # eth / Measurable Data Token
if address == b"\x94\x7a\xeb\x02\x30\x43\x91\xf8\xfb\xe5\xb2\x5d\x7d\x98\xd6\x49\xb5\x7b\x17\x88":
return TokenInfo("MDX", 18) # eth / Mandala Exchange Token
if address == b"\x66\x52\xfa\x20\x1b\x6b\xbb\xc0\xb5\xb0\xad\x3f\x57\x02\xb2\xb9\x84\x9c\xc8\x30":
return TokenInfo("MEDCASH", 4) # eth / MEDCASH
if address == b"\xfd\x1e\x80\x50\x8f\x24\x3e\x64\xce\x23\x4e\xa8\x8a\x5f\xd2\x82\x7c\x71\xd4\xb7":
return TokenInfo("MEDX", 8) # eth / MediBloc [ERC20]
if address == b"\xd5\x52\x5d\x39\x78\x98\xe5\x50\x20\x75\xea\x5e\x83\x0d\x89\x14\xf6\xf0\xaf\xfe":
@ -1701,14 +1701,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("MITH", 18) # eth / Mithril
if address == b"\x4a\x52\x7d\x8f\xc1\x3c\x52\x03\xab\x24\xba\x09\x44\xf4\xcb\x14\x65\x8d\x1d\xb6":
return TokenInfo("MITX", 18) # eth / Morpheus Infrastructure Token
if address == b"\x9f\x8f\x72\xaa\x93\x04\xc8\xb5\x93\xd5\x55\xf1\x2e\xf6\x58\x9c\xc3\xa5\x79\xa2":
return TokenInfo("MKR", 18) # eth / MakerDAO
if address == b"\x79\x39\x88\x2b\x54\xfc\xf0\xbc\xae\x6b\x53\xde\xc3\x9a\xd6\xe8\x06\x17\x64\x42":
return TokenInfo("MKT", 8) # eth / Mikado
if address == b"\xec\x67\x00\x5c\x4e\x49\x8e\xc7\xf5\x5e\x09\x2b\xd1\xd3\x5c\xbc\x47\xc9\x18\x92":
return TokenInfo("MLN (new)", 18) # eth / Melonport
if address == b"\xbe\xb9\xef\x51\x4a\x37\x9b\x99\x7e\x07\x98\xfd\xcc\x90\x1e\xe4\x74\xb6\xd9\xa1":
return TokenInfo("[deprecated] MLN (old)", 18) # eth / Melonport
if address == b"\x6b\x4c\x7a\x5e\x3f\x0b\x99\xfc\xd8\x3e\x9c\x08\x9b\xdd\xd6\xc7\xfc\xe5\xc6\x11":
return TokenInfo("MM", 18) # eth / Million
if address == b"\x1a\x95\xb2\x71\xb0\x53\x5d\x15\xfa\x49\x93\x2d\xab\xa3\x1b\xa6\x12\xb5\x29\x46":
@ -1825,8 +1819,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("NOAH", 18) # eth / Noah Coin
if address == b"\xf4\xfa\xea\x45\x55\x75\x35\x4d\x26\x99\xbc\x20\x9b\x0a\x65\xca\x99\xf6\x99\x82":
return TokenInfo("NOBS", 18) # eth / No BS Crypto
if address == b"\x64\x3b\x68\x70\xbe\xab\xee\x94\x1b\x92\x60\xa0\xa8\x78\xbc\xf4\xa6\x1f\xb0\xf1":
return TokenInfo("NONE", 0) # eth / None
if address == b"\x00\x27\x44\x9b\xf0\x88\x7c\xa3\xe4\x31\xd2\x63\xff\xde\xfb\x24\x4d\x95\xb5\x55":
return TokenInfo("NOT", 18) # eth / Token Not
if address == b"\xec\x46\xf8\x20\x7d\x76\x60\x12\x45\x4c\x40\x8d\xe2\x10\xbc\xbc\x22\x43\xe7\x1c":
@ -2153,8 +2145,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("RBX", 18) # eth / RBX
if address == b"\xf9\x70\xb8\xe3\x6e\x23\xf7\xfc\x3f\xd7\x52\xee\xa8\x6f\x8b\xe8\xd8\x33\x75\xa6":
return TokenInfo("RCN", 18) # eth / Ripio Credit Network
if address == b"\x25\x5a\xa6\xdf\x07\x54\x0c\xb5\xd3\xd2\x97\xf0\xd0\xd4\xd8\x4c\xb5\x2b\xc8\xe6":
return TokenInfo("RDN", 18) # eth / Raiden Network
if address == b"\xd9\x67\xd9\xf9\x41\xcd\x31\x6a\xb2\x38\xd3\xee\x76\x1f\x80\xb7\xca\xec\x78\x19":
return TokenInfo("RDV", 18) # eth / Rendezvous
if address == b"\x76\x7b\xa2\x91\x5e\xc3\x44\x01\x5a\x79\x38\xe3\xee\xdf\xec\x27\x85\x19\x5d\x05":
@ -2177,10 +2167,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("REMI", 18) # eth / REMI
if address == b"\x40\x8e\x41\x87\x6c\xcc\xdc\x0f\x92\x21\x06\x00\xef\x50\x37\x26\x56\x05\x2a\x38":
return TokenInfo("REN", 18) # eth / Republic Token
if address == b"\x19\x85\x36\x5e\x9f\x78\x35\x9a\x9b\x6a\xd7\x60\xe3\x24\x12\xf4\xa4\x45\xe8\x62":
return TokenInfo("REP", 18) # eth / Augur
if address == b"\xe9\x43\x27\xd0\x7f\xc1\x79\x07\xb4\xdb\x78\x8e\x5a\xdf\x2e\xd4\x24\xad\xdf\xf6":
return TokenInfo("[deprecated] REP", 18) # eth / Augur
if address == b"\x22\x16\x57\x77\x68\x46\x89\x09\x89\xa7\x59\xba\x29\x73\xe4\x27\xdf\xf5\xc9\xbb":
return TokenInfo("REPv2", 18) # eth / Reputation
if address == b"\x8f\x82\x21\xaf\xbb\x33\x99\x8d\x85\x84\xa2\xb0\x57\x49\xba\x73\xc3\x7a\x93\x8a":
@ -2205,8 +2191,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("RIYA", 8) # eth / Etheriya
if address == b"\x10\x6a\xa4\x92\x95\xb5\x25\xfc\xf9\x59\xaa\x75\xec\x3f\x7d\xcb\xf5\x35\x2f\x1c":
return TokenInfo("RKT", 18) # eth / Rock
if address == b"\x60\x7f\x4c\x5b\xb6\x72\x23\x0e\x86\x72\x08\x55\x32\xf7\xe9\x01\x54\x4a\x73\x75":
return TokenInfo("RLC", 9) # eth / IEx.ec
if address == b"\xcc\xed\x5b\x82\x88\x08\x6b\xe8\xc3\x8e\x23\x56\x7e\x68\x4c\x37\x40\xbe\x4d\x48":
return TokenInfo("RLT", 10) # eth / RouletteToken
if address == b"\xbe\x99\xb0\x97\x09\xfc\x75\x3b\x09\xbc\xf5\x57\xa9\x92\xf6\x60\x5d\x59\x97\xb0":
@ -2241,6 +2225,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("RPE", 18) # eth / REPE
if address == b"\xb4\xef\xd8\x5c\x19\x99\x9d\x84\x25\x13\x04\xbd\xa9\x9e\x90\xb9\x23\x00\xbd\x93":
return TokenInfo("RPL", 18) # eth / Rocket Pool
if address == b"\x32\x06\x23\xb8\xe4\xff\x03\x37\x39\x31\x76\x9a\x31\xfc\x52\xa4\xe7\x8b\x5d\x70":
return TokenInfo("RSR", 18) # eth / Reserve Rights
if address == b"\xec\x49\x1c\x10\x88\xea\xe9\x92\xb7\xa2\x14\xef\xb0\xa2\x66\xad\x09\x27\xa7\x2a":
return TokenInfo("RTB", 18) # eth / AB-Chain RTB
if address == b"\x7a\x55\x99\xb9\x7e\x8c\x4a\xbb\x5d\xd0\x6e\xba\x0e\x9d\x1f\x75\xaf\x81\x8d\xb9":
@ -2307,6 +2293,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("SETS", 18) # eth / Sensitrust Token
if address == b"\x68\x47\x3d\xc4\xb7\xa4\xb0\x86\x7f\xd7\xc5\xb9\xa9\x82\xfe\xa4\x07\xda\xd3\x20":
return TokenInfo("sEUR", 18) # eth / Synth sEUR
if address == b"\xaf\x50\xf8\xbe\xc1\xdb\xec\x01\x3b\x70\x25\xdb\x44\x4d\xa0\x19\xc2\xf5\xd4\x88":
return TokenInfo("SEV", 18) # eth / SeveraDAO
if address == b"\x98\xf5\xe9\xb7\xf0\xe3\x39\x56\xc0\x44\x3e\x81\xbf\x7d\xeb\x8b\x5b\x1e\xd5\x45":
return TokenInfo("SEXY", 18) # eth / Sexy Token
if address == b"\xed\x08\x49\xbf\x46\xcf\xb9\x84\x5a\x2d\x90\x0a\x0a\x4e\x59\x3f\x2d\xd3\x67\x3c":
@ -2525,6 +2513,8 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("SXUT", 18) # eth / Spectre.ai U-Token
if address == b"\x10\xb1\x23\xfd\xdd\xe0\x03\x24\x31\x99\xaa\xd0\x35\x22\x06\x5d\xc0\x58\x27\xa0":
return TokenInfo("SYN", 18) # eth / Synapse
if address == b"\x46\xea\xf7\x5e\x6d\x39\x17\x08\xb7\xf1\xa0\xd5\x68\x75\xd9\x08\x44\x11\x95\x21":
return TokenInfo("SYS", 18) # eth / Syscoin
if address == b"\x3a\x0d\x74\x6b\x3e\xa1\xd8\xcc\xdf\x19\xad\x91\x59\x13\xbd\x68\x39\x11\x33\xca":
return TokenInfo("SYSX", 8) # eth / SyscoinToken
if address == b"\xe7\x77\x5a\x6e\x9b\xcf\x90\x4e\xb3\x9d\xa2\xb6\x8c\x5e\xfb\x4f\x93\x60\xe0\x8c":
@ -3395,6 +3385,10 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("WINGS", 18) # eth / WINGS
if address == b"\x1b\x22\xc3\x2c\xd9\x36\xcb\x97\xc2\x8c\x56\x90\xa0\x69\x5a\x82\xab\xf6\x88\xe6":
return TokenInfo("WISH", 18) # eth / MyWish
if address == b"\xd6\x4d\xee\xa5\xf2\x49\x34\xe3\xa1\xaa\x75\x29\x12\xae\xe8\xff\xd8\x30\x0c\x3f":
return TokenInfo("WLKR", 18) # eth / WLKR Innovation Index
if address == b"\xc9\x02\x06\xab\x21\xbd\xbf\x5e\x92\xaf\xf4\xe6\xb5\xf0\x97\xb6\x5b\x0e\xcc\x06":
return TokenInfo("WLKRR", 18) # eth / Walker
if address == b"\x68\x5e\xd3\x90\xb1\x6a\xc9\xdf\x9a\xb9\x70\x72\x94\xa4\x2a\x10\x7c\xfb\x62\xaf":
return TokenInfo("WMA", 18) # eth / weeMarketplaceAccessToken
if address == b"\xbf\xbe\x53\x32\xf1\x72\xd7\x78\x11\xbc\x6c\x27\x28\x44\xf3\xe5\x4a\x7b\x23\xbb":
@ -3561,8 +3555,6 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("ZMN", 18) # eth / ZMINE
if address == b"\xb5\xb8\xf5\x61\x6f\xe4\x2d\x5c\xec\xa3\xe8\x7f\x3f\xdd\xbd\xd8\xf4\x96\xd7\x60":
return TokenInfo("ZPR", 18) # eth / ZPER
if address == b"\xe4\x1d\x24\x89\x57\x1d\x32\x21\x89\x24\x6d\xaf\xa5\xeb\xde\x1f\x46\x99\xf4\x98":
return TokenInfo("ZRX", 18) # eth / 0x Project
if address == b"\xe3\x86\xb1\x39\xed\x37\x15\xca\x4b\x18\xfd\x52\x67\x1b\xdc\xea\x1c\xdf\xe4\xb1":
return TokenInfo("ZST", 8) # eth / Zeus Exchange
if address == b"\xe8\xf9\xfa\x97\x7e\xa5\x85\x59\x1d\x9f\x39\x46\x81\x31\x8c\x16\x55\x25\x77\xfb":
@ -3578,27 +3570,17 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("ILSC", 2) # rop / IsraCoin
if address == b"\x4c\x57\x2f\xbc\x03\xd4\xa2\xb6\x83\xcf\x4f\x10\xff\xdc\xaf\xd0\x08\x85\xe1\x08":
return TokenInfo("MEWV5", 9) # rop / MEW V5 Test Token
if address == b"\xfd\x5a\x69\xa1\x30\x95\x95\xff\x51\x21\x55\x3f\x52\xc8\xa5\xb2\xb1\xb3\x10\x31":
return TokenInfo("NONE", 0) # rop / None
if address == b"\x73\x14\xdc\x4d\x77\x94\xb5\xe7\x89\x42\x12\xca\x15\x56\xae\x8e\x3d\xe5\x86\x21":
return TokenInfo("RLC", 9) # rop / iExec RLC
if address == b"\xaa\x1d\x9d\x07\x88\xda\xca\x9a\x30\x11\x1d\x12\xaa\x0d\x98\x09\x0f\x02\xea\x30":
return TokenInfo("RCL", 18) # rop / RascalCoin
if chain_id == 4:
if address == b"\xe2\x78\x26\xee\x77\x8b\x6f\x78\xa4\x9a\x68\x6d\xa7\xd6\x4f\x6e\x7b\x08\x4a\x4f":
return TokenInfo("BHNT", 0) # rin / Berlin Hack&Tell winner token
if address == b"\x8b\x65\xd4\xb7\xee\x3f\xff\xa9\x86\xc5\x77\xf0\xf4\xb7\x0a\x21\xba\xe3\xdd\x54":
return TokenInfo("CTGA", 18) # rin / Convenient To Go
if address == b"\x27\x5a\x5b\x34\x65\x99\xb5\x69\x17\xe7\xb1\xc9\xde\x01\x9d\xcf\x9e\xad\x86\x1a":
return TokenInfo("KC", 18) # rin / Karma Token
if address == b"\x64\x75\xa7\xfa\x6e\xd2\xd5\x18\x0f\x0e\x0a\x07\xc2\xd9\x51\xd1\x2c\x0e\xdb\x91":
return TokenInfo("NONE", 0) # rin / None
if address == b"\x12\xfe\x17\x4c\x09\x7f\x6b\x3e\x87\x6b\x3b\x06\x0c\x90\x61\xf4\xb9\xde\xbb\x80":
return TokenInfo("PPD", 18) # rin / PP Donation
if address == b"\x2d\x42\x7d\x9e\x53\x5e\x43\x82\x60\x6b\x93\x29\x0d\xcc\x13\xa5\xe9\xa6\x94\xbe":
return TokenInfo("qwe", 18) # rin / qweToken
if address == b"\x36\x15\x75\x70\x11\x11\x25\x60\x52\x15\x36\x25\x8c\x1e\x73\x25\xae\x3b\x48\xae":
return TokenInfo("RDN", 18) # rin / Raiden
if address == b"\xf1\xe6\xad\x3a\x7e\xf0\xc8\x6c\x91\x5f\x0f\xed\xf8\x0e\xd8\x51\x80\x9b\xea\x90":
return TokenInfo("RLC", 9) # rin / iExec RLC
if address == b"\x0a\x05\x7a\x87\xce\x9c\x56\xd7\xe3\x36\xb4\x17\xc7\x9c\xf3\x0e\x8d\x27\x86\x0b":
return TokenInfo("WALL", 15) # rin / WALLETH Community-Token
if chain_id == 8:
@ -3608,10 +3590,26 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
return TokenInfo("CEFS", 8) # ubq / CEFS
if address == b"\x94\xad\x7e\x41\xc1\xd4\x40\x22\xc4\xf4\x7c\xb1\xba\x01\x9f\xd1\xa0\x22\xc5\x36":
return TokenInfo("DOT", 8) # ubq / DOT
if address == b"\xcf\x32\x22\xb7\xfd\xa7\xa7\x56\x3b\x9e\x1e\x6c\x96\x6b\xea\xd0\x4a\xc2\x3c\x36":
return TokenInfo("ESCH", 18) # ubq / Escher
if address == b"\x50\x06\x84\xce\x0d\x4f\x04\xab\xed\xff\x3e\x54\xfc\xf8\xac\xc5\xe6\xcf\xc4\xbd":
return TokenInfo("GEO", 8) # ubq / GeoCoin
if address == b"\x08\x26\x18\x0a\x4c\x98\x1d\x50\x95\xcb\x5c\x48\xbb\x2a\x09\x8a\x44\xcf\x6f\x73":
return TokenInfo("GRANS", 18) # ubq / 10grans
if address == b"\x78\x45\xfc\xbe\x28\xac\x19\xab\x7e\xc1\xc1\xd9\x67\x4e\x34\xfd\xcb\x49\x17\xdb":
return TokenInfo("INK", 18) # ubq / INK
if address == b"\x4b\x48\x99\xa1\x0f\x3e\x50\x7d\xb2\x07\xb0\xee\x24\x26\x02\x9e\xfa\x16\x8a\x67":
return TokenInfo("QWARK", 8) # ubq / QWARK
if address == b"\x5e\x17\x15\xbb\x79\x80\x5b\xd6\x72\x72\x97\x60\xb3\xf7\xf3\x4d\x6f\x48\x50\x98":
return TokenInfo("RICKS", 8) # ubq / RICKS
if address == b"\x49\x7e\x20\x58\x6f\x86\xc3\x55\x92\xff\x8f\x65\xcd\xe9\x4f\x29\x65\x14\xc3\x87":
return TokenInfo("SNARG", 0) # ubq / Snarg01
if address == b"\x20\xe3\xdd\x74\x6d\xdf\x51\x9b\x23\xff\xbb\xb6\xda\x7a\x5d\x33\xea\x63\x49\xd6":
return TokenInfo("SPHR", 8) # ubq / Sphere
if address == b"\x40\x2c\x2c\x3a\xce\xeb\x52\xb8\x65\x4a\x06\x31\x01\x2c\xed\x49\xcb\xc9\xbd\xc4":
return TokenInfo("SPHRC", 18) # ubq / Sphere Cubed
if address == b"\xcf\x82\x3e\xb6\xf6\x2a\x30\xed\xb0\x05\xb9\x13\x83\xe2\xfa\x36\x4d\xd7\x53\xdc":
return TokenInfo("TGE1", 18) # ubq / Ubiq TGE 1
if chain_id == 30:
if address == b"\xd5\x2d\xa6\x36\x89\x54\x39\x24\xdc\xa6\x6b\xcb\xe2\xe2\xea\x59\x9c\x45\xd5\x75":
return TokenInfo("ARSCB", 18) # rsk / Pesos Argentinos PagoLinea
@ -3692,30 +3690,10 @@ def token_by_chain_address(chain_id: int, address: bytes) -> TokenInfo:
if chain_id == 42:
if address == b"\x86\x67\x55\x92\x54\x24\x1d\xde\xd4\xd1\x13\x92\xf8\x68\xd7\x20\x92\x76\x53\x67":
return TokenInfo("Aeternity", 18) # kov / Aeternity
if address == b"\xc4\x37\x5b\x7d\xe8\xaf\x5a\x38\xa9\x35\x48\xeb\x84\x53\xa4\x98\x22\x2c\x4f\xf2":
return TokenInfo("DAI", 18) # kov / RadarRelay test Dai Stablecoin v1.0
if address == b"\xee\xe3\x87\x06\x57\xe4\x71\x66\x70\xf1\x85\xdf\x08\x65\x2d\xd8\x48\xfe\x8f\x7e":
return TokenInfo("DGD", 18) # kov / RadarRelay test Digix DAO Token
if address == b"\x47\x33\x65\x9a\x5c\xb7\x89\x6a\x65\xc9\x18\xad\xd6\xf5\x9c\x51\x48\xfb\x5f\xfa":
return TokenInfo("GAV", 6) # kov / GavCoin
if address == b"\xef\x7f\xff\x64\x38\x9b\x81\x4a\x94\x6f\x3e\x92\x10\x55\x13\x70\x5c\xa6\xb9\x90":
return TokenInfo("GNT", 18) # kov / RadarRelay test Golem Network Token
if address == b"\x3c\x67\xf7\xd4\xde\xcf\x77\x95\x22\x5f\x51\xb5\x41\x34\xf8\x11\x37\x38\x5f\x83":
return TokenInfo("GUP", 3) # kov / GUP
if address == b"\x1d\xad\x47\x83\xcf\x3f\xe3\x08\x5c\x14\x26\x15\x7a\xb1\x75\xa6\x11\x9a\x04\xba":
return TokenInfo("MKR", 18) # kov / RadarRelay test MakerDAO
if address == b"\xaa\xf6\x4b\xfc\xc3\x2d\x0f\x15\x87\x3a\x02\x16\x3e\x7e\x50\x06\x71\xa4\xff\xcd":
return TokenInfo("MKR", 18) # kov / MakerDAO
if address == b"\x32\x3b\x5d\x4c\x32\x34\x5c\xed\x77\x39\x3b\x35\x30\xb1\xee\xd0\xf3\x46\x42\x9d":
return TokenInfo("MLN", 18) # kov / RadarRelay test Melon Tokens
if address == b"\xb1\x88\x45\xc2\x60\xf6\x80\xd5\xb9\xd8\x46\x49\x63\x88\x13\xe3\x42\xe4\xf8\xc9":
return TokenInfo("REP", 18) # kov / RadarRelay test Augur Reputation Token
if address == b"\xc5\x75\x38\x84\x6e\xc4\x05\xea\x25\xde\xb0\x0e\x0f\x9b\x29\xa4\x32\xd5\x35\x07":
return TokenInfo("RLC", 9) # kov / iExec RLC
if address == b"\x4a\x6e\x6c\x38\x68\xa2\x79\xe1\xd9\x04\x7b\x42\xc3\xfb\x35\x6f\xf4\x68\x00\x03":
return TokenInfo("TIB", 18) # kov / ThibCoin
if address == b"\x6f\xf6\xc0\xff\x1d\x68\xb9\x64\x90\x1f\x98\x6d\x4c\x9f\xa3\xac\x68\x34\x65\x70":
return TokenInfo("ZRX", 18) # kov / RadarRelay test 0x Protocol Token
if chain_id == 61:
if address == b"\x08\x5f\xb4\xf2\x40\x31\xea\xed\xbc\x2b\x61\x1a\xa5\x28\xf2\x23\x43\xeb\x52\xdb":
return TokenInfo("BEC", 8) # etc / BEC