1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-22 22:38:08 +00:00

defs: update coin definitions

This commit is contained in:
Pavol Rusnak 2018-04-24 15:03:40 +01:00
parent e0da01371b
commit 31fbb2b0a3
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D
29 changed files with 45 additions and 46 deletions

View File

@ -29,7 +29,7 @@
"High": 200 "High": 200
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "bitcoincash:", "address_prefix": "bitcoincash:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "bitcoincash:", "address_prefix": "bitcoincash:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -29,7 +29,7 @@
"High": 200 "High": 200
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "bitcoingold:", "address_prefix": "bitcoingold:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -29,7 +29,7 @@
"High": 200 "High": 200
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "bitcoin:", "address_prefix": "bitcoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "bitcoin:", "address_prefix": "bitcoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 2.5, "blocktime_seconds": 150,
"address_prefix": "bitcoinprivate:", "address_prefix": "bitcoinprivate:",
"min_address_length": 35, "min_address_length": 35,
"max_address_length": 95, "max_address_length": 95,

View File

@ -20,7 +20,7 @@ def check_type(val, types, nullable=False, empty=False, regex=None, choice=None)
if types is not str: if types is not str:
return False return False
m = re.match(regex, val) m = re.match(regex, val)
if not m or m.string != val: if not m:
return False return False
# check choice # check choice
if choice is not None: if choice is not None:
@ -34,13 +34,11 @@ def check_type(val, types, nullable=False, empty=False, regex=None, choice=None)
def validate_coin(coin): def validate_coin(coin):
assert check_type(coin['coin_name'], str) assert check_type(coin['coin_name'], str, regex=r'^[A-Z]')
assert check_type(coin['coin_shortcut'], str) assert check_type(coin['coin_shortcut'], str, regex=r'^[A-Zt][A-Z][A-Z]+$')
assert check_type(coin['coin_label'], str) assert check_type(coin['coin_label'], str, regex=r'^[A-Z]')
assert check_type(coin['website'], str) assert check_type(coin['website'], str, regex=r'^http.*[^/]$')
assert check_type(coin['github'], str) assert check_type(coin['github'], str, regex=r'^https://github.com/.*[^/]$')
assert not coin['website'].endswith('/')
assert not coin['github'].endswith('/')
assert check_type(coin['maintainer'], str) assert check_type(coin['maintainer'], str)
assert check_type(coin['curve_name'], str, choice=['secp256k1', 'secp256k1_decred', 'secp256k1_groestl']) assert check_type(coin['curve_name'], str, choice=['secp256k1', 'secp256k1_decred', 'secp256k1_groestl'])
assert check_type(coin['address_type'], int) assert check_type(coin['address_type'], int)
@ -49,10 +47,10 @@ def validate_coin(coin):
assert check_type(coin['maxfee_kb'], int) assert check_type(coin['maxfee_kb'], int)
assert check_type(coin['minfee_kb'], int) assert check_type(coin['minfee_kb'], int)
assert coin['maxfee_kb'] >= coin['minfee_kb'] assert coin['maxfee_kb'] >= coin['minfee_kb']
assert check_type(coin['hash_genesis_block'], str, regex=r'[0-9a-f]{64}') assert check_type(coin['hash_genesis_block'], str, regex=r'^[0-9a-f]{64}$')
assert check_type(coin['xprv_magic'], str, regex=r'[0-9a-f]{8}') assert check_type(coin['xprv_magic'], str, regex=r'^[0-9a-f]{8}$')
assert check_type(coin['xpub_magic'], str, regex=r'[0-9a-f]{8}') assert check_type(coin['xpub_magic'], str, regex=r'^[0-9a-f]{8}$')
assert check_type(coin['xpub_magic_segwit_p2sh'], str, regex=r'[0-9a-f]{8}', nullable=True) assert check_type(coin['xpub_magic_segwit_p2sh'], str, regex=r'^[0-9a-f]{8}$', nullable=True)
assert coin['xprv_magic'] != coin['xpub_magic'] assert coin['xprv_magic'] != coin['xpub_magic']
assert coin['xprv_magic'] != coin['xpub_magic_segwit_p2sh'] assert coin['xprv_magic'] != coin['xpub_magic_segwit_p2sh']
assert coin['xpub_magic'] != coin['xpub_magic_segwit_p2sh'] assert coin['xpub_magic'] != coin['xpub_magic_segwit_p2sh']
@ -60,11 +58,12 @@ def validate_coin(coin):
assert check_type(coin['segwit'], bool) assert check_type(coin['segwit'], bool)
assert check_type(coin['decred'], bool) assert check_type(coin['decred'], bool)
assert check_type(coin['forkid'], int, nullable=True) assert check_type(coin['forkid'], int, nullable=True)
assert check_type(coin['force_bip143'], bool, nullable=True) assert check_type(coin['force_bip143'], bool)
assert check_type(coin['default_fee_b'], dict) assert check_type(coin['default_fee_b'], dict)
assert check_type(coin['dust_limit'], int) assert check_type(coin['dust_limit'], int)
assert check_type(coin['blocktime_minutes'], [int, float]) assert check_type(coin['blocktime_seconds'], int)
assert check_type(coin['signed_message_header'], str) assert check_type(coin['signed_message_header'], str)
assert check_type(coin['address_prefix'], str, regex=r'^.*:$')
assert check_type(coin['min_address_length'], int) assert check_type(coin['min_address_length'], int)
assert check_type(coin['max_address_length'], int) assert check_type(coin['max_address_length'], int)
assert coin['max_address_length'] >= coin['min_address_length'] assert coin['max_address_length'] >= coin['min_address_length']
@ -76,8 +75,10 @@ def validate_coin(coin):
def process_json(fn): def process_json(fn):
print(fn, end=' ... ')
j = json.load(open(fn)) j = json.load(open(fn))
validate_coin(j) validate_coin(j)
print('OK')
return j return j
@ -88,5 +89,3 @@ for fn in glob.glob('*.json'):
coins[n] = c coins[n] = c
json.dump(coins, open('../coins.json', 'w'), indent=4, sort_keys=True) json.dump(coins, open('../coins.json', 'w'), indent=4, sort_keys=True)
print('OK')

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 1, "blocktime_seconds": 60,
"address_prefix": "crown:", "address_prefix": "crown:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 5460, "dust_limit": 5460,
"blocktime_minutes": 2.5, "blocktime_seconds": 150,
"address_prefix": "dash:", "address_prefix": "dash:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 5460, "dust_limit": 5460,
"blocktime_minutes": 2.5, "blocktime_seconds": 150,
"address_prefix": "dash:", "address_prefix": "dash:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "bitcoin:", "address_prefix": "bitcoin:",
"min_address_length": 35, "min_address_length": 35,
"max_address_length": 35, "max_address_length": 35,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 54600, "dust_limit": 54600,
"blocktime_minutes": 0.5, "blocktime_seconds": 30,
"address_prefix": "denarius:", "address_prefix": "denarius:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -29,7 +29,7 @@
"High": 200 "High": 200
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 0.25, "blocktime_seconds": 15,
"address_prefix": "digibyte:", "address_prefix": "digibyte:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 10000000, "dust_limit": 10000000,
"blocktime_minutes": 1, "blocktime_seconds": 60,
"address_prefix": "dogecoin:", "address_prefix": "dogecoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 0 "Normal": 0
}, },
"dust_limit": 10000, "dust_limit": 10000,
"blocktime_minutes": 1, "blocktime_seconds": 60,
"address_prefix": "flashcoin:", "address_prefix": "flashcoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -29,7 +29,7 @@
"High": 1000000 "High": 1000000
}, },
"dust_limit": 100000, "dust_limit": 100000,
"blocktime_minutes": 1.0, "blocktime_seconds": 60,
"address_prefix": "fujicoin:", "address_prefix": "fujicoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 1, "blocktime_seconds": 60,
"address_prefix": "groestlcoin:", "address_prefix": "groestlcoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 1000 "Normal": 1000
}, },
"dust_limit": 54600, "dust_limit": 54600,
"blocktime_minutes": 2.5, "blocktime_seconds": 150,
"address_prefix": "litecoin:", "address_prefix": "litecoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 54600, "dust_limit": 54600,
"blocktime_minutes": 2.5, "blocktime_seconds": 150,
"address_prefix": "litecoin:", "address_prefix": "litecoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 100000 "Normal": 100000
}, },
"dust_limit": 54600, "dust_limit": 54600,
"blocktime_minutes": 1.5, "blocktime_seconds": 90,
"address_prefix": "monacoin:", "address_prefix": "monacoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -29,7 +29,7 @@
"High": 200 "High": 200
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 1, "blocktime_seconds": 60,
"address_prefix": "myriadcoin:", "address_prefix": "myriadcoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 2940, "dust_limit": 2940,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "namecoin:", "address_prefix": "namecoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 5460, "dust_limit": 5460,
"blocktime_minutes": 2, "blocktime_seconds": 120,
"address_prefix": "terracoin:", "address_prefix": "terracoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 1000 "Normal": 1000
}, },
"dust_limit": 54600, "dust_limit": 54600,
"blocktime_minutes": 2.5, "blocktime_seconds": 150,
"address_prefix": "vertcoin:", "address_prefix": "vertcoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -1,7 +1,7 @@
{ {
"coin_name": "viacoin", "coin_name": "Viacoin",
"coin_shortcut": "VIA", "coin_shortcut": "VIA",
"coin_label": "viacoin", "coin_label": "Viacoin",
"website": "https://viacoin.org", "website": "https://viacoin.org",
"github": "https://github.com/viacoin", "github": "https://github.com/viacoin",
"maintainer": "romanornr <romanornr@gmail.com>", "maintainer": "romanornr <romanornr@gmail.com>",
@ -29,7 +29,7 @@
"High": 20000 "High": 20000
}, },
"dust_limit": 54600, "dust_limit": 54600,
"blocktime_minutes": 0.4, "blocktime_seconds": 24,
"address_prefix": "viacoin:", "address_prefix": "viacoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 2.5, "blocktime_seconds": 150,
"address_prefix": "zcash:", "address_prefix": "zcash:",
"min_address_length": 35, "min_address_length": 35,
"max_address_length": 95, "max_address_length": 95,

View File

@ -26,7 +26,7 @@
"Normal": 10 "Normal": 10
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 2.5, "blocktime_seconds": 150,
"address_prefix": "zcash:", "address_prefix": "zcash:",
"min_address_length": 35, "min_address_length": 35,
"max_address_length": 95, "max_address_length": 95,

View File

@ -29,7 +29,7 @@
"High": 200 "High": 200
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "zcoin:", "address_prefix": "zcoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 34, "max_address_length": 34,

View File

@ -29,7 +29,7 @@
"High": 200 "High": 200
}, },
"dust_limit": 546, "dust_limit": 546,
"blocktime_minutes": 10, "blocktime_seconds": 600,
"address_prefix": "testzcoin:", "address_prefix": "testzcoin:",
"min_address_length": 27, "min_address_length": 27,
"max_address_length": 35, "max_address_length": 35,