getPublicKey - 导出公钥
使用getPublicKey()
方法获取指定路径的BIP32扩展公钥。将展示给
用户所请求密钥的描述并要求确认导出操作。
方法调用
ES6:
const result = await TrezorConnect.getPublicKey(params);
CommonJS:
TrezorConnect.getPublicKey(params).then(function(result) {
});
调用参数:
可选的公共参数
导出单个公钥:
- path:密钥路径,字符串或数值数组,必须
- coin:数字货币代码,在coins.json中定义,可选。如果未设置该参数,则利用path参数进行推导
- crossChain:是否跨链,可选
批量导出公钥:
- bundle:导出目标对象的数组,每个对象包含path、coin和crossChain字段
示例代码
返回第5个比特币账户的公钥:
TrezorConnect.getPublicKey({
path: "m/49'/0'/4'",
coin: "btc"
});
返回多个比特币账户的公钥:
TrezorConnect.getPublicKey({
bundle: [
{ path: "m/49'/0'/0'" }, // account 1
{ path: "m/49'/0'/1'" }, // account 2
{ path: "m/49'/0'/2'" } // account 3
]
});
返回结果
单个公钥的返回结果:
{
success: true,
payload: {
path: Array<number>, // hardended path
serializedPath: string, // serialized path
xpub: string, // xpub in legacy format
xpubSegwit?: string, // optional for segwit accounts: xpub in segwit format
chainCode: string, // BIP32 serialization format
childNum: number, // BIP32 serialization format
publicKey: string, // BIP32 serialization format
fingerprint: number, // BIP32 serialization format
depth: number, // BIP32 serialization format
}
}
批量导出公钥返回结果:
{
success: true,
payload: [
{ path, serializedPath, xpub, xpubSegwit?, chainCode, childNum, publicKey, fingerprint, depth }, // account 1
{ path, serializedPath, xpub, xpubSegwit?, chainCode, childNum, publicKey, fingerprint, depth }, // account 2
{ path, serializedPath, xpub, xpubSegwit?, chainCode, childNum, publicKey, fingerprint, depth } // account 3
]
}
错误信息:
{
success: false,
payload: {
error: string // error message
}
}
从之前版本迁移
version 4及之前版本:
TrezorConnect.getXPubKey("m/49'/0'/0'", function(result) {
result.path // not changed
result.serializedPath // not changed
result.xpubkey // renamed to "xpub"
// added "xpubSegwit" field for segwit accounts
result.chainCode // not changed
result.publicKey // not changed
// added "fingerprint" field
// added "childNum" field
// added "depth" field
});
version 5:
// params are key-value pairs inside Object
TrezorConnect.getPublicKey({
path: "m/49'/0'/0'"
}).then(function(result) {
...
})