diff --git a/chain_notifier_wait.go b/chain_notifier_wait.go new file mode 100644 index 000000000..3f3dc5af9 --- /dev/null +++ b/chain_notifier_wait.go @@ -0,0 +1,115 @@ +package terminal + +import ( + "context" + "strings" + "time" + + "github.com/lightninglabs/lndclient" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +const ( + chainNotifierStartupMessage = "chain notifier RPC is still in the " + + "process of starting" +) + +// waitForChainNotifierReady blocks until lnd's chain notifier accepts a block +// epoch subscription or the provided context is canceled. +func waitForChainNotifierReady(ctx context.Context, + notifier lndclient.ChainNotifierClient) error { + + const ( + initialBackoff = 200 * time.Millisecond + maxBackoff = 5 * time.Second + streamGrace = 2 * time.Second + ) + + backoff := initialBackoff + + for { + select { + case <-ctx.Done(): + return ctx.Err() + + default: + } + + attemptCtx, cancel := context.WithCancel(ctx) + blockChan, errChan, err := notifier.RegisterBlockEpochNtfn(attemptCtx) + switch { + case err != nil: + cancel() + + isStartupErr := status.Code(err) == codes.Unavailable || + strings.Contains(err.Error(), + chainNotifierStartupMessage) + if !isStartupErr { + return err + } + + log.Warnf("Chain notifier RPC not ready, retrying in %v: %v", + backoff, err) + + default: + timer := time.NewTimer(streamGrace) + + select { + case <-blockChan: + go drainReadinessNtfn( + attemptCtx, cancel, blockChan, errChan, + ) + return nil + + case err = <-errChan: + cancel() + + log.Warnf("Chain notifier stream ended early, "+ + "retrying: %v", err) + + case <-timer.C: + go drainReadinessNtfn( + attemptCtx, cancel, blockChan, errChan, + ) + return nil + + case <-ctx.Done(): + cancel() + return ctx.Err() + } + } + + select { + case <-time.After(backoff): + + case <-ctx.Done(): + return ctx.Err() + } + + backoff *= 2 + if backoff > maxBackoff { + backoff = maxBackoff + } + } +} + +// drainReadinessNtfn discards notifications until the daemon shuts down, +// allowing the readiness subscription to stay open without affecting lnd logs. +func drainReadinessNtfn(ctx context.Context, cancel func(), + blockChan <-chan int32, errChan <-chan error) { + + defer cancel() + + for { + select { + case <-blockChan: + + case <-errChan: + return + + case <-ctx.Done(): + return + } + } +} diff --git a/docs/release-notes/release-notes-0.16.0.md b/docs/release-notes/release-notes-0.16.0.md index 2c57a0b52..5a9f00735 100644 --- a/docs/release-notes/release-notes-0.16.0.md +++ b/docs/release-notes/release-notes-0.16.0.md @@ -41,11 +41,15 @@ and also added coverage to verify support for channel versioning: * Updated [`lnd` to `v0.20.0-beta.rc2`](https://github.com/lightninglabs/lightning-terminal/pull/1163). +* Updated [`lnd` to + `v0.20.0-beta`](https://github.com/lightninglabs/lightning-terminal/pull/1173). ### Loop * Updated [`loop` to `v0.31.5-beta`](https://github.com/lightninglabs/lightning-terminal/pull/1163). +* Updated [`loop` to + `v0.31.6-beta`](https://github.com/lightninglabs/lightning-terminal/pull/1173). ### Pool @@ -55,5 +59,7 @@ and also added coverage to verify support for channel versioning: * Updated [`taproot-assets` to `v0.7.0-rc2`](https://github.com/lightninglabs/lightning-terminal/pull/1163). +* Updated [`taproot-assets` to + `v0.7.0`](https://github.com/lightninglabs/lightning-terminal/pull/1173). # Contributors (Alphabetical Order) \ No newline at end of file diff --git a/go.mod b/go.mod index d7d76537f..5e4932751 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,12 @@ module github.com/lightninglabs/lightning-terminal go 1.24.9 +replace ( + github.com/lightninglabs/loop => github.com/ffranr/loop v0.0.0-20251113214526-b8d6583d1830 + github.com/lightninglabs/loop/looprpc => github.com/ffranr/loop/looprpc v0.0.0-20251113214526-b8d6583d1830 + github.com/lightninglabs/loop/swapserverrpc => github.com/ffranr/loop/swapserverrpc v0.0.0-20251114111854-90b49c782932 +) + require ( github.com/btcsuite/btcd v0.24.3-0.20250318170759-4f4ea81776d6 github.com/btcsuite/btcd/btcec/v2 v2.3.4 @@ -25,16 +31,16 @@ require ( github.com/lightninglabs/lightning-terminal/autopilotserverrpc v0.0.3 github.com/lightninglabs/lightning-terminal/litrpc v1.0.2 github.com/lightninglabs/lightning-terminal/perms v1.0.1 - github.com/lightninglabs/lndclient v0.20.0-3 + github.com/lightninglabs/lndclient v0.20.0-5 github.com/lightninglabs/loop v0.31.5-beta-lnd0.20 github.com/lightninglabs/loop/looprpc v1.0.11 github.com/lightninglabs/loop/swapserverrpc v1.0.18 github.com/lightninglabs/pool v0.6.6-beta github.com/lightninglabs/pool/auctioneerrpc v1.1.3 github.com/lightninglabs/pool/poolrpc v1.0.1 - github.com/lightninglabs/taproot-assets v0.7.0-rc2 - github.com/lightninglabs/taproot-assets/taprpc v1.0.10 - github.com/lightningnetwork/lnd v0.20.0-beta.rc2 + github.com/lightninglabs/taproot-assets v0.7.0-rc2.0.20251113142520-4139ffc9487d + github.com/lightninglabs/taproot-assets/taprpc v1.0.11-0.20251113142520-4139ffc9487d + github.com/lightningnetwork/lnd v0.20.0-beta github.com/lightningnetwork/lnd/cert v1.2.2 github.com/lightningnetwork/lnd/clock v1.1.1 github.com/lightningnetwork/lnd/fn v1.2.5 @@ -166,7 +172,7 @@ require ( github.com/ncruces/go-strftime v0.1.9 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect - github.com/opencontainers/runc v1.2.0 // indirect + github.com/opencontainers/runc v1.2.8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/prometheus/client_golang v1.14.0 // indirect github.com/prometheus/client_model v0.4.0 // indirect @@ -185,7 +191,7 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 // indirect github.com/tv42/zbase32 v0.0.0-20160707012821-501572607d02 // indirect - github.com/urfave/cli-docs/v3 v3.1.0 // indirect + github.com/urfave/cli-docs/v3 v3.1.1-0.20251020101624-bec07369b4f6 // indirect github.com/urfave/cli/v3 v3.4.1 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect diff --git a/go.sum b/go.sum index e0e4baf97..fe4f6ae26 100644 --- a/go.sum +++ b/go.sum @@ -794,6 +794,12 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fergusstrange/embedded-postgres v1.25.0 h1:sa+k2Ycrtz40eCRPOzI7Ry7TtkWXXJ+YRsxpKMDhxK0= github.com/fergusstrange/embedded-postgres v1.25.0/go.mod h1:t/MLs0h9ukYM6FSt99R7InCHs1nW0ordoVCcnzmpTYw= +github.com/ffranr/loop v0.0.0-20251113214526-b8d6583d1830 h1:HNIa4DF2WjUnGxJ1XWzBmFIw96N/1+jFPOq4rdc0wlQ= +github.com/ffranr/loop v0.0.0-20251113214526-b8d6583d1830/go.mod h1:daVJ0g8rH2KLv4US8yZpE8L+NDFZqkazP4G6BmRpWzo= +github.com/ffranr/loop/looprpc v0.0.0-20251113214526-b8d6583d1830 h1:PDeDlQ66UHXs5yaYoFNScKzpJ+rBp4lCWPWgAhirf9g= +github.com/ffranr/loop/looprpc v0.0.0-20251113214526-b8d6583d1830/go.mod h1:98DiKwW71FNchh8YplBly1tBPNOma8mnrcaNrUaeR38= +github.com/ffranr/loop/swapserverrpc v0.0.0-20251114111854-90b49c782932 h1:crqb0gTj8TDq/+yeEGdTENpRXqXFcSYoflB/1HEeRsM= +github.com/ffranr/loop/swapserverrpc v0.0.0-20251114111854-90b49c782932/go.mod h1:nIgLTTEZ/fdWi9UVjNZ8XkkDMZI9wcEEVkEl9Wltyb4= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= @@ -1154,14 +1160,8 @@ github.com/lightninglabs/lightning-node-connect/hashmailrpc v1.0.3 h1:NuDp6Z+QNM github.com/lightninglabs/lightning-node-connect/hashmailrpc v1.0.3/go.mod h1:bDnEKRN1u13NFBuy/C+bFLhxA5bfd3clT25y76QY0AM= github.com/lightninglabs/lightning-node-connect/mailbox v1.0.1 h1:RWmohykp3n/DTMWY8b18RNTEcLDf+KT/AZHKYdOObkM= github.com/lightninglabs/lightning-node-connect/mailbox v1.0.1/go.mod h1:NYtNexZE9gO1eOeegTxmIW9fqanl7eZ9cOrE9yewSAk= -github.com/lightninglabs/lndclient v0.20.0-3 h1:hL37EJHYupIEQRSgogA6AFbFQ/6l+A+DuqJMGZ8vm8s= -github.com/lightninglabs/lndclient v0.20.0-3/go.mod h1:GMqsKYJ/CkKY2DgPJfcvvHf98qiwr4fpKir8oAN7TiI= -github.com/lightninglabs/loop v0.31.5-beta-lnd0.20 h1:IO4s9WUER1OIO8Aqam/k6mVoZnWh+loJAGt19w/I12Y= -github.com/lightninglabs/loop v0.31.5-beta-lnd0.20/go.mod h1:11ojYzxnwdHkErhV8aFHy9IfReokOoNRg/B72F5Ck4g= -github.com/lightninglabs/loop/looprpc v1.0.11 h1:YCz67k5GSm3EKMCRBfis034Pd3R0+vPPHgfNwQqjpaE= -github.com/lightninglabs/loop/looprpc v1.0.11/go.mod h1:m2B9bg8Cus1TVbXD3RffKVmGS3lpV2Zl1yu5x3wcQYk= -github.com/lightninglabs/loop/swapserverrpc v1.0.18 h1:gMZi7uU5yeNqqKyPYZHpjgiPr8mmU6DDRPYCIGdtL/A= -github.com/lightninglabs/loop/swapserverrpc v1.0.18/go.mod h1:yZqah0rhO54JN9/dk41DdRvjQCxX0RjGVVwtXOXgypE= +github.com/lightninglabs/lndclient v0.20.0-5 h1:CSTJxMoE9aTI92QKJseh1G4l9jqdN7X1JrDyXdbbmNo= +github.com/lightninglabs/lndclient v0.20.0-5/go.mod h1:gBtIFPGmC2xIspGIv/G5+HiPSGJsFD8uIow7Oke1HFI= github.com/lightninglabs/migrate/v4 v4.18.2-9023d66a-fork-pr-2 h1:eFjp1dIB2BhhQp/THKrjLdlYuPugO9UU4kDqu91OX/Q= github.com/lightninglabs/migrate/v4 v4.18.2-9023d66a-fork-pr-2/go.mod h1:99BKpIi6ruaaXRM1A77eqZ+FWPQ3cfRa+ZVy5bmWMaY= github.com/lightninglabs/neutrino v0.16.1 h1:5Kz4ToxncEVkpKC6fwUjXKtFKJhuxlG3sBB3MdJTJjs= @@ -1176,14 +1176,14 @@ github.com/lightninglabs/pool/poolrpc v1.0.1 h1:XbNx28TYwEj/PVsnnF9TnveVCMCYfS1v github.com/lightninglabs/pool/poolrpc v1.0.1/go.mod h1:836icifg/SBnZbiae0v3jeRRzCrT6LWo32SqCS/JiGk= 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.7.0-rc2 h1:5fACDIbbRrSfx0n/L1+WwUe5w3tw4TNii1GxT+K1Bkc= -github.com/lightninglabs/taproot-assets v0.7.0-rc2/go.mod h1:qC9TBmn7gV+6LrDhacCe2DD0MnMbD1FgUzJ14LLb7E8= -github.com/lightninglabs/taproot-assets/taprpc v1.0.10 h1:F88dKn9X/Ik1onpf60Q6XDdBl7UQ85gXJL6e8JIk2Fc= -github.com/lightninglabs/taproot-assets/taprpc v1.0.10/go.mod h1:ufuKxkMNdfRnv4IcnLw7ken69DcCUxO79WSpC8mIvdM= +github.com/lightninglabs/taproot-assets v0.7.0-rc2.0.20251113142520-4139ffc9487d h1:HzcnrOGYqaodOHrMogOaWMKYGcsgJ+eeQ++01X2HJXM= +github.com/lightninglabs/taproot-assets v0.7.0-rc2.0.20251113142520-4139ffc9487d/go.mod h1:KPVXin+YtpGUGYdkcDh2l1pclKqWu6blW+rXAHTK0WI= +github.com/lightninglabs/taproot-assets/taprpc v1.0.11-0.20251113142520-4139ffc9487d h1:nN0cT64MDQSxB4Pq4oIPqObEg9OGwvOVMlOsuEdEVWA= +github.com/lightninglabs/taproot-assets/taprpc v1.0.11-0.20251113142520-4139ffc9487d/go.mod h1:DZn+0c9/PHEKisJLSqNdyH3BVJmwl8mFLe04y++/FlI= github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9 h1:6D3LrdagJweLLdFm1JNodZsBk6iU4TTsBBFLQ4yiXfI= github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9/go.mod h1:EDqJ3MuZIbMq0QI1czTIKDJ/GS8S14RXPwapHw8cw6w= -github.com/lightningnetwork/lnd v0.20.0-beta.rc2 h1:5ZbjqhqZCGeJPG+7S1NMB4LIa3pXx2JH9wfyq5Gl2aY= -github.com/lightningnetwork/lnd v0.20.0-beta.rc2/go.mod h1:iypbY+dTgHmC+HOu5kW8JwnyA13Jzicb/aF5JMkwoWo= +github.com/lightningnetwork/lnd v0.20.0-beta h1:ML+jgJ3UKDGJdUf0m73ZeR/szJKWVtHxpQP+yFC79b8= +github.com/lightningnetwork/lnd v0.20.0-beta/go.mod h1:8hc55AnE3mMSJ/UAEJZgmhgNCcH0yWaPg0olpxhhp4M= 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= @@ -1273,8 +1273,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.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/opencontainers/runc v1.2.0 h1:qke7ZVCmJcKrJVY2iHJVC+0kql9uYdkusOPsQOOeBw4= -github.com/opencontainers/runc v1.2.0/go.mod h1:/PXzF0h531HTMsYQnmxXkBD7YaGShm/2zcRB79dksUc= +github.com/opencontainers/runc v1.2.8 h1:RnEICeDReapbZ5lZEgHvj7E9Q3Eex9toYmaGBsbvU5Q= +github.com/opencontainers/runc v1.2.8/go.mod h1:cC0YkmZcuvr+rtBZ6T7NBoVbMGNAdLa/21vIElJDOzI= 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= @@ -1392,8 +1392,8 @@ 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.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= -github.com/urfave/cli-docs/v3 v3.1.0 h1:Sa5xm19IpE5gpm6tZzXdfjdFxn67PnEsE4dpXF7vsKw= -github.com/urfave/cli-docs/v3 v3.1.0/go.mod h1:59d+5Hz1h6GSGJ10cvcEkbIe3j233t4XDqI72UIx7to= +github.com/urfave/cli-docs/v3 v3.1.1-0.20251020101624-bec07369b4f6 h1:cm0BrTu3Q0CNo+vB5kErCcVMZqD2D1z7y3YVIiBlr+o= +github.com/urfave/cli-docs/v3 v3.1.1-0.20251020101624-bec07369b4f6/go.mod h1:59d+5Hz1h6GSGJ10cvcEkbIe3j233t4XDqI72UIx7to= github.com/urfave/cli/v3 v3.4.1 h1:1M9UOCy5bLmGnuu1yn3t3CB4rG79Rtoxuv1sPhnm6qM= github.com/urfave/cli/v3 v3.4.1/go.mod h1:FJSKtM/9AiiTOJL4fJ6TbMUkxBXn7GO9guZqoZtpYpo= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= diff --git a/litrpc/go.mod b/litrpc/go.mod index 410334c7e..4a1dfee55 100644 --- a/litrpc/go.mod +++ b/litrpc/go.mod @@ -2,13 +2,15 @@ module github.com/lightninglabs/lightning-terminal/litrpc go 1.24.9 +replace github.com/lightninglabs/loop/looprpc => github.com/ffranr/loop/looprpc v0.0.0-20251113214526-b8d6583d1830 + require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 github.com/lightninglabs/faraday/frdrpc v1.0.1 github.com/lightninglabs/loop/looprpc v1.0.11 github.com/lightninglabs/pool/poolrpc v1.0.1 - github.com/lightninglabs/taproot-assets/taprpc v1.0.10 - github.com/lightningnetwork/lnd v0.20.0-beta.rc2 + github.com/lightninglabs/taproot-assets/taprpc v1.0.11-0.20251113142520-4139ffc9487d + github.com/lightningnetwork/lnd v0.20.0-beta google.golang.org/grpc v1.65.0 google.golang.org/protobuf v1.34.2 ) diff --git a/litrpc/go.sum b/litrpc/go.sum index 170e60523..d36d25aee 100644 --- a/litrpc/go.sum +++ b/litrpc/go.sum @@ -784,6 +784,8 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fergusstrange/embedded-postgres v1.25.0 h1:sa+k2Ycrtz40eCRPOzI7Ry7TtkWXXJ+YRsxpKMDhxK0= github.com/fergusstrange/embedded-postgres v1.25.0/go.mod h1:t/MLs0h9ukYM6FSt99R7InCHs1nW0ordoVCcnzmpTYw= +github.com/ffranr/loop/looprpc v0.0.0-20251113214526-b8d6583d1830 h1:PDeDlQ66UHXs5yaYoFNScKzpJ+rBp4lCWPWgAhirf9g= +github.com/ffranr/loop/looprpc v0.0.0-20251113214526-b8d6583d1830/go.mod h1:98DiKwW71FNchh8YplBly1tBPNOma8mnrcaNrUaeR38= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/frankban/quicktest v1.0.0/go.mod h1:R98jIehRai+d1/3Hv2//jOVCTJhW1VBavT6B6CuGq2k= @@ -1088,8 +1090,6 @@ github.com/lightninglabs/faraday/frdrpc v1.0.1 h1:3YlP9UwT0bmT468oAdn4dxwsaJBI4Q github.com/lightninglabs/faraday/frdrpc v1.0.1/go.mod h1:ot1R/RGzk61d3qCrZPL36jI5ziGmKbvvE7UQKsJKuvk= 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/loop/looprpc v1.0.11 h1:YCz67k5GSm3EKMCRBfis034Pd3R0+vPPHgfNwQqjpaE= -github.com/lightninglabs/loop/looprpc v1.0.11/go.mod h1:m2B9bg8Cus1TVbXD3RffKVmGS3lpV2Zl1yu5x3wcQYk= github.com/lightninglabs/loop/swapserverrpc v1.0.13 h1:Qf4L8QBJKzhKRcC8dpvfrrBEXJMF3+XbpomAHEJsRDY= github.com/lightninglabs/loop/swapserverrpc v1.0.13/go.mod h1:Ml3gMwe/iTRLvu1QGGZzXcr0DYSa9sJGwKPktLaWtwE= github.com/lightninglabs/neutrino v0.16.1 h1:5Kz4ToxncEVkpKC6fwUjXKtFKJhuxlG3sBB3MdJTJjs= @@ -1102,12 +1102,12 @@ github.com/lightninglabs/pool/poolrpc v1.0.1 h1:XbNx28TYwEj/PVsnnF9TnveVCMCYfS1v github.com/lightninglabs/pool/poolrpc v1.0.1/go.mod h1:836icifg/SBnZbiae0v3jeRRzCrT6LWo32SqCS/JiGk= 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/taprpc v1.0.10 h1:F88dKn9X/Ik1onpf60Q6XDdBl7UQ85gXJL6e8JIk2Fc= -github.com/lightninglabs/taproot-assets/taprpc v1.0.10/go.mod h1:ufuKxkMNdfRnv4IcnLw7ken69DcCUxO79WSpC8mIvdM= +github.com/lightninglabs/taproot-assets/taprpc v1.0.11-0.20251113142520-4139ffc9487d h1:nN0cT64MDQSxB4Pq4oIPqObEg9OGwvOVMlOsuEdEVWA= +github.com/lightninglabs/taproot-assets/taprpc v1.0.11-0.20251113142520-4139ffc9487d/go.mod h1:DZn+0c9/PHEKisJLSqNdyH3BVJmwl8mFLe04y++/FlI= github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9 h1:6D3LrdagJweLLdFm1JNodZsBk6iU4TTsBBFLQ4yiXfI= github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9/go.mod h1:EDqJ3MuZIbMq0QI1czTIKDJ/GS8S14RXPwapHw8cw6w= -github.com/lightningnetwork/lnd v0.20.0-beta.rc2 h1:5ZbjqhqZCGeJPG+7S1NMB4LIa3pXx2JH9wfyq5Gl2aY= -github.com/lightningnetwork/lnd v0.20.0-beta.rc2/go.mod h1:iypbY+dTgHmC+HOu5kW8JwnyA13Jzicb/aF5JMkwoWo= +github.com/lightningnetwork/lnd v0.20.0-beta h1:ML+jgJ3UKDGJdUf0m73ZeR/szJKWVtHxpQP+yFC79b8= +github.com/lightningnetwork/lnd v0.20.0-beta/go.mod h1:8hc55AnE3mMSJ/UAEJZgmhgNCcH0yWaPg0olpxhhp4M= 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/v2 v2.0.9 h1:ZytG4ltPac/sCyg1EJDn10RGzPIDJeyennUMRdOw7Y8= diff --git a/perms/go.mod b/perms/go.mod index ca4a2f2a4..a72382990 100644 --- a/perms/go.mod +++ b/perms/go.mod @@ -4,7 +4,7 @@ go 1.24.9 require ( github.com/btcsuite/btcd v0.24.3-0.20250318170759-4f4ea81776d6 - github.com/lightningnetwork/lnd v0.20.0-beta.rc2 + github.com/lightningnetwork/lnd v0.20.0-beta github.com/stretchr/testify v1.10.0 gopkg.in/macaroon-bakery.v2 v2.3.0 ) diff --git a/perms/go.sum b/perms/go.sum index b7771f71a..8a91e9683 100644 --- a/perms/go.sum +++ b/perms/go.sum @@ -364,8 +364,8 @@ github.com/lightninglabs/neutrino/cache v1.1.2 h1:C9DY/DAPaPxbFC+xNNEI/z1SJY9GS3 github.com/lightninglabs/neutrino/cache v1.1.2/go.mod h1:XJNcgdOw1LQnanGjw8Vj44CvguYA25IMKjWFZczwZuo= github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9 h1:6D3LrdagJweLLdFm1JNodZsBk6iU4TTsBBFLQ4yiXfI= github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9/go.mod h1:EDqJ3MuZIbMq0QI1czTIKDJ/GS8S14RXPwapHw8cw6w= -github.com/lightningnetwork/lnd v0.20.0-beta.rc2 h1:5ZbjqhqZCGeJPG+7S1NMB4LIa3pXx2JH9wfyq5Gl2aY= -github.com/lightningnetwork/lnd v0.20.0-beta.rc2/go.mod h1:iypbY+dTgHmC+HOu5kW8JwnyA13Jzicb/aF5JMkwoWo= +github.com/lightningnetwork/lnd v0.20.0-beta h1:ML+jgJ3UKDGJdUf0m73ZeR/szJKWVtHxpQP+yFC79b8= +github.com/lightningnetwork/lnd v0.20.0-beta/go.mod h1:8hc55AnE3mMSJ/UAEJZgmhgNCcH0yWaPg0olpxhhp4M= 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= diff --git a/terminal.go b/terminal.go index 66dfcf635..eea2b34c0 100644 --- a/terminal.go +++ b/terminal.go @@ -956,6 +956,16 @@ func (g *LightningTerminal) setupFullLNDClient(ctx context.Context, if err == nil { log.Infof("Full lnd client connected") + log.Infof("Waiting for chain notifier to become available") + err = waitForChainNotifierReady( + ctx, g.lndClient.ChainNotifier, + ) + if err != nil { + return fmt.Errorf("waiting for chain notifier: %w", + err) + } + log.Infof("Chain notifier ready") + break }