本文整理汇总了Golang中github.com/btcsuitereleases/btcd/wire.MsgTx.AddTxOut方法的典型用法代码示例。如果您正苦于以下问题:Golang MsgTx.AddTxOut方法的具体用法?Golang MsgTx.AddTxOut怎么用?Golang MsgTx.AddTxOut使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/btcsuitereleases/btcd/wire.MsgTx
的用法示例。
在下文中一共展示了MsgTx.AddTxOut方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: addTxOuts
func addTxOuts(msgtx *wire.MsgTx, b balance, hash []byte, blockHeight uint32) error {
anchorHash, err := prependBlockHeight(blockHeight, hash)
if err != nil {
anchorLog.Errorf("ScriptBuilder error: %v\n", err)
}
builder := txscript.NewScriptBuilder()
builder.AddOp(txscript.OP_RETURN)
builder.AddData(anchorHash)
// latest routine from Conformal btcsuite returns 2 parameters, not 1... not sure what to do for people with the old conformal libraries :(
opReturn, err := builder.Script()
msgtx.AddTxOut(wire.NewTxOut(0, opReturn))
if err != nil {
anchorLog.Errorf("ScriptBuilder error: %v\n", err)
}
amount, _ := btcutil.NewAmount(b.unspentResult.Amount)
change := amount - fee
// Check if there are leftover unspent outputs, and return coins back to
// a new address we own.
if change > 0 {
// Spend change.
pkScript, err := txscript.PayToAddrScript(b.address)
if err != nil {
return fmt.Errorf("cannot create txout script: %s", err)
}
msgtx.AddTxOut(wire.NewTxOut(int64(change), pkScript))
}
return nil
}