let mut config = test_default_channel_config();
if anchors {
config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = true;
+ config.manually_accept_inbound_channels = true;
}
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[Some(config), Some(config)]);
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
// feerate for the test, we just want to make sure the feerates we receive from
// the events never decrease.
tx.input.push(descriptor.unsigned_tx_input());
- 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 signer = descriptor.derive_channel_signer(&nodes[0].keys_manager);
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"); };
let mut anchors_config = UserConfig::default();
anchors_config.channel_handshake_config.announced_channel = true;
anchors_config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = true;
+ anchors_config.manually_accept_inbound_channels = true;
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[Some(anchors_config), Some(anchors_config)]);
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
script_pubkey: Script::new_op_return(&[]),
}],
};
- let signer = nodes[0].keys_manager.derive_channel_keys(
- anchor_descriptor.channel_value_satoshis, &anchor_descriptor.channel_keys_id,
- );
+ let signer = anchor_descriptor.derive_channel_signer(&nodes[0].keys_manager);
let funding_sig = signer.sign_holder_anchor_input(&mut anchor_tx, 0, &secp).unwrap();
anchor_tx.input[0].witness = chan_utils::build_anchor_input_witness(
&signer.pubkeys().funding_pubkey, &funding_sig
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,
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 = htlc_descriptor.derive_channel_signer(&nodes[0].keys_manager);
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);
},
let mut anchors_config = UserConfig::default();
anchors_config.channel_handshake_config.announced_channel = true;
anchors_config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx = true;
+ anchors_config.manually_accept_inbound_channels = true;
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[Some(anchors_config), Some(anchors_config)]);
let bob_persister: test_utils::TestPersister;
previous_output: anchor_descriptor.outpoint,
..Default::default()
});
- let signer = nodes[1].keys_manager.derive_channel_keys(
- anchor_descriptor.channel_value_satoshis, &anchor_descriptor.channel_keys_id,
- );
+ let signer = anchor_descriptor.derive_channel_signer(&nodes[1].keys_manager);
signers.push(signer);
},
_ => panic!("Unexpected event"),
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;
}
for (idx, htlc_descriptor) in descriptors.into_iter().enumerate() {
let htlc_input_idx = idx + 1;
- let signer = nodes[1].keys_manager.derive_channel_keys(
- htlc_descriptor.channel_value_satoshis, &htlc_descriptor.channel_keys_id
- );
+ let signer = htlc_descriptor.derive_channel_signer(&nodes[1].keys_manager);
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 = {