@@ -429,6 +429,53 @@ pub struct ChannelReady {
429
429
pub short_channel_id_alias : Option < u64 > ,
430
430
}
431
431
432
+ /// A splice message to be sent by or received from the splice initiator.
433
+ /// TODO(splicing): Is using 'splice initiator' role OK?
434
+ /// TODO(splicing): Can the channel acceptor later be the splice initiator?
435
+ ///
436
+ // TODO(splicing): Add spec link for `splice`; still in draft, using from https://github.com/lightning/bolts/pull/863
437
+ #[ derive( Clone , Debug , PartialEq , Eq ) ]
438
+ pub struct Splice {
439
+ /// The channel ID where splicing is intended
440
+ pub channel_id : ChannelId ,
441
+ /// The genesis hash of the blockchain where the channel is intended to be spliced
442
+ pub chain_hash : BlockHash ,
443
+ /// The intended change in channel capacity: the amount to be added (positive value)
444
+ /// or removed (negative value) by the sender (splice initiator) by splicing into/from the channel.
445
+ pub relative_satoshis : i64 ,
446
+ /// The feerate for the new funding transaction, set by the splice initiator
447
+ pub funding_feerate_perkw : u32 ,
448
+ /// The locktime for the new funding transaction
449
+ pub locktime : u32 ,
450
+ /// The key of the sender (splice initiator) controlling the new funding transaction
451
+ pub funding_pubkey : PublicKey ,
452
+ }
453
+
454
+ /// A splice_ack message to be received by or sent to the splice initiator.
455
+ ///
456
+ // TODO(splicing): Add spec link for `splice_ack`; still in draft, using from https://github.com/lightning/bolts/pull/863
457
+ #[ derive( Clone , Debug , PartialEq , Eq ) ]
458
+ pub struct SpliceAck {
459
+ /// The channel ID where splicing is intended
460
+ pub channel_id : ChannelId ,
461
+ /// The genesis hash of the blockchain where the channel is intended to be spliced
462
+ pub chain_hash : BlockHash ,
463
+ /// The intended change in channel capacity: the amount to be added (positive value)
464
+ /// or removed (negative value) by the sender (splice acceptor) by splicing into/from the channel.
465
+ pub relative_satoshis : i64 ,
466
+ /// The key of the sender (splice acceptor) controlling the new funding transaction
467
+ pub funding_pubkey : PublicKey ,
468
+ }
469
+
470
+ /// A splice_locked message to be sent to or received from a peer.
471
+ ///
472
+ // TODO(splicing): Add spec link for `splice_locked`; still in draft, using from https://github.com/lightning/bolts/pull/863
473
+ #[ derive( Clone , Debug , PartialEq , Eq ) ]
474
+ pub struct SpliceLocked {
475
+ /// The channel ID
476
+ pub channel_id : ChannelId ,
477
+ }
478
+
432
479
/// A tx_add_input message for adding an input during interactive transaction construction
433
480
///
434
481
// TODO(dual_funding): Add spec link for `tx_add_input`.
0 commit comments