Skip to content

Commit 92d3ae1

Browse files
committed
f - move mpp keysend test to payment_tests.rs
1 parent 3c27653 commit 92d3ae1

File tree

2 files changed

+49
-49
lines changed

2 files changed

+49
-49
lines changed

lightning/src/ln/functional_tests.rs

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -8193,53 +8193,6 @@ fn test_simple_mpp() {
81938193
claim_payment_along_route(&nodes[0], &[&[&nodes[1], &nodes[3]], &[&nodes[2], &nodes[3]]], false, payment_preimage);
81948194
}
81958195

8196-
#[test]
8197-
fn test_mpp_keysend() {
8198-
let mut mpp_keysend_config = test_default_channel_config();
8199-
mpp_keysend_config.accept_mpp_keysend = true;
8200-
let chanmon_cfgs = create_chanmon_cfgs(4);
8201-
let node_cfgs = create_node_cfgs(4, &chanmon_cfgs);
8202-
let node_chanmgrs = create_node_chanmgrs(4, &node_cfgs, &[None, None, None, Some(mpp_keysend_config)]);
8203-
let nodes = create_network(4, &node_cfgs, &node_chanmgrs);
8204-
8205-
create_announced_chan_between_nodes(&nodes, 0, 1);
8206-
create_announced_chan_between_nodes(&nodes, 0, 2);
8207-
create_announced_chan_between_nodes(&nodes, 1, 3);
8208-
create_announced_chan_between_nodes(&nodes, 2, 3);
8209-
let network_graph = nodes[0].network_graph.clone();
8210-
8211-
let payer_pubkey = nodes[0].node.get_our_node_id();
8212-
let payee_pubkey = nodes[3].node.get_our_node_id();
8213-
let recv_value = 15_000_000;
8214-
let route_params = RouteParameters {
8215-
payment_params: PaymentParameters::for_keysend(payee_pubkey, 40, true),
8216-
final_value_msat: recv_value,
8217-
};
8218-
let scorer = test_utils::TestScorer::new();
8219-
let random_seed_bytes = chanmon_cfgs[0].keys_manager.get_secure_random_bytes();
8220-
let route = find_route(&payer_pubkey, &route_params, &network_graph, None, nodes[0].logger,
8221-
&scorer, &(), &random_seed_bytes).unwrap();
8222-
8223-
let payment_preimage = PaymentPreimage([42; 32]);
8224-
let payment_secret = PaymentSecret(payment_preimage.0);
8225-
let payment_hash = nodes[0].node.send_spontaneous_payment(&route, Some(payment_preimage),
8226-
RecipientOnionFields::secret_only(payment_secret), PaymentId(payment_preimage.0)).unwrap();
8227-
check_added_monitors!(nodes[0], 2);
8228-
8229-
let expected_route: &[&[&Node]] = &[&[&nodes[1], &nodes[3]], &[&nodes[2], &nodes[3]]];
8230-
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
8231-
assert_eq!(events.len(), 2);
8232-
8233-
let ev = remove_first_msg_event_to_node(&nodes[1].node.get_our_node_id(), &mut events);
8234-
pass_along_path(&nodes[0], expected_route[0], recv_value, payment_hash.clone(),
8235-
Some(payment_secret), ev.clone(), false, Some(payment_preimage));
8236-
8237-
let ev = remove_first_msg_event_to_node(&nodes[2].node.get_our_node_id(), &mut events);
8238-
pass_along_path(&nodes[0], expected_route[1], recv_value, payment_hash.clone(),
8239-
Some(payment_secret), ev.clone(), true, Some(payment_preimage));
8240-
claim_payment_along_route(&nodes[0], expected_route, false, payment_preimage);
8241-
}
8242-
82438196
#[test]
82448197
fn test_preimage_storage() {
82458198
// Simple test of payment preimage storage allowing no client-side storage to claim payments

lightning/src/ln/payment_tests.rs

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ use crate::events::{ClosureReason, Event, HTLCDestination, MessageSendEvent, Mes
1919
use crate::ln::channel::EXPIRE_PREV_CONFIG_TICKS;
2020
use crate::ln::channelmanager::{BREAKDOWN_TIMEOUT, ChannelManager, MPP_TIMEOUT_TICKS, MIN_CLTV_EXPIRY_DELTA, PaymentId, PaymentSendFailure, IDEMPOTENCY_TIMEOUT_TICKS, RecentPaymentDetails, RecipientOnionFields, HTLCForwardInfo, PendingHTLCRouting, PendingAddHTLCInfo};
2121
use crate::ln::features::InvoiceFeatures;
22-
use crate::ln::{msgs, PaymentSecret};
22+
use crate::ln::{msgs, PaymentSecret, PaymentPreimage};
2323
use crate::ln::msgs::ChannelMessageHandler;
2424
use crate::ln::outbound_payment::Retry;
2525
use crate::routing::gossip::{EffectiveCapacity, RoutingFees};
26-
use crate::routing::router::{get_route, Path, PaymentParameters, Route, Router, RouteHint, RouteHintHop, RouteHop, RouteParameters};
26+
use crate::routing::router::{get_route, Path, PaymentParameters, Route, Router, RouteHint, RouteHintHop, RouteHop, RouteParameters, find_route};
2727
use crate::routing::scoring::ChannelUsage;
2828
use crate::util::test_utils;
2929
use crate::util::errors::APIError;
@@ -236,6 +236,53 @@ fn mpp_receive_timeout() {
236236
do_mpp_receive_timeout(false);
237237
}
238238

239+
#[test]
240+
fn test_mpp_keysend() {
241+
let mut mpp_keysend_config = test_default_channel_config();
242+
mpp_keysend_config.accept_mpp_keysend = true;
243+
let chanmon_cfgs = create_chanmon_cfgs(4);
244+
let node_cfgs = create_node_cfgs(4, &chanmon_cfgs);
245+
let node_chanmgrs = create_node_chanmgrs(4, &node_cfgs, &[None, None, None, Some(mpp_keysend_config)]);
246+
let nodes = create_network(4, &node_cfgs, &node_chanmgrs);
247+
248+
create_announced_chan_between_nodes(&nodes, 0, 1);
249+
create_announced_chan_between_nodes(&nodes, 0, 2);
250+
create_announced_chan_between_nodes(&nodes, 1, 3);
251+
create_announced_chan_between_nodes(&nodes, 2, 3);
252+
let network_graph = nodes[0].network_graph.clone();
253+
254+
let payer_pubkey = nodes[0].node.get_our_node_id();
255+
let payee_pubkey = nodes[3].node.get_our_node_id();
256+
let recv_value = 15_000_000;
257+
let route_params = RouteParameters {
258+
payment_params: PaymentParameters::for_keysend(payee_pubkey, 40, true),
259+
final_value_msat: recv_value,
260+
};
261+
let scorer = test_utils::TestScorer::new();
262+
let random_seed_bytes = chanmon_cfgs[0].keys_manager.get_secure_random_bytes();
263+
let route = find_route(&payer_pubkey, &route_params, &network_graph, None, nodes[0].logger,
264+
&scorer, &(), &random_seed_bytes).unwrap();
265+
266+
let payment_preimage = PaymentPreimage([42; 32]);
267+
let payment_secret = PaymentSecret(payment_preimage.0);
268+
let payment_hash = nodes[0].node.send_spontaneous_payment(&route, Some(payment_preimage),
269+
RecipientOnionFields::secret_only(payment_secret), PaymentId(payment_preimage.0)).unwrap();
270+
check_added_monitors!(nodes[0], 2);
271+
272+
let expected_route: &[&[&Node]] = &[&[&nodes[1], &nodes[3]], &[&nodes[2], &nodes[3]]];
273+
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
274+
assert_eq!(events.len(), 2);
275+
276+
let ev = remove_first_msg_event_to_node(&nodes[1].node.get_our_node_id(), &mut events);
277+
pass_along_path(&nodes[0], expected_route[0], recv_value, payment_hash.clone(),
278+
Some(payment_secret), ev.clone(), false, Some(payment_preimage));
279+
280+
let ev = remove_first_msg_event_to_node(&nodes[2].node.get_our_node_id(), &mut events);
281+
pass_along_path(&nodes[0], expected_route[1], recv_value, payment_hash.clone(),
282+
Some(payment_secret), ev.clone(), true, Some(payment_preimage));
283+
claim_payment_along_route(&nodes[0], expected_route, false, payment_preimage);
284+
}
285+
239286
#[test]
240287
fn test_reject_mpp_keysend_htlc() {
241288
// This test enforces that we reject MPP keysend HTLCs if our config states we don't support

0 commit comments

Comments
 (0)