Skip to content

Commit 03f6b50

Browse files
committed
Pipe through PaymentSecrets in tests during payment hash creation
In order to reduce code movement in the next commit, this commit simply tweaks get_payment_preimage_hash!() and related functions in functional tests to return a payment secret. Further, we ensure that we always call get_payment_preimage_hash!() with the node which will ultimately receive the payment.
1 parent 3f60d9a commit 03f6b50

File tree

5 files changed

+161
-162
lines changed

5 files changed

+161
-162
lines changed

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdateErr};
1919
use chain::transaction::OutPoint;
2020
use chain::Listen;
2121
use chain::Watch;
22-
use ln::channelmanager::{RAACommitmentOrder, PaymentPreimage, PaymentHash, PaymentSecret, PaymentSendFailure};
22+
use ln::channelmanager::{RAACommitmentOrder, PaymentPreimage, PaymentHash, PaymentSendFailure};
2323
use ln::features::InitFeatures;
2424
use ln::msgs;
2525
use ln::msgs::{ChannelMessageHandler, ErrorAction, RoutingMessageHandler};
@@ -47,7 +47,7 @@ fn do_test_simple_monitor_permanent_update_fail(persister_fail: bool) {
4747
create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
4848
let logger = test_utils::TestLogger::new();
4949

50-
let (_, payment_hash_1) = get_payment_preimage_hash!(&nodes[0]);
50+
let (_, payment_hash_1, payment_secret_1) = get_payment_preimage_hash!(&nodes[1]);
5151

5252
match persister_fail {
5353
true => chanmon_cfgs[0].persister.set_update_ret(Err(ChannelMonitorUpdateErr::PermanentFailure)),
@@ -162,7 +162,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool, persister_fail
162162
let channel_id = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known()).2;
163163
let logger = test_utils::TestLogger::new();
164164

165-
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(&nodes[0]);
165+
let (payment_preimage_1, payment_hash_1, payment_secret_1) = get_payment_preimage_hash!(&nodes[1]);
166166

167167
match persister_fail {
168168
true => chanmon_cfgs[0].persister.set_update_ret(Err(ChannelMonitorUpdateErr::TemporaryFailure)),
@@ -217,7 +217,7 @@ fn do_test_simple_monitor_temporary_update_fail(disconnect: bool, persister_fail
217217
claim_payment(&nodes[0], &[&nodes[1]], payment_preimage_1, 1_000_000);
218218

219219
// Now set it to failed again...
220-
let (_, payment_hash_2) = get_payment_preimage_hash!(&nodes[0]);
220+
let (_, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(&nodes[1]);
221221
{
222222
match persister_fail {
223223
true => chanmon_cfgs[0].persister.set_update_ret(Err(ChannelMonitorUpdateErr::TemporaryFailure)),
@@ -287,10 +287,10 @@ fn do_test_monitor_temporary_update_fail(disconnect_count: usize) {
287287
let channel_id = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known()).2;
288288
let logger = test_utils::TestLogger::new();
289289

290-
let (payment_preimage_1, _) = route_payment(&nodes[0], &[&nodes[1]], 1000000);
290+
let (payment_preimage_1, _, _) = route_payment(&nodes[0], &[&nodes[1]], 1000000);
291291

292292
// Now try to send a second payment which will fail to send
293-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
293+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[1]);
294294
{
295295
*nodes[0].chain_monitor.update_ret.lock().unwrap() = Some(Err(ChannelMonitorUpdateErr::TemporaryFailure));
296296
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
@@ -622,7 +622,7 @@ fn test_monitor_update_fail_cs() {
622622
let channel_id = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known()).2;
623623
let logger = test_utils::TestLogger::new();
624624

625-
let (payment_preimage, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
625+
let (payment_preimage, our_payment_hash, our_payment_secret) = get_payment_preimage_hash!(nodes[1]);
626626
{
627627
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
628628
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -711,7 +711,7 @@ fn test_monitor_update_fail_no_rebroadcast() {
711711
let channel_id = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known()).2;
712712
let logger = test_utils::TestLogger::new();
713713

714-
let (payment_preimage_1, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
714+
let (payment_preimage_1, our_payment_hash, payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
715715
{
716716
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
717717
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -762,7 +762,7 @@ fn test_monitor_update_raa_while_paused() {
762762
let logger = test_utils::TestLogger::new();
763763

764764
send_payment(&nodes[0], &[&nodes[1]], 5000000, 5_000_000);
765-
let (payment_preimage_1, our_payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
765+
let (payment_preimage_1, our_payment_hash_1, our_payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
766766
{
767767
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
768768
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -771,7 +771,7 @@ fn test_monitor_update_raa_while_paused() {
771771
}
772772
let send_event_1 = SendEvent::from_event(nodes[0].node.get_and_clear_pending_msg_events().remove(0));
773773

774-
let (payment_preimage_2, our_payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
774+
let (payment_preimage_2, our_payment_hash_2, our_payment_secret_2) = get_payment_preimage_hash!(nodes[0]);
775775
{
776776
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
777777
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -843,7 +843,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
843843
send_payment(&nodes[0], &[&nodes[1], &nodes[2]], 5000000, 5_000_000);
844844

845845
// Route a first payment that we'll fail backwards
846-
let (_, payment_hash_1) = route_payment(&nodes[0], &[&nodes[1], &nodes[2]], 1000000);
846+
let (_, payment_hash_1, _) = route_payment(&nodes[0], &[&nodes[1], &nodes[2]], 1000000);
847847

848848
// Fail the payment backwards, failing the monitor update on nodes[1]'s receipt of the RAA
849849
assert!(nodes[2].node.fail_htlc_backwards(&payment_hash_1, &None));
@@ -863,7 +863,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
863863

864864
// While the second channel is AwaitingRAA, forward a second payment to get it into the
865865
// holding cell.
866-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
866+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[2]);
867867
{
868868
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
869869
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -890,7 +890,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
890890

891891
// Attempt to forward a third payment but fail due to the second channel being unavailable
892892
// for forwarding.
893-
let (_, payment_hash_3) = get_payment_preimage_hash!(nodes[0]);
893+
let (_, payment_hash_3, payment_secret_3) = get_payment_preimage_hash!(nodes[2]);
894894
{
895895
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
896896
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[2].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -940,7 +940,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
940940

941941
let (payment_preimage_4, payment_hash_4) = if test_ignore_second_cs {
942942
// Try to route another payment backwards from 2 to make sure 1 holds off on responding
943-
let (payment_preimage_4, payment_hash_4) = get_payment_preimage_hash!(nodes[0]);
943+
let (payment_preimage_4, payment_hash_4, payment_secret_4) = get_payment_preimage_hash!(nodes[0]);
944944
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
945945
let route = get_route(&nodes[2].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
946946
nodes[2].node.send_payment(&route, payment_hash_4, &None).unwrap();
@@ -1103,7 +1103,7 @@ fn test_monitor_update_fail_reestablish() {
11031103
let chan_1 = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
11041104
create_announced_chan_between_nodes(&nodes, 1, 2, InitFeatures::known(), InitFeatures::known());
11051105

1106-
let (our_payment_preimage, _) = route_payment(&nodes[0], &[&nodes[1], &nodes[2]], 1000000);
1106+
let (our_payment_preimage, _, _) = route_payment(&nodes[0], &[&nodes[1], &nodes[2]], 1000000);
11071107

11081108
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id(), false);
11091109
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id(), false);
@@ -1185,9 +1185,9 @@ fn raa_no_response_awaiting_raa_state() {
11851185
let channel_id = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known()).2;
11861186
let logger = test_utils::TestLogger::new();
11871187

1188-
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
1189-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1190-
let (payment_preimage_3, payment_hash_3) = get_payment_preimage_hash!(nodes[0]);
1188+
let (payment_preimage_1, payment_hash_1, payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
1189+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[1]);
1190+
let (payment_preimage_3, payment_hash_3, payment_secret_3) = get_payment_preimage_hash!(nodes[1]);
11911191

11921192
// Queue up two payments - one will be delivered right away, one immediately goes into the
11931193
// holding cell as nodes[0] is AwaitingRAA. Ultimately this allows us to deliver an RAA
@@ -1310,7 +1310,7 @@ fn claim_while_disconnected_monitor_update_fail() {
13101310
let logger = test_utils::TestLogger::new();
13111311

13121312
// Forward a payment for B to claim
1313-
let (payment_preimage_1, _) = route_payment(&nodes[0], &[&nodes[1]], 1000000);
1313+
let (payment_preimage_1, _, _) = route_payment(&nodes[0], &[&nodes[1]], 1000000);
13141314

13151315
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id(), false);
13161316
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id(), false);
@@ -1339,7 +1339,7 @@ fn claim_while_disconnected_monitor_update_fail() {
13391339

13401340
// Send a second payment from A to B, resulting in a commitment update that gets swallowed with
13411341
// the monitor still failed
1342-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1342+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[1]);
13431343
{
13441344
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
13451345
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -1435,7 +1435,7 @@ fn monitor_failed_no_reestablish_response() {
14351435

14361436
// Route the payment and deliver the initial commitment_signed (with a monitor update failure
14371437
// on receipt).
1438-
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
1438+
let (payment_preimage_1, payment_hash_1, payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
14391439
{
14401440
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
14411441
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -1509,7 +1509,7 @@ fn first_message_on_recv_ordering() {
15091509

15101510
// Route the first payment outbound, holding the last RAA for B until we are set up so that we
15111511
// can deliver it and fail the monitor update.
1512-
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
1512+
let (payment_preimage_1, payment_hash_1, payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
15131513
{
15141514
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
15151515
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -1534,7 +1534,7 @@ fn first_message_on_recv_ordering() {
15341534
let as_raa = get_event_msg!(nodes[0], MessageSendEvent::SendRevokeAndACK, nodes[1].node.get_our_node_id());
15351535

15361536
// Route the second payment, generating an update_add_htlc/commitment_signed
1537-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1537+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[1]);
15381538
{
15391539
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
15401540
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -1608,13 +1608,13 @@ fn test_monitor_update_fail_claim() {
16081608
// Rebalance a bit so that we can send backwards from 3 to 2.
16091609
send_payment(&nodes[0], &[&nodes[1], &nodes[2]], 5000000, 5_000_000);
16101610

1611-
let (payment_preimage_1, _) = route_payment(&nodes[0], &[&nodes[1]], 1000000);
1611+
let (payment_preimage_1, _, _) = route_payment(&nodes[0], &[&nodes[1]], 1000000);
16121612

16131613
*nodes[1].chain_monitor.update_ret.lock().unwrap() = Some(Err(ChannelMonitorUpdateErr::TemporaryFailure));
16141614
assert!(nodes[1].node.claim_funds(payment_preimage_1, &None, 1_000_000));
16151615
check_added_monitors!(nodes[1], 1);
16161616

1617-
let (_, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1617+
let (_, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[0]);
16181618
{
16191619
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
16201620
let route = get_route(&nodes[2].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -1689,7 +1689,7 @@ fn test_monitor_update_on_pending_forwards() {
16891689
// Rebalance a bit so that we can send backwards from 3 to 1.
16901690
send_payment(&nodes[0], &[&nodes[1], &nodes[2]], 5000000, 5_000_000);
16911691

1692-
let (_, payment_hash_1) = route_payment(&nodes[0], &[&nodes[1], &nodes[2]], 1000000);
1692+
let (_, payment_hash_1, _) = route_payment(&nodes[0], &[&nodes[1], &nodes[2]], 1000000);
16931693
assert!(nodes[2].node.fail_htlc_backwards(&payment_hash_1, &None));
16941694
expect_pending_htlcs_forwardable!(nodes[2]);
16951695
check_added_monitors!(nodes[2], 1);
@@ -1699,7 +1699,7 @@ fn test_monitor_update_on_pending_forwards() {
16991699
commitment_signed_dance!(nodes[1], nodes[2], cs_fail_update.commitment_signed, true, true);
17001700
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
17011701

1702-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1702+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[0]);
17031703
{
17041704
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
17051705
let route = get_route(&nodes[2].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -1759,10 +1759,10 @@ fn monitor_update_claim_fail_no_response() {
17591759
let logger = test_utils::TestLogger::new();
17601760

17611761
// Forward a payment for B to claim
1762-
let (payment_preimage_1, _) = route_payment(&nodes[0], &[&nodes[1]], 1000000);
1762+
let (payment_preimage_1, _, _) = route_payment(&nodes[0], &[&nodes[1]], 1000000);
17631763

17641764
// Now start forwarding a second payment, skipping the last RAA so B is in AwaitingRAA
1765-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1765+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[1]);
17661766
{
17671767
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
17681768
let route = get_route(&nodes[0].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[1].node.get_our_node_id(), None, None, &Vec::new(), 1000000, TEST_FINAL_CLTV, &logger).unwrap();
@@ -1923,8 +1923,7 @@ fn test_path_paused_mpp() {
19231923
let chan_4_id = create_announced_chan_between_nodes(&nodes, 2, 3, InitFeatures::known(), InitFeatures::known()).0.contents.short_channel_id;
19241924
let logger = test_utils::TestLogger::new();
19251925

1926-
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(&nodes[0]);
1927-
let payment_secret = PaymentSecret([0xdb; 32]);
1926+
let (payment_preimage, payment_hash, payment_secret) = get_payment_preimage_hash!(&nodes[3]);
19281927
let mut route = get_route(&nodes[0].node.get_our_node_id(), &nodes[0].net_graph_msg_handler.network_graph.read().unwrap(), &nodes[3].node.get_our_node_id(), None, None, &[], 100000, TEST_FINAL_CLTV, &logger).unwrap();
19291928

19301929
// Set us up to take multiple routes, one 0 -> 1 -> 3 and one 0 -> 2 -> 3:

0 commit comments

Comments
 (0)