如何使用 bitcoinlib 获取与我的公钥关联的所有地址?

问题描述

我想获取与我的扩展公钥关联的所有地址。我在 bitcoinlib's docs 上找到了如何执行此操作:

初始化一个地址对象。指定公钥、赎回脚本或哈希。

>>> addr = Address('03715219f51a2681b7642d1e0e35f61e5288ff59b87d275be9eaf1a5f481dcdeb6',encoding='bech32',script_type='p2wsh')
>>> addr.address
'bc1qaehsuffn0stxmugx3z69z9hm6gnjd9qzeqlfv92cpf5adw63x4tsfl7vwl'

但是我在使 Address() 函数工作时遇到问题,因为我的代码

from bitcoin import *  # using import * because not sure what else to import?
master = Address("my extended pub key",script_type='p2wpkh')
print(master.address)

产生这个错误

NameError: name 'Address' is not defined

解决方法

如果您想使用 bitcoinlib 库并检查与您的扩展公钥关联的地址,您应该执行以下操作:

pip install bitcoinlib

之后,使用安装此包的 Python 二进制文件,打开 Python 终端并说:

from bitcoinlib.keys import Address

毋庸置疑,使用 virtualenv 是值得推荐的,而且 import * 也不是一个好主意。请参阅以下问答以获取更多详细信息:

,
from bitcoin import *

使用 import * 不是一个好习惯。这不仅导入了您不需要的东西,而且您不知道它究竟导入了什么,而且在这种情况下它也导入您需要的东西。

根据你链接的文档,你需要使用这个import语句:

from bitcoinlib.keys import Address