X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fsign%2Ftaproot.rs;h=230383f4f7d6496bcb1b7d40829b086ea6d39d05;hb=a97f945607062e8a06539e317ec04ef935880485;hp=2c9eb6970464e8f81940c3d3d876bf6e0cfcfc4f;hpb=f862aa9f5f95b89b3d202f425669a4c7dfcdce3e;p=rust-lightning diff --git a/lightning/src/sign/taproot.rs b/lightning/src/sign/taproot.rs index 2c9eb697..230383f4 100644 --- a/lightning/src/sign/taproot.rs +++ b/lightning/src/sign/taproot.rs @@ -1,5 +1,6 @@ //! Defines a Taproot-specific signer type. +use alloc::vec::Vec; use bitcoin::blockdata::transaction::Transaction; use bitcoin::secp256k1; use bitcoin::secp256k1::{PublicKey, schnorr::Signature, Secp256k1, SecretKey}; @@ -26,17 +27,19 @@ pub trait TaprootChannelSigner: ChannelSigner { /// Policy checks should be implemented in this function, including checking the amount /// sent to us and checking the HTLCs. /// - /// The preimages of outgoing HTLCs that were fulfilled since the last commitment are provided. - /// A validating signer should ensure that an HTLC output is removed only when the matching - /// preimage is provided, or when the value to holder is restored. + /// The preimages of outbound and inbound HTLCs that were fulfilled since the last commitment + /// are provided. A validating signer should ensure that an outbound HTLC output is removed + /// only when the matching preimage is provided and after the corresponding inbound HTLC has + /// been removed for forwarded payments. /// /// Note that all the relevant preimages will be provided, but there may also be additional /// irrelevant or duplicate preimages. // // TODO: Document the things someone using this interface should enforce before signing. fn partially_sign_counterparty_commitment(&self, counterparty_nonce: PublicNonce, - commitment_tx: &CommitmentTransaction, preimages: Vec, - secp_ctx: &Secp256k1, + commitment_tx: &CommitmentTransaction, + inbound_htlc_preimages: Vec, + outbound_htlc_preimages: Vec, secp_ctx: &Secp256k1, ) -> Result<(PartialSignatureWithNonce, Vec), ()>; /// Creates a signature for a holder's commitment transaction. @@ -50,8 +53,7 @@ pub trait TaprootChannelSigner: ChannelSigner { /// An external signer implementation should check that the commitment has not been revoked. /// // TODO: Document the things someone using this interface should enforce before signing. - fn finalize_holder_commitment(&self, commitment_number: u64, - commitment_tx: &HolderCommitmentTransaction, + fn finalize_holder_commitment(&self, commitment_tx: &HolderCommitmentTransaction, counterparty_partial_signature: PartialSignatureWithNonce, secp_ctx: &Secp256k1 ) -> Result;