Skip to content

Commit 729e672

Browse files
committed
Add impl for GetNodeInfo Api.
1 parent 89d9308 commit 729e672

3 files changed

Lines changed: 31 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
use ldk_node::Node;
2+
use protos::{BestBlock, GetNodeInfoRequest, GetNodeInfoResponse};
3+
use std::sync::Arc;
4+
5+
pub(crate) const GET_NODE_INFO: &str = "GetNodeInfo";
6+
7+
pub(crate) fn handle_get_node_info_request(
8+
node: Arc<Node>, _request: GetNodeInfoRequest,
9+
) -> Result<GetNodeInfoResponse, ldk_node::NodeError> {
10+
let node_status = node.status();
11+
12+
let best_block = BestBlock {
13+
block_hash: node_status.current_best_block.block_hash.to_string(),
14+
height: node_status.current_best_block.height,
15+
};
16+
17+
let response = GetNodeInfoResponse {
18+
node_id: node.node_id().to_string(),
19+
current_best_block: Some(best_block),
20+
latest_wallet_sync_timestamp: node_status.latest_wallet_sync_timestamp,
21+
latest_onchain_wallet_sync_timestamp: node_status.latest_onchain_wallet_sync_timestamp,
22+
latest_fee_rate_cache_update_timestamp: node_status.latest_fee_rate_cache_update_timestamp,
23+
latest_rgs_snapshot_timestamp: node_status.latest_rgs_snapshot_timestamp,
24+
latest_node_announcement_broadcast_timestamp: node_status
25+
.latest_node_announcement_broadcast_timestamp,
26+
};
27+
Ok(response)
28+
}

ldk-server/server/src/api/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ pub(crate) mod bolt11_send;
33
pub(crate) mod bolt12_receive;
44
pub(crate) mod bolt12_send;
55
pub(crate) mod close_channel;
6+
pub(crate) mod get_node_info;
67
pub(crate) mod list_channels;
78
pub(crate) mod onchain_receive;
89
pub(crate) mod onchain_send;

ldk-server/server/src/service.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use crate::api::bolt11_send::{handle_bolt11_send_request, BOLT11_SEND_PATH};
1616
use crate::api::bolt12_receive::{handle_bolt12_receive_request, BOLT12_RECEIVE_PATH};
1717
use crate::api::bolt12_send::{handle_bolt12_send_request, BOLT12_SEND_PATH};
1818
use crate::api::close_channel::{handle_close_channel_request, CLOSE_CHANNEL_PATH};
19+
use crate::api::get_node_info::{handle_get_node_info_request, GET_NODE_INFO};
1920
use crate::api::list_channels::{handle_list_channels_request, LIST_CHANNELS_PATH};
2021
use crate::api::onchain_receive::{handle_onchain_receive_request, ONCHAIN_RECEIVE_PATH};
2122
use crate::api::onchain_send::{handle_onchain_send_request, ONCHAIN_SEND_PATH};
@@ -41,6 +42,7 @@ impl Service<Request<Incoming>> for NodeService {
4142
let node = Arc::clone(&self.node);
4243
// Exclude '/' from path pattern matching.
4344
match &req.uri().path()[1..] {
45+
GET_NODE_INFO => Box::pin(handle_request(node, req, handle_get_node_info_request)),
4446
ONCHAIN_RECEIVE_PATH => {
4547
Box::pin(handle_request(node, req, handle_onchain_receive_request))
4648
},

0 commit comments

Comments
 (0)