gpt4 book ai didi

ethereum - 是否可以从 Ledger Nano S 以太坊钱包导出 Xpub Key

转载 作者:行者123 更新时间:2023-12-04 20:29:47 25 4
gpt4 key购买 nike

我需要向我的客户提供付款 ETH 地址,以便将 ETH 存入他们的账户。我想为此使用 HD ETH 钱包,我现在正在使用 Ledger Nano S。但是 Ledger 只显示了 1 个接收地址,所以我需要 ETH 钱包的 XPub 从中生成许多地址以分发给用户。

如果 Ledger 支持高清,如何导出 XPub?如果账本不支持,哪个钱包可以用于此目的。

有什么建议。

最佳答案

您不能使用默认的比特币或以太坊应用程序直接从分类帐 nano 导出 xpub。

但是您可以使用可以从分类帐中提取的数据构建一个 xpub。

您需要的是您感兴趣的 bip32 路径的公钥和链码以及 的公钥。家长 那个路径。

在以太坊应用程序中,您将使用 getaddress (目前,此应用程序对 m/44/60'、m/44'/61' 和 m/44'/1' 及以下有限制(我有一个问题 here 希望取消该限制)。在比特币应用程序中,您将使用 getwalletpublickey 。比特币应用程序中没有 bip32 路径限制。

一旦你有了两个公钥和链码,你就可以构建 xpub。这是可以完成此操作的一大块python。它使用未维护的 pybitcointools,所以用户要小心。

#!/usr/bin/env python

import sys
import binascii
from bitcoin import bin_hash160
from bitcoin import bip32_serialize
from bitcoin import compress

def main(parent_pubkey, pubkey, chaincode, depth, index, network):
if (network.lower() == "main"):
network_bytes = b'\x04\x88\xb2\x1e'
elif (network.lower() == "test"):
network_bytes = b'\x04\x35\x87\xcf'
else:
sys.exit("network must be either main or test")

compressed_pubkey_bytes = binascii.unhexlify(compress(pubkey))
fingerprint_bytes = bin_hash160(binascii.unhexlify(compress(parent_pubkey)))[:4]
chaincode_bytes = binascii.unhexlify(chaincode)

deserialized = (network_bytes, int(depth), fingerprint_bytes, int(index), chaincode_bytes, compressed_pubkey_bytes)
xpub = bip32_serialize(deserialized)
print(xpub)

if __name__ == '__main__':
if (len(sys.argv) < 7):
sys.exit("USAGE: generate_xpub PARENT_PUBLICKEY PUBLICKEY CHAINCODE DEPTH INDEX (MAIN|TEST)")
main(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5], sys.argv[6])

关于ethereum - 是否可以从 Ledger Nano S 以太坊钱包导出 Xpub Key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49358265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com