onchaind: see closes when wrong_funding shutdowns are used.

Fairly easy to do, though we also have to add the watch when we load
from the database.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2021-03-16 06:56:13 +10:30
parent b62706aa01
commit a1b43a3653
4 changed files with 20 additions and 3 deletions

View File

@@ -1353,6 +1353,18 @@ static enum watch_result funding_spent(struct channel *channel,
return onchaind_funding_spent(channel, tx, block->height, false);
}
void channel_watch_wrong_funding(struct lightningd *ld, struct channel *channel)
{
/* Watch the "wrong" funding too, in case we spend it. */
if (channel->shutdown_wrong_funding) {
/* FIXME: Remove arg from cb? */
watch_txo(channel, ld->topology, channel,
&channel->shutdown_wrong_funding->txid,
channel->shutdown_wrong_funding->n,
funding_spent);
}
}
void channel_watch_funding(struct lightningd *ld, struct channel *channel)
{
/* FIXME: Remove arg from cb? */
@@ -1361,6 +1373,7 @@ void channel_watch_funding(struct lightningd *ld, struct channel *channel)
watch_txo(channel, ld->topology, channel,
&channel->funding_txid, channel->funding_outnum,
funding_spent);
channel_watch_wrong_funding(ld, channel);
}
static void json_add_peer(struct lightningd *ld,