mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-24 23:08:36 +01:00
Set correct counterparty_spendable_height
for outb local HTLCs
For outbound HTLCs, the counterparty can spend the output immediately. This fixes the `counterparty_spendable_height` in the `PackageTemplate` claiming outbound HTLCs on local commitment transactions, which was previously spuriously set to the HTLC timeout (at which point *we* can claim the HTLC).
This commit is contained in:
parent
d557334e31
commit
6ae33dc1e0
1 changed files with 5 additions and 5 deletions
|
@ -3666,7 +3666,7 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitorImpl<Signer> {
|
|||
// Returns (1) `PackageTemplate`s that can be given to the OnchainTxHandler, so that the handler can
|
||||
// broadcast transactions claiming holder HTLC commitment outputs and (2) a holder revokable
|
||||
// script so we can detect whether a holder transaction has been seen on-chain.
|
||||
fn get_broadcasted_holder_claims(&self, holder_tx: &HolderSignedTx, _conf_height: u32) -> (Vec<PackageTemplate>, Option<(ScriptBuf, PublicKey, RevocationKey)>) {
|
||||
fn get_broadcasted_holder_claims(&self, holder_tx: &HolderSignedTx, conf_height: u32) -> (Vec<PackageTemplate>, Option<(ScriptBuf, PublicKey, RevocationKey)>) {
|
||||
let mut claim_requests = Vec::with_capacity(holder_tx.htlc_outputs.len());
|
||||
|
||||
let redeemscript = chan_utils::get_revokeable_redeemscript(&holder_tx.revocation_key, self.on_holder_tx_csv, &holder_tx.delayed_payment_key);
|
||||
|
@ -3674,11 +3674,11 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitorImpl<Signer> {
|
|||
|
||||
for &(ref htlc, _, _) in holder_tx.htlc_outputs.iter() {
|
||||
if let Some(transaction_output_index) = htlc.transaction_output_index {
|
||||
let htlc_output = if htlc.offered {
|
||||
let (htlc_output, counterparty_spendable_height) = if htlc.offered {
|
||||
let htlc_output = HolderHTLCOutput::build_offered(
|
||||
htlc.amount_msat, htlc.cltv_expiry, self.onchain_tx_handler.channel_type_features().clone()
|
||||
);
|
||||
htlc_output
|
||||
(htlc_output, conf_height)
|
||||
} else {
|
||||
let payment_preimage = if let Some(preimage) = self.payment_preimages.get(&htlc.payment_hash) {
|
||||
preimage.clone()
|
||||
|
@ -3689,12 +3689,12 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitorImpl<Signer> {
|
|||
let htlc_output = HolderHTLCOutput::build_accepted(
|
||||
payment_preimage, htlc.amount_msat, self.onchain_tx_handler.channel_type_features().clone()
|
||||
);
|
||||
htlc_output
|
||||
(htlc_output, htlc.cltv_expiry)
|
||||
};
|
||||
let htlc_package = PackageTemplate::build_package(
|
||||
holder_tx.txid, transaction_output_index,
|
||||
PackageSolvingData::HolderHTLCOutput(htlc_output),
|
||||
htlc.cltv_expiry,
|
||||
counterparty_spendable_height,
|
||||
);
|
||||
claim_requests.push(htlc_package);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue