Skip to content

Commit 6173a10

Browse files
committed
f rename send fns in additon, plus some indentation cleanups
1 parent 99174bb commit 6173a10

17 files changed

+249
-278
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ fn send_payment(source: &ChanMan, dest: &ChanMan, dest_chan_id: u64, amt: u64, p
351351
let mut payment_id = [0; 32];
352352
payment_id[0..8].copy_from_slice(&payment_idx.to_ne_bytes());
353353
*payment_idx += 1;
354-
if let Err(err) = source.send_payment(&Route {
354+
if let Err(err) = source.send_payment_with_route(&Route {
355355
paths: vec![vec![RouteHop {
356356
pubkey: dest.get_our_node_id(),
357357
node_features: dest.node_features(),
@@ -373,7 +373,7 @@ fn send_hop_payment(source: &ChanMan, middle: &ChanMan, middle_chan_id: u64, des
373373
let mut payment_id = [0; 32];
374374
payment_id[0..8].copy_from_slice(&payment_idx.to_ne_bytes());
375375
*payment_idx += 1;
376-
if let Err(err) = source.send_payment(&Route {
376+
if let Err(err) = source.send_payment_with_route(&Route {
377377
paths: vec![vec![RouteHop {
378378
pubkey: middle.get_our_node_id(),
379379
node_features: middle.node_features(),

fuzz/src/full_stack.rs

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,13 @@ use lightning::chain::transaction::OutPoint;
3737
use lightning::chain::keysinterface::{InMemorySigner, Recipient, KeyMaterial, EntropySource, NodeSigner, SignerProvider};
3838
use lightning::events::Event;
3939
use lightning::ln::{PaymentHash, PaymentPreimage, PaymentSecret};
40-
use lightning::ln::channelmanager::{ChainParameters, ChannelDetails, ChannelManager, PaymentId, RecipientOnionFields};
40+
use lightning::ln::channelmanager::{ChainParameters, ChannelDetails, ChannelManager, PaymentId, RecipientOnionFields, Retry};
4141
use lightning::ln::peer_handler::{MessageHandler,PeerManager,SocketDescriptor,IgnoringMessageHandler};
4242
use lightning::ln::msgs::{self, DecodeError};
4343
use lightning::ln::script::ShutdownScript;
4444
use lightning::routing::gossip::{P2PGossipSync, NetworkGraph};
4545
use lightning::routing::utxo::UtxoLookup;
46-
use lightning::routing::router::{find_route, InFlightHtlcs, PaymentParameters, Route, RouteParameters, Router};
47-
use lightning::routing::scoring::FixedPenaltyScorer;
46+
use lightning::routing::router::{InFlightHtlcs, PaymentParameters, Route, RouteParameters, Router};
4847
use lightning::util::config::UserConfig;
4948
use lightning::util::errors::APIError;
5049
use lightning::util::enforcing_trait_impls::{EnforcingSigner, EnforcementState};
@@ -449,10 +448,8 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
449448
// keys subsequently generated in this test. Rather than regenerating all the messages manually,
450449
// it's easier to just increment the counter here so the keys don't change.
451450
keys_manager.counter.fetch_sub(3, Ordering::AcqRel);
452-
let our_id = &keys_manager.get_node_id(Recipient::Node).unwrap();
453451
let network_graph = Arc::new(NetworkGraph::new(network, Arc::clone(&logger)));
454452
let gossip_sync = Arc::new(P2PGossipSync::new(Arc::clone(&network_graph), None, Arc::clone(&logger)));
455-
let scorer = FixedPenaltyScorer::with_penalty(0);
456453

457454
let peers = RefCell::new([false; 256]);
458455
let mut loss_detector = MoneyLossDetector::new(&peers, channelmanager.clone(), monitor.clone(), PeerManager::new(MessageHandler {
@@ -514,19 +511,15 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
514511
payment_params,
515512
final_value_msat,
516513
};
517-
let random_seed_bytes: [u8; 32] = keys_manager.get_secure_random_bytes();
518-
let route = match find_route(&our_id, &params, &network_graph, None, Arc::clone(&logger), &scorer, &random_seed_bytes) {
519-
Ok(route) => route,
520-
Err(_) => return,
521-
};
522514
let mut payment_hash = PaymentHash([0; 32]);
523515
payment_hash.0[0..8].copy_from_slice(&be64_to_array(payments_sent));
524516
let mut sha = Sha256::engine();
525517
sha.input(&payment_hash.0[..]);
526518
payment_hash.0 = Sha256::from_engine(sha).into_inner();
527519
payments_sent += 1;
528-
match channelmanager.send_payment(&route, payment_hash,
529-
RecipientOnionFields::spontaneous_empty(), PaymentId(payment_hash.0))
520+
match channelmanager.send_payment(payment_hash,
521+
RecipientOnionFields::spontaneous_empty(), PaymentId(payment_hash.0), params,
522+
Retry::Attempts(0))
530523
{
531524
Ok(_) => {},
532525
Err(_) => return,
@@ -539,12 +532,6 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
539532
payment_params,
540533
final_value_msat,
541534
};
542-
let random_seed_bytes: [u8; 32] = keys_manager.get_secure_random_bytes();
543-
let mut route = match find_route(&our_id, &params, &network_graph, None, Arc::clone(&logger), &scorer, &random_seed_bytes) {
544-
Ok(route) => route,
545-
Err(_) => return,
546-
};
547-
route.paths.push(route.paths[0].clone());
548535
let mut payment_hash = PaymentHash([0; 32]);
549536
payment_hash.0[0..8].copy_from_slice(&be64_to_array(payments_sent));
550537
let mut sha = Sha256::engine();
@@ -554,8 +541,9 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
554541
let mut payment_secret = PaymentSecret([0; 32]);
555542
payment_secret.0[0..8].copy_from_slice(&be64_to_array(payments_sent));
556543
payments_sent += 1;
557-
match channelmanager.send_payment(&route, payment_hash,
558-
RecipientOnionFields::secret_only(payment_secret), PaymentId(payment_hash.0))
544+
match channelmanager.send_payment(payment_hash,
545+
RecipientOnionFields::secret_only(payment_secret), PaymentId(payment_hash.0),
546+
params, Retry::Attempts(0))
559547
{
560548
Ok(_) => {},
561549
Err(_) => return,

lightning-invoice/src/payment.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ where
203203
&self, payment_hash: PaymentHash, recipient_info: RecipientOnionFields,
204204
payment_id: PaymentId, route_params: RouteParameters, retry_strategy: Retry
205205
) -> Result<(), PaymentError> {
206-
self.send_payment_with_retry(payment_hash, recipient_info, payment_id, route_params, retry_strategy)
206+
self.send_payment(payment_hash, recipient_info, payment_id, route_params, retry_strategy)
207207
.map_err(PaymentError::Sending)
208208
}
209209
}

lightning-invoice/src/utils.rs

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -664,13 +664,13 @@ mod test {
664664
use crate::{Currency, Description, InvoiceDescription, SignOrCreationError, CreationError};
665665
use bitcoin_hashes::{Hash, sha256};
666666
use bitcoin_hashes::sha256::Hash as Sha256;
667-
use lightning::chain::keysinterface::{EntropySource, PhantomKeysManager};
667+
use lightning::chain::keysinterface::PhantomKeysManager;
668668
use lightning::events::{MessageSendEvent, MessageSendEventsProvider, Event};
669669
use lightning::ln::{PaymentPreimage, PaymentHash};
670-
use lightning::ln::channelmanager::{PhantomRouteHints, MIN_FINAL_CLTV_EXPIRY_DELTA, PaymentId, RecipientOnionFields};
670+
use lightning::ln::channelmanager::{PhantomRouteHints, MIN_FINAL_CLTV_EXPIRY_DELTA, PaymentId, RecipientOnionFields, Retry};
671671
use lightning::ln::functional_test_utils::*;
672672
use lightning::ln::msgs::ChannelMessageHandler;
673-
use lightning::routing::router::{PaymentParameters, RouteParameters, find_route};
673+
use lightning::routing::router::{PaymentParameters, RouteParameters};
674674
use lightning::util::test_utils;
675675
use lightning::util::config::UserConfig;
676676
use crate::utils::create_invoice_from_channelmanager_and_duration_since_epoch;
@@ -712,21 +712,12 @@ mod test {
712712
payment_params,
713713
final_value_msat: invoice.amount_milli_satoshis().unwrap(),
714714
};
715-
let first_hops = nodes[0].node.list_usable_channels();
716-
let network_graph = &node_cfgs[0].network_graph;
717-
let logger = test_utils::TestLogger::new();
718-
let scorer = test_utils::TestScorer::new();
719-
let random_seed_bytes = chanmon_cfgs[1].keys_manager.get_secure_random_bytes();
720-
let route = find_route(
721-
&nodes[0].node.get_our_node_id(), &route_params, network_graph,
722-
Some(&first_hops.iter().collect::<Vec<_>>()), &logger, &scorer, &random_seed_bytes
723-
).unwrap();
724-
725715
let payment_event = {
726716
let mut payment_hash = PaymentHash([0; 32]);
727717
payment_hash.0.copy_from_slice(&invoice.payment_hash().as_ref()[0..32]);
728-
nodes[0].node.send_payment(&route, payment_hash,
729-
RecipientOnionFields::secret_only(*invoice.payment_secret()), PaymentId(payment_hash.0)).unwrap();
718+
nodes[0].node.send_payment(payment_hash,
719+
RecipientOnionFields::secret_only(*invoice.payment_secret()),
720+
PaymentId(payment_hash.0), route_params, Retry::Attempts(0)).unwrap();
730721
let mut added_monitors = nodes[0].chain_monitor.added_monitors.lock().unwrap();
731722
assert_eq!(added_monitors.len(), 1);
732723
added_monitors.clear();
@@ -1133,20 +1124,12 @@ mod test {
11331124
payment_params,
11341125
final_value_msat: invoice.amount_milli_satoshis().unwrap(),
11351126
};
1136-
let first_hops = nodes[0].node.list_usable_channels();
1137-
let network_graph = &node_cfgs[0].network_graph;
1138-
let logger = test_utils::TestLogger::new();
1139-
let scorer = test_utils::TestScorer::new();
1140-
let random_seed_bytes = chanmon_cfgs[1].keys_manager.get_secure_random_bytes();
1141-
let route = find_route(
1142-
&nodes[0].node.get_our_node_id(), &params, network_graph,
1143-
Some(&first_hops.iter().collect::<Vec<_>>()), &logger, &scorer, &random_seed_bytes
1144-
).unwrap();
11451127
let (payment_event, fwd_idx) = {
11461128
let mut payment_hash = PaymentHash([0; 32]);
11471129
payment_hash.0.copy_from_slice(&invoice.payment_hash().as_ref()[0..32]);
1148-
nodes[0].node.send_payment(&route, payment_hash,
1149-
RecipientOnionFields::secret_only(*invoice.payment_secret()), PaymentId(payment_hash.0)).unwrap();
1130+
nodes[0].node.send_payment(payment_hash,
1131+
RecipientOnionFields::secret_only(*invoice.payment_secret()),
1132+
PaymentId(payment_hash.0), params, Retry::Attempts(0)).unwrap();
11501133
let mut added_monitors = nodes[0].chain_monitor.added_monitors.lock().unwrap();
11511134
assert_eq!(added_monitors.len(), 1);
11521135
added_monitors.clear();
@@ -1175,7 +1158,7 @@ mod test {
11751158
nodes[fwd_idx].node.process_pending_htlc_forwards();
11761159

11771160
let payment_preimage_opt = if user_generated_pmt_hash { None } else { Some(payment_preimage) };
1178-
expect_payment_claimable!(&nodes[fwd_idx], payment_hash, payment_secret, payment_amt, payment_preimage_opt, route.paths[0].last().unwrap().pubkey);
1161+
expect_payment_claimable!(&nodes[fwd_idx], payment_hash, payment_secret, payment_amt, payment_preimage_opt, invoice.recover_payee_pub_key());
11791162
do_claim_payment_along_route(&nodes[0], &[&vec!(&nodes[fwd_idx])[..]], false, payment_preimage);
11801163
let events = nodes[0].node.get_and_clear_pending_events();
11811164
assert_eq!(events.len(), 2);

lightning/src/chain/chainmonitor.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -964,9 +964,9 @@ mod tests {
964964
// If the ChannelManager tries to update the channel, however, the ChainMonitor will pass
965965
// the update through to the ChannelMonitor which will refuse it (as the channel is closed).
966966
chanmon_cfgs[0].persister.set_update_ret(ChannelMonitorUpdateStatus::Completed);
967-
unwrap_send_err!(nodes[0].node.send_payment(&route, second_payment_hash,
968-
RecipientOnionFields::secret_only(second_payment_secret), PaymentId(second_payment_hash.0)),
969-
true, APIError::ChannelUnavailable { ref err },
967+
unwrap_send_err!(nodes[0].node.send_payment_with_route(&route, second_payment_hash,
968+
RecipientOnionFields::secret_only(second_payment_secret), PaymentId(second_payment_hash.0)
969+
), true, APIError::ChannelUnavailable { ref err },
970970
assert!(err.contains("ChannelMonitor storage failure")));
971971
check_added_monitors!(nodes[0], 2); // After the failure we generate a close-channel monitor update
972972
check_closed_broadcast!(nodes[0], true);

lightning/src/chain/channelmonitor.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4078,9 +4078,9 @@ mod tests {
40784078
// If the ChannelManager tries to update the channel, however, the ChainMonitor will pass
40794079
// the update through to the ChannelMonitor which will refuse it (as the channel is closed).
40804080
let (route, payment_hash, _, payment_secret) = get_route_and_payment_hash!(nodes[1], nodes[0], 100_000);
4081-
unwrap_send_err!(nodes[1].node.send_payment(&route, payment_hash,
4082-
RecipientOnionFields::secret_only(payment_secret), PaymentId(payment_hash.0)),
4083-
true, APIError::ChannelUnavailable { ref err },
4081+
unwrap_send_err!(nodes[1].node.send_payment_with_route(&route, payment_hash,
4082+
RecipientOnionFields::secret_only(payment_secret), PaymentId(payment_hash.0)
4083+
), true, APIError::ChannelUnavailable { ref err },
40844084
assert!(err.contains("ChannelMonitor storage failure")));
40854085
check_added_monitors!(nodes[1], 2); // After the failure we generate a close-channel monitor update
40864086
check_closed_broadcast!(nodes[1], true);

0 commit comments

Comments
 (0)