用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))输出:['bc1qg2rl6fjutq4knttna2cqlssjp3vlmr9g0wxvk5', 'bc1qw84m5u94tt8xujesl78yq5tnswm58r309nrmus', 'bc1qlu5yuz0vsm7r867mslgkf2v89976y8qtfflvps']
编辑:我知道主公钥有更多的关联地址,因为在Electrum上它已经显示了与这个主公钥关联的30+地址
发布于 2021-07-09 05:16:29
创建钱包时,bitcoinlib仅生成主密钥和派生密钥地址。
要创建用于付款和更改的新地址,您可以使用:
wallet.new_key()或者获取10个新的未使用的地址(无论是否创建):
wallet.get_keys(number_of_keys=10)注意:命令wallet.addresslist(depth=-1)显示所有生成的地址、主密钥、支付/找零密钥以及介于两者之间的所有内容。通常,wallet.addresslist()应该足够了:它只返回用于找零和支付的键/地址。
https://stackoverflow.com/questions/65756013
复制相似问题