Files
lspd/lightning/outpoint.go
2024-02-23 08:54:00 +01:00

43 lines
900 B
Go

package lightning
import (
"encoding/hex"
"fmt"
"log"
"strconv"
"strings"
"github.com/btcsuite/btcd/chaincfg/chainhash"
"github.com/btcsuite/btcd/wire"
)
func NewOutPoint(fundingTxID []byte, index uint32) (*wire.OutPoint, error) {
var h chainhash.Hash
err := h.SetBytes(fundingTxID)
if err != nil {
log.Printf("h.SetBytes(%x) error: %v", fundingTxID, err)
return nil, err
}
return wire.NewOutPoint(&h, index), nil
}
func NewOutPointFromString(outpoint string) (*wire.OutPoint, error) {
split := strings.Split(outpoint, ":")
if len(split) != 2 {
return nil, fmt.Errorf("invalid outpoint")
}
fundingTxId, err := hex.DecodeString(split[0])
if err != nil {
return nil, fmt.Errorf("invalid outpoint")
}
outnum, err := strconv.ParseUint(split[1], 10, 32)
if err != nil {
return nil, fmt.Errorf("invalid outpoint")
}
return NewOutPoint(fundingTxId, uint32(outnum))
}