mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
cmd/loop: add command for quote
This commit is contained in:
parent
c9549ccf6c
commit
48d34ed398
2 changed files with 65 additions and 1 deletions
|
|
@ -7,6 +7,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/golang/protobuf/jsonpb"
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/lightninglabs/loop/looprpc"
|
||||
"github.com/lightninglabs/loop/swap"
|
||||
|
||||
|
|
@ -25,6 +27,21 @@ var (
|
|||
maxRoutingFeeRate = int64(50000)
|
||||
)
|
||||
|
||||
func printRespJSON(resp proto.Message) {
|
||||
jsonMarshaler := &jsonpb.Marshaler{
|
||||
EmitDefaults: true,
|
||||
Indent: " ",
|
||||
}
|
||||
|
||||
jsonStr, err := jsonMarshaler.MarshalToString(resp)
|
||||
if err != nil {
|
||||
fmt.Println("unable to decode response: ", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(jsonStr)
|
||||
}
|
||||
|
||||
func fatal(err error) {
|
||||
fmt.Fprintf(os.Stderr, "[loop] %v\n", err)
|
||||
os.Exit(1)
|
||||
|
|
@ -44,7 +61,7 @@ func main() {
|
|||
},
|
||||
}
|
||||
app.Commands = []cli.Command{
|
||||
loopOutCommand, termsCommand, monitorCommand,
|
||||
loopOutCommand, termsCommand, monitorCommand, quoteCommand,
|
||||
}
|
||||
|
||||
err := app.Run(os.Args)
|
||||
|
|
|
|||
47
cmd/loop/quote.go
Normal file
47
cmd/loop/quote.go
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/lightninglabs/loop/looprpc"
|
||||
"github.com/urfave/cli"
|
||||
)
|
||||
|
||||
var quoteCommand = cli.Command{
|
||||
Name: "quote",
|
||||
Usage: "get a quote for the cost of a swap",
|
||||
ArgsUsage: "amt",
|
||||
Description: "Allows to determine the cost of a swap up front",
|
||||
Action: quote,
|
||||
}
|
||||
|
||||
func quote(ctx *cli.Context) error {
|
||||
// Show command help if no arguments and flags were provided.
|
||||
if ctx.NArg() < 1 {
|
||||
cli.ShowCommandHelp(ctx, "quote")
|
||||
return nil
|
||||
}
|
||||
|
||||
args := ctx.Args()
|
||||
amt, err := parseAmt(args[0])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
client, cleanup, err := getClient(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer cleanup()
|
||||
|
||||
ctxb := context.Background()
|
||||
resp, err := client.LoopOutQuote(ctxb, &looprpc.QuoteRequest{
|
||||
Amt: int64(amt),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
printRespJSON(resp)
|
||||
return nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue