From 862c1dba9d7e0b5b6bb14e0b2b25df6e3c9b82e6 Mon Sep 17 00:00:00 2001 From: Calvin Zachman Date: Tue, 2 Jun 2026 16:37:33 -0400 Subject: [PATCH 1/3] multi: bump lnd, lndclient, and taproot-assets dependencies Bumps lnd to v0.21.0-beta, lndclient to v0.21.0-1, and taproot-assets to v0.8.0 across the root, litrpc, and perms modules. taprpc uses the proper v1.1.0 tag. lnd removed the deprecated SendPaymentSync, SendToRouteSync, SendPayment (streaming), and SendToRoute (streaming) RPCs. The account interceptor checkers and their tests for these RPCs are removed since no client can call them anymore. The V2 checkers already handle account tracking for payments. The itest harness is updated for lnd v0.21's miner API changes (SendOutputs -> SendOutput, Miner.Client.Generate -> GenerateBlocks, waitForNTxsInMempool replaced by Miner.AssertNumTxsInMempool) and TimeLockDelta bumped from 20 to 40 since lnd v0.21 raised MinCLTVDelta from 18 to 24. --- .github/workflows/main.yml | 2 +- Dockerfile | 2 +- Makefile | 2 +- accounts/checkers.go | 74 ---------- accounts/checkers_test.go | 266 +++--------------------------------- autopilotserverrpc/go.mod | 2 +- dev.Dockerfile | 2 +- go.mod | 66 ++++----- go.sum | 122 +++++++++-------- itest/litd_firewall_test.go | 24 ++-- itest/network_harness.go | 20 +-- itest/test_harness.go | 65 +-------- litrpc/Dockerfile | 2 +- litrpc/go.mod | 37 ++--- litrpc/go.sum | 68 +++++---- make/builder.Dockerfile | 2 +- perms/go.mod | 36 ++--- perms/go.sum | 68 +++++---- tools/Dockerfile | 2 +- tools/go.mod | 2 +- tools/linters/go.mod | 2 +- 21 files changed, 265 insertions(+), 601 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5a4091dd..92adc4c3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,7 +21,7 @@ env: # If you change this value, please change it in the following files as well: # /Dockerfile # /dev.Dockerfile - GO_VERSION: 1.25.5 + GO_VERSION: 1.25.10 jobs: ######################## diff --git a/Dockerfile b/Dockerfile index e637a1e7..b357b3b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,7 @@ RUN apk add --no-cache --update alpine-sdk \ # The first stage is already done and all static assets should now be generated # in the app/build sub directory. -FROM golang:1.25.5-alpine3.23@sha256:ac09a5f469f307e5da71e766b0bd59c9c49ea460a528cc3e6686513d64a6f1fb as golangbuilder +FROM golang:1.25.10-alpine3.23@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45 as golangbuilder # Instead of checking out from git again, we just copy the whole working # directory of the previous stage that includes the generated static assets. diff --git a/Makefile b/Makefile index 7bc82e21..f36c0fce 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ PUBLIC_URL := # GO_VERSION is the Go version used for the release build, docker files, and # GitHub Actions. This is the reference version for the project. All other Go # versions are checked against this version. -GO_VERSION = 1.25.5 +GO_VERSION = 1.25.10 LOOP_COMMIT := $(shell cat go.mod | \ grep $(LOOP_PKG) | \ diff --git a/accounts/checkers.go b/accounts/checkers.go index ac734cd0..03a50fc9 100644 --- a/accounts/checkers.go +++ b/accounts/checkers.go @@ -82,34 +82,6 @@ type AccountChecker struct { func NewAccountChecker(service Service, chainParams *chaincfg.Params) *AccountChecker { - // sendResponseHandler is a response handler function that is used by - // multiple RPC checkers for checking an RPC response sent for a payment - // attempt. - sendResponseHandler := func(ctx context.Context, - r *lnrpc.SendResponse) (proto.Message, error) { - - status := lnrpc.Payment_IN_FLIGHT - if len(r.PaymentError) > 0 { - status = lnrpc.Payment_FAILED - } - - hash, err := lntypes.MakeHash(r.PaymentHash) - if err != nil { - return nil, fmt.Errorf("error parsing payment hash: %v", - err) - } - - route := r.PaymentRoute - totalAmount := int64(0) - if route != nil { - totalAmount = route.TotalAmtMsat + route.TotalFeesMsat - } - - return checkSendResponse( - ctx, service, status, hash, totalAmount, - ) - } - // nolint:ll checkers := CheckerMap{ // Invoices: @@ -178,29 +150,6 @@ func NewAccountChecker(service Service, ), // Payments: - "/lnrpc.Lightning/SendPayment": mid.NewFullChecker( - &lnrpc.SendRequest{}, - &lnrpc.SendResponse{}, - func(ctx context.Context, r *lnrpc.SendRequest) error { - return checkSend( - ctx, chainParams, service, r.Amt, - r.AmtMsat, r.PaymentRequest, - r.PaymentHash, r.FeeLimit, - ) - }, sendResponseHandler, erroredPaymentHandler(service), - ), - "/lnrpc.Lightning/SendPaymentSync": mid.NewFullChecker( - &lnrpc.SendRequest{}, - &lnrpc.SendResponse{}, - func(ctx context.Context, r *lnrpc.SendRequest) error { - return checkSend( - ctx, chainParams, service, r.Amt, - r.AmtMsat, r.PaymentRequest, - r.PaymentHash, r.FeeLimit, - ) - }, sendResponseHandler, erroredPaymentHandler(service), - ), - // routerrpc.Router/SendPayment is deprecated. "/routerrpc.Router/SendPaymentV2": mid.NewFullChecker( &routerrpc.SendPaymentRequest{}, &lnrpc.Payment{}, @@ -240,29 +189,6 @@ func NewAccountChecker(service Service, ) }, erroredPaymentHandler(service), ), - "/lnrpc.Lightning/SendToRoute": mid.NewFullChecker( - &lnrpc.SendToRouteRequest{}, - &lnrpc.SendResponse{}, - func(ctx context.Context, - r *lnrpc.SendToRouteRequest) error { - - return checkSendToRoute( - ctx, service, r.PaymentHash, r.Route, - ) - }, sendResponseHandler, erroredPaymentHandler(service), - ), - "/lnrpc.Lightning/SendToRouteSync": mid.NewFullChecker( - &lnrpc.SendToRouteRequest{}, - &lnrpc.SendResponse{}, - func(ctx context.Context, - r *lnrpc.SendToRouteRequest) error { - - return checkSendToRoute( - ctx, service, r.PaymentHash, r.Route, - ) - }, sendResponseHandler, erroredPaymentHandler(service), - ), - // routerrpc.Router/SendToRoute is deprecated. "/routerrpc.Router/SendToRouteV2": mid.NewFullChecker( &routerrpc.SendToRouteRequest{}, &lnrpc.HTLCAttempt{}, diff --git a/accounts/checkers_test.go b/accounts/checkers_test.go index 8289d52e..c6203c6f 100644 --- a/accounts/checkers_test.go +++ b/accounts/checkers_test.go @@ -243,50 +243,41 @@ func TestAccountCheckers(t *testing.T) { RHash: testHash[:], }, }, { - name: "send payment, not enough balance", - fullURI: "/lnrpc.Lightning/SendPaymentSync", - originalRequest: &lnrpc.SendRequest{ + name: "send payment v2, not enough balance", + fullURI: "/routerrpc.Router/SendPaymentV2", + originalRequest: &routerrpc.SendPaymentRequest{ AmtMsat: 5000, PaymentHash: testHash[:], }, requestErr: "error validating account balance: invalid balance", }, { - name: "send payment, not enough balance because of fee", - fullURI: "/lnrpc.Lightning/SendPaymentSync", + name: "send payment v2, not enough balance because of fee", + fullURI: "/routerrpc.Router/SendPaymentV2", setup: func(s *mockService, acct *OffChainBalanceAccount) { s.acctBalanceMsat = 5000 }, - originalRequest: &lnrpc.SendRequest{ - AmtMsat: 5000, - FeeLimit: &lnrpc.FeeLimit{ - Limit: &lnrpc.FeeLimit_Percent{ - Percent: 1, - }, - }, - PaymentHash: testHash[:], + originalRequest: &routerrpc.SendPaymentRequest{ + AmtMsat: 5000, + FeeLimitMsat: 50, + PaymentHash: testHash[:], }, requestErr: "error validating account balance: invalid balance", }, { - name: "send payment, exact balance", - fullURI: "/lnrpc.Lightning/SendPaymentSync", + name: "send payment v2, exact balance", + fullURI: "/routerrpc.Router/SendPaymentV2", setup: func(s *mockService, acct *OffChainBalanceAccount) { s.acctBalanceMsat = 5123 }, - originalRequest: &lnrpc.SendRequest{ - AmtMsat: 5000, - FeeLimit: &lnrpc.FeeLimit{ - Limit: &lnrpc.FeeLimit_FixedMsat{ - FixedMsat: 123, - }, - }, - PaymentHash: testHash[:], + originalRequest: &routerrpc.SendPaymentRequest{ + AmtMsat: 5000, + FeeLimitMsat: 123, + PaymentHash: testHash[:], }, - originalResponse: &lnrpc.SendResponse{ - PaymentHash: testHash[:], - PaymentRoute: &lnrpc.Route{ - TotalAmtMsat: 5000, - TotalFeesMsat: 123, - }, + originalResponse: &lnrpc.Payment{ + PaymentHash: hex.EncodeToString(testHash[:]), + ValueMsat: 5000, + FeeMsat: 123, + Status: lnrpc.Payment_IN_FLIGHT, }, validate: func(t *testing.T, s *mockService, acct *OffChainBalanceAccount) { @@ -294,12 +285,6 @@ func TestAccountCheckers(t *testing.T) { require.Contains(t, s.trackedPayments, testHash) payment := s.trackedPayments[testHash] require.EqualValues(t, 5123, payment.FullAmount) - - // We start tracking the payment and don't look at the - // payment state reported by the response. - require.Equal( - t, lnrpc.Payment_UNKNOWN, payment.Status, - ) }, }, { name: "list payments, not mapped to account", @@ -505,217 +490,6 @@ func TestAccountCheckers(t *testing.T) { } } -// TestSendPaymentCalls performs test coverage on the SendPayment and -// SendPaymentSync checkers. -func TestSendPaymentCalls(t *testing.T) { - t.Run("SendPayment", func(t *testing.T) { - testSendPayment(t, "/lnrpc.Lightning/SendPayment") - }) - - t.Run("SendPaymentSync", func(t *testing.T) { - testSendPayment(t, "/lnrpc.Lightning/SendPaymentSync") - }) -} - -func testSendPayment(t *testing.T, uri string) { - var ( - ctx = context.Background() - zeroFee = &lnrpc.FeeLimit{Limit: &lnrpc.FeeLimit_Fixed{ - Fixed: 0, - }} - requestID uint64 - ) - - nextRequestID := func() uint64 { - requestID++ - - return requestID - } - - lndMock := newMockLnd() - routerMock := newMockRouter() - errFunc := func(err error) { - lndMock.mainErrChan <- err - } - clock := clock.NewTestClock(time.Now()) - store := NewTestDB(t, clock) - service, err := NewService(store, errFunc) - require.NoError(t, err) - - err = service.Start(ctx, lndMock, routerMock, chainParams) - require.NoError(t, err) - - assertBalance := func(id AccountID, expectedBalance int64) { - acct, err := service.Account(ctx, id) - require.NoError(t, err) - - require.Equal(t, expectedBalance, - calcAvailableAccountBalance(acct)) - } - - // This should error because there is no account in the context. - err = service.checkers.checkIncomingRequest( - ctx, uri, &lnrpc.SendRequest{}, - ) - require.ErrorContains(t, err, "no account found in context") - - // Create an account and add it to the context. - acct, err := service.NewAccount( - ctx, 5000, clock.Now().Add(time.Hour), "test", - ) - require.NoError(t, err) - - ctxWithAcct := AddAccountToContext(ctx, acct) - - // This should error because there is no request ID in the context. - err = service.checkers.checkIncomingRequest( - ctxWithAcct, uri, &lnrpc.SendRequest{}, - ) - require.ErrorContains(t, err, "no request ID found in context") - - reqID1 := nextRequestID() - ctx = AddRequestIDToContext(ctxWithAcct, reqID1) - - // This should error because no payment hash is provided. - err = service.checkers.checkIncomingRequest( - ctx, uri, &lnrpc.SendRequest{}, - ) - require.ErrorContains(t, err, "a payment hash is required") - - // This should error because of an insufficient account balance. - err = service.checkers.checkIncomingRequest( - ctx, uri, &lnrpc.SendRequest{ - Amt: 1000, - PaymentHash: testHash[:], - }, - ) - require.ErrorContains(t, err, "account balance insufficient") - - // Assert that the balance of the account is still un-changed since none - // of the requests have gone through yet. - assertBalance(acct.ID, 5000) - - // This should work. - err = service.checkers.checkIncomingRequest( - ctx, uri, &lnrpc.SendRequest{ - AmtMsat: 1000, - PaymentHash: testHash[:], - FeeLimit: zeroFee, - }, - ) - require.NoError(t, err) - - // Alright, now assert that the pending amount has been accounted for. - assertBalance(acct.ID, 4000) - - // Try let the same request go through with the same payment hash. This - // should fail and the balance should remain unchanged. - err = service.checkers.checkIncomingRequest( - ctx, uri, &lnrpc.SendRequest{ - AmtMsat: 1000, - PaymentHash: testHash[:], - FeeLimit: zeroFee, - }, - ) - require.ErrorContains(t, err, "is already in flight") - assertBalance(acct.ID, 4000) - - // Now let the response come through for the first request. - _, err = service.checkers.replaceOutgoingResponse( - ctx, uri, &lnrpc.SendResponse{ - PaymentHash: testHash[:], - }, - ) - require.NoError(t, err) - assertBalance(acct.ID, 4000) - - // A repeated response should have no impact. - _, err = service.checkers.replaceOutgoingResponse( - ctx, uri, &lnrpc.SendResponse{ - PaymentHash: testHash[:], - }, - ) - require.NoError(t, err) - assertBalance(acct.ID, 4000) - - routerMock.assertPaymentRequests(t, map[lntypes.Hash]struct{}{ - testHash: {}, - }) - - nextRequestID() - - reqID2 := nextRequestID() - ctx = AddRequestIDToContext(ctxWithAcct, reqID2) - - // Ok now we will test an errored request. First send through a valid - // send request and assert that the available balance is reduced. - err = service.checkers.checkIncomingRequest( - ctx, uri, &lnrpc.SendRequest{ - AmtMsat: 1000, - PaymentHash: testHash2[:], - FeeLimit: zeroFee, - }, - ) - require.NoError(t, err) - assertBalance(acct.ID, 3000) - - // Now return an error response. - _, err = service.checkers.handleErrorResponse( - ctx, uri, nil, - ) - require.NoError(t, err) - - // The balance should have gone back to what it was before the payment - // was initiated. - assertBalance(acct.ID, 4000) - - routerMock.assertNoPaymentRequest(t) - - // The final test we will do is to have two send requests initiated - // before the response for the first one has been received. - reqID3 := nextRequestID() - ctx = AddRequestIDToContext(ctxWithAcct, reqID3) - - err = service.checkers.checkIncomingRequest( - ctx, uri, &lnrpc.SendRequest{ - AmtMsat: 2000, - PaymentHash: testHash3[:], - FeeLimit: zeroFee, - }, - ) - require.NoError(t, err) - assertBalance(acct.ID, 2000) - - reqID4 := nextRequestID() - ctx = AddRequestIDToContext(ctxWithAcct, reqID4) - err = service.checkers.checkIncomingRequest( - ctx, uri, &lnrpc.SendRequest{ - AmtMsat: 2000, - PaymentHash: testHash4[:], - FeeLimit: zeroFee, - }, - ) - require.NoError(t, err) - assertBalance(acct.ID, 0) - - // Ok, now let the response for the second request come through. - _, err = service.checkers.replaceOutgoingResponse( - ctx, uri, &lnrpc.SendResponse{ - PaymentHash: testHash4[:], - }, - ) - require.NoError(t, err) - assertBalance(acct.ID, 0) - - // Let the first request error. - ctx = AddRequestIDToContext(ctxWithAcct, reqID3) - _, err = service.checkers.handleErrorResponse( - ctx, uri, nil, - ) - require.NoError(t, err) - assertBalance(acct.ID, 2000) -} - // TestSendPaymentV2 performs test coverage on the SendPaymentV2 checker. func TestSendPaymentV2(t *testing.T) { var ( diff --git a/autopilotserverrpc/go.mod b/autopilotserverrpc/go.mod index 6e42f79c..26907825 100644 --- a/autopilotserverrpc/go.mod +++ b/autopilotserverrpc/go.mod @@ -1,6 +1,6 @@ module github.com/lightninglabs/lightning-terminal/autopilotserverrpc -go 1.25.5 +go 1.25.10 require ( google.golang.org/grpc v1.79.3 diff --git a/dev.Dockerfile b/dev.Dockerfile index 6e532c5a..2578903a 100644 --- a/dev.Dockerfile +++ b/dev.Dockerfile @@ -20,7 +20,7 @@ RUN cd /go/src/github.com/lightninglabs/lightning-terminal/app \ # The first stage is already done and all static assets should now be generated # in the app/build sub directory. -FROM golang:1.25.5-alpine3.23@sha256:ac09a5f469f307e5da71e766b0bd59c9c49ea460a528cc3e6686513d64a6f1fb as golangbuilder +FROM golang:1.25.10-alpine3.23@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45 as golangbuilder # Instead of checking out from git again, we just copy the whole working # directory of the previous stage that includes the generated static assets. diff --git a/go.mod b/go.mod index f24cf51f..86e10259 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,11 @@ module github.com/lightninglabs/lightning-terminal -go 1.25.5 +go 1.25.10 require ( - 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 v0.25.1-0.20260310163610-1c55c7c18179 + github.com/btcsuite/btcd/btcec/v2 v2.3.6 + github.com/btcsuite/btcd/btcutil v1.1.6 github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b github.com/btcsuite/btcwallet/walletdb v1.5.1 @@ -16,25 +16,23 @@ require ( github.com/improbable-eng/grpc-web v0.12.0 github.com/jackc/pgconn v1.14.3 github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438 - github.com/jessevdk/go-flags v1.4.0 + github.com/jessevdk/go-flags v1.6.1 github.com/lib/pq v1.10.9 github.com/lightninglabs/faraday v0.2.16-alpha github.com/lightninglabs/faraday/frdrpc v1.0.1 github.com/lightninglabs/lightning-node-connect/gbn v1.0.2-0.20250610182311-2f1d46ef18b7 github.com/lightninglabs/lightning-node-connect/mailbox v1.0.2-0.20250610182311-2f1d46ef18b7 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-6 + github.com/lightninglabs/lndclient v0.21.0-1 github.com/lightninglabs/loop v0.31.8-beta github.com/lightninglabs/loop/looprpc v1.0.13 github.com/lightninglabs/loop/swapserverrpc v1.0.20 github.com/lightninglabs/pool v0.7.1-beta github.com/lightninglabs/pool/auctioneerrpc v1.1.3 github.com/lightninglabs/pool/poolrpc v1.0.1 - github.com/lightninglabs/taproot-assets v0.7.1 - github.com/lightninglabs/taproot-assets/taprpc v1.0.12 - github.com/lightningnetwork/lnd v0.20.1-beta + github.com/lightninglabs/taproot-assets v0.8.0 + github.com/lightninglabs/taproot-assets/taprpc v1.1.0 + github.com/lightningnetwork/lnd v0.21.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 @@ -50,11 +48,11 @@ require ( github.com/stretchr/testify v1.11.1 github.com/urfave/cli v1.22.14 go.etcd.io/bbolt v1.4.3 - golang.org/x/crypto v0.46.0 - golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b - golang.org/x/net v0.48.0 + golang.org/x/crypto v0.47.0 + golang.org/x/exp v0.0.0-20250811191247-51f88131bc50 + golang.org/x/net v0.49.0 golang.org/x/sync v0.19.0 - google.golang.org/grpc v1.79.3 + google.golang.org/grpc v1.80.0 google.golang.org/protobuf v1.36.11 gopkg.in/macaroon-bakery.v2 v2.3.0 gopkg.in/macaroon.v2 v2.1.0 @@ -75,8 +73,9 @@ 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/btclog v0.0.0-20241003133417-09c4e92e319c // indirect - github.com/btcsuite/btcwallet v0.16.17 // indirect + github.com/btcsuite/btcd/v2transport v1.0.1 // indirect + github.com/btcsuite/btclog v1.0.0 // indirect + github.com/btcsuite/btcwallet v0.16.18 // 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 @@ -94,13 +93,13 @@ require ( 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.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/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/decred/dcrd/crypto/blake256 v1.1.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/decred/dcrd/lru v1.1.2 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/cli v29.2.0+incompatible // indirect + github.com/docker/cli v29.4.1+incompatible // indirect github.com/docker/go-connections v0.7.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect @@ -149,12 +148,15 @@ require ( github.com/lightninglabs/aperture v0.4.0 // indirect github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf // indirect github.com/lightninglabs/lightning-node-connect/hashmailrpc v1.0.4-0.20250610182311-2f1d46ef18b7 // indirect - github.com/lightninglabs/neutrino v0.16.1 // indirect + github.com/lightninglabs/lightning-terminal/litrpc v1.0.2 + github.com/lightninglabs/lightning-terminal/perms v1.0.1 + github.com/lightninglabs/neutrino v0.17.1 // indirect github.com/lightninglabs/neutrino/cache v1.1.3 // indirect - github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9 // indirect + github.com/lightningnetwork/lightning-onion v1.3.0 // indirect + github.com/lightningnetwork/lnd/actor v0.0.6 // 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.12-0.20260113193010-8565d12e40b1 // indirect + github.com/lightningnetwork/lnd/queue v1.2.0 // indirect + github.com/lightningnetwork/lnd/sqldb v1.0.13 // 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 @@ -185,7 +187,7 @@ require ( github.com/shopspring/decimal v1.3.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/soheilhy/cmux v0.1.5 // indirect - github.com/spf13/pflag v1.0.6 // indirect + github.com/spf13/pflag v1.0.9 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 // indirect @@ -220,15 +222,15 @@ require ( go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.24.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/mod v0.30.0 // indirect + golang.org/x/mod v0.31.0 // indirect golang.org/x/sys v0.42.0 // indirect - golang.org/x/term v0.38.0 // indirect - golang.org/x/text v0.32.0 // indirect + golang.org/x/term v0.41.0 // indirect + golang.org/x/text v0.33.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.39.0 // indirect + golang.org/x/tools v0.40.0 // indirect google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516 // indirect gopkg.in/errgo.v1 v1.0.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 5c1473be..085cf27c 100644 --- a/go.sum +++ b/go.sum @@ -649,30 +649,34 @@ 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.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 v0.24.2/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg= +github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179 h1:yJOTxkbxxtuSFrErMqYRvqZLfWggHssioBiWebkV9yo= +github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179/go.mod h1:qbPE+pEiR9643E1s1xu57awsRhlCIm1ZIi6FfeRA4KE= 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= -github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcec/v2 v2.3.6 h1:IzlsEr9olcSRKB/n7c4351F3xHKxS2lma+1UFGCYd4E= +github.com/btcsuite/btcd/btcec/v2 v2.3.6/go.mod h1:m22FrOAiuxl/tht9wIqAoGHcbnCCaPWyauO8y2LGGtQ= 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= github.com/btcsuite/btcd/btcutil v1.1.5/go.mod h1:PSZZ4UitpLBWzxGd5VGOrLnmOjtPP/a6HaFo12zMs00= +github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/AYFd6c= +github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= github.com/btcsuite/btcd/btcutil/psbt v1.1.10 h1:TC1zhxhFfhnGqoPjsrlEpoqzh+9TPOHrCgnPR47Mj9I= github.com/btcsuite/btcd/btcutil/psbt v1.1.10/go.mod h1:ehBEvU91lxSlXtA+zZz3iFYx7Yq9eqnKx4/kSrnsvMY= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= 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/btcd/v2transport v1.0.1 h1:pIyyyBCPwd087K3Wdb/9tIvUubAQdzTJghjPgzTQVsE= +github.com/btcsuite/btcd/v2transport v1.0.1/go.mod h1:N6H0HGSElVVJKntzaYHYVbW71DtWDLMw2yhwVRO3ZOE= 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 v1.0.0 h1:sEkpKJMmfGiyZjADwEIgB1NSwMyfdD1FB8v6+w1T0Ns= +github.com/btcsuite/btclog v1.0.0/go.mod h1:w7xnGOhwT3lmrS4H3b/D1XAXxvh+tbhUm8xeHN2y3TQ= github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b h1:MQ+Q6sDy37V1wP1Yu79A5KqJutolqUGwA99UZWQDWZM= github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b/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.17 h1:1N6lHznRdcjDopBvcofxaIHknArkJ/EcVKgLKfGL4Dg= -github.com/btcsuite/btcwallet v0.16.17/go.mod h1:YO+W745BAH8n/Rpgj68QsLR6eLlgM4W2do4RejT0buo= +github.com/btcsuite/btcwallet v0.16.18 h1:6h0kMxij4igPu35jOPAWZbn22ceOC4me4L3jj8Za6Zk= +github.com/btcsuite/btcwallet v0.16.18/go.mod h1:4TTru0cgIPbCZpY4aRfAVwX87zrQw4GXM8MH6+A5xZw= 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= @@ -744,8 +748,9 @@ github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf h1:iW4rZ826su+pq github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= 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/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/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.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= @@ -755,11 +760,11 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= -github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/crypto/blake256 v1.1.0 h1:zPMNGQCm0g4QTY27fOCorQW7EryeQ/U0x++OzVrdms8= +github.com/decred/dcrd/crypto/blake256 v1.1.0/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/decred/dcrd/lru v1.1.2 h1:KdCzlkxppuoIDGEvCGah1fZRicrDH36IipvlB1ROkFY= github.com/decred/dcrd/lru v1.1.2/go.mod h1:gEdCVgXs1/YoBvFWt7Scgknbhwik3FgVSzlnCcXL2N8= @@ -769,8 +774,8 @@ github.com/dhui/dktest v0.4.5 h1:uUfYBIVREmj/Rw6MvgmqNAYzTiKOHJak+enB5Di73MM= github.com/dhui/dktest v0.4.5/go.mod h1:tmcyeHDKagvlDrz7gDKq4UAJOLIfVZYkfD5OnHDwcCo= 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 v29.2.0+incompatible h1:9oBd9+YM7rxjZLfyMGxjraKBKE4/nVyvVfN4qNl9XRM= -github.com/docker/cli v29.2.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v29.4.1+incompatible h1:02RT8QqqwtGRn+6SYypv8IUEbD/ltY6sfKCJIoUcGzk= +github.com/docker/cli v29.4.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v28.3.3+incompatible h1:Dypm25kh4rmk49v1eiVbsAtpAsYURjYkaKubwuBdxEI= github.com/docker/docker v28.3.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.7.0 h1:6SsRfJddP22WMrCkj19x9WKjEDTB+ahsdiGYf0mN39c= @@ -1061,8 +1066,9 @@ github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLany github.com/jedib0t/go-pretty/v6 v6.2.7 h1:4823Lult/tJ0VI1PgW3aSKw59pMWQ6Kzv9b3Bj6MwY0= github.com/jedib0t/go-pretty/v6 v6.2.7/go.mod h1:FMkOpgGD3EZ91cW8g/96RfxoV7bdeJyzXPYgz1L1ln0= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.6.1 h1:Cvu5U8UGrLay1rZfv/zP7iLpSHGUZ/Ou68T0iX1bBK4= +github.com/jessevdk/go-flags v1.6.1/go.mod h1:Mk8T1hIAWpOiJiHa9rJASDK2UGWji0EuPGBnNLMooyc= 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= @@ -1136,8 +1142,8 @@ github.com/lightninglabs/lightning-node-connect/hashmailrpc v1.0.4-0.20250610182 github.com/lightninglabs/lightning-node-connect/hashmailrpc v1.0.4-0.20250610182311-2f1d46ef18b7/go.mod h1:bDnEKRN1u13NFBuy/C+bFLhxA5bfd3clT25y76QY0AM= github.com/lightninglabs/lightning-node-connect/mailbox v1.0.2-0.20250610182311-2f1d46ef18b7 h1:EU/pEkszIbIJOHwOr67G9Gjmyy4CUXk6StRi9C26sUw= github.com/lightninglabs/lightning-node-connect/mailbox v1.0.2-0.20250610182311-2f1d46ef18b7/go.mod h1:cQA5pybYbERkMlE8j49LITZZozQZIXABbWJLIpMWnus= -github.com/lightninglabs/lndclient v0.20.0-6 h1:sh23eZkOpHxe39c4QRYwhsM7qbnJlS++dXVmcwr0BNk= -github.com/lightninglabs/lndclient v0.20.0-6/go.mod h1:gBtIFPGmC2xIspGIv/G5+HiPSGJsFD8uIow7Oke1HFI= +github.com/lightninglabs/lndclient v0.21.0-1 h1:NuyccCK7tbMaH7hhqtewcx+qeBel4/RLJrlnQ/lMkkY= +github.com/lightninglabs/lndclient v0.21.0-1/go.mod h1:RUIcfPr82HrvZr3pu9f8nbD5v6VFbm+KgExqNNp5bE4= github.com/lightninglabs/loop v0.31.8-beta h1:9vYO5kDLrtQ9Mx41r0dAcVmZM1aQmkaDWwLUK1qOAes= github.com/lightninglabs/loop v0.31.8-beta/go.mod h1:WHtv21ZYDuYrPWTIXlvAW3x78LPW7LFDCEOYsS1LBzU= github.com/lightninglabs/loop/looprpc v1.0.13 h1:bOWDp+XnG28wP9Q8ZXvhhVuAQ7yYhuvPIfJk68GVLWk= @@ -1146,8 +1152,8 @@ github.com/lightninglabs/loop/swapserverrpc v1.0.20 h1:/svfGdnwXE0++IvcNc50zjnpL github.com/lightninglabs/loop/swapserverrpc v1.0.20/go.mod h1:nIgLTTEZ/fdWi9UVjNZ8XkkDMZI9wcEEVkEl9Wltyb4= github.com/lightninglabs/migrate/v4 v4.18.2-9023d66a-fork-pr-2.0.20251211093704-71c1eef09789 h1:7kX7vUgHUazAHcCJ6uzBDa4/2MEGEbMEfa01GtfqmTQ= github.com/lightninglabs/migrate/v4 v4.18.2-9023d66a-fork-pr-2.0.20251211093704-71c1eef09789/go.mod h1:99BKpIi6ruaaXRM1A77eqZ+FWPQ3cfRa+ZVy5bmWMaY= -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 v0.17.1 h1:lNhgq7ix/N81R6oATroP/kHMzH1qzVVF2dEGcTlN2t4= +github.com/lightninglabs/neutrino v0.17.1/go.mod h1:tcwCgRTGWcaua0L/xzdwllW8eslHDbux4XkiYsivvHE= github.com/lightninglabs/neutrino/cache v1.1.3 h1:rgnabC41W+XaPuBTQrdeFjFCCAVKh1yctAgmb3Se9zA= github.com/lightninglabs/neutrino/cache v1.1.3/go.mod h1:qxkJb+pUxR5p84jl5uIGFCR4dGdFkhNUwMSxw3EUWls= github.com/lightninglabs/pool v0.7.1-beta h1:sB7SeJ57Yc+5H5I+oKKPLCRx+eKjnqJRvBq8ZFVRhWg= @@ -1158,14 +1164,16 @@ 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.1 h1:CXRAsYZ3QObkOqX8JjLTOaw6I4+t8yVCn7PJL6tt0b8= -github.com/lightninglabs/taproot-assets v0.7.1/go.mod h1:a7/MtMgHjnCvvCYxS2yVlP9rCa7LC770LFHTiqGRqH4= -github.com/lightninglabs/taproot-assets/taprpc v1.0.12 h1:mmCTesDYFHo/oP7MN5M4Q/GzIrpXpZG/X/rWN/1W/Is= -github.com/lightninglabs/taproot-assets/taprpc v1.0.12/go.mod h1:vwW5SFnlDOAM65gLDkxR+dcIy/yMEkIupnPHA95jT0c= -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.1-beta h1:wDMNgks5uST1CY+WwjIZ4+McPMMFpr2pIIGJp7ytDI4= -github.com/lightningnetwork/lnd v0.20.1-beta/go.mod h1:oIKh9EqE1sJJpQPq9ZCMFc4Ot287NrotZ1oZn0zUI+M= +github.com/lightninglabs/taproot-assets v0.8.0 h1:8Mky342/f5hbVm94Owj0YveIdKuTasJwFB6uqAa5/gc= +github.com/lightninglabs/taproot-assets v0.8.0/go.mod h1:SEoMeNzpENVUPnvuqllkDhl7QvNE74+Dtb/dnkbrygg= +github.com/lightninglabs/taproot-assets/taprpc v1.1.0 h1:Oum7ddGygrEaT+NHqpaQI8U6pV5jJUH4hvhezl5y00k= +github.com/lightninglabs/taproot-assets/taprpc v1.1.0/go.mod h1:X7XP753o8xCgjVI2mRu1Tvpyk3k4uybGDMFhpF6IRxI= +github.com/lightningnetwork/lightning-onion v1.3.0 h1:FqILgHjD6euc/Muo1VOzZ4+XDPuFnw6EYROBq0rR/5c= +github.com/lightningnetwork/lightning-onion v1.3.0/go.mod h1:nP85zMHG7c0si/eHBbSQpuDCtnIXfSvFrK3tW6YWzmU= +github.com/lightningnetwork/lnd v0.21.0-beta h1:bDP5UH15E7DVGTztsmBPQLqgyilq5EXDrglvQFmRc3U= +github.com/lightningnetwork/lnd v0.21.0-beta/go.mod h1:HcKq9DyxbVEZXuR28TIyGbIIgAjANCxI+N6dqOnRBAA= +github.com/lightningnetwork/lnd/actor v0.0.6 h1:Ge8N2wivARG+27qJBwTlB0vwsypStZYZy8vk4Zl38sU= +github.com/lightningnetwork/lnd/actor v0.0.6/go.mod h1:YAsoniSbY/cAM9HTVNfZLvt7RI6swDxy6wzPspTcMZg= 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= @@ -1178,10 +1186,10 @@ github.com/lightningnetwork/lnd/healthcheck v1.2.6 h1:1sWhqr93GdkWy4+6U7JxBfcyZI github.com/lightningnetwork/lnd/healthcheck v1.2.6/go.mod h1:Mu02um4CWY/zdTOvFje7WJgJcHyX2zq/FG3MhOAiGaQ= github.com/lightningnetwork/lnd/kvdb v1.4.16 h1:9BZgWdDfjmHRHLS97cz39bVuBAqMc4/p3HX1xtUdbDI= github.com/lightningnetwork/lnd/kvdb v1.4.16/go.mod h1:HW+bvwkxNaopkz3oIgBV6NEnV4jCEZCACFUcNg4xSjM= -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.12-0.20260113193010-8565d12e40b1 h1:PkEppKL17cZh0Dr9h/T9BEVJUbd/p2tjJ/x8ffG3R0M= -github.com/lightningnetwork/lnd/sqldb v1.0.12-0.20260113193010-8565d12e40b1/go.mod h1:tB2jlqu79TIOR9uhAZOmPxpVFUhB2s+oxKnqRRL1oc0= +github.com/lightningnetwork/lnd/queue v1.2.0 h1:sSrn+u84OLuOT/F+xGxgg8VfknXeIZEAFQoMH6BL60s= +github.com/lightningnetwork/lnd/queue v1.2.0/go.mod h1:qLNP0L3B7piRGvDyhAyJKic4xTt+Mw4D7mWrQeuAwxY= +github.com/lightningnetwork/lnd/sqldb v1.0.13 h1:CcG9mrHNW/hIuZnqgosdiNmS7QhjSyfR/XkSFJB7EC8= +github.com/lightningnetwork/lnd/sqldb v1.0.13/go.mod h1:ew3kMfknA0B4djTtrQSAkxvro+8+c++L8LuNaoT7GQA= github.com/lightningnetwork/lnd/sqldb/v2 v2.0.0-20260326184657-f7cc56305bae h1:ICRuZIkXed43iuqcJaayubPTcQolttttwNZFrapdwIo= github.com/lightningnetwork/lnd/sqldb/v2 v2.0.0-20260326184657-f7cc56305bae/go.mod h1:T2F1Sfb0oSpZyylIEE3ijiSejaXvIExER5xEdoe5wEE= github.com/lightningnetwork/lnd/ticker v1.1.1 h1:J/b6N2hibFtC7JLV77ULQp++QLtCwT6ijJlbdiZFbSM= @@ -1346,8 +1354,8 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -1498,8 +1506,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= -golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= -golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= 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= @@ -1515,8 +1523,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o= -golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= +golang.org/x/exp v0.0.0-20250811191247-51f88131bc50 h1:3yiSh9fhy5/RhCSntf4Sy0Tnx50DmMpQ4MQdKKk4yg4= +golang.org/x/exp v0.0.0-20250811191247-51f88131bc50/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1559,8 +1567,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= -golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= +golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= +golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= golang.org/x/net v0.0.0-20150829230318-ea47fc708ee3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1634,8 +1642,8 @@ 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.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= -golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= 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= @@ -1800,8 +1808,8 @@ 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.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q= -golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg= +golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU= +golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= 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= @@ -1819,8 +1827,8 @@ 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.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= -golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= 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= @@ -1900,8 +1908,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= -golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= +golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= +golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1916,8 +1924,8 @@ gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJ gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= -gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= -gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= @@ -2123,10 +2131,10 @@ google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOl google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= -google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls= -google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516 h1:vmC/ws+pLzWjj/gzApyoZuSVrDtF1aod4u/+bbj8hgM= +google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:p3MLuOwURrGBRoEyFHBT3GjUwaCQVKeNqqWxlcISGdw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516 h1:sNrWoksmOyF5bvJUcnmbeAmQi8baNhqg5IWaI3llQqU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -2168,8 +2176,8 @@ google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= -google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM= +google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20210424002626-9572fd6faeae/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= diff --git a/itest/litd_firewall_test.go b/itest/litd_firewall_test.go index 51a30199..c1fb8573 100644 --- a/itest/litd_firewall_test.go +++ b/itest/litd_firewall_test.go @@ -987,7 +987,7 @@ func testSessionLinking(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds1, ) @@ -1079,7 +1079,7 @@ func testSessionLinking(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds1, ) @@ -1731,7 +1731,7 @@ func testRateLimitAndPrivacyMapper(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -1773,7 +1773,7 @@ func testRateLimitAndPrivacyMapper(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -2071,7 +2071,7 @@ func testChanPolicyBoundsRule(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -2086,7 +2086,7 @@ func testChanPolicyBoundsRule(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -2116,7 +2116,7 @@ func testChanPolicyBoundsRule(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -2131,7 +2131,7 @@ func testChanPolicyBoundsRule(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -2352,7 +2352,7 @@ func testPeerAndChannelRestrictRules(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -2392,7 +2392,7 @@ func testPeerAndChannelRestrictRules(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -2432,7 +2432,7 @@ func testPeerAndChannelRestrictRules(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) @@ -2469,7 +2469,7 @@ func testPeerAndChannelRestrictRules(net *NetworkHarness, t *harnessTest) { Scope: &lnrpc.PolicyUpdateRequest_ChanPoint{ ChanPoint: chanPoint, }, - TimeLockDelta: 20, + TimeLockDelta: 40, MaxHtlcMsat: 100000, }, caveatCreds, ) diff --git a/itest/network_harness.go b/itest/network_harness.go index 37115465..3d40551a 100644 --- a/itest/network_harness.go +++ b/itest/network_harness.go @@ -215,19 +215,12 @@ func (n *NetworkHarness) SetUp(t *testing.T, testCase string, lndArgs []string, PkScript: addrScript, Value: btcutil.SatoshiPerBitcoin, } - _, err = n.Miner.SendOutputs( - []*wire.TxOut{output}, 7500, - ) - if err != nil { - return err - } + n.Miner.SendOutput(output, 7500) } // We generate several blocks in order to give the outputs created // above a good number of confirmations. - if _, err := n.Miner.Client.Generate(10); err != nil { - return err - } + n.Miner.GenerateBlocks(10) // Now we want to wait for the nodes to catch up. ctxt, cancel := context.WithTimeout(ctxb, lntest.DefaultTimeout) @@ -1425,10 +1418,7 @@ func (n *NetworkHarness) sendCoins(amt btcutil.Amount, target *HarnessNode, PkScript: addrScript, Value: int64(amt), } - _, err = n.Miner.SendOutputs([]*wire.TxOut{output}, 7500) - if err != nil { - return err - } + n.Miner.SendOutput(output, 7500) // Encode the pkScript in hex as this the format that it will be // returned via rpc. @@ -1477,9 +1467,7 @@ func (n *NetworkHarness) sendCoins(amt btcutil.Amount, target *HarnessNode, // Otherwise, we'll generate 6 new blocks to ensure the output gains a // sufficient number of confirmations and wait for the balance to // reflect what's expected. - if _, err := n.Miner.Client.Generate(6); err != nil { - return err - } + n.Miner.GenerateBlocks(6) fullInitialBalance := initialBalance.ConfirmedBalance + initialBalance.UnconfirmedBalance diff --git a/itest/test_harness.go b/itest/test_harness.go index d1286eff..777a30aa 100644 --- a/itest/test_harness.go +++ b/itest/test_harness.go @@ -10,11 +10,9 @@ import ( "github.com/btcsuite/btcd/chaincfg" "github.com/btcsuite/btcd/chaincfg/chainhash" - "github.com/btcsuite/btcd/rpcclient" "github.com/btcsuite/btcd/wire" "github.com/go-errors/errors" "github.com/lightningnetwork/lnd/lntest/wait" - "github.com/stretchr/testify/require" ) var ( @@ -131,36 +129,6 @@ type testCase struct { noAliceBob bool } -// waitForNTxsInMempool polls until finding the desired number of transactions -// in the provided miner's mempool. An error is returned if this number is not -// met after the given timeout. -func waitForNTxsInMempool(miner *rpcclient.Client, n int, - timeout time.Duration) ([]*chainhash.Hash, error) { - - breakTimeout := time.After(timeout) - ticker := time.NewTicker(50 * time.Millisecond) - defer ticker.Stop() - - var err error - var mempool []*chainhash.Hash - for { - select { - case <-breakTimeout: - return nil, fmt.Errorf("wanted %v, found %v txs "+ - "in mempool: %v", n, len(mempool), mempool) - case <-ticker.C: - mempool, err = miner.GetRawMempool() - if err != nil { - return nil, err - } - - if len(mempool) == n { - return mempool, nil - } - } - } -} - // mineBlocksSlow mines 'num' of blocks and checks that blocks are present in // the mining node's blockchain. numTxs should be set to the number of // transactions (excluding the coinbase) we expect to be included in the first @@ -186,37 +154,16 @@ func mineBlocksSlow(t *harnessTest, net *NetworkHarness, // If we expect transactions to be included in the blocks we'll mine, // we wait here until they are seen in the miner's mempool. - var txids []*chainhash.Hash - var err error + var txids []chainhash.Hash if numTxs > 0 { - txids, err = waitForNTxsInMempool( - net.Miner.Client, numTxs, minerMempoolTimeout, - ) - require.NoError(t.t, err, "unable to find txns in mempool") + txids = net.Miner.AssertNumTxsInMempool(numTxs) } - blocks := make([]*wire.MsgBlock, num) - blockHashes := make([]*chainhash.Hash, 0, num) + blocks := net.Miner.MineBlocksSlow(num) - for i := uint32(0); i < num; i++ { - generatedHashes, err := net.Miner.Client.Generate(1) - require.NoError(t.t, err, "generate blocks") - blockHashes = append(blockHashes, generatedHashes...) - - time.Sleep(slowMineDelay) - } - - for i, blockHash := range blockHashes { - block, err := net.Miner.Client.GetBlock(blockHash) - require.NoError(t.t, err, "get blocks") - - blocks[i] = block - } - - // Finally, assert that all the transactions were included in the first - // block. - for _, txid := range txids { - assertTxInBlock(t, blocks[0], txid) + // Assert that all the transactions were included in the first block. + for i := range txids { + assertTxInBlock(t, blocks[0], &txids[i]) } return blocks diff --git a/litrpc/Dockerfile b/litrpc/Dockerfile index edc8ed6c..6c9ca2bd 100644 --- a/litrpc/Dockerfile +++ b/litrpc/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.25.5-bookworm@sha256:d9132cce84391efab786495288756d60e1da215b1f94e87860aeefc3d4c45b6d +FROM golang:1.25.10-bookworm@sha256:154bd7001b6eb339e88c964442c0ad6ed5e53f09844cc818a41ce4ecb3ce3b43 RUN apt-get update && apt-get install -y \ git \ diff --git a/litrpc/go.mod b/litrpc/go.mod index 36abd641..0dfef792 100644 --- a/litrpc/go.mod +++ b/litrpc/go.mod @@ -1,14 +1,14 @@ module github.com/lightninglabs/lightning-terminal/litrpc -go 1.25.5 +go 1.25.10 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.13 github.com/lightninglabs/pool/poolrpc v1.0.1 - github.com/lightninglabs/taproot-assets/taprpc v1.0.12 - github.com/lightningnetwork/lnd v0.20.1-beta + github.com/lightninglabs/taproot-assets/taprpc v1.1.0 + github.com/lightningnetwork/lnd v0.21.0-beta google.golang.org/grpc v1.79.3 google.golang.org/protobuf v1.36.11 ) @@ -16,20 +16,20 @@ require ( require ( dario.cat/mergo v1.0.1 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect - github.com/BurntSushi/toml v1.3.2 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect 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.3-0.20250318170759-4f4ea81776d6 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect - github.com/btcsuite/btcd/btcutil v1.1.5 // indirect + github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.6 // indirect + github.com/btcsuite/btcd/btcutil v1.1.6 // indirect github.com/btcsuite/btcd/btcutil/psbt v1.1.10 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect - github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c // indirect + github.com/btcsuite/btcd/v2transport v1.0.1 // indirect + github.com/btcsuite/btclog v1.0.0 // indirect github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b // indirect - github.com/btcsuite/btcwallet v0.16.17 // indirect + github.com/btcsuite/btcwallet v0.16.18 // 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 @@ -46,8 +46,8 @@ require ( github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.1 // 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/crypto/blake256 v1.1.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/decred/dcrd/lru v1.1.2 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v29.2.0+incompatible // indirect @@ -85,7 +85,7 @@ require ( github.com/jackc/pgx/v4 v4.18.3 // indirect github.com/jackc/pgx/v5 v5.9.2 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect - github.com/jessevdk/go-flags v1.4.0 // indirect + github.com/jessevdk/go-flags v1.6.1 // indirect github.com/jonboulle/clockwork v0.2.2 // indirect github.com/jrick/logrotate v1.1.2 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -94,16 +94,17 @@ require ( 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.14 // indirect - github.com/lightninglabs/neutrino v0.16.1 // indirect - github.com/lightninglabs/neutrino/cache v1.1.2 // indirect + github.com/lightninglabs/neutrino v0.17.1 // indirect + github.com/lightninglabs/neutrino/cache v1.1.3 // indirect github.com/lightninglabs/pool/auctioneerrpc v1.1.2 // indirect - github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9 // indirect + github.com/lightningnetwork/lightning-onion v1.3.0 // indirect + github.com/lightningnetwork/lnd/actor v0.0.6 // indirect github.com/lightningnetwork/lnd/clock v1.1.1 // indirect github.com/lightningnetwork/lnd/fn/v2 v2.0.9 // indirect github.com/lightningnetwork/lnd/healthcheck v1.2.6 // indirect github.com/lightningnetwork/lnd/kvdb v1.4.16 // indirect - github.com/lightningnetwork/lnd/queue v1.1.1 // indirect - github.com/lightningnetwork/lnd/sqldb v1.0.12-0.20260113193010-8565d12e40b1 // indirect + github.com/lightningnetwork/lnd/queue v1.2.0 // indirect + github.com/lightningnetwork/lnd/sqldb v1.0.13 // indirect github.com/lightningnetwork/lnd/ticker v1.1.1 // indirect github.com/lightningnetwork/lnd/tlv v1.3.2 // indirect github.com/lightningnetwork/lnd/tor v1.1.6 // indirect @@ -165,7 +166,7 @@ require ( go.uber.org/zap v1.23.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.46.0 // indirect - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect + golang.org/x/exp v0.0.0-20250811191247-51f88131bc50 // indirect golang.org/x/mod v0.30.0 // indirect golang.org/x/net v0.48.0 // indirect golang.org/x/sync v0.19.0 // indirect diff --git a/litrpc/go.sum b/litrpc/go.sum index cdcfd2c3..21ced1af 100644 --- a/litrpc/go.sum +++ b/litrpc/go.sum @@ -644,30 +644,34 @@ 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.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 v0.24.2/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg= +github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179 h1:yJOTxkbxxtuSFrErMqYRvqZLfWggHssioBiWebkV9yo= +github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179/go.mod h1:qbPE+pEiR9643E1s1xu57awsRhlCIm1ZIi6FfeRA4KE= 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= -github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcec/v2 v2.3.6 h1:IzlsEr9olcSRKB/n7c4351F3xHKxS2lma+1UFGCYd4E= +github.com/btcsuite/btcd/btcec/v2 v2.3.6/go.mod h1:m22FrOAiuxl/tht9wIqAoGHcbnCCaPWyauO8y2LGGtQ= 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= github.com/btcsuite/btcd/btcutil v1.1.5/go.mod h1:PSZZ4UitpLBWzxGd5VGOrLnmOjtPP/a6HaFo12zMs00= +github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/AYFd6c= +github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= github.com/btcsuite/btcd/btcutil/psbt v1.1.10 h1:TC1zhxhFfhnGqoPjsrlEpoqzh+9TPOHrCgnPR47Mj9I= github.com/btcsuite/btcd/btcutil/psbt v1.1.10/go.mod h1:ehBEvU91lxSlXtA+zZz3iFYx7Yq9eqnKx4/kSrnsvMY= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= 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/btcd/v2transport v1.0.1 h1:pIyyyBCPwd087K3Wdb/9tIvUubAQdzTJghjPgzTQVsE= +github.com/btcsuite/btcd/v2transport v1.0.1/go.mod h1:N6H0HGSElVVJKntzaYHYVbW71DtWDLMw2yhwVRO3ZOE= 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 v1.0.0 h1:sEkpKJMmfGiyZjADwEIgB1NSwMyfdD1FB8v6+w1T0Ns= +github.com/btcsuite/btclog v1.0.0/go.mod h1:w7xnGOhwT3lmrS4H3b/D1XAXxvh+tbhUm8xeHN2y3TQ= github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b h1:MQ+Q6sDy37V1wP1Yu79A5KqJutolqUGwA99UZWQDWZM= github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b/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.17 h1:1N6lHznRdcjDopBvcofxaIHknArkJ/EcVKgLKfGL4Dg= -github.com/btcsuite/btcwallet v0.16.17/go.mod h1:YO+W745BAH8n/Rpgj68QsLR6eLlgM4W2do4RejT0buo= +github.com/btcsuite/btcwallet v0.16.18 h1:6h0kMxij4igPu35jOPAWZbn22ceOC4me4L3jj8Za6Zk= +github.com/btcsuite/btcwallet v0.16.18/go.mod h1:4TTru0cgIPbCZpY4aRfAVwX87zrQw4GXM8MH6+A5xZw= 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= @@ -744,11 +748,11 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= -github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/crypto/blake256 v1.1.0 h1:zPMNGQCm0g4QTY27fOCorQW7EryeQ/U0x++OzVrdms8= +github.com/decred/dcrd/crypto/blake256 v1.1.0/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/decred/dcrd/lru v1.1.2 h1:KdCzlkxppuoIDGEvCGah1fZRicrDH36IipvlB1ROkFY= github.com/decred/dcrd/lru v1.1.2/go.mod h1:gEdCVgXs1/YoBvFWt7Scgknbhwik3FgVSzlnCcXL2N8= @@ -1032,8 +1036,9 @@ github.com/jackc/puddle v1.3.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dv github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.6.1 h1:Cvu5U8UGrLay1rZfv/zP7iLpSHGUZ/Ou68T0iX1bBK4= +github.com/jessevdk/go-flags v1.6.1/go.mod h1:Mk8T1hIAWpOiJiHa9rJASDK2UGWji0EuPGBnNLMooyc= 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= @@ -1097,22 +1102,24 @@ github.com/lightninglabs/loop/looprpc v1.0.13 h1:bOWDp+XnG28wP9Q8ZXvhhVuAQ7yYhuv github.com/lightninglabs/loop/looprpc v1.0.13/go.mod h1:+m2HQ5gfMpoq449gyTsub/e3dKrOzAR6iWY11NV610M= github.com/lightninglabs/loop/swapserverrpc v1.0.14 h1:0+UrC2oNFsWYqGZjmU+Fkcn8iXsea89VZdfmBXSyPPg= github.com/lightninglabs/loop/swapserverrpc v1.0.14/go.mod h1:HDRyzFOZeX0e1P9f9RSFE7FzE5u6Eta0hPqx5W7Wp24= -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/neutrino v0.17.1 h1:lNhgq7ix/N81R6oATroP/kHMzH1qzVVF2dEGcTlN2t4= +github.com/lightninglabs/neutrino v0.17.1/go.mod h1:tcwCgRTGWcaua0L/xzdwllW8eslHDbux4XkiYsivvHE= +github.com/lightninglabs/neutrino/cache v1.1.3 h1:rgnabC41W+XaPuBTQrdeFjFCCAVKh1yctAgmb3Se9zA= +github.com/lightninglabs/neutrino/cache v1.1.3/go.mod h1:qxkJb+pUxR5p84jl5uIGFCR4dGdFkhNUwMSxw3EUWls= 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.1 h1:XbNx28TYwEj/PVsnnF9TnveVCMCYfS1vVkcwz29vPmM= 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.12 h1:mmCTesDYFHo/oP7MN5M4Q/GzIrpXpZG/X/rWN/1W/Is= -github.com/lightninglabs/taproot-assets/taprpc v1.0.12/go.mod h1:vwW5SFnlDOAM65gLDkxR+dcIy/yMEkIupnPHA95jT0c= -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.1-beta h1:wDMNgks5uST1CY+WwjIZ4+McPMMFpr2pIIGJp7ytDI4= -github.com/lightningnetwork/lnd v0.20.1-beta/go.mod h1:oIKh9EqE1sJJpQPq9ZCMFc4Ot287NrotZ1oZn0zUI+M= +github.com/lightninglabs/taproot-assets/taprpc v1.1.0 h1:Oum7ddGygrEaT+NHqpaQI8U6pV5jJUH4hvhezl5y00k= +github.com/lightninglabs/taproot-assets/taprpc v1.1.0/go.mod h1:X7XP753o8xCgjVI2mRu1Tvpyk3k4uybGDMFhpF6IRxI= +github.com/lightningnetwork/lightning-onion v1.3.0 h1:FqILgHjD6euc/Muo1VOzZ4+XDPuFnw6EYROBq0rR/5c= +github.com/lightningnetwork/lightning-onion v1.3.0/go.mod h1:nP85zMHG7c0si/eHBbSQpuDCtnIXfSvFrK3tW6YWzmU= +github.com/lightningnetwork/lnd v0.21.0-beta h1:bDP5UH15E7DVGTztsmBPQLqgyilq5EXDrglvQFmRc3U= +github.com/lightningnetwork/lnd v0.21.0-beta/go.mod h1:HcKq9DyxbVEZXuR28TIyGbIIgAjANCxI+N6dqOnRBAA= +github.com/lightningnetwork/lnd/actor v0.0.6 h1:Ge8N2wivARG+27qJBwTlB0vwsypStZYZy8vk4Zl38sU= +github.com/lightningnetwork/lnd/actor v0.0.6/go.mod h1:YAsoniSbY/cAM9HTVNfZLvt7RI6swDxy6wzPspTcMZg= 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= @@ -1121,10 +1128,10 @@ github.com/lightningnetwork/lnd/healthcheck v1.2.6 h1:1sWhqr93GdkWy4+6U7JxBfcyZI github.com/lightningnetwork/lnd/healthcheck v1.2.6/go.mod h1:Mu02um4CWY/zdTOvFje7WJgJcHyX2zq/FG3MhOAiGaQ= github.com/lightningnetwork/lnd/kvdb v1.4.16 h1:9BZgWdDfjmHRHLS97cz39bVuBAqMc4/p3HX1xtUdbDI= github.com/lightningnetwork/lnd/kvdb v1.4.16/go.mod h1:HW+bvwkxNaopkz3oIgBV6NEnV4jCEZCACFUcNg4xSjM= -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.12-0.20260113193010-8565d12e40b1 h1:PkEppKL17cZh0Dr9h/T9BEVJUbd/p2tjJ/x8ffG3R0M= -github.com/lightningnetwork/lnd/sqldb v1.0.12-0.20260113193010-8565d12e40b1/go.mod h1:tB2jlqu79TIOR9uhAZOmPxpVFUhB2s+oxKnqRRL1oc0= +github.com/lightningnetwork/lnd/queue v1.2.0 h1:sSrn+u84OLuOT/F+xGxgg8VfknXeIZEAFQoMH6BL60s= +github.com/lightningnetwork/lnd/queue v1.2.0/go.mod h1:qLNP0L3B7piRGvDyhAyJKic4xTt+Mw4D7mWrQeuAwxY= +github.com/lightningnetwork/lnd/sqldb v1.0.13 h1:CcG9mrHNW/hIuZnqgosdiNmS7QhjSyfR/XkSFJB7EC8= +github.com/lightningnetwork/lnd/sqldb v1.0.13/go.mod h1:ew3kMfknA0B4djTtrQSAkxvro+8+c++L8LuNaoT7GQA= 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.3.2 h1:MO4FCk7F4k5xPMqVZF6Nb/kOpxlwPrUQpYjmyKny5s0= @@ -1290,6 +1297,7 @@ 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.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= @@ -1425,8 +1433,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= +golang.org/x/exp v0.0.0-20250811191247-51f88131bc50 h1:3yiSh9fhy5/RhCSntf4Sy0Tnx50DmMpQ4MQdKKk4yg4= +golang.org/x/exp v0.0.0-20250811191247-51f88131bc50/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= diff --git a/make/builder.Dockerfile b/make/builder.Dockerfile index d8ee9267..ca221a35 100644 --- a/make/builder.Dockerfile +++ b/make/builder.Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.25.5-bookworm@sha256:d9132cce84391efab786495288756d60e1da215b1f94e87860aeefc3d4c45b6d +FROM golang:1.25.10-bookworm@sha256:154bd7001b6eb339e88c964442c0ad6ed5e53f09844cc818a41ce4ecb3ce3b43 MAINTAINER Olaoluwa Osuntokun diff --git a/perms/go.mod b/perms/go.mod index 613a3c2e..3d1ce5e4 100644 --- a/perms/go.mod +++ b/perms/go.mod @@ -1,10 +1,10 @@ module github.com/lightninglabs/lightning-terminal/perms -go 1.25.5 +go 1.25.10 require ( - github.com/btcsuite/btcd v0.24.3-0.20250318170759-4f4ea81776d6 - github.com/lightningnetwork/lnd v0.20.1-beta + github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179 + github.com/lightningnetwork/lnd v0.21.0-beta github.com/stretchr/testify v1.11.1 gopkg.in/macaroon-bakery.v2 v2.3.0 ) @@ -21,13 +21,14 @@ 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/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/btcec/v2 v2.3.6 // indirect + github.com/btcsuite/btcd/btcutil v1.1.6 // indirect + github.com/btcsuite/btcd/btcutil/psbt v1.1.10 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect - github.com/btcsuite/btclog v0.0.0-20241003133417-09c4e92e319c // indirect + github.com/btcsuite/btcd/v2transport v1.0.1 // indirect + github.com/btcsuite/btclog v1.0.0 // indirect github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b // indirect - github.com/btcsuite/btcwallet v0.16.17 // indirect + github.com/btcsuite/btcwallet v0.16.18 // 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 @@ -45,8 +46,8 @@ require ( github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.1 // 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/crypto/blake256 v1.1.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/decred/dcrd/lru v1.1.2 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v29.2.0+incompatible // indirect @@ -89,7 +90,7 @@ require ( github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/jackpal/gateway v1.0.5 // indirect github.com/jackpal/go-nat-pmp v0.0.0-20170405195558-28a68d0c24ad // indirect - github.com/jessevdk/go-flags v1.4.0 // indirect + github.com/jessevdk/go-flags v1.6.1 // indirect github.com/jonboulle/clockwork v0.2.2 // indirect github.com/jrick/logrotate v1.1.2 // indirect github.com/json-iterator/go v1.1.11 // indirect @@ -97,16 +98,17 @@ require ( 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/neutrino v0.16.1 // indirect - github.com/lightninglabs/neutrino/cache v1.1.2 // indirect - github.com/lightningnetwork/lightning-onion v1.2.1-0.20240815225420-8b40adf04ab9 // indirect + github.com/lightninglabs/neutrino v0.17.1 // indirect + github.com/lightninglabs/neutrino/cache v1.1.3 // indirect + github.com/lightningnetwork/lightning-onion v1.3.0 // indirect + github.com/lightningnetwork/lnd/actor v0.0.6 // indirect github.com/lightningnetwork/lnd/cert v1.2.2 // indirect github.com/lightningnetwork/lnd/clock v1.1.1 // indirect github.com/lightningnetwork/lnd/fn/v2 v2.0.9 // indirect github.com/lightningnetwork/lnd/healthcheck v1.2.6 // indirect github.com/lightningnetwork/lnd/kvdb v1.4.16 // indirect - github.com/lightningnetwork/lnd/queue v1.1.1 // indirect - github.com/lightningnetwork/lnd/sqldb v1.0.12-0.20260113193010-8565d12e40b1 // indirect + github.com/lightningnetwork/lnd/queue v1.2.0 // indirect + github.com/lightningnetwork/lnd/sqldb v1.0.13 // indirect github.com/lightningnetwork/lnd/ticker v1.1.1 // indirect github.com/lightningnetwork/lnd/tlv v1.3.2 // indirect github.com/lightningnetwork/lnd/tor v1.1.6 // indirect @@ -169,7 +171,7 @@ require ( go.uber.org/zap v1.17.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.46.0 // indirect - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect + golang.org/x/exp v0.0.0-20250811191247-51f88131bc50 // indirect golang.org/x/net v0.48.0 // indirect golang.org/x/sync v0.19.0 // indirect golang.org/x/sys v0.42.0 // indirect diff --git a/perms/go.sum b/perms/go.sum index 2fcf42cc..57cd781d 100644 --- a/perms/go.sum +++ b/perms/go.sum @@ -40,30 +40,34 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r 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.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 v0.24.2/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg= +github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179 h1:yJOTxkbxxtuSFrErMqYRvqZLfWggHssioBiWebkV9yo= +github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179/go.mod h1:qbPE+pEiR9643E1s1xu57awsRhlCIm1ZIi6FfeRA4KE= 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= -github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcec/v2 v2.3.6 h1:IzlsEr9olcSRKB/n7c4351F3xHKxS2lma+1UFGCYd4E= +github.com/btcsuite/btcd/btcec/v2 v2.3.6/go.mod h1:m22FrOAiuxl/tht9wIqAoGHcbnCCaPWyauO8y2LGGtQ= 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= github.com/btcsuite/btcd/btcutil v1.1.5/go.mod h1:PSZZ4UitpLBWzxGd5VGOrLnmOjtPP/a6HaFo12zMs00= -github.com/btcsuite/btcd/btcutil/psbt v1.1.8 h1:4voqtT8UppT7nmKQkXV+T9K8UyQjKOn2z/ycpmJK8wg= -github.com/btcsuite/btcd/btcutil/psbt v1.1.8/go.mod h1:kA6FLH/JfUx++j9pYU0pyu+Z8XGBQuuTmuKYUf6q7/U= +github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/AYFd6c= +github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= +github.com/btcsuite/btcd/btcutil/psbt v1.1.10 h1:TC1zhxhFfhnGqoPjsrlEpoqzh+9TPOHrCgnPR47Mj9I= +github.com/btcsuite/btcd/btcutil/psbt v1.1.10/go.mod h1:ehBEvU91lxSlXtA+zZz3iFYx7Yq9eqnKx4/kSrnsvMY= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= 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/btcd/v2transport v1.0.1 h1:pIyyyBCPwd087K3Wdb/9tIvUubAQdzTJghjPgzTQVsE= +github.com/btcsuite/btcd/v2transport v1.0.1/go.mod h1:N6H0HGSElVVJKntzaYHYVbW71DtWDLMw2yhwVRO3ZOE= 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 v1.0.0 h1:sEkpKJMmfGiyZjADwEIgB1NSwMyfdD1FB8v6+w1T0Ns= +github.com/btcsuite/btclog v1.0.0/go.mod h1:w7xnGOhwT3lmrS4H3b/D1XAXxvh+tbhUm8xeHN2y3TQ= github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b h1:MQ+Q6sDy37V1wP1Yu79A5KqJutolqUGwA99UZWQDWZM= github.com/btcsuite/btclog/v2 v2.0.1-0.20250728225537-6090e87c6c5b/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.17 h1:1N6lHznRdcjDopBvcofxaIHknArkJ/EcVKgLKfGL4Dg= -github.com/btcsuite/btcwallet v0.16.17/go.mod h1:YO+W745BAH8n/Rpgj68QsLR6eLlgM4W2do4RejT0buo= +github.com/btcsuite/btcwallet v0.16.18 h1:6h0kMxij4igPu35jOPAWZbn22ceOC4me4L3jj8Za6Zk= +github.com/btcsuite/btcwallet v0.16.18/go.mod h1:4TTru0cgIPbCZpY4aRfAVwX87zrQw4GXM8MH6+A5xZw= 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= @@ -121,11 +125,11 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= -github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/crypto/blake256 v1.1.0 h1:zPMNGQCm0g4QTY27fOCorQW7EryeQ/U0x++OzVrdms8= +github.com/decred/dcrd/crypto/blake256 v1.1.0/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/decred/dcrd/lru v1.1.2 h1:KdCzlkxppuoIDGEvCGah1fZRicrDH36IipvlB1ROkFY= github.com/decred/dcrd/lru v1.1.2/go.mod h1:gEdCVgXs1/YoBvFWt7Scgknbhwik3FgVSzlnCcXL2N8= @@ -313,8 +317,9 @@ github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQ github.com/jackpal/go-nat-pmp v0.0.0-20170405195558-28a68d0c24ad h1:heFfj7z0pGsNCekUlsFhO2jstxO4b5iQ665LjwM5mDc= github.com/jackpal/go-nat-pmp v0.0.0-20170405195558-28a68d0c24ad/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.6.1 h1:Cvu5U8UGrLay1rZfv/zP7iLpSHGUZ/Ou68T0iX1bBK4= +github.com/jessevdk/go-flags v1.6.1/go.mod h1:Mk8T1hIAWpOiJiHa9rJASDK2UGWji0EuPGBnNLMooyc= 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= @@ -361,14 +366,16 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= 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/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/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.1-beta h1:wDMNgks5uST1CY+WwjIZ4+McPMMFpr2pIIGJp7ytDI4= -github.com/lightningnetwork/lnd v0.20.1-beta/go.mod h1:oIKh9EqE1sJJpQPq9ZCMFc4Ot287NrotZ1oZn0zUI+M= +github.com/lightninglabs/neutrino v0.17.1 h1:lNhgq7ix/N81R6oATroP/kHMzH1qzVVF2dEGcTlN2t4= +github.com/lightninglabs/neutrino v0.17.1/go.mod h1:tcwCgRTGWcaua0L/xzdwllW8eslHDbux4XkiYsivvHE= +github.com/lightninglabs/neutrino/cache v1.1.3 h1:rgnabC41W+XaPuBTQrdeFjFCCAVKh1yctAgmb3Se9zA= +github.com/lightninglabs/neutrino/cache v1.1.3/go.mod h1:qxkJb+pUxR5p84jl5uIGFCR4dGdFkhNUwMSxw3EUWls= +github.com/lightningnetwork/lightning-onion v1.3.0 h1:FqILgHjD6euc/Muo1VOzZ4+XDPuFnw6EYROBq0rR/5c= +github.com/lightningnetwork/lightning-onion v1.3.0/go.mod h1:nP85zMHG7c0si/eHBbSQpuDCtnIXfSvFrK3tW6YWzmU= +github.com/lightningnetwork/lnd v0.21.0-beta h1:bDP5UH15E7DVGTztsmBPQLqgyilq5EXDrglvQFmRc3U= +github.com/lightningnetwork/lnd v0.21.0-beta/go.mod h1:HcKq9DyxbVEZXuR28TIyGbIIgAjANCxI+N6dqOnRBAA= +github.com/lightningnetwork/lnd/actor v0.0.6 h1:Ge8N2wivARG+27qJBwTlB0vwsypStZYZy8vk4Zl38sU= +github.com/lightningnetwork/lnd/actor v0.0.6/go.mod h1:YAsoniSbY/cAM9HTVNfZLvt7RI6swDxy6wzPspTcMZg= 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= @@ -379,10 +386,10 @@ github.com/lightningnetwork/lnd/healthcheck v1.2.6 h1:1sWhqr93GdkWy4+6U7JxBfcyZI github.com/lightningnetwork/lnd/healthcheck v1.2.6/go.mod h1:Mu02um4CWY/zdTOvFje7WJgJcHyX2zq/FG3MhOAiGaQ= github.com/lightningnetwork/lnd/kvdb v1.4.16 h1:9BZgWdDfjmHRHLS97cz39bVuBAqMc4/p3HX1xtUdbDI= github.com/lightningnetwork/lnd/kvdb v1.4.16/go.mod h1:HW+bvwkxNaopkz3oIgBV6NEnV4jCEZCACFUcNg4xSjM= -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.12-0.20260113193010-8565d12e40b1 h1:PkEppKL17cZh0Dr9h/T9BEVJUbd/p2tjJ/x8ffG3R0M= -github.com/lightningnetwork/lnd/sqldb v1.0.12-0.20260113193010-8565d12e40b1/go.mod h1:tB2jlqu79TIOR9uhAZOmPxpVFUhB2s+oxKnqRRL1oc0= +github.com/lightningnetwork/lnd/queue v1.2.0 h1:sSrn+u84OLuOT/F+xGxgg8VfknXeIZEAFQoMH6BL60s= +github.com/lightningnetwork/lnd/queue v1.2.0/go.mod h1:qLNP0L3B7piRGvDyhAyJKic4xTt+Mw4D7mWrQeuAwxY= +github.com/lightningnetwork/lnd/sqldb v1.0.13 h1:CcG9mrHNW/hIuZnqgosdiNmS7QhjSyfR/XkSFJB7EC8= +github.com/lightningnetwork/lnd/sqldb v1.0.13/go.mod h1:ew3kMfknA0B4djTtrQSAkxvro+8+c++L8LuNaoT7GQA= 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.3.2 h1:MO4FCk7F4k5xPMqVZF6Nb/kOpxlwPrUQpYjmyKny5s0= @@ -514,6 +521,7 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= @@ -616,8 +624,8 @@ golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZP golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= +golang.org/x/exp v0.0.0-20250811191247-51f88131bc50 h1:3yiSh9fhy5/RhCSntf4Sy0Tnx50DmMpQ4MQdKKk4yg4= +golang.org/x/exp v0.0.0-20250811191247-51f88131bc50/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= diff --git a/tools/Dockerfile b/tools/Dockerfile index 66f9e7e7..3a87c148 100644 --- a/tools/Dockerfile +++ b/tools/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.25.5-bookworm@sha256:d9132cce84391efab786495288756d60e1da215b1f94e87860aeefc3d4c45b6d +FROM golang:1.25.10-bookworm@sha256:154bd7001b6eb339e88c964442c0ad6ed5e53f09844cc818a41ce4ecb3ce3b43 RUN apt-get update && apt-get install -y git ENV GOCACHE=/tmp/build/.cache diff --git a/tools/go.mod b/tools/go.mod index 9bef748d..df409d1f 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -1,6 +1,6 @@ module github.com/lightninglabs/lightning-terminal/tools -go 1.25.5 +go 1.25.10 require ( github.com/btcsuite/btcd v0.24.2 diff --git a/tools/linters/go.mod b/tools/linters/go.mod index cefc5db3..968d6dd0 100644 --- a/tools/linters/go.mod +++ b/tools/linters/go.mod @@ -1,6 +1,6 @@ module github.com/lightninglabs/lightning-terminal/tools/linters -go 1.25.5 +go 1.25.10 require ( github.com/golangci/plugin-module-register v0.1.1 From b225a8de85f1d34b117bfd8700dd23fb21f93128 Mon Sep 17 00:00:00 2001 From: Calvin Zachman Date: Tue, 2 Jun 2026 16:41:18 -0400 Subject: [PATCH 2/3] multi: regenerate protos and update frontend test data Run make rpc to regenerate JS/TS protobuf files for lnd v0.21. The proto file drops the removed deprecated RPCs (SendPayment, SendPaymentSync, SendToRoute, SendToRouteSync) and picks up new messages and fields (onion messages, ChannelCommitUpdate, walletSynced, graphCacheStatus, etc.). The frontend test sample data is updated to include the new GetInfoResponse, WaitingCloseChannel, and ChannelEventUpdate fields. --- app/src/types/generated/lnd_pb.d.ts | 361 +-- app/src/types/generated/lnd_pb.js | 2891 ++++++++++--------- app/src/types/generated/lnd_pb_service.d.ts | 90 +- app/src/types/generated/lnd_pb_service.js | 276 +- app/src/util/tests/sampleData.ts | 7 + proto/lnd.proto | 333 +-- 6 files changed, 2003 insertions(+), 1955 deletions(-) diff --git a/app/src/types/generated/lnd_pb.d.ts b/app/src/types/generated/lnd_pb.d.ts index 89be1c3a..3f9d9175 100644 --- a/app/src/types/generated/lnd_pb.d.ts +++ b/app/src/types/generated/lnd_pb.d.ts @@ -151,6 +151,125 @@ export namespace SendCustomMessageResponse { } } +export class SubscribeOnionMessagesRequest extends jspb.Message { + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SubscribeOnionMessagesRequest.AsObject; + static toObject(includeInstance: boolean, msg: SubscribeOnionMessagesRequest): SubscribeOnionMessagesRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: SubscribeOnionMessagesRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SubscribeOnionMessagesRequest; + static deserializeBinaryFromReader(message: SubscribeOnionMessagesRequest, reader: jspb.BinaryReader): SubscribeOnionMessagesRequest; +} + +export namespace SubscribeOnionMessagesRequest { + export type AsObject = { + } +} + +export class OnionMessageUpdate extends jspb.Message { + getPeer(): Uint8Array | string; + getPeer_asU8(): Uint8Array; + getPeer_asB64(): string; + setPeer(value: Uint8Array | string): void; + + getPathKey(): Uint8Array | string; + getPathKey_asU8(): Uint8Array; + getPathKey_asB64(): string; + setPathKey(value: Uint8Array | string): void; + + getOnion(): Uint8Array | string; + getOnion_asU8(): Uint8Array; + getOnion_asB64(): string; + setOnion(value: Uint8Array | string): void; + + hasReplyPath(): boolean; + clearReplyPath(): void; + getReplyPath(): BlindedPath | undefined; + setReplyPath(value?: BlindedPath): void; + + getEncryptedRecipientData(): Uint8Array | string; + getEncryptedRecipientData_asU8(): Uint8Array; + getEncryptedRecipientData_asB64(): string; + setEncryptedRecipientData(value: Uint8Array | string): void; + + getCustomRecordsMap(): jspb.Map; + clearCustomRecordsMap(): void; + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): OnionMessageUpdate.AsObject; + static toObject(includeInstance: boolean, msg: OnionMessageUpdate): OnionMessageUpdate.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: OnionMessageUpdate, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): OnionMessageUpdate; + static deserializeBinaryFromReader(message: OnionMessageUpdate, reader: jspb.BinaryReader): OnionMessageUpdate; +} + +export namespace OnionMessageUpdate { + export type AsObject = { + peer: Uint8Array | string, + pathKey: Uint8Array | string, + onion: Uint8Array | string, + replyPath?: BlindedPath.AsObject, + encryptedRecipientData: Uint8Array | string, + customRecordsMap: Array<[number, Uint8Array | string]>, + } +} + +export class SendOnionMessageRequest extends jspb.Message { + getPeer(): Uint8Array | string; + getPeer_asU8(): Uint8Array; + getPeer_asB64(): string; + setPeer(value: Uint8Array | string): void; + + getPathKey(): Uint8Array | string; + getPathKey_asU8(): Uint8Array; + getPathKey_asB64(): string; + setPathKey(value: Uint8Array | string): void; + + getOnion(): Uint8Array | string; + getOnion_asU8(): Uint8Array; + getOnion_asB64(): string; + setOnion(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SendOnionMessageRequest.AsObject; + static toObject(includeInstance: boolean, msg: SendOnionMessageRequest): SendOnionMessageRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: SendOnionMessageRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SendOnionMessageRequest; + static deserializeBinaryFromReader(message: SendOnionMessageRequest, reader: jspb.BinaryReader): SendOnionMessageRequest; +} + +export namespace SendOnionMessageRequest { + export type AsObject = { + peer: Uint8Array | string, + pathKey: Uint8Array | string, + onion: Uint8Array | string, + } +} + +export class SendOnionMessageResponse extends jspb.Message { + getStatus(): string; + setStatus(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SendOnionMessageResponse.AsObject; + static toObject(includeInstance: boolean, msg: SendOnionMessageResponse): SendOnionMessageResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: SendOnionMessageResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SendOnionMessageResponse; + static deserializeBinaryFromReader(message: SendOnionMessageResponse, reader: jspb.BinaryReader): SendOnionMessageResponse; +} + +export namespace SendOnionMessageResponse { + export type AsObject = { + status: string, + } +} + export class Utxo extends jspb.Message { getAddressType(): AddressTypeMap[keyof AddressTypeMap]; setAddressType(value: AddressTypeMap[keyof AddressTypeMap]): void; @@ -411,167 +530,6 @@ export namespace FeeLimit { } } -export class SendRequest extends jspb.Message { - getDest(): Uint8Array | string; - getDest_asU8(): Uint8Array; - getDest_asB64(): string; - setDest(value: Uint8Array | string): void; - - getDestString(): string; - setDestString(value: string): void; - - getAmt(): string; - setAmt(value: string): void; - - getAmtMsat(): string; - setAmtMsat(value: string): void; - - getPaymentHash(): Uint8Array | string; - getPaymentHash_asU8(): Uint8Array; - getPaymentHash_asB64(): string; - setPaymentHash(value: Uint8Array | string): void; - - getPaymentHashString(): string; - setPaymentHashString(value: string): void; - - getPaymentRequest(): string; - setPaymentRequest(value: string): void; - - getFinalCltvDelta(): number; - setFinalCltvDelta(value: number): void; - - hasFeeLimit(): boolean; - clearFeeLimit(): void; - getFeeLimit(): FeeLimit | undefined; - setFeeLimit(value?: FeeLimit): void; - - getOutgoingChanId(): string; - setOutgoingChanId(value: string): void; - - getLastHopPubkey(): Uint8Array | string; - getLastHopPubkey_asU8(): Uint8Array; - getLastHopPubkey_asB64(): string; - setLastHopPubkey(value: Uint8Array | string): void; - - getCltvLimit(): number; - setCltvLimit(value: number): void; - - getDestCustomRecordsMap(): jspb.Map; - clearDestCustomRecordsMap(): void; - getAllowSelfPayment(): boolean; - setAllowSelfPayment(value: boolean): void; - - clearDestFeaturesList(): void; - getDestFeaturesList(): Array; - setDestFeaturesList(value: Array): void; - addDestFeatures(value: FeatureBitMap[keyof FeatureBitMap], index?: number): FeatureBitMap[keyof FeatureBitMap]; - - getPaymentAddr(): Uint8Array | string; - getPaymentAddr_asU8(): Uint8Array; - getPaymentAddr_asB64(): string; - setPaymentAddr(value: Uint8Array | string): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SendRequest.AsObject; - static toObject(includeInstance: boolean, msg: SendRequest): SendRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SendRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SendRequest; - static deserializeBinaryFromReader(message: SendRequest, reader: jspb.BinaryReader): SendRequest; -} - -export namespace SendRequest { - export type AsObject = { - dest: Uint8Array | string, - destString: string, - amt: string, - amtMsat: string, - paymentHash: Uint8Array | string, - paymentHashString: string, - paymentRequest: string, - finalCltvDelta: number, - feeLimit?: FeeLimit.AsObject, - outgoingChanId: string, - lastHopPubkey: Uint8Array | string, - cltvLimit: number, - destCustomRecordsMap: Array<[number, Uint8Array | string]>, - allowSelfPayment: boolean, - destFeaturesList: Array, - paymentAddr: Uint8Array | string, - } -} - -export class SendResponse extends jspb.Message { - getPaymentError(): string; - setPaymentError(value: string): void; - - getPaymentPreimage(): Uint8Array | string; - getPaymentPreimage_asU8(): Uint8Array; - getPaymentPreimage_asB64(): string; - setPaymentPreimage(value: Uint8Array | string): void; - - hasPaymentRoute(): boolean; - clearPaymentRoute(): void; - getPaymentRoute(): Route | undefined; - setPaymentRoute(value?: Route): void; - - getPaymentHash(): Uint8Array | string; - getPaymentHash_asU8(): Uint8Array; - getPaymentHash_asB64(): string; - setPaymentHash(value: Uint8Array | string): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SendResponse.AsObject; - static toObject(includeInstance: boolean, msg: SendResponse): SendResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SendResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SendResponse; - static deserializeBinaryFromReader(message: SendResponse, reader: jspb.BinaryReader): SendResponse; -} - -export namespace SendResponse { - export type AsObject = { - paymentError: string, - paymentPreimage: Uint8Array | string, - paymentRoute?: Route.AsObject, - paymentHash: Uint8Array | string, - } -} - -export class SendToRouteRequest extends jspb.Message { - getPaymentHash(): Uint8Array | string; - getPaymentHash_asU8(): Uint8Array; - getPaymentHash_asB64(): string; - setPaymentHash(value: Uint8Array | string): void; - - getPaymentHashString(): string; - setPaymentHashString(value: string): void; - - hasRoute(): boolean; - clearRoute(): void; - getRoute(): Route | undefined; - setRoute(value?: Route): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SendToRouteRequest.AsObject; - static toObject(includeInstance: boolean, msg: SendToRouteRequest): SendToRouteRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SendToRouteRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SendToRouteRequest; - static deserializeBinaryFromReader(message: SendToRouteRequest, reader: jspb.BinaryReader): SendToRouteRequest; -} - -export namespace SendToRouteRequest { - export type AsObject = { - paymentHash: Uint8Array | string, - paymentHashString: string, - route?: Route.AsObject, - } -} - export class ChannelAcceptRequest extends jspb.Message { getNodePubkey(): Uint8Array | string; getNodePubkey_asU8(): Uint8Array; @@ -854,6 +812,11 @@ export class EstimateFeeRequest extends jspb.Message { getCoinSelectionStrategy(): CoinSelectionStrategyMap[keyof CoinSelectionStrategyMap]; setCoinSelectionStrategy(value: CoinSelectionStrategyMap[keyof CoinSelectionStrategyMap]): void; + clearInputsList(): void; + getInputsList(): Array; + setInputsList(value: Array): void; + addInputs(value?: OutPoint, index?: number): OutPoint; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): EstimateFeeRequest.AsObject; static toObject(includeInstance: boolean, msg: EstimateFeeRequest): EstimateFeeRequest.AsObject; @@ -871,6 +834,7 @@ export namespace EstimateFeeRequest { minConfs: number, spendUnconfirmed: boolean, coinSelectionStrategy: CoinSelectionStrategyMap[keyof CoinSelectionStrategyMap], + inputsList: Array, } } @@ -884,6 +848,11 @@ export class EstimateFeeResponse extends jspb.Message { getSatPerVbyte(): string; setSatPerVbyte(value: string): void; + clearInputsList(): void; + getInputsList(): Array; + setInputsList(value: Array): void; + addInputs(value?: OutPoint, index?: number): OutPoint; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): EstimateFeeResponse.AsObject; static toObject(includeInstance: boolean, msg: EstimateFeeResponse): EstimateFeeResponse.AsObject; @@ -899,6 +868,7 @@ export namespace EstimateFeeResponse { feeSat: string, feerateSatPerByte: string, satPerVbyte: string, + inputsList: Array, } } @@ -2197,6 +2167,12 @@ export class GetInfoResponse extends jspb.Message { getStoreFinalHtlcResolutions(): boolean; setStoreFinalHtlcResolutions(value: boolean): void; + getWalletSynced(): boolean; + setWalletSynced(value: boolean): void; + + getGraphCacheStatus(): GraphCacheStatusMap[keyof GraphCacheStatusMap]; + setGraphCacheStatus(value: GraphCacheStatusMap[keyof GraphCacheStatusMap]): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): GetInfoResponse.AsObject; static toObject(includeInstance: boolean, msg: GetInfoResponse): GetInfoResponse.AsObject; @@ -2229,10 +2205,15 @@ export namespace GetInfoResponse { featuresMap: Array<[number, Feature.AsObject]>, requireHtlcInterceptor: boolean, storeFinalHtlcResolutions: boolean, + walletSynced: boolean, + graphCacheStatus: GraphCacheStatusMap[keyof GraphCacheStatusMap], } } export class GetDebugInfoRequest extends jspb.Message { + getIncludeLog(): boolean; + setIncludeLog(value: boolean): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): GetDebugInfoRequest.AsObject; static toObject(includeInstance: boolean, msg: GetDebugInfoRequest): GetDebugInfoRequest.AsObject; @@ -2245,6 +2226,7 @@ export class GetDebugInfoRequest extends jspb.Message { export namespace GetDebugInfoRequest { export type AsObject = { + includeLog: boolean, } } @@ -3536,6 +3518,12 @@ export namespace PendingChannelsResponse { getClosingTxHex(): string; setClosingTxHex(value: string): void; + getBlocksTilCloseConfirmed(): number; + setBlocksTilCloseConfirmed(value: number): void; + + getCloseHeight(): number; + setCloseHeight(value: number): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): WaitingCloseChannel.AsObject; static toObject(includeInstance: boolean, msg: WaitingCloseChannel): WaitingCloseChannel.AsObject; @@ -3553,6 +3541,8 @@ export namespace PendingChannelsResponse { commitments?: PendingChannelsResponse.Commitments.AsObject, closingTxid: string, closingTxHex: string, + blocksTilCloseConfirmed: number, + closeHeight: number, } } @@ -3699,6 +3689,28 @@ export namespace ChannelEventSubscription { } } +export class ChannelCommitUpdate extends jspb.Message { + hasChannel(): boolean; + clearChannel(): void; + getChannel(): Channel | undefined; + setChannel(value?: Channel): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ChannelCommitUpdate.AsObject; + static toObject(includeInstance: boolean, msg: ChannelCommitUpdate): ChannelCommitUpdate.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ChannelCommitUpdate, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ChannelCommitUpdate; + static deserializeBinaryFromReader(message: ChannelCommitUpdate, reader: jspb.BinaryReader): ChannelCommitUpdate; +} + +export namespace ChannelCommitUpdate { + export type AsObject = { + channel?: Channel.AsObject, + } +} + export class ChannelEventUpdate extends jspb.Message { hasOpenChannel(): boolean; clearOpenChannel(): void; @@ -3735,6 +3747,11 @@ export class ChannelEventUpdate extends jspb.Message { getChannelFundingTimeout(): ChannelPoint | undefined; setChannelFundingTimeout(value?: ChannelPoint): void; + hasUpdatedChannel(): boolean; + clearUpdatedChannel(): void; + getUpdatedChannel(): ChannelCommitUpdate | undefined; + setUpdatedChannel(value?: ChannelCommitUpdate): void; + getType(): ChannelEventUpdate.UpdateTypeMap[keyof ChannelEventUpdate.UpdateTypeMap]; setType(value: ChannelEventUpdate.UpdateTypeMap[keyof ChannelEventUpdate.UpdateTypeMap]): void; @@ -3758,6 +3775,7 @@ export namespace ChannelEventUpdate { pendingOpenChannel?: PendingUpdate.AsObject, fullyResolvedChannel?: ChannelPoint.AsObject, channelFundingTimeout?: ChannelPoint.AsObject, + updatedChannel?: ChannelCommitUpdate.AsObject, type: ChannelEventUpdate.UpdateTypeMap[keyof ChannelEventUpdate.UpdateTypeMap], } @@ -3769,6 +3787,7 @@ export namespace ChannelEventUpdate { PENDING_OPEN_CHANNEL: 4; FULLY_RESOLVED_CHANNEL: 5; CHANNEL_FUNDING_TIMEOUT: 6; + CHANNEL_UPDATE: 7; } export const UpdateType: UpdateTypeMap; @@ -3782,6 +3801,7 @@ export namespace ChannelEventUpdate { PENDING_OPEN_CHANNEL = 6, FULLY_RESOLVED_CHANNEL = 7, CHANNEL_FUNDING_TIMEOUT = 8, + UPDATED_CHANNEL = 9, } } @@ -4024,9 +4044,6 @@ export class QueryRoutesRequest extends jspb.Message { getDestCustomRecordsMap(): jspb.Map; clearDestCustomRecordsMap(): void; - getOutgoingChanId(): string; - setOutgoingChanId(value: string): void; - getLastHopPubkey(): Uint8Array | string; getLastHopPubkey_asU8(): Uint8Array; getLastHopPubkey_asB64(): string; @@ -4079,7 +4096,6 @@ export namespace QueryRoutesRequest { ignoredPairsList: Array, cltvLimit: number, destCustomRecordsMap: Array<[number, Uint8Array | string]>, - outgoingChanId: string, lastHopPubkey: Uint8Array | string, routeHintsList: Array, blindedPaymentPathsList: Array, @@ -5989,6 +6005,9 @@ export class ListPaymentsRequest extends jspb.Message { getCreationDateEnd(): string; setCreationDateEnd(value: string): void; + getOmitHops(): boolean; + setOmitHops(value: boolean): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): ListPaymentsRequest.AsObject; static toObject(includeInstance: boolean, msg: ListPaymentsRequest): ListPaymentsRequest.AsObject; @@ -6008,6 +6027,7 @@ export namespace ListPaymentsRequest { countTotalPayments: boolean, creationDateStart: string, creationDateEnd: string, + omitHops: boolean, } } @@ -7758,6 +7778,8 @@ export interface CommitmentTypeMap { STATIC_REMOTE_KEY: 2; ANCHORS: 3; SCRIPT_ENFORCED_LEASE: 4; + TAPROOT: 7; + SIMPLE_TAPROOT_FINAL: 7; SIMPLE_TAPROOT: 5; SIMPLE_TAPROOT_OVERLAY: 6; } @@ -7794,6 +7816,15 @@ export interface ResolutionOutcomeMap { export const ResolutionOutcome: ResolutionOutcomeMap; +export interface GraphCacheStatusMap { + GRAPH_CACHE_STATUS_DISABLED: 0; + GRAPH_CACHE_STATUS_LOADING: 1; + GRAPH_CACHE_STATUS_LOADED: 2; + GRAPH_CACHE_STATUS_FAILED: 3; +} + +export const GraphCacheStatus: GraphCacheStatusMap; + export interface NodeMetricTypeMap { UNKNOWN: 0; BETWEENNESS_CENTRALITY: 1; diff --git a/app/src/types/generated/lnd_pb.js b/app/src/types/generated/lnd_pb.js index 5826e82e..84bb4e9d 100644 --- a/app/src/types/generated/lnd_pb.js +++ b/app/src/types/generated/lnd_pb.js @@ -59,6 +59,7 @@ goog.exportSymbol('proto.lnrpc.ChannelBalanceResponse', null, global); goog.exportSymbol('proto.lnrpc.ChannelCloseSummary', null, global); goog.exportSymbol('proto.lnrpc.ChannelCloseSummary.ClosureType', null, global); goog.exportSymbol('proto.lnrpc.ChannelCloseUpdate', null, global); +goog.exportSymbol('proto.lnrpc.ChannelCommitUpdate', null, global); goog.exportSymbol('proto.lnrpc.ChannelConstraints', null, global); goog.exportSymbol('proto.lnrpc.ChannelEdge', null, global); goog.exportSymbol('proto.lnrpc.ChannelEdgeUpdate', null, global); @@ -131,6 +132,7 @@ goog.exportSymbol('proto.lnrpc.GetInfoResponse', null, global); goog.exportSymbol('proto.lnrpc.GetRecoveryInfoRequest', null, global); goog.exportSymbol('proto.lnrpc.GetRecoveryInfoResponse', null, global); goog.exportSymbol('proto.lnrpc.GetTransactionsRequest', null, global); +goog.exportSymbol('proto.lnrpc.GraphCacheStatus', null, global); goog.exportSymbol('proto.lnrpc.GraphTopologySubscription', null, global); goog.exportSymbol('proto.lnrpc.GraphTopologyUpdate', null, global); goog.exportSymbol('proto.lnrpc.HTLC', null, global); @@ -188,6 +190,7 @@ goog.exportSymbol('proto.lnrpc.NodeMetricsRequest', null, global); goog.exportSymbol('proto.lnrpc.NodeMetricsResponse', null, global); goog.exportSymbol('proto.lnrpc.NodePair', null, global); goog.exportSymbol('proto.lnrpc.NodeUpdate', null, global); +goog.exportSymbol('proto.lnrpc.OnionMessageUpdate', null, global); goog.exportSymbol('proto.lnrpc.Op', null, global); goog.exportSymbol('proto.lnrpc.OpenChannelRequest', null, global); goog.exportSymbol('proto.lnrpc.OpenStatusUpdate', null, global); @@ -245,9 +248,8 @@ goog.exportSymbol('proto.lnrpc.SendCustomMessageRequest', null, global); goog.exportSymbol('proto.lnrpc.SendCustomMessageResponse', null, global); goog.exportSymbol('proto.lnrpc.SendManyRequest', null, global); goog.exportSymbol('proto.lnrpc.SendManyResponse', null, global); -goog.exportSymbol('proto.lnrpc.SendRequest', null, global); -goog.exportSymbol('proto.lnrpc.SendResponse', null, global); -goog.exportSymbol('proto.lnrpc.SendToRouteRequest', null, global); +goog.exportSymbol('proto.lnrpc.SendOnionMessageRequest', null, global); +goog.exportSymbol('proto.lnrpc.SendOnionMessageResponse', null, global); goog.exportSymbol('proto.lnrpc.SetID', null, global); goog.exportSymbol('proto.lnrpc.SignMessageRequest', null, global); goog.exportSymbol('proto.lnrpc.SignMessageResponse', null, global); @@ -255,6 +257,7 @@ goog.exportSymbol('proto.lnrpc.StopRequest', null, global); goog.exportSymbol('proto.lnrpc.StopResponse', null, global); goog.exportSymbol('proto.lnrpc.StreamAuth', null, global); goog.exportSymbol('proto.lnrpc.SubscribeCustomMessagesRequest', null, global); +goog.exportSymbol('proto.lnrpc.SubscribeOnionMessagesRequest', null, global); goog.exportSymbol('proto.lnrpc.TimestampedError', null, global); goog.exportSymbol('proto.lnrpc.Transaction', null, global); goog.exportSymbol('proto.lnrpc.TransactionDetails', null, global); @@ -392,6 +395,90 @@ if (goog.DEBUG && !COMPILED) { */ proto.lnrpc.SendCustomMessageResponse.displayName = 'proto.lnrpc.SendCustomMessageResponse'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.lnrpc.SubscribeOnionMessagesRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.lnrpc.SubscribeOnionMessagesRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.lnrpc.SubscribeOnionMessagesRequest.displayName = 'proto.lnrpc.SubscribeOnionMessagesRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.lnrpc.OnionMessageUpdate = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.lnrpc.OnionMessageUpdate, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.lnrpc.OnionMessageUpdate.displayName = 'proto.lnrpc.OnionMessageUpdate'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.lnrpc.SendOnionMessageRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.lnrpc.SendOnionMessageRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.lnrpc.SendOnionMessageRequest.displayName = 'proto.lnrpc.SendOnionMessageRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.lnrpc.SendOnionMessageResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.lnrpc.SendOnionMessageResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.lnrpc.SendOnionMessageResponse.displayName = 'proto.lnrpc.SendOnionMessageResponse'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -518,69 +605,6 @@ if (goog.DEBUG && !COMPILED) { */ proto.lnrpc.FeeLimit.displayName = 'proto.lnrpc.FeeLimit'; } -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.lnrpc.SendRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.lnrpc.SendRequest.repeatedFields_, null); -}; -goog.inherits(proto.lnrpc.SendRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.lnrpc.SendRequest.displayName = 'proto.lnrpc.SendRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.lnrpc.SendResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.lnrpc.SendResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.lnrpc.SendResponse.displayName = 'proto.lnrpc.SendResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.lnrpc.SendToRouteRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.lnrpc.SendToRouteRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.lnrpc.SendToRouteRequest.displayName = 'proto.lnrpc.SendToRouteRequest'; -} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -718,7 +742,7 @@ if (goog.DEBUG && !COMPILED) { * @constructor */ proto.lnrpc.EstimateFeeRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); + jspb.Message.initialize(this, opt_data, 0, -1, proto.lnrpc.EstimateFeeRequest.repeatedFields_, null); }; goog.inherits(proto.lnrpc.EstimateFeeRequest, jspb.Message); if (goog.DEBUG && !COMPILED) { @@ -739,7 +763,7 @@ if (goog.DEBUG && !COMPILED) { * @constructor */ proto.lnrpc.EstimateFeeResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); + jspb.Message.initialize(this, opt_data, 0, -1, proto.lnrpc.EstimateFeeResponse.repeatedFields_, null); }; goog.inherits(proto.lnrpc.EstimateFeeResponse, jspb.Message); if (goog.DEBUG && !COMPILED) { @@ -2303,6 +2327,27 @@ if (goog.DEBUG && !COMPILED) { */ proto.lnrpc.ChannelEventSubscription.displayName = 'proto.lnrpc.ChannelEventSubscription'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.lnrpc.ChannelCommitUpdate = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.lnrpc.ChannelCommitUpdate, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.lnrpc.ChannelCommitUpdate.displayName = 'proto.lnrpc.ChannelCommitUpdate'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -5706,6 +5751,900 @@ proto.lnrpc.SendCustomMessageResponse.prototype.setStatus = function(value) { +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.lnrpc.SubscribeOnionMessagesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.lnrpc.SubscribeOnionMessagesRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.lnrpc.SubscribeOnionMessagesRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.SubscribeOnionMessagesRequest.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.lnrpc.SubscribeOnionMessagesRequest} + */ +proto.lnrpc.SubscribeOnionMessagesRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.lnrpc.SubscribeOnionMessagesRequest; + return proto.lnrpc.SubscribeOnionMessagesRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.lnrpc.SubscribeOnionMessagesRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.lnrpc.SubscribeOnionMessagesRequest} + */ +proto.lnrpc.SubscribeOnionMessagesRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.lnrpc.SubscribeOnionMessagesRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.lnrpc.SubscribeOnionMessagesRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.lnrpc.SubscribeOnionMessagesRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.SubscribeOnionMessagesRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.lnrpc.OnionMessageUpdate.prototype.toObject = function(opt_includeInstance) { + return proto.lnrpc.OnionMessageUpdate.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.lnrpc.OnionMessageUpdate} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.OnionMessageUpdate.toObject = function(includeInstance, msg) { + var f, obj = { + peer: msg.getPeer_asB64(), + pathKey: msg.getPathKey_asB64(), + onion: msg.getOnion_asB64(), + replyPath: (f = msg.getReplyPath()) && proto.lnrpc.BlindedPath.toObject(includeInstance, f), + encryptedRecipientData: msg.getEncryptedRecipientData_asB64(), + customRecordsMap: (f = msg.getCustomRecordsMap()) ? f.toObject(includeInstance, undefined) : [] + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.lnrpc.OnionMessageUpdate} + */ +proto.lnrpc.OnionMessageUpdate.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.lnrpc.OnionMessageUpdate; + return proto.lnrpc.OnionMessageUpdate.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.lnrpc.OnionMessageUpdate} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.lnrpc.OnionMessageUpdate} + */ +proto.lnrpc.OnionMessageUpdate.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setPeer(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setPathKey(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setOnion(value); + break; + case 4: + var value = new proto.lnrpc.BlindedPath; + reader.readMessage(value,proto.lnrpc.BlindedPath.deserializeBinaryFromReader); + msg.setReplyPath(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setEncryptedRecipientData(value); + break; + case 6: + var value = msg.getCustomRecordsMap(); + reader.readMessage(value, function(message, reader) { + jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint64, jspb.BinaryReader.prototype.readBytes, null, 0, ""); + }); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.lnrpc.OnionMessageUpdate.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.lnrpc.OnionMessageUpdate.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.lnrpc.OnionMessageUpdate} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.OnionMessageUpdate.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPeer_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getPathKey_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getOnion_asU8(); + if (f.length > 0) { + writer.writeBytes( + 3, + f + ); + } + f = message.getReplyPath(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.lnrpc.BlindedPath.serializeBinaryToWriter + ); + } + f = message.getEncryptedRecipientData_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f + ); + } + f = message.getCustomRecordsMap(true); + if (f && f.getLength() > 0) { + f.serializeBinary(6, writer, jspb.BinaryWriter.prototype.writeUint64, jspb.BinaryWriter.prototype.writeBytes); + } +}; + + +/** + * optional bytes peer = 1; + * @return {!(string|Uint8Array)} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getPeer = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes peer = 1; + * This is a type-conversion wrapper around `getPeer()` + * @return {string} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getPeer_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getPeer())); +}; + + +/** + * optional bytes peer = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getPeer()` + * @return {!Uint8Array} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getPeer_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getPeer())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.lnrpc.OnionMessageUpdate} returns this + */ +proto.lnrpc.OnionMessageUpdate.prototype.setPeer = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bytes path_key = 2; + * @return {!(string|Uint8Array)} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getPathKey = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes path_key = 2; + * This is a type-conversion wrapper around `getPathKey()` + * @return {string} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getPathKey_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getPathKey())); +}; + + +/** + * optional bytes path_key = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getPathKey()` + * @return {!Uint8Array} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getPathKey_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getPathKey())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.lnrpc.OnionMessageUpdate} returns this + */ +proto.lnrpc.OnionMessageUpdate.prototype.setPathKey = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); +}; + + +/** + * optional bytes onion = 3; + * @return {!(string|Uint8Array)} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getOnion = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * optional bytes onion = 3; + * This is a type-conversion wrapper around `getOnion()` + * @return {string} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getOnion_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getOnion())); +}; + + +/** + * optional bytes onion = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getOnion()` + * @return {!Uint8Array} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getOnion_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getOnion())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.lnrpc.OnionMessageUpdate} returns this + */ +proto.lnrpc.OnionMessageUpdate.prototype.setOnion = function(value) { + return jspb.Message.setProto3BytesField(this, 3, value); +}; + + +/** + * optional BlindedPath reply_path = 4; + * @return {?proto.lnrpc.BlindedPath} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getReplyPath = function() { + return /** @type{?proto.lnrpc.BlindedPath} */ ( + jspb.Message.getWrapperField(this, proto.lnrpc.BlindedPath, 4)); +}; + + +/** + * @param {?proto.lnrpc.BlindedPath|undefined} value + * @return {!proto.lnrpc.OnionMessageUpdate} returns this +*/ +proto.lnrpc.OnionMessageUpdate.prototype.setReplyPath = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.lnrpc.OnionMessageUpdate} returns this + */ +proto.lnrpc.OnionMessageUpdate.prototype.clearReplyPath = function() { + return this.setReplyPath(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.lnrpc.OnionMessageUpdate.prototype.hasReplyPath = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional bytes encrypted_recipient_data = 5; + * @return {!(string|Uint8Array)} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getEncryptedRecipientData = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * optional bytes encrypted_recipient_data = 5; + * This is a type-conversion wrapper around `getEncryptedRecipientData()` + * @return {string} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getEncryptedRecipientData_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getEncryptedRecipientData())); +}; + + +/** + * optional bytes encrypted_recipient_data = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getEncryptedRecipientData()` + * @return {!Uint8Array} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getEncryptedRecipientData_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getEncryptedRecipientData())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.lnrpc.OnionMessageUpdate} returns this + */ +proto.lnrpc.OnionMessageUpdate.prototype.setEncryptedRecipientData = function(value) { + return jspb.Message.setProto3BytesField(this, 5, value); +}; + + +/** + * map custom_records = 6; + * @param {boolean=} opt_noLazyCreate Do not create the map if + * empty, instead returning `undefined` + * @return {!jspb.Map} + */ +proto.lnrpc.OnionMessageUpdate.prototype.getCustomRecordsMap = function(opt_noLazyCreate) { + return /** @type {!jspb.Map} */ ( + jspb.Message.getMapField(this, 6, opt_noLazyCreate, + null)); +}; + + +/** + * Clears values from the map. The map will be non-null. + * @return {!proto.lnrpc.OnionMessageUpdate} returns this + */ +proto.lnrpc.OnionMessageUpdate.prototype.clearCustomRecordsMap = function() { + this.getCustomRecordsMap().clear(); + return this; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.toObject = function(opt_includeInstance) { + return proto.lnrpc.SendOnionMessageRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.lnrpc.SendOnionMessageRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.SendOnionMessageRequest.toObject = function(includeInstance, msg) { + var f, obj = { + peer: msg.getPeer_asB64(), + pathKey: msg.getPathKey_asB64(), + onion: msg.getOnion_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.lnrpc.SendOnionMessageRequest} + */ +proto.lnrpc.SendOnionMessageRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.lnrpc.SendOnionMessageRequest; + return proto.lnrpc.SendOnionMessageRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.lnrpc.SendOnionMessageRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.lnrpc.SendOnionMessageRequest} + */ +proto.lnrpc.SendOnionMessageRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setPeer(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setPathKey(value); + break; + case 3: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setOnion(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.lnrpc.SendOnionMessageRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.lnrpc.SendOnionMessageRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.SendOnionMessageRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPeer_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getPathKey_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getOnion_asU8(); + if (f.length > 0) { + writer.writeBytes( + 3, + f + ); + } +}; + + +/** + * optional bytes peer = 1; + * @return {!(string|Uint8Array)} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getPeer = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes peer = 1; + * This is a type-conversion wrapper around `getPeer()` + * @return {string} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getPeer_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getPeer())); +}; + + +/** + * optional bytes peer = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getPeer()` + * @return {!Uint8Array} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getPeer_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getPeer())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.lnrpc.SendOnionMessageRequest} returns this + */ +proto.lnrpc.SendOnionMessageRequest.prototype.setPeer = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional bytes path_key = 2; + * @return {!(string|Uint8Array)} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getPathKey = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes path_key = 2; + * This is a type-conversion wrapper around `getPathKey()` + * @return {string} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getPathKey_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getPathKey())); +}; + + +/** + * optional bytes path_key = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getPathKey()` + * @return {!Uint8Array} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getPathKey_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getPathKey())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.lnrpc.SendOnionMessageRequest} returns this + */ +proto.lnrpc.SendOnionMessageRequest.prototype.setPathKey = function(value) { + return jspb.Message.setProto3BytesField(this, 2, value); +}; + + +/** + * optional bytes onion = 3; + * @return {!(string|Uint8Array)} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getOnion = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * optional bytes onion = 3; + * This is a type-conversion wrapper around `getOnion()` + * @return {string} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getOnion_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getOnion())); +}; + + +/** + * optional bytes onion = 3; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getOnion()` + * @return {!Uint8Array} + */ +proto.lnrpc.SendOnionMessageRequest.prototype.getOnion_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getOnion())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.lnrpc.SendOnionMessageRequest} returns this + */ +proto.lnrpc.SendOnionMessageRequest.prototype.setOnion = function(value) { + return jspb.Message.setProto3BytesField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.lnrpc.SendOnionMessageResponse.prototype.toObject = function(opt_includeInstance) { + return proto.lnrpc.SendOnionMessageResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.lnrpc.SendOnionMessageResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.SendOnionMessageResponse.toObject = function(includeInstance, msg) { + var f, obj = { + status: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.lnrpc.SendOnionMessageResponse} + */ +proto.lnrpc.SendOnionMessageResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.lnrpc.SendOnionMessageResponse; + return proto.lnrpc.SendOnionMessageResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.lnrpc.SendOnionMessageResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.lnrpc.SendOnionMessageResponse} + */ +proto.lnrpc.SendOnionMessageResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.lnrpc.SendOnionMessageResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.lnrpc.SendOnionMessageResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.lnrpc.SendOnionMessageResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.SendOnionMessageResponse.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.SendOnionMessageResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.lnrpc.SendOnionMessageResponse} returns this + */ +proto.lnrpc.SendOnionMessageResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -7558,1259 +8497,6 @@ proto.lnrpc.FeeLimit.prototype.hasPercent = function() { -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.lnrpc.SendRequest.repeatedFields_ = [15]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.lnrpc.SendRequest.prototype.toObject = function(opt_includeInstance) { - return proto.lnrpc.SendRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.lnrpc.SendRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.lnrpc.SendRequest.toObject = function(includeInstance, msg) { - var f, obj = { - dest: msg.getDest_asB64(), - destString: jspb.Message.getFieldWithDefault(msg, 2, ""), - amt: jspb.Message.getFieldWithDefault(msg, 3, "0"), - amtMsat: jspb.Message.getFieldWithDefault(msg, 12, "0"), - paymentHash: msg.getPaymentHash_asB64(), - paymentHashString: jspb.Message.getFieldWithDefault(msg, 5, ""), - paymentRequest: jspb.Message.getFieldWithDefault(msg, 6, ""), - finalCltvDelta: jspb.Message.getFieldWithDefault(msg, 7, 0), - feeLimit: (f = msg.getFeeLimit()) && proto.lnrpc.FeeLimit.toObject(includeInstance, f), - outgoingChanId: jspb.Message.getFieldWithDefault(msg, 9, "0"), - lastHopPubkey: msg.getLastHopPubkey_asB64(), - cltvLimit: jspb.Message.getFieldWithDefault(msg, 10, 0), - destCustomRecordsMap: (f = msg.getDestCustomRecordsMap()) ? f.toObject(includeInstance, undefined) : [], - allowSelfPayment: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - destFeaturesList: (f = jspb.Message.getRepeatedField(msg, 15)) == null ? undefined : f, - paymentAddr: msg.getPaymentAddr_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.lnrpc.SendRequest} - */ -proto.lnrpc.SendRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.lnrpc.SendRequest; - return proto.lnrpc.SendRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.lnrpc.SendRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.lnrpc.SendRequest} - */ -proto.lnrpc.SendRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setDest(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDestString(value); - break; - case 3: - var value = /** @type {string} */ (reader.readInt64String()); - msg.setAmt(value); - break; - case 12: - var value = /** @type {string} */ (reader.readInt64String()); - msg.setAmtMsat(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setPaymentHash(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setPaymentHashString(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPaymentRequest(value); - break; - case 7: - var value = /** @type {number} */ (reader.readInt32()); - msg.setFinalCltvDelta(value); - break; - case 8: - var value = new proto.lnrpc.FeeLimit; - reader.readMessage(value,proto.lnrpc.FeeLimit.deserializeBinaryFromReader); - msg.setFeeLimit(value); - break; - case 9: - var value = /** @type {string} */ (reader.readUint64String()); - msg.setOutgoingChanId(value); - break; - case 13: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setLastHopPubkey(value); - break; - case 10: - var value = /** @type {number} */ (reader.readUint32()); - msg.setCltvLimit(value); - break; - case 11: - var value = msg.getDestCustomRecordsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint64, jspb.BinaryReader.prototype.readBytes, null, 0, ""); - }); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAllowSelfPayment(value); - break; - case 15: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addDestFeatures(values[i]); - } - break; - case 16: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setPaymentAddr(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.lnrpc.SendRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.lnrpc.SendRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.lnrpc.SendRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.lnrpc.SendRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDest_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getDestString(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getAmt(); - if (parseInt(f, 10) !== 0) { - writer.writeInt64String( - 3, - f - ); - } - f = message.getAmtMsat(); - if (parseInt(f, 10) !== 0) { - writer.writeInt64String( - 12, - f - ); - } - f = message.getPaymentHash_asU8(); - if (f.length > 0) { - writer.writeBytes( - 4, - f - ); - } - f = message.getPaymentHashString(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getPaymentRequest(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getFinalCltvDelta(); - if (f !== 0) { - writer.writeInt32( - 7, - f - ); - } - f = message.getFeeLimit(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.lnrpc.FeeLimit.serializeBinaryToWriter - ); - } - f = message.getOutgoingChanId(); - if (parseInt(f, 10) !== 0) { - writer.writeUint64String( - 9, - f - ); - } - f = message.getLastHopPubkey_asU8(); - if (f.length > 0) { - writer.writeBytes( - 13, - f - ); - } - f = message.getCltvLimit(); - if (f !== 0) { - writer.writeUint32( - 10, - f - ); - } - f = message.getDestCustomRecordsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeUint64, jspb.BinaryWriter.prototype.writeBytes); - } - f = message.getAllowSelfPayment(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getDestFeaturesList(); - if (f.length > 0) { - writer.writePackedEnum( - 15, - f - ); - } - f = message.getPaymentAddr_asU8(); - if (f.length > 0) { - writer.writeBytes( - 16, - f - ); - } -}; - - -/** - * optional bytes dest = 1; - * @return {!(string|Uint8Array)} - */ -proto.lnrpc.SendRequest.prototype.getDest = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes dest = 1; - * This is a type-conversion wrapper around `getDest()` - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getDest_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getDest())); -}; - - -/** - * optional bytes dest = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getDest()` - * @return {!Uint8Array} - */ -proto.lnrpc.SendRequest.prototype.getDest_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getDest())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setDest = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string dest_string = 2; - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getDestString = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setDestString = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional int64 amt = 3; - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getAmt = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "0")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setAmt = function(value) { - return jspb.Message.setProto3StringIntField(this, 3, value); -}; - - -/** - * optional int64 amt_msat = 12; - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getAmtMsat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "0")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setAmtMsat = function(value) { - return jspb.Message.setProto3StringIntField(this, 12, value); -}; - - -/** - * optional bytes payment_hash = 4; - * @return {!(string|Uint8Array)} - */ -proto.lnrpc.SendRequest.prototype.getPaymentHash = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * optional bytes payment_hash = 4; - * This is a type-conversion wrapper around `getPaymentHash()` - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getPaymentHash_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getPaymentHash())); -}; - - -/** - * optional bytes payment_hash = 4; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPaymentHash()` - * @return {!Uint8Array} - */ -proto.lnrpc.SendRequest.prototype.getPaymentHash_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getPaymentHash())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setPaymentHash = function(value) { - return jspb.Message.setProto3BytesField(this, 4, value); -}; - - -/** - * optional string payment_hash_string = 5; - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getPaymentHashString = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setPaymentHashString = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string payment_request = 6; - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getPaymentRequest = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setPaymentRequest = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional int32 final_cltv_delta = 7; - * @return {number} - */ -proto.lnrpc.SendRequest.prototype.getFinalCltvDelta = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setFinalCltvDelta = function(value) { - return jspb.Message.setProto3IntField(this, 7, value); -}; - - -/** - * optional FeeLimit fee_limit = 8; - * @return {?proto.lnrpc.FeeLimit} - */ -proto.lnrpc.SendRequest.prototype.getFeeLimit = function() { - return /** @type{?proto.lnrpc.FeeLimit} */ ( - jspb.Message.getWrapperField(this, proto.lnrpc.FeeLimit, 8)); -}; - - -/** - * @param {?proto.lnrpc.FeeLimit|undefined} value - * @return {!proto.lnrpc.SendRequest} returns this -*/ -proto.lnrpc.SendRequest.prototype.setFeeLimit = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.clearFeeLimit = function() { - return this.setFeeLimit(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.lnrpc.SendRequest.prototype.hasFeeLimit = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional uint64 outgoing_chan_id = 9; - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getOutgoingChanId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "0")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setOutgoingChanId = function(value) { - return jspb.Message.setProto3StringIntField(this, 9, value); -}; - - -/** - * optional bytes last_hop_pubkey = 13; - * @return {!(string|Uint8Array)} - */ -proto.lnrpc.SendRequest.prototype.getLastHopPubkey = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * optional bytes last_hop_pubkey = 13; - * This is a type-conversion wrapper around `getLastHopPubkey()` - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getLastHopPubkey_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getLastHopPubkey())); -}; - - -/** - * optional bytes last_hop_pubkey = 13; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getLastHopPubkey()` - * @return {!Uint8Array} - */ -proto.lnrpc.SendRequest.prototype.getLastHopPubkey_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getLastHopPubkey())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setLastHopPubkey = function(value) { - return jspb.Message.setProto3BytesField(this, 13, value); -}; - - -/** - * optional uint32 cltv_limit = 10; - * @return {number} - */ -proto.lnrpc.SendRequest.prototype.getCltvLimit = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setCltvLimit = function(value) { - return jspb.Message.setProto3IntField(this, 10, value); -}; - - -/** - * map dest_custom_records = 11; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.lnrpc.SendRequest.prototype.getDestCustomRecordsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 11, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.clearDestCustomRecordsMap = function() { - this.getDestCustomRecordsMap().clear(); - return this; -}; - - -/** - * optional bool allow_self_payment = 14; - * @return {boolean} - */ -proto.lnrpc.SendRequest.prototype.getAllowSelfPayment = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setAllowSelfPayment = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * repeated FeatureBit dest_features = 15; - * @return {!Array} - */ -proto.lnrpc.SendRequest.prototype.getDestFeaturesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 15)); -}; - - -/** - * @param {!Array} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setDestFeaturesList = function(value) { - return jspb.Message.setField(this, 15, value || []); -}; - - -/** - * @param {!proto.lnrpc.FeatureBit} value - * @param {number=} opt_index - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.addDestFeatures = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 15, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.clearDestFeaturesList = function() { - return this.setDestFeaturesList([]); -}; - - -/** - * optional bytes payment_addr = 16; - * @return {!(string|Uint8Array)} - */ -proto.lnrpc.SendRequest.prototype.getPaymentAddr = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 16, "")); -}; - - -/** - * optional bytes payment_addr = 16; - * This is a type-conversion wrapper around `getPaymentAddr()` - * @return {string} - */ -proto.lnrpc.SendRequest.prototype.getPaymentAddr_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getPaymentAddr())); -}; - - -/** - * optional bytes payment_addr = 16; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPaymentAddr()` - * @return {!Uint8Array} - */ -proto.lnrpc.SendRequest.prototype.getPaymentAddr_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getPaymentAddr())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.lnrpc.SendRequest} returns this - */ -proto.lnrpc.SendRequest.prototype.setPaymentAddr = function(value) { - return jspb.Message.setProto3BytesField(this, 16, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.lnrpc.SendResponse.prototype.toObject = function(opt_includeInstance) { - return proto.lnrpc.SendResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.lnrpc.SendResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.lnrpc.SendResponse.toObject = function(includeInstance, msg) { - var f, obj = { - paymentError: jspb.Message.getFieldWithDefault(msg, 1, ""), - paymentPreimage: msg.getPaymentPreimage_asB64(), - paymentRoute: (f = msg.getPaymentRoute()) && proto.lnrpc.Route.toObject(includeInstance, f), - paymentHash: msg.getPaymentHash_asB64() - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.lnrpc.SendResponse} - */ -proto.lnrpc.SendResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.lnrpc.SendResponse; - return proto.lnrpc.SendResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.lnrpc.SendResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.lnrpc.SendResponse} - */ -proto.lnrpc.SendResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setPaymentError(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setPaymentPreimage(value); - break; - case 3: - var value = new proto.lnrpc.Route; - reader.readMessage(value,proto.lnrpc.Route.deserializeBinaryFromReader); - msg.setPaymentRoute(value); - break; - case 4: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setPaymentHash(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.lnrpc.SendResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.lnrpc.SendResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.lnrpc.SendResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.lnrpc.SendResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPaymentError(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPaymentPreimage_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getPaymentRoute(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.lnrpc.Route.serializeBinaryToWriter - ); - } - f = message.getPaymentHash_asU8(); - if (f.length > 0) { - writer.writeBytes( - 4, - f - ); - } -}; - - -/** - * optional string payment_error = 1; - * @return {string} - */ -proto.lnrpc.SendResponse.prototype.getPaymentError = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.SendResponse} returns this - */ -proto.lnrpc.SendResponse.prototype.setPaymentError = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes payment_preimage = 2; - * @return {!(string|Uint8Array)} - */ -proto.lnrpc.SendResponse.prototype.getPaymentPreimage = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes payment_preimage = 2; - * This is a type-conversion wrapper around `getPaymentPreimage()` - * @return {string} - */ -proto.lnrpc.SendResponse.prototype.getPaymentPreimage_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getPaymentPreimage())); -}; - - -/** - * optional bytes payment_preimage = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPaymentPreimage()` - * @return {!Uint8Array} - */ -proto.lnrpc.SendResponse.prototype.getPaymentPreimage_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getPaymentPreimage())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.lnrpc.SendResponse} returns this - */ -proto.lnrpc.SendResponse.prototype.setPaymentPreimage = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * optional Route payment_route = 3; - * @return {?proto.lnrpc.Route} - */ -proto.lnrpc.SendResponse.prototype.getPaymentRoute = function() { - return /** @type{?proto.lnrpc.Route} */ ( - jspb.Message.getWrapperField(this, proto.lnrpc.Route, 3)); -}; - - -/** - * @param {?proto.lnrpc.Route|undefined} value - * @return {!proto.lnrpc.SendResponse} returns this -*/ -proto.lnrpc.SendResponse.prototype.setPaymentRoute = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.lnrpc.SendResponse} returns this - */ -proto.lnrpc.SendResponse.prototype.clearPaymentRoute = function() { - return this.setPaymentRoute(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.lnrpc.SendResponse.prototype.hasPaymentRoute = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional bytes payment_hash = 4; - * @return {!(string|Uint8Array)} - */ -proto.lnrpc.SendResponse.prototype.getPaymentHash = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * optional bytes payment_hash = 4; - * This is a type-conversion wrapper around `getPaymentHash()` - * @return {string} - */ -proto.lnrpc.SendResponse.prototype.getPaymentHash_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getPaymentHash())); -}; - - -/** - * optional bytes payment_hash = 4; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPaymentHash()` - * @return {!Uint8Array} - */ -proto.lnrpc.SendResponse.prototype.getPaymentHash_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getPaymentHash())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.lnrpc.SendResponse} returns this - */ -proto.lnrpc.SendResponse.prototype.setPaymentHash = function(value) { - return jspb.Message.setProto3BytesField(this, 4, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.lnrpc.SendToRouteRequest.prototype.toObject = function(opt_includeInstance) { - return proto.lnrpc.SendToRouteRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.lnrpc.SendToRouteRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.lnrpc.SendToRouteRequest.toObject = function(includeInstance, msg) { - var f, obj = { - paymentHash: msg.getPaymentHash_asB64(), - paymentHashString: jspb.Message.getFieldWithDefault(msg, 2, ""), - route: (f = msg.getRoute()) && proto.lnrpc.Route.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.lnrpc.SendToRouteRequest} - */ -proto.lnrpc.SendToRouteRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.lnrpc.SendToRouteRequest; - return proto.lnrpc.SendToRouteRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.lnrpc.SendToRouteRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.lnrpc.SendToRouteRequest} - */ -proto.lnrpc.SendToRouteRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setPaymentHash(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPaymentHashString(value); - break; - case 4: - var value = new proto.lnrpc.Route; - reader.readMessage(value,proto.lnrpc.Route.deserializeBinaryFromReader); - msg.setRoute(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.lnrpc.SendToRouteRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.lnrpc.SendToRouteRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.lnrpc.SendToRouteRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.lnrpc.SendToRouteRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPaymentHash_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getPaymentHashString(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getRoute(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.lnrpc.Route.serializeBinaryToWriter - ); - } -}; - - -/** - * optional bytes payment_hash = 1; - * @return {!(string|Uint8Array)} - */ -proto.lnrpc.SendToRouteRequest.prototype.getPaymentHash = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes payment_hash = 1; - * This is a type-conversion wrapper around `getPaymentHash()` - * @return {string} - */ -proto.lnrpc.SendToRouteRequest.prototype.getPaymentHash_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getPaymentHash())); -}; - - -/** - * optional bytes payment_hash = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getPaymentHash()` - * @return {!Uint8Array} - */ -proto.lnrpc.SendToRouteRequest.prototype.getPaymentHash_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getPaymentHash())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.lnrpc.SendToRouteRequest} returns this - */ -proto.lnrpc.SendToRouteRequest.prototype.setPaymentHash = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string payment_hash_string = 2; - * @return {string} - */ -proto.lnrpc.SendToRouteRequest.prototype.getPaymentHashString = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.SendToRouteRequest} returns this - */ -proto.lnrpc.SendToRouteRequest.prototype.setPaymentHashString = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional Route route = 4; - * @return {?proto.lnrpc.Route} - */ -proto.lnrpc.SendToRouteRequest.prototype.getRoute = function() { - return /** @type{?proto.lnrpc.Route} */ ( - jspb.Message.getWrapperField(this, proto.lnrpc.Route, 4)); -}; - - -/** - * @param {?proto.lnrpc.Route|undefined} value - * @return {!proto.lnrpc.SendToRouteRequest} returns this -*/ -proto.lnrpc.SendToRouteRequest.prototype.setRoute = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.lnrpc.SendToRouteRequest} returns this - */ -proto.lnrpc.SendToRouteRequest.prototype.clearRoute = function() { - return this.setRoute(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.lnrpc.SendToRouteRequest.prototype.hasRoute = function() { - return jspb.Message.getField(this, 4) != null; -}; - - - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -10727,6 +10413,13 @@ proto.lnrpc.LightningAddress.prototype.setHost = function(value) { +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.lnrpc.EstimateFeeRequest.repeatedFields_ = [6]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -10762,7 +10455,9 @@ proto.lnrpc.EstimateFeeRequest.toObject = function(includeInstance, msg) { targetConf: jspb.Message.getFieldWithDefault(msg, 2, 0), minConfs: jspb.Message.getFieldWithDefault(msg, 3, 0), spendUnconfirmed: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), - coinSelectionStrategy: jspb.Message.getFieldWithDefault(msg, 5, 0) + coinSelectionStrategy: jspb.Message.getFieldWithDefault(msg, 5, 0), + inputsList: jspb.Message.toObjectList(msg.getInputsList(), + proto.lnrpc.OutPoint.toObject, includeInstance) }; if (includeInstance) { @@ -10821,6 +10516,11 @@ proto.lnrpc.EstimateFeeRequest.deserializeBinaryFromReader = function(msg, reade var value = /** @type {!proto.lnrpc.CoinSelectionStrategy} */ (reader.readEnum()); msg.setCoinSelectionStrategy(value); break; + case 6: + var value = new proto.lnrpc.OutPoint; + reader.readMessage(value,proto.lnrpc.OutPoint.deserializeBinaryFromReader); + msg.addInputs(value); + break; default: reader.skipField(); break; @@ -10882,6 +10582,14 @@ proto.lnrpc.EstimateFeeRequest.serializeBinaryToWriter = function(message, write f ); } + f = message.getInputsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 6, + f, + proto.lnrpc.OutPoint.serializeBinaryToWriter + ); + } }; @@ -10980,6 +10688,51 @@ proto.lnrpc.EstimateFeeRequest.prototype.setCoinSelectionStrategy = function(val }; +/** + * repeated OutPoint inputs = 6; + * @return {!Array} + */ +proto.lnrpc.EstimateFeeRequest.prototype.getInputsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.lnrpc.OutPoint, 6)); +}; + + +/** + * @param {!Array} value + * @return {!proto.lnrpc.EstimateFeeRequest} returns this +*/ +proto.lnrpc.EstimateFeeRequest.prototype.setInputsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 6, value); +}; + + +/** + * @param {!proto.lnrpc.OutPoint=} opt_value + * @param {number=} opt_index + * @return {!proto.lnrpc.OutPoint} + */ +proto.lnrpc.EstimateFeeRequest.prototype.addInputs = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.lnrpc.OutPoint, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.lnrpc.EstimateFeeRequest} returns this + */ +proto.lnrpc.EstimateFeeRequest.prototype.clearInputsList = function() { + return this.setInputsList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.lnrpc.EstimateFeeResponse.repeatedFields_ = [4]; @@ -11014,7 +10767,9 @@ proto.lnrpc.EstimateFeeResponse.toObject = function(includeInstance, msg) { var f, obj = { feeSat: jspb.Message.getFieldWithDefault(msg, 1, "0"), feerateSatPerByte: jspb.Message.getFieldWithDefault(msg, 2, "0"), - satPerVbyte: jspb.Message.getFieldWithDefault(msg, 3, "0") + satPerVbyte: jspb.Message.getFieldWithDefault(msg, 3, "0"), + inputsList: jspb.Message.toObjectList(msg.getInputsList(), + proto.lnrpc.OutPoint.toObject, includeInstance) }; if (includeInstance) { @@ -11063,6 +10818,11 @@ proto.lnrpc.EstimateFeeResponse.deserializeBinaryFromReader = function(msg, read var value = /** @type {string} */ (reader.readUint64String()); msg.setSatPerVbyte(value); break; + case 4: + var value = new proto.lnrpc.OutPoint; + reader.readMessage(value,proto.lnrpc.OutPoint.deserializeBinaryFromReader); + msg.addInputs(value); + break; default: reader.skipField(); break; @@ -11113,6 +10873,14 @@ proto.lnrpc.EstimateFeeResponse.serializeBinaryToWriter = function(message, writ f ); } + f = message.getInputsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.lnrpc.OutPoint.serializeBinaryToWriter + ); + } }; @@ -11170,6 +10938,44 @@ proto.lnrpc.EstimateFeeResponse.prototype.setSatPerVbyte = function(value) { }; +/** + * repeated OutPoint inputs = 4; + * @return {!Array} + */ +proto.lnrpc.EstimateFeeResponse.prototype.getInputsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.lnrpc.OutPoint, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.lnrpc.EstimateFeeResponse} returns this +*/ +proto.lnrpc.EstimateFeeResponse.prototype.setInputsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.lnrpc.OutPoint=} opt_value + * @param {number=} opt_index + * @return {!proto.lnrpc.OutPoint} + */ +proto.lnrpc.EstimateFeeResponse.prototype.addInputs = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.lnrpc.OutPoint, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.lnrpc.EstimateFeeResponse} returns this + */ +proto.lnrpc.EstimateFeeResponse.prototype.clearInputsList = function() { + return this.setInputsList([]); +}; + + @@ -19862,7 +19668,9 @@ proto.lnrpc.GetInfoResponse.toObject = function(includeInstance, msg) { urisList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f, featuresMap: (f = msg.getFeaturesMap()) ? f.toObject(includeInstance, proto.lnrpc.Feature.toObject) : [], requireHtlcInterceptor: jspb.Message.getBooleanFieldWithDefault(msg, 21, false), - storeFinalHtlcResolutions: jspb.Message.getBooleanFieldWithDefault(msg, 22, false) + storeFinalHtlcResolutions: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), + walletSynced: jspb.Message.getBooleanFieldWithDefault(msg, 23, false), + graphCacheStatus: jspb.Message.getFieldWithDefault(msg, 24, 0) }; if (includeInstance) { @@ -19982,6 +19790,14 @@ proto.lnrpc.GetInfoResponse.deserializeBinaryFromReader = function(msg, reader) var value = /** @type {boolean} */ (reader.readBool()); msg.setStoreFinalHtlcResolutions(value); break; + case 23: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setWalletSynced(value); + break; + case 24: + var value = /** @type {!proto.lnrpc.GraphCacheStatus} */ (reader.readEnum()); + msg.setGraphCacheStatus(value); + break; default: reader.skipField(); break; @@ -20149,6 +19965,20 @@ proto.lnrpc.GetInfoResponse.serializeBinaryToWriter = function(message, writer) f ); } + f = message.getWalletSynced(); + if (f) { + writer.writeBool( + 23, + f + ); + } + f = message.getGraphCacheStatus(); + if (f !== 0.0) { + writer.writeEnum( + 24, + f + ); + } }; @@ -20556,6 +20386,42 @@ proto.lnrpc.GetInfoResponse.prototype.setStoreFinalHtlcResolutions = function(va }; +/** + * optional bool wallet_synced = 23; + * @return {boolean} + */ +proto.lnrpc.GetInfoResponse.prototype.getWalletSynced = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 23, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.lnrpc.GetInfoResponse} returns this + */ +proto.lnrpc.GetInfoResponse.prototype.setWalletSynced = function(value) { + return jspb.Message.setProto3BooleanField(this, 23, value); +}; + + +/** + * optional GraphCacheStatus graph_cache_status = 24; + * @return {!proto.lnrpc.GraphCacheStatus} + */ +proto.lnrpc.GetInfoResponse.prototype.getGraphCacheStatus = function() { + return /** @type {!proto.lnrpc.GraphCacheStatus} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); +}; + + +/** + * @param {!proto.lnrpc.GraphCacheStatus} value + * @return {!proto.lnrpc.GetInfoResponse} returns this + */ +proto.lnrpc.GetInfoResponse.prototype.setGraphCacheStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 24, value); +}; + + @@ -20588,7 +20454,7 @@ proto.lnrpc.GetDebugInfoRequest.prototype.toObject = function(opt_includeInstanc */ proto.lnrpc.GetDebugInfoRequest.toObject = function(includeInstance, msg) { var f, obj = { - + includeLog: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) }; if (includeInstance) { @@ -20625,6 +20491,10 @@ proto.lnrpc.GetDebugInfoRequest.deserializeBinaryFromReader = function(msg, read } var field = reader.getFieldNumber(); switch (field) { + case 1: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setIncludeLog(value); + break; default: reader.skipField(); break; @@ -20654,6 +20524,31 @@ proto.lnrpc.GetDebugInfoRequest.prototype.serializeBinary = function() { */ proto.lnrpc.GetDebugInfoRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; + f = message.getIncludeLog(); + if (f) { + writer.writeBool( + 1, + f + ); + } +}; + + +/** + * optional bool include_log = 1; + * @return {boolean} + */ +proto.lnrpc.GetDebugInfoRequest.prototype.getIncludeLog = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.lnrpc.GetDebugInfoRequest} returns this + */ +proto.lnrpc.GetDebugInfoRequest.prototype.setIncludeLog = function(value) { + return jspb.Message.setProto3BooleanField(this, 1, value); }; @@ -29707,7 +29602,9 @@ proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel.toObject = function(incl limboBalance: jspb.Message.getFieldWithDefault(msg, 2, "0"), commitments: (f = msg.getCommitments()) && proto.lnrpc.PendingChannelsResponse.Commitments.toObject(includeInstance, f), closingTxid: jspb.Message.getFieldWithDefault(msg, 4, ""), - closingTxHex: jspb.Message.getFieldWithDefault(msg, 5, "") + closingTxHex: jspb.Message.getFieldWithDefault(msg, 5, ""), + blocksTilCloseConfirmed: jspb.Message.getFieldWithDefault(msg, 6, 0), + closeHeight: jspb.Message.getFieldWithDefault(msg, 7, 0) }; if (includeInstance) { @@ -29766,6 +29663,14 @@ proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel.deserializeBinaryFromRea var value = /** @type {string} */ (reader.readString()); msg.setClosingTxHex(value); break; + case 6: + var value = /** @type {number} */ (reader.readUint32()); + msg.setBlocksTilCloseConfirmed(value); + break; + case 7: + var value = /** @type {number} */ (reader.readUint32()); + msg.setCloseHeight(value); + break; default: reader.skipField(); break; @@ -29832,6 +29737,20 @@ proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel.serializeBinaryToWriter f ); } + f = message.getBlocksTilCloseConfirmed(); + if (f !== 0) { + writer.writeUint32( + 6, + f + ); + } + f = message.getCloseHeight(); + if (f !== 0) { + writer.writeUint32( + 7, + f + ); + } }; @@ -29963,6 +29882,42 @@ proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel.prototype.setClosingTxHe }; +/** + * optional uint32 blocks_til_close_confirmed = 6; + * @return {number} + */ +proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel.prototype.getBlocksTilCloseConfirmed = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel} returns this + */ +proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel.prototype.setBlocksTilCloseConfirmed = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional uint32 close_height = 7; + * @return {number} + */ +proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel.prototype.getCloseHeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel} returns this + */ +proto.lnrpc.PendingChannelsResponse.WaitingCloseChannel.prototype.setCloseHeight = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + @@ -31096,6 +31051,157 @@ proto.lnrpc.ChannelEventSubscription.serializeBinaryToWriter = function(message, + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.lnrpc.ChannelCommitUpdate.prototype.toObject = function(opt_includeInstance) { + return proto.lnrpc.ChannelCommitUpdate.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.lnrpc.ChannelCommitUpdate} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.ChannelCommitUpdate.toObject = function(includeInstance, msg) { + var f, obj = { + channel: (f = msg.getChannel()) && proto.lnrpc.Channel.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.lnrpc.ChannelCommitUpdate} + */ +proto.lnrpc.ChannelCommitUpdate.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.lnrpc.ChannelCommitUpdate; + return proto.lnrpc.ChannelCommitUpdate.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.lnrpc.ChannelCommitUpdate} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.lnrpc.ChannelCommitUpdate} + */ +proto.lnrpc.ChannelCommitUpdate.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.lnrpc.Channel; + reader.readMessage(value,proto.lnrpc.Channel.deserializeBinaryFromReader); + msg.setChannel(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.lnrpc.ChannelCommitUpdate.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.lnrpc.ChannelCommitUpdate.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.lnrpc.ChannelCommitUpdate} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.lnrpc.ChannelCommitUpdate.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getChannel(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.lnrpc.Channel.serializeBinaryToWriter + ); + } +}; + + +/** + * optional Channel channel = 1; + * @return {?proto.lnrpc.Channel} + */ +proto.lnrpc.ChannelCommitUpdate.prototype.getChannel = function() { + return /** @type{?proto.lnrpc.Channel} */ ( + jspb.Message.getWrapperField(this, proto.lnrpc.Channel, 1)); +}; + + +/** + * @param {?proto.lnrpc.Channel|undefined} value + * @return {!proto.lnrpc.ChannelCommitUpdate} returns this +*/ +proto.lnrpc.ChannelCommitUpdate.prototype.setChannel = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.lnrpc.ChannelCommitUpdate} returns this + */ +proto.lnrpc.ChannelCommitUpdate.prototype.clearChannel = function() { + return this.setChannel(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.lnrpc.ChannelCommitUpdate.prototype.hasChannel = function() { + return jspb.Message.getField(this, 1) != null; +}; + + + /** * Oneof group definitions for this message. Each group defines the field * numbers belonging to that group. When of these fields' value is set, all @@ -31104,7 +31210,7 @@ proto.lnrpc.ChannelEventSubscription.serializeBinaryToWriter = function(message, * @private {!Array>} * @const */ -proto.lnrpc.ChannelEventUpdate.oneofGroups_ = [[1,2,3,4,6,7,8]]; +proto.lnrpc.ChannelEventUpdate.oneofGroups_ = [[1,2,3,4,6,7,8,9]]; /** * @enum {number} @@ -31117,7 +31223,8 @@ proto.lnrpc.ChannelEventUpdate.ChannelCase = { INACTIVE_CHANNEL: 4, PENDING_OPEN_CHANNEL: 6, FULLY_RESOLVED_CHANNEL: 7, - CHANNEL_FUNDING_TIMEOUT: 8 + CHANNEL_FUNDING_TIMEOUT: 8, + UPDATED_CHANNEL: 9 }; /** @@ -31165,6 +31272,7 @@ proto.lnrpc.ChannelEventUpdate.toObject = function(includeInstance, msg) { pendingOpenChannel: (f = msg.getPendingOpenChannel()) && proto.lnrpc.PendingUpdate.toObject(includeInstance, f), fullyResolvedChannel: (f = msg.getFullyResolvedChannel()) && proto.lnrpc.ChannelPoint.toObject(includeInstance, f), channelFundingTimeout: (f = msg.getChannelFundingTimeout()) && proto.lnrpc.ChannelPoint.toObject(includeInstance, f), + updatedChannel: (f = msg.getUpdatedChannel()) && proto.lnrpc.ChannelCommitUpdate.toObject(includeInstance, f), type: jspb.Message.getFieldWithDefault(msg, 5, 0) }; @@ -31237,6 +31345,11 @@ proto.lnrpc.ChannelEventUpdate.deserializeBinaryFromReader = function(msg, reade reader.readMessage(value,proto.lnrpc.ChannelPoint.deserializeBinaryFromReader); msg.setChannelFundingTimeout(value); break; + case 9: + var value = new proto.lnrpc.ChannelCommitUpdate; + reader.readMessage(value,proto.lnrpc.ChannelCommitUpdate.deserializeBinaryFromReader); + msg.setUpdatedChannel(value); + break; case 5: var value = /** @type {!proto.lnrpc.ChannelEventUpdate.UpdateType} */ (reader.readEnum()); msg.setType(value); @@ -31326,6 +31439,14 @@ proto.lnrpc.ChannelEventUpdate.serializeBinaryToWriter = function(message, write proto.lnrpc.ChannelPoint.serializeBinaryToWriter ); } + f = message.getUpdatedChannel(); + if (f != null) { + writer.writeMessage( + 9, + f, + proto.lnrpc.ChannelCommitUpdate.serializeBinaryToWriter + ); + } f = message.getType(); if (f !== 0.0) { writer.writeEnum( @@ -31346,7 +31467,8 @@ proto.lnrpc.ChannelEventUpdate.UpdateType = { INACTIVE_CHANNEL: 3, PENDING_OPEN_CHANNEL: 4, FULLY_RESOLVED_CHANNEL: 5, - CHANNEL_FUNDING_TIMEOUT: 6 + CHANNEL_FUNDING_TIMEOUT: 6, + CHANNEL_UPDATE: 7 }; /** @@ -31608,6 +31730,43 @@ proto.lnrpc.ChannelEventUpdate.prototype.hasChannelFundingTimeout = function() { }; +/** + * optional ChannelCommitUpdate updated_channel = 9; + * @return {?proto.lnrpc.ChannelCommitUpdate} + */ +proto.lnrpc.ChannelEventUpdate.prototype.getUpdatedChannel = function() { + return /** @type{?proto.lnrpc.ChannelCommitUpdate} */ ( + jspb.Message.getWrapperField(this, proto.lnrpc.ChannelCommitUpdate, 9)); +}; + + +/** + * @param {?proto.lnrpc.ChannelCommitUpdate|undefined} value + * @return {!proto.lnrpc.ChannelEventUpdate} returns this +*/ +proto.lnrpc.ChannelEventUpdate.prototype.setUpdatedChannel = function(value) { + return jspb.Message.setOneofWrapperField(this, 9, proto.lnrpc.ChannelEventUpdate.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.lnrpc.ChannelEventUpdate} returns this + */ +proto.lnrpc.ChannelEventUpdate.prototype.clearUpdatedChannel = function() { + return this.setUpdatedChannel(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.lnrpc.ChannelEventUpdate.prototype.hasUpdatedChannel = function() { + return jspb.Message.getField(this, 9) != null; +}; + + /** * optional UpdateType type = 5; * @return {!proto.lnrpc.ChannelEventUpdate.UpdateType} @@ -33064,7 +33223,6 @@ proto.lnrpc.QueryRoutesRequest.toObject = function(includeInstance, msg) { proto.lnrpc.NodePair.toObject, includeInstance), cltvLimit: jspb.Message.getFieldWithDefault(msg, 11, 0), destCustomRecordsMap: (f = msg.getDestCustomRecordsMap()) ? f.toObject(includeInstance, undefined) : [], - outgoingChanId: jspb.Message.getFieldWithDefault(msg, 14, "0"), lastHopPubkey: msg.getLastHopPubkey_asB64(), routeHintsList: jspb.Message.toObjectList(msg.getRouteHintsList(), proto.lnrpc.RouteHint.toObject, includeInstance), @@ -33162,10 +33320,6 @@ proto.lnrpc.QueryRoutesRequest.deserializeBinaryFromReader = function(msg, reade jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint64, jspb.BinaryReader.prototype.readBytes, null, 0, ""); }); break; - case 14: - var value = /** @type {string} */ (reader.readUint64String()); - msg.setOutgoingChanId(value); - break; case 15: var value = /** @type {!Uint8Array} */ (reader.readBytes()); msg.setLastHopPubkey(value); @@ -33309,13 +33463,6 @@ proto.lnrpc.QueryRoutesRequest.serializeBinaryToWriter = function(message, write if (f && f.getLength() > 0) { f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeUint64, jspb.BinaryWriter.prototype.writeBytes); } - f = message.getOutgoingChanId(); - if (parseInt(f, 10) !== 0) { - writer.writeUint64String( - 14, - f - ); - } f = message.getLastHopPubkey_asU8(); if (f.length > 0) { writer.writeBytes( @@ -33686,24 +33833,6 @@ proto.lnrpc.QueryRoutesRequest.prototype.clearDestCustomRecordsMap = function() }; -/** - * optional uint64 outgoing_chan_id = 14; - * @return {string} - */ -proto.lnrpc.QueryRoutesRequest.prototype.getOutgoingChanId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, "0")); -}; - - -/** - * @param {string} value - * @return {!proto.lnrpc.QueryRoutesRequest} returns this - */ -proto.lnrpc.QueryRoutesRequest.prototype.setOutgoingChanId = function(value) { - return jspb.Message.setProto3StringIntField(this, 14, value); -}; - - /** * optional bytes last_hop_pubkey = 15; * @return {!(string|Uint8Array)} @@ -47663,7 +47792,8 @@ proto.lnrpc.ListPaymentsRequest.toObject = function(includeInstance, msg) { reversed: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), countTotalPayments: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), creationDateStart: jspb.Message.getFieldWithDefault(msg, 6, "0"), - creationDateEnd: jspb.Message.getFieldWithDefault(msg, 7, "0") + creationDateEnd: jspb.Message.getFieldWithDefault(msg, 7, "0"), + omitHops: jspb.Message.getBooleanFieldWithDefault(msg, 8, false) }; if (includeInstance) { @@ -47728,6 +47858,10 @@ proto.lnrpc.ListPaymentsRequest.deserializeBinaryFromReader = function(msg, read var value = /** @type {string} */ (reader.readUint64String()); msg.setCreationDateEnd(value); break; + case 8: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setOmitHops(value); + break; default: reader.skipField(); break; @@ -47806,6 +47940,13 @@ proto.lnrpc.ListPaymentsRequest.serializeBinaryToWriter = function(message, writ f ); } + f = message.getOmitHops(); + if (f) { + writer.writeBool( + 8, + f + ); + } }; @@ -47935,6 +48076,24 @@ proto.lnrpc.ListPaymentsRequest.prototype.setCreationDateEnd = function(value) { }; +/** + * optional bool omit_hops = 8; + * @return {boolean} + */ +proto.lnrpc.ListPaymentsRequest.prototype.getOmitHops = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.lnrpc.ListPaymentsRequest} returns this + */ +proto.lnrpc.ListPaymentsRequest.prototype.setOmitHops = function(value) { + return jspb.Message.setProto3BooleanField(this, 8, value); +}; + + /** * List of repeated fields within this message type. @@ -59862,6 +60021,8 @@ proto.lnrpc.CommitmentType = { STATIC_REMOTE_KEY: 2, ANCHORS: 3, SCRIPT_ENFORCED_LEASE: 4, + TAPROOT: 7, + SIMPLE_TAPROOT_FINAL: 7, SIMPLE_TAPROOT: 5, SIMPLE_TAPROOT_OVERLAY: 6 }; @@ -59899,6 +60060,16 @@ proto.lnrpc.ResolutionOutcome = { TIMEOUT: 5 }; +/** + * @enum {number} + */ +proto.lnrpc.GraphCacheStatus = { + GRAPH_CACHE_STATUS_DISABLED: 0, + GRAPH_CACHE_STATUS_LOADING: 1, + GRAPH_CACHE_STATUS_LOADED: 2, + GRAPH_CACHE_STATUS_FAILED: 3 +}; + /** * @enum {number} */ diff --git a/app/src/types/generated/lnd_pb_service.d.ts b/app/src/types/generated/lnd_pb_service.d.ts index b747df80..21710677 100644 --- a/app/src/types/generated/lnd_pb_service.d.ts +++ b/app/src/types/generated/lnd_pb_service.d.ts @@ -265,42 +265,6 @@ type LightningAbandonChannel = { readonly responseType: typeof lnd_pb.AbandonChannelResponse; }; -type LightningSendPayment = { - readonly methodName: string; - readonly service: typeof Lightning; - readonly requestStream: true; - readonly responseStream: true; - readonly requestType: typeof lnd_pb.SendRequest; - readonly responseType: typeof lnd_pb.SendResponse; -}; - -type LightningSendPaymentSync = { - readonly methodName: string; - readonly service: typeof Lightning; - readonly requestStream: false; - readonly responseStream: false; - readonly requestType: typeof lnd_pb.SendRequest; - readonly responseType: typeof lnd_pb.SendResponse; -}; - -type LightningSendToRoute = { - readonly methodName: string; - readonly service: typeof Lightning; - readonly requestStream: true; - readonly responseStream: true; - readonly requestType: typeof lnd_pb.SendToRouteRequest; - readonly responseType: typeof lnd_pb.SendResponse; -}; - -type LightningSendToRouteSync = { - readonly methodName: string; - readonly service: typeof Lightning; - readonly requestStream: false; - readonly responseStream: false; - readonly requestType: typeof lnd_pb.SendToRouteRequest; - readonly responseType: typeof lnd_pb.SendResponse; -}; - type LightningAddInvoice = { readonly methodName: string; readonly service: typeof Lightning; @@ -607,6 +571,24 @@ type LightningSubscribeCustomMessages = { readonly responseType: typeof lnd_pb.CustomMessage; }; +type LightningSendOnionMessage = { + readonly methodName: string; + readonly service: typeof Lightning; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof lnd_pb.SendOnionMessageRequest; + readonly responseType: typeof lnd_pb.SendOnionMessageResponse; +}; + +type LightningSubscribeOnionMessages = { + readonly methodName: string; + readonly service: typeof Lightning; + readonly requestStream: false; + readonly responseStream: true; + readonly requestType: typeof lnd_pb.SubscribeOnionMessagesRequest; + readonly responseType: typeof lnd_pb.OnionMessageUpdate; +}; + type LightningListAliases = { readonly methodName: string; readonly service: typeof Lightning; @@ -656,10 +638,6 @@ export class Lightning { static readonly ChannelAcceptor: LightningChannelAcceptor; static readonly CloseChannel: LightningCloseChannel; static readonly AbandonChannel: LightningAbandonChannel; - static readonly SendPayment: LightningSendPayment; - static readonly SendPaymentSync: LightningSendPaymentSync; - static readonly SendToRoute: LightningSendToRoute; - static readonly SendToRouteSync: LightningSendToRouteSync; static readonly AddInvoice: LightningAddInvoice; static readonly ListInvoices: LightningListInvoices; static readonly LookupInvoice: LightningLookupInvoice; @@ -694,6 +672,8 @@ export class Lightning { static readonly RegisterRPCMiddleware: LightningRegisterRPCMiddleware; static readonly SendCustomMessage: LightningSendCustomMessage; static readonly SubscribeCustomMessages: LightningSubscribeCustomMessages; + static readonly SendOnionMessage: LightningSendOnionMessage; + static readonly SubscribeOnionMessages: LightningSubscribeOnionMessages; static readonly ListAliases: LightningListAliases; static readonly LookupHtlcResolution: LightningLookupHtlcResolution; } @@ -943,26 +923,6 @@ export class LightningClient { requestMessage: lnd_pb.AbandonChannelRequest, callback: (error: ServiceError|null, responseMessage: lnd_pb.AbandonChannelResponse|null) => void ): UnaryResponse; - sendPayment(metadata?: grpc.Metadata): BidirectionalStream; - sendPaymentSync( - requestMessage: lnd_pb.SendRequest, - metadata: grpc.Metadata, - callback: (error: ServiceError|null, responseMessage: lnd_pb.SendResponse|null) => void - ): UnaryResponse; - sendPaymentSync( - requestMessage: lnd_pb.SendRequest, - callback: (error: ServiceError|null, responseMessage: lnd_pb.SendResponse|null) => void - ): UnaryResponse; - sendToRoute(metadata?: grpc.Metadata): BidirectionalStream; - sendToRouteSync( - requestMessage: lnd_pb.SendToRouteRequest, - metadata: grpc.Metadata, - callback: (error: ServiceError|null, responseMessage: lnd_pb.SendResponse|null) => void - ): UnaryResponse; - sendToRouteSync( - requestMessage: lnd_pb.SendToRouteRequest, - callback: (error: ServiceError|null, responseMessage: lnd_pb.SendResponse|null) => void - ): UnaryResponse; addInvoice( requestMessage: lnd_pb.Invoice, metadata: grpc.Metadata, @@ -1229,6 +1189,16 @@ export class LightningClient { callback: (error: ServiceError|null, responseMessage: lnd_pb.SendCustomMessageResponse|null) => void ): UnaryResponse; subscribeCustomMessages(requestMessage: lnd_pb.SubscribeCustomMessagesRequest, metadata?: grpc.Metadata): ResponseStream; + sendOnionMessage( + requestMessage: lnd_pb.SendOnionMessageRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: lnd_pb.SendOnionMessageResponse|null) => void + ): UnaryResponse; + sendOnionMessage( + requestMessage: lnd_pb.SendOnionMessageRequest, + callback: (error: ServiceError|null, responseMessage: lnd_pb.SendOnionMessageResponse|null) => void + ): UnaryResponse; + subscribeOnionMessages(requestMessage: lnd_pb.SubscribeOnionMessagesRequest, metadata?: grpc.Metadata): ResponseStream; listAliases( requestMessage: lnd_pb.ListAliasesRequest, metadata: grpc.Metadata, diff --git a/app/src/types/generated/lnd_pb_service.js b/app/src/types/generated/lnd_pb_service.js index d3556410..b57ea5b6 100644 --- a/app/src/types/generated/lnd_pb_service.js +++ b/app/src/types/generated/lnd_pb_service.js @@ -271,42 +271,6 @@ Lightning.AbandonChannel = { responseType: lnd_pb.AbandonChannelResponse }; -Lightning.SendPayment = { - methodName: "SendPayment", - service: Lightning, - requestStream: true, - responseStream: true, - requestType: lnd_pb.SendRequest, - responseType: lnd_pb.SendResponse -}; - -Lightning.SendPaymentSync = { - methodName: "SendPaymentSync", - service: Lightning, - requestStream: false, - responseStream: false, - requestType: lnd_pb.SendRequest, - responseType: lnd_pb.SendResponse -}; - -Lightning.SendToRoute = { - methodName: "SendToRoute", - service: Lightning, - requestStream: true, - responseStream: true, - requestType: lnd_pb.SendToRouteRequest, - responseType: lnd_pb.SendResponse -}; - -Lightning.SendToRouteSync = { - methodName: "SendToRouteSync", - service: Lightning, - requestStream: false, - responseStream: false, - requestType: lnd_pb.SendToRouteRequest, - responseType: lnd_pb.SendResponse -}; - Lightning.AddInvoice = { methodName: "AddInvoice", service: Lightning, @@ -613,6 +577,24 @@ Lightning.SubscribeCustomMessages = { responseType: lnd_pb.CustomMessage }; +Lightning.SendOnionMessage = { + methodName: "SendOnionMessage", + service: Lightning, + requestStream: false, + responseStream: false, + requestType: lnd_pb.SendOnionMessageRequest, + responseType: lnd_pb.SendOnionMessageResponse +}; + +Lightning.SubscribeOnionMessages = { + methodName: "SubscribeOnionMessages", + service: Lightning, + requestStream: false, + responseStream: true, + requestType: lnd_pb.SubscribeOnionMessagesRequest, + responseType: lnd_pb.OnionMessageUpdate +}; + Lightning.ListAliases = { methodName: "ListAliases", service: Lightning, @@ -1591,158 +1573,6 @@ LightningClient.prototype.abandonChannel = function abandonChannel(requestMessag }; }; -LightningClient.prototype.sendPayment = function sendPayment(metadata) { - var listeners = { - data: [], - end: [], - status: [] - }; - var client = grpc.client(Lightning.SendPayment, { - host: this.serviceHost, - metadata: metadata, - transport: this.options.transport - }); - client.onEnd(function (status, statusMessage, trailers) { - listeners.status.forEach(function (handler) { - handler({ code: status, details: statusMessage, metadata: trailers }); - }); - listeners.end.forEach(function (handler) { - handler({ code: status, details: statusMessage, metadata: trailers }); - }); - listeners = null; - }); - client.onMessage(function (message) { - listeners.data.forEach(function (handler) { - handler(message); - }) - }); - client.start(metadata); - return { - on: function (type, handler) { - listeners[type].push(handler); - return this; - }, - write: function (requestMessage) { - client.send(requestMessage); - return this; - }, - end: function () { - client.finishSend(); - }, - cancel: function () { - listeners = null; - client.close(); - } - }; -}; - -LightningClient.prototype.sendPaymentSync = function sendPaymentSync(requestMessage, metadata, callback) { - if (arguments.length === 2) { - callback = arguments[1]; - } - var client = grpc.unary(Lightning.SendPaymentSync, { - request: requestMessage, - host: this.serviceHost, - metadata: metadata, - transport: this.options.transport, - debug: this.options.debug, - onEnd: function (response) { - if (callback) { - if (response.status !== grpc.Code.OK) { - var err = new Error(response.statusMessage); - err.code = response.status; - err.metadata = response.trailers; - callback(err, null); - } else { - callback(null, response.message); - } - } - } - }); - return { - cancel: function () { - callback = null; - client.close(); - } - }; -}; - -LightningClient.prototype.sendToRoute = function sendToRoute(metadata) { - var listeners = { - data: [], - end: [], - status: [] - }; - var client = grpc.client(Lightning.SendToRoute, { - host: this.serviceHost, - metadata: metadata, - transport: this.options.transport - }); - client.onEnd(function (status, statusMessage, trailers) { - listeners.status.forEach(function (handler) { - handler({ code: status, details: statusMessage, metadata: trailers }); - }); - listeners.end.forEach(function (handler) { - handler({ code: status, details: statusMessage, metadata: trailers }); - }); - listeners = null; - }); - client.onMessage(function (message) { - listeners.data.forEach(function (handler) { - handler(message); - }) - }); - client.start(metadata); - return { - on: function (type, handler) { - listeners[type].push(handler); - return this; - }, - write: function (requestMessage) { - client.send(requestMessage); - return this; - }, - end: function () { - client.finishSend(); - }, - cancel: function () { - listeners = null; - client.close(); - } - }; -}; - -LightningClient.prototype.sendToRouteSync = function sendToRouteSync(requestMessage, metadata, callback) { - if (arguments.length === 2) { - callback = arguments[1]; - } - var client = grpc.unary(Lightning.SendToRouteSync, { - request: requestMessage, - host: this.serviceHost, - metadata: metadata, - transport: this.options.transport, - debug: this.options.debug, - onEnd: function (response) { - if (callback) { - if (response.status !== grpc.Code.OK) { - var err = new Error(response.statusMessage); - err.code = response.status; - err.metadata = response.trailers; - callback(err, null); - } else { - callback(null, response.message); - } - } - } - }); - return { - cancel: function () { - callback = null; - client.close(); - } - }; -}; - LightningClient.prototype.addInvoice = function addInvoice(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; @@ -2843,6 +2673,76 @@ LightningClient.prototype.subscribeCustomMessages = function subscribeCustomMess }; }; +LightningClient.prototype.sendOnionMessage = function sendOnionMessage(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Lightning.SendOnionMessage, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + +LightningClient.prototype.subscribeOnionMessages = function subscribeOnionMessages(requestMessage, metadata) { + var listeners = { + data: [], + end: [], + status: [] + }; + var client = grpc.invoke(Lightning.SubscribeOnionMessages, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onMessage: function (responseMessage) { + listeners.data.forEach(function (handler) { + handler(responseMessage); + }); + }, + onEnd: function (status, statusMessage, trailers) { + listeners.status.forEach(function (handler) { + handler({ code: status, details: statusMessage, metadata: trailers }); + }); + listeners.end.forEach(function (handler) { + handler({ code: status, details: statusMessage, metadata: trailers }); + }); + listeners = null; + } + }); + return { + on: function (type, handler) { + listeners[type].push(handler); + return this; + }, + cancel: function () { + listeners = null; + client.close(); + } + }; +}; + LightningClient.prototype.listAliases = function listAliases(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; diff --git a/app/src/util/tests/sampleData.ts b/app/src/util/tests/sampleData.ts index c8e2a8a2..4b3c651a 100644 --- a/app/src/util/tests/sampleData.ts +++ b/app/src/util/tests/sampleData.ts @@ -29,6 +29,8 @@ export const lndGetInfo: LND.GetInfoResponse.AsObject = { chainsList: [{ chain: 'bitcoin', network: 'regtest' }], requireHtlcInterceptor: false, storeFinalHtlcResolutions: false, + walletSynced: true, + graphCacheStatus: 0, urisList: [ '038b3fc29cfc195c9b190d86ad2d40ce7550a5c6f13941f53c7d7ac5b25c912a6c@172.18.0.7:9735', ], @@ -221,6 +223,8 @@ export const lndPendingChannels: LND.PendingChannelsResponse.AsObject = { closingTxid: '6c151252215b73547a5415051c82dd25c725c4309b93fed4f38c4c5b610c3fb0', closingTxHex: '020000000001016f9a71a385d0a47493bb90989a09e8a584a224642a7a10626e6d4758558e82840000000000ffffffff02c0c62d0000000000225120abf5dc0b60016088bdf7d3c24a34c859bfee2bc4d2ac2f6ad9d8ab1d97edf4bb8e2e89000000000022512079f87cbcdd62fd388bb5c36a79f00a781b03b5574bb1258a82b7b208327bf1cf0400483045022100cf735a9c71ddb2f5bbd20e0595e318c0e26f77f61f35f3e05f5d74423423bd0b022071c6bde4f404cf8a65260ca254357a6261d11e81731c2d7bef744f84f3a988ef01483045022100fbf7dd92231203fe9071383c2c9bf546db0045b425162fa53cbceaf618d2d2ac022075161f505bb3713d50d0c330e9362b7dcdf148cb3c2e14245a7f908ee203d610014752210285f92268f3bed65624f72fe1cbae77afbe99e3502a413678bfba235c0715a2692103854e0e992839be71891348eb0054fa22ef3203bd7a16290f2021ed4e64ddbea652ae00000000', + blocksTilCloseConfirmed: 0, + closeHeight: 0, }, ], pendingForceClosingChannelsList: [ @@ -288,6 +292,9 @@ export const lndChannelEvent: Required = { fundingTxidStr: '', outputIndex: outIndex, }, + updatedChannel: { + channel: lndChannel, + }, }; export const lndTransaction: LND.Transaction.AsObject = { diff --git a/proto/lnd.proto b/proto/lnd.proto index 0f8d4e57..1b69cf65 100644 --- a/proto/lnd.proto +++ b/proto/lnd.proto @@ -262,47 +262,6 @@ service Lightning { */ rpc AbandonChannel (AbandonChannelRequest) returns (AbandonChannelResponse); - /* lncli: `sendpayment` - Deprecated, use routerrpc.SendPaymentV2. SendPayment dispatches a - bi-directional streaming RPC for sending payments through the Lightning - Network. A single RPC invocation creates a persistent bi-directional - stream allowing clients to rapidly send payments through the Lightning - Network with a single persistent connection. - */ - rpc SendPayment (stream SendRequest) returns (stream SendResponse) { - option deprecated = true; - } - - /* - 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) { - option deprecated = true; - } - - /* lncli: `sendtoroute` - Deprecated, use routerrpc.SendToRouteV2. SendToRoute is a bi-directional - streaming RPC for sending payment through the Lightning Network. This - method differs from SendPayment in that it allows users to specify a full - route manually. This can be used for things like rebalancing, and atomic - swaps. - */ - rpc SendToRoute (stream SendToRouteRequest) returns (stream SendResponse) { - option deprecated = true; - } - - /* - 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) { - option deprecated = true; - } - /* lncli: `addinvoice` AddInvoice attempts to add a new invoice to the invoice database. Any duplicated invoices are rejected, therefore all invoices *must* have a @@ -597,6 +556,18 @@ service Lightning { rpc SubscribeCustomMessages (SubscribeCustomMessagesRequest) returns (stream CustomMessage); + /* lncli: `sendonion` + SendOnionMessage sends an onion message to a peer. + */ + rpc SendOnionMessage (SendOnionMessageRequest) + returns (SendOnionMessageResponse); + + /* lncli: `subscribeonion` + SubscribeOnionMessages subscribes to a stream of incoming onion messages. + */ + rpc SubscribeOnionMessages (SubscribeOnionMessagesRequest) + returns (stream OnionMessageUpdate); + /* lncli: `listaliases` ListAliases returns the set of all aliases that have ever existed with their confirmed SCID (if it exists) and/or the base SCID (in the case of @@ -642,7 +613,8 @@ message CustomMessage { } message SendCustomMessageRequest { - // Peer to send the message to + // Peer to which the message will be sent. Represented as a byte-encoded + // public key bytes peer = 1; // Message type. This value needs to be in the custom range (>= 32768). @@ -660,6 +632,67 @@ message SendCustomMessageResponse { string status = 1; } +message SubscribeOnionMessagesRequest { +} + +message OnionMessageUpdate { + // Peer from which this message originates. Represented as a byte-encoded + // public key. + bytes peer = 1; + + // PathKey is used to derive the blinded node id by tweaking the hop's + // static public key. The hop uses the corresponding blinded private key + // together with the sender's ephemeral key to perform ECDH and obtain the + // shared secret for decrypting the onion payload. Separately, for + // decrypting `encrypted_recipient_data`, the recipient performs ECDH + // between its static node private key and the path_key to derive the + // decryption key. + bytes path_key = 2; + + // Serialized Sphinx onion packet (BOLT 4) containing the layered, per-hop + // encrypted payloads and routing instructions used to forward this message + // along its designated path. + bytes onion = 3; + + // reply_path is the blinded path that should be used when replying to a + // received message. + BlindedPath reply_path = 4; + + // encrypted_recipient_data is the encrypted data that contains the + // forwarding information for an onion message. It contains either + // next_node_id or short_channel_id for each non-final node. It MAY contain + // the path_id for the final node. + bytes encrypted_recipient_data = 5; + + // Custom onion message tlv records. These are customized fields that are + // not defined by LND and cannot be extracted. + map custom_records = 6; +} + +message SendOnionMessageRequest { + // Peer to send the message to + bytes peer = 1; + + // PathKey is used to derive the blinded node id by tweaking the hop's + // static public key. The hop uses the corresponding blinded private key + // together with the sender's ephemeral key to perform ECDH and obtain the + // shared secret for decrypting the onion payload. Separately, for + // decrypting `encrypted_recipient_data`, the recipient performs ECDH + // between its static node private key and the path_key to derive the + // decryption key. + bytes path_key = 2; + + // Serialized Sphinx onion packet (BOLT 4) containing the layered, per-hop + // encrypted payloads and routing instructions used to forward this message + // along its designated path. + bytes onion = 3; +} + +message SendOnionMessageResponse { + // The status of the onion message send operation. + string status = 1; +} + message Utxo { // The type of address AddressType address_type = 1; @@ -822,139 +855,6 @@ message FeeLimit { } } -message SendRequest { - /* - The identity pubkey of the payment recipient. When using REST, this field - must be encoded as base64. - */ - bytes dest = 1; - - /* - The hex-encoded identity pubkey of the payment recipient. Deprecated now - that the REST gateway supports base64 encoding of bytes fields. - */ - string dest_string = 2 [deprecated = true]; - - /* - The amount to send expressed in satoshis. - - The fields amt and amt_msat are mutually exclusive. - */ - int64 amt = 3 [jstype = JS_STRING]; - - /* - The amount to send expressed in millisatoshis. - - The fields amt and amt_msat are mutually exclusive. - */ - int64 amt_msat = 12 [jstype = JS_STRING]; - - /* - The hash to use within the payment's HTLC. When using REST, this field - must be encoded as base64. - */ - bytes payment_hash = 4; - - /* - The hex-encoded hash to use within the payment's HTLC. Deprecated now - that the REST gateway supports base64 encoding of bytes fields. - */ - string payment_hash_string = 5 [deprecated = true]; - - /* - A bare-bones invoice for a payment within the Lightning Network. With the - details of the invoice, the sender has all the data necessary to send a - payment to the recipient. - */ - string payment_request = 6; - - /* - The CLTV delta from the current height that should be used to set the - timelock for the final hop. - */ - int32 final_cltv_delta = 7; - - /* - The maximum number of satoshis that will be paid as a fee of the payment. - This value can be represented either as a percentage of the amount being - sent, or as a fixed amount of the maximum fee the user is willing the pay to - send the payment. If not specified, lnd will use a default value of 100% - fees for small amounts (<=1k sat) or 5% fees for larger amounts. - */ - FeeLimit fee_limit = 8; - - /* - The channel id of the channel that must be taken to the first hop. If zero, - any channel may be used. - */ - uint64 outgoing_chan_id = 9 [jstype = JS_STRING]; - - /* - The pubkey of the last hop of the route. If empty, any hop may be used. - */ - bytes last_hop_pubkey = 13; - - /* - An optional maximum total time lock for the route. This should not exceed - lnd's `--max-cltv-expiry` setting. If zero, then the value of - `--max-cltv-expiry` is enforced. - */ - uint32 cltv_limit = 10; - - /* - An optional field that can be used to pass an arbitrary set of TLV records - to a peer which understands the new records. This can be used to pass - application specific data during the payment attempt. Record types are - required to be in the custom range >= 65536. When using REST, the values - must be encoded as base64. - */ - map dest_custom_records = 11; - - // If set, circular payments to self are permitted. - bool allow_self_payment = 14; - - /* - Features assumed to be supported by the final node. All transitive feature - dependencies must also be set properly. For a given feature bit pair, either - optional or remote may be set, but not both. If this field is nil or empty, - the router will try to load destination features from the graph as a - fallback. - */ - repeated FeatureBit dest_features = 15; - - /* - The payment address of the generated invoice. This is also called - payment secret in specifications (e.g. BOLT 11). - */ - bytes payment_addr = 16; -} - -message SendResponse { - string payment_error = 1; - bytes payment_preimage = 2; - Route payment_route = 3; - bytes payment_hash = 4; -} - -message SendToRouteRequest { - /* - The payment hash to use for the HTLC. When using REST, this field must be - encoded as base64. - */ - bytes payment_hash = 1; - - /* - An optional hex-encoded payment hash to be used for the HTLC. Deprecated now - that the REST gateway supports base64 encoding of bytes fields. - */ - string payment_hash_string = 2 [deprecated = true]; - - reserved 3; - - // Route that should be used to attempt to complete the payment. - Route route = 4; -} - message ChannelAcceptRequest { // The pubkey of the node that wishes to open an inbound channel. bytes node_pubkey = 1; @@ -1159,6 +1059,9 @@ message EstimateFeeRequest { // The strategy to use for selecting coins during fees estimation. CoinSelectionStrategy coin_selection_strategy = 5; + + // A list of selected inputs for the transaction. + repeated OutPoint inputs = 6; } message EstimateFeeResponse { @@ -1171,6 +1074,9 @@ message EstimateFeeResponse { // The fee rate in satoshi/vbyte. uint64 sat_per_vbyte = 3 [jstype = JS_STRING]; + + // A list of selected inputs for the transaction the estimate is for. + repeated OutPoint inputs = 4; } message SendManyRequest { @@ -1399,6 +1305,11 @@ message HTLC { } enum CommitmentType { + // Allow multiple enum names to map to the same numeric value so the + // taproot channel types can expose short, canonical aliases without + // breaking on-wire compatibility with the historic names. + option allow_alias = true; + /* Returned when the commitment type isn't known or unavailable. */ @@ -1435,8 +1346,25 @@ enum CommitmentType { SCRIPT_ENFORCED_LEASE = 4; /* - A channel that uses musig2 for the funding output, and the new tapscript - features where relevant. + The production taproot channel type that uses musig2 for the funding + output and the new tapscript features, with final scripts and feature + bits 80/81. This is the recommended taproot variant; new integrations + should select this enum value. + */ + TAPROOT = 7; + + /* + Deprecated alias for TAPROOT, preserved so existing clients that select + the production taproot channel type by its historic name continue to + compile and serialize against the same wire value. + */ + SIMPLE_TAPROOT_FINAL = 7; + + /* + A legacy taproot channel type that uses musig2 for the funding output and + the new tapscript features, but with development scripts and the staging + feature bits. Retained for compatibility with peers that have not upgraded + to TAPROOT; new integrations should prefer TAPROOT. */ SIMPLE_TAPROOT = 5; @@ -1978,6 +1906,13 @@ message PeerEvent { message GetInfoRequest { } +enum GraphCacheStatus { + GRAPH_CACHE_STATUS_DISABLED = 0; + GRAPH_CACHE_STATUS_LOADING = 1; + GRAPH_CACHE_STATUS_LOADED = 2; + GRAPH_CACHE_STATUS_FAILED = 3; +} + message GetInfoResponse { // The version of the LND software that the node is running. string version = 14; @@ -2052,9 +1987,19 @@ message GetInfoResponse { // Indicates whether final htlc resolutions are stored on disk. bool store_final_htlc_resolutions = 22; + + // Whether the wallet is fully synced to the best chain. This indicates the + // wallet's internal sync state with the backing chain source. + bool wallet_synced = 23; + + // The current status of the in-memory graph cache. + GraphCacheStatus graph_cache_status = 24; } message GetDebugInfoRequest { + // If set to true, the log file content will be included in the response. + // By default, only the config information is returned. + bool include_log = 1; } message GetDebugInfoResponse { @@ -2890,6 +2835,24 @@ message PendingChannelsResponse { // The raw hex encoded bytes of the closing transaction. Included if // include_raw_tx in the request is true. string closing_tx_hex = 5; + + /* + Remaining number of confirmations until the channel closure is + considered final and removed from waiting close. Channel closes + require multiple confirmations for reorg protection — the exact + number scales with channel capacity. A closing transaction that + gets reorganized out of the chain resets this counter. When the + closing transaction is not yet confirmed, this value equals the + total number of confirmations required. + */ + uint32 blocks_til_close_confirmed = 6; + + /* + The block height at which the closing transaction was first confirmed. + This will be zero if the closing transaction has not yet confirmed, or + if this information is not available for older channels. + */ + uint32 close_height = 7; } message Commitments { @@ -2994,6 +2957,10 @@ message PendingChannelsResponse { message ChannelEventSubscription { } +message ChannelCommitUpdate { + Channel channel = 1; +} + message ChannelEventUpdate { oneof channel { Channel open_channel = 1; @@ -3003,6 +2970,7 @@ message ChannelEventUpdate { PendingUpdate pending_open_channel = 6; ChannelPoint fully_resolved_channel = 7; ChannelPoint channel_funding_timeout = 8; + ChannelCommitUpdate updated_channel = 9; } enum UpdateType { @@ -3013,6 +2981,7 @@ message ChannelEventUpdate { PENDING_OPEN_CHANNEL = 4; FULLY_RESOLVED_CHANNEL = 5; CHANNEL_FUNDING_TIMEOUT = 6; + CHANNEL_UPDATE = 7; } UpdateType type = 5; @@ -3186,11 +3155,7 @@ message QueryRoutesRequest { */ map dest_custom_records = 13; - /* - Deprecated, use outgoing_chan_ids. The channel id of the channel that must - be taken to the first hop. If zero, any channel may be used. - */ - uint64 outgoing_chan_id = 14 [jstype = JS_STRING, deprecated = true]; + reserved 14; /* The pubkey of the last hop of the route. If empty, any hop may be used. @@ -4461,6 +4426,10 @@ message ListPaymentsRequest { // If set, returns all payments with a creation date less than or equal to // it. Measured in seconds since the unix epoch. uint64 creation_date_end = 7 [jstype = JS_STRING]; + + // If set, omit hop-level route data for HTLC attempts to reduce query + // cost and response size. + bool omit_hops = 8; } message ListPaymentsResponse { From fac7c42ee79f97752063aa5f23847e929493c77b Mon Sep 17 00:00:00 2001 From: Calvin Zachman Date: Tue, 2 Jun 2026 16:41:27 -0400 Subject: [PATCH 3/3] docs: add release note for dependency bump --- docs/release-notes/release-notes-0.17.0.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/release-notes/release-notes-0.17.0.md b/docs/release-notes/release-notes-0.17.0.md index 3b034fed..45d48e4a 100644 --- a/docs/release-notes/release-notes-0.17.0.md +++ b/docs/release-notes/release-notes-0.17.0.md @@ -58,6 +58,9 @@ ### LND +* [Bump lnd to v0.21.0-beta and lndclient to + v0.21.0-1](https://github.com/lightninglabs/lightning-terminal/pull/1300). + ### Loop ### Pool @@ -78,8 +81,12 @@ ### Taproot Assets +* [Bump taproot-assets to v0.8.0 and taprpc to + v1.1.0](https://github.com/lightninglabs/lightning-terminal/pull/1300). + # Contributors (Alphabetical Order) * Boris Nagaev +* Calvin Zachman * Cyberguru1 * darioAnongba