@@ -9,19 +9,19 @@ use bitcoin::hashes::Hash;
99use bitcoin:: network:: constants:: Network ;
1010use bitcoin:: secp256k1:: PublicKey ;
1111use lightning:: ln:: channelmanager:: { PaymentId , RecipientOnionFields , Retry } ;
12- use lightning:: ln:: msgs:: NetAddress ;
13- use lightning:: ln:: { PaymentHash , PaymentPreimage } ;
12+ use lightning:: ln:: msgs:: SocketAddress ;
13+ use lightning:: ln:: { ChannelId , PaymentHash , PaymentPreimage } ;
1414use lightning:: onion_message:: OnionMessagePath ;
1515use lightning:: onion_message:: { CustomOnionMessageContents , Destination , OnionMessageContents } ;
1616use lightning:: routing:: gossip:: NodeId ;
1717use lightning:: routing:: router:: { PaymentParameters , RouteParameters } ;
1818use lightning:: sign:: { EntropySource , KeysManager } ;
1919use lightning:: util:: config:: { ChannelHandshakeConfig , ChannelHandshakeLimits , UserConfig } ;
20- use lightning:: util:: persist:: KVStorePersister ;
20+ use lightning:: util:: persist:: KVStore ;
2121use lightning:: util:: ser:: { Writeable , Writer } ;
2222use lightning_invoice:: payment:: pay_invoice;
2323use lightning_invoice:: { utils, Bolt11Invoice , Currency } ;
24- use lightning_persister:: FilesystemPersister ;
24+ use lightning_persister:: fs_store :: FilesystemStore ;
2525use std:: env;
2626use std:: io;
2727use std:: io:: Write ;
@@ -38,7 +38,7 @@ pub(crate) struct LdkUserInfo {
3838 pub ( crate ) bitcoind_rpc_host : String ,
3939 pub ( crate ) ldk_storage_dir_path : String ,
4040 pub ( crate ) ldk_peer_listening_port : u16 ,
41- pub ( crate ) ldk_announced_listen_addr : Vec < NetAddress > ,
41+ pub ( crate ) ldk_announced_listen_addr : Vec < SocketAddress > ,
4242 pub ( crate ) ldk_announced_node_name : [ u8 ; 32 ] ,
4343 pub ( crate ) network : Network ,
4444}
@@ -65,7 +65,7 @@ pub(crate) fn poll_for_user_input(
6565 keys_manager : Arc < KeysManager > , network_graph : Arc < NetworkGraph > ,
6666 onion_messenger : Arc < OnionMessenger > , inbound_payments : Arc < Mutex < PaymentInfoStorage > > ,
6767 outbound_payments : Arc < Mutex < PaymentInfoStorage > > , ldk_data_dir : String , network : Network ,
68- logger : Arc < disk:: FilesystemLogger > , persister : Arc < FilesystemPersister > ,
68+ logger : Arc < disk:: FilesystemLogger > , fs_store : Arc < FilesystemStore > ,
6969) {
7070 println ! (
7171 "LDK startup successful. Enter \" help\" to view available commands. Press Ctrl-D to quit."
@@ -172,7 +172,7 @@ pub(crate) fn poll_for_user_input(
172172 & channel_manager,
173173 & invoice,
174174 & mut outbound_payments. lock ( ) . unwrap ( ) ,
175- persister . clone ( ) ,
175+ Arc :: clone ( & fs_store ) ,
176176 ) ;
177177 }
178178 "keysend" => {
@@ -209,7 +209,7 @@ pub(crate) fn poll_for_user_input(
209209 amt_msat,
210210 & * keys_manager,
211211 & mut outbound_payments. lock ( ) . unwrap ( ) ,
212- persister . clone ( ) ,
212+ Arc :: clone ( & fs_store ) ,
213213 ) ;
214214 }
215215 "getinvoice" => {
@@ -247,7 +247,9 @@ pub(crate) fn poll_for_user_input(
247247 expiry_secs. unwrap ( ) ,
248248 Arc :: clone ( & logger) ,
249249 ) ;
250- persister. persist ( INBOUND_PAYMENTS_FNAME , & * inbound_payments) . unwrap ( ) ;
250+ fs_store
251+ . write ( "" , "" , INBOUND_PAYMENTS_FNAME , & inbound_payments. encode ( ) )
252+ . unwrap ( ) ;
251253 }
252254 "connectpeer" => {
253255 let peer_pubkey_and_ip_addr = words. next ( ) ;
@@ -515,7 +517,7 @@ fn list_channels(channel_manager: &Arc<ChannelManager>, network_graph: &Arc<Netw
515517 for chan_info in channel_manager. list_channels ( ) {
516518 println ! ( "" ) ;
517519 println ! ( "\t {{" ) ;
518- println ! ( "\t \t channel_id: {}," , hex_utils :: hex_str ( & chan_info. channel_id[ .. ] ) ) ;
520+ println ! ( "\t \t channel_id: {}," , chan_info. channel_id) ;
519521 if let Some ( funding_txo) = chan_info. funding_txo {
520522 println ! ( "\t \t funding_txid: {}," , funding_txo. txid) ;
521523 }
@@ -539,7 +541,7 @@ fn list_channels(channel_manager: &Arc<ChannelManager>, network_graph: &Arc<Netw
539541 }
540542 println ! ( "\t \t is_channel_ready: {}," , chan_info. is_channel_ready) ;
541543 println ! ( "\t \t channel_value_satoshis: {}," , chan_info. channel_value_satoshis) ;
542- println ! ( "\t \t local_balance_msat : {}," , chan_info. balance_msat ) ;
544+ println ! ( "\t \t outbound_capacity_msat : {}," , chan_info. outbound_capacity_msat ) ;
543545 if chan_info. is_usable {
544546 println ! ( "\t \t available_balance_for_send_msat: {}," , chan_info. outbound_capacity_msat) ;
545547 println ! ( "\t \t available_balance_for_recv_msat: {}," , chan_info. inbound_capacity_msat) ;
@@ -557,7 +559,7 @@ fn list_payments(inbound_payments: &PaymentInfoStorage, outbound_payments: &Paym
557559 println ! ( "" ) ;
558560 println ! ( "\t {{" ) ;
559561 println ! ( "\t \t amount_millisatoshis: {}," , payment_info. amt_msat) ;
560- println ! ( "\t \t payment_hash: {}," , hex_utils :: hex_str ( & payment_hash. 0 ) ) ;
562+ println ! ( "\t \t payment_hash: {}," , payment_hash) ;
561563 println ! ( "\t \t htlc_direction: inbound," ) ;
562564 println ! (
563565 "\t \t htlc_status: {}," ,
@@ -575,7 +577,7 @@ fn list_payments(inbound_payments: &PaymentInfoStorage, outbound_payments: &Paym
575577 println ! ( "" ) ;
576578 println ! ( "\t {{" ) ;
577579 println ! ( "\t \t amount_millisatoshis: {}," , payment_info. amt_msat) ;
578- println ! ( "\t \t payment_hash: {}," , hex_utils :: hex_str ( & payment_hash. 0 ) ) ;
580+ println ! ( "\t \t payment_hash: {}," , payment_hash) ;
579581 println ! ( "\t \t htlc_direction: outbound," ) ;
580582 println ! (
581583 "\t \t htlc_status: {}," ,
@@ -682,7 +684,7 @@ fn open_channel(
682684
683685fn send_payment (
684686 channel_manager : & ChannelManager , invoice : & Bolt11Invoice ,
685- outbound_payments : & mut PaymentInfoStorage , persister : Arc < FilesystemPersister > ,
687+ outbound_payments : & mut PaymentInfoStorage , fs_store : Arc < FilesystemStore > ,
686688) {
687689 let payment_hash = PaymentHash ( ( * invoice. payment_hash ( ) ) . into_inner ( ) ) ;
688690 let payment_secret = Some ( * invoice. payment_secret ( ) ) ;
@@ -695,7 +697,7 @@ fn send_payment(
695697 amt_msat : MillisatAmount ( invoice. amount_milli_satoshis ( ) ) ,
696698 } ,
697699 ) ;
698- persister . persist ( OUTBOUND_PAYMENTS_FNAME , & * outbound_payments) . unwrap ( ) ;
700+ fs_store . write ( "" , "" , OUTBOUND_PAYMENTS_FNAME , & outbound_payments. encode ( ) ) . unwrap ( ) ;
699701 match pay_invoice ( invoice, Retry :: Timeout ( Duration :: from_secs ( 10 ) ) , channel_manager) {
700702 Ok ( _payment_id) => {
701703 let payee_pubkey = invoice. recover_payee_pub_key ( ) ;
@@ -707,22 +709,22 @@ fn send_payment(
707709 println ! ( "ERROR: failed to send payment: {:?}" , e) ;
708710 print ! ( "> " ) ;
709711 outbound_payments. payments . get_mut ( & payment_hash) . unwrap ( ) . status = HTLCStatus :: Failed ;
710- persister . persist ( OUTBOUND_PAYMENTS_FNAME , & * outbound_payments) . unwrap ( ) ;
712+ fs_store . write ( "" , "" , OUTBOUND_PAYMENTS_FNAME , & outbound_payments. encode ( ) ) . unwrap ( ) ;
711713 }
712714 } ;
713715}
714716
715717fn keysend < E : EntropySource > (
716718 channel_manager : & ChannelManager , payee_pubkey : PublicKey , amt_msat : u64 , entropy_source : & E ,
717- outbound_payments : & mut PaymentInfoStorage , persister : Arc < FilesystemPersister > ,
719+ outbound_payments : & mut PaymentInfoStorage , fs_store : Arc < FilesystemStore > ,
718720) {
719721 let payment_preimage = PaymentPreimage ( entropy_source. get_secure_random_bytes ( ) ) ;
720722 let payment_hash = PaymentHash ( Sha256 :: hash ( & payment_preimage. 0 [ ..] ) . into_inner ( ) ) ;
721723
722- let route_params = RouteParameters {
723- payment_params : PaymentParameters :: for_keysend ( payee_pubkey, 40 , false ) ,
724- final_value_msat : amt_msat,
725- } ;
724+ let route_params = RouteParameters :: from_payment_params_and_value (
725+ PaymentParameters :: for_keysend ( payee_pubkey, 40 , false ) ,
726+ amt_msat,
727+ ) ;
726728 outbound_payments. payments . insert (
727729 payment_hash,
728730 PaymentInfo {
@@ -732,7 +734,7 @@ fn keysend<E: EntropySource>(
732734 amt_msat : MillisatAmount ( Some ( amt_msat) ) ,
733735 } ,
734736 ) ;
735- persister . persist ( OUTBOUND_PAYMENTS_FNAME , & * outbound_payments) . unwrap ( ) ;
737+ fs_store . write ( "" , "" , OUTBOUND_PAYMENTS_FNAME , & outbound_payments. encode ( ) ) . unwrap ( ) ;
736738 match channel_manager. send_spontaneous_payment_with_retry (
737739 Some ( payment_preimage) ,
738740 RecipientOnionFields :: spontaneous_empty ( ) ,
@@ -748,7 +750,7 @@ fn keysend<E: EntropySource>(
748750 println ! ( "ERROR: failed to send payment: {:?}" , e) ;
749751 print ! ( "> " ) ;
750752 outbound_payments. payments . get_mut ( & payment_hash) . unwrap ( ) . status = HTLCStatus :: Failed ;
751- persister . persist ( OUTBOUND_PAYMENTS_FNAME , & * outbound_payments) . unwrap ( ) ;
753+ fs_store . write ( "" , "" , OUTBOUND_PAYMENTS_FNAME , & outbound_payments. encode ( ) ) . unwrap ( ) ;
752754 }
753755 } ;
754756}
@@ -799,7 +801,7 @@ fn get_invoice(
799801fn close_channel (
800802 channel_id : [ u8 ; 32 ] , counterparty_node_id : PublicKey , channel_manager : Arc < ChannelManager > ,
801803) {
802- match channel_manager. close_channel ( & channel_id, & counterparty_node_id) {
804+ match channel_manager. close_channel ( & ChannelId ( channel_id) , & counterparty_node_id) {
803805 Ok ( ( ) ) => println ! ( "EVENT: initiating channel close" ) ,
804806 Err ( e) => println ! ( "ERROR: failed to close channel: {:?}" , e) ,
805807 }
@@ -808,7 +810,9 @@ fn close_channel(
808810fn force_close_channel (
809811 channel_id : [ u8 ; 32 ] , counterparty_node_id : PublicKey , channel_manager : Arc < ChannelManager > ,
810812) {
811- match channel_manager. force_close_broadcasting_latest_txn ( & channel_id, & counterparty_node_id) {
813+ match channel_manager
814+ . force_close_broadcasting_latest_txn ( & ChannelId ( channel_id) , & counterparty_node_id)
815+ {
812816 Ok ( ( ) ) => println ! ( "EVENT: initiating channel force-close" ) ,
813817 Err ( e) => println ! ( "ERROR: failed to force-close channel: {:?}" , e) ,
814818 }
0 commit comments