|
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