|
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,31 +728,6 @@ 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::*; |
@@ -1811,7 +1784,7 @@ mod tests { |
1811 | 1784 | impl Router for TestRouter { |
1812 | 1785 | fn find_route( |
1813 | 1786 | &self, payer: &PublicKey, route_params: &RouteParameters, |
1814 | | - _first_hops: Option<&[&ChannelDetails]>, inflight_htlcs: InFlightHtlcs |
| 1787 | + _first_hops: Option<&[&ChannelDetails]>, inflight_htlcs: channelmanager::InFlightHtlcs |
1815 | 1788 | ) -> Result<Route, LightningError> { |
1816 | 1789 | // Simulate calling the Scorer just as you would in find_route |
1817 | 1790 | let route = Self::route_for_value(route_params.final_value_msat); |
@@ -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: channelmanager::InFlightHtlcs |
1868 | 1841 | ) -> Result<Route, LightningError> { |
1869 | 1842 | Err(LightningError { err: String::new(), action: ErrorAction::IgnoreError }) |
1870 | 1843 | } |
@@ -2126,7 +2099,7 @@ mod tests { |
2126 | 2099 | impl Router for ManualRouter { |
2127 | 2100 | fn find_route( |
2128 | 2101 | &self, _payer: &PublicKey, _params: &RouteParameters, _first_hops: Option<&[&ChannelDetails]>, |
2129 | | - _inflight_htlcs: InFlightHtlcs |
| 2102 | + _inflight_htlcs: channelmanager::InFlightHtlcs |
2130 | 2103 | ) -> Result<Route, LightningError> { |
2131 | 2104 | self.0.borrow_mut().pop_front().unwrap() |
2132 | 2105 | } |
|
0 commit comments