Skip to content

Commit bcd64ef

Browse files
committed
loop: pass channel ids to Loop Out RPC request
1 parent 7c7a2c9 commit bcd64ef

File tree

6 files changed

+296
-12
lines changed

6 files changed

+296
-12
lines changed

app/src/api/loop.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,19 @@ class LoopApi {
8080
/**
8181
* call the Loop `LoopOut` RPC and return the response
8282
*/
83-
async loopOut(amount: number, quote: Quote): Promise<LOOP.SwapResponse.AsObject> {
83+
async loopOut(
84+
amount: number,
85+
quote: Quote,
86+
chanIds: number[],
87+
): Promise<LOOP.SwapResponse.AsObject> {
8488
const req = new LOOP.LoopOutRequest();
8589
req.setAmt(amount);
8690
req.setMaxSwapFee(quote.swapFee);
8791
req.setMaxMinerFee(quote.minerFee);
8892
req.setMaxPrepayAmt(quote.prepayAmount);
8993
req.setMaxSwapRoutingFee(this._calcRoutingFee(quote.swapFee));
9094
req.setMaxPrepayRoutingFee(this._calcRoutingFee(quote.prepayAmount));
95+
req.setOutgoingChanSetList(chanIds);
9196

9297
if (IS_PROD) {
9398
// in prod env, push the deadline out for 30 mins for lower fees

app/src/store/stores/buildSwapStore.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,10 +296,11 @@ class BuildSwapStore {
296296
);
297297
this.processingTimeout = setTimeout(async () => {
298298
try {
299+
const chanIds = this.selectedChanIds.map(v => parseInt(v));
299300
const res =
300301
direction === SwapDirection.IN
301302
? await this._store.api.loop.loopIn(amount, quote)
302-
: await this._store.api.loop.loopOut(amount, quote);
303+
: await this._store.api.loop.loopOut(amount, quote, chanIds);
303304
this._store.log.info('completed loop', toJS(res));
304305
runInAction('requestSwapContinuation', () => {
305306
// hide the swap UI after it is complete

app/src/types/generated/loop_pb.d.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ export class LoopOutRequest extends jspb.Message {
2929
getLoopOutChannel(): number;
3030
setLoopOutChannel(value: number): void;
3131

32+
clearOutgoingChanSetList(): void;
33+
getOutgoingChanSetList(): Array<number>;
34+
setOutgoingChanSetList(value: Array<number>): void;
35+
addOutgoingChanSet(value: number, index?: number): number;
36+
3237
getSweepConfTarget(): number;
3338
setSweepConfTarget(value: number): void;
3439

@@ -55,6 +60,7 @@ export namespace LoopOutRequest {
5560
maxPrepayAmt: number,
5661
maxMinerFee: number,
5762
loopOutChannel: number,
63+
outgoingChanSetList: Array<number>,
5864
sweepConfTarget: number,
5965
swapPublicationDeadline: number,
6066
}
@@ -78,6 +84,9 @@ export class LoopInRequest extends jspb.Message {
7884
getExternalHtlc(): boolean;
7985
setExternalHtlc(value: boolean): void;
8086

87+
getHtlcConfTarget(): number;
88+
setHtlcConfTarget(value: number): void;
89+
8190
serializeBinary(): Uint8Array;
8291
toObject(includeInstance?: boolean): LoopInRequest.AsObject;
8392
static toObject(includeInstance: boolean, msg: LoopInRequest): LoopInRequest.AsObject;
@@ -95,6 +104,7 @@ export namespace LoopInRequest {
95104
maxMinerFee: number,
96105
lastHop: Uint8Array | string,
97106
externalHtlc: boolean,
107+
htlcConfTarget: number,
98108
}
99109
}
100110

@@ -110,6 +120,12 @@ export class SwapResponse extends jspb.Message {
110120
getHtlcAddress(): string;
111121
setHtlcAddress(value: string): void;
112122

123+
getHtlcAddressNp2wsh(): string;
124+
setHtlcAddressNp2wsh(value: string): void;
125+
126+
getHtlcAddressP2wsh(): string;
127+
setHtlcAddressP2wsh(value: string): void;
128+
113129
serializeBinary(): Uint8Array;
114130
toObject(includeInstance?: boolean): SwapResponse.AsObject;
115131
static toObject(includeInstance: boolean, msg: SwapResponse): SwapResponse.AsObject;
@@ -125,6 +141,8 @@ export namespace SwapResponse {
125141
id: string,
126142
idBytes: Uint8Array | string,
127143
htlcAddress: string,
144+
htlcAddressNp2wsh: string,
145+
htlcAddressP2wsh: string,
128146
}
129147
}
130148

@@ -171,6 +189,12 @@ export class SwapStatus extends jspb.Message {
171189
getHtlcAddress(): string;
172190
setHtlcAddress(value: string): void;
173191

192+
getHtlcAddressP2wsh(): string;
193+
setHtlcAddressP2wsh(value: string): void;
194+
195+
getHtlcAddressNp2wsh(): string;
196+
setHtlcAddressNp2wsh(value: string): void;
197+
174198
getCostServer(): number;
175199
setCostServer(value: number): void;
176200

@@ -200,6 +224,8 @@ export namespace SwapStatus {
200224
initiationTime: number,
201225
lastUpdateTime: number,
202226
htlcAddress: string,
227+
htlcAddressP2wsh: string,
228+
htlcAddressNp2wsh: string,
203229
costServer: number,
204230
costOnchain: number,
205231
costOffchain: number,

0 commit comments

Comments
 (0)