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) {
...
})