Skip to content

Commit 574c093

Browse files
committed
lnrpc/devrpc: add new TriggerSweep dev rpc command
In this commit, we add a new TriggerSwep dev rpc command. This command can be used in the itest to trigger a sweep on demand, which will be useful to ensure that they still pass, now that some block beat handling is more async.
1 parent 1dd1a2f commit 574c093

File tree

8 files changed

+285
-25
lines changed

8 files changed

+285
-25
lines changed

lnrpc/devrpc/config_active.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ import (
99
"github.com/lightningnetwork/lnd/htlcswitch"
1010
)
1111

12+
// UtxoSweeper defines the interface for the UTXO sweeper needed by the dev
13+
// RPC server.
14+
type UtxoSweeper interface {
15+
// TriggerSweep triggers an immediate sweep attempt.
16+
TriggerSweep() int
17+
}
18+
1219
// Config is the primary configuration struct for the DEV RPC server. It
1320
// contains all the items required for the rpc server to carry out its
1421
// duties. Any fields with struct tags are meant to be parsed as normal
@@ -18,4 +25,5 @@ type Config struct {
1825
ActiveNetParams *chaincfg.Params
1926
GraphDB *graphdb.ChannelGraph
2027
Switch *htlcswitch.Switch
28+
Sweeper UtxoSweeper
2129
}

lnrpc/devrpc/dev.pb.go

Lines changed: 151 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lnrpc/devrpc/dev.pb.json.go

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lnrpc/devrpc/dev.proto

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ service Dev {
3737
once interop is confirmed.
3838
*/
3939
rpc Quiesce (QuiescenceRequest) returns (QuiescenceResponse);
40+
41+
/* lncli: `triggersweeper`
42+
TriggerSweeper triggers the sweeper to attempt to create and broadcast sweep
43+
transactions for all pending inputs. This RPC is for testing purposes only,
44+
allowing tests to deterministically control when sweeps are broadcast rather
45+
than relying on the sweeper's automatic timing.
46+
*/
47+
rpc TriggerSweeper (TriggerSweeperRequest) returns (TriggerSweeperResponse);
4048
}
4149

4250
message ImportGraphResponse {
@@ -52,3 +60,11 @@ message QuiescenceResponse {
5260
// negotiation completes
5361
bool initiator = 1;
5462
}
63+
64+
message TriggerSweeperRequest {
65+
}
66+
67+
message TriggerSweeperResponse {
68+
// The number of sweep transactions that were broadcast.
69+
uint32 num_sweeps_broadcast = 1;
70+
}

lnrpc/devrpc/dev.swagger.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,16 @@
106106
}
107107
}
108108
},
109+
"devrpcTriggerSweeperResponse": {
110+
"type": "object",
111+
"properties": {
112+
"num_sweeps_broadcast": {
113+
"type": "integer",
114+
"format": "int64",
115+
"description": "The number of sweep transactions that were broadcast."
116+
}
117+
}
118+
},
109119
"lnrpcChannelAuthProof": {
110120
"type": "object",
111121
"properties": {

lnrpc/devrpc/dev_grpc.pb.go

Lines changed: 46 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)