let should_broadcast = self.should_broadcast_holder_commitment_txn(logger);
if should_broadcast {
- let funding_outp = HolderFundingOutput::build(self.funding_redeemscript.clone());
+ let funding_outp = HolderFundingOutput::build(self.funding_redeemscript.clone(), 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));
#[derive(Clone, PartialEq, Eq)]
pub(crate) struct HolderFundingOutput {
funding_redeemscript: Script,
+ opt_anchors: Option<()>,
}
+
impl HolderFundingOutput {
- pub(crate) fn build(funding_redeemscript: Script) -> Self {
+ pub(crate) fn build(funding_redeemscript: Script, opt_anchors: bool) -> Self {
HolderFundingOutput {
funding_redeemscript,
+ opt_anchors: if opt_anchors { Some(()) } else { None },
}
}
+
+ fn opt_anchors(&self) -> bool {
+ self.opt_anchors.is_some()
+ }
}
impl_writeable_tlv_based!(HolderFundingOutput, {
(0, funding_redeemscript, required),
+ (1, opt_anchors, option),
});
/// A wrapper encapsulating all in-protocol differing outputs types.