как получить дочерний биткоин адрес из sed
всем привет я уже 2 неделю мучаюсь с получением рабочего дочернего биткоин адреса по своей сид фразе мне нужно сделать вот это только с либой bitcoinlib
# Наша seed фраза
seed = 'vivid area able second bicycle advance demand alpha flip stable drift route'
# Мастер ключ из seed фразы
master_key = HDPrivateKey.master_key_from_mnemonic(seed)
# Public key из мастер ключа по пути 'm/44/0/0/0'
root_keys = HDKey.from_path(master_key, "m/44'/0'/0'/0")[-1].public_key.to_b58check()
# Extended public key
xpublic_key = str(root_keys, encoding="utf-8")
# Адрес дочернего кошелька в зависимости от значения index
address = Wallet.deserialize(xpublic_key, network='BTC').get_child(index, is_prime=False).to_address()
rootkeys_wif = HDKey.from_path(master_key, f"m/44'/0'/0'/0/{index}")[-1]
# Extended private key
xprivatekey = str(rootkeys_wif.to_b58check(), encoding="utf-8")
# Wallet import format
wif = Wallet.deserialize(xprivatekey, network='BTC').export_to_wif()
return address, str(wif, 'utf-8')
это bipwallet но его я использовать не могу
вот все мои наброски но я не получаю монеты себе отправляя на сгенерированый адрес
W = Wallet.create('LOlA'*40**3, network='bitcoin')
ex = W.new_key(seed).address
print(ex)
mnemon = Mnemonic('english')
seed = mnemon.to_seed('')
root_key = bip32utils.BIP32Key.fromEntropy(seed)
i = random.randint(0, 1000000000)
Pivate_key = HDKey.from_seed(seed).child_public(index=+1, network='bitcoin').address()
print(Pivate_key)
ch = random.randint(0, 1000000000)
R = root_key.ChildKey(ch).ChildKey(ch)
T = R.Address()
print(T)
seed = ''
master = HDKey.from_seed(seed).public_master()
root = HDKey.subkey_for_path(master, "m/44'/0'/0'/0").child_public(index=0).address()
xx = HDKey.public(root)
ext = HDKey.wif(xx)
ad = HDKey.child_public(xx).address()
x = HDKey.info(root)
s = to_hexstring(Mnemonic().to_seed(seed))
print(s)
private_hex =
k = HDKey()
print(k.address())
dict = k.as_dict(include_private=True)
print(dict)
w = Wallet.create('a'*10**34, keys = k)
from random import choice, randint
def create_wallet():
all = string.ascii_lowercase + string.digits + string.ascii_uppercase
name = ''.join(choice(all) for _ in range(randint(2, 256)))
try:
w = Wallet.create(name, network='bitcoin')
except Exception:
create_wallet()
return w
private_key = to_hexstring(seed)
public_key = child_key.get_key(private_key)
w = Wallet.create('ajkhakhakjhdfkahdajhjhffhghk8379q7akhdajhdkahhkfwew978',keys=public_key,network='bitcoin')
addr = w.address
print(addr)
root_address = root_key.Address()
root_public_hex = root_key.PublicKey().hex()
root_private_wif = root_key.WalletImportFormat()
print('Root key:')
print(f'\tAddress: {root_address}')
print(f'\tPublic : {root_public_hex}')
print(f'\tPrivate: {root_private_wif}\n')
child_key = root_key.ChildKey(0).ChildKey(0)
child_public_hex = child_key.PublicKey().hex()
child_address = child_key.Address()
child_private_wif = child_key.WalletImportFormat()
print('Child key m/0/0:')
print(f'\tAddress: {child_address}')
print(f'\tPublic : {child_public_hex}')
print(f'\tPrivate: {child_private_wif}\n')