|
35 | 35 | //! #
|
36 | 36 | //! # use lightning::io;
|
37 | 37 | //! # use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
|
38 |
| -//! # use lightning::ln::channelmanager::{ChannelDetails, PaymentId, PaymentSendFailure}; |
| 38 | +//! # use lightning::ln::channelmanager::{ChannelDetails, InFlightHtlcs, PaymentId, PaymentSendFailure}; |
39 | 39 | //! # use lightning::ln::msgs::LightningError;
|
40 | 40 | //! # use lightning::routing::gossip::NodeId;
|
41 | 41 | //! # use lightning::routing::router::{Route, RouteHop, RouteParameters};
|
|
44 | 44 | //! # use lightning::util::logger::{Logger, Record};
|
45 | 45 | //! # use lightning::util::ser::{Writeable, Writer};
|
46 | 46 | //! # use lightning_invoice::Invoice;
|
47 |
| -//! # use lightning_invoice::payment::{InFlightHtlcs, InvoicePayer, Payer, Retry, Router}; |
| 47 | +//! # use lightning_invoice::payment::{InvoicePayer, Payer, Retry, Router}; |
48 | 48 | //! # use secp256k1::PublicKey;
|
49 | 49 | //! # use std::cell::RefCell;
|
50 | 50 | //! # use std::ops::Deref;
|
@@ -140,16 +140,14 @@ use bitcoin_hashes::Hash;
|
140 | 140 | use bitcoin_hashes::sha256::Hash as Sha256;
|
141 | 141 |
|
142 | 142 | use crate::prelude::*;
|
143 |
| -use lightning::io; |
144 | 143 | use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
|
145 |
| -use lightning::ln::channelmanager::{ChannelDetails, PaymentId, PaymentSendFailure}; |
| 144 | +use lightning::ln::channelmanager::{ChannelDetails, InFlightHtlcs, PaymentId, PaymentSendFailure}; |
146 | 145 | use lightning::ln::msgs::LightningError;
|
147 | 146 | use lightning::routing::gossip::NodeId;
|
148 | 147 | use lightning::routing::router::{PaymentParameters, Route, RouteHop, RouteParameters};
|
149 | 148 | use lightning::util::errors::APIError;
|
150 | 149 | use lightning::util::events::{Event, EventHandler};
|
151 | 150 | use lightning::util::logger::Logger;
|
152 |
| -use lightning::util::ser::Writeable; |
153 | 151 | use crate::time_utils::Time;
|
154 | 152 | use crate::sync::Mutex;
|
155 | 153 |
|
@@ -641,7 +639,7 @@ where
|
641 | 639 | }
|
642 | 640 | }
|
643 | 641 |
|
644 |
| - InFlightHtlcs(total_inflight_map) |
| 642 | + InFlightHtlcs::new(total_inflight_map) |
645 | 643 | }
|
646 | 644 | }
|
647 | 645 |
|
@@ -730,39 +728,14 @@ where
|
730 | 728 | }
|
731 | 729 | }
|
732 | 730 |
|
733 |
| -/// A map with liquidity value (in msat) keyed by a short channel id and the direction the HTLC |
734 |
| -/// is traveling in. The direction boolean is determined by checking if the HTLC source's public |
735 |
| -/// key is less than its destination. See [`InFlightHtlcs::used_liquidity_msat`] for more |
736 |
| -/// details. |
737 |
| -pub struct InFlightHtlcs(HashMap<(u64, bool), u64>); |
738 |
| - |
739 |
| -impl InFlightHtlcs { |
740 |
| - /// Returns liquidity in msat given the public key of the HTLC source, target, and short channel |
741 |
| - /// id. |
742 |
| - pub fn used_liquidity_msat(&self, source: &NodeId, target: &NodeId, channel_scid: u64) -> Option<u64> { |
743 |
| - self.0.get(&(channel_scid, source < target)).map(|v| *v) |
744 |
| - } |
745 |
| -} |
746 |
| - |
747 |
| -impl Writeable for InFlightHtlcs { |
748 |
| - fn write<W: lightning::util::ser::Writer>(&self, writer: &mut W) -> Result<(), io::Error> { self.0.write(writer) } |
749 |
| -} |
750 |
| - |
751 |
| -impl lightning::util::ser::Readable for InFlightHtlcs { |
752 |
| - fn read<R: io::Read>(reader: &mut R) -> Result<Self, lightning::ln::msgs::DecodeError> { |
753 |
| - let infight_map: HashMap<(u64, bool), u64> = lightning::util::ser::Readable::read(reader)?; |
754 |
| - Ok(Self(infight_map)) |
755 |
| - } |
756 |
| -} |
757 |
| - |
758 | 731 | #[cfg(test)]
|
759 | 732 | mod tests {
|
760 | 733 | use super::*;
|
761 | 734 | use crate::{InvoiceBuilder, Currency};
|
762 | 735 | use crate::utils::{ScorerAccountingForInFlightHtlcs, create_invoice_from_channelmanager_and_duration_since_epoch};
|
763 | 736 | use bitcoin_hashes::sha256::Hash as Sha256;
|
764 | 737 | use lightning::ln::PaymentPreimage;
|
765 |
| - use lightning::ln::channelmanager; |
| 738 | + use lightning::ln::channelmanager::{self, InFlightHtlcs}; |
766 | 739 | use lightning::ln::features::{ChannelFeatures, NodeFeatures};
|
767 | 740 | use lightning::ln::functional_test_utils::*;
|
768 | 741 | use lightning::ln::msgs::{ChannelMessageHandler, ErrorAction, LightningError};
|
@@ -1864,7 +1837,7 @@ mod tests {
|
1864 | 1837 | impl Router for FailingRouter {
|
1865 | 1838 | fn find_route(
|
1866 | 1839 | &self, _payer: &PublicKey, _params: &RouteParameters, _first_hops: Option<&[&ChannelDetails]>,
|
1867 |
| - _inflight_htlcs: InFlightHtlcs |
| 1840 | + _inflight_htlcs: InFlightHtlcs, |
1868 | 1841 | ) -> Result<Route, LightningError> {
|
1869 | 1842 | Err(LightningError { err: String::new(), action: ErrorAction::IgnoreError })
|
1870 | 1843 | }
|
|
0 commit comments