Trezor钱包JS开发文档

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

composeTransaction -

请求Trezor钱包向一组指定输出进行支付。在内部执行BIP-0044 账户发现并提交给用户一组可选账户。在用户选择账户后,继续提示 用户选择手续费。确定手续费之后,钱包签名交易并返回16进制 字符串格式的裸交易。如果需要的话,找零输出会自动添加。

调用方法

ES6:

const result = await TrezorConnect.composeTransaction(params);

CommonJS:

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

});

参数:

可选的公共参数。

  • outputs:支付接受对象数组,必须
  • coin:数字货币标识,必须
  • push:是否广播到区块链网络中,布尔值,可选

Output对象:

常规输出:

  • amount:发送数量,单位:satoshi,必须
  • address:接收地址,必须

send-max - 消费指定账户的所有可用输入:

  • type: 必须,send-max
  • address: 接收地址,必须

opreturn:

  • type:必须,opreturn
  • dataHex:16进制字符串,可选

示例代码

发送 0.002 BTC 给 "18WL2iZKmpDYWk1oFavJapdLALxwSjcSk2":

TrezorConnect.composeTransaction({
    outputs: [
        { amount: "200000", address: "18WL2iZKmpDYWk1oFavJapdLALxwSjcSk2" }
    ]
    coin: "btc",
    push: true
});

返回结果

{
    success: true,
    payload: {
        signatures: Array<string>, // signer signatures
        serializedTx: string,        // serialized transaction 
        txid?: string,             // blockchain transaction id
    }
}

错误信息:

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

从之前版本迁移

V4及更早版本:

var recipients = [{
    amount: 200000,
    address: "18WL2iZKmpDYWk1oFavJapdLALxwSjcSk2"
}];

TrezorConnect.setCurrency("btc");
TrezorConnect.composeAndSignTx(recipients, function(result) {
    result.signatures    // not changed
    result.serialized_tx // renamed to "serializedTx"
    // added "txid" field if "push" is set to true
});

V5:

var recipients = [{
    amount: "200000",
    address: "18WL2iZKmpDYWk1oFavJapdLALxwSjcSk2"
}];
// params are key-value pairs inside Object
TrezorConnect.composeTransaction({ 
    outputs: recipients,
    coin: "btc"
}).then(function(result) {
    ...
})