繁体   English   中英

Bitcoinlib 不会从我的主公钥返回所有地址

[英]Bitcoinlib won't return all addresses from my master public key

使用 Bitcoinlib 制作了一个钱包,将key参数设置为我的主公钥。 但是,当尝试使用它们的depth=-1标志打印我所有地址的列表时,它应该显示与我的密钥关联的所有地址,但是它只返回一个包含 3 个地址的列表。

代码

# Creation of the wallet was done before like so:
# Wallet.create("Ledger", keys=xpub)
# However after creating a wallet Bitcoinlib stores it locally so you don't make one everytime.
from bitcoinlib.wallets import Wallet
import base64, secrets


def base64_encode(string: str):
    b64 = base64.b64encode(string.encode('ascii'))
    return b64.decode('ascii')


def base64_decode(string: str):
    b64 = base64.b64decode(string.encode('ascii'))
    return b64.decode('ascii')


xpub = base64_decode(secrets.xpub)
wallet = Wallet("Ledger")
print(wallet.addresslist(depth=-1))

Output: ['bc1qg2rl6fjutq4knttna2cqlssjp3vlmr9g0wxvk5', 'bc1qw84m5u94tt8xujesl78yq5tnswm58r309nrmus', 'bc1qlu5yuz0vsm7r867mslgkf2v89976y8qtfflvps']

编辑:我知道主公钥有更多相关的地址,因为在 Electrum 它已经显示了与这个主公钥相关的 30 多个地址

创建钱包时,bitcoinlib 仅生成主密钥和派生密钥地址。

要创建新的付款地址和更改地址,您可以使用:

wallet.new_key()

或者获取 10 个新的未使用地址(无论是否创建):

wallet.get_keys(number_of_keys=10)

注意:命令 wallet.addresslist(depth=-1) 显示所有生成的地址,还有主密钥、支付/更改密钥以及介于两者之间的所有内容。 通常 wallet.addresslist() 应该足够了:这仅返回用于更改和付款的密钥/地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM