Cache HTLC per_commitment_point in descriptor
[rust-lightning] / lightning / src / ln / monitor_tests.rs
index 2a3f5849b95d07f46e6e393bed08d4919d3f1272..4d37f936970702b576fb29f6f57a1d4274637d7b 100644 (file)
@@ -1781,12 +1781,9 @@ fn do_test_monitor_rebroadcast_pending_claims(anchors: bool) {
                                let signer = nodes[0].keys_manager.derive_channel_keys(
                                        descriptor.channel_value_satoshis, &descriptor.channel_keys_id,
                                );
-                               let per_commitment_point = signer.get_per_commitment_point(
-                                       descriptor.per_commitment_number, &secp
-                               );
-                               tx.output.push(descriptor.tx_output(&per_commitment_point, &secp));
+                               tx.output.push(descriptor.tx_output(&secp));
                                let our_sig = signer.sign_holder_htlc_transaction(&mut tx, 0, &descriptor, &secp).unwrap();
-                               let witness_script = descriptor.witness_script(&per_commitment_point, &secp);
+                               let witness_script = descriptor.witness_script(&secp);
                                tx.input[0].witness = descriptor.tx_input_witness(&our_sig, &witness_script);
                                target_feerate_sat_per_1000_weight as u64
                        } else { panic!("unexpected event"); };
@@ -1943,10 +1940,6 @@ fn test_yield_anchors_events() {
                        Event::BumpTransaction(BumpTransactionEvent::HTLCResolution { htlc_descriptors, tx_lock_time, .. }) => {
                                assert_eq!(htlc_descriptors.len(), 1);
                                let htlc_descriptor = &htlc_descriptors[0];
-                               let signer = nodes[0].keys_manager.derive_channel_keys(
-                                       htlc_descriptor.channel_value_satoshis, &htlc_descriptor.channel_keys_id
-                               );
-                               let per_commitment_point = signer.get_per_commitment_point(htlc_descriptor.per_commitment_number, &secp);
                                let mut htlc_tx = Transaction {
                                        version: 2,
                                        lock_time: tx_lock_time,
@@ -1955,15 +1948,18 @@ fn test_yield_anchors_events() {
                                                TxIn { ..Default::default() } // Fee input
                                        ],
                                        output: vec![
-                                               htlc_descriptor.tx_output(&per_commitment_point, &secp), // HTLC output
+                                               htlc_descriptor.tx_output(&secp), // HTLC output
                                                TxOut { // Fee input change
                                                        value: Amount::ONE_BTC.to_sat(),
                                                        script_pubkey: Script::new_op_return(&[]),
                                                }
                                        ]
                                };
+                               let signer = nodes[0].keys_manager.derive_channel_keys(
+                                       htlc_descriptor.channel_value_satoshis, &htlc_descriptor.channel_keys_id
+                               );
                                let our_sig = signer.sign_holder_htlc_transaction(&mut htlc_tx, 0, htlc_descriptor, &secp).unwrap();
-                               let witness_script = htlc_descriptor.witness_script(&per_commitment_point, &secp);
+                               let witness_script = htlc_descriptor.witness_script(&secp);
                                htlc_tx.input[0].witness = htlc_descriptor.tx_input_witness(&our_sig, &witness_script);
                                htlc_txs.push(htlc_tx);
                        },
@@ -2227,12 +2223,8 @@ fn test_anchors_aggregated_revoked_htlc_tx() {
                                assert_eq!(htlc_descriptors.len(), 2);
                                for htlc_descriptor in &htlc_descriptors {
                                        assert!(!htlc_descriptor.htlc.offered);
-                                       let signer = nodes[1].keys_manager.derive_channel_keys(
-                                               htlc_descriptor.channel_value_satoshis, &htlc_descriptor.channel_keys_id
-                                       );
-                                       let per_commitment_point = signer.get_per_commitment_point(htlc_descriptor.per_commitment_number, &secp);
                                        htlc_tx.input.push(htlc_descriptor.unsigned_tx_input());
-                                       htlc_tx.output.push(htlc_descriptor.tx_output(&per_commitment_point, &secp));
+                                       htlc_tx.output.push(htlc_descriptor.tx_output(&secp));
                                }
                                descriptors.append(&mut htlc_descriptors);
                                htlc_tx.lock_time = tx_lock_time;
@@ -2246,8 +2238,7 @@ fn test_anchors_aggregated_revoked_htlc_tx() {
                                htlc_descriptor.channel_value_satoshis, &htlc_descriptor.channel_keys_id
                        );
                        let our_sig = signer.sign_holder_htlc_transaction(&htlc_tx, htlc_input_idx, &htlc_descriptor, &secp).unwrap();
-                       let per_commitment_point = signer.get_per_commitment_point(htlc_descriptor.per_commitment_number, &secp);
-                       let witness_script = htlc_descriptor.witness_script(&per_commitment_point, &secp);
+                       let witness_script = htlc_descriptor.witness_script(&secp);
                        htlc_tx.input[htlc_input_idx].witness = htlc_descriptor.tx_input_witness(&our_sig, &witness_script);
                }
                let fee_utxo_sig = {