Skip to content

Commit

Permalink
dual-fund: add new open-commit-ready state
Browse files Browse the repository at this point in the history
From the spec:

	Once peers are ready to exchange commitment signatures, they must remember
	the details of the funding transaction to allow resuming the signatures
	exchange if a disconnection happens.

Basically this means we add channels to the database before we've gotten
commitments for them; it's nice that there's now a state for commitments
recevied but we now save the channel prior to that.

This commit makes it possible to track the pre-commit-rcvd but not quite
open-init state.
  • Loading branch information
niftynei authored and rustyrussell committed Nov 2, 2023
1 parent f004952 commit ecb8d9d
Show file tree
Hide file tree
Showing 16 changed files with 481 additions and 430 deletions.
2 changes: 2 additions & 0 deletions .msggen.json
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@
"CLOSINGD_SIGEXCHANGE": 4,
"DUALOPEND_AWAITING_LOCKIN": 10,
"DUALOPEND_OPEN_COMMITTED": 12,
"DUALOPEND_OPEN_COMMIT_READY": 13,
"DUALOPEND_OPEN_INIT": 9,
"FUNDING_SPEND_SEEN": 7,
"ONCHAIN": 8,
Expand Down Expand Up @@ -259,6 +260,7 @@
"CLOSINGD_SIGEXCHANGE": 4,
"DUALOPEND_AWAITING_LOCKIN": 10,
"DUALOPEND_OPEN_COMMITTED": 11,
"DUALOPEND_OPEN_COMMIT_READY": 12,
"DUALOPEND_OPEN_INIT": 9,
"FUNDING_SPEND_SEEN": 7,
"ONCHAIN": 8,
Expand Down
2 changes: 2 additions & 0 deletions cln-grpc/proto/node.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions cln-rpc/src/model.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

830 changes: 415 additions & 415 deletions contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions doc/lightning-listfunds.7.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ On success, an object is returned, containing:
- **funding\_txid** (txid): funding transaction id
- **funding\_output** (u32): the 0-based index of the output in the funding transaction
- **connected** (boolean): whether the channel peer is connected
- **state** (string): the channel state, in particular "CHANNELD\_NORMAL" means the channel can be used normally (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED")
- **state** (string): the channel state, in particular "CHANNELD\_NORMAL" means the channel can be used normally (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED", "DUALOPEND\_OPEN\_COMMIT\_READY")
- **channel\_id** (hash): The full channel\_id (funding txid Xored with output number) *(added v23.05)*

If **state** is "CHANNELD\_NORMAL":
Expand Down Expand Up @@ -74,4 +74,4 @@ RESOURCES

Main web site: <https://github.com/ElementsProject/lightning>

[comment]: # ( SHA256STAMP:f4b639bb4e7a4544e7015a67225c1ead6a2e0b9817eca5b328908576f1d17dd2)
[comment]: # ( SHA256STAMP:65008408df4c1fddb9f6cf727a880277a3905cc6af20c9c70de704ec8861ea49)
14 changes: 10 additions & 4 deletions doc/lightning-listpeerchannels.7.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ On success, an object containing **channels** is returned. It is an array of ob

- **peer\_id** (pubkey): Node Public key
- **peer\_connected** (boolean): A boolean flag that is set to true if the peer is online
- **state** (string): the channel state, in particular "CHANNELD\_NORMAL" means the channel can be used normally (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "CHANNELD\_AWAITING\_SPLICE", "DUALOPEND\_OPEN\_COMMITTED")
- **state** (string): the channel state, in particular "CHANNELD\_NORMAL" means the channel can be used normally (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "CHANNELD\_AWAITING\_SPLICE", "DUALOPEND\_OPEN\_COMMITTED", "DUALOPEND\_OPEN\_COMMIT\_READY")
- **opener** (string): Who initiated the channel (one of "local", "remote")
- **features** (array of strings):
- BOLT #9 features which apply to this channel (one of "option\_static\_remotekey", "option\_anchor\_outputs", "option\_anchors\_zero\_fee\_htlc\_tx", "option\_scid\_alias", "option\_zeroconf")
Expand Down Expand Up @@ -89,8 +89,8 @@ On success, an object containing **channels** is returned. It is an array of ob
- **remote** (short\_channel\_id, optional): An alias assigned by the remote node to this channel, usable in routehints and invoices
- **state\_changes** (array of objects, optional): Prior state changes:
- **timestamp** (string): UTC timestamp of form YYYY-mm-ddTHH:MM:SS.%03dZ
- **old\_state** (string): Previous state (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED", "CHANNELD\_AWAITING\_SPLICE")
- **new\_state** (string): New state (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED", "CHANNELD\_AWAITING\_SPLICE")
- **old\_state** (string): Previous state (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED", "DUALOPEND\_OPEN\_COMMIT\_READY", "CHANNELD\_AWAITING\_SPLICE")
- **new\_state** (string): New state (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED", "DUALOPEND\_OPEN\_COMMIT\_READY", "CHANNELD\_AWAITING\_SPLICE")
- **cause** (string): What caused the change (one of "unknown", "local", "user", "remote", "protocol", "onchain")
- **message** (string): Human-readable explanation
- **status** (array of strings, optional):
Expand Down Expand Up @@ -146,6 +146,12 @@ The *state* field values (and *old\_state* / *new\_state*) are worth describing
and both sides are negotiating parameters.
* `"DUALOPEND_OPEN_INIT"`: Like `OPENINGD`, but for v2 connections which
are using collaborative opens.
* `"DUALOPEND_OPEN_COMMIT_READY"`: Like `OPENINGD`, but for v2 connections which
are using collaborative opens. You're ready to send your commitment signed
to your peer.
* `"DUALOPEND_OPEN_COMMITED"`: Like `OPENINGD`, but for v2 connections which
are using collaborative opens. You've gotten an inital signed commitment
from your peer.
* `"CHANNELD_AWAITING_LOCKIN"` / `"DUALOPEND\_AWAITING\_LOCKIN"`: The peer and you have agreed on channel
parameters and are just waiting for the channel funding transaction to
be confirmed deeply (original and collaborative open protocols, respectively).
Expand Down Expand Up @@ -196,4 +202,4 @@ Main web site: <https://github.com/ElementsProject/lightning> Lightning
RFC site (BOLT \#9):
<https://github.com/lightningnetwork/lightning-rfc/blob/master/09-features.md>

[comment]: # ( SHA256STAMP:c69bd45ebbfc508c0b3998d6b875993d321f26dc4e8ba88830999851623e5206)
[comment]: # ( SHA256STAMP:d8f5d19a70fa3e8718e96369510ab8c9b28a0c0b626eb10321bfccb1cd7dbc0b)
8 changes: 4 additions & 4 deletions doc/lightning-listpeers.7.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ On success, an object containing **peers** is returned. It is an array of objec
- **node\_id** (pubkey): The peer this is associated with
- **data** (hex): The IO which occurred
- **channels** (array of objects, optional) **deprecated, removal in v23.11**:
- **state** (string): the channel state, in particular "CHANNELD\_NORMAL" means the channel can be used normally (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED")
- **state** (string): the channel state, in particular "CHANNELD\_NORMAL" means the channel can be used normally (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED", "DUALOPEND\_OPEN\_COMMIT\_READY")
- **opener** (string): Who initiated the channel (one of "local", "remote")
- **features** (array of strings):
- BOLT #9 features which apply to this channel (one of "option\_static\_remotekey", "option\_anchor\_outputs", "option\_scid\_alias", "option\_zeroconf")
Expand Down Expand Up @@ -123,8 +123,8 @@ On success, an object containing **peers** is returned. It is an array of objec
- **remote** (short\_channel\_id, optional): An alias assigned by the remote node to this channel, usable in routehints and invoices
- **state\_changes** (array of objects, optional): Prior state changes:
- **timestamp** (string): UTC timestamp of form YYYY-mm-ddTHH:MM:SS.%03dZ
- **old\_state** (string): Previous state (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED")
- **new\_state** (string): New state (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED")
- **old\_state** (string): Previous state (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED", "DUALOPEND\_OPEN\_COMMIT\_READY")
- **new\_state** (string): New state (one of "OPENINGD", "CHANNELD\_AWAITING\_LOCKIN", "CHANNELD\_NORMAL", "CHANNELD\_SHUTTING\_DOWN", "CLOSINGD\_SIGEXCHANGE", "CLOSINGD\_COMPLETE", "AWAITING\_UNILATERAL", "FUNDING\_SPEND\_SEEN", "ONCHAIN", "DUALOPEND\_OPEN\_INIT", "DUALOPEND\_AWAITING\_LOCKIN", "DUALOPEND\_OPEN\_COMMITTED", "DUALOPEND\_OPEN\_COMMIT\_READY")
- **cause** (string): What caused the change (one of "unknown", "local", "user", "remote", "protocol", "onchain")
- **message** (string): Human-readable explanation
- **status** (array of strings, optional):
Expand Down Expand Up @@ -400,4 +400,4 @@ Main web site: <https://github.com/ElementsProject/lightning> Lightning
RFC site (BOLT \#9):
<https://github.com/lightning/bolts/blob/master/09-features.md>

[comment]: # ( SHA256STAMP:32075bc65e686b04617f4c1fa068b5fd0ac84afec057f06f19df6f56328d2dd9)
[comment]: # ( SHA256STAMP:6ba98a11876db615f4ea25f1afedf319a4bd4e50dad216306ea85b51b83b3f7b)
3 changes: 2 additions & 1 deletion doc/schemas/listfunds.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,8 @@
"ONCHAIN",
"DUALOPEND_OPEN_INIT",
"DUALOPEND_AWAITING_LOCKIN",
"DUALOPEND_OPEN_COMMITTED"
"DUALOPEND_OPEN_COMMITTED",
"DUALOPEND_OPEN_COMMIT_READY"
],
"description": "the channel state, in particular \"CHANNELD_NORMAL\" means the channel can be used normally"
},
Expand Down
5 changes: 4 additions & 1 deletion doc/schemas/listpeerchannels.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@
"DUALOPEND_OPEN_INIT",
"DUALOPEND_AWAITING_LOCKIN",
"CHANNELD_AWAITING_SPLICE",
"DUALOPEND_OPEN_COMMITTED"
"DUALOPEND_OPEN_COMMITTED",
"DUALOPEND_OPEN_COMMIT_READY"
],
"description": "the channel state, in particular \"CHANNELD_NORMAL\" means the channel can be used normally"
},
Expand Down Expand Up @@ -381,6 +382,7 @@
"DUALOPEND_OPEN_INIT",
"DUALOPEND_AWAITING_LOCKIN",
"DUALOPEND_OPEN_COMMITTED",
"DUALOPEND_OPEN_COMMIT_READY",
"CHANNELD_AWAITING_SPLICE"
],
"description": "Previous state"
Expand All @@ -400,6 +402,7 @@
"DUALOPEND_OPEN_INIT",
"DUALOPEND_AWAITING_LOCKIN",
"DUALOPEND_OPEN_COMMITTED",
"DUALOPEND_OPEN_COMMIT_READY",
"CHANNELD_AWAITING_SPLICE"
],
"description": "New state"
Expand Down
9 changes: 6 additions & 3 deletions doc/schemas/listpeers.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,8 @@
"ONCHAIN",
"DUALOPEND_OPEN_INIT",
"DUALOPEND_AWAITING_LOCKIN",
"DUALOPEND_OPEN_COMMITTED"
"DUALOPEND_OPEN_COMMITTED",
"DUALOPEND_OPEN_COMMIT_READY"
],
"description": "the channel state, in particular \"CHANNELD_NORMAL\" means the channel can be used normally"
},
Expand Down Expand Up @@ -495,7 +496,8 @@
"ONCHAIN",
"DUALOPEND_OPEN_INIT",
"DUALOPEND_AWAITING_LOCKIN",
"DUALOPEND_OPEN_COMMITTED"
"DUALOPEND_OPEN_COMMITTED",
"DUALOPEND_OPEN_COMMIT_READY"
],
"description": "Previous state"
},
Expand All @@ -513,7 +515,8 @@
"ONCHAIN",
"DUALOPEND_OPEN_INIT",
"DUALOPEND_AWAITING_LOCKIN",
"DUALOPEND_OPEN_COMMITTED"
"DUALOPEND_OPEN_COMMITTED",
"DUALOPEND_OPEN_COMMIT_READY"
],
"description": "New state"
},
Expand Down
10 changes: 10 additions & 0 deletions lightningd/channel.h
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,7 @@ static inline bool channel_state_can_add_htlc(enum channel_state state)
case ONCHAIN:
case CLOSED:
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case DUALOPEND_AWAITING_LOCKIN:
return false;
Expand All @@ -452,6 +453,7 @@ static inline bool channel_state_can_remove_htlc(enum channel_state state)
case ONCHAIN:
case CLOSED:
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case DUALOPEND_AWAITING_LOCKIN:
return false;
Expand All @@ -469,6 +471,7 @@ static inline bool channel_state_closing(enum channel_state state)
case CHANNELD_AWAITING_LOCKIN:
case CHANNELD_NORMAL:
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case DUALOPEND_AWAITING_LOCKIN:
case CHANNELD_AWAITING_SPLICE:
Expand Down Expand Up @@ -496,6 +499,7 @@ static inline bool channel_state_fees_can_change(enum channel_state state)
case ONCHAIN:
case CLOSED:
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case DUALOPEND_AWAITING_LOCKIN:
return false;
Expand All @@ -518,6 +522,7 @@ static inline bool channel_state_failing_onchain(enum channel_state state)
case CLOSINGD_COMPLETE:
case CLOSED:
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case DUALOPEND_AWAITING_LOCKIN:
return false;
Expand All @@ -534,6 +539,7 @@ static inline bool channel_state_pre_open(enum channel_state state)
switch (state) {
case CHANNELD_AWAITING_LOCKIN:
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case DUALOPEND_AWAITING_LOCKIN:
return true;
Expand All @@ -556,6 +562,7 @@ static inline bool channel_state_closed(enum channel_state state)
switch (state) {
case CHANNELD_AWAITING_LOCKIN:
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case DUALOPEND_AWAITING_LOCKIN:
case CHANNELD_NORMAL:
Expand All @@ -579,6 +586,7 @@ static inline bool channel_state_uncommitted(enum channel_state state)
switch (state) {
case DUALOPEND_OPEN_INIT:
return true;
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case CHANNELD_AWAITING_LOCKIN:
case DUALOPEND_AWAITING_LOCKIN:
Expand All @@ -602,6 +610,7 @@ static inline bool channel_state_wants_peercomms(enum channel_state state)
switch (state) {
case CHANNELD_AWAITING_LOCKIN:
case DUALOPEND_AWAITING_LOCKIN:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case CHANNELD_NORMAL:
case CHANNELD_AWAITING_SPLICE:
Expand Down Expand Up @@ -632,6 +641,7 @@ static inline bool channel_state_wants_onchain_fail(enum channel_state state)
case CHANNELD_SHUTTING_DOWN:
return true;
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case CLOSINGD_COMPLETE:
case AWAITING_UNILATERAL:
case FUNDING_SPEND_SEEN:
Expand Down
3 changes: 3 additions & 0 deletions lightningd/channel_state.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ enum channel_state {
/* Channel has started splice and is awaiting lock-in */
CHANNELD_AWAITING_SPLICE,

/* Dual-funded channel initial commitment ready */
DUALOPEND_OPEN_COMMIT_READY,

};
#define CHANNEL_STATE_MAX CHANNELD_AWAITING_SPLICE

Expand Down
2 changes: 2 additions & 0 deletions lightningd/closing_control.c
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,7 @@ static bool channel_state_can_close(enum channel_state state)
case CHANNELD_AWAITING_LOCKIN:
case DUALOPEND_AWAITING_LOCKIN:
case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case CLOSINGD_SIGEXCHANGE:
case CHANNELD_SHUTTING_DOWN:
Expand Down Expand Up @@ -899,6 +900,7 @@ static struct command_result *json_close(struct command *cmd,
break;

case DUALOPEND_OPEN_INIT:
case DUALOPEND_OPEN_COMMIT_READY:
case DUALOPEND_OPEN_COMMITTED:
case CLOSINGD_COMPLETE:
case AWAITING_UNILATERAL:
Expand Down
Loading

0 comments on commit ecb8d9d

Please sign in to comment.