Skip to content

Commit 301b842

Browse files
committed
Use RoutingFees struct for RouteHint and ChannelInfo
1 parent 371fac9 commit 301b842

File tree

3 files changed

+104
-85
lines changed

3 files changed

+104
-85
lines changed

fuzz/src/router.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use lightning::ln::msgs::RoutingMessageHandler;
1111
use lightning::ln::router::{Router, RouteHint};
1212
use lightning::util::logger::Logger;
1313
use lightning::util::ser::Readable;
14-
use lightning::ln::network_graph::NetworkGraph;
14+
use lightning::ln::network_graph::{NetworkGraph, RoutingFees};
1515

1616
use secp256k1::key::PublicKey;
1717

@@ -219,8 +219,10 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
219219
last_hops_vec.push(RouteHint {
220220
src_node_id: get_pubkey!(),
221221
short_channel_id: slice_to_be64(get_slice!(8)),
222-
fee_base_msat: slice_to_be32(get_slice!(4)),
223-
fee_proportional_millionths: slice_to_be32(get_slice!(4)),
222+
fees: RoutingFees {
223+
base_msat: slice_to_be32(get_slice!(4)),
224+
proportional_millionths: slice_to_be32(get_slice!(4)),
225+
},
224226
cltv_expiry_delta: slice_to_be16(get_slice!(2)),
225227
htlc_minimum_msat: slice_to_be64(get_slice!(8)),
226228
});

lightning/src/ln/network_graph.rs

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -173,17 +173,15 @@ pub struct DirectionalChannelInfo {
173173
pub cltv_expiry_delta: u16,
174174
/// The minimum value, which must be relayed to the next hop via the channel
175175
pub htlc_minimum_msat: u64,
176-
/// Flat fee charged when the channel is used for routing
177-
pub fee_base_msat: u32,
178-
/// Fee based on used liquidity of the channel when it is used for routing
179-
pub fee_proportional_millionths: u32,
176+
/// Fees charged when the channel is used for routing
177+
pub fees: RoutingFees,
180178
/// Most recent update for the channel received from the network
181179
pub last_update_message: Option<msgs::ChannelUpdate>,
182180
}
183181

184182
impl std::fmt::Display for DirectionalChannelInfo {
185183
fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> {
186-
write!(f, "src_node_id {}, last_update {}, enabled {}, cltv_expiry_delta {}, htlc_minimum_msat {}, fee_base_msat {}, fee_proportional_millionths {}", log_pubkey!(self.src_node_id), self.last_update, self.enabled, self.cltv_expiry_delta, self.htlc_minimum_msat, self.fee_base_msat, self.fee_proportional_millionths)?;
184+
write!(f, "src_node_id {}, last_update {}, enabled {}, cltv_expiry_delta {}, htlc_minimum_msat {}, fees {:?}", log_pubkey!(self.src_node_id), self.last_update, self.enabled, self.cltv_expiry_delta, self.htlc_minimum_msat, self.fees)?;
187185
Ok(())
188186
}
189187
}
@@ -194,8 +192,7 @@ impl_writeable!(DirectionalChannelInfo, 0, {
194192
enabled,
195193
cltv_expiry_delta,
196194
htlc_minimum_msat,
197-
fee_base_msat,
198-
fee_proportional_millionths,
195+
fees,
199196
last_update_message
200197
});
201198

@@ -511,8 +508,10 @@ impl RoutingMessageHandler for NetworkGraph {
511508
enabled: false,
512509
cltv_expiry_delta: u16::max_value(),
513510
htlc_minimum_msat: u64::max_value(),
514-
fee_base_msat: u32::max_value(),
515-
fee_proportional_millionths: u32::max_value(),
511+
fees: RoutingFees {
512+
base_msat: u32::max_value(),
513+
proportional_millionths: u32::max_value(),
514+
},
516515
last_update_message: None,
517516
},
518517
two_to_one: DirectionalChannelInfo {
@@ -521,8 +520,10 @@ impl RoutingMessageHandler for NetworkGraph {
521520
enabled: false,
522521
cltv_expiry_delta: u16::max_value(),
523522
htlc_minimum_msat: u64::max_value(),
524-
fee_base_msat: u32::max_value(),
525-
fee_proportional_millionths: u32::max_value(),
523+
fees: RoutingFees {
524+
base_msat: u32::max_value(),
525+
proportional_millionths: u32::max_value(),
526+
},
526527
last_update_message: None,
527528
},
528529
announcement_message: if should_relay { Some(msg.clone()) } else { None },
@@ -629,8 +630,8 @@ impl RoutingMessageHandler for NetworkGraph {
629630
$target.enabled = chan_enabled;
630631
$target.cltv_expiry_delta = msg.contents.cltv_expiry_delta;
631632
$target.htlc_minimum_msat = msg.contents.htlc_minimum_msat;
632-
$target.fee_base_msat = msg.contents.fee_base_msat;
633-
$target.fee_proportional_millionths = msg.contents.fee_proportional_millionths;
633+
$target.fees.base_msat = msg.contents.fee_base_msat;
634+
$target.fees.proportional_millionths = msg.contents.fee_proportional_millionths;
634635
$target.last_update_message = if msg.contents.excess_data.is_empty() {
635636
Some(msg.clone())
636637
} else {
@@ -673,11 +674,11 @@ impl RoutingMessageHandler for NetworkGraph {
673674
for chan_id in node.channels.iter() {
674675
let chan = network.channels.get(chan_id).unwrap();
675676
if chan.one_to_two.src_node_id == dest_node_id {
676-
lowest_inbound_channel_fee_base_msat = cmp::min(lowest_inbound_channel_fee_base_msat, chan.two_to_one.fee_base_msat);
677-
lowest_inbound_channel_fee_proportional_millionths = cmp::min(lowest_inbound_channel_fee_proportional_millionths, chan.two_to_one.fee_proportional_millionths);
677+
lowest_inbound_channel_fee_base_msat = cmp::min(lowest_inbound_channel_fee_base_msat, chan.two_to_one.fees.base_msat);
678+
lowest_inbound_channel_fee_proportional_millionths = cmp::min(lowest_inbound_channel_fee_proportional_millionths, chan.two_to_one.fees.proportional_millionths);
678679
} else {
679-
lowest_inbound_channel_fee_base_msat = cmp::min(lowest_inbound_channel_fee_base_msat, chan.one_to_two.fee_base_msat);
680-
lowest_inbound_channel_fee_proportional_millionths = cmp::min(lowest_inbound_channel_fee_proportional_millionths, chan.one_to_two.fee_proportional_millionths);
680+
lowest_inbound_channel_fee_base_msat = cmp::min(lowest_inbound_channel_fee_base_msat, chan.one_to_two.fees.base_msat);
681+
lowest_inbound_channel_fee_proportional_millionths = cmp::min(lowest_inbound_channel_fee_proportional_millionths, chan.one_to_two.fees.proportional_millionths);
681682
}
682683
}
683684
}
@@ -1599,17 +1600,21 @@ mod tests {
15991600
enabled: false,
16001601
cltv_expiry_delta: u16::max_value(),
16011602
htlc_minimum_msat: 0,
1602-
fee_base_msat: u32::max_value(),
1603-
fee_proportional_millionths: u32::max_value(),
1603+
fees: RoutingFees {
1604+
base_msat: u32::max_value(),
1605+
proportional_millionths: u32::max_value(),
1606+
},
16041607
last_update_message: None,
16051608
}, two_to_one: DirectionalChannelInfo {
16061609
src_node_id: node1.clone(),
16071610
last_update: 0,
16081611
enabled: true,
16091612
cltv_expiry_delta: 0,
16101613
htlc_minimum_msat: 0,
1611-
fee_base_msat: 0,
1612-
fee_proportional_millionths: 0,
1614+
fees: RoutingFees {
1615+
base_msat: u32::max_value(),
1616+
proportional_millionths: u32::max_value(),
1617+
},
16131618
last_update_message: None,
16141619
},
16151620
announcement_message: None,

0 commit comments

Comments
 (0)