Skip to content

Commit 1956024

Browse files
committed
Make all internal signatures accept LowerBoundedFeeEstimator
1 parent fea9c4e commit 1956024

File tree

9 files changed

+104
-85
lines changed

9 files changed

+104
-85
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use lightning::chain;
3333
use lightning::chain::{BestBlock, ChannelMonitorUpdateErr, chainmonitor, channelmonitor, Confirm, Watch};
3434
use lightning::chain::channelmonitor::{ChannelMonitor, MonitorEvent};
3535
use lightning::chain::transaction::OutPoint;
36-
use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget, FeeEstimator};
36+
use lightning::chain::chaininterface::{BroadcasterInterface, ConfirmationTarget, FeeEstimator, LowerBoundedFeeEstimator};
3737
use lightning::chain::keysinterface::{KeyMaterial, KeysInterface, InMemorySigner, Recipient};
3838
use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
3939
use lightning::ln::channelmanager::{ChainParameters, ChannelManager, PaymentSendFailure, ChannelManagerReadArgs};
@@ -140,7 +140,7 @@ impl chain::Watch<EnforcingSigner> for TestChainMonitor {
140140
};
141141
let deserialized_monitor = <(BlockHash, channelmonitor::ChannelMonitor<EnforcingSigner>)>::
142142
read(&mut Cursor::new(&map_entry.get().1), &*self.keys).unwrap().1;
143-
deserialized_monitor.update_monitor(&update, &&TestBroadcaster{}, &&FuzzEstimator { ret_val: atomic::AtomicU32::new(253) }, &self.logger).unwrap();
143+
deserialized_monitor.update_monitor(&update, &&TestBroadcaster{}, &LowerBoundedFeeEstimator::new(&FuzzEstimator { ret_val: atomic::AtomicU32::new(253) }), &self.logger).unwrap();
144144
let mut ser = VecWriter(Vec::new());
145145
deserialized_monitor.write(&mut ser).unwrap();
146146
map_entry.insert((update.update_id, ser.0));

lightning-block-sync/src/init.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ BlockSourceResult<ValidatedBlockHeader> where B::Target: BlockSource {
4545
/// use lightning::chain::chainmonitor;
4646
/// use lightning::chain::chainmonitor::ChainMonitor;
4747
/// use lightning::chain::channelmonitor::ChannelMonitor;
48-
/// use lightning::chain::chaininterface::BroadcasterInterface;
48+
/// use lightning::chain::chaininterface::{BroadcasterInterface, LowerBoundedFeeEstimator};
4949
/// use lightning::chain::chaininterface::FeeEstimator;
5050
/// use lightning::chain::keysinterface;
5151
/// use lightning::chain::keysinterface::KeysInterface;

lightning/src/chain/chainmonitor.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use bitcoin::hash_types::Txid;
2828

2929
use chain;
3030
use chain::{ChannelMonitorUpdateErr, Filter, WatchedOutput};
31-
use chain::chaininterface::{BroadcasterInterface, FeeEstimator};
31+
use chain::chaininterface::{BroadcasterInterface, FeeEstimator, LowerBoundedFeeEstimator};
3232
use chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, Balance, MonitorEvent, TransactionOutputs, LATENCY_GRACE_PERIOD_BLOCKS};
3333
use chain::transaction::{OutPoint, TransactionData};
3434
use chain::keysinterface::Sign;
@@ -231,7 +231,7 @@ pub struct ChainMonitor<ChannelSigner: Sign, C: Deref, T: Deref, F: Deref, L: De
231231
chain_source: Option<C>,
232232
broadcaster: T,
233233
logger: L,
234-
fee_estimator: F,
234+
fee_estimator: LowerBoundedFeeEstimator<F>,
235235
persister: P,
236236
/// "User-provided" (ie persistence-completion/-failed) [`MonitorEvent`]s. These came directly
237237
/// from the user and not from a [`ChannelMonitor`].
@@ -354,7 +354,7 @@ where C::Target: chain::Filter,
354354
chain_source,
355355
broadcaster,
356356
logger,
357-
fee_estimator: feeest,
357+
fee_estimator: LowerBoundedFeeEstimator::new(feeest),
358358
persister,
359359
pending_monitor_events: Mutex::new(Vec::new()),
360360
highest_chain_height: AtomicUsize::new(0),
@@ -505,7 +505,7 @@ where
505505
log_debug!(self.logger, "New best block {} at height {} provided via block_connected", header.block_hash(), height);
506506
self.process_chain_data(header, Some(height), &txdata, |monitor, txdata| {
507507
monitor.block_connected(
508-
header, txdata, height, &*self.broadcaster, &*self.fee_estimator, &*self.logger)
508+
header, txdata, height, &*self.broadcaster, &self.fee_estimator, &*self.logger)
509509
});
510510
}
511511

@@ -514,7 +514,7 @@ where
514514
log_debug!(self.logger, "Latest block {} at height {} removed via block_disconnected", header.block_hash(), height);
515515
for monitor_state in monitor_states.values() {
516516
monitor_state.monitor.block_disconnected(
517-
header, height, &*self.broadcaster, &*self.fee_estimator, &*self.logger);
517+
header, height, &*self.broadcaster, &self.fee_estimator, &*self.logger);
518518
}
519519
}
520520
}
@@ -532,15 +532,15 @@ where
532532
log_debug!(self.logger, "{} provided transactions confirmed at height {} in block {}", txdata.len(), height, header.block_hash());
533533
self.process_chain_data(header, None, txdata, |monitor, txdata| {
534534
monitor.transactions_confirmed(
535-
header, txdata, height, &*self.broadcaster, &*self.fee_estimator, &*self.logger)
535+
header, txdata, height, &*self.broadcaster, &self.fee_estimator, &*self.logger)
536536
});
537537
}
538538

539539
fn transaction_unconfirmed(&self, txid: &Txid) {
540540
log_debug!(self.logger, "Transaction {} reorganized out of chain", txid);
541541
let monitor_states = self.monitors.read().unwrap();
542542
for monitor_state in monitor_states.values() {
543-
monitor_state.monitor.transaction_unconfirmed(txid, &*self.broadcaster, &*self.fee_estimator, &*self.logger);
543+
monitor_state.monitor.transaction_unconfirmed(txid, &*self.broadcaster, &self.fee_estimator, &*self.logger);
544544
}
545545
}
546546

@@ -551,7 +551,7 @@ where
551551
// it's still possible if a chain::Filter implementation returns a transaction.
552552
debug_assert!(txdata.is_empty());
553553
monitor.best_block_updated(
554-
header, height, &*self.broadcaster, &*self.fee_estimator, &*self.logger)
554+
header, height, &*self.broadcaster, &self.fee_estimator, &*self.logger)
555555
});
556556
}
557557

lightning/src/chain/channelmonitor.rs

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ use ln::chan_utils::{CounterpartyCommitmentSecrets, HTLCOutputInCommitment, HTLC
4040
use ln::channelmanager::HTLCSource;
4141
use chain;
4242
use chain::{BestBlock, WatchedOutput};
43-
use chain::chaininterface::{BroadcasterInterface, FeeEstimator};
43+
use chain::chaininterface::{BroadcasterInterface, FeeEstimator, LowerBoundedFeeEstimator};
4444
use chain::transaction::{OutPoint, TransactionData};
4545
use chain::keysinterface::{SpendableOutputDescriptor, StaticPaymentOutputDescriptor, DelayedPaymentOutputDescriptor, Sign, KeysInterface};
4646
use chain::onchaintx::OnchainTxHandler;
@@ -1099,7 +1099,7 @@ impl<Signer: Sign> ChannelMonitor<Signer> {
10991099
payment_hash: &PaymentHash,
11001100
payment_preimage: &PaymentPreimage,
11011101
broadcaster: &B,
1102-
fee_estimator: &F,
1102+
fee_estimator: &LowerBoundedFeeEstimator<F>,
11031103
logger: &L,
11041104
) where
11051105
B::Target: BroadcasterInterface,
@@ -1129,7 +1129,7 @@ impl<Signer: Sign> ChannelMonitor<Signer> {
11291129
&self,
11301130
updates: &ChannelMonitorUpdate,
11311131
broadcaster: &B,
1132-
fee_estimator: &F,
1132+
fee_estimator: &LowerBoundedFeeEstimator<F>,
11331133
logger: &L,
11341134
) -> Result<(), ()>
11351135
where
@@ -1295,8 +1295,9 @@ impl<Signer: Sign> ChannelMonitor<Signer> {
12951295
F::Target: FeeEstimator,
12961296
L::Target: Logger,
12971297
{
1298+
let bounded_fee_estimator = LowerBoundedFeeEstimator::new(fee_estimator);
12981299
self.inner.lock().unwrap().transactions_confirmed(
1299-
header, txdata, height, broadcaster, fee_estimator, logger)
1300+
header, txdata, height, broadcaster, &bounded_fee_estimator, logger)
13001301
}
13011302

13021303
/// Processes a transaction that was reorganized out of the chain.
@@ -1316,8 +1317,9 @@ impl<Signer: Sign> ChannelMonitor<Signer> {
13161317
F::Target: FeeEstimator,
13171318
L::Target: Logger,
13181319
{
1320+
let bounded_fee_estimator = LowerBoundedFeeEstimator::new(fee_estimator);
13191321
self.inner.lock().unwrap().transaction_unconfirmed(
1320-
txid, broadcaster, fee_estimator, logger);
1322+
txid, broadcaster, &bounded_fee_estimator, logger);
13211323
}
13221324

13231325
/// Updates the monitor with the current best chain tip, returning new outputs to watch. See
@@ -1340,8 +1342,9 @@ impl<Signer: Sign> ChannelMonitor<Signer> {
13401342
F::Target: FeeEstimator,
13411343
L::Target: Logger,
13421344
{
1345+
let bounded_fee_estimator = LowerBoundedFeeEstimator::new(fee_estimator);
13431346
self.inner.lock().unwrap().best_block_updated(
1344-
header, height, broadcaster, fee_estimator, logger)
1347+
header, height, broadcaster, &bounded_fee_estimator, logger)
13451348
}
13461349

13471350
/// Returns the set of txids that should be monitored for re-organization out of the chain.
@@ -1857,7 +1860,9 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
18571860

18581861
/// Provides a payment_hash->payment_preimage mapping. Will be automatically pruned when all
18591862
/// commitment_tx_infos which contain the payment hash have been revoked.
1860-
fn provide_payment_preimage<B: Deref, F: Deref, L: Deref>(&mut self, payment_hash: &PaymentHash, payment_preimage: &PaymentPreimage, broadcaster: &B, fee_estimator: &F, logger: &L)
1863+
fn provide_payment_preimage<B: Deref, F: Deref, L: Deref>(
1864+
&mut self, payment_hash: &PaymentHash, payment_preimage: &PaymentPreimage, broadcaster: &B,
1865+
fee_estimator: &LowerBoundedFeeEstimator<F>, logger: &L)
18611866
where B::Target: BroadcasterInterface,
18621867
F::Target: FeeEstimator,
18631868
L::Target: Logger,
@@ -1914,7 +1919,7 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
19141919
self.pending_monitor_events.push(MonitorEvent::CommitmentTxConfirmed(self.funding_info.0));
19151920
}
19161921

1917-
pub fn update_monitor<B: Deref, F: Deref, L: Deref>(&mut self, updates: &ChannelMonitorUpdate, broadcaster: &B, fee_estimator: &F, logger: &L) -> Result<(), ()>
1922+
pub(crate) fn update_monitor<B: Deref, F: Deref, L: Deref>(&mut self, updates: &ChannelMonitorUpdate, broadcaster: &B, fee_estimator: &LowerBoundedFeeEstimator<F>, logger: &L) -> Result<(), ()>
19181923
where B::Target: BroadcasterInterface,
19191924
F::Target: FeeEstimator,
19201925
L::Target: Logger,
@@ -1955,7 +1960,8 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
19551960
},
19561961
ChannelMonitorUpdateStep::PaymentPreimage { payment_preimage } => {
19571962
log_trace!(logger, "Updating ChannelMonitor with payment preimage");
1958-
self.provide_payment_preimage(&PaymentHash(Sha256::hash(&payment_preimage.0[..]).into_inner()), &payment_preimage, broadcaster, fee_estimator, logger)
1963+
let bounded_fee_estimator = LowerBoundedFeeEstimator::new(fee_estimator);
1964+
self.provide_payment_preimage(&PaymentHash(Sha256::hash(&payment_preimage.0[..]).into_inner()), &payment_preimage, broadcaster, &bounded_fee_estimator, logger)
19591965
},
19601966
ChannelMonitorUpdateStep::CommitmentSecret { idx, secret } => {
19611967
log_trace!(logger, "Updating ChannelMonitor with commitment secret");
@@ -2381,15 +2387,16 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
23812387
let block_hash = header.block_hash();
23822388
self.best_block = BestBlock::new(block_hash, height);
23832389

2384-
self.transactions_confirmed(header, txdata, height, broadcaster, fee_estimator, logger)
2390+
let bounded_fee_estimator = LowerBoundedFeeEstimator::new(fee_estimator);
2391+
self.transactions_confirmed(header, txdata, height, broadcaster, &bounded_fee_estimator, logger)
23852392
}
23862393

23872394
fn best_block_updated<B: Deref, F: Deref, L: Deref>(
23882395
&mut self,
23892396
header: &BlockHeader,
23902397
height: u32,
23912398
broadcaster: B,
2392-
fee_estimator: F,
2399+
fee_estimator: &LowerBoundedFeeEstimator<F>,
23932400
logger: L,
23942401
) -> Vec<TransactionOutputs>
23952402
where
@@ -2416,7 +2423,7 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
24162423
txdata: &TransactionData,
24172424
height: u32,
24182425
broadcaster: B,
2419-
fee_estimator: F,
2426+
fee_estimator: &LowerBoundedFeeEstimator<F>,
24202427
logger: L,
24212428
) -> Vec<TransactionOutputs>
24222429
where
@@ -2513,7 +2520,7 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
25132520
mut watch_outputs: Vec<TransactionOutputs>,
25142521
mut claimable_outpoints: Vec<PackageTemplate>,
25152522
broadcaster: &B,
2516-
fee_estimator: &F,
2523+
fee_estimator: &LowerBoundedFeeEstimator<F>,
25172524
logger: &L,
25182525
) -> Vec<TransactionOutputs>
25192526
where
@@ -2651,7 +2658,8 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
26512658
//- maturing spendable output has transaction paying us has been disconnected
26522659
self.onchain_events_awaiting_threshold_conf.retain(|ref entry| entry.height < height);
26532660

2654-
self.onchain_tx_handler.block_disconnected(height, broadcaster, fee_estimator, logger);
2661+
let bounded_fee_estimator = LowerBoundedFeeEstimator::new(fee_estimator);
2662+
self.onchain_tx_handler.block_disconnected(height, broadcaster, &bounded_fee_estimator, logger);
26552663

26562664
self.best_block = BestBlock::new(header.prev_blockhash, height - 1);
26572665
}
@@ -2660,7 +2668,7 @@ impl<Signer: Sign> ChannelMonitorImpl<Signer> {
26602668
&mut self,
26612669
txid: &Txid,
26622670
broadcaster: B,
2663-
fee_estimator: F,
2671+
fee_estimator: &LowerBoundedFeeEstimator<F>,
26642672
logger: L,
26652673
) where
26662674
B::Target: BroadcasterInterface,
@@ -3390,6 +3398,8 @@ mod tests {
33903398

33913399
use hex;
33923400

3401+
use crate::chain::chaininterface::LowerBoundedFeeEstimator;
3402+
33933403
use super::ChannelMonitorUpdateStep;
33943404
use ::{check_added_monitors, check_closed_broadcast, check_closed_event, check_spends, get_local_commitment_txn, get_monitor, get_route_and_payment_hash, unwrap_send_err};
33953405
use chain::{BestBlock, Confirm};
@@ -3486,7 +3496,7 @@ mod tests {
34863496

34873497
let broadcaster = TestBroadcaster::new(Arc::clone(&nodes[1].blocks));
34883498
assert!(
3489-
pre_update_monitor.update_monitor(&replay_update, &&broadcaster, &&chanmon_cfgs[1].fee_estimator, &nodes[1].logger)
3499+
pre_update_monitor.update_monitor(&replay_update, &&broadcaster, &LowerBoundedFeeEstimator::new(&chanmon_cfgs[1].fee_estimator), &nodes[1].logger)
34903500
.is_err());
34913501
// Even though we error'd on the first update, we should still have generated an HTLC claim
34923502
// transaction
@@ -3511,7 +3521,7 @@ mod tests {
35113521
let secp_ctx = Secp256k1::new();
35123522
let logger = Arc::new(TestLogger::new());
35133523
let broadcaster = Arc::new(TestBroadcaster{txn_broadcasted: Mutex::new(Vec::new()), blocks: Arc::new(Mutex::new(Vec::new()))});
3514-
let fee_estimator = Arc::new(TestFeeEstimator { sat_per_kw: Mutex::new(253) });
3524+
let fee_estimator = TestFeeEstimator { sat_per_kw: Mutex::new(253) };
35153525

35163526
let dummy_key = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
35173527
let dummy_tx = Transaction { version: 0, lock_time: 0, input: Vec::new(), output: Vec::new() };
@@ -3610,7 +3620,8 @@ mod tests {
36103620
monitor.provide_latest_counterparty_commitment_tx(dummy_txid, preimages_slice_to_htlc_outputs!(preimages[17..20]), 281474976710653, dummy_key, &logger);
36113621
monitor.provide_latest_counterparty_commitment_tx(dummy_txid, preimages_slice_to_htlc_outputs!(preimages[18..20]), 281474976710652, dummy_key, &logger);
36123622
for &(ref preimage, ref hash) in preimages.iter() {
3613-
monitor.provide_payment_preimage(hash, preimage, &broadcaster, &fee_estimator, &logger);
3623+
let bounded_fee_estimator = LowerBoundedFeeEstimator::new(&fee_estimator);
3624+
monitor.provide_payment_preimage(hash, preimage, &broadcaster, &bounded_fee_estimator, &logger);
36143625
}
36153626

36163627
// Now provide a secret, pruning preimages 10-15

lightning/src/chain/onchaintx.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use bitcoin::secp256k1;
2424
use ln::msgs::DecodeError;
2525
use ln::PaymentPreimage;
2626
use ln::chan_utils::{ChannelTransactionParameters, HolderCommitmentTransaction};
27-
use chain::chaininterface::{FeeEstimator, BroadcasterInterface};
27+
use chain::chaininterface::{FeeEstimator, BroadcasterInterface, LowerBoundedFeeEstimator};
2828
use chain::channelmonitor::{ANTI_REORG_DELAY, CLTV_SHARED_CLAIM_BUFFER};
2929
use chain::keysinterface::{Sign, KeysInterface};
3030
use chain::package::PackageTemplate;
@@ -377,7 +377,7 @@ impl<ChannelSigner: Sign> OnchainTxHandler<ChannelSigner> {
377377
/// (CSV or CLTV following cases). In case of high-fee spikes, claim tx may stuck in the mempool, so you need to bump its feerate quickly using Replace-By-Fee or Child-Pay-For-Parent.
378378
/// Panics if there are signing errors, because signing operations in reaction to on-chain events
379379
/// are not expected to fail, and if they do, we may lose funds.
380-
fn generate_claim_tx<F: Deref, L: Deref>(&mut self, cur_height: u32, cached_request: &PackageTemplate, fee_estimator: &F, logger: &L) -> Option<(Option<u32>, u64, Transaction)>
380+
fn generate_claim_tx<F: Deref, L: Deref>(&mut self, cur_height: u32, cached_request: &PackageTemplate, fee_estimator: &LowerBoundedFeeEstimator<F>, logger: &L) -> Option<(Option<u32>, u64, Transaction)>
381381
where F::Target: FeeEstimator,
382382
L::Target: Logger,
383383
{
@@ -415,7 +415,7 @@ impl<ChannelSigner: Sign> OnchainTxHandler<ChannelSigner> {
415415
/// `conf_height` represents the height at which the transactions in `txn_matched` were
416416
/// confirmed. This does not need to equal the current blockchain tip height, which should be
417417
/// provided via `cur_height`, however it must never be higher than `cur_height`.
418-
pub(crate) fn update_claims_view<B: Deref, F: Deref, L: Deref>(&mut self, txn_matched: &[&Transaction], requests: Vec<PackageTemplate>, conf_height: u32, cur_height: u32, broadcaster: &B, fee_estimator: &F, logger: &L)
418+
pub(crate) fn update_claims_view<B: Deref, F: Deref, L: Deref>(&mut self, txn_matched: &[&Transaction], requests: Vec<PackageTemplate>, conf_height: u32, cur_height: u32, broadcaster: &B, fee_estimator: &LowerBoundedFeeEstimator<F>, logger: &L)
419419
where B::Target: BroadcasterInterface,
420420
F::Target: FeeEstimator,
421421
L::Target: Logger,
@@ -617,7 +617,7 @@ impl<ChannelSigner: Sign> OnchainTxHandler<ChannelSigner> {
617617
&mut self,
618618
txid: &Txid,
619619
broadcaster: B,
620-
fee_estimator: F,
620+
fee_estimator: &LowerBoundedFeeEstimator<F>,
621621
logger: L,
622622
) where
623623
B::Target: BroadcasterInterface,
@@ -637,7 +637,7 @@ impl<ChannelSigner: Sign> OnchainTxHandler<ChannelSigner> {
637637
}
638638
}
639639

640-
pub(crate) fn block_disconnected<B: Deref, F: Deref, L: Deref>(&mut self, height: u32, broadcaster: B, fee_estimator: F, logger: L)
640+
pub(crate) fn block_disconnected<B: Deref, F: Deref, L: Deref>(&mut self, height: u32, broadcaster: B, fee_estimator: &LowerBoundedFeeEstimator<F>, logger: L)
641641
where B::Target: BroadcasterInterface,
642642
F::Target: FeeEstimator,
643643
L::Target: Logger,
@@ -667,7 +667,7 @@ impl<ChannelSigner: Sign> OnchainTxHandler<ChannelSigner> {
667667
}
668668
}
669669
for (_, request) in bump_candidates.iter_mut() {
670-
if let Some((new_timer, new_feerate, bump_tx)) = self.generate_claim_tx(height, &request, &&*fee_estimator, &&*logger) {
670+
if let Some((new_timer, new_feerate, bump_tx)) = self.generate_claim_tx(height, &request, &fee_estimator, &&*logger) {
671671
request.set_timer(new_timer);
672672
request.set_feerate(new_feerate);
673673
log_info!(logger, "Broadcasting onchain {}", log_tx!(bump_tx));

lightning/src/chain/package.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ use core::mem;
3838
use core::ops::Deref;
3939
use bitcoin::Witness;
4040

41+
use super::chaininterface::LowerBoundedFeeEstimator;
42+
4143
const MAX_ALLOC_SIZE: usize = 64*1024;
4244

4345

@@ -665,7 +667,7 @@ impl PackageTemplate {
665667
/// Returns value in satoshis to be included as package outgoing output amount and feerate
666668
/// which was used to generate the value. Will not return less than `dust_limit_sats` for the
667669
/// value.
668-
pub(crate) fn compute_package_output<F: Deref, L: Deref>(&self, predicted_weight: usize, dust_limit_sats: u64, fee_estimator: &F, logger: &L) -> Option<(u64, u64)>
670+
pub(crate) fn compute_package_output<F: Deref, L: Deref>(&self, predicted_weight: usize, dust_limit_sats: u64, fee_estimator: &LowerBoundedFeeEstimator<F>, logger: &L) -> Option<(u64, u64)>
669671
where F::Target: FeeEstimator,
670672
L::Target: Logger,
671673
{
@@ -772,7 +774,7 @@ impl Readable for PackageTemplate {
772774
/// If the proposed fee is less than the available spent output's values, we return the proposed
773775
/// fee and the corresponding updated feerate. If the proposed fee is equal or more than the
774776
/// available spent output's values, we return nothing
775-
fn compute_fee_from_spent_amounts<F: Deref, L: Deref>(input_amounts: u64, predicted_weight: usize, fee_estimator: &F, logger: &L) -> Option<(u64, u64)>
777+
fn compute_fee_from_spent_amounts<F: Deref, L: Deref>(input_amounts: u64, predicted_weight: usize, fee_estimator: &LowerBoundedFeeEstimator<F>, logger: &L) -> Option<(u64, u64)>
776778
where F::Target: FeeEstimator,
777779
L::Target: Logger,
778780
{
@@ -808,7 +810,7 @@ fn compute_fee_from_spent_amounts<F: Deref, L: Deref>(input_amounts: u64, predic
808810
/// attempt, use them. Otherwise, blindly bump the feerate by 25% of the previous feerate. We also
809811
/// verify that those bumping heuristics respect BIP125 rules 3) and 4) and if required adjust
810812
/// the new fee to meet the RBF policy requirement.
811-
fn feerate_bump<F: Deref, L: Deref>(predicted_weight: usize, input_amounts: u64, previous_feerate: u64, fee_estimator: &F, logger: &L) -> Option<(u64, u64)>
813+
fn feerate_bump<F: Deref, L: Deref>(predicted_weight: usize, input_amounts: u64, previous_feerate: u64, fee_estimator: &LowerBoundedFeeEstimator<F>, logger: &L) -> Option<(u64, u64)>
812814
where F::Target: FeeEstimator,
813815
L::Target: Logger,
814816
{

0 commit comments

Comments
 (0)