From dbec9da31bb5257bde737f58afd5b0dd0b8e8482 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Thu, 6 Mar 2025 16:14:22 +0200 Subject: [PATCH 1/8] multi: update LND and friends This commit updates: - LND - pool - loop - taproot-assets - faraday - lighting-node-connect - aperture - lndclient - btclog We start using the new btclog v2 library and the associated breaking changes in the lnd/build package. With this commit, we deprecate the `--remote.lit-maxlogfiles` and `--remote.lit-maxlogfilesize` options and introduce new logging options under the `--remote.lit-logging` namespace. Finally, the LND update introduced a new `MaxBlocksMinedPerTest` variable in the `lntest` package that we now need to override in order for our itests to pass. --- accounts/context.go | 5 +- accounts/log.go | 2 +- autopilotserver/log.go | 2 +- autopilotserver/mock/log.go | 2 +- config.go | 50 +++++++-- db/log.go | 2 +- db/migrations.go | 2 +- firewall/log.go | 2 +- firewalldb/log.go | 2 +- go.mod | 97 +++++++++-------- go.sum | 209 ++++++++++++++++++------------------ itest/litd_test.go | 35 ++---- itest/log.go | 2 +- litrpc/go.mod | 45 ++++---- litrpc/go.sum | 91 +++++++++------- log.go | 8 +- perms/mock_dev.go | 4 +- rpcmiddleware/log.go | 2 +- rules/log.go | 2 +- session/log.go | 2 +- status/log.go | 2 +- subservers/config.go | 8 +- subservers/log.go | 2 +- terminal.go | 10 +- 24 files changed, 312 insertions(+), 276 deletions(-) diff --git a/accounts/context.go b/accounts/context.go index 6916a7cae..c17947a6f 100644 --- a/accounts/context.go +++ b/accounts/context.go @@ -4,8 +4,7 @@ import ( "context" "fmt" - "github.com/btcsuite/btclog" - "github.com/lightningnetwork/lnd/build" + "github.com/btcsuite/btclog/v2" ) // ContextKey is the type that we use to identify account specific values in the @@ -95,5 +94,5 @@ func requestScopedValuesFromCtx(ctx context.Context) (btclog.Logger, prefix := fmt.Sprintf("[account: %s, request: %d]", acc.ID, reqID) - return build.NewPrefixLog(prefix, log), acc, reqID, nil + return log.WithPrefix(prefix), acc, reqID, nil } diff --git a/accounts/log.go b/accounts/log.go index 123bcfe55..177fd302a 100644 --- a/accounts/log.go +++ b/accounts/log.go @@ -1,7 +1,7 @@ package accounts import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/autopilotserver/log.go b/autopilotserver/log.go index ef9c49f13..3f213e4b0 100644 --- a/autopilotserver/log.go +++ b/autopilotserver/log.go @@ -1,7 +1,7 @@ package autopilotserver import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/autopilotserver/mock/log.go b/autopilotserver/mock/log.go index 00816644b..442e19a9b 100644 --- a/autopilotserver/mock/log.go +++ b/autopilotserver/mock/log.go @@ -1,7 +1,7 @@ package mock import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/config.go b/config.go index 4e201f27f..9418ca869 100644 --- a/config.go +++ b/config.go @@ -54,9 +54,7 @@ const ( defaultConfigFilename = "lit.conf" - defaultLogLevel = "info" - defaultMaxLogFiles = 3 - defaultMaxLogFileSize = 10 + defaultLogLevel = "info" defaultLetsEncryptSubDir = "letsencrypt" defaultLetsEncryptListen = ":80" @@ -285,15 +283,17 @@ func (c *Config) lndConnectParams() (string, lndclient.Network, string, // defaultConfig returns a configuration struct with all default values set. func defaultConfig() *Config { + defaultLogCfg := build.DefaultLogConfig() return &Config{ HTTPSListen: defaultHTTPSListen, TLSCertPath: DefaultTLSCertPath, TLSKeyPath: defaultTLSKeyPath, Remote: &subservers.RemoteConfig{ + LitLogConfig: defaultLogCfg, LitDebugLevel: defaultLogLevel, LitLogDir: defaultLogDir, - LitMaxLogFiles: defaultMaxLogFiles, - LitMaxLogFileSize: defaultMaxLogFileSize, + LitMaxLogFiles: defaultLogCfg.File.MaxLogFiles, + LitMaxLogFileSize: defaultLogCfg.File.MaxLogFileSize, Lnd: &subservers.RemoteDaemonConfig{ RPCServer: defaultRemoteLndRpcServer, MacaroonPath: DefaultRemoteLndMacaroonPath, @@ -376,11 +376,21 @@ func loadAndValidateConfig(interceptor signal.Interceptor) (*Config, error) { os.Exit(0) } + // The logging config we use to initialise the sub-logger manager below + // depends on whether we're running in remote mode or not. + logCfg := preCfg.Lnd.LogConfig + if preCfg.LndMode == ModeRemote { + logCfg = preCfg.Remote.LitLogConfig + } + // Before we validate the config, we first hook up our own loggers. // This must be done before the config is validated if LND is running // in integrated mode so that the log levels for various non-LND related // subsystems can be set via the `lnd.debuglevel` flag. - SetupLoggers(preCfg.Lnd.LogWriter, interceptor) + preCfg.Lnd.SubLogMgr = build.NewSubLoggerManager( + build.NewDefaultLogHandlers(logCfg, preCfg.Lnd.LogRotator)..., + ) + SetupLoggers(preCfg.Lnd.SubLogMgr, interceptor) // Load the main configuration file and parse any command line options. // This function will also set up logging properly. @@ -413,7 +423,7 @@ func loadAndValidateConfig(interceptor signal.Interceptor) (*Config, error) { debuglevel += fmt.Sprintf(",%s=off", GrpcLogSubsystem) } - err = build.ParseAndSetDebugLevels(debuglevel, cfg.Lnd.LogWriter) + err = build.ParseAndSetDebugLevels(debuglevel, cfg.Lnd.SubLogMgr) if err != nil { return nil, err } @@ -753,16 +763,34 @@ func validateRemoteModeConfig(cfg *Config) error { r.LitLogDir = lncfg.CleanAndExpandPath(r.LitLogDir) + // Initialize the log manager with the actual logging configuration. We + // need to support the deprecated max log files and max log file size + // options for now. + if r.LitMaxLogFiles != build.DefaultMaxLogFiles { + log.Warnf("Config option 'remote.lit-maxlogfiles' is " + + "deprecated, please use " + + "'remote.lit-logging.file.max-files' instead") + + r.LitLogConfig.File.MaxLogFiles = r.LitMaxLogFiles + } + if r.LitMaxLogFileSize != build.DefaultMaxLogFileSize { + log.Warnf("Config option 'remote.lit-maxlogfilesize' is " + + "deprecated, please use " + + "'remote.lit-logging.file.max-file-size' instead") + + r.LitLogConfig.File.MaxLogFileSize = r.LitMaxLogFileSize + } + // In remote mode, we don't call lnd's ValidateConfig that sets up a // logging backend for us. We need to manually create and start one. The // root logger should've already been created as part of the default // config though. - if cfg.Lnd.LogWriter == nil { - cfg.Lnd.LogWriter = build.NewRotatingLogWriter() + if cfg.Lnd.LogRotator == nil { + cfg.Lnd.LogRotator = build.NewRotatingLogWriter() } - err := cfg.Lnd.LogWriter.InitLogRotator( + err := cfg.Lnd.LogRotator.InitLogRotator( + cfg.Remote.LitLogConfig.File, filepath.Join(r.LitLogDir, cfg.Network, defaultLogFilename), - r.LitMaxLogFileSize, r.LitMaxLogFiles, ) if err != nil { return fmt.Errorf("log rotation setup failed: %v", err.Error()) diff --git a/db/log.go b/db/log.go index 19c12cf48..4d470c00f 100644 --- a/db/log.go +++ b/db/log.go @@ -1,7 +1,7 @@ package db import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/db/migrations.go b/db/migrations.go index 97b471623..ab0400a09 100644 --- a/db/migrations.go +++ b/db/migrations.go @@ -9,7 +9,7 @@ import ( "net/http" "strings" - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/golang-migrate/migrate/v4" "github.com/golang-migrate/migrate/v4/database" "github.com/golang-migrate/migrate/v4/source/httpfs" diff --git a/firewall/log.go b/firewall/log.go index 20bb3bed6..9763d04bc 100644 --- a/firewall/log.go +++ b/firewall/log.go @@ -1,7 +1,7 @@ package firewall import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/firewalldb/log.go b/firewalldb/log.go index 48fbb13af..4285b0bec 100644 --- a/firewalldb/log.go +++ b/firewalldb/log.go @@ -1,7 +1,7 @@ package firewalldb import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/go.mod b/go.mod index 6d7b4e79b..c65fa3281 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,11 @@ module github.com/lightninglabs/lightning-terminal require ( - github.com/btcsuite/btcd v0.24.3-0.20240921052913-67b8efd3ba53 + github.com/btcsuite/btcd v0.24.3-0.20250318170759-4f4ea81776d6 github.com/btcsuite/btcd/btcec/v2 v2.3.4 github.com/btcsuite/btcd/btcutil v1.1.5 github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 - github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c + github.com/btcsuite/btclog/v2 v2.0.1-0.20250110154127-3ae4bf1cb318 github.com/btcsuite/btcwallet/walletdb v1.4.4 github.com/davecgh/go-spew v1.1.1 github.com/go-errors/errors v1.0.1 @@ -16,41 +16,42 @@ require ( github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438 github.com/jessevdk/go-flags v1.4.0 github.com/lib/pq v1.10.9 - github.com/lightninglabs/faraday v0.2.14-alpha + github.com/lightninglabs/faraday v0.2.14-alpha.0.20250305102803-f668619b351e github.com/lightninglabs/faraday/frdrpc v1.0.0 - github.com/lightninglabs/lightning-node-connect v0.3.2-alpha.0.20240822142323-ee4e7ff52f83 + github.com/lightninglabs/lightning-node-connect v0.3.3-alpha.0.20250306111457-cad4234830cc github.com/lightninglabs/lightning-terminal/autopilotserverrpc v0.0.2 github.com/lightninglabs/lightning-terminal/litrpc v1.0.1 - github.com/lightninglabs/lndclient v0.18.4-9 - github.com/lightninglabs/loop v0.29.0-beta - github.com/lightninglabs/loop/looprpc v1.0.3 - github.com/lightninglabs/loop/swapserverrpc v1.0.12 - github.com/lightninglabs/pool v0.6.5-beta.0.20241015105339-044cb451b5df - github.com/lightninglabs/pool/auctioneerrpc v1.1.2 - github.com/lightninglabs/pool/poolrpc v1.0.0 - github.com/lightninglabs/taproot-assets v0.5.1 - github.com/lightningnetwork/lnd v0.18.5-beta + github.com/lightninglabs/lndclient v0.19.0-3 + github.com/lightninglabs/loop v0.29.0-beta.rc2.0.20250306160707-1091a628755c + github.com/lightninglabs/loop/looprpc v1.0.4-0.20250306160707-1091a628755c + github.com/lightninglabs/loop/swapserverrpc v1.0.13-0.20250306160707-1091a628755c + github.com/lightninglabs/pool v0.6.5-beta.0.20250305125211-4e860ec4e77f + github.com/lightninglabs/pool/auctioneerrpc v1.1.3-0.20250305125211-4e860ec4e77f + github.com/lightninglabs/pool/poolrpc v1.0.1-0.20250305125211-4e860ec4e77f + github.com/lightninglabs/taproot-assets v0.5.2-0.20250326140136-a724d385e7ae + github.com/lightningnetwork/lnd v0.19.0-beta.rc1 github.com/lightningnetwork/lnd/cert v1.2.2 github.com/lightningnetwork/lnd/clock v1.1.1 github.com/lightningnetwork/lnd/fn v1.2.3 - github.com/lightningnetwork/lnd/kvdb v1.4.10 - github.com/lightningnetwork/lnd/tlv v1.2.6 - github.com/lightningnetwork/lnd/tor v1.1.2 + github.com/lightningnetwork/lnd/fn/v2 v2.0.8 + github.com/lightningnetwork/lnd/kvdb v1.4.12 + github.com/lightningnetwork/lnd/tlv v1.3.0 + github.com/lightningnetwork/lnd/tor v1.1.6 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f github.com/mwitkow/grpc-proxy v0.0.0-20230212185441-f345521cb9c9 github.com/ory/dockertest/v3 v3.10.0 - github.com/stretchr/testify v1.9.0 - github.com/urfave/cli v1.22.9 + github.com/stretchr/testify v1.10.0 + github.com/urfave/cli v1.22.14 go.etcd.io/bbolt v1.3.11 - golang.org/x/crypto v0.31.0 + golang.org/x/crypto v0.35.0 golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 - golang.org/x/net v0.33.0 - golang.org/x/sync v0.10.0 + golang.org/x/net v0.36.0 + golang.org/x/sync v0.11.0 google.golang.org/grpc v1.65.0 google.golang.org/protobuf v1.34.2 gopkg.in/macaroon-bakery.v2 v2.1.0 gopkg.in/macaroon.v2 v2.1.0 - modernc.org/sqlite v1.30.0 + modernc.org/sqlite v1.34.5 ) require ( @@ -66,7 +67,8 @@ require ( github.com/andybalholm/brotli v1.0.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/btcsuite/btcd/btcutil/psbt v1.1.10 // indirect - github.com/btcsuite/btcwallet v0.16.10-0.20241127094224-93c858b2ad63 // indirect + github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c // indirect + github.com/btcsuite/btcwallet v0.16.12 // indirect github.com/btcsuite/btcwallet/wallet/txauthor v1.3.5 // indirect github.com/btcsuite/btcwallet/wallet/txrules v1.2.2 // indirect github.com/btcsuite/btcwallet/wallet/txsizes v1.2.5 // indirect @@ -81,23 +83,23 @@ require ( github.com/coreos/bbolt v1.3.3 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect - github.com/coreos/go-systemd/v22 v22.3.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/decred/dcrd/crypto/blake256 v1.0.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/decred/dcrd/lru v1.1.2 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect - github.com/docker/cli v27.1.1+incompatible // indirect - github.com/docker/docker v27.1.1+incompatible // indirect + github.com/docker/cli v28.0.1+incompatible // indirect + github.com/docker/docker v28.0.1+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fergusstrange/embedded-postgres v1.25.0 // indirect github.com/fortytw2/leaktest v1.3.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect + github.com/goccy/go-yaml v1.15.23 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -113,7 +115,6 @@ require ( github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect github.com/jackc/pgio v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect @@ -135,15 +136,15 @@ require ( github.com/klauspost/compress v1.17.9 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/libdns/libdns v0.2.1 // indirect - github.com/lightninglabs/aperture v0.3.4-beta // indirect + github.com/lightninglabs/aperture v0.3.8-beta.0.20250305101039-2eead0180691 // indirect github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf // indirect github.com/lightninglabs/lightning-node-connect/hashmailrpc v1.0.2 // indirect - github.com/lightninglabs/neutrino v0.16.1-0.20240425105051-602843d34ffd // indirect + github.com/lightninglabs/neutrino v0.16.1 // indirect github.com/lightninglabs/neutrino/cache v1.1.2 // indirect github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb // indirect - github.com/lightningnetwork/lnd/healthcheck v1.2.5 // indirect + github.com/lightningnetwork/lnd/healthcheck v1.2.6 // indirect github.com/lightningnetwork/lnd/queue v1.1.1 // indirect - github.com/lightningnetwork/lnd/sqldb v1.0.4 // indirect + github.com/lightningnetwork/lnd/sqldb v1.0.7 // indirect github.com/lightningnetwork/lnd/ticker v1.1.1 // indirect github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -152,13 +153,14 @@ require ( github.com/mholt/acmez v1.0.4 // indirect github.com/miekg/dns v1.1.50 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/moby/sys/user v0.3.0 // indirect github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/ncruces/go-strftime v0.1.9 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.0.2 // indirect - github.com/opencontainers/runc v1.1.14 // indirect + github.com/opencontainers/runc v1.2.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.14.0 // indirect @@ -169,10 +171,9 @@ require ( github.com/rivo/uniseg v0.2.0 // indirect github.com/rogpeppe/fastuuid v1.2.0 // indirect github.com/rs/cors v1.7.0 // indirect - github.com/russross/blackfriday/v2 v2.0.1 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/shopspring/decimal v1.3.1 // indirect - github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect - github.com/sirupsen/logrus v1.9.2 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect github.com/soheilhy/cmux v0.1.5 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/objx v0.5.2 // indirect @@ -192,22 +193,23 @@ require ( go.etcd.io/etcd/pkg/v3 v3.5.12 // indirect go.etcd.io/etcd/raft/v3 v3.5.12 // indirect go.etcd.io/etcd/server/v3 v3.5.12 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect - go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 // indirect - go.opentelemetry.io/otel/metric v1.32.0 // indirect - go.opentelemetry.io/otel/sdk v1.21.0 // indirect - go.opentelemetry.io/otel/trace v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect + go.opentelemetry.io/otel/sdk v1.35.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/mock v0.4.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.23.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/sys v0.28.0 // indirect - golang.org/x/term v0.27.0 // indirect - golang.org/x/text v0.21.0 // indirect + golang.org/x/sys v0.30.0 // indirect + golang.org/x/term v0.29.0 // indirect + golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // indirect @@ -217,14 +219,11 @@ require ( gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect - modernc.org/libc v1.50.9 // indirect + modernc.org/libc v1.55.3 // indirect modernc.org/mathutil v1.6.0 // indirect modernc.org/memory v1.8.0 // indirect - modernc.org/strutil v1.2.0 // indirect - modernc.org/token v1.1.0 // indirect nhooyr.io/websocket v1.8.7 // indirect - pgregory.net/rapid v1.1.0 // indirect + pgregory.net/rapid v1.2.0 // indirect sigs.k8s.io/yaml v1.2.0 // indirect ) diff --git a/go.sum b/go.sum index b9fd61c03..7e64ef17b 100644 --- a/go.sum +++ b/go.sum @@ -603,8 +603,9 @@ gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zum git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= @@ -651,8 +652,8 @@ github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A= -github.com/btcsuite/btcd v0.24.3-0.20240921052913-67b8efd3ba53 h1:XOZ/wRGHkKv0AqxfDks5IkzaQ1Ge6fq322ZOOG5VIkU= -github.com/btcsuite/btcd v0.24.3-0.20240921052913-67b8efd3ba53/go.mod h1:zHK7t7sw8XbsCkD64WePHE3r3k9/XoGAcf6mXV14c64= +github.com/btcsuite/btcd v0.24.3-0.20250318170759-4f4ea81776d6 h1:8n9k3I7e8DkpdQ5YAP4j8ly/LSsbe6qX9vmVbrUGvVw= +github.com/btcsuite/btcd v0.24.3-0.20250318170759-4f4ea81776d6/go.mod h1:OmM4kFtB0klaG/ZqT86rQiyw/1iyXlJgc3UHClPhhbs= github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ= @@ -670,9 +671,11 @@ github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtyd github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c h1:4HxD1lBUGUddhzgaNgrCPsFWd7cGYNpeFUgd9ZIgyM0= github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c/go.mod h1:w7xnGOhwT3lmrS4H3b/D1XAXxvh+tbhUm8xeHN2y3TQ= +github.com/btcsuite/btclog/v2 v2.0.1-0.20250110154127-3ae4bf1cb318 h1:oCjIcinPt7XQ644MP/22JcjYEC84qRc3bRBH0d7Hhd4= +github.com/btcsuite/btclog/v2 v2.0.1-0.20250110154127-3ae4bf1cb318/go.mod h1:XItGUfVOxotJL8kkuk2Hj3EVow5KCugXl3wWfQ6K0AE= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcwallet v0.16.10-0.20241127094224-93c858b2ad63 h1:YN+PekOLlLoGxE3P5RJaGgodZD5DDJSU8eXQZVwwCxM= -github.com/btcsuite/btcwallet v0.16.10-0.20241127094224-93c858b2ad63/go.mod h1:1HJXYbjJzgumlnxOC2+ViR1U+gnHWoOn7WeK5OfY1eU= +github.com/btcsuite/btcwallet v0.16.12 h1:9SREKY892i1xTGlGLcu6x7O+WSQFn6+uQrSuskAOqh0= +github.com/btcsuite/btcwallet v0.16.12/go.mod h1:jBn+ThFrx/QqW0nXiGvXtJytju4aVoW7C0hY4s/+9vo= github.com/btcsuite/btcwallet/wallet/txauthor v1.3.5 h1:Rr0njWI3r341nhSPesKQ2JF+ugDSzdPoeckS75SeDZk= github.com/btcsuite/btcwallet/wallet/txauthor v1.3.5/go.mod h1:+tXJ3Ym0nlQc/iHSwW1qzjmPs3ev+UVWMbGgfV1OZqU= github.com/btcsuite/btcwallet/wallet/txrules v1.2.2 h1:YEO+Lx1ZJJAtdRrjuhXjWrYsmAk26wLTlNzxt2q0lhk= @@ -740,11 +743,10 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf h1:iW4rZ826su+pqaw19uhpSCzhj44qo35pNgKFGqzDKkU= github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= @@ -768,10 +770,10 @@ github.com/dhui/dktest v0.4.0 h1:z05UmuXZHO/bgj/ds2bGMBu8FI4WA+Ag/m3ghL+om7M= github.com/dhui/dktest v0.4.0/go.mod h1:v/Dbz1LgCBOi2Uki2nUqLBGa83hWBGFMu5MrgMDCc78= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE= -github.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= -github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/cli v28.0.1+incompatible h1:g0h5NQNda3/CxIsaZfH4Tyf6vpxFth7PYl3hgCPOKzs= +github.com/docker/cli v28.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/docker v28.0.1+incompatible h1:FCHjSRdXhNRFjlHMTv4jUNlIBbTeRjrWfeFuJp7jpo0= +github.com/docker/docker v28.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -864,6 +866,8 @@ github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6Wezm github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-yaml v1.15.23 h1:WS0GAX1uNPDLUvLkNU2vXq6oTnsmfVFocjQ/4qA48qo= +github.com/goccy/go-yaml v1.15.23/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= @@ -932,8 +936,8 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -1007,8 +1011,6 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= -github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -1147,64 +1149,66 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libdns/libdns v0.2.1 h1:Wu59T7wSHRgtA0cfxC+n1c/e+O3upJGWytknkmFEDis= github.com/libdns/libdns v0.2.1/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40= -github.com/lightninglabs/aperture v0.3.4-beta h1:TiQHw1+2CdW785U88uH0BmwUmv0R7nyfvmF9neQd56o= -github.com/lightninglabs/aperture v0.3.4-beta/go.mod h1:xuusZUPdKzQN8wKT5yL2eML8To9nz+AXoRoQa/njd4Q= -github.com/lightninglabs/faraday v0.2.14-alpha h1:oj1g3gquq7YihOCLfAxgszEfOBm7nobT4pFGAIBxQ00= -github.com/lightninglabs/faraday v0.2.14-alpha/go.mod h1:lzfDIuk9lrHJLTI17csFi1/Mityz6Hws9GnmCD62ujI= +github.com/lightninglabs/aperture v0.3.8-beta.0.20250305101039-2eead0180691 h1:eBBFgJK1a+G12tKWj657iZcSYtygflseIqyruDzSoj0= +github.com/lightninglabs/aperture v0.3.8-beta.0.20250305101039-2eead0180691/go.mod h1:3A9h+l1okKGR3WnNROiDfPxy10KggrzPX3BplYYcT5M= +github.com/lightninglabs/faraday v0.2.14-alpha.0.20250305102803-f668619b351e h1:A/R5t/2wpWxHj58rgPTrqkBC3xhbsHimDNTedn11k98= +github.com/lightninglabs/faraday v0.2.14-alpha.0.20250305102803-f668619b351e/go.mod h1:Uv2d1ykuKfecl61REKP4/A7QyYHFUh8bTiEs+eg3YeY= github.com/lightninglabs/faraday/frdrpc v1.0.0 h1:f7g3qGv6gL5AXUC8Uur4iLqDSI1RE73LiuIoquNinhg= github.com/lightninglabs/faraday/frdrpc v1.0.0/go.mod h1:Wfxp3zBlKfAU9aSd7VztIYxlus0CfuQ1YIqiQeils5M= github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf h1:HZKvJUHlcXI/f/O0Avg7t8sqkPo78HFzjmeYFl6DPnc= github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf/go.mod h1:vxmQPeIQxPf6Jf9rM8R+B4rKBqLA2AjttNxkFBL2Plk= -github.com/lightninglabs/lightning-node-connect v0.3.2-alpha.0.20240822142323-ee4e7ff52f83 h1:tdQQQW95kytNBWe2cplHlQpDyGxuGIPb4FrzmKlrAKI= -github.com/lightninglabs/lightning-node-connect v0.3.2-alpha.0.20240822142323-ee4e7ff52f83/go.mod h1:+SasPOt0evcJdfApb/ALTaTz4x3a2/kWy5KqFoTpiX8= +github.com/lightninglabs/lightning-node-connect v0.3.3-alpha.0.20250306111457-cad4234830cc h1:E29yDGwq01ZPNckfcB61FKRRuOCtwJMwDXSIOJcZPzE= +github.com/lightninglabs/lightning-node-connect v0.3.3-alpha.0.20250306111457-cad4234830cc/go.mod h1:yrfNoMrGcWljHoQ31+dCSc0R7mBdYqISQeZABlrdkz4= github.com/lightninglabs/lightning-node-connect/hashmailrpc v1.0.2 h1:Er1miPZD2XZwcfE4xoS5AILqP1mj7kqnhbBSxW9BDxY= github.com/lightninglabs/lightning-node-connect/hashmailrpc v1.0.2/go.mod h1:antQGRDRJiuyQF6l+k6NECCSImgCpwaZapATth2Chv4= -github.com/lightninglabs/lndclient v0.18.4-9 h1:8PRBmJLyegs1zbqBvpN/0d8qGLiNst3MEtTdO4Wt+SA= -github.com/lightninglabs/lndclient v0.18.4-9/go.mod h1:11hKoRxXk+1IoIndEIvbmo18dwAJnTqr/lylRpYDVSU= -github.com/lightninglabs/loop v0.29.0-beta h1:YRxZ3h41LsFOLTyvisxbijmvCf5UOUx4T0YUemdi0wA= -github.com/lightninglabs/loop v0.29.0-beta/go.mod h1:Lc1qXyO0LoOHQVkzwxVlHTavybGGz0I1t5YozWH1WNo= -github.com/lightninglabs/loop/looprpc v1.0.3 h1:TLJe6/SPY8ee3FzHaYx9E2isjWmdKR2HnYcF5Hdth98= -github.com/lightninglabs/loop/looprpc v1.0.3/go.mod h1:w6zur9qV9EBY7I7bpnUYp0QGjVqNl9cjnozpPal9/XY= -github.com/lightninglabs/loop/swapserverrpc v1.0.12 h1:A6ym5sCupNOPNsEhYEgTqWYR9C7Cev1cRpVetm6TewA= -github.com/lightninglabs/loop/swapserverrpc v1.0.12/go.mod h1:Ml3gMwe/iTRLvu1QGGZzXcr0DYSa9sJGwKPktLaWtwE= -github.com/lightninglabs/neutrino v0.16.1-0.20240425105051-602843d34ffd h1:D8aRocHpoCv43hL8egXEMYyPmyOiefFHZ66338KQB2s= -github.com/lightninglabs/neutrino v0.16.1-0.20240425105051-602843d34ffd/go.mod h1:x3OmY2wsA18+Kc3TSV2QpSUewOCiscw2mKpXgZv2kZk= +github.com/lightninglabs/lndclient v0.19.0-3 h1:PGGlDaz8x1dXGowDfAWhbuDqXTKNaJyb7SOTrRdG1es= +github.com/lightninglabs/lndclient v0.19.0-3/go.mod h1:5YMrFx00NvcmUHGZRxT4Qw/gOfR5x50/ReJmJ6w0yVk= +github.com/lightninglabs/loop v0.29.0-beta.rc2.0.20250306160707-1091a628755c h1:Ox7SfusBRizc7tOKy9HKXodR7rcvpko08EH9aP/+euQ= +github.com/lightninglabs/loop v0.29.0-beta.rc2.0.20250306160707-1091a628755c/go.mod h1:IzzOw/v4VwKmotJrmPyM8P+FPZ/XBbxa4u2JuDYrtAU= +github.com/lightninglabs/loop/looprpc v1.0.4-0.20250306160707-1091a628755c h1:ueEVZjeUKI3CoTJAdpDbXKHTSd9OfY8OPqTDBjeHhfs= +github.com/lightninglabs/loop/looprpc v1.0.4-0.20250306160707-1091a628755c/go.mod h1:gO5c42iHaY6O7kXmHMqEK0ZZkRXrVDisGP22LkHMDmA= +github.com/lightninglabs/loop/swapserverrpc v1.0.13-0.20250306160707-1091a628755c h1:41URVu1xE88R3kUE1VZGJS50RDWX7wBwVmICBb/0gnw= +github.com/lightninglabs/loop/swapserverrpc v1.0.13-0.20250306160707-1091a628755c/go.mod h1:Ml3gMwe/iTRLvu1QGGZzXcr0DYSa9sJGwKPktLaWtwE= +github.com/lightninglabs/neutrino v0.16.1 h1:5Kz4ToxncEVkpKC6fwUjXKtFKJhuxlG3sBB3MdJTJjs= +github.com/lightninglabs/neutrino v0.16.1/go.mod h1:L+5UAccpUdyM7yDgmQySgixf7xmwBgJtOfs/IP26jCs= github.com/lightninglabs/neutrino/cache v1.1.2 h1:C9DY/DAPaPxbFC+xNNEI/z1SJY9GS3shmlu5hIQ798g= github.com/lightninglabs/neutrino/cache v1.1.2/go.mod h1:XJNcgdOw1LQnanGjw8Vj44CvguYA25IMKjWFZczwZuo= -github.com/lightninglabs/pool v0.6.5-beta.0.20241015105339-044cb451b5df h1:EdiN1GxUI+442K6xZcLg9mq/PekvRoSWUGuEKCjLDww= -github.com/lightninglabs/pool v0.6.5-beta.0.20241015105339-044cb451b5df/go.mod h1:ONyfvFj3e3D0AkhpTTZPGDuIDAcY2ODnlj86aDfs2q4= -github.com/lightninglabs/pool/auctioneerrpc v1.1.2 h1:Dbg+9Z9jXnhimR27EN37foc4aB1uQqndm/YOO+XAdMA= -github.com/lightninglabs/pool/auctioneerrpc v1.1.2/go.mod h1:1wKDzN2zEP8srOi0B9iySlEsPdoPhw6oo3Vbm1v4Mhw= -github.com/lightninglabs/pool/poolrpc v1.0.0 h1:vvosrgNx9WXF4mcHGqLjZOW8wNM0q+BLVfdn897AFLw= -github.com/lightninglabs/pool/poolrpc v1.0.0/go.mod h1:ZqpEpBFRMMBAerMmilEjh27tqauSXDwLaLR0O3jvmMA= +github.com/lightninglabs/pool v0.6.5-beta.0.20250305125211-4e860ec4e77f h1:muqd/WRjqh7/EV9UYP6y6IpSqttQ/ENzp/1NEkY8Gd4= +github.com/lightninglabs/pool v0.6.5-beta.0.20250305125211-4e860ec4e77f/go.mod h1:rZXAj2nar3MkqXaRLChdjC5HYdES6kb8IMTEO54RvQU= +github.com/lightninglabs/pool/auctioneerrpc v1.1.3-0.20250305125211-4e860ec4e77f h1:7AzUjqiDune5yUSj2fmCDgs9wE/lNb/OfRquAWzw6DU= +github.com/lightninglabs/pool/auctioneerrpc v1.1.3-0.20250305125211-4e860ec4e77f/go.mod h1:guqpFCgo8FE+LJUzz5KoV41pZkFFLCWWsFZWHN5x7ts= +github.com/lightninglabs/pool/poolrpc v1.0.1-0.20250305125211-4e860ec4e77f h1:5pATHJQX/HGKOiC6lTsuv+erAwpJNArMhOI7ehgQ1dw= +github.com/lightninglabs/pool/poolrpc v1.0.1-0.20250305125211-4e860ec4e77f/go.mod h1:lGs2hSVZ+GFpdv3btaIl9icG5/gz7BBRfvmD2iqqNl0= github.com/lightninglabs/protobuf-go-hex-display v1.34.2-hex-display h1:w7FM5LH9Z6CpKxl13mS48idsu6F+cEZf0lkyiV+Dq9g= github.com/lightninglabs/protobuf-go-hex-display v1.34.2-hex-display/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -github.com/lightninglabs/taproot-assets v0.5.1 h1:TBE887fUDWAp5sn9X9A95BGdD33tmlvYeNeFq+nJhyY= -github.com/lightninglabs/taproot-assets v0.5.1/go.mod h1:W/R7DYNT8su4SkmHfea1sASR6o4t+Ztfu7wF/Gzdtnw= +github.com/lightninglabs/taproot-assets v0.5.2-0.20250326140136-a724d385e7ae h1:t2GDmnV/ab+dsaTDjCDTGbCVSMCE13pxc6zu4zQFsJs= +github.com/lightninglabs/taproot-assets v0.5.2-0.20250326140136-a724d385e7ae/go.mod h1:hLK/spdccubmDZjufTqGJrj9mn0hQpOxaJBQ767Idxw= github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb h1:yfM05S8DXKhuCBp5qSMZdtSwvJ+GFzl94KbXMNB1JDY= github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb/go.mod h1:c0kvRShutpj3l6B9WtTsNTBUtjSmjZXbJd9ZBRQOSKI= -github.com/lightningnetwork/lnd v0.18.5-beta h1:N+Ch1yUQ1WfbDzKPzEmxkh09BWwuADpUPAMVLf1I+W8= -github.com/lightningnetwork/lnd v0.18.5-beta/go.mod h1:RHhQWONtIMdXeveMjh2CHmvbsJTOplZTmRR1dUBv8/E= +github.com/lightningnetwork/lnd v0.19.0-beta.rc1 h1:FJvsdw4PZ41ykrHi7vNGit9IIohE+IlKpVwL5/1+L+0= +github.com/lightningnetwork/lnd v0.19.0-beta.rc1/go.mod h1:BP+neeFpmeAA7o5hu3zp3FwOEl26idSyPV9zBOavp6E= github.com/lightningnetwork/lnd/cert v1.2.2 h1:71YK6hogeJtxSxw2teq3eGeuy4rHGKcFf0d0Uy4qBjI= github.com/lightningnetwork/lnd/cert v1.2.2/go.mod h1:jQmFn/Ez4zhDgq2hnYSw8r35bqGVxViXhX6Cd7HXM6U= github.com/lightningnetwork/lnd/clock v1.1.1 h1:OfR3/zcJd2RhH0RU+zX/77c0ZiOnIMsDIBjgjWdZgA0= github.com/lightningnetwork/lnd/clock v1.1.1/go.mod h1:mGnAhPyjYZQJmebS7aevElXKTFDuO+uNFFfMXK1W8xQ= github.com/lightningnetwork/lnd/fn v1.2.3 h1:Q1OrgNSgQynVheBNa16CsKVov1JI5N2AR6G07x9Mles= github.com/lightningnetwork/lnd/fn v1.2.3/go.mod h1:SyFohpVrARPKH3XVAJZlXdVe+IwMYc4OMAvrDY32kw0= -github.com/lightningnetwork/lnd/healthcheck v1.2.5 h1:aTJy5xeBpcWgRtW/PGBDe+LMQEmNm/HQewlQx2jt7OA= -github.com/lightningnetwork/lnd/healthcheck v1.2.5/go.mod h1:G7Tst2tVvWo7cx6mSBEToQC5L1XOGxzZTPB29g9Rv2I= -github.com/lightningnetwork/lnd/kvdb v1.4.10 h1:vK89IVv1oVH9ubQWU+EmoCQFeVRaC8kfmOrqHbY5zoY= -github.com/lightningnetwork/lnd/kvdb v1.4.10/go.mod h1:J2diNABOoII9UrMnxXS5w7vZwP7CA1CStrl8MnIrb3A= +github.com/lightningnetwork/lnd/fn/v2 v2.0.8 h1:r2SLz7gZYQPVc3IZhU82M66guz3Zk2oY+Rlj9QN5S3g= +github.com/lightningnetwork/lnd/fn/v2 v2.0.8/go.mod h1:TOzwrhjB/Azw1V7aa8t21ufcQmdsQOQMDtxVOQWNl8s= +github.com/lightningnetwork/lnd/healthcheck v1.2.6 h1:1sWhqr93GdkWy4+6U7JxBfcyZIE78MhIHTJZfPx7qqI= +github.com/lightningnetwork/lnd/healthcheck v1.2.6/go.mod h1:Mu02um4CWY/zdTOvFje7WJgJcHyX2zq/FG3MhOAiGaQ= +github.com/lightningnetwork/lnd/kvdb v1.4.12 h1:Y0WY5Tbjyjn6eCYh068qkWur5oFtioJlfxc8w5SlJeQ= +github.com/lightningnetwork/lnd/kvdb v1.4.12/go.mod h1:hx9buNcxsZpZwh8m1sjTQwy2SOeBoWWOZ3RnOQkMsxI= github.com/lightningnetwork/lnd/queue v1.1.1 h1:99ovBlpM9B0FRCGYJo6RSFDlt8/vOkQQZznVb18iNMI= github.com/lightningnetwork/lnd/queue v1.1.1/go.mod h1:7A6nC1Qrm32FHuhx/mi1cieAiBZo5O6l8IBIoQxvkz4= -github.com/lightningnetwork/lnd/sqldb v1.0.4 h1:9cMwPxcrLQG8UmyZO4q8SpR7NmxSwBMbj3AispdcwHg= -github.com/lightningnetwork/lnd/sqldb v1.0.4/go.mod h1:4cQOkdymlZ1znnjuRNvMoatQGJkRneTj2CoPSPaQhWo= +github.com/lightningnetwork/lnd/sqldb v1.0.7 h1:wQ4DdHY++uwxwth2CHL7s+duGqmMLaoIRBOQCa9HPTk= +github.com/lightningnetwork/lnd/sqldb v1.0.7/go.mod h1:OG09zL/PHPaBJefp4HsPz2YLUJ+zIQHbpgCtLnOx8I4= github.com/lightningnetwork/lnd/ticker v1.1.1 h1:J/b6N2hibFtC7JLV77ULQp++QLtCwT6ijJlbdiZFbSM= github.com/lightningnetwork/lnd/ticker v1.1.1/go.mod h1:waPTRAAcwtu7Ji3+3k+u/xH5GHovTsCoSVpho0KDvdA= -github.com/lightningnetwork/lnd/tlv v1.2.6 h1:icvQG2yDr6k3ZuZzfRdG3EJp6pHurcuh3R6dg0gv/Mw= -github.com/lightningnetwork/lnd/tlv v1.2.6/go.mod h1:/CmY4VbItpOldksocmGT4lxiJqRP9oLxwSZOda2kzNQ= -github.com/lightningnetwork/lnd/tor v1.1.2 h1:3zv9z/EivNFaMF89v3ciBjCS7kvCj4ZFG7XvD2Qq0/k= -github.com/lightningnetwork/lnd/tor v1.1.2/go.mod h1:j7T9uJ2NLMaHwE7GiBGnpYLn4f7NRoTM6qj+ul6/ycA= +github.com/lightningnetwork/lnd/tlv v1.3.0 h1:exS/KCPEgpOgviIttfiXAPaUqw2rHQrnUOpP7HPBPiY= +github.com/lightningnetwork/lnd/tlv v1.3.0/go.mod h1:pJuiBj1ecr1WWLOtcZ+2+hu9Ey25aJWFIsjmAoPPnmc= +github.com/lightningnetwork/lnd/tor v1.1.6 h1:WHUumk7WgU6BUFsqHuqszI9P6nfhMeIG+rjJBlVE6OE= +github.com/lightningnetwork/lnd/tor v1.1.6/go.mod h1:qSRB8llhAK+a6kaTPWOLLXSZc6Hg8ZC0mq1sUQ/8JfI= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 h1:sjOGyegMIhvgfq5oaue6Td+hxZuf3tDC8lAPrFldqFw= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796/go.mod h1:3p7ZTf9V1sNPI5H8P3NkTFF4LuwMdPl2DodF60qAKqY= github.com/ltcsuite/ltcutil v0.0.0-20181217130922-17f3b04680b6/go.mod h1:8Vg/LTOO0KYa/vlHWJ6XZAevPQThGH5sufO0Hrou/lA= @@ -1236,6 +1240,8 @@ github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcs github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1273,8 +1279,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v1.1.14 h1:rgSuzbmgz5DUJjeSnw337TxDbRuqjs6iqQck/2weR6w= -github.com/opencontainers/runc v1.1.14/go.mod h1:E4C2z+7BxR7GHXp0hAY53mek+x49X1LjPNeMTfRGvOA= +github.com/opencontainers/runc v1.2.0 h1:qke7ZVCmJcKrJVY2iHJVC+0kql9uYdkusOPsQOOeBw4= +github.com/opencontainers/runc v1.2.0/go.mod h1:/PXzF0h531HTMsYQnmxXkBD7YaGShm/2zcRB79dksUc= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/ory/dockertest/v3 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg= @@ -1329,15 +1335,15 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= @@ -1345,14 +1351,12 @@ github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9Nz github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y= -github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -1378,8 +1382,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA= @@ -1390,8 +1395,8 @@ github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/urfave/cli v1.22.9 h1:cv3/KhXGBGjEXLC4bH0sLuJ9BewaAbpk5oyMOveu4pw= -github.com/urfave/cli v1.22.9/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= +github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= @@ -1438,22 +1443,24 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 h1:DheMAlT6POBP+gh8RUH19EOTnQIor5QE0uSRPtzCpSw= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0/go.mod h1:wZcGmeVO9nzP67aYSLDqXNWK87EZWhi7JWj1v7ZXf94= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 h1:DeFD0VgTZ+Cj6hxravYYZE2W4GlneVH81iAOPjZkzk8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0/go.mod h1:GijYcYmNpX1KazD5JmWGsi4P7dDTTTnfv1UbGn84MnU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 h1:gvmNvqrPYovvyRmCSygkUDyL8lC5Tl845MLEwqpxhEU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0/go.mod h1:vNUq47TGFioo+ffTSnKNdob241vePmtNZnAODKapKd0= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= -go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= @@ -1501,8 +1508,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= +golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1634,8 +1641,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= +golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1685,8 +1692,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1788,8 +1795,8 @@ golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1799,8 +1806,8 @@ golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= -golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= -golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= +golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1817,8 +1824,8 @@ golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2215,23 +2222,21 @@ lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v4 v4.21.2 h1:dycHFB/jDc3IyacKipCNSDrjIC0Lm1hyoWOZTRR20Lk= -modernc.org/cc/v4 v4.21.2/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ= +modernc.org/cc/v4 v4.21.4 h1:3Be/Rdo1fpr8GrQ7IVw9OHtplU4gWbb+wNgeoBMmGLQ= +modernc.org/cc/v4 v4.21.4/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ= modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= -modernc.org/ccgo/v4 v4.17.8 h1:yyWBf2ipA0Y9GGz/MmCmi3EFpKgeS7ICrAFes+suEbs= -modernc.org/ccgo/v4 v4.17.8/go.mod h1:buJnJ6Fn0tyAdP/dqePbrrvLyr6qslFfTbFrCuaYvtA= +modernc.org/ccgo/v4 v4.19.2 h1:lwQZgvboKD0jBwdaeVCTouxhxAyN6iawF3STraAal8Y= +modernc.org/ccgo/v4 v4.19.2/go.mod h1:ysS3mxiMV38XGRTTcgo0DQTeTmAO4oCmJl1nX9VFI3s= modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw= modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU= -modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI= -modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= @@ -2240,8 +2245,8 @@ modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= -modernc.org/libc v1.50.9 h1:hIWf1uz55lorXQhfoEoezdUHjxzuO6ceshET/yWjSjk= -modernc.org/libc v1.50.9/go.mod h1:15P6ublJ9FJR8YQCGy8DeQ2Uwur7iW9Hserr/T3OFZE= +modernc.org/libc v1.55.3 h1:AzcW1mhlPNrRtjS5sS+eW2ISCgSOLLNyFzRh/V3Qj/U= +modernc.org/libc v1.55.3/go.mod h1:qFXepLhz+JjFThQ4kzwzOjA/y/artDeg+pcYnY+Q83w= modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= @@ -2258,8 +2263,8 @@ modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc= modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss= modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= -modernc.org/sqlite v1.30.0 h1:8YhPUs/HTnlEgErn/jSYQTwHN/ex8CjHHjg+K9iG7LM= -modernc.org/sqlite v1.30.0/go.mod h1:cgkTARJ9ugeXSNaLBPK3CqbOe7Ec7ZhWPoMFGldEYEw= +modernc.org/sqlite v1.34.5 h1:Bb6SR13/fjp15jt70CL4f18JIN7p7dnMExd+UFnF15g= +modernc.org/sqlite v1.34.5/go.mod h1:YLuNmX9NKs8wRNK2ko1LW1NGYcc9FkBO69JOt1AR9JE= modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= @@ -2271,8 +2276,8 @@ modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= -pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= +pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/itest/litd_test.go b/itest/litd_test.go index 2736baf6c..642bcf9a9 100644 --- a/itest/litd_test.go +++ b/itest/litd_test.go @@ -2,19 +2,16 @@ package itest import ( "fmt" + "os" "strings" "testing" "time" - "github.com/btcsuite/btclog" - "github.com/lightningnetwork/lnd/build" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/lntest" - "github.com/lightningnetwork/lnd/signal" "github.com/stretchr/testify/require" ) -var interceptor *signal.Interceptor - // TestLightningTerminal performs a series of integration tests amongst a // programmatically driven network of lnd nodes. func TestLightningTerminal(t *testing.T) { @@ -23,10 +20,14 @@ func TestLightningTerminal(t *testing.T) { t.Skip("integration tests not selected with flag 'itest'") } + // TODO(elle): temporary override of the default maximum number of mined + // blocks per test. We will need to do quite a bit of refactoring + // before we can remove this so we override it for now to allow us to + // do the refactor in stages. + lntest.MaxBlocksMinedPerTest = 250 + // Now we can set up our test harness (LND instance), with the chain // backend we just created. - ht := newHarnessTest(t, nil) - ht.setupLogging() binary := getLitdBinary() lndBinary := strings.ReplaceAll( @@ -121,21 +122,7 @@ func TestLightningTerminal(t *testing.T) { } } -func (h *harnessTest) setupLogging() { - logWriter := build.NewRotatingLogWriter() - - if interceptor != nil { - return - } - - ic, err := signal.Intercept() - require.NoError(h.t, err) - interceptor = &ic - - UseLogger(build.NewSubLogger(Subsystem, func(tag string) btclog.Logger { - return logWriter.GenSubLogger(tag, func() {}) - })) - - err = build.ParseAndSetDebugLevels("debug", logWriter) - require.NoError(h.t, err) +func init() { + logger := btclog.NewSLogger(btclog.NewDefaultHandler(os.Stdout)) + UseLogger(logger.SubSystem(Subsystem)) } diff --git a/itest/log.go b/itest/log.go index 67211af57..b8bb8dc69 100644 --- a/itest/log.go +++ b/itest/log.go @@ -1,7 +1,7 @@ package itest import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/litrpc/go.mod b/litrpc/go.mod index 7e35ce655..15fc69f75 100644 --- a/litrpc/go.mod +++ b/litrpc/go.mod @@ -1,13 +1,13 @@ module github.com/lightninglabs/lightning-terminal/litrpc -go 1.22.3 +go 1.23.6 require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 github.com/lightninglabs/faraday/frdrpc v1.0.0 github.com/lightninglabs/loop/looprpc v1.0.0 github.com/lightninglabs/pool/poolrpc v1.0.0 - github.com/lightningnetwork/lnd v0.18.0-beta.1 + github.com/lightningnetwork/lnd v0.18.0-beta.rc4.0.20250304192711-9feb761b4ec4 google.golang.org/grpc v1.65.0 google.golang.org/protobuf v1.34.2 ) @@ -19,18 +19,19 @@ require ( github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/aead/siphash v1.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240403021926-ae5533602c46 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.3.3 // indirect + github.com/btcsuite/btcd v0.24.3-0.20241210095828-e646d437e95b // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect github.com/btcsuite/btcd/btcutil v1.1.5 // indirect github.com/btcsuite/btcd/btcutil/psbt v1.1.8 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect - github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f // indirect - github.com/btcsuite/btcwallet v0.16.10-0.20240404104514-b2f31f9045fb // indirect - github.com/btcsuite/btcwallet/wallet/txauthor v1.3.4 // indirect - github.com/btcsuite/btcwallet/wallet/txrules v1.2.1 // indirect - github.com/btcsuite/btcwallet/wallet/txsizes v1.2.4 // indirect - github.com/btcsuite/btcwallet/walletdb v1.4.2 // indirect - github.com/btcsuite/btcwallet/wtxmgr v1.5.3 // indirect + github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c // indirect + github.com/btcsuite/btclog/v2 v2.0.1-0.20250110154127-3ae4bf1cb318 // indirect + github.com/btcsuite/btcwallet v0.16.10-0.20241127094224-93c858b2ad63 // indirect + github.com/btcsuite/btcwallet/wallet/txauthor v1.3.5 // indirect + github.com/btcsuite/btcwallet/wallet/txrules v1.2.2 // indirect + github.com/btcsuite/btcwallet/wallet/txsizes v1.2.5 // indirect + github.com/btcsuite/btcwallet/walletdb v1.4.4 // indirect + github.com/btcsuite/btcwallet/wtxmgr v1.5.4 // indirect github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd // indirect github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 // indirect github.com/btcsuite/winsvc v1.0.0 // indirect @@ -79,9 +80,10 @@ require ( github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jackc/pgtype v1.14.0 // indirect github.com/jackc/pgx/v4 v4.18.2 // indirect + github.com/jackc/pgx/v5 v5.3.1 // indirect github.com/jessevdk/go-flags v1.4.0 // indirect github.com/jonboulle/clockwork v0.2.2 // indirect - github.com/jrick/logrotate v1.0.0 // indirect + github.com/jrick/logrotate v1.1.2 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/juju/clock v1.1.1 // indirect github.com/juju/errors v1.0.0 // indirect @@ -89,22 +91,23 @@ require ( github.com/juju/testing v1.0.2 // indirect github.com/juju/utils/v3 v3.2.0 // indirect github.com/kkdai/bstream v1.0.0 // indirect + github.com/klauspost/compress v1.17.9 // indirect github.com/lib/pq v1.10.9 // indirect github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf // indirect github.com/lightninglabs/loop/swapserverrpc v1.0.8 // indirect github.com/lightninglabs/neutrino v0.16.1-0.20240425105051-602843d34ffd // indirect github.com/lightninglabs/neutrino/cache v1.1.2 // indirect github.com/lightninglabs/pool/auctioneerrpc v1.1.2 // indirect - github.com/lightningnetwork/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f // indirect + github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb // indirect github.com/lightningnetwork/lnd/clock v1.1.1 // indirect - github.com/lightningnetwork/lnd/fn v1.0.5 // indirect - github.com/lightningnetwork/lnd/healthcheck v1.2.4 // indirect - github.com/lightningnetwork/lnd/kvdb v1.4.8 // indirect + github.com/lightningnetwork/lnd/fn/v2 v2.0.8 // indirect + github.com/lightningnetwork/lnd/healthcheck v1.2.6 // indirect + github.com/lightningnetwork/lnd/kvdb v1.4.12 // indirect github.com/lightningnetwork/lnd/queue v1.1.1 // indirect - github.com/lightningnetwork/lnd/sqldb v1.0.2 // indirect + github.com/lightningnetwork/lnd/sqldb v1.0.7 // indirect github.com/lightningnetwork/lnd/ticker v1.1.1 // indirect - github.com/lightningnetwork/lnd/tlv v1.2.3 // indirect - github.com/lightningnetwork/lnd/tor v1.1.2 // indirect + github.com/lightningnetwork/lnd/tlv v1.3.0 // indirect + github.com/lightningnetwork/lnd/tor v1.1.4 // indirect github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect @@ -138,7 +141,7 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect - go.etcd.io/bbolt v1.3.7 // indirect + go.etcd.io/bbolt v1.3.11 // indirect go.etcd.io/etcd/api/v3 v3.5.7 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.7 // indirect go.etcd.io/etcd/client/v2 v2.305.7 // indirect @@ -181,7 +184,7 @@ require ( modernc.org/libc v1.49.3 // indirect modernc.org/mathutil v1.6.0 // indirect modernc.org/memory v1.8.0 // indirect - modernc.org/sqlite v1.29.8 // indirect + modernc.org/sqlite v1.29.10 // indirect modernc.org/strutil v1.2.0 // indirect modernc.org/token v1.1.0 // indirect sigs.k8s.io/yaml v1.2.0 // indirect diff --git a/litrpc/go.sum b/litrpc/go.sum index bb7de847b..5e9de1f20 100644 --- a/litrpc/go.sum +++ b/litrpc/go.sum @@ -639,12 +639,12 @@ github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A= -github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240403021926-ae5533602c46 h1:tjpNTdZNQqE14menwDGAxWfzN0DFHVTXFEyEL8yvA/4= -github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240403021926-ae5533602c46/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg= +github.com/btcsuite/btcd v0.24.3-0.20241210095828-e646d437e95b h1:VQoobSrWdxICuqFU3tKVu/Lzk7BTk9SsCgRr5dUvC70= +github.com/btcsuite/btcd v0.24.3-0.20241210095828-e646d437e95b/go.mod h1:zHK7t7sw8XbsCkD64WePHE3r3k9/XoGAcf6mXV14c64= github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= -github.com/btcsuite/btcd/btcec/v2 v2.3.3 h1:6+iXlDKE8RMtKsvK0gshlXIuPbyWM/h84Ensb7o3sC0= -github.com/btcsuite/btcd/btcec/v2 v2.3.3/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ= +github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= github.com/btcsuite/btcd/btcutil v1.1.5 h1:+wER79R5670vs/ZusMTF1yTcRYE5GUsFbdjdisflzM8= @@ -655,21 +655,24 @@ github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtyd github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 h1:59Kx4K6lzOW5w6nFlA0v5+lk/6sjybR934QNHSJZPTQ= github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c h1:4HxD1lBUGUddhzgaNgrCPsFWd7cGYNpeFUgd9ZIgyM0= +github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c/go.mod h1:w7xnGOhwT3lmrS4H3b/D1XAXxvh+tbhUm8xeHN2y3TQ= +github.com/btcsuite/btclog/v2 v2.0.1-0.20250110154127-3ae4bf1cb318 h1:oCjIcinPt7XQ644MP/22JcjYEC84qRc3bRBH0d7Hhd4= +github.com/btcsuite/btclog/v2 v2.0.1-0.20250110154127-3ae4bf1cb318/go.mod h1:XItGUfVOxotJL8kkuk2Hj3EVow5KCugXl3wWfQ6K0AE= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcwallet v0.16.10-0.20240404104514-b2f31f9045fb h1:qoIOlBPRZWtfpcbQlNFf67Wz8ZlXo+mxQc9Pnbm/iqU= -github.com/btcsuite/btcwallet v0.16.10-0.20240404104514-b2f31f9045fb/go.mod h1:2C3Q/MhYAKmk7F+Tey6LfKtKRTdQsrCf8AAAzzDPmH4= -github.com/btcsuite/btcwallet/wallet/txauthor v1.3.4 h1:poyHFf7+5+RdxNp5r2T6IBRD7RyraUsYARYbp/7t4D8= -github.com/btcsuite/btcwallet/wallet/txauthor v1.3.4/go.mod h1:GETGDQuyq+VFfH1S/+/7slLM/9aNa4l7P4ejX6dJfb0= -github.com/btcsuite/btcwallet/wallet/txrules v1.2.1 h1:UZo7YRzdHbwhK7Rhv3PO9bXgTxiOH45edK5qdsdiatk= -github.com/btcsuite/btcwallet/wallet/txrules v1.2.1/go.mod h1:MVSqRkju/IGxImXYPfBkG65FgEZYA4fXchheILMVl8g= -github.com/btcsuite/btcwallet/wallet/txsizes v1.2.4 h1:nmcKAVTv/cmYrs0A4hbiC6Qw+WTLYy/14SmTt3mLnCo= -github.com/btcsuite/btcwallet/wallet/txsizes v1.2.4/go.mod h1:YqJR8WAAHiKIPesZTr9Cx9Az4fRhRLcJ6GcxzRUZCAc= -github.com/btcsuite/btcwallet/walletdb v1.4.2 h1:zwZZ+zaHo4mK+FAN6KeK85S3oOm+92x2avsHvFAhVBE= -github.com/btcsuite/btcwallet/walletdb v1.4.2/go.mod h1:7ZQ+BvOEre90YT7eSq8bLoxTsgXidUzA/mqbRS114CQ= -github.com/btcsuite/btcwallet/wtxmgr v1.5.3 h1:QrWCio9Leh3DwkWfp+A1SURj8pYn3JuTLv3waP5uEro= -github.com/btcsuite/btcwallet/wtxmgr v1.5.3/go.mod h1:M4nQpxGTXiDlSOODKXboXX7NFthmiBNjzAKKNS7Fhjg= +github.com/btcsuite/btcwallet v0.16.10-0.20241127094224-93c858b2ad63 h1:YN+PekOLlLoGxE3P5RJaGgodZD5DDJSU8eXQZVwwCxM= +github.com/btcsuite/btcwallet v0.16.10-0.20241127094224-93c858b2ad63/go.mod h1:1HJXYbjJzgumlnxOC2+ViR1U+gnHWoOn7WeK5OfY1eU= +github.com/btcsuite/btcwallet/wallet/txauthor v1.3.5 h1:Rr0njWI3r341nhSPesKQ2JF+ugDSzdPoeckS75SeDZk= +github.com/btcsuite/btcwallet/wallet/txauthor v1.3.5/go.mod h1:+tXJ3Ym0nlQc/iHSwW1qzjmPs3ev+UVWMbGgfV1OZqU= +github.com/btcsuite/btcwallet/wallet/txrules v1.2.2 h1:YEO+Lx1ZJJAtdRrjuhXjWrYsmAk26wLTlNzxt2q0lhk= +github.com/btcsuite/btcwallet/wallet/txrules v1.2.2/go.mod h1:4v+grppsDpVn91SJv+mZT7B8hEV4nSmpREM4I8Uohws= +github.com/btcsuite/btcwallet/wallet/txsizes v1.2.5 h1:93o5Xz9dYepBP4RMFUc9RGIFXwqP2volSWRkYJFrNtI= +github.com/btcsuite/btcwallet/wallet/txsizes v1.2.5/go.mod h1:lQ+e9HxZ85QP7r3kdxItkiMSloSLg1PEGis5o5CXUQw= +github.com/btcsuite/btcwallet/walletdb v1.4.4 h1:BDel6iT/ltYSIYKs0YbjwnEDi7xR3yzABIsQxN2F1L8= +github.com/btcsuite/btcwallet/walletdb v1.4.4/go.mod h1:jk/hvpLFINF0C1kfTn0bfx2GbnFT+Nvnj6eblZALfjs= +github.com/btcsuite/btcwallet/wtxmgr v1.5.4 h1:hJjHy1h/dJwSfD9uDsCwcH21D1iOrus6OrI5gR9E/O0= +github.com/btcsuite/btcwallet/wtxmgr v1.5.4/go.mod h1:lAv0b1Vj9Ig5U8QFm0yiJ9WqPl8yGO/6l7JxdHY1PKE= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/golangcrypto v0.0.0-20150304025918-53f62d9b43e8/go.mod h1:tYvUd8KLhm/oXvUeSEs2VlLghFjQt9+ZaF9ghH0JNjc= @@ -1016,6 +1019,8 @@ github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQ github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= github.com/jackc/pgx/v4 v4.18.2 h1:xVpYkNR5pk5bMCZGfClbO962UIqVABcAGt7ha1s/FeU= github.com/jackc/pgx/v4 v4.18.2/go.mod h1:Ey4Oru5tH5sB6tV7hDmfWFahwF15Eb7DNXlRKx2CkVw= +github.com/jackc/pgx/v5 v5.3.1 h1:Fcr8QJ1ZeLi5zsPZqQeUZhNhxfkkKBOgJuYkJHoBOtU= +github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= @@ -1025,8 +1030,9 @@ github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJS github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jrick/logrotate v1.0.0 h1:lQ1bL/n9mBNeIXoTUoYRlK4dHuNJVofX9oWqBtPnSzI= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jrick/logrotate v1.1.2 h1:6ePk462NCX7TfKtNp5JJ7MbA2YIslkpfgP03TlTYMN0= +github.com/jrick/logrotate v1.1.2/go.mod h1:f9tdWggSVK3iqavGpyvegq5IhNois7KXmasU6/N96OQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -1057,6 +1063,8 @@ github.com/kkdai/bstream v1.0.0 h1:Se5gHwgp2VT2uHfDrkbbgbgEvV9cimLELwrPJctSjg8= github.com/kkdai/bstream v1.0.0/go.mod h1:FDnDOHt5Yx4p3FaHcioFT0QjDOtgUpvjeZqAs+NVZZA= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -1097,28 +1105,28 @@ github.com/lightninglabs/pool/poolrpc v1.0.0 h1:vvosrgNx9WXF4mcHGqLjZOW8wNM0q+BL github.com/lightninglabs/pool/poolrpc v1.0.0/go.mod h1:ZqpEpBFRMMBAerMmilEjh27tqauSXDwLaLR0O3jvmMA= github.com/lightninglabs/protobuf-go-hex-display v1.34.2-hex-display h1:w7FM5LH9Z6CpKxl13mS48idsu6F+cEZf0lkyiV+Dq9g= github.com/lightninglabs/protobuf-go-hex-display v1.34.2-hex-display/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -github.com/lightningnetwork/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f h1:Pua7+5TcFEJXIIZ1I2YAUapmbcttmLj4TTi786bIi3s= -github.com/lightningnetwork/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f/go.mod h1:c0kvRShutpj3l6B9WtTsNTBUtjSmjZXbJd9ZBRQOSKI= -github.com/lightningnetwork/lnd v0.18.0-beta.1 h1:7DpRre4rtUmLim4JC5oPd3KEd1Q3QpWTH6jQgSOGNYM= -github.com/lightningnetwork/lnd v0.18.0-beta.1/go.mod h1:1SA9iv9rZddNAcfP38SN9lNSVT1zf5aqmukLUoomjDU= +github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb h1:yfM05S8DXKhuCBp5qSMZdtSwvJ+GFzl94KbXMNB1JDY= +github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb/go.mod h1:c0kvRShutpj3l6B9WtTsNTBUtjSmjZXbJd9ZBRQOSKI= +github.com/lightningnetwork/lnd v0.18.0-beta.rc4.0.20250304192711-9feb761b4ec4 h1:3UfT25sO71q3V7RSb/wE0ruiwk3ex30h7ZvPZ0O2Z80= +github.com/lightningnetwork/lnd v0.18.0-beta.rc4.0.20250304192711-9feb761b4ec4/go.mod h1:5fYMAma+ylPOV+wycJuxSIwPLyRYRqKZTfiqk+59c+s= github.com/lightningnetwork/lnd/clock v1.1.1 h1:OfR3/zcJd2RhH0RU+zX/77c0ZiOnIMsDIBjgjWdZgA0= github.com/lightningnetwork/lnd/clock v1.1.1/go.mod h1:mGnAhPyjYZQJmebS7aevElXKTFDuO+uNFFfMXK1W8xQ= -github.com/lightningnetwork/lnd/fn v1.0.5 h1:ffDgMSn83avw6rNzxhbt6w5/2oIrwQKTPGfyaLupZtE= -github.com/lightningnetwork/lnd/fn v1.0.5/go.mod h1:P027+0CyELd92H9gnReUkGGAqbFA1HwjHWdfaDFD51U= -github.com/lightningnetwork/lnd/healthcheck v1.2.4 h1:lLPLac+p/TllByxGSlkCwkJlkddqMP5UCoawCj3mgFQ= -github.com/lightningnetwork/lnd/healthcheck v1.2.4/go.mod h1:G7Tst2tVvWo7cx6mSBEToQC5L1XOGxzZTPB29g9Rv2I= -github.com/lightningnetwork/lnd/kvdb v1.4.8 h1:xH0a5Vi1yrcZ5BEeF2ba3vlKBRxrL9uYXlWTjOjbNTY= -github.com/lightningnetwork/lnd/kvdb v1.4.8/go.mod h1:J2diNABOoII9UrMnxXS5w7vZwP7CA1CStrl8MnIrb3A= +github.com/lightningnetwork/lnd/fn/v2 v2.0.8 h1:r2SLz7gZYQPVc3IZhU82M66guz3Zk2oY+Rlj9QN5S3g= +github.com/lightningnetwork/lnd/fn/v2 v2.0.8/go.mod h1:TOzwrhjB/Azw1V7aa8t21ufcQmdsQOQMDtxVOQWNl8s= +github.com/lightningnetwork/lnd/healthcheck v1.2.6 h1:1sWhqr93GdkWy4+6U7JxBfcyZIE78MhIHTJZfPx7qqI= +github.com/lightningnetwork/lnd/healthcheck v1.2.6/go.mod h1:Mu02um4CWY/zdTOvFje7WJgJcHyX2zq/FG3MhOAiGaQ= +github.com/lightningnetwork/lnd/kvdb v1.4.12 h1:Y0WY5Tbjyjn6eCYh068qkWur5oFtioJlfxc8w5SlJeQ= +github.com/lightningnetwork/lnd/kvdb v1.4.12/go.mod h1:hx9buNcxsZpZwh8m1sjTQwy2SOeBoWWOZ3RnOQkMsxI= github.com/lightningnetwork/lnd/queue v1.1.1 h1:99ovBlpM9B0FRCGYJo6RSFDlt8/vOkQQZznVb18iNMI= github.com/lightningnetwork/lnd/queue v1.1.1/go.mod h1:7A6nC1Qrm32FHuhx/mi1cieAiBZo5O6l8IBIoQxvkz4= -github.com/lightningnetwork/lnd/sqldb v1.0.2 h1:PfuYzScYMD9/QonKo/QvgsbXfTnH5DfldIimkfdW4Bk= -github.com/lightningnetwork/lnd/sqldb v1.0.2/go.mod h1:V2Xl6JNWLTKE97WJnwfs0d0TYJdIQTqK8/3aAwkd3qI= +github.com/lightningnetwork/lnd/sqldb v1.0.7 h1:wQ4DdHY++uwxwth2CHL7s+duGqmMLaoIRBOQCa9HPTk= +github.com/lightningnetwork/lnd/sqldb v1.0.7/go.mod h1:OG09zL/PHPaBJefp4HsPz2YLUJ+zIQHbpgCtLnOx8I4= github.com/lightningnetwork/lnd/ticker v1.1.1 h1:J/b6N2hibFtC7JLV77ULQp++QLtCwT6ijJlbdiZFbSM= github.com/lightningnetwork/lnd/ticker v1.1.1/go.mod h1:waPTRAAcwtu7Ji3+3k+u/xH5GHovTsCoSVpho0KDvdA= -github.com/lightningnetwork/lnd/tlv v1.2.3 h1:If5ibokA/UoCBGuCKaY6Vn2SJU0l9uAbehCnhTZjEP8= -github.com/lightningnetwork/lnd/tlv v1.2.3/go.mod h1:zDkmqxOczP6LaLTvSFDQ1SJUfHcQRCMKFj93dn3eMB8= -github.com/lightningnetwork/lnd/tor v1.1.2 h1:3zv9z/EivNFaMF89v3ciBjCS7kvCj4ZFG7XvD2Qq0/k= -github.com/lightningnetwork/lnd/tor v1.1.2/go.mod h1:j7T9uJ2NLMaHwE7GiBGnpYLn4f7NRoTM6qj+ul6/ycA= +github.com/lightningnetwork/lnd/tlv v1.3.0 h1:exS/KCPEgpOgviIttfiXAPaUqw2rHQrnUOpP7HPBPiY= +github.com/lightningnetwork/lnd/tlv v1.3.0/go.mod h1:pJuiBj1ecr1WWLOtcZ+2+hu9Ey25aJWFIsjmAoPPnmc= +github.com/lightningnetwork/lnd/tor v1.1.4 h1:TUW27EXqoZCcCAQPlD4aaDfh8jMbBS9CghNz50qqwtA= +github.com/lightningnetwork/lnd/tor v1.1.4/go.mod h1:qSRB8llhAK+a6kaTPWOLLXSZc6Hg8ZC0mq1sUQ/8JfI= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 h1:sjOGyegMIhvgfq5oaue6Td+hxZuf3tDC8lAPrFldqFw= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796/go.mod h1:3p7ZTf9V1sNPI5H8P3NkTFF4LuwMdPl2DodF60qAKqY= github.com/ltcsuite/ltcutil v0.0.0-20181217130922-17f3b04680b6/go.mod h1:8Vg/LTOO0KYa/vlHWJ6XZAevPQThGH5sufO0Hrou/lA= @@ -1137,8 +1145,6 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= -github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -1230,8 +1236,9 @@ github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= @@ -1298,8 +1305,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= -go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= -go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= +go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= go.etcd.io/etcd/api/v3 v3.5.7 h1:sbcmosSVesNrWOJ58ZQFitHMdncusIifYcrBfwrlJSY= go.etcd.io/etcd/api/v3 v3.5.7/go.mod h1:9qew1gCdDDLu+VwmeG+iFpL+QlpHTo7iubavdVDgCAA= go.etcd.io/etcd/client/pkg/v3 v3.5.7 h1:y3kf5Gbp4e4q7egZdn5T7W9TSHUvkClN6u+Rq9mEOmg= @@ -2123,8 +2130,8 @@ modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc= modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss= modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= -modernc.org/sqlite v1.29.8 h1:nGKglNx9K5v0As+zF0/Gcl1kMkmaU1XynYyq92PbsC8= -modernc.org/sqlite v1.29.8/go.mod h1:lQPm27iqa4UNZpmr4Aor0MH0HkCLbt1huYDfWylLZFk= +modernc.org/sqlite v1.29.10 h1:3u93dz83myFnMilBGCOLbr+HjklS6+5rJLx4q86RDAg= +modernc.org/sqlite v1.29.10/go.mod h1:ItX2a1OVGgNsFh6Dv60JQvGfJfTPHPVpV6DF59akYOA= modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= @@ -2134,6 +2141,8 @@ modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/log.go b/log.go index d02b034df..b803f72d2 100644 --- a/log.go +++ b/log.go @@ -1,7 +1,7 @@ package terminal import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightninglabs/faraday" "github.com/lightninglabs/lightning-node-connect/gbn" "github.com/lightninglabs/lightning-node-connect/mailbox" @@ -60,7 +60,7 @@ func UseLogger(logger btclog.Logger) { } // SetupLoggers initializes all package-global logger variables. -func SetupLoggers(root *build.RotatingLogWriter, intercept signal.Interceptor) { +func SetupLoggers(root *build.SubLoggerManager, intercept signal.Interceptor) { genLogger := genSubLogger(root, intercept) log = build.NewSubLogger(Subsystem, genLogger) @@ -104,7 +104,7 @@ func SetupLoggers(root *build.RotatingLogWriter, intercept signal.Interceptor) { // genSubLogger creates a logger for a subsystem. We provide an instance of // a signal.Interceptor to be able to shutdown in the case of a critical error. -func genSubLogger(root *build.RotatingLogWriter, +func genSubLogger(root *build.SubLoggerManager, interceptor signal.Interceptor) func(string) btclog.Logger { // Create a shutdown function which will request shutdown from our @@ -126,7 +126,7 @@ func genSubLogger(root *build.RotatingLogWriter, // NewGrpcLogLogger creates a new grpclog compatible logger and attaches it as // a sub logger to the passed root logger. -func NewGrpcLogLogger(root *build.RotatingLogWriter, +func NewGrpcLogLogger(root *build.SubLoggerManager, intercept signal.Interceptor, subsystem string) *GrpcLogLogger { logger := build.NewSubLogger(subsystem, genSubLogger(root, intercept)) diff --git a/perms/mock_dev.go b/perms/mock_dev.go index 52289f1c0..d6c05078f 100644 --- a/perms/mock_dev.go +++ b/perms/mock_dev.go @@ -9,7 +9,7 @@ import ( "github.com/btcsuite/btcd/chaincfg" "github.com/lightningnetwork/lnd/autopilot" "github.com/lightningnetwork/lnd/chainreg" - "github.com/lightningnetwork/lnd/channeldb" + graphdb "github.com/lightningnetwork/lnd/graph/db" "github.com/lightningnetwork/lnd/lnrpc" "github.com/lightningnetwork/lnd/lnrpc/autopilotrpc" "github.com/lightningnetwork/lnd/lnrpc/chainrpc" @@ -64,7 +64,7 @@ func (t *mockConfig) FetchConfig(subServerName string) (interface{}, bool) { case "DevRPC": return &devrpc.Config{ ActiveNetParams: &chaincfg.RegressionNetParams, - GraphDB: &channeldb.ChannelGraph{}, + GraphDB: &graphdb.ChannelGraph{}, }, true case "NeutrinoKitRPC": return &neutrinorpc.Config{}, true diff --git a/rpcmiddleware/log.go b/rpcmiddleware/log.go index 42ad82a78..97965bbee 100644 --- a/rpcmiddleware/log.go +++ b/rpcmiddleware/log.go @@ -1,7 +1,7 @@ package rpcmiddleware import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/rules/log.go b/rules/log.go index b1d5d13c3..ea9816d45 100644 --- a/rules/log.go +++ b/rules/log.go @@ -1,7 +1,7 @@ package rules import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/session/log.go b/session/log.go index 1f0026f67..cb52ab100 100644 --- a/session/log.go +++ b/session/log.go @@ -1,7 +1,7 @@ package session import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/status/log.go b/status/log.go index e7651d227..52fb785ef 100644 --- a/status/log.go +++ b/status/log.go @@ -1,7 +1,7 @@ package status import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/subservers/config.go b/subservers/config.go index f82b15c3a..c4bddfeed 100644 --- a/subservers/config.go +++ b/subservers/config.go @@ -1,13 +1,17 @@ package subservers +import "github.com/lightningnetwork/lnd/build" + // RemoteConfig holds the configuration parameters that are needed when running // LiT in the "remote" lnd mode. // //nolint:lll type RemoteConfig struct { LitLogDir string `long:"lit-logdir" description:"For lnd remote mode only: Directory to log output."` - LitMaxLogFiles int `long:"lit-maxlogfiles" description:"For lnd remote mode only: Maximum logfiles to keep (0 for no rotation)"` - LitMaxLogFileSize int `long:"lit-maxlogfilesize" description:"For lnd remote mode only: Maximum logfile size in MB"` + LitMaxLogFiles int `long:"lit-maxlogfiles" description:"For lnd remote mode only: Maximum logfiles to keep (0 for no rotation). DEPRECATED: use --logging.file.max-files instead" hidden:"true"` + LitMaxLogFileSize int `long:"lit-maxlogfilesize" description:"For lnd remote mode only: Maximum logfile size in MB. DEPRECATED: use --logging.file.max-file-size instead" hidden:"true"` + + LitLogConfig *build.LogConfig `group:"lit-logging" namespace:"lit-logging"` LitDebugLevel string `long:"lit-debuglevel" description:"For lnd remote mode only: Logging level for all subsystems {trace, debug, info, warn, error, critical} -- You may also specify =,=,... to set the log level for individual subsystems."` diff --git a/subservers/log.go b/subservers/log.go index 03ef7b9ce..ddd35ee66 100644 --- a/subservers/log.go +++ b/subservers/log.go @@ -1,7 +1,7 @@ package subservers import ( - "github.com/btcsuite/btclog" + "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/build" ) diff --git a/terminal.go b/terminal.go index b8141d4a3..3ea502cca 100644 --- a/terminal.go +++ b/terminal.go @@ -40,7 +40,7 @@ import ( "github.com/lightningnetwork/lnd/build" "github.com/lightningnetwork/lnd/chainreg" "github.com/lightningnetwork/lnd/clock" - "github.com/lightningnetwork/lnd/fn" + "github.com/lightningnetwork/lnd/fn/v2" "github.com/lightningnetwork/lnd/funding" "github.com/lightningnetwork/lnd/htlcswitch" "github.com/lightningnetwork/lnd/kvdb" @@ -560,7 +560,7 @@ func (g *LightningTerminal) start(ctx context.Context) error { "mode to 'integrated' in the config file.") case ModeIntegrated: - components, err := g.buildAuxComponents() + components, err := g.buildAuxComponents(ctx) if err != nil { return fmt.Errorf("could not build aux "+ "components: %w", err) @@ -1347,7 +1347,9 @@ func (g *LightningTerminal) BuildWalletConfig(ctx context.Context, // buildAuxComponent builds the auxiliary components required by lnd when // running in integrated mode with tapd being the service that provides the // aux component implementations. -func (g *LightningTerminal) buildAuxComponents() (*lnd.AuxComponents, error) { +func (g *LightningTerminal) buildAuxComponents( + ctx context.Context) (*lnd.AuxComponents, error) { + errNotAvailable := fmt.Errorf("tapd is not available, both lnd and " + "tapd must be started in integrated mode for Taproot " + "Assets Channels to be available") @@ -1373,7 +1375,7 @@ func (g *LightningTerminal) buildAuxComponents() (*lnd.AuxComponents, error) { } router := msgmux.NewMultiMsgRouter() - router.Start() + router.Start(ctx) err = router.RegisterEndpoint(tapd) if err != nil { return nil, fmt.Errorf("error registering tapd endpoint: %w", From 86fc34fb2bdda53375e8c8616e426963408a9417 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Thu, 6 Mar 2025 16:51:02 +0200 Subject: [PATCH 2/8] app+proto: run `make protos` --- app/src/types/generated/lnd_pb.d.ts | 70 ++++ app/src/types/generated/lnd_pb.js | 556 +++++++++++++++++++++++++++- app/src/util/tests/sampleData.ts | 3 + proto/lnd.proto | 89 ++++- 4 files changed, 690 insertions(+), 28 deletions(-) diff --git a/app/src/types/generated/lnd_pb.d.ts b/app/src/types/generated/lnd_pb.d.ts index 8ae7cfe79..4bdbde587 100644 --- a/app/src/types/generated/lnd_pb.d.ts +++ b/app/src/types/generated/lnd_pb.d.ts @@ -132,6 +132,9 @@ export namespace SendCustomMessageRequest { } export class SendCustomMessageResponse extends jspb.Message { + getStatus(): string; + setStatus(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): SendCustomMessageResponse.AsObject; static toObject(includeInstance: boolean, msg: SendCustomMessageResponse): SendCustomMessageResponse.AsObject; @@ -144,6 +147,7 @@ export class SendCustomMessageResponse extends jspb.Message { export namespace SendCustomMessageResponse { export type AsObject = { + status: string, } } @@ -309,6 +313,12 @@ export class GetTransactionsRequest extends jspb.Message { getAccount(): string; setAccount(value: string): void; + getIndexOffset(): number; + setIndexOffset(value: number): void; + + getMaxTransactions(): number; + setMaxTransactions(value: number): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): GetTransactionsRequest.AsObject; static toObject(includeInstance: boolean, msg: GetTransactionsRequest): GetTransactionsRequest.AsObject; @@ -324,6 +334,8 @@ export namespace GetTransactionsRequest { startHeight: number, endHeight: number, account: string, + indexOffset: number, + maxTransactions: number, } } @@ -333,6 +345,12 @@ export class TransactionDetails extends jspb.Message { setTransactionsList(value: Array): void; addTransactions(value?: Transaction, index?: number): Transaction; + getLastIndex(): string; + setLastIndex(value: string): void; + + getFirstIndex(): string; + setFirstIndex(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): TransactionDetails.AsObject; static toObject(includeInstance: boolean, msg: TransactionDetails): TransactionDetails.AsObject; @@ -346,6 +364,8 @@ export class TransactionDetails extends jspb.Message { export namespace TransactionDetails { export type AsObject = { transactionsList: Array, + lastIndex: string, + firstIndex: string, } } @@ -1252,6 +1272,9 @@ export namespace ConnectPeerRequest { } export class ConnectPeerResponse extends jspb.Message { + getStatus(): string; + setStatus(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): ConnectPeerResponse.AsObject; static toObject(includeInstance: boolean, msg: ConnectPeerResponse): ConnectPeerResponse.AsObject; @@ -1264,6 +1287,7 @@ export class ConnectPeerResponse extends jspb.Message { export namespace ConnectPeerResponse { export type AsObject = { + status: string, } } @@ -1288,6 +1312,9 @@ export namespace DisconnectPeerRequest { } export class DisconnectPeerResponse extends jspb.Message { + getStatus(): string; + setStatus(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): DisconnectPeerResponse.AsObject; static toObject(includeInstance: boolean, msg: DisconnectPeerResponse): DisconnectPeerResponse.AsObject; @@ -1300,6 +1327,7 @@ export class DisconnectPeerResponse extends jspb.Message { export namespace DisconnectPeerResponse { export type AsObject = { + status: string, } } @@ -1327,6 +1355,9 @@ export class HTLC extends jspb.Message { getForwardingHtlcIndex(): string; setForwardingHtlcIndex(value: string): void; + getLockedIn(): boolean; + setLockedIn(value: boolean): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): HTLC.AsObject; static toObject(includeInstance: boolean, msg: HTLC): HTLC.AsObject; @@ -1346,6 +1377,7 @@ export namespace HTLC { htlcIndex: string, forwardingChannel: string, forwardingHtlcIndex: string, + lockedIn: boolean, } } @@ -2536,6 +2568,12 @@ export class PendingUpdate extends jspb.Message { getOutputIndex(): number; setOutputIndex(value: number): void; + getFeePerVbyte(): string; + setFeePerVbyte(value: string): void; + + getLocalCloseTx(): boolean; + setLocalCloseTx(value: boolean): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): PendingUpdate.AsObject; static toObject(includeInstance: boolean, msg: PendingUpdate): PendingUpdate.AsObject; @@ -2550,10 +2588,15 @@ export namespace PendingUpdate { export type AsObject = { txid: Uint8Array | string, outputIndex: number, + feePerVbyte: string, + localCloseTx: boolean, } } export class InstantUpdate extends jspb.Message { + getNumPendingHtlcs(): number; + setNumPendingHtlcs(value: number): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): InstantUpdate.AsObject; static toObject(includeInstance: boolean, msg: InstantUpdate): InstantUpdate.AsObject; @@ -2566,6 +2609,7 @@ export class InstantUpdate extends jspb.Message { export namespace InstantUpdate { export type AsObject = { + numPendingHtlcs: number, } } @@ -4792,6 +4836,9 @@ export namespace StopRequest { } export class StopResponse extends jspb.Message { + getStatus(): string; + setStatus(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): StopResponse.AsObject; static toObject(includeInstance: boolean, msg: StopResponse): StopResponse.AsObject; @@ -4804,6 +4851,7 @@ export class StopResponse extends jspb.Message { export namespace StopResponse { export type AsObject = { + status: string, } } @@ -5950,6 +5998,9 @@ export namespace DeleteAllPaymentsRequest { } export class DeletePaymentResponse extends jspb.Message { + getStatus(): string; + setStatus(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): DeletePaymentResponse.AsObject; static toObject(includeInstance: boolean, msg: DeletePaymentResponse): DeletePaymentResponse.AsObject; @@ -5962,10 +6013,14 @@ export class DeletePaymentResponse extends jspb.Message { export namespace DeletePaymentResponse { export type AsObject = { + status: string, } } export class DeleteAllPaymentsResponse extends jspb.Message { + getStatus(): string; + setStatus(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): DeleteAllPaymentsResponse.AsObject; static toObject(includeInstance: boolean, msg: DeleteAllPaymentsResponse): DeleteAllPaymentsResponse.AsObject; @@ -5978,6 +6033,7 @@ export class DeleteAllPaymentsResponse extends jspb.Message { export namespace DeleteAllPaymentsResponse { export type AsObject = { + status: string, } } @@ -6012,6 +6068,9 @@ export namespace AbandonChannelRequest { } export class AbandonChannelResponse extends jspb.Message { + getStatus(): string; + setStatus(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): AbandonChannelResponse.AsObject; static toObject(includeInstance: boolean, msg: AbandonChannelResponse): AbandonChannelResponse.AsObject; @@ -6024,6 +6083,7 @@ export class AbandonChannelResponse extends jspb.Message { export namespace AbandonChannelResponse { export type AsObject = { + status: string, } } @@ -6747,6 +6807,9 @@ export namespace RestoreChanBackupRequest { } export class RestoreBackupResponse extends jspb.Message { + getNumRestored(): number; + setNumRestored(value: number): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): RestoreBackupResponse.AsObject; static toObject(includeInstance: boolean, msg: RestoreBackupResponse): RestoreBackupResponse.AsObject; @@ -6759,6 +6822,7 @@ export class RestoreBackupResponse extends jspb.Message { export namespace RestoreBackupResponse { export type AsObject = { + numRestored: number, } } @@ -6779,6 +6843,11 @@ export namespace ChannelBackupSubscription { } export class VerifyChanBackupResponse extends jspb.Message { + clearChanPointsList(): void; + getChanPointsList(): Array; + setChanPointsList(value: Array): void; + addChanPoints(value: string, index?: number): string; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): VerifyChanBackupResponse.AsObject; static toObject(includeInstance: boolean, msg: VerifyChanBackupResponse): VerifyChanBackupResponse.AsObject; @@ -6791,6 +6860,7 @@ export class VerifyChanBackupResponse extends jspb.Message { export namespace VerifyChanBackupResponse { export type AsObject = { + chanPointsList: Array, } } diff --git a/app/src/types/generated/lnd_pb.js b/app/src/types/generated/lnd_pb.js index 9b9f23cb5..858bfa42b 100644 --- a/app/src/types/generated/lnd_pb.js +++ b/app/src/types/generated/lnd_pb.js @@ -4138,7 +4138,7 @@ if (goog.DEBUG && !COMPILED) { * @constructor */ proto.lnrpc.VerifyChanBackupResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); + jspb.Message.initialize(this, opt_data, 0, -1, proto.lnrpc.VerifyChanBackupResponse.repeatedFields_, null); }; goog.inherits(proto.lnrpc.VerifyChanBackupResponse, jspb.Message); if (goog.DEBUG && !COMPILED) { @@ -5539,7 +5539,7 @@ proto.lnrpc.SendCustomMessageResponse.prototype.toObject = function(opt_includeI */ proto.lnrpc.SendCustomMessageResponse.toObject = function(includeInstance, msg) { var f, obj = { - + status: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -5576,6 +5576,10 @@ proto.lnrpc.SendCustomMessageResponse.deserializeBinaryFromReader = function(msg } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; default: reader.skipField(); break; @@ -5605,6 +5609,31 @@ proto.lnrpc.SendCustomMessageResponse.prototype.serializeBinary = function() { */ proto.lnrpc.SendCustomMessageResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getStatus(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string status = 1; + * @return {string} + */ +proto.lnrpc.SendCustomMessageResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.SendCustomMessageResponse} returns this + */ +proto.lnrpc.SendCustomMessageResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; @@ -6755,7 +6784,9 @@ proto.lnrpc.GetTransactionsRequest.toObject = function(includeInstance, msg) { var f, obj = { startHeight: jspb.Message.getFieldWithDefault(msg, 1, 0), endHeight: jspb.Message.getFieldWithDefault(msg, 2, 0), - account: jspb.Message.getFieldWithDefault(msg, 3, "") + account: jspb.Message.getFieldWithDefault(msg, 3, ""), + indexOffset: jspb.Message.getFieldWithDefault(msg, 4, 0), + maxTransactions: jspb.Message.getFieldWithDefault(msg, 5, 0) }; if (includeInstance) { @@ -6804,6 +6835,14 @@ proto.lnrpc.GetTransactionsRequest.deserializeBinaryFromReader = function(msg, r var value = /** @type {string} */ (reader.readString()); msg.setAccount(value); break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setIndexOffset(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint32()); + msg.setMaxTransactions(value); + break; default: reader.skipField(); break; @@ -6854,6 +6893,20 @@ proto.lnrpc.GetTransactionsRequest.serializeBinaryToWriter = function(message, w f ); } + f = message.getIndexOffset(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } + f = message.getMaxTransactions(); + if (f !== 0) { + writer.writeUint32( + 5, + f + ); + } }; @@ -6911,6 +6964,42 @@ proto.lnrpc.GetTransactionsRequest.prototype.setAccount = function(value) { }; +/** + * optional uint32 index_offset = 4; + * @return {number} + */ +proto.lnrpc.GetTransactionsRequest.prototype.getIndexOffset = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.lnrpc.GetTransactionsRequest} returns this + */ +proto.lnrpc.GetTransactionsRequest.prototype.setIndexOffset = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional uint32 max_transactions = 5; + * @return {number} + */ +proto.lnrpc.GetTransactionsRequest.prototype.getMaxTransactions = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.lnrpc.GetTransactionsRequest} returns this + */ +proto.lnrpc.GetTransactionsRequest.prototype.setMaxTransactions = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + /** * List of repeated fields within this message type. @@ -6951,7 +7040,9 @@ proto.lnrpc.TransactionDetails.prototype.toObject = function(opt_includeInstance proto.lnrpc.TransactionDetails.toObject = function(includeInstance, msg) { var f, obj = { transactionsList: jspb.Message.toObjectList(msg.getTransactionsList(), - proto.lnrpc.Transaction.toObject, includeInstance) + proto.lnrpc.Transaction.toObject, includeInstance), + lastIndex: jspb.Message.getFieldWithDefault(msg, 2, "0"), + firstIndex: jspb.Message.getFieldWithDefault(msg, 3, "0") }; if (includeInstance) { @@ -6993,6 +7084,14 @@ proto.lnrpc.TransactionDetails.deserializeBinaryFromReader = function(msg, reade reader.readMessage(value,proto.lnrpc.Transaction.deserializeBinaryFromReader); msg.addTransactions(value); break; + case 2: + var value = /** @type {string} */ (reader.readUint64String()); + msg.setLastIndex(value); + break; + case 3: + var value = /** @type {string} */ (reader.readUint64String()); + msg.setFirstIndex(value); + break; default: reader.skipField(); break; @@ -7030,6 +7129,20 @@ proto.lnrpc.TransactionDetails.serializeBinaryToWriter = function(message, write proto.lnrpc.Transaction.serializeBinaryToWriter ); } + f = message.getLastIndex(); + if (parseInt(f, 10) !== 0) { + writer.writeUint64String( + 2, + f + ); + } + f = message.getFirstIndex(); + if (parseInt(f, 10) !== 0) { + writer.writeUint64String( + 3, + f + ); + } }; @@ -7071,6 +7184,42 @@ proto.lnrpc.TransactionDetails.prototype.clearTransactionsList = function() { }; +/** + * optional uint64 last_index = 2; + * @return {string} + */ +proto.lnrpc.TransactionDetails.prototype.getLastIndex = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.TransactionDetails} returns this + */ +proto.lnrpc.TransactionDetails.prototype.setLastIndex = function(value) { + return jspb.Message.setProto3StringIntField(this, 2, value); +}; + + +/** + * optional uint64 first_index = 3; + * @return {string} + */ +proto.lnrpc.TransactionDetails.prototype.getFirstIndex = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.TransactionDetails} returns this + */ +proto.lnrpc.TransactionDetails.prototype.setFirstIndex = function(value) { + return jspb.Message.setProto3StringIntField(this, 3, value); +}; + + /** * Oneof group definitions for this message. Each group defines the field @@ -13560,7 +13709,7 @@ proto.lnrpc.ConnectPeerResponse.prototype.toObject = function(opt_includeInstanc */ proto.lnrpc.ConnectPeerResponse.toObject = function(includeInstance, msg) { var f, obj = { - + status: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -13597,6 +13746,10 @@ proto.lnrpc.ConnectPeerResponse.deserializeBinaryFromReader = function(msg, read } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; default: reader.skipField(); break; @@ -13626,6 +13779,31 @@ proto.lnrpc.ConnectPeerResponse.prototype.serializeBinary = function() { */ proto.lnrpc.ConnectPeerResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getStatus(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string status = 1; + * @return {string} + */ +proto.lnrpc.ConnectPeerResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.ConnectPeerResponse} returns this + */ +proto.lnrpc.ConnectPeerResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; @@ -13791,7 +13969,7 @@ proto.lnrpc.DisconnectPeerResponse.prototype.toObject = function(opt_includeInst */ proto.lnrpc.DisconnectPeerResponse.toObject = function(includeInstance, msg) { var f, obj = { - + status: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -13828,6 +14006,10 @@ proto.lnrpc.DisconnectPeerResponse.deserializeBinaryFromReader = function(msg, r } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; default: reader.skipField(); break; @@ -13857,6 +14039,31 @@ proto.lnrpc.DisconnectPeerResponse.prototype.serializeBinary = function() { */ proto.lnrpc.DisconnectPeerResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getStatus(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string status = 1; + * @return {string} + */ +proto.lnrpc.DisconnectPeerResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.DisconnectPeerResponse} returns this + */ +proto.lnrpc.DisconnectPeerResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; @@ -13898,7 +14105,8 @@ proto.lnrpc.HTLC.toObject = function(includeInstance, msg) { expirationHeight: jspb.Message.getFieldWithDefault(msg, 4, 0), htlcIndex: jspb.Message.getFieldWithDefault(msg, 5, "0"), forwardingChannel: jspb.Message.getFieldWithDefault(msg, 6, "0"), - forwardingHtlcIndex: jspb.Message.getFieldWithDefault(msg, 7, "0") + forwardingHtlcIndex: jspb.Message.getFieldWithDefault(msg, 7, "0"), + lockedIn: jspb.Message.getBooleanFieldWithDefault(msg, 8, false) }; if (includeInstance) { @@ -13963,6 +14171,10 @@ proto.lnrpc.HTLC.deserializeBinaryFromReader = function(msg, reader) { var value = /** @type {string} */ (reader.readUint64String()); msg.setForwardingHtlcIndex(value); break; + case 8: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setLockedIn(value); + break; default: reader.skipField(); break; @@ -14041,6 +14253,13 @@ proto.lnrpc.HTLC.serializeBinaryToWriter = function(message, writer) { f ); } + f = message.getLockedIn(); + if (f) { + writer.writeBool( + 8, + f + ); + } }; @@ -14194,6 +14413,24 @@ proto.lnrpc.HTLC.prototype.setForwardingHtlcIndex = function(value) { }; +/** + * optional bool locked_in = 8; + * @return {boolean} + */ +proto.lnrpc.HTLC.prototype.getLockedIn = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.lnrpc.HTLC} returns this + */ +proto.lnrpc.HTLC.prototype.setLockedIn = function(value) { + return jspb.Message.setProto3BooleanField(this, 8, value); +}; + + @@ -22594,7 +22831,9 @@ proto.lnrpc.PendingUpdate.prototype.toObject = function(opt_includeInstance) { proto.lnrpc.PendingUpdate.toObject = function(includeInstance, msg) { var f, obj = { txid: msg.getTxid_asB64(), - outputIndex: jspb.Message.getFieldWithDefault(msg, 2, 0) + outputIndex: jspb.Message.getFieldWithDefault(msg, 2, 0), + feePerVbyte: jspb.Message.getFieldWithDefault(msg, 3, "0"), + localCloseTx: jspb.Message.getBooleanFieldWithDefault(msg, 4, false) }; if (includeInstance) { @@ -22639,6 +22878,14 @@ proto.lnrpc.PendingUpdate.deserializeBinaryFromReader = function(msg, reader) { var value = /** @type {number} */ (reader.readUint32()); msg.setOutputIndex(value); break; + case 3: + var value = /** @type {string} */ (reader.readInt64String()); + msg.setFeePerVbyte(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setLocalCloseTx(value); + break; default: reader.skipField(); break; @@ -22682,6 +22929,20 @@ proto.lnrpc.PendingUpdate.serializeBinaryToWriter = function(message, writer) { f ); } + f = message.getFeePerVbyte(); + if (parseInt(f, 10) !== 0) { + writer.writeInt64String( + 3, + f + ); + } + f = message.getLocalCloseTx(); + if (f) { + writer.writeBool( + 4, + f + ); + } }; @@ -22745,6 +23006,42 @@ proto.lnrpc.PendingUpdate.prototype.setOutputIndex = function(value) { }; +/** + * optional int64 fee_per_vbyte = 3; + * @return {string} + */ +proto.lnrpc.PendingUpdate.prototype.getFeePerVbyte = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.PendingUpdate} returns this + */ +proto.lnrpc.PendingUpdate.prototype.setFeePerVbyte = function(value) { + return jspb.Message.setProto3StringIntField(this, 3, value); +}; + + +/** + * optional bool local_close_tx = 4; + * @return {boolean} + */ +proto.lnrpc.PendingUpdate.prototype.getLocalCloseTx = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.lnrpc.PendingUpdate} returns this + */ +proto.lnrpc.PendingUpdate.prototype.setLocalCloseTx = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + @@ -22777,7 +23074,7 @@ proto.lnrpc.InstantUpdate.prototype.toObject = function(opt_includeInstance) { */ proto.lnrpc.InstantUpdate.toObject = function(includeInstance, msg) { var f, obj = { - + numPendingHtlcs: jspb.Message.getFieldWithDefault(msg, 1, 0) }; if (includeInstance) { @@ -22814,6 +23111,10 @@ proto.lnrpc.InstantUpdate.deserializeBinaryFromReader = function(msg, reader) { } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setNumPendingHtlcs(value); + break; default: reader.skipField(); break; @@ -22843,6 +23144,31 @@ proto.lnrpc.InstantUpdate.prototype.serializeBinary = function() { */ proto.lnrpc.InstantUpdate.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getNumPendingHtlcs(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } +}; + + +/** + * optional int32 num_pending_htlcs = 1; + * @return {number} + */ +proto.lnrpc.InstantUpdate.prototype.getNumPendingHtlcs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.lnrpc.InstantUpdate} returns this + */ +proto.lnrpc.InstantUpdate.prototype.setNumPendingHtlcs = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; @@ -38968,7 +39294,7 @@ proto.lnrpc.StopResponse.prototype.toObject = function(opt_includeInstance) { */ proto.lnrpc.StopResponse.toObject = function(includeInstance, msg) { var f, obj = { - + status: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -39005,6 +39331,10 @@ proto.lnrpc.StopResponse.deserializeBinaryFromReader = function(msg, reader) { } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; default: reader.skipField(); break; @@ -39034,6 +39364,31 @@ proto.lnrpc.StopResponse.prototype.serializeBinary = function() { */ proto.lnrpc.StopResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getStatus(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string status = 1; + * @return {string} + */ +proto.lnrpc.StopResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.StopResponse} returns this + */ +proto.lnrpc.StopResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; @@ -47398,7 +47753,7 @@ proto.lnrpc.DeletePaymentResponse.prototype.toObject = function(opt_includeInsta */ proto.lnrpc.DeletePaymentResponse.toObject = function(includeInstance, msg) { var f, obj = { - + status: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -47435,6 +47790,10 @@ proto.lnrpc.DeletePaymentResponse.deserializeBinaryFromReader = function(msg, re } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; default: reader.skipField(); break; @@ -47464,6 +47823,31 @@ proto.lnrpc.DeletePaymentResponse.prototype.serializeBinary = function() { */ proto.lnrpc.DeletePaymentResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getStatus(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string status = 1; + * @return {string} + */ +proto.lnrpc.DeletePaymentResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.DeletePaymentResponse} returns this + */ +proto.lnrpc.DeletePaymentResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; @@ -47499,7 +47883,7 @@ proto.lnrpc.DeleteAllPaymentsResponse.prototype.toObject = function(opt_includeI */ proto.lnrpc.DeleteAllPaymentsResponse.toObject = function(includeInstance, msg) { var f, obj = { - + status: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -47536,6 +47920,10 @@ proto.lnrpc.DeleteAllPaymentsResponse.deserializeBinaryFromReader = function(msg } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; default: reader.skipField(); break; @@ -47565,6 +47953,31 @@ proto.lnrpc.DeleteAllPaymentsResponse.prototype.serializeBinary = function() { */ proto.lnrpc.DeleteAllPaymentsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getStatus(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string status = 1; + * @return {string} + */ +proto.lnrpc.DeleteAllPaymentsResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.DeleteAllPaymentsResponse} returns this + */ +proto.lnrpc.DeleteAllPaymentsResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; @@ -47811,7 +48224,7 @@ proto.lnrpc.AbandonChannelResponse.prototype.toObject = function(opt_includeInst */ proto.lnrpc.AbandonChannelResponse.toObject = function(includeInstance, msg) { var f, obj = { - + status: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -47848,6 +48261,10 @@ proto.lnrpc.AbandonChannelResponse.deserializeBinaryFromReader = function(msg, r } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; default: reader.skipField(); break; @@ -47877,6 +48294,31 @@ proto.lnrpc.AbandonChannelResponse.prototype.serializeBinary = function() { */ proto.lnrpc.AbandonChannelResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getStatus(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string status = 1; + * @return {string} + */ +proto.lnrpc.AbandonChannelResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.AbandonChannelResponse} returns this + */ +proto.lnrpc.AbandonChannelResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); }; @@ -53013,7 +53455,7 @@ proto.lnrpc.RestoreBackupResponse.prototype.toObject = function(opt_includeInsta */ proto.lnrpc.RestoreBackupResponse.toObject = function(includeInstance, msg) { var f, obj = { - + numRestored: jspb.Message.getFieldWithDefault(msg, 1, 0) }; if (includeInstance) { @@ -53050,6 +53492,10 @@ proto.lnrpc.RestoreBackupResponse.deserializeBinaryFromReader = function(msg, re } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setNumRestored(value); + break; default: reader.skipField(); break; @@ -53079,6 +53525,31 @@ proto.lnrpc.RestoreBackupResponse.prototype.serializeBinary = function() { */ proto.lnrpc.RestoreBackupResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getNumRestored(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } +}; + + +/** + * optional uint32 num_restored = 1; + * @return {number} + */ +proto.lnrpc.RestoreBackupResponse.prototype.getNumRestored = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.lnrpc.RestoreBackupResponse} returns this + */ +proto.lnrpc.RestoreBackupResponse.prototype.setNumRestored = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); }; @@ -53184,6 +53655,13 @@ proto.lnrpc.ChannelBackupSubscription.serializeBinaryToWriter = function(message +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.lnrpc.VerifyChanBackupResponse.repeatedFields_ = [1]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -53215,7 +53693,7 @@ proto.lnrpc.VerifyChanBackupResponse.prototype.toObject = function(opt_includeIn */ proto.lnrpc.VerifyChanBackupResponse.toObject = function(includeInstance, msg) { var f, obj = { - + chanPointsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f }; if (includeInstance) { @@ -53252,6 +53730,10 @@ proto.lnrpc.VerifyChanBackupResponse.deserializeBinaryFromReader = function(msg, } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.addChanPoints(value); + break; default: reader.skipField(); break; @@ -53281,6 +53763,50 @@ proto.lnrpc.VerifyChanBackupResponse.prototype.serializeBinary = function() { */ proto.lnrpc.VerifyChanBackupResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getChanPointsList(); + if (f.length > 0) { + writer.writeRepeatedString( + 1, + f + ); + } +}; + + +/** + * repeated string chan_points = 1; + * @return {!Array} + */ +proto.lnrpc.VerifyChanBackupResponse.prototype.getChanPointsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.lnrpc.VerifyChanBackupResponse} returns this + */ +proto.lnrpc.VerifyChanBackupResponse.prototype.setChanPointsList = function(value) { + return jspb.Message.setField(this, 1, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.lnrpc.VerifyChanBackupResponse} returns this + */ +proto.lnrpc.VerifyChanBackupResponse.prototype.addChanPoints = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 1, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.lnrpc.VerifyChanBackupResponse} returns this + */ +proto.lnrpc.VerifyChanBackupResponse.prototype.clearChanPointsList = function() { + return this.setChanPointsList([]); }; diff --git a/app/src/util/tests/sampleData.ts b/app/src/util/tests/sampleData.ts index 6dd8da4ba..a1b3505c7 100644 --- a/app/src/util/tests/sampleData.ts +++ b/app/src/util/tests/sampleData.ts @@ -112,6 +112,7 @@ export const lndChannel: LND.Channel.AsObject = { htlcIndex: '0', forwardingChannel: '124244814004224', forwardingHtlcIndex: '0', + lockedIn: true, }, ], csvDelay: 1802, @@ -271,6 +272,8 @@ export const lndChannelEvent: Required = { pendingOpenChannel: { txid: '1f765f45f2a6d33837a203e3fc911915c891e9b86f9c9d91a1931b92efdedf5b', outputIndex: 0, + feePerVbyte: '123', + localCloseTx: false, }, fullyResolvedChannel: { fundingTxidBytes: txIdBytes, diff --git a/proto/lnd.proto b/proto/lnd.proto index 26b416075..aef90a6f7 100644 --- a/proto/lnd.proto +++ b/proto/lnd.proto @@ -274,12 +274,14 @@ service Lightning { } /* - SendPaymentSync is the synchronous non-streaming version of SendPayment. - This RPC is intended to be consumed by clients of the REST proxy. - Additionally, this RPC expects the destination's public key and the payment - hash (if any) to be encoded as hex strings. + Deprecated, use routerrpc.SendPaymentV2. SendPaymentSync is the synchronous + non-streaming version of SendPayment. This RPC is intended to be consumed by + clients of the REST proxy. Additionally, this RPC expects the destination's + public key and the payment hash (if any) to be encoded as hex strings. */ - rpc SendPaymentSync (SendRequest) returns (SendResponse); + rpc SendPaymentSync (SendRequest) returns (SendResponse) { + option deprecated = true; + } /* lncli: `sendtoroute` Deprecated, use routerrpc.SendToRouteV2. SendToRoute is a bi-directional @@ -293,10 +295,13 @@ service Lightning { } /* - SendToRouteSync is a synchronous version of SendToRoute. It Will block - until the payment either fails or succeeds. + Deprecated, use routerrpc.SendToRouteV2. SendToRouteSync is a synchronous + version of SendToRoute. It Will block until the payment either fails or + succeeds. */ - rpc SendToRouteSync (SendToRouteRequest) returns (SendResponse); + rpc SendToRouteSync (SendToRouteRequest) returns (SendResponse) { + option deprecated = true; + } /* lncli: `addinvoice` AddInvoice attempts to add a new invoice to the invoice database. Any @@ -643,6 +648,8 @@ message SendCustomMessageRequest { } message SendCustomMessageResponse { + // The status of the send operation. + string status = 1; } message Utxo { @@ -755,11 +762,35 @@ message GetTransactionsRequest { // An optional filter to only include transactions relevant to an account. string account = 3; + + /* + The index of a transaction that will be used in a query to determine which + transaction should be returned in the response. + */ + uint32 index_offset = 4; + + /* + The maximal number of transactions returned in the response to this query. + This value should be set to 0 to return all transactions. + */ + uint32 max_transactions = 5; } message TransactionDetails { // The list of transactions relevant to the wallet. repeated Transaction transactions = 1; + + /* + The index of the last item in the set of returned transactions. This can be + used to seek further, pagination style. + */ + uint64 last_index = 2 [jstype = JS_STRING]; + + /* + The index of the last item in the set of returned transactions. This can be + used to seek backwards, pagination style. + */ + uint64 first_index = 3 [jstype = JS_STRING]; } message FeeLimit { @@ -1317,6 +1348,8 @@ message ConnectPeerRequest { uint64 timeout = 3 [jstype = JS_STRING]; } message ConnectPeerResponse { + // The status of the connect operation. + string status = 1; } message DisconnectPeerRequest { @@ -1324,6 +1357,8 @@ message DisconnectPeerRequest { string pub_key = 1; } message DisconnectPeerResponse { + // The status of the disconnect operation. + string status = 1; } message HTLC { @@ -1346,6 +1381,13 @@ message HTLC { // Index identifying the htlc on the forwarding channel. uint64 forwarding_htlc_index = 7 [jstype = JS_STRING]; + + /* + Whether the HTLC is locked in. An HTLC is considered locked in when the + remote party has sent us the `revoke_and_ack` to irrevocably commit this + HTLC. + */ + bool locked_in = 8; } enum CommitmentType { @@ -1966,8 +2008,8 @@ message GetInfoResponse { bool synced_to_graph = 18; /* - Whether the current node is connected to testnet. This field is - deprecated and the network field should be used instead + Whether the current node is connected to testnet or testnet4. This field is + deprecated and the network field should be used instead. */ bool testnet = 10 [deprecated = true]; @@ -2111,9 +2153,13 @@ message CloseChannelRequest { // NOTE: This field is only respected if we're the initiator of the channel. uint64 max_fee_per_vbyte = 7 [jstype = JS_STRING]; - // If true, then the rpc call will not block while it awaits a closing txid. - // Consequently this RPC call will not return a closing txid if this value - // is set. + // If true, then the rpc call will not block while it awaits a closing txid + // to be broadcasted to the mempool. To obtain the closing tx one has to + // listen to the stream for the particular updates. Moreover if a coop close + // is specified and this flag is set to true the coop closing flow will be + // initiated even if HTLCs are active on the channel. The channel will wait + // until all HTLCs are resolved and then start the coop closing process. The + // channel will be disabled in the meantime and will disallow any new HTLCs. bool no_wait = 8; } @@ -2128,9 +2174,15 @@ message CloseStatusUpdate { message PendingUpdate { bytes txid = 1; uint32 output_index = 2; + int64 fee_per_vbyte = 3 [jstype = JS_STRING]; + bool local_close_tx = 4; } message InstantUpdate { + // The number of pending HTLCs that are currently active on the channel. + // These HTLCs need to be resolved before the channel can be closed + // cooperatively. + int32 num_pending_htlcs = 1; } message ReadyForPsbtFunding { @@ -3542,6 +3594,8 @@ message NetworkInfo { message StopRequest { } message StopResponse { + // The status of the stop operation. + string status = 1; } message GraphTopologySubscription { @@ -4366,9 +4420,13 @@ message DeleteAllPaymentsRequest { } message DeletePaymentResponse { + // The status of the delete operation. + string status = 1; } message DeleteAllPaymentsResponse { + // The status of the delete operation. + string status = 1; } message AbandonChannelRequest { @@ -4385,6 +4443,8 @@ message AbandonChannelRequest { } message AbandonChannelResponse { + // The status of the abandon operation. + string status = 1; } message DebugLevelRequest { @@ -4733,12 +4793,15 @@ message RestoreChanBackupRequest { } } message RestoreBackupResponse { + // The number of channels successfully restored. + uint32 num_restored = 1; } message ChannelBackupSubscription { } message VerifyChanBackupResponse { + repeated string chan_points = 1; } message MacaroonPermission { From ccb1b64f8bade005d128f95ffefe84859778e047 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Thu, 6 Mar 2025 19:06:02 +0200 Subject: [PATCH 3/8] make: unit test flake hunter For convenient flake hunting. --- Makefile | 11 +++++++++++ make/testing_flags.mk | 2 ++ scripts/unit-test-flake-hunter.sh | 23 +++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100755 scripts/unit-test-flake-hunter.sh diff --git a/Makefile b/Makefile index 9e9ebcd54..92802a7f8 100644 --- a/Makefile +++ b/Makefile @@ -198,6 +198,12 @@ unit: mkdir -p app/build && touch app/build/index.html $(UNIT) +#? unit-debug: Run unit tests with debug log output enabled +unit-debug: + @$(call print, "Running unit tests.") + mkdir -p app/build && touch app/build/index.html + $(UNIT_DEBUG) + unit-cover: $(GOACC_BIN) @$(call print, "Running unit coverage tests.") $(GOACC_BIN) $(COVER_PKG) @@ -308,6 +314,11 @@ sqlc-check: sqlc @$(call print, "Verifying sql code generation.") if test -n "$$(git status --porcelain '*.go')"; then echo "SQL models not properly generated!"; git status --porcelain '*.go'; exit 1; fi +#? flakehunter-unit: Run the unit tests continuously until one fails +flakehunter-unit: + @$(call print, "Flake hunting unit test.") + scripts/unit-test-flake-hunter.sh ${pkg} ${case} + # Prevent make from interpreting any of the defined goals as folders or files to # include in the build process. .PHONY: default all yarn-install build install go-build go-build-noui \ diff --git a/make/testing_flags.mk b/make/testing_flags.mk index f3a261b6f..dfd9b3bce 100644 --- a/make/testing_flags.mk +++ b/make/testing_flags.mk @@ -51,10 +51,12 @@ UNIT_TARGETED ?= no # targeted case. Otherwise, default to running all tests. ifeq ($(UNIT_TARGETED), yes) UNIT := $(GOTEST) -tags="$(DEV_TAGS) $(COMPILE_TAGS)" $(TEST_FLAGS) $(UNITPKG) +UNIT_DEBUG := $(GOTEST) -v -tags="$(DEV_TAGS) $(COMPILE_TAGS)" $(TEST_FLAGS) $(UNITPKG) endif ifeq ($(UNIT_TARGETED), no) UNIT := $(GOLIST) | $(XARGS) env $(GOTEST) -tags="$(DEV_TAGS) $(COMPILE_TAGS)" $(TEST_FLAGS) +UNIT_DEBUG := $(GOLIST) | $(XARGS) env $(GOTEST) -v -tags="$(DEV_TAGS) $(COMPILE_TAGS)" $(TEST_FLAGS) endif UNIT_RACE := $(UNIT) -race diff --git a/scripts/unit-test-flake-hunter.sh b/scripts/unit-test-flake-hunter.sh new file mode 100755 index 000000000..89406e01a --- /dev/null +++ b/scripts/unit-test-flake-hunter.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Check if pkg and case variables are provided. +if [ $# -lt 2 ] || [ $# -gt 3 ]; then + echo "Usage: $0 [timeout]" + exit 1 +fi + +pkg=$1 +case=$2 +timeout=${3:-30s} # Default to 30s if not provided. + +counter=0 + +# Run the command in a loop until it fails. +while output=$(go clean -testcache && make unit-debug log="stdlog trace" pkg=$pkg case=$case timeout=$timeout 2>&1); do + ((counter++)) + echo "Test $case passed, count: $counter" +done + +# Only log the output when it fails. +echo "Test $case failed. Output:" +echo "$output" From 9e46d85ec9faef93bdb454eccff548e88f6a38b5 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Fri, 7 Mar 2025 10:03:53 +0200 Subject: [PATCH 4/8] itest: specify fee service URL So that we use static fees in tests. This update is required with the latest LND update because of [this](https://github.com/lightningnetwork/lnd/commit/b89387a6dae798cc1ed607917423015c6483a62c) diff. --- itest/litd_test.go | 4 +++- itest/network_harness.go | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/itest/litd_test.go b/itest/litd_test.go index 642bcf9a9..30a69cd95 100644 --- a/itest/litd_test.go +++ b/itest/litd_test.go @@ -9,6 +9,7 @@ import ( "github.com/btcsuite/btclog/v2" "github.com/lightningnetwork/lnd/lntest" + "github.com/lightningnetwork/lnd/lnwallet/chainfee" "github.com/stretchr/testify/require" ) @@ -49,6 +50,7 @@ func TestLightningTerminal(t *testing.T) { ) feeService := lntest.NewFeeService(t) + feeService.SetFeeRate(chainfee.FeePerKwFloor, 1) lndHarness := lntest.SetupHarness( t1, lndBinary, "bbolt", true, feeService, ) @@ -71,7 +73,7 @@ func TestLightningTerminal(t *testing.T) { lndSubTest := lndHarness.Subtest(t1) litdHarness, err := NewNetworkHarness( - lndSubTest, chainBackend, binary, + lndSubTest, chainBackend, binary, feeService, ) require.NoError(t1, err) diff --git a/itest/network_harness.go b/itest/network_harness.go index 5b562c5ef..86ab786aa 100644 --- a/itest/network_harness.go +++ b/itest/network_harness.go @@ -49,6 +49,7 @@ type NetworkHarness struct { Miner *miner.HarnessMiner LNDHarness *lntest.HarnessTest + feeService lntest.WebFeeService // server is an instance of the local Loop/Pool mock server. server *ServerHarness @@ -77,7 +78,8 @@ type NetworkHarness struct { // NewNetworkHarness creates a new network test harness. func NewNetworkHarness(lndHarness *lntest.HarnessTest, b node.BackendConfig, - litdBinary string) (*NetworkHarness, error) { + litdBinary string, feeService lntest.WebFeeService) (*NetworkHarness, + error) { n := NetworkHarness{ activeNodes: make(map[int]*HarnessNode), @@ -88,6 +90,7 @@ func NewNetworkHarness(lndHarness *lntest.HarnessTest, b node.BackendConfig, LNDHarness: lndHarness, BackendCfg: b, litdBinary: litdBinary, + feeService: feeService, } return &n, nil } @@ -313,6 +316,7 @@ func (n *NetworkHarness) newNode(t *testing.T, name string, extraArgs, NetParams: n.netParams, ExtraArgs: extraArgs, SkipUnlock: skipUnlock, + FeeURL: n.feeService.URL(), } for _, opt := range opts { opt(baseCfg) From 2cf8b5b1231fd29ba20f4d00608b5e2979ecf6f8 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Fri, 7 Mar 2025 10:17:52 +0200 Subject: [PATCH 5/8] itest: fix accounts test bug The accounts test in integrated mode is run twice so that we can test it against both the LND port and LiT port. So ensure that this is tested. --- itest/litd_mode_integrated_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/itest/litd_mode_integrated_test.go b/itest/litd_mode_integrated_test.go index 65af53aa8..3585a1f40 100644 --- a/itest/litd_mode_integrated_test.go +++ b/itest/litd_mode_integrated_test.go @@ -630,7 +630,7 @@ func integratedTestSuite(ctx context.Context, net *NetworkHarness, t *testing.T, ht := newHarnessTest(tt, net) runAccountSystemTest( - ht, net.Alice, cfg.LitAddr(), cfg.LitTLSCertPath, + ht, net.Alice, cfg.RPCAddr(), cfg.TLSCertPath, superMacFile, (runNum*2)-1, ) runAccountSystemTest( From cd9c825b74f5be6425496ff6f312ffc31370c0a0 Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Mon, 10 Mar 2025 21:55:29 +0100 Subject: [PATCH 6/8] make: compile binaries in itest-only The itest-only goal is really useful for not needing to run the app build. But when switching between lnd versions, it's annoying if the lnd binary isn't built with itest-only. So we change that and always also build the btcd/lnd binaries with itest-only. This will take slightly longer but lead to fewer issues when switching branches between different lnd major versions. --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 92802a7f8..47ae2ff7b 100644 --- a/Makefile +++ b/Makefile @@ -217,13 +217,13 @@ clean-itest: @$(call print, "Cleaning itest binaries.") rm -rf itest/litd-itest itest/btcd-itest itest/lnd-itest -build-itest: app-build +build-itest: @$(call print, "Building itest binaries.") CGO_ENABLED=0 $(GOBUILD) -tags="$(ITEST_TAGS)" -o itest/litd-itest -ldflags "$(ITEST_LDFLAGS)" $(PKG)/cmd/litd CGO_ENABLED=0 $(GOBUILD) -tags="$(ITEST_TAGS)" -o itest/btcd-itest -ldflags "$(ITEST_LDFLAGS)" $(BTCD_PKG) CGO_ENABLED=0 $(GOBUILD) -tags="$(ITEST_TAGS)" -o itest/lnd-itest -ldflags "$(ITEST_LDFLAGS)" $(LND_PKG)/cmd/lnd -itest-only: +itest-only: build-itest @$(call print, "Building itest binary.") CGO_ENABLED=0 $(GOBUILD) -tags="$(ITEST_TAGS)" -o itest/litd-itest -ldflags "$(ITEST_LDFLAGS)" $(PKG)/cmd/litd CGO_ENABLED=0 $(GOTEST) -v ./itest -tags="$(DEV_TAGS) $(ITEST_TAGS)" -c -o itest/itest.test @@ -232,7 +232,7 @@ itest-only: rm -rf itest/*.log itest/.logs*; date scripts/itest_part.sh $(ITEST_FLAGS) -itest: build-itest itest-only +itest: app-build build-itest itest-only # ============= # FLAKE HUNTING From 5c102258e66ea65a4f88b0d0081488ee44570b7c Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Mon, 10 Mar 2025 21:56:58 +0100 Subject: [PATCH 7/8] itest: fix no longer needed workarounds With lnd 0.19 a lot of sweeper and timing related issues were fixed with the whole blockbeat synchronization. This also changes a couple of assumptions around when a block needs to be mined, so we need to adjust our itests to that. --- itest/assets_test.go | 5 +++-- itest/litd_custom_channels_test.go | 34 ++++++++++-------------------- 2 files changed, 14 insertions(+), 25 deletions(-) diff --git a/itest/assets_test.go b/itest/assets_test.go index 49fe394cf..9b23907bc 100644 --- a/itest/assets_test.go +++ b/itest/assets_test.go @@ -334,8 +334,9 @@ func locateAssetTransfers(t *testing.T, tapdClient *tapClient, tapdClient.node.Name(), err) } if len(forceCloseTransfer.Transfers) != 1 { - return fmt.Errorf("%v is missing force close "+ - "transfer", tapdClient.node.Name()) + return fmt.Errorf("%v is expecting %d transfers, has "+ + "%d", tapdClient.node.Name(), 1, + len(forceCloseTransfer.Transfers)) } transfer = forceCloseTransfer.Transfers[0] diff --git a/itest/litd_custom_channels_test.go b/itest/litd_custom_channels_test.go index 69d38dd75..33aac8940 100644 --- a/itest/litd_custom_channels_test.go +++ b/itest/litd_custom_channels_test.go @@ -1382,15 +1382,9 @@ func testCustomChannelsForceClose(ctx context.Context, net *NetworkHarness, t.Logf("Universe proofs located!") - time.Sleep(time.Second * 1) - - // We'll mine one more block, which triggers the 1 CSV needed for Dave - // to sweep his output. - mineBlocks(t, net, 1, 0) - // We should also have a new sweep transaction in the mempool. daveSweepTxid, err := waitForNTxsInMempool( - net.Miner.Client, 1, time.Second*5, + net.Miner.Client, 1, shortTimeout, ) require.NoError(t.t, err) @@ -1412,11 +1406,11 @@ func testCustomChannelsForceClose(ctx context.Context, net *NetworkHarness, // Next, we'll mine three additional blocks to trigger the CSV delay // for Charlie. - mineBlocks(t, net, 3, 0) + mineBlocks(t, net, 4, 0) // We expect that Charlie's sweep transaction has been broadcast. charlieSweepTxid, err := waitForNTxsInMempool( - net.Miner.Client, 1, time.Second*5, + net.Miner.Client, 1, shortTimeout, ) require.NoError(t.t, err) @@ -1780,7 +1774,10 @@ func testCustomChannelsLiquidityEdgeCases(ctx context.Context, connectAllNodes(t.t, net, nodes) fundAllNodes(t.t, net, nodes) - // Create the normal channel between Dave and Erin. + // Create the normal channel between Dave and Erin. We don't clean up + // this channel because we expect there to be in-flight HTLCs due to + // some of the edge cases we're testing. Waiting for those HTLCs to time + // out would take too long. t.Logf("Opening normal channel between Dave and Erin...") channelOp := openChannelAndAssert( t, net, dave, erin, lntest.OpenChannelParams{ @@ -1788,7 +1785,6 @@ func testCustomChannelsLiquidityEdgeCases(ctx context.Context, SatPerVByte: 5, }, ) - defer closeChannelAndAssert(t, net, dave, channelOp, true) // This is the only public channel, we need everyone to be aware of it. assertChannelKnown(t.t, charlie, channelOp) @@ -2235,7 +2231,7 @@ func testCustomChannelsStrictForwarding(ctx context.Context, SatPerVByte: 5, }, ) - defer closeChannelAndAssert(t, net, dave, channelOp, true) + defer closeChannelAndAssert(t, net, dave, channelOp, false) // This is the only public channel, we need everyone to be aware of it. assertChannelKnown(t.t, charlie, channelOp) @@ -2315,11 +2311,9 @@ func testCustomChannelsStrictForwarding(ctx context.Context, // Erin pays Dave with enough satoshis, but Charlie will not settle as // he expects assets. hops := [][]byte{dave.PubKey[:]} - payInvoiceWithSatoshiLastHop( - t.t, erin, assetInvoice, hops, withFailure( - lnrpc.Payment_FAILED, 0, - ), - ) + payInvoiceWithSatoshiLastHop(t.t, erin, assetInvoice, hops, withFailure( + lnrpc.Payment_FAILED, 0, + )) // Make sure the invoice hasn't been settled and there's no HTLC on the // channel between Erin and Dave. @@ -3326,9 +3320,6 @@ func runCustomChannelsHtlcForceClose(ctx context.Context, t *harnessTest, walletrpc.WitnessType_TAPROOT_HTLC_ACCEPTED_REMOTE_SUCCESS, ) - // We'll mine an empty block to get the sweeper to tick. - mineBlocks(t, net, 1, 0) - bobSweepTx1, err := waitForNTxsInMempool( net.Miner.Client, 1, shortTimeout, ) @@ -3523,9 +3514,6 @@ func runCustomChannelsHtlcForceClose(ctx context.Context, t *harnessTest, walletrpc.WitnessType_TAPROOT_HTLC_OFFERED_REMOTE_TIMEOUT, ) - // We'll mine an extra block to trigger the sweeper. - mineBlocks(t, net, 1, 0) - t.Logf("Confirming initial HTLC timeout txns") // Finally, we'll mine a single block to confirm them. From d64babdfa9a5ff8fdca3a691b9c7d5a5c95d9e86 Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Wed, 12 Mar 2025 17:41:40 -0500 Subject: [PATCH 8/8] itest: disable height hint cache to fix notifier bug --- itest/litd_custom_channels_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/itest/litd_custom_channels_test.go b/itest/litd_custom_channels_test.go index 33aac8940..5f506a7fa 100644 --- a/itest/litd_custom_channels_test.go +++ b/itest/litd_custom_channels_test.go @@ -68,6 +68,7 @@ var ( "--protocol.custom-message=17", "--accept-keysend", "--debuglevel=trace,GRPC=error,BTCN=info", + "--height-hint-cache-query-disable", } litdArgsTemplateNoOracle = []string{ "--taproot-assets.allow-public-uni-proof-courier",