@@ -1,7 +1,52 @@
|
||||
use lightning_invoice::Bolt11Invoice;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use crate::channels::Channels;
|
||||
use crate::invoice::Invoice;
|
||||
use serde::Serialize;
|
||||
use serde_json::Value;
|
||||
|
||||
pub enum ConnectionState {
|
||||
Dead(String),
|
||||
Connecting,
|
||||
Active,
|
||||
}
|
||||
pub enum LoadingState<T, E> {
|
||||
Loading,
|
||||
Failed(E),
|
||||
Loaded(T),
|
||||
}
|
||||
|
||||
impl<T, E> Default for LoadingState<T, E> {
|
||||
fn default() -> Self {
|
||||
Self::Loading
|
||||
}
|
||||
}
|
||||
|
||||
impl<T, E> LoadingState<T, E> {
|
||||
fn _as_ref(&self) -> LoadingState<&T, &E> {
|
||||
match self {
|
||||
Self::Loading => LoadingState::<&T, &E>::Loading,
|
||||
Self::Failed(err) => LoadingState::<&T, &E>::Failed(err),
|
||||
Self::Loaded(t) => LoadingState::<&T, &E>::Loaded(t),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn from_result(res: Result<T, E>) -> LoadingState<T, E> {
|
||||
match res {
|
||||
Ok(r) => LoadingState::Loaded(r),
|
||||
Err(err) => LoadingState::Failed(err),
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
fn unwrap(self) -> T {
|
||||
let Self::Loaded(t) = self else {
|
||||
panic!("unwrap in LoadingState");
|
||||
};
|
||||
|
||||
t
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
#[derive(Serialize, Debug, Clone)]
|
||||
pub struct WaitRequest {
|
||||
pub indexname: String,
|
||||
@@ -16,42 +61,6 @@ pub enum Request {
|
||||
PaidInvoices(u32),
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
pub struct ListPeerChannel {
|
||||
pub short_channel_id: String,
|
||||
pub our_reserve_msat: i64,
|
||||
pub to_us_msat: i64,
|
||||
pub total_msat: i64,
|
||||
pub their_reserve_msat: i64,
|
||||
}
|
||||
|
||||
pub struct Channel {
|
||||
pub to_us: i64,
|
||||
pub to_them: i64,
|
||||
pub original: ListPeerChannel,
|
||||
}
|
||||
|
||||
pub struct Channels {
|
||||
pub max_total_msat: i64,
|
||||
pub avail_in: i64,
|
||||
pub avail_out: i64,
|
||||
pub channels: Vec<Channel>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct Invoice {
|
||||
pub lastpay_index: Option<u64>,
|
||||
pub label: String,
|
||||
pub bolt11: Bolt11Invoice,
|
||||
pub payment_hash: String,
|
||||
pub amount_msat: u64,
|
||||
pub status: String,
|
||||
pub description: String,
|
||||
pub expires_at: u64,
|
||||
pub created_index: u64,
|
||||
pub updated_index: u64,
|
||||
}
|
||||
|
||||
/// Responses from the socket
|
||||
pub enum ClnResponse {
|
||||
GetInfo(Value),
|
||||
|
||||
Reference in New Issue
Block a user