mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-05-31 21:28:46 +00:00
tools/cointool: collisions in SLIP44 should be fatal (if not testnet)
This commit is contained in:
parent
5f24bc927f
commit
5b31341c6d
@ -210,7 +210,7 @@ def check_btc(coins):
|
|||||||
coin_strings.append(prefix + hl)
|
coin_strings.append(prefix + hl)
|
||||||
return ", ".join(coin_strings)
|
return ", ".join(coin_strings)
|
||||||
|
|
||||||
def print_collision_buckets(buckets, prefix, maxlevel=logging.ERROR):
|
def print_collision_buckets(buckets, prefix, maxlevel=logging.ERROR, strict=False):
|
||||||
"""Intelligently print collision buckets.
|
"""Intelligently print collision buckets.
|
||||||
|
|
||||||
For each bucket, if there are any collision with a mainnet, print it.
|
For each bucket, if there are any collision with a mainnet, print it.
|
||||||
@ -233,7 +233,7 @@ def check_btc(coins):
|
|||||||
supported_networks = [c for c in bucket if not c.get("unsupported")]
|
supported_networks = [c for c in bucket if not c.get("unsupported")]
|
||||||
|
|
||||||
if len(mainnets) > 1:
|
if len(mainnets) > 1:
|
||||||
if have_bitcoin and len(supported_networks) > 1:
|
if (have_bitcoin or strict) and len(supported_networks) > 1:
|
||||||
# ANY collision with Bitcoin is bad
|
# ANY collision with Bitcoin is bad
|
||||||
level = maxlevel
|
level = maxlevel
|
||||||
failed = True
|
failed = True
|
||||||
@ -243,14 +243,14 @@ def check_btc(coins):
|
|||||||
else:
|
else:
|
||||||
# collision between some unsupported networks is OK
|
# collision between some unsupported networks is OK
|
||||||
level = logging.INFO
|
level = logging.INFO
|
||||||
print_log(level, "prefix {}:".format(key), collision_str(bucket))
|
print_log(level, "{} {}:".format(prefix, key), collision_str(bucket))
|
||||||
|
|
||||||
return failed
|
return failed
|
||||||
|
|
||||||
# slip44 collisions
|
# slip44 collisions
|
||||||
print("Checking SLIP44 prefix collisions...")
|
print("Checking SLIP44 values collisions...")
|
||||||
slip44 = find_collisions(coins, "slip44")
|
slip44 = find_collisions(coins, "slip44")
|
||||||
if print_collision_buckets(slip44, "key"):
|
if print_collision_buckets(slip44, "value", strict=True):
|
||||||
check_passed = False
|
check_passed = False
|
||||||
|
|
||||||
# only check address_type on coins that don't use cashaddr
|
# only check address_type on coins that don't use cashaddr
|
||||||
|
Loading…
Reference in New Issue
Block a user