Skip to content

Commit 95233c5

Browse files
committed
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 97d8733 commit 95233c5

File tree

15 files changed

+2979
-1752
lines changed

15 files changed

+2979
-1752
lines changed

cmd/loop/staticaddr.go

Lines changed: 13 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,16 @@ package main
22

33
import (
44
"context"
5-
"encoding/hex"
65
"errors"
76
"fmt"
8-
"strconv"
9-
"strings"
107

11-
"github.com/btcsuite/btcd/chaincfg/chainhash"
128
"github.com/lightninglabs/loop/labels"
139
"github.com/lightninglabs/loop/looprpc"
1410
"github.com/lightninglabs/loop/staticaddr/deposit"
1511
"github.com/lightninglabs/loop/staticaddr/loopin"
1612
"github.com/lightninglabs/loop/swapserverrpc"
13+
lndcommands "github.com/lightningnetwork/lnd/cmd/commands"
14+
"github.com/lightningnetwork/lnd/lnrpc"
1715
"github.com/lightningnetwork/lnd/routing/route"
1816
"github.com/urfave/cli/v3"
1917
)
@@ -35,6 +33,7 @@ var staticAddressCommands = &cli.Command{
3533
withdrawalCommand,
3634
summaryCommand,
3735
staticAddressLoopInCommand,
36+
openChannelCommand,
3837
},
3938
}
4039

@@ -182,7 +181,7 @@ func withdraw(ctx context.Context, cmd *cli.Command) error {
182181
var (
183182
isAllSelected = cmd.IsSet("all")
184183
isUtxoSelected = cmd.IsSet("utxo")
185-
outpoints []*looprpc.OutPoint
184+
outpoints []*lnrpc.OutPoint
186185
destAddr string
187186
)
188187

@@ -193,7 +192,7 @@ func withdraw(ctx context.Context, cmd *cli.Command) error {
193192
case isAllSelected:
194193
case isUtxoSelected:
195194
utxos := cmd.StringSlice("utxo")
196-
outpoints, err = utxosToOutpoints(utxos)
195+
outpoints, err = lndcommands.UtxosToOutpoints(utxos)
197196
if err != nil {
198197
return err
199198
}
@@ -238,6 +237,7 @@ var listDepositsCommand = &cli.Command{
238237
"of the following: \n" +
239238
"deposited\nwithdrawing\nwithdrawn\n" +
240239
"looping_in\nlooped_in\n" +
240+
"opening_channel\nchannel_published\n" +
241241
"publish_expired_deposit\n" +
242242
"sweep_htlc_timeout\nhtlc_timeout_swept\n" +
243243
"wait_for_expiry_sweep\nexpired\nfailed\n.",
@@ -277,6 +277,12 @@ func listDeposits(ctx context.Context, cmd *cli.Command) error {
277277
case "looped_in":
278278
filterState = looprpc.DepositState_LOOPED_IN
279279

280+
case "opening_channel":
281+
filterState = looprpc.DepositState_OPENING_CHANNEL
282+
283+
case "channel_published":
284+
filterState = looprpc.DepositState_CHANNEL_PUBLISHED
285+
280286
case "publish_expired_deposit":
281287
filterState = looprpc.DepositState_PUBLISH_EXPIRED
282288

@@ -378,7 +384,7 @@ var summaryCommand = &cli.Command{
378384
Usage: "Display a summary of static address related information.",
379385
Description: `
380386
Displays various static address related information about deposits,
381-
withdrawals and swaps.
387+
withdrawals, swaps and channel openings.
382388
`,
383389
Action: summary,
384390
}
@@ -406,46 +412,6 @@ func summary(ctx context.Context, cmd *cli.Command) error {
406412
return nil
407413
}
408414

409-
func utxosToOutpoints(utxos []string) ([]*looprpc.OutPoint, error) {
410-
outpoints := make([]*looprpc.OutPoint, 0, len(utxos))
411-
if len(utxos) == 0 {
412-
return nil, fmt.Errorf("no utxos specified")
413-
}
414-
415-
for _, utxo := range utxos {
416-
outpoint, err := NewProtoOutPoint(utxo)
417-
if err != nil {
418-
return nil, err
419-
}
420-
outpoints = append(outpoints, outpoint)
421-
}
422-
423-
return outpoints, nil
424-
}
425-
426-
// NewProtoOutPoint parses an OutPoint into its corresponding lnrpc.OutPoint
427-
// type.
428-
func NewProtoOutPoint(op string) (*looprpc.OutPoint, error) {
429-
parts := strings.Split(op, ":")
430-
if len(parts) != 2 {
431-
return nil, errors.New("outpoint should be of the form " +
432-
"txid:index")
433-
}
434-
txid := parts[0]
435-
if hex.DecodedLen(len(txid)) != chainhash.HashSize {
436-
return nil, fmt.Errorf("invalid hex-encoded txid %v", txid)
437-
}
438-
outputIndex, err := strconv.Atoi(parts[1])
439-
if err != nil {
440-
return nil, fmt.Errorf("invalid output index: %v", err)
441-
}
442-
443-
return &looprpc.OutPoint{
444-
TxidStr: txid,
445-
OutputIndex: uint32(outputIndex),
446-
}, nil
447-
}
448-
449415
var staticAddressLoopInCommand = &cli.Command{
450416
Name: "in",
451417
Usage: "Loop in funds from static address deposits.",

go.mod

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ require (
2525
github.com/lightninglabs/loop/swapserverrpc v1.0.14
2626
github.com/lightninglabs/taproot-assets v0.7.0
2727
github.com/lightninglabs/taproot-assets/taprpc v1.0.11
28-
github.com/lightningnetwork/lnd v0.20.0-beta
28+
github.com/lightningnetwork/lnd v0.20.0-beta.rc1
2929
github.com/lightningnetwork/lnd/cert v1.2.2
3030
github.com/lightningnetwork/lnd/clock v1.1.1
3131
github.com/lightningnetwork/lnd/queue v1.1.1
3232
github.com/lightningnetwork/lnd/ticker v1.1.1
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.1-0.20251020101624-bec07369b4f6
3838
github.com/urfave/cli/v3 v3.4.1
3939
go.etcd.io/bbolt v1.4.3
@@ -57,6 +57,7 @@ require (
5757
github.com/Yawning/aez v0.0.0-20211027044916-e49e68abd344 // indirect
5858
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
5959
github.com/aead/siphash v1.0.1 // indirect
60+
github.com/andybalholm/brotli v1.0.4 // indirect
6061
github.com/beorn7/perks v1.0.1 // indirect
6162
github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c // indirect
6263
github.com/btcsuite/btcwallet/wallet/txauthor v1.3.5 // indirect
@@ -112,6 +113,7 @@ require (
112113
github.com/jackc/puddle/v2 v2.2.2 // indirect
113114
github.com/jackpal/gateway v1.0.5 // indirect
114115
github.com/jackpal/go-nat-pmp v0.0.0-20170405195558-28a68d0c24ad // indirect
116+
github.com/jedib0t/go-pretty/v6 v6.2.7 // indirect
115117
github.com/jonboulle/clockwork v0.2.2 // indirect
116118
github.com/jrick/logrotate v1.1.2 // indirect
117119
github.com/json-iterator/go v1.1.12 // indirect
@@ -130,6 +132,7 @@ require (
130132
github.com/lightningnetwork/lnd/sqldb v1.0.11 // indirect
131133
github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 // indirect
132134
github.com/mattn/go-isatty v0.0.20 // indirect
135+
github.com/mattn/go-runewidth v0.0.13 // indirect
133136
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
134137
github.com/mholt/acmez v1.0.4 // indirect
135138
github.com/miekg/dns v1.1.50 // indirect
@@ -149,6 +152,7 @@ require (
149152
github.com/prometheus/common v0.37.0 // indirect
150153
github.com/prometheus/procfs v0.8.0 // indirect
151154
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
155+
github.com/rivo/uniseg v0.2.0 // indirect
152156
github.com/rogpeppe/fastuuid v1.2.0 // indirect
153157
github.com/rogpeppe/go-internal v1.14.1 // indirect
154158
github.com/russross/blackfriday/v2 v2.1.0 // indirect
@@ -159,6 +163,7 @@ require (
159163
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect
160164
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 // indirect
161165
github.com/tv42/zbase32 v0.0.0-20160707012821-501572607d02 // indirect
166+
github.com/urfave/cli v1.22.14 // indirect
162167
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
163168
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
164169
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
@@ -174,12 +179,12 @@ require (
174179
go.etcd.io/etcd/server/v3 v3.5.12 // indirect
175180
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
176181
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
177-
go.opentelemetry.io/otel v1.37.0 // indirect
182+
go.opentelemetry.io/otel v1.38.0 // indirect
178183
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect
179184
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
185+
go.opentelemetry.io/otel/metric v1.38.0 // indirect
186+
go.opentelemetry.io/otel/sdk v1.38.0 // indirect
187+
go.opentelemetry.io/otel/trace v1.38.0 // indirect
183188
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
184189
go.uber.org/atomic v1.10.0 // indirect
185190
go.uber.org/multierr v1.6.0 // indirect
@@ -188,7 +193,7 @@ require (
188193
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
189194
golang.org/x/mod v0.24.0 // indirect
190195
golang.org/x/net v0.39.0 // indirect
191-
golang.org/x/sys v0.33.0 // indirect
196+
golang.org/x/sys v0.35.0 // indirect
192197
golang.org/x/term v0.31.0 // indirect
193198
golang.org/x/text v0.24.0 // indirect
194199
golang.org/x/time v0.5.0 // indirect

0 commit comments

Comments
 (0)