Skip to content

Commit 7f1f404

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 2327f59 commit 7f1f404

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
@@ -18,7 +18,7 @@ use bitcoin::network::constants::Network;
1818
use chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdateErr};
1919
use chain::transaction::OutPoint;
2020
use chain::Watch;
21-
use ln::channelmanager::{RAACommitmentOrder, PaymentPreimage, PaymentHash, PaymentSecret, PaymentSendFailure};
21+
use ln::channelmanager::{RAACommitmentOrder, PaymentPreimage, PaymentHash, PaymentSendFailure};
2222
use ln::features::InitFeatures;
2323
use ln::msgs;
2424
use ln::msgs::{ChannelMessageHandler, ErrorAction, RoutingMessageHandler};
@@ -46,7 +46,7 @@ fn do_test_simple_monitor_permanent_update_fail(persister_fail: bool) {
4646
create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
4747
let logger = test_utils::TestLogger::new();
4848

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

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

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

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

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

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

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

624-
let (payment_preimage, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
624+
let (payment_preimage, our_payment_hash, our_payment_secret) = get_payment_preimage_hash!(nodes[1]);
625625
{
626626
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
627627
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();
@@ -710,7 +710,7 @@ fn test_monitor_update_fail_no_rebroadcast() {
710710
let channel_id = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known()).2;
711711
let logger = test_utils::TestLogger::new();
712712

713-
let (payment_preimage_1, our_payment_hash) = get_payment_preimage_hash!(nodes[0]);
713+
let (payment_preimage_1, our_payment_hash, payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
714714
{
715715
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
716716
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();
@@ -761,7 +761,7 @@ fn test_monitor_update_raa_while_paused() {
761761
let logger = test_utils::TestLogger::new();
762762

763763
send_payment(&nodes[0], &[&nodes[1]], 5000000, 5_000_000);
764-
let (payment_preimage_1, our_payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
764+
let (payment_preimage_1, our_payment_hash_1, our_payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
765765
{
766766
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
767767
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();
@@ -770,7 +770,7 @@ fn test_monitor_update_raa_while_paused() {
770770
}
771771
let send_event_1 = SendEvent::from_event(nodes[0].node.get_and_clear_pending_msg_events().remove(0));
772772

773-
let (payment_preimage_2, our_payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
773+
let (payment_preimage_2, our_payment_hash_2, our_payment_secret_2) = get_payment_preimage_hash!(nodes[0]);
774774
{
775775
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
776776
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();
@@ -842,7 +842,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
842842
send_payment(&nodes[0], &[&nodes[1], &nodes[2]], 5000000, 5_000_000);
843843

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

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

863863
// While the second channel is AwaitingRAA, forward a second payment to get it into the
864864
// holding cell.
865-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
865+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[2]);
866866
{
867867
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
868868
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();
@@ -889,7 +889,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
889889

890890
// Attempt to forward a third payment but fail due to the second channel being unavailable
891891
// for forwarding.
892-
let (_, payment_hash_3) = get_payment_preimage_hash!(nodes[0]);
892+
let (_, payment_hash_3, payment_secret_3) = get_payment_preimage_hash!(nodes[2]);
893893
{
894894
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
895895
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();
@@ -939,7 +939,7 @@ fn do_test_monitor_update_fail_raa(test_ignore_second_cs: bool) {
939939

940940
let (payment_preimage_4, payment_hash_4) = if test_ignore_second_cs {
941941
// Try to route another payment backwards from 2 to make sure 1 holds off on responding
942-
let (payment_preimage_4, payment_hash_4) = get_payment_preimage_hash!(nodes[0]);
942+
let (payment_preimage_4, payment_hash_4, payment_secret_4) = get_payment_preimage_hash!(nodes[0]);
943943
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
944944
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();
945945
nodes[2].node.send_payment(&route, payment_hash_4, &None).unwrap();
@@ -1102,7 +1102,7 @@ fn test_monitor_update_fail_reestablish() {
11021102
let chan_1 = create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
11031103
create_announced_chan_between_nodes(&nodes, 1, 2, InitFeatures::known(), InitFeatures::known());
11041104

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

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

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

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

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

13141314
nodes[0].node.peer_disconnected(&nodes[1].node.get_our_node_id(), false);
13151315
nodes[1].node.peer_disconnected(&nodes[0].node.get_our_node_id(), false);
@@ -1338,7 +1338,7 @@ fn claim_while_disconnected_monitor_update_fail() {
13381338

13391339
// Send a second payment from A to B, resulting in a commitment update that gets swallowed with
13401340
// the monitor still failed
1341-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1341+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[1]);
13421342
{
13431343
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
13441344
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();
@@ -1434,7 +1434,7 @@ fn monitor_failed_no_reestablish_response() {
14341434

14351435
// Route the payment and deliver the initial commitment_signed (with a monitor update failure
14361436
// on receipt).
1437-
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
1437+
let (payment_preimage_1, payment_hash_1, payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
14381438
{
14391439
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
14401440
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();
@@ -1508,7 +1508,7 @@ fn first_message_on_recv_ordering() {
15081508

15091509
// Route the first payment outbound, holding the last RAA for B until we are set up so that we
15101510
// can deliver it and fail the monitor update.
1511-
let (payment_preimage_1, payment_hash_1) = get_payment_preimage_hash!(nodes[0]);
1511+
let (payment_preimage_1, payment_hash_1, payment_secret_1) = get_payment_preimage_hash!(nodes[1]);
15121512
{
15131513
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
15141514
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();
@@ -1533,7 +1533,7 @@ fn first_message_on_recv_ordering() {
15331533
let as_raa = get_event_msg!(nodes[0], MessageSendEvent::SendRevokeAndACK, nodes[1].node.get_our_node_id());
15341534

15351535
// Route the second payment, generating an update_add_htlc/commitment_signed
1536-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1536+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[1]);
15371537
{
15381538
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
15391539
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();
@@ -1607,13 +1607,13 @@ fn test_monitor_update_fail_claim() {
16071607
// Rebalance a bit so that we can send backwards from 3 to 2.
16081608
send_payment(&nodes[0], &[&nodes[1], &nodes[2]], 5000000, 5_000_000);
16091609

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

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

1616-
let (_, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1616+
let (_, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[0]);
16171617
{
16181618
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
16191619
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();
@@ -1688,7 +1688,7 @@ fn test_monitor_update_on_pending_forwards() {
16881688
// Rebalance a bit so that we can send backwards from 3 to 1.
16891689
send_payment(&nodes[0], &[&nodes[1], &nodes[2]], 5000000, 5_000_000);
16901690

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

1701-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1701+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[0]);
17021702
{
17031703
let net_graph_msg_handler = &nodes[2].net_graph_msg_handler;
17041704
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();
@@ -1758,10 +1758,10 @@ fn monitor_update_claim_fail_no_response() {
17581758
let logger = test_utils::TestLogger::new();
17591759

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

17631763
// Now start forwarding a second payment, skipping the last RAA so B is in AwaitingRAA
1764-
let (payment_preimage_2, payment_hash_2) = get_payment_preimage_hash!(nodes[0]);
1764+
let (payment_preimage_2, payment_hash_2, payment_secret_2) = get_payment_preimage_hash!(nodes[1]);
17651765
{
17661766
let net_graph_msg_handler = &nodes[0].net_graph_msg_handler;
17671767
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();
@@ -1922,8 +1922,7 @@ fn test_path_paused_mpp() {
19221922
let chan_4_id = create_announced_chan_between_nodes(&nodes, 2, 3, InitFeatures::known(), InitFeatures::known()).0.contents.short_channel_id;
19231923
let logger = test_utils::TestLogger::new();
19241924

1925-
let (payment_preimage, payment_hash) = get_payment_preimage_hash!(&nodes[0]);
1926-
let payment_secret = PaymentSecret([0xdb; 32]);
1925+
let (payment_preimage, payment_hash, payment_secret) = get_payment_preimage_hash!(&nodes[3]);
19271926
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();
19281927

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

0 commit comments

Comments
 (0)