diff --git a/lightningd/channel.h b/lightningd/channel.h index 0ea0ca451..d3f4f8dc2 100644 --- a/lightningd/channel.h +++ b/lightningd/channel.h @@ -363,6 +363,10 @@ struct channel *any_channel_by_scid(struct lightningd *ld, struct channel *channel_by_cid(struct lightningd *ld, const struct channel_id *cid); +/* Find this channel within peer */ +struct channel *find_channel_by_id(const struct peer *peer, + const struct channel_id *cid); + void channel_set_last_tx(struct channel *channel, struct bitcoin_tx *tx, const struct bitcoin_signature *sig, @@ -403,6 +407,15 @@ static inline bool channel_active(const struct channel *channel) && !channel_on_chain(channel); } +static inline bool channel_closed(const struct channel *channel) +{ + return channel->state == CLOSINGD_COMPLETE + || channel->state == AWAITING_UNILATERAL + || channel->state == FUNDING_SPEND_SEEN + || channel->state == ONCHAIN + || channel->state == CLOSED; +} + void get_channel_basepoints(struct lightningd *ld, const struct node_id *peer_id, const u64 dbid, diff --git a/lightningd/channel_control.c b/lightningd/channel_control.c index 380146c66..95762eb96 100644 --- a/lightningd/channel_control.c +++ b/lightningd/channel_control.c @@ -788,8 +788,8 @@ void channel_notify_new_block(struct lightningd *ld, tal_free(to_forget); } -static struct channel *find_channel_by_id(const struct peer *peer, - const struct channel_id *cid) +struct channel *find_channel_by_id(const struct peer *peer, + const struct channel_id *cid) { struct channel *c;