【发布时间】:2017-12-27 10:05:28
【问题描述】:
我正在为 Trezor 构建一个 C# HID 库。它运作良好。我能够越过 pin 条目并检索我的 xpub,并且可以获得地址。但是,返回的地址与我在 Trezor 钱包网站上的任何地址都不匹配。
您可以在此处查看 HID 文档: https://doc.satoshilabs.com/trezor-tech/api-workflows.html#passphrase-meta-workflow
这不是一个真正的 C# 问题。相反,对于任何 Trezor HID 开发人员来说,这是一个普遍的问题。最大的问题是,如果我将 HDNodePathType 消息作为 GetAddress 方法的 Multisig 属性传递,我会收到错误“无法编码地址”。 我需要通过 GetAddress 消息传递什么来获取有效地址?
这是一个 Android 代码库: https://github.com/trezor/trezor-android
【问题讨论】:
-
通常,您的第一个地址的路径应该比您的
xpub的路径长 4 个字节。典型的xpub路径是m/44'/0'/0',而典型的地址路径看起来像m/44'/0'/0'/0/0。xpub会创建完整的地址,例如xpub/0/0。所以...您确定要确保在 C# 上创建的路径与网站中的路径字节相同。使用 python 库可以完成最简单的低级 Trezor 测试。 -
另外...确保您可以使用 python 库获得与网络钱包匹配的地址。然后调试您输入 python 的路径,以尝试匹配您在 C# 中获得的路径。一个可以想象的错误是字符
'或/的不需要的字符串转义。我假设这已经检查过了。顺便说一句...您可以使用xprv键load-device。这可能有助于关联路径和 xpub。
标签: c# blockchain bitcoin hid trezor