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

How can I get all the addresses associated with my public key with bitcoinlib?

我想获取与我的扩展 public 密钥关联的所有地址。我在 bitcoinlib's docs:

上找到了如何执行此操作

Initialize an Address object. Specify a public key, redeemscript or a hash.

>>> 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", encoding='bech32', script_type='p2wpkh')
print(master.address)

产生此错误:

NameError: name 'Address' is not defined
from bitcoin import *

使用 import * 不是一个好习惯。这不仅会导入您不需要的东西,而且您不知道它到底导入了什么,它还会 not 导入您在这种情况下确实需要的东西。

根据您链接的文档,您需要使用此导入语句:

from bitcoinlib.keys import Address

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

pip install bitcoinlib

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

from bitcoinlib.keys import Address

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

  • Why is "import *" bad?