mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-25 07:17:40 +01:00
Track funding amount in HolderFundingOutput
This will be useful later on when determining the appropriate fee rate to use on the anchor transaction to bump its commitment transaction.
This commit is contained in:
parent
492b24059e
commit
ccf318e597
2 changed files with 14 additions and 8 deletions
|
@ -2884,7 +2884,7 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
|
|||
|
||||
let should_broadcast = self.should_broadcast_holder_commitment_txn(logger);
|
||||
if should_broadcast {
|
||||
let funding_outp = HolderFundingOutput::build(self.funding_redeemscript.clone(), self.onchain_tx_handler.opt_anchors());
|
||||
let funding_outp = HolderFundingOutput::build(self.funding_redeemscript.clone(), self.channel_value_satoshis, self.onchain_tx_handler.opt_anchors());
|
||||
let commitment_package = PackageTemplate::build_package(self.funding_info.0.txid.clone(), self.funding_info.0.index as u32, PackageSolvingData::HolderFundingOutput(funding_outp), self.best_block.height(), false, self.best_block.height());
|
||||
claimable_outpoints.push(commitment_package);
|
||||
self.pending_monitor_events.push(MonitorEvent::CommitmentTxConfirmed(self.funding_info.0));
|
||||
|
|
|
@ -286,14 +286,16 @@ impl_writeable_tlv_based!(HolderHTLCOutput, {
|
|||
#[derive(Clone, PartialEq, Eq)]
|
||||
pub(crate) struct HolderFundingOutput {
|
||||
funding_redeemscript: Script,
|
||||
funding_amount: Option<u64>,
|
||||
opt_anchors: Option<()>,
|
||||
}
|
||||
|
||||
|
||||
impl HolderFundingOutput {
|
||||
pub(crate) fn build(funding_redeemscript: Script, opt_anchors: bool) -> Self {
|
||||
pub(crate) fn build(funding_redeemscript: Script, funding_amount: u64, opt_anchors: bool) -> Self {
|
||||
HolderFundingOutput {
|
||||
funding_redeemscript,
|
||||
funding_amount: Some(funding_amount),
|
||||
opt_anchors: if opt_anchors { Some(()) } else { None },
|
||||
}
|
||||
}
|
||||
|
@ -306,6 +308,7 @@ impl HolderFundingOutput {
|
|||
impl_writeable_tlv_based!(HolderFundingOutput, {
|
||||
(0, funding_redeemscript, required),
|
||||
(1, opt_anchors, option),
|
||||
(3, funding_amount, option),
|
||||
});
|
||||
|
||||
/// A wrapper encapsulating all in-protocol differing outputs types.
|
||||
|
@ -325,15 +328,18 @@ pub(crate) enum PackageSolvingData {
|
|||
impl PackageSolvingData {
|
||||
fn amount(&self) -> u64 {
|
||||
let amt = match self {
|
||||
PackageSolvingData::RevokedOutput(ref outp) => { outp.amount },
|
||||
PackageSolvingData::RevokedHTLCOutput(ref outp) => { outp.amount },
|
||||
PackageSolvingData::CounterpartyOfferedHTLCOutput(ref outp) => { outp.htlc.amount_msat / 1000 },
|
||||
PackageSolvingData::CounterpartyReceivedHTLCOutput(ref outp) => { outp.htlc.amount_msat / 1000 },
|
||||
PackageSolvingData::RevokedOutput(ref outp) => outp.amount,
|
||||
PackageSolvingData::RevokedHTLCOutput(ref outp) => outp.amount,
|
||||
PackageSolvingData::CounterpartyOfferedHTLCOutput(ref outp) => outp.htlc.amount_msat / 1000,
|
||||
PackageSolvingData::CounterpartyReceivedHTLCOutput(ref outp) => outp.htlc.amount_msat / 1000,
|
||||
// Note: Currently, amounts of holder outputs spending witnesses aren't used
|
||||
// as we can't malleate spending package to increase their feerate. This
|
||||
// should change with the remaining anchor output patchset.
|
||||
PackageSolvingData::HolderHTLCOutput(..) => { unreachable!() },
|
||||
PackageSolvingData::HolderFundingOutput(..) => { unreachable!() },
|
||||
PackageSolvingData::HolderHTLCOutput(..) => unreachable!(),
|
||||
PackageSolvingData::HolderFundingOutput(ref outp) => {
|
||||
debug_assert!(outp.opt_anchors());
|
||||
outp.funding_amount.unwrap()
|
||||
}
|
||||
};
|
||||
amt
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue