跳到主要内容

evmGetPublicKey

以太坊:获取公钥

根据传入的 BIP32 路径导出扩展公钥;涉及公开账户信息时,建议让用户在设备端确认。

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

参数

可选通用参数

导出单个公钥

  • path - 必需 string | Array<number>,字符串数组最小长度限制为 3更多信息
  • showOnUKey - 可选 boolean,决定是否在设备上进行地址显示;默认值为 true
  • chainId - 可选 number,用于标识具体的以太坊网络,帮助区分不同链配置。参考

导出批量公钥

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

示例

获取一个以太坊账户的公钥:

HardwareSDK.evmGetPublicKey(connectId, deviceId, {
path: "m/44'/60'/0'/0/1",
showOnUKey: true,
chainId: 1,
});

批量获取多个以太坊账户的公钥:

HardwareSDK.evmGetPublicKey(connectId, deviceId, {
bundle: [
{ path: "m/44'/60'/0'/0/1", chainId: 1 }, // 账户样例一
{ path: "m/44'/60'/0'/0/2", chainId: 1 }, // 账户样例二
{ path: "m/44'/60'/0'/0/3", chainId: 1 }, // 账户样例三
],
});

返回结果

只有一个公钥的示例

{
success: true,
payload: {
path: Array<number>, // 派生路径
xpub: string, // 传统格式的xpub
publicKey: string, // BIP32序列化格式
}
}

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

批量公钥返回示例(顺序与请求一致)

{
success: true,
payload: [
{ path, xpub, publicKey }, // 账户样例一
{ path, xpub, publicKey }, // 账户样例二
{ path, xpub, publicKey }, // 账户样例三
]
}

错误

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