@@ -3451,17 +3451,7 @@ fn do_test_custom_tlvs(spontaneous: bool, even_tlvs: bool, known_tlvs: bool) {
3451
3451
let events = nodes[ 1 ] . node . get_and_clear_pending_events ( ) ;
3452
3452
assert_eq ! ( events. len( ) , 1 ) ;
3453
3453
match events[ 0 ] {
3454
- Event :: PaymentClaimable { ref purpose, amount_msat, ref onion_fields, .. } => {
3455
- match & purpose {
3456
- PaymentPurpose :: InvoicePayment { payment_secret, .. } => {
3457
- assert_eq ! ( our_payment_secret, * payment_secret) ;
3458
- assert_eq ! ( Some ( * payment_secret) , onion_fields. as_ref( ) . unwrap( ) . payment_secret) ;
3459
- } ,
3460
- PaymentPurpose :: SpontaneousPayment ( payment_preimage) => {
3461
- assert_eq ! ( our_payment_preimage, * payment_preimage) ;
3462
- } ,
3463
- }
3464
- assert_eq ! ( amount_msat, amt_msat) ;
3454
+ Event :: PaymentClaimable { ref onion_fields, .. } => {
3465
3455
assert_eq ! ( onion_fields. clone( ) . unwrap( ) . custom_tlvs( ) . clone( ) , custom_tlvs) ;
3466
3456
} ,
3467
3457
_ => panic ! ( "Unexpected event" ) ,
@@ -3518,26 +3508,12 @@ fn test_retry_custom_tlvs() {
3518
3508
nodes[ 0 ] . node . send_payment ( payment_hash, onion_fields,
3519
3509
payment_id, route_params. clone ( ) , Retry :: Attempts ( 1 ) ) . unwrap ( ) ;
3520
3510
check_added_monitors ! ( nodes[ 0 ] , 1 ) ; // one monitor per path
3521
- let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
3522
- assert_eq ! ( events. len( ) , 1 ) ;
3523
3511
3524
3512
// Add the HTLC along the first hop.
3525
- let fail_path_msgs_1 = remove_first_msg_event_to_node ( & nodes[ 1 ] . node . get_our_node_id ( ) , & mut events) ;
3526
- let ( update_add, commitment_signed) = match fail_path_msgs_1 {
3527
- MessageSendEvent :: UpdateHTLCs { node_id : _, updates : msgs:: CommitmentUpdate {
3528
- ref update_add_htlcs, ref update_fulfill_htlcs, ref update_fail_htlcs,
3529
- ref update_fail_malformed_htlcs, ref update_fee, ref commitment_signed }
3530
- } => {
3531
- assert_eq ! ( update_add_htlcs. len( ) , 1 ) ;
3532
- assert ! ( update_fail_htlcs. is_empty( ) ) ;
3533
- assert ! ( update_fulfill_htlcs. is_empty( ) ) ;
3534
- assert ! ( update_fail_malformed_htlcs. is_empty( ) ) ;
3535
- assert ! ( update_fee. is_none( ) ) ;
3536
- ( update_add_htlcs[ 0 ] . clone ( ) , commitment_signed. clone ( ) )
3537
- } ,
3538
- _ => panic ! ( "Unexpected event" ) ,
3539
- } ;
3540
- nodes[ 1 ] . node . handle_update_add_htlc ( & nodes[ 0 ] . node . get_our_node_id ( ) , & update_add) ;
3513
+ let htlc_updates = get_htlc_update_msgs ( & nodes[ 0 ] , & nodes[ 1 ] . node . get_our_node_id ( ) ) ;
3514
+ let msgs:: CommitmentUpdate { update_add_htlcs, commitment_signed, .. } = htlc_updates;
3515
+ assert_eq ! ( update_add_htlcs. len( ) , 1 ) ;
3516
+ nodes[ 1 ] . node . handle_update_add_htlc ( & nodes[ 0 ] . node . get_our_node_id ( ) , & update_add_htlcs[ 0 ] ) ;
3541
3517
commitment_signed_dance ! ( nodes[ 1 ] , nodes[ 0 ] , commitment_signed, false ) ;
3542
3518
3543
3519
// Attempt to forward the payment and complete the path's failure.
@@ -3547,15 +3523,14 @@ fn test_retry_custom_tlvs() {
3547
3523
node_id: Some ( nodes[ 2 ] . node. get_our_node_id( ) ) ,
3548
3524
channel_id: chan_2_id
3549
3525
} ] ) ;
3550
- let htlc_updates = get_htlc_update_msgs ! ( nodes[ 1 ] , nodes[ 0 ] . node. get_our_node_id( ) ) ;
3551
- assert ! ( htlc_updates. update_add_htlcs. is_empty( ) ) ;
3552
- assert_eq ! ( htlc_updates. update_fail_htlcs. len( ) , 1 ) ;
3553
- assert ! ( htlc_updates. update_fulfill_htlcs. is_empty( ) ) ;
3554
- assert ! ( htlc_updates. update_fail_malformed_htlcs. is_empty( ) ) ;
3555
3526
check_added_monitors ! ( nodes[ 1 ] , 1 ) ;
3556
- nodes[ 0 ] . node . handle_update_fail_htlc ( & nodes[ 1 ] . node . get_our_node_id ( ) ,
3557
- & htlc_updates. update_fail_htlcs [ 0 ] ) ;
3558
- commitment_signed_dance ! ( nodes[ 0 ] , nodes[ 1 ] , htlc_updates. commitment_signed, false ) ;
3527
+
3528
+ let htlc_updates = get_htlc_update_msgs ! ( nodes[ 1 ] , nodes[ 0 ] . node. get_our_node_id( ) ) ;
3529
+ let msgs:: CommitmentUpdate { update_fail_htlcs, commitment_signed, .. } = htlc_updates;
3530
+ assert_eq ! ( update_fail_htlcs. len( ) , 1 ) ;
3531
+ nodes[ 0 ] . node . handle_update_fail_htlc ( & nodes[ 1 ] . node . get_our_node_id ( ) , & update_fail_htlcs[ 0 ] ) ;
3532
+ commitment_signed_dance ! ( nodes[ 0 ] , nodes[ 1 ] , commitment_signed, false ) ;
3533
+
3559
3534
let mut events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
3560
3535
match events[ 1 ] {
3561
3536
Event :: PendingHTLCsForwardable { .. } => { } ,
@@ -3577,11 +3552,12 @@ fn test_retry_custom_tlvs() {
3577
3552
assert_eq ! ( events. len( ) , 1 ) ;
3578
3553
let payment_claimable = pass_along_path ( & nodes[ 0 ] , & [ & nodes[ 1 ] , & nodes[ 2 ] ] , 1_000_000 ,
3579
3554
payment_hash, Some ( payment_secret) , events. pop ( ) . unwrap ( ) , true , None ) . unwrap ( ) ;
3580
- let onion_fields = match payment_claimable {
3581
- Event :: PaymentClaimable { onion_fields, .. } => onion_fields,
3555
+ match payment_claimable {
3556
+ Event :: PaymentClaimable { onion_fields, .. } => {
3557
+ assert_eq ! ( onion_fields. unwrap( ) . custom_tlvs( ) , & custom_tlvs) ;
3558
+ } ,
3582
3559
_ => panic ! ( "Unexpected event" ) ,
3583
3560
} ;
3584
- assert_eq ! ( onion_fields. unwrap( ) . custom_tlvs( ) , & custom_tlvs) ;
3585
3561
claim_payment_along_route ( & nodes[ 0 ] , & [ & [ & nodes[ 1 ] , & nodes[ 2 ] ] ] , false , payment_preimage) ;
3586
3562
}
3587
3563
@@ -3665,7 +3641,8 @@ fn do_test_custom_tlvs_consistency(first_tlvs: Vec<(u64, Vec<u8>)>, second_tlvs:
3665
3641
{
3666
3642
let mut events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
3667
3643
assert_eq ! ( events. len( ) , 1 ) ;
3668
- pass_along_path ( & nodes[ 0 ] , & [ & nodes[ 1 ] , & nodes[ 3 ] ] , amt_msat, our_payment_hash, Some ( our_payment_secret) , events. pop ( ) . unwrap ( ) , false , None ) ;
3644
+ pass_along_path ( & nodes[ 0 ] , & [ & nodes[ 1 ] , & nodes[ 3 ] ] , amt_msat, our_payment_hash,
3645
+ Some ( our_payment_secret) , events. pop ( ) . unwrap ( ) , false , None ) ;
3669
3646
}
3670
3647
assert ! ( nodes[ 3 ] . node. get_and_clear_pending_events( ) . is_empty( ) ) ;
3671
3648
@@ -3704,26 +3681,16 @@ fn do_test_custom_tlvs_consistency(first_tlvs: Vec<(u64, Vec<u8>)>, second_tlvs:
3704
3681
if let Some ( expected_tlvs) = expected_receive_tlvs {
3705
3682
// Claim and match expected
3706
3683
let events = nodes[ 3 ] . node . get_and_clear_pending_events ( ) ;
3707
- println ! ( "events: {:?}" , events) ;
3708
3684
assert_eq ! ( events. len( ) , 1 ) ;
3709
3685
match events[ 0 ] {
3710
- Event :: PaymentClaimable { ref purpose, amount_msat, ref onion_fields, .. } => {
3711
- match & purpose {
3712
- PaymentPurpose :: InvoicePayment { payment_secret, .. } => {
3713
- assert_eq ! ( our_payment_secret, * payment_secret) ;
3714
- assert_eq ! ( Some ( * payment_secret) , onion_fields. as_ref( ) . unwrap( ) . payment_secret) ;
3715
- } ,
3716
- PaymentPurpose :: SpontaneousPayment ( payment_preimage) => {
3717
- assert_eq ! ( our_payment_preimage, * payment_preimage) ;
3718
- } ,
3719
- }
3720
- assert_eq ! ( amount_msat, amt_msat) ;
3686
+ Event :: PaymentClaimable { ref onion_fields, .. } => {
3721
3687
assert_eq ! ( onion_fields. clone( ) . unwrap( ) . custom_tlvs, expected_tlvs) ;
3722
3688
} ,
3723
3689
_ => panic ! ( "Unexpected event" ) ,
3724
3690
}
3725
3691
3726
- do_claim_payment_along_route ( & nodes[ 0 ] , & [ & [ & nodes[ 1 ] , & nodes[ 3 ] ] , & [ & nodes[ 2 ] , & nodes[ 3 ] ] ] , false , our_payment_preimage) ;
3692
+ do_claim_payment_along_route ( & nodes[ 0 ] , & [ & [ & nodes[ 1 ] , & nodes[ 3 ] ] , & [ & nodes[ 2 ] , & nodes[ 3 ] ] ] ,
3693
+ false , our_payment_preimage) ;
3727
3694
expect_payment_sent ( & nodes[ 0 ] , our_payment_preimage, Some ( Some ( 2000 ) ) , true ) ;
3728
3695
} else {
3729
3696
// Expect fail back
@@ -3735,14 +3702,19 @@ fn do_test_custom_tlvs_consistency(first_tlvs: Vec<(u64, Vec<u8>)>, second_tlvs:
3735
3702
nodes[ 2 ] . node . handle_update_fail_htlc ( & nodes[ 3 ] . node . get_our_node_id ( ) , & fail_updates_1. update_fail_htlcs [ 0 ] ) ;
3736
3703
commitment_signed_dance ! ( nodes[ 2 ] , nodes[ 3 ] , fail_updates_1. commitment_signed, false ) ;
3737
3704
3738
- expect_pending_htlcs_forwardable_and_htlc_handling_failed ! ( nodes[ 2 ] , vec![ HTLCDestination :: NextHopChannel { node_id: Some ( nodes[ 3 ] . node. get_our_node_id( ) ) , channel_id: chan_2_3. 2 } ] ) ;
3705
+ expect_pending_htlcs_forwardable_and_htlc_handling_failed ! ( nodes[ 2 ] , vec![
3706
+ HTLCDestination :: NextHopChannel {
3707
+ node_id: Some ( nodes[ 3 ] . node. get_our_node_id( ) ) ,
3708
+ channel_id: chan_2_3. 2
3709
+ } ] ) ;
3739
3710
check_added_monitors ! ( nodes[ 2 ] , 1 ) ;
3740
3711
3741
3712
let fail_updates_2 = get_htlc_update_msgs ! ( nodes[ 2 ] , nodes[ 0 ] . node. get_our_node_id( ) ) ;
3742
3713
nodes[ 0 ] . node . handle_update_fail_htlc ( & nodes[ 2 ] . node . get_our_node_id ( ) , & fail_updates_2. update_fail_htlcs [ 0 ] ) ;
3743
3714
commitment_signed_dance ! ( nodes[ 0 ] , nodes[ 2 ] , fail_updates_2. commitment_signed, false ) ;
3744
3715
3745
- expect_payment_failed_conditions ( & nodes[ 0 ] , our_payment_hash, true , PaymentFailedConditions :: new ( ) . mpp_parts_remain ( ) ) ;
3716
+ expect_payment_failed_conditions ( & nodes[ 0 ] , our_payment_hash, true ,
3717
+ PaymentFailedConditions :: new ( ) . mpp_parts_remain ( ) ) ;
3746
3718
}
3747
3719
}
3748
3720
0 commit comments