【问题标题】:How can I get all the addresses associated with my public key with bitcoinlib?如何使用 bitcoinlib 获取与我的公钥关联的所有地址?
【发布时间】:2021-01-16 22:25:45
【问题描述】:

我想获取与我的扩展公钥关联的所有地址。我在bitcoinlib's docs 上找到了如何做到这一点:

初始化一个地址对象。指定公钥、redeemscript 或哈希。

>>> 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

【问题讨论】:

  • 什么问题?给minimal reproducible example
  • 我把我的代码放在帖子底部
  • 是的,您说您遇到了问题,但实际上意味着是什么意思?错误?意外的输出?
  • 哦,我明白了,添加了错误。
  • using import * because not sure what else to import - 大概你需要正确导入Address

标签: python bitcoinlib


【解决方案1】:

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

pip install bitcoinlib

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

from bitcoinlib.keys import Address

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

【讨论】:

    【解决方案2】:
    from bitcoin import *
    

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

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

    from bitcoinlib.keys import Address
    

    【讨论】:

    • 我试过了,但这给了ModuleNotFoundError: No module named 'bitcoinlib'
    • 您是否安装了已链接文档的同一个库?
    • 是的,bitcoinlib。
    • @fiji pip install bitcoinlib 然后from bitcoinlib.keys import Address 对我来说效果很好。
    • 看起来很奇怪,我的 VSC 和 PyCharm 都使用 Python 3.9(不会安装 bitcoinlib)而不是我设置项目使用的 Python3.8。唉,它奏效了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 2015-05-08
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多