btcGetPublicKey
Bitcoin:获取公钥
根据传入的 BIP32 路径导出扩展公钥;用户需要在设备端确认导出。
const result = await HardwareSDK.btcGetPublicKey(connectId, deviceId, params);
参数
导出单个公钥
path- 必需string | Array<number>,字符串数组最小长度限制为1。更多信息showOnUKey- 可选boolean,决定是否在设备上显示公钥;默认值为true。coin- 可选string,用于指定 coins.json 文件中的网络定义。可以使用币种的shortcut、name或label;如果未设置coin,API 会尝试从path推断网络定义。scriptType- 可选InputScriptType,地址脚本类型。
导出批量公钥
bundle-Array数组对象,包含path和coin字段
示例
返回第四个比特币账户的公钥:
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的序列化格式
}
}
批量公钥的结果
{
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 // 错误码
}
}