Skip to main content

lowlevel_1/
lowlevel_1.rs

1extern crate clightningrpc_common;
2
3use serde::{Deserialize, Serialize};
4use std::env;
5
6use clightningrpc_common::client;
7use clightningrpc_common::types::Response;
8
9/// Example of type definition
10#[derive(Debug, Clone, Deserialize, Serialize)]
11struct GetInfoResponse {
12    pub id: String,
13}
14
15/// Example of type definition
16#[derive(Debug, Clone, Deserialize, Serialize)]
17struct GetInfoRequest {}
18
19fn main() {
20    #[allow(deprecated)]
21    let sock = env::home_dir().unwrap().join(".lightning/lightning-rpc");
22    println!("Using socket {}", sock.display());
23    let client = client::Client::new(&sock);
24    let method = "getinfo";
25    let params = GetInfoRequest {};
26    match client
27        .send_request(method, params)
28        .and_then(|res: Response<GetInfoResponse>| res.into_result())
29    {
30        Ok(d) => {
31            println!("Ok! {:?}", d);
32        }
33        Err(e) => {
34            println!("Error! {}", e);
35        }
36    }
37}