diff --git a/cmd/loop/loopin.go b/cmd/loop/loopin.go index cc56cf6..36b6be2 100644 --- a/cmd/loop/loopin.go +++ b/cmd/loop/loopin.go @@ -56,10 +56,12 @@ func loopIn(ctx *cli.Context) error { } defer cleanup() + external := ctx.Bool("external") quote, err := client.GetLoopInQuote( context.Background(), &looprpc.QuoteRequest{ - Amt: int64(amt), + Amt: int64(amt), + ExternalHtlc: external, }, ) if err != nil { @@ -67,8 +69,8 @@ func loopIn(ctx *cli.Context) error { } limits := getInLimits(amt, quote) - - if err := displayLimits(loop.TypeIn, amt, limits); err != nil { + err = displayLimits(loop.TypeIn, amt, limits, external) + if err != nil { return err } @@ -76,7 +78,7 @@ func loopIn(ctx *cli.Context) error { Amt: int64(amt), MaxMinerFee: int64(limits.maxMinerFee), MaxSwapFee: int64(limits.maxSwapFee), - ExternalHtlc: ctx.Bool("external"), + ExternalHtlc: external, }) if err != nil { return err diff --git a/cmd/loop/loopout.go b/cmd/loop/loopout.go index 97878ad..2fc2ef7 100644 --- a/cmd/loop/loopout.go +++ b/cmd/loop/loopout.go @@ -94,7 +94,7 @@ func loopOut(ctx *cli.Context) error { limits := getLimits(amt, quote) - if err := displayLimits(loop.TypeOut, amt, limits); err != nil { + if err := displayLimits(loop.TypeOut, amt, limits, false); err != nil { return err } diff --git a/cmd/loop/main.go b/cmd/loop/main.go index b518775..35fae92 100644 --- a/cmd/loop/main.go +++ b/cmd/loop/main.go @@ -116,7 +116,9 @@ func getLimits(amt btcutil.Amount, quote *looprpc.QuoteResponse) *limits { } } -func displayLimits(swapType loop.Type, amt btcutil.Amount, l *limits) error { +func displayLimits(swapType loop.Type, amt btcutil.Amount, l *limits, + externalHtlc bool) error { + totalSuccessMax := l.maxMinerFee + l.maxSwapFee if l.maxSwapRoutingFee != nil { totalSuccessMax += *l.maxSwapRoutingFee @@ -124,6 +126,13 @@ func displayLimits(swapType loop.Type, amt btcutil.Amount, l *limits) error { if l.maxPrepayRoutingFee != nil { totalSuccessMax += *l.maxPrepayRoutingFee } + + if swapType == loop.TypeIn && externalHtlc { + fmt.Printf("On-chain fee for external loop in is not " + + "included.\nSufficient fees will need to be paid " + + "when constructing the transaction in the external " + + "wallet.\n\n") + } fmt.Printf("Max swap fees for %d Loop %v: %d\n", btcutil.Amount(amt), swapType, totalSuccessMax, @@ -139,7 +148,10 @@ func displayLimits(swapType loop.Type, amt btcutil.Amount, l *limits) error { return nil case "x": fmt.Println() - fmt.Printf("Max on-chain fee: %d\n", l.maxMinerFee) + if swapType != loop.TypeIn || !externalHtlc { + fmt.Printf("Max on-chain fee: %d\n", + l.maxMinerFee) + } if l.maxSwapRoutingFee != nil { fmt.Printf("Max off-chain swap routing fee: %d\n",