Exchange `splice_locked` messages (Splicing, Channel Funding)

https://github.com/lightningdevkit/rust-lightning/pull/3741

Host: jbesraa  -  PR author: jkczyz

Notes

splice_locked is part of the SPLICE COMPLETION step in the splicing process. The splice_locked message indicates that the splice is completed and the channel can use the new funding transaction.

Questions

  1. Have you reviewed ldk/3741? If so, is it a Concept ACK, Approach ACK, Tested ACK, or NACK?
  2. When are splice_locked messages exchanged?
  3. How is the exchange of splice_locked messages tracked?
  4. What happens to a channel’s FundingScope after splice_locked messages are exchanged?
  5. Why is the signature (return value) of do_chain_event changed?
  6. Why is fn should_emit_channel_ready_event name changed to fn should_emit_initial_channel_ready_event?
  7. After this PR, LDK will potentially emit ChannelReady event for the same channel more than once. What is the reason for this change? How can we distinguish between the different events?