Browse Source

multi: allow loop in last hop restriction

pull/152/head
Joost Jager 1 year ago
parent
commit
b69e8cb275
No known key found for this signature in database GPG Key ID: A61B9D4C393C59C7
6 changed files with 111 additions and 73 deletions
  1. +40
    -18
      cmd/loop/loopin.go
  2. +1
    -1
      loopin.go
  3. +52
    -43
      looprpc/server.pb.go
  4. +1
    -0
      looprpc/server.proto
  5. +2
    -1
      server_mock_test.go
  6. +15
    -10
      swap_server_client.go

+ 40
- 18
cmd/loop/loopin.go View File

@ -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
}

+ 1
- 1
loopin.go View File

@ -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)

+ 52
- 43
looprpc/server.pb.go View File

@ -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.

+ 1
- 0
looprpc/server.proto View File

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

+ 2
- 1
server_mock_test.go View File

@ -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)

+ 15
- 10
swap_server_client.go View File

@ -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