@@ -1178,7 +1178,7 @@ impl HolderCommitmentTransaction {
11781178 for _ in 0 ..htlcs. len ( ) {
11791179 counterparty_htlc_sigs. push ( dummy_sig) ;
11801180 }
1181- let inner = CommitmentTransaction :: new_with_auxiliary_htlc_data ( 0 , 0 , 0 , dummy_key . clone ( ) , dummy_key . clone ( ) , keys, 0 , htlcs, & channel_parameters. as_counterparty_broadcastable ( ) ) ;
1181+ let inner = CommitmentTransaction :: new_with_auxiliary_htlc_data ( 0 , 0 , 0 , keys, 0 , htlcs, & channel_parameters. as_counterparty_broadcastable ( ) ) ;
11821182 htlcs. sort_by_key ( |htlc| htlc. 0 . transaction_output_index ) ;
11831183 HolderCommitmentTransaction {
11841184 inner,
@@ -1488,12 +1488,12 @@ impl CommitmentTransaction {
14881488 /// Only include HTLCs that are above the dust limit for the channel.
14891489 ///
14901490 /// This is not exported to bindings users due to the generic though we likely should expose a version without
1491- pub fn new_with_auxiliary_htlc_data < T > ( commitment_number : u64 , to_broadcaster_value_sat : u64 , to_countersignatory_value_sat : u64 , broadcaster_funding_key : PublicKey , countersignatory_funding_key : PublicKey , keys : TxCreationKeys , feerate_per_kw : u32 , htlcs_with_aux : & mut Vec < ( HTLCOutputInCommitment , T ) > , channel_parameters : & DirectedChannelTransactionParameters ) -> CommitmentTransaction {
1491+ pub fn new_with_auxiliary_htlc_data < T > ( commitment_number : u64 , to_broadcaster_value_sat : u64 , to_countersignatory_value_sat : u64 , keys : TxCreationKeys , feerate_per_kw : u32 , htlcs_with_aux : & mut Vec < ( HTLCOutputInCommitment , T ) > , channel_parameters : & DirectedChannelTransactionParameters ) -> CommitmentTransaction {
14921492 let to_broadcaster_value_sat = Amount :: from_sat ( to_broadcaster_value_sat) ;
14931493 let to_countersignatory_value_sat = Amount :: from_sat ( to_countersignatory_value_sat) ;
14941494
14951495 // Sort outputs and populate output indices while keeping track of the auxiliary data
1496- let ( outputs, htlcs) = Self :: internal_build_outputs ( & keys, to_broadcaster_value_sat, to_countersignatory_value_sat, htlcs_with_aux, channel_parameters, & broadcaster_funding_key , & countersignatory_funding_key ) . unwrap ( ) ;
1496+ let ( outputs, htlcs) = Self :: internal_build_outputs ( & keys, to_broadcaster_value_sat, to_countersignatory_value_sat, htlcs_with_aux, channel_parameters) . unwrap ( ) ;
14971497
14981498 let ( obscured_commitment_transaction_number, txins) = Self :: internal_build_inputs ( commitment_number, channel_parameters) ;
14991499 let transaction = Self :: make_transaction ( obscured_commitment_transaction_number, txins, outputs) ;
@@ -1522,11 +1522,11 @@ impl CommitmentTransaction {
15221522 self
15231523 }
15241524
1525- fn internal_rebuild_transaction ( & self , keys : & TxCreationKeys , channel_parameters : & DirectedChannelTransactionParameters , broadcaster_funding_key : & PublicKey , countersignatory_funding_key : & PublicKey ) -> Result < BuiltCommitmentTransaction , ( ) > {
1525+ fn internal_rebuild_transaction ( & self , keys : & TxCreationKeys , channel_parameters : & DirectedChannelTransactionParameters ) -> Result < BuiltCommitmentTransaction , ( ) > {
15261526 let ( obscured_commitment_transaction_number, txins) = Self :: internal_build_inputs ( self . commitment_number , channel_parameters) ;
15271527
15281528 let mut htlcs_with_aux = self . htlcs . iter ( ) . map ( |h| ( h. clone ( ) , ( ) ) ) . collect ( ) ;
1529- let ( outputs, _) = Self :: internal_build_outputs ( keys, self . to_broadcaster_value_sat , self . to_countersignatory_value_sat , & mut htlcs_with_aux, channel_parameters, broadcaster_funding_key , countersignatory_funding_key ) ?;
1529+ let ( outputs, _) = Self :: internal_build_outputs ( keys, self . to_broadcaster_value_sat , self . to_countersignatory_value_sat , & mut htlcs_with_aux, channel_parameters) ?;
15301530
15311531 let transaction = Self :: make_transaction ( obscured_commitment_transaction_number, txins, outputs) ;
15321532 let txid = transaction. compute_txid ( ) ;
@@ -1550,8 +1550,10 @@ impl CommitmentTransaction {
15501550 // - initial sorting of outputs / HTLCs in the constructor, in which case T is auxiliary data the
15511551 // caller needs to have sorted together with the HTLCs so it can keep track of the output index
15521552 // - building of a bitcoin transaction during a verify() call, in which case T is just ()
1553- fn internal_build_outputs < T > ( keys : & TxCreationKeys , to_broadcaster_value_sat : Amount , to_countersignatory_value_sat : Amount , htlcs_with_aux : & mut Vec < ( HTLCOutputInCommitment , T ) > , channel_parameters : & DirectedChannelTransactionParameters , broadcaster_funding_key : & PublicKey , countersignatory_funding_key : & PublicKey ) -> Result < ( Vec < TxOut > , Vec < HTLCOutputInCommitment > ) , ( ) > {
1553+ fn internal_build_outputs < T > ( keys : & TxCreationKeys , to_broadcaster_value_sat : Amount , to_countersignatory_value_sat : Amount , htlcs_with_aux : & mut Vec < ( HTLCOutputInCommitment , T ) > , channel_parameters : & DirectedChannelTransactionParameters ) -> Result < ( Vec < TxOut > , Vec < HTLCOutputInCommitment > ) , ( ) > {
15541554 let countersignatory_pubkeys = channel_parameters. countersignatory_pubkeys ( ) ;
1555+ let broadcaster_funding_key = & channel_parameters. broadcaster_pubkeys ( ) . funding_pubkey ;
1556+ let countersignatory_funding_key = & countersignatory_pubkeys. funding_pubkey ;
15551557 let contest_delay = channel_parameters. contest_delay ( ) ;
15561558
15571559 let mut txouts: Vec < ( TxOut , Option < & mut HTLCOutputInCommitment > ) > = Vec :: new ( ) ;
@@ -1723,14 +1725,14 @@ impl CommitmentTransaction {
17231725 ///
17241726 /// An external validating signer must call this method before signing
17251727 /// or using the built transaction.
1726- pub fn verify < T : secp256k1:: Signing + secp256k1:: Verification > ( & self , channel_parameters : & DirectedChannelTransactionParameters , broadcaster_keys : & ChannelPublicKeys , countersignatory_keys : & ChannelPublicKeys , secp_ctx : & Secp256k1 < T > ) -> Result < TrustedCommitmentTransaction , ( ) > {
1728+ pub fn verify < T : secp256k1:: Signing + secp256k1:: Verification > ( & self , channel_parameters : & DirectedChannelTransactionParameters , secp_ctx : & Secp256k1 < T > ) -> Result < TrustedCommitmentTransaction , ( ) > {
17271729 // This is the only field of the key cache that we trust
17281730 let per_commitment_point = self . keys . per_commitment_point ;
1729- let keys = TxCreationKeys :: from_channel_static_keys ( & per_commitment_point, broadcaster_keys , countersignatory_keys , secp_ctx) ;
1731+ let keys = TxCreationKeys :: from_channel_static_keys ( & per_commitment_point, channel_parameters . broadcaster_pubkeys ( ) , channel_parameters . countersignatory_pubkeys ( ) , secp_ctx) ;
17301732 if keys != self . keys {
17311733 return Err ( ( ) ) ;
17321734 }
1733- let tx = self . internal_rebuild_transaction ( & keys, channel_parameters, & broadcaster_keys . funding_pubkey , & countersignatory_keys . funding_pubkey ) ?;
1735+ let tx = self . internal_rebuild_transaction ( & keys, channel_parameters) ?;
17341736 if self . built . transaction != tx. transaction || self . built . txid != tx. txid {
17351737 return Err ( ( ) ) ;
17361738 }
@@ -1953,8 +1955,6 @@ mod tests {
19531955
19541956 struct TestCommitmentTxBuilder {
19551957 commitment_number : u64 ,
1956- holder_funding_pubkey : PublicKey ,
1957- counterparty_funding_pubkey : PublicKey ,
19581958 keys : TxCreationKeys ,
19591959 feerate_per_kw : u32 ,
19601960 htlcs_with_aux : Vec < ( HTLCOutputInCommitment , ( ) ) > ,
@@ -1993,8 +1993,6 @@ mod tests {
19931993
19941994 Self {
19951995 commitment_number : 0 ,
1996- holder_funding_pubkey : holder_pubkeys. funding_pubkey ,
1997- counterparty_funding_pubkey : counterparty_pubkeys. funding_pubkey ,
19981996 keys,
19991997 feerate_per_kw : 1 ,
20001998 htlcs_with_aux,
@@ -2006,8 +2004,6 @@ mod tests {
20062004 fn build ( & mut self , to_broadcaster_sats : u64 , to_countersignatory_sats : u64 ) -> CommitmentTransaction {
20072005 CommitmentTransaction :: new_with_auxiliary_htlc_data (
20082006 self . commitment_number , to_broadcaster_sats, to_countersignatory_sats,
2009- self . holder_funding_pubkey . clone ( ) ,
2010- self . counterparty_funding_pubkey . clone ( ) ,
20112007 self . keys . clone ( ) , self . feerate_per_kw ,
20122008 & mut self . htlcs_with_aux , & self . channel_parameters . as_holder_broadcastable ( )
20132009 )
0 commit comments