multi: allow loop in last hop restriction

pull/152/head
Joost Jager 4 years ago
parent 535e964ec9
commit b69e8cb275
No known key found for this signature in database
GPG Key ID: A61B9D4C393C59C7

@ -7,27 +7,36 @@ import (
"github.com/btcsuite/btcutil"
"github.com/lightninglabs/loop/looprpc"
"github.com/lightninglabs/loop/swap"
"github.com/lightningnetwork/lnd/routing/route"
"github.com/urfave/cli"
)
var loopInCommand = cli.Command{
Name: "in",
Usage: "perform an on-chain to off-chain swap (loop in)",
ArgsUsage: "amt",
Description: `
var (
lastHopFlag = cli.StringFlag{
Name: "last_hop",
Usage: "the pubkey of the last hop to use for this swap",
}
loopInCommand = cli.Command{
Name: "in",
Usage: "perform an on-chain to off-chain swap (loop in)",
ArgsUsage: "amt",
Description: `
Send the amount in satoshis specified by the amt argument off-chain.`,
Flags: []cli.Flag{
cli.Uint64Flag{
Name: "amt",
Usage: "the amount in satoshis to loop in",
},
cli.BoolFlag{
Name: "external",
Usage: "expect htlc to be published externally",
Flags: []cli.Flag{
cli.Uint64Flag{
Name: "amt",
Usage: "the amount in satoshis to loop in",
},
cli.BoolFlag{
Name: "external",
Usage: "expect htlc to be published externally",
},
lastHopFlag,
},
},
Action: loopIn,
}
Action: loopIn,
}
)
func loopIn(ctx *cli.Context) error {
args := ctx.Args()
@ -73,12 +82,25 @@ func loopIn(ctx *cli.Context) error {
return err
}
resp, err := client.LoopIn(context.Background(), &looprpc.LoopInRequest{
req := &looprpc.LoopInRequest{
Amt: int64(amt),
MaxMinerFee: int64(limits.maxMinerFee),
MaxSwapFee: int64(limits.maxSwapFee),
ExternalHtlc: external,
})
}
if ctx.IsSet(lastHopFlag.Name) {
lastHop, err := route.NewVertexFromStr(
ctx.String(lastHopFlag.Name),
)
if err != nil {
return err
}
req.LastHop = lastHop[:]
}
resp, err := client.LoopIn(context.Background(), req)
if err != nil {
return err
}

@ -114,7 +114,7 @@ func newLoopInSwap(globalCtx context.Context, cfg *swapConfig,
// htlc.
log.Infof("Initiating swap request at height %v", currentHeight)
swapResp, err := cfg.server.NewLoopInSwap(globalCtx, swapHash,
request.Amount, senderKey, swapInvoice,
request.Amount, senderKey, swapInvoice, request.LastHop,
)
if err != nil {
return nil, fmt.Errorf("cannot initiate swap: %v", err)

@ -374,6 +374,7 @@ type ServerLoopInRequest struct {
SwapHash []byte `protobuf:"bytes,2,opt,name=swap_hash,json=swapHash,proto3" json:"swap_hash,omitempty"`
Amt uint64 `protobuf:"varint,3,opt,name=amt,proto3" json:"amt,omitempty"`
SwapInvoice string `protobuf:"bytes,4,opt,name=swap_invoice,json=swapInvoice,proto3" json:"swap_invoice,omitempty"`
LastHop []byte `protobuf:"bytes,5,opt,name=last_hop,json=lastHop,proto3" json:"last_hop,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -432,6 +433,13 @@ func (m *ServerLoopInRequest) GetSwapInvoice() string {
return ""
}
func (m *ServerLoopInRequest) GetLastHop() []byte {
if m != nil {
return m.LastHop
}
return nil
}
type ServerLoopInResponse struct {
ReceiverKey []byte `protobuf:"bytes,1,opt,name=receiver_key,json=receiverKey,proto3" json:"receiver_key,omitempty"`
Expiry int32 `protobuf:"varint,2,opt,name=expiry,proto3" json:"expiry,omitempty"`
@ -689,50 +697,51 @@ func init() {
func init() { proto.RegisterFile("server.proto", fileDescriptor_ad098daeda4239f7) }
var fileDescriptor_ad098daeda4239f7 = []byte{
// 677 bytes of a gzipped FileDescriptorProto
// 693 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdd, 0x4e, 0xdb, 0x4c,
0x10, 0x95, 0x9d, 0x10, 0xbe, 0x0c, 0x09, 0x7c, 0x6c, 0xff, 0x4c, 0x20, 0x15, 0x58, 0x2a, 0x42,
0xa8, 0x02, 0xa9, 0xbd, 0xeb, 0x1d, 0x15, 0x42, 0x45, 0x45, 0xa5, 0x18, 0xee, 0xad, 0x25, 0x99,
0x82, 0xd5, 0x78, 0x77, 0x6b, 0x6f, 0x02, 0x79, 0x81, 0x3e, 0x43, 0x7b, 0xdf, 0x57, 0xea, 0x83,
0xf4, 0x0d, 0xaa, 0xfd, 0x31, 0xb1, 0x9d, 0x38, 0x80, 0xd4, 0x3b, 0xf6, 0xcc, 0x61, 0xf6, 0xcc,
0x99, 0xb3, 0x0e, 0xb4, 0x52, 0x4c, 0x46, 0x98, 0xec, 0x89, 0x84, 0x4b, 0x4e, 0x16, 0x07, 0x9c,
0x8b, 0x44, 0xf4, 0x3a, 0x1b, 0x57, 0x9c, 0x5f, 0x0d, 0x70, 0x9f, 0x8a, 0x68, 0x9f, 0x32, 0xc6,
0x25, 0x95, 0x11, 0x67, 0xa9, 0xa1, 0xf9, 0xbf, 0x1c, 0x78, 0x7a, 0xae, 0xff, 0xef, 0x84, 0x73,
0x71, 0x3a, 0x94, 0x01, 0x7e, 0x1b, 0x62, 0x2a, 0xc9, 0x16, 0xb4, 0x12, 0xec, 0x61, 0x34, 0xc2,
0x24, 0xfc, 0x8a, 0x63, 0xcf, 0xd9, 0x74, 0x76, 0x5a, 0xc1, 0x52, 0x86, 0x7d, 0xc4, 0x31, 0x59,
0x87, 0x66, 0x7a, 0x43, 0x45, 0x78, 0x4d, 0xd3, 0x6b, 0xcf, 0xd5, 0xf5, 0xff, 0x14, 0xf0, 0x81,
0xa6, 0xd7, 0xe4, 0x7f, 0xa8, 0xd1, 0x58, 0x7a, 0xb5, 0x4d, 0x67, 0xa7, 0x1e, 0xa8, 0x3f, 0xc9,
0x3b, 0x58, 0xd3, 0x74, 0x31, 0xbc, 0x1c, 0x44, 0x3d, 0xad, 0x22, 0xec, 0x23, 0xed, 0x0f, 0x22,
0x86, 0x5e, 0x7d, 0xd3, 0xd9, 0xa9, 0x05, 0x2f, 0x14, 0xe1, 0xf3, 0xa4, 0x7e, 0x68, 0xcb, 0xfe,
0x0f, 0x07, 0x9e, 0x95, 0x64, 0xa6, 0x82, 0xb3, 0x14, 0x95, 0x4e, 0xdd, 0x35, 0x62, 0x23, 0x1e,
0xf5, 0x50, 0xeb, 0x6c, 0x06, 0x4b, 0x0a, 0x3b, 0x36, 0x10, 0x79, 0x05, 0xcb, 0x22, 0x41, 0x41,
0xc7, 0x77, 0x24, 0x57, 0x93, 0xda, 0x06, 0xcd, 0x68, 0x5d, 0x80, 0x14, 0x59, 0xdf, 0xce, 0x5b,
0xd3, 0xf3, 0x34, 0x0d, 0xa2, 0xa6, 0x7d, 0x0e, 0x0d, 0xbc, 0x15, 0x51, 0x32, 0xd6, 0x5a, 0x17,
0x02, 0x7b, 0xf2, 0x23, 0x58, 0x2b, 0x28, 0x3b, 0x1b, 0x72, 0x89, 0x99, 0x8b, 0xd6, 0x05, 0xe7,
0x81, 0x2e, 0xb8, 0xf3, 0x5d, 0xf8, 0xe9, 0x02, 0x99, 0xbe, 0x8b, 0xec, 0xc2, 0xaa, 0x69, 0x49,
0xc7, 0x31, 0x32, 0x19, 0xf6, 0x31, 0x95, 0xd6, 0x87, 0x15, 0xdd, 0xca, 0xe0, 0x87, 0x4a, 0xd0,
0x1a, 0xe8, 0x15, 0x85, 0x5f, 0x30, 0xbb, 0x6d, 0x51, 0x9d, 0x8f, 0x10, 0xc9, 0x36, 0xb4, 0xb3,
0x52, 0x98, 0x50, 0x89, 0xda, 0x82, 0xda, 0x7b, 0xd7, 0x73, 0x8c, 0x9d, 0x47, 0x88, 0x01, 0x95,
0xda, 0x27, 0x6b, 0xa7, 0x1a, 0xad, 0xae, 0x47, 0x6b, 0x1a, 0xe4, 0x20, 0x96, 0x64, 0x17, 0x56,
0xe2, 0x88, 0x85, 0xba, 0x15, 0x8d, 0xf9, 0x90, 0x49, 0x6f, 0x41, 0x71, 0x74, 0xa3, 0x76, 0x1c,
0xb1, 0xf3, 0x1b, 0x2a, 0x0e, 0x74, 0x41, 0x73, 0xe9, 0x6d, 0x81, 0xdb, 0xc8, 0x71, 0xe9, 0x6d,
0x8e, 0xdb, 0x05, 0xe8, 0x0d, 0xe4, 0x28, 0xec, 0xe3, 0x40, 0x52, 0x6f, 0x51, 0xef, 0xa0, 0xa9,
0x90, 0x43, 0x05, 0xf8, 0xeb, 0xa5, 0x35, 0x5c, 0x60, 0x12, 0xa7, 0x76, 0x0d, 0x7e, 0xbf, 0xe4,
0x9b, 0x2e, 0x92, 0xed, 0x69, 0xa5, 0x66, 0x51, 0x25, 0x95, 0xdb, 0xd3, 0x2a, 0x5d, 0xcb, 0xcb,
0x2b, 0xf4, 0xbf, 0x3b, 0xf0, 0x64, 0x72, 0xcd, 0x31, 0xcb, 0x42, 0x50, 0x0c, 0x96, 0x53, 0x0e,
0xd6, 0x23, 0x9f, 0x51, 0x39, 0xf0, 0xf5, 0xa9, 0xc0, 0xfb, 0x67, 0xf9, 0x37, 0xad, 0x74, 0x4c,
0xde, 0xca, 0x7d, 0x6f, 0x7a, 0x92, 0x72, 0xb7, 0x90, 0xf2, 0xd7, 0xe0, 0xe5, 0x5b, 0xce, 0x0f,
0xb9, 0xff, 0xdb, 0xc9, 0x6f, 0xe3, 0x8e, 0x6e, 0x65, 0xe4, 0x33, 0xe8, 0xdc, 0x93, 0x41, 0x77,
0x76, 0x06, 0x67, 0x84, 0xac, 0xfe, 0x88, 0x90, 0x2d, 0x3c, 0x2c, 0x64, 0x8d, 0x72, 0xc8, 0x3a,
0x45, 0x17, 0x0a, 0x19, 0xeb, 0xc1, 0xea, 0x54, 0xed, 0x5f, 0x47, 0xec, 0xcd, 0x9f, 0x1a, 0x80,
0x3a, 0x9a, 0x9b, 0xc8, 0x29, 0xb4, 0x0a, 0x89, 0xf6, 0xf7, 0xec, 0x57, 0x7f, 0xaf, 0xf2, 0x2d,
0x74, 0xd6, 0xe7, 0x70, 0xc8, 0x29, 0x2c, 0x7f, 0xc2, 0x1b, 0x0b, 0xa9, 0x8b, 0x48, 0x77, 0x36,
0x3d, 0xeb, 0xf6, 0xb2, 0xaa, 0x6c, 0x77, 0x3d, 0x51, 0x68, 0xbe, 0x55, 0x15, 0x0a, 0xf3, 0x79,
0xaa, 0x52, 0x68, 0x1a, 0x9c, 0xc0, 0x52, 0xde, 0xe0, 0xad, 0x19, 0xdc, 0xe2, 0x62, 0x3a, 0x9d,
0x6a, 0x0a, 0x39, 0x81, 0xb6, 0x9d, 0xf7, 0x58, 0xaf, 0x83, 0x6c, 0xcc, 0x24, 0x67, 0xad, 0xba,
0x15, 0x55, 0x3b, 0xec, 0x45, 0xa6, 0xcd, 0x48, 0x9d, 0xad, 0xad, 0x30, 0xaa, 0x3f, 0x8f, 0x62,
0xba, 0x5e, 0x36, 0xf4, 0x2f, 0xf5, 0xdb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x49, 0xdb,
0x27, 0xe0, 0x07, 0x00, 0x00,
0x10, 0x95, 0x9d, 0x90, 0x90, 0x21, 0x81, 0x8f, 0xfd, 0xfa, 0xe3, 0x04, 0x52, 0x81, 0xa5, 0x22,
0x84, 0x2a, 0x90, 0xda, 0xbb, 0xde, 0x51, 0x21, 0x04, 0x2a, 0x2a, 0xc5, 0x70, 0x6f, 0x2d, 0xc9,
0x94, 0x58, 0xb5, 0xbd, 0x5b, 0x7b, 0x13, 0xc8, 0x9b, 0xb4, 0x97, 0x95, 0xfa, 0x4a, 0x7d, 0x90,
0xbe, 0x41, 0xb5, 0x3f, 0x26, 0xb6, 0xf3, 0x03, 0x48, 0xbd, 0x63, 0x67, 0x0e, 0x33, 0x67, 0xce,
0x9c, 0x89, 0xa1, 0x99, 0x62, 0x32, 0xc2, 0x64, 0x9f, 0x27, 0x4c, 0x30, 0x52, 0x0f, 0x19, 0xe3,
0x09, 0xef, 0x75, 0x36, 0x6f, 0x18, 0xbb, 0x09, 0xf1, 0x80, 0xf2, 0xe0, 0x80, 0xc6, 0x31, 0x13,
0x54, 0x04, 0x2c, 0x4e, 0x35, 0xcc, 0xfd, 0x65, 0xc1, 0xb3, 0x4b, 0xf5, 0x7f, 0x67, 0x8c, 0xf1,
0xf3, 0xa1, 0xf0, 0xf0, 0xdb, 0x10, 0x53, 0x41, 0xb6, 0xa1, 0x99, 0x60, 0x0f, 0x83, 0x11, 0x26,
0xfe, 0x57, 0x1c, 0x3b, 0xd6, 0x96, 0xb5, 0xdb, 0xf4, 0x56, 0xb2, 0xd8, 0x47, 0x1c, 0x93, 0x0d,
0x68, 0xa4, 0xb7, 0x94, 0xfb, 0x03, 0x9a, 0x0e, 0x1c, 0x5b, 0xe5, 0x97, 0x65, 0xe0, 0x84, 0xa6,
0x03, 0xf2, 0x1f, 0x54, 0x68, 0x24, 0x9c, 0xca, 0x96, 0xb5, 0x5b, 0xf5, 0xe4, 0x9f, 0xe4, 0x3d,
0xb4, 0x15, 0x9c, 0x0f, 0xaf, 0xc3, 0xa0, 0xa7, 0x58, 0xf8, 0x7d, 0xa4, 0xfd, 0x30, 0x88, 0xd1,
0xa9, 0x6e, 0x59, 0xbb, 0x15, 0xef, 0xa5, 0x04, 0x7c, 0x9e, 0xe4, 0x8f, 0x4c, 0xda, 0xfd, 0x6e,
0xc1, 0xf3, 0x12, 0xcd, 0x94, 0xb3, 0x38, 0x45, 0xc9, 0x53, 0x55, 0x0d, 0xe2, 0x11, 0x0b, 0x7a,
0xa8, 0x78, 0x36, 0xbc, 0x15, 0x19, 0x3b, 0xd5, 0x21, 0xf2, 0x1a, 0x56, 0x79, 0x82, 0x9c, 0x8e,
0xef, 0x41, 0xb6, 0x02, 0xb5, 0x74, 0x34, 0x83, 0x75, 0x01, 0x52, 0x8c, 0xfb, 0x66, 0xde, 0x8a,
0x9a, 0xa7, 0xa1, 0x23, 0x72, 0xda, 0x17, 0x50, 0xc3, 0x3b, 0x1e, 0x24, 0x63, 0xc5, 0x75, 0xc9,
0x33, 0x2f, 0x37, 0x80, 0x76, 0x81, 0xd9, 0xc5, 0x90, 0x09, 0xcc, 0x54, 0x34, 0x2a, 0x58, 0x8f,
0x54, 0xc1, 0x5e, 0xac, 0xc2, 0x0f, 0x1b, 0xc8, 0x74, 0x2f, 0xb2, 0x07, 0xeb, 0xba, 0x24, 0x1d,
0x47, 0x18, 0x0b, 0xbf, 0x8f, 0xa9, 0x30, 0x3a, 0xac, 0xa9, 0x52, 0x3a, 0x7e, 0x24, 0x09, 0xb5,
0x41, 0xad, 0xc8, 0xff, 0x82, 0x59, 0xb7, 0xba, 0x7c, 0x1f, 0x23, 0x92, 0x1d, 0x68, 0x65, 0x29,
0x3f, 0xa1, 0x02, 0x95, 0x04, 0x95, 0x0f, 0xb6, 0x63, 0x69, 0x39, 0x8f, 0x11, 0x3d, 0x2a, 0x94,
0x4e, 0x46, 0x4e, 0x39, 0x5a, 0x55, 0x8d, 0xd6, 0xd0, 0x91, 0xc3, 0x48, 0x90, 0x3d, 0x58, 0x8b,
0x82, 0xd8, 0x57, 0xa5, 0x68, 0xc4, 0x86, 0xb1, 0x70, 0x96, 0x24, 0x46, 0x15, 0x6a, 0x45, 0x41,
0x7c, 0x79, 0x4b, 0xf9, 0xa1, 0x4a, 0x28, 0x2c, 0xbd, 0x2b, 0x60, 0x6b, 0x39, 0x2c, 0xbd, 0xcb,
0x61, 0xbb, 0x00, 0xbd, 0x50, 0x8c, 0xfc, 0x3e, 0x86, 0x82, 0x3a, 0x75, 0xb5, 0x83, 0x86, 0x8c,
0x1c, 0xc9, 0x80, 0xbb, 0x51, 0x5a, 0xc3, 0x15, 0x26, 0x51, 0x6a, 0xd6, 0xe0, 0xf6, 0x4b, 0xba,
0xa9, 0x24, 0xd9, 0x99, 0x66, 0xaa, 0x17, 0x55, 0x62, 0xb9, 0x33, 0xcd, 0xd2, 0x36, 0xb8, 0x3c,
0x43, 0xf7, 0xa7, 0x05, 0xff, 0x4f, 0xda, 0x9c, 0xc6, 0x99, 0x09, 0x8a, 0xc6, 0xb2, 0xca, 0xc6,
0x7a, 0xe2, 0x19, 0x95, 0x0d, 0x5f, 0x9d, 0x36, 0x7c, 0x1b, 0x96, 0x43, 0x9a, 0x0a, 0x7f, 0xc0,
0xb8, 0xd2, 0xbe, 0xe9, 0xd5, 0xe5, 0xfb, 0x84, 0x71, 0xf7, 0x22, 0x7f, 0xee, 0x92, 0xe2, 0xe4,
0x8c, 0x1e, 0x3a, 0xf7, 0xc9, 0x01, 0xd8, 0x85, 0x03, 0x78, 0x03, 0x4e, 0xbe, 0xe4, 0x62, 0xff,
0xbb, 0xbf, 0xad, 0xfc, 0xa2, 0xee, 0xe1, 0x86, 0x46, 0xde, 0x9e, 0xd6, 0x03, 0xf6, 0xb4, 0x67,
0xdb, 0x73, 0x86, 0xff, 0xaa, 0x4f, 0xf0, 0xdf, 0xd2, 0xe3, 0xfc, 0x57, 0x2b, 0xfb, 0xaf, 0x53,
0x54, 0xa1, 0x60, 0xbf, 0x1e, 0xac, 0x4f, 0xe5, 0xfe, 0xb5, 0xfb, 0xde, 0xfe, 0xa9, 0x00, 0xc8,
0xa7, 0xee, 0x44, 0xce, 0xa1, 0x59, 0x30, 0xbb, 0xbb, 0x6f, 0x3e, 0x08, 0xfb, 0x73, 0xcf, 0xa4,
0xb3, 0xb1, 0x00, 0x43, 0xce, 0x61, 0xf5, 0x13, 0xde, 0x9a, 0x90, 0x6c, 0x44, 0xba, 0xb3, 0xe1,
0x59, 0xb5, 0x57, 0xf3, 0xd2, 0x66, 0xd7, 0x13, 0x86, 0xfa, 0x67, 0x6c, 0x0e, 0xc3, 0xbc, 0x9f,
0xe6, 0x31, 0xd4, 0x05, 0xce, 0x60, 0x25, 0x2f, 0xf0, 0xf6, 0x0c, 0x6c, 0x71, 0x31, 0x9d, 0xce,
0x7c, 0x08, 0x39, 0x83, 0x96, 0x99, 0xf7, 0x54, 0xad, 0x83, 0x6c, 0xce, 0x04, 0x67, 0xa5, 0xba,
0x73, 0xb2, 0x66, 0xd8, 0xab, 0x8c, 0x9b, 0xa6, 0x3a, 0x9b, 0x5b, 0x61, 0x54, 0x77, 0x11, 0x44,
0x57, 0xbd, 0xae, 0xa9, 0x8f, 0xf8, 0xbb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6c, 0x99, 0x4f,
0x5f, 0xfb, 0x07, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.

@ -78,6 +78,7 @@ message ServerLoopInRequest {
bytes swap_hash = 2;
uint64 amt = 3;
string swap_invoice = 4;
bytes last_hop = 5;
}
message ServerLoopInResponse {

@ -11,6 +11,7 @@ import (
"github.com/lightninglabs/loop/test"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/lnwire"
"github.com/lightningnetwork/lnd/routing/route"
"github.com/lightningnetwork/lnd/zpay32"
)
@ -127,7 +128,7 @@ func getInvoice(hash lntypes.Hash, amt btcutil.Amount, memo string) (string, err
func (s *serverMock) NewLoopInSwap(ctx context.Context,
swapHash lntypes.Hash, amount btcutil.Amount,
senderKey [33]byte, swapInvoice string) (
senderKey [33]byte, swapInvoice string, lastHop *route.Vertex) (
*newLoopInResponse, error) {
_, receiverKey := test.CreateKey(101)

@ -14,6 +14,7 @@ import (
"github.com/lightninglabs/loop/looprpc"
"github.com/lightninglabs/loop/lsat"
"github.com/lightningnetwork/lnd/lntypes"
"github.com/lightningnetwork/lnd/routing/route"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
@ -40,7 +41,7 @@ type swapServerClient interface {
NewLoopInSwap(ctx context.Context,
swapHash lntypes.Hash, amount btcutil.Amount,
senderKey [33]byte, swapInvoice string) (
senderKey [33]byte, swapInvoice string, lastHop *route.Vertex) (
*newLoopInResponse, error)
}
@ -203,18 +204,22 @@ func (s *grpcSwapServerClient) NewLoopOutSwap(ctx context.Context,
func (s *grpcSwapServerClient) NewLoopInSwap(ctx context.Context,
swapHash lntypes.Hash, amount btcutil.Amount, senderKey [33]byte,
swapInvoice string) (*newLoopInResponse, error) {
swapInvoice string, lastHop *route.Vertex) (*newLoopInResponse, error) {
rpcCtx, rpcCancel := context.WithTimeout(ctx, globalCallTimeout)
defer rpcCancel()
swapResp, err := s.server.NewLoopInSwap(rpcCtx,
&looprpc.ServerLoopInRequest{
SwapHash: swapHash[:],
Amt: uint64(amount),
SenderKey: senderKey[:],
SwapInvoice: swapInvoice,
},
)
req := &looprpc.ServerLoopInRequest{
SwapHash: swapHash[:],
Amt: uint64(amount),
SenderKey: senderKey[:],
SwapInvoice: swapInvoice,
}
if lastHop != nil {
req.LastHop = lastHop[:]
}
swapResp, err := s.server.NewLoopInSwap(rpcCtx, req)
if err != nil {
return nil, err
}

Loading…
Cancel
Save