Source code for pyrxd.hd.bip44

from __future__ import annotations

from ..constants import BIP44_DERIVATION_PATH, Network
from .bip32 import Xprv, Xpub, bip32_derive_xprv_from_mnemonic, step_to_index


[docs] def bip44_derive_xprv_from_mnemonic( # nosec B107 -- passphrase="" is BIP39 spec default mnemonic: str, lang: str = "en", passphrase: str = "", prefix: str = "mnemonic", path: str = BIP44_DERIVATION_PATH, network: Network = Network.MAINNET, ) -> Xprv: """ Derives extended private key using BIP44 format- it is a subset of BIP32. Inherits from BIP32, only changing the default path value. """ return bip32_derive_xprv_from_mnemonic( mnemonic=mnemonic, lang=lang, passphrase=passphrase, prefix=prefix, path=path, network=network )
[docs] def bip44_derive_xprvs_from_mnemonic( # nosec B107 -- passphrase="" is BIP39 spec default mnemonic: str, index_start: str | int, index_end: str | int, lang: str = "en", passphrase: str = "", prefix: str = "mnemonic", path: str = BIP44_DERIVATION_PATH, change: str | int = 0, network: Network = Network.MAINNET, ) -> list[Xprv]: """ Derive a range of extended keys from a nmemonic using BIP44 format """ xprv = bip44_derive_xprv_from_mnemonic(mnemonic, lang, passphrase, prefix, path, network) return _derive_xkeys_from_xkey(xprv, index_start, index_end, change)
def _derive_xkeys_from_xkey( xkey: Xprv | Xpub, index_start: str | int, index_end: str | int, change: str | int = 0 ) -> list[Xprv | Xpub]: """ this function is internal use only within bip44 module """ change_xkey = xkey.ckd(step_to_index(change)) return [change_xkey.ckd(i) for i in range(step_to_index(index_start), step_to_index(index_end))] # [DEPRECATED]
[docs] def derive_xkeys_from_xkey( xkey: Xprv | Xpub, index_start: str | int, index_end: str | int, change: str | int = 0 ) -> list[Xprv | Xpub]: """ [DEPRECATED] Use bip32_derive_xkeys_from_xkey instead. This function name is kept for backward compatibility. """ return _derive_xkeys_from_xkey(xkey=xkey, index_start=index_start, index_end=index_end, change=change)
# [DEPRECATED]
[docs] def derive_xprv_from_mnemonic( # nosec B107 -- passphrase="" is BIP39 spec default mnemonic: str, lang: str = "en", passphrase: str = "", prefix: str = "mnemonic", path: str = BIP44_DERIVATION_PATH, network: Network = Network.MAINNET, ) -> Xprv: """ [DEPRECATED] Use bip44_derive_xprv_from_mnemonic instead. This function name is kept for backward compatibility. """ return bip44_derive_xprv_from_mnemonic( mnemonic=mnemonic, lang=lang, passphrase=passphrase, prefix=prefix, path=path, network=network )
# [DEPRECATED]
[docs] def derive_xprvs_from_mnemonic( # nosec B107 -- passphrase="" is BIP39 spec default mnemonic: str, index_start: str | int, index_end: str | int, lang: str = "en", passphrase: str = "", prefix: str = "mnemonic", path: str = BIP44_DERIVATION_PATH, change: str | int = 0, network: Network = Network.MAINNET, ) -> list[Xprv]: """ [DEPRECATED] Use bip44_derive_xprvs_from_mnemonic instead. This function name is kept for backward compatibility. """ return bip44_derive_xprvs_from_mnemonic( mnemonic=mnemonic, index_start=index_start, index_end=index_end, lang=lang, passphrase=passphrase, prefix=prefix, path=path, change=change, network=network, )