From 650fd92259694647333dfae8e09f583b571bab5e Mon Sep 17 00:00:00 2001 From: Viktor Torstensson Date: Tue, 16 Jun 2026 00:13:57 +0200 Subject: [PATCH 1/7] app: patch Loop proto import for local proto build Rewrite Loop's lnd proto import during proto generation so make protos continues to work with this repo's local proto layout. This became necessary when Loop v0.32.0-beta started shipping the looprpc/client.proto change from upstream commit f47b6115571f6072fe68057cb4eff30cc4fc47df ("looprpc: extend client.proto with lnrpc.OutPoint and lnrpc.OpenChannelRequest"). That update made the downloaded Loop proto import lnrpc/lightning.proto, while LiT stores the downloaded lnd proto locally as proto/lnd.proto and invokes protoc with ../proto as the import root. As a result, the downloaded Loop proto overwrote the local compatibility fix and make protos failed with "lnrpc/lightning.proto: File not found". Patch the downloaded proto in build-protos.js to import lnd.proto instead, and keep proto/loop.proto aligned with the same import path. This is needed because changing only the checked-in proto file is not enough: the build script re-fetches and replaces it on every run. --- app/scripts/build-protos.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/scripts/build-protos.js b/app/scripts/build-protos.js index 412605b0..ebf1e0df 100644 --- a/app/scripts/build-protos.js +++ b/app/scripts/build-protos.js @@ -124,6 +124,10 @@ const sanitize = async () => { 'import "reservation.proto"', 'import "swapserverrpc/reservation.proto"', ); + content = content.replace( + 'import "lnrpc/lightning.proto"', + 'import "lnd.proto"', + ); await fs.writeFile(path, content); } }; From 5c34be31f44ad347e071d6b38db70d8972105efd Mon Sep 17 00:00:00 2001 From: Viktor Torstensson Date: Mon, 22 Jun 2026 12:07:42 +0200 Subject: [PATCH 2/7] terminal: bump `lnd`, `loop`, `looprpc` & `swapserverrpc` Bump `lnd` to version `v0.21.1-beta`, as well as `loop` to version `v0.33.3-beta`. Additionally, we bump `looprpc` & `swapserverrpc` to versions compatible with the new `loop` version. --- app/src/types/generated/loop_pb.d.ts | 126 ++- app/src/types/generated/loop_pb.js | 875 +++++++++++++----- app/src/types/generated/loop_pb_service.d.ts | 19 + app/src/types/generated/loop_pb_service.js | 40 + .../generated/swapserverrpc/server_pb.d.ts | 99 ++ .../generated/swapserverrpc/server_pb.js | 780 +++++++++++++++- go.mod | 10 +- go.sum | 20 +- proto/loop.proto | 119 ++- proto/swapserverrpc/server.proto | 38 + 10 files changed, 1801 insertions(+), 325 deletions(-) diff --git a/app/src/types/generated/loop_pb.d.ts b/app/src/types/generated/loop_pb.d.ts index 6ab8eac0..6286d4c7 100644 --- a/app/src/types/generated/loop_pb.d.ts +++ b/app/src/types/generated/loop_pb.d.ts @@ -3,6 +3,49 @@ import * as jspb from "google-protobuf"; import * as swapserverrpc_common_pb from "./swapserverrpc/common_pb"; +import * as lnd_pb from "./lnd_pb"; + +export class StaticOpenChannelRequest extends jspb.Message { + hasOpenChannelRequest(): boolean; + clearOpenChannelRequest(): void; + getOpenChannelRequest(): lnd_pb.OpenChannelRequest | undefined; + setOpenChannelRequest(value?: lnd_pb.OpenChannelRequest): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StaticOpenChannelRequest.AsObject; + static toObject(includeInstance: boolean, msg: StaticOpenChannelRequest): StaticOpenChannelRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StaticOpenChannelRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StaticOpenChannelRequest; + static deserializeBinaryFromReader(message: StaticOpenChannelRequest, reader: jspb.BinaryReader): StaticOpenChannelRequest; +} + +export namespace StaticOpenChannelRequest { + export type AsObject = { + openChannelRequest?: lnd_pb.OpenChannelRequest.AsObject, + } +} + +export class StaticOpenChannelResponse extends jspb.Message { + getChannelOpenOutpoint(): string; + setChannelOpenOutpoint(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StaticOpenChannelResponse.AsObject; + static toObject(includeInstance: boolean, msg: StaticOpenChannelResponse): StaticOpenChannelResponse.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: StaticOpenChannelResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StaticOpenChannelResponse; + static deserializeBinaryFromReader(message: StaticOpenChannelResponse, reader: jspb.BinaryReader): StaticOpenChannelResponse; +} + +export namespace StaticOpenChannelResponse { + export type AsObject = { + channelOpenOutpoint: string, + } +} export class StopDaemonRequest extends jspb.Message { serializeBinary(): Uint8Array; @@ -1247,6 +1290,9 @@ export class LiquidityParameters extends jspb.Message { setEasyAutoloopExcludedPeersList(value: Array): void; addEasyAutoloopExcludedPeers(value: Uint8Array | string, index?: number): Uint8Array | string; + getLoopInSource(): LoopInSourceMap[keyof LoopInSourceMap]; + setLoopInSource(value: LoopInSourceMap[keyof LoopInSourceMap]): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): LiquidityParameters.AsObject; static toObject(includeInstance: boolean, msg: LiquidityParameters): LiquidityParameters.AsObject; @@ -1286,6 +1332,7 @@ export namespace LiquidityParameters { easyAssetParamsMap: Array<[string, EasyAssetAutoloopParams.AsObject]>, fastSwapPublication: boolean, easyAutoloopExcludedPeersList: Array, + loopInSource: LoopInSourceMap[keyof LoopInSourceMap], } } @@ -1450,6 +1497,11 @@ export class SuggestSwapsResponse extends jspb.Message { setLoopInList(value: Array): void; addLoopIn(value?: LoopInRequest, index?: number): LoopInRequest; + clearStaticLoopInList(): void; + getStaticLoopInList(): Array; + setStaticLoopInList(value: Array): void; + addStaticLoopIn(value?: StaticAddressLoopInRequest, index?: number): StaticAddressLoopInRequest; + clearDisqualifiedList(): void; getDisqualifiedList(): Array; setDisqualifiedList(value: Array): void; @@ -1469,6 +1521,7 @@ export namespace SuggestSwapsResponse { export type AsObject = { loopOutList: Array, loopInList: Array, + staticLoopInList: Array, disqualifiedList: Array, } } @@ -1921,9 +1974,9 @@ export namespace Utxo { export class WithdrawDepositsRequest extends jspb.Message { clearOutpointsList(): void; - getOutpointsList(): Array; - setOutpointsList(value: Array): void; - addOutpoints(value?: OutPoint, index?: number): OutPoint; + getOutpointsList(): Array; + setOutpointsList(value: Array): void; + addOutpoints(value?: lnd_pb.OutPoint, index?: number): lnd_pb.OutPoint; getAll(): boolean; setAll(value: boolean): void; @@ -1949,7 +2002,7 @@ export class WithdrawDepositsRequest extends jspb.Message { export namespace WithdrawDepositsRequest { export type AsObject = { - outpointsList: Array, + outpointsList: Array, all: boolean, destAddr: string, satPerVbyte: string, @@ -1981,36 +2034,6 @@ export namespace WithdrawDepositsResponse { } } -export class OutPoint extends jspb.Message { - getTxidBytes(): Uint8Array | string; - getTxidBytes_asU8(): Uint8Array; - getTxidBytes_asB64(): string; - setTxidBytes(value: Uint8Array | string): void; - - getTxidStr(): string; - setTxidStr(value: string): void; - - getOutputIndex(): number; - setOutputIndex(value: number): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): OutPoint.AsObject; - static toObject(includeInstance: boolean, msg: OutPoint): OutPoint.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: OutPoint, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): OutPoint; - static deserializeBinaryFromReader(message: OutPoint, reader: jspb.BinaryReader): OutPoint; -} - -export namespace OutPoint { - export type AsObject = { - txidBytes: Uint8Array | string, - txidStr: string, - outputIndex: number, - } -} - export class ListStaticAddressDepositsRequest extends jspb.Message { getStateFilter(): DepositStateMap[keyof DepositStateMap]; setStateFilter(value: DepositStateMap[keyof DepositStateMap]): void; @@ -2179,6 +2202,9 @@ export class StaticAddressSummaryResponse extends jspb.Message { getValueHtlcTimeoutSweepsSatoshis(): string; setValueHtlcTimeoutSweepsSatoshis(value: string): void; + getValueChannelsOpened(): string; + setValueChannelsOpened(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): StaticAddressSummaryResponse.AsObject; static toObject(includeInstance: boolean, msg: StaticAddressSummaryResponse): StaticAddressSummaryResponse.AsObject; @@ -2200,6 +2226,7 @@ export namespace StaticAddressSummaryResponse { valueWithdrawnSatoshis: string, valueLoopedInSatoshis: string, valueHtlcTimeoutSweepsSatoshis: string, + valueChannelsOpened: string, } } @@ -2318,6 +2345,21 @@ export class StaticAddressLoopInSwap extends jspb.Message { setDepositsList(value: Array): void; addDeposits(value?: Deposit, index?: number): Deposit; + getInitiationTime(): string; + setInitiationTime(value: string): void; + + getLastUpdateTime(): string; + setLastUpdateTime(value: string): void; + + getCostServer(): string; + setCostServer(value: string): void; + + getCostOnchain(): string; + setCostOnchain(value: string): void; + + getCostOffchain(): string; + setCostOffchain(value: string): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): StaticAddressLoopInSwap.AsObject; static toObject(includeInstance: boolean, msg: StaticAddressLoopInSwap): StaticAddressLoopInSwap.AsObject; @@ -2336,6 +2378,11 @@ export namespace StaticAddressLoopInSwap { swapAmountSatoshis: string, paymentRequestAmountSatoshis: string, depositsList: Array, + initiationTime: string, + lastUpdateTime: string, + costServer: string, + costOnchain: string, + costOffchain: string, } } @@ -2661,6 +2708,13 @@ export interface FailureReasonMap { export const FailureReason: FailureReasonMap; +export interface LoopInSourceMap { + LOOP_IN_SOURCE_WALLET: 0; + LOOP_IN_SOURCE_STATIC_ADDRESS: 1; +} + +export const LoopInSource: LoopInSourceMap; + export interface LiquidityRuleTypeMap { UNKNOWN: 0; THRESHOLD: 1; @@ -2683,6 +2737,8 @@ export interface AutoReasonMap { AUTO_REASON_LIQUIDITY_OK: 11; AUTO_REASON_BUDGET_INSUFFICIENT: 12; AUTO_REASON_FEE_INSUFFICIENT: 13; + AUTO_REASON_STATIC_LOOP_IN_NO_CANDIDATE: 14; + AUTO_REASON_CUSTOM_CHANNEL_DATA: 15; } export const AutoReason: AutoReasonMap; @@ -2699,6 +2755,8 @@ export interface DepositStateMap { PUBLISH_EXPIRED: 8; WAIT_FOR_EXPIRY_SWEEP: 9; EXPIRED: 10; + OPENING_CHANNEL: 11; + CHANNEL_PUBLISHED: 12; } export const DepositState: DepositStateMap; diff --git a/app/src/types/generated/loop_pb.js b/app/src/types/generated/loop_pb.js index 6d8a2183..87b704a4 100644 --- a/app/src/types/generated/loop_pb.js +++ b/app/src/types/generated/loop_pb.js @@ -26,6 +26,8 @@ var global = var swapserverrpc_common_pb = require('./swapserverrpc/common_pb.js'); goog.object.extend(proto, swapserverrpc_common_pb); +var lnd_pb = require('./lnd_pb.js'); +goog.object.extend(proto, lnd_pb); goog.exportSymbol('proto.looprpc.AbandonSwapRequest', null, global); goog.exportSymbol('proto.looprpc.AbandonSwapResponse', null, global); goog.exportSymbol('proto.looprpc.AddressType', null, global); @@ -73,12 +75,12 @@ goog.exportSymbol('proto.looprpc.ListSwapsResponse', null, global); goog.exportSymbol('proto.looprpc.ListUnspentDepositsRequest', null, global); goog.exportSymbol('proto.looprpc.ListUnspentDepositsResponse', null, global); goog.exportSymbol('proto.looprpc.LoopInRequest', null, global); +goog.exportSymbol('proto.looprpc.LoopInSource', null, global); goog.exportSymbol('proto.looprpc.LoopOutRequest', null, global); goog.exportSymbol('proto.looprpc.LoopStats', null, global); goog.exportSymbol('proto.looprpc.MonitorRequest', null, global); goog.exportSymbol('proto.looprpc.NewStaticAddressRequest', null, global); goog.exportSymbol('proto.looprpc.NewStaticAddressResponse', null, global); -goog.exportSymbol('proto.looprpc.OutPoint', null, global); goog.exportSymbol('proto.looprpc.OutQuoteResponse', null, global); goog.exportSymbol('proto.looprpc.OutTermsResponse', null, global); goog.exportSymbol('proto.looprpc.ProbeRequest', null, global); @@ -96,6 +98,8 @@ goog.exportSymbol('proto.looprpc.StaticAddressLoopInSwapState', null, global); goog.exportSymbol('proto.looprpc.StaticAddressSummaryRequest', null, global); goog.exportSymbol('proto.looprpc.StaticAddressSummaryResponse', null, global); goog.exportSymbol('proto.looprpc.StaticAddressWithdrawal', null, global); +goog.exportSymbol('proto.looprpc.StaticOpenChannelRequest', null, global); +goog.exportSymbol('proto.looprpc.StaticOpenChannelResponse', null, global); goog.exportSymbol('proto.looprpc.StopDaemonRequest', null, global); goog.exportSymbol('proto.looprpc.StopDaemonResponse', null, global); goog.exportSymbol('proto.looprpc.SuggestSwapsRequest', null, global); @@ -114,6 +118,48 @@ goog.exportSymbol('proto.looprpc.TokensResponse', null, global); goog.exportSymbol('proto.looprpc.Utxo', null, global); goog.exportSymbol('proto.looprpc.WithdrawDepositsRequest', null, global); goog.exportSymbol('proto.looprpc.WithdrawDepositsResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.looprpc.StaticOpenChannelRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.looprpc.StaticOpenChannelRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.looprpc.StaticOpenChannelRequest.displayName = 'proto.looprpc.StaticOpenChannelRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.looprpc.StaticOpenChannelResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.looprpc.StaticOpenChannelResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.looprpc.StaticOpenChannelResponse.displayName = 'proto.looprpc.StaticOpenChannelResponse'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -1374,27 +1420,6 @@ if (goog.DEBUG && !COMPILED) { */ proto.looprpc.WithdrawDepositsResponse.displayName = 'proto.looprpc.WithdrawDepositsResponse'; } -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.looprpc.OutPoint = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.looprpc.OutPoint, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.looprpc.OutPoint.displayName = 'proto.looprpc.OutPoint'; -} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -1755,6 +1780,287 @@ if (goog.DEBUG && !COMPILED) { +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.looprpc.StaticOpenChannelRequest.prototype.toObject = function(opt_includeInstance) { + return proto.looprpc.StaticOpenChannelRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.looprpc.StaticOpenChannelRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.StaticOpenChannelRequest.toObject = function(includeInstance, msg) { + var f, obj = { + openChannelRequest: (f = msg.getOpenChannelRequest()) && lnd_pb.OpenChannelRequest.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.looprpc.StaticOpenChannelRequest} + */ +proto.looprpc.StaticOpenChannelRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.looprpc.StaticOpenChannelRequest; + return proto.looprpc.StaticOpenChannelRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.looprpc.StaticOpenChannelRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.looprpc.StaticOpenChannelRequest} + */ +proto.looprpc.StaticOpenChannelRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new lnd_pb.OpenChannelRequest; + reader.readMessage(value,lnd_pb.OpenChannelRequest.deserializeBinaryFromReader); + msg.setOpenChannelRequest(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.looprpc.StaticOpenChannelRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.looprpc.StaticOpenChannelRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.looprpc.StaticOpenChannelRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.StaticOpenChannelRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getOpenChannelRequest(); + if (f != null) { + writer.writeMessage( + 1, + f, + lnd_pb.OpenChannelRequest.serializeBinaryToWriter + ); + } +}; + + +/** + * optional lnrpc.OpenChannelRequest open_channel_request = 1; + * @return {?proto.lnrpc.OpenChannelRequest} + */ +proto.looprpc.StaticOpenChannelRequest.prototype.getOpenChannelRequest = function() { + return /** @type{?proto.lnrpc.OpenChannelRequest} */ ( + jspb.Message.getWrapperField(this, lnd_pb.OpenChannelRequest, 1)); +}; + + +/** + * @param {?proto.lnrpc.OpenChannelRequest|undefined} value + * @return {!proto.looprpc.StaticOpenChannelRequest} returns this +*/ +proto.looprpc.StaticOpenChannelRequest.prototype.setOpenChannelRequest = function(value) { + return jspb.Message.setWrapperField(this, 1, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.looprpc.StaticOpenChannelRequest} returns this + */ +proto.looprpc.StaticOpenChannelRequest.prototype.clearOpenChannelRequest = function() { + return this.setOpenChannelRequest(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.looprpc.StaticOpenChannelRequest.prototype.hasOpenChannelRequest = function() { + return jspb.Message.getField(this, 1) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.looprpc.StaticOpenChannelResponse.prototype.toObject = function(opt_includeInstance) { + return proto.looprpc.StaticOpenChannelResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.looprpc.StaticOpenChannelResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.StaticOpenChannelResponse.toObject = function(includeInstance, msg) { + var f, obj = { + channelOpenOutpoint: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.looprpc.StaticOpenChannelResponse} + */ +proto.looprpc.StaticOpenChannelResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.looprpc.StaticOpenChannelResponse; + return proto.looprpc.StaticOpenChannelResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.looprpc.StaticOpenChannelResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.looprpc.StaticOpenChannelResponse} + */ +proto.looprpc.StaticOpenChannelResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setChannelOpenOutpoint(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.looprpc.StaticOpenChannelResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.looprpc.StaticOpenChannelResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.looprpc.StaticOpenChannelResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.StaticOpenChannelResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getChannelOpenOutpoint(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string channel_open_outpoint = 1; + * @return {string} + */ +proto.looprpc.StaticOpenChannelResponse.prototype.getChannelOpenOutpoint = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.StaticOpenChannelResponse} returns this + */ +proto.looprpc.StaticOpenChannelResponse.prototype.setChannelOpenOutpoint = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -10079,7 +10385,8 @@ proto.looprpc.LiquidityParameters.toObject = function(includeInstance, msg) { accountAddrType: jspb.Message.getFieldWithDefault(msg, 24, 0), easyAssetParamsMap: (f = msg.getEasyAssetParamsMap()) ? f.toObject(includeInstance, proto.looprpc.EasyAssetAutoloopParams.toObject) : [], fastSwapPublication: jspb.Message.getBooleanFieldWithDefault(msg, 26, false), - easyAutoloopExcludedPeersList: msg.getEasyAutoloopExcludedPeersList_asB64() + easyAutoloopExcludedPeersList: msg.getEasyAutoloopExcludedPeersList_asB64(), + loopInSource: jspb.Message.getFieldWithDefault(msg, 28, 0) }; if (includeInstance) { @@ -10227,6 +10534,10 @@ proto.looprpc.LiquidityParameters.deserializeBinaryFromReader = function(msg, re var value = /** @type {!Uint8Array} */ (reader.readBytes()); msg.addEasyAutoloopExcludedPeers(value); break; + case 28: + var value = /** @type {!proto.looprpc.LoopInSource} */ (reader.readEnum()); + msg.setLoopInSource(value); + break; default: reader.skipField(); break; @@ -10443,6 +10754,13 @@ proto.looprpc.LiquidityParameters.serializeBinaryToWriter = function(message, wr f ); } + f = message.getLoopInSource(); + if (f !== 0.0) { + writer.writeEnum( + 28, + f + ); + } }; @@ -11000,6 +11318,24 @@ proto.looprpc.LiquidityParameters.prototype.clearEasyAutoloopExcludedPeersList = }; +/** + * optional LoopInSource loop_in_source = 28; + * @return {!proto.looprpc.LoopInSource} + */ +proto.looprpc.LiquidityParameters.prototype.getLoopInSource = function() { + return /** @type {!proto.looprpc.LoopInSource} */ (jspb.Message.getFieldWithDefault(this, 28, 0)); +}; + + +/** + * @param {!proto.looprpc.LoopInSource} value + * @return {!proto.looprpc.LiquidityParameters} returns this + */ +proto.looprpc.LiquidityParameters.prototype.setLoopInSource = function(value) { + return jspb.Message.setProto3EnumField(this, 28, value); +}; + + @@ -12037,7 +12373,7 @@ proto.looprpc.Disqualified.prototype.setReason = function(value) { * @private {!Array} * @const */ -proto.looprpc.SuggestSwapsResponse.repeatedFields_ = [1,3,2]; +proto.looprpc.SuggestSwapsResponse.repeatedFields_ = [1,3,4,2]; @@ -12074,6 +12410,8 @@ proto.looprpc.SuggestSwapsResponse.toObject = function(includeInstance, msg) { proto.looprpc.LoopOutRequest.toObject, includeInstance), loopInList: jspb.Message.toObjectList(msg.getLoopInList(), proto.looprpc.LoopInRequest.toObject, includeInstance), + staticLoopInList: jspb.Message.toObjectList(msg.getStaticLoopInList(), + proto.looprpc.StaticAddressLoopInRequest.toObject, includeInstance), disqualifiedList: jspb.Message.toObjectList(msg.getDisqualifiedList(), proto.looprpc.Disqualified.toObject, includeInstance) }; @@ -12122,6 +12460,11 @@ proto.looprpc.SuggestSwapsResponse.deserializeBinaryFromReader = function(msg, r reader.readMessage(value,proto.looprpc.LoopInRequest.deserializeBinaryFromReader); msg.addLoopIn(value); break; + case 4: + var value = new proto.looprpc.StaticAddressLoopInRequest; + reader.readMessage(value,proto.looprpc.StaticAddressLoopInRequest.deserializeBinaryFromReader); + msg.addStaticLoopIn(value); + break; case 2: var value = new proto.looprpc.Disqualified; reader.readMessage(value,proto.looprpc.Disqualified.deserializeBinaryFromReader); @@ -12172,6 +12515,14 @@ proto.looprpc.SuggestSwapsResponse.serializeBinaryToWriter = function(message, w proto.looprpc.LoopInRequest.serializeBinaryToWriter ); } + f = message.getStaticLoopInList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.looprpc.StaticAddressLoopInRequest.serializeBinaryToWriter + ); + } f = message.getDisqualifiedList(); if (f.length > 0) { writer.writeRepeatedMessage( @@ -12259,6 +12610,44 @@ proto.looprpc.SuggestSwapsResponse.prototype.clearLoopInList = function() { }; +/** + * repeated StaticAddressLoopInRequest static_loop_in = 4; + * @return {!Array} + */ +proto.looprpc.SuggestSwapsResponse.prototype.getStaticLoopInList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.looprpc.StaticAddressLoopInRequest, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.looprpc.SuggestSwapsResponse} returns this +*/ +proto.looprpc.SuggestSwapsResponse.prototype.setStaticLoopInList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.looprpc.StaticAddressLoopInRequest=} opt_value + * @param {number=} opt_index + * @return {!proto.looprpc.StaticAddressLoopInRequest} + */ +proto.looprpc.SuggestSwapsResponse.prototype.addStaticLoopIn = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.looprpc.StaticAddressLoopInRequest, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.looprpc.SuggestSwapsResponse} returns this + */ +proto.looprpc.SuggestSwapsResponse.prototype.clearStaticLoopInList = function() { + return this.setStaticLoopInList([]); +}; + + /** * repeated Disqualified disqualified = 2; * @return {!Array} @@ -15501,7 +15890,7 @@ proto.looprpc.WithdrawDepositsRequest.prototype.toObject = function(opt_includeI proto.looprpc.WithdrawDepositsRequest.toObject = function(includeInstance, msg) { var f, obj = { outpointsList: jspb.Message.toObjectList(msg.getOutpointsList(), - proto.looprpc.OutPoint.toObject, includeInstance), + lnd_pb.OutPoint.toObject, includeInstance), all: jspb.Message.getBooleanFieldWithDefault(msg, 2, false), destAddr: jspb.Message.getFieldWithDefault(msg, 3, ""), satPerVbyte: jspb.Message.getFieldWithDefault(msg, 4, "0"), @@ -15543,8 +15932,8 @@ proto.looprpc.WithdrawDepositsRequest.deserializeBinaryFromReader = function(msg var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.looprpc.OutPoint; - reader.readMessage(value,proto.looprpc.OutPoint.deserializeBinaryFromReader); + var value = new lnd_pb.OutPoint; + reader.readMessage(value,lnd_pb.OutPoint.deserializeBinaryFromReader); msg.addOutpoints(value); break; case 2: @@ -15597,7 +15986,7 @@ proto.looprpc.WithdrawDepositsRequest.serializeBinaryToWriter = function(message writer.writeRepeatedMessage( 1, f, - proto.looprpc.OutPoint.serializeBinaryToWriter + lnd_pb.OutPoint.serializeBinaryToWriter ); } f = message.getAll(); @@ -15632,17 +16021,17 @@ proto.looprpc.WithdrawDepositsRequest.serializeBinaryToWriter = function(message /** - * repeated OutPoint outpoints = 1; - * @return {!Array} + * repeated lnrpc.OutPoint outpoints = 1; + * @return {!Array} */ proto.looprpc.WithdrawDepositsRequest.prototype.getOutpointsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.looprpc.OutPoint, 1)); + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, lnd_pb.OutPoint, 1)); }; /** - * @param {!Array} value + * @param {!Array} value * @return {!proto.looprpc.WithdrawDepositsRequest} returns this */ proto.looprpc.WithdrawDepositsRequest.prototype.setOutpointsList = function(value) { @@ -15651,12 +16040,12 @@ proto.looprpc.WithdrawDepositsRequest.prototype.setOutpointsList = function(valu /** - * @param {!proto.looprpc.OutPoint=} opt_value + * @param {!proto.lnrpc.OutPoint=} opt_value * @param {number=} opt_index - * @return {!proto.looprpc.OutPoint} + * @return {!proto.lnrpc.OutPoint} */ proto.looprpc.WithdrawDepositsRequest.prototype.addOutpoints = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.looprpc.OutPoint, opt_index); + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.lnrpc.OutPoint, opt_index); }; @@ -15902,220 +16291,6 @@ proto.looprpc.WithdrawDepositsResponse.prototype.setAddress = function(value) { - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.looprpc.OutPoint.prototype.toObject = function(opt_includeInstance) { - return proto.looprpc.OutPoint.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.looprpc.OutPoint} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.looprpc.OutPoint.toObject = function(includeInstance, msg) { - var f, obj = { - txidBytes: msg.getTxidBytes_asB64(), - txidStr: jspb.Message.getFieldWithDefault(msg, 2, ""), - outputIndex: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.looprpc.OutPoint} - */ -proto.looprpc.OutPoint.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.looprpc.OutPoint; - return proto.looprpc.OutPoint.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.looprpc.OutPoint} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.looprpc.OutPoint} - */ -proto.looprpc.OutPoint.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setTxidBytes(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setTxidStr(value); - break; - case 3: - var value = /** @type {number} */ (reader.readUint32()); - msg.setOutputIndex(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.looprpc.OutPoint.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.looprpc.OutPoint.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.looprpc.OutPoint} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.looprpc.OutPoint.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTxidBytes_asU8(); - if (f.length > 0) { - writer.writeBytes( - 1, - f - ); - } - f = message.getTxidStr(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getOutputIndex(); - if (f !== 0) { - writer.writeUint32( - 3, - f - ); - } -}; - - -/** - * optional bytes txid_bytes = 1; - * @return {!(string|Uint8Array)} - */ -proto.looprpc.OutPoint.prototype.getTxidBytes = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * optional bytes txid_bytes = 1; - * This is a type-conversion wrapper around `getTxidBytes()` - * @return {string} - */ -proto.looprpc.OutPoint.prototype.getTxidBytes_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getTxidBytes())); -}; - - -/** - * optional bytes txid_bytes = 1; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getTxidBytes()` - * @return {!Uint8Array} - */ -proto.looprpc.OutPoint.prototype.getTxidBytes_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getTxidBytes())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.looprpc.OutPoint} returns this - */ -proto.looprpc.OutPoint.prototype.setTxidBytes = function(value) { - return jspb.Message.setProto3BytesField(this, 1, value); -}; - - -/** - * optional string txid_str = 2; - * @return {string} - */ -proto.looprpc.OutPoint.prototype.getTxidStr = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.looprpc.OutPoint} returns this - */ -proto.looprpc.OutPoint.prototype.setTxidStr = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional uint32 output_index = 3; - * @return {number} - */ -proto.looprpc.OutPoint.prototype.getOutputIndex = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.looprpc.OutPoint} returns this - */ -proto.looprpc.OutPoint.prototype.setOutputIndex = function(value) { - return jspb.Message.setProto3IntField(this, 3, value); -}; - - - /** * List of repeated fields within this message type. * @private {!Array} @@ -17124,7 +17299,8 @@ proto.looprpc.StaticAddressSummaryResponse.toObject = function(includeInstance, valueExpiredSatoshis: jspb.Message.getFieldWithDefault(msg, 6, "0"), valueWithdrawnSatoshis: jspb.Message.getFieldWithDefault(msg, 7, "0"), valueLoopedInSatoshis: jspb.Message.getFieldWithDefault(msg, 8, "0"), - valueHtlcTimeoutSweepsSatoshis: jspb.Message.getFieldWithDefault(msg, 9, "0") + valueHtlcTimeoutSweepsSatoshis: jspb.Message.getFieldWithDefault(msg, 9, "0"), + valueChannelsOpened: jspb.Message.getFieldWithDefault(msg, 10, "0") }; if (includeInstance) { @@ -17197,6 +17373,10 @@ proto.looprpc.StaticAddressSummaryResponse.deserializeBinaryFromReader = functio var value = /** @type {string} */ (reader.readInt64String()); msg.setValueHtlcTimeoutSweepsSatoshis(value); break; + case 10: + var value = /** @type {string} */ (reader.readInt64String()); + msg.setValueChannelsOpened(value); + break; default: reader.skipField(); break; @@ -17289,6 +17469,13 @@ proto.looprpc.StaticAddressSummaryResponse.serializeBinaryToWriter = function(me f ); } + f = message.getValueChannelsOpened(); + if (parseInt(f, 10) !== 0) { + writer.writeInt64String( + 10, + f + ); + } }; @@ -17454,6 +17641,24 @@ proto.looprpc.StaticAddressSummaryResponse.prototype.setValueHtlcTimeoutSweepsSa }; +/** + * optional int64 value_channels_opened = 10; + * @return {string} + */ +proto.looprpc.StaticAddressSummaryResponse.prototype.getValueChannelsOpened = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.StaticAddressSummaryResponse} returns this + */ +proto.looprpc.StaticAddressSummaryResponse.prototype.setValueChannelsOpened = function(value) { + return jspb.Message.setProto3StringIntField(this, 10, value); +}; + + @@ -18167,7 +18372,12 @@ proto.looprpc.StaticAddressLoopInSwap.toObject = function(includeInstance, msg) swapAmountSatoshis: jspb.Message.getFieldWithDefault(msg, 4, "0"), paymentRequestAmountSatoshis: jspb.Message.getFieldWithDefault(msg, 5, "0"), depositsList: jspb.Message.toObjectList(msg.getDepositsList(), - proto.looprpc.Deposit.toObject, includeInstance) + proto.looprpc.Deposit.toObject, includeInstance), + initiationTime: jspb.Message.getFieldWithDefault(msg, 7, "0"), + lastUpdateTime: jspb.Message.getFieldWithDefault(msg, 8, "0"), + costServer: jspb.Message.getFieldWithDefault(msg, 9, "0"), + costOnchain: jspb.Message.getFieldWithDefault(msg, 10, "0"), + costOffchain: jspb.Message.getFieldWithDefault(msg, 11, "0") }; if (includeInstance) { @@ -18229,6 +18439,26 @@ proto.looprpc.StaticAddressLoopInSwap.deserializeBinaryFromReader = function(msg reader.readMessage(value,proto.looprpc.Deposit.deserializeBinaryFromReader); msg.addDeposits(value); break; + case 7: + var value = /** @type {string} */ (reader.readInt64String()); + msg.setInitiationTime(value); + break; + case 8: + var value = /** @type {string} */ (reader.readInt64String()); + msg.setLastUpdateTime(value); + break; + case 9: + var value = /** @type {string} */ (reader.readInt64String()); + msg.setCostServer(value); + break; + case 10: + var value = /** @type {string} */ (reader.readInt64String()); + msg.setCostOnchain(value); + break; + case 11: + var value = /** @type {string} */ (reader.readInt64String()); + msg.setCostOffchain(value); + break; default: reader.skipField(); break; @@ -18301,6 +18531,41 @@ proto.looprpc.StaticAddressLoopInSwap.serializeBinaryToWriter = function(message proto.looprpc.Deposit.serializeBinaryToWriter ); } + f = message.getInitiationTime(); + if (parseInt(f, 10) !== 0) { + writer.writeInt64String( + 7, + f + ); + } + f = message.getLastUpdateTime(); + if (parseInt(f, 10) !== 0) { + writer.writeInt64String( + 8, + f + ); + } + f = message.getCostServer(); + if (parseInt(f, 10) !== 0) { + writer.writeInt64String( + 9, + f + ); + } + f = message.getCostOnchain(); + if (parseInt(f, 10) !== 0) { + writer.writeInt64String( + 10, + f + ); + } + f = message.getCostOffchain(); + if (parseInt(f, 10) !== 0) { + writer.writeInt64String( + 11, + f + ); + } }; @@ -18475,6 +18740,96 @@ proto.looprpc.StaticAddressLoopInSwap.prototype.clearDepositsList = function() { }; +/** + * optional int64 initiation_time = 7; + * @return {string} + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.getInitiationTime = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.StaticAddressLoopInSwap} returns this + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.setInitiationTime = function(value) { + return jspb.Message.setProto3StringIntField(this, 7, value); +}; + + +/** + * optional int64 last_update_time = 8; + * @return {string} + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.getLastUpdateTime = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.StaticAddressLoopInSwap} returns this + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.setLastUpdateTime = function(value) { + return jspb.Message.setProto3StringIntField(this, 8, value); +}; + + +/** + * optional int64 cost_server = 9; + * @return {string} + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.getCostServer = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.StaticAddressLoopInSwap} returns this + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.setCostServer = function(value) { + return jspb.Message.setProto3StringIntField(this, 9, value); +}; + + +/** + * optional int64 cost_onchain = 10; + * @return {string} + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.getCostOnchain = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.StaticAddressLoopInSwap} returns this + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.setCostOnchain = function(value) { + return jspb.Message.setProto3StringIntField(this, 10, value); +}; + + +/** + * optional int64 cost_offchain = 11; + * @return {string} + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.getCostOffchain = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, "0")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.StaticAddressLoopInSwap} returns this + */ +proto.looprpc.StaticAddressLoopInSwap.prototype.setCostOffchain = function(value) { + return jspb.Message.setProto3StringIntField(this, 11, value); +}; + + /** * List of repeated fields within this message type. @@ -20614,6 +20969,14 @@ proto.looprpc.FailureReason = { FAILURE_REASON_INCORRECT_HTLC_AMT_SWEPT: 9 }; +/** + * @enum {number} + */ +proto.looprpc.LoopInSource = { + LOOP_IN_SOURCE_WALLET: 0, + LOOP_IN_SOURCE_STATIC_ADDRESS: 1 +}; + /** * @enum {number} */ @@ -20639,7 +21002,9 @@ proto.looprpc.AutoReason = { AUTO_REASON_LOOP_IN: 10, AUTO_REASON_LIQUIDITY_OK: 11, AUTO_REASON_BUDGET_INSUFFICIENT: 12, - AUTO_REASON_FEE_INSUFFICIENT: 13 + AUTO_REASON_FEE_INSUFFICIENT: 13, + AUTO_REASON_STATIC_LOOP_IN_NO_CANDIDATE: 14, + AUTO_REASON_CUSTOM_CHANNEL_DATA: 15 }; /** @@ -20656,7 +21021,9 @@ proto.looprpc.DepositState = { HTLC_TIMEOUT_SWEPT: 7, PUBLISH_EXPIRED: 8, WAIT_FOR_EXPIRY_SWEEP: 9, - EXPIRED: 10 + EXPIRED: 10, + OPENING_CHANNEL: 11, + CHANNEL_PUBLISHED: 12 }; /** diff --git a/app/src/types/generated/loop_pb_service.d.ts b/app/src/types/generated/loop_pb_service.d.ts index fc3ea084..ee7a1c41 100644 --- a/app/src/types/generated/loop_pb_service.d.ts +++ b/app/src/types/generated/loop_pb_service.d.ts @@ -292,6 +292,15 @@ type SwapClientStaticAddressLoopIn = { readonly responseType: typeof loop_pb.StaticAddressLoopInResponse; }; +type SwapClientStaticOpenChannel = { + readonly methodName: string; + readonly service: typeof SwapClient; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof loop_pb.StaticOpenChannelRequest; + readonly responseType: typeof loop_pb.StaticOpenChannelResponse; +}; + export class SwapClient { static readonly serviceName: string; static readonly LoopOut: SwapClientLoopOut; @@ -326,6 +335,7 @@ export class SwapClient { static readonly ListStaticAddressSwaps: SwapClientListStaticAddressSwaps; static readonly GetStaticAddressSummary: SwapClientGetStaticAddressSummary; static readonly StaticAddressLoopIn: SwapClientStaticAddressLoopIn; + static readonly StaticOpenChannel: SwapClientStaticOpenChannel; } export type ServiceError = { message: string, code: number; metadata: grpc.Metadata } @@ -640,5 +650,14 @@ export class SwapClientClient { requestMessage: loop_pb.StaticAddressLoopInRequest, callback: (error: ServiceError|null, responseMessage: loop_pb.StaticAddressLoopInResponse|null) => void ): UnaryResponse; + staticOpenChannel( + requestMessage: loop_pb.StaticOpenChannelRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: loop_pb.StaticOpenChannelResponse|null) => void + ): UnaryResponse; + staticOpenChannel( + requestMessage: loop_pb.StaticOpenChannelRequest, + callback: (error: ServiceError|null, responseMessage: loop_pb.StaticOpenChannelResponse|null) => void + ): UnaryResponse; } diff --git a/app/src/types/generated/loop_pb_service.js b/app/src/types/generated/loop_pb_service.js index 0dd94516..7d285764 100644 --- a/app/src/types/generated/loop_pb_service.js +++ b/app/src/types/generated/loop_pb_service.js @@ -298,6 +298,15 @@ SwapClient.StaticAddressLoopIn = { responseType: loop_pb.StaticAddressLoopInResponse }; +SwapClient.StaticOpenChannel = { + methodName: "StaticOpenChannel", + service: SwapClient, + requestStream: false, + responseStream: false, + requestType: loop_pb.StaticOpenChannelRequest, + responseType: loop_pb.StaticOpenChannelResponse +}; + exports.SwapClient = SwapClient; function SwapClientClient(serviceHost, options) { @@ -1305,5 +1314,36 @@ SwapClientClient.prototype.staticAddressLoopIn = function staticAddressLoopIn(re }; }; +SwapClientClient.prototype.staticOpenChannel = function staticOpenChannel(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(SwapClient.StaticOpenChannel, { + 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(); + } + }; +}; + exports.SwapClientClient = SwapClientClient; diff --git a/app/src/types/generated/swapserverrpc/server_pb.d.ts b/app/src/types/generated/swapserverrpc/server_pb.d.ts index 63bff333..84bcbd8e 100644 --- a/app/src/types/generated/swapserverrpc/server_pb.d.ts +++ b/app/src/types/generated/swapserverrpc/server_pb.d.ts @@ -1098,6 +1098,21 @@ export class SubscribeNotificationsResponse extends jspb.Message { getUnfinishedSwap(): ServerUnfinishedSwapNotification | undefined; setUnfinishedSwap(value?: ServerUnfinishedSwapNotification): void; + hasStaticLoopInRiskAccepted(): boolean; + clearStaticLoopInRiskAccepted(): void; + getStaticLoopInRiskAccepted(): ServerStaticLoopInRiskAcceptedNotification | undefined; + setStaticLoopInRiskAccepted(value?: ServerStaticLoopInRiskAcceptedNotification): void; + + hasStaticLoopInRiskRejected(): boolean; + clearStaticLoopInRiskRejected(): void; + getStaticLoopInRiskRejected(): ServerStaticLoopInRiskRejectedNotification | undefined; + setStaticLoopInRiskRejected(value?: ServerStaticLoopInRiskRejectedNotification): void; + + hasHtlcConfirmed(): boolean; + clearHtlcConfirmed(): void; + getHtlcConfirmed(): ServerHtlcConfirmedNotification | undefined; + setHtlcConfirmed(value?: ServerHtlcConfirmedNotification): void; + getNotificationCase(): SubscribeNotificationsResponse.NotificationCase; serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): SubscribeNotificationsResponse.AsObject; @@ -1114,6 +1129,9 @@ export namespace SubscribeNotificationsResponse { reservationNotification?: swapserverrpc_reservation_pb.ServerReservationNotification.AsObject, staticLoopInSweep?: ServerStaticLoopInSweepNotification.AsObject, unfinishedSwap?: ServerUnfinishedSwapNotification.AsObject, + staticLoopInRiskAccepted?: ServerStaticLoopInRiskAcceptedNotification.AsObject, + staticLoopInRiskRejected?: ServerStaticLoopInRiskRejectedNotification.AsObject, + htlcConfirmed?: ServerHtlcConfirmedNotification.AsObject, } export enum NotificationCase { @@ -1121,6 +1139,9 @@ export namespace SubscribeNotificationsResponse { RESERVATION_NOTIFICATION = 1, STATIC_LOOP_IN_SWEEP = 2, UNFINISHED_SWAP = 3, + STATIC_LOOP_IN_RISK_ACCEPTED = 4, + STATIC_LOOP_IN_RISK_REJECTED = 5, + HTLC_CONFIRMED = 6, } } @@ -1161,6 +1182,50 @@ export namespace ServerStaticLoopInSweepNotification { } } +export class ServerStaticLoopInRiskAcceptedNotification extends jspb.Message { + getSwapHash(): Uint8Array | string; + getSwapHash_asU8(): Uint8Array; + getSwapHash_asB64(): string; + setSwapHash(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ServerStaticLoopInRiskAcceptedNotification.AsObject; + static toObject(includeInstance: boolean, msg: ServerStaticLoopInRiskAcceptedNotification): ServerStaticLoopInRiskAcceptedNotification.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ServerStaticLoopInRiskAcceptedNotification, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ServerStaticLoopInRiskAcceptedNotification; + static deserializeBinaryFromReader(message: ServerStaticLoopInRiskAcceptedNotification, reader: jspb.BinaryReader): ServerStaticLoopInRiskAcceptedNotification; +} + +export namespace ServerStaticLoopInRiskAcceptedNotification { + export type AsObject = { + swapHash: Uint8Array | string, + } +} + +export class ServerStaticLoopInRiskRejectedNotification extends jspb.Message { + getSwapHash(): Uint8Array | string; + getSwapHash_asU8(): Uint8Array; + getSwapHash_asB64(): string; + setSwapHash(value: Uint8Array | string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ServerStaticLoopInRiskRejectedNotification.AsObject; + static toObject(includeInstance: boolean, msg: ServerStaticLoopInRiskRejectedNotification): ServerStaticLoopInRiskRejectedNotification.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ServerStaticLoopInRiskRejectedNotification, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ServerStaticLoopInRiskRejectedNotification; + static deserializeBinaryFromReader(message: ServerStaticLoopInRiskRejectedNotification, reader: jspb.BinaryReader): ServerStaticLoopInRiskRejectedNotification; +} + +export namespace ServerStaticLoopInRiskRejectedNotification { + export type AsObject = { + swapHash: Uint8Array | string, + } +} + export class ServerUnfinishedSwapNotification extends jspb.Message { getSwapHash(): Uint8Array | string; getSwapHash_asU8(): Uint8Array; @@ -1187,6 +1252,40 @@ export namespace ServerUnfinishedSwapNotification { } } +export class ServerHtlcConfirmedNotification extends jspb.Message { + getSwapHash(): Uint8Array | string; + getSwapHash_asU8(): Uint8Array; + getSwapHash_asB64(): string; + setSwapHash(value: Uint8Array | string): void; + + getHtlcOutpoint(): string; + setHtlcOutpoint(value: string): void; + + getHtlcAddress(): string; + setHtlcAddress(value: string): void; + + getSatPerVbyte(): number; + setSatPerVbyte(value: number): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ServerHtlcConfirmedNotification.AsObject; + static toObject(includeInstance: boolean, msg: ServerHtlcConfirmedNotification): ServerHtlcConfirmedNotification.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: ServerHtlcConfirmedNotification, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ServerHtlcConfirmedNotification; + static deserializeBinaryFromReader(message: ServerHtlcConfirmedNotification, reader: jspb.BinaryReader): ServerHtlcConfirmedNotification; +} + +export namespace ServerHtlcConfirmedNotification { + export type AsObject = { + swapHash: Uint8Array | string, + htlcOutpoint: string, + htlcAddress: string, + satPerVbyte: number, + } +} + export interface ProtocolVersionMap { LEGACY: 0; MULTI_LOOP_OUT: 1; diff --git a/app/src/types/generated/swapserverrpc/server_pb.js b/app/src/types/generated/swapserverrpc/server_pb.js index f984720a..8b765a31 100644 --- a/app/src/types/generated/swapserverrpc/server_pb.js +++ b/app/src/types/generated/swapserverrpc/server_pb.js @@ -46,6 +46,7 @@ goog.exportSymbol('proto.looprpc.ReportRoutingResultRes', null, global); goog.exportSymbol('proto.looprpc.RouteCancel', null, global); goog.exportSymbol('proto.looprpc.RoutePaymentType', null, global); goog.exportSymbol('proto.looprpc.RoutingPlugin', null, global); +goog.exportSymbol('proto.looprpc.ServerHtlcConfirmedNotification', null, global); goog.exportSymbol('proto.looprpc.ServerLoopInQuoteRequest', null, global); goog.exportSymbol('proto.looprpc.ServerLoopInQuoteResponse', null, global); goog.exportSymbol('proto.looprpc.ServerLoopInRequest', null, global); @@ -64,6 +65,8 @@ goog.exportSymbol('proto.looprpc.ServerProbeRequest', null, global); goog.exportSymbol('proto.looprpc.ServerProbeResponse', null, global); goog.exportSymbol('proto.looprpc.ServerPushKeyReq', null, global); goog.exportSymbol('proto.looprpc.ServerPushKeyRes', null, global); +goog.exportSymbol('proto.looprpc.ServerStaticLoopInRiskAcceptedNotification', null, global); +goog.exportSymbol('proto.looprpc.ServerStaticLoopInRiskRejectedNotification', null, global); goog.exportSymbol('proto.looprpc.ServerStaticLoopInSweepNotification', null, global); goog.exportSymbol('proto.looprpc.ServerSwapState', null, global); goog.exportSymbol('proto.looprpc.ServerUnfinishedSwapNotification', null, global); @@ -851,6 +854,48 @@ if (goog.DEBUG && !COMPILED) { */ proto.looprpc.ServerStaticLoopInSweepNotification.displayName = 'proto.looprpc.ServerStaticLoopInSweepNotification'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.looprpc.ServerStaticLoopInRiskAcceptedNotification, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.displayName = 'proto.looprpc.ServerStaticLoopInRiskAcceptedNotification'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.looprpc.ServerStaticLoopInRiskRejectedNotification, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.looprpc.ServerStaticLoopInRiskRejectedNotification.displayName = 'proto.looprpc.ServerStaticLoopInRiskRejectedNotification'; +} /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -872,6 +917,27 @@ if (goog.DEBUG && !COMPILED) { */ proto.looprpc.ServerUnfinishedSwapNotification.displayName = 'proto.looprpc.ServerUnfinishedSwapNotification'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.looprpc.ServerHtlcConfirmedNotification = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.looprpc.ServerHtlcConfirmedNotification, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.looprpc.ServerHtlcConfirmedNotification.displayName = 'proto.looprpc.ServerHtlcConfirmedNotification'; +} @@ -8546,7 +8612,7 @@ proto.looprpc.SubscribeNotificationsRequest.prototype.setVersion = function(valu * @private {!Array>} * @const */ -proto.looprpc.SubscribeNotificationsResponse.oneofGroups_ = [[1,2,3]]; +proto.looprpc.SubscribeNotificationsResponse.oneofGroups_ = [[1,2,3,4,5,6]]; /** * @enum {number} @@ -8555,7 +8621,10 @@ proto.looprpc.SubscribeNotificationsResponse.NotificationCase = { NOTIFICATION_NOT_SET: 0, RESERVATION_NOTIFICATION: 1, STATIC_LOOP_IN_SWEEP: 2, - UNFINISHED_SWAP: 3 + UNFINISHED_SWAP: 3, + STATIC_LOOP_IN_RISK_ACCEPTED: 4, + STATIC_LOOP_IN_RISK_REJECTED: 5, + HTLC_CONFIRMED: 6 }; /** @@ -8598,7 +8667,10 @@ proto.looprpc.SubscribeNotificationsResponse.toObject = function(includeInstance var f, obj = { reservationNotification: (f = msg.getReservationNotification()) && swapserverrpc_reservation_pb.ServerReservationNotification.toObject(includeInstance, f), staticLoopInSweep: (f = msg.getStaticLoopInSweep()) && proto.looprpc.ServerStaticLoopInSweepNotification.toObject(includeInstance, f), - unfinishedSwap: (f = msg.getUnfinishedSwap()) && proto.looprpc.ServerUnfinishedSwapNotification.toObject(includeInstance, f) + unfinishedSwap: (f = msg.getUnfinishedSwap()) && proto.looprpc.ServerUnfinishedSwapNotification.toObject(includeInstance, f), + staticLoopInRiskAccepted: (f = msg.getStaticLoopInRiskAccepted()) && proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.toObject(includeInstance, f), + staticLoopInRiskRejected: (f = msg.getStaticLoopInRiskRejected()) && proto.looprpc.ServerStaticLoopInRiskRejectedNotification.toObject(includeInstance, f), + htlcConfirmed: (f = msg.getHtlcConfirmed()) && proto.looprpc.ServerHtlcConfirmedNotification.toObject(includeInstance, f) }; if (includeInstance) { @@ -8650,6 +8722,21 @@ proto.looprpc.SubscribeNotificationsResponse.deserializeBinaryFromReader = funct reader.readMessage(value,proto.looprpc.ServerUnfinishedSwapNotification.deserializeBinaryFromReader); msg.setUnfinishedSwap(value); break; + case 4: + var value = new proto.looprpc.ServerStaticLoopInRiskAcceptedNotification; + reader.readMessage(value,proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.deserializeBinaryFromReader); + msg.setStaticLoopInRiskAccepted(value); + break; + case 5: + var value = new proto.looprpc.ServerStaticLoopInRiskRejectedNotification; + reader.readMessage(value,proto.looprpc.ServerStaticLoopInRiskRejectedNotification.deserializeBinaryFromReader); + msg.setStaticLoopInRiskRejected(value); + break; + case 6: + var value = new proto.looprpc.ServerHtlcConfirmedNotification; + reader.readMessage(value,proto.looprpc.ServerHtlcConfirmedNotification.deserializeBinaryFromReader); + msg.setHtlcConfirmed(value); + break; default: reader.skipField(); break; @@ -8703,6 +8790,30 @@ proto.looprpc.SubscribeNotificationsResponse.serializeBinaryToWriter = function( proto.looprpc.ServerUnfinishedSwapNotification.serializeBinaryToWriter ); } + f = message.getStaticLoopInRiskAccepted(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.serializeBinaryToWriter + ); + } + f = message.getStaticLoopInRiskRejected(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.looprpc.ServerStaticLoopInRiskRejectedNotification.serializeBinaryToWriter + ); + } + f = message.getHtlcConfirmed(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.looprpc.ServerHtlcConfirmedNotification.serializeBinaryToWriter + ); + } }; @@ -8817,6 +8928,117 @@ proto.looprpc.SubscribeNotificationsResponse.prototype.hasUnfinishedSwap = funct }; +/** + * optional ServerStaticLoopInRiskAcceptedNotification static_loop_in_risk_accepted = 4; + * @return {?proto.looprpc.ServerStaticLoopInRiskAcceptedNotification} + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.getStaticLoopInRiskAccepted = function() { + return /** @type{?proto.looprpc.ServerStaticLoopInRiskAcceptedNotification} */ ( + jspb.Message.getWrapperField(this, proto.looprpc.ServerStaticLoopInRiskAcceptedNotification, 4)); +}; + + +/** + * @param {?proto.looprpc.ServerStaticLoopInRiskAcceptedNotification|undefined} value + * @return {!proto.looprpc.SubscribeNotificationsResponse} returns this +*/ +proto.looprpc.SubscribeNotificationsResponse.prototype.setStaticLoopInRiskAccepted = function(value) { + return jspb.Message.setOneofWrapperField(this, 4, proto.looprpc.SubscribeNotificationsResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.looprpc.SubscribeNotificationsResponse} returns this + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.clearStaticLoopInRiskAccepted = function() { + return this.setStaticLoopInRiskAccepted(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.hasStaticLoopInRiskAccepted = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional ServerStaticLoopInRiskRejectedNotification static_loop_in_risk_rejected = 5; + * @return {?proto.looprpc.ServerStaticLoopInRiskRejectedNotification} + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.getStaticLoopInRiskRejected = function() { + return /** @type{?proto.looprpc.ServerStaticLoopInRiskRejectedNotification} */ ( + jspb.Message.getWrapperField(this, proto.looprpc.ServerStaticLoopInRiskRejectedNotification, 5)); +}; + + +/** + * @param {?proto.looprpc.ServerStaticLoopInRiskRejectedNotification|undefined} value + * @return {!proto.looprpc.SubscribeNotificationsResponse} returns this +*/ +proto.looprpc.SubscribeNotificationsResponse.prototype.setStaticLoopInRiskRejected = function(value) { + return jspb.Message.setOneofWrapperField(this, 5, proto.looprpc.SubscribeNotificationsResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.looprpc.SubscribeNotificationsResponse} returns this + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.clearStaticLoopInRiskRejected = function() { + return this.setStaticLoopInRiskRejected(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.hasStaticLoopInRiskRejected = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional ServerHtlcConfirmedNotification htlc_confirmed = 6; + * @return {?proto.looprpc.ServerHtlcConfirmedNotification} + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.getHtlcConfirmed = function() { + return /** @type{?proto.looprpc.ServerHtlcConfirmedNotification} */ ( + jspb.Message.getWrapperField(this, proto.looprpc.ServerHtlcConfirmedNotification, 6)); +}; + + +/** + * @param {?proto.looprpc.ServerHtlcConfirmedNotification|undefined} value + * @return {!proto.looprpc.SubscribeNotificationsResponse} returns this +*/ +proto.looprpc.SubscribeNotificationsResponse.prototype.setHtlcConfirmed = function(value) { + return jspb.Message.setOneofWrapperField(this, 6, proto.looprpc.SubscribeNotificationsResponse.oneofGroups_[0], value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.looprpc.SubscribeNotificationsResponse} returns this + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.clearHtlcConfirmed = function() { + return this.setHtlcConfirmed(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.looprpc.SubscribeNotificationsResponse.prototype.hasHtlcConfirmed = function() { + return jspb.Message.getField(this, 6) != null; +}; + + /** * List of repeated fields within this message type. @@ -9122,6 +9344,314 @@ proto.looprpc.ServerStaticLoopInSweepNotification.prototype.clearPrevoutInfoList +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.prototype.toObject = function(opt_includeInstance) { + return proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.looprpc.ServerStaticLoopInRiskAcceptedNotification} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.toObject = function(includeInstance, msg) { + var f, obj = { + swapHash: msg.getSwapHash_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.looprpc.ServerStaticLoopInRiskAcceptedNotification} + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.looprpc.ServerStaticLoopInRiskAcceptedNotification; + return proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.looprpc.ServerStaticLoopInRiskAcceptedNotification} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.looprpc.ServerStaticLoopInRiskAcceptedNotification} + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setSwapHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.looprpc.ServerStaticLoopInRiskAcceptedNotification} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getSwapHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } +}; + + +/** + * optional bytes swap_hash = 1; + * @return {!(string|Uint8Array)} + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.prototype.getSwapHash = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes swap_hash = 1; + * This is a type-conversion wrapper around `getSwapHash()` + * @return {string} + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.prototype.getSwapHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getSwapHash())); +}; + + +/** + * optional bytes swap_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getSwapHash()` + * @return {!Uint8Array} + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.prototype.getSwapHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getSwapHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.looprpc.ServerStaticLoopInRiskAcceptedNotification} returns this + */ +proto.looprpc.ServerStaticLoopInRiskAcceptedNotification.prototype.setSwapHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.prototype.toObject = function(opt_includeInstance) { + return proto.looprpc.ServerStaticLoopInRiskRejectedNotification.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.looprpc.ServerStaticLoopInRiskRejectedNotification} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.toObject = function(includeInstance, msg) { + var f, obj = { + swapHash: msg.getSwapHash_asB64() + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.looprpc.ServerStaticLoopInRiskRejectedNotification} + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.looprpc.ServerStaticLoopInRiskRejectedNotification; + return proto.looprpc.ServerStaticLoopInRiskRejectedNotification.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.looprpc.ServerStaticLoopInRiskRejectedNotification} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.looprpc.ServerStaticLoopInRiskRejectedNotification} + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setSwapHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.looprpc.ServerStaticLoopInRiskRejectedNotification.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.looprpc.ServerStaticLoopInRiskRejectedNotification} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getSwapHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } +}; + + +/** + * optional bytes swap_hash = 1; + * @return {!(string|Uint8Array)} + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.prototype.getSwapHash = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes swap_hash = 1; + * This is a type-conversion wrapper around `getSwapHash()` + * @return {string} + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.prototype.getSwapHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getSwapHash())); +}; + + +/** + * optional bytes swap_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getSwapHash()` + * @return {!Uint8Array} + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.prototype.getSwapHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getSwapHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.looprpc.ServerStaticLoopInRiskRejectedNotification} returns this + */ +proto.looprpc.ServerStaticLoopInRiskRejectedNotification.prototype.setSwapHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + + + + if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto. @@ -9303,6 +9833,250 @@ proto.looprpc.ServerUnfinishedSwapNotification.prototype.setIsLoopIn = function( }; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.toObject = function(opt_includeInstance) { + return proto.looprpc.ServerHtlcConfirmedNotification.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.looprpc.ServerHtlcConfirmedNotification} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.ServerHtlcConfirmedNotification.toObject = function(includeInstance, msg) { + var f, obj = { + swapHash: msg.getSwapHash_asB64(), + htlcOutpoint: jspb.Message.getFieldWithDefault(msg, 2, ""), + htlcAddress: jspb.Message.getFieldWithDefault(msg, 3, ""), + satPerVbyte: jspb.Message.getFieldWithDefault(msg, 4, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.looprpc.ServerHtlcConfirmedNotification} + */ +proto.looprpc.ServerHtlcConfirmedNotification.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.looprpc.ServerHtlcConfirmedNotification; + return proto.looprpc.ServerHtlcConfirmedNotification.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.looprpc.ServerHtlcConfirmedNotification} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.looprpc.ServerHtlcConfirmedNotification} + */ +proto.looprpc.ServerHtlcConfirmedNotification.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setSwapHash(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setHtlcOutpoint(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setHtlcAddress(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setSatPerVbyte(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.looprpc.ServerHtlcConfirmedNotification.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.looprpc.ServerHtlcConfirmedNotification} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.looprpc.ServerHtlcConfirmedNotification.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getSwapHash_asU8(); + if (f.length > 0) { + writer.writeBytes( + 1, + f + ); + } + f = message.getHtlcOutpoint(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getHtlcAddress(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getSatPerVbyte(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } +}; + + +/** + * optional bytes swap_hash = 1; + * @return {!(string|Uint8Array)} + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.getSwapHash = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * optional bytes swap_hash = 1; + * This is a type-conversion wrapper around `getSwapHash()` + * @return {string} + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.getSwapHash_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getSwapHash())); +}; + + +/** + * optional bytes swap_hash = 1; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getSwapHash()` + * @return {!Uint8Array} + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.getSwapHash_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getSwapHash())); +}; + + +/** + * @param {!(string|Uint8Array)} value + * @return {!proto.looprpc.ServerHtlcConfirmedNotification} returns this + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.setSwapHash = function(value) { + return jspb.Message.setProto3BytesField(this, 1, value); +}; + + +/** + * optional string htlc_outpoint = 2; + * @return {string} + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.getHtlcOutpoint = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.ServerHtlcConfirmedNotification} returns this + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.setHtlcOutpoint = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string htlc_address = 3; + * @return {string} + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.getHtlcAddress = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.looprpc.ServerHtlcConfirmedNotification} returns this + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.setHtlcAddress = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional uint32 sat_per_vbyte = 4; + * @return {number} + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.getSatPerVbyte = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.looprpc.ServerHtlcConfirmedNotification} returns this + */ +proto.looprpc.ServerHtlcConfirmedNotification.prototype.setSatPerVbyte = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + /** * @enum {number} */ diff --git a/go.mod b/go.mod index 86e10259..64cf2abe 100644 --- a/go.mod +++ b/go.mod @@ -24,15 +24,15 @@ require ( 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/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/loop v0.33.3-beta + github.com/lightninglabs/loop/looprpc v1.0.14 + github.com/lightninglabs/loop/swapserverrpc v1.0.21 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.8.0 github.com/lightninglabs/taproot-assets/taprpc v1.1.0 - github.com/lightningnetwork/lnd v0.21.0-beta + github.com/lightningnetwork/lnd v0.21.1-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 @@ -40,7 +40,7 @@ require ( github.com/lightningnetwork/lnd/kvdb v1.4.16 github.com/lightningnetwork/lnd/sqldb/v2 v2.0.0-20260326184657-f7cc56305bae github.com/lightningnetwork/lnd/tlv v1.3.2 - github.com/lightningnetwork/lnd/tor v1.1.6 + github.com/lightningnetwork/lnd/tor v1.1.7 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f github.com/mwitkow/grpc-proxy v0.0.0-20230212185441-f345521cb9c9 github.com/ory/dockertest/v3 v3.10.0 diff --git a/go.sum b/go.sum index 085cf27c..fb14de9b 100644 --- a/go.sum +++ b/go.sum @@ -1144,12 +1144,12 @@ github.com/lightninglabs/lightning-node-connect/mailbox v1.0.2-0.20250610182311- github.com/lightninglabs/lightning-node-connect/mailbox v1.0.2-0.20250610182311-2f1d46ef18b7/go.mod h1:cQA5pybYbERkMlE8j49LITZZozQZIXABbWJLIpMWnus= 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= -github.com/lightninglabs/loop/looprpc v1.0.13/go.mod h1:+m2HQ5gfMpoq449gyTsub/e3dKrOzAR6iWY11NV610M= -github.com/lightninglabs/loop/swapserverrpc v1.0.20 h1:/svfGdnwXE0++IvcNc50zjnpLPcJcvf+i2zPDhrAITo= -github.com/lightninglabs/loop/swapserverrpc v1.0.20/go.mod h1:nIgLTTEZ/fdWi9UVjNZ8XkkDMZI9wcEEVkEl9Wltyb4= +github.com/lightninglabs/loop v0.33.3-beta h1:L8wYQZIrz9Xpsre0eSGEfO0ahthr7sVjLzDBxaedx7w= +github.com/lightninglabs/loop v0.33.3-beta/go.mod h1:nQIASE+Y6X5x7I0RY9hH/Q748+Oi90OdqibpwYAnAKE= +github.com/lightninglabs/loop/looprpc v1.0.14 h1:9gaAVGplNZMyalLV8qxILXDD9F8QSgdtOgrtOFw60V4= +github.com/lightninglabs/loop/looprpc v1.0.14/go.mod h1:vUYOyRjWWKSnCrFyugiXuS90eC/FajYoTY3OE18cRNo= +github.com/lightninglabs/loop/swapserverrpc v1.0.21 h1:MI8LhS7jtjqI6b7AcE/kHO9WKGVxiWCMmt302dBsM6A= +github.com/lightninglabs/loop/swapserverrpc v1.0.21/go.mod h1:c0rJiM9TiZ7gr/snaALWixTf3UU1GNWZ9sYASTTHSZk= 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.17.1 h1:lNhgq7ix/N81R6oATroP/kHMzH1qzVVF2dEGcTlN2t4= @@ -1170,8 +1170,8 @@ github.com/lightninglabs/taproot-assets/taprpc v1.1.0 h1:Oum7ddGygrEaT+NHqpaQI8U 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 v0.21.1-beta h1:XYr8CRY3EB5bQ8I43/6QbOZP1dRi/XI6dwzTHlS2jxQ= +github.com/lightningnetwork/lnd v0.21.1-beta/go.mod h1:iqqf8Cyq0F7ssUftb17+Y644OWVg2OMOpvWSyzympXs= 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= @@ -1196,8 +1196,8 @@ github.com/lightningnetwork/lnd/ticker v1.1.1 h1:J/b6N2hibFtC7JLV77ULQp++QLtCwT6 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= github.com/lightningnetwork/lnd/tlv v1.3.2/go.mod h1:pJuiBj1ecr1WWLOtcZ+2+hu9Ey25aJWFIsjmAoPPnmc= -github.com/lightningnetwork/lnd/tor v1.1.6 h1:WHUumk7WgU6BUFsqHuqszI9P6nfhMeIG+rjJBlVE6OE= -github.com/lightningnetwork/lnd/tor v1.1.6/go.mod h1:qSRB8llhAK+a6kaTPWOLLXSZc6Hg8ZC0mq1sUQ/8JfI= +github.com/lightningnetwork/lnd/tor v1.1.7 h1:BfY1KQGz3LVaeaAGI4XYGYCwDQR1ADFD1P/uXsS2dQc= +github.com/lightningnetwork/lnd/tor v1.1.7/go.mod h1:DANQ6QCQBiR+CqrM+mKudgkMy6CR/RS4ALDbjb2W4FU= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 h1:sjOGyegMIhvgfq5oaue6Td+hxZuf3tDC8lAPrFldqFw= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796/go.mod h1:3p7ZTf9V1sNPI5H8P3NkTFF4LuwMdPl2DodF60qAKqY= github.com/ltcsuite/ltcutil v0.0.0-20181217130922-17f3b04680b6/go.mod h1:8Vg/LTOO0KYa/vlHWJ6XZAevPQThGH5sufO0Hrou/lA= diff --git a/proto/loop.proto b/proto/loop.proto index e2528610..f2c1192f 100644 --- a/proto/loop.proto +++ b/proto/loop.proto @@ -1,6 +1,7 @@ syntax = "proto3"; import "swapserverrpc/common.proto"; +import "lnd.proto"; package looprpc; @@ -206,13 +207,34 @@ service SwapClient { rpc GetStaticAddressSummary (StaticAddressSummaryRequest) returns (StaticAddressSummaryResponse); - /* loop:`static` + /* loop:`static in` StaticAddressLoopIn initiates a static address loop-in swap. */ rpc StaticAddressLoopIn (StaticAddressLoopInRequest) returns (StaticAddressLoopInResponse); + + /* loop:`static openchannel` + StaticOpenChannel opens a channel funded by selected static address + deposits. + */ + rpc StaticOpenChannel (StaticOpenChannelRequest) + returns (StaticOpenChannelResponse); } +message StaticOpenChannelRequest { + // Wrap lnd's request so Loop can extend this RPC with Loop-specific fields + // without diverging from the upstream API surface. + lnrpc.OpenChannelRequest open_channel_request = 1; +} + +message StaticOpenChannelResponse { + /* + The outpoint of the channel opening transaction in the format + "txid:output_index". + */ + string channel_open_outpoint = 1; +}; + message StopDaemonRequest { } @@ -1170,6 +1192,18 @@ message GetInfoResponse { message GetLiquidityParamsRequest { } +enum LoopInSource { + /* + Use the legacy wallet-funded loop-in flow. + */ + LOOP_IN_SOURCE_WALLET = 0; + + /* + Use deposited static-address funds for loop-in autoloops. + */ + LOOP_IN_SOURCE_STATIC_ADDRESS = 1; +} + message LiquidityParameters { /* A set of liquidity rules that describe the desired liquidity balance. @@ -1348,6 +1382,11 @@ message LiquidityParameters { considered for easy autoloop swaps. */ repeated bytes easy_autoloop_excluded_peers = 27; + + /* + Selects which source autoloop uses for loop-in rules. + */ + LoopInSource loop_in_source = 28; } message EasyAssetAutoloopParams { @@ -1504,6 +1543,18 @@ enum AutoReason { the portion of total swap amount that we allow fees to consume. */ AUTO_REASON_FEE_INSUFFICIENT = 13; + + /* + No static loop-in candidate indicates that static loop-in autoloop was + selected, but no full-deposit static candidate fit the rule. + */ + AUTO_REASON_STATIC_LOOP_IN_NO_CANDIDATE = 14; + + /* + Custom channel data indicates that the target channel carries custom + channel data and is excluded from the standard autoloop planner. + */ + AUTO_REASON_CUSTOM_CHANNEL_DATA = 15; } message Disqualified { @@ -1534,6 +1585,11 @@ message SuggestSwapsResponse { */ repeated LoopInRequest loop_in = 3; + /* + The set of recommended static-address loop in swaps. + */ + repeated StaticAddressLoopInRequest static_loop_in = 4; + /* Disqualified contains the set of channels that swaps are not recommended for. @@ -1771,7 +1827,7 @@ message WithdrawDepositsRequest { /* The outpoints of the deposits to withdraw. */ - repeated OutPoint outpoints = 1; + repeated lnrpc.OutPoint outpoints = 1; /* If set to true, all deposits will be withdrawn. @@ -1810,23 +1866,6 @@ message WithdrawDepositsResponse { string address = 2; } -message OutPoint { - /* - Raw bytes representing the transaction id. - */ - bytes txid_bytes = 1; - - /* - Reversed, hex-encoded string representing the transaction id. - */ - string txid_str = 2; - - /* - The index of the output on the transaction. - */ - uint32 output_index = 3; -} - message ListStaticAddressDepositsRequest { /* Filters the list of all stored deposits by deposit state. @@ -1914,6 +1953,11 @@ message StaticAddressSummaryResponse { The total value of all htlc timeout sweeps that the client swept. */ int64 value_htlc_timeout_sweeps_satoshis = 9 [jstype = JS_STRING]; + + /* + The total value of all deposits that have been used for channel openings. + */ + int64 value_channels_opened = 10 [jstype = JS_STRING]; } enum DepositState { @@ -1982,6 +2026,18 @@ enum DepositState { has been sufficiently confirmed. */ EXPIRED = 10; + + /* + OPENING_CHANNEL indicates that the channel open in which the deposit was + used is in progress. + */ + OPENING_CHANNEL = 11; + + /* + CHANNEL_PUBLISHED indicates that the channel open was finalized and + published and that it should be managed from lnd from now on. + */ + CHANNEL_PUBLISHED = 12; } message Deposit { @@ -2087,6 +2143,31 @@ message StaticAddressLoopInSwap { The deposits that were used for this swap. */ repeated Deposit deposits = 6; + + /* + Initiation time of the swap. + */ + int64 initiation_time = 7 [jstype = JS_STRING]; + + /* + Last update time of the swap. + */ + int64 last_update_time = 8 [jstype = JS_STRING]; + + /* + Swap server cost. + */ + int64 cost_server = 9 [jstype = JS_STRING]; + + /* + On-chain transaction cost. + */ + int64 cost_onchain = 10 [jstype = JS_STRING]; + + /* + Off-chain routing fees. + */ + int64 cost_offchain = 11 [jstype = JS_STRING]; } enum StaticAddressLoopInSwapState { diff --git a/proto/swapserverrpc/server.proto b/proto/swapserverrpc/server.proto index e72f0668..25c4a109 100644 --- a/proto/swapserverrpc/server.proto +++ b/proto/swapserverrpc/server.proto @@ -679,6 +679,11 @@ message SubscribeNotificationsResponse { ServerReservationNotification reservation_notification = 1; ServerStaticLoopInSweepNotification static_loop_in_sweep = 2; ServerUnfinishedSwapNotification unfinished_swap = 3; + ServerStaticLoopInRiskAcceptedNotification + static_loop_in_risk_accepted = 4; + ServerStaticLoopInRiskRejectedNotification + static_loop_in_risk_rejected = 5; + ServerHtlcConfirmedNotification htlc_confirmed = 6; } } @@ -699,6 +704,22 @@ message ServerStaticLoopInSweepNotification { repeated PrevoutInfo prevout_info = 4; } +// ServerStaticLoopInRiskAcceptedNotification tells the client that the server +// has accepted confirmation risk for a static loop-in and will start attempting +// the off-chain swap payment. +message ServerStaticLoopInRiskAcceptedNotification { + // The swap hash the accepted risk belongs to. + bytes swap_hash = 1; +} + +// ServerStaticLoopInRiskRejectedNotification tells the client that the server +// will not continue waiting for confirmation risk acceptance for a static +// loop-in. +message ServerStaticLoopInRiskRejectedNotification { + // The swap hash the rejected risk wait belongs to. + bytes swap_hash = 1; +} + // ServerUnfinishedSwapNotification notifies the client about an unfinished // swap that needs attention. This is useful in client data loss scenarios to // help the client recover the swap. @@ -709,3 +730,20 @@ message ServerUnfinishedSwapNotification { // Whether the swap is a loop in or loop out. bool is_loop_in = 2; } + +// ServerHtlcConfirmedNotification is a notification from the server to the +// client that the on-chain HTLC for a loop out swap has been confirmed. +message ServerHtlcConfirmedNotification { + // The swap hash of the loop out swap. + bytes swap_hash = 1; + + // htlc_outpoint is the outpoint of the confirmed HTLC in the format + // "txid:output_index". + string htlc_outpoint = 2; + + // htlc_address is the address of the confirmed HTLC output. + string htlc_address = 3; + + // sat_per_vbyte is the requested recovery sweep fee rate. + uint32 sat_per_vbyte = 4; +} From 5032e33d35aea813eff2b31cf6833113586e58b9 Mon Sep 17 00:00:00 2001 From: Viktor Torstensson Date: Tue, 16 Jun 2026 00:38:40 +0200 Subject: [PATCH 3/7] litrpc: bump `lnd` and `looprpc` Bump `lnd` to `v0.21.1-beta`. We also bump `looprpc` to the version compatible with `loop` `v0.33.3-beta`. --- litrpc/go.mod | 12 ++++++------ litrpc/go.sum | 34 ++++++++++++---------------------- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/litrpc/go.mod b/litrpc/go.mod index 0dfef792..01ac7be1 100644 --- a/litrpc/go.mod +++ b/litrpc/go.mod @@ -5,10 +5,10 @@ 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/loop/looprpc v1.0.14 github.com/lightninglabs/pool/poolrpc v1.0.1 github.com/lightninglabs/taproot-assets/taprpc v1.1.0 - github.com/lightningnetwork/lnd v0.21.0-beta + github.com/lightningnetwork/lnd v0.21.1-beta google.golang.org/grpc v1.79.3 google.golang.org/protobuf v1.36.11 ) @@ -107,7 +107,7 @@ require ( 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 + github.com/lightningnetwork/lnd/tor v1.1.7 // indirect github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect @@ -152,15 +152,15 @@ require ( go.etcd.io/etcd/raft/v3 v3.5.12 // indirect go.etcd.io/etcd/server/v3 v3.5.12 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect go.opentelemetry.io/otel v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 // indirect go.opentelemetry.io/otel/metric v1.43.0 // indirect go.opentelemetry.io/otel/sdk v1.43.0 // indirect go.opentelemetry.io/otel/trace v1.43.0 // indirect - go.opentelemetry.io/proto/otlp v1.0.0 // indirect + go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.23.0 // indirect diff --git a/litrpc/go.sum b/litrpc/go.sum index 21ced1af..79336bbf 100644 --- a/litrpc/go.sum +++ b/litrpc/go.sum @@ -36,7 +36,6 @@ cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRY cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= -cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= @@ -173,13 +172,10 @@ cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63 cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= -cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= -cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= @@ -721,8 +717,6 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5 h1:6xNmx7iTtyBRev0+D/Tv1FZd4SCg8axKApyNyRsAt/w= -github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5/go.mod h1:KdCmV+x/BuvyMxRnYBlmVaq4OLiKW6iRQfvC62cvdkI= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/datadriven v1.0.2 h1:H9MtNqVoVhvd9nCBwOyDjUEdZCREqbIdCJD93PBm/jA= @@ -787,8 +781,6 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= -github.com/envoyproxy/protoc-gen-validate v1.3.0 h1:TvGH1wof4H33rezVKWSpqKz5NXWg5VPuZ0uONDT6eb4= -github.com/envoyproxy/protoc-gen-validate v1.3.0/go.mod h1:HvYl7zwPa5mffgyeTUHA9zHIH36nmrm7oCbo4YKoSWA= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fergusstrange/embedded-postgres v1.25.0 h1:sa+k2Ycrtz40eCRPOzI7Ry7TtkWXXJ+YRsxpKMDhxK0= @@ -1098,8 +1090,8 @@ github.com/lightninglabs/faraday/frdrpc v1.0.1 h1:3YlP9UwT0bmT468oAdn4dxwsaJBI4Q github.com/lightninglabs/faraday/frdrpc v1.0.1/go.mod h1:ot1R/RGzk61d3qCrZPL36jI5ziGmKbvvE7UQKsJKuvk= github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf h1:HZKvJUHlcXI/f/O0Avg7t8sqkPo78HFzjmeYFl6DPnc= github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf/go.mod h1:vxmQPeIQxPf6Jf9rM8R+B4rKBqLA2AjttNxkFBL2Plk= -github.com/lightninglabs/loop/looprpc v1.0.13 h1:bOWDp+XnG28wP9Q8ZXvhhVuAQ7yYhuvPIfJk68GVLWk= -github.com/lightninglabs/loop/looprpc v1.0.13/go.mod h1:+m2HQ5gfMpoq449gyTsub/e3dKrOzAR6iWY11NV610M= +github.com/lightninglabs/loop/looprpc v1.0.14 h1:9gaAVGplNZMyalLV8qxILXDD9F8QSgdtOgrtOFw60V4= +github.com/lightninglabs/loop/looprpc v1.0.14/go.mod h1:vUYOyRjWWKSnCrFyugiXuS90eC/FajYoTY3OE18cRNo= 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.17.1 h1:lNhgq7ix/N81R6oATroP/kHMzH1qzVVF2dEGcTlN2t4= @@ -1116,8 +1108,8 @@ github.com/lightninglabs/taproot-assets/taprpc v1.1.0 h1:Oum7ddGygrEaT+NHqpaQI8U 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 v0.21.1-beta h1:XYr8CRY3EB5bQ8I43/6QbOZP1dRi/XI6dwzTHlS2jxQ= +github.com/lightningnetwork/lnd v0.21.1-beta/go.mod h1:iqqf8Cyq0F7ssUftb17+Y644OWVg2OMOpvWSyzympXs= 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= @@ -1136,8 +1128,8 @@ github.com/lightningnetwork/lnd/ticker v1.1.1 h1:J/b6N2hibFtC7JLV77ULQp++QLtCwT6 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= github.com/lightningnetwork/lnd/tlv v1.3.2/go.mod h1:pJuiBj1ecr1WWLOtcZ+2+hu9Ey25aJWFIsjmAoPPnmc= -github.com/lightningnetwork/lnd/tor v1.1.6 h1:WHUumk7WgU6BUFsqHuqszI9P6nfhMeIG+rjJBlVE6OE= -github.com/lightningnetwork/lnd/tor v1.1.6/go.mod h1:qSRB8llhAK+a6kaTPWOLLXSZc6Hg8ZC0mq1sUQ/8JfI= +github.com/lightningnetwork/lnd/tor v1.1.7 h1:BfY1KQGz3LVaeaAGI4XYGYCwDQR1ADFD1P/uXsS2dQc= +github.com/lightningnetwork/lnd/tor v1.1.7/go.mod h1:DANQ6QCQBiR+CqrM+mKudgkMy6CR/RS4ALDbjb2W4FU= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 h1:sjOGyegMIhvgfq5oaue6Td+hxZuf3tDC8lAPrFldqFw= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796/go.mod h1:3p7ZTf9V1sNPI5H8P3NkTFF4LuwMdPl2DodF60qAKqY= github.com/ltcsuite/ltcutil v0.0.0-20181217130922-17f3b04680b6/go.mod h1:8Vg/LTOO0KYa/vlHWJ6XZAevPQThGH5sufO0Hrou/lA= @@ -1350,14 +1342,14 @@ go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 h1:DeFD0VgTZ+Cj6hxravYYZE2W4GlneVH81iAOPjZkzk8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0/go.mod h1:GijYcYmNpX1KazD5JmWGsi4P7dDTTTnfv1UbGn84MnU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 h1:gvmNvqrPYovvyRmCSygkUDyL8lC5Tl845MLEwqpxhEU= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0/go.mod h1:vNUq47TGFioo+ffTSnKNdob241vePmtNZnAODKapKd0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= @@ -1371,8 +1363,8 @@ go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLh go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= -go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -1580,8 +1572,6 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= -golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 503201ffa7abba6b6ec49f3e020b6426b97eaa8a Mon Sep 17 00:00:00 2001 From: Viktor Torstensson Date: Fri, 26 Jun 2026 22:19:14 +0200 Subject: [PATCH 4/7] perms: bump `lnd` to `v0.21.1-beta` --- perms/go.mod | 4 ++-- perms/go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/perms/go.mod b/perms/go.mod index 3d1ce5e4..562d73bc 100644 --- a/perms/go.mod +++ b/perms/go.mod @@ -4,7 +4,7 @@ go 1.25.10 require ( github.com/btcsuite/btcd v0.25.1-0.20260310163610-1c55c7c18179 - github.com/lightningnetwork/lnd v0.21.0-beta + github.com/lightningnetwork/lnd v0.21.1-beta github.com/stretchr/testify v1.11.1 gopkg.in/macaroon-bakery.v2 v2.3.0 ) @@ -111,7 +111,7 @@ require ( 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 + github.com/lightningnetwork/lnd/tor v1.1.7 // indirect github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect diff --git a/perms/go.sum b/perms/go.sum index 57cd781d..d068e4d3 100644 --- a/perms/go.sum +++ b/perms/go.sum @@ -372,8 +372,8 @@ github.com/lightninglabs/neutrino/cache v1.1.3 h1:rgnabC41W+XaPuBTQrdeFjFCCAVKh1 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 v0.21.1-beta h1:XYr8CRY3EB5bQ8I43/6QbOZP1dRi/XI6dwzTHlS2jxQ= +github.com/lightningnetwork/lnd v0.21.1-beta/go.mod h1:iqqf8Cyq0F7ssUftb17+Y644OWVg2OMOpvWSyzympXs= 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= @@ -394,8 +394,8 @@ github.com/lightningnetwork/lnd/ticker v1.1.1 h1:J/b6N2hibFtC7JLV77ULQp++QLtCwT6 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= github.com/lightningnetwork/lnd/tlv v1.3.2/go.mod h1:pJuiBj1ecr1WWLOtcZ+2+hu9Ey25aJWFIsjmAoPPnmc= -github.com/lightningnetwork/lnd/tor v1.1.6 h1:WHUumk7WgU6BUFsqHuqszI9P6nfhMeIG+rjJBlVE6OE= -github.com/lightningnetwork/lnd/tor v1.1.6/go.mod h1:qSRB8llhAK+a6kaTPWOLLXSZc6Hg8ZC0mq1sUQ/8JfI= +github.com/lightningnetwork/lnd/tor v1.1.7 h1:BfY1KQGz3LVaeaAGI4XYGYCwDQR1ADFD1P/uXsS2dQc= +github.com/lightningnetwork/lnd/tor v1.1.7/go.mod h1:DANQ6QCQBiR+CqrM+mKudgkMy6CR/RS4ALDbjb2W4FU= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 h1:sjOGyegMIhvgfq5oaue6Td+hxZuf3tDC8lAPrFldqFw= github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796/go.mod h1:3p7ZTf9V1sNPI5H8P3NkTFF4LuwMdPl2DodF60qAKqY= github.com/ltcsuite/ltcutil v0.0.0-20181217130922-17f3b04680b6/go.mod h1:8Vg/LTOO0KYa/vlHWJ6XZAevPQThGH5sufO0Hrou/lA= From 901d60cc0eed76baa3e69db83d77e0d0113d9343 Mon Sep 17 00:00:00 2001 From: Viktor Torstensson Date: Fri, 26 Jun 2026 22:44:17 +0200 Subject: [PATCH 5/7] docs: update compatibility notes Add `v0.16.1-alpha` & `v0.17.0-alpha` to the compatibility notes. --- docs/compatibility.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/compatibility.md b/docs/compatibility.md index 57b3dd11..ada36442 100644 --- a/docs/compatibility.md +++ b/docs/compatibility.md @@ -12,6 +12,8 @@ bundled version will always come with the correct compatible versioning. | LiT | min LND version | |-------------------|-----------------| +| **v0.17.0-alpha** | v0.19.0-beta | +| **v0.16.1-alpha** | v0.19.0-beta | | **v0.16.0-alpha** | v0.19.0-beta | | **v0.15.3-alpha** | v0.19.0-beta | | **v0.15.2-alpha** | v0.19.0-beta | From 569fdee4f49fcd6324fe9c7ac3fd52e870acfc3d Mon Sep 17 00:00:00 2001 From: Viktor Torstensson Date: Tue, 16 Jun 2026 00:35:02 +0200 Subject: [PATCH 6/7] docs: prepare release notes for `v0.17.0-alpha` --- docs/release-notes/release-notes-0.17.0.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/release-notes-0.17.0.md b/docs/release-notes/release-notes-0.17.0.md index 3bed9eda..7b98f392 100644 --- a/docs/release-notes/release-notes-0.17.0.md +++ b/docs/release-notes/release-notes-0.17.0.md @@ -93,11 +93,16 @@ ### LND -* [Bump lnd to v0.21.0-beta and lndclient to - v0.21.0-1](https://github.com/lightninglabs/lightning-terminal/pull/1300). +* [Bump lnd to + v0.21.1-beta](https://github.com/lightninglabs/lightning-terminal/pull/1331). ### Loop +* Bump [`loop` to + v0.33.3-beta](https://github.com/lightninglabs/lightning-terminal/pull/1331), + Additionally, `looprpc` is bumped to `v1.0.14` and `swapserverrpc` is bumped + to `v1.0.21` match the version used in `loop` `v0.33.3-beta`. + ### Pool * Updated [`pool` to From 8cd75e44d960668cb18a6c0d92f669538809ee4c Mon Sep 17 00:00:00 2001 From: Viktor Torstensson Date: Tue, 16 Jun 2026 00:29:26 +0200 Subject: [PATCH 7/7] version: bump version to `v0.17.0-alpha` --- version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.go b/version.go index f598f4e6..64fbb803 100644 --- a/version.go +++ b/version.go @@ -39,7 +39,7 @@ const ( // appPreRelease MUST only contain characters from semanticAlphabet per // the semantic versioning spec. - appPreRelease = "alpha.rc1" + appPreRelease = "alpha" ) // Version returns the application version as a properly formed string per the