X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fchain%2Fonchaintx.rs;h=18679f0aacd5cd34fead7952fc91be997ad4e57b;hb=f4e6d4a65307f1aaf921801d646c3c7a2e86e145;hp=c8874b7ac597baa9702d5f8e3dc1d5857815cfcd;hpb=e9ac2b1669bf9f3c44de89f67f5d549280065ea3;p=rust-lightning diff --git a/lightning/src/chain/onchaintx.rs b/lightning/src/chain/onchaintx.rs index c8874b7a..18679f0a 100644 --- a/lightning/src/chain/onchaintx.rs +++ b/lightning/src/chain/onchaintx.rs @@ -21,29 +21,31 @@ use bitcoin::hash_types::Txid; use bitcoin::secp256k1::{Secp256k1, ecdsa::Signature}; use bitcoin::secp256k1; -use ln::msgs::DecodeError; -use ln::PaymentPreimage; +use crate::ln::msgs::DecodeError; +use crate::ln::PaymentPreimage; #[cfg(anchors)] -use ln::chan_utils; -use ln::chan_utils::{ChannelTransactionParameters, HolderCommitmentTransaction}; +use crate::ln::chan_utils; +use crate::ln::chan_utils::{ChannelTransactionParameters, HolderCommitmentTransaction}; #[cfg(anchors)] -use chain::chaininterface::ConfirmationTarget; -use chain::chaininterface::{FeeEstimator, BroadcasterInterface, LowerBoundedFeeEstimator}; -use chain::channelmonitor::{ANTI_REORG_DELAY, CLTV_SHARED_CLAIM_BUFFER}; -use chain::keysinterface::{Sign, KeysInterface}; +use crate::chain::chaininterface::ConfirmationTarget; +use crate::chain::chaininterface::{FeeEstimator, BroadcasterInterface, LowerBoundedFeeEstimator}; +use crate::chain::channelmonitor::{ANTI_REORG_DELAY, CLTV_SHARED_CLAIM_BUFFER}; +use crate::chain::keysinterface::{Sign, KeysInterface}; #[cfg(anchors)] -use chain::package::PackageSolvingData; -use chain::package::PackageTemplate; -use util::logger::Logger; -use util::ser::{Readable, ReadableArgs, MaybeReadable, Writer, Writeable, VecWriter}; -use util::byte_utils; - -use io; -use prelude::*; +use crate::chain::package::PackageSolvingData; +use crate::chain::package::PackageTemplate; +use crate::util::logger::Logger; +use crate::util::ser::{Readable, ReadableArgs, MaybeReadable, Writer, Writeable, VecWriter}; +use crate::util::byte_utils; + +use crate::io; +use crate::prelude::*; use alloc::collections::BTreeMap; use core::cmp; use core::ops::Deref; use core::mem::replace; +#[cfg(anchors)] +use core::mem::swap; use bitcoin::hashes::Hash; const MAX_ALLOC_SIZE: usize = 64*1024; @@ -409,6 +411,13 @@ impl OnchainTxHandler { self.holder_commitment.to_broadcaster_value_sat() } + #[cfg(anchors)] + pub(crate) fn get_and_clear_pending_claim_events(&mut self) -> Vec { + let mut ret = HashMap::new(); + swap(&mut ret, &mut self.pending_claim_events); + ret.into_iter().map(|(_, event)| event).collect::>() + } + /// Lightning security model (i.e being able to redeem/timeout HTLC or penalize counterparty /// onchain) lays on the assumption of claim transactions getting confirmed before timelock /// expiration (CSV or CLTV following cases). In case of high-fee spikes, claim tx may get stuck