Rename 'test_get_pk2' to 'test_get_eth2_pk' and use rather ETH2 public address
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
from typing import List
|
||||
|
||||
from bip_utils import Bip39SeedGenerator
|
||||
from bip_utils.utils.mnemonic import Mnemonic
|
||||
|
||||
from .tree import (
|
||||
derive_master_SK,
|
||||
derive_child_SK,
|
||||
)
|
||||
|
||||
|
||||
def path_to_nodes(path: str) -> List[int]:
|
||||
"""
|
||||
Maps from a path string to a list of indices where each index represents the corresponding level in the path.
|
||||
"""
|
||||
path = path.replace(' ', '')
|
||||
if not set(path).issubset(set('m1234567890/')):
|
||||
raise ValueError(f"Invalid path {path}")
|
||||
|
||||
indices = path.split('/')
|
||||
|
||||
if indices[0] != 'm':
|
||||
raise ValueError(f"The first character of path should be `m`. Got {indices[0]}.")
|
||||
indices.pop(0)
|
||||
|
||||
return [int(index) for index in indices]
|
||||
|
||||
|
||||
def mnemonic_and_path_to_key(mnemonic: str, path: str) -> int:
|
||||
"""
|
||||
Return the SK at position `path`, derived from `mnemonic`. The password is to be
|
||||
compliant with BIP39 mnemonics that use passwords, but is not used by this CLI outside of tests.
|
||||
"""
|
||||
#seed = get_seed(mnemonic)
|
||||
seed = Bip39SeedGenerator(Mnemonic.FromString(mnemonic)).Generate()
|
||||
|
||||
sk = derive_master_SK(seed)
|
||||
for node in path_to_nodes(path):
|
||||
sk = derive_child_SK(parent_SK=sk, index=node)
|
||||
return sk
|
||||
Reference in New Issue
Block a user