lnd_grpc_tonic_client/
lib.rs1pub mod invoicesrpc;
7#[allow(clippy::large_enum_variant)]
8pub mod lnrpc;
9pub mod routerrpc;
10
11pub mod channel;
12pub use channel::connect_lnd;
13
14pub use hyper::Uri;
15
16pub type LightningClient = lnrpc::lightning_client::LightningClient<channel::Channel>;
17pub type RouterClient = routerrpc::router_client::RouterClient<channel::Channel>;
18pub type InvoicesClient = invoicesrpc::invoices_client::InvoicesClient<channel::Channel>;
19
20pub async fn create_lightning_client(
21 uri: Uri,
22 cert: Option<&[u8]>,
23 macaroon: Option<&[u8]>,
24) -> Result<LightningClient, channel::Error> {
25 connect_lnd(uri, cert, macaroon)
26 .await
27 .map(LightningClient::new)
28}
29
30pub async fn create_router_client(
31 uri: Uri,
32 cert: Option<&[u8]>,
33 macaroon: Option<&[u8]>,
34) -> Result<RouterClient, channel::Error> {
35 connect_lnd(uri, cert, macaroon)
36 .await
37 .map(RouterClient::new)
38}
39
40pub async fn create_invoices_client(
41 uri: Uri,
42 cert: Option<&[u8]>,
43 macaroon: Option<&[u8]>,
44) -> Result<InvoicesClient, channel::Error> {
45 connect_lnd(uri, cert, macaroon)
46 .await
47 .map(InvoicesClient::new)
48}