btcGetAddress
Bitcoin:获取地址
根据传入的 BIP32 路径派生地址,并将结果返回给调用方。用户需要在 Ukey Wallet 上确认导出操作。
const result = await HardwareSDK.btcGetAddress(connectId, deviceId, params);
参数
导出单个地址
path- 必需string | Array<number>,字符串数组最小长度限制为3。更多信息showOnUKey- 可选boolean,决定是否在设备上显示地址;默认值为true。coin- 可选string,用于指定 coins.json 文件中的网络定义。可以使用币种的shortcut、name或label;如果未设置coin,API 会尝试从path推断网络定义。multisig- 可选MultisigRedeemScriptType,赎回脚本信息(仅用于多签地址)。scriptType- 可选InputScriptType,地址脚本类型。
导出批量地址
bundle-Array数组对象,包含path、showOnUKey和coin字段
获取不同类型的地址
不同类型的 BTC 地址需要使用对应的派生路径参数。
| 地址类型 | 派生路径 | 地址格式示例 |
|---|---|---|
| Legacy BIP44 | m/44'/0'/x'/x/x | 通常以 "1" 开头,长度为 26 到 35 个字符 |
| Nested SegWit BIP49 | m/49'/0'/x'/x/x | 通常以 "3" 开头,长度为 26 到 35 个字符 |
| Native SegWit BIP84 | m/84'/0'/x'/x/x | 通常以 "bc1" 或 "tb1" 开头,长度为 41 到 62 个字符 |
| Taproot BIP86 | m/86'/0'/x'/x/x | 通常以 "bc1" 开头,长度为 41 到 62 个字符 |
示例
在设备上展示第一个比特币账户的第二个地址:
HardwareSDK.btcGetAddress(connectId, deviceId, {
path: "m/49'/0'/0'/0/1",
coin: "btc",
});
批量获取第一个比特币账户的多个地址,并跳过设备展示:
HardwareSDK.btcGetAddress(connectId, deviceId, {
bundle: [
{ path: "m/49'/0'/0'/0/0", showOnUKey: false }, // 地址一
{ path: "m/49'/0'/0'/0/1", showOnUKey: false }, // 地址二
{ path: "m/49'/0'/0'/0/2", showOnUKey: false }, // 地址三
],
});
返回结果
单个地址返回示例
{
success: true,
payload: {
address: string, // 返回的地址
path: Array<number> // 强化路径
}
}
批量地址返回示例
{
success: true,
payload: [
{ address: string, path: Array<number> }, // 地址一
{ address: string, path: Array<number> }, // 地址二
{ address: string, path: Array<number> }, // 地址三
]
}
错误
{
success: false,
payload: {
error: string, // 错误消息
code: number // 错误码
}
}