Skip to content

Commit 3941987

Browse files
lnrpc+rpcserver: add SerializeAndHexEncodeTx public function
1 parent a388c1f commit 3941987

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

lnrpc/rpc_utils.go

+16
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package lnrpc
22

33
import (
4+
"bytes"
45
"encoding/hex"
56
"errors"
67
"fmt"
78
"sort"
89

910
"github.com/btcsuite/btcd/chaincfg/chainhash"
11+
"github.com/btcsuite/btcd/wire"
1012
"github.com/lightningnetwork/lnd/lnwallet"
1113
"github.com/lightningnetwork/lnd/lnwallet/chainfee"
1214
"github.com/lightningnetwork/lnd/sweep"
@@ -264,3 +266,17 @@ func CalculateFeeRate(satPerByte, satPerVByte uint64, targetConf uint32,
264266

265267
return feeRate, nil
266268
}
269+
270+
// SerializeAndHexEncodeTx serializes the given wire transaction and returns
271+
// its hexadecimal representation. If serialization fails, an error is
272+
// returned.
273+
func SerializeAndHexEncodeTx(tx *wire.MsgTx) (string, error) {
274+
var txBuf bytes.Buffer
275+
err := tx.Serialize(&txBuf)
276+
if err != nil {
277+
return "", fmt.Errorf("failed to serialize transaction: "+
278+
"%w", err)
279+
}
280+
281+
return hex.EncodeToString(txBuf.Bytes()), nil
282+
}

rpcserver.go

+3-6
Original file line numberDiff line numberDiff line change
@@ -4168,14 +4168,11 @@ func (r *rpcServer) fetchWaitingCloseChannels(
41684168
if closingTx != nil {
41694169
closingTxid = closingTx.TxHash().String()
41704170
if includeRawTx {
4171-
var txBuf bytes.Buffer
4172-
err = closingTx.Serialize(&txBuf)
4171+
closingTxHex, err =
4172+
lnrpc.SerializeAndHexEncodeTx(closingTx)
41734173
if err != nil {
4174-
return nil, 0, fmt.Errorf("failed to "+
4175-
"serialize closing transaction"+
4176-
": %w", err)
4174+
return nil, 0, err
41774175
}
4178-
closingTxHex = hex.EncodeToString(txBuf.Bytes())
41794176
}
41804177
}
41814178

0 commit comments

Comments
 (0)