@@ -4,15 +4,18 @@ use crate::error::LdkServerError;
44use ldk_server_protos:: api:: {
55 Bolt11ReceiveRequest , Bolt11ReceiveResponse , Bolt11SendRequest , Bolt11SendResponse ,
66 Bolt12ReceiveRequest , Bolt12ReceiveResponse , Bolt12SendRequest , Bolt12SendResponse ,
7- CloseChannelRequest , CloseChannelResponse , ListChannelsRequest , ListChannelsResponse ,
8- OnchainReceiveRequest , OnchainReceiveResponse , OnchainSendRequest , OnchainSendResponse ,
9- OpenChannelRequest , OpenChannelResponse ,
7+ CloseChannelRequest , CloseChannelResponse , GetBalancesRequest , GetBalancesResponse ,
8+ GetNodeInfoRequest , GetNodeInfoResponse , ListChannelsRequest , ListChannelsResponse ,
9+ ListPaymentsRequest , ListPaymentsResponse , OnchainReceiveRequest , OnchainReceiveResponse ,
10+ OnchainSendRequest , OnchainSendResponse , OpenChannelRequest , OpenChannelResponse ,
1011} ;
1112use reqwest:: header:: CONTENT_TYPE ;
1213use reqwest:: Client ;
1314
1415const APPLICATION_OCTET_STREAM : & str = "application/octet-stream" ;
1516
17+ const GET_NODE_INFO_PATH : & str = "GetNodeInfo" ;
18+ const GET_BALANCES_PATH : & str = "GetBalances" ;
1619const ONCHAIN_RECEIVE_PATH : & str = "OnchainReceive" ;
1720const ONCHAIN_SEND_PATH : & str = "OnchainSend" ;
1821const BOLT11_RECEIVE_PATH : & str = "Bolt11Receive" ;
@@ -22,6 +25,7 @@ const BOLT12_SEND_PATH: &str = "Bolt12Send";
2225const OPEN_CHANNEL_PATH : & str = "OpenChannel" ;
2326const CLOSE_CHANNEL_PATH : & str = "CloseChannel" ;
2427const LIST_CHANNELS_PATH : & str = "ListChannels" ;
28+ const LIST_PAYMENTS_PATH : & str = "ListPayments" ;
2529
2630/// Client to access a hosted instance of LDK Server.
2731#[ derive( Clone ) ]
@@ -36,6 +40,24 @@ impl LdkServerClient {
3640 Self { base_url, client : Client :: new ( ) }
3741 }
3842
43+ /// Retrieve the latest node info like `node_id`, `current_best_block` etc.
44+ /// For API contract/usage, refer to docs for [`GetNodeInfoRequest`] and [`GetNodeInfoResponse`].
45+ pub async fn get_node_info (
46+ & self , request : GetNodeInfoRequest ,
47+ ) -> Result < GetNodeInfoResponse , LdkServerError > {
48+ let url = format ! ( "http://{}/{GET_NODE_INFO_PATH}" , self . base_url) ;
49+ self . post_request ( & request, & url) . await
50+ }
51+
52+ /// Retrieves an overview of all known balances.
53+ /// For API contract/usage, refer to docs for [`GetBalancesRequest`] and [`GetBalancesResponse`].
54+ pub async fn get_balances (
55+ & self , request : GetBalancesRequest ,
56+ ) -> Result < GetBalancesResponse , LdkServerError > {
57+ let url = format ! ( "http://{}/{GET_BALANCES_PATH}" , self . base_url) ;
58+ self . post_request ( & request, & url) . await
59+ }
60+
3961 /// Retrieve a new on-chain funding address.
4062 /// For API contract/usage, refer to docs for [`OnchainReceiveRequest`] and [`OnchainReceiveResponse`].
4163 pub async fn onchain_receive (
@@ -117,6 +139,15 @@ impl LdkServerClient {
117139 self . post_request ( & request, & url) . await
118140 }
119141
142+ /// Retrieves list of all payments sent or received by us.
143+ /// For API contract/usage, refer to docs for [`ListPaymentsRequest`] and [`ListPaymentsResponse`].
144+ pub async fn list_payments (
145+ & self , request : ListPaymentsRequest ,
146+ ) -> Result < ListPaymentsResponse , LdkServerError > {
147+ let url = format ! ( "http://{}/{LIST_PAYMENTS_PATH}" , self . base_url) ;
148+ self . post_request ( & request, & url) . await
149+ }
150+
120151 async fn post_request < Rq : Message , Rs : Message + Default > (
121152 & self , request : & Rq , url : & str ,
122153 ) -> Result < Rs , LdkServerError > {
0 commit comments