跳到主要内容

btcGetPublicKey

Bitcoin:获取公钥

根据传入的 BIP32 路径导出扩展公钥;用户需要在设备端确认导出。

const result = await HardwareSDK.btcGetPublicKey(connectId, deviceId, params);

参数

可选通用参数

导出单个公钥

  • path - 必需 string | Array<number>,字符串数组最小长度限制为 1更多信息
  • showOnUKey - 可选 boolean,决定是否在设备上显示公钥;默认值为 true
  • coin - 可选 string,用于指定 coins.json 文件中的网络定义。可以使用币种的 shortcutnamelabel;如果未设置 coin,API 会尝试从 path 推断网络定义。
  • scriptType - 可选 InputScriptType,地址脚本类型。

导出批量公钥

  • bundle - Array 数组对象,包含 pathcoin 字段

示例

返回第四个比特币账户的公钥:

HardwareSDK.btcGetPublicKey(connectId, deviceId, {
path: "m/49'/0'/3'",
coin: "btc",
});

返回多个比特币账户的批量公钥:

HardwareSDK.btcGetPublicKey(connectId, deviceId, {
bundle: [
{ path: "m/49'/0'/7'" }, // 账户 8
{ path: "m/49'/0'/8'" }, // 账户 9
{ path: "m/49'/0'/9'" }, // 账户 10
],
});

返回结果

只有一个公钥的结果

{
success: true,
payload: {
path: Array<number>, // 派生路径
xpub: string, // 传统格式的 xpub
xpubSegwit?: string, // 可选:segwit 格式的 xpub
chainCode: string, // BIP32的序列化格式
childNum: number, // BIP32的序列化格式
publicKey: string, // BIP32的序列化格式
fingerprint: number, // BIP32的序列化格式
depth: number, // BIP32的序列化格式
}
}

了解更多关于 BIP32 序列化格式

批量公钥的结果

{
success: true,
payload: [
{ path, serializedPath, xpub, xpubSegwit?, chainCode, childNum, publicKey, fingerprint, depth }, // 账户 8
{ path, serializedPath, xpub, xpubSegwit?, chainCode, childNum, publicKey, fingerprint, depth }, // 账户 9
{ path, serializedPath, xpub, xpubSegwit?, chainCode, childNum, publicKey, fingerprint, depth } // 账户 10
]
}

错误

{
success: false,
payload: {
error: string, // 错误消息
code: number // 错误码
}
}