cln_rpc/
notifications.rs

1// This file is autogenerated by `msggen`
2// Do not edit it manually, your changes will be overwritten
3
4
5
6use crate::primitives::*;
7use serde::{Serialize, Deserialize};
8#[derive(Clone, Debug, Deserialize, Serialize)]
9pub enum Notification {
10    #[serde(rename = "block_added")]
11    BlockAdded(BlockAddedNotification),
12    #[serde(rename = "channel_open_failed")]
13    ChannelOpenFailed(ChannelOpenFailedNotification),
14    #[serde(rename = "channel_opened")]
15    ChannelOpened(ChannelOpenedNotification),
16    #[serde(rename = "connect")]
17    Connect(ConnectNotification),
18    #[serde(rename = "custommsg")]
19    CustomMsg(CustomMsgNotification),
20    #[serde(rename = "channel_state_changed")]
21    ChannelStateChanged(ChannelStateChangedNotification),
22}
23
24
25#[derive(Clone, Debug, Deserialize, Serialize)]
26pub struct BlockAddedNotification {
27    pub hash: Sha256,
28    pub height: u32,
29}
30
31#[derive(Clone, Debug, Deserialize, Serialize)]
32pub struct ChannelOpenFailedNotification {
33    pub channel_id: Sha256,
34}
35
36#[derive(Clone, Debug, Deserialize, Serialize)]
37pub struct ChannelOpenedNotification {
38    pub channel_ready: bool,
39    pub funding_msat: Amount,
40    pub funding_txid: String,
41    pub id: PublicKey,
42}
43
44/// ['Direction of the connection']
45#[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
46#[allow(non_camel_case_types)]
47pub enum PeerConnectDirection {
48    #[serde(rename = "in")]
49    IN = 0,
50    #[serde(rename = "out")]
51    OUT = 1,
52}
53
54impl TryFrom<i32> for PeerConnectDirection {
55    type Error = anyhow::Error;
56    fn try_from(c: i32) -> Result<PeerConnectDirection, anyhow::Error> {
57        match c {
58    0 => Ok(PeerConnectDirection::IN),
59    1 => Ok(PeerConnectDirection::OUT),
60            o => Err(anyhow::anyhow!("Unknown variant {} for enum PeerConnectDirection", o)),
61        }
62    }
63}
64
65impl ToString for PeerConnectDirection {
66    fn to_string(&self) -> String {
67        match self {
68            PeerConnectDirection::IN => "IN",
69            PeerConnectDirection::OUT => "OUT",
70        }.to_string()
71    }
72}
73
74/// ['Type of connection (*torv2*/*torv3* only if **direction** is *out*)']
75#[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
76#[allow(non_camel_case_types)]
77pub enum PeerConnectAddressType {
78    #[serde(rename = "local socket")]
79    LOCAL_SOCKET = 0,
80    #[serde(rename = "ipv4")]
81    IPV4 = 1,
82    #[serde(rename = "ipv6")]
83    IPV6 = 2,
84    #[serde(rename = "torv2")]
85    TORV2 = 3,
86    #[serde(rename = "torv3")]
87    TORV3 = 4,
88    #[serde(rename = "websocket")]
89    WEBSOCKET = 5,
90}
91
92impl TryFrom<i32> for PeerConnectAddressType {
93    type Error = anyhow::Error;
94    fn try_from(c: i32) -> Result<PeerConnectAddressType, anyhow::Error> {
95        match c {
96    0 => Ok(PeerConnectAddressType::LOCAL_SOCKET),
97    1 => Ok(PeerConnectAddressType::IPV4),
98    2 => Ok(PeerConnectAddressType::IPV6),
99    3 => Ok(PeerConnectAddressType::TORV2),
100    4 => Ok(PeerConnectAddressType::TORV3),
101    5 => Ok(PeerConnectAddressType::WEBSOCKET),
102            o => Err(anyhow::anyhow!("Unknown variant {} for enum PeerConnectAddressType", o)),
103        }
104    }
105}
106
107impl ToString for PeerConnectAddressType {
108    fn to_string(&self) -> String {
109        match self {
110            PeerConnectAddressType::LOCAL_SOCKET => "LOCAL_SOCKET",
111            PeerConnectAddressType::IPV4 => "IPV4",
112            PeerConnectAddressType::IPV6 => "IPV6",
113            PeerConnectAddressType::TORV2 => "TORV2",
114            PeerConnectAddressType::TORV3 => "TORV3",
115            PeerConnectAddressType::WEBSOCKET => "WEBSOCKET",
116        }.to_string()
117    }
118}
119
120#[derive(Clone, Debug, Deserialize, Serialize)]
121pub struct ConnectAddress {
122    #[serde(skip_serializing_if = "Option::is_none")]
123    pub address: Option<String>,
124    #[serde(skip_serializing_if = "Option::is_none")]
125    pub port: Option<u16>,
126    #[serde(skip_serializing_if = "Option::is_none")]
127    pub socket: Option<String>,
128    // Path `connect.address.type`
129    #[serde(rename = "type")]
130    pub item_type: PeerConnectAddressType,
131}
132
133#[derive(Clone, Debug, Deserialize, Serialize)]
134pub struct ConnectNotification {
135    // Path `connect.direction`
136    pub direction: PeerConnectDirection,
137    pub address: ConnectAddress,
138    pub id: PublicKey,
139}
140
141#[derive(Clone, Debug, Deserialize, Serialize)]
142pub struct CustomMsgNotification {
143    pub payload: String,
144    pub peer_id: PublicKey,
145}
146
147/// ['The cause of the state change.']
148#[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
149#[allow(non_camel_case_types)]
150pub enum ChannelStateChangedCause {
151    #[serde(rename = "unknown")]
152    UNKNOWN = 0,
153    #[serde(rename = "local")]
154    LOCAL = 1,
155    #[serde(rename = "user")]
156    USER = 2,
157    #[serde(rename = "remote")]
158    REMOTE = 3,
159    #[serde(rename = "protocol")]
160    PROTOCOL = 4,
161    #[serde(rename = "onchain")]
162    ONCHAIN = 5,
163}
164
165impl TryFrom<i32> for ChannelStateChangedCause {
166    type Error = anyhow::Error;
167    fn try_from(c: i32) -> Result<ChannelStateChangedCause, anyhow::Error> {
168        match c {
169    0 => Ok(ChannelStateChangedCause::UNKNOWN),
170    1 => Ok(ChannelStateChangedCause::LOCAL),
171    2 => Ok(ChannelStateChangedCause::USER),
172    3 => Ok(ChannelStateChangedCause::REMOTE),
173    4 => Ok(ChannelStateChangedCause::PROTOCOL),
174    5 => Ok(ChannelStateChangedCause::ONCHAIN),
175            o => Err(anyhow::anyhow!("Unknown variant {} for enum ChannelStateChangedCause", o)),
176        }
177    }
178}
179
180impl ToString for ChannelStateChangedCause {
181    fn to_string(&self) -> String {
182        match self {
183            ChannelStateChangedCause::UNKNOWN => "UNKNOWN",
184            ChannelStateChangedCause::LOCAL => "LOCAL",
185            ChannelStateChangedCause::USER => "USER",
186            ChannelStateChangedCause::REMOTE => "REMOTE",
187            ChannelStateChangedCause::PROTOCOL => "PROTOCOL",
188            ChannelStateChangedCause::ONCHAIN => "ONCHAIN",
189        }.to_string()
190    }
191}
192
193#[derive(Clone, Debug, Deserialize, Serialize)]
194pub struct ChannelStateChangedNotification {
195    #[serde(skip_serializing_if = "Option::is_none")]
196    pub old_state: Option<ChannelState>,
197    #[serde(skip_serializing_if = "Option::is_none")]
198    pub short_channel_id: Option<ShortChannelId>,
199    // Path `channel_state_changed.cause`
200    pub cause: ChannelStateChangedCause,
201    // Path `channel_state_changed.new_state`
202    pub new_state: ChannelState,
203    pub channel_id: Sha256,
204    pub message: String,
205    pub peer_id: PublicKey,
206    pub timestamp: String,
207}
208
209pub mod requests{
210use serde::{Serialize, Deserialize};
211
212    #[derive(Clone, Debug, Deserialize, Serialize)]
213    pub struct StreamBlockAddedRequest {
214    }
215
216    #[derive(Clone, Debug, Deserialize, Serialize)]
217    pub struct StreamChannelOpenFailedRequest {
218    }
219
220    #[derive(Clone, Debug, Deserialize, Serialize)]
221    pub struct StreamChannelOpenedRequest {
222    }
223
224    #[derive(Clone, Debug, Deserialize, Serialize)]
225    pub struct StreamConnectRequest {
226    }
227
228    #[derive(Clone, Debug, Deserialize, Serialize)]
229    pub struct StreamCustomMsgRequest {
230    }
231
232    #[derive(Clone, Debug, Deserialize, Serialize)]
233    pub struct StreamChannelStateChangedRequest {
234    }
235
236}