mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-07-12 14:12:27 +02:00
lncli: add chan_point flag to closechannel command
This commit is contained in:
@ -39,6 +39,9 @@ const (
|
||||
defaultUtxoMinConf = 1
|
||||
)
|
||||
|
||||
var errBadChanPoint = errors.New("expecting chan_point to be in format of: " +
|
||||
"txid:index")
|
||||
|
||||
func getContext() context.Context {
|
||||
shutdownInterceptor, err := signal.Intercept()
|
||||
if err != nil {
|
||||
@ -719,6 +722,12 @@ var closeChannelCommand = cli.Command{
|
||||
Usage: "the output index for the funding output of the funding " +
|
||||
"transaction",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "chan_point",
|
||||
Usage: "(optional) the channel point. If set, " +
|
||||
"funding_txid and output_index flags and " +
|
||||
"positional arguments will be ignored",
|
||||
},
|
||||
cli.BoolFlag{
|
||||
Name: "force",
|
||||
Usage: "attempt an uncooperative closure",
|
||||
@ -1183,10 +1192,19 @@ func abandonChannel(ctx *cli.Context) error {
|
||||
// line. Both named options as well as unnamed parameters are supported.
|
||||
func parseChannelPoint(ctx *cli.Context) (*lnrpc.ChannelPoint, error) {
|
||||
channelPoint := &lnrpc.ChannelPoint{}
|
||||
var err error
|
||||
|
||||
args := ctx.Args()
|
||||
|
||||
switch {
|
||||
case ctx.IsSet("chan_point"):
|
||||
channelPoint, err = parseChanPoint(ctx.String("chan_point"))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to parse chan_point: "+
|
||||
"%v", err)
|
||||
}
|
||||
return channelPoint, nil
|
||||
|
||||
case ctx.IsSet("funding_txid"):
|
||||
channelPoint.FundingTxid = &lnrpc.ChannelPoint_FundingTxidStr{
|
||||
FundingTxidStr: ctx.String("funding_txid"),
|
||||
@ -1984,9 +2002,8 @@ var updateChannelPolicyCommand = cli.Command{
|
||||
|
||||
func parseChanPoint(s string) (*lnrpc.ChannelPoint, error) {
|
||||
split := strings.Split(s, ":")
|
||||
if len(split) != 2 {
|
||||
return nil, fmt.Errorf("expecting chan_point to be in format of: " +
|
||||
"txid:index")
|
||||
if len(split) != 2 || len(split[0]) == 0 || len(split[1]) == 0 {
|
||||
return nil, errBadChanPoint
|
||||
}
|
||||
|
||||
index, err := strconv.ParseInt(split[1], 10, 32)
|
||||
@ -2077,7 +2094,7 @@ func updateChannelPolicy(ctx *cli.Context) error {
|
||||
if chanPointStr != "" {
|
||||
chanPoint, err = parseChanPoint(chanPointStr)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to parse chan point: %v", err)
|
||||
return fmt.Errorf("unable to parse chan_point: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -2227,7 +2244,7 @@ func exportChanBackup(ctx *cli.Context) error {
|
||||
if chanPointStr != "" {
|
||||
chanPointRPC, err := parseChanPoint(chanPointStr)
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf("unable to parse chan_point: %v", err)
|
||||
}
|
||||
|
||||
chanBackup, err := client.ExportChannelBackup(
|
||||
|
Reference in New Issue
Block a user