From 1420ad591be981d546f5f277b2348a7431948ad3 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Thu, 20 Oct 2016 16:40:46 +0200 Subject: [PATCH] apps: add apps.common.coins (+generator) --- src/apps/common/coins-gen.py | 18 ++++++++++++++++++ src/apps/common/coins.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100755 src/apps/common/coins-gen.py create mode 100644 src/apps/common/coins.py diff --git a/src/apps/common/coins-gen.py b/src/apps/common/coins-gen.py new file mode 100755 index 0000000000..5698a42c74 --- /dev/null +++ b/src/apps/common/coins-gen.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 +import json +from collections import OrderedDict + +coins = json.load(open('../../../../trezor-common/coins.json', 'r')) + +print('_coins = [') +for c in coins: + d = OrderedDict() + for n in ['coin_name', 'coin_shortcut', 'maxfee_kb', 'address_type', 'address_type_p2sh', 'address_type_p2wpkh', 'address_type_p2wsh', 'signed_message_header', 'bip44']: + d[n] = c[n] + d['xpub_magic'] = int(c['xpub_magic'], 16) + d['xprv_magic'] = int(c['xprv_magic'], 16) + print(' {', end='') + for k in d: + print('%s: %s, ' % (repr(k), repr(d[k])), end='') + print('},') +print(']\n') diff --git a/src/apps/common/coins.py b/src/apps/common/coins.py new file mode 100644 index 0000000000..8164d06472 --- /dev/null +++ b/src/apps/common/coins.py @@ -0,0 +1,28 @@ +_coins = [ + {'coin_name': 'Bitcoin', 'coin_shortcut': 'BTC', 'maxfee_kb': 100000, 'address_type': 0, 'address_type_p2sh': 5, 'address_type_p2wpkh': 6, 'address_type_p2wsh': 10, 'signed_message_header': 'Bitcoin Signed Message:\n', 'bip44': 0, 'xpub_magic': 76067358, 'xprv_magic': 76066276, }, + {'coin_name': 'Testnet', 'coin_shortcut': 'TEST', 'maxfee_kb': 10000000, 'address_type': 111, 'address_type_p2sh': 196, 'address_type_p2wpkh': 3, 'address_type_p2wsh': 40, 'signed_message_header': 'Bitcoin Signed Message:\n', 'bip44': 1, 'xpub_magic': 70617039, 'xprv_magic': 70615956, }, + {'coin_name': 'Namecoin', 'coin_shortcut': 'NMC', 'maxfee_kb': 10000000, 'address_type': 52, 'address_type_p2sh': 5, 'address_type_p2wpkh': None, 'address_type_p2wsh': None, 'signed_message_header': 'Namecoin Signed Message:\n', 'bip44': 7, 'xpub_magic': 27108450, 'xprv_magic': 27106558, }, + {'coin_name': 'Litecoin', 'coin_shortcut': 'LTC', 'maxfee_kb': 1000000, 'address_type': 48, 'address_type_p2sh': 5, 'address_type_p2wpkh': None, 'address_type_p2wsh': None, 'signed_message_header': 'Litecoin Signed Message:\n', 'bip44': 2, 'xpub_magic': 27108450, 'xprv_magic': 27106558, }, + {'coin_name': 'Dogecoin', 'coin_shortcut': 'DOGE', 'maxfee_kb': 1000000000, 'address_type': 30, 'address_type_p2sh': 22, 'address_type_p2wpkh': None, 'address_type_p2wsh': None, 'signed_message_header': 'Dogecoin Signed Message:\n', 'bip44': 3, 'xpub_magic': 49990397, 'xprv_magic': 49988504, }, + {'coin_name': 'Dash', 'coin_shortcut': 'DASH', 'maxfee_kb': 100000, 'address_type': 76, 'address_type_p2sh': 16, 'address_type_p2wpkh': None, 'address_type_p2wsh': None, 'signed_message_header': 'DarkCoin Signed Message:\n', 'bip44': 5, 'xpub_magic': 50221772, 'xprv_magic': 50221816, }, + {'coin_name': 'Zcash', 'coin_shortcut': 'ZEC', 'maxfee_kb': 1000000, 'address_type': 7352, 'address_type_p2sh': 7357, 'address_type_p2wpkh': None, 'address_type_p2wsh': None, 'signed_message_header': 'Zcash Signed Message:\n', 'bip44': 133, 'xpub_magic': 76067358, 'xprv_magic': 76066276, }, + {'coin_name': 'Zcash Testnet', 'coin_shortcut': 'TAZ', 'maxfee_kb': 10000000, 'address_type': 7461, 'address_type_p2sh': 7354, 'address_type_p2wpkh': None, 'address_type_p2wsh': None, 'signed_message_header': 'Zcash Signed Message:\n', 'bip44': 1, 'xpub_magic': 70617039, 'xprv_magic': 70615956, }, +] + +def by_shortcut(shortcut): + for c in _couns: + if c['coin_shortcut'] == shortcut: + return c + return None + +def by_name(name): + for c in _couns: + if c['coin_name'] == name: + return c + return None + +def by_address_type(version): + for c in _couns: + if c['address_type'] == version: + return c + return None