1
0

move TrezorClient.expand_path to bitcoin.py

and allow its input to end with a '/' slash
This commit is contained in:
SomberNight
2018-08-14 18:19:16 +02:00
parent 52a4810752
commit b4b1de088a
6 changed files with 32 additions and 50 deletions

View File

@@ -24,7 +24,7 @@
# SOFTWARE.
import hashlib
import hmac
from typing import List
from .util import bfh, bh2u, BitcoinException, print_error, assert_bytes, to_bytes, inv_dict
from . import version
@@ -708,6 +708,24 @@ def bip32_derivation(s):
i = int(n[:-1]) + BIP32_PRIME if n[-1] == "'" else int(n)
yield i
def convert_bip32_path_to_list_of_uint32(n: str) -> List[int]:
"""Convert bip32 path to list of uint32 integers with prime flags
m/0/-1/1' -> [0, 0x80000001, 0x80000001]
based on code in trezorlib
"""
path = []
for x in n.split('/')[1:]:
if x == '': continue
prime = 0
if x.endswith("'"):
x = x.replace('\'', '')
prime = BIP32_PRIME
if x.startswith('-'):
prime = BIP32_PRIME
path.append(abs(int(x)) | prime)
return path
def is_bip32_derivation(x):
try:
[ i for i in bip32_derivation(x)]