Skip to content

Commit 647f9b0

Browse files
stariushieblmi
authored andcommitted
looprpc: reuse LND proto types for open channel
Make our own type StaticAddressLoopInRequest which has a single field of type lnrpc.OpenChannelRequest. Removed copy-pasted lnrpc types which are needed for OpenChannelRequest.
1 parent ab26d8c commit 647f9b0

File tree

18 files changed

+2162
-3146
lines changed

18 files changed

+2162
-3146
lines changed

cmd/loop/openchannel.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"strconv"
88

99
"github.com/lightninglabs/loop/looprpc"
10+
"github.com/lightningnetwork/lnd/lnrpc"
1011
"github.com/urfave/cli/v3"
1112
)
1213

@@ -216,7 +217,7 @@ func openChannel(ctx context.Context, cmd *cli.Command) error {
216217
}
217218

218219
minConfs := defaultUtxoMinConf
219-
req := &looprpc.OpenChannelRequest{
220+
req := &lnrpc.OpenChannelRequest{
220221
SatPerVbyte: cmd.Uint64(feeRateFlag),
221222
FundMax: cmd.Bool("fundmax"),
222223
MinHtlcMsat: cmd.Int64("min_htlc_msat"),
@@ -309,18 +310,22 @@ func openChannel(ctx context.Context, cmd *cli.Command) error {
309310
case "":
310311
break
311312
case channelTypeTweakless:
312-
req.CommitmentType = looprpc.CommitmentType_STATIC_REMOTE_KEY
313+
req.CommitmentType = lnrpc.CommitmentType_STATIC_REMOTE_KEY
313314

314315
case channelTypeAnchors:
315-
req.CommitmentType = looprpc.CommitmentType_ANCHORS
316+
req.CommitmentType = lnrpc.CommitmentType_ANCHORS
316317

317318
case channelTypeSimpleTaproot:
318-
req.CommitmentType = looprpc.CommitmentType_SIMPLE_TAPROOT
319+
req.CommitmentType = lnrpc.CommitmentType_SIMPLE_TAPROOT
319320
default:
320321
return fmt.Errorf("unsupported channel type %v", channelType)
321322
}
322323

323-
resp, err := client.StaticOpenChannel(ctxb, req)
324+
wrappedReq := &looprpc.StaticOpenChannelRequest{
325+
OpenChannelRequest: req,
326+
}
327+
328+
resp, err := client.StaticOpenChannel(ctxb, wrappedReq)
324329

325330
printRespJSON(resp)
326331

@@ -330,8 +335,8 @@ func openChannel(ctx context.Context, cmd *cli.Command) error {
330335
// UtxosToOutpoints converts a slice of UTXO strings into a slice of OutPoint
331336
// protobuf objects. It returns an error if no UTXOs are specified or if any
332337
// UTXO string cannot be parsed into an OutPoint.
333-
func UtxosToOutpoints(utxos []string) ([]*looprpc.OutPoint, error) {
334-
var outpoints []*looprpc.OutPoint
338+
func UtxosToOutpoints(utxos []string) ([]*lnrpc.OutPoint, error) {
339+
var outpoints []*lnrpc.OutPoint
335340
if len(utxos) == 0 {
336341
return nil, fmt.Errorf("no utxos specified")
337342
}

cmd/loop/staticaddr.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/lightninglabs/loop/staticaddr/deposit"
1515
"github.com/lightninglabs/loop/staticaddr/loopin"
1616
"github.com/lightninglabs/loop/swapserverrpc"
17+
"github.com/lightningnetwork/lnd/lnrpc"
1718
"github.com/lightningnetwork/lnd/routing/route"
1819
"github.com/urfave/cli/v3"
1920
)
@@ -183,7 +184,7 @@ func withdraw(ctx context.Context, cmd *cli.Command) error {
183184
var (
184185
isAllSelected = cmd.IsSet("all")
185186
isUtxoSelected = cmd.IsSet("utxo")
186-
outpoints []*looprpc.OutPoint
187+
outpoints []*lnrpc.OutPoint
187188
destAddr string
188189
)
189190

@@ -414,8 +415,8 @@ func summary(ctx context.Context, cmd *cli.Command) error {
414415
return nil
415416
}
416417

417-
func utxosToOutpoints(utxos []string) ([]*looprpc.OutPoint, error) {
418-
outpoints := make([]*looprpc.OutPoint, 0, len(utxos))
418+
func utxosToOutpoints(utxos []string) ([]*lnrpc.OutPoint, error) {
419+
outpoints := make([]*lnrpc.OutPoint, 0, len(utxos))
419420
if len(utxos) == 0 {
420421
return nil, fmt.Errorf("no utxos specified")
421422
}
@@ -433,7 +434,7 @@ func utxosToOutpoints(utxos []string) ([]*looprpc.OutPoint, error) {
433434

434435
// NewProtoOutPoint parses an OutPoint into its corresponding lnrpc.OutPoint
435436
// type.
436-
func NewProtoOutPoint(op string) (*looprpc.OutPoint, error) {
437+
func NewProtoOutPoint(op string) (*lnrpc.OutPoint, error) {
437438
parts := strings.Split(op, ":")
438439
if len(parts) != 2 {
439440
return nil, errors.New("outpoint should be of the form " +
@@ -448,7 +449,7 @@ func NewProtoOutPoint(op string) (*looprpc.OutPoint, error) {
448449
return nil, fmt.Errorf("invalid output index: %v", err)
449450
}
450451

451-
return &looprpc.OutPoint{
452+
return &lnrpc.OutPoint{
452453
TxidStr: txid,
453454
OutputIndex: uint32(outputIndex),
454455
}, nil

go.mod

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ require (
3333
github.com/lightningnetwork/lnd/tlv v1.3.2
3434
github.com/lightningnetwork/lnd/tor v1.1.6
3535
github.com/ory/dockertest/v3 v3.10.0
36-
github.com/stretchr/testify v1.10.0
36+
github.com/stretchr/testify v1.11.1
3737
github.com/urfave/cli-docs/v3 v3.1.0
3838
github.com/urfave/cli/v3 v3.4.1
3939
go.etcd.io/bbolt v1.4.3
@@ -174,12 +174,12 @@ require (
174174
go.etcd.io/etcd/server/v3 v3.5.12 // indirect
175175
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
176176
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
177-
go.opentelemetry.io/otel v1.37.0 // indirect
177+
go.opentelemetry.io/otel v1.38.0 // indirect
178178
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect
179179
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 // indirect
180-
go.opentelemetry.io/otel/metric v1.37.0 // indirect
181-
go.opentelemetry.io/otel/sdk v1.37.0 // indirect
182-
go.opentelemetry.io/otel/trace v1.37.0 // indirect
180+
go.opentelemetry.io/otel/metric v1.38.0 // indirect
181+
go.opentelemetry.io/otel/sdk v1.38.0 // indirect
182+
go.opentelemetry.io/otel/trace v1.38.0 // indirect
183183
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
184184
go.uber.org/atomic v1.10.0 // indirect
185185
go.uber.org/multierr v1.6.0 // indirect
@@ -188,7 +188,7 @@ require (
188188
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
189189
golang.org/x/mod v0.24.0 // indirect
190190
golang.org/x/net v0.39.0 // indirect
191-
golang.org/x/sys v0.33.0 // indirect
191+
golang.org/x/sys v0.35.0 // indirect
192192
golang.org/x/term v0.31.0 // indirect
193193
golang.org/x/text v0.24.0 // indirect
194194
golang.org/x/time v0.5.0 // indirect

go.sum

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1308,8 +1308,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
13081308
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
13091309
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
13101310
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
1311-
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
1312-
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
1311+
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
1312+
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
13131313
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY=
13141314
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc=
13151315
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA=
@@ -1370,20 +1370,22 @@ go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJyS
13701370
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
13711371
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg=
13721372
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0=
1373-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU=
1374-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ=
1375-
go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ=
1376-
go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I=
1373+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
1374+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
1375+
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
1376+
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
13771377
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E=
13781378
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI=
13791379
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 h1:gvmNvqrPYovvyRmCSygkUDyL8lC5Tl845MLEwqpxhEU=
13801380
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0/go.mod h1:vNUq47TGFioo+ffTSnKNdob241vePmtNZnAODKapKd0=
1381-
go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE=
1382-
go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E=
1383-
go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI=
1384-
go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg=
1385-
go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
1386-
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
1381+
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
1382+
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
1383+
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
1384+
go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
1385+
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
1386+
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
1387+
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
1388+
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
13871389
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
13881390
go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
13891391
go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
@@ -1718,8 +1720,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
17181720
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
17191721
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
17201722
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
1721-
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
1722-
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
1723+
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
1724+
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
17231725
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
17241726
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
17251727
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=

loopd/swapclient_server.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
"github.com/lightninglabs/loop/swap"
3838
"github.com/lightninglabs/loop/swapserverrpc"
3939
"github.com/lightninglabs/taproot-assets/rfqmath"
40+
"github.com/lightningnetwork/lnd/lnrpc"
4041
"github.com/lightningnetwork/lnd/lnrpc/walletrpc"
4142
"github.com/lightningnetwork/lnd/lntypes"
4243
"github.com/lightningnetwork/lnd/queue"
@@ -2159,13 +2160,19 @@ func (s *swapClientServer) populateBlocksUntilExpiry(ctx context.Context,
21592160
// StaticOpenChannel initiates an open channel request using static address
21602161
// deposits.
21612162
func (s *swapClientServer) StaticOpenChannel(ctx context.Context,
2162-
req *looprpc.OpenChannelRequest) (*looprpc.StaticOpenChannelResponse,
2163+
req *looprpc.StaticOpenChannelRequest) (*looprpc.StaticOpenChannelResponse,
21632164
error) {
21642165

21652166
infof("Static open channel request received")
21662167

2168+
if req == nil || req.OpenChannelRequest == nil {
2169+
return &looprpc.StaticOpenChannelResponse{
2170+
Error: "missing open channel request",
2171+
}, nil
2172+
}
2173+
21672174
chanOpenTxHash, err := s.openChannelManager.DeliverOpenChannelRequest(
2168-
ctx, req,
2175+
ctx, req.OpenChannelRequest,
21692176
)
21702177

21712178
var (
@@ -2346,7 +2353,7 @@ func toServerState(state looprpc.DepositState) fsm.StateType {
23462353
}
23472354
}
23482355

2349-
func toServerOutpoints(outpoints []*looprpc.OutPoint) ([]wire.OutPoint,
2356+
func toServerOutpoints(outpoints []*lnrpc.OutPoint) ([]wire.OutPoint,
23502357
error) {
23512358

23522359
var serverOutpoints []wire.OutPoint

looprpc/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.21.9-bookworm
1+
FROM golang:1.24.9-bookworm
22

33
RUN apt-get update && apt-get install -y \
44
git \

0 commit comments

Comments
 (0)