@@ -249,6 +249,9 @@ pub struct AcceptChannel {
249
249
/// our feature bits with our counterparty's feature bits from the [`Init`] message.
250
250
/// This is required to match the equivalent field in [`OpenChannel::channel_type`].
251
251
pub channel_type : Option < ChannelTypeFeatures > ,
252
+ #[ cfg( taproot) ]
253
+ /// Next nonce the channel initiator should use to create a funding output signature against
254
+ pub next_local_nonce : Option < musig2:: types:: PublicNonce > ,
252
255
}
253
256
254
257
/// A [`funding_created`] message to be sent to or received from a peer.
@@ -1293,7 +1296,28 @@ impl Readable for OptionalField<u64> {
1293
1296
}
1294
1297
}
1295
1298
1299
+ #[ cfg( not( taproot) ) ]
1300
+ impl_writeable_msg ! ( AcceptChannel , {
1301
+ temporary_channel_id,
1302
+ dust_limit_satoshis,
1303
+ max_htlc_value_in_flight_msat,
1304
+ channel_reserve_satoshis,
1305
+ htlc_minimum_msat,
1306
+ minimum_depth,
1307
+ to_self_delay,
1308
+ max_accepted_htlcs,
1309
+ funding_pubkey,
1310
+ revocation_basepoint,
1311
+ payment_point,
1312
+ delayed_payment_basepoint,
1313
+ htlc_basepoint,
1314
+ first_per_commitment_point,
1315
+ shutdown_scriptpubkey
1316
+ } , {
1317
+ ( 1 , channel_type, option) ,
1318
+ } ) ;
1296
1319
1320
+ #[ cfg( taproot) ]
1297
1321
impl_writeable_msg ! ( AcceptChannel , {
1298
1322
temporary_channel_id,
1299
1323
dust_limit_satoshis,
@@ -1312,6 +1336,7 @@ impl_writeable_msg!(AcceptChannel, {
1312
1336
shutdown_scriptpubkey
1313
1337
} , {
1314
1338
( 1 , channel_type, option) ,
1339
+ ( 4 , next_local_nonce, option) ,
1315
1340
} ) ;
1316
1341
1317
1342
impl_writeable_msg ! ( AnnouncementSignatures , {
@@ -2449,6 +2474,8 @@ mod tests {
2449
2474
first_per_commitment_point : pubkey_6,
2450
2475
shutdown_scriptpubkey : if shutdown { OptionalField :: Present ( Address :: p2pkh ( & :: bitcoin:: PublicKey { compressed : true , inner : pubkey_1} , Network :: Testnet ) . script_pubkey ( ) ) } else { OptionalField :: Absent } ,
2451
2476
channel_type : None ,
2477
+ #[ cfg( taproot) ]
2478
+ next_local_nonce : None ,
2452
2479
} ;
2453
2480
let encoded_value = accept_channel. encode ( ) ;
2454
2481
let mut target_value = hex:: decode ( "020202020202020202020202020202020202020202020202020202020202020212345678901234562334032891223698321446687011447600083a840000034d000c89d4c0bcc0bc031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f024d4b6cd1361032ca9bd2aeb9d900aa4d45d9ead80ac9423374c451a7254d076602531fe6068134503d2723133227c867ac8fa6c83c537e9a44c3c5bdbdcb1fe33703462779ad4aad39514614751a71085f2f10e1c7a593e4e030efb5b8721ce55b0b0362c0a046dacce86ddd0343c6d3c7c79c2208ba0d9c9cf24a6d046d21d21f90f703f006a18d5653c4edf5391ff23a61f03ff83d237e880ee61187fa9f379a028e0a" ) . unwrap ( ) ;
0 commit comments