Trezor钱包JS开发文档

getAddress - 导出地址

显示并返回Trezor钱包指定BIP32路径的地址。要求用户 在Trezor钱包上确认导出操作。

调用方法

ES6:

const result = await TrezorConnect.getAddress(params);

CommonJS:

TrezorConnect.getAddress(params).then(function(result) {

});

调用参数:

可选的公共参数。

导出单个地址:

  • path:BIP32路径,必须
  • address:验证用的地址,可选
  • showOnTrezor:是否在Trezor钱包上显示,布尔值,默认:true
  • coin:数字货币标识字符串,可选,未设置的话则从path推导
  • crossChain:是否跨链,布尔值,可选

批量导出地址:

  • bundle:上述对象数组

示例代码

显示第一个比特币账户的第三个地址:

TrezorConnect.getAddress({
    path: "m/49'/0'/0'/0/2",
    coin: "btc"
});

返回第一个比特币账户的一组地址,不显示在Trezor设备上:

TrezorConnect.getAddress({
    bundle: [
        { path: "m/49'/0'/0'/0/0", showOnTrezor: false }, // address 1
        { path: "m/49'/0'/0'/0/1", showOnTrezor: false }, // address 2
        { path: "m/49'/0'/0'/0/2", showOnTrezor: false }  // address 3
    ]
});

使用应用中的自定义UI验证地址:

import TrezorConnect, { UI } from 'trezor-connect';

TrezorConnect.on(UI.ADDRESS_VALIDATION, data => {
    console.log("Handle button request", data.address, data.serializedPath);
    // here you can display custom UI inside of your app
});

const result = await TrezorConnect.getAddress({
    path: "m/49'/0'/0'/0/0",
    address: "3L6TyTisPBmrDAj6RoKmDzNnj4eQi54gD2",
});
// dont forget to hide your custom UI after you get the result!

返回结果

返回单个地址:

{
    success: true,
    payload: {
        address: string,     // displayed address
        path: Array<number>, // hardended path
        serializedPath: string,
    }
}

批量返回地址:

{
    success: true,
    payload: [
        { address: string, path: Array<number>, serializedPath: string }, // address 1
        { address: string, path: Array<number>, serializedPath: string }, // address 2
        { address: string, path: Array<number>, serializedPath: string }, // address 3
    ]
}

错误信息:

{
    success: false,
    payload: {
        error: string // error message
    }
}

从之前版本迁移

V4或更早版本:

TrezorConnect.getAddress("m/49'/0'/4'/0/0", function(result) {
    // added "serializedPath" field
});

应当是:

// params are key-value pairs inside Object
TrezorConnect.getAddress({ 
    path: "m/49'/0'/4'/0/0" 
}).then(function(result) {
    ...
})