2
0
mirror of https://github.com/lightninglabs/loop synced 2024-11-11 13:11:12 +00:00

cmd: add instantout quote

This commit is contained in:
sputn1ck 2024-02-07 17:33:21 +01:00
parent b3fe9a9c61
commit cf6552944f
No known key found for this signature in database
GPG Key ID: 671103D881A5F0E4

View File

@ -2,6 +2,7 @@ package main
import (
"context"
"errors"
"fmt"
"strconv"
"strings"
@ -97,7 +98,10 @@ func instantOut(ctx *cli.Context) error {
fmt.Scanln(&answer)
// Parse
var selectedReservations [][]byte
var (
selectedReservations [][]byte
selectedAmt uint64
)
switch answer {
case "ALL":
for _, res := range confirmedReservations {
@ -105,6 +109,7 @@ func instantOut(ctx *cli.Context) error {
selectedReservations,
res.ReservationId,
)
selectedAmt += res.Amount
}
case "":
@ -135,9 +140,33 @@ func instantOut(ctx *cli.Context) error {
)
selectedIndexMap[idx] = struct{}{}
selectedAmt += confirmedReservations[idx-1].Amount
}
}
// Now that we have the selected reservations we can estimate the
// fee-rates.
quote, err := client.InstantOutQuote(
context.Background(), &looprpc.InstantOutQuoteRequest{
Amt: selectedAmt,
NumReservations: int32(len(selectedReservations)),
},
)
if err != nil {
return err
}
fmt.Println()
fmt.Printf(satAmtFmt, "Estimated on-chain fee:", quote.SweepFeeSat)
fmt.Printf(satAmtFmt, "Service fee:", quote.ServiceFeeSat)
fmt.Println()
fmt.Printf("CONTINUE SWAP? (y/n): ")
fmt.Scanln(&answer)
if answer != "y" {
return errors.New("swap canceled")
}
fmt.Println("Starting instant swap out")
// Now we can request the instant out swap.