Update the CommitmentSigned message for Taproot support.

This commit is contained in:
Arik Sosman 2023-03-29 15:21:30 -07:00
parent 5c79c8e2b8
commit fe25bbb44e
No known key found for this signature in database
GPG key ID: F4FB5A3366C4D92E
3 changed files with 23 additions and 2 deletions

View file

@ -5923,6 +5923,8 @@ impl<Signer: WriteableEcdsaChannelSigner> Channel<Signer> {
channel_id: self.channel_id,
signature,
htlc_signatures,
#[cfg(taproot)]
partial_signature_with_nonce: None,
}, (counterparty_commitment_txid, commitment_stats.htlcs_included)))
}

View file

@ -735,7 +735,9 @@ fn test_update_fee_that_funder_cannot_afford() {
let commit_signed_msg = msgs::CommitmentSigned {
channel_id: chan.2,
signature: res.0,
htlc_signatures: res.1
htlc_signatures: res.1,
#[cfg(taproot)]
partial_signature_with_nonce: None,
};
let update_fee = msgs::UpdateFee {
@ -1455,7 +1457,9 @@ fn test_fee_spike_violation_fails_htlc() {
let commit_signed_msg = msgs::CommitmentSigned {
channel_id: chan.2,
signature: res.0,
htlc_signatures: res.1
htlc_signatures: res.1,
#[cfg(taproot)]
partial_signature_with_nonce: None,
};
// Send the commitment_signed message to the nodes[1].

View file

@ -426,6 +426,9 @@ pub struct CommitmentSigned {
pub signature: Signature,
/// Signatures on the HTLC transactions
pub htlc_signatures: Vec<Signature>,
#[cfg(taproot)]
/// The partial Taproot signature on the commitment transaction
pub partial_signature_with_nonce: Option<PartialSignatureWithNonce>,
}
/// A [`revoke_and_ack`] message to be sent to or received from a peer.
@ -1402,12 +1405,22 @@ impl_writeable!(ClosingSignedFeeRange, {
max_fee_satoshis
});
#[cfg(not(taproot))]
impl_writeable_msg!(CommitmentSigned, {
channel_id,
signature,
htlc_signatures
}, {});
#[cfg(taproot)]
impl_writeable_msg!(CommitmentSigned, {
channel_id,
signature,
htlc_signatures
}, {
(2, partial_signature_with_nonce, option)
});
impl_writeable!(DecodedOnionErrorPacket, {
hmac,
failuremsg,
@ -2713,6 +2726,8 @@ mod tests {
channel_id: [2; 32],
signature: sig_1,
htlc_signatures: if htlcs { vec![sig_2, sig_3, sig_4] } else { Vec::new() },
#[cfg(taproot)]
partial_signature_with_nonce: None,
};
let encoded_value = commitment_signed.encode();
let mut target_value = hex::decode("0202020202020202020202020202020202020202020202020202020202020202d977cb9b53d93a6ff64bb5f1e158b4094b66e798fb12911168a3ccdf80a83096340a6a95da0ae8d9f776528eecdbb747eb6b545495a4319ed5378e35b21e073a").unwrap();