@@ -498,11 +498,13 @@ where
498
498
status : Some ( PaymentStatus :: Failed ) ,
499
499
..PaymentDetailsUpdate :: new ( payment_id)
500
500
} ;
501
- self . payment_store . update ( & update) . unwrap_or_else ( |e| {
502
- log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
503
- panic ! ( "Failed to access payment store" ) ;
504
- } ) ;
505
- return Ok ( ( ) ) ;
501
+ match self . payment_store . update ( & update) {
502
+ Ok ( _) => return Ok ( ( ) ) ,
503
+ Err ( e) => {
504
+ log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
505
+ return Err ( ReplayEvent ( ) ) ;
506
+ } ,
507
+ } ;
506
508
}
507
509
508
510
if info. status == PaymentStatus :: Succeeded
@@ -520,11 +522,13 @@ where
520
522
status : Some ( PaymentStatus :: Failed ) ,
521
523
..PaymentDetailsUpdate :: new ( payment_id)
522
524
} ;
523
- self . payment_store . update ( & update) . unwrap_or_else ( |e| {
524
- log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
525
- panic ! ( "Failed to access payment store" ) ;
526
- } ) ;
527
- return Ok ( ( ) ) ;
525
+ match self . payment_store . update ( & update) {
526
+ Ok ( _) => return Ok ( ( ) ) ,
527
+ Err ( e) => {
528
+ log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
529
+ return Err ( ReplayEvent ( ) ) ;
530
+ } ,
531
+ } ;
528
532
}
529
533
530
534
let max_total_opening_fee_msat = match info. kind {
@@ -559,11 +563,13 @@ where
559
563
status : Some ( PaymentStatus :: Failed ) ,
560
564
..PaymentDetailsUpdate :: new ( payment_id)
561
565
} ;
562
- self . payment_store . update ( & update) . unwrap_or_else ( |e| {
563
- log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
564
- panic ! ( "Failed to access payment store" ) ;
565
- } ) ;
566
- return Ok ( ( ) ) ;
566
+ match self . payment_store . update ( & update) {
567
+ Ok ( _) => return Ok ( ( ) ) ,
568
+ Err ( e) => {
569
+ log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
570
+ return Err ( ReplayEvent ( ) ) ;
571
+ } ,
572
+ } ;
567
573
}
568
574
569
575
// If this is known by the store but ChannelManager doesn't know the preimage,
@@ -577,22 +583,23 @@ where
577
583
"We would have registered the preimage if we knew"
578
584
) ;
579
585
580
- self . event_queue
581
- . add_event ( Event :: PaymentClaimable {
582
- payment_id,
583
- payment_hash,
584
- claimable_amount_msat : amount_msat,
585
- claim_deadline,
586
- } )
587
- . unwrap_or_else ( |e| {
586
+ let event = Event :: PaymentClaimable {
587
+ payment_id,
588
+ payment_hash,
589
+ claimable_amount_msat : amount_msat,
590
+ claim_deadline,
591
+ } ;
592
+ match self . event_queue . add_event ( event) {
593
+ Ok ( _) => return Ok ( ( ) ) ,
594
+ Err ( e) => {
588
595
log_error ! (
589
596
self . logger,
590
597
"Failed to push to event queue: {}" ,
591
598
e
592
599
) ;
593
- panic ! ( "Failed to push to event queue" ) ;
594
- } ) ;
595
- return Ok ( ( ) ) ;
600
+ return Err ( ReplayEvent ( ) ) ;
601
+ } ,
602
+ } ;
596
603
}
597
604
} ,
598
605
_ => { } ,
@@ -715,10 +722,13 @@ where
715
722
status : Some ( PaymentStatus :: Failed ) ,
716
723
..PaymentDetailsUpdate :: new ( payment_id)
717
724
} ;
718
- self . payment_store . update ( & update) . unwrap_or_else ( |e| {
719
- log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
720
- panic ! ( "Failed to access payment store" ) ;
721
- } ) ;
725
+ match self . payment_store . update ( & update) {
726
+ Ok ( _) => return Ok ( ( ) ) ,
727
+ Err ( e) => {
728
+ log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
729
+ return Err ( ReplayEvent ( ) ) ;
730
+ } ,
731
+ } ;
722
732
}
723
733
} ,
724
734
LdkEvent :: PaymentClaimed {
@@ -796,20 +806,22 @@ where
796
806
payment_id,
797
807
e
798
808
) ;
799
- panic ! ( "Failed to access payment store" ) ;
809
+ return Err ( ReplayEvent ( ) ) ;
800
810
} ,
801
811
}
802
812
803
- self . event_queue
804
- . add_event ( Event :: PaymentReceived {
805
- payment_id : Some ( payment_id) ,
806
- payment_hash,
807
- amount_msat,
808
- } )
809
- . unwrap_or_else ( |e| {
813
+ let event = Event :: PaymentReceived {
814
+ payment_id : Some ( payment_id) ,
815
+ payment_hash,
816
+ amount_msat,
817
+ } ;
818
+ match self . event_queue . add_event ( event) {
819
+ Ok ( _) => return Ok ( ( ) ) ,
820
+ Err ( e) => {
810
821
log_error ! ( self . logger, "Failed to push to event queue: {}" , e) ;
811
- panic ! ( "Failed to push to event queue" ) ;
812
- } ) ;
822
+ return Err ( ReplayEvent ( ) ) ;
823
+ } ,
824
+ } ;
813
825
} ,
814
826
LdkEvent :: PaymentSent {
815
827
payment_id,
@@ -832,10 +844,13 @@ where
832
844
..PaymentDetailsUpdate :: new ( payment_id)
833
845
} ;
834
846
835
- self . payment_store . update ( & update) . unwrap_or_else ( |e| {
836
- log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
837
- panic ! ( "Failed to access payment store" ) ;
838
- } ) ;
847
+ match self . payment_store . update ( & update) {
848
+ Ok ( _) => { } ,
849
+ Err ( e) => {
850
+ log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
851
+ return Err ( ReplayEvent ( ) ) ;
852
+ } ,
853
+ } ;
839
854
840
855
self . payment_store . get ( & payment_id) . map ( |payment| {
841
856
log_info ! (
@@ -852,17 +867,19 @@ where
852
867
hex_utils:: to_string( & payment_preimage. 0 )
853
868
) ;
854
869
} ) ;
870
+ let event = Event :: PaymentSuccessful {
871
+ payment_id : Some ( payment_id) ,
872
+ payment_hash,
873
+ fee_paid_msat,
874
+ } ;
855
875
856
- self . event_queue
857
- . add_event ( Event :: PaymentSuccessful {
858
- payment_id : Some ( payment_id) ,
859
- payment_hash,
860
- fee_paid_msat,
861
- } )
862
- . unwrap_or_else ( |e| {
876
+ match self . event_queue . add_event ( event) {
877
+ Ok ( _) => return Ok ( ( ) ) ,
878
+ Err ( e) => {
863
879
log_error ! ( self . logger, "Failed to push to event queue: {}" , e) ;
864
- panic ! ( "Failed to push to event queue" ) ;
865
- } ) ;
880
+ return Err ( ReplayEvent ( ) ) ;
881
+ } ,
882
+ } ;
866
883
} ,
867
884
LdkEvent :: PaymentFailed { payment_id, payment_hash, reason, .. } => {
868
885
log_info ! (
@@ -877,20 +894,23 @@ where
877
894
status : Some ( PaymentStatus :: Failed ) ,
878
895
..PaymentDetailsUpdate :: new ( payment_id)
879
896
} ;
880
- self . payment_store . update ( & update) . unwrap_or_else ( |e| {
881
- log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
882
- panic ! ( "Failed to access payment store" ) ;
883
- } ) ;
884
- self . event_queue
885
- . add_event ( Event :: PaymentFailed {
886
- payment_id : Some ( payment_id) ,
887
- payment_hash,
888
- reason,
889
- } )
890
- . unwrap_or_else ( |e| {
897
+ match self . payment_store . update ( & update) {
898
+ Ok ( _) => { } ,
899
+ Err ( e) => {
900
+ log_error ! ( self . logger, "Failed to access payment store: {}" , e) ;
901
+ return Err ( ReplayEvent ( ) ) ;
902
+ } ,
903
+ } ;
904
+
905
+ let event =
906
+ Event :: PaymentFailed { payment_id : Some ( payment_id) , payment_hash, reason } ;
907
+ match self . event_queue . add_event ( event) {
908
+ Ok ( _) => return Ok ( ( ) ) ,
909
+ Err ( e) => {
891
910
log_error ! ( self . logger, "Failed to push to event queue: {}" , e) ;
892
- panic ! ( "Failed to push to event queue" ) ;
893
- } ) ;
911
+ return Err ( ReplayEvent ( ) ) ;
912
+ } ,
913
+ } ;
894
914
} ,
895
915
896
916
LdkEvent :: PaymentPathSuccessful { .. } => { } ,
@@ -915,12 +935,13 @@ where
915
935
}
916
936
} ,
917
937
LdkEvent :: SpendableOutputs { outputs, channel_id } => {
918
- self . output_sweeper
919
- . track_spendable_outputs ( outputs , channel_id , true , None )
920
- . unwrap_or_else ( |_| {
938
+ match self . output_sweeper . track_spendable_outputs ( outputs , channel_id , true , None ) {
939
+ Ok ( _ ) => return Ok ( ( ) ) ,
940
+ Err ( _ ) => {
921
941
log_error ! ( self . logger, "Failed to track spendable outputs" ) ;
922
- panic ! ( "Failed to track spendable outputs" ) ;
923
- } ) ;
942
+ return Err ( ReplayEvent ( ) ) ;
943
+ } ,
944
+ } ;
924
945
} ,
925
946
LdkEvent :: OpenChannelRequest {
926
947
temporary_channel_id,
@@ -1111,18 +1132,22 @@ where
1111
1132
channel_id,
1112
1133
counterparty_node_id,
1113
1134
) ;
1114
- self . event_queue
1115
- . add_event ( Event :: ChannelPending {
1116
- channel_id,
1117
- user_channel_id : UserChannelId ( user_channel_id) ,
1118
- former_temporary_channel_id : former_temporary_channel_id. unwrap ( ) ,
1119
- counterparty_node_id,
1120
- funding_txo,
1121
- } )
1122
- . unwrap_or_else ( |e| {
1135
+
1136
+ let event = Event :: ChannelPending {
1137
+ channel_id,
1138
+ user_channel_id : UserChannelId ( user_channel_id) ,
1139
+ former_temporary_channel_id : former_temporary_channel_id. unwrap ( ) ,
1140
+ counterparty_node_id,
1141
+ funding_txo,
1142
+ } ;
1143
+ match self . event_queue . add_event ( event) {
1144
+ Ok ( _) => { } ,
1145
+ Err ( e) => {
1123
1146
log_error ! ( self . logger, "Failed to push to event queue: {}" , e) ;
1124
- panic ! ( "Failed to push to event queue" ) ;
1125
- } ) ;
1147
+ return Err ( ReplayEvent ( ) ) ;
1148
+ } ,
1149
+ } ;
1150
+
1126
1151
let network_graph = self . network_graph . read_only ( ) ;
1127
1152
let channels =
1128
1153
self . channel_manager . list_channels_with_counterparty ( & counterparty_node_id) ;
@@ -1164,16 +1189,19 @@ where
1164
1189
channel_id,
1165
1190
counterparty_node_id,
1166
1191
) ;
1167
- self . event_queue
1168
- . add_event ( Event :: ChannelReady {
1169
- channel_id,
1170
- user_channel_id : UserChannelId ( user_channel_id) ,
1171
- counterparty_node_id : Some ( counterparty_node_id) ,
1172
- } )
1173
- . unwrap_or_else ( |e| {
1192
+
1193
+ let event = Event :: ChannelReady {
1194
+ channel_id,
1195
+ user_channel_id : UserChannelId ( user_channel_id) ,
1196
+ counterparty_node_id : Some ( counterparty_node_id) ,
1197
+ } ;
1198
+ match self . event_queue . add_event ( event) {
1199
+ Ok ( _) => { } ,
1200
+ Err ( e) => {
1174
1201
log_error ! ( self . logger, "Failed to push to event queue: {}" , e) ;
1175
- panic ! ( "Failed to push to event queue" ) ;
1176
- } ) ;
1202
+ return Err ( ReplayEvent ( ) ) ;
1203
+ } ,
1204
+ } ;
1177
1205
} ,
1178
1206
LdkEvent :: ChannelClosed {
1179
1207
channel_id,
@@ -1183,17 +1211,21 @@ where
1183
1211
..
1184
1212
} => {
1185
1213
log_info ! ( self . logger, "Channel {} closed due to: {}" , channel_id, reason) ;
1186
- self . event_queue
1187
- . add_event ( Event :: ChannelClosed {
1188
- channel_id,
1189
- user_channel_id : UserChannelId ( user_channel_id) ,
1190
- counterparty_node_id,
1191
- reason : Some ( reason) ,
1192
- } )
1193
- . unwrap_or_else ( |e| {
1214
+
1215
+ let event = Event :: ChannelClosed {
1216
+ channel_id,
1217
+ user_channel_id : UserChannelId ( user_channel_id) ,
1218
+ counterparty_node_id,
1219
+ reason : Some ( reason) ,
1220
+ } ;
1221
+
1222
+ match self . event_queue . add_event ( event) {
1223
+ Ok ( _) => { } ,
1224
+ Err ( e) => {
1194
1225
log_error ! ( self . logger, "Failed to push to event queue: {}" , e) ;
1195
- panic ! ( "Failed to push to event queue" ) ;
1196
- } ) ;
1226
+ return Err ( ReplayEvent ( ) ) ;
1227
+ } ,
1228
+ } ;
1197
1229
} ,
1198
1230
LdkEvent :: DiscardFunding { .. } => { } ,
1199
1231
LdkEvent :: HTLCIntercepted { .. } => { } ,
0 commit comments