diff --git a/channeld/channeld.c b/channeld/channeld.c index 3e7edb5ed..fd0cde7f9 100644 --- a/channeld/channeld.c +++ b/channeld/channeld.c @@ -491,6 +491,8 @@ static void check_mutual_splice_locked(struct peer *peer) "Splice lock unable to update funding. %s", error); + peer->channel->funding_pubkey[REMOTE] = inflight->remote_funding; + status_debug("mutual splice_locked, channel updated to: %s", fmt_channel(tmpctx, peer->channel)); diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 0f031a619..90127ffdf 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -2058,6 +2058,10 @@ void update_channel_from_inflight(struct lightningd *ld, bitcoin_tx_with_psbt(channel, psbt_copy), &inflight->last_sig); + /* If the remote side rotated their pubkey during splice, update now */ + if (inflight->funding->splice_remote_funding) + channel->channel_info.remote_fundingkey = *inflight->funding->splice_remote_funding; + /* Update the reserve */ channel_update_reserve(channel, &channel->channel_info.their_config,