lncli: allow configurable timeout in send payment

This commit is contained in:
carla 2020-10-12 09:09:10 +02:00
parent f98c74319c
commit 0a76f87bd0
No known key found for this signature in database
GPG Key ID: 4CA7FE54A6213C91

View File

@ -26,9 +26,9 @@ import (
)
const (
// paymentTimeoutSeconds is the default timeout for the payment loop in
// lnd. No new attempts will be started after the timeout.
paymentTimeoutSeconds = 60
// paymentTimeout is the default timeout for the payment loop in lnd.
// No new attempts will be started after the timeout.
paymentTimeout = time.Second * 60
)
var (
@ -91,6 +91,13 @@ func paymentFlags() []cli.Flag {
"the maximum fee allowed when sending the " +
"payment",
},
cli.DurationFlag{
Name: "timeout",
Usage: "the maximum amount of time we should spend " +
"trying to fulfill the payment, failing " +
"after the timeout has elapsed",
Value: paymentTimeout,
},
cltvLimitFlag,
lastHopFlag,
cli.Uint64Flag{
@ -336,7 +343,12 @@ func sendPaymentRequest(ctx *cli.Context,
}
req.CltvLimit = int32(ctx.Int(cltvLimitFlag.Name))
req.TimeoutSeconds = paymentTimeoutSeconds
pmtTimeout := ctx.Duration("timeout")
if pmtTimeout <= 0 {
return errors.New("payment timeout must be greater than zero")
}
req.TimeoutSeconds = int32(pmtTimeout.Seconds())
req.AllowSelfPayment = ctx.Bool("allow_self_payment")