mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
Merge pull request #249 from joostjager/split-client-messages
looprpc: split client messages
This commit is contained in:
commit
a6539b6adb
9 changed files with 522 additions and 312 deletions
|
|
@ -7,7 +7,6 @@ import (
|
||||||
"github.com/btcsuite/btcutil"
|
"github.com/btcsuite/btcutil"
|
||||||
"github.com/lightninglabs/loop"
|
"github.com/lightninglabs/loop"
|
||||||
"github.com/lightninglabs/loop/looprpc"
|
"github.com/lightninglabs/loop/looprpc"
|
||||||
"github.com/lightninglabs/loop/swap"
|
|
||||||
"github.com/lightningnetwork/lnd/routing/route"
|
"github.com/lightningnetwork/lnd/routing/route"
|
||||||
"github.com/urfave/cli"
|
"github.com/urfave/cli"
|
||||||
)
|
)
|
||||||
|
|
@ -111,17 +110,18 @@ func loopIn(ctx *cli.Context) error {
|
||||||
// HTLC. If the wallet doesn't have enough funds to create this TX, we
|
// HTLC. If the wallet doesn't have enough funds to create this TX, we
|
||||||
// know it won't have enough to pay the real transaction either. It
|
// know it won't have enough to pay the real transaction either. It
|
||||||
// makes sense to abort the loop in this case.
|
// makes sense to abort the loop in this case.
|
||||||
if !external && quote.MinerFee == int64(loop.MinerFeeEstimationFailed) {
|
if !external && quote.HtlcPublishFeeSat ==
|
||||||
|
int64(loop.MinerFeeEstimationFailed) {
|
||||||
|
|
||||||
return fmt.Errorf("miner fee estimation not " +
|
return fmt.Errorf("miner fee estimation not " +
|
||||||
"possible, lnd has insufficient funds to " +
|
"possible, lnd has insufficient funds to " +
|
||||||
"create a sample transaction for selected " +
|
"create a sample transaction for selected " +
|
||||||
"amount")
|
"amount")
|
||||||
}
|
}
|
||||||
|
|
||||||
limits := getInLimits(amt, quote)
|
limits := getInLimits(quote)
|
||||||
err = displayLimits(
|
err = displayInLimits(
|
||||||
swap.TypeIn, amt, btcutil.Amount(quote.MinerFee), limits,
|
amt, btcutil.Amount(quote.HtlcPublishFeeSat), limits, external,
|
||||||
external, "",
|
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -165,12 +165,3 @@ func loopIn(ctx *cli.Context) error {
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getInLimits(amt btcutil.Amount, quote *looprpc.QuoteResponse) *limits {
|
|
||||||
return &limits{
|
|
||||||
// Apply a multiplier to the estimated miner fee, to not get
|
|
||||||
// the swap canceled because fees increased in the mean time.
|
|
||||||
maxMinerFee: btcutil.Amount(quote.MinerFee) * 3,
|
|
||||||
maxSwapFee: btcutil.Amount(quote.SwapFee),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import (
|
||||||
"github.com/btcsuite/btcutil"
|
"github.com/btcsuite/btcutil"
|
||||||
"github.com/lightninglabs/loop"
|
"github.com/lightninglabs/loop"
|
||||||
"github.com/lightninglabs/loop/looprpc"
|
"github.com/lightninglabs/loop/looprpc"
|
||||||
"github.com/lightninglabs/loop/swap"
|
|
||||||
"github.com/urfave/cli"
|
"github.com/urfave/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -148,16 +147,15 @@ func loopOut(ctx *cli.Context) error {
|
||||||
defaultSwapWaitTime)
|
defaultSwapWaitTime)
|
||||||
}
|
}
|
||||||
|
|
||||||
limits := getLimits(amt, quote)
|
limits := getOutLimits(amt, quote)
|
||||||
// If configured, use the specified maximum swap routing fee.
|
// If configured, use the specified maximum swap routing fee.
|
||||||
if ctx.IsSet("max_swap_routing_fee") {
|
if ctx.IsSet("max_swap_routing_fee") {
|
||||||
*limits.maxSwapRoutingFee = btcutil.Amount(
|
limits.maxSwapRoutingFee = btcutil.Amount(
|
||||||
ctx.Int64("max_swap_routing_fee"),
|
ctx.Int64("max_swap_routing_fee"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
err = displayLimits(
|
err = displayOutLimits(
|
||||||
swap.TypeOut, amt, btcutil.Amount(quote.MinerFee), limits,
|
amt, btcutil.Amount(quote.HtlcSweepFeeSat), limits, warning,
|
||||||
false, warning,
|
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -167,10 +165,10 @@ func loopOut(ctx *cli.Context) error {
|
||||||
Amt: int64(amt),
|
Amt: int64(amt),
|
||||||
Dest: destAddr,
|
Dest: destAddr,
|
||||||
MaxMinerFee: int64(limits.maxMinerFee),
|
MaxMinerFee: int64(limits.maxMinerFee),
|
||||||
MaxPrepayAmt: int64(*limits.maxPrepayAmt),
|
MaxPrepayAmt: int64(limits.maxPrepayAmt),
|
||||||
MaxSwapFee: int64(limits.maxSwapFee),
|
MaxSwapFee: int64(limits.maxSwapFee),
|
||||||
MaxPrepayRoutingFee: int64(*limits.maxPrepayRoutingFee),
|
MaxPrepayRoutingFee: int64(limits.maxPrepayRoutingFee),
|
||||||
MaxSwapRoutingFee: int64(*limits.maxSwapRoutingFee),
|
MaxSwapRoutingFee: int64(limits.maxSwapRoutingFee),
|
||||||
OutgoingChanSet: outgoingChanSet,
|
OutgoingChanSet: outgoingChanSet,
|
||||||
SweepConfTarget: sweepConfTarget,
|
SweepConfTarget: sweepConfTarget,
|
||||||
SwapPublicationDeadline: uint64(swapDeadline.Unix()),
|
SwapPublicationDeadline: uint64(swapDeadline.Unix()),
|
||||||
|
|
|
||||||
131
cmd/loop/main.go
131
cmd/loop/main.go
|
|
@ -136,53 +136,101 @@ func getMaxRoutingFee(amt btcutil.Amount) btcutil.Amount {
|
||||||
return swap.CalcFee(amt, maxRoutingFeeBase, maxRoutingFeeRate)
|
return swap.CalcFee(amt, maxRoutingFeeBase, maxRoutingFeeRate)
|
||||||
}
|
}
|
||||||
|
|
||||||
type limits struct {
|
type inLimits struct {
|
||||||
maxSwapRoutingFee *btcutil.Amount
|
maxMinerFee btcutil.Amount
|
||||||
maxPrepayRoutingFee *btcutil.Amount
|
maxSwapFee btcutil.Amount
|
||||||
maxMinerFee btcutil.Amount
|
|
||||||
maxSwapFee btcutil.Amount
|
|
||||||
maxPrepayAmt *btcutil.Amount
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getLimits(amt btcutil.Amount, quote *looprpc.QuoteResponse) *limits {
|
func getInLimits(quote *looprpc.InQuoteResponse) *inLimits {
|
||||||
|
return &inLimits{
|
||||||
|
// Apply a multiplier to the estimated miner fee, to not get
|
||||||
|
// the swap canceled because fees increased in the mean time.
|
||||||
|
maxMinerFee: btcutil.Amount(quote.HtlcPublishFeeSat) * 3,
|
||||||
|
maxSwapFee: btcutil.Amount(quote.SwapFeeSat),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type outLimits struct {
|
||||||
|
maxSwapRoutingFee btcutil.Amount
|
||||||
|
maxPrepayRoutingFee btcutil.Amount
|
||||||
|
maxMinerFee btcutil.Amount
|
||||||
|
maxSwapFee btcutil.Amount
|
||||||
|
maxPrepayAmt btcutil.Amount
|
||||||
|
}
|
||||||
|
|
||||||
|
func getOutLimits(amt btcutil.Amount,
|
||||||
|
quote *looprpc.OutQuoteResponse) *outLimits {
|
||||||
|
|
||||||
maxSwapRoutingFee := getMaxRoutingFee(amt)
|
maxSwapRoutingFee := getMaxRoutingFee(amt)
|
||||||
maxPrepayRoutingFee := getMaxRoutingFee(btcutil.Amount(
|
maxPrepayRoutingFee := getMaxRoutingFee(btcutil.Amount(
|
||||||
quote.PrepayAmt,
|
quote.PrepayAmtSat,
|
||||||
))
|
))
|
||||||
maxPrepayAmt := btcutil.Amount(quote.PrepayAmt)
|
maxPrepayAmt := btcutil.Amount(quote.PrepayAmtSat)
|
||||||
|
|
||||||
return &limits{
|
return &outLimits{
|
||||||
maxSwapRoutingFee: &maxSwapRoutingFee,
|
maxSwapRoutingFee: maxSwapRoutingFee,
|
||||||
maxPrepayRoutingFee: &maxPrepayRoutingFee,
|
maxPrepayRoutingFee: maxPrepayRoutingFee,
|
||||||
|
|
||||||
// Apply a multiplier to the estimated miner fee, to not get
|
// Apply a multiplier to the estimated miner fee, to not get
|
||||||
// the swap canceled because fees increased in the mean time.
|
// the swap canceled because fees increased in the mean time.
|
||||||
maxMinerFee: btcutil.Amount(quote.MinerFee) * 100,
|
maxMinerFee: btcutil.Amount(quote.HtlcSweepFeeSat) * 100,
|
||||||
|
|
||||||
maxSwapFee: btcutil.Amount(quote.SwapFee),
|
maxSwapFee: btcutil.Amount(quote.SwapFeeSat),
|
||||||
maxPrepayAmt: &maxPrepayAmt,
|
maxPrepayAmt: maxPrepayAmt,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func displayLimits(swapType swap.Type, amt, minerFees btcutil.Amount, l *limits,
|
func displayInLimits(amt, minerFees btcutil.Amount, l *inLimits,
|
||||||
externalHtlc bool, warning string) error {
|
externalHtlc bool) error {
|
||||||
|
|
||||||
totalSuccessMax := l.maxMinerFee + l.maxSwapFee
|
totalSuccessMax := l.maxMinerFee + l.maxSwapFee
|
||||||
if l.maxSwapRoutingFee != nil {
|
|
||||||
totalSuccessMax += *l.maxSwapRoutingFee
|
|
||||||
}
|
|
||||||
if l.maxPrepayRoutingFee != nil {
|
|
||||||
totalSuccessMax += *l.maxPrepayRoutingFee
|
|
||||||
}
|
|
||||||
|
|
||||||
if swapType == swap.TypeIn && externalHtlc {
|
if externalHtlc {
|
||||||
fmt.Printf("On-chain fee for external loop in is not " +
|
fmt.Printf("On-chain fee for external loop in is not " +
|
||||||
"included.\nSufficient fees will need to be paid " +
|
"included.\nSufficient fees will need to be paid " +
|
||||||
"when constructing the transaction in the external " +
|
"when constructing the transaction in the external " +
|
||||||
"wallet.\n\n")
|
"wallet.\n\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("Max swap fees for %d sat Loop %v: %d sat\n", amt, swapType,
|
fmt.Printf("Max swap fees for %d sat Loop %v: %d sat\n", amt, swap.TypeIn,
|
||||||
|
totalSuccessMax)
|
||||||
|
|
||||||
|
fmt.Printf("CONTINUE SWAP? (y/n), expand fee detail (x): ")
|
||||||
|
|
||||||
|
var answer string
|
||||||
|
fmt.Scanln(&answer)
|
||||||
|
|
||||||
|
switch answer {
|
||||||
|
case "y":
|
||||||
|
return nil
|
||||||
|
case "x":
|
||||||
|
fmt.Println()
|
||||||
|
f := "%-36s %d sat\n"
|
||||||
|
|
||||||
|
if !externalHtlc {
|
||||||
|
fmt.Printf(f, "Estimated on-chain HTLC fee:",
|
||||||
|
minerFees)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf(f, "Max swap fee:", l.maxSwapFee)
|
||||||
|
|
||||||
|
fmt.Printf("CONTINUE SWAP? (y/n): ")
|
||||||
|
fmt.Scanln(&answer)
|
||||||
|
if answer == "y" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return errors.New("swap canceled")
|
||||||
|
}
|
||||||
|
|
||||||
|
func displayOutLimits(amt, minerFees btcutil.Amount, l *outLimits,
|
||||||
|
warning string) error {
|
||||||
|
|
||||||
|
totalSuccessMax := l.maxMinerFee + l.maxSwapFee + l.maxSwapRoutingFee +
|
||||||
|
l.maxPrepayRoutingFee
|
||||||
|
|
||||||
|
fmt.Printf("Max swap fees for %d sat Loop %v: %d sat\n", amt, swap.TypeOut,
|
||||||
totalSuccessMax)
|
totalSuccessMax)
|
||||||
|
|
||||||
if warning != "" {
|
if warning != "" {
|
||||||
|
|
@ -201,32 +249,13 @@ func displayLimits(swapType swap.Type, amt, minerFees btcutil.Amount, l *limits,
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
f := "%-36s %d sat\n"
|
f := "%-36s %d sat\n"
|
||||||
|
|
||||||
switch swapType {
|
fmt.Printf(f, "Estimated on-chain sweep fee:", minerFees)
|
||||||
case swap.TypeOut:
|
fmt.Printf(f, "Max on-chain sweep fee:", l.maxMinerFee)
|
||||||
fmt.Printf(f, "Estimated on-chain sweep fee:",
|
fmt.Printf(f, "Max off-chain swap routing fee:",
|
||||||
minerFees)
|
l.maxSwapRoutingFee)
|
||||||
fmt.Printf(f, "Max on-chain sweep fee:", l.maxMinerFee)
|
fmt.Printf(f, "Max no show penalty (prepay):", l.maxPrepayAmt)
|
||||||
|
fmt.Printf(f, "Max off-chain prepay routing fee:",
|
||||||
case swap.TypeIn:
|
l.maxPrepayRoutingFee)
|
||||||
if !externalHtlc {
|
|
||||||
fmt.Printf(f, "Estimated on-chain HTLC fee:",
|
|
||||||
minerFees)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if l.maxSwapRoutingFee != nil {
|
|
||||||
fmt.Printf(f, "Max off-chain swap routing fee:",
|
|
||||||
*l.maxSwapRoutingFee)
|
|
||||||
}
|
|
||||||
|
|
||||||
if l.maxPrepayAmt != nil {
|
|
||||||
fmt.Printf(f, "Max no show penalty (prepay):",
|
|
||||||
*l.maxPrepayAmt)
|
|
||||||
}
|
|
||||||
if l.maxPrepayRoutingFee != nil {
|
|
||||||
fmt.Printf(f, "Max off-chain prepay routing fee:",
|
|
||||||
*l.maxPrepayRoutingFee)
|
|
||||||
}
|
|
||||||
fmt.Printf(f, "Max swap fee:", l.maxSwapFee)
|
fmt.Printf(f, "Max swap fee:", l.maxSwapFee)
|
||||||
|
|
||||||
fmt.Printf("CONTINUE SWAP? (y/n): ")
|
fmt.Printf("CONTINUE SWAP? (y/n): ")
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ func quoteIn(ctx *cli.Context) error {
|
||||||
// HTLC. If the wallet doesn't have enough funds to create this TX, we
|
// HTLC. If the wallet doesn't have enough funds to create this TX, we
|
||||||
// don't want to fail the quote. But the user should still be informed
|
// don't want to fail the quote. But the user should still be informed
|
||||||
// why the fee shows as -1.
|
// why the fee shows as -1.
|
||||||
if quoteResp.MinerFee == int64(loop.MinerFeeEstimationFailed) {
|
if quoteResp.HtlcPublishFeeSat == int64(loop.MinerFeeEstimationFailed) {
|
||||||
_, _ = fmt.Fprintf(os.Stderr, "Warning: Miner fee estimation "+
|
_, _ = fmt.Fprintf(os.Stderr, "Warning: Miner fee estimation "+
|
||||||
"not possible, lnd has insufficient funds to "+
|
"not possible, lnd has insufficient funds to "+
|
||||||
"create a sample transaction for selected "+
|
"create a sample transaction for selected "+
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,9 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/urfave/cli"
|
|
||||||
|
|
||||||
"github.com/btcsuite/btcutil"
|
"github.com/btcsuite/btcutil"
|
||||||
"github.com/lightninglabs/loop/looprpc"
|
"github.com/lightninglabs/loop/looprpc"
|
||||||
|
"github.com/urfave/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
var termsCommand = cli.Command{
|
var termsCommand = cli.Command{
|
||||||
|
|
@ -23,10 +22,9 @@ func terms(ctx *cli.Context) error {
|
||||||
}
|
}
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
||||||
printTerms := func(terms *looprpc.TermsResponse) {
|
printAmountRange := func(min, max int64) {
|
||||||
fmt.Printf("Amount: %d - %d\n",
|
fmt.Printf("Amount: %d - %d\n",
|
||||||
btcutil.Amount(terms.MinSwapAmount),
|
btcutil.Amount(min), btcutil.Amount(max),
|
||||||
btcutil.Amount(terms.MaxSwapAmount),
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -37,7 +35,10 @@ func terms(ctx *cli.Context) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
} else {
|
} else {
|
||||||
printTerms(loopOutTerms)
|
printAmountRange(
|
||||||
|
loopOutTerms.MinSwapAmount,
|
||||||
|
loopOutTerms.MaxSwapAmount,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
|
|
@ -50,7 +51,10 @@ func terms(ctx *cli.Context) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
} else {
|
} else {
|
||||||
printTerms(loopInTerms)
|
printAmountRange(
|
||||||
|
loopInTerms.MinSwapAmount,
|
||||||
|
loopInTerms.MaxSwapAmount,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -328,7 +328,7 @@ func (s *swapClientServer) SwapInfo(_ context.Context,
|
||||||
|
|
||||||
// LoopOutTerms returns the terms that the server enforces for loop out swaps.
|
// LoopOutTerms returns the terms that the server enforces for loop out swaps.
|
||||||
func (s *swapClientServer) LoopOutTerms(ctx context.Context,
|
func (s *swapClientServer) LoopOutTerms(ctx context.Context,
|
||||||
req *looprpc.TermsRequest) (*looprpc.TermsResponse, error) {
|
req *looprpc.TermsRequest) (*looprpc.OutTermsResponse, error) {
|
||||||
|
|
||||||
log.Infof("Loop out terms request received")
|
log.Infof("Loop out terms request received")
|
||||||
|
|
||||||
|
|
@ -338,7 +338,7 @@ func (s *swapClientServer) LoopOutTerms(ctx context.Context,
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &looprpc.TermsResponse{
|
return &looprpc.OutTermsResponse{
|
||||||
MinSwapAmount: int64(terms.MinSwapAmount),
|
MinSwapAmount: int64(terms.MinSwapAmount),
|
||||||
MaxSwapAmount: int64(terms.MaxSwapAmount),
|
MaxSwapAmount: int64(terms.MaxSwapAmount),
|
||||||
}, nil
|
}, nil
|
||||||
|
|
@ -347,7 +347,7 @@ func (s *swapClientServer) LoopOutTerms(ctx context.Context,
|
||||||
// LoopOutQuote returns a quote for a loop out swap with the provided
|
// LoopOutQuote returns a quote for a loop out swap with the provided
|
||||||
// parameters.
|
// parameters.
|
||||||
func (s *swapClientServer) LoopOutQuote(ctx context.Context,
|
func (s *swapClientServer) LoopOutQuote(ctx context.Context,
|
||||||
req *looprpc.QuoteRequest) (*looprpc.QuoteResponse, error) {
|
req *looprpc.QuoteRequest) (*looprpc.OutQuoteResponse, error) {
|
||||||
|
|
||||||
confTarget, err := validateConfTarget(
|
confTarget, err := validateConfTarget(
|
||||||
req.ConfTarget, loop.DefaultSweepConfTarget,
|
req.ConfTarget, loop.DefaultSweepConfTarget,
|
||||||
|
|
@ -366,18 +366,18 @@ func (s *swapClientServer) LoopOutQuote(ctx context.Context,
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &looprpc.QuoteResponse{
|
return &looprpc.OutQuoteResponse{
|
||||||
MinerFee: int64(quote.MinerFee),
|
HtlcSweepFeeSat: int64(quote.MinerFee),
|
||||||
PrepayAmt: int64(quote.PrepayAmount),
|
PrepayAmtSat: int64(quote.PrepayAmount),
|
||||||
SwapFee: int64(quote.SwapFee),
|
SwapFeeSat: int64(quote.SwapFee),
|
||||||
SwapPaymentDest: quote.SwapPaymentDest[:],
|
SwapPaymentDest: quote.SwapPaymentDest[:],
|
||||||
CltvDelta: quote.CltvDelta,
|
CltvDelta: quote.CltvDelta,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTerms returns the terms that the server enforces for swaps.
|
// GetTerms returns the terms that the server enforces for swaps.
|
||||||
func (s *swapClientServer) GetLoopInTerms(ctx context.Context, req *looprpc.TermsRequest) (
|
func (s *swapClientServer) GetLoopInTerms(ctx context.Context,
|
||||||
*looprpc.TermsResponse, error) {
|
req *looprpc.TermsRequest) (*looprpc.InTermsResponse, error) {
|
||||||
|
|
||||||
log.Infof("Loop in terms request received")
|
log.Infof("Loop in terms request received")
|
||||||
|
|
||||||
|
|
@ -387,7 +387,7 @@ func (s *swapClientServer) GetLoopInTerms(ctx context.Context, req *looprpc.Term
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &looprpc.TermsResponse{
|
return &looprpc.InTermsResponse{
|
||||||
MinSwapAmount: int64(terms.MinSwapAmount),
|
MinSwapAmount: int64(terms.MinSwapAmount),
|
||||||
MaxSwapAmount: int64(terms.MaxSwapAmount),
|
MaxSwapAmount: int64(terms.MaxSwapAmount),
|
||||||
}, nil
|
}, nil
|
||||||
|
|
@ -395,7 +395,7 @@ func (s *swapClientServer) GetLoopInTerms(ctx context.Context, req *looprpc.Term
|
||||||
|
|
||||||
// GetQuote returns a quote for a swap with the provided parameters.
|
// GetQuote returns a quote for a swap with the provided parameters.
|
||||||
func (s *swapClientServer) GetLoopInQuote(ctx context.Context,
|
func (s *swapClientServer) GetLoopInQuote(ctx context.Context,
|
||||||
req *looprpc.QuoteRequest) (*looprpc.QuoteResponse, error) {
|
req *looprpc.QuoteRequest) (*looprpc.InQuoteResponse, error) {
|
||||||
|
|
||||||
log.Infof("Loop in quote request received")
|
log.Infof("Loop in quote request received")
|
||||||
|
|
||||||
|
|
@ -414,9 +414,9 @@ func (s *swapClientServer) GetLoopInQuote(ctx context.Context,
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return &looprpc.QuoteResponse{
|
return &looprpc.InQuoteResponse{
|
||||||
MinerFee: int64(quote.MinerFee),
|
HtlcPublishFeeSat: int64(quote.MinerFee),
|
||||||
SwapFee: int64(quote.SwapFee),
|
SwapFeeSat: int64(quote.SwapFee),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -833,7 +833,7 @@ func (m *TermsRequest) XXX_DiscardUnknown() {
|
||||||
|
|
||||||
var xxx_messageInfo_TermsRequest proto.InternalMessageInfo
|
var xxx_messageInfo_TermsRequest proto.InternalMessageInfo
|
||||||
|
|
||||||
type TermsResponse struct {
|
type InTermsResponse struct {
|
||||||
//*
|
//*
|
||||||
//Minimum swap amount (sat)
|
//Minimum swap amount (sat)
|
||||||
MinSwapAmount int64 `protobuf:"varint,5,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"`
|
MinSwapAmount int64 `protobuf:"varint,5,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"`
|
||||||
|
|
@ -845,39 +845,90 @@ type TermsResponse struct {
|
||||||
XXX_sizecache int32 `json:"-"`
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TermsResponse) Reset() { *m = TermsResponse{} }
|
func (m *InTermsResponse) Reset() { *m = InTermsResponse{} }
|
||||||
func (m *TermsResponse) String() string { return proto.CompactTextString(m) }
|
func (m *InTermsResponse) String() string { return proto.CompactTextString(m) }
|
||||||
func (*TermsResponse) ProtoMessage() {}
|
func (*InTermsResponse) ProtoMessage() {}
|
||||||
func (*TermsResponse) Descriptor() ([]byte, []int) {
|
func (*InTermsResponse) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_014de31d7ac8c57c, []int{9}
|
return fileDescriptor_014de31d7ac8c57c, []int{9}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TermsResponse) XXX_Unmarshal(b []byte) error {
|
func (m *InTermsResponse) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_TermsResponse.Unmarshal(m, b)
|
return xxx_messageInfo_InTermsResponse.Unmarshal(m, b)
|
||||||
}
|
}
|
||||||
func (m *TermsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
func (m *InTermsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
return xxx_messageInfo_TermsResponse.Marshal(b, m, deterministic)
|
return xxx_messageInfo_InTermsResponse.Marshal(b, m, deterministic)
|
||||||
}
|
}
|
||||||
func (m *TermsResponse) XXX_Merge(src proto.Message) {
|
func (m *InTermsResponse) XXX_Merge(src proto.Message) {
|
||||||
xxx_messageInfo_TermsResponse.Merge(m, src)
|
xxx_messageInfo_InTermsResponse.Merge(m, src)
|
||||||
}
|
}
|
||||||
func (m *TermsResponse) XXX_Size() int {
|
func (m *InTermsResponse) XXX_Size() int {
|
||||||
return xxx_messageInfo_TermsResponse.Size(m)
|
return xxx_messageInfo_InTermsResponse.Size(m)
|
||||||
}
|
}
|
||||||
func (m *TermsResponse) XXX_DiscardUnknown() {
|
func (m *InTermsResponse) XXX_DiscardUnknown() {
|
||||||
xxx_messageInfo_TermsResponse.DiscardUnknown(m)
|
xxx_messageInfo_InTermsResponse.DiscardUnknown(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
var xxx_messageInfo_TermsResponse proto.InternalMessageInfo
|
var xxx_messageInfo_InTermsResponse proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *TermsResponse) GetMinSwapAmount() int64 {
|
func (m *InTermsResponse) GetMinSwapAmount() int64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.MinSwapAmount
|
return m.MinSwapAmount
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TermsResponse) GetMaxSwapAmount() int64 {
|
func (m *InTermsResponse) GetMaxSwapAmount() int64 {
|
||||||
|
if m != nil {
|
||||||
|
return m.MaxSwapAmount
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type OutTermsResponse struct {
|
||||||
|
//*
|
||||||
|
//Minimum swap amount (sat)
|
||||||
|
MinSwapAmount int64 `protobuf:"varint,5,opt,name=min_swap_amount,json=minSwapAmount,proto3" json:"min_swap_amount,omitempty"`
|
||||||
|
//*
|
||||||
|
//Maximum swap amount (sat)
|
||||||
|
MaxSwapAmount int64 `protobuf:"varint,6,opt,name=max_swap_amount,json=maxSwapAmount,proto3" json:"max_swap_amount,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *OutTermsResponse) Reset() { *m = OutTermsResponse{} }
|
||||||
|
func (m *OutTermsResponse) String() string { return proto.CompactTextString(m) }
|
||||||
|
func (*OutTermsResponse) ProtoMessage() {}
|
||||||
|
func (*OutTermsResponse) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_014de31d7ac8c57c, []int{10}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *OutTermsResponse) XXX_Unmarshal(b []byte) error {
|
||||||
|
return xxx_messageInfo_OutTermsResponse.Unmarshal(m, b)
|
||||||
|
}
|
||||||
|
func (m *OutTermsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
return xxx_messageInfo_OutTermsResponse.Marshal(b, m, deterministic)
|
||||||
|
}
|
||||||
|
func (m *OutTermsResponse) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_OutTermsResponse.Merge(m, src)
|
||||||
|
}
|
||||||
|
func (m *OutTermsResponse) XXX_Size() int {
|
||||||
|
return xxx_messageInfo_OutTermsResponse.Size(m)
|
||||||
|
}
|
||||||
|
func (m *OutTermsResponse) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_OutTermsResponse.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_OutTermsResponse proto.InternalMessageInfo
|
||||||
|
|
||||||
|
func (m *OutTermsResponse) GetMinSwapAmount() int64 {
|
||||||
|
if m != nil {
|
||||||
|
return m.MinSwapAmount
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *OutTermsResponse) GetMaxSwapAmount() int64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.MaxSwapAmount
|
return m.MaxSwapAmount
|
||||||
}
|
}
|
||||||
|
|
@ -914,7 +965,7 @@ func (m *QuoteRequest) Reset() { *m = QuoteRequest{} }
|
||||||
func (m *QuoteRequest) String() string { return proto.CompactTextString(m) }
|
func (m *QuoteRequest) String() string { return proto.CompactTextString(m) }
|
||||||
func (*QuoteRequest) ProtoMessage() {}
|
func (*QuoteRequest) ProtoMessage() {}
|
||||||
func (*QuoteRequest) Descriptor() ([]byte, []int) {
|
func (*QuoteRequest) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_014de31d7ac8c57c, []int{10}
|
return fileDescriptor_014de31d7ac8c57c, []int{11}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *QuoteRequest) XXX_Unmarshal(b []byte) error {
|
func (m *QuoteRequest) XXX_Unmarshal(b []byte) error {
|
||||||
|
|
@ -963,22 +1014,83 @@ func (m *QuoteRequest) GetSwapPublicationDeadline() uint64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
type QuoteResponse struct {
|
type InQuoteResponse struct {
|
||||||
//*
|
//*
|
||||||
//The fee that the swap server is charging for the swap.
|
//The fee that the swap server is charging for the swap.
|
||||||
SwapFee int64 `protobuf:"varint,1,opt,name=swap_fee,json=swapFee,proto3" json:"swap_fee,omitempty"`
|
SwapFeeSat int64 `protobuf:"varint,1,opt,name=swap_fee_sat,json=swapFeeSat,proto3" json:"swap_fee_sat,omitempty"`
|
||||||
|
//
|
||||||
|
//An estimate of the on-chain fee that needs to be paid to publish the HTLC
|
||||||
|
//If a miner fee of 0 is returned, it means the external_htlc flag was set for
|
||||||
|
//a loop in and the fee estimation was skipped. If a miner fee of -1 is
|
||||||
|
//returned, it means lnd's wallet tried to estimate the fee but was unable to
|
||||||
|
//create a sample estimation transaction because not enough funds are
|
||||||
|
//available. An information message should be shown to the user in this case.
|
||||||
|
HtlcPublishFeeSat int64 `protobuf:"varint,3,opt,name=htlc_publish_fee_sat,json=htlcPublishFeeSat,proto3" json:"htlc_publish_fee_sat,omitempty"`
|
||||||
|
//*
|
||||||
|
//On-chain cltv expiry delta
|
||||||
|
CltvDelta int32 `protobuf:"varint,5,opt,name=cltv_delta,json=cltvDelta,proto3" json:"cltv_delta,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_unrecognized []byte `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *InQuoteResponse) Reset() { *m = InQuoteResponse{} }
|
||||||
|
func (m *InQuoteResponse) String() string { return proto.CompactTextString(m) }
|
||||||
|
func (*InQuoteResponse) ProtoMessage() {}
|
||||||
|
func (*InQuoteResponse) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_014de31d7ac8c57c, []int{12}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *InQuoteResponse) XXX_Unmarshal(b []byte) error {
|
||||||
|
return xxx_messageInfo_InQuoteResponse.Unmarshal(m, b)
|
||||||
|
}
|
||||||
|
func (m *InQuoteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
return xxx_messageInfo_InQuoteResponse.Marshal(b, m, deterministic)
|
||||||
|
}
|
||||||
|
func (m *InQuoteResponse) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_InQuoteResponse.Merge(m, src)
|
||||||
|
}
|
||||||
|
func (m *InQuoteResponse) XXX_Size() int {
|
||||||
|
return xxx_messageInfo_InQuoteResponse.Size(m)
|
||||||
|
}
|
||||||
|
func (m *InQuoteResponse) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_InQuoteResponse.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_InQuoteResponse proto.InternalMessageInfo
|
||||||
|
|
||||||
|
func (m *InQuoteResponse) GetSwapFeeSat() int64 {
|
||||||
|
if m != nil {
|
||||||
|
return m.SwapFeeSat
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *InQuoteResponse) GetHtlcPublishFeeSat() int64 {
|
||||||
|
if m != nil {
|
||||||
|
return m.HtlcPublishFeeSat
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *InQuoteResponse) GetCltvDelta() int32 {
|
||||||
|
if m != nil {
|
||||||
|
return m.CltvDelta
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type OutQuoteResponse struct {
|
||||||
|
//*
|
||||||
|
//The fee that the swap server is charging for the swap.
|
||||||
|
SwapFeeSat int64 `protobuf:"varint,1,opt,name=swap_fee_sat,json=swapFeeSat,proto3" json:"swap_fee_sat,omitempty"`
|
||||||
//*
|
//*
|
||||||
//The part of the swap fee that is requested as a prepayment.
|
//The part of the swap fee that is requested as a prepayment.
|
||||||
PrepayAmt int64 `protobuf:"varint,2,opt,name=prepay_amt,json=prepayAmt,proto3" json:"prepay_amt,omitempty"`
|
PrepayAmtSat int64 `protobuf:"varint,2,opt,name=prepay_amt_sat,json=prepayAmtSat,proto3" json:"prepay_amt_sat,omitempty"`
|
||||||
//*
|
//*
|
||||||
//An estimate of the on-chain fee that needs to be paid to sweep the HTLC for
|
//An estimate of the on-chain fee that needs to be paid to sweep the HTLC for
|
||||||
//a loop out or to pay to the HTLC for loop in. If a miner fee of 0 is
|
//a loop out.
|
||||||
//returned, it means the external_htlc flag was set for a loop in and the fee
|
HtlcSweepFeeSat int64 `protobuf:"varint,3,opt,name=htlc_sweep_fee_sat,json=htlcSweepFeeSat,proto3" json:"htlc_sweep_fee_sat,omitempty"`
|
||||||
//estimation was skipped. If a miner fee of -1 is returned, it means lnd's
|
|
||||||
//wallet tried to estimate the fee but was unable to create a sample
|
|
||||||
//estimation transaction because not enough funds are available. An
|
|
||||||
//information message should be shown to the user in this case.
|
|
||||||
MinerFee int64 `protobuf:"varint,3,opt,name=miner_fee,json=minerFee,proto3" json:"miner_fee,omitempty"`
|
|
||||||
//*
|
//*
|
||||||
//The node pubkey where the swap payment needs to be paid
|
//The node pubkey where the swap payment needs to be paid
|
||||||
//to. This can be used to test connectivity before initiating the swap.
|
//to. This can be used to test connectivity before initiating the swap.
|
||||||
|
|
@ -991,60 +1103,60 @@ type QuoteResponse struct {
|
||||||
XXX_sizecache int32 `json:"-"`
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *QuoteResponse) Reset() { *m = QuoteResponse{} }
|
func (m *OutQuoteResponse) Reset() { *m = OutQuoteResponse{} }
|
||||||
func (m *QuoteResponse) String() string { return proto.CompactTextString(m) }
|
func (m *OutQuoteResponse) String() string { return proto.CompactTextString(m) }
|
||||||
func (*QuoteResponse) ProtoMessage() {}
|
func (*OutQuoteResponse) ProtoMessage() {}
|
||||||
func (*QuoteResponse) Descriptor() ([]byte, []int) {
|
func (*OutQuoteResponse) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_014de31d7ac8c57c, []int{11}
|
return fileDescriptor_014de31d7ac8c57c, []int{13}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *QuoteResponse) XXX_Unmarshal(b []byte) error {
|
func (m *OutQuoteResponse) XXX_Unmarshal(b []byte) error {
|
||||||
return xxx_messageInfo_QuoteResponse.Unmarshal(m, b)
|
return xxx_messageInfo_OutQuoteResponse.Unmarshal(m, b)
|
||||||
}
|
}
|
||||||
func (m *QuoteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
func (m *OutQuoteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
return xxx_messageInfo_QuoteResponse.Marshal(b, m, deterministic)
|
return xxx_messageInfo_OutQuoteResponse.Marshal(b, m, deterministic)
|
||||||
}
|
}
|
||||||
func (m *QuoteResponse) XXX_Merge(src proto.Message) {
|
func (m *OutQuoteResponse) XXX_Merge(src proto.Message) {
|
||||||
xxx_messageInfo_QuoteResponse.Merge(m, src)
|
xxx_messageInfo_OutQuoteResponse.Merge(m, src)
|
||||||
}
|
}
|
||||||
func (m *QuoteResponse) XXX_Size() int {
|
func (m *OutQuoteResponse) XXX_Size() int {
|
||||||
return xxx_messageInfo_QuoteResponse.Size(m)
|
return xxx_messageInfo_OutQuoteResponse.Size(m)
|
||||||
}
|
}
|
||||||
func (m *QuoteResponse) XXX_DiscardUnknown() {
|
func (m *OutQuoteResponse) XXX_DiscardUnknown() {
|
||||||
xxx_messageInfo_QuoteResponse.DiscardUnknown(m)
|
xxx_messageInfo_OutQuoteResponse.DiscardUnknown(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
var xxx_messageInfo_QuoteResponse proto.InternalMessageInfo
|
var xxx_messageInfo_OutQuoteResponse proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *QuoteResponse) GetSwapFee() int64 {
|
func (m *OutQuoteResponse) GetSwapFeeSat() int64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.SwapFee
|
return m.SwapFeeSat
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *QuoteResponse) GetPrepayAmt() int64 {
|
func (m *OutQuoteResponse) GetPrepayAmtSat() int64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.PrepayAmt
|
return m.PrepayAmtSat
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *QuoteResponse) GetMinerFee() int64 {
|
func (m *OutQuoteResponse) GetHtlcSweepFeeSat() int64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.MinerFee
|
return m.HtlcSweepFeeSat
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *QuoteResponse) GetSwapPaymentDest() []byte {
|
func (m *OutQuoteResponse) GetSwapPaymentDest() []byte {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.SwapPaymentDest
|
return m.SwapPaymentDest
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *QuoteResponse) GetCltvDelta() int32 {
|
func (m *OutQuoteResponse) GetCltvDelta() int32 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.CltvDelta
|
return m.CltvDelta
|
||||||
}
|
}
|
||||||
|
|
@ -1061,7 +1173,7 @@ func (m *TokensRequest) Reset() { *m = TokensRequest{} }
|
||||||
func (m *TokensRequest) String() string { return proto.CompactTextString(m) }
|
func (m *TokensRequest) String() string { return proto.CompactTextString(m) }
|
||||||
func (*TokensRequest) ProtoMessage() {}
|
func (*TokensRequest) ProtoMessage() {}
|
||||||
func (*TokensRequest) Descriptor() ([]byte, []int) {
|
func (*TokensRequest) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_014de31d7ac8c57c, []int{12}
|
return fileDescriptor_014de31d7ac8c57c, []int{14}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TokensRequest) XXX_Unmarshal(b []byte) error {
|
func (m *TokensRequest) XXX_Unmarshal(b []byte) error {
|
||||||
|
|
@ -1095,7 +1207,7 @@ func (m *TokensResponse) Reset() { *m = TokensResponse{} }
|
||||||
func (m *TokensResponse) String() string { return proto.CompactTextString(m) }
|
func (m *TokensResponse) String() string { return proto.CompactTextString(m) }
|
||||||
func (*TokensResponse) ProtoMessage() {}
|
func (*TokensResponse) ProtoMessage() {}
|
||||||
func (*TokensResponse) Descriptor() ([]byte, []int) {
|
func (*TokensResponse) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_014de31d7ac8c57c, []int{13}
|
return fileDescriptor_014de31d7ac8c57c, []int{15}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TokensResponse) XXX_Unmarshal(b []byte) error {
|
func (m *TokensResponse) XXX_Unmarshal(b []byte) error {
|
||||||
|
|
@ -1160,7 +1272,7 @@ func (m *LsatToken) Reset() { *m = LsatToken{} }
|
||||||
func (m *LsatToken) String() string { return proto.CompactTextString(m) }
|
func (m *LsatToken) String() string { return proto.CompactTextString(m) }
|
||||||
func (*LsatToken) ProtoMessage() {}
|
func (*LsatToken) ProtoMessage() {}
|
||||||
func (*LsatToken) Descriptor() ([]byte, []int) {
|
func (*LsatToken) Descriptor() ([]byte, []int) {
|
||||||
return fileDescriptor_014de31d7ac8c57c, []int{14}
|
return fileDescriptor_014de31d7ac8c57c, []int{16}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *LsatToken) XXX_Unmarshal(b []byte) error {
|
func (m *LsatToken) XXX_Unmarshal(b []byte) error {
|
||||||
|
|
@ -1249,9 +1361,11 @@ func init() {
|
||||||
proto.RegisterType((*ListSwapsResponse)(nil), "looprpc.ListSwapsResponse")
|
proto.RegisterType((*ListSwapsResponse)(nil), "looprpc.ListSwapsResponse")
|
||||||
proto.RegisterType((*SwapInfoRequest)(nil), "looprpc.SwapInfoRequest")
|
proto.RegisterType((*SwapInfoRequest)(nil), "looprpc.SwapInfoRequest")
|
||||||
proto.RegisterType((*TermsRequest)(nil), "looprpc.TermsRequest")
|
proto.RegisterType((*TermsRequest)(nil), "looprpc.TermsRequest")
|
||||||
proto.RegisterType((*TermsResponse)(nil), "looprpc.TermsResponse")
|
proto.RegisterType((*InTermsResponse)(nil), "looprpc.InTermsResponse")
|
||||||
|
proto.RegisterType((*OutTermsResponse)(nil), "looprpc.OutTermsResponse")
|
||||||
proto.RegisterType((*QuoteRequest)(nil), "looprpc.QuoteRequest")
|
proto.RegisterType((*QuoteRequest)(nil), "looprpc.QuoteRequest")
|
||||||
proto.RegisterType((*QuoteResponse)(nil), "looprpc.QuoteResponse")
|
proto.RegisterType((*InQuoteResponse)(nil), "looprpc.InQuoteResponse")
|
||||||
|
proto.RegisterType((*OutQuoteResponse)(nil), "looprpc.OutQuoteResponse")
|
||||||
proto.RegisterType((*TokensRequest)(nil), "looprpc.TokensRequest")
|
proto.RegisterType((*TokensRequest)(nil), "looprpc.TokensRequest")
|
||||||
proto.RegisterType((*TokensResponse)(nil), "looprpc.TokensResponse")
|
proto.RegisterType((*TokensResponse)(nil), "looprpc.TokensResponse")
|
||||||
proto.RegisterType((*LsatToken)(nil), "looprpc.LsatToken")
|
proto.RegisterType((*LsatToken)(nil), "looprpc.LsatToken")
|
||||||
|
|
@ -1260,104 +1374,109 @@ func init() {
|
||||||
func init() { proto.RegisterFile("client.proto", fileDescriptor_014de31d7ac8c57c) }
|
func init() { proto.RegisterFile("client.proto", fileDescriptor_014de31d7ac8c57c) }
|
||||||
|
|
||||||
var fileDescriptor_014de31d7ac8c57c = []byte{
|
var fileDescriptor_014de31d7ac8c57c = []byte{
|
||||||
// 1549 bytes of a gzipped FileDescriptorProto
|
// 1619 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xcd, 0x72, 0xdb, 0xb6,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdd, 0x6e, 0x23, 0x49,
|
||||||
0x16, 0x0e, 0xf5, 0xaf, 0x23, 0x8a, 0xa2, 0xe0, 0xc4, 0x96, 0x75, 0x6f, 0x26, 0x0a, 0xef, 0x4d,
|
0x15, 0xde, 0xf6, 0x4f, 0x6c, 0x1f, 0xb7, 0xdb, 0x9d, 0xca, 0xce, 0xc4, 0xb1, 0x40, 0xeb, 0x69,
|
||||||
0xab, 0x78, 0x32, 0x56, 0xe3, 0xac, 0x9a, 0xe9, 0x74, 0xc6, 0x91, 0x95, 0x58, 0x1e, 0xff, 0xa8,
|
0x76, 0x20, 0x1b, 0x56, 0x63, 0x36, 0x7b, 0xc5, 0x0a, 0x21, 0x65, 0x12, 0xef, 0xc6, 0x51, 0x7e,
|
||||||
0x94, 0x9c, 0x99, 0x64, 0xc3, 0xc2, 0x22, 0x6c, 0x71, 0x2a, 0x12, 0x0c, 0x01, 0xc5, 0xf6, 0x64,
|
0x4c, 0xdb, 0x59, 0x09, 0x84, 0xd4, 0xaa, 0xb8, 0x2b, 0x71, 0x0b, 0x77, 0x57, 0x6f, 0x57, 0x79,
|
||||||
0xb2, 0xe9, 0x2b, 0xf4, 0x0d, 0xfa, 0x06, 0x5d, 0xf7, 0x0d, 0xba, 0xeb, 0xf4, 0x01, 0xba, 0xe9,
|
0x26, 0xd1, 0x08, 0x81, 0x78, 0x01, 0x2e, 0x78, 0x03, 0x5e, 0x83, 0x37, 0xe0, 0x0e, 0x78, 0x00,
|
||||||
0xa6, 0xfb, 0x3e, 0x40, 0x07, 0x00, 0x45, 0x51, 0xfe, 0xc9, 0x22, 0x3b, 0xf1, 0xc3, 0x87, 0x0f,
|
0x6e, 0xb8, 0xe1, 0x25, 0x10, 0xaa, 0x53, 0xdd, 0xed, 0xee, 0xfc, 0x49, 0x5c, 0x71, 0xe7, 0xfe,
|
||||||
0x07, 0xe7, 0x1c, 0x7c, 0x80, 0x40, 0x1f, 0x4f, 0x3d, 0x12, 0xf0, 0xcd, 0x30, 0xa2, 0x9c, 0xa2,
|
0xea, 0xab, 0x53, 0xe7, 0xa7, 0xce, 0x77, 0xca, 0x60, 0xce, 0x97, 0x01, 0x8b, 0xe4, 0x9b, 0x38,
|
||||||
0xe2, 0x94, 0xd2, 0x30, 0x0a, 0xc7, 0xcd, 0xff, 0x9e, 0x51, 0x7a, 0x36, 0x25, 0x1d, 0x1c, 0x7a,
|
0xe1, 0x92, 0x93, 0xc6, 0x92, 0xf3, 0x38, 0x89, 0xe7, 0xfd, 0xef, 0xdd, 0x70, 0x7e, 0xb3, 0x64,
|
||||||
0x1d, 0x1c, 0x04, 0x94, 0x63, 0xee, 0xd1, 0x80, 0x29, 0x9a, 0xf5, 0x5b, 0x16, 0x8c, 0x7d, 0x4a,
|
0x43, 0x1a, 0x07, 0x43, 0x1a, 0x45, 0x5c, 0x52, 0x19, 0xf0, 0x48, 0x68, 0x9a, 0xf3, 0xd7, 0x2a,
|
||||||
0xc3, 0xa3, 0x19, 0xb7, 0xc9, 0xbb, 0x19, 0x61, 0x1c, 0x99, 0x90, 0xc5, 0x3e, 0x6f, 0x68, 0x2d,
|
0x58, 0xa7, 0x9c, 0xc7, 0x17, 0x2b, 0xe9, 0xb2, 0xef, 0x56, 0x4c, 0x48, 0x62, 0x43, 0x95, 0x86,
|
||||||
0xad, 0x9d, 0xb5, 0xc5, 0x4f, 0x84, 0x20, 0xe7, 0x12, 0xc6, 0x1b, 0x99, 0x96, 0xd6, 0x2e, 0xdb,
|
0xb2, 0x67, 0x0c, 0x8c, 0xdd, 0xaa, 0xab, 0x7e, 0x12, 0x02, 0x35, 0x9f, 0x09, 0xd9, 0xab, 0x0c,
|
||||||
0xf2, 0x37, 0xea, 0xc0, 0x5d, 0x1f, 0x5f, 0x38, 0xec, 0x1c, 0x87, 0x4e, 0x44, 0x67, 0xdc, 0x0b,
|
0x8c, 0xdd, 0x96, 0x8b, 0xbf, 0xc9, 0x10, 0x3e, 0x0e, 0xe9, 0xad, 0x27, 0xde, 0xd3, 0xd8, 0x4b,
|
||||||
0xce, 0x9c, 0x53, 0x42, 0x1a, 0x59, 0x39, 0xad, 0xee, 0xe3, 0x8b, 0xe1, 0x39, 0x0e, 0x6d, 0x35,
|
0xf8, 0x4a, 0x06, 0xd1, 0x8d, 0x77, 0xcd, 0x58, 0xaf, 0x8a, 0xdb, 0x36, 0x43, 0x7a, 0x3b, 0x7d,
|
||||||
0xf2, 0x92, 0x10, 0xf4, 0x0c, 0x56, 0xc5, 0x84, 0x30, 0x22, 0x21, 0xbe, 0x5c, 0x9a, 0x92, 0x93,
|
0x4f, 0x63, 0x57, 0xaf, 0x7c, 0xcd, 0x18, 0xf9, 0x12, 0x5e, 0xaa, 0x0d, 0x71, 0xc2, 0x62, 0x7a,
|
||||||
0x53, 0x56, 0x7c, 0x7c, 0x31, 0x90, 0x83, 0xa9, 0x49, 0x2d, 0xd0, 0x93, 0x55, 0x04, 0x35, 0x2f,
|
0x57, 0xda, 0x52, 0xc3, 0x2d, 0x5b, 0x21, 0xbd, 0x9d, 0xe0, 0x62, 0x61, 0xd3, 0x00, 0xcc, 0xfc,
|
||||||
0xa9, 0x10, 0xab, 0x0b, 0xc6, 0xff, 0xc1, 0x48, 0xc9, 0x8a, 0xc0, 0x0b, 0x92, 0xa3, 0x27, 0x72,
|
0x14, 0x45, 0xad, 0x23, 0x15, 0x52, 0xeb, 0x8a, 0xf1, 0x29, 0x58, 0x05, 0xb3, 0xca, 0xf1, 0x0d,
|
||||||
0xdb, 0x3e, 0x47, 0x16, 0x54, 0x05, 0xcb, 0xf7, 0x02, 0x12, 0x49, 0xa1, 0xa2, 0x24, 0x55, 0x7c,
|
0xe4, 0x98, 0xb9, 0xb9, 0x83, 0x50, 0x12, 0x07, 0x3a, 0x8a, 0x15, 0x06, 0x11, 0x4b, 0xd0, 0x50,
|
||||||
0x7c, 0x71, 0x20, 0x30, 0xa1, 0xf4, 0x04, 0x4c, 0x91, 0x33, 0x87, 0xce, 0xb8, 0x33, 0x9e, 0xe0,
|
0x03, 0x49, 0xed, 0x90, 0xde, 0x9e, 0x29, 0x4c, 0x59, 0xfa, 0x1c, 0x6c, 0x95, 0x33, 0x8f, 0xaf,
|
||||||
0x20, 0x20, 0xd3, 0x46, 0xa9, 0xa5, 0xb5, 0x73, 0x2f, 0x32, 0x0d, 0xcd, 0x36, 0xa6, 0x2a, 0x4b,
|
0xa4, 0x37, 0x5f, 0xd0, 0x28, 0x62, 0xcb, 0x5e, 0x73, 0x60, 0xec, 0xd6, 0xde, 0x56, 0x7a, 0x86,
|
||||||
0x5d, 0x35, 0x82, 0x36, 0xa0, 0x4e, 0x67, 0xfc, 0x8c, 0x8a, 0x4d, 0x08, 0xb6, 0xc3, 0x08, 0x6f,
|
0x6b, 0x2d, 0x75, 0x96, 0x0e, 0xf5, 0x0a, 0xd9, 0x83, 0x4d, 0xbe, 0x92, 0x37, 0x5c, 0x05, 0xa1,
|
||||||
0x54, 0x5a, 0xd9, 0x76, 0xce, 0xae, 0xcd, 0x07, 0x04, 0x77, 0x48, 0xb8, 0xe0, 0xb2, 0x73, 0x42,
|
0xd8, 0x9e, 0x60, 0xb2, 0xd7, 0x1e, 0x54, 0x77, 0x6b, 0x6e, 0x37, 0x5b, 0x50, 0xdc, 0x29, 0x93,
|
||||||
0x42, 0x67, 0x4c, 0x83, 0x53, 0x87, 0xe3, 0xe8, 0x8c, 0xf0, 0x46, 0xb9, 0xa5, 0xb5, 0xf3, 0x76,
|
0x8a, 0x2b, 0xde, 0x33, 0x16, 0x7b, 0x73, 0x1e, 0x5d, 0x7b, 0x92, 0x26, 0x37, 0x4c, 0xf6, 0x5a,
|
||||||
0x4d, 0x0e, 0x74, 0x69, 0x70, 0x3a, 0x92, 0x30, 0x7a, 0x0e, 0xeb, 0x72, 0xb7, 0xe1, 0xec, 0x64,
|
0x03, 0x63, 0xb7, 0xee, 0x76, 0x71, 0xe1, 0x90, 0x47, 0xd7, 0x33, 0x84, 0xc9, 0x57, 0xb0, 0x83,
|
||||||
0xea, 0x8d, 0x65, 0xad, 0x1c, 0x97, 0x60, 0x77, 0xea, 0x05, 0xa4, 0x01, 0x22, 0x1c, 0x7b, 0x4d,
|
0xd1, 0xc6, 0xab, 0xab, 0x65, 0x30, 0xc7, 0x5a, 0x79, 0x3e, 0xa3, 0xfe, 0x32, 0x88, 0x58, 0x0f,
|
||||||
0x10, 0x06, 0x8b, 0xf1, 0x9d, 0x78, 0xd8, 0xfa, 0x5d, 0x83, 0xaa, 0x28, 0x66, 0x3f, 0xb8, 0xbd,
|
0x94, 0x3b, 0xee, 0xb6, 0x22, 0x4c, 0xd6, 0xeb, 0x47, 0xe9, 0xb2, 0xf3, 0x37, 0x03, 0x3a, 0xaa,
|
||||||
0x96, 0x57, 0x33, 0x9a, 0xb9, 0x96, 0xd1, 0x6b, 0xb9, 0xca, 0x5e, 0xcf, 0xd5, 0x3a, 0x94, 0xa6,
|
0x98, 0xe3, 0xe8, 0xe9, 0x5a, 0xde, 0xcf, 0x68, 0xe5, 0x41, 0x46, 0x1f, 0xe4, 0xaa, 0xfa, 0x30,
|
||||||
0x98, 0x71, 0x67, 0x42, 0x43, 0x59, 0x3e, 0xdd, 0x2e, 0x8a, 0xef, 0x5d, 0x1a, 0xa2, 0xff, 0x41,
|
0x57, 0x3b, 0xd0, 0x5c, 0x52, 0x21, 0xbd, 0x05, 0x8f, 0xb1, 0x7c, 0xa6, 0xdb, 0x50, 0xdf, 0xc7,
|
||||||
0x95, 0x5c, 0x70, 0x12, 0x05, 0x78, 0xea, 0x4c, 0xf8, 0x74, 0x2c, 0x6b, 0x56, 0xb2, 0xf5, 0x39,
|
0x3c, 0x26, 0x3f, 0x80, 0x0e, 0xbb, 0x95, 0x2c, 0x89, 0xe8, 0xd2, 0x5b, 0xc8, 0xe5, 0x1c, 0x6b,
|
||||||
0xb8, 0xcb, 0xa7, 0x63, 0xd4, 0x06, 0x53, 0x8c, 0x2d, 0x25, 0xa4, 0x20, 0x13, 0x62, 0x08, 0x7c,
|
0xd6, 0x74, 0xcd, 0x0c, 0x3c, 0x96, 0xcb, 0x39, 0xd9, 0x05, 0x5b, 0xad, 0x95, 0x12, 0xb2, 0x81,
|
||||||
0x91, 0x0f, 0xeb, 0x6f, 0x0d, 0x74, 0xd9, 0x49, 0x84, 0x85, 0x34, 0x60, 0x04, 0x21, 0xc8, 0x78,
|
0x09, 0xb1, 0x14, 0xbe, 0xce, 0x87, 0xf3, 0x6f, 0x03, 0x4c, 0xbc, 0x49, 0x4c, 0xc4, 0x3c, 0x12,
|
||||||
0xae, 0xdc, 0x51, 0x59, 0x16, 0x26, 0xe3, 0xb9, 0x22, 0x1c, 0xcf, 0x75, 0x4e, 0x2e, 0x39, 0x61,
|
0x8c, 0x10, 0xa8, 0x04, 0x3e, 0x46, 0xd4, 0xc2, 0xc2, 0x54, 0x02, 0x5f, 0xb9, 0x13, 0xf8, 0xde,
|
||||||
0x32, 0x5a, 0xdd, 0x2e, 0x7a, 0xee, 0x0b, 0xf1, 0x89, 0x1e, 0x81, 0x2e, 0x57, 0xc2, 0xae, 0x1b,
|
0xd5, 0x9d, 0x64, 0x02, 0xbd, 0x35, 0xdd, 0x46, 0xe0, 0xbf, 0x55, 0x9f, 0xe4, 0x35, 0x98, 0x78,
|
||||||
0x11, 0xc6, 0x54, 0x0f, 0xcb, 0x89, 0x15, 0x81, 0x6f, 0x2b, 0x18, 0x6d, 0xc2, 0x4a, 0x9a, 0xe6,
|
0x12, 0xf5, 0xfd, 0x84, 0x09, 0xa1, 0xef, 0x30, 0x6e, 0x6c, 0x2b, 0xfc, 0x40, 0xc3, 0xe4, 0x0d,
|
||||||
0x04, 0xe1, 0xd6, 0x39, 0x9b, 0xc8, 0xbd, 0x95, 0xed, 0x7a, 0x8a, 0x79, 0x28, 0x07, 0xd0, 0x13,
|
0x6c, 0x15, 0x69, 0x5e, 0x14, 0xef, 0xbf, 0x17, 0x0b, 0x8c, 0xad, 0xe5, 0x6e, 0x16, 0x98, 0xe7,
|
||||||
0x40, 0x4b, 0x7c, 0x45, 0xcf, 0x4b, 0xba, 0x99, 0xa2, 0x0f, 0x24, 0xfb, 0x11, 0x18, 0x8c, 0x44,
|
0xb8, 0x40, 0x3e, 0x07, 0x52, 0xe2, 0x6b, 0x7a, 0x1d, 0xe9, 0x76, 0x81, 0x3e, 0x41, 0xf6, 0x6b,
|
||||||
0xef, 0x49, 0xe4, 0xf8, 0x84, 0x31, 0x7c, 0x46, 0xe4, 0x66, 0xcb, 0x76, 0x55, 0xa1, 0x07, 0x0a,
|
0xb0, 0x04, 0x4b, 0xde, 0xb1, 0xc4, 0x0b, 0x99, 0x10, 0xf4, 0x86, 0x61, 0xb0, 0x2d, 0xb7, 0xa3,
|
||||||
0xb4, 0x4c, 0x30, 0x0e, 0x68, 0xe0, 0x71, 0x1a, 0xc5, 0xf5, 0xb3, 0xfe, 0xcc, 0x02, 0x88, 0xdd,
|
0xd1, 0x33, 0x0d, 0x3a, 0x36, 0x58, 0x67, 0x3c, 0x0a, 0x24, 0x4f, 0xd2, 0xfa, 0x39, 0xff, 0xac,
|
||||||
0x0f, 0x39, 0xe6, 0x33, 0x76, 0xe3, 0xd1, 0x14, 0xd9, 0xc8, 0xdc, 0x9a, 0x8d, 0xca, 0xd5, 0x6c,
|
0x02, 0xa8, 0xe8, 0xa7, 0x92, 0xca, 0x95, 0x78, 0xb4, 0x35, 0x55, 0x36, 0x2a, 0x4f, 0x66, 0xa3,
|
||||||
0xe4, 0xf8, 0x65, 0xa8, 0x4a, 0x6a, 0x6c, 0xd5, 0x37, 0x63, 0x93, 0xd8, 0x14, 0x6b, 0x8c, 0x2e,
|
0x7d, 0x3f, 0x1b, 0x35, 0x79, 0x17, 0xeb, 0x92, 0x5a, 0xfb, 0x9b, 0x6f, 0x52, 0x91, 0x78, 0xa3,
|
||||||
0x43, 0x62, 0xcb, 0x61, 0xd4, 0x86, 0x3c, 0xe3, 0x98, 0xab, 0xa3, 0x69, 0x6c, 0xa1, 0x25, 0x9e,
|
0xce, 0x98, 0xdd, 0xc5, 0xcc, 0xc5, 0x65, 0xb2, 0x0b, 0x75, 0x21, 0xa9, 0xd4, 0xad, 0x69, 0xed,
|
||||||
0x88, 0x85, 0xd8, 0x8a, 0x80, 0xbe, 0x84, 0x9a, 0x17, 0x78, 0xdc, 0x53, 0x8d, 0xca, 0x3d, 0x7f,
|
0x93, 0x12, 0x4f, 0xf9, 0xc2, 0x5c, 0x4d, 0x20, 0x3f, 0x82, 0x6e, 0x10, 0x05, 0x32, 0xd0, 0x17,
|
||||||
0x7e, 0x46, 0x8d, 0x05, 0x3c, 0xf2, 0x7c, 0x21, 0x69, 0xca, 0x8e, 0x99, 0x85, 0x2e, 0xe6, 0x44,
|
0x55, 0x06, 0x61, 0xd6, 0xa3, 0xd6, 0x1a, 0x9e, 0x05, 0xa1, 0x32, 0x69, 0xe3, 0x8d, 0x59, 0xc5,
|
||||||
0x31, 0xd5, 0x49, 0x35, 0x04, 0x7e, 0x2c, 0x61, 0xc9, 0xbc, 0x5a, 0xb1, 0xe2, 0xcd, 0x15, 0xbb,
|
0x3e, 0x95, 0x4c, 0x33, 0x75, 0xa7, 0x5a, 0x0a, 0xbf, 0x44, 0x18, 0x99, 0xf7, 0x2b, 0xd6, 0x78,
|
||||||
0xb9, 0x02, 0xfa, 0x2d, 0x15, 0xb8, 0xa5, 0xbe, 0xd5, 0xdb, 0xea, 0xfb, 0x00, 0x2a, 0x63, 0xca,
|
0xbc, 0x62, 0x8f, 0x57, 0xc0, 0x7c, 0xa2, 0x02, 0x4f, 0xd4, 0xb7, 0xf3, 0x54, 0x7d, 0x3f, 0x81,
|
||||||
0xb8, 0xa3, 0x0a, 0x24, 0x7d, 0x20, 0x6b, 0x83, 0x80, 0x86, 0x12, 0x41, 0x0f, 0x41, 0x97, 0x04,
|
0xf6, 0x9c, 0x0b, 0xe9, 0xe9, 0x02, 0xa1, 0x0e, 0x54, 0x5d, 0x50, 0xd0, 0x14, 0x11, 0xf2, 0x0a,
|
||||||
0x1a, 0x8c, 0x27, 0xd8, 0x0b, 0xe4, 0x71, 0xce, 0xda, 0x72, 0xd2, 0x91, 0x82, 0xc4, 0x49, 0x50,
|
0x4c, 0x24, 0xf0, 0x68, 0xbe, 0xa0, 0x41, 0x84, 0xed, 0x5c, 0x75, 0x71, 0xd3, 0x85, 0x86, 0x54,
|
||||||
0x94, 0xd3, 0x53, 0xc5, 0x01, 0xe5, 0x4c, 0x92, 0x13, 0x63, 0x16, 0x02, 0x73, 0xdf, 0x63, 0x5c,
|
0x27, 0x68, 0xca, 0xf5, 0xb5, 0xe6, 0x80, 0x56, 0x26, 0xe4, 0xa4, 0x98, 0x43, 0xc0, 0x3e, 0x0d,
|
||||||
0x24, 0x96, 0xcd, 0xab, 0xfe, 0x2d, 0xd4, 0x53, 0x58, 0xdc, 0xf7, 0x8f, 0x21, 0x2f, 0x0e, 0x2d,
|
0x84, 0x54, 0x89, 0x15, 0x59, 0xd5, 0x7f, 0x0e, 0x9b, 0x05, 0x2c, 0xbd, 0xf7, 0x9f, 0x41, 0x5d,
|
||||||
0x6b, 0x68, 0xad, 0x6c, 0xbb, 0xb2, 0xb5, 0x72, 0xad, 0x26, 0x33, 0x66, 0x2b, 0x86, 0xf5, 0x10,
|
0x35, 0xad, 0xe8, 0x19, 0x83, 0xea, 0x6e, 0x7b, 0x7f, 0xeb, 0x41, 0x4d, 0x56, 0xc2, 0xd5, 0x0c,
|
||||||
0x6a, 0x02, 0xec, 0x07, 0xa7, 0x74, 0x6e, 0x04, 0x46, 0x72, 0x6a, 0x74, 0xd1, 0x23, 0x96, 0x01,
|
0xe7, 0x15, 0x74, 0x15, 0x38, 0x8e, 0xae, 0x79, 0x26, 0x04, 0x56, 0xde, 0x35, 0xa6, 0xba, 0x23,
|
||||||
0xfa, 0x88, 0x44, 0x7e, 0xb2, 0xe4, 0x47, 0xa8, 0xc6, 0xdf, 0xf1, 0x72, 0x5f, 0x40, 0xcd, 0xf7,
|
0x8e, 0x05, 0xe6, 0x8c, 0x25, 0x61, 0x7e, 0xe4, 0xef, 0xa0, 0x3b, 0x8e, 0x52, 0x24, 0x3d, 0xf0,
|
||||||
0x02, 0xe5, 0x13, 0xd8, 0xa7, 0xb3, 0x80, 0xc7, 0x85, 0xad, 0xfa, 0x5e, 0x20, 0xd4, 0xb7, 0x25,
|
0x87, 0xd0, 0x0d, 0x83, 0x48, 0x2b, 0x05, 0x0d, 0xf9, 0x2a, 0x92, 0x69, 0x69, 0x3b, 0x61, 0x10,
|
||||||
0x28, 0x79, 0x73, 0x3f, 0x89, 0x79, 0x85, 0x98, 0xa7, 0x2c, 0x45, 0xf1, 0xf6, 0x72, 0x25, 0xcd,
|
0x29, 0xfb, 0x07, 0x08, 0x22, 0x2f, 0x53, 0x94, 0x94, 0xb7, 0x91, 0xf2, 0xb4, 0xa8, 0x68, 0xde,
|
||||||
0xcc, 0xec, 0xe5, 0x4a, 0x19, 0x33, 0xbb, 0x97, 0x2b, 0x65, 0xcd, 0xdc, 0x5e, 0xae, 0x94, 0x33,
|
0x49, 0xad, 0x69, 0xd8, 0x95, 0x93, 0x5a, 0xb3, 0x62, 0x57, 0x4f, 0x6a, 0xcd, 0xaa, 0x5d, 0x3b,
|
||||||
0xf3, 0x7b, 0xb9, 0x52, 0xd1, 0x2c, 0x59, 0x3f, 0x6b, 0xa0, 0x7f, 0x37, 0xa3, 0x9c, 0xdc, 0x6e,
|
0xa9, 0x35, 0x6b, 0x76, 0xfd, 0xa4, 0xd6, 0x6c, 0xd8, 0x4d, 0xe7, 0xf7, 0x06, 0xd8, 0x17, 0x2b,
|
||||||
0x5c, 0xb2, 0x22, 0x0b, 0xb7, 0xc8, 0x48, 0xb7, 0x80, 0xf1, 0xc2, 0x39, 0xaf, 0x19, 0x4f, 0xf6,
|
0xf9, 0xff, 0x74, 0xe1, 0xcf, 0x06, 0x98, 0xbf, 0x58, 0x71, 0xc9, 0x9e, 0x56, 0x4f, 0xbc, 0x16,
|
||||||
0x06, 0xe3, 0xf9, 0xa4, 0xbd, 0xe6, 0x3e, 0x6d, 0xaf, 0xbf, 0x68, 0x50, 0x8d, 0x83, 0x8c, 0x93,
|
0x6b, 0xc9, 0xaa, 0xa0, 0x64, 0xc1, 0x7c, 0x2d, 0xdf, 0x0f, 0xd4, 0xaf, 0xfa, 0x88, 0xfa, 0x3d,
|
||||||
0xb4, 0x0e, 0xa5, 0xc4, 0x48, 0x55, 0xa8, 0x45, 0x16, 0xbb, 0xe8, 0x7d, 0x80, 0xd4, 0x9d, 0xa4,
|
0xab, 0xf1, 0xb5, 0xe7, 0x35, 0xfe, 0x8f, 0x86, 0xaa, 0x54, 0xea, 0x66, 0x9a, 0xa6, 0x01, 0x98,
|
||||||
0x5c, 0xb6, 0x1c, 0x26, 0x17, 0xd2, 0x7f, 0xa0, 0x7c, 0xd5, 0x60, 0x4b, 0xfe, 0xdc, 0x5d, 0xe5,
|
0x99, 0x9e, 0x7b, 0x82, 0x66, 0x0e, 0x83, 0xd0, 0x82, 0x3e, 0xa5, 0x38, 0xad, 0xf1, 0xfa, 0xe3,
|
||||||
0x7d, 0x21, 0x82, 0xc4, 0x97, 0x3e, 0x09, 0xb8, 0x23, 0x2f, 0x5f, 0x65, 0xb3, 0x35, 0x19, 0x9c,
|
0x89, 0x62, 0x91, 0x33, 0xd3, 0x69, 0xad, 0xd6, 0x26, 0x7a, 0x29, 0xdd, 0xf0, 0x7d, 0x80, 0xf9,
|
||||||
0xc2, 0x77, 0x44, 0xa2, 0xee, 0x03, 0x8c, 0xa7, 0xfc, 0xbd, 0xe3, 0x92, 0x29, 0xc7, 0xb2, 0x44,
|
0x52, 0xbe, 0xf3, 0x7c, 0xb6, 0x94, 0x14, 0x93, 0x5e, 0x77, 0x5b, 0x0a, 0x39, 0x52, 0x40, 0x9e,
|
||||||
0x79, 0xbb, 0x2c, 0x90, 0x1d, 0x01, 0x58, 0x35, 0xa8, 0x8e, 0xe8, 0x0f, 0x24, 0x48, 0x0a, 0xfd,
|
0xc2, 0x9a, 0x5d, 0x77, 0xfe, 0xae, 0x2b, 0xf7, 0xbf, 0xba, 0xf4, 0x29, 0x58, 0xeb, 0xa1, 0x8d,
|
||||||
0x0d, 0x18, 0x73, 0x20, 0xde, 0xc4, 0x06, 0x14, 0xb8, 0x44, 0xe2, 0xce, 0x5a, 0x9c, 0xf6, 0x7d,
|
0x1c, 0x3d, 0x8a, 0xcc, 0x38, 0x9b, 0xda, 0x8a, 0xf5, 0xe3, 0xb4, 0xcb, 0xf5, 0xfc, 0x2c, 0xbb,
|
||||||
0x86, 0xb9, 0x24, 0xdb, 0x31, 0xc3, 0xfa, 0x35, 0x03, 0xe5, 0x04, 0x15, 0x19, 0x3f, 0xc1, 0x8c,
|
0xdd, 0x55, 0x2b, 0x53, 0xb5, 0x90, 0x9a, 0xc4, 0x39, 0xab, 0xf2, 0x4a, 0xef, 0x42, 0x16, 0x49,
|
||||||
0x38, 0x3e, 0x1e, 0xe3, 0x88, 0xd2, 0x20, 0xee, 0x2f, 0x5d, 0x80, 0x07, 0x31, 0x26, 0x0e, 0xca,
|
0x0f, 0x1f, 0x2d, 0x7a, 0x3c, 0x75, 0x31, 0x9f, 0x1a, 0x3f, 0x52, 0xb5, 0x7d, 0x3e, 0x40, 0xa7,
|
||||||
0x7c, 0x1f, 0x13, 0xcc, 0x26, 0x32, 0x15, 0xba, 0x5d, 0x89, 0xb1, 0x5d, 0xcc, 0x26, 0xe8, 0x31,
|
0x0b, 0x9d, 0x19, 0xff, 0x0d, 0x8b, 0xf2, 0x06, 0xf9, 0x19, 0x58, 0x19, 0x90, 0x86, 0xb8, 0x07,
|
||||||
0x98, 0x73, 0x4a, 0x18, 0x11, 0xcf, 0x17, 0x06, 0xa9, 0x6c, 0xbc, 0x16, 0xe3, 0x83, 0x18, 0x16,
|
0x1b, 0x12, 0x91, 0xb4, 0x23, 0xd7, 0x2a, 0x79, 0x2a, 0xa8, 0x44, 0xb2, 0x9b, 0x32, 0x9c, 0xbf,
|
||||||
0x36, 0xa2, 0xba, 0xcc, 0x09, 0xb1, 0xe7, 0x3a, 0x3e, 0xc3, 0x3c, 0x7e, 0x3f, 0x18, 0x0a, 0x1f,
|
0x54, 0xa0, 0x95, 0xa3, 0xea, 0x92, 0x5c, 0x51, 0xc1, 0xbc, 0x90, 0xce, 0x69, 0xc2, 0x79, 0x94,
|
||||||
0x60, 0xcf, 0x3d, 0x60, 0x98, 0xa3, 0xa7, 0x70, 0x2f, 0xf5, 0xc8, 0x48, 0xd1, 0x55, 0x1b, 0xa3,
|
0xf6, 0xa5, 0xa9, 0xc0, 0xb3, 0x14, 0x53, 0x02, 0x93, 0xc5, 0xb1, 0xa0, 0x62, 0x81, 0xd9, 0x31,
|
||||||
0x28, 0x79, 0x65, 0x24, 0x53, 0x1e, 0x82, 0x2e, 0x7c, 0xc9, 0x19, 0x47, 0x04, 0x73, 0xe2, 0xc6,
|
0xdd, 0x76, 0x8a, 0x1d, 0x53, 0xb1, 0x20, 0x9f, 0x81, 0x9d, 0x51, 0xe2, 0x84, 0x05, 0xa1, 0x1a,
|
||||||
0x8d, 0x5c, 0x11, 0x58, 0x57, 0x41, 0xa8, 0x01, 0x45, 0x72, 0x11, 0x7a, 0x11, 0x71, 0xa5, 0x2f,
|
0x2c, 0x7a, 0xfc, 0x75, 0x53, 0x7c, 0x92, 0xc2, 0x4a, 0x7e, 0x75, 0x63, 0x78, 0x31, 0x0d, 0x7c,
|
||||||
0x95, 0xec, 0xf9, 0xa7, 0x98, 0xcc, 0x38, 0x8d, 0xf0, 0x19, 0x71, 0x02, 0xec, 0x13, 0x69, 0x19,
|
0x2f, 0x54, 0x59, 0xd4, 0xef, 0x2e, 0x4b, 0xe3, 0x13, 0x1a, 0xf8, 0x67, 0x82, 0x4a, 0xf2, 0x05,
|
||||||
0x65, 0xbb, 0x12, 0x63, 0x87, 0xd8, 0x27, 0x1b, 0x8f, 0xa0, 0x34, 0x37, 0x5a, 0xa4, 0x43, 0x69,
|
0xbc, 0x28, 0x3c, 0xce, 0x0a, 0x74, 0xdd, 0x79, 0x24, 0xc9, 0x5f, 0x67, 0xf9, 0x96, 0x57, 0x60,
|
||||||
0xff, 0xe8, 0x68, 0xe0, 0x1c, 0x1d, 0x8f, 0xcc, 0x3b, 0xa8, 0x02, 0x45, 0xf9, 0xd5, 0x3f, 0x34,
|
0x2a, 0x3d, 0xf7, 0xe6, 0x09, 0xa3, 0x92, 0xf9, 0x69, 0xef, 0xb5, 0x15, 0x76, 0xa8, 0x21, 0xd2,
|
||||||
0xb5, 0x0d, 0x06, 0xe5, 0xc4, 0x67, 0x51, 0x15, 0xca, 0xfd, 0xc3, 0xfe, 0xa8, 0xbf, 0x3d, 0xea,
|
0x83, 0x06, 0xbb, 0x8d, 0x83, 0x84, 0xf9, 0xa8, 0xe7, 0x4d, 0x37, 0xfb, 0x54, 0x9b, 0x85, 0xe4,
|
||||||
0xed, 0x98, 0x77, 0xd0, 0x3d, 0xa8, 0x0f, 0xec, 0x5e, 0xff, 0x60, 0xfb, 0x55, 0xcf, 0xb1, 0x7b,
|
0x09, 0xbd, 0x61, 0x5e, 0x44, 0x43, 0x86, 0x52, 0xdb, 0x72, 0xdb, 0x29, 0x76, 0x4e, 0x43, 0xb6,
|
||||||
0xaf, 0x7b, 0xdb, 0xfb, 0xbd, 0x1d, 0x53, 0x43, 0x08, 0x8c, 0xdd, 0xd1, 0x7e, 0xd7, 0x19, 0x1c,
|
0xf7, 0x1a, 0x9a, 0xd9, 0x80, 0x22, 0x26, 0x34, 0x4f, 0x2f, 0x2e, 0x26, 0xde, 0xc5, 0xe5, 0xcc,
|
||||||
0xbf, 0xd8, 0xef, 0x0f, 0x77, 0x7b, 0x3b, 0x66, 0x46, 0x68, 0x0e, 0x8f, 0xbb, 0xdd, 0xde, 0x70,
|
0xfe, 0x88, 0xb4, 0xa1, 0x81, 0x5f, 0xe3, 0x73, 0xdb, 0xd8, 0x13, 0xd0, 0xca, 0xe7, 0x13, 0xe9,
|
||||||
0x68, 0x66, 0x11, 0x40, 0xe1, 0xe5, 0x76, 0x5f, 0x90, 0x73, 0x68, 0x05, 0x6a, 0xfd, 0xc3, 0xd7,
|
0x40, 0x6b, 0x7c, 0x3e, 0x9e, 0x8d, 0x0f, 0x66, 0xa3, 0x23, 0xfb, 0x23, 0xf2, 0x02, 0x36, 0x27,
|
||||||
0x47, 0xfd, 0x6e, 0xcf, 0x19, 0xf6, 0x46, 0x23, 0x01, 0xe6, 0xb7, 0xfe, 0x29, 0xa8, 0x9b, 0xa6,
|
0xee, 0x68, 0x7c, 0x76, 0xf0, 0xcd, 0xc8, 0x73, 0x47, 0xdf, 0x8e, 0x0e, 0x4e, 0x47, 0x47, 0xb6,
|
||||||
0x2b, 0x1f, 0x91, 0xc8, 0x86, 0x62, 0xfc, 0x2c, 0x44, 0x6b, 0x8b, 0x7e, 0x58, 0x7a, 0x28, 0x36,
|
0x41, 0x08, 0x58, 0xc7, 0xb3, 0xd3, 0x43, 0x6f, 0x72, 0xf9, 0xf6, 0x74, 0x3c, 0x3d, 0x1e, 0x1d,
|
||||||
0xef, 0x2d, 0x59, 0xd0, 0xbc, 0x9f, 0xac, 0xb5, 0x1f, 0xff, 0xf8, 0xeb, 0xa7, 0x4c, 0xdd, 0xd2,
|
0xd9, 0x15, 0x65, 0x73, 0x7a, 0x79, 0x78, 0x38, 0x9a, 0x4e, 0xed, 0x2a, 0x01, 0xd8, 0xf8, 0xfa,
|
||||||
0x3b, 0xef, 0x9f, 0x76, 0x04, 0xa3, 0x43, 0x67, 0xfc, 0xb9, 0xb6, 0x81, 0x8e, 0xa0, 0xa0, 0x5e,
|
0x60, 0xac, 0xc8, 0x35, 0xb2, 0x05, 0xdd, 0xf1, 0xf9, 0xb7, 0x17, 0xe3, 0xc3, 0x91, 0x37, 0x1d,
|
||||||
0x27, 0x68, 0x75, 0x49, 0x32, 0x79, 0xae, 0xdc, 0xa6, 0xb8, 0x2a, 0x15, 0x4d, 0xab, 0x92, 0x28,
|
0xcd, 0x66, 0x0a, 0xac, 0xef, 0xff, 0x67, 0x43, 0x4f, 0xe8, 0x43, 0x7c, 0x7c, 0x13, 0x17, 0x1a,
|
||||||
0x7a, 0x81, 0x10, 0xfc, 0x1a, 0x8a, 0xf1, 0x7d, 0x99, 0x0a, 0x72, 0xf9, 0x06, 0x6d, 0xde, 0xe4,
|
0xe9, 0x73, 0x9a, 0x6c, 0xaf, 0xef, 0x43, 0xe9, 0x81, 0xdd, 0x7f, 0x51, 0x92, 0xee, 0xec, 0x3e,
|
||||||
0x93, 0x5f, 0x69, 0xe8, 0x2d, 0x94, 0x13, 0x8b, 0x45, 0xeb, 0x8b, 0x70, 0xae, 0x58, 0x71, 0xb3,
|
0x39, 0xdb, 0x7f, 0xf8, 0xc7, 0xbf, 0xfe, 0x54, 0xd9, 0x74, 0xcc, 0xe1, 0xbb, 0x2f, 0x86, 0x8a,
|
||||||
0x79, 0xd3, 0xd0, 0x72, 0x58, 0xc8, 0x48, 0xc2, 0x92, 0xf6, 0x8b, 0x8e, 0x55, 0x99, 0x85, 0xfd,
|
0x31, 0xe4, 0x2b, 0xf9, 0x95, 0xb1, 0x47, 0x2e, 0x60, 0x43, 0xbf, 0xea, 0xc8, 0xcb, 0x92, 0xc9,
|
||||||
0xa2, 0xc6, 0xd2, 0xf2, 0x29, 0x47, 0xbe, 0x31, 0x30, 0xab, 0x29, 0x25, 0xef, 0x22, 0xb4, 0x24,
|
0xfc, 0x99, 0xf7, 0x94, 0xc5, 0x97, 0x68, 0xd1, 0x76, 0xda, 0xb9, 0xc5, 0x20, 0x52, 0x06, 0x7f,
|
||||||
0xd9, 0xf9, 0xe0, 0xb9, 0x1f, 0xd1, 0x1b, 0xd0, 0xe3, 0x02, 0x48, 0xa7, 0x46, 0x8b, 0x64, 0xa5,
|
0x0a, 0x8d, 0xf4, 0x9d, 0x51, 0x70, 0xb2, 0xfc, 0xf2, 0xe8, 0x3f, 0x36, 0x5f, 0x7e, 0x62, 0x90,
|
||||||
0x9d, 0xbc, 0xb9, 0x7a, 0x15, 0x8e, 0xa3, 0xbd, 0x2e, 0x4d, 0x67, 0xbc, 0xc3, 0xa5, 0x94, 0x93,
|
0x5f, 0x41, 0x2b, 0x1f, 0x4d, 0x64, 0x67, 0xed, 0xce, 0xbd, 0x11, 0xd6, 0xef, 0x3f, 0xb6, 0x54,
|
||||||
0x48, 0x4b, 0x7f, 0x4b, 0x49, 0xa7, 0x4d, 0x39, 0x25, 0xbd, 0x64, 0x83, 0x56, 0x4b, 0x4a, 0x37,
|
0x76, 0x8b, 0x58, 0xb9, 0x5b, 0x38, 0xb6, 0xc8, 0xa5, 0x2e, 0xb3, 0x1a, 0x5b, 0xa4, 0x57, 0x3a,
|
||||||
0x51, 0x63, 0x49, 0xfa, 0x9d, 0xe0, 0x74, 0x3e, 0x60, 0x9f, 0x7f, 0x44, 0x6f, 0xc1, 0x78, 0x45,
|
0xbe, 0x30, 0xc9, 0x1e, 0x75, 0xcc, 0xe9, 0xa3, 0xc9, 0x8f, 0x09, 0x29, 0x99, 0x1c, 0x7e, 0x08,
|
||||||
0xb8, 0x2a, 0xf6, 0x67, 0x45, 0xbf, 0x2e, 0x97, 0x58, 0x41, 0xf5, 0x54, 0x0b, 0xc4, 0xc1, 0x7f,
|
0xfc, 0xdf, 0x92, 0x5f, 0x83, 0x99, 0x16, 0x00, 0x87, 0x0b, 0x59, 0x27, 0xab, 0x38, 0x01, 0xfb,
|
||||||
0x9f, 0xd2, 0xfe, 0xac, 0xf0, 0x1f, 0x48, 0xed, 0x75, 0xb4, 0x96, 0xd6, 0x4e, 0x47, 0xff, 0x06,
|
0xeb, 0x60, 0xee, 0x8f, 0xa1, 0x47, 0xac, 0xf3, 0x95, 0x1c, 0x4a, 0xb4, 0x76, 0x95, 0x5b, 0x47,
|
||||||
0xaa, 0x62, 0x85, 0xb9, 0xef, 0xb1, 0x54, 0xff, 0x2e, 0x99, 0x6b, 0x73, 0xed, 0x1a, 0xbe, 0x7c,
|
0x01, 0x2c, 0x58, 0x2f, 0x8e, 0x92, 0xb2, 0xf5, 0x92, 0x54, 0x3a, 0x03, 0xb4, 0xde, 0x27, 0xbd,
|
||||||
0x26, 0x50, 0x4d, 0x2e, 0xc1, 0x30, 0xef, 0x28, 0x43, 0x3d, 0x29, 0xc8, 0xbf, 0x61, 0xcf, 0xfe,
|
0x92, 0xf5, 0xef, 0x14, 0x67, 0xf8, 0x81, 0x86, 0x52, 0x45, 0x60, 0x7d, 0xc3, 0xa4, 0x2e, 0xf9,
|
||||||
0x0d, 0x00, 0x00, 0xff, 0xff, 0xba, 0x8f, 0xd4, 0xd8, 0xbd, 0x0d, 0x00, 0x00,
|
0xb3, 0x31, 0xac, 0xb3, 0x76, 0x6f, 0x98, 0x3b, 0x3b, 0x78, 0xc8, 0x16, 0xd9, 0x2c, 0x5c, 0x85,
|
||||||
|
0x3c, 0x82, 0xb5, 0xf5, 0x67, 0x63, 0x28, 0x5a, 0x2f, 0x87, 0xf0, 0x09, 0x5a, 0xdf, 0x21, 0xdb,
|
||||||
|
0x45, 0xeb, 0xc5, 0x08, 0x7e, 0x09, 0x1d, 0x75, 0x46, 0xa6, 0x80, 0xa2, 0x70, 0x93, 0x4b, 0x32,
|
||||||
|
0xdb, 0xdf, 0x7e, 0x80, 0x97, 0xbb, 0x83, 0x74, 0xf1, 0x08, 0x41, 0xe5, 0x50, 0x4b, 0xeb, 0xd5,
|
||||||
|
0x06, 0xfe, 0x91, 0xfd, 0xf2, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x5f, 0x3e, 0x0d, 0x16, 0xff,
|
||||||
|
0x0e, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
|
|
@ -1396,17 +1515,17 @@ type SwapClientClient interface {
|
||||||
SwapInfo(ctx context.Context, in *SwapInfoRequest, opts ...grpc.CallOption) (*SwapStatus, error)
|
SwapInfo(ctx context.Context, in *SwapInfoRequest, opts ...grpc.CallOption) (*SwapStatus, error)
|
||||||
//* loop: `terms`
|
//* loop: `terms`
|
||||||
//LoopOutTerms returns the terms that the server enforces for a loop out swap.
|
//LoopOutTerms returns the terms that the server enforces for a loop out swap.
|
||||||
LoopOutTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*TermsResponse, error)
|
LoopOutTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*OutTermsResponse, error)
|
||||||
//* loop: `quote`
|
//* loop: `quote`
|
||||||
//LoopOutQuote returns a quote for a loop out swap with the provided
|
//LoopOutQuote returns a quote for a loop out swap with the provided
|
||||||
//parameters.
|
//parameters.
|
||||||
LoopOutQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*QuoteResponse, error)
|
LoopOutQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*OutQuoteResponse, error)
|
||||||
//* loop: `terms`
|
//* loop: `terms`
|
||||||
//GetTerms returns the terms that the server enforces for swaps.
|
//GetTerms returns the terms that the server enforces for swaps.
|
||||||
GetLoopInTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*TermsResponse, error)
|
GetLoopInTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*InTermsResponse, error)
|
||||||
//* loop: `quote`
|
//* loop: `quote`
|
||||||
//GetQuote returns a quote for a swap with the provided parameters.
|
//GetQuote returns a quote for a swap with the provided parameters.
|
||||||
GetLoopInQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*QuoteResponse, error)
|
GetLoopInQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*InQuoteResponse, error)
|
||||||
//* loop: `listauth`
|
//* loop: `listauth`
|
||||||
//GetLsatTokens returns all LSAT tokens the daemon ever paid for.
|
//GetLsatTokens returns all LSAT tokens the daemon ever paid for.
|
||||||
GetLsatTokens(ctx context.Context, in *TokensRequest, opts ...grpc.CallOption) (*TokensResponse, error)
|
GetLsatTokens(ctx context.Context, in *TokensRequest, opts ...grpc.CallOption) (*TokensResponse, error)
|
||||||
|
|
@ -1488,8 +1607,8 @@ func (c *swapClientClient) SwapInfo(ctx context.Context, in *SwapInfoRequest, op
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *swapClientClient) LoopOutTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*TermsResponse, error) {
|
func (c *swapClientClient) LoopOutTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*OutTermsResponse, error) {
|
||||||
out := new(TermsResponse)
|
out := new(OutTermsResponse)
|
||||||
err := c.cc.Invoke(ctx, "/looprpc.SwapClient/LoopOutTerms", in, out, opts...)
|
err := c.cc.Invoke(ctx, "/looprpc.SwapClient/LoopOutTerms", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -1497,8 +1616,8 @@ func (c *swapClientClient) LoopOutTerms(ctx context.Context, in *TermsRequest, o
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *swapClientClient) LoopOutQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*QuoteResponse, error) {
|
func (c *swapClientClient) LoopOutQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*OutQuoteResponse, error) {
|
||||||
out := new(QuoteResponse)
|
out := new(OutQuoteResponse)
|
||||||
err := c.cc.Invoke(ctx, "/looprpc.SwapClient/LoopOutQuote", in, out, opts...)
|
err := c.cc.Invoke(ctx, "/looprpc.SwapClient/LoopOutQuote", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -1506,8 +1625,8 @@ func (c *swapClientClient) LoopOutQuote(ctx context.Context, in *QuoteRequest, o
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *swapClientClient) GetLoopInTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*TermsResponse, error) {
|
func (c *swapClientClient) GetLoopInTerms(ctx context.Context, in *TermsRequest, opts ...grpc.CallOption) (*InTermsResponse, error) {
|
||||||
out := new(TermsResponse)
|
out := new(InTermsResponse)
|
||||||
err := c.cc.Invoke(ctx, "/looprpc.SwapClient/GetLoopInTerms", in, out, opts...)
|
err := c.cc.Invoke(ctx, "/looprpc.SwapClient/GetLoopInTerms", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -1515,8 +1634,8 @@ func (c *swapClientClient) GetLoopInTerms(ctx context.Context, in *TermsRequest,
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *swapClientClient) GetLoopInQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*QuoteResponse, error) {
|
func (c *swapClientClient) GetLoopInQuote(ctx context.Context, in *QuoteRequest, opts ...grpc.CallOption) (*InQuoteResponse, error) {
|
||||||
out := new(QuoteResponse)
|
out := new(InQuoteResponse)
|
||||||
err := c.cc.Invoke(ctx, "/looprpc.SwapClient/GetLoopInQuote", in, out, opts...)
|
err := c.cc.Invoke(ctx, "/looprpc.SwapClient/GetLoopInQuote", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -1559,17 +1678,17 @@ type SwapClientServer interface {
|
||||||
SwapInfo(context.Context, *SwapInfoRequest) (*SwapStatus, error)
|
SwapInfo(context.Context, *SwapInfoRequest) (*SwapStatus, error)
|
||||||
//* loop: `terms`
|
//* loop: `terms`
|
||||||
//LoopOutTerms returns the terms that the server enforces for a loop out swap.
|
//LoopOutTerms returns the terms that the server enforces for a loop out swap.
|
||||||
LoopOutTerms(context.Context, *TermsRequest) (*TermsResponse, error)
|
LoopOutTerms(context.Context, *TermsRequest) (*OutTermsResponse, error)
|
||||||
//* loop: `quote`
|
//* loop: `quote`
|
||||||
//LoopOutQuote returns a quote for a loop out swap with the provided
|
//LoopOutQuote returns a quote for a loop out swap with the provided
|
||||||
//parameters.
|
//parameters.
|
||||||
LoopOutQuote(context.Context, *QuoteRequest) (*QuoteResponse, error)
|
LoopOutQuote(context.Context, *QuoteRequest) (*OutQuoteResponse, error)
|
||||||
//* loop: `terms`
|
//* loop: `terms`
|
||||||
//GetTerms returns the terms that the server enforces for swaps.
|
//GetTerms returns the terms that the server enforces for swaps.
|
||||||
GetLoopInTerms(context.Context, *TermsRequest) (*TermsResponse, error)
|
GetLoopInTerms(context.Context, *TermsRequest) (*InTermsResponse, error)
|
||||||
//* loop: `quote`
|
//* loop: `quote`
|
||||||
//GetQuote returns a quote for a swap with the provided parameters.
|
//GetQuote returns a quote for a swap with the provided parameters.
|
||||||
GetLoopInQuote(context.Context, *QuoteRequest) (*QuoteResponse, error)
|
GetLoopInQuote(context.Context, *QuoteRequest) (*InQuoteResponse, error)
|
||||||
//* loop: `listauth`
|
//* loop: `listauth`
|
||||||
//GetLsatTokens returns all LSAT tokens the daemon ever paid for.
|
//GetLsatTokens returns all LSAT tokens the daemon ever paid for.
|
||||||
GetLsatTokens(context.Context, *TokensRequest) (*TokensResponse, error)
|
GetLsatTokens(context.Context, *TokensRequest) (*TokensResponse, error)
|
||||||
|
|
@ -1594,16 +1713,16 @@ func (*UnimplementedSwapClientServer) ListSwaps(ctx context.Context, req *ListSw
|
||||||
func (*UnimplementedSwapClientServer) SwapInfo(ctx context.Context, req *SwapInfoRequest) (*SwapStatus, error) {
|
func (*UnimplementedSwapClientServer) SwapInfo(ctx context.Context, req *SwapInfoRequest) (*SwapStatus, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method SwapInfo not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method SwapInfo not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedSwapClientServer) LoopOutTerms(ctx context.Context, req *TermsRequest) (*TermsResponse, error) {
|
func (*UnimplementedSwapClientServer) LoopOutTerms(ctx context.Context, req *TermsRequest) (*OutTermsResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method LoopOutTerms not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method LoopOutTerms not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedSwapClientServer) LoopOutQuote(ctx context.Context, req *QuoteRequest) (*QuoteResponse, error) {
|
func (*UnimplementedSwapClientServer) LoopOutQuote(ctx context.Context, req *QuoteRequest) (*OutQuoteResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method LoopOutQuote not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method LoopOutQuote not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedSwapClientServer) GetLoopInTerms(ctx context.Context, req *TermsRequest) (*TermsResponse, error) {
|
func (*UnimplementedSwapClientServer) GetLoopInTerms(ctx context.Context, req *TermsRequest) (*InTermsResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method GetLoopInTerms not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method GetLoopInTerms not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedSwapClientServer) GetLoopInQuote(ctx context.Context, req *QuoteRequest) (*QuoteResponse, error) {
|
func (*UnimplementedSwapClientServer) GetLoopInQuote(ctx context.Context, req *QuoteRequest) (*InQuoteResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method GetLoopInQuote not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method GetLoopInQuote not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedSwapClientServer) GetLsatTokens(ctx context.Context, req *TokensRequest) (*TokensResponse, error) {
|
func (*UnimplementedSwapClientServer) GetLsatTokens(ctx context.Context, req *TokensRequest) (*TokensResponse, error) {
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ service SwapClient {
|
||||||
/** loop: `terms`
|
/** loop: `terms`
|
||||||
LoopOutTerms returns the terms that the server enforces for a loop out swap.
|
LoopOutTerms returns the terms that the server enforces for a loop out swap.
|
||||||
*/
|
*/
|
||||||
rpc LoopOutTerms (TermsRequest) returns (TermsResponse) {
|
rpc LoopOutTerms (TermsRequest) returns (OutTermsResponse) {
|
||||||
option (google.api.http) = {
|
option (google.api.http) = {
|
||||||
get: "/v1/loop/out/terms"
|
get: "/v1/loop/out/terms"
|
||||||
};
|
};
|
||||||
|
|
@ -72,7 +72,7 @@ service SwapClient {
|
||||||
LoopOutQuote returns a quote for a loop out swap with the provided
|
LoopOutQuote returns a quote for a loop out swap with the provided
|
||||||
parameters.
|
parameters.
|
||||||
*/
|
*/
|
||||||
rpc LoopOutQuote (QuoteRequest) returns (QuoteResponse) {
|
rpc LoopOutQuote (QuoteRequest) returns (OutQuoteResponse) {
|
||||||
option (google.api.http) = {
|
option (google.api.http) = {
|
||||||
get: "/v1/loop/out/quote/{amt}"
|
get: "/v1/loop/out/quote/{amt}"
|
||||||
};
|
};
|
||||||
|
|
@ -81,7 +81,7 @@ service SwapClient {
|
||||||
/** loop: `terms`
|
/** loop: `terms`
|
||||||
GetTerms returns the terms that the server enforces for swaps.
|
GetTerms returns the terms that the server enforces for swaps.
|
||||||
*/
|
*/
|
||||||
rpc GetLoopInTerms (TermsRequest) returns (TermsResponse) {
|
rpc GetLoopInTerms (TermsRequest) returns (InTermsResponse) {
|
||||||
option (google.api.http) = {
|
option (google.api.http) = {
|
||||||
get: "/v1/loop/in/terms"
|
get: "/v1/loop/in/terms"
|
||||||
};
|
};
|
||||||
|
|
@ -90,7 +90,7 @@ service SwapClient {
|
||||||
/** loop: `quote`
|
/** loop: `quote`
|
||||||
GetQuote returns a quote for a swap with the provided parameters.
|
GetQuote returns a quote for a swap with the provided parameters.
|
||||||
*/
|
*/
|
||||||
rpc GetLoopInQuote (QuoteRequest) returns (QuoteResponse) {
|
rpc GetLoopInQuote (QuoteRequest) returns (InQuoteResponse) {
|
||||||
option (google.api.http) = {
|
option (google.api.http) = {
|
||||||
get: "/v1/loop/in/quote/{amt}"
|
get: "/v1/loop/in/quote/{amt}"
|
||||||
};
|
};
|
||||||
|
|
@ -419,7 +419,22 @@ message SwapInfoRequest {
|
||||||
message TermsRequest {
|
message TermsRequest {
|
||||||
}
|
}
|
||||||
|
|
||||||
message TermsResponse {
|
message InTermsResponse {
|
||||||
|
|
||||||
|
reserved 1, 2, 3, 4, 7;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Minimum swap amount (sat)
|
||||||
|
*/
|
||||||
|
int64 min_swap_amount = 5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Maximum swap amount (sat)
|
||||||
|
*/
|
||||||
|
int64 max_swap_amount = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message OutTermsResponse {
|
||||||
|
|
||||||
reserved 1, 2, 3, 4, 7;
|
reserved 1, 2, 3, 4, 7;
|
||||||
|
|
||||||
|
|
@ -464,27 +479,46 @@ message QuoteRequest {
|
||||||
uint64 swap_publication_deadline = 4;
|
uint64 swap_publication_deadline = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message QuoteResponse {
|
message InQuoteResponse {
|
||||||
|
reserved 2, 4;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The fee that the swap server is charging for the swap.
|
The fee that the swap server is charging for the swap.
|
||||||
*/
|
*/
|
||||||
int64 swap_fee = 1;
|
int64 swap_fee_sat = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
An estimate of the on-chain fee that needs to be paid to publish the HTLC
|
||||||
|
If a miner fee of 0 is returned, it means the external_htlc flag was set for
|
||||||
|
a loop in and the fee estimation was skipped. If a miner fee of -1 is
|
||||||
|
returned, it means lnd's wallet tried to estimate the fee but was unable to
|
||||||
|
create a sample estimation transaction because not enough funds are
|
||||||
|
available. An information message should be shown to the user in this case.
|
||||||
|
*/
|
||||||
|
int64 htlc_publish_fee_sat = 3;
|
||||||
|
|
||||||
|
/**
|
||||||
|
On-chain cltv expiry delta
|
||||||
|
*/
|
||||||
|
int32 cltv_delta = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message OutQuoteResponse {
|
||||||
|
/**
|
||||||
|
The fee that the swap server is charging for the swap.
|
||||||
|
*/
|
||||||
|
int64 swap_fee_sat = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The part of the swap fee that is requested as a prepayment.
|
The part of the swap fee that is requested as a prepayment.
|
||||||
*/
|
*/
|
||||||
int64 prepay_amt = 2;
|
int64 prepay_amt_sat = 2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
An estimate of the on-chain fee that needs to be paid to sweep the HTLC for
|
An estimate of the on-chain fee that needs to be paid to sweep the HTLC for
|
||||||
a loop out or to pay to the HTLC for loop in. If a miner fee of 0 is
|
a loop out.
|
||||||
returned, it means the external_htlc flag was set for a loop in and the fee
|
|
||||||
estimation was skipped. If a miner fee of -1 is returned, it means lnd's
|
|
||||||
wallet tried to estimate the fee but was unable to create a sample
|
|
||||||
estimation transaction because not enough funds are available. An
|
|
||||||
information message should be shown to the user in this case.
|
|
||||||
*/
|
*/
|
||||||
int64 miner_fee = 3;
|
int64 htlc_sweep_fee_sat = 3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The node pubkey where the swap payment needs to be paid
|
The node pubkey where the swap payment needs to be paid
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
"200": {
|
"200": {
|
||||||
"description": "A successful response.",
|
"description": "A successful response.",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/definitions/looprpcQuoteResponse"
|
"$ref": "#/definitions/looprpcInQuoteResponse"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
|
@ -109,7 +109,7 @@
|
||||||
"200": {
|
"200": {
|
||||||
"description": "A successful response.",
|
"description": "A successful response.",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/definitions/looprpcTermsResponse"
|
"$ref": "#/definitions/looprpcInTermsResponse"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
|
@ -165,7 +165,7 @@
|
||||||
"200": {
|
"200": {
|
||||||
"description": "A successful response.",
|
"description": "A successful response.",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/definitions/looprpcQuoteResponse"
|
"$ref": "#/definitions/looprpcOutQuoteResponse"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
|
@ -222,7 +222,7 @@
|
||||||
"200": {
|
"200": {
|
||||||
"description": "A successful response.",
|
"description": "A successful response.",
|
||||||
"schema": {
|
"schema": {
|
||||||
"$ref": "#/definitions/looprpcTermsResponse"
|
"$ref": "#/definitions/looprpcOutTermsResponse"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
|
@ -318,6 +318,41 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
"looprpcInQuoteResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"swap_fee_sat": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "int64",
|
||||||
|
"description": "*\nThe fee that the swap server is charging for the swap."
|
||||||
|
},
|
||||||
|
"htlc_publish_fee_sat": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "int64",
|
||||||
|
"description": "An estimate of the on-chain fee that needs to be paid to publish the HTLC\nIf a miner fee of 0 is returned, it means the external_htlc flag was set for\na loop in and the fee estimation was skipped. If a miner fee of -1 is\nreturned, it means lnd's wallet tried to estimate the fee but was unable to\ncreate a sample estimation transaction because not enough funds are\navailable. An information message should be shown to the user in this case."
|
||||||
|
},
|
||||||
|
"cltv_delta": {
|
||||||
|
"type": "integer",
|
||||||
|
"format": "int32",
|
||||||
|
"title": "*\nOn-chain cltv expiry delta"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"looprpcInTermsResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"min_swap_amount": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "int64",
|
||||||
|
"title": "*\nMinimum swap amount (sat)"
|
||||||
|
},
|
||||||
|
"max_swap_amount": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "int64",
|
||||||
|
"title": "*\nMaximum swap amount (sat)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"looprpcListSwapsResponse": {
|
"looprpcListSwapsResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
@ -471,23 +506,23 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"looprpcQuoteResponse": {
|
"looprpcOutQuoteResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"swap_fee": {
|
"swap_fee_sat": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "int64",
|
"format": "int64",
|
||||||
"description": "*\nThe fee that the swap server is charging for the swap."
|
"description": "*\nThe fee that the swap server is charging for the swap."
|
||||||
},
|
},
|
||||||
"prepay_amt": {
|
"prepay_amt_sat": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "int64",
|
"format": "int64",
|
||||||
"description": "*\nThe part of the swap fee that is requested as a prepayment."
|
"description": "*\nThe part of the swap fee that is requested as a prepayment."
|
||||||
},
|
},
|
||||||
"miner_fee": {
|
"htlc_sweep_fee_sat": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "int64",
|
"format": "int64",
|
||||||
"description": "*\nAn estimate of the on-chain fee that needs to be paid to sweep the HTLC for\na loop out or to pay to the HTLC for loop in. If a miner fee of 0 is\nreturned, it means the external_htlc flag was set for a loop in and the fee\nestimation was skipped. If a miner fee of -1 is returned, it means lnd's\nwallet tried to estimate the fee but was unable to create a sample\nestimation transaction because not enough funds are available. An\ninformation message should be shown to the user in this case."
|
"description": "*\nAn estimate of the on-chain fee that needs to be paid to sweep the HTLC for\na loop out."
|
||||||
},
|
},
|
||||||
"swap_payment_dest": {
|
"swap_payment_dest": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
|
|
@ -501,6 +536,21 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"looprpcOutTermsResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"min_swap_amount": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "int64",
|
||||||
|
"title": "*\nMinimum swap amount (sat)"
|
||||||
|
},
|
||||||
|
"max_swap_amount": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "int64",
|
||||||
|
"title": "*\nMaximum swap amount (sat)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"looprpcSwapResponse": {
|
"looprpcSwapResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
@ -617,21 +667,6 @@
|
||||||
"default": "LOOP_OUT",
|
"default": "LOOP_OUT",
|
||||||
"title": "- LOOP_OUT: LOOP_OUT indicates an loop out swap (off-chain to on-chain)\n - LOOP_IN: LOOP_IN indicates a loop in swap (on-chain to off-chain)"
|
"title": "- LOOP_OUT: LOOP_OUT indicates an loop out swap (off-chain to on-chain)\n - LOOP_IN: LOOP_IN indicates a loop in swap (on-chain to off-chain)"
|
||||||
},
|
},
|
||||||
"looprpcTermsResponse": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"min_swap_amount": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "int64",
|
|
||||||
"title": "*\nMinimum swap amount (sat)"
|
|
||||||
},
|
|
||||||
"max_swap_amount": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "int64",
|
|
||||||
"title": "*\nMaximum swap amount (sat)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"looprpcTokensResponse": {
|
"looprpcTokensResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue