diff --git a/ethereum_tokens-gen.py b/ethereum_tokens-gen.py index 82e473d17b..93abf118a0 100755 --- a/ethereum_tokens-gen.py +++ b/ethereum_tokens-gen.py @@ -2,75 +2,66 @@ import sys import requests -subst = { - (1, 'AVA \U0001F434'): 'AVA', - (1, 'BeerCoin \U0001F37A '): 'BEER', - (1, 'CryptoCarbon'): 'CCRB', - (1, 'DGX 1.0'): 'DGX1', - (1, 'JetCoins'): 'JTC', - (1, 'Unicorn \U0001F984'): 'UNCRN', - (1, '\U00002600\U0000FE0F PLASMA'): 'PLASMA', - (3, '\U0001F4A5 PLASMA'): 'PLASMA', - (4, '\U0000263C PLASMA'): 'PLASMA', - (42, '\U0001F4A5 PLASMA'): 'PLASMA', -} - -def get_tokens(chain): - URL = 'https://raw.githubusercontent.com/kvhnuke/etherwallet/mercury/app/scripts/tokens/%sTokens.json' % chain +def get_tokens(ipfs_hash, chain): + URL = 'https://gateway.ipfs.io/ipfs/%s/%s.json' % (ipfs_hash, chain) r = requests.get(URL) return r.json() -def print_tokens(chain, chain_id, python=False): - tokens = get_tokens(chain) +def print_tokens(ipfs_hash, chain, chain_id, python=False): + tokens = get_tokens(ipfs_hash, chain) if len(tokens) > 0: if python: print(' # %s' % chain) else: print('\t// %s' % chain) for t in sorted(tokens, key=lambda x: x['symbol'].upper()): - address, symbol, decimal = t['address'], t['symbol'], int(t['decimal']) - s = (chain_id, symbol) - if s in subst: - symbol = subst[s] + address, name, symbol, decimal = t['address'], t['name'], t['symbol'], int(t['decimals']) address = '\\x'.join([address[i:i + 2] for i in range(0, len(address), 2)])[2:].lower() if python: - print(" {'chain_id': %2d, 'address': b'%s', 'symbol': '%s', 'decimal': %d}," % (chain_id, address, symbol, decimal)) + print(" {'chain_id': %2d, 'address': b'%s', 'symbol': '%s', 'decimal': %d}, # %s " % (chain_id, address, symbol, decimal, name)) else: - print('\t{%2d, "%s", " %s", %d},' % (chain_id, address, symbol, decimal)) + print('\t{%2d, "%s", " %s", %d}, // %s ' % (chain_id, address, symbol, decimal, name)) return len(tokens) +# disabled are networks with no tokens defined in ethereum-lists/tokens repo + networks = [ ('eth', 1), - ('exp', 2), - ('ropsten', 3), - ('rinkeby', 4), + # ('exp', 2), + # ('rop', 3), + ('rin', 4), ('ubq', 8), - ('rsk', 30), - ('kovan', 42), + # ('rsk', 30), + ('kov', 42), ('etc', 61), ] -def generate_c(): +def generate_c(ipfs_hash): count = 0 for s, i in networks: - count += print_tokens(s, i) + count += print_tokens(ipfs_hash, s, i) print('-' * 32) print('#define TOKENS_COUNT %d' % count) -def generate_python(): +def generate_python(ipfs_hash): print('tokens = [') for s, i in networks: - print_tokens(s, i, python=True) + print_tokens(ipfs_hash, s, i, python=True) print(']') -if __name__ == '__main__': - if len(sys.argv) > 1 and sys.argv[1] == '--python': - generate_python() + +if __name__ == '__main__': + if len(sys.argv) < 2: + print('Usage: ethereum_tokens-gen.py ipfs_hash [--python]') + sys.exit(1) + ipfs_hash = sys.argv[1] + if len(sys.argv) > 2 and sys.argv[2] == '--python': + generate_python(ipfs_hash) else: - generate_c() + generate_c(ipfs_hash)