Merge pull request #1300 from lightninglabs/bump-lnd-v0.21-tapd-v0.8

multi: bump lnd to v0.21, taproot-assets to v0.8
This commit is contained in:
Viktor Torstensson 2026-06-08 20:59:30 +02:00 committed by GitHub
commit c9192f3318
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 2275 additions and 2556 deletions

View file

@ -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:
########################

View file

@ -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.

View file

@ -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) | \

View file

@ -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{},

View file

@ -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 (

361
app/src/types/generated/lnd_pb.d.ts generated vendored
View file

@ -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<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
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<number, Uint8Array | string>;
clearCustomRecordsMap(): void;
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): OnionMessageUpdate.AsObject;
static toObject(includeInstance: boolean, msg: OnionMessageUpdate): OnionMessageUpdate.AsObject;
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
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<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
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<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
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<number, Uint8Array | string>;
clearDestCustomRecordsMap(): void;
getAllowSelfPayment(): boolean;
setAllowSelfPayment(value: boolean): void;
clearDestFeaturesList(): void;
getDestFeaturesList(): Array<FeatureBitMap[keyof FeatureBitMap]>;
setDestFeaturesList(value: Array<FeatureBitMap[keyof FeatureBitMap]>): 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<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
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<FeatureBitMap[keyof FeatureBitMap]>,
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<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
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<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
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<OutPoint>;
setInputsList(value: Array<OutPoint>): 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<OutPoint.AsObject>,
}
}
@ -884,6 +848,11 @@ export class EstimateFeeResponse extends jspb.Message {
getSatPerVbyte(): string;
setSatPerVbyte(value: string): void;
clearInputsList(): void;
getInputsList(): Array<OutPoint>;
setInputsList(value: Array<OutPoint>): 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<OutPoint.AsObject>,
}
}
@ -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<jspb.Message>};
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
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<number, Uint8Array | string>;
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<NodePair.AsObject>,
cltvLimit: number,
destCustomRecordsMap: Array<[number, Uint8Array | string]>,
outgoingChanId: string,
lastHopPubkey: Uint8Array | string,
routeHintsList: Array<RouteHint.AsObject>,
blindedPaymentPathsList: Array<BlindedPaymentPath.AsObject>,
@ -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;

File diff suppressed because it is too large Load diff

View file

@ -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<lnd_pb.SendRequest, lnd_pb.SendResponse>;
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<lnd_pb.SendToRouteRequest, lnd_pb.SendResponse>;
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<lnd_pb.CustomMessage>;
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<lnd_pb.OnionMessageUpdate>;
listAliases(
requestMessage: lnd_pb.ListAliasesRequest,
metadata: grpc.Metadata,

View file

@ -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];

View file

@ -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<LND.ChannelEventUpdate.AsObject> = {
fundingTxidStr: '',
outputIndex: outIndex,
},
updatedChannel: {
channel: lndChannel,
},
};
export const lndTransaction: LND.Transaction.AsObject = {

View file

@ -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

View file

@ -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.

View file

@ -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

66
go.mod
View file

@ -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

122
go.sum
View file

@ -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=

View file

@ -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,
)

View file

@ -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

View file

@ -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

View file

@ -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 \

View file

@ -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

View file

@ -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=

View file

@ -1,4 +1,4 @@
FROM golang:1.25.5-bookworm@sha256:d9132cce84391efab786495288756d60e1da215b1f94e87860aeefc3d4c45b6d
FROM golang:1.25.10-bookworm@sha256:154bd7001b6eb339e88c964442c0ad6ed5e53f09844cc818a41ce4ecb3ce3b43
MAINTAINER Olaoluwa Osuntokun <laolu@lightning.engineering>

View file

@ -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

View file

@ -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=

View file

@ -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<uint64, bytes> 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<uint64, bytes> 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<uint64, bytes> 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 {

View file

@ -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

View file

@ -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

View file

@ -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