@@ -46,8 +46,7 @@ use crate::io::persist::paginated_kv_store::PaginatedKVStore;
4646use crate :: io:: persist:: sqlite_store:: SqliteStore ;
4747use crate :: io:: persist:: {
4848 FORWARDED_PAYMENTS_PERSISTENCE_PRIMARY_NAMESPACE ,
49- FORWARDED_PAYMENTS_PERSISTENCE_SECONDARY_NAMESPACE , PAYMENTS_PERSISTENCE_PRIMARY_NAMESPACE ,
50- PAYMENTS_PERSISTENCE_SECONDARY_NAMESPACE ,
49+ FORWARDED_PAYMENTS_PERSISTENCE_SECONDARY_NAMESPACE ,
5150} ;
5251use crate :: service:: NodeService ;
5352use crate :: util:: config:: { load_config, ArgsConfig , ChainSource } ;
@@ -504,7 +503,7 @@ fn main() {
504503 . map( node_to_proto_custom_tlv)
505504 . collect( ) ;
506505
507- send_event_and_upsert_payment (
506+ send_payment_event (
508507 & payment_id,
509508 move |payment_ref| {
510509 event_envelope:: Event :: PaymentReceived ( events:: PaymentReceived {
@@ -515,7 +514,6 @@ fn main() {
515514 } ,
516515 & event_node,
517516 & event_sender,
518- Arc :: clone( & paginated_store) ,
519517 ) ;
520518
521519 if let Some ( metrics) = & metrics {
@@ -527,38 +525,36 @@ fn main() {
527525 let bolt12_invoice = bolt12_invoice. as_ref( ) . and_then( |invoice| {
528526 invoice. bolt12_invoice( ) . map( |i| i. encode( ) . to_lower_hex_string( ) )
529527 } ) ;
530- send_event_and_upsert_payment ( & payment_id,
528+ send_payment_event ( & payment_id,
531529 |payment_ref| event_envelope:: Event :: PaymentSuccessful ( events:: PaymentSuccessful {
532530 payment_id: payment_id. to_string( ) ,
533531 payment: Some ( payment_ref. clone( ) ) ,
534532 payment_preimage,
535533 bolt12_invoice,
536534 } ) ,
537535 & event_node,
538- & event_sender,
539- Arc :: clone( & paginated_store) ) ;
536+ & event_sender) ;
540537
541538 if let Some ( metrics) = & metrics {
542539 metrics. update_payments_count( true ) ;
543540 metrics. update_all_balances( & event_node) ;
544541 }
545542 } ,
546543 Event :: PaymentFailed { payment_id, ..} => {
547- send_event_and_upsert_payment ( & payment_id,
544+ send_payment_event ( & payment_id,
548545 |payment_ref| event_envelope:: Event :: PaymentFailed ( events:: PaymentFailed {
549546 payment_id: payment_id. to_string( ) ,
550547 payment: Some ( payment_ref. clone( ) ) ,
551548 } ) ,
552549 & event_node,
553- & event_sender,
554- Arc :: clone( & paginated_store) ) ;
550+ & event_sender) ;
555551
556552 if let Some ( metrics) = & metrics {
557553 metrics. update_payments_count( false ) ;
558554 }
559555 } ,
560556 Event :: PaymentClaimable { payment_id, custom_records, claim_deadline, .. } => {
561- send_event_and_upsert_payment (
557+ send_payment_event (
562558 & payment_id,
563559 |payment_ref| {
564560 event_envelope:: Event :: PaymentClaimable (
@@ -572,7 +568,6 @@ fn main() {
572568 } ,
573569 & event_node,
574570 & event_sender,
575- Arc :: clone( & paginated_store) ,
576571 ) ;
577572 } ,
578573 Event :: PaymentForwarded {
@@ -706,10 +701,9 @@ fn main() {
706701 log:: logger ( ) . flush ( ) ;
707702}
708703
709- fn send_event_and_upsert_payment (
704+ fn send_payment_event (
710705 payment_id : & PaymentId , payment_to_event : impl FnOnce ( & Payment ) -> event_envelope:: Event ,
711706 event_node : & Node , event_sender : & broadcast:: Sender < EventEnvelope > ,
712- paginated_store : Arc < dyn PaginatedKVStore > ,
713707) {
714708 match event_node. payment ( payment_id) {
715709 Ok ( Some ( payment_details) ) => {
@@ -720,7 +714,9 @@ fn send_event_and_upsert_payment(
720714 debug ! ( "No event subscribers connected, skipping event: {e}" ) ;
721715 }
722716
723- upsert_payment_details ( event_node, Arc :: clone ( & paginated_store) , & payment) ;
717+ if let Err ( e) = event_node. event_handled ( ) {
718+ error ! ( "Failed to mark event as handled: {e}" ) ;
719+ }
724720 } ,
725721 Ok ( None ) => error ! ( "Unable to find payment with payment ID: {payment_id}" ) ,
726722 Err ( e) => error ! ( "Failed to retrieve payment with payment ID {payment_id}: {e}" ) ,
@@ -879,30 +875,6 @@ fn closure_reason_details(
879875 }
880876}
881877
882- fn upsert_payment_details (
883- event_node : & Node , paginated_store : Arc < dyn PaginatedKVStore > , payment : & Payment ,
884- ) {
885- let time =
886- SystemTime :: now ( ) . duration_since ( UNIX_EPOCH ) . expect ( "Time must be > 1970" ) . as_secs ( ) as i64 ;
887-
888- match paginated_store. write (
889- PAYMENTS_PERSISTENCE_PRIMARY_NAMESPACE ,
890- PAYMENTS_PERSISTENCE_SECONDARY_NAMESPACE ,
891- & payment. payment_id ,
892- time,
893- & payment. encode_to_vec ( ) ,
894- ) {
895- Ok ( _) => {
896- if let Err ( e) = event_node. event_handled ( ) {
897- error ! ( "Failed to mark event as handled: {e}" ) ;
898- }
899- } ,
900- Err ( e) => {
901- error ! ( "Failed to write payment to persistence: {e}" ) ;
902- } ,
903- }
904- }
905-
906878/// Loads the API key from a file, or generates a new one if it doesn't exist.
907879/// The API key file is stored with 0400 permissions (read-only for owner).
908880fn load_or_generate_api_key ( storage_dir : & Path ) -> std:: io:: Result < String > {
0 commit comments