1
2#![allow(deprecated)]
12
13use serde::{Deserialize, Serialize};
16
17#[derive(Clone, Debug, Serialize, Deserialize)]
18#[serde(tag = "method", content = "params")]
19#[serde(rename_all = "lowercase")]
20pub enum Request {
21 Getinfo(requests::GetinfoRequest),
22 ListPeers(requests::ListpeersRequest),
23 ListFunds(requests::ListfundsRequest),
24 SendPay(requests::SendpayRequest),
25 ListChannels(requests::ListchannelsRequest),
26 AddGossip(requests::AddgossipRequest),
27 AddPsbtOutput(requests::AddpsbtoutputRequest),
28 #[serde(rename = "autoclean-once")]
29 AutoCleanOnce(requests::AutocleanonceRequest),
30 #[serde(rename = "autoclean-status")]
31 AutoCleanStatus(requests::AutocleanstatusRequest),
32 CheckMessage(requests::CheckmessageRequest),
33 Close(requests::CloseRequest),
34 Connect(requests::ConnectRequest),
35 CreateInvoice(requests::CreateinvoiceRequest),
36 Datastore(requests::DatastoreRequest),
37 DatastoreUsage(requests::DatastoreusageRequest),
38 CreateOnion(requests::CreateonionRequest),
39 DelDatastore(requests::DeldatastoreRequest),
40 DelInvoice(requests::DelinvoiceRequest),
41 #[serde(rename = "dev-forget-channel")]
42 DevForgetChannel(requests::DevforgetchannelRequest),
43 EmergencyRecover(requests::EmergencyrecoverRequest),
44 GetEmergencyRecoverData(requests::GetemergencyrecoverdataRequest),
45 ExposeSecret(requests::ExposesecretRequest),
46 Recover(requests::RecoverRequest),
47 RecoverChannel(requests::RecoverchannelRequest),
48 Invoice(requests::InvoiceRequest),
49 InvoiceRequest(requests::InvoicerequestRequest),
50 DisableInvoiceRequest(requests::DisableinvoicerequestRequest),
51 ListInvoiceRequests(requests::ListinvoicerequestsRequest),
52 ListDatastore(requests::ListdatastoreRequest),
53 ListInvoices(requests::ListinvoicesRequest),
54 SendOnion(requests::SendonionRequest),
55 ListSendPays(requests::ListsendpaysRequest),
56 ListTransactions(requests::ListtransactionsRequest),
57 MakeSecret(requests::MakesecretRequest),
58 Pay(requests::PayRequest),
59 ListNodes(requests::ListnodesRequest),
60 WaitAnyInvoice(requests::WaitanyinvoiceRequest),
61 WaitInvoice(requests::WaitinvoiceRequest),
62 WaitSendPay(requests::WaitsendpayRequest),
63 NewAddr(requests::NewaddrRequest),
64 Withdraw(requests::WithdrawRequest),
65 KeySend(requests::KeysendRequest),
66 FundPsbt(requests::FundpsbtRequest),
67 SendPsbt(requests::SendpsbtRequest),
68 SignPsbt(requests::SignpsbtRequest),
69 UtxoPsbt(requests::UtxopsbtRequest),
70 TxDiscard(requests::TxdiscardRequest),
71 TxPrepare(requests::TxprepareRequest),
72 TxSend(requests::TxsendRequest),
73 ListPeerChannels(requests::ListpeerchannelsRequest),
74 ListClosedChannels(requests::ListclosedchannelsRequest),
75 Decode(requests::DecodeRequest),
76 DelPay(requests::DelpayRequest),
77 DelForward(requests::DelforwardRequest),
78 DisableOffer(requests::DisableofferRequest),
79 EnableOffer(requests::EnableofferRequest),
80 Disconnect(requests::DisconnectRequest),
81 Feerates(requests::FeeratesRequest),
82 FetchBip353(requests::Fetchbip353Request),
83 FetchInvoice(requests::FetchinvoiceRequest),
84 CancelRecurringInvoice(requests::CancelrecurringinvoiceRequest),
85 #[serde(rename = "fundchannel_cancel")]
86 FundChannelCancel(requests::FundchannelCancelRequest),
87 #[serde(rename = "fundchannel_complete")]
88 FundChannelComplete(requests::FundchannelCompleteRequest),
89 FundChannel(requests::FundchannelRequest),
90 #[serde(rename = "fundchannel_start")]
91 FundChannelStart(requests::FundchannelStartRequest),
92 GetLog(requests::GetlogRequest),
93 FunderUpdate(requests::FunderupdateRequest),
94 GetRoute(requests::GetrouteRequest),
95 ListAddresses(requests::ListaddressesRequest),
96 ListForwards(requests::ListforwardsRequest),
97 ListOffers(requests::ListoffersRequest),
98 ListPays(requests::ListpaysRequest),
99 ListHtlcs(requests::ListhtlcsRequest),
100 MultiFundChannel(requests::MultifundchannelRequest),
101 MultiWithdraw(requests::MultiwithdrawRequest),
102 Offer(requests::OfferRequest),
103 #[serde(rename = "openchannel_abort")]
104 OpenChannelAbort(requests::OpenchannelAbortRequest),
105 #[serde(rename = "openchannel_bump")]
106 OpenChannelBump(requests::OpenchannelBumpRequest),
107 #[serde(rename = "openchannel_init")]
108 OpenChannelInit(requests::OpenchannelInitRequest),
109 #[serde(rename = "openchannel_signed")]
110 OpenChannelSigned(requests::OpenchannelSignedRequest),
111 #[serde(rename = "openchannel_update")]
112 OpenChannelUpdate(requests::OpenchannelUpdateRequest),
113 Ping(requests::PingRequest),
114 Plugin(requests::PluginRequest),
115 RenePayStatus(requests::RenepaystatusRequest),
116 RenePay(requests::RenepayRequest),
117 ReserveInputs(requests::ReserveinputsRequest),
118 SendCustomMsg(requests::SendcustommsgRequest),
119 SendInvoice(requests::SendinvoiceRequest),
120 SetChannel(requests::SetchannelRequest),
121 SetConfig(requests::SetconfigRequest),
122 SetPsbtVersion(requests::SetpsbtversionRequest),
123 SignInvoice(requests::SigninvoiceRequest),
124 SignMessage(requests::SignmessageRequest),
125 #[serde(rename = "splice_init")]
126 SpliceInit(requests::SpliceInitRequest),
127 #[serde(rename = "splice_signed")]
128 SpliceSigned(requests::SpliceSignedRequest),
129 #[serde(rename = "splice_update")]
130 SpliceUpdate(requests::SpliceUpdateRequest),
131 SpliceIn(requests::SpliceinRequest),
132 SpliceOut(requests::SpliceoutRequest),
133 #[serde(rename = "dev-splice")]
134 DevSplice(requests::DevspliceRequest),
135 UnreserveInputs(requests::UnreserveinputsRequest),
136 UpgradeWallet(requests::UpgradewalletRequest),
137 WaitBlockHeight(requests::WaitblockheightRequest),
138 Wait(requests::WaitRequest),
139 ListConfigs(requests::ListconfigsRequest),
140 Stop(requests::StopRequest),
141 Help(requests::HelpRequest),
142 PreApproveKeysend(requests::PreapprovekeysendRequest),
143 PreApproveInvoice(requests::PreapproveinvoiceRequest),
144 StaticBackup(requests::StaticbackupRequest),
145 #[serde(rename = "bkpr-channelsapy")]
146 BkprChannelsApy(requests::BkprchannelsapyRequest),
147 #[serde(rename = "bkpr-dumpincomecsv")]
148 BkprDumpIncomeCsv(requests::BkprdumpincomecsvRequest),
149 #[serde(rename = "bkpr-inspect")]
150 BkprInspect(requests::BkprinspectRequest),
151 #[serde(rename = "bkpr-listaccountevents")]
152 BkprListAccountEvents(requests::BkprlistaccounteventsRequest),
153 #[serde(rename = "bkpr-listbalances")]
154 BkprListBalances(requests::BkprlistbalancesRequest),
155 #[serde(rename = "bkpr-listincome")]
156 BkprListIncome(requests::BkprlistincomeRequest),
157 #[serde(rename = "bkpr-editdescriptionbypaymentid")]
158 BkprEditDescriptionByPaymentId(requests::BkpreditdescriptionbypaymentidRequest),
159 #[serde(rename = "bkpr-editdescriptionbyoutpoint")]
160 BkprEditDescriptionByOutpoint(requests::BkpreditdescriptionbyoutpointRequest),
161 #[serde(rename = "bkpr-report")]
162 BkprReport(requests::BkprreportRequest),
163 BlacklistRune(requests::BlacklistruneRequest),
164 CheckRune(requests::CheckruneRequest),
165 CreateRune(requests::CreateruneRequest),
166 ShowRunes(requests::ShowrunesRequest),
167 #[serde(rename = "askrene-unreserve")]
168 AskReneUnreserve(requests::AskreneunreserveRequest),
169 #[serde(rename = "askrene-listlayers")]
170 AskReneListLayers(requests::AskrenelistlayersRequest),
171 #[serde(rename = "askrene-create-layer")]
172 AskReneCreateLayer(requests::AskrenecreatelayerRequest),
173 #[serde(rename = "askrene-remove-layer")]
174 AskReneRemoveLayer(requests::AskreneremovelayerRequest),
175 #[serde(rename = "askrene-remove-channel-update")]
176 AskReneRemoveChannelUpdate(requests::AskreneremovechannelupdateRequest),
177 #[serde(rename = "askrene-reserve")]
178 AskReneReserve(requests::AskrenereserveRequest),
179 #[serde(rename = "askrene-age")]
180 AskReneAge(requests::AskreneageRequest),
181 GetRoutes(requests::GetroutesRequest),
182 #[serde(rename = "askrene-disable-node")]
183 AskReneDisableNode(requests::AskrenedisablenodeRequest),
184 #[serde(rename = "askrene-inform-channel")]
185 AskReneInformChannel(requests::AskreneinformchannelRequest),
186 #[serde(rename = "askrene-create-channel")]
187 AskReneCreateChannel(requests::AskrenecreatechannelRequest),
188 #[serde(rename = "askrene-update-channel")]
189 AskReneUpdateChannel(requests::AskreneupdatechannelRequest),
190 #[serde(rename = "askrene-bias-channel")]
191 AskReneBiasChannel(requests::AskrenebiaschannelRequest),
192 #[serde(rename = "askrene-bias-node")]
193 AskreneBiasNode(requests::AskrenebiasnodeRequest),
194 #[serde(rename = "askrene-listreservations")]
195 AskReneListReservations(requests::AskrenelistreservationsRequest),
196 InjectPaymentOnion(requests::InjectpaymentonionRequest),
197 InjectOnionMessage(requests::InjectonionmessageRequest),
198 Xpay(requests::XpayRequest),
199 SignMessageWithKey(requests::SignmessagewithkeyRequest),
200 ListChannelMoves(requests::ListchannelmovesRequest),
201 ListChainMoves(requests::ListchainmovesRequest),
202 ListNetworkEvents(requests::ListnetworkeventsRequest),
203 DelNetworkEvent(requests::DelnetworkeventRequest),
204 #[serde(rename = "clnrest-register-path")]
205 ClnrestRegisterPath(requests::ClnrestregisterpathRequest),
206 ListCurrencyRates(requests::ListcurrencyratesRequest),
207 CurrencyConvert(requests::CurrencyconvertRequest),
208 CurrencyRate(requests::CurrencyrateRequest),
209 SendAmount(requests::SendamountRequest),
210 CreateProof(requests::CreateproofRequest),
211 Xkeysend(requests::XkeysendRequest),
212 Graceful(requests::GracefulRequest),
213}
214
215#[derive(Clone, Debug, Serialize, Deserialize)]
216#[serde(tag = "method", content = "result")]
217#[serde(rename_all = "lowercase")]
218pub enum Response {
219 Getinfo(responses::GetinfoResponse),
220 ListPeers(responses::ListpeersResponse),
221 ListFunds(responses::ListfundsResponse),
222 SendPay(responses::SendpayResponse),
223 ListChannels(responses::ListchannelsResponse),
224 AddGossip(responses::AddgossipResponse),
225 AddPsbtOutput(responses::AddpsbtoutputResponse),
226 #[serde(rename = "autoclean-once")]
227 AutoCleanOnce(responses::AutocleanonceResponse),
228 #[serde(rename = "autoclean-status")]
229 AutoCleanStatus(responses::AutocleanstatusResponse),
230 CheckMessage(responses::CheckmessageResponse),
231 Close(responses::CloseResponse),
232 Connect(responses::ConnectResponse),
233 CreateInvoice(responses::CreateinvoiceResponse),
234 Datastore(responses::DatastoreResponse),
235 DatastoreUsage(responses::DatastoreusageResponse),
236 CreateOnion(responses::CreateonionResponse),
237 DelDatastore(responses::DeldatastoreResponse),
238 DelInvoice(responses::DelinvoiceResponse),
239 #[serde(rename = "dev-forget-channel")]
240 DevForgetChannel(responses::DevforgetchannelResponse),
241 EmergencyRecover(responses::EmergencyrecoverResponse),
242 GetEmergencyRecoverData(responses::GetemergencyrecoverdataResponse),
243 ExposeSecret(responses::ExposesecretResponse),
244 Recover(responses::RecoverResponse),
245 RecoverChannel(responses::RecoverchannelResponse),
246 Invoice(responses::InvoiceResponse),
247 InvoiceRequest(responses::InvoicerequestResponse),
248 DisableInvoiceRequest(responses::DisableinvoicerequestResponse),
249 ListInvoiceRequests(responses::ListinvoicerequestsResponse),
250 ListDatastore(responses::ListdatastoreResponse),
251 ListInvoices(responses::ListinvoicesResponse),
252 SendOnion(responses::SendonionResponse),
253 ListSendPays(responses::ListsendpaysResponse),
254 ListTransactions(responses::ListtransactionsResponse),
255 MakeSecret(responses::MakesecretResponse),
256 Pay(responses::PayResponse),
257 ListNodes(responses::ListnodesResponse),
258 WaitAnyInvoice(responses::WaitanyinvoiceResponse),
259 WaitInvoice(responses::WaitinvoiceResponse),
260 WaitSendPay(responses::WaitsendpayResponse),
261 NewAddr(responses::NewaddrResponse),
262 Withdraw(responses::WithdrawResponse),
263 KeySend(responses::KeysendResponse),
264 FundPsbt(responses::FundpsbtResponse),
265 SendPsbt(responses::SendpsbtResponse),
266 SignPsbt(responses::SignpsbtResponse),
267 UtxoPsbt(responses::UtxopsbtResponse),
268 TxDiscard(responses::TxdiscardResponse),
269 TxPrepare(responses::TxprepareResponse),
270 TxSend(responses::TxsendResponse),
271 ListPeerChannels(responses::ListpeerchannelsResponse),
272 ListClosedChannels(responses::ListclosedchannelsResponse),
273 Decode(responses::DecodeResponse),
274 DelPay(responses::DelpayResponse),
275 DelForward(responses::DelforwardResponse),
276 DisableOffer(responses::DisableofferResponse),
277 EnableOffer(responses::EnableofferResponse),
278 Disconnect(responses::DisconnectResponse),
279 Feerates(responses::FeeratesResponse),
280 FetchBip353(responses::Fetchbip353Response),
281 FetchInvoice(responses::FetchinvoiceResponse),
282 CancelRecurringInvoice(responses::CancelrecurringinvoiceResponse),
283 #[serde(rename = "fundchannel_cancel")]
284 FundChannelCancel(responses::FundchannelCancelResponse),
285 #[serde(rename = "fundchannel_complete")]
286 FundChannelComplete(responses::FundchannelCompleteResponse),
287 FundChannel(responses::FundchannelResponse),
288 #[serde(rename = "fundchannel_start")]
289 FundChannelStart(responses::FundchannelStartResponse),
290 GetLog(responses::GetlogResponse),
291 FunderUpdate(responses::FunderupdateResponse),
292 GetRoute(responses::GetrouteResponse),
293 ListAddresses(responses::ListaddressesResponse),
294 ListForwards(responses::ListforwardsResponse),
295 ListOffers(responses::ListoffersResponse),
296 ListPays(responses::ListpaysResponse),
297 ListHtlcs(responses::ListhtlcsResponse),
298 MultiFundChannel(responses::MultifundchannelResponse),
299 MultiWithdraw(responses::MultiwithdrawResponse),
300 Offer(responses::OfferResponse),
301 #[serde(rename = "openchannel_abort")]
302 OpenChannelAbort(responses::OpenchannelAbortResponse),
303 #[serde(rename = "openchannel_bump")]
304 OpenChannelBump(responses::OpenchannelBumpResponse),
305 #[serde(rename = "openchannel_init")]
306 OpenChannelInit(responses::OpenchannelInitResponse),
307 #[serde(rename = "openchannel_signed")]
308 OpenChannelSigned(responses::OpenchannelSignedResponse),
309 #[serde(rename = "openchannel_update")]
310 OpenChannelUpdate(responses::OpenchannelUpdateResponse),
311 Ping(responses::PingResponse),
312 Plugin(responses::PluginResponse),
313 RenePayStatus(responses::RenepaystatusResponse),
314 RenePay(responses::RenepayResponse),
315 ReserveInputs(responses::ReserveinputsResponse),
316 SendCustomMsg(responses::SendcustommsgResponse),
317 SendInvoice(responses::SendinvoiceResponse),
318 SetChannel(responses::SetchannelResponse),
319 SetConfig(responses::SetconfigResponse),
320 SetPsbtVersion(responses::SetpsbtversionResponse),
321 SignInvoice(responses::SigninvoiceResponse),
322 SignMessage(responses::SignmessageResponse),
323 #[serde(rename = "splice_init")]
324 SpliceInit(responses::SpliceInitResponse),
325 #[serde(rename = "splice_signed")]
326 SpliceSigned(responses::SpliceSignedResponse),
327 #[serde(rename = "splice_update")]
328 SpliceUpdate(responses::SpliceUpdateResponse),
329 SpliceIn(responses::SpliceinResponse),
330 SpliceOut(responses::SpliceoutResponse),
331 #[serde(rename = "dev-splice")]
332 DevSplice(responses::DevspliceResponse),
333 UnreserveInputs(responses::UnreserveinputsResponse),
334 UpgradeWallet(responses::UpgradewalletResponse),
335 WaitBlockHeight(responses::WaitblockheightResponse),
336 Wait(responses::WaitResponse),
337 ListConfigs(responses::ListconfigsResponse),
338 Stop(responses::StopResponse),
339 Help(responses::HelpResponse),
340 PreApproveKeysend(responses::PreapprovekeysendResponse),
341 PreApproveInvoice(responses::PreapproveinvoiceResponse),
342 StaticBackup(responses::StaticbackupResponse),
343 #[serde(rename = "bkpr-channelsapy")]
344 BkprChannelsApy(responses::BkprchannelsapyResponse),
345 #[serde(rename = "bkpr-dumpincomecsv")]
346 BkprDumpIncomeCsv(responses::BkprdumpincomecsvResponse),
347 #[serde(rename = "bkpr-inspect")]
348 BkprInspect(responses::BkprinspectResponse),
349 #[serde(rename = "bkpr-listaccountevents")]
350 BkprListAccountEvents(responses::BkprlistaccounteventsResponse),
351 #[serde(rename = "bkpr-listbalances")]
352 BkprListBalances(responses::BkprlistbalancesResponse),
353 #[serde(rename = "bkpr-listincome")]
354 BkprListIncome(responses::BkprlistincomeResponse),
355 #[serde(rename = "bkpr-editdescriptionbypaymentid")]
356 BkprEditDescriptionByPaymentId(responses::BkpreditdescriptionbypaymentidResponse),
357 #[serde(rename = "bkpr-editdescriptionbyoutpoint")]
358 BkprEditDescriptionByOutpoint(responses::BkpreditdescriptionbyoutpointResponse),
359 #[serde(rename = "bkpr-report")]
360 BkprReport(responses::BkprreportResponse),
361 BlacklistRune(responses::BlacklistruneResponse),
362 CheckRune(responses::CheckruneResponse),
363 CreateRune(responses::CreateruneResponse),
364 ShowRunes(responses::ShowrunesResponse),
365 #[serde(rename = "askrene-unreserve")]
366 AskReneUnreserve(responses::AskreneunreserveResponse),
367 #[serde(rename = "askrene-listlayers")]
368 AskReneListLayers(responses::AskrenelistlayersResponse),
369 #[serde(rename = "askrene-create-layer")]
370 AskReneCreateLayer(responses::AskrenecreatelayerResponse),
371 #[serde(rename = "askrene-remove-layer")]
372 AskReneRemoveLayer(responses::AskreneremovelayerResponse),
373 #[serde(rename = "askrene-remove-channel-update")]
374 AskReneRemoveChannelUpdate(responses::AskreneremovechannelupdateResponse),
375 #[serde(rename = "askrene-reserve")]
376 AskReneReserve(responses::AskrenereserveResponse),
377 #[serde(rename = "askrene-age")]
378 AskReneAge(responses::AskreneageResponse),
379 GetRoutes(responses::GetroutesResponse),
380 #[serde(rename = "askrene-disable-node")]
381 AskReneDisableNode(responses::AskrenedisablenodeResponse),
382 #[serde(rename = "askrene-inform-channel")]
383 AskReneInformChannel(responses::AskreneinformchannelResponse),
384 #[serde(rename = "askrene-create-channel")]
385 AskReneCreateChannel(responses::AskrenecreatechannelResponse),
386 #[serde(rename = "askrene-update-channel")]
387 AskReneUpdateChannel(responses::AskreneupdatechannelResponse),
388 #[serde(rename = "askrene-bias-channel")]
389 AskReneBiasChannel(responses::AskrenebiaschannelResponse),
390 #[serde(rename = "askrene-bias-node")]
391 AskreneBiasNode(responses::AskrenebiasnodeResponse),
392 #[serde(rename = "askrene-listreservations")]
393 AskReneListReservations(responses::AskrenelistreservationsResponse),
394 InjectPaymentOnion(responses::InjectpaymentonionResponse),
395 InjectOnionMessage(responses::InjectonionmessageResponse),
396 Xpay(responses::XpayResponse),
397 SignMessageWithKey(responses::SignmessagewithkeyResponse),
398 ListChannelMoves(responses::ListchannelmovesResponse),
399 ListChainMoves(responses::ListchainmovesResponse),
400 ListNetworkEvents(responses::ListnetworkeventsResponse),
401 DelNetworkEvent(responses::DelnetworkeventResponse),
402 #[serde(rename = "clnrest-register-path")]
403 ClnrestRegisterPath(responses::ClnrestregisterpathResponse),
404 ListCurrencyRates(responses::ListcurrencyratesResponse),
405 CurrencyConvert(responses::CurrencyconvertResponse),
406 CurrencyRate(responses::CurrencyrateResponse),
407 SendAmount(responses::SendamountResponse),
408 CreateProof(responses::CreateproofResponse),
409 Xkeysend(responses::XkeysendResponse),
410 Graceful(responses::GracefulResponse),
411}
412
413
414pub trait IntoRequest: Into<Request> {
415 type Response: TryFrom<Response, Error = TryFromResponseError>;
416}
417
418pub trait TypedRequest {
419 type Response;
420
421 fn method(&self) -> &str;
422}
423
424#[derive(Debug)]
425pub struct TryFromResponseError;
426
427pub mod requests {
428 #[allow(unused_imports)]
429 use crate::primitives::*;
430 #[allow(unused_imports)]
431 use serde::{{Deserialize, Serialize}};
432 use core::fmt::Debug;
433 use std::collections::HashMap;
434 use super::{IntoRequest, Request, TypedRequest};
435 #[derive(Clone, Debug, Deserialize, Serialize)]
436 pub struct GetinfoRequest {
437 }
438
439 impl From<GetinfoRequest> for Request {
440 fn from(r: GetinfoRequest) -> Self {
441 Request::Getinfo(r)
442 }
443 }
444
445 impl IntoRequest for GetinfoRequest {
446 type Response = super::responses::GetinfoResponse;
447 }
448
449 impl TypedRequest for GetinfoRequest {
450 type Response = super::responses::GetinfoResponse;
451
452 fn method(&self) -> &str {
453 "getinfo"
454 }
455 }
456 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
458 #[allow(non_camel_case_types)]
459 pub enum ListpeersLevel {
460 #[serde(rename = "io")]
461 IO = 0,
462 #[serde(rename = "debug")]
463 DEBUG = 1,
464 #[serde(rename = "info")]
465 INFO = 2,
466 #[serde(rename = "unusual")]
467 UNUSUAL = 3,
468 #[serde(rename = "trace")]
469 TRACE = 4,
470 }
471
472 impl TryFrom<i32> for ListpeersLevel {
473 type Error = anyhow::Error;
474 fn try_from(c: i32) -> Result<ListpeersLevel, anyhow::Error> {
475 match c {
476 0 => Ok(ListpeersLevel::IO),
477 1 => Ok(ListpeersLevel::DEBUG),
478 2 => Ok(ListpeersLevel::INFO),
479 3 => Ok(ListpeersLevel::UNUSUAL),
480 4 => Ok(ListpeersLevel::TRACE),
481 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeersLevel", o)),
482 }
483 }
484 }
485
486 impl ToString for ListpeersLevel {
487 fn to_string(&self) -> String {
488 match self {
489 ListpeersLevel::IO => "IO",
490 ListpeersLevel::TRACE => "TRACE",
491 ListpeersLevel::DEBUG => "DEBUG",
492 ListpeersLevel::INFO => "INFO",
493 ListpeersLevel::UNUSUAL => "UNUSUAL",
494 }.to_string()
495 }
496 }
497
498 #[derive(Clone, Debug, Deserialize, Serialize)]
499 pub struct ListpeersRequest {
500 #[serde(skip_serializing_if = "Option::is_none")]
501 pub id: Option<PublicKey>,
502 #[serde(skip_serializing_if = "Option::is_none")]
503 pub level: Option<ListpeersLevel>,
504 }
505
506 impl From<ListpeersRequest> for Request {
507 fn from(r: ListpeersRequest) -> Self {
508 Request::ListPeers(r)
509 }
510 }
511
512 impl IntoRequest for ListpeersRequest {
513 type Response = super::responses::ListpeersResponse;
514 }
515
516 impl TypedRequest for ListpeersRequest {
517 type Response = super::responses::ListpeersResponse;
518
519 fn method(&self) -> &str {
520 "listpeers"
521 }
522 }
523 #[derive(Clone, Debug, Deserialize, Serialize)]
524 pub struct ListfundsRequest {
525 #[serde(skip_serializing_if = "Option::is_none")]
526 pub spent: Option<bool>,
527 }
528
529 impl From<ListfundsRequest> for Request {
530 fn from(r: ListfundsRequest) -> Self {
531 Request::ListFunds(r)
532 }
533 }
534
535 impl IntoRequest for ListfundsRequest {
536 type Response = super::responses::ListfundsResponse;
537 }
538
539 impl TypedRequest for ListfundsRequest {
540 type Response = super::responses::ListfundsResponse;
541
542 fn method(&self) -> &str {
543 "listfunds"
544 }
545 }
546 #[derive(Clone, Debug, Deserialize, Serialize)]
547 pub struct SendpayRoute {
548 #[serde(skip_serializing_if = "Option::is_none")]
549 pub amount_msat: Option<Amount>,
550 #[serde(skip_serializing_if = "Option::is_none")]
551 pub amount_out_msat: Option<Amount>,
552 #[serde(skip_serializing_if = "Option::is_none")]
553 pub channel: Option<ShortChannelId>,
554 #[serde(skip_serializing_if = "Option::is_none")]
555 pub cltv_out: Option<u32>,
556 #[serde(skip_serializing_if = "Option::is_none")]
557 pub delay: Option<u32>,
558 #[serde(skip_serializing_if = "Option::is_none")]
559 pub id: Option<PublicKey>,
560 #[serde(skip_serializing_if = "Option::is_none")]
561 pub node_id_out: Option<PublicKey>,
562 #[serde(skip_serializing_if = "Option::is_none")]
563 pub short_channel_id_dir: Option<ShortChannelIdDir>,
564 }
565
566 #[derive(Clone, Debug, Deserialize, Serialize)]
567 pub struct SendpayRequest {
568 #[serde(skip_serializing_if = "Option::is_none")]
569 pub amount_msat: Option<Amount>,
570 #[serde(skip_serializing_if = "Option::is_none")]
571 pub bolt11: Option<String>,
572 #[serde(skip_serializing_if = "Option::is_none")]
573 pub description: Option<String>,
574 #[serde(skip_serializing_if = "Option::is_none")]
575 pub groupid: Option<u64>,
576 #[serde(skip_serializing_if = "Option::is_none")]
577 pub label: Option<String>,
578 #[serde(skip_serializing_if = "Option::is_none")]
579 pub localinvreqid: Option<String>,
580 #[serde(skip_serializing_if = "Option::is_none")]
581 pub partid: Option<u64>,
582 #[serde(skip_serializing_if = "Option::is_none")]
583 pub payment_metadata: Option<String>,
584 #[serde(skip_serializing_if = "Option::is_none")]
585 pub payment_secret: Option<Secret>,
586 pub payment_hash: Sha256,
587 pub route: Vec<SendpayRoute>,
588 }
589
590 impl From<SendpayRequest> for Request {
591 fn from(r: SendpayRequest) -> Self {
592 Request::SendPay(r)
593 }
594 }
595
596 impl IntoRequest for SendpayRequest {
597 type Response = super::responses::SendpayResponse;
598 }
599
600 impl TypedRequest for SendpayRequest {
601 type Response = super::responses::SendpayResponse;
602
603 fn method(&self) -> &str {
604 "sendpay"
605 }
606 }
607 #[derive(Clone, Debug, Deserialize, Serialize)]
608 pub struct ListchannelsRequest {
609 #[serde(skip_serializing_if = "Option::is_none")]
610 pub destination: Option<PublicKey>,
611 #[serde(skip_serializing_if = "Option::is_none")]
612 pub short_channel_id: Option<ShortChannelId>,
613 #[serde(skip_serializing_if = "Option::is_none")]
614 pub source: Option<PublicKey>,
615 }
616
617 impl From<ListchannelsRequest> for Request {
618 fn from(r: ListchannelsRequest) -> Self {
619 Request::ListChannels(r)
620 }
621 }
622
623 impl IntoRequest for ListchannelsRequest {
624 type Response = super::responses::ListchannelsResponse;
625 }
626
627 impl TypedRequest for ListchannelsRequest {
628 type Response = super::responses::ListchannelsResponse;
629
630 fn method(&self) -> &str {
631 "listchannels"
632 }
633 }
634 #[derive(Clone, Debug, Deserialize, Serialize)]
635 pub struct AddgossipRequest {
636 pub message: String,
637 }
638
639 impl From<AddgossipRequest> for Request {
640 fn from(r: AddgossipRequest) -> Self {
641 Request::AddGossip(r)
642 }
643 }
644
645 impl IntoRequest for AddgossipRequest {
646 type Response = super::responses::AddgossipResponse;
647 }
648
649 impl TypedRequest for AddgossipRequest {
650 type Response = super::responses::AddgossipResponse;
651
652 fn method(&self) -> &str {
653 "addgossip"
654 }
655 }
656 #[derive(Clone, Debug, Deserialize, Serialize)]
657 pub struct AddpsbtoutputRequest {
658 #[serde(skip_serializing_if = "Option::is_none")]
659 pub destination: Option<String>,
660 #[serde(skip_serializing_if = "Option::is_none")]
661 pub initialpsbt: Option<String>,
662 #[serde(skip_serializing_if = "Option::is_none")]
663 pub locktime: Option<u32>,
664 pub satoshi: Amount,
665 }
666
667 impl From<AddpsbtoutputRequest> for Request {
668 fn from(r: AddpsbtoutputRequest) -> Self {
669 Request::AddPsbtOutput(r)
670 }
671 }
672
673 impl IntoRequest for AddpsbtoutputRequest {
674 type Response = super::responses::AddpsbtoutputResponse;
675 }
676
677 impl TypedRequest for AddpsbtoutputRequest {
678 type Response = super::responses::AddpsbtoutputResponse;
679
680 fn method(&self) -> &str {
681 "addpsbtoutput"
682 }
683 }
684 #[derive(Clone, Debug, Deserialize, Serialize)]
685 pub struct AutocleanonceRequest {
686 pub subsystem: AutocleanSubsystem,
688 pub age: u64,
689 }
690
691 impl From<AutocleanonceRequest> for Request {
692 fn from(r: AutocleanonceRequest) -> Self {
693 Request::AutoCleanOnce(r)
694 }
695 }
696
697 impl IntoRequest for AutocleanonceRequest {
698 type Response = super::responses::AutocleanonceResponse;
699 }
700
701 impl TypedRequest for AutocleanonceRequest {
702 type Response = super::responses::AutocleanonceResponse;
703
704 fn method(&self) -> &str {
705 "autoclean-once"
706 }
707 }
708 #[derive(Clone, Debug, Deserialize, Serialize)]
709 pub struct AutocleanstatusRequest {
710 #[serde(skip_serializing_if = "Option::is_none")]
711 pub subsystem: Option<AutocleanSubsystem>,
712 }
713
714 impl From<AutocleanstatusRequest> for Request {
715 fn from(r: AutocleanstatusRequest) -> Self {
716 Request::AutoCleanStatus(r)
717 }
718 }
719
720 impl IntoRequest for AutocleanstatusRequest {
721 type Response = super::responses::AutocleanstatusResponse;
722 }
723
724 impl TypedRequest for AutocleanstatusRequest {
725 type Response = super::responses::AutocleanstatusResponse;
726
727 fn method(&self) -> &str {
728 "autoclean-status"
729 }
730 }
731 #[derive(Clone, Debug, Deserialize, Serialize)]
732 pub struct CheckmessageRequest {
733 #[serde(skip_serializing_if = "Option::is_none")]
734 pub pubkey: Option<PublicKey>,
735 pub message: String,
736 pub zbase: String,
737 }
738
739 impl From<CheckmessageRequest> for Request {
740 fn from(r: CheckmessageRequest) -> Self {
741 Request::CheckMessage(r)
742 }
743 }
744
745 impl IntoRequest for CheckmessageRequest {
746 type Response = super::responses::CheckmessageResponse;
747 }
748
749 impl TypedRequest for CheckmessageRequest {
750 type Response = super::responses::CheckmessageResponse;
751
752 fn method(&self) -> &str {
753 "checkmessage"
754 }
755 }
756 #[derive(Clone, Debug, Deserialize, Serialize)]
757 pub struct CloseRequest {
758 #[serde(skip_serializing_if = "Option::is_none")]
759 pub destination: Option<String>,
760 #[serde(skip_serializing_if = "Option::is_none")]
761 pub fee_negotiation_step: Option<String>,
762 #[serde(skip_serializing_if = "Option::is_none")]
763 pub force_lease_closed: Option<bool>,
764 #[serde(skip_serializing_if = "Option::is_none")]
765 pub unilateraltimeout: Option<u32>,
766 #[serde(skip_serializing_if = "Option::is_none")]
767 pub wrong_funding: Option<Outpoint>,
768 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
769 pub feerange: Option<Vec<Feerate>>,
770 pub id: String,
771 }
772
773 impl From<CloseRequest> for Request {
774 fn from(r: CloseRequest) -> Self {
775 Request::Close(r)
776 }
777 }
778
779 impl IntoRequest for CloseRequest {
780 type Response = super::responses::CloseResponse;
781 }
782
783 impl TypedRequest for CloseRequest {
784 type Response = super::responses::CloseResponse;
785
786 fn method(&self) -> &str {
787 "close"
788 }
789 }
790 #[derive(Clone, Debug, Deserialize, Serialize)]
791 pub struct ConnectRequest {
792 #[serde(skip_serializing_if = "Option::is_none")]
793 pub host: Option<String>,
794 #[serde(skip_serializing_if = "Option::is_none")]
795 pub port: Option<u16>,
796 pub id: String,
797 }
798
799 impl From<ConnectRequest> for Request {
800 fn from(r: ConnectRequest) -> Self {
801 Request::Connect(r)
802 }
803 }
804
805 impl IntoRequest for ConnectRequest {
806 type Response = super::responses::ConnectResponse;
807 }
808
809 impl TypedRequest for ConnectRequest {
810 type Response = super::responses::ConnectResponse;
811
812 fn method(&self) -> &str {
813 "connect"
814 }
815 }
816 #[derive(Clone, Debug, Deserialize, Serialize)]
817 pub struct CreateinvoiceRequest {
818 pub invstring: String,
819 pub label: String,
820 pub preimage: String,
821 }
822
823 impl From<CreateinvoiceRequest> for Request {
824 fn from(r: CreateinvoiceRequest) -> Self {
825 Request::CreateInvoice(r)
826 }
827 }
828
829 impl IntoRequest for CreateinvoiceRequest {
830 type Response = super::responses::CreateinvoiceResponse;
831 }
832
833 impl TypedRequest for CreateinvoiceRequest {
834 type Response = super::responses::CreateinvoiceResponse;
835
836 fn method(&self) -> &str {
837 "createinvoice"
838 }
839 }
840 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
842 #[allow(non_camel_case_types)]
843 pub enum DatastoreMode {
844 #[serde(rename = "must-create")]
845 MUST_CREATE = 0,
846 #[serde(rename = "must-replace")]
847 MUST_REPLACE = 1,
848 #[serde(rename = "create-or-replace")]
849 CREATE_OR_REPLACE = 2,
850 #[serde(rename = "must-append")]
851 MUST_APPEND = 3,
852 #[serde(rename = "create-or-append")]
853 CREATE_OR_APPEND = 4,
854 }
855
856 impl TryFrom<i32> for DatastoreMode {
857 type Error = anyhow::Error;
858 fn try_from(c: i32) -> Result<DatastoreMode, anyhow::Error> {
859 match c {
860 0 => Ok(DatastoreMode::MUST_CREATE),
861 1 => Ok(DatastoreMode::MUST_REPLACE),
862 2 => Ok(DatastoreMode::CREATE_OR_REPLACE),
863 3 => Ok(DatastoreMode::MUST_APPEND),
864 4 => Ok(DatastoreMode::CREATE_OR_APPEND),
865 o => Err(anyhow::anyhow!("Unknown variant {} for enum DatastoreMode", o)),
866 }
867 }
868 }
869
870 impl ToString for DatastoreMode {
871 fn to_string(&self) -> String {
872 match self {
873 DatastoreMode::MUST_CREATE => "MUST_CREATE",
874 DatastoreMode::MUST_REPLACE => "MUST_REPLACE",
875 DatastoreMode::CREATE_OR_REPLACE => "CREATE_OR_REPLACE",
876 DatastoreMode::MUST_APPEND => "MUST_APPEND",
877 DatastoreMode::CREATE_OR_APPEND => "CREATE_OR_APPEND",
878 }.to_string()
879 }
880 }
881
882 #[derive(Clone, Debug, Deserialize, Serialize)]
883 pub struct DatastoreRequest {
884 #[serde(skip_serializing_if = "Option::is_none")]
885 pub generation: Option<u64>,
886 #[serde(skip_serializing_if = "Option::is_none")]
887 pub hex: Option<String>,
888 #[serde(skip_serializing_if = "Option::is_none")]
889 pub mode: Option<DatastoreMode>,
890 #[serde(skip_serializing_if = "Option::is_none")]
891 pub string: Option<String>,
892 pub key: Vec<String>,
893 }
894
895 impl From<DatastoreRequest> for Request {
896 fn from(r: DatastoreRequest) -> Self {
897 Request::Datastore(r)
898 }
899 }
900
901 impl IntoRequest for DatastoreRequest {
902 type Response = super::responses::DatastoreResponse;
903 }
904
905 impl TypedRequest for DatastoreRequest {
906 type Response = super::responses::DatastoreResponse;
907
908 fn method(&self) -> &str {
909 "datastore"
910 }
911 }
912 #[derive(Clone, Debug, Deserialize, Serialize)]
913 pub struct DatastoreusageRequest {
914 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
915 pub key: Option<Vec<String>>,
916 }
917
918 impl From<DatastoreusageRequest> for Request {
919 fn from(r: DatastoreusageRequest) -> Self {
920 Request::DatastoreUsage(r)
921 }
922 }
923
924 impl IntoRequest for DatastoreusageRequest {
925 type Response = super::responses::DatastoreusageResponse;
926 }
927
928 impl TypedRequest for DatastoreusageRequest {
929 type Response = super::responses::DatastoreusageResponse;
930
931 fn method(&self) -> &str {
932 "datastoreusage"
933 }
934 }
935 #[derive(Clone, Debug, Deserialize, Serialize)]
936 pub struct CreateonionHops {
937 pub payload: String,
938 pub pubkey: PublicKey,
939 }
940
941 #[derive(Clone, Debug, Deserialize, Serialize)]
942 pub struct CreateonionRequest {
943 #[serde(skip_serializing_if = "Option::is_none")]
944 pub onion_size: Option<u16>,
945 #[serde(skip_serializing_if = "Option::is_none")]
946 pub session_key: Option<Secret>,
947 pub assocdata: String,
948 pub hops: Vec<CreateonionHops>,
949 }
950
951 impl From<CreateonionRequest> for Request {
952 fn from(r: CreateonionRequest) -> Self {
953 Request::CreateOnion(r)
954 }
955 }
956
957 impl IntoRequest for CreateonionRequest {
958 type Response = super::responses::CreateonionResponse;
959 }
960
961 impl TypedRequest for CreateonionRequest {
962 type Response = super::responses::CreateonionResponse;
963
964 fn method(&self) -> &str {
965 "createonion"
966 }
967 }
968 #[derive(Clone, Debug, Deserialize, Serialize)]
969 pub struct DeldatastoreRequest {
970 #[serde(skip_serializing_if = "Option::is_none")]
971 pub generation: Option<u64>,
972 pub key: Vec<String>,
973 }
974
975 impl From<DeldatastoreRequest> for Request {
976 fn from(r: DeldatastoreRequest) -> Self {
977 Request::DelDatastore(r)
978 }
979 }
980
981 impl IntoRequest for DeldatastoreRequest {
982 type Response = super::responses::DeldatastoreResponse;
983 }
984
985 impl TypedRequest for DeldatastoreRequest {
986 type Response = super::responses::DeldatastoreResponse;
987
988 fn method(&self) -> &str {
989 "deldatastore"
990 }
991 }
992 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
994 #[allow(non_camel_case_types)]
995 pub enum DelinvoiceStatus {
996 #[serde(rename = "paid")]
997 PAID = 0,
998 #[serde(rename = "expired")]
999 EXPIRED = 1,
1000 #[serde(rename = "unpaid")]
1001 UNPAID = 2,
1002 }
1003
1004 impl TryFrom<i32> for DelinvoiceStatus {
1005 type Error = anyhow::Error;
1006 fn try_from(c: i32) -> Result<DelinvoiceStatus, anyhow::Error> {
1007 match c {
1008 0 => Ok(DelinvoiceStatus::PAID),
1009 1 => Ok(DelinvoiceStatus::EXPIRED),
1010 2 => Ok(DelinvoiceStatus::UNPAID),
1011 o => Err(anyhow::anyhow!("Unknown variant {} for enum DelinvoiceStatus", o)),
1012 }
1013 }
1014 }
1015
1016 impl ToString for DelinvoiceStatus {
1017 fn to_string(&self) -> String {
1018 match self {
1019 DelinvoiceStatus::PAID => "PAID",
1020 DelinvoiceStatus::EXPIRED => "EXPIRED",
1021 DelinvoiceStatus::UNPAID => "UNPAID",
1022 }.to_string()
1023 }
1024 }
1025
1026 #[derive(Clone, Debug, Deserialize, Serialize)]
1027 pub struct DelinvoiceRequest {
1028 #[serde(skip_serializing_if = "Option::is_none")]
1029 pub desconly: Option<bool>,
1030 pub status: DelinvoiceStatus,
1032 pub label: String,
1033 }
1034
1035 impl From<DelinvoiceRequest> for Request {
1036 fn from(r: DelinvoiceRequest) -> Self {
1037 Request::DelInvoice(r)
1038 }
1039 }
1040
1041 impl IntoRequest for DelinvoiceRequest {
1042 type Response = super::responses::DelinvoiceResponse;
1043 }
1044
1045 impl TypedRequest for DelinvoiceRequest {
1046 type Response = super::responses::DelinvoiceResponse;
1047
1048 fn method(&self) -> &str {
1049 "delinvoice"
1050 }
1051 }
1052 #[derive(Clone, Debug, Deserialize, Serialize)]
1053 pub struct DevforgetchannelRequest {
1054 #[serde(skip_serializing_if = "Option::is_none")]
1055 pub channel_id: Option<Sha256>,
1056 #[serde(skip_serializing_if = "Option::is_none")]
1057 pub force: Option<bool>,
1058 #[serde(skip_serializing_if = "Option::is_none")]
1059 pub short_channel_id: Option<ShortChannelId>,
1060 pub id: PublicKey,
1061 }
1062
1063 impl From<DevforgetchannelRequest> for Request {
1064 fn from(r: DevforgetchannelRequest) -> Self {
1065 Request::DevForgetChannel(r)
1066 }
1067 }
1068
1069 impl IntoRequest for DevforgetchannelRequest {
1070 type Response = super::responses::DevforgetchannelResponse;
1071 }
1072
1073 impl TypedRequest for DevforgetchannelRequest {
1074 type Response = super::responses::DevforgetchannelResponse;
1075
1076 fn method(&self) -> &str {
1077 "dev-forget-channel"
1078 }
1079 }
1080 #[derive(Clone, Debug, Deserialize, Serialize)]
1081 pub struct EmergencyrecoverRequest {
1082 }
1083
1084 impl From<EmergencyrecoverRequest> for Request {
1085 fn from(r: EmergencyrecoverRequest) -> Self {
1086 Request::EmergencyRecover(r)
1087 }
1088 }
1089
1090 impl IntoRequest for EmergencyrecoverRequest {
1091 type Response = super::responses::EmergencyrecoverResponse;
1092 }
1093
1094 impl TypedRequest for EmergencyrecoverRequest {
1095 type Response = super::responses::EmergencyrecoverResponse;
1096
1097 fn method(&self) -> &str {
1098 "emergencyrecover"
1099 }
1100 }
1101 #[derive(Clone, Debug, Deserialize, Serialize)]
1102 pub struct GetemergencyrecoverdataRequest {
1103 }
1104
1105 impl From<GetemergencyrecoverdataRequest> for Request {
1106 fn from(r: GetemergencyrecoverdataRequest) -> Self {
1107 Request::GetEmergencyRecoverData(r)
1108 }
1109 }
1110
1111 impl IntoRequest for GetemergencyrecoverdataRequest {
1112 type Response = super::responses::GetemergencyrecoverdataResponse;
1113 }
1114
1115 impl TypedRequest for GetemergencyrecoverdataRequest {
1116 type Response = super::responses::GetemergencyrecoverdataResponse;
1117
1118 fn method(&self) -> &str {
1119 "getemergencyrecoverdata"
1120 }
1121 }
1122 #[derive(Clone, Debug, Deserialize, Serialize)]
1123 pub struct ExposesecretRequest {
1124 #[serde(skip_serializing_if = "Option::is_none")]
1125 pub identifier: Option<String>,
1126 pub passphrase: String,
1127 }
1128
1129 impl From<ExposesecretRequest> for Request {
1130 fn from(r: ExposesecretRequest) -> Self {
1131 Request::ExposeSecret(r)
1132 }
1133 }
1134
1135 impl IntoRequest for ExposesecretRequest {
1136 type Response = super::responses::ExposesecretResponse;
1137 }
1138
1139 impl TypedRequest for ExposesecretRequest {
1140 type Response = super::responses::ExposesecretResponse;
1141
1142 fn method(&self) -> &str {
1143 "exposesecret"
1144 }
1145 }
1146 #[derive(Clone, Debug, Deserialize, Serialize)]
1147 pub struct RecoverRequest {
1148 pub hsmsecret: String,
1149 }
1150
1151 impl From<RecoverRequest> for Request {
1152 fn from(r: RecoverRequest) -> Self {
1153 Request::Recover(r)
1154 }
1155 }
1156
1157 impl IntoRequest for RecoverRequest {
1158 type Response = super::responses::RecoverResponse;
1159 }
1160
1161 impl TypedRequest for RecoverRequest {
1162 type Response = super::responses::RecoverResponse;
1163
1164 fn method(&self) -> &str {
1165 "recover"
1166 }
1167 }
1168 #[derive(Clone, Debug, Deserialize, Serialize)]
1169 pub struct RecoverchannelRequest {
1170 pub scb: Vec<String>,
1171 }
1172
1173 impl From<RecoverchannelRequest> for Request {
1174 fn from(r: RecoverchannelRequest) -> Self {
1175 Request::RecoverChannel(r)
1176 }
1177 }
1178
1179 impl IntoRequest for RecoverchannelRequest {
1180 type Response = super::responses::RecoverchannelResponse;
1181 }
1182
1183 impl TypedRequest for RecoverchannelRequest {
1184 type Response = super::responses::RecoverchannelResponse;
1185
1186 fn method(&self) -> &str {
1187 "recoverchannel"
1188 }
1189 }
1190 #[derive(Clone, Debug, Deserialize, Serialize)]
1191 pub struct InvoiceRequest {
1192 #[serde(skip_serializing_if = "Option::is_none")]
1193 pub cltv: Option<u32>,
1194 #[serde(skip_serializing_if = "Option::is_none")]
1195 pub deschashonly: Option<bool>,
1196 #[serde(skip_serializing_if = "Option::is_none")]
1197 pub expiry: Option<u64>,
1198 #[serde(skip_serializing_if = "Option::is_none")]
1199 pub preimage: Option<String>,
1200 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
1201 pub exposeprivatechannels: Option<Vec<ShortChannelId>>,
1202 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
1203 pub fallbacks: Option<Vec<String>>,
1204 pub amount_msat: AmountOrAny,
1205 pub description: String,
1206 pub label: String,
1207 }
1208
1209 impl From<InvoiceRequest> for Request {
1210 fn from(r: InvoiceRequest) -> Self {
1211 Request::Invoice(r)
1212 }
1213 }
1214
1215 impl IntoRequest for InvoiceRequest {
1216 type Response = super::responses::InvoiceResponse;
1217 }
1218
1219 impl TypedRequest for InvoiceRequest {
1220 type Response = super::responses::InvoiceResponse;
1221
1222 fn method(&self) -> &str {
1223 "invoice"
1224 }
1225 }
1226 #[derive(Clone, Debug, Deserialize, Serialize)]
1227 pub struct InvoicerequestRequest {
1228 #[serde(skip_serializing_if = "Option::is_none")]
1229 pub absolute_expiry: Option<u64>,
1230 #[serde(skip_serializing_if = "Option::is_none")]
1231 pub issuer: Option<String>,
1232 #[serde(skip_serializing_if = "Option::is_none")]
1233 pub label: Option<String>,
1234 #[serde(skip_serializing_if = "Option::is_none")]
1235 pub single_use: Option<bool>,
1236 pub amount: Amount,
1237 pub description: String,
1238 }
1239
1240 impl From<InvoicerequestRequest> for Request {
1241 fn from(r: InvoicerequestRequest) -> Self {
1242 Request::InvoiceRequest(r)
1243 }
1244 }
1245
1246 impl IntoRequest for InvoicerequestRequest {
1247 type Response = super::responses::InvoicerequestResponse;
1248 }
1249
1250 impl TypedRequest for InvoicerequestRequest {
1251 type Response = super::responses::InvoicerequestResponse;
1252
1253 fn method(&self) -> &str {
1254 "invoicerequest"
1255 }
1256 }
1257 #[derive(Clone, Debug, Deserialize, Serialize)]
1258 pub struct DisableinvoicerequestRequest {
1259 pub invreq_id: String,
1260 }
1261
1262 impl From<DisableinvoicerequestRequest> for Request {
1263 fn from(r: DisableinvoicerequestRequest) -> Self {
1264 Request::DisableInvoiceRequest(r)
1265 }
1266 }
1267
1268 impl IntoRequest for DisableinvoicerequestRequest {
1269 type Response = super::responses::DisableinvoicerequestResponse;
1270 }
1271
1272 impl TypedRequest for DisableinvoicerequestRequest {
1273 type Response = super::responses::DisableinvoicerequestResponse;
1274
1275 fn method(&self) -> &str {
1276 "disableinvoicerequest"
1277 }
1278 }
1279 #[derive(Clone, Debug, Deserialize, Serialize)]
1280 pub struct ListinvoicerequestsRequest {
1281 #[serde(skip_serializing_if = "Option::is_none")]
1282 pub active_only: Option<bool>,
1283 #[serde(skip_serializing_if = "Option::is_none")]
1284 pub invreq_id: Option<String>,
1285 }
1286
1287 impl From<ListinvoicerequestsRequest> for Request {
1288 fn from(r: ListinvoicerequestsRequest) -> Self {
1289 Request::ListInvoiceRequests(r)
1290 }
1291 }
1292
1293 impl IntoRequest for ListinvoicerequestsRequest {
1294 type Response = super::responses::ListinvoicerequestsResponse;
1295 }
1296
1297 impl TypedRequest for ListinvoicerequestsRequest {
1298 type Response = super::responses::ListinvoicerequestsResponse;
1299
1300 fn method(&self) -> &str {
1301 "listinvoicerequests"
1302 }
1303 }
1304 #[derive(Clone, Debug, Deserialize, Serialize)]
1305 pub struct ListdatastoreRequest {
1306 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
1307 pub key: Option<Vec<String>>,
1308 }
1309
1310 impl From<ListdatastoreRequest> for Request {
1311 fn from(r: ListdatastoreRequest) -> Self {
1312 Request::ListDatastore(r)
1313 }
1314 }
1315
1316 impl IntoRequest for ListdatastoreRequest {
1317 type Response = super::responses::ListdatastoreResponse;
1318 }
1319
1320 impl TypedRequest for ListdatastoreRequest {
1321 type Response = super::responses::ListdatastoreResponse;
1322
1323 fn method(&self) -> &str {
1324 "listdatastore"
1325 }
1326 }
1327 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
1329 #[allow(non_camel_case_types)]
1330 pub enum ListinvoicesIndex {
1331 #[serde(rename = "created")]
1332 CREATED = 0,
1333 #[serde(rename = "updated")]
1334 UPDATED = 1,
1335 }
1336
1337 impl TryFrom<i32> for ListinvoicesIndex {
1338 type Error = anyhow::Error;
1339 fn try_from(c: i32) -> Result<ListinvoicesIndex, anyhow::Error> {
1340 match c {
1341 0 => Ok(ListinvoicesIndex::CREATED),
1342 1 => Ok(ListinvoicesIndex::UPDATED),
1343 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListinvoicesIndex", o)),
1344 }
1345 }
1346 }
1347
1348 impl ToString for ListinvoicesIndex {
1349 fn to_string(&self) -> String {
1350 match self {
1351 ListinvoicesIndex::CREATED => "CREATED",
1352 ListinvoicesIndex::UPDATED => "UPDATED",
1353 }.to_string()
1354 }
1355 }
1356
1357 #[derive(Clone, Debug, Deserialize, Serialize)]
1358 pub struct ListinvoicesRequest {
1359 #[serde(skip_serializing_if = "Option::is_none")]
1360 pub index: Option<ListinvoicesIndex>,
1361 #[serde(skip_serializing_if = "Option::is_none")]
1362 pub invstring: Option<String>,
1363 #[serde(skip_serializing_if = "Option::is_none")]
1364 pub label: Option<String>,
1365 #[serde(skip_serializing_if = "Option::is_none")]
1366 pub limit: Option<u32>,
1367 #[serde(skip_serializing_if = "Option::is_none")]
1368 pub offer_id: Option<String>,
1369 #[serde(skip_serializing_if = "Option::is_none")]
1370 pub payment_hash: Option<String>,
1371 #[serde(skip_serializing_if = "Option::is_none")]
1372 pub start: Option<u64>,
1373 }
1374
1375 impl From<ListinvoicesRequest> for Request {
1376 fn from(r: ListinvoicesRequest) -> Self {
1377 Request::ListInvoices(r)
1378 }
1379 }
1380
1381 impl IntoRequest for ListinvoicesRequest {
1382 type Response = super::responses::ListinvoicesResponse;
1383 }
1384
1385 impl TypedRequest for ListinvoicesRequest {
1386 type Response = super::responses::ListinvoicesResponse;
1387
1388 fn method(&self) -> &str {
1389 "listinvoices"
1390 }
1391 }
1392 #[derive(Clone, Debug, Deserialize, Serialize)]
1393 pub struct SendonionFirstHop {
1394 pub amount_msat: Amount,
1395 pub delay: u16,
1396 pub id: PublicKey,
1397 }
1398
1399 #[derive(Clone, Debug, Deserialize, Serialize)]
1400 pub struct SendonionRequest {
1401 #[serde(skip_serializing_if = "Option::is_none")]
1402 pub amount_msat: Option<Amount>,
1403 #[serde(skip_serializing_if = "Option::is_none")]
1404 pub bolt11: Option<String>,
1405 #[serde(skip_serializing_if = "Option::is_none")]
1406 pub description: Option<String>,
1407 #[serde(skip_serializing_if = "Option::is_none")]
1408 pub destination: Option<PublicKey>,
1409 #[serde(skip_serializing_if = "Option::is_none")]
1410 pub groupid: Option<u64>,
1411 #[serde(skip_serializing_if = "Option::is_none")]
1412 pub label: Option<String>,
1413 #[serde(skip_serializing_if = "Option::is_none")]
1414 pub localinvreqid: Option<Sha256>,
1415 #[serde(skip_serializing_if = "Option::is_none")]
1416 pub partid: Option<u16>,
1417 #[serde(skip_serializing_if = "Option::is_none")]
1418 pub total_amount_msat: Option<Amount>,
1419 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
1420 pub shared_secrets: Option<Vec<Secret>>,
1421 pub first_hop: SendonionFirstHop,
1422 pub onion: String,
1423 pub payment_hash: Sha256,
1424 }
1425
1426 impl From<SendonionRequest> for Request {
1427 fn from(r: SendonionRequest) -> Self {
1428 Request::SendOnion(r)
1429 }
1430 }
1431
1432 impl IntoRequest for SendonionRequest {
1433 type Response = super::responses::SendonionResponse;
1434 }
1435
1436 impl TypedRequest for SendonionRequest {
1437 type Response = super::responses::SendonionResponse;
1438
1439 fn method(&self) -> &str {
1440 "sendonion"
1441 }
1442 }
1443 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
1445 #[allow(non_camel_case_types)]
1446 pub enum ListsendpaysIndex {
1447 #[serde(rename = "created")]
1448 CREATED = 0,
1449 #[serde(rename = "updated")]
1450 UPDATED = 1,
1451 }
1452
1453 impl TryFrom<i32> for ListsendpaysIndex {
1454 type Error = anyhow::Error;
1455 fn try_from(c: i32) -> Result<ListsendpaysIndex, anyhow::Error> {
1456 match c {
1457 0 => Ok(ListsendpaysIndex::CREATED),
1458 1 => Ok(ListsendpaysIndex::UPDATED),
1459 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysIndex", o)),
1460 }
1461 }
1462 }
1463
1464 impl ToString for ListsendpaysIndex {
1465 fn to_string(&self) -> String {
1466 match self {
1467 ListsendpaysIndex::CREATED => "CREATED",
1468 ListsendpaysIndex::UPDATED => "UPDATED",
1469 }.to_string()
1470 }
1471 }
1472
1473 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
1475 #[allow(non_camel_case_types)]
1476 pub enum ListsendpaysStatus {
1477 #[serde(rename = "pending")]
1478 PENDING = 0,
1479 #[serde(rename = "complete")]
1480 COMPLETE = 1,
1481 #[serde(rename = "failed")]
1482 FAILED = 2,
1483 }
1484
1485 impl TryFrom<i32> for ListsendpaysStatus {
1486 type Error = anyhow::Error;
1487 fn try_from(c: i32) -> Result<ListsendpaysStatus, anyhow::Error> {
1488 match c {
1489 0 => Ok(ListsendpaysStatus::PENDING),
1490 1 => Ok(ListsendpaysStatus::COMPLETE),
1491 2 => Ok(ListsendpaysStatus::FAILED),
1492 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysStatus", o)),
1493 }
1494 }
1495 }
1496
1497 impl ToString for ListsendpaysStatus {
1498 fn to_string(&self) -> String {
1499 match self {
1500 ListsendpaysStatus::PENDING => "PENDING",
1501 ListsendpaysStatus::COMPLETE => "COMPLETE",
1502 ListsendpaysStatus::FAILED => "FAILED",
1503 }.to_string()
1504 }
1505 }
1506
1507 #[derive(Clone, Debug, Deserialize, Serialize)]
1508 pub struct ListsendpaysRequest {
1509 #[serde(skip_serializing_if = "Option::is_none")]
1510 pub bolt11: Option<String>,
1511 #[serde(skip_serializing_if = "Option::is_none")]
1512 pub index: Option<ListsendpaysIndex>,
1513 #[serde(skip_serializing_if = "Option::is_none")]
1514 pub limit: Option<u32>,
1515 #[serde(skip_serializing_if = "Option::is_none")]
1516 pub payment_hash: Option<Sha256>,
1517 #[serde(skip_serializing_if = "Option::is_none")]
1518 pub start: Option<u64>,
1519 #[serde(skip_serializing_if = "Option::is_none")]
1520 pub status: Option<ListsendpaysStatus>,
1521 }
1522
1523 impl From<ListsendpaysRequest> for Request {
1524 fn from(r: ListsendpaysRequest) -> Self {
1525 Request::ListSendPays(r)
1526 }
1527 }
1528
1529 impl IntoRequest for ListsendpaysRequest {
1530 type Response = super::responses::ListsendpaysResponse;
1531 }
1532
1533 impl TypedRequest for ListsendpaysRequest {
1534 type Response = super::responses::ListsendpaysResponse;
1535
1536 fn method(&self) -> &str {
1537 "listsendpays"
1538 }
1539 }
1540 #[derive(Clone, Debug, Deserialize, Serialize)]
1541 pub struct ListtransactionsRequest {
1542 }
1543
1544 impl From<ListtransactionsRequest> for Request {
1545 fn from(r: ListtransactionsRequest) -> Self {
1546 Request::ListTransactions(r)
1547 }
1548 }
1549
1550 impl IntoRequest for ListtransactionsRequest {
1551 type Response = super::responses::ListtransactionsResponse;
1552 }
1553
1554 impl TypedRequest for ListtransactionsRequest {
1555 type Response = super::responses::ListtransactionsResponse;
1556
1557 fn method(&self) -> &str {
1558 "listtransactions"
1559 }
1560 }
1561 #[derive(Clone, Debug, Deserialize, Serialize)]
1562 pub struct MakesecretRequest {
1563 #[serde(skip_serializing_if = "Option::is_none")]
1564 pub hex: Option<String>,
1565 #[serde(skip_serializing_if = "Option::is_none")]
1566 pub string: Option<String>,
1567 }
1568
1569 impl From<MakesecretRequest> for Request {
1570 fn from(r: MakesecretRequest) -> Self {
1571 Request::MakeSecret(r)
1572 }
1573 }
1574
1575 impl IntoRequest for MakesecretRequest {
1576 type Response = super::responses::MakesecretResponse;
1577 }
1578
1579 impl TypedRequest for MakesecretRequest {
1580 type Response = super::responses::MakesecretResponse;
1581
1582 fn method(&self) -> &str {
1583 "makesecret"
1584 }
1585 }
1586 #[deprecated = "deprecated since CLN v26.06"]
1587 #[derive(Clone, Debug, Deserialize, Serialize)]
1588 pub struct PayRequest {
1589 #[deprecated]
1590 #[serde(skip_serializing_if = "Option::is_none")]
1591 pub amount_msat: Option<Amount>,
1592 #[deprecated]
1593 #[serde(skip_serializing_if = "Option::is_none")]
1594 pub description: Option<String>,
1595 #[deprecated]
1596 #[serde(skip_serializing_if = "Option::is_none")]
1597 pub exemptfee: Option<Amount>,
1598 #[deprecated]
1599 #[serde(skip_serializing_if = "Option::is_none")]
1600 pub label: Option<String>,
1601 #[deprecated]
1602 #[serde(skip_serializing_if = "Option::is_none")]
1603 pub localinvreqid: Option<String>,
1604 #[deprecated]
1605 #[serde(skip_serializing_if = "Option::is_none")]
1606 pub maxdelay: Option<u16>,
1607 #[deprecated]
1608 #[serde(skip_serializing_if = "Option::is_none")]
1609 pub maxfee: Option<Amount>,
1610 #[deprecated]
1611 #[serde(skip_serializing_if = "Option::is_none")]
1612 pub maxfeepercent: Option<f64>,
1613 #[deprecated]
1614 #[serde(skip_serializing_if = "Option::is_none")]
1615 pub partial_msat: Option<Amount>,
1616 #[deprecated]
1617 #[serde(skip_serializing_if = "Option::is_none")]
1618 pub retry_for: Option<u16>,
1619 #[deprecated]
1620 #[serde(skip_serializing_if = "Option::is_none")]
1621 pub riskfactor: Option<f64>,
1622 #[deprecated]
1623 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
1624 pub exclude: Option<Vec<String>>,
1625 #[deprecated]
1626 pub bolt11: String,
1627 }
1628
1629 impl From<PayRequest> for Request {
1630 fn from(r: PayRequest) -> Self {
1631 Request::Pay(r)
1632 }
1633 }
1634
1635 impl IntoRequest for PayRequest {
1636 type Response = super::responses::PayResponse;
1637 }
1638
1639 impl TypedRequest for PayRequest {
1640 type Response = super::responses::PayResponse;
1641
1642 fn method(&self) -> &str {
1643 "pay"
1644 }
1645 }
1646 #[derive(Clone, Debug, Deserialize, Serialize)]
1647 pub struct ListnodesRequest {
1648 #[serde(skip_serializing_if = "Option::is_none")]
1649 pub id: Option<PublicKey>,
1650 }
1651
1652 impl From<ListnodesRequest> for Request {
1653 fn from(r: ListnodesRequest) -> Self {
1654 Request::ListNodes(r)
1655 }
1656 }
1657
1658 impl IntoRequest for ListnodesRequest {
1659 type Response = super::responses::ListnodesResponse;
1660 }
1661
1662 impl TypedRequest for ListnodesRequest {
1663 type Response = super::responses::ListnodesResponse;
1664
1665 fn method(&self) -> &str {
1666 "listnodes"
1667 }
1668 }
1669 #[derive(Clone, Debug, Deserialize, Serialize)]
1670 pub struct WaitanyinvoiceRequest {
1671 #[serde(skip_serializing_if = "Option::is_none")]
1672 pub lastpay_index: Option<u64>,
1673 #[serde(skip_serializing_if = "Option::is_none")]
1674 pub timeout: Option<u64>,
1675 }
1676
1677 impl From<WaitanyinvoiceRequest> for Request {
1678 fn from(r: WaitanyinvoiceRequest) -> Self {
1679 Request::WaitAnyInvoice(r)
1680 }
1681 }
1682
1683 impl IntoRequest for WaitanyinvoiceRequest {
1684 type Response = super::responses::WaitanyinvoiceResponse;
1685 }
1686
1687 impl TypedRequest for WaitanyinvoiceRequest {
1688 type Response = super::responses::WaitanyinvoiceResponse;
1689
1690 fn method(&self) -> &str {
1691 "waitanyinvoice"
1692 }
1693 }
1694 #[derive(Clone, Debug, Deserialize, Serialize)]
1695 pub struct WaitinvoiceRequest {
1696 pub label: String,
1697 }
1698
1699 impl From<WaitinvoiceRequest> for Request {
1700 fn from(r: WaitinvoiceRequest) -> Self {
1701 Request::WaitInvoice(r)
1702 }
1703 }
1704
1705 impl IntoRequest for WaitinvoiceRequest {
1706 type Response = super::responses::WaitinvoiceResponse;
1707 }
1708
1709 impl TypedRequest for WaitinvoiceRequest {
1710 type Response = super::responses::WaitinvoiceResponse;
1711
1712 fn method(&self) -> &str {
1713 "waitinvoice"
1714 }
1715 }
1716 #[derive(Clone, Debug, Deserialize, Serialize)]
1717 pub struct WaitsendpayRequest {
1718 #[serde(skip_serializing_if = "Option::is_none")]
1719 pub groupid: Option<u64>,
1720 #[serde(skip_serializing_if = "Option::is_none")]
1721 pub partid: Option<u64>,
1722 #[serde(skip_serializing_if = "Option::is_none")]
1723 pub timeout: Option<u32>,
1724 pub payment_hash: Sha256,
1725 }
1726
1727 impl From<WaitsendpayRequest> for Request {
1728 fn from(r: WaitsendpayRequest) -> Self {
1729 Request::WaitSendPay(r)
1730 }
1731 }
1732
1733 impl IntoRequest for WaitsendpayRequest {
1734 type Response = super::responses::WaitsendpayResponse;
1735 }
1736
1737 impl TypedRequest for WaitsendpayRequest {
1738 type Response = super::responses::WaitsendpayResponse;
1739
1740 fn method(&self) -> &str {
1741 "waitsendpay"
1742 }
1743 }
1744 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
1746 #[allow(non_camel_case_types)]
1747 pub enum NewaddrAddresstype {
1748 #[serde(rename = "bech32")]
1749 BECH32 = 0,
1750 #[serde(rename = "all")]
1751 ALL = 2,
1752 #[serde(rename = "p2tr")]
1753 P2TR = 3,
1754 }
1755
1756 impl TryFrom<i32> for NewaddrAddresstype {
1757 type Error = anyhow::Error;
1758 fn try_from(c: i32) -> Result<NewaddrAddresstype, anyhow::Error> {
1759 match c {
1760 0 => Ok(NewaddrAddresstype::BECH32),
1761 2 => Ok(NewaddrAddresstype::ALL),
1762 3 => Ok(NewaddrAddresstype::P2TR),
1763 o => Err(anyhow::anyhow!("Unknown variant {} for enum NewaddrAddresstype", o)),
1764 }
1765 }
1766 }
1767
1768 impl ToString for NewaddrAddresstype {
1769 fn to_string(&self) -> String {
1770 match self {
1771 NewaddrAddresstype::BECH32 => "BECH32",
1772 NewaddrAddresstype::P2TR => "P2TR",
1773 NewaddrAddresstype::ALL => "ALL",
1774 }.to_string()
1775 }
1776 }
1777
1778 #[derive(Clone, Debug, Deserialize, Serialize)]
1779 pub struct NewaddrRequest {
1780 #[serde(skip_serializing_if = "Option::is_none")]
1781 pub addresstype: Option<NewaddrAddresstype>,
1782 }
1783
1784 impl From<NewaddrRequest> for Request {
1785 fn from(r: NewaddrRequest) -> Self {
1786 Request::NewAddr(r)
1787 }
1788 }
1789
1790 impl IntoRequest for NewaddrRequest {
1791 type Response = super::responses::NewaddrResponse;
1792 }
1793
1794 impl TypedRequest for NewaddrRequest {
1795 type Response = super::responses::NewaddrResponse;
1796
1797 fn method(&self) -> &str {
1798 "newaddr"
1799 }
1800 }
1801 #[derive(Clone, Debug, Deserialize, Serialize)]
1802 pub struct WithdrawRequest {
1803 #[serde(skip_serializing_if = "Option::is_none")]
1804 pub feerate: Option<Feerate>,
1805 #[serde(skip_serializing_if = "Option::is_none")]
1806 pub minconf: Option<u16>,
1807 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
1808 pub utxos: Option<Vec<Outpoint>>,
1809 pub destination: String,
1810 pub satoshi: AmountOrAll,
1811 }
1812
1813 impl From<WithdrawRequest> for Request {
1814 fn from(r: WithdrawRequest) -> Self {
1815 Request::Withdraw(r)
1816 }
1817 }
1818
1819 impl IntoRequest for WithdrawRequest {
1820 type Response = super::responses::WithdrawResponse;
1821 }
1822
1823 impl TypedRequest for WithdrawRequest {
1824 type Response = super::responses::WithdrawResponse;
1825
1826 fn method(&self) -> &str {
1827 "withdraw"
1828 }
1829 }
1830 #[deprecated = "deprecated since CLN v26.06"]
1831 #[derive(Clone, Debug, Deserialize, Serialize)]
1832 pub struct KeysendRequest {
1833 #[deprecated]
1834 #[serde(skip_serializing_if = "Option::is_none")]
1835 pub exemptfee: Option<Amount>,
1836 #[deprecated]
1837 #[serde(skip_serializing_if = "Option::is_none")]
1838 pub extratlvs: Option<TlvStream>,
1839 #[deprecated]
1840 #[serde(skip_serializing_if = "Option::is_none")]
1841 pub label: Option<String>,
1842 #[deprecated]
1843 #[serde(skip_serializing_if = "Option::is_none")]
1844 pub maxdelay: Option<u32>,
1845 #[deprecated]
1846 #[serde(skip_serializing_if = "Option::is_none")]
1847 pub maxfee: Option<Amount>,
1848 #[deprecated]
1849 #[serde(skip_serializing_if = "Option::is_none")]
1850 pub maxfeepercent: Option<f64>,
1851 #[deprecated]
1852 #[serde(skip_serializing_if = "Option::is_none")]
1853 pub retry_for: Option<u32>,
1854 #[deprecated]
1855 #[serde(skip_serializing_if = "Option::is_none")]
1856 pub routehints: Option<RoutehintList>,
1857 #[deprecated]
1858 pub amount_msat: Amount,
1859 #[deprecated]
1860 pub destination: PublicKey,
1861 }
1862
1863 impl From<KeysendRequest> for Request {
1864 fn from(r: KeysendRequest) -> Self {
1865 Request::KeySend(r)
1866 }
1867 }
1868
1869 impl IntoRequest for KeysendRequest {
1870 type Response = super::responses::KeysendResponse;
1871 }
1872
1873 impl TypedRequest for KeysendRequest {
1874 type Response = super::responses::KeysendResponse;
1875
1876 fn method(&self) -> &str {
1877 "keysend"
1878 }
1879 }
1880 #[derive(Clone, Debug, Deserialize, Serialize)]
1881 pub struct FundpsbtRequest {
1882 #[serde(skip_serializing_if = "Option::is_none")]
1883 pub excess_as_change: Option<bool>,
1884 #[serde(skip_serializing_if = "Option::is_none")]
1885 pub locktime: Option<u32>,
1886 #[serde(skip_serializing_if = "Option::is_none")]
1887 pub min_witness_weight: Option<u32>,
1888 #[serde(skip_serializing_if = "Option::is_none")]
1889 pub minconf: Option<u32>,
1890 #[serde(skip_serializing_if = "Option::is_none")]
1891 pub nonwrapped: Option<bool>,
1892 #[serde(skip_serializing_if = "Option::is_none")]
1893 pub opening_anchor_channel: Option<bool>,
1894 #[serde(skip_serializing_if = "Option::is_none")]
1895 pub reserve: Option<u32>,
1896 pub feerate: Feerate,
1897 pub satoshi: AmountOrAll,
1898 pub startweight: u32,
1899 }
1900
1901 impl From<FundpsbtRequest> for Request {
1902 fn from(r: FundpsbtRequest) -> Self {
1903 Request::FundPsbt(r)
1904 }
1905 }
1906
1907 impl IntoRequest for FundpsbtRequest {
1908 type Response = super::responses::FundpsbtResponse;
1909 }
1910
1911 impl TypedRequest for FundpsbtRequest {
1912 type Response = super::responses::FundpsbtResponse;
1913
1914 fn method(&self) -> &str {
1915 "fundpsbt"
1916 }
1917 }
1918 #[derive(Clone, Debug, Deserialize, Serialize)]
1919 pub struct SendpsbtRequest {
1920 #[serde(skip_serializing_if = "Option::is_none")]
1921 pub reserve: Option<u32>,
1922 pub psbt: String,
1923 }
1924
1925 impl From<SendpsbtRequest> for Request {
1926 fn from(r: SendpsbtRequest) -> Self {
1927 Request::SendPsbt(r)
1928 }
1929 }
1930
1931 impl IntoRequest for SendpsbtRequest {
1932 type Response = super::responses::SendpsbtResponse;
1933 }
1934
1935 impl TypedRequest for SendpsbtRequest {
1936 type Response = super::responses::SendpsbtResponse;
1937
1938 fn method(&self) -> &str {
1939 "sendpsbt"
1940 }
1941 }
1942 #[derive(Clone, Debug, Deserialize, Serialize)]
1943 pub struct SignpsbtRequest {
1944 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
1945 pub signonly: Option<Vec<u32>>,
1946 pub psbt: String,
1947 }
1948
1949 impl From<SignpsbtRequest> for Request {
1950 fn from(r: SignpsbtRequest) -> Self {
1951 Request::SignPsbt(r)
1952 }
1953 }
1954
1955 impl IntoRequest for SignpsbtRequest {
1956 type Response = super::responses::SignpsbtResponse;
1957 }
1958
1959 impl TypedRequest for SignpsbtRequest {
1960 type Response = super::responses::SignpsbtResponse;
1961
1962 fn method(&self) -> &str {
1963 "signpsbt"
1964 }
1965 }
1966 #[derive(Clone, Debug, Deserialize, Serialize)]
1967 pub struct UtxopsbtRequest {
1968 #[serde(skip_serializing_if = "Option::is_none")]
1969 pub excess_as_change: Option<bool>,
1970 #[serde(skip_serializing_if = "Option::is_none")]
1971 pub locktime: Option<u32>,
1972 #[serde(skip_serializing_if = "Option::is_none")]
1973 pub min_witness_weight: Option<u32>,
1974 #[serde(skip_serializing_if = "Option::is_none")]
1975 pub opening_anchor_channel: Option<bool>,
1976 #[serde(skip_serializing_if = "Option::is_none")]
1977 pub reserve: Option<u32>,
1978 #[serde(skip_serializing_if = "Option::is_none")]
1979 pub reservedok: Option<bool>,
1980 pub feerate: Feerate,
1981 pub satoshi: AmountOrAll,
1982 pub startweight: u32,
1983 pub utxos: Vec<Outpoint>,
1984 }
1985
1986 impl From<UtxopsbtRequest> for Request {
1987 fn from(r: UtxopsbtRequest) -> Self {
1988 Request::UtxoPsbt(r)
1989 }
1990 }
1991
1992 impl IntoRequest for UtxopsbtRequest {
1993 type Response = super::responses::UtxopsbtResponse;
1994 }
1995
1996 impl TypedRequest for UtxopsbtRequest {
1997 type Response = super::responses::UtxopsbtResponse;
1998
1999 fn method(&self) -> &str {
2000 "utxopsbt"
2001 }
2002 }
2003 #[derive(Clone, Debug, Deserialize, Serialize)]
2004 pub struct TxdiscardRequest {
2005 pub txid: String,
2006 }
2007
2008 impl From<TxdiscardRequest> for Request {
2009 fn from(r: TxdiscardRequest) -> Self {
2010 Request::TxDiscard(r)
2011 }
2012 }
2013
2014 impl IntoRequest for TxdiscardRequest {
2015 type Response = super::responses::TxdiscardResponse;
2016 }
2017
2018 impl TypedRequest for TxdiscardRequest {
2019 type Response = super::responses::TxdiscardResponse;
2020
2021 fn method(&self) -> &str {
2022 "txdiscard"
2023 }
2024 }
2025 #[derive(Clone, Debug, Deserialize, Serialize)]
2026 pub struct TxprepareRequest {
2027 #[serde(skip_serializing_if = "Option::is_none")]
2028 pub feerate: Option<Feerate>,
2029 #[serde(skip_serializing_if = "Option::is_none")]
2030 pub minconf: Option<u32>,
2031 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
2032 pub utxos: Option<Vec<Outpoint>>,
2033 pub outputs: Vec<OutputDesc>,
2034 }
2035
2036 impl From<TxprepareRequest> for Request {
2037 fn from(r: TxprepareRequest) -> Self {
2038 Request::TxPrepare(r)
2039 }
2040 }
2041
2042 impl IntoRequest for TxprepareRequest {
2043 type Response = super::responses::TxprepareResponse;
2044 }
2045
2046 impl TypedRequest for TxprepareRequest {
2047 type Response = super::responses::TxprepareResponse;
2048
2049 fn method(&self) -> &str {
2050 "txprepare"
2051 }
2052 }
2053 #[derive(Clone, Debug, Deserialize, Serialize)]
2054 pub struct TxsendRequest {
2055 pub txid: String,
2056 }
2057
2058 impl From<TxsendRequest> for Request {
2059 fn from(r: TxsendRequest) -> Self {
2060 Request::TxSend(r)
2061 }
2062 }
2063
2064 impl IntoRequest for TxsendRequest {
2065 type Response = super::responses::TxsendResponse;
2066 }
2067
2068 impl TypedRequest for TxsendRequest {
2069 type Response = super::responses::TxsendResponse;
2070
2071 fn method(&self) -> &str {
2072 "txsend"
2073 }
2074 }
2075 #[derive(Clone, Debug, Deserialize, Serialize)]
2076 pub struct ListpeerchannelsRequest {
2077 #[serde(skip_serializing_if = "Option::is_none")]
2078 pub channel_id: Option<Sha256>,
2079 #[serde(skip_serializing_if = "Option::is_none")]
2080 pub id: Option<PublicKey>,
2081 #[serde(skip_serializing_if = "Option::is_none")]
2082 pub short_channel_id: Option<ShortChannelId>,
2083 }
2084
2085 impl From<ListpeerchannelsRequest> for Request {
2086 fn from(r: ListpeerchannelsRequest) -> Self {
2087 Request::ListPeerChannels(r)
2088 }
2089 }
2090
2091 impl IntoRequest for ListpeerchannelsRequest {
2092 type Response = super::responses::ListpeerchannelsResponse;
2093 }
2094
2095 impl TypedRequest for ListpeerchannelsRequest {
2096 type Response = super::responses::ListpeerchannelsResponse;
2097
2098 fn method(&self) -> &str {
2099 "listpeerchannels"
2100 }
2101 }
2102 #[derive(Clone, Debug, Deserialize, Serialize)]
2103 pub struct ListclosedchannelsRequest {
2104 #[serde(skip_serializing_if = "Option::is_none")]
2105 pub id: Option<PublicKey>,
2106 }
2107
2108 impl From<ListclosedchannelsRequest> for Request {
2109 fn from(r: ListclosedchannelsRequest) -> Self {
2110 Request::ListClosedChannels(r)
2111 }
2112 }
2113
2114 impl IntoRequest for ListclosedchannelsRequest {
2115 type Response = super::responses::ListclosedchannelsResponse;
2116 }
2117
2118 impl TypedRequest for ListclosedchannelsRequest {
2119 type Response = super::responses::ListclosedchannelsResponse;
2120
2121 fn method(&self) -> &str {
2122 "listclosedchannels"
2123 }
2124 }
2125 #[derive(Clone, Debug, Deserialize, Serialize)]
2126 pub struct DecodeRequest {
2127 pub string: String,
2128 }
2129
2130 impl From<DecodeRequest> for Request {
2131 fn from(r: DecodeRequest) -> Self {
2132 Request::Decode(r)
2133 }
2134 }
2135
2136 impl IntoRequest for DecodeRequest {
2137 type Response = super::responses::DecodeResponse;
2138 }
2139
2140 impl TypedRequest for DecodeRequest {
2141 type Response = super::responses::DecodeResponse;
2142
2143 fn method(&self) -> &str {
2144 "decode"
2145 }
2146 }
2147 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2149 #[allow(non_camel_case_types)]
2150 pub enum DelpayStatus {
2151 #[serde(rename = "complete")]
2152 COMPLETE = 0,
2153 #[serde(rename = "failed")]
2154 FAILED = 1,
2155 }
2156
2157 impl TryFrom<i32> for DelpayStatus {
2158 type Error = anyhow::Error;
2159 fn try_from(c: i32) -> Result<DelpayStatus, anyhow::Error> {
2160 match c {
2161 0 => Ok(DelpayStatus::COMPLETE),
2162 1 => Ok(DelpayStatus::FAILED),
2163 o => Err(anyhow::anyhow!("Unknown variant {} for enum DelpayStatus", o)),
2164 }
2165 }
2166 }
2167
2168 impl ToString for DelpayStatus {
2169 fn to_string(&self) -> String {
2170 match self {
2171 DelpayStatus::COMPLETE => "COMPLETE",
2172 DelpayStatus::FAILED => "FAILED",
2173 }.to_string()
2174 }
2175 }
2176
2177 #[derive(Clone, Debug, Deserialize, Serialize)]
2178 pub struct DelpayRequest {
2179 #[serde(skip_serializing_if = "Option::is_none")]
2180 pub groupid: Option<u64>,
2181 #[serde(skip_serializing_if = "Option::is_none")]
2182 pub partid: Option<u64>,
2183 pub status: DelpayStatus,
2185 pub payment_hash: Sha256,
2186 }
2187
2188 impl From<DelpayRequest> for Request {
2189 fn from(r: DelpayRequest) -> Self {
2190 Request::DelPay(r)
2191 }
2192 }
2193
2194 impl IntoRequest for DelpayRequest {
2195 type Response = super::responses::DelpayResponse;
2196 }
2197
2198 impl TypedRequest for DelpayRequest {
2199 type Response = super::responses::DelpayResponse;
2200
2201 fn method(&self) -> &str {
2202 "delpay"
2203 }
2204 }
2205 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2207 #[allow(non_camel_case_types)]
2208 pub enum DelforwardStatus {
2209 #[serde(rename = "settled")]
2210 SETTLED = 0,
2211 #[serde(rename = "local_failed")]
2212 LOCAL_FAILED = 1,
2213 #[serde(rename = "failed")]
2214 FAILED = 2,
2215 }
2216
2217 impl TryFrom<i32> for DelforwardStatus {
2218 type Error = anyhow::Error;
2219 fn try_from(c: i32) -> Result<DelforwardStatus, anyhow::Error> {
2220 match c {
2221 0 => Ok(DelforwardStatus::SETTLED),
2222 1 => Ok(DelforwardStatus::LOCAL_FAILED),
2223 2 => Ok(DelforwardStatus::FAILED),
2224 o => Err(anyhow::anyhow!("Unknown variant {} for enum DelforwardStatus", o)),
2225 }
2226 }
2227 }
2228
2229 impl ToString for DelforwardStatus {
2230 fn to_string(&self) -> String {
2231 match self {
2232 DelforwardStatus::SETTLED => "SETTLED",
2233 DelforwardStatus::LOCAL_FAILED => "LOCAL_FAILED",
2234 DelforwardStatus::FAILED => "FAILED",
2235 }.to_string()
2236 }
2237 }
2238
2239 #[derive(Clone, Debug, Deserialize, Serialize)]
2240 pub struct DelforwardRequest {
2241 pub status: DelforwardStatus,
2243 pub in_channel: ShortChannelId,
2244 pub in_htlc_id: u64,
2245 }
2246
2247 impl From<DelforwardRequest> for Request {
2248 fn from(r: DelforwardRequest) -> Self {
2249 Request::DelForward(r)
2250 }
2251 }
2252
2253 impl IntoRequest for DelforwardRequest {
2254 type Response = super::responses::DelforwardResponse;
2255 }
2256
2257 impl TypedRequest for DelforwardRequest {
2258 type Response = super::responses::DelforwardResponse;
2259
2260 fn method(&self) -> &str {
2261 "delforward"
2262 }
2263 }
2264 #[derive(Clone, Debug, Deserialize, Serialize)]
2265 pub struct DisableofferRequest {
2266 pub offer_id: Sha256,
2267 }
2268
2269 impl From<DisableofferRequest> for Request {
2270 fn from(r: DisableofferRequest) -> Self {
2271 Request::DisableOffer(r)
2272 }
2273 }
2274
2275 impl IntoRequest for DisableofferRequest {
2276 type Response = super::responses::DisableofferResponse;
2277 }
2278
2279 impl TypedRequest for DisableofferRequest {
2280 type Response = super::responses::DisableofferResponse;
2281
2282 fn method(&self) -> &str {
2283 "disableoffer"
2284 }
2285 }
2286 #[derive(Clone, Debug, Deserialize, Serialize)]
2287 pub struct EnableofferRequest {
2288 pub offer_id: Sha256,
2289 }
2290
2291 impl From<EnableofferRequest> for Request {
2292 fn from(r: EnableofferRequest) -> Self {
2293 Request::EnableOffer(r)
2294 }
2295 }
2296
2297 impl IntoRequest for EnableofferRequest {
2298 type Response = super::responses::EnableofferResponse;
2299 }
2300
2301 impl TypedRequest for EnableofferRequest {
2302 type Response = super::responses::EnableofferResponse;
2303
2304 fn method(&self) -> &str {
2305 "enableoffer"
2306 }
2307 }
2308 #[derive(Clone, Debug, Deserialize, Serialize)]
2309 pub struct DisconnectRequest {
2310 #[serde(skip_serializing_if = "Option::is_none")]
2311 pub force: Option<bool>,
2312 pub id: PublicKey,
2313 }
2314
2315 impl From<DisconnectRequest> for Request {
2316 fn from(r: DisconnectRequest) -> Self {
2317 Request::Disconnect(r)
2318 }
2319 }
2320
2321 impl IntoRequest for DisconnectRequest {
2322 type Response = super::responses::DisconnectResponse;
2323 }
2324
2325 impl TypedRequest for DisconnectRequest {
2326 type Response = super::responses::DisconnectResponse;
2327
2328 fn method(&self) -> &str {
2329 "disconnect"
2330 }
2331 }
2332 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2334 #[allow(non_camel_case_types)]
2335 pub enum FeeratesStyle {
2336 #[serde(rename = "perkb")]
2337 PERKB = 0,
2338 #[serde(rename = "perkw")]
2339 PERKW = 1,
2340 }
2341
2342 impl TryFrom<i32> for FeeratesStyle {
2343 type Error = anyhow::Error;
2344 fn try_from(c: i32) -> Result<FeeratesStyle, anyhow::Error> {
2345 match c {
2346 0 => Ok(FeeratesStyle::PERKB),
2347 1 => Ok(FeeratesStyle::PERKW),
2348 o => Err(anyhow::anyhow!("Unknown variant {} for enum FeeratesStyle", o)),
2349 }
2350 }
2351 }
2352
2353 impl ToString for FeeratesStyle {
2354 fn to_string(&self) -> String {
2355 match self {
2356 FeeratesStyle::PERKB => "PERKB",
2357 FeeratesStyle::PERKW => "PERKW",
2358 }.to_string()
2359 }
2360 }
2361
2362 #[derive(Clone, Debug, Deserialize, Serialize)]
2363 pub struct FeeratesRequest {
2364 pub style: FeeratesStyle,
2366 }
2367
2368 impl From<FeeratesRequest> for Request {
2369 fn from(r: FeeratesRequest) -> Self {
2370 Request::Feerates(r)
2371 }
2372 }
2373
2374 impl IntoRequest for FeeratesRequest {
2375 type Response = super::responses::FeeratesResponse;
2376 }
2377
2378 impl TypedRequest for FeeratesRequest {
2379 type Response = super::responses::FeeratesResponse;
2380
2381 fn method(&self) -> &str {
2382 "feerates"
2383 }
2384 }
2385 #[derive(Clone, Debug, Deserialize, Serialize)]
2386 pub struct Fetchbip353Request {
2387 pub address: String,
2388 }
2389
2390 impl From<Fetchbip353Request> for Request {
2391 fn from(r: Fetchbip353Request) -> Self {
2392 Request::FetchBip353(r)
2393 }
2394 }
2395
2396 impl IntoRequest for Fetchbip353Request {
2397 type Response = super::responses::Fetchbip353Response;
2398 }
2399
2400 impl TypedRequest for Fetchbip353Request {
2401 type Response = super::responses::Fetchbip353Response;
2402
2403 fn method(&self) -> &str {
2404 "fetchbip353"
2405 }
2406 }
2407 #[derive(Clone, Debug, Deserialize, Serialize)]
2408 pub struct FetchinvoiceRequest {
2409 #[serde(skip_serializing_if = "Option::is_none")]
2410 pub amount_msat: Option<Amount>,
2411 #[serde(skip_serializing_if = "Option::is_none")]
2412 pub bip353: Option<String>,
2413 #[serde(skip_serializing_if = "Option::is_none")]
2414 pub payer_metadata: Option<String>,
2415 #[serde(skip_serializing_if = "Option::is_none")]
2416 pub payer_note: Option<String>,
2417 #[serde(skip_serializing_if = "Option::is_none")]
2418 pub quantity: Option<u64>,
2419 #[serde(skip_serializing_if = "Option::is_none")]
2420 pub recurrence_counter: Option<u64>,
2421 #[serde(skip_serializing_if = "Option::is_none")]
2422 pub recurrence_label: Option<String>,
2423 #[serde(skip_serializing_if = "Option::is_none")]
2424 pub recurrence_start: Option<f64>,
2425 #[serde(skip_serializing_if = "Option::is_none")]
2426 pub timeout: Option<f64>,
2427 pub offer: String,
2428 }
2429
2430 impl From<FetchinvoiceRequest> for Request {
2431 fn from(r: FetchinvoiceRequest) -> Self {
2432 Request::FetchInvoice(r)
2433 }
2434 }
2435
2436 impl IntoRequest for FetchinvoiceRequest {
2437 type Response = super::responses::FetchinvoiceResponse;
2438 }
2439
2440 impl TypedRequest for FetchinvoiceRequest {
2441 type Response = super::responses::FetchinvoiceResponse;
2442
2443 fn method(&self) -> &str {
2444 "fetchinvoice"
2445 }
2446 }
2447 #[derive(Clone, Debug, Deserialize, Serialize)]
2448 pub struct CancelrecurringinvoiceRequest {
2449 #[serde(skip_serializing_if = "Option::is_none")]
2450 pub bip353: Option<String>,
2451 #[serde(skip_serializing_if = "Option::is_none")]
2452 pub payer_note: Option<String>,
2453 #[serde(skip_serializing_if = "Option::is_none")]
2454 pub recurrence_start: Option<f64>,
2455 pub offer: String,
2456 pub recurrence_counter: u64,
2457 pub recurrence_label: String,
2458 }
2459
2460 impl From<CancelrecurringinvoiceRequest> for Request {
2461 fn from(r: CancelrecurringinvoiceRequest) -> Self {
2462 Request::CancelRecurringInvoice(r)
2463 }
2464 }
2465
2466 impl IntoRequest for CancelrecurringinvoiceRequest {
2467 type Response = super::responses::CancelrecurringinvoiceResponse;
2468 }
2469
2470 impl TypedRequest for CancelrecurringinvoiceRequest {
2471 type Response = super::responses::CancelrecurringinvoiceResponse;
2472
2473 fn method(&self) -> &str {
2474 "cancelrecurringinvoice"
2475 }
2476 }
2477 #[derive(Clone, Debug, Deserialize, Serialize)]
2478 pub struct FundchannelCancelRequest {
2479 pub id: PublicKey,
2480 }
2481
2482 impl From<FundchannelCancelRequest> for Request {
2483 fn from(r: FundchannelCancelRequest) -> Self {
2484 Request::FundChannelCancel(r)
2485 }
2486 }
2487
2488 impl IntoRequest for FundchannelCancelRequest {
2489 type Response = super::responses::FundchannelCancelResponse;
2490 }
2491
2492 impl TypedRequest for FundchannelCancelRequest {
2493 type Response = super::responses::FundchannelCancelResponse;
2494
2495 fn method(&self) -> &str {
2496 "fundchannel_cancel"
2497 }
2498 }
2499 #[derive(Clone, Debug, Deserialize, Serialize)]
2500 pub struct FundchannelCompleteRequest {
2501 #[serde(skip_serializing_if = "Option::is_none")]
2502 pub withhold: Option<bool>,
2503 pub id: PublicKey,
2504 pub psbt: String,
2505 }
2506
2507 impl From<FundchannelCompleteRequest> for Request {
2508 fn from(r: FundchannelCompleteRequest) -> Self {
2509 Request::FundChannelComplete(r)
2510 }
2511 }
2512
2513 impl IntoRequest for FundchannelCompleteRequest {
2514 type Response = super::responses::FundchannelCompleteResponse;
2515 }
2516
2517 impl TypedRequest for FundchannelCompleteRequest {
2518 type Response = super::responses::FundchannelCompleteResponse;
2519
2520 fn method(&self) -> &str {
2521 "fundchannel_complete"
2522 }
2523 }
2524 #[derive(Clone, Debug, Deserialize, Serialize)]
2525 pub struct FundchannelRequest {
2526 #[serde(skip_serializing_if = "Option::is_none")]
2527 pub announce: Option<bool>,
2528 #[serde(skip_serializing_if = "Option::is_none")]
2529 pub close_to: Option<String>,
2530 #[serde(skip_serializing_if = "Option::is_none")]
2531 pub compact_lease: Option<String>,
2532 #[serde(skip_serializing_if = "Option::is_none")]
2533 pub feerate: Option<Feerate>,
2534 #[serde(skip_serializing_if = "Option::is_none")]
2535 pub minconf: Option<u32>,
2536 #[serde(skip_serializing_if = "Option::is_none")]
2537 pub mindepth: Option<u32>,
2538 #[serde(skip_serializing_if = "Option::is_none")]
2539 pub push_msat: Option<Amount>,
2540 #[serde(skip_serializing_if = "Option::is_none")]
2541 pub request_amt: Option<Amount>,
2542 #[serde(skip_serializing_if = "Option::is_none")]
2543 pub reserve: Option<Amount>,
2544 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
2545 pub channel_type: Option<Vec<u32>>,
2546 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
2547 pub utxos: Option<Vec<Outpoint>>,
2548 pub amount: AmountOrAll,
2549 pub id: PublicKey,
2550 }
2551
2552 impl From<FundchannelRequest> for Request {
2553 fn from(r: FundchannelRequest) -> Self {
2554 Request::FundChannel(r)
2555 }
2556 }
2557
2558 impl IntoRequest for FundchannelRequest {
2559 type Response = super::responses::FundchannelResponse;
2560 }
2561
2562 impl TypedRequest for FundchannelRequest {
2563 type Response = super::responses::FundchannelResponse;
2564
2565 fn method(&self) -> &str {
2566 "fundchannel"
2567 }
2568 }
2569 #[derive(Clone, Debug, Deserialize, Serialize)]
2570 pub struct FundchannelStartRequest {
2571 #[serde(skip_serializing_if = "Option::is_none")]
2572 pub announce: Option<bool>,
2573 #[serde(skip_serializing_if = "Option::is_none")]
2574 pub close_to: Option<String>,
2575 #[serde(skip_serializing_if = "Option::is_none")]
2576 pub feerate: Option<Feerate>,
2577 #[serde(skip_serializing_if = "Option::is_none")]
2578 pub mindepth: Option<u32>,
2579 #[serde(skip_serializing_if = "Option::is_none")]
2580 pub push_msat: Option<Amount>,
2581 #[serde(skip_serializing_if = "Option::is_none")]
2582 pub reserve: Option<Amount>,
2583 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
2584 pub channel_type: Option<Vec<u32>>,
2585 pub amount: Amount,
2586 pub id: PublicKey,
2587 }
2588
2589 impl From<FundchannelStartRequest> for Request {
2590 fn from(r: FundchannelStartRequest) -> Self {
2591 Request::FundChannelStart(r)
2592 }
2593 }
2594
2595 impl IntoRequest for FundchannelStartRequest {
2596 type Response = super::responses::FundchannelStartResponse;
2597 }
2598
2599 impl TypedRequest for FundchannelStartRequest {
2600 type Response = super::responses::FundchannelStartResponse;
2601
2602 fn method(&self) -> &str {
2603 "fundchannel_start"
2604 }
2605 }
2606 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2608 #[allow(non_camel_case_types)]
2609 pub enum GetlogLevel {
2610 #[serde(rename = "broken")]
2611 BROKEN = 0,
2612 #[serde(rename = "unusual")]
2613 UNUSUAL = 1,
2614 #[serde(rename = "info")]
2615 INFO = 2,
2616 #[serde(rename = "debug")]
2617 DEBUG = 3,
2618 #[serde(rename = "io")]
2619 IO = 4,
2620 #[serde(rename = "trace")]
2621 TRACE = 5,
2622 }
2623
2624 impl TryFrom<i32> for GetlogLevel {
2625 type Error = anyhow::Error;
2626 fn try_from(c: i32) -> Result<GetlogLevel, anyhow::Error> {
2627 match c {
2628 0 => Ok(GetlogLevel::BROKEN),
2629 1 => Ok(GetlogLevel::UNUSUAL),
2630 2 => Ok(GetlogLevel::INFO),
2631 3 => Ok(GetlogLevel::DEBUG),
2632 4 => Ok(GetlogLevel::IO),
2633 5 => Ok(GetlogLevel::TRACE),
2634 o => Err(anyhow::anyhow!("Unknown variant {} for enum GetlogLevel", o)),
2635 }
2636 }
2637 }
2638
2639 impl ToString for GetlogLevel {
2640 fn to_string(&self) -> String {
2641 match self {
2642 GetlogLevel::BROKEN => "BROKEN",
2643 GetlogLevel::UNUSUAL => "UNUSUAL",
2644 GetlogLevel::INFO => "INFO",
2645 GetlogLevel::DEBUG => "DEBUG",
2646 GetlogLevel::TRACE => "TRACE",
2647 GetlogLevel::IO => "IO",
2648 }.to_string()
2649 }
2650 }
2651
2652 #[derive(Clone, Debug, Deserialize, Serialize)]
2653 pub struct GetlogRequest {
2654 #[serde(skip_serializing_if = "Option::is_none")]
2655 pub level: Option<GetlogLevel>,
2656 }
2657
2658 impl From<GetlogRequest> for Request {
2659 fn from(r: GetlogRequest) -> Self {
2660 Request::GetLog(r)
2661 }
2662 }
2663
2664 impl IntoRequest for GetlogRequest {
2665 type Response = super::responses::GetlogResponse;
2666 }
2667
2668 impl TypedRequest for GetlogRequest {
2669 type Response = super::responses::GetlogResponse;
2670
2671 fn method(&self) -> &str {
2672 "getlog"
2673 }
2674 }
2675 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2677 #[allow(non_camel_case_types)]
2678 pub enum FunderupdatePolicy {
2679 #[serde(rename = "match")]
2680 MATCH = 0,
2681 #[serde(rename = "available")]
2682 AVAILABLE = 1,
2683 #[serde(rename = "fixed")]
2684 FIXED = 2,
2685 }
2686
2687 impl TryFrom<i32> for FunderupdatePolicy {
2688 type Error = anyhow::Error;
2689 fn try_from(c: i32) -> Result<FunderupdatePolicy, anyhow::Error> {
2690 match c {
2691 0 => Ok(FunderupdatePolicy::MATCH),
2692 1 => Ok(FunderupdatePolicy::AVAILABLE),
2693 2 => Ok(FunderupdatePolicy::FIXED),
2694 o => Err(anyhow::anyhow!("Unknown variant {} for enum FunderupdatePolicy", o)),
2695 }
2696 }
2697 }
2698
2699 impl ToString for FunderupdatePolicy {
2700 fn to_string(&self) -> String {
2701 match self {
2702 FunderupdatePolicy::MATCH => "MATCH",
2703 FunderupdatePolicy::AVAILABLE => "AVAILABLE",
2704 FunderupdatePolicy::FIXED => "FIXED",
2705 }.to_string()
2706 }
2707 }
2708
2709 #[derive(Clone, Debug, Deserialize, Serialize)]
2710 pub struct FunderupdateRequest {
2711 #[serde(skip_serializing_if = "Option::is_none")]
2712 pub channel_fee_max_base_msat: Option<Amount>,
2713 #[serde(skip_serializing_if = "Option::is_none")]
2714 pub channel_fee_max_proportional_thousandths: Option<u32>,
2715 #[serde(skip_serializing_if = "Option::is_none")]
2716 pub compact_lease: Option<String>,
2717 #[serde(skip_serializing_if = "Option::is_none")]
2718 pub fund_probability: Option<u32>,
2719 #[serde(skip_serializing_if = "Option::is_none")]
2720 pub funding_weight: Option<u32>,
2721 #[serde(skip_serializing_if = "Option::is_none")]
2722 pub fuzz_percent: Option<u32>,
2723 #[serde(skip_serializing_if = "Option::is_none")]
2724 pub lease_fee_base_msat: Option<Amount>,
2725 #[serde(skip_serializing_if = "Option::is_none")]
2726 pub lease_fee_basis: Option<u32>,
2727 #[serde(skip_serializing_if = "Option::is_none")]
2728 pub leases_only: Option<bool>,
2729 #[serde(skip_serializing_if = "Option::is_none")]
2730 pub max_their_funding_msat: Option<Amount>,
2731 #[serde(skip_serializing_if = "Option::is_none")]
2732 pub min_their_funding_msat: Option<Amount>,
2733 #[serde(skip_serializing_if = "Option::is_none")]
2734 pub per_channel_max_msat: Option<Amount>,
2735 #[serde(skip_serializing_if = "Option::is_none")]
2736 pub per_channel_min_msat: Option<Amount>,
2737 #[serde(skip_serializing_if = "Option::is_none")]
2738 pub policy: Option<FunderupdatePolicy>,
2739 #[serde(skip_serializing_if = "Option::is_none")]
2740 pub policy_mod: Option<Amount>,
2741 #[serde(skip_serializing_if = "Option::is_none")]
2742 pub reserve_tank_msat: Option<Amount>,
2743 }
2744
2745 impl From<FunderupdateRequest> for Request {
2746 fn from(r: FunderupdateRequest) -> Self {
2747 Request::FunderUpdate(r)
2748 }
2749 }
2750
2751 impl IntoRequest for FunderupdateRequest {
2752 type Response = super::responses::FunderupdateResponse;
2753 }
2754
2755 impl TypedRequest for FunderupdateRequest {
2756 type Response = super::responses::FunderupdateResponse;
2757
2758 fn method(&self) -> &str {
2759 "funderupdate"
2760 }
2761 }
2762 #[deprecated = "deprecated since CLN v26.06"]
2763 #[derive(Clone, Debug, Deserialize, Serialize)]
2764 pub struct GetrouteRequest {
2765 #[deprecated]
2766 #[serde(skip_serializing_if = "Option::is_none")]
2767 pub cltv: Option<u32>,
2768 #[deprecated]
2769 #[serde(skip_serializing_if = "Option::is_none")]
2770 pub fromid: Option<PublicKey>,
2771 #[deprecated]
2772 #[serde(skip_serializing_if = "Option::is_none")]
2773 pub fuzzpercent: Option<u32>,
2774 #[deprecated]
2775 #[serde(skip_serializing_if = "Option::is_none")]
2776 pub maxhops: Option<u32>,
2777 #[deprecated]
2778 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
2779 pub exclude: Option<Vec<String>>,
2780 #[deprecated]
2781 pub amount_msat: Amount,
2782 #[deprecated]
2783 pub id: PublicKey,
2784 #[deprecated]
2785 pub riskfactor: u64,
2786 }
2787
2788 impl From<GetrouteRequest> for Request {
2789 fn from(r: GetrouteRequest) -> Self {
2790 Request::GetRoute(r)
2791 }
2792 }
2793
2794 impl IntoRequest for GetrouteRequest {
2795 type Response = super::responses::GetrouteResponse;
2796 }
2797
2798 impl TypedRequest for GetrouteRequest {
2799 type Response = super::responses::GetrouteResponse;
2800
2801 fn method(&self) -> &str {
2802 "getroute"
2803 }
2804 }
2805 #[derive(Clone, Debug, Deserialize, Serialize)]
2806 pub struct ListaddressesRequest {
2807 #[serde(skip_serializing_if = "Option::is_none")]
2808 pub address: Option<String>,
2809 #[serde(skip_serializing_if = "Option::is_none")]
2810 pub limit: Option<u32>,
2811 #[serde(skip_serializing_if = "Option::is_none")]
2812 pub start: Option<u64>,
2813 }
2814
2815 impl From<ListaddressesRequest> for Request {
2816 fn from(r: ListaddressesRequest) -> Self {
2817 Request::ListAddresses(r)
2818 }
2819 }
2820
2821 impl IntoRequest for ListaddressesRequest {
2822 type Response = super::responses::ListaddressesResponse;
2823 }
2824
2825 impl TypedRequest for ListaddressesRequest {
2826 type Response = super::responses::ListaddressesResponse;
2827
2828 fn method(&self) -> &str {
2829 "listaddresses"
2830 }
2831 }
2832 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2834 #[allow(non_camel_case_types)]
2835 pub enum ListforwardsIndex {
2836 #[serde(rename = "created")]
2837 CREATED = 0,
2838 #[serde(rename = "updated")]
2839 UPDATED = 1,
2840 }
2841
2842 impl TryFrom<i32> for ListforwardsIndex {
2843 type Error = anyhow::Error;
2844 fn try_from(c: i32) -> Result<ListforwardsIndex, anyhow::Error> {
2845 match c {
2846 0 => Ok(ListforwardsIndex::CREATED),
2847 1 => Ok(ListforwardsIndex::UPDATED),
2848 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsIndex", o)),
2849 }
2850 }
2851 }
2852
2853 impl ToString for ListforwardsIndex {
2854 fn to_string(&self) -> String {
2855 match self {
2856 ListforwardsIndex::CREATED => "CREATED",
2857 ListforwardsIndex::UPDATED => "UPDATED",
2858 }.to_string()
2859 }
2860 }
2861
2862 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2864 #[allow(non_camel_case_types)]
2865 pub enum ListforwardsStatus {
2866 #[serde(rename = "offered")]
2867 OFFERED = 0,
2868 #[serde(rename = "settled")]
2869 SETTLED = 1,
2870 #[serde(rename = "local_failed")]
2871 LOCAL_FAILED = 2,
2872 #[serde(rename = "failed")]
2873 FAILED = 3,
2874 }
2875
2876 impl TryFrom<i32> for ListforwardsStatus {
2877 type Error = anyhow::Error;
2878 fn try_from(c: i32) -> Result<ListforwardsStatus, anyhow::Error> {
2879 match c {
2880 0 => Ok(ListforwardsStatus::OFFERED),
2881 1 => Ok(ListforwardsStatus::SETTLED),
2882 2 => Ok(ListforwardsStatus::LOCAL_FAILED),
2883 3 => Ok(ListforwardsStatus::FAILED),
2884 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsStatus", o)),
2885 }
2886 }
2887 }
2888
2889 impl ToString for ListforwardsStatus {
2890 fn to_string(&self) -> String {
2891 match self {
2892 ListforwardsStatus::OFFERED => "OFFERED",
2893 ListforwardsStatus::SETTLED => "SETTLED",
2894 ListforwardsStatus::LOCAL_FAILED => "LOCAL_FAILED",
2895 ListforwardsStatus::FAILED => "FAILED",
2896 }.to_string()
2897 }
2898 }
2899
2900 #[derive(Clone, Debug, Deserialize, Serialize)]
2901 pub struct ListforwardsRequest {
2902 #[serde(skip_serializing_if = "Option::is_none")]
2903 pub in_channel: Option<ShortChannelId>,
2904 #[serde(skip_serializing_if = "Option::is_none")]
2905 pub index: Option<ListforwardsIndex>,
2906 #[serde(skip_serializing_if = "Option::is_none")]
2907 pub limit: Option<u32>,
2908 #[serde(skip_serializing_if = "Option::is_none")]
2909 pub out_channel: Option<ShortChannelId>,
2910 #[serde(skip_serializing_if = "Option::is_none")]
2911 pub start: Option<u64>,
2912 #[serde(skip_serializing_if = "Option::is_none")]
2913 pub status: Option<ListforwardsStatus>,
2914 }
2915
2916 impl From<ListforwardsRequest> for Request {
2917 fn from(r: ListforwardsRequest) -> Self {
2918 Request::ListForwards(r)
2919 }
2920 }
2921
2922 impl IntoRequest for ListforwardsRequest {
2923 type Response = super::responses::ListforwardsResponse;
2924 }
2925
2926 impl TypedRequest for ListforwardsRequest {
2927 type Response = super::responses::ListforwardsResponse;
2928
2929 fn method(&self) -> &str {
2930 "listforwards"
2931 }
2932 }
2933 #[derive(Clone, Debug, Deserialize, Serialize)]
2934 pub struct ListoffersRequest {
2935 #[serde(skip_serializing_if = "Option::is_none")]
2936 pub active_only: Option<bool>,
2937 #[serde(skip_serializing_if = "Option::is_none")]
2938 pub offer_id: Option<Sha256>,
2939 }
2940
2941 impl From<ListoffersRequest> for Request {
2942 fn from(r: ListoffersRequest) -> Self {
2943 Request::ListOffers(r)
2944 }
2945 }
2946
2947 impl IntoRequest for ListoffersRequest {
2948 type Response = super::responses::ListoffersResponse;
2949 }
2950
2951 impl TypedRequest for ListoffersRequest {
2952 type Response = super::responses::ListoffersResponse;
2953
2954 fn method(&self) -> &str {
2955 "listoffers"
2956 }
2957 }
2958 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2960 #[allow(non_camel_case_types)]
2961 pub enum ListpaysIndex {
2962 #[serde(rename = "created")]
2963 CREATED = 0,
2964 #[serde(rename = "updated")]
2965 UPDATED = 1,
2966 }
2967
2968 impl TryFrom<i32> for ListpaysIndex {
2969 type Error = anyhow::Error;
2970 fn try_from(c: i32) -> Result<ListpaysIndex, anyhow::Error> {
2971 match c {
2972 0 => Ok(ListpaysIndex::CREATED),
2973 1 => Ok(ListpaysIndex::UPDATED),
2974 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpaysIndex", o)),
2975 }
2976 }
2977 }
2978
2979 impl ToString for ListpaysIndex {
2980 fn to_string(&self) -> String {
2981 match self {
2982 ListpaysIndex::CREATED => "CREATED",
2983 ListpaysIndex::UPDATED => "UPDATED",
2984 }.to_string()
2985 }
2986 }
2987
2988 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
2990 #[allow(non_camel_case_types)]
2991 pub enum ListpaysStatus {
2992 #[serde(rename = "pending")]
2993 PENDING = 0,
2994 #[serde(rename = "complete")]
2995 COMPLETE = 1,
2996 #[serde(rename = "failed")]
2997 FAILED = 2,
2998 }
2999
3000 impl TryFrom<i32> for ListpaysStatus {
3001 type Error = anyhow::Error;
3002 fn try_from(c: i32) -> Result<ListpaysStatus, anyhow::Error> {
3003 match c {
3004 0 => Ok(ListpaysStatus::PENDING),
3005 1 => Ok(ListpaysStatus::COMPLETE),
3006 2 => Ok(ListpaysStatus::FAILED),
3007 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpaysStatus", o)),
3008 }
3009 }
3010 }
3011
3012 impl ToString for ListpaysStatus {
3013 fn to_string(&self) -> String {
3014 match self {
3015 ListpaysStatus::PENDING => "PENDING",
3016 ListpaysStatus::COMPLETE => "COMPLETE",
3017 ListpaysStatus::FAILED => "FAILED",
3018 }.to_string()
3019 }
3020 }
3021
3022 #[derive(Clone, Debug, Deserialize, Serialize)]
3023 pub struct ListpaysRequest {
3024 #[serde(skip_serializing_if = "Option::is_none")]
3025 pub bolt11: Option<String>,
3026 #[serde(skip_serializing_if = "Option::is_none")]
3027 pub index: Option<ListpaysIndex>,
3028 #[serde(skip_serializing_if = "Option::is_none")]
3029 pub limit: Option<u32>,
3030 #[serde(skip_serializing_if = "Option::is_none")]
3031 pub payment_hash: Option<Sha256>,
3032 #[serde(skip_serializing_if = "Option::is_none")]
3033 pub start: Option<u64>,
3034 #[serde(skip_serializing_if = "Option::is_none")]
3035 pub status: Option<ListpaysStatus>,
3036 }
3037
3038 impl From<ListpaysRequest> for Request {
3039 fn from(r: ListpaysRequest) -> Self {
3040 Request::ListPays(r)
3041 }
3042 }
3043
3044 impl IntoRequest for ListpaysRequest {
3045 type Response = super::responses::ListpaysResponse;
3046 }
3047
3048 impl TypedRequest for ListpaysRequest {
3049 type Response = super::responses::ListpaysResponse;
3050
3051 fn method(&self) -> &str {
3052 "listpays"
3053 }
3054 }
3055 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
3057 #[allow(non_camel_case_types)]
3058 pub enum ListhtlcsIndex {
3059 #[serde(rename = "created")]
3060 CREATED = 0,
3061 #[serde(rename = "updated")]
3062 UPDATED = 1,
3063 }
3064
3065 impl TryFrom<i32> for ListhtlcsIndex {
3066 type Error = anyhow::Error;
3067 fn try_from(c: i32) -> Result<ListhtlcsIndex, anyhow::Error> {
3068 match c {
3069 0 => Ok(ListhtlcsIndex::CREATED),
3070 1 => Ok(ListhtlcsIndex::UPDATED),
3071 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListhtlcsIndex", o)),
3072 }
3073 }
3074 }
3075
3076 impl ToString for ListhtlcsIndex {
3077 fn to_string(&self) -> String {
3078 match self {
3079 ListhtlcsIndex::CREATED => "CREATED",
3080 ListhtlcsIndex::UPDATED => "UPDATED",
3081 }.to_string()
3082 }
3083 }
3084
3085 #[derive(Clone, Debug, Deserialize, Serialize)]
3086 pub struct ListhtlcsRequest {
3087 #[serde(skip_serializing_if = "Option::is_none")]
3088 pub id: Option<String>,
3089 #[serde(skip_serializing_if = "Option::is_none")]
3090 pub index: Option<ListhtlcsIndex>,
3091 #[serde(skip_serializing_if = "Option::is_none")]
3092 pub limit: Option<u32>,
3093 #[serde(skip_serializing_if = "Option::is_none")]
3094 pub start: Option<u64>,
3095 }
3096
3097 impl From<ListhtlcsRequest> for Request {
3098 fn from(r: ListhtlcsRequest) -> Self {
3099 Request::ListHtlcs(r)
3100 }
3101 }
3102
3103 impl IntoRequest for ListhtlcsRequest {
3104 type Response = super::responses::ListhtlcsResponse;
3105 }
3106
3107 impl TypedRequest for ListhtlcsRequest {
3108 type Response = super::responses::ListhtlcsResponse;
3109
3110 fn method(&self) -> &str {
3111 "listhtlcs"
3112 }
3113 }
3114 #[derive(Clone, Debug, Deserialize, Serialize)]
3115 pub struct MultifundchannelDestinations {
3116 #[serde(skip_serializing_if = "Option::is_none")]
3117 pub announce: Option<bool>,
3118 #[serde(skip_serializing_if = "Option::is_none")]
3119 pub close_to: Option<String>,
3120 #[serde(skip_serializing_if = "Option::is_none")]
3121 pub compact_lease: Option<String>,
3122 #[serde(skip_serializing_if = "Option::is_none")]
3123 pub mindepth: Option<u32>,
3124 #[serde(skip_serializing_if = "Option::is_none")]
3125 pub push_msat: Option<Amount>,
3126 #[serde(skip_serializing_if = "Option::is_none")]
3127 pub request_amt: Option<Amount>,
3128 #[serde(skip_serializing_if = "Option::is_none")]
3129 pub reserve: Option<Amount>,
3130 pub amount: AmountOrAll,
3131 pub id: String,
3132 }
3133
3134 #[derive(Clone, Debug, Deserialize, Serialize)]
3135 pub struct MultifundchannelRequest {
3136 #[serde(skip_serializing_if = "Option::is_none")]
3137 pub commitment_feerate: Option<Feerate>,
3138 #[serde(skip_serializing_if = "Option::is_none")]
3139 pub feerate: Option<Feerate>,
3140 #[serde(skip_serializing_if = "Option::is_none")]
3141 pub minchannels: Option<i64>,
3142 #[serde(skip_serializing_if = "Option::is_none")]
3143 pub minconf: Option<i64>,
3144 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
3145 pub utxos: Option<Vec<Outpoint>>,
3146 pub destinations: Vec<MultifundchannelDestinations>,
3147 }
3148
3149 impl From<MultifundchannelRequest> for Request {
3150 fn from(r: MultifundchannelRequest) -> Self {
3151 Request::MultiFundChannel(r)
3152 }
3153 }
3154
3155 impl IntoRequest for MultifundchannelRequest {
3156 type Response = super::responses::MultifundchannelResponse;
3157 }
3158
3159 impl TypedRequest for MultifundchannelRequest {
3160 type Response = super::responses::MultifundchannelResponse;
3161
3162 fn method(&self) -> &str {
3163 "multifundchannel"
3164 }
3165 }
3166 #[derive(Clone, Debug, Deserialize, Serialize)]
3167 pub struct MultiwithdrawRequest {
3168 #[serde(skip_serializing_if = "Option::is_none")]
3169 pub feerate: Option<Feerate>,
3170 #[serde(skip_serializing_if = "Option::is_none")]
3171 pub minconf: Option<u32>,
3172 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
3173 pub utxos: Option<Vec<Outpoint>>,
3174 pub outputs: Vec<OutputDesc>,
3175 }
3176
3177 impl From<MultiwithdrawRequest> for Request {
3178 fn from(r: MultiwithdrawRequest) -> Self {
3179 Request::MultiWithdraw(r)
3180 }
3181 }
3182
3183 impl IntoRequest for MultiwithdrawRequest {
3184 type Response = super::responses::MultiwithdrawResponse;
3185 }
3186
3187 impl TypedRequest for MultiwithdrawRequest {
3188 type Response = super::responses::MultiwithdrawResponse;
3189
3190 fn method(&self) -> &str {
3191 "multiwithdraw"
3192 }
3193 }
3194 #[derive(Clone, Debug, Deserialize, Serialize)]
3195 pub struct OfferRequest {
3196 #[serde(skip_serializing_if = "Option::is_none")]
3197 pub absolute_expiry: Option<u64>,
3198 #[serde(skip_serializing_if = "Option::is_none")]
3199 pub description: Option<String>,
3200 #[serde(skip_serializing_if = "Option::is_none")]
3201 pub issuer: Option<String>,
3202 #[serde(skip_serializing_if = "Option::is_none")]
3203 pub label: Option<String>,
3204 #[serde(skip_serializing_if = "Option::is_none")]
3205 pub optional_recurrence: Option<bool>,
3206 #[serde(skip_serializing_if = "Option::is_none")]
3207 pub proportional_amount: Option<bool>,
3208 #[serde(skip_serializing_if = "Option::is_none")]
3209 pub quantity_max: Option<u64>,
3210 #[serde(skip_serializing_if = "Option::is_none")]
3211 pub recurrence: Option<String>,
3212 #[serde(skip_serializing_if = "Option::is_none")]
3213 pub recurrence_base: Option<String>,
3214 #[serde(skip_serializing_if = "Option::is_none")]
3215 pub recurrence_limit: Option<u32>,
3216 #[serde(skip_serializing_if = "Option::is_none")]
3217 pub recurrence_paywindow: Option<String>,
3218 #[serde(skip_serializing_if = "Option::is_none")]
3219 pub single_use: Option<bool>,
3220 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
3221 pub fronting_nodes: Option<Vec<PublicKey>>,
3222 pub amount: String,
3223 }
3224
3225 impl From<OfferRequest> for Request {
3226 fn from(r: OfferRequest) -> Self {
3227 Request::Offer(r)
3228 }
3229 }
3230
3231 impl IntoRequest for OfferRequest {
3232 type Response = super::responses::OfferResponse;
3233 }
3234
3235 impl TypedRequest for OfferRequest {
3236 type Response = super::responses::OfferResponse;
3237
3238 fn method(&self) -> &str {
3239 "offer"
3240 }
3241 }
3242 #[derive(Clone, Debug, Deserialize, Serialize)]
3243 pub struct OpenchannelAbortRequest {
3244 pub channel_id: Sha256,
3245 }
3246
3247 impl From<OpenchannelAbortRequest> for Request {
3248 fn from(r: OpenchannelAbortRequest) -> Self {
3249 Request::OpenChannelAbort(r)
3250 }
3251 }
3252
3253 impl IntoRequest for OpenchannelAbortRequest {
3254 type Response = super::responses::OpenchannelAbortResponse;
3255 }
3256
3257 impl TypedRequest for OpenchannelAbortRequest {
3258 type Response = super::responses::OpenchannelAbortResponse;
3259
3260 fn method(&self) -> &str {
3261 "openchannel_abort"
3262 }
3263 }
3264 #[derive(Clone, Debug, Deserialize, Serialize)]
3265 pub struct OpenchannelBumpRequest {
3266 #[serde(skip_serializing_if = "Option::is_none")]
3267 pub funding_feerate: Option<Feerate>,
3268 pub amount: Amount,
3269 pub channel_id: Sha256,
3270 pub initialpsbt: String,
3271 }
3272
3273 impl From<OpenchannelBumpRequest> for Request {
3274 fn from(r: OpenchannelBumpRequest) -> Self {
3275 Request::OpenChannelBump(r)
3276 }
3277 }
3278
3279 impl IntoRequest for OpenchannelBumpRequest {
3280 type Response = super::responses::OpenchannelBumpResponse;
3281 }
3282
3283 impl TypedRequest for OpenchannelBumpRequest {
3284 type Response = super::responses::OpenchannelBumpResponse;
3285
3286 fn method(&self) -> &str {
3287 "openchannel_bump"
3288 }
3289 }
3290 #[derive(Clone, Debug, Deserialize, Serialize)]
3291 pub struct OpenchannelInitRequest {
3292 #[serde(skip_serializing_if = "Option::is_none")]
3293 pub announce: Option<bool>,
3294 #[serde(skip_serializing_if = "Option::is_none")]
3295 pub close_to: Option<String>,
3296 #[serde(skip_serializing_if = "Option::is_none")]
3297 pub commitment_feerate: Option<Feerate>,
3298 #[serde(skip_serializing_if = "Option::is_none")]
3299 pub compact_lease: Option<String>,
3300 #[serde(skip_serializing_if = "Option::is_none")]
3301 pub funding_feerate: Option<Feerate>,
3302 #[serde(skip_serializing_if = "Option::is_none")]
3303 pub request_amt: Option<Amount>,
3304 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
3305 pub channel_type: Option<Vec<u32>>,
3306 pub amount: Amount,
3307 pub id: PublicKey,
3308 pub initialpsbt: String,
3309 }
3310
3311 impl From<OpenchannelInitRequest> for Request {
3312 fn from(r: OpenchannelInitRequest) -> Self {
3313 Request::OpenChannelInit(r)
3314 }
3315 }
3316
3317 impl IntoRequest for OpenchannelInitRequest {
3318 type Response = super::responses::OpenchannelInitResponse;
3319 }
3320
3321 impl TypedRequest for OpenchannelInitRequest {
3322 type Response = super::responses::OpenchannelInitResponse;
3323
3324 fn method(&self) -> &str {
3325 "openchannel_init"
3326 }
3327 }
3328 #[derive(Clone, Debug, Deserialize, Serialize)]
3329 pub struct OpenchannelSignedRequest {
3330 pub channel_id: Sha256,
3331 pub signed_psbt: String,
3332 }
3333
3334 impl From<OpenchannelSignedRequest> for Request {
3335 fn from(r: OpenchannelSignedRequest) -> Self {
3336 Request::OpenChannelSigned(r)
3337 }
3338 }
3339
3340 impl IntoRequest for OpenchannelSignedRequest {
3341 type Response = super::responses::OpenchannelSignedResponse;
3342 }
3343
3344 impl TypedRequest for OpenchannelSignedRequest {
3345 type Response = super::responses::OpenchannelSignedResponse;
3346
3347 fn method(&self) -> &str {
3348 "openchannel_signed"
3349 }
3350 }
3351 #[derive(Clone, Debug, Deserialize, Serialize)]
3352 pub struct OpenchannelUpdateRequest {
3353 pub channel_id: Sha256,
3354 pub psbt: String,
3355 }
3356
3357 impl From<OpenchannelUpdateRequest> for Request {
3358 fn from(r: OpenchannelUpdateRequest) -> Self {
3359 Request::OpenChannelUpdate(r)
3360 }
3361 }
3362
3363 impl IntoRequest for OpenchannelUpdateRequest {
3364 type Response = super::responses::OpenchannelUpdateResponse;
3365 }
3366
3367 impl TypedRequest for OpenchannelUpdateRequest {
3368 type Response = super::responses::OpenchannelUpdateResponse;
3369
3370 fn method(&self) -> &str {
3371 "openchannel_update"
3372 }
3373 }
3374 #[derive(Clone, Debug, Deserialize, Serialize)]
3375 pub struct PingRequest {
3376 #[serde(skip_serializing_if = "Option::is_none")]
3377 pub len: Option<u16>,
3378 #[serde(skip_serializing_if = "Option::is_none")]
3379 pub pongbytes: Option<u16>,
3380 pub id: PublicKey,
3381 }
3382
3383 impl From<PingRequest> for Request {
3384 fn from(r: PingRequest) -> Self {
3385 Request::Ping(r)
3386 }
3387 }
3388
3389 impl IntoRequest for PingRequest {
3390 type Response = super::responses::PingResponse;
3391 }
3392
3393 impl TypedRequest for PingRequest {
3394 type Response = super::responses::PingResponse;
3395
3396 fn method(&self) -> &str {
3397 "ping"
3398 }
3399 }
3400 #[derive(Clone, Debug, Deserialize, Serialize)]
3401 pub struct PluginRequest {
3402 #[serde(skip_serializing_if = "Option::is_none")]
3403 pub directory: Option<String>,
3404 #[serde(skip_serializing_if = "Option::is_none")]
3405 pub plugin: Option<String>,
3406 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
3407 pub options: Option<Vec<String>>,
3408 pub subcommand: PluginSubcommand,
3410 }
3411
3412 impl From<PluginRequest> for Request {
3413 fn from(r: PluginRequest) -> Self {
3414 Request::Plugin(r)
3415 }
3416 }
3417
3418 impl IntoRequest for PluginRequest {
3419 type Response = super::responses::PluginResponse;
3420 }
3421
3422 impl TypedRequest for PluginRequest {
3423 type Response = super::responses::PluginResponse;
3424
3425 fn method(&self) -> &str {
3426 "plugin"
3427 }
3428 }
3429 #[deprecated = "deprecated since CLN v26.06"]
3430 #[derive(Clone, Debug, Deserialize, Serialize)]
3431 pub struct RenepaystatusRequest {
3432 #[deprecated]
3433 #[serde(skip_serializing_if = "Option::is_none")]
3434 pub invstring: Option<String>,
3435 }
3436
3437 impl From<RenepaystatusRequest> for Request {
3438 fn from(r: RenepaystatusRequest) -> Self {
3439 Request::RenePayStatus(r)
3440 }
3441 }
3442
3443 impl IntoRequest for RenepaystatusRequest {
3444 type Response = super::responses::RenepaystatusResponse;
3445 }
3446
3447 impl TypedRequest for RenepaystatusRequest {
3448 type Response = super::responses::RenepaystatusResponse;
3449
3450 fn method(&self) -> &str {
3451 "renepaystatus"
3452 }
3453 }
3454 #[deprecated = "deprecated since CLN v26.06"]
3455 #[derive(Clone, Debug, Deserialize, Serialize)]
3456 pub struct RenepayRequest {
3457 #[deprecated]
3458 #[serde(skip_serializing_if = "Option::is_none")]
3459 pub amount_msat: Option<Amount>,
3460 #[deprecated]
3461 #[serde(skip_serializing_if = "Option::is_none")]
3462 pub description: Option<String>,
3463 #[deprecated]
3464 #[serde(skip_serializing_if = "Option::is_none")]
3465 pub dev_use_shadow: Option<bool>,
3466 #[deprecated]
3467 #[serde(skip_serializing_if = "Option::is_none")]
3468 pub label: Option<String>,
3469 #[deprecated]
3470 #[serde(skip_serializing_if = "Option::is_none")]
3471 pub maxdelay: Option<u32>,
3472 #[deprecated]
3473 #[serde(skip_serializing_if = "Option::is_none")]
3474 pub maxfee: Option<Amount>,
3475 #[deprecated]
3476 #[serde(skip_serializing_if = "Option::is_none")]
3477 pub retry_for: Option<u32>,
3478 #[deprecated]
3479 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
3480 pub exclude: Option<Vec<String>>,
3481 #[deprecated]
3482 pub invstring: String,
3483 }
3484
3485 impl From<RenepayRequest> for Request {
3486 fn from(r: RenepayRequest) -> Self {
3487 Request::RenePay(r)
3488 }
3489 }
3490
3491 impl IntoRequest for RenepayRequest {
3492 type Response = super::responses::RenepayResponse;
3493 }
3494
3495 impl TypedRequest for RenepayRequest {
3496 type Response = super::responses::RenepayResponse;
3497
3498 fn method(&self) -> &str {
3499 "renepay"
3500 }
3501 }
3502 #[derive(Clone, Debug, Deserialize, Serialize)]
3503 pub struct ReserveinputsRequest {
3504 #[serde(skip_serializing_if = "Option::is_none")]
3505 pub exclusive: Option<bool>,
3506 #[serde(skip_serializing_if = "Option::is_none")]
3507 pub reserve: Option<u32>,
3508 pub psbt: String,
3509 }
3510
3511 impl From<ReserveinputsRequest> for Request {
3512 fn from(r: ReserveinputsRequest) -> Self {
3513 Request::ReserveInputs(r)
3514 }
3515 }
3516
3517 impl IntoRequest for ReserveinputsRequest {
3518 type Response = super::responses::ReserveinputsResponse;
3519 }
3520
3521 impl TypedRequest for ReserveinputsRequest {
3522 type Response = super::responses::ReserveinputsResponse;
3523
3524 fn method(&self) -> &str {
3525 "reserveinputs"
3526 }
3527 }
3528 #[derive(Clone, Debug, Deserialize, Serialize)]
3529 pub struct SendcustommsgRequest {
3530 pub msg: String,
3531 pub node_id: PublicKey,
3532 }
3533
3534 impl From<SendcustommsgRequest> for Request {
3535 fn from(r: SendcustommsgRequest) -> Self {
3536 Request::SendCustomMsg(r)
3537 }
3538 }
3539
3540 impl IntoRequest for SendcustommsgRequest {
3541 type Response = super::responses::SendcustommsgResponse;
3542 }
3543
3544 impl TypedRequest for SendcustommsgRequest {
3545 type Response = super::responses::SendcustommsgResponse;
3546
3547 fn method(&self) -> &str {
3548 "sendcustommsg"
3549 }
3550 }
3551 #[derive(Clone, Debug, Deserialize, Serialize)]
3552 pub struct SendinvoiceRequest {
3553 #[serde(skip_serializing_if = "Option::is_none")]
3554 pub amount_msat: Option<Amount>,
3555 #[serde(skip_serializing_if = "Option::is_none")]
3556 pub quantity: Option<u64>,
3557 #[serde(skip_serializing_if = "Option::is_none")]
3558 pub timeout: Option<u32>,
3559 pub invreq: String,
3560 pub label: String,
3561 }
3562
3563 impl From<SendinvoiceRequest> for Request {
3564 fn from(r: SendinvoiceRequest) -> Self {
3565 Request::SendInvoice(r)
3566 }
3567 }
3568
3569 impl IntoRequest for SendinvoiceRequest {
3570 type Response = super::responses::SendinvoiceResponse;
3571 }
3572
3573 impl TypedRequest for SendinvoiceRequest {
3574 type Response = super::responses::SendinvoiceResponse;
3575
3576 fn method(&self) -> &str {
3577 "sendinvoice"
3578 }
3579 }
3580 #[derive(Clone, Debug, Deserialize, Serialize)]
3581 pub struct SetchannelRequest {
3582 #[serde(skip_serializing_if = "Option::is_none")]
3583 pub enforcedelay: Option<u32>,
3584 #[serde(skip_serializing_if = "Option::is_none")]
3585 pub feebase: Option<Amount>,
3586 #[serde(skip_serializing_if = "Option::is_none")]
3587 pub feeppm: Option<u32>,
3588 #[serde(skip_serializing_if = "Option::is_none")]
3589 pub htlcmax: Option<Amount>,
3590 #[serde(skip_serializing_if = "Option::is_none")]
3591 pub htlcmin: Option<Amount>,
3592 #[serde(skip_serializing_if = "Option::is_none")]
3593 pub ignorefeelimits: Option<bool>,
3594 pub id: String,
3595 }
3596
3597 impl From<SetchannelRequest> for Request {
3598 fn from(r: SetchannelRequest) -> Self {
3599 Request::SetChannel(r)
3600 }
3601 }
3602
3603 impl IntoRequest for SetchannelRequest {
3604 type Response = super::responses::SetchannelResponse;
3605 }
3606
3607 impl TypedRequest for SetchannelRequest {
3608 type Response = super::responses::SetchannelResponse;
3609
3610 fn method(&self) -> &str {
3611 "setchannel"
3612 }
3613 }
3614 #[derive(Clone, Debug, Deserialize, Serialize)]
3615 pub struct SetconfigRequest {
3616 #[serde(skip_serializing_if = "Option::is_none")]
3617 pub transient: Option<bool>,
3618 #[serde(skip_serializing_if = "Option::is_none")]
3619 pub val: Option<String>,
3620 pub config: String,
3621 }
3622
3623 impl From<SetconfigRequest> for Request {
3624 fn from(r: SetconfigRequest) -> Self {
3625 Request::SetConfig(r)
3626 }
3627 }
3628
3629 impl IntoRequest for SetconfigRequest {
3630 type Response = super::responses::SetconfigResponse;
3631 }
3632
3633 impl TypedRequest for SetconfigRequest {
3634 type Response = super::responses::SetconfigResponse;
3635
3636 fn method(&self) -> &str {
3637 "setconfig"
3638 }
3639 }
3640 #[derive(Clone, Debug, Deserialize, Serialize)]
3641 pub struct SetpsbtversionRequest {
3642 pub psbt: String,
3643 pub version: u32,
3644 }
3645
3646 impl From<SetpsbtversionRequest> for Request {
3647 fn from(r: SetpsbtversionRequest) -> Self {
3648 Request::SetPsbtVersion(r)
3649 }
3650 }
3651
3652 impl IntoRequest for SetpsbtversionRequest {
3653 type Response = super::responses::SetpsbtversionResponse;
3654 }
3655
3656 impl TypedRequest for SetpsbtversionRequest {
3657 type Response = super::responses::SetpsbtversionResponse;
3658
3659 fn method(&self) -> &str {
3660 "setpsbtversion"
3661 }
3662 }
3663 #[derive(Clone, Debug, Deserialize, Serialize)]
3664 pub struct SigninvoiceRequest {
3665 pub invstring: String,
3666 }
3667
3668 impl From<SigninvoiceRequest> for Request {
3669 fn from(r: SigninvoiceRequest) -> Self {
3670 Request::SignInvoice(r)
3671 }
3672 }
3673
3674 impl IntoRequest for SigninvoiceRequest {
3675 type Response = super::responses::SigninvoiceResponse;
3676 }
3677
3678 impl TypedRequest for SigninvoiceRequest {
3679 type Response = super::responses::SigninvoiceResponse;
3680
3681 fn method(&self) -> &str {
3682 "signinvoice"
3683 }
3684 }
3685 #[derive(Clone, Debug, Deserialize, Serialize)]
3686 pub struct SignmessageRequest {
3687 pub message: String,
3688 }
3689
3690 impl From<SignmessageRequest> for Request {
3691 fn from(r: SignmessageRequest) -> Self {
3692 Request::SignMessage(r)
3693 }
3694 }
3695
3696 impl IntoRequest for SignmessageRequest {
3697 type Response = super::responses::SignmessageResponse;
3698 }
3699
3700 impl TypedRequest for SignmessageRequest {
3701 type Response = super::responses::SignmessageResponse;
3702
3703 fn method(&self) -> &str {
3704 "signmessage"
3705 }
3706 }
3707 #[derive(Clone, Debug, Deserialize, Serialize)]
3708 pub struct SpliceInitRequest {
3709 #[serde(skip_serializing_if = "Option::is_none")]
3710 pub feerate_per_kw: Option<u32>,
3711 #[serde(skip_serializing_if = "Option::is_none")]
3712 pub force_feerate: Option<bool>,
3713 #[serde(skip_serializing_if = "Option::is_none")]
3714 pub initialpsbt: Option<String>,
3715 pub channel_id: Sha256,
3716 pub relative_amount: i64,
3717 }
3718
3719 impl From<SpliceInitRequest> for Request {
3720 fn from(r: SpliceInitRequest) -> Self {
3721 Request::SpliceInit(r)
3722 }
3723 }
3724
3725 impl IntoRequest for SpliceInitRequest {
3726 type Response = super::responses::SpliceInitResponse;
3727 }
3728
3729 impl TypedRequest for SpliceInitRequest {
3730 type Response = super::responses::SpliceInitResponse;
3731
3732 fn method(&self) -> &str {
3733 "splice_init"
3734 }
3735 }
3736 #[derive(Clone, Debug, Deserialize, Serialize)]
3737 pub struct SpliceSignedRequest {
3738 #[serde(skip_serializing_if = "Option::is_none")]
3739 pub sign_first: Option<bool>,
3740 pub channel_id: Sha256,
3741 pub psbt: String,
3742 }
3743
3744 impl From<SpliceSignedRequest> for Request {
3745 fn from(r: SpliceSignedRequest) -> Self {
3746 Request::SpliceSigned(r)
3747 }
3748 }
3749
3750 impl IntoRequest for SpliceSignedRequest {
3751 type Response = super::responses::SpliceSignedResponse;
3752 }
3753
3754 impl TypedRequest for SpliceSignedRequest {
3755 type Response = super::responses::SpliceSignedResponse;
3756
3757 fn method(&self) -> &str {
3758 "splice_signed"
3759 }
3760 }
3761 #[derive(Clone, Debug, Deserialize, Serialize)]
3762 pub struct SpliceUpdateRequest {
3763 pub channel_id: Sha256,
3764 pub psbt: String,
3765 }
3766
3767 impl From<SpliceUpdateRequest> for Request {
3768 fn from(r: SpliceUpdateRequest) -> Self {
3769 Request::SpliceUpdate(r)
3770 }
3771 }
3772
3773 impl IntoRequest for SpliceUpdateRequest {
3774 type Response = super::responses::SpliceUpdateResponse;
3775 }
3776
3777 impl TypedRequest for SpliceUpdateRequest {
3778 type Response = super::responses::SpliceUpdateResponse;
3779
3780 fn method(&self) -> &str {
3781 "splice_update"
3782 }
3783 }
3784 #[derive(Clone, Debug, Deserialize, Serialize)]
3785 pub struct SpliceinRequest {
3786 pub amount: String,
3787 pub channel: String,
3788 }
3789
3790 impl From<SpliceinRequest> for Request {
3791 fn from(r: SpliceinRequest) -> Self {
3792 Request::SpliceIn(r)
3793 }
3794 }
3795
3796 impl IntoRequest for SpliceinRequest {
3797 type Response = super::responses::SpliceinResponse;
3798 }
3799
3800 impl TypedRequest for SpliceinRequest {
3801 type Response = super::responses::SpliceinResponse;
3802
3803 fn method(&self) -> &str {
3804 "splicein"
3805 }
3806 }
3807 #[derive(Clone, Debug, Deserialize, Serialize)]
3808 pub struct SpliceoutRequest {
3809 #[serde(skip_serializing_if = "Option::is_none")]
3810 pub destination: Option<String>,
3811 #[serde(skip_serializing_if = "Option::is_none")]
3812 pub force_feerate: Option<bool>,
3813 pub amount: String,
3814 pub channel: String,
3815 }
3816
3817 impl From<SpliceoutRequest> for Request {
3818 fn from(r: SpliceoutRequest) -> Self {
3819 Request::SpliceOut(r)
3820 }
3821 }
3822
3823 impl IntoRequest for SpliceoutRequest {
3824 type Response = super::responses::SpliceoutResponse;
3825 }
3826
3827 impl TypedRequest for SpliceoutRequest {
3828 type Response = super::responses::SpliceoutResponse;
3829
3830 fn method(&self) -> &str {
3831 "spliceout"
3832 }
3833 }
3834 #[derive(Clone, Debug, Deserialize, Serialize)]
3835 pub struct DevspliceRequest {
3836 #[serde(rename = "dev-wetrun")]
3837 #[serde(skip_serializing_if = "Option::is_none")]
3838 pub dev_wetrun: Option<bool>,
3839 #[serde(skip_serializing_if = "Option::is_none")]
3840 pub debug_log: Option<bool>,
3841 #[serde(skip_serializing_if = "Option::is_none")]
3842 pub dryrun: Option<bool>,
3843 #[serde(skip_serializing_if = "Option::is_none")]
3844 pub force_feerate: Option<bool>,
3845 pub script_or_json: String,
3846 }
3847
3848 impl From<DevspliceRequest> for Request {
3849 fn from(r: DevspliceRequest) -> Self {
3850 Request::DevSplice(r)
3851 }
3852 }
3853
3854 impl IntoRequest for DevspliceRequest {
3855 type Response = super::responses::DevspliceResponse;
3856 }
3857
3858 impl TypedRequest for DevspliceRequest {
3859 type Response = super::responses::DevspliceResponse;
3860
3861 fn method(&self) -> &str {
3862 "dev-splice"
3863 }
3864 }
3865 #[derive(Clone, Debug, Deserialize, Serialize)]
3866 pub struct UnreserveinputsRequest {
3867 #[serde(skip_serializing_if = "Option::is_none")]
3868 pub reserve: Option<u32>,
3869 pub psbt: String,
3870 }
3871
3872 impl From<UnreserveinputsRequest> for Request {
3873 fn from(r: UnreserveinputsRequest) -> Self {
3874 Request::UnreserveInputs(r)
3875 }
3876 }
3877
3878 impl IntoRequest for UnreserveinputsRequest {
3879 type Response = super::responses::UnreserveinputsResponse;
3880 }
3881
3882 impl TypedRequest for UnreserveinputsRequest {
3883 type Response = super::responses::UnreserveinputsResponse;
3884
3885 fn method(&self) -> &str {
3886 "unreserveinputs"
3887 }
3888 }
3889 #[derive(Clone, Debug, Deserialize, Serialize)]
3890 pub struct UpgradewalletRequest {
3891 #[serde(skip_serializing_if = "Option::is_none")]
3892 pub feerate: Option<Feerate>,
3893 #[serde(skip_serializing_if = "Option::is_none")]
3894 pub reservedok: Option<bool>,
3895 }
3896
3897 impl From<UpgradewalletRequest> for Request {
3898 fn from(r: UpgradewalletRequest) -> Self {
3899 Request::UpgradeWallet(r)
3900 }
3901 }
3902
3903 impl IntoRequest for UpgradewalletRequest {
3904 type Response = super::responses::UpgradewalletResponse;
3905 }
3906
3907 impl TypedRequest for UpgradewalletRequest {
3908 type Response = super::responses::UpgradewalletResponse;
3909
3910 fn method(&self) -> &str {
3911 "upgradewallet"
3912 }
3913 }
3914 #[derive(Clone, Debug, Deserialize, Serialize)]
3915 pub struct WaitblockheightRequest {
3916 #[serde(skip_serializing_if = "Option::is_none")]
3917 pub timeout: Option<u32>,
3918 pub blockheight: u32,
3919 }
3920
3921 impl From<WaitblockheightRequest> for Request {
3922 fn from(r: WaitblockheightRequest) -> Self {
3923 Request::WaitBlockHeight(r)
3924 }
3925 }
3926
3927 impl IntoRequest for WaitblockheightRequest {
3928 type Response = super::responses::WaitblockheightResponse;
3929 }
3930
3931 impl TypedRequest for WaitblockheightRequest {
3932 type Response = super::responses::WaitblockheightResponse;
3933
3934 fn method(&self) -> &str {
3935 "waitblockheight"
3936 }
3937 }
3938 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
3940 #[allow(non_camel_case_types)]
3941 pub enum WaitIndexname {
3942 #[serde(rename = "created")]
3943 CREATED = 0,
3944 #[serde(rename = "updated")]
3945 UPDATED = 1,
3946 #[serde(rename = "deleted")]
3947 DELETED = 2,
3948 }
3949
3950 impl TryFrom<i32> for WaitIndexname {
3951 type Error = anyhow::Error;
3952 fn try_from(c: i32) -> Result<WaitIndexname, anyhow::Error> {
3953 match c {
3954 0 => Ok(WaitIndexname::CREATED),
3955 1 => Ok(WaitIndexname::UPDATED),
3956 2 => Ok(WaitIndexname::DELETED),
3957 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitIndexname", o)),
3958 }
3959 }
3960 }
3961
3962 impl ToString for WaitIndexname {
3963 fn to_string(&self) -> String {
3964 match self {
3965 WaitIndexname::CREATED => "CREATED",
3966 WaitIndexname::UPDATED => "UPDATED",
3967 WaitIndexname::DELETED => "DELETED",
3968 }.to_string()
3969 }
3970 }
3971
3972 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
3974 #[allow(non_camel_case_types)]
3975 pub enum WaitSubsystem {
3976 #[serde(rename = "invoices")]
3977 INVOICES = 0,
3978 #[serde(rename = "forwards")]
3979 FORWARDS = 1,
3980 #[serde(rename = "sendpays")]
3981 SENDPAYS = 2,
3982 #[serde(rename = "htlcs")]
3983 HTLCS = 3,
3984 #[serde(rename = "chainmoves")]
3985 CHAINMOVES = 4,
3986 #[serde(rename = "channelmoves")]
3987 CHANNELMOVES = 5,
3988 #[serde(rename = "networkevents")]
3989 NETWORKEVENTS = 6,
3990 }
3991
3992 impl TryFrom<i32> for WaitSubsystem {
3993 type Error = anyhow::Error;
3994 fn try_from(c: i32) -> Result<WaitSubsystem, anyhow::Error> {
3995 match c {
3996 0 => Ok(WaitSubsystem::INVOICES),
3997 1 => Ok(WaitSubsystem::FORWARDS),
3998 2 => Ok(WaitSubsystem::SENDPAYS),
3999 3 => Ok(WaitSubsystem::HTLCS),
4000 4 => Ok(WaitSubsystem::CHAINMOVES),
4001 5 => Ok(WaitSubsystem::CHANNELMOVES),
4002 6 => Ok(WaitSubsystem::NETWORKEVENTS),
4003 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitSubsystem", o)),
4004 }
4005 }
4006 }
4007
4008 impl ToString for WaitSubsystem {
4009 fn to_string(&self) -> String {
4010 match self {
4011 WaitSubsystem::INVOICES => "INVOICES",
4012 WaitSubsystem::FORWARDS => "FORWARDS",
4013 WaitSubsystem::SENDPAYS => "SENDPAYS",
4014 WaitSubsystem::HTLCS => "HTLCS",
4015 WaitSubsystem::CHAINMOVES => "CHAINMOVES",
4016 WaitSubsystem::CHANNELMOVES => "CHANNELMOVES",
4017 WaitSubsystem::NETWORKEVENTS => "NETWORKEVENTS",
4018 }.to_string()
4019 }
4020 }
4021
4022 #[derive(Clone, Debug, Deserialize, Serialize)]
4023 pub struct WaitRequest {
4024 pub indexname: WaitIndexname,
4026 pub subsystem: WaitSubsystem,
4028 pub nextvalue: u64,
4029 }
4030
4031 impl From<WaitRequest> for Request {
4032 fn from(r: WaitRequest) -> Self {
4033 Request::Wait(r)
4034 }
4035 }
4036
4037 impl IntoRequest for WaitRequest {
4038 type Response = super::responses::WaitResponse;
4039 }
4040
4041 impl TypedRequest for WaitRequest {
4042 type Response = super::responses::WaitResponse;
4043
4044 fn method(&self) -> &str {
4045 "wait"
4046 }
4047 }
4048 #[derive(Clone, Debug, Deserialize, Serialize)]
4049 pub struct ListconfigsRequest {
4050 #[serde(skip_serializing_if = "Option::is_none")]
4051 pub config: Option<String>,
4052 }
4053
4054 impl From<ListconfigsRequest> for Request {
4055 fn from(r: ListconfigsRequest) -> Self {
4056 Request::ListConfigs(r)
4057 }
4058 }
4059
4060 impl IntoRequest for ListconfigsRequest {
4061 type Response = super::responses::ListconfigsResponse;
4062 }
4063
4064 impl TypedRequest for ListconfigsRequest {
4065 type Response = super::responses::ListconfigsResponse;
4066
4067 fn method(&self) -> &str {
4068 "listconfigs"
4069 }
4070 }
4071 #[derive(Clone, Debug, Deserialize, Serialize)]
4072 pub struct StopRequest {
4073 }
4074
4075 impl From<StopRequest> for Request {
4076 fn from(r: StopRequest) -> Self {
4077 Request::Stop(r)
4078 }
4079 }
4080
4081 impl IntoRequest for StopRequest {
4082 type Response = super::responses::StopResponse;
4083 }
4084
4085 impl TypedRequest for StopRequest {
4086 type Response = super::responses::StopResponse;
4087
4088 fn method(&self) -> &str {
4089 "stop"
4090 }
4091 }
4092 #[derive(Clone, Debug, Deserialize, Serialize)]
4093 pub struct HelpRequest {
4094 #[serde(skip_serializing_if = "Option::is_none")]
4095 pub command: Option<String>,
4096 }
4097
4098 impl From<HelpRequest> for Request {
4099 fn from(r: HelpRequest) -> Self {
4100 Request::Help(r)
4101 }
4102 }
4103
4104 impl IntoRequest for HelpRequest {
4105 type Response = super::responses::HelpResponse;
4106 }
4107
4108 impl TypedRequest for HelpRequest {
4109 type Response = super::responses::HelpResponse;
4110
4111 fn method(&self) -> &str {
4112 "help"
4113 }
4114 }
4115 #[derive(Clone, Debug, Deserialize, Serialize)]
4116 pub struct PreapprovekeysendRequest {
4117 pub amount_msat: Amount,
4118 pub destination: PublicKey,
4119 pub payment_hash: String,
4120 }
4121
4122 impl From<PreapprovekeysendRequest> for Request {
4123 fn from(r: PreapprovekeysendRequest) -> Self {
4124 Request::PreApproveKeysend(r)
4125 }
4126 }
4127
4128 impl IntoRequest for PreapprovekeysendRequest {
4129 type Response = super::responses::PreapprovekeysendResponse;
4130 }
4131
4132 impl TypedRequest for PreapprovekeysendRequest {
4133 type Response = super::responses::PreapprovekeysendResponse;
4134
4135 fn method(&self) -> &str {
4136 "preapprovekeysend"
4137 }
4138 }
4139 #[derive(Clone, Debug, Deserialize, Serialize)]
4140 pub struct PreapproveinvoiceRequest {
4141 pub bolt11: String,
4142 }
4143
4144 impl From<PreapproveinvoiceRequest> for Request {
4145 fn from(r: PreapproveinvoiceRequest) -> Self {
4146 Request::PreApproveInvoice(r)
4147 }
4148 }
4149
4150 impl IntoRequest for PreapproveinvoiceRequest {
4151 type Response = super::responses::PreapproveinvoiceResponse;
4152 }
4153
4154 impl TypedRequest for PreapproveinvoiceRequest {
4155 type Response = super::responses::PreapproveinvoiceResponse;
4156
4157 fn method(&self) -> &str {
4158 "preapproveinvoice"
4159 }
4160 }
4161 #[derive(Clone, Debug, Deserialize, Serialize)]
4162 pub struct StaticbackupRequest {
4163 }
4164
4165 impl From<StaticbackupRequest> for Request {
4166 fn from(r: StaticbackupRequest) -> Self {
4167 Request::StaticBackup(r)
4168 }
4169 }
4170
4171 impl IntoRequest for StaticbackupRequest {
4172 type Response = super::responses::StaticbackupResponse;
4173 }
4174
4175 impl TypedRequest for StaticbackupRequest {
4176 type Response = super::responses::StaticbackupResponse;
4177
4178 fn method(&self) -> &str {
4179 "staticbackup"
4180 }
4181 }
4182 #[derive(Clone, Debug, Deserialize, Serialize)]
4183 pub struct BkprchannelsapyRequest {
4184 #[serde(skip_serializing_if = "Option::is_none")]
4185 pub end_time: Option<u64>,
4186 #[serde(skip_serializing_if = "Option::is_none")]
4187 pub start_time: Option<u64>,
4188 }
4189
4190 impl From<BkprchannelsapyRequest> for Request {
4191 fn from(r: BkprchannelsapyRequest) -> Self {
4192 Request::BkprChannelsApy(r)
4193 }
4194 }
4195
4196 impl IntoRequest for BkprchannelsapyRequest {
4197 type Response = super::responses::BkprchannelsapyResponse;
4198 }
4199
4200 impl TypedRequest for BkprchannelsapyRequest {
4201 type Response = super::responses::BkprchannelsapyResponse;
4202
4203 fn method(&self) -> &str {
4204 "bkpr-channelsapy"
4205 }
4206 }
4207 #[derive(Clone, Debug, Deserialize, Serialize)]
4208 pub struct BkprdumpincomecsvRequest {
4209 #[serde(skip_serializing_if = "Option::is_none")]
4210 pub consolidate_fees: Option<bool>,
4211 #[serde(skip_serializing_if = "Option::is_none")]
4212 pub csv_file: Option<String>,
4213 #[serde(skip_serializing_if = "Option::is_none")]
4214 pub end_time: Option<u64>,
4215 #[serde(skip_serializing_if = "Option::is_none")]
4216 pub start_time: Option<u64>,
4217 pub csv_format: String,
4218 }
4219
4220 impl From<BkprdumpincomecsvRequest> for Request {
4221 fn from(r: BkprdumpincomecsvRequest) -> Self {
4222 Request::BkprDumpIncomeCsv(r)
4223 }
4224 }
4225
4226 impl IntoRequest for BkprdumpincomecsvRequest {
4227 type Response = super::responses::BkprdumpincomecsvResponse;
4228 }
4229
4230 impl TypedRequest for BkprdumpincomecsvRequest {
4231 type Response = super::responses::BkprdumpincomecsvResponse;
4232
4233 fn method(&self) -> &str {
4234 "bkpr-dumpincomecsv"
4235 }
4236 }
4237 #[derive(Clone, Debug, Deserialize, Serialize)]
4238 pub struct BkprinspectRequest {
4239 pub account: String,
4240 }
4241
4242 impl From<BkprinspectRequest> for Request {
4243 fn from(r: BkprinspectRequest) -> Self {
4244 Request::BkprInspect(r)
4245 }
4246 }
4247
4248 impl IntoRequest for BkprinspectRequest {
4249 type Response = super::responses::BkprinspectResponse;
4250 }
4251
4252 impl TypedRequest for BkprinspectRequest {
4253 type Response = super::responses::BkprinspectResponse;
4254
4255 fn method(&self) -> &str {
4256 "bkpr-inspect"
4257 }
4258 }
4259 #[derive(Clone, Debug, Deserialize, Serialize)]
4260 pub struct BkprlistaccounteventsRequest {
4261 #[serde(skip_serializing_if = "Option::is_none")]
4262 pub account: Option<String>,
4263 #[serde(skip_serializing_if = "Option::is_none")]
4264 pub payment_id: Option<String>,
4265 }
4266
4267 impl From<BkprlistaccounteventsRequest> for Request {
4268 fn from(r: BkprlistaccounteventsRequest) -> Self {
4269 Request::BkprListAccountEvents(r)
4270 }
4271 }
4272
4273 impl IntoRequest for BkprlistaccounteventsRequest {
4274 type Response = super::responses::BkprlistaccounteventsResponse;
4275 }
4276
4277 impl TypedRequest for BkprlistaccounteventsRequest {
4278 type Response = super::responses::BkprlistaccounteventsResponse;
4279
4280 fn method(&self) -> &str {
4281 "bkpr-listaccountevents"
4282 }
4283 }
4284 #[derive(Clone, Debug, Deserialize, Serialize)]
4285 pub struct BkprlistbalancesRequest {
4286 }
4287
4288 impl From<BkprlistbalancesRequest> for Request {
4289 fn from(r: BkprlistbalancesRequest) -> Self {
4290 Request::BkprListBalances(r)
4291 }
4292 }
4293
4294 impl IntoRequest for BkprlistbalancesRequest {
4295 type Response = super::responses::BkprlistbalancesResponse;
4296 }
4297
4298 impl TypedRequest for BkprlistbalancesRequest {
4299 type Response = super::responses::BkprlistbalancesResponse;
4300
4301 fn method(&self) -> &str {
4302 "bkpr-listbalances"
4303 }
4304 }
4305 #[derive(Clone, Debug, Deserialize, Serialize)]
4306 pub struct BkprlistincomeRequest {
4307 #[serde(skip_serializing_if = "Option::is_none")]
4308 pub consolidate_fees: Option<bool>,
4309 #[serde(skip_serializing_if = "Option::is_none")]
4310 pub end_time: Option<u32>,
4311 #[serde(skip_serializing_if = "Option::is_none")]
4312 pub start_time: Option<u32>,
4313 }
4314
4315 impl From<BkprlistincomeRequest> for Request {
4316 fn from(r: BkprlistincomeRequest) -> Self {
4317 Request::BkprListIncome(r)
4318 }
4319 }
4320
4321 impl IntoRequest for BkprlistincomeRequest {
4322 type Response = super::responses::BkprlistincomeResponse;
4323 }
4324
4325 impl TypedRequest for BkprlistincomeRequest {
4326 type Response = super::responses::BkprlistincomeResponse;
4327
4328 fn method(&self) -> &str {
4329 "bkpr-listincome"
4330 }
4331 }
4332 #[derive(Clone, Debug, Deserialize, Serialize)]
4333 pub struct BkpreditdescriptionbypaymentidRequest {
4334 pub description: String,
4335 pub payment_id: String,
4336 }
4337
4338 impl From<BkpreditdescriptionbypaymentidRequest> for Request {
4339 fn from(r: BkpreditdescriptionbypaymentidRequest) -> Self {
4340 Request::BkprEditDescriptionByPaymentId(r)
4341 }
4342 }
4343
4344 impl IntoRequest for BkpreditdescriptionbypaymentidRequest {
4345 type Response = super::responses::BkpreditdescriptionbypaymentidResponse;
4346 }
4347
4348 impl TypedRequest for BkpreditdescriptionbypaymentidRequest {
4349 type Response = super::responses::BkpreditdescriptionbypaymentidResponse;
4350
4351 fn method(&self) -> &str {
4352 "bkpr-editdescriptionbypaymentid"
4353 }
4354 }
4355 #[derive(Clone, Debug, Deserialize, Serialize)]
4356 pub struct BkpreditdescriptionbyoutpointRequest {
4357 pub description: String,
4358 pub outpoint: String,
4359 }
4360
4361 impl From<BkpreditdescriptionbyoutpointRequest> for Request {
4362 fn from(r: BkpreditdescriptionbyoutpointRequest) -> Self {
4363 Request::BkprEditDescriptionByOutpoint(r)
4364 }
4365 }
4366
4367 impl IntoRequest for BkpreditdescriptionbyoutpointRequest {
4368 type Response = super::responses::BkpreditdescriptionbyoutpointResponse;
4369 }
4370
4371 impl TypedRequest for BkpreditdescriptionbyoutpointRequest {
4372 type Response = super::responses::BkpreditdescriptionbyoutpointResponse;
4373
4374 fn method(&self) -> &str {
4375 "bkpr-editdescriptionbyoutpoint"
4376 }
4377 }
4378 #[derive(Clone, Debug, Deserialize, Serialize)]
4379 pub struct BkprreportRequest {
4380 #[serde(skip_serializing_if = "Option::is_none")]
4381 pub end_time: Option<u32>,
4382 #[serde(skip_serializing_if = "Option::is_none")]
4383 pub escape: Option<String>,
4384 #[serde(skip_serializing_if = "Option::is_none")]
4385 pub format: Option<String>,
4386 #[serde(skip_serializing_if = "Option::is_none")]
4387 pub start_time: Option<u32>,
4388 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
4389 pub headers: Option<Vec<String>>,
4390 }
4391
4392 impl From<BkprreportRequest> for Request {
4393 fn from(r: BkprreportRequest) -> Self {
4394 Request::BkprReport(r)
4395 }
4396 }
4397
4398 impl IntoRequest for BkprreportRequest {
4399 type Response = super::responses::BkprreportResponse;
4400 }
4401
4402 impl TypedRequest for BkprreportRequest {
4403 type Response = super::responses::BkprreportResponse;
4404
4405 fn method(&self) -> &str {
4406 "bkpr-report"
4407 }
4408 }
4409 #[derive(Clone, Debug, Deserialize, Serialize)]
4410 pub struct BlacklistruneRequest {
4411 #[serde(skip_serializing_if = "Option::is_none")]
4412 pub end: Option<u64>,
4413 #[serde(skip_serializing_if = "Option::is_none")]
4414 pub relist: Option<bool>,
4415 #[serde(skip_serializing_if = "Option::is_none")]
4416 pub start: Option<u64>,
4417 }
4418
4419 impl From<BlacklistruneRequest> for Request {
4420 fn from(r: BlacklistruneRequest) -> Self {
4421 Request::BlacklistRune(r)
4422 }
4423 }
4424
4425 impl IntoRequest for BlacklistruneRequest {
4426 type Response = super::responses::BlacklistruneResponse;
4427 }
4428
4429 impl TypedRequest for BlacklistruneRequest {
4430 type Response = super::responses::BlacklistruneResponse;
4431
4432 fn method(&self) -> &str {
4433 "blacklistrune"
4434 }
4435 }
4436 #[derive(Clone, Debug, Deserialize, Serialize)]
4437 pub struct CheckruneRequest {
4438 #[serde(skip_serializing_if = "Option::is_none")]
4439 pub method: Option<String>,
4440 #[serde(skip_serializing_if = "Option::is_none")]
4441 pub nodeid: Option<String>,
4442 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
4443 pub params: Option<Vec<String>>,
4444 pub rune: String,
4445 }
4446
4447 impl From<CheckruneRequest> for Request {
4448 fn from(r: CheckruneRequest) -> Self {
4449 Request::CheckRune(r)
4450 }
4451 }
4452
4453 impl IntoRequest for CheckruneRequest {
4454 type Response = super::responses::CheckruneResponse;
4455 }
4456
4457 impl TypedRequest for CheckruneRequest {
4458 type Response = super::responses::CheckruneResponse;
4459
4460 fn method(&self) -> &str {
4461 "checkrune"
4462 }
4463 }
4464 #[derive(Clone, Debug, Deserialize, Serialize)]
4465 pub struct CreateruneRequest {
4466 #[serde(skip_serializing_if = "Option::is_none")]
4467 pub rune: Option<String>,
4468 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
4469 pub restrictions: Option<Vec<String>>,
4470 }
4471
4472 impl From<CreateruneRequest> for Request {
4473 fn from(r: CreateruneRequest) -> Self {
4474 Request::CreateRune(r)
4475 }
4476 }
4477
4478 impl IntoRequest for CreateruneRequest {
4479 type Response = super::responses::CreateruneResponse;
4480 }
4481
4482 impl TypedRequest for CreateruneRequest {
4483 type Response = super::responses::CreateruneResponse;
4484
4485 fn method(&self) -> &str {
4486 "createrune"
4487 }
4488 }
4489 #[derive(Clone, Debug, Deserialize, Serialize)]
4490 pub struct ShowrunesRequest {
4491 #[serde(skip_serializing_if = "Option::is_none")]
4492 pub rune: Option<String>,
4493 }
4494
4495 impl From<ShowrunesRequest> for Request {
4496 fn from(r: ShowrunesRequest) -> Self {
4497 Request::ShowRunes(r)
4498 }
4499 }
4500
4501 impl IntoRequest for ShowrunesRequest {
4502 type Response = super::responses::ShowrunesResponse;
4503 }
4504
4505 impl TypedRequest for ShowrunesRequest {
4506 type Response = super::responses::ShowrunesResponse;
4507
4508 fn method(&self) -> &str {
4509 "showrunes"
4510 }
4511 }
4512 #[derive(Clone, Debug, Deserialize, Serialize)]
4513 pub struct AskreneunreservePath {
4514 #[serde(skip_serializing_if = "Option::is_none")]
4515 pub layer: Option<String>,
4516 pub amount_msat: Amount,
4517 pub short_channel_id_dir: ShortChannelIdDir,
4518 }
4519
4520 #[derive(Clone, Debug, Deserialize, Serialize)]
4521 pub struct AskreneunreserveRequest {
4522 #[serde(skip_serializing_if = "Option::is_none")]
4523 pub dev_remove_all: Option<bool>,
4524 pub path: Vec<AskreneunreservePath>,
4525 }
4526
4527 impl From<AskreneunreserveRequest> for Request {
4528 fn from(r: AskreneunreserveRequest) -> Self {
4529 Request::AskReneUnreserve(r)
4530 }
4531 }
4532
4533 impl IntoRequest for AskreneunreserveRequest {
4534 type Response = super::responses::AskreneunreserveResponse;
4535 }
4536
4537 impl TypedRequest for AskreneunreserveRequest {
4538 type Response = super::responses::AskreneunreserveResponse;
4539
4540 fn method(&self) -> &str {
4541 "askrene-unreserve"
4542 }
4543 }
4544 #[derive(Clone, Debug, Deserialize, Serialize)]
4545 pub struct AskrenelistlayersRequest {
4546 #[serde(skip_serializing_if = "Option::is_none")]
4547 pub layer: Option<String>,
4548 }
4549
4550 impl From<AskrenelistlayersRequest> for Request {
4551 fn from(r: AskrenelistlayersRequest) -> Self {
4552 Request::AskReneListLayers(r)
4553 }
4554 }
4555
4556 impl IntoRequest for AskrenelistlayersRequest {
4557 type Response = super::responses::AskrenelistlayersResponse;
4558 }
4559
4560 impl TypedRequest for AskrenelistlayersRequest {
4561 type Response = super::responses::AskrenelistlayersResponse;
4562
4563 fn method(&self) -> &str {
4564 "askrene-listlayers"
4565 }
4566 }
4567 #[derive(Clone, Debug, Deserialize, Serialize)]
4568 pub struct AskrenecreatelayerRequest {
4569 #[serde(skip_serializing_if = "Option::is_none")]
4570 pub persistent: Option<bool>,
4571 pub layer: String,
4572 }
4573
4574 impl From<AskrenecreatelayerRequest> for Request {
4575 fn from(r: AskrenecreatelayerRequest) -> Self {
4576 Request::AskReneCreateLayer(r)
4577 }
4578 }
4579
4580 impl IntoRequest for AskrenecreatelayerRequest {
4581 type Response = super::responses::AskrenecreatelayerResponse;
4582 }
4583
4584 impl TypedRequest for AskrenecreatelayerRequest {
4585 type Response = super::responses::AskrenecreatelayerResponse;
4586
4587 fn method(&self) -> &str {
4588 "askrene-create-layer"
4589 }
4590 }
4591 #[derive(Clone, Debug, Deserialize, Serialize)]
4592 pub struct AskreneremovelayerRequest {
4593 pub layer: String,
4594 }
4595
4596 impl From<AskreneremovelayerRequest> for Request {
4597 fn from(r: AskreneremovelayerRequest) -> Self {
4598 Request::AskReneRemoveLayer(r)
4599 }
4600 }
4601
4602 impl IntoRequest for AskreneremovelayerRequest {
4603 type Response = super::responses::AskreneremovelayerResponse;
4604 }
4605
4606 impl TypedRequest for AskreneremovelayerRequest {
4607 type Response = super::responses::AskreneremovelayerResponse;
4608
4609 fn method(&self) -> &str {
4610 "askrene-remove-layer"
4611 }
4612 }
4613 #[derive(Clone, Debug, Deserialize, Serialize)]
4614 pub struct AskreneremovechannelupdateRequest {
4615 pub layer: String,
4616 pub short_channel_id_dir: ShortChannelIdDir,
4617 }
4618
4619 impl From<AskreneremovechannelupdateRequest> for Request {
4620 fn from(r: AskreneremovechannelupdateRequest) -> Self {
4621 Request::AskReneRemoveChannelUpdate(r)
4622 }
4623 }
4624
4625 impl IntoRequest for AskreneremovechannelupdateRequest {
4626 type Response = super::responses::AskreneremovechannelupdateResponse;
4627 }
4628
4629 impl TypedRequest for AskreneremovechannelupdateRequest {
4630 type Response = super::responses::AskreneremovechannelupdateResponse;
4631
4632 fn method(&self) -> &str {
4633 "askrene-remove-channel-update"
4634 }
4635 }
4636 #[derive(Clone, Debug, Deserialize, Serialize)]
4637 pub struct AskrenereservePath {
4638 #[serde(skip_serializing_if = "Option::is_none")]
4639 pub layer: Option<String>,
4640 pub amount_msat: Amount,
4641 pub short_channel_id_dir: ShortChannelIdDir,
4642 }
4643
4644 #[derive(Clone, Debug, Deserialize, Serialize)]
4645 pub struct AskrenereserveRequest {
4646 pub path: Vec<AskrenereservePath>,
4647 }
4648
4649 impl From<AskrenereserveRequest> for Request {
4650 fn from(r: AskrenereserveRequest) -> Self {
4651 Request::AskReneReserve(r)
4652 }
4653 }
4654
4655 impl IntoRequest for AskrenereserveRequest {
4656 type Response = super::responses::AskrenereserveResponse;
4657 }
4658
4659 impl TypedRequest for AskrenereserveRequest {
4660 type Response = super::responses::AskrenereserveResponse;
4661
4662 fn method(&self) -> &str {
4663 "askrene-reserve"
4664 }
4665 }
4666 #[derive(Clone, Debug, Deserialize, Serialize)]
4667 pub struct AskreneageRequest {
4668 pub cutoff: u64,
4669 pub layer: String,
4670 }
4671
4672 impl From<AskreneageRequest> for Request {
4673 fn from(r: AskreneageRequest) -> Self {
4674 Request::AskReneAge(r)
4675 }
4676 }
4677
4678 impl IntoRequest for AskreneageRequest {
4679 type Response = super::responses::AskreneageResponse;
4680 }
4681
4682 impl TypedRequest for AskreneageRequest {
4683 type Response = super::responses::AskreneageResponse;
4684
4685 fn method(&self) -> &str {
4686 "askrene-age"
4687 }
4688 }
4689 #[derive(Clone, Debug, Deserialize, Serialize)]
4690 pub struct GetroutesRequest {
4691 #[serde(skip_serializing_if = "Option::is_none")]
4692 pub maxdelay: Option<u32>,
4693 #[serde(skip_serializing_if = "Option::is_none")]
4694 pub maxparts: Option<u32>,
4695 pub amount_msat: Amount,
4696 pub destination: PublicKey,
4697 pub final_cltv: u32,
4698 pub layers: Vec<String>,
4699 pub maxfee_msat: Amount,
4700 pub source: PublicKey,
4701 }
4702
4703 impl From<GetroutesRequest> for Request {
4704 fn from(r: GetroutesRequest) -> Self {
4705 Request::GetRoutes(r)
4706 }
4707 }
4708
4709 impl IntoRequest for GetroutesRequest {
4710 type Response = super::responses::GetroutesResponse;
4711 }
4712
4713 impl TypedRequest for GetroutesRequest {
4714 type Response = super::responses::GetroutesResponse;
4715
4716 fn method(&self) -> &str {
4717 "getroutes"
4718 }
4719 }
4720 #[derive(Clone, Debug, Deserialize, Serialize)]
4721 pub struct AskrenedisablenodeRequest {
4722 pub layer: String,
4723 pub node: PublicKey,
4724 }
4725
4726 impl From<AskrenedisablenodeRequest> for Request {
4727 fn from(r: AskrenedisablenodeRequest) -> Self {
4728 Request::AskReneDisableNode(r)
4729 }
4730 }
4731
4732 impl IntoRequest for AskrenedisablenodeRequest {
4733 type Response = super::responses::AskrenedisablenodeResponse;
4734 }
4735
4736 impl TypedRequest for AskrenedisablenodeRequest {
4737 type Response = super::responses::AskrenedisablenodeResponse;
4738
4739 fn method(&self) -> &str {
4740 "askrene-disable-node"
4741 }
4742 }
4743 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
4745 #[allow(non_camel_case_types)]
4746 pub enum AskreneinformchannelInform {
4747 #[serde(rename = "constrained")]
4748 CONSTRAINED = 0,
4749 #[serde(rename = "unconstrained")]
4750 UNCONSTRAINED = 1,
4751 #[serde(rename = "succeeded")]
4752 SUCCEEDED = 2,
4753 }
4754
4755 impl TryFrom<i32> for AskreneinformchannelInform {
4756 type Error = anyhow::Error;
4757 fn try_from(c: i32) -> Result<AskreneinformchannelInform, anyhow::Error> {
4758 match c {
4759 0 => Ok(AskreneinformchannelInform::CONSTRAINED),
4760 1 => Ok(AskreneinformchannelInform::UNCONSTRAINED),
4761 2 => Ok(AskreneinformchannelInform::SUCCEEDED),
4762 o => Err(anyhow::anyhow!("Unknown variant {} for enum AskreneinformchannelInform", o)),
4763 }
4764 }
4765 }
4766
4767 impl ToString for AskreneinformchannelInform {
4768 fn to_string(&self) -> String {
4769 match self {
4770 AskreneinformchannelInform::CONSTRAINED => "CONSTRAINED",
4771 AskreneinformchannelInform::UNCONSTRAINED => "UNCONSTRAINED",
4772 AskreneinformchannelInform::SUCCEEDED => "SUCCEEDED",
4773 }.to_string()
4774 }
4775 }
4776
4777 #[derive(Clone, Debug, Deserialize, Serialize)]
4778 pub struct AskreneinformchannelRequest {
4779 pub inform: AskreneinformchannelInform,
4781 pub amount_msat: Amount,
4782 pub layer: String,
4783 pub short_channel_id_dir: ShortChannelIdDir,
4784 }
4785
4786 impl From<AskreneinformchannelRequest> for Request {
4787 fn from(r: AskreneinformchannelRequest) -> Self {
4788 Request::AskReneInformChannel(r)
4789 }
4790 }
4791
4792 impl IntoRequest for AskreneinformchannelRequest {
4793 type Response = super::responses::AskreneinformchannelResponse;
4794 }
4795
4796 impl TypedRequest for AskreneinformchannelRequest {
4797 type Response = super::responses::AskreneinformchannelResponse;
4798
4799 fn method(&self) -> &str {
4800 "askrene-inform-channel"
4801 }
4802 }
4803 #[derive(Clone, Debug, Deserialize, Serialize)]
4804 pub struct AskrenecreatechannelRequest {
4805 pub capacity_msat: Amount,
4806 pub destination: PublicKey,
4807 pub layer: String,
4808 pub short_channel_id: ShortChannelId,
4809 pub source: PublicKey,
4810 }
4811
4812 impl From<AskrenecreatechannelRequest> for Request {
4813 fn from(r: AskrenecreatechannelRequest) -> Self {
4814 Request::AskReneCreateChannel(r)
4815 }
4816 }
4817
4818 impl IntoRequest for AskrenecreatechannelRequest {
4819 type Response = super::responses::AskrenecreatechannelResponse;
4820 }
4821
4822 impl TypedRequest for AskrenecreatechannelRequest {
4823 type Response = super::responses::AskrenecreatechannelResponse;
4824
4825 fn method(&self) -> &str {
4826 "askrene-create-channel"
4827 }
4828 }
4829 #[derive(Clone, Debug, Deserialize, Serialize)]
4830 pub struct AskreneupdatechannelRequest {
4831 #[serde(skip_serializing_if = "Option::is_none")]
4832 pub cltv_expiry_delta: Option<u16>,
4833 #[serde(skip_serializing_if = "Option::is_none")]
4834 pub enabled: Option<bool>,
4835 #[serde(skip_serializing_if = "Option::is_none")]
4836 pub fee_base_msat: Option<Amount>,
4837 #[serde(skip_serializing_if = "Option::is_none")]
4838 pub fee_proportional_millionths: Option<u32>,
4839 #[serde(skip_serializing_if = "Option::is_none")]
4840 pub htlc_maximum_msat: Option<Amount>,
4841 #[serde(skip_serializing_if = "Option::is_none")]
4842 pub htlc_minimum_msat: Option<Amount>,
4843 pub layer: String,
4844 pub short_channel_id_dir: ShortChannelIdDir,
4845 }
4846
4847 impl From<AskreneupdatechannelRequest> for Request {
4848 fn from(r: AskreneupdatechannelRequest) -> Self {
4849 Request::AskReneUpdateChannel(r)
4850 }
4851 }
4852
4853 impl IntoRequest for AskreneupdatechannelRequest {
4854 type Response = super::responses::AskreneupdatechannelResponse;
4855 }
4856
4857 impl TypedRequest for AskreneupdatechannelRequest {
4858 type Response = super::responses::AskreneupdatechannelResponse;
4859
4860 fn method(&self) -> &str {
4861 "askrene-update-channel"
4862 }
4863 }
4864 #[derive(Clone, Debug, Deserialize, Serialize)]
4865 pub struct AskrenebiaschannelRequest {
4866 #[serde(skip_serializing_if = "Option::is_none")]
4867 pub description: Option<String>,
4868 #[serde(skip_serializing_if = "Option::is_none")]
4869 pub relative: Option<bool>,
4870 pub bias: i64,
4871 pub layer: String,
4872 pub short_channel_id_dir: ShortChannelIdDir,
4873 }
4874
4875 impl From<AskrenebiaschannelRequest> for Request {
4876 fn from(r: AskrenebiaschannelRequest) -> Self {
4877 Request::AskReneBiasChannel(r)
4878 }
4879 }
4880
4881 impl IntoRequest for AskrenebiaschannelRequest {
4882 type Response = super::responses::AskrenebiaschannelResponse;
4883 }
4884
4885 impl TypedRequest for AskrenebiaschannelRequest {
4886 type Response = super::responses::AskrenebiaschannelResponse;
4887
4888 fn method(&self) -> &str {
4889 "askrene-bias-channel"
4890 }
4891 }
4892 #[derive(Clone, Debug, Deserialize, Serialize)]
4893 pub struct AskrenebiasnodeRequest {
4894 #[serde(skip_serializing_if = "Option::is_none")]
4895 pub description: Option<String>,
4896 #[serde(skip_serializing_if = "Option::is_none")]
4897 pub relative: Option<bool>,
4898 pub bias: i64,
4899 pub direction: String,
4900 pub layer: String,
4901 pub node: PublicKey,
4902 }
4903
4904 impl From<AskrenebiasnodeRequest> for Request {
4905 fn from(r: AskrenebiasnodeRequest) -> Self {
4906 Request::AskreneBiasNode(r)
4907 }
4908 }
4909
4910 impl IntoRequest for AskrenebiasnodeRequest {
4911 type Response = super::responses::AskrenebiasnodeResponse;
4912 }
4913
4914 impl TypedRequest for AskrenebiasnodeRequest {
4915 type Response = super::responses::AskrenebiasnodeResponse;
4916
4917 fn method(&self) -> &str {
4918 "askrene-bias-node"
4919 }
4920 }
4921 #[derive(Clone, Debug, Deserialize, Serialize)]
4922 pub struct AskrenelistreservationsRequest {
4923 }
4924
4925 impl From<AskrenelistreservationsRequest> for Request {
4926 fn from(r: AskrenelistreservationsRequest) -> Self {
4927 Request::AskReneListReservations(r)
4928 }
4929 }
4930
4931 impl IntoRequest for AskrenelistreservationsRequest {
4932 type Response = super::responses::AskrenelistreservationsResponse;
4933 }
4934
4935 impl TypedRequest for AskrenelistreservationsRequest {
4936 type Response = super::responses::AskrenelistreservationsResponse;
4937
4938 fn method(&self) -> &str {
4939 "askrene-listreservations"
4940 }
4941 }
4942 #[derive(Clone, Debug, Deserialize, Serialize)]
4943 pub struct InjectpaymentonionRequest {
4944 #[serde(skip_serializing_if = "Option::is_none")]
4945 pub destination: Option<PublicKey>,
4946 #[serde(skip_serializing_if = "Option::is_none")]
4947 pub destination_msat: Option<Amount>,
4948 #[serde(skip_serializing_if = "Option::is_none")]
4949 pub invstring: Option<String>,
4950 #[serde(skip_serializing_if = "Option::is_none")]
4951 pub label: Option<String>,
4952 #[serde(skip_serializing_if = "Option::is_none")]
4953 pub localinvreqid: Option<Sha256>,
4954 pub amount_msat: Amount,
4955 pub cltv_expiry: u16,
4956 pub groupid: u64,
4957 pub onion: String,
4958 pub partid: u64,
4959 pub payment_hash: Sha256,
4960 }
4961
4962 impl From<InjectpaymentonionRequest> for Request {
4963 fn from(r: InjectpaymentonionRequest) -> Self {
4964 Request::InjectPaymentOnion(r)
4965 }
4966 }
4967
4968 impl IntoRequest for InjectpaymentonionRequest {
4969 type Response = super::responses::InjectpaymentonionResponse;
4970 }
4971
4972 impl TypedRequest for InjectpaymentonionRequest {
4973 type Response = super::responses::InjectpaymentonionResponse;
4974
4975 fn method(&self) -> &str {
4976 "injectpaymentonion"
4977 }
4978 }
4979 #[derive(Clone, Debug, Deserialize, Serialize)]
4980 pub struct InjectonionmessageRequest {
4981 pub message: String,
4982 pub path_key: PublicKey,
4983 }
4984
4985 impl From<InjectonionmessageRequest> for Request {
4986 fn from(r: InjectonionmessageRequest) -> Self {
4987 Request::InjectOnionMessage(r)
4988 }
4989 }
4990
4991 impl IntoRequest for InjectonionmessageRequest {
4992 type Response = super::responses::InjectonionmessageResponse;
4993 }
4994
4995 impl TypedRequest for InjectonionmessageRequest {
4996 type Response = super::responses::InjectonionmessageResponse;
4997
4998 fn method(&self) -> &str {
4999 "injectonionmessage"
5000 }
5001 }
5002 #[derive(Clone, Debug, Deserialize, Serialize)]
5003 pub struct XpayRequest {
5004 #[serde(skip_serializing_if = "Option::is_none")]
5005 pub amount_msat: Option<Amount>,
5006 #[serde(skip_serializing_if = "Option::is_none")]
5007 pub dev_use_shadow: Option<bool>,
5008 #[serde(skip_serializing_if = "Option::is_none")]
5009 pub label: Option<String>,
5010 #[serde(skip_serializing_if = "Option::is_none")]
5011 pub localinvreqid: Option<String>,
5012 #[serde(skip_serializing_if = "Option::is_none")]
5013 pub maxdelay: Option<u32>,
5014 #[serde(skip_serializing_if = "Option::is_none")]
5015 pub maxfee: Option<Amount>,
5016 #[serde(skip_serializing_if = "Option::is_none")]
5017 pub partial_msat: Option<Amount>,
5018 #[serde(skip_serializing_if = "Option::is_none")]
5019 pub payer_note: Option<String>,
5020 #[serde(skip_serializing_if = "Option::is_none")]
5021 pub retry_for: Option<u32>,
5022 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
5023 pub layers: Option<Vec<String>>,
5024 pub invstring: String,
5025 }
5026
5027 impl From<XpayRequest> for Request {
5028 fn from(r: XpayRequest) -> Self {
5029 Request::Xpay(r)
5030 }
5031 }
5032
5033 impl IntoRequest for XpayRequest {
5034 type Response = super::responses::XpayResponse;
5035 }
5036
5037 impl TypedRequest for XpayRequest {
5038 type Response = super::responses::XpayResponse;
5039
5040 fn method(&self) -> &str {
5041 "xpay"
5042 }
5043 }
5044 #[derive(Clone, Debug, Deserialize, Serialize)]
5045 pub struct SignmessagewithkeyRequest {
5046 pub address: String,
5047 pub message: String,
5048 }
5049
5050 impl From<SignmessagewithkeyRequest> for Request {
5051 fn from(r: SignmessagewithkeyRequest) -> Self {
5052 Request::SignMessageWithKey(r)
5053 }
5054 }
5055
5056 impl IntoRequest for SignmessagewithkeyRequest {
5057 type Response = super::responses::SignmessagewithkeyResponse;
5058 }
5059
5060 impl TypedRequest for SignmessagewithkeyRequest {
5061 type Response = super::responses::SignmessagewithkeyResponse;
5062
5063 fn method(&self) -> &str {
5064 "signmessagewithkey"
5065 }
5066 }
5067 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5069 #[allow(non_camel_case_types)]
5070 pub enum ListchannelmovesIndex {
5071 #[serde(rename = "created")]
5072 CREATED = 0,
5073 }
5074
5075 impl TryFrom<i32> for ListchannelmovesIndex {
5076 type Error = anyhow::Error;
5077 fn try_from(c: i32) -> Result<ListchannelmovesIndex, anyhow::Error> {
5078 match c {
5079 0 => Ok(ListchannelmovesIndex::CREATED),
5080 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListchannelmovesIndex", o)),
5081 }
5082 }
5083 }
5084
5085 impl ToString for ListchannelmovesIndex {
5086 fn to_string(&self) -> String {
5087 match self {
5088 ListchannelmovesIndex::CREATED => "CREATED",
5089 }.to_string()
5090 }
5091 }
5092
5093 #[derive(Clone, Debug, Deserialize, Serialize)]
5094 pub struct ListchannelmovesRequest {
5095 #[serde(skip_serializing_if = "Option::is_none")]
5096 pub index: Option<ListchannelmovesIndex>,
5097 #[serde(skip_serializing_if = "Option::is_none")]
5098 pub limit: Option<u32>,
5099 #[serde(skip_serializing_if = "Option::is_none")]
5100 pub start: Option<u64>,
5101 }
5102
5103 impl From<ListchannelmovesRequest> for Request {
5104 fn from(r: ListchannelmovesRequest) -> Self {
5105 Request::ListChannelMoves(r)
5106 }
5107 }
5108
5109 impl IntoRequest for ListchannelmovesRequest {
5110 type Response = super::responses::ListchannelmovesResponse;
5111 }
5112
5113 impl TypedRequest for ListchannelmovesRequest {
5114 type Response = super::responses::ListchannelmovesResponse;
5115
5116 fn method(&self) -> &str {
5117 "listchannelmoves"
5118 }
5119 }
5120 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5122 #[allow(non_camel_case_types)]
5123 pub enum ListchainmovesIndex {
5124 #[serde(rename = "created")]
5125 CREATED = 0,
5126 }
5127
5128 impl TryFrom<i32> for ListchainmovesIndex {
5129 type Error = anyhow::Error;
5130 fn try_from(c: i32) -> Result<ListchainmovesIndex, anyhow::Error> {
5131 match c {
5132 0 => Ok(ListchainmovesIndex::CREATED),
5133 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListchainmovesIndex", o)),
5134 }
5135 }
5136 }
5137
5138 impl ToString for ListchainmovesIndex {
5139 fn to_string(&self) -> String {
5140 match self {
5141 ListchainmovesIndex::CREATED => "CREATED",
5142 }.to_string()
5143 }
5144 }
5145
5146 #[derive(Clone, Debug, Deserialize, Serialize)]
5147 pub struct ListchainmovesRequest {
5148 #[serde(skip_serializing_if = "Option::is_none")]
5149 pub index: Option<ListchainmovesIndex>,
5150 #[serde(skip_serializing_if = "Option::is_none")]
5151 pub limit: Option<u32>,
5152 #[serde(skip_serializing_if = "Option::is_none")]
5153 pub start: Option<u64>,
5154 }
5155
5156 impl From<ListchainmovesRequest> for Request {
5157 fn from(r: ListchainmovesRequest) -> Self {
5158 Request::ListChainMoves(r)
5159 }
5160 }
5161
5162 impl IntoRequest for ListchainmovesRequest {
5163 type Response = super::responses::ListchainmovesResponse;
5164 }
5165
5166 impl TypedRequest for ListchainmovesRequest {
5167 type Response = super::responses::ListchainmovesResponse;
5168
5169 fn method(&self) -> &str {
5170 "listchainmoves"
5171 }
5172 }
5173 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5175 #[allow(non_camel_case_types)]
5176 pub enum ListnetworkeventsIndex {
5177 #[serde(rename = "created")]
5178 CREATED = 0,
5179 }
5180
5181 impl TryFrom<i32> for ListnetworkeventsIndex {
5182 type Error = anyhow::Error;
5183 fn try_from(c: i32) -> Result<ListnetworkeventsIndex, anyhow::Error> {
5184 match c {
5185 0 => Ok(ListnetworkeventsIndex::CREATED),
5186 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListnetworkeventsIndex", o)),
5187 }
5188 }
5189 }
5190
5191 impl ToString for ListnetworkeventsIndex {
5192 fn to_string(&self) -> String {
5193 match self {
5194 ListnetworkeventsIndex::CREATED => "CREATED",
5195 }.to_string()
5196 }
5197 }
5198
5199 #[derive(Clone, Debug, Deserialize, Serialize)]
5200 pub struct ListnetworkeventsRequest {
5201 #[serde(skip_serializing_if = "Option::is_none")]
5202 pub id: Option<String>,
5203 #[serde(skip_serializing_if = "Option::is_none")]
5204 pub index: Option<ListnetworkeventsIndex>,
5205 #[serde(skip_serializing_if = "Option::is_none")]
5206 pub limit: Option<u32>,
5207 #[serde(skip_serializing_if = "Option::is_none")]
5208 pub start: Option<u64>,
5209 }
5210
5211 impl From<ListnetworkeventsRequest> for Request {
5212 fn from(r: ListnetworkeventsRequest) -> Self {
5213 Request::ListNetworkEvents(r)
5214 }
5215 }
5216
5217 impl IntoRequest for ListnetworkeventsRequest {
5218 type Response = super::responses::ListnetworkeventsResponse;
5219 }
5220
5221 impl TypedRequest for ListnetworkeventsRequest {
5222 type Response = super::responses::ListnetworkeventsResponse;
5223
5224 fn method(&self) -> &str {
5225 "listnetworkevents"
5226 }
5227 }
5228 #[derive(Clone, Debug, Deserialize, Serialize)]
5229 pub struct DelnetworkeventRequest {
5230 pub created_index: u64,
5231 }
5232
5233 impl From<DelnetworkeventRequest> for Request {
5234 fn from(r: DelnetworkeventRequest) -> Self {
5235 Request::DelNetworkEvent(r)
5236 }
5237 }
5238
5239 impl IntoRequest for DelnetworkeventRequest {
5240 type Response = super::responses::DelnetworkeventResponse;
5241 }
5242
5243 impl TypedRequest for DelnetworkeventRequest {
5244 type Response = super::responses::DelnetworkeventResponse;
5245
5246 fn method(&self) -> &str {
5247 "delnetworkevent"
5248 }
5249 }
5250 #[derive(Clone, Debug, Deserialize, Serialize)]
5251 pub struct ClnrestregisterpathRuneRestrictions {
5252 #[serde(skip_serializing_if = "Option::is_none")]
5253 pub method: Option<String>,
5254 #[serde(skip_serializing_if = "Option::is_none")]
5255 pub nodeid: Option<String>,
5256 #[serde(skip_serializing_if = "Option::is_none")]
5257 pub params: Option<HashMap<String, String>>,
5258 }
5259
5260 #[derive(Clone, Debug, Deserialize, Serialize)]
5261 pub struct ClnrestregisterpathRequest {
5262 #[serde(skip_serializing_if = "Option::is_none")]
5263 pub http_method: Option<String>,
5264 #[serde(skip_serializing_if = "Option::is_none")]
5265 pub rune_required: Option<bool>,
5266 #[serde(skip_serializing_if = "Option::is_none")]
5267 pub rune_restrictions: Option<ClnrestregisterpathRuneRestrictions>,
5268 pub path: String,
5269 pub rpc_method: String,
5270 }
5271
5272 impl From<ClnrestregisterpathRequest> for Request {
5273 fn from(r: ClnrestregisterpathRequest) -> Self {
5274 Request::ClnrestRegisterPath(r)
5275 }
5276 }
5277
5278 impl IntoRequest for ClnrestregisterpathRequest {
5279 type Response = super::responses::ClnrestregisterpathResponse;
5280 }
5281
5282 impl TypedRequest for ClnrestregisterpathRequest {
5283 type Response = super::responses::ClnrestregisterpathResponse;
5284
5285 fn method(&self) -> &str {
5286 "clnrest-register-path"
5287 }
5288 }
5289 #[derive(Clone, Debug, Deserialize, Serialize)]
5290 pub struct ListcurrencyratesRequest {
5291 pub currency: String,
5292 }
5293
5294 impl From<ListcurrencyratesRequest> for Request {
5295 fn from(r: ListcurrencyratesRequest) -> Self {
5296 Request::ListCurrencyRates(r)
5297 }
5298 }
5299
5300 impl IntoRequest for ListcurrencyratesRequest {
5301 type Response = super::responses::ListcurrencyratesResponse;
5302 }
5303
5304 impl TypedRequest for ListcurrencyratesRequest {
5305 type Response = super::responses::ListcurrencyratesResponse;
5306
5307 fn method(&self) -> &str {
5308 "listcurrencyrates"
5309 }
5310 }
5311 #[derive(Clone, Debug, Deserialize, Serialize)]
5312 pub struct CurrencyconvertRequest {
5313 pub amount: f64,
5314 pub currency: String,
5315 }
5316
5317 impl From<CurrencyconvertRequest> for Request {
5318 fn from(r: CurrencyconvertRequest) -> Self {
5319 Request::CurrencyConvert(r)
5320 }
5321 }
5322
5323 impl IntoRequest for CurrencyconvertRequest {
5324 type Response = super::responses::CurrencyconvertResponse;
5325 }
5326
5327 impl TypedRequest for CurrencyconvertRequest {
5328 type Response = super::responses::CurrencyconvertResponse;
5329
5330 fn method(&self) -> &str {
5331 "currencyconvert"
5332 }
5333 }
5334 #[derive(Clone, Debug, Deserialize, Serialize)]
5335 pub struct CurrencyrateRequest {
5336 #[serde(skip_serializing_if = "Option::is_none")]
5337 pub source: Option<String>,
5338 pub currency: String,
5339 }
5340
5341 impl From<CurrencyrateRequest> for Request {
5342 fn from(r: CurrencyrateRequest) -> Self {
5343 Request::CurrencyRate(r)
5344 }
5345 }
5346
5347 impl IntoRequest for CurrencyrateRequest {
5348 type Response = super::responses::CurrencyrateResponse;
5349 }
5350
5351 impl TypedRequest for CurrencyrateRequest {
5352 type Response = super::responses::CurrencyrateResponse;
5353
5354 fn method(&self) -> &str {
5355 "currencyrate"
5356 }
5357 }
5358 #[derive(Clone, Debug, Deserialize, Serialize)]
5359 pub struct SendamountRequest {
5360 #[serde(skip_serializing_if = "Option::is_none")]
5361 pub label: Option<String>,
5362 #[serde(skip_serializing_if = "Option::is_none")]
5363 pub maxdelay: Option<u32>,
5364 #[serde(skip_serializing_if = "Option::is_none")]
5365 pub maxfee: Option<Amount>,
5366 #[serde(skip_serializing_if = "Option::is_none")]
5367 pub payer_note: Option<String>,
5368 #[serde(skip_serializing_if = "Option::is_none")]
5369 pub retry_for: Option<u32>,
5370 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
5371 pub layers: Option<Vec<String>>,
5372 pub amount_msat: Amount,
5373 pub invstring: String,
5374 }
5375
5376 impl From<SendamountRequest> for Request {
5377 fn from(r: SendamountRequest) -> Self {
5378 Request::SendAmount(r)
5379 }
5380 }
5381
5382 impl IntoRequest for SendamountRequest {
5383 type Response = super::responses::SendamountResponse;
5384 }
5385
5386 impl TypedRequest for SendamountRequest {
5387 type Response = super::responses::SendamountResponse;
5388
5389 fn method(&self) -> &str {
5390 "sendamount"
5391 }
5392 }
5393 #[derive(Clone, Debug, Deserialize, Serialize)]
5394 pub struct CreateproofRequest {
5395 #[serde(skip_serializing_if = "Option::is_none")]
5396 pub note: Option<String>,
5397 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
5398 pub include: Option<Vec<ProofField>>,
5399 pub invstring: String,
5400 }
5401
5402 impl From<CreateproofRequest> for Request {
5403 fn from(r: CreateproofRequest) -> Self {
5404 Request::CreateProof(r)
5405 }
5406 }
5407
5408 impl IntoRequest for CreateproofRequest {
5409 type Response = super::responses::CreateproofResponse;
5410 }
5411
5412 impl TypedRequest for CreateproofRequest {
5413 type Response = super::responses::CreateproofResponse;
5414
5415 fn method(&self) -> &str {
5416 "createproof"
5417 }
5418 }
5419 #[derive(Clone, Debug, Deserialize, Serialize)]
5420 pub struct XkeysendRequest {
5421 #[serde(skip_serializing_if = "Option::is_none")]
5422 pub extratlvs: Option<HashMap<String, String>>,
5423 #[serde(skip_serializing_if = "Option::is_none")]
5424 pub label: Option<String>,
5425 #[serde(skip_serializing_if = "Option::is_none")]
5426 pub maxdelay: Option<u32>,
5427 #[serde(skip_serializing_if = "Option::is_none")]
5428 pub maxfee: Option<Amount>,
5429 #[serde(skip_serializing_if = "Option::is_none")]
5430 pub retry_for: Option<u32>,
5431 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
5432 pub layers: Option<Vec<String>>,
5433 pub amount_msat: Amount,
5434 pub destination: PublicKey,
5435 }
5436
5437 impl From<XkeysendRequest> for Request {
5438 fn from(r: XkeysendRequest) -> Self {
5439 Request::Xkeysend(r)
5440 }
5441 }
5442
5443 impl IntoRequest for XkeysendRequest {
5444 type Response = super::responses::XkeysendResponse;
5445 }
5446
5447 impl TypedRequest for XkeysendRequest {
5448 type Response = super::responses::XkeysendResponse;
5449
5450 fn method(&self) -> &str {
5451 "xkeysend"
5452 }
5453 }
5454 #[derive(Clone, Debug, Deserialize, Serialize)]
5455 pub struct GracefulRequest {
5456 #[serde(skip_serializing_if = "Option::is_none")]
5457 pub timeout: Option<u32>,
5458 }
5459
5460 impl From<GracefulRequest> for Request {
5461 fn from(r: GracefulRequest) -> Self {
5462 Request::Graceful(r)
5463 }
5464 }
5465
5466 impl IntoRequest for GracefulRequest {
5467 type Response = super::responses::GracefulResponse;
5468 }
5469
5470 impl TypedRequest for GracefulRequest {
5471 type Response = super::responses::GracefulResponse;
5472
5473 fn method(&self) -> &str {
5474 "graceful"
5475 }
5476 }
5477}
5478
5479
5480pub mod responses {
5481 #[allow(unused_imports)]
5482 use crate::primitives::*;
5483 #[allow(unused_imports)]
5484 use serde::{{Deserialize, Serialize}};
5485 use super::{TryFromResponseError, Response};
5486
5487 #[derive(Clone, Debug, Deserialize, Serialize)]
5488 pub struct GetinfoOurFeatures {
5489 pub channel: String,
5490 pub init: String,
5491 pub invoice: String,
5492 pub node: String,
5493 }
5494
5495 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5497 #[allow(non_camel_case_types)]
5498 pub enum GetinfoBindingType {
5499 #[serde(rename = "local socket")]
5500 LOCAL_SOCKET = 0,
5501 #[serde(rename = "ipv4")]
5502 IPV4 = 1,
5503 #[serde(rename = "ipv6")]
5504 IPV6 = 2,
5505 #[serde(rename = "torv2")]
5506 TORV2 = 3,
5507 #[serde(rename = "torv3")]
5508 TORV3 = 4,
5509 #[serde(rename = "websocket")]
5510 WEBSOCKET = 5,
5511 }
5512
5513 impl TryFrom<i32> for GetinfoBindingType {
5514 type Error = anyhow::Error;
5515 fn try_from(c: i32) -> Result<GetinfoBindingType, anyhow::Error> {
5516 match c {
5517 0 => Ok(GetinfoBindingType::LOCAL_SOCKET),
5518 1 => Ok(GetinfoBindingType::IPV4),
5519 2 => Ok(GetinfoBindingType::IPV6),
5520 3 => Ok(GetinfoBindingType::TORV2),
5521 4 => Ok(GetinfoBindingType::TORV3),
5522 5 => Ok(GetinfoBindingType::WEBSOCKET),
5523 o => Err(anyhow::anyhow!("Unknown variant {} for enum GetinfoBindingType", o)),
5524 }
5525 }
5526 }
5527
5528 impl ToString for GetinfoBindingType {
5529 fn to_string(&self) -> String {
5530 match self {
5531 GetinfoBindingType::LOCAL_SOCKET => "LOCAL_SOCKET",
5532 GetinfoBindingType::WEBSOCKET => "WEBSOCKET",
5533 GetinfoBindingType::IPV4 => "IPV4",
5534 GetinfoBindingType::IPV6 => "IPV6",
5535 GetinfoBindingType::TORV2 => "TORV2",
5536 GetinfoBindingType::TORV3 => "TORV3",
5537 }.to_string()
5538 }
5539 }
5540
5541 #[derive(Clone, Debug, Deserialize, Serialize)]
5542 pub struct GetinfoBinding {
5543 #[serde(skip_serializing_if = "Option::is_none")]
5544 pub address: Option<String>,
5545 #[serde(skip_serializing_if = "Option::is_none")]
5546 pub port: Option<u16>,
5547 #[serde(skip_serializing_if = "Option::is_none")]
5548 pub socket: Option<String>,
5549 #[serde(skip_serializing_if = "Option::is_none")]
5550 pub subtype: Option<String>,
5551 #[serde(rename = "type")]
5553 pub item_type: GetinfoBindingType,
5554 }
5555
5556 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5558 #[allow(non_camel_case_types)]
5559 pub enum GetinfoAddressType {
5560 #[serde(rename = "dns")]
5561 DNS = 0,
5562 #[serde(rename = "ipv4")]
5563 IPV4 = 1,
5564 #[serde(rename = "ipv6")]
5565 IPV6 = 2,
5566 #[serde(rename = "torv2")]
5567 TORV2 = 3,
5568 #[serde(rename = "torv3")]
5569 TORV3 = 4,
5570 }
5571
5572 impl TryFrom<i32> for GetinfoAddressType {
5573 type Error = anyhow::Error;
5574 fn try_from(c: i32) -> Result<GetinfoAddressType, anyhow::Error> {
5575 match c {
5576 0 => Ok(GetinfoAddressType::DNS),
5577 1 => Ok(GetinfoAddressType::IPV4),
5578 2 => Ok(GetinfoAddressType::IPV6),
5579 3 => Ok(GetinfoAddressType::TORV2),
5580 4 => Ok(GetinfoAddressType::TORV3),
5581 o => Err(anyhow::anyhow!("Unknown variant {} for enum GetinfoAddressType", o)),
5582 }
5583 }
5584 }
5585
5586 impl ToString for GetinfoAddressType {
5587 fn to_string(&self) -> String {
5588 match self {
5589 GetinfoAddressType::DNS => "DNS",
5590 GetinfoAddressType::IPV4 => "IPV4",
5591 GetinfoAddressType::IPV6 => "IPV6",
5592 GetinfoAddressType::TORV2 => "TORV2",
5593 GetinfoAddressType::TORV3 => "TORV3",
5594 }.to_string()
5595 }
5596 }
5597
5598 #[derive(Clone, Debug, Deserialize, Serialize)]
5599 pub struct GetinfoAddress {
5600 #[serde(skip_serializing_if = "Option::is_none")]
5601 pub address: Option<String>,
5602 #[serde(rename = "type")]
5604 pub item_type: GetinfoAddressType,
5605 pub port: u16,
5606 }
5607
5608 #[derive(Clone, Debug, Deserialize, Serialize)]
5609 pub struct GetinfoResponse {
5610 #[serde(rename = "lightning-dir")]
5611 pub lightning_dir: String,
5612 #[serde(skip_serializing_if = "Option::is_none")]
5613 pub our_features: Option<GetinfoOurFeatures>,
5614 #[serde(skip_serializing_if = "Option::is_none")]
5615 pub warning_bitcoind_sync: Option<String>,
5616 #[serde(skip_serializing_if = "Option::is_none")]
5617 pub warning_lightningd_sync: Option<String>,
5618 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
5619 pub binding: Option<Vec<GetinfoBinding>>,
5620 pub address: Vec<GetinfoAddress>,
5621 pub alias: String,
5622 pub blockheight: u32,
5623 pub color: String,
5624 pub fees_collected_msat: Amount,
5625 pub id: PublicKey,
5626 pub network: String,
5627 pub num_active_channels: u32,
5628 pub num_inactive_channels: u32,
5629 pub num_peers: u32,
5630 pub num_pending_channels: u32,
5631 pub version: String,
5632 }
5633
5634 impl TryFrom<Response> for GetinfoResponse {
5635 type Error = super::TryFromResponseError;
5636
5637 fn try_from(response: Response) -> Result<Self, Self::Error> {
5638 match response {
5639 Response::Getinfo(response) => Ok(response),
5640 _ => Err(TryFromResponseError)
5641 }
5642 }
5643 }
5644
5645 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5646 #[allow(non_camel_case_types)]
5647 pub enum ListpeersPeersLogType {
5648 #[serde(rename = "SKIPPED")]
5649 SKIPPED = 0,
5650 #[serde(rename = "BROKEN")]
5651 BROKEN = 1,
5652 #[serde(rename = "UNUSUAL")]
5653 UNUSUAL = 2,
5654 #[serde(rename = "INFO")]
5655 INFO = 3,
5656 #[serde(rename = "DEBUG")]
5657 DEBUG = 4,
5658 #[serde(rename = "IO_IN")]
5659 IO_IN = 5,
5660 #[serde(rename = "IO_OUT")]
5661 IO_OUT = 6,
5662 #[serde(rename = "TRACE")]
5663 TRACE = 7,
5664 }
5665
5666 impl TryFrom<i32> for ListpeersPeersLogType {
5667 type Error = anyhow::Error;
5668 fn try_from(c: i32) -> Result<ListpeersPeersLogType, anyhow::Error> {
5669 match c {
5670 0 => Ok(ListpeersPeersLogType::SKIPPED),
5671 1 => Ok(ListpeersPeersLogType::BROKEN),
5672 2 => Ok(ListpeersPeersLogType::UNUSUAL),
5673 3 => Ok(ListpeersPeersLogType::INFO),
5674 4 => Ok(ListpeersPeersLogType::DEBUG),
5675 5 => Ok(ListpeersPeersLogType::IO_IN),
5676 6 => Ok(ListpeersPeersLogType::IO_OUT),
5677 7 => Ok(ListpeersPeersLogType::TRACE),
5678 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeersPeersLogType", o)),
5679 }
5680 }
5681 }
5682
5683 impl ToString for ListpeersPeersLogType {
5684 fn to_string(&self) -> String {
5685 match self {
5686 ListpeersPeersLogType::SKIPPED => "SKIPPED",
5687 ListpeersPeersLogType::BROKEN => "BROKEN",
5688 ListpeersPeersLogType::UNUSUAL => "UNUSUAL",
5689 ListpeersPeersLogType::INFO => "INFO",
5690 ListpeersPeersLogType::DEBUG => "DEBUG",
5691 ListpeersPeersLogType::TRACE => "TRACE",
5692 ListpeersPeersLogType::IO_IN => "IO_IN",
5693 ListpeersPeersLogType::IO_OUT => "IO_OUT",
5694 }.to_string()
5695 }
5696 }
5697
5698 #[derive(Clone, Debug, Deserialize, Serialize)]
5699 pub struct ListpeersPeersLog {
5700 #[serde(skip_serializing_if = "Option::is_none")]
5701 pub data: Option<String>,
5702 #[serde(skip_serializing_if = "Option::is_none")]
5703 pub log: Option<String>,
5704 #[serde(skip_serializing_if = "Option::is_none")]
5705 pub node_id: Option<PublicKey>,
5706 #[serde(skip_serializing_if = "Option::is_none")]
5707 pub num_skipped: Option<u32>,
5708 #[serde(skip_serializing_if = "Option::is_none")]
5709 pub source: Option<String>,
5710 #[serde(skip_serializing_if = "Option::is_none")]
5711 pub time: Option<String>,
5712 #[serde(rename = "type")]
5714 pub item_type: ListpeersPeersLogType,
5715 }
5716
5717 #[derive(Clone, Debug, Deserialize, Serialize)]
5718 pub struct ListpeersPeers {
5719 #[serde(skip_serializing_if = "Option::is_none")]
5720 pub features: Option<String>,
5721 #[serde(skip_serializing_if = "Option::is_none")]
5722 pub remote_addr: Option<String>,
5723 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
5724 pub log: Option<Vec<ListpeersPeersLog>>,
5725 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
5726 pub netaddr: Option<Vec<String>>,
5727 pub connected: bool,
5728 pub id: PublicKey,
5729 pub num_channels: u32,
5730 }
5731
5732 #[derive(Clone, Debug, Deserialize, Serialize)]
5733 pub struct ListpeersResponse {
5734 pub peers: Vec<ListpeersPeers>,
5735 }
5736
5737 impl TryFrom<Response> for ListpeersResponse {
5738 type Error = super::TryFromResponseError;
5739
5740 fn try_from(response: Response) -> Result<Self, Self::Error> {
5741 match response {
5742 Response::ListPeers(response) => Ok(response),
5743 _ => Err(TryFromResponseError)
5744 }
5745 }
5746 }
5747
5748 #[derive(Clone, Debug, Deserialize, Serialize)]
5749 pub struct ListfundsChannels {
5750 #[serde(skip_serializing_if = "Option::is_none")]
5751 pub short_channel_id: Option<ShortChannelId>,
5752 pub state: ChannelState,
5754 pub amount_msat: Amount,
5755 pub channel_id: Sha256,
5756 pub connected: bool,
5757 pub funding_output: u32,
5758 pub funding_txid: String,
5759 pub our_amount_msat: Amount,
5760 pub peer_id: PublicKey,
5761 }
5762
5763 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5764 #[allow(non_camel_case_types)]
5765 pub enum ListfundsOutputsStatus {
5766 #[serde(rename = "unconfirmed")]
5767 UNCONFIRMED = 0,
5768 #[serde(rename = "confirmed")]
5769 CONFIRMED = 1,
5770 #[serde(rename = "spent")]
5771 SPENT = 2,
5772 #[serde(rename = "immature")]
5773 IMMATURE = 3,
5774 }
5775
5776 impl TryFrom<i32> for ListfundsOutputsStatus {
5777 type Error = anyhow::Error;
5778 fn try_from(c: i32) -> Result<ListfundsOutputsStatus, anyhow::Error> {
5779 match c {
5780 0 => Ok(ListfundsOutputsStatus::UNCONFIRMED),
5781 1 => Ok(ListfundsOutputsStatus::CONFIRMED),
5782 2 => Ok(ListfundsOutputsStatus::SPENT),
5783 3 => Ok(ListfundsOutputsStatus::IMMATURE),
5784 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListfundsOutputsStatus", o)),
5785 }
5786 }
5787 }
5788
5789 impl ToString for ListfundsOutputsStatus {
5790 fn to_string(&self) -> String {
5791 match self {
5792 ListfundsOutputsStatus::UNCONFIRMED => "UNCONFIRMED",
5793 ListfundsOutputsStatus::CONFIRMED => "CONFIRMED",
5794 ListfundsOutputsStatus::SPENT => "SPENT",
5795 ListfundsOutputsStatus::IMMATURE => "IMMATURE",
5796 }.to_string()
5797 }
5798 }
5799
5800 #[derive(Clone, Debug, Deserialize, Serialize)]
5801 pub struct ListfundsOutputs {
5802 #[serde(skip_serializing_if = "Option::is_none")]
5803 pub address: Option<String>,
5804 #[serde(skip_serializing_if = "Option::is_none")]
5805 pub blockheight: Option<u32>,
5806 #[serde(skip_serializing_if = "Option::is_none")]
5807 pub redeemscript: Option<String>,
5808 #[serde(skip_serializing_if = "Option::is_none")]
5809 pub reserved_to_block: Option<u32>,
5810 pub status: ListfundsOutputsStatus,
5812 pub amount_msat: Amount,
5813 pub output: u32,
5814 pub reserved: bool,
5815 pub scriptpubkey: String,
5816 pub txid: String,
5817 }
5818
5819 #[derive(Clone, Debug, Deserialize, Serialize)]
5820 pub struct ListfundsResponse {
5821 pub channels: Vec<ListfundsChannels>,
5822 pub outputs: Vec<ListfundsOutputs>,
5823 }
5824
5825 impl TryFrom<Response> for ListfundsResponse {
5826 type Error = super::TryFromResponseError;
5827
5828 fn try_from(response: Response) -> Result<Self, Self::Error> {
5829 match response {
5830 Response::ListFunds(response) => Ok(response),
5831 _ => Err(TryFromResponseError)
5832 }
5833 }
5834 }
5835
5836 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
5838 #[allow(non_camel_case_types)]
5839 pub enum SendpayStatus {
5840 #[serde(rename = "pending")]
5841 PENDING = 0,
5842 #[serde(rename = "complete")]
5843 COMPLETE = 1,
5844 }
5845
5846 impl TryFrom<i32> for SendpayStatus {
5847 type Error = anyhow::Error;
5848 fn try_from(c: i32) -> Result<SendpayStatus, anyhow::Error> {
5849 match c {
5850 0 => Ok(SendpayStatus::PENDING),
5851 1 => Ok(SendpayStatus::COMPLETE),
5852 o => Err(anyhow::anyhow!("Unknown variant {} for enum SendpayStatus", o)),
5853 }
5854 }
5855 }
5856
5857 impl ToString for SendpayStatus {
5858 fn to_string(&self) -> String {
5859 match self {
5860 SendpayStatus::PENDING => "PENDING",
5861 SendpayStatus::COMPLETE => "COMPLETE",
5862 }.to_string()
5863 }
5864 }
5865
5866 #[derive(Clone, Debug, Deserialize, Serialize)]
5867 pub struct SendpayResponse {
5868 #[serde(skip_serializing_if = "Option::is_none")]
5869 pub amount_msat: Option<Amount>,
5870 #[serde(skip_serializing_if = "Option::is_none")]
5871 pub bolt11: Option<String>,
5872 #[serde(skip_serializing_if = "Option::is_none")]
5873 pub bolt12: Option<String>,
5874 #[serde(skip_serializing_if = "Option::is_none")]
5875 pub completed_at: Option<u64>,
5876 #[serde(skip_serializing_if = "Option::is_none")]
5877 pub destination: Option<PublicKey>,
5878 #[serde(skip_serializing_if = "Option::is_none")]
5879 pub groupid: Option<u64>,
5880 #[serde(skip_serializing_if = "Option::is_none")]
5881 pub label: Option<String>,
5882 #[serde(skip_serializing_if = "Option::is_none")]
5883 pub message: Option<String>,
5884 #[serde(skip_serializing_if = "Option::is_none")]
5885 pub partid: Option<u64>,
5886 #[serde(skip_serializing_if = "Option::is_none")]
5887 pub payment_preimage: Option<Secret>,
5888 #[serde(skip_serializing_if = "Option::is_none")]
5889 pub updated_index: Option<u64>,
5890 pub status: SendpayStatus,
5892 pub amount_sent_msat: Amount,
5893 pub created_at: u64,
5894 pub created_index: u64,
5895 pub id: u64,
5896 pub payment_hash: Sha256,
5897 }
5898
5899 impl TryFrom<Response> for SendpayResponse {
5900 type Error = super::TryFromResponseError;
5901
5902 fn try_from(response: Response) -> Result<Self, Self::Error> {
5903 match response {
5904 Response::SendPay(response) => Ok(response),
5905 _ => Err(TryFromResponseError)
5906 }
5907 }
5908 }
5909
5910 #[derive(Clone, Debug, Deserialize, Serialize)]
5911 pub struct ListchannelsChannels {
5912 #[serde(skip_serializing_if = "Option::is_none")]
5913 pub htlc_maximum_msat: Option<Amount>,
5914 pub active: bool,
5915 pub amount_msat: Amount,
5916 pub base_fee_millisatoshi: u32,
5917 pub channel_flags: u8,
5918 pub delay: u32,
5919 pub destination: PublicKey,
5920 pub direction: u32,
5921 pub features: String,
5922 pub fee_per_millionth: u32,
5923 pub htlc_minimum_msat: Amount,
5924 pub last_update: u32,
5925 pub message_flags: u8,
5926 pub public: bool,
5927 pub short_channel_id: ShortChannelId,
5928 pub source: PublicKey,
5929 }
5930
5931 #[derive(Clone, Debug, Deserialize, Serialize)]
5932 pub struct ListchannelsResponse {
5933 pub channels: Vec<ListchannelsChannels>,
5934 }
5935
5936 impl TryFrom<Response> for ListchannelsResponse {
5937 type Error = super::TryFromResponseError;
5938
5939 fn try_from(response: Response) -> Result<Self, Self::Error> {
5940 match response {
5941 Response::ListChannels(response) => Ok(response),
5942 _ => Err(TryFromResponseError)
5943 }
5944 }
5945 }
5946
5947 #[derive(Clone, Debug, Deserialize, Serialize)]
5948 pub struct AddgossipResponse {
5949 }
5950
5951 impl TryFrom<Response> for AddgossipResponse {
5952 type Error = super::TryFromResponseError;
5953
5954 fn try_from(response: Response) -> Result<Self, Self::Error> {
5955 match response {
5956 Response::AddGossip(response) => Ok(response),
5957 _ => Err(TryFromResponseError)
5958 }
5959 }
5960 }
5961
5962 #[derive(Clone, Debug, Deserialize, Serialize)]
5963 pub struct AddpsbtoutputResponse {
5964 pub estimated_added_weight: u32,
5965 pub outnum: u32,
5966 pub psbt: String,
5967 }
5968
5969 impl TryFrom<Response> for AddpsbtoutputResponse {
5970 type Error = super::TryFromResponseError;
5971
5972 fn try_from(response: Response) -> Result<Self, Self::Error> {
5973 match response {
5974 Response::AddPsbtOutput(response) => Ok(response),
5975 _ => Err(TryFromResponseError)
5976 }
5977 }
5978 }
5979
5980 #[derive(Clone, Debug, Deserialize, Serialize)]
5981 pub struct AutocleanonceAutocleanExpiredinvoices {
5982 pub cleaned: u64,
5983 pub uncleaned: u64,
5984 }
5985
5986 #[derive(Clone, Debug, Deserialize, Serialize)]
5987 pub struct AutocleanonceAutocleanFailedforwards {
5988 pub cleaned: u64,
5989 pub uncleaned: u64,
5990 }
5991
5992 #[derive(Clone, Debug, Deserialize, Serialize)]
5993 pub struct AutocleanonceAutocleanFailedpays {
5994 pub cleaned: u64,
5995 pub uncleaned: u64,
5996 }
5997
5998 #[derive(Clone, Debug, Deserialize, Serialize)]
5999 pub struct AutocleanonceAutocleanNetworkevents {
6000 pub cleaned: u64,
6001 pub uncleaned: u64,
6002 }
6003
6004 #[derive(Clone, Debug, Deserialize, Serialize)]
6005 pub struct AutocleanonceAutocleanPaidinvoices {
6006 pub cleaned: u64,
6007 pub uncleaned: u64,
6008 }
6009
6010 #[derive(Clone, Debug, Deserialize, Serialize)]
6011 pub struct AutocleanonceAutocleanSucceededforwards {
6012 pub cleaned: u64,
6013 pub uncleaned: u64,
6014 }
6015
6016 #[derive(Clone, Debug, Deserialize, Serialize)]
6017 pub struct AutocleanonceAutocleanSucceededpays {
6018 pub cleaned: u64,
6019 pub uncleaned: u64,
6020 }
6021
6022 #[derive(Clone, Debug, Deserialize, Serialize)]
6023 pub struct AutocleanonceAutoclean {
6024 #[serde(skip_serializing_if = "Option::is_none")]
6025 pub expiredinvoices: Option<AutocleanonceAutocleanExpiredinvoices>,
6026 #[serde(skip_serializing_if = "Option::is_none")]
6027 pub failedforwards: Option<AutocleanonceAutocleanFailedforwards>,
6028 #[serde(skip_serializing_if = "Option::is_none")]
6029 pub failedpays: Option<AutocleanonceAutocleanFailedpays>,
6030 #[serde(skip_serializing_if = "Option::is_none")]
6031 pub networkevents: Option<AutocleanonceAutocleanNetworkevents>,
6032 #[serde(skip_serializing_if = "Option::is_none")]
6033 pub paidinvoices: Option<AutocleanonceAutocleanPaidinvoices>,
6034 #[serde(skip_serializing_if = "Option::is_none")]
6035 pub succeededforwards: Option<AutocleanonceAutocleanSucceededforwards>,
6036 #[serde(skip_serializing_if = "Option::is_none")]
6037 pub succeededpays: Option<AutocleanonceAutocleanSucceededpays>,
6038 }
6039
6040 #[derive(Clone, Debug, Deserialize, Serialize)]
6041 pub struct AutocleanonceResponse {
6042 pub autoclean: AutocleanonceAutoclean,
6043 }
6044
6045 impl TryFrom<Response> for AutocleanonceResponse {
6046 type Error = super::TryFromResponseError;
6047
6048 fn try_from(response: Response) -> Result<Self, Self::Error> {
6049 match response {
6050 Response::AutoCleanOnce(response) => Ok(response),
6051 _ => Err(TryFromResponseError)
6052 }
6053 }
6054 }
6055
6056 #[derive(Clone, Debug, Deserialize, Serialize)]
6057 pub struct AutocleanstatusAutocleanExpiredinvoices {
6058 #[serde(skip_serializing_if = "Option::is_none")]
6059 pub age: Option<u64>,
6060 pub cleaned: u64,
6061 pub enabled: bool,
6062 }
6063
6064 #[derive(Clone, Debug, Deserialize, Serialize)]
6065 pub struct AutocleanstatusAutocleanFailedforwards {
6066 #[serde(skip_serializing_if = "Option::is_none")]
6067 pub age: Option<u64>,
6068 pub cleaned: u64,
6069 pub enabled: bool,
6070 }
6071
6072 #[derive(Clone, Debug, Deserialize, Serialize)]
6073 pub struct AutocleanstatusAutocleanFailedpays {
6074 #[serde(skip_serializing_if = "Option::is_none")]
6075 pub age: Option<u64>,
6076 pub cleaned: u64,
6077 pub enabled: bool,
6078 }
6079
6080 #[derive(Clone, Debug, Deserialize, Serialize)]
6081 pub struct AutocleanstatusAutocleanNetworkevents {
6082 #[serde(skip_serializing_if = "Option::is_none")]
6083 pub age: Option<u64>,
6084 pub cleaned: u64,
6085 pub enabled: bool,
6086 }
6087
6088 #[derive(Clone, Debug, Deserialize, Serialize)]
6089 pub struct AutocleanstatusAutocleanPaidinvoices {
6090 #[serde(skip_serializing_if = "Option::is_none")]
6091 pub age: Option<u64>,
6092 pub cleaned: u64,
6093 pub enabled: bool,
6094 }
6095
6096 #[derive(Clone, Debug, Deserialize, Serialize)]
6097 pub struct AutocleanstatusAutocleanSucceededforwards {
6098 #[serde(skip_serializing_if = "Option::is_none")]
6099 pub age: Option<u64>,
6100 pub cleaned: u64,
6101 pub enabled: bool,
6102 }
6103
6104 #[derive(Clone, Debug, Deserialize, Serialize)]
6105 pub struct AutocleanstatusAutocleanSucceededpays {
6106 #[serde(skip_serializing_if = "Option::is_none")]
6107 pub age: Option<u64>,
6108 pub cleaned: u64,
6109 pub enabled: bool,
6110 }
6111
6112 #[derive(Clone, Debug, Deserialize, Serialize)]
6113 pub struct AutocleanstatusAutoclean {
6114 #[serde(skip_serializing_if = "Option::is_none")]
6115 pub expiredinvoices: Option<AutocleanstatusAutocleanExpiredinvoices>,
6116 #[serde(skip_serializing_if = "Option::is_none")]
6117 pub failedforwards: Option<AutocleanstatusAutocleanFailedforwards>,
6118 #[serde(skip_serializing_if = "Option::is_none")]
6119 pub failedpays: Option<AutocleanstatusAutocleanFailedpays>,
6120 #[serde(skip_serializing_if = "Option::is_none")]
6121 pub networkevents: Option<AutocleanstatusAutocleanNetworkevents>,
6122 #[serde(skip_serializing_if = "Option::is_none")]
6123 pub paidinvoices: Option<AutocleanstatusAutocleanPaidinvoices>,
6124 #[serde(skip_serializing_if = "Option::is_none")]
6125 pub succeededforwards: Option<AutocleanstatusAutocleanSucceededforwards>,
6126 #[serde(skip_serializing_if = "Option::is_none")]
6127 pub succeededpays: Option<AutocleanstatusAutocleanSucceededpays>,
6128 }
6129
6130 #[derive(Clone, Debug, Deserialize, Serialize)]
6131 pub struct AutocleanstatusResponse {
6132 pub autoclean: AutocleanstatusAutoclean,
6133 }
6134
6135 impl TryFrom<Response> for AutocleanstatusResponse {
6136 type Error = super::TryFromResponseError;
6137
6138 fn try_from(response: Response) -> Result<Self, Self::Error> {
6139 match response {
6140 Response::AutoCleanStatus(response) => Ok(response),
6141 _ => Err(TryFromResponseError)
6142 }
6143 }
6144 }
6145
6146 #[derive(Clone, Debug, Deserialize, Serialize)]
6147 pub struct CheckmessageResponse {
6148 pub pubkey: PublicKey,
6149 pub verified: bool,
6150 }
6151
6152 impl TryFrom<Response> for CheckmessageResponse {
6153 type Error = super::TryFromResponseError;
6154
6155 fn try_from(response: Response) -> Result<Self, Self::Error> {
6156 match response {
6157 Response::CheckMessage(response) => Ok(response),
6158 _ => Err(TryFromResponseError)
6159 }
6160 }
6161 }
6162
6163 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6165 #[allow(non_camel_case_types)]
6166 pub enum CloseType {
6167 #[serde(rename = "mutual")]
6168 MUTUAL = 0,
6169 #[serde(rename = "unilateral")]
6170 UNILATERAL = 1,
6171 #[serde(rename = "unopened")]
6172 UNOPENED = 2,
6173 }
6174
6175 impl TryFrom<i32> for CloseType {
6176 type Error = anyhow::Error;
6177 fn try_from(c: i32) -> Result<CloseType, anyhow::Error> {
6178 match c {
6179 0 => Ok(CloseType::MUTUAL),
6180 1 => Ok(CloseType::UNILATERAL),
6181 2 => Ok(CloseType::UNOPENED),
6182 o => Err(anyhow::anyhow!("Unknown variant {} for enum CloseType", o)),
6183 }
6184 }
6185 }
6186
6187 impl ToString for CloseType {
6188 fn to_string(&self) -> String {
6189 match self {
6190 CloseType::MUTUAL => "MUTUAL",
6191 CloseType::UNILATERAL => "UNILATERAL",
6192 CloseType::UNOPENED => "UNOPENED",
6193 }.to_string()
6194 }
6195 }
6196
6197 #[derive(Clone, Debug, Deserialize, Serialize)]
6198 pub struct CloseResponse {
6199 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
6200 pub txids: Option<Vec<String>>,
6201 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
6202 pub txs: Option<Vec<String>>,
6203 #[serde(rename = "type")]
6205 pub item_type: CloseType,
6206 }
6207
6208 impl TryFrom<Response> for CloseResponse {
6209 type Error = super::TryFromResponseError;
6210
6211 fn try_from(response: Response) -> Result<Self, Self::Error> {
6212 match response {
6213 Response::Close(response) => Ok(response),
6214 _ => Err(TryFromResponseError)
6215 }
6216 }
6217 }
6218
6219 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6221 #[allow(non_camel_case_types)]
6222 pub enum ConnectDirection {
6223 #[serde(rename = "in")]
6224 IN = 0,
6225 #[serde(rename = "out")]
6226 OUT = 1,
6227 }
6228
6229 impl TryFrom<i32> for ConnectDirection {
6230 type Error = anyhow::Error;
6231 fn try_from(c: i32) -> Result<ConnectDirection, anyhow::Error> {
6232 match c {
6233 0 => Ok(ConnectDirection::IN),
6234 1 => Ok(ConnectDirection::OUT),
6235 o => Err(anyhow::anyhow!("Unknown variant {} for enum ConnectDirection", o)),
6236 }
6237 }
6238 }
6239
6240 impl ToString for ConnectDirection {
6241 fn to_string(&self) -> String {
6242 match self {
6243 ConnectDirection::IN => "IN",
6244 ConnectDirection::OUT => "OUT",
6245 }.to_string()
6246 }
6247 }
6248
6249 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6251 #[allow(non_camel_case_types)]
6252 pub enum ConnectAddressType {
6253 #[serde(rename = "local socket")]
6254 LOCAL_SOCKET = 0,
6255 #[serde(rename = "ipv4")]
6256 IPV4 = 1,
6257 #[serde(rename = "ipv6")]
6258 IPV6 = 2,
6259 #[serde(rename = "torv2")]
6260 TORV2 = 3,
6261 #[serde(rename = "torv3")]
6262 TORV3 = 4,
6263 }
6264
6265 impl TryFrom<i32> for ConnectAddressType {
6266 type Error = anyhow::Error;
6267 fn try_from(c: i32) -> Result<ConnectAddressType, anyhow::Error> {
6268 match c {
6269 0 => Ok(ConnectAddressType::LOCAL_SOCKET),
6270 1 => Ok(ConnectAddressType::IPV4),
6271 2 => Ok(ConnectAddressType::IPV6),
6272 3 => Ok(ConnectAddressType::TORV2),
6273 4 => Ok(ConnectAddressType::TORV3),
6274 o => Err(anyhow::anyhow!("Unknown variant {} for enum ConnectAddressType", o)),
6275 }
6276 }
6277 }
6278
6279 impl ToString for ConnectAddressType {
6280 fn to_string(&self) -> String {
6281 match self {
6282 ConnectAddressType::LOCAL_SOCKET => "LOCAL_SOCKET",
6283 ConnectAddressType::IPV4 => "IPV4",
6284 ConnectAddressType::IPV6 => "IPV6",
6285 ConnectAddressType::TORV2 => "TORV2",
6286 ConnectAddressType::TORV3 => "TORV3",
6287 }.to_string()
6288 }
6289 }
6290
6291 #[derive(Clone, Debug, Deserialize, Serialize)]
6292 pub struct ConnectAddress {
6293 #[serde(skip_serializing_if = "Option::is_none")]
6294 pub address: Option<String>,
6295 #[serde(skip_serializing_if = "Option::is_none")]
6296 pub port: Option<u16>,
6297 #[serde(skip_serializing_if = "Option::is_none")]
6298 pub socket: Option<String>,
6299 #[serde(rename = "type")]
6301 pub item_type: ConnectAddressType,
6302 }
6303
6304 #[derive(Clone, Debug, Deserialize, Serialize)]
6305 pub struct ConnectResponse {
6306 pub direction: ConnectDirection,
6308 pub address: ConnectAddress,
6309 pub features: String,
6310 pub id: PublicKey,
6311 }
6312
6313 impl TryFrom<Response> for ConnectResponse {
6314 type Error = super::TryFromResponseError;
6315
6316 fn try_from(response: Response) -> Result<Self, Self::Error> {
6317 match response {
6318 Response::Connect(response) => Ok(response),
6319 _ => Err(TryFromResponseError)
6320 }
6321 }
6322 }
6323
6324 #[derive(Clone, Debug, Deserialize, Serialize)]
6325 pub struct CreateinvoicePaidOutpoint {
6326 pub outnum: u32,
6327 pub txid: String,
6328 }
6329
6330 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6332 #[allow(non_camel_case_types)]
6333 pub enum CreateinvoiceStatus {
6334 #[serde(rename = "paid")]
6335 PAID = 0,
6336 #[serde(rename = "expired")]
6337 EXPIRED = 1,
6338 #[serde(rename = "unpaid")]
6339 UNPAID = 2,
6340 }
6341
6342 impl TryFrom<i32> for CreateinvoiceStatus {
6343 type Error = anyhow::Error;
6344 fn try_from(c: i32) -> Result<CreateinvoiceStatus, anyhow::Error> {
6345 match c {
6346 0 => Ok(CreateinvoiceStatus::PAID),
6347 1 => Ok(CreateinvoiceStatus::EXPIRED),
6348 2 => Ok(CreateinvoiceStatus::UNPAID),
6349 o => Err(anyhow::anyhow!("Unknown variant {} for enum CreateinvoiceStatus", o)),
6350 }
6351 }
6352 }
6353
6354 impl ToString for CreateinvoiceStatus {
6355 fn to_string(&self) -> String {
6356 match self {
6357 CreateinvoiceStatus::PAID => "PAID",
6358 CreateinvoiceStatus::EXPIRED => "EXPIRED",
6359 CreateinvoiceStatus::UNPAID => "UNPAID",
6360 }.to_string()
6361 }
6362 }
6363
6364 #[derive(Clone, Debug, Deserialize, Serialize)]
6365 pub struct CreateinvoiceResponse {
6366 #[serde(skip_serializing_if = "Option::is_none")]
6367 pub amount_msat: Option<Amount>,
6368 #[serde(skip_serializing_if = "Option::is_none")]
6369 pub amount_received_msat: Option<Amount>,
6370 #[serde(skip_serializing_if = "Option::is_none")]
6371 pub bolt11: Option<String>,
6372 #[serde(skip_serializing_if = "Option::is_none")]
6373 pub bolt12: Option<String>,
6374 #[serde(skip_serializing_if = "Option::is_none")]
6375 pub invreq_payer_note: Option<String>,
6376 #[serde(skip_serializing_if = "Option::is_none")]
6377 pub local_offer_id: Option<String>,
6378 #[serde(skip_serializing_if = "Option::is_none")]
6379 pub paid_at: Option<u64>,
6380 #[serde(skip_serializing_if = "Option::is_none")]
6381 pub paid_outpoint: Option<CreateinvoicePaidOutpoint>,
6382 #[serde(skip_serializing_if = "Option::is_none")]
6383 pub pay_index: Option<u64>,
6384 #[serde(skip_serializing_if = "Option::is_none")]
6385 pub payment_preimage: Option<Secret>,
6386 pub status: CreateinvoiceStatus,
6388 pub created_index: u64,
6389 pub description: String,
6390 pub expires_at: u64,
6391 pub label: String,
6392 pub payment_hash: Sha256,
6393 }
6394
6395 impl TryFrom<Response> for CreateinvoiceResponse {
6396 type Error = super::TryFromResponseError;
6397
6398 fn try_from(response: Response) -> Result<Self, Self::Error> {
6399 match response {
6400 Response::CreateInvoice(response) => Ok(response),
6401 _ => Err(TryFromResponseError)
6402 }
6403 }
6404 }
6405
6406 #[derive(Clone, Debug, Deserialize, Serialize)]
6407 pub struct DatastoreResponse {
6408 #[serde(skip_serializing_if = "Option::is_none")]
6409 pub generation: Option<u64>,
6410 #[serde(skip_serializing_if = "Option::is_none")]
6411 pub hex: Option<String>,
6412 #[serde(skip_serializing_if = "Option::is_none")]
6413 pub string: Option<String>,
6414 pub key: Vec<String>,
6415 }
6416
6417 impl TryFrom<Response> for DatastoreResponse {
6418 type Error = super::TryFromResponseError;
6419
6420 fn try_from(response: Response) -> Result<Self, Self::Error> {
6421 match response {
6422 Response::Datastore(response) => Ok(response),
6423 _ => Err(TryFromResponseError)
6424 }
6425 }
6426 }
6427
6428 #[derive(Clone, Debug, Deserialize, Serialize)]
6429 pub struct DatastoreusageDatastoreusage {
6430 pub key: String,
6431 pub total_bytes: u64,
6432 }
6433
6434 #[derive(Clone, Debug, Deserialize, Serialize)]
6435 pub struct DatastoreusageResponse {
6436 pub datastoreusage: DatastoreusageDatastoreusage,
6437 }
6438
6439 impl TryFrom<Response> for DatastoreusageResponse {
6440 type Error = super::TryFromResponseError;
6441
6442 fn try_from(response: Response) -> Result<Self, Self::Error> {
6443 match response {
6444 Response::DatastoreUsage(response) => Ok(response),
6445 _ => Err(TryFromResponseError)
6446 }
6447 }
6448 }
6449
6450 #[derive(Clone, Debug, Deserialize, Serialize)]
6451 pub struct CreateonionResponse {
6452 pub onion: String,
6453 pub shared_secrets: Vec<Secret>,
6454 }
6455
6456 impl TryFrom<Response> for CreateonionResponse {
6457 type Error = super::TryFromResponseError;
6458
6459 fn try_from(response: Response) -> Result<Self, Self::Error> {
6460 match response {
6461 Response::CreateOnion(response) => Ok(response),
6462 _ => Err(TryFromResponseError)
6463 }
6464 }
6465 }
6466
6467 #[derive(Clone, Debug, Deserialize, Serialize)]
6468 pub struct DeldatastoreResponse {
6469 #[serde(skip_serializing_if = "Option::is_none")]
6470 pub generation: Option<u64>,
6471 #[serde(skip_serializing_if = "Option::is_none")]
6472 pub hex: Option<String>,
6473 #[serde(skip_serializing_if = "Option::is_none")]
6474 pub string: Option<String>,
6475 pub key: Vec<String>,
6476 }
6477
6478 impl TryFrom<Response> for DeldatastoreResponse {
6479 type Error = super::TryFromResponseError;
6480
6481 fn try_from(response: Response) -> Result<Self, Self::Error> {
6482 match response {
6483 Response::DelDatastore(response) => Ok(response),
6484 _ => Err(TryFromResponseError)
6485 }
6486 }
6487 }
6488
6489 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6491 #[allow(non_camel_case_types)]
6492 pub enum DelinvoiceStatus {
6493 #[serde(rename = "paid")]
6494 PAID = 0,
6495 #[serde(rename = "expired")]
6496 EXPIRED = 1,
6497 #[serde(rename = "unpaid")]
6498 UNPAID = 2,
6499 }
6500
6501 impl TryFrom<i32> for DelinvoiceStatus {
6502 type Error = anyhow::Error;
6503 fn try_from(c: i32) -> Result<DelinvoiceStatus, anyhow::Error> {
6504 match c {
6505 0 => Ok(DelinvoiceStatus::PAID),
6506 1 => Ok(DelinvoiceStatus::EXPIRED),
6507 2 => Ok(DelinvoiceStatus::UNPAID),
6508 o => Err(anyhow::anyhow!("Unknown variant {} for enum DelinvoiceStatus", o)),
6509 }
6510 }
6511 }
6512
6513 impl ToString for DelinvoiceStatus {
6514 fn to_string(&self) -> String {
6515 match self {
6516 DelinvoiceStatus::PAID => "PAID",
6517 DelinvoiceStatus::EXPIRED => "EXPIRED",
6518 DelinvoiceStatus::UNPAID => "UNPAID",
6519 }.to_string()
6520 }
6521 }
6522
6523 #[derive(Clone, Debug, Deserialize, Serialize)]
6524 pub struct DelinvoiceResponse {
6525 #[serde(skip_serializing_if = "Option::is_none")]
6526 pub amount_msat: Option<Amount>,
6527 #[serde(skip_serializing_if = "Option::is_none")]
6528 pub amount_received_msat: Option<Amount>,
6529 #[serde(skip_serializing_if = "Option::is_none")]
6530 pub bolt11: Option<String>,
6531 #[serde(skip_serializing_if = "Option::is_none")]
6532 pub bolt12: Option<String>,
6533 #[serde(skip_serializing_if = "Option::is_none")]
6534 pub description: Option<String>,
6535 #[serde(skip_serializing_if = "Option::is_none")]
6536 pub invreq_payer_note: Option<String>,
6537 #[serde(skip_serializing_if = "Option::is_none")]
6538 pub local_offer_id: Option<String>,
6539 #[serde(skip_serializing_if = "Option::is_none")]
6540 pub paid_at: Option<u64>,
6541 #[serde(skip_serializing_if = "Option::is_none")]
6542 pub pay_index: Option<u64>,
6543 #[serde(skip_serializing_if = "Option::is_none")]
6544 pub payment_preimage: Option<Secret>,
6545 #[serde(skip_serializing_if = "Option::is_none")]
6546 pub updated_index: Option<u64>,
6547 pub status: DelinvoiceStatus,
6549 pub created_index: u64,
6550 pub expires_at: u64,
6551 pub label: String,
6552 pub payment_hash: Sha256,
6553 }
6554
6555 impl TryFrom<Response> for DelinvoiceResponse {
6556 type Error = super::TryFromResponseError;
6557
6558 fn try_from(response: Response) -> Result<Self, Self::Error> {
6559 match response {
6560 Response::DelInvoice(response) => Ok(response),
6561 _ => Err(TryFromResponseError)
6562 }
6563 }
6564 }
6565
6566 #[derive(Clone, Debug, Deserialize, Serialize)]
6567 pub struct DevforgetchannelResponse {
6568 pub forced: bool,
6569 pub funding_txid: String,
6570 pub funding_unspent: bool,
6571 }
6572
6573 impl TryFrom<Response> for DevforgetchannelResponse {
6574 type Error = super::TryFromResponseError;
6575
6576 fn try_from(response: Response) -> Result<Self, Self::Error> {
6577 match response {
6578 Response::DevForgetChannel(response) => Ok(response),
6579 _ => Err(TryFromResponseError)
6580 }
6581 }
6582 }
6583
6584 #[derive(Clone, Debug, Deserialize, Serialize)]
6585 pub struct EmergencyrecoverResponse {
6586 pub stubs: Vec<Sha256>,
6587 }
6588
6589 impl TryFrom<Response> for EmergencyrecoverResponse {
6590 type Error = super::TryFromResponseError;
6591
6592 fn try_from(response: Response) -> Result<Self, Self::Error> {
6593 match response {
6594 Response::EmergencyRecover(response) => Ok(response),
6595 _ => Err(TryFromResponseError)
6596 }
6597 }
6598 }
6599
6600 #[derive(Clone, Debug, Deserialize, Serialize)]
6601 pub struct GetemergencyrecoverdataResponse {
6602 #[serde(skip_serializing_if = "Option::is_none")]
6603 pub can_create_penalty: Option<bool>,
6604 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
6605 pub backed_up_channel_ids: Option<Vec<Sha256>>,
6606 pub filedata: String,
6607 }
6608
6609 impl TryFrom<Response> for GetemergencyrecoverdataResponse {
6610 type Error = super::TryFromResponseError;
6611
6612 fn try_from(response: Response) -> Result<Self, Self::Error> {
6613 match response {
6614 Response::GetEmergencyRecoverData(response) => Ok(response),
6615 _ => Err(TryFromResponseError)
6616 }
6617 }
6618 }
6619
6620 #[derive(Clone, Debug, Deserialize, Serialize)]
6621 pub struct ExposesecretResponse {
6622 #[serde(skip_serializing_if = "Option::is_none")]
6623 pub mnemonic: Option<String>,
6624 pub codex32: String,
6625 pub identifier: String,
6626 }
6627
6628 impl TryFrom<Response> for ExposesecretResponse {
6629 type Error = super::TryFromResponseError;
6630
6631 fn try_from(response: Response) -> Result<Self, Self::Error> {
6632 match response {
6633 Response::ExposeSecret(response) => Ok(response),
6634 _ => Err(TryFromResponseError)
6635 }
6636 }
6637 }
6638
6639 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6640 #[allow(non_camel_case_types)]
6641 pub enum RecoverResult {
6642 #[serde(rename = "Recovery restart in progress")]
6643 RECOVERY_RESTART_IN_PROGRESS = 0,
6644 }
6645
6646 impl TryFrom<i32> for RecoverResult {
6647 type Error = anyhow::Error;
6648 fn try_from(c: i32) -> Result<RecoverResult, anyhow::Error> {
6649 match c {
6650 0 => Ok(RecoverResult::RECOVERY_RESTART_IN_PROGRESS),
6651 o => Err(anyhow::anyhow!("Unknown variant {} for enum RecoverResult", o)),
6652 }
6653 }
6654 }
6655
6656 impl ToString for RecoverResult {
6657 fn to_string(&self) -> String {
6658 match self {
6659 RecoverResult::RECOVERY_RESTART_IN_PROGRESS => "RECOVERY_RESTART_IN_PROGRESS",
6660 }.to_string()
6661 }
6662 }
6663
6664 #[derive(Clone, Debug, Deserialize, Serialize)]
6665 pub struct RecoverResponse {
6666 pub result: RecoverResult,
6668 }
6669
6670 impl TryFrom<Response> for RecoverResponse {
6671 type Error = super::TryFromResponseError;
6672
6673 fn try_from(response: Response) -> Result<Self, Self::Error> {
6674 match response {
6675 Response::Recover(response) => Ok(response),
6676 _ => Err(TryFromResponseError)
6677 }
6678 }
6679 }
6680
6681 #[derive(Clone, Debug, Deserialize, Serialize)]
6682 pub struct RecoverchannelResponse {
6683 pub stubs: Vec<String>,
6684 }
6685
6686 impl TryFrom<Response> for RecoverchannelResponse {
6687 type Error = super::TryFromResponseError;
6688
6689 fn try_from(response: Response) -> Result<Self, Self::Error> {
6690 match response {
6691 Response::RecoverChannel(response) => Ok(response),
6692 _ => Err(TryFromResponseError)
6693 }
6694 }
6695 }
6696
6697 #[derive(Clone, Debug, Deserialize, Serialize)]
6698 pub struct InvoiceResponse {
6699 #[serde(skip_serializing_if = "Option::is_none")]
6700 pub warning_capacity: Option<String>,
6701 #[serde(skip_serializing_if = "Option::is_none")]
6702 pub warning_deadends: Option<String>,
6703 #[serde(skip_serializing_if = "Option::is_none")]
6704 pub warning_mpp: Option<String>,
6705 #[serde(skip_serializing_if = "Option::is_none")]
6706 pub warning_offline: Option<String>,
6707 #[serde(skip_serializing_if = "Option::is_none")]
6708 pub warning_private_unused: Option<String>,
6709 pub bolt11: String,
6710 pub created_index: u64,
6711 pub expires_at: u64,
6712 pub payment_hash: Sha256,
6713 pub payment_secret: Secret,
6714 }
6715
6716 impl TryFrom<Response> for InvoiceResponse {
6717 type Error = super::TryFromResponseError;
6718
6719 fn try_from(response: Response) -> Result<Self, Self::Error> {
6720 match response {
6721 Response::Invoice(response) => Ok(response),
6722 _ => Err(TryFromResponseError)
6723 }
6724 }
6725 }
6726
6727 #[derive(Clone, Debug, Deserialize, Serialize)]
6728 pub struct InvoicerequestResponse {
6729 #[serde(skip_serializing_if = "Option::is_none")]
6730 pub label: Option<String>,
6731 pub active: bool,
6732 pub bolt12: String,
6733 pub invreq_id: Sha256,
6734 pub single_use: bool,
6735 pub used: bool,
6736 }
6737
6738 impl TryFrom<Response> for InvoicerequestResponse {
6739 type Error = super::TryFromResponseError;
6740
6741 fn try_from(response: Response) -> Result<Self, Self::Error> {
6742 match response {
6743 Response::InvoiceRequest(response) => Ok(response),
6744 _ => Err(TryFromResponseError)
6745 }
6746 }
6747 }
6748
6749 #[derive(Clone, Debug, Deserialize, Serialize)]
6750 pub struct DisableinvoicerequestResponse {
6751 #[serde(skip_serializing_if = "Option::is_none")]
6752 pub label: Option<String>,
6753 pub active: bool,
6754 pub bolt12: String,
6755 pub invreq_id: Sha256,
6756 pub single_use: bool,
6757 pub used: bool,
6758 }
6759
6760 impl TryFrom<Response> for DisableinvoicerequestResponse {
6761 type Error = super::TryFromResponseError;
6762
6763 fn try_from(response: Response) -> Result<Self, Self::Error> {
6764 match response {
6765 Response::DisableInvoiceRequest(response) => Ok(response),
6766 _ => Err(TryFromResponseError)
6767 }
6768 }
6769 }
6770
6771 #[derive(Clone, Debug, Deserialize, Serialize)]
6772 pub struct ListinvoicerequestsInvoicerequests {
6773 #[serde(skip_serializing_if = "Option::is_none")]
6774 pub label: Option<String>,
6775 pub active: bool,
6776 pub bolt12: String,
6777 pub invreq_id: Sha256,
6778 pub single_use: bool,
6779 pub used: bool,
6780 }
6781
6782 #[derive(Clone, Debug, Deserialize, Serialize)]
6783 pub struct ListinvoicerequestsResponse {
6784 pub invoicerequests: Vec<ListinvoicerequestsInvoicerequests>,
6785 }
6786
6787 impl TryFrom<Response> for ListinvoicerequestsResponse {
6788 type Error = super::TryFromResponseError;
6789
6790 fn try_from(response: Response) -> Result<Self, Self::Error> {
6791 match response {
6792 Response::ListInvoiceRequests(response) => Ok(response),
6793 _ => Err(TryFromResponseError)
6794 }
6795 }
6796 }
6797
6798 #[derive(Clone, Debug, Deserialize, Serialize)]
6799 pub struct ListdatastoreDatastore {
6800 #[serde(skip_serializing_if = "Option::is_none")]
6801 pub generation: Option<u64>,
6802 #[serde(skip_serializing_if = "Option::is_none")]
6803 pub hex: Option<String>,
6804 #[serde(skip_serializing_if = "Option::is_none")]
6805 pub string: Option<String>,
6806 pub key: Vec<String>,
6807 }
6808
6809 #[derive(Clone, Debug, Deserialize, Serialize)]
6810 pub struct ListdatastoreResponse {
6811 pub datastore: Vec<ListdatastoreDatastore>,
6812 }
6813
6814 impl TryFrom<Response> for ListdatastoreResponse {
6815 type Error = super::TryFromResponseError;
6816
6817 fn try_from(response: Response) -> Result<Self, Self::Error> {
6818 match response {
6819 Response::ListDatastore(response) => Ok(response),
6820 _ => Err(TryFromResponseError)
6821 }
6822 }
6823 }
6824
6825 #[derive(Clone, Debug, Deserialize, Serialize)]
6826 pub struct ListinvoicesInvoicesPaidOutpoint {
6827 pub outnum: u32,
6828 pub txid: String,
6829 }
6830
6831 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6833 #[allow(non_camel_case_types)]
6834 pub enum ListinvoicesInvoicesStatus {
6835 #[serde(rename = "unpaid")]
6836 UNPAID = 0,
6837 #[serde(rename = "paid")]
6838 PAID = 1,
6839 #[serde(rename = "expired")]
6840 EXPIRED = 2,
6841 }
6842
6843 impl TryFrom<i32> for ListinvoicesInvoicesStatus {
6844 type Error = anyhow::Error;
6845 fn try_from(c: i32) -> Result<ListinvoicesInvoicesStatus, anyhow::Error> {
6846 match c {
6847 0 => Ok(ListinvoicesInvoicesStatus::UNPAID),
6848 1 => Ok(ListinvoicesInvoicesStatus::PAID),
6849 2 => Ok(ListinvoicesInvoicesStatus::EXPIRED),
6850 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListinvoicesInvoicesStatus", o)),
6851 }
6852 }
6853 }
6854
6855 impl ToString for ListinvoicesInvoicesStatus {
6856 fn to_string(&self) -> String {
6857 match self {
6858 ListinvoicesInvoicesStatus::UNPAID => "UNPAID",
6859 ListinvoicesInvoicesStatus::PAID => "PAID",
6860 ListinvoicesInvoicesStatus::EXPIRED => "EXPIRED",
6861 }.to_string()
6862 }
6863 }
6864
6865 #[derive(Clone, Debug, Deserialize, Serialize)]
6866 pub struct ListinvoicesInvoices {
6867 #[serde(skip_serializing_if = "Option::is_none")]
6868 pub amount_msat: Option<Amount>,
6869 #[serde(skip_serializing_if = "Option::is_none")]
6870 pub amount_received_msat: Option<Amount>,
6871 #[serde(skip_serializing_if = "Option::is_none")]
6872 pub bolt11: Option<String>,
6873 #[serde(skip_serializing_if = "Option::is_none")]
6874 pub bolt12: Option<String>,
6875 #[serde(skip_serializing_if = "Option::is_none")]
6876 pub description: Option<String>,
6877 #[serde(skip_serializing_if = "Option::is_none")]
6878 pub invreq_payer_note: Option<String>,
6879 #[serde(skip_serializing_if = "Option::is_none")]
6880 pub local_offer_id: Option<Sha256>,
6881 #[serde(skip_serializing_if = "Option::is_none")]
6882 pub paid_at: Option<u64>,
6883 #[serde(skip_serializing_if = "Option::is_none")]
6884 pub paid_outpoint: Option<ListinvoicesInvoicesPaidOutpoint>,
6885 #[serde(skip_serializing_if = "Option::is_none")]
6886 pub pay_index: Option<u64>,
6887 #[serde(skip_serializing_if = "Option::is_none")]
6888 pub payment_preimage: Option<Secret>,
6889 #[serde(skip_serializing_if = "Option::is_none")]
6890 pub updated_index: Option<u64>,
6891 pub status: ListinvoicesInvoicesStatus,
6893 pub created_index: u64,
6894 pub expires_at: u64,
6895 pub label: String,
6896 pub payment_hash: Sha256,
6897 }
6898
6899 #[derive(Clone, Debug, Deserialize, Serialize)]
6900 pub struct ListinvoicesResponse {
6901 pub invoices: Vec<ListinvoicesInvoices>,
6902 }
6903
6904 impl TryFrom<Response> for ListinvoicesResponse {
6905 type Error = super::TryFromResponseError;
6906
6907 fn try_from(response: Response) -> Result<Self, Self::Error> {
6908 match response {
6909 Response::ListInvoices(response) => Ok(response),
6910 _ => Err(TryFromResponseError)
6911 }
6912 }
6913 }
6914
6915 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6917 #[allow(non_camel_case_types)]
6918 pub enum SendonionStatus {
6919 #[serde(rename = "pending")]
6920 PENDING = 0,
6921 #[serde(rename = "complete")]
6922 COMPLETE = 1,
6923 }
6924
6925 impl TryFrom<i32> for SendonionStatus {
6926 type Error = anyhow::Error;
6927 fn try_from(c: i32) -> Result<SendonionStatus, anyhow::Error> {
6928 match c {
6929 0 => Ok(SendonionStatus::PENDING),
6930 1 => Ok(SendonionStatus::COMPLETE),
6931 o => Err(anyhow::anyhow!("Unknown variant {} for enum SendonionStatus", o)),
6932 }
6933 }
6934 }
6935
6936 impl ToString for SendonionStatus {
6937 fn to_string(&self) -> String {
6938 match self {
6939 SendonionStatus::PENDING => "PENDING",
6940 SendonionStatus::COMPLETE => "COMPLETE",
6941 }.to_string()
6942 }
6943 }
6944
6945 #[derive(Clone, Debug, Deserialize, Serialize)]
6946 pub struct SendonionResponse {
6947 #[serde(skip_serializing_if = "Option::is_none")]
6948 pub amount_msat: Option<Amount>,
6949 #[serde(skip_serializing_if = "Option::is_none")]
6950 pub bolt11: Option<String>,
6951 #[serde(skip_serializing_if = "Option::is_none")]
6952 pub bolt12: Option<String>,
6953 #[serde(skip_serializing_if = "Option::is_none")]
6954 pub destination: Option<PublicKey>,
6955 #[serde(skip_serializing_if = "Option::is_none")]
6956 pub label: Option<String>,
6957 #[serde(skip_serializing_if = "Option::is_none")]
6958 pub message: Option<String>,
6959 #[serde(skip_serializing_if = "Option::is_none")]
6960 pub partid: Option<u64>,
6961 #[serde(skip_serializing_if = "Option::is_none")]
6962 pub payment_preimage: Option<Secret>,
6963 #[serde(skip_serializing_if = "Option::is_none")]
6964 pub updated_index: Option<u64>,
6965 pub status: SendonionStatus,
6967 pub amount_sent_msat: Amount,
6968 pub created_at: u64,
6969 pub created_index: u64,
6970 pub id: u64,
6971 pub payment_hash: Sha256,
6972 }
6973
6974 impl TryFrom<Response> for SendonionResponse {
6975 type Error = super::TryFromResponseError;
6976
6977 fn try_from(response: Response) -> Result<Self, Self::Error> {
6978 match response {
6979 Response::SendOnion(response) => Ok(response),
6980 _ => Err(TryFromResponseError)
6981 }
6982 }
6983 }
6984
6985 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
6987 #[allow(non_camel_case_types)]
6988 pub enum ListsendpaysPaymentsStatus {
6989 #[serde(rename = "pending")]
6990 PENDING = 0,
6991 #[serde(rename = "failed")]
6992 FAILED = 1,
6993 #[serde(rename = "complete")]
6994 COMPLETE = 2,
6995 }
6996
6997 impl TryFrom<i32> for ListsendpaysPaymentsStatus {
6998 type Error = anyhow::Error;
6999 fn try_from(c: i32) -> Result<ListsendpaysPaymentsStatus, anyhow::Error> {
7000 match c {
7001 0 => Ok(ListsendpaysPaymentsStatus::PENDING),
7002 1 => Ok(ListsendpaysPaymentsStatus::FAILED),
7003 2 => Ok(ListsendpaysPaymentsStatus::COMPLETE),
7004 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysPaymentsStatus", o)),
7005 }
7006 }
7007 }
7008
7009 impl ToString for ListsendpaysPaymentsStatus {
7010 fn to_string(&self) -> String {
7011 match self {
7012 ListsendpaysPaymentsStatus::PENDING => "PENDING",
7013 ListsendpaysPaymentsStatus::FAILED => "FAILED",
7014 ListsendpaysPaymentsStatus::COMPLETE => "COMPLETE",
7015 }.to_string()
7016 }
7017 }
7018
7019 #[derive(Clone, Debug, Deserialize, Serialize)]
7020 pub struct ListsendpaysPayments {
7021 #[serde(skip_serializing_if = "Option::is_none")]
7022 pub amount_msat: Option<Amount>,
7023 #[serde(skip_serializing_if = "Option::is_none")]
7024 pub bolt11: Option<String>,
7025 #[serde(skip_serializing_if = "Option::is_none")]
7026 pub bolt12: Option<String>,
7027 #[serde(skip_serializing_if = "Option::is_none")]
7028 pub completed_at: Option<u64>,
7029 #[serde(skip_serializing_if = "Option::is_none")]
7030 pub description: Option<String>,
7031 #[serde(skip_serializing_if = "Option::is_none")]
7032 pub destination: Option<PublicKey>,
7033 #[serde(skip_serializing_if = "Option::is_none")]
7034 pub erroronion: Option<String>,
7035 #[serde(skip_serializing_if = "Option::is_none")]
7036 pub label: Option<String>,
7037 #[serde(skip_serializing_if = "Option::is_none")]
7038 pub partid: Option<u64>,
7039 #[serde(skip_serializing_if = "Option::is_none")]
7040 pub payment_preimage: Option<Secret>,
7041 #[serde(skip_serializing_if = "Option::is_none")]
7042 pub updated_index: Option<u64>,
7043 pub status: ListsendpaysPaymentsStatus,
7045 pub amount_sent_msat: Amount,
7046 pub created_at: u64,
7047 pub created_index: u64,
7048 pub groupid: u64,
7049 pub id: u64,
7050 pub payment_hash: Sha256,
7051 }
7052
7053 #[derive(Clone, Debug, Deserialize, Serialize)]
7054 pub struct ListsendpaysResponse {
7055 pub payments: Vec<ListsendpaysPayments>,
7056 }
7057
7058 impl TryFrom<Response> for ListsendpaysResponse {
7059 type Error = super::TryFromResponseError;
7060
7061 fn try_from(response: Response) -> Result<Self, Self::Error> {
7062 match response {
7063 Response::ListSendPays(response) => Ok(response),
7064 _ => Err(TryFromResponseError)
7065 }
7066 }
7067 }
7068
7069 #[derive(Clone, Debug, Deserialize, Serialize)]
7070 pub struct ListtransactionsTransactionsInputs {
7071 pub index: u32,
7072 pub sequence: u32,
7073 pub txid: String,
7074 }
7075
7076 #[derive(Clone, Debug, Deserialize, Serialize)]
7077 pub struct ListtransactionsTransactionsOutputs {
7078 #[serde(rename = "scriptPubKey")]
7079 pub script_pub_key: String,
7080 pub amount_msat: Amount,
7081 pub index: u32,
7082 }
7083
7084 #[derive(Clone, Debug, Deserialize, Serialize)]
7085 pub struct ListtransactionsTransactions {
7086 pub blockheight: u32,
7087 pub hash: String,
7088 pub inputs: Vec<ListtransactionsTransactionsInputs>,
7089 pub locktime: u32,
7090 pub outputs: Vec<ListtransactionsTransactionsOutputs>,
7091 pub rawtx: String,
7092 pub txindex: u32,
7093 pub version: u32,
7094 }
7095
7096 #[derive(Clone, Debug, Deserialize, Serialize)]
7097 pub struct ListtransactionsResponse {
7098 pub transactions: Vec<ListtransactionsTransactions>,
7099 }
7100
7101 impl TryFrom<Response> for ListtransactionsResponse {
7102 type Error = super::TryFromResponseError;
7103
7104 fn try_from(response: Response) -> Result<Self, Self::Error> {
7105 match response {
7106 Response::ListTransactions(response) => Ok(response),
7107 _ => Err(TryFromResponseError)
7108 }
7109 }
7110 }
7111
7112 #[derive(Clone, Debug, Deserialize, Serialize)]
7113 pub struct MakesecretResponse {
7114 pub secret: Secret,
7115 }
7116
7117 impl TryFrom<Response> for MakesecretResponse {
7118 type Error = super::TryFromResponseError;
7119
7120 fn try_from(response: Response) -> Result<Self, Self::Error> {
7121 match response {
7122 Response::MakeSecret(response) => Ok(response),
7123 _ => Err(TryFromResponseError)
7124 }
7125 }
7126 }
7127
7128 #[deprecated]
7130 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7131 #[allow(non_camel_case_types)]
7132 pub enum PayStatus {
7133 #[serde(rename = "complete")]
7134 COMPLETE = 0,
7135 #[serde(rename = "pending")]
7136 PENDING = 1,
7137 #[serde(rename = "failed")]
7138 FAILED = 2,
7139 }
7140
7141 impl TryFrom<i32> for PayStatus {
7142 type Error = anyhow::Error;
7143 fn try_from(c: i32) -> Result<PayStatus, anyhow::Error> {
7144 match c {
7145 0 => Ok(PayStatus::COMPLETE),
7146 1 => Ok(PayStatus::PENDING),
7147 2 => Ok(PayStatus::FAILED),
7148 o => Err(anyhow::anyhow!("Unknown variant {} for enum PayStatus", o)),
7149 }
7150 }
7151 }
7152
7153 impl ToString for PayStatus {
7154 fn to_string(&self) -> String {
7155 match self {
7156 PayStatus::COMPLETE => "COMPLETE",
7157 PayStatus::PENDING => "PENDING",
7158 PayStatus::FAILED => "FAILED",
7159 }.to_string()
7160 }
7161 }
7162
7163 #[deprecated = "deprecated since CLN v26.06"]
7164 #[derive(Clone, Debug, Deserialize, Serialize)]
7165 pub struct PayResponse {
7166 #[deprecated]
7167 #[serde(skip_serializing_if = "Option::is_none")]
7168 pub destination: Option<PublicKey>,
7169 #[deprecated]
7170 #[serde(skip_serializing_if = "Option::is_none")]
7171 pub warning_partial_completion: Option<String>,
7172 #[deprecated]
7173 pub amount_msat: Amount,
7174 #[deprecated]
7175 pub amount_sent_msat: Amount,
7176 #[deprecated]
7177 pub created_at: f64,
7178 #[deprecated]
7179 pub parts: u32,
7180 #[deprecated]
7181 pub payment_hash: Sha256,
7182 #[deprecated]
7183 pub payment_preimage: Secret,
7184 pub status: PayStatus,
7186 }
7187
7188 impl TryFrom<Response> for PayResponse {
7189 type Error = super::TryFromResponseError;
7190
7191 fn try_from(response: Response) -> Result<Self, Self::Error> {
7192 match response {
7193 Response::Pay(response) => Ok(response),
7194 _ => Err(TryFromResponseError)
7195 }
7196 }
7197 }
7198
7199 #[derive(Clone, Debug, Deserialize, Serialize)]
7200 pub struct ListnodesNodesOptionWillFund {
7201 pub channel_fee_max_base_msat: Amount,
7202 pub channel_fee_max_proportional_thousandths: u32,
7203 pub compact_lease: String,
7204 pub funding_weight: u32,
7205 pub lease_fee_base_msat: Amount,
7206 pub lease_fee_basis: u32,
7207 }
7208
7209 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7211 #[allow(non_camel_case_types)]
7212 pub enum ListnodesNodesAddressesType {
7213 #[serde(rename = "dns")]
7214 DNS = 0,
7215 #[serde(rename = "ipv4")]
7216 IPV4 = 1,
7217 #[serde(rename = "ipv6")]
7218 IPV6 = 2,
7219 #[serde(rename = "torv2")]
7220 TORV2 = 3,
7221 #[serde(rename = "torv3")]
7222 TORV3 = 4,
7223 }
7224
7225 impl TryFrom<i32> for ListnodesNodesAddressesType {
7226 type Error = anyhow::Error;
7227 fn try_from(c: i32) -> Result<ListnodesNodesAddressesType, anyhow::Error> {
7228 match c {
7229 0 => Ok(ListnodesNodesAddressesType::DNS),
7230 1 => Ok(ListnodesNodesAddressesType::IPV4),
7231 2 => Ok(ListnodesNodesAddressesType::IPV6),
7232 3 => Ok(ListnodesNodesAddressesType::TORV2),
7233 4 => Ok(ListnodesNodesAddressesType::TORV3),
7234 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListnodesNodesAddressesType", o)),
7235 }
7236 }
7237 }
7238
7239 impl ToString for ListnodesNodesAddressesType {
7240 fn to_string(&self) -> String {
7241 match self {
7242 ListnodesNodesAddressesType::DNS => "DNS",
7243 ListnodesNodesAddressesType::IPV4 => "IPV4",
7244 ListnodesNodesAddressesType::IPV6 => "IPV6",
7245 ListnodesNodesAddressesType::TORV2 => "TORV2",
7246 ListnodesNodesAddressesType::TORV3 => "TORV3",
7247 }.to_string()
7248 }
7249 }
7250
7251 #[derive(Clone, Debug, Deserialize, Serialize)]
7252 pub struct ListnodesNodesAddresses {
7253 #[serde(skip_serializing_if = "Option::is_none")]
7254 pub address: Option<String>,
7255 #[serde(rename = "type")]
7257 pub item_type: ListnodesNodesAddressesType,
7258 pub port: u16,
7259 }
7260
7261 #[derive(Clone, Debug, Deserialize, Serialize)]
7262 pub struct ListnodesNodes {
7263 #[serde(skip_serializing_if = "Option::is_none")]
7264 pub alias: Option<String>,
7265 #[serde(skip_serializing_if = "Option::is_none")]
7266 pub color: Option<String>,
7267 #[serde(skip_serializing_if = "Option::is_none")]
7268 pub features: Option<String>,
7269 #[serde(skip_serializing_if = "Option::is_none")]
7270 pub last_timestamp: Option<u32>,
7271 #[serde(skip_serializing_if = "Option::is_none")]
7272 pub option_will_fund: Option<ListnodesNodesOptionWillFund>,
7273 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
7274 pub addresses: Option<Vec<ListnodesNodesAddresses>>,
7275 pub nodeid: PublicKey,
7276 }
7277
7278 #[derive(Clone, Debug, Deserialize, Serialize)]
7279 pub struct ListnodesResponse {
7280 pub nodes: Vec<ListnodesNodes>,
7281 }
7282
7283 impl TryFrom<Response> for ListnodesResponse {
7284 type Error = super::TryFromResponseError;
7285
7286 fn try_from(response: Response) -> Result<Self, Self::Error> {
7287 match response {
7288 Response::ListNodes(response) => Ok(response),
7289 _ => Err(TryFromResponseError)
7290 }
7291 }
7292 }
7293
7294 #[derive(Clone, Debug, Deserialize, Serialize)]
7295 pub struct WaitanyinvoicePaidOutpoint {
7296 pub outnum: u32,
7297 pub txid: String,
7298 }
7299
7300 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7302 #[allow(non_camel_case_types)]
7303 pub enum WaitanyinvoiceStatus {
7304 #[serde(rename = "paid")]
7305 PAID = 0,
7306 #[serde(rename = "expired")]
7307 EXPIRED = 1,
7308 }
7309
7310 impl TryFrom<i32> for WaitanyinvoiceStatus {
7311 type Error = anyhow::Error;
7312 fn try_from(c: i32) -> Result<WaitanyinvoiceStatus, anyhow::Error> {
7313 match c {
7314 0 => Ok(WaitanyinvoiceStatus::PAID),
7315 1 => Ok(WaitanyinvoiceStatus::EXPIRED),
7316 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitanyinvoiceStatus", o)),
7317 }
7318 }
7319 }
7320
7321 impl ToString for WaitanyinvoiceStatus {
7322 fn to_string(&self) -> String {
7323 match self {
7324 WaitanyinvoiceStatus::PAID => "PAID",
7325 WaitanyinvoiceStatus::EXPIRED => "EXPIRED",
7326 }.to_string()
7327 }
7328 }
7329
7330 #[derive(Clone, Debug, Deserialize, Serialize)]
7331 pub struct WaitanyinvoiceResponse {
7332 #[serde(skip_serializing_if = "Option::is_none")]
7333 pub amount_msat: Option<Amount>,
7334 #[serde(skip_serializing_if = "Option::is_none")]
7335 pub amount_received_msat: Option<Amount>,
7336 #[serde(skip_serializing_if = "Option::is_none")]
7337 pub bolt11: Option<String>,
7338 #[serde(skip_serializing_if = "Option::is_none")]
7339 pub bolt12: Option<String>,
7340 #[serde(skip_serializing_if = "Option::is_none")]
7341 pub description: Option<String>,
7342 #[serde(skip_serializing_if = "Option::is_none")]
7343 pub paid_at: Option<u64>,
7344 #[serde(skip_serializing_if = "Option::is_none")]
7345 pub paid_outpoint: Option<WaitanyinvoicePaidOutpoint>,
7346 #[serde(skip_serializing_if = "Option::is_none")]
7347 pub pay_index: Option<u64>,
7348 #[serde(skip_serializing_if = "Option::is_none")]
7349 pub payment_preimage: Option<Secret>,
7350 #[serde(skip_serializing_if = "Option::is_none")]
7351 pub updated_index: Option<u64>,
7352 pub status: WaitanyinvoiceStatus,
7354 pub created_index: u64,
7355 pub expires_at: u64,
7356 pub label: String,
7357 pub payment_hash: Sha256,
7358 }
7359
7360 impl TryFrom<Response> for WaitanyinvoiceResponse {
7361 type Error = super::TryFromResponseError;
7362
7363 fn try_from(response: Response) -> Result<Self, Self::Error> {
7364 match response {
7365 Response::WaitAnyInvoice(response) => Ok(response),
7366 _ => Err(TryFromResponseError)
7367 }
7368 }
7369 }
7370
7371 #[derive(Clone, Debug, Deserialize, Serialize)]
7372 pub struct WaitinvoicePaidOutpoint {
7373 pub outnum: u32,
7374 pub txid: String,
7375 }
7376
7377 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7379 #[allow(non_camel_case_types)]
7380 pub enum WaitinvoiceStatus {
7381 #[serde(rename = "paid")]
7382 PAID = 0,
7383 #[serde(rename = "expired")]
7384 EXPIRED = 1,
7385 }
7386
7387 impl TryFrom<i32> for WaitinvoiceStatus {
7388 type Error = anyhow::Error;
7389 fn try_from(c: i32) -> Result<WaitinvoiceStatus, anyhow::Error> {
7390 match c {
7391 0 => Ok(WaitinvoiceStatus::PAID),
7392 1 => Ok(WaitinvoiceStatus::EXPIRED),
7393 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitinvoiceStatus", o)),
7394 }
7395 }
7396 }
7397
7398 impl ToString for WaitinvoiceStatus {
7399 fn to_string(&self) -> String {
7400 match self {
7401 WaitinvoiceStatus::PAID => "PAID",
7402 WaitinvoiceStatus::EXPIRED => "EXPIRED",
7403 }.to_string()
7404 }
7405 }
7406
7407 #[derive(Clone, Debug, Deserialize, Serialize)]
7408 pub struct WaitinvoiceResponse {
7409 #[serde(skip_serializing_if = "Option::is_none")]
7410 pub amount_msat: Option<Amount>,
7411 #[serde(skip_serializing_if = "Option::is_none")]
7412 pub amount_received_msat: Option<Amount>,
7413 #[serde(skip_serializing_if = "Option::is_none")]
7414 pub bolt11: Option<String>,
7415 #[serde(skip_serializing_if = "Option::is_none")]
7416 pub bolt12: Option<String>,
7417 #[serde(skip_serializing_if = "Option::is_none")]
7418 pub description: Option<String>,
7419 #[serde(skip_serializing_if = "Option::is_none")]
7420 pub paid_at: Option<u64>,
7421 #[serde(skip_serializing_if = "Option::is_none")]
7422 pub paid_outpoint: Option<WaitinvoicePaidOutpoint>,
7423 #[serde(skip_serializing_if = "Option::is_none")]
7424 pub pay_index: Option<u64>,
7425 #[serde(skip_serializing_if = "Option::is_none")]
7426 pub payment_preimage: Option<Secret>,
7427 #[serde(skip_serializing_if = "Option::is_none")]
7428 pub updated_index: Option<u64>,
7429 pub status: WaitinvoiceStatus,
7431 pub created_index: u64,
7432 pub expires_at: u64,
7433 pub label: String,
7434 pub payment_hash: Sha256,
7435 }
7436
7437 impl TryFrom<Response> for WaitinvoiceResponse {
7438 type Error = super::TryFromResponseError;
7439
7440 fn try_from(response: Response) -> Result<Self, Self::Error> {
7441 match response {
7442 Response::WaitInvoice(response) => Ok(response),
7443 _ => Err(TryFromResponseError)
7444 }
7445 }
7446 }
7447
7448 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7450 #[allow(non_camel_case_types)]
7451 pub enum WaitsendpayStatus {
7452 #[serde(rename = "complete")]
7453 COMPLETE = 0,
7454 }
7455
7456 impl TryFrom<i32> for WaitsendpayStatus {
7457 type Error = anyhow::Error;
7458 fn try_from(c: i32) -> Result<WaitsendpayStatus, anyhow::Error> {
7459 match c {
7460 0 => Ok(WaitsendpayStatus::COMPLETE),
7461 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitsendpayStatus", o)),
7462 }
7463 }
7464 }
7465
7466 impl ToString for WaitsendpayStatus {
7467 fn to_string(&self) -> String {
7468 match self {
7469 WaitsendpayStatus::COMPLETE => "COMPLETE",
7470 }.to_string()
7471 }
7472 }
7473
7474 #[derive(Clone, Debug, Deserialize, Serialize)]
7475 pub struct WaitsendpayResponse {
7476 #[serde(skip_serializing_if = "Option::is_none")]
7477 pub amount_msat: Option<Amount>,
7478 #[serde(skip_serializing_if = "Option::is_none")]
7479 pub bolt11: Option<String>,
7480 #[serde(skip_serializing_if = "Option::is_none")]
7481 pub bolt12: Option<String>,
7482 #[serde(skip_serializing_if = "Option::is_none")]
7483 pub completed_at: Option<f64>,
7484 #[serde(skip_serializing_if = "Option::is_none")]
7485 pub destination: Option<PublicKey>,
7486 #[serde(skip_serializing_if = "Option::is_none")]
7487 pub groupid: Option<u64>,
7488 #[serde(skip_serializing_if = "Option::is_none")]
7489 pub label: Option<String>,
7490 #[serde(skip_serializing_if = "Option::is_none")]
7491 pub partid: Option<u64>,
7492 #[serde(skip_serializing_if = "Option::is_none")]
7493 pub payment_preimage: Option<Secret>,
7494 #[serde(skip_serializing_if = "Option::is_none")]
7495 pub updated_index: Option<u64>,
7496 pub status: WaitsendpayStatus,
7498 pub amount_sent_msat: Amount,
7499 pub created_at: u64,
7500 pub created_index: u64,
7501 pub id: u64,
7502 pub payment_hash: Sha256,
7503 }
7504
7505 impl TryFrom<Response> for WaitsendpayResponse {
7506 type Error = super::TryFromResponseError;
7507
7508 fn try_from(response: Response) -> Result<Self, Self::Error> {
7509 match response {
7510 Response::WaitSendPay(response) => Ok(response),
7511 _ => Err(TryFromResponseError)
7512 }
7513 }
7514 }
7515
7516 #[derive(Clone, Debug, Deserialize, Serialize)]
7517 pub struct NewaddrResponse {
7518 #[serde(skip_serializing_if = "Option::is_none")]
7519 pub bech32: Option<String>,
7520 #[serde(skip_serializing_if = "Option::is_none")]
7521 pub p2tr: Option<String>,
7522 }
7523
7524 impl TryFrom<Response> for NewaddrResponse {
7525 type Error = super::TryFromResponseError;
7526
7527 fn try_from(response: Response) -> Result<Self, Self::Error> {
7528 match response {
7529 Response::NewAddr(response) => Ok(response),
7530 _ => Err(TryFromResponseError)
7531 }
7532 }
7533 }
7534
7535 #[derive(Clone, Debug, Deserialize, Serialize)]
7536 pub struct WithdrawResponse {
7537 pub psbt: String,
7538 pub tx: String,
7539 pub txid: String,
7540 }
7541
7542 impl TryFrom<Response> for WithdrawResponse {
7543 type Error = super::TryFromResponseError;
7544
7545 fn try_from(response: Response) -> Result<Self, Self::Error> {
7546 match response {
7547 Response::Withdraw(response) => Ok(response),
7548 _ => Err(TryFromResponseError)
7549 }
7550 }
7551 }
7552
7553 #[deprecated]
7555 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7556 #[allow(non_camel_case_types)]
7557 pub enum KeysendStatus {
7558 #[serde(rename = "complete")]
7559 COMPLETE = 0,
7560 }
7561
7562 impl TryFrom<i32> for KeysendStatus {
7563 type Error = anyhow::Error;
7564 fn try_from(c: i32) -> Result<KeysendStatus, anyhow::Error> {
7565 match c {
7566 0 => Ok(KeysendStatus::COMPLETE),
7567 o => Err(anyhow::anyhow!("Unknown variant {} for enum KeysendStatus", o)),
7568 }
7569 }
7570 }
7571
7572 impl ToString for KeysendStatus {
7573 fn to_string(&self) -> String {
7574 match self {
7575 KeysendStatus::COMPLETE => "COMPLETE",
7576 }.to_string()
7577 }
7578 }
7579
7580 #[deprecated = "deprecated since CLN v26.06"]
7581 #[derive(Clone, Debug, Deserialize, Serialize)]
7582 pub struct KeysendResponse {
7583 #[deprecated]
7584 #[serde(skip_serializing_if = "Option::is_none")]
7585 pub destination: Option<PublicKey>,
7586 #[deprecated]
7587 #[serde(skip_serializing_if = "Option::is_none")]
7588 pub warning_partial_completion: Option<String>,
7589 #[deprecated]
7590 pub amount_msat: Amount,
7591 #[deprecated]
7592 pub amount_sent_msat: Amount,
7593 #[deprecated]
7594 pub created_at: f64,
7595 #[deprecated]
7596 pub parts: u32,
7597 #[deprecated]
7598 pub payment_hash: Sha256,
7599 #[deprecated]
7600 pub payment_preimage: Secret,
7601 pub status: KeysendStatus,
7603 }
7604
7605 impl TryFrom<Response> for KeysendResponse {
7606 type Error = super::TryFromResponseError;
7607
7608 fn try_from(response: Response) -> Result<Self, Self::Error> {
7609 match response {
7610 Response::KeySend(response) => Ok(response),
7611 _ => Err(TryFromResponseError)
7612 }
7613 }
7614 }
7615
7616 #[derive(Clone, Debug, Deserialize, Serialize)]
7617 pub struct FundpsbtReservations {
7618 pub reserved: bool,
7619 pub reserved_to_block: u32,
7620 pub txid: String,
7621 pub vout: u32,
7622 pub was_reserved: bool,
7623 }
7624
7625 #[derive(Clone, Debug, Deserialize, Serialize)]
7626 pub struct FundpsbtResponse {
7627 #[serde(skip_serializing_if = "Option::is_none")]
7628 pub change_outnum: Option<u32>,
7629 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
7630 pub reservations: Option<Vec<FundpsbtReservations>>,
7631 pub estimated_final_weight: u32,
7632 pub excess_msat: Amount,
7633 pub feerate_per_kw: u32,
7634 pub psbt: String,
7635 }
7636
7637 impl TryFrom<Response> for FundpsbtResponse {
7638 type Error = super::TryFromResponseError;
7639
7640 fn try_from(response: Response) -> Result<Self, Self::Error> {
7641 match response {
7642 Response::FundPsbt(response) => Ok(response),
7643 _ => Err(TryFromResponseError)
7644 }
7645 }
7646 }
7647
7648 #[derive(Clone, Debug, Deserialize, Serialize)]
7649 pub struct SendpsbtResponse {
7650 pub tx: String,
7651 pub txid: String,
7652 }
7653
7654 impl TryFrom<Response> for SendpsbtResponse {
7655 type Error = super::TryFromResponseError;
7656
7657 fn try_from(response: Response) -> Result<Self, Self::Error> {
7658 match response {
7659 Response::SendPsbt(response) => Ok(response),
7660 _ => Err(TryFromResponseError)
7661 }
7662 }
7663 }
7664
7665 #[derive(Clone, Debug, Deserialize, Serialize)]
7666 pub struct SignpsbtResponse {
7667 pub signed_psbt: String,
7668 }
7669
7670 impl TryFrom<Response> for SignpsbtResponse {
7671 type Error = super::TryFromResponseError;
7672
7673 fn try_from(response: Response) -> Result<Self, Self::Error> {
7674 match response {
7675 Response::SignPsbt(response) => Ok(response),
7676 _ => Err(TryFromResponseError)
7677 }
7678 }
7679 }
7680
7681 #[derive(Clone, Debug, Deserialize, Serialize)]
7682 pub struct UtxopsbtReservations {
7683 pub reserved: bool,
7684 pub reserved_to_block: u32,
7685 pub txid: String,
7686 pub vout: u32,
7687 pub was_reserved: bool,
7688 }
7689
7690 #[derive(Clone, Debug, Deserialize, Serialize)]
7691 pub struct UtxopsbtResponse {
7692 #[serde(skip_serializing_if = "Option::is_none")]
7693 pub change_outnum: Option<u32>,
7694 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
7695 pub reservations: Option<Vec<UtxopsbtReservations>>,
7696 pub estimated_final_weight: u32,
7697 pub excess_msat: Amount,
7698 pub feerate_per_kw: u32,
7699 pub psbt: String,
7700 }
7701
7702 impl TryFrom<Response> for UtxopsbtResponse {
7703 type Error = super::TryFromResponseError;
7704
7705 fn try_from(response: Response) -> Result<Self, Self::Error> {
7706 match response {
7707 Response::UtxoPsbt(response) => Ok(response),
7708 _ => Err(TryFromResponseError)
7709 }
7710 }
7711 }
7712
7713 #[derive(Clone, Debug, Deserialize, Serialize)]
7714 pub struct TxdiscardResponse {
7715 pub txid: String,
7716 pub unsigned_tx: String,
7717 }
7718
7719 impl TryFrom<Response> for TxdiscardResponse {
7720 type Error = super::TryFromResponseError;
7721
7722 fn try_from(response: Response) -> Result<Self, Self::Error> {
7723 match response {
7724 Response::TxDiscard(response) => Ok(response),
7725 _ => Err(TryFromResponseError)
7726 }
7727 }
7728 }
7729
7730 #[derive(Clone, Debug, Deserialize, Serialize)]
7731 pub struct TxprepareResponse {
7732 pub psbt: String,
7733 pub txid: String,
7734 pub unsigned_tx: String,
7735 }
7736
7737 impl TryFrom<Response> for TxprepareResponse {
7738 type Error = super::TryFromResponseError;
7739
7740 fn try_from(response: Response) -> Result<Self, Self::Error> {
7741 match response {
7742 Response::TxPrepare(response) => Ok(response),
7743 _ => Err(TryFromResponseError)
7744 }
7745 }
7746 }
7747
7748 #[derive(Clone, Debug, Deserialize, Serialize)]
7749 pub struct TxsendResponse {
7750 pub psbt: String,
7751 pub tx: String,
7752 pub txid: String,
7753 }
7754
7755 impl TryFrom<Response> for TxsendResponse {
7756 type Error = super::TryFromResponseError;
7757
7758 fn try_from(response: Response) -> Result<Self, Self::Error> {
7759 match response {
7760 Response::TxSend(response) => Ok(response),
7761 _ => Err(TryFromResponseError)
7762 }
7763 }
7764 }
7765
7766 #[derive(Clone, Debug, Deserialize, Serialize)]
7767 pub struct ListpeerchannelsChannelsAlias {
7768 #[serde(skip_serializing_if = "Option::is_none")]
7769 pub local: Option<ShortChannelId>,
7770 #[serde(skip_serializing_if = "Option::is_none")]
7771 pub remote: Option<ShortChannelId>,
7772 }
7773
7774 #[derive(Clone, Debug, Deserialize, Serialize)]
7775 pub struct ListpeerchannelsChannelsChannelType {
7776 pub bits: Vec<u32>,
7777 pub names: Vec<ChannelTypeName>,
7778 }
7779
7780 #[derive(Clone, Debug, Deserialize, Serialize)]
7781 pub struct ListpeerchannelsChannelsFeerate {
7782 pub perkb: u32,
7783 pub perkw: u32,
7784 }
7785
7786 #[derive(Clone, Debug, Deserialize, Serialize)]
7787 pub struct ListpeerchannelsChannelsFunding {
7788 #[serde(skip_serializing_if = "Option::is_none")]
7789 pub fee_paid_msat: Option<Amount>,
7790 #[serde(skip_serializing_if = "Option::is_none")]
7791 pub fee_rcvd_msat: Option<Amount>,
7792 #[serde(skip_serializing_if = "Option::is_none")]
7793 pub psbt: Option<String>,
7794 #[serde(skip_serializing_if = "Option::is_none")]
7795 pub pushed_msat: Option<Amount>,
7796 #[serde(skip_serializing_if = "Option::is_none")]
7797 pub withheld: Option<bool>,
7798 pub local_funds_msat: Amount,
7799 pub remote_funds_msat: Amount,
7800 }
7801
7802 #[derive(Clone, Debug, Deserialize, Serialize)]
7803 pub struct ListpeerchannelsChannelsUpdatesRemote {
7804 pub cltv_expiry_delta: u32,
7805 pub fee_base_msat: Amount,
7806 pub fee_proportional_millionths: u32,
7807 pub htlc_maximum_msat: Amount,
7808 pub htlc_minimum_msat: Amount,
7809 }
7810
7811 #[derive(Clone, Debug, Deserialize, Serialize)]
7812 pub struct ListpeerchannelsChannelsUpdatesLocal {
7813 pub cltv_expiry_delta: u32,
7814 pub fee_base_msat: Amount,
7815 pub fee_proportional_millionths: u32,
7816 pub htlc_maximum_msat: Amount,
7817 pub htlc_minimum_msat: Amount,
7818 }
7819
7820 #[derive(Clone, Debug, Deserialize, Serialize)]
7821 pub struct ListpeerchannelsChannelsUpdates {
7822 #[serde(skip_serializing_if = "Option::is_none")]
7823 pub remote: Option<ListpeerchannelsChannelsUpdatesRemote>,
7824 pub local: ListpeerchannelsChannelsUpdatesLocal,
7825 }
7826
7827 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7829 #[allow(non_camel_case_types)]
7830 pub enum ListpeerchannelsChannelsHtlcsDirection {
7831 #[serde(rename = "in")]
7832 IN = 0,
7833 #[serde(rename = "out")]
7834 OUT = 1,
7835 }
7836
7837 impl TryFrom<i32> for ListpeerchannelsChannelsHtlcsDirection {
7838 type Error = anyhow::Error;
7839 fn try_from(c: i32) -> Result<ListpeerchannelsChannelsHtlcsDirection, anyhow::Error> {
7840 match c {
7841 0 => Ok(ListpeerchannelsChannelsHtlcsDirection::IN),
7842 1 => Ok(ListpeerchannelsChannelsHtlcsDirection::OUT),
7843 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeerchannelsChannelsHtlcsDirection", o)),
7844 }
7845 }
7846 }
7847
7848 impl ToString for ListpeerchannelsChannelsHtlcsDirection {
7849 fn to_string(&self) -> String {
7850 match self {
7851 ListpeerchannelsChannelsHtlcsDirection::IN => "IN",
7852 ListpeerchannelsChannelsHtlcsDirection::OUT => "OUT",
7853 }.to_string()
7854 }
7855 }
7856
7857 #[derive(Clone, Debug, Deserialize, Serialize)]
7858 pub struct ListpeerchannelsChannelsHtlcs {
7859 #[serde(skip_serializing_if = "Option::is_none")]
7860 pub local_trimmed: Option<bool>,
7861 #[serde(skip_serializing_if = "Option::is_none")]
7862 pub status: Option<String>,
7863 pub direction: ListpeerchannelsChannelsHtlcsDirection,
7865 pub state: HtlcState,
7867 pub amount_msat: Amount,
7868 pub expiry: u32,
7869 pub id: u64,
7870 pub payment_hash: Sha256,
7871 }
7872
7873 #[derive(Clone, Debug, Deserialize, Serialize)]
7874 pub struct ListpeerchannelsChannelsInflight {
7875 #[serde(skip_serializing_if = "Option::is_none")]
7876 pub scratch_txid: Option<String>,
7877 pub feerate: String,
7878 pub funding_outnum: u32,
7879 pub funding_txid: String,
7880 pub our_funding_msat: Amount,
7881 pub splice_amount: i64,
7882 pub total_funding_msat: Amount,
7883 }
7884
7885 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7887 #[allow(non_camel_case_types)]
7888 pub enum ListpeerchannelsChannelsStateChangesCause {
7889 #[serde(rename = "unknown")]
7890 UNKNOWN = 0,
7891 #[serde(rename = "local")]
7892 LOCAL = 1,
7893 #[serde(rename = "user")]
7894 USER = 2,
7895 #[serde(rename = "remote")]
7896 REMOTE = 3,
7897 #[serde(rename = "protocol")]
7898 PROTOCOL = 4,
7899 #[serde(rename = "onchain")]
7900 ONCHAIN = 5,
7901 }
7902
7903 impl TryFrom<i32> for ListpeerchannelsChannelsStateChangesCause {
7904 type Error = anyhow::Error;
7905 fn try_from(c: i32) -> Result<ListpeerchannelsChannelsStateChangesCause, anyhow::Error> {
7906 match c {
7907 0 => Ok(ListpeerchannelsChannelsStateChangesCause::UNKNOWN),
7908 1 => Ok(ListpeerchannelsChannelsStateChangesCause::LOCAL),
7909 2 => Ok(ListpeerchannelsChannelsStateChangesCause::USER),
7910 3 => Ok(ListpeerchannelsChannelsStateChangesCause::REMOTE),
7911 4 => Ok(ListpeerchannelsChannelsStateChangesCause::PROTOCOL),
7912 5 => Ok(ListpeerchannelsChannelsStateChangesCause::ONCHAIN),
7913 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeerchannelsChannelsStateChangesCause", o)),
7914 }
7915 }
7916 }
7917
7918 impl ToString for ListpeerchannelsChannelsStateChangesCause {
7919 fn to_string(&self) -> String {
7920 match self {
7921 ListpeerchannelsChannelsStateChangesCause::UNKNOWN => "UNKNOWN",
7922 ListpeerchannelsChannelsStateChangesCause::LOCAL => "LOCAL",
7923 ListpeerchannelsChannelsStateChangesCause::USER => "USER",
7924 ListpeerchannelsChannelsStateChangesCause::REMOTE => "REMOTE",
7925 ListpeerchannelsChannelsStateChangesCause::PROTOCOL => "PROTOCOL",
7926 ListpeerchannelsChannelsStateChangesCause::ONCHAIN => "ONCHAIN",
7927 }.to_string()
7928 }
7929 }
7930
7931 #[derive(Clone, Debug, Deserialize, Serialize)]
7932 pub struct ListpeerchannelsChannelsStateChanges {
7933 pub cause: ListpeerchannelsChannelsStateChangesCause,
7935 pub new_state: ChannelState,
7937 pub old_state: ChannelState,
7939 pub message: String,
7940 pub timestamp: String,
7941 }
7942
7943 #[derive(Clone, Debug, Deserialize, Serialize)]
7944 pub struct ListpeerchannelsChannels {
7945 #[serde(skip_serializing_if = "Option::is_none")]
7946 pub alias: Option<ListpeerchannelsChannelsAlias>,
7947 #[serde(skip_serializing_if = "Option::is_none")]
7948 pub channel_id: Option<Sha256>,
7949 #[serde(skip_serializing_if = "Option::is_none")]
7950 pub channel_type: Option<ListpeerchannelsChannelsChannelType>,
7951 #[serde(skip_serializing_if = "Option::is_none")]
7952 pub close_to: Option<String>,
7953 #[serde(skip_serializing_if = "Option::is_none")]
7954 pub close_to_addr: Option<String>,
7955 #[serde(skip_serializing_if = "Option::is_none")]
7956 pub closer: Option<ChannelSide>,
7957 #[serde(skip_serializing_if = "Option::is_none")]
7958 pub direction: Option<u32>,
7959 #[serde(skip_serializing_if = "Option::is_none")]
7960 pub dust_limit_msat: Option<Amount>,
7961 #[serde(skip_serializing_if = "Option::is_none")]
7962 pub fee_base_msat: Option<Amount>,
7963 #[serde(skip_serializing_if = "Option::is_none")]
7964 pub fee_proportional_millionths: Option<u32>,
7965 #[serde(skip_serializing_if = "Option::is_none")]
7966 pub feerate: Option<ListpeerchannelsChannelsFeerate>,
7967 #[serde(skip_serializing_if = "Option::is_none")]
7968 pub funding: Option<ListpeerchannelsChannelsFunding>,
7969 #[serde(skip_serializing_if = "Option::is_none")]
7970 pub funding_outnum: Option<u32>,
7971 #[serde(skip_serializing_if = "Option::is_none")]
7972 pub funding_txid: Option<String>,
7973 #[serde(skip_serializing_if = "Option::is_none")]
7974 pub ignore_fee_limits: Option<bool>,
7975 #[serde(skip_serializing_if = "Option::is_none")]
7976 pub in_fulfilled_msat: Option<Amount>,
7977 #[serde(skip_serializing_if = "Option::is_none")]
7978 pub in_offered_msat: Option<Amount>,
7979 #[serde(skip_serializing_if = "Option::is_none")]
7980 pub in_payments_fulfilled: Option<u64>,
7981 #[serde(skip_serializing_if = "Option::is_none")]
7982 pub in_payments_offered: Option<u64>,
7983 #[serde(skip_serializing_if = "Option::is_none")]
7984 pub initial_feerate: Option<String>,
7985 #[serde(skip_serializing_if = "Option::is_none")]
7986 pub last_feerate: Option<String>,
7987 #[serde(skip_serializing_if = "Option::is_none")]
7988 pub last_stable_connection: Option<u64>,
7989 #[serde(skip_serializing_if = "Option::is_none")]
7990 pub last_tx_fee_msat: Option<Amount>,
7991 #[serde(skip_serializing_if = "Option::is_none")]
7992 pub lost_state: Option<bool>,
7993 #[serde(skip_serializing_if = "Option::is_none")]
7994 pub max_accepted_htlcs: Option<u32>,
7995 #[serde(skip_serializing_if = "Option::is_none")]
7996 pub max_to_us_msat: Option<Amount>,
7997 #[serde(skip_serializing_if = "Option::is_none")]
7998 pub maximum_htlc_out_msat: Option<Amount>,
7999 #[serde(skip_serializing_if = "Option::is_none")]
8000 pub min_to_us_msat: Option<Amount>,
8001 #[serde(skip_serializing_if = "Option::is_none")]
8002 pub minimum_htlc_in_msat: Option<Amount>,
8003 #[serde(skip_serializing_if = "Option::is_none")]
8004 pub minimum_htlc_out_msat: Option<Amount>,
8005 #[serde(skip_serializing_if = "Option::is_none")]
8006 pub next_fee_step: Option<u32>,
8007 #[serde(skip_serializing_if = "Option::is_none")]
8008 pub next_feerate: Option<String>,
8009 #[serde(skip_serializing_if = "Option::is_none")]
8010 pub our_max_htlc_value_in_flight_msat: Option<Amount>,
8011 #[serde(skip_serializing_if = "Option::is_none")]
8012 pub our_reserve_msat: Option<Amount>,
8013 #[serde(skip_serializing_if = "Option::is_none")]
8014 pub our_to_self_delay: Option<u32>,
8015 #[serde(skip_serializing_if = "Option::is_none")]
8016 pub out_fulfilled_msat: Option<Amount>,
8017 #[serde(skip_serializing_if = "Option::is_none")]
8018 pub out_offered_msat: Option<Amount>,
8019 #[serde(skip_serializing_if = "Option::is_none")]
8020 pub out_payments_fulfilled: Option<u64>,
8021 #[serde(skip_serializing_if = "Option::is_none")]
8022 pub out_payments_offered: Option<u64>,
8023 #[serde(skip_serializing_if = "Option::is_none")]
8024 pub owner: Option<String>,
8025 #[serde(skip_serializing_if = "Option::is_none")]
8026 pub private: Option<bool>,
8027 #[serde(skip_serializing_if = "Option::is_none")]
8028 pub receivable_msat: Option<Amount>,
8029 #[serde(skip_serializing_if = "Option::is_none")]
8030 pub reestablished: Option<bool>,
8031 #[serde(skip_serializing_if = "Option::is_none")]
8032 pub scratch_txid: Option<String>,
8033 #[serde(skip_serializing_if = "Option::is_none")]
8034 pub short_channel_id: Option<ShortChannelId>,
8035 #[serde(skip_serializing_if = "Option::is_none")]
8036 pub spendable_msat: Option<Amount>,
8037 #[serde(skip_serializing_if = "Option::is_none")]
8038 pub their_max_htlc_value_in_flight_msat: Option<Amount>,
8039 #[serde(skip_serializing_if = "Option::is_none")]
8040 pub their_reserve_msat: Option<Amount>,
8041 #[serde(skip_serializing_if = "Option::is_none")]
8042 pub their_to_self_delay: Option<u32>,
8043 #[serde(skip_serializing_if = "Option::is_none")]
8044 pub to_us_msat: Option<Amount>,
8045 #[serde(skip_serializing_if = "Option::is_none")]
8046 pub total_msat: Option<Amount>,
8047 #[serde(skip_serializing_if = "Option::is_none")]
8048 pub updates: Option<ListpeerchannelsChannelsUpdates>,
8049 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8050 pub htlcs: Option<Vec<ListpeerchannelsChannelsHtlcs>>,
8051 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8052 pub inflight: Option<Vec<ListpeerchannelsChannelsInflight>>,
8053 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8054 pub state_changes: Option<Vec<ListpeerchannelsChannelsStateChanges>>,
8055 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8056 pub status: Option<Vec<String>>,
8057 pub opener: ChannelSide,
8059 pub state: ChannelState,
8061 pub features: Vec<String>,
8062 pub peer_connected: bool,
8063 pub peer_id: PublicKey,
8064 }
8065
8066 #[derive(Clone, Debug, Deserialize, Serialize)]
8067 pub struct ListpeerchannelsResponse {
8068 pub channels: Vec<ListpeerchannelsChannels>,
8069 }
8070
8071 impl TryFrom<Response> for ListpeerchannelsResponse {
8072 type Error = super::TryFromResponseError;
8073
8074 fn try_from(response: Response) -> Result<Self, Self::Error> {
8075 match response {
8076 Response::ListPeerChannels(response) => Ok(response),
8077 _ => Err(TryFromResponseError)
8078 }
8079 }
8080 }
8081
8082 #[derive(Clone, Debug, Deserialize, Serialize)]
8083 pub struct ListclosedchannelsClosedchannelsAlias {
8084 #[serde(skip_serializing_if = "Option::is_none")]
8085 pub local: Option<ShortChannelId>,
8086 #[serde(skip_serializing_if = "Option::is_none")]
8087 pub remote: Option<ShortChannelId>,
8088 }
8089
8090 #[derive(Clone, Debug, Deserialize, Serialize)]
8091 pub struct ListclosedchannelsClosedchannelsChannelType {
8092 pub bits: Vec<u32>,
8093 pub names: Vec<ChannelTypeName>,
8094 }
8095
8096 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
8098 #[allow(non_camel_case_types)]
8099 pub enum ListclosedchannelsClosedchannelsCloseCause {
8100 #[serde(rename = "unknown")]
8101 UNKNOWN = 0,
8102 #[serde(rename = "local")]
8103 LOCAL = 1,
8104 #[serde(rename = "user")]
8105 USER = 2,
8106 #[serde(rename = "remote")]
8107 REMOTE = 3,
8108 #[serde(rename = "protocol")]
8109 PROTOCOL = 4,
8110 #[serde(rename = "onchain")]
8111 ONCHAIN = 5,
8112 }
8113
8114 impl TryFrom<i32> for ListclosedchannelsClosedchannelsCloseCause {
8115 type Error = anyhow::Error;
8116 fn try_from(c: i32) -> Result<ListclosedchannelsClosedchannelsCloseCause, anyhow::Error> {
8117 match c {
8118 0 => Ok(ListclosedchannelsClosedchannelsCloseCause::UNKNOWN),
8119 1 => Ok(ListclosedchannelsClosedchannelsCloseCause::LOCAL),
8120 2 => Ok(ListclosedchannelsClosedchannelsCloseCause::USER),
8121 3 => Ok(ListclosedchannelsClosedchannelsCloseCause::REMOTE),
8122 4 => Ok(ListclosedchannelsClosedchannelsCloseCause::PROTOCOL),
8123 5 => Ok(ListclosedchannelsClosedchannelsCloseCause::ONCHAIN),
8124 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListclosedchannelsClosedchannelsCloseCause", o)),
8125 }
8126 }
8127 }
8128
8129 impl ToString for ListclosedchannelsClosedchannelsCloseCause {
8130 fn to_string(&self) -> String {
8131 match self {
8132 ListclosedchannelsClosedchannelsCloseCause::UNKNOWN => "UNKNOWN",
8133 ListclosedchannelsClosedchannelsCloseCause::LOCAL => "LOCAL",
8134 ListclosedchannelsClosedchannelsCloseCause::USER => "USER",
8135 ListclosedchannelsClosedchannelsCloseCause::REMOTE => "REMOTE",
8136 ListclosedchannelsClosedchannelsCloseCause::PROTOCOL => "PROTOCOL",
8137 ListclosedchannelsClosedchannelsCloseCause::ONCHAIN => "ONCHAIN",
8138 }.to_string()
8139 }
8140 }
8141
8142 #[derive(Clone, Debug, Deserialize, Serialize)]
8143 pub struct ListclosedchannelsClosedchannels {
8144 #[serde(skip_serializing_if = "Option::is_none")]
8145 pub alias: Option<ListclosedchannelsClosedchannelsAlias>,
8146 #[serde(skip_serializing_if = "Option::is_none")]
8147 pub channel_type: Option<ListclosedchannelsClosedchannelsChannelType>,
8148 #[serde(skip_serializing_if = "Option::is_none")]
8149 pub closer: Option<ChannelSide>,
8150 #[serde(skip_serializing_if = "Option::is_none")]
8151 pub funding_fee_paid_msat: Option<Amount>,
8152 #[serde(skip_serializing_if = "Option::is_none")]
8153 pub funding_fee_rcvd_msat: Option<Amount>,
8154 #[serde(skip_serializing_if = "Option::is_none")]
8155 pub funding_psbt: Option<String>,
8156 #[serde(skip_serializing_if = "Option::is_none")]
8157 pub funding_pushed_msat: Option<Amount>,
8158 #[serde(skip_serializing_if = "Option::is_none")]
8159 pub funding_withheld: Option<bool>,
8160 #[serde(skip_serializing_if = "Option::is_none")]
8161 pub last_commitment_fee_msat: Option<Amount>,
8162 #[serde(skip_serializing_if = "Option::is_none")]
8163 pub last_commitment_txid: Option<Sha256>,
8164 #[serde(skip_serializing_if = "Option::is_none")]
8165 pub last_stable_connection: Option<u64>,
8166 #[serde(skip_serializing_if = "Option::is_none")]
8167 pub peer_id: Option<PublicKey>,
8168 #[serde(skip_serializing_if = "Option::is_none")]
8169 pub short_channel_id: Option<ShortChannelId>,
8170 pub close_cause: ListclosedchannelsClosedchannelsCloseCause,
8172 pub opener: ChannelSide,
8174 pub channel_id: Sha256,
8175 pub final_to_us_msat: Amount,
8176 pub funding_outnum: u32,
8177 pub funding_txid: String,
8178 pub leased: bool,
8179 pub max_to_us_msat: Amount,
8180 pub min_to_us_msat: Amount,
8181 pub private: bool,
8182 pub total_htlcs_sent: u64,
8183 pub total_local_commitments: u64,
8184 pub total_msat: Amount,
8185 pub total_remote_commitments: u64,
8186 }
8187
8188 #[derive(Clone, Debug, Deserialize, Serialize)]
8189 pub struct ListclosedchannelsResponse {
8190 pub closedchannels: Vec<ListclosedchannelsClosedchannels>,
8191 }
8192
8193 impl TryFrom<Response> for ListclosedchannelsResponse {
8194 type Error = super::TryFromResponseError;
8195
8196 fn try_from(response: Response) -> Result<Self, Self::Error> {
8197 match response {
8198 Response::ListClosedChannels(response) => Ok(response),
8199 _ => Err(TryFromResponseError)
8200 }
8201 }
8202 }
8203
8204 #[derive(Clone, Debug, Deserialize, Serialize)]
8205 pub struct DecodeInvreqBip353Name {
8206 #[serde(skip_serializing_if = "Option::is_none")]
8207 pub domain: Option<String>,
8208 #[serde(skip_serializing_if = "Option::is_none")]
8209 pub name: Option<String>,
8210 }
8211
8212 #[derive(Clone, Debug, Deserialize, Serialize)]
8213 pub struct DecodeOfferRecurrencePaywindow {
8214 #[serde(skip_serializing_if = "Option::is_none")]
8215 pub proportional_amount: Option<bool>,
8216 pub seconds_after: u32,
8217 pub seconds_before: u32,
8218 }
8219
8220 #[derive(Clone, Debug, Deserialize, Serialize)]
8221 pub struct DecodeOfferRecurrence {
8222 #[serde(skip_serializing_if = "Option::is_none")]
8223 pub basetime: Option<u64>,
8224 #[serde(skip_serializing_if = "Option::is_none")]
8225 pub compulsory_field: Option<bool>,
8226 #[serde(skip_serializing_if = "Option::is_none")]
8227 pub limit: Option<u32>,
8228 #[serde(skip_serializing_if = "Option::is_none")]
8229 pub paywindow: Option<DecodeOfferRecurrencePaywindow>,
8230 #[serde(skip_serializing_if = "Option::is_none")]
8231 pub time_unit_name: Option<String>,
8232 pub period: u32,
8233 pub time_unit: u32,
8234 }
8235
8236 #[derive(Clone, Debug, Deserialize, Serialize)]
8237 pub struct DecodeExtra {
8238 pub data: String,
8239 pub tag: String,
8240 }
8241
8242 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
8244 #[allow(non_camel_case_types)]
8245 pub enum DecodeFallbacksType {
8246 #[serde(rename = "P2PKH")]
8247 P2PKH = 0,
8248 #[serde(rename = "P2SH")]
8249 P2SH = 1,
8250 #[serde(rename = "P2WPKH")]
8251 P2WPKH = 2,
8252 #[serde(rename = "P2WSH")]
8253 P2WSH = 3,
8254 #[serde(rename = "P2TR")]
8255 P2TR = 4,
8256 }
8257
8258 impl TryFrom<i32> for DecodeFallbacksType {
8259 type Error = anyhow::Error;
8260 fn try_from(c: i32) -> Result<DecodeFallbacksType, anyhow::Error> {
8261 match c {
8262 0 => Ok(DecodeFallbacksType::P2PKH),
8263 1 => Ok(DecodeFallbacksType::P2SH),
8264 2 => Ok(DecodeFallbacksType::P2WPKH),
8265 3 => Ok(DecodeFallbacksType::P2WSH),
8266 4 => Ok(DecodeFallbacksType::P2TR),
8267 o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodeFallbacksType", o)),
8268 }
8269 }
8270 }
8271
8272 impl ToString for DecodeFallbacksType {
8273 fn to_string(&self) -> String {
8274 match self {
8275 DecodeFallbacksType::P2PKH => "P2PKH",
8276 DecodeFallbacksType::P2SH => "P2SH",
8277 DecodeFallbacksType::P2WPKH => "P2WPKH",
8278 DecodeFallbacksType::P2WSH => "P2WSH",
8279 DecodeFallbacksType::P2TR => "P2TR",
8280 }.to_string()
8281 }
8282 }
8283
8284 #[derive(Clone, Debug, Deserialize, Serialize)]
8285 pub struct DecodeFallbacks {
8286 #[serde(skip_serializing_if = "Option::is_none")]
8287 pub addr: Option<String>,
8288 #[serde(rename = "type")]
8290 pub item_type: DecodeFallbacksType,
8291 pub hex: String,
8292 }
8293
8294 #[derive(Clone, Debug, Deserialize, Serialize)]
8295 pub struct DecodeInvoiceFallbacks {
8296 #[serde(skip_serializing_if = "Option::is_none")]
8297 pub address: Option<String>,
8298 pub hex: String,
8299 pub version: u8,
8300 }
8301
8302 #[derive(Clone, Debug, Deserialize, Serialize)]
8303 pub struct DecodeInvoicePathsPath {
8304 pub blinded_node_id: PublicKey,
8305 pub encrypted_recipient_data: String,
8306 }
8307
8308 #[derive(Clone, Debug, Deserialize, Serialize)]
8309 pub struct DecodeInvoicePathsPayinfo {
8310 #[serde(skip_serializing_if = "Option::is_none")]
8311 pub htlc_maximum_msat: Option<Amount>,
8312 #[serde(skip_serializing_if = "Option::is_none")]
8313 pub htlc_minimum_msat: Option<Amount>,
8314 pub cltv_expiry_delta: u32,
8315 pub features: String,
8316 pub fee_base_msat: Amount,
8317 pub fee_proportional_millionths: u32,
8318 }
8319
8320 #[derive(Clone, Debug, Deserialize, Serialize)]
8321 pub struct DecodeInvoicePaths {
8322 #[serde(skip_serializing_if = "Option::is_none")]
8323 pub first_node_id: Option<PublicKey>,
8324 #[serde(skip_serializing_if = "Option::is_none")]
8325 pub first_path_key: Option<PublicKey>,
8326 #[serde(skip_serializing_if = "Option::is_none")]
8327 pub first_scid: Option<ShortChannelId>,
8328 #[serde(skip_serializing_if = "Option::is_none")]
8329 pub first_scid_dir: Option<u32>,
8330 pub path: Vec<DecodeInvoicePathsPath>,
8331 pub payinfo: DecodeInvoicePathsPayinfo,
8332 }
8333
8334 #[derive(Clone, Debug, Deserialize, Serialize)]
8335 pub struct DecodeInvreqPathsPath {
8336 pub blinded_node_id: PublicKey,
8337 pub encrypted_recipient_data: String,
8338 }
8339
8340 #[derive(Clone, Debug, Deserialize, Serialize)]
8341 pub struct DecodeInvreqPaths {
8342 #[serde(skip_serializing_if = "Option::is_none")]
8343 pub first_node_id: Option<PublicKey>,
8344 #[serde(skip_serializing_if = "Option::is_none")]
8345 pub first_path_key: Option<PublicKey>,
8346 #[serde(skip_serializing_if = "Option::is_none")]
8347 pub first_scid: Option<ShortChannelId>,
8348 #[serde(skip_serializing_if = "Option::is_none")]
8349 pub first_scid_dir: Option<u32>,
8350 pub path: Vec<DecodeInvreqPathsPath>,
8351 }
8352
8353 #[derive(Clone, Debug, Deserialize, Serialize)]
8354 pub struct DecodeOfferPathsPath {
8355 pub blinded_node_id: PublicKey,
8356 pub encrypted_recipient_data: String,
8357 }
8358
8359 #[derive(Clone, Debug, Deserialize, Serialize)]
8360 pub struct DecodeOfferPaths {
8361 #[serde(skip_serializing_if = "Option::is_none")]
8362 pub first_node_id: Option<PublicKey>,
8363 #[serde(skip_serializing_if = "Option::is_none")]
8364 pub first_path_key: Option<PublicKey>,
8365 #[serde(skip_serializing_if = "Option::is_none")]
8366 pub first_scid: Option<ShortChannelId>,
8367 #[serde(skip_serializing_if = "Option::is_none")]
8368 pub first_scid_dir: Option<u32>,
8369 pub path: Vec<DecodeOfferPathsPath>,
8370 }
8371
8372 #[derive(Clone, Debug, Deserialize, Serialize)]
8373 pub struct DecodeRestrictions {
8374 pub alternatives: Vec<String>,
8375 pub summary: String,
8376 }
8377
8378 #[derive(Clone, Debug, Deserialize, Serialize)]
8379 pub struct DecodeUnknownInvoiceRequestTlvs {
8380 #[serde(rename = "type")]
8381 pub item_type: u64,
8382 pub length: u64,
8383 pub value: String,
8384 }
8385
8386 #[derive(Clone, Debug, Deserialize, Serialize)]
8387 pub struct DecodeUnknownInvoiceTlvs {
8388 #[serde(rename = "type")]
8389 pub item_type: u64,
8390 pub length: u64,
8391 pub value: String,
8392 }
8393
8394 #[derive(Clone, Debug, Deserialize, Serialize)]
8395 pub struct DecodeUnknownOfferTlvs {
8396 #[serde(rename = "type")]
8397 pub item_type: u64,
8398 pub length: u64,
8399 pub value: String,
8400 }
8401
8402 #[derive(Clone, Debug, Deserialize, Serialize)]
8403 pub struct DecodeUnknownPayerProofTlvs {
8404 #[serde(rename = "type")]
8405 pub item_type: u64,
8406 pub length: u64,
8407 pub value: String,
8408 }
8409
8410 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
8412 #[allow(non_camel_case_types)]
8413 pub enum DecodeType {
8414 #[serde(rename = "bolt12 offer")]
8415 BOLT12_OFFER = 0,
8416 #[serde(rename = "bolt12 invoice")]
8417 BOLT12_INVOICE = 1,
8418 #[serde(rename = "bolt12 invoice_request")]
8419 BOLT12_INVOICE_REQUEST = 2,
8420 #[serde(rename = "bolt11 invoice")]
8421 BOLT11_INVOICE = 3,
8422 #[serde(rename = "rune")]
8423 RUNE = 4,
8424 #[serde(rename = "emergency recover")]
8425 EMERGENCY_RECOVER = 5,
8426 #[serde(rename = "bolt12 payer_proof")]
8427 BOLT12_PAYER_PROOF = 6,
8428 }
8429
8430 impl TryFrom<i32> for DecodeType {
8431 type Error = anyhow::Error;
8432 fn try_from(c: i32) -> Result<DecodeType, anyhow::Error> {
8433 match c {
8434 0 => Ok(DecodeType::BOLT12_OFFER),
8435 1 => Ok(DecodeType::BOLT12_INVOICE),
8436 2 => Ok(DecodeType::BOLT12_INVOICE_REQUEST),
8437 3 => Ok(DecodeType::BOLT11_INVOICE),
8438 4 => Ok(DecodeType::RUNE),
8439 5 => Ok(DecodeType::EMERGENCY_RECOVER),
8440 6 => Ok(DecodeType::BOLT12_PAYER_PROOF),
8441 o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodeType", o)),
8442 }
8443 }
8444 }
8445
8446 impl ToString for DecodeType {
8447 fn to_string(&self) -> String {
8448 match self {
8449 DecodeType::BOLT12_OFFER => "BOLT12_OFFER",
8450 DecodeType::BOLT12_INVOICE => "BOLT12_INVOICE",
8451 DecodeType::BOLT12_INVOICE_REQUEST => "BOLT12_INVOICE_REQUEST",
8452 DecodeType::BOLT11_INVOICE => "BOLT11_INVOICE",
8453 DecodeType::RUNE => "RUNE",
8454 DecodeType::EMERGENCY_RECOVER => "EMERGENCY_RECOVER",
8455 DecodeType::BOLT12_PAYER_PROOF => "BOLT12_PAYER_PROOF",
8456 }.to_string()
8457 }
8458 }
8459
8460 #[derive(Clone, Debug, Deserialize, Serialize)]
8461 pub struct DecodeResponse {
8462 #[serde(skip_serializing_if = "Option::is_none")]
8463 pub amount_msat: Option<Amount>,
8464 #[serde(skip_serializing_if = "Option::is_none")]
8465 pub created_at: Option<u64>,
8466 #[serde(skip_serializing_if = "Option::is_none")]
8467 pub currency: Option<String>,
8468 #[serde(skip_serializing_if = "Option::is_none")]
8469 pub currency_minor_unit: Option<u32>,
8470 #[serde(skip_serializing_if = "Option::is_none")]
8471 pub decrypted: Option<String>,
8472 #[serde(skip_serializing_if = "Option::is_none")]
8473 pub description: Option<String>,
8474 #[serde(skip_serializing_if = "Option::is_none")]
8475 pub description_hash: Option<Sha256>,
8476 #[serde(skip_serializing_if = "Option::is_none")]
8477 pub expiry: Option<u64>,
8478 #[serde(skip_serializing_if = "Option::is_none")]
8479 pub features: Option<String>,
8480 #[serde(skip_serializing_if = "Option::is_none")]
8481 pub hex: Option<String>,
8482 #[serde(skip_serializing_if = "Option::is_none")]
8483 pub invoice_amount_msat: Option<Amount>,
8484 #[serde(skip_serializing_if = "Option::is_none")]
8485 pub invoice_created_at: Option<u64>,
8486 #[serde(skip_serializing_if = "Option::is_none")]
8487 pub invoice_features: Option<String>,
8488 #[serde(skip_serializing_if = "Option::is_none")]
8489 pub invoice_node_id: Option<PublicKey>,
8490 #[serde(skip_serializing_if = "Option::is_none")]
8491 pub invoice_payment_hash: Option<String>,
8492 #[serde(skip_serializing_if = "Option::is_none")]
8493 pub invoice_recurrence_basetime: Option<u64>,
8494 #[serde(skip_serializing_if = "Option::is_none")]
8495 pub invoice_relative_expiry: Option<u32>,
8496 #[serde(skip_serializing_if = "Option::is_none")]
8497 pub invreq_amount_msat: Option<Amount>,
8498 #[serde(skip_serializing_if = "Option::is_none")]
8499 pub invreq_bip_353_name: Option<DecodeInvreqBip353Name>,
8500 #[serde(skip_serializing_if = "Option::is_none")]
8501 pub invreq_chain: Option<String>,
8502 #[serde(skip_serializing_if = "Option::is_none")]
8503 pub invreq_features: Option<String>,
8504 #[serde(skip_serializing_if = "Option::is_none")]
8505 pub invreq_metadata: Option<String>,
8506 #[serde(skip_serializing_if = "Option::is_none")]
8507 pub invreq_payer_id: Option<String>,
8508 #[serde(skip_serializing_if = "Option::is_none")]
8509 pub invreq_payer_note: Option<String>,
8510 #[serde(skip_serializing_if = "Option::is_none")]
8511 pub invreq_quantity: Option<u64>,
8512 #[serde(skip_serializing_if = "Option::is_none")]
8513 pub invreq_recurrence_cancel: Option<bool>,
8514 #[serde(skip_serializing_if = "Option::is_none")]
8515 pub invreq_recurrence_counter: Option<u32>,
8516 #[serde(skip_serializing_if = "Option::is_none")]
8517 pub invreq_recurrence_start: Option<u32>,
8518 #[serde(skip_serializing_if = "Option::is_none")]
8519 pub min_final_cltv_expiry: Option<u32>,
8520 #[serde(skip_serializing_if = "Option::is_none")]
8521 pub offer_absolute_expiry: Option<u64>,
8522 #[serde(skip_serializing_if = "Option::is_none")]
8523 pub offer_amount: Option<u64>,
8524 #[serde(skip_serializing_if = "Option::is_none")]
8525 pub offer_amount_msat: Option<Amount>,
8526 #[serde(skip_serializing_if = "Option::is_none")]
8527 pub offer_currency: Option<String>,
8528 #[serde(skip_serializing_if = "Option::is_none")]
8529 pub offer_description: Option<String>,
8530 #[serde(skip_serializing_if = "Option::is_none")]
8531 pub offer_features: Option<String>,
8532 #[serde(skip_serializing_if = "Option::is_none")]
8533 pub offer_id: Option<String>,
8534 #[serde(skip_serializing_if = "Option::is_none")]
8535 pub offer_issuer: Option<String>,
8536 #[serde(skip_serializing_if = "Option::is_none")]
8537 pub offer_issuer_id: Option<PublicKey>,
8538 #[serde(skip_serializing_if = "Option::is_none")]
8539 pub offer_metadata: Option<String>,
8540 #[serde(skip_serializing_if = "Option::is_none")]
8541 pub offer_quantity_max: Option<u64>,
8542 #[serde(skip_serializing_if = "Option::is_none")]
8543 pub offer_recurrence: Option<DecodeOfferRecurrence>,
8544 #[serde(skip_serializing_if = "Option::is_none")]
8545 pub payee: Option<PublicKey>,
8546 #[serde(skip_serializing_if = "Option::is_none")]
8547 pub payment_hash: Option<Sha256>,
8548 #[serde(skip_serializing_if = "Option::is_none")]
8549 pub payment_metadata: Option<String>,
8550 #[serde(skip_serializing_if = "Option::is_none")]
8551 pub payment_secret: Option<Secret>,
8552 #[serde(skip_serializing_if = "Option::is_none")]
8553 pub proof_note: Option<String>,
8554 #[serde(skip_serializing_if = "Option::is_none")]
8555 pub proof_preimage: Option<String>,
8556 #[serde(skip_serializing_if = "Option::is_none")]
8557 pub proof_signature: Option<String>,
8558 #[serde(skip_serializing_if = "Option::is_none")]
8559 pub routes: Option<DecodeRoutehintList>,
8560 #[serde(skip_serializing_if = "Option::is_none")]
8561 pub signature: Option<String>,
8562 #[serde(skip_serializing_if = "Option::is_none")]
8563 pub string: Option<String>,
8564 #[serde(skip_serializing_if = "Option::is_none")]
8565 pub unique_id: Option<String>,
8566 #[serde(skip_serializing_if = "Option::is_none")]
8567 pub version: Option<String>,
8568 #[serde(skip_serializing_if = "Option::is_none")]
8569 pub warning_empty_blinded_path: Option<String>,
8570 #[serde(skip_serializing_if = "Option::is_none")]
8571 pub warning_invalid_invoice_request_signature: Option<String>,
8572 #[serde(skip_serializing_if = "Option::is_none")]
8573 pub warning_invalid_invoice_signature: Option<String>,
8574 #[serde(skip_serializing_if = "Option::is_none")]
8575 pub warning_invalid_invreq_payer_note: Option<String>,
8576 #[serde(skip_serializing_if = "Option::is_none")]
8577 pub warning_invalid_offer_currency: Option<String>,
8578 #[serde(skip_serializing_if = "Option::is_none")]
8579 pub warning_invalid_offer_description: Option<String>,
8580 #[serde(skip_serializing_if = "Option::is_none")]
8581 pub warning_invalid_offer_issuer: Option<String>,
8582 #[serde(skip_serializing_if = "Option::is_none")]
8583 pub warning_invreq_bip_353_name_domain_invalid: Option<String>,
8584 #[serde(skip_serializing_if = "Option::is_none")]
8585 pub warning_invreq_bip_353_name_name_invalid: Option<String>,
8586 #[serde(skip_serializing_if = "Option::is_none")]
8587 pub warning_invreq_recurrence_cancel_with_zero_counter: Option<String>,
8588 #[serde(skip_serializing_if = "Option::is_none")]
8589 pub warning_invreq_recurrence_cancel_without_counter: Option<String>,
8590 #[serde(skip_serializing_if = "Option::is_none")]
8591 pub warning_missing_invoice_amount: Option<String>,
8592 #[serde(skip_serializing_if = "Option::is_none")]
8593 pub warning_missing_invoice_blindedpay: Option<String>,
8594 #[serde(skip_serializing_if = "Option::is_none")]
8595 pub warning_missing_invoice_created_at: Option<String>,
8596 #[serde(skip_serializing_if = "Option::is_none")]
8597 pub warning_missing_invoice_node_id: Option<String>,
8598 #[serde(skip_serializing_if = "Option::is_none")]
8599 pub warning_missing_invoice_paths: Option<String>,
8600 #[serde(skip_serializing_if = "Option::is_none")]
8601 pub warning_missing_invoice_payment_hash: Option<String>,
8602 #[serde(skip_serializing_if = "Option::is_none")]
8603 pub warning_missing_invoice_recurrence_basetime: Option<String>,
8604 #[serde(skip_serializing_if = "Option::is_none")]
8605 pub warning_missing_invoice_request_signature: Option<String>,
8606 #[serde(skip_serializing_if = "Option::is_none")]
8607 pub warning_missing_invoice_signature: Option<String>,
8608 #[serde(skip_serializing_if = "Option::is_none")]
8609 pub warning_missing_invreq_metadata: Option<String>,
8610 #[serde(skip_serializing_if = "Option::is_none")]
8611 pub warning_missing_invreq_payer_id: Option<String>,
8612 #[serde(skip_serializing_if = "Option::is_none")]
8613 pub warning_missing_offer_description: Option<String>,
8614 #[serde(skip_serializing_if = "Option::is_none")]
8615 pub warning_missing_offer_issuer_id: Option<String>,
8616 #[serde(skip_serializing_if = "Option::is_none")]
8617 pub warning_rune_invalid_utf8: Option<String>,
8618 #[serde(skip_serializing_if = "Option::is_none")]
8619 pub warning_unknown_offer_currency: Option<String>,
8620 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8621 pub extra: Option<Vec<DecodeExtra>>,
8622 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8623 pub fallbacks: Option<Vec<DecodeFallbacks>>,
8624 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8625 pub invoice_fallbacks: Option<Vec<DecodeInvoiceFallbacks>>,
8626 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8627 pub invoice_paths: Option<Vec<DecodeInvoicePaths>>,
8628 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8629 pub invreq_paths: Option<Vec<DecodeInvreqPaths>>,
8630 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8631 pub offer_chains: Option<Vec<Sha256>>,
8632 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8633 pub offer_paths: Option<Vec<DecodeOfferPaths>>,
8634 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8635 pub proof_leaf_hashes: Option<Vec<Sha256>>,
8636 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8637 pub proof_missing_hashes: Option<Vec<Sha256>>,
8638 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8639 pub proof_omitted_tlvs: Option<Vec<u64>>,
8640 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8641 pub restrictions: Option<Vec<DecodeRestrictions>>,
8642 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8643 pub unknown_invoice_request_tlvs: Option<Vec<DecodeUnknownInvoiceRequestTlvs>>,
8644 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8645 pub unknown_invoice_tlvs: Option<Vec<DecodeUnknownInvoiceTlvs>>,
8646 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8647 pub unknown_offer_tlvs: Option<Vec<DecodeUnknownOfferTlvs>>,
8648 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
8649 pub unknown_payer_proof_tlvs: Option<Vec<DecodeUnknownPayerProofTlvs>>,
8650 #[serde(rename = "type")]
8652 pub item_type: DecodeType,
8653 pub valid: bool,
8654 }
8655
8656 impl TryFrom<Response> for DecodeResponse {
8657 type Error = super::TryFromResponseError;
8658
8659 fn try_from(response: Response) -> Result<Self, Self::Error> {
8660 match response {
8661 Response::Decode(response) => Ok(response),
8662 _ => Err(TryFromResponseError)
8663 }
8664 }
8665 }
8666
8667 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
8669 #[allow(non_camel_case_types)]
8670 pub enum DelpayPaymentsStatus {
8671 #[serde(rename = "pending")]
8672 PENDING = 0,
8673 #[serde(rename = "failed")]
8674 FAILED = 1,
8675 #[serde(rename = "complete")]
8676 COMPLETE = 2,
8677 }
8678
8679 impl TryFrom<i32> for DelpayPaymentsStatus {
8680 type Error = anyhow::Error;
8681 fn try_from(c: i32) -> Result<DelpayPaymentsStatus, anyhow::Error> {
8682 match c {
8683 0 => Ok(DelpayPaymentsStatus::PENDING),
8684 1 => Ok(DelpayPaymentsStatus::FAILED),
8685 2 => Ok(DelpayPaymentsStatus::COMPLETE),
8686 o => Err(anyhow::anyhow!("Unknown variant {} for enum DelpayPaymentsStatus", o)),
8687 }
8688 }
8689 }
8690
8691 impl ToString for DelpayPaymentsStatus {
8692 fn to_string(&self) -> String {
8693 match self {
8694 DelpayPaymentsStatus::PENDING => "PENDING",
8695 DelpayPaymentsStatus::FAILED => "FAILED",
8696 DelpayPaymentsStatus::COMPLETE => "COMPLETE",
8697 }.to_string()
8698 }
8699 }
8700
8701 #[derive(Clone, Debug, Deserialize, Serialize)]
8702 pub struct DelpayPayments {
8703 #[serde(skip_serializing_if = "Option::is_none")]
8704 pub amount_msat: Option<Amount>,
8705 #[serde(skip_serializing_if = "Option::is_none")]
8706 pub bolt11: Option<String>,
8707 #[serde(skip_serializing_if = "Option::is_none")]
8708 pub bolt12: Option<String>,
8709 #[serde(skip_serializing_if = "Option::is_none")]
8710 pub completed_at: Option<u64>,
8711 #[serde(skip_serializing_if = "Option::is_none")]
8712 pub destination: Option<PublicKey>,
8713 #[serde(skip_serializing_if = "Option::is_none")]
8714 pub erroronion: Option<String>,
8715 #[serde(skip_serializing_if = "Option::is_none")]
8716 pub groupid: Option<u64>,
8717 #[serde(skip_serializing_if = "Option::is_none")]
8718 pub label: Option<String>,
8719 #[serde(skip_serializing_if = "Option::is_none")]
8720 pub partid: Option<u64>,
8721 #[serde(skip_serializing_if = "Option::is_none")]
8722 pub payment_preimage: Option<Secret>,
8723 #[serde(skip_serializing_if = "Option::is_none")]
8724 pub updated_index: Option<u64>,
8725 pub status: DelpayPaymentsStatus,
8727 pub amount_sent_msat: Amount,
8728 pub created_at: u64,
8729 pub created_index: u64,
8730 pub id: u64,
8731 pub payment_hash: Sha256,
8732 }
8733
8734 #[derive(Clone, Debug, Deserialize, Serialize)]
8735 pub struct DelpayResponse {
8736 pub payments: Vec<DelpayPayments>,
8737 }
8738
8739 impl TryFrom<Response> for DelpayResponse {
8740 type Error = super::TryFromResponseError;
8741
8742 fn try_from(response: Response) -> Result<Self, Self::Error> {
8743 match response {
8744 Response::DelPay(response) => Ok(response),
8745 _ => Err(TryFromResponseError)
8746 }
8747 }
8748 }
8749
8750 #[derive(Clone, Debug, Deserialize, Serialize)]
8751 pub struct DelforwardResponse {
8752 }
8753
8754 impl TryFrom<Response> for DelforwardResponse {
8755 type Error = super::TryFromResponseError;
8756
8757 fn try_from(response: Response) -> Result<Self, Self::Error> {
8758 match response {
8759 Response::DelForward(response) => Ok(response),
8760 _ => Err(TryFromResponseError)
8761 }
8762 }
8763 }
8764
8765 #[derive(Clone, Debug, Deserialize, Serialize)]
8766 pub struct DisableofferResponse {
8767 #[serde(skip_serializing_if = "Option::is_none")]
8768 pub description: Option<String>,
8769 #[serde(skip_serializing_if = "Option::is_none")]
8770 pub force_paths: Option<bool>,
8771 #[serde(skip_serializing_if = "Option::is_none")]
8772 pub label: Option<String>,
8773 pub active: bool,
8774 pub bolt12: String,
8775 pub offer_id: Sha256,
8776 pub single_use: bool,
8777 pub used: bool,
8778 }
8779
8780 impl TryFrom<Response> for DisableofferResponse {
8781 type Error = super::TryFromResponseError;
8782
8783 fn try_from(response: Response) -> Result<Self, Self::Error> {
8784 match response {
8785 Response::DisableOffer(response) => Ok(response),
8786 _ => Err(TryFromResponseError)
8787 }
8788 }
8789 }
8790
8791 #[derive(Clone, Debug, Deserialize, Serialize)]
8792 pub struct EnableofferResponse {
8793 #[serde(skip_serializing_if = "Option::is_none")]
8794 pub description: Option<String>,
8795 #[serde(skip_serializing_if = "Option::is_none")]
8796 pub force_paths: Option<bool>,
8797 #[serde(skip_serializing_if = "Option::is_none")]
8798 pub label: Option<String>,
8799 pub active: bool,
8800 pub bolt12: String,
8801 pub offer_id: Sha256,
8802 pub single_use: bool,
8803 pub used: bool,
8804 }
8805
8806 impl TryFrom<Response> for EnableofferResponse {
8807 type Error = super::TryFromResponseError;
8808
8809 fn try_from(response: Response) -> Result<Self, Self::Error> {
8810 match response {
8811 Response::EnableOffer(response) => Ok(response),
8812 _ => Err(TryFromResponseError)
8813 }
8814 }
8815 }
8816
8817 #[derive(Clone, Debug, Deserialize, Serialize)]
8818 pub struct DisconnectResponse {
8819 }
8820
8821 impl TryFrom<Response> for DisconnectResponse {
8822 type Error = super::TryFromResponseError;
8823
8824 fn try_from(response: Response) -> Result<Self, Self::Error> {
8825 match response {
8826 Response::Disconnect(response) => Ok(response),
8827 _ => Err(TryFromResponseError)
8828 }
8829 }
8830 }
8831
8832 #[derive(Clone, Debug, Deserialize, Serialize)]
8833 pub struct FeeratesOnchainFeeEstimates {
8834 #[serde(skip_serializing_if = "Option::is_none")]
8835 pub unilateral_close_nonanchor_satoshis: Option<u64>,
8836 pub htlc_success_satoshis: u64,
8837 pub htlc_timeout_satoshis: u64,
8838 pub mutual_close_satoshis: u64,
8839 pub opening_channel_satoshis: u64,
8840 pub unilateral_close_satoshis: u64,
8841 }
8842
8843 #[derive(Clone, Debug, Deserialize, Serialize)]
8844 pub struct FeeratesPerkbEstimates {
8845 pub blockcount: u32,
8846 pub feerate: u32,
8847 pub smoothed_feerate: u32,
8848 }
8849
8850 #[derive(Clone, Debug, Deserialize, Serialize)]
8851 pub struct FeeratesPerkb {
8852 #[serde(skip_serializing_if = "Option::is_none")]
8853 pub mutual_close: Option<u32>,
8854 #[serde(skip_serializing_if = "Option::is_none")]
8855 pub opening: Option<u32>,
8856 #[serde(skip_serializing_if = "Option::is_none")]
8857 pub penalty: Option<u32>,
8858 #[serde(skip_serializing_if = "Option::is_none")]
8859 pub splice: Option<u32>,
8860 #[serde(skip_serializing_if = "Option::is_none")]
8861 pub unilateral_anchor_close: Option<u32>,
8862 #[serde(skip_serializing_if = "Option::is_none")]
8863 pub unilateral_close: Option<u32>,
8864 pub estimates: Vec<FeeratesPerkbEstimates>,
8865 pub floor: u32,
8866 pub max_acceptable: u32,
8867 pub min_acceptable: u32,
8868 }
8869
8870 #[derive(Clone, Debug, Deserialize, Serialize)]
8871 pub struct FeeratesPerkwEstimates {
8872 pub blockcount: u32,
8873 pub feerate: u32,
8874 pub smoothed_feerate: u32,
8875 }
8876
8877 #[derive(Clone, Debug, Deserialize, Serialize)]
8878 pub struct FeeratesPerkw {
8879 #[serde(skip_serializing_if = "Option::is_none")]
8880 pub mutual_close: Option<u32>,
8881 #[serde(skip_serializing_if = "Option::is_none")]
8882 pub opening: Option<u32>,
8883 #[serde(skip_serializing_if = "Option::is_none")]
8884 pub penalty: Option<u32>,
8885 #[serde(skip_serializing_if = "Option::is_none")]
8886 pub splice: Option<u32>,
8887 #[serde(skip_serializing_if = "Option::is_none")]
8888 pub unilateral_anchor_close: Option<u32>,
8889 #[serde(skip_serializing_if = "Option::is_none")]
8890 pub unilateral_close: Option<u32>,
8891 pub estimates: Vec<FeeratesPerkwEstimates>,
8892 pub floor: u32,
8893 pub max_acceptable: u32,
8894 pub min_acceptable: u32,
8895 }
8896
8897 #[derive(Clone, Debug, Deserialize, Serialize)]
8898 pub struct FeeratesResponse {
8899 #[serde(skip_serializing_if = "Option::is_none")]
8900 pub onchain_fee_estimates: Option<FeeratesOnchainFeeEstimates>,
8901 #[serde(skip_serializing_if = "Option::is_none")]
8902 pub perkb: Option<FeeratesPerkb>,
8903 #[serde(skip_serializing_if = "Option::is_none")]
8904 pub perkw: Option<FeeratesPerkw>,
8905 #[serde(skip_serializing_if = "Option::is_none")]
8906 pub warning_missing_feerates: Option<String>,
8907 }
8908
8909 impl TryFrom<Response> for FeeratesResponse {
8910 type Error = super::TryFromResponseError;
8911
8912 fn try_from(response: Response) -> Result<Self, Self::Error> {
8913 match response {
8914 Response::Feerates(response) => Ok(response),
8915 _ => Err(TryFromResponseError)
8916 }
8917 }
8918 }
8919
8920 #[derive(Clone, Debug, Deserialize, Serialize)]
8921 pub struct Fetchbip353Instructions {
8922 #[serde(skip_serializing_if = "Option::is_none")]
8923 pub description: Option<String>,
8924 #[serde(skip_serializing_if = "Option::is_none")]
8925 pub offchain_amount_msat: Option<u64>,
8926 #[serde(skip_serializing_if = "Option::is_none")]
8927 pub offer: Option<String>,
8928 #[serde(skip_serializing_if = "Option::is_none")]
8929 pub onchain: Option<String>,
8930 #[serde(skip_serializing_if = "Option::is_none")]
8931 pub onchain_amount_sat: Option<u64>,
8932 }
8933
8934 #[derive(Clone, Debug, Deserialize, Serialize)]
8935 pub struct Fetchbip353Response {
8936 pub instructions: Vec<Fetchbip353Instructions>,
8937 pub proof: String,
8938 }
8939
8940 impl TryFrom<Response> for Fetchbip353Response {
8941 type Error = super::TryFromResponseError;
8942
8943 fn try_from(response: Response) -> Result<Self, Self::Error> {
8944 match response {
8945 Response::FetchBip353(response) => Ok(response),
8946 _ => Err(TryFromResponseError)
8947 }
8948 }
8949 }
8950
8951 #[derive(Clone, Debug, Deserialize, Serialize)]
8952 pub struct FetchinvoiceNextPeriod {
8953 pub counter: u64,
8954 pub endtime: u64,
8955 pub paywindow_end: u64,
8956 pub paywindow_start: u64,
8957 pub starttime: u64,
8958 }
8959
8960 #[derive(Clone, Debug, Deserialize, Serialize)]
8961 pub struct FetchinvoiceChanges {
8962 #[serde(skip_serializing_if = "Option::is_none")]
8963 pub amount_msat: Option<Amount>,
8964 #[serde(skip_serializing_if = "Option::is_none")]
8965 pub description: Option<String>,
8966 #[serde(skip_serializing_if = "Option::is_none")]
8967 pub description_appended: Option<String>,
8968 #[serde(skip_serializing_if = "Option::is_none")]
8969 pub vendor: Option<String>,
8970 #[serde(skip_serializing_if = "Option::is_none")]
8971 pub vendor_removed: Option<String>,
8972 }
8973
8974 #[derive(Clone, Debug, Deserialize, Serialize)]
8975 pub struct FetchinvoiceResponse {
8976 #[serde(skip_serializing_if = "Option::is_none")]
8977 pub next_period: Option<FetchinvoiceNextPeriod>,
8978 pub changes: FetchinvoiceChanges,
8979 pub invoice: String,
8980 }
8981
8982 impl TryFrom<Response> for FetchinvoiceResponse {
8983 type Error = super::TryFromResponseError;
8984
8985 fn try_from(response: Response) -> Result<Self, Self::Error> {
8986 match response {
8987 Response::FetchInvoice(response) => Ok(response),
8988 _ => Err(TryFromResponseError)
8989 }
8990 }
8991 }
8992
8993 #[derive(Clone, Debug, Deserialize, Serialize)]
8994 pub struct CancelrecurringinvoiceResponse {
8995 pub bolt12: String,
8996 }
8997
8998 impl TryFrom<Response> for CancelrecurringinvoiceResponse {
8999 type Error = super::TryFromResponseError;
9000
9001 fn try_from(response: Response) -> Result<Self, Self::Error> {
9002 match response {
9003 Response::CancelRecurringInvoice(response) => Ok(response),
9004 _ => Err(TryFromResponseError)
9005 }
9006 }
9007 }
9008
9009 #[derive(Clone, Debug, Deserialize, Serialize)]
9010 pub struct FundchannelCancelResponse {
9011 pub cancelled: String,
9012 }
9013
9014 impl TryFrom<Response> for FundchannelCancelResponse {
9015 type Error = super::TryFromResponseError;
9016
9017 fn try_from(response: Response) -> Result<Self, Self::Error> {
9018 match response {
9019 Response::FundChannelCancel(response) => Ok(response),
9020 _ => Err(TryFromResponseError)
9021 }
9022 }
9023 }
9024
9025 #[derive(Clone, Debug, Deserialize, Serialize)]
9026 pub struct FundchannelCompleteResponse {
9027 pub channel_id: Sha256,
9028 pub commitments_secured: bool,
9029 }
9030
9031 impl TryFrom<Response> for FundchannelCompleteResponse {
9032 type Error = super::TryFromResponseError;
9033
9034 fn try_from(response: Response) -> Result<Self, Self::Error> {
9035 match response {
9036 Response::FundChannelComplete(response) => Ok(response),
9037 _ => Err(TryFromResponseError)
9038 }
9039 }
9040 }
9041
9042 #[derive(Clone, Debug, Deserialize, Serialize)]
9043 pub struct FundchannelChannelType {
9044 pub bits: Vec<u32>,
9045 pub names: Vec<ChannelTypeName>,
9046 }
9047
9048 #[derive(Clone, Debug, Deserialize, Serialize)]
9049 pub struct FundchannelResponse {
9050 #[serde(skip_serializing_if = "Option::is_none")]
9051 pub close_to: Option<String>,
9052 #[serde(skip_serializing_if = "Option::is_none")]
9053 pub mindepth: Option<u32>,
9054 pub channel_id: Sha256,
9055 pub channel_type: FundchannelChannelType,
9056 pub outnum: u32,
9057 pub tx: String,
9058 pub txid: String,
9059 }
9060
9061 impl TryFrom<Response> for FundchannelResponse {
9062 type Error = super::TryFromResponseError;
9063
9064 fn try_from(response: Response) -> Result<Self, Self::Error> {
9065 match response {
9066 Response::FundChannel(response) => Ok(response),
9067 _ => Err(TryFromResponseError)
9068 }
9069 }
9070 }
9071
9072 #[derive(Clone, Debug, Deserialize, Serialize)]
9073 pub struct FundchannelStartChannelType {
9074 pub bits: Vec<u32>,
9075 pub names: Vec<ChannelTypeName>,
9076 }
9077
9078 #[derive(Clone, Debug, Deserialize, Serialize)]
9079 pub struct FundchannelStartResponse {
9080 #[serde(skip_serializing_if = "Option::is_none")]
9081 pub channel_type: Option<FundchannelStartChannelType>,
9082 #[serde(skip_serializing_if = "Option::is_none")]
9083 pub close_to: Option<String>,
9084 #[serde(skip_serializing_if = "Option::is_none")]
9085 pub mindepth: Option<u32>,
9086 pub funding_address: String,
9087 pub scriptpubkey: String,
9088 pub warning_usage: String,
9089 }
9090
9091 impl TryFrom<Response> for FundchannelStartResponse {
9092 type Error = super::TryFromResponseError;
9093
9094 fn try_from(response: Response) -> Result<Self, Self::Error> {
9095 match response {
9096 Response::FundChannelStart(response) => Ok(response),
9097 _ => Err(TryFromResponseError)
9098 }
9099 }
9100 }
9101
9102 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9103 #[allow(non_camel_case_types)]
9104 pub enum GetlogLogType {
9105 #[serde(rename = "SKIPPED")]
9106 SKIPPED = 0,
9107 #[serde(rename = "BROKEN")]
9108 BROKEN = 1,
9109 #[serde(rename = "UNUSUAL")]
9110 UNUSUAL = 2,
9111 #[serde(rename = "INFO")]
9112 INFO = 3,
9113 #[serde(rename = "DEBUG")]
9114 DEBUG = 4,
9115 #[serde(rename = "IO_IN")]
9116 IO_IN = 5,
9117 #[serde(rename = "IO_OUT")]
9118 IO_OUT = 6,
9119 #[serde(rename = "TRACE")]
9120 TRACE = 7,
9121 }
9122
9123 impl TryFrom<i32> for GetlogLogType {
9124 type Error = anyhow::Error;
9125 fn try_from(c: i32) -> Result<GetlogLogType, anyhow::Error> {
9126 match c {
9127 0 => Ok(GetlogLogType::SKIPPED),
9128 1 => Ok(GetlogLogType::BROKEN),
9129 2 => Ok(GetlogLogType::UNUSUAL),
9130 3 => Ok(GetlogLogType::INFO),
9131 4 => Ok(GetlogLogType::DEBUG),
9132 5 => Ok(GetlogLogType::IO_IN),
9133 6 => Ok(GetlogLogType::IO_OUT),
9134 7 => Ok(GetlogLogType::TRACE),
9135 o => Err(anyhow::anyhow!("Unknown variant {} for enum GetlogLogType", o)),
9136 }
9137 }
9138 }
9139
9140 impl ToString for GetlogLogType {
9141 fn to_string(&self) -> String {
9142 match self {
9143 GetlogLogType::SKIPPED => "SKIPPED",
9144 GetlogLogType::BROKEN => "BROKEN",
9145 GetlogLogType::UNUSUAL => "UNUSUAL",
9146 GetlogLogType::INFO => "INFO",
9147 GetlogLogType::DEBUG => "DEBUG",
9148 GetlogLogType::TRACE => "TRACE",
9149 GetlogLogType::IO_IN => "IO_IN",
9150 GetlogLogType::IO_OUT => "IO_OUT",
9151 }.to_string()
9152 }
9153 }
9154
9155 #[derive(Clone, Debug, Deserialize, Serialize)]
9156 pub struct GetlogLog {
9157 #[serde(skip_serializing_if = "Option::is_none")]
9158 pub data: Option<String>,
9159 #[serde(skip_serializing_if = "Option::is_none")]
9160 pub log: Option<String>,
9161 #[serde(skip_serializing_if = "Option::is_none")]
9162 pub node_id: Option<PublicKey>,
9163 #[serde(skip_serializing_if = "Option::is_none")]
9164 pub num_skipped: Option<u32>,
9165 #[serde(skip_serializing_if = "Option::is_none")]
9166 pub source: Option<String>,
9167 #[serde(skip_serializing_if = "Option::is_none")]
9168 pub time: Option<String>,
9169 #[serde(rename = "type")]
9171 pub item_type: GetlogLogType,
9172 }
9173
9174 #[derive(Clone, Debug, Deserialize, Serialize)]
9175 pub struct GetlogResponse {
9176 pub bytes_max: u32,
9177 pub bytes_used: u32,
9178 pub created_at: String,
9179 pub log: Vec<GetlogLog>,
9180 }
9181
9182 impl TryFrom<Response> for GetlogResponse {
9183 type Error = super::TryFromResponseError;
9184
9185 fn try_from(response: Response) -> Result<Self, Self::Error> {
9186 match response {
9187 Response::GetLog(response) => Ok(response),
9188 _ => Err(TryFromResponseError)
9189 }
9190 }
9191 }
9192
9193 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9195 #[allow(non_camel_case_types)]
9196 pub enum FunderupdatePolicy {
9197 #[serde(rename = "match")]
9198 MATCH = 0,
9199 #[serde(rename = "available")]
9200 AVAILABLE = 1,
9201 #[serde(rename = "fixed")]
9202 FIXED = 2,
9203 }
9204
9205 impl TryFrom<i32> for FunderupdatePolicy {
9206 type Error = anyhow::Error;
9207 fn try_from(c: i32) -> Result<FunderupdatePolicy, anyhow::Error> {
9208 match c {
9209 0 => Ok(FunderupdatePolicy::MATCH),
9210 1 => Ok(FunderupdatePolicy::AVAILABLE),
9211 2 => Ok(FunderupdatePolicy::FIXED),
9212 o => Err(anyhow::anyhow!("Unknown variant {} for enum FunderupdatePolicy", o)),
9213 }
9214 }
9215 }
9216
9217 impl ToString for FunderupdatePolicy {
9218 fn to_string(&self) -> String {
9219 match self {
9220 FunderupdatePolicy::MATCH => "MATCH",
9221 FunderupdatePolicy::AVAILABLE => "AVAILABLE",
9222 FunderupdatePolicy::FIXED => "FIXED",
9223 }.to_string()
9224 }
9225 }
9226
9227 #[derive(Clone, Debug, Deserialize, Serialize)]
9228 pub struct FunderupdateResponse {
9229 #[serde(skip_serializing_if = "Option::is_none")]
9230 pub channel_fee_max_base_msat: Option<Amount>,
9231 #[serde(skip_serializing_if = "Option::is_none")]
9232 pub channel_fee_max_proportional_thousandths: Option<u32>,
9233 #[serde(skip_serializing_if = "Option::is_none")]
9234 pub compact_lease: Option<String>,
9235 #[serde(skip_serializing_if = "Option::is_none")]
9236 pub funding_weight: Option<u32>,
9237 #[serde(skip_serializing_if = "Option::is_none")]
9238 pub lease_fee_base_msat: Option<Amount>,
9239 #[serde(skip_serializing_if = "Option::is_none")]
9240 pub lease_fee_basis: Option<u32>,
9241 pub policy: FunderupdatePolicy,
9243 pub fund_probability: u32,
9244 pub fuzz_percent: u32,
9245 pub leases_only: bool,
9246 pub max_their_funding_msat: Amount,
9247 pub min_their_funding_msat: Amount,
9248 pub per_channel_max_msat: Amount,
9249 pub per_channel_min_msat: Amount,
9250 pub policy_mod: u32,
9251 pub reserve_tank_msat: Amount,
9252 pub summary: String,
9253 }
9254
9255 impl TryFrom<Response> for FunderupdateResponse {
9256 type Error = super::TryFromResponseError;
9257
9258 fn try_from(response: Response) -> Result<Self, Self::Error> {
9259 match response {
9260 Response::FunderUpdate(response) => Ok(response),
9261 _ => Err(TryFromResponseError)
9262 }
9263 }
9264 }
9265
9266 #[deprecated]
9268 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9269 #[allow(non_camel_case_types)]
9270 pub enum GetrouteRouteStyle {
9271 #[serde(rename = "tlv")]
9272 TLV = 0,
9273 }
9274
9275 impl TryFrom<i32> for GetrouteRouteStyle {
9276 type Error = anyhow::Error;
9277 fn try_from(c: i32) -> Result<GetrouteRouteStyle, anyhow::Error> {
9278 match c {
9279 0 => Ok(GetrouteRouteStyle::TLV),
9280 o => Err(anyhow::anyhow!("Unknown variant {} for enum GetrouteRouteStyle", o)),
9281 }
9282 }
9283 }
9284
9285 impl ToString for GetrouteRouteStyle {
9286 fn to_string(&self) -> String {
9287 match self {
9288 GetrouteRouteStyle::TLV => "TLV",
9289 }.to_string()
9290 }
9291 }
9292
9293 #[deprecated = "deprecated since CLN v26.06"]
9294 #[derive(Clone, Debug, Deserialize, Serialize)]
9295 pub struct GetrouteRoute {
9296 #[deprecated]
9297 pub amount_msat: Amount,
9298 #[deprecated]
9299 pub channel: ShortChannelId,
9300 #[deprecated]
9301 pub delay: u32,
9302 #[deprecated]
9303 pub direction: u32,
9304 #[deprecated]
9305 pub id: PublicKey,
9306 pub style: GetrouteRouteStyle,
9308 }
9309
9310 #[deprecated = "deprecated since CLN v26.06"]
9311 #[derive(Clone, Debug, Deserialize, Serialize)]
9312 pub struct GetrouteResponse {
9313 #[deprecated]
9314 pub route: Vec<GetrouteRoute>,
9315 }
9316
9317 impl TryFrom<Response> for GetrouteResponse {
9318 type Error = super::TryFromResponseError;
9319
9320 fn try_from(response: Response) -> Result<Self, Self::Error> {
9321 match response {
9322 Response::GetRoute(response) => Ok(response),
9323 _ => Err(TryFromResponseError)
9324 }
9325 }
9326 }
9327
9328 #[derive(Clone, Debug, Deserialize, Serialize)]
9329 pub struct ListaddressesAddresses {
9330 #[serde(skip_serializing_if = "Option::is_none")]
9331 pub bech32: Option<String>,
9332 #[serde(skip_serializing_if = "Option::is_none")]
9333 pub p2tr: Option<String>,
9334 pub keyidx: u64,
9335 }
9336
9337 #[derive(Clone, Debug, Deserialize, Serialize)]
9338 pub struct ListaddressesResponse {
9339 pub addresses: Vec<ListaddressesAddresses>,
9340 }
9341
9342 impl TryFrom<Response> for ListaddressesResponse {
9343 type Error = super::TryFromResponseError;
9344
9345 fn try_from(response: Response) -> Result<Self, Self::Error> {
9346 match response {
9347 Response::ListAddresses(response) => Ok(response),
9348 _ => Err(TryFromResponseError)
9349 }
9350 }
9351 }
9352
9353 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9355 #[allow(non_camel_case_types)]
9356 pub enum ListforwardsForwardsStyle {
9357 #[serde(rename = "legacy")]
9358 LEGACY = 0,
9359 #[serde(rename = "tlv")]
9360 TLV = 1,
9361 }
9362
9363 impl TryFrom<i32> for ListforwardsForwardsStyle {
9364 type Error = anyhow::Error;
9365 fn try_from(c: i32) -> Result<ListforwardsForwardsStyle, anyhow::Error> {
9366 match c {
9367 0 => Ok(ListforwardsForwardsStyle::LEGACY),
9368 1 => Ok(ListforwardsForwardsStyle::TLV),
9369 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsForwardsStyle", o)),
9370 }
9371 }
9372 }
9373
9374 impl ToString for ListforwardsForwardsStyle {
9375 fn to_string(&self) -> String {
9376 match self {
9377 ListforwardsForwardsStyle::LEGACY => "LEGACY",
9378 ListforwardsForwardsStyle::TLV => "TLV",
9379 }.to_string()
9380 }
9381 }
9382
9383 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9385 #[allow(non_camel_case_types)]
9386 pub enum ListforwardsForwardsStatus {
9387 #[serde(rename = "offered")]
9388 OFFERED = 0,
9389 #[serde(rename = "settled")]
9390 SETTLED = 1,
9391 #[serde(rename = "local_failed")]
9392 LOCAL_FAILED = 2,
9393 #[serde(rename = "failed")]
9394 FAILED = 3,
9395 }
9396
9397 impl TryFrom<i32> for ListforwardsForwardsStatus {
9398 type Error = anyhow::Error;
9399 fn try_from(c: i32) -> Result<ListforwardsForwardsStatus, anyhow::Error> {
9400 match c {
9401 0 => Ok(ListforwardsForwardsStatus::OFFERED),
9402 1 => Ok(ListforwardsForwardsStatus::SETTLED),
9403 2 => Ok(ListforwardsForwardsStatus::LOCAL_FAILED),
9404 3 => Ok(ListforwardsForwardsStatus::FAILED),
9405 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsForwardsStatus", o)),
9406 }
9407 }
9408 }
9409
9410 impl ToString for ListforwardsForwardsStatus {
9411 fn to_string(&self) -> String {
9412 match self {
9413 ListforwardsForwardsStatus::OFFERED => "OFFERED",
9414 ListforwardsForwardsStatus::SETTLED => "SETTLED",
9415 ListforwardsForwardsStatus::LOCAL_FAILED => "LOCAL_FAILED",
9416 ListforwardsForwardsStatus::FAILED => "FAILED",
9417 }.to_string()
9418 }
9419 }
9420
9421 #[derive(Clone, Debug, Deserialize, Serialize)]
9422 pub struct ListforwardsForwards {
9423 #[serde(skip_serializing_if = "Option::is_none")]
9424 pub failcode: Option<u32>,
9425 #[serde(skip_serializing_if = "Option::is_none")]
9426 pub failreason: Option<String>,
9427 #[serde(skip_serializing_if = "Option::is_none")]
9428 pub fee_msat: Option<Amount>,
9429 #[serde(skip_serializing_if = "Option::is_none")]
9430 pub in_htlc_id: Option<u64>,
9431 #[serde(skip_serializing_if = "Option::is_none")]
9432 pub out_channel: Option<ShortChannelId>,
9433 #[serde(skip_serializing_if = "Option::is_none")]
9434 pub out_htlc_id: Option<u64>,
9435 #[serde(skip_serializing_if = "Option::is_none")]
9436 pub out_msat: Option<Amount>,
9437 #[serde(skip_serializing_if = "Option::is_none")]
9438 pub resolved_time: Option<f64>,
9439 #[serde(skip_serializing_if = "Option::is_none")]
9440 pub style: Option<ListforwardsForwardsStyle>,
9441 #[serde(skip_serializing_if = "Option::is_none")]
9442 pub updated_index: Option<u64>,
9443 pub status: ListforwardsForwardsStatus,
9445 pub created_index: u64,
9446 pub in_channel: ShortChannelId,
9447 pub in_msat: Amount,
9448 pub received_time: f64,
9449 }
9450
9451 #[derive(Clone, Debug, Deserialize, Serialize)]
9452 pub struct ListforwardsResponse {
9453 pub forwards: Vec<ListforwardsForwards>,
9454 }
9455
9456 impl TryFrom<Response> for ListforwardsResponse {
9457 type Error = super::TryFromResponseError;
9458
9459 fn try_from(response: Response) -> Result<Self, Self::Error> {
9460 match response {
9461 Response::ListForwards(response) => Ok(response),
9462 _ => Err(TryFromResponseError)
9463 }
9464 }
9465 }
9466
9467 #[derive(Clone, Debug, Deserialize, Serialize)]
9468 pub struct ListoffersOffers {
9469 #[serde(skip_serializing_if = "Option::is_none")]
9470 pub description: Option<String>,
9471 #[serde(skip_serializing_if = "Option::is_none")]
9472 pub force_paths: Option<bool>,
9473 #[serde(skip_serializing_if = "Option::is_none")]
9474 pub label: Option<String>,
9475 pub active: bool,
9476 pub bolt12: String,
9477 pub offer_id: Sha256,
9478 pub single_use: bool,
9479 pub used: bool,
9480 }
9481
9482 #[derive(Clone, Debug, Deserialize, Serialize)]
9483 pub struct ListoffersResponse {
9484 pub offers: Vec<ListoffersOffers>,
9485 }
9486
9487 impl TryFrom<Response> for ListoffersResponse {
9488 type Error = super::TryFromResponseError;
9489
9490 fn try_from(response: Response) -> Result<Self, Self::Error> {
9491 match response {
9492 Response::ListOffers(response) => Ok(response),
9493 _ => Err(TryFromResponseError)
9494 }
9495 }
9496 }
9497
9498 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9500 #[allow(non_camel_case_types)]
9501 pub enum ListpaysPaysStatus {
9502 #[serde(rename = "pending")]
9503 PENDING = 0,
9504 #[serde(rename = "failed")]
9505 FAILED = 1,
9506 #[serde(rename = "complete")]
9507 COMPLETE = 2,
9508 }
9509
9510 impl TryFrom<i32> for ListpaysPaysStatus {
9511 type Error = anyhow::Error;
9512 fn try_from(c: i32) -> Result<ListpaysPaysStatus, anyhow::Error> {
9513 match c {
9514 0 => Ok(ListpaysPaysStatus::PENDING),
9515 1 => Ok(ListpaysPaysStatus::FAILED),
9516 2 => Ok(ListpaysPaysStatus::COMPLETE),
9517 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpaysPaysStatus", o)),
9518 }
9519 }
9520 }
9521
9522 impl ToString for ListpaysPaysStatus {
9523 fn to_string(&self) -> String {
9524 match self {
9525 ListpaysPaysStatus::PENDING => "PENDING",
9526 ListpaysPaysStatus::FAILED => "FAILED",
9527 ListpaysPaysStatus::COMPLETE => "COMPLETE",
9528 }.to_string()
9529 }
9530 }
9531
9532 #[derive(Clone, Debug, Deserialize, Serialize)]
9533 pub struct ListpaysPays {
9534 #[serde(skip_serializing_if = "Option::is_none")]
9535 pub amount_msat: Option<Amount>,
9536 #[serde(skip_serializing_if = "Option::is_none")]
9537 pub amount_sent_msat: Option<Amount>,
9538 #[serde(skip_serializing_if = "Option::is_none")]
9539 pub bolt11: Option<String>,
9540 #[serde(skip_serializing_if = "Option::is_none")]
9541 pub bolt12: Option<String>,
9542 #[serde(skip_serializing_if = "Option::is_none")]
9543 pub completed_at: Option<u64>,
9544 #[serde(skip_serializing_if = "Option::is_none")]
9545 pub created_index: Option<u64>,
9546 #[serde(skip_serializing_if = "Option::is_none")]
9547 pub description: Option<String>,
9548 #[serde(skip_serializing_if = "Option::is_none")]
9549 pub destination: Option<PublicKey>,
9550 #[serde(skip_serializing_if = "Option::is_none")]
9551 pub erroronion: Option<String>,
9552 #[serde(skip_serializing_if = "Option::is_none")]
9553 pub label: Option<String>,
9554 #[serde(skip_serializing_if = "Option::is_none")]
9555 pub number_of_parts: Option<u64>,
9556 #[serde(skip_serializing_if = "Option::is_none")]
9557 pub preimage: Option<Secret>,
9558 #[serde(skip_serializing_if = "Option::is_none")]
9559 pub updated_index: Option<u64>,
9560 pub status: ListpaysPaysStatus,
9562 pub created_at: u64,
9563 pub payment_hash: Sha256,
9564 }
9565
9566 #[derive(Clone, Debug, Deserialize, Serialize)]
9567 pub struct ListpaysResponse {
9568 pub pays: Vec<ListpaysPays>,
9569 }
9570
9571 impl TryFrom<Response> for ListpaysResponse {
9572 type Error = super::TryFromResponseError;
9573
9574 fn try_from(response: Response) -> Result<Self, Self::Error> {
9575 match response {
9576 Response::ListPays(response) => Ok(response),
9577 _ => Err(TryFromResponseError)
9578 }
9579 }
9580 }
9581
9582 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9584 #[allow(non_camel_case_types)]
9585 pub enum ListhtlcsHtlcsDirection {
9586 #[serde(rename = "out")]
9587 OUT = 0,
9588 #[serde(rename = "in")]
9589 IN = 1,
9590 }
9591
9592 impl TryFrom<i32> for ListhtlcsHtlcsDirection {
9593 type Error = anyhow::Error;
9594 fn try_from(c: i32) -> Result<ListhtlcsHtlcsDirection, anyhow::Error> {
9595 match c {
9596 0 => Ok(ListhtlcsHtlcsDirection::OUT),
9597 1 => Ok(ListhtlcsHtlcsDirection::IN),
9598 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListhtlcsHtlcsDirection", o)),
9599 }
9600 }
9601 }
9602
9603 impl ToString for ListhtlcsHtlcsDirection {
9604 fn to_string(&self) -> String {
9605 match self {
9606 ListhtlcsHtlcsDirection::OUT => "OUT",
9607 ListhtlcsHtlcsDirection::IN => "IN",
9608 }.to_string()
9609 }
9610 }
9611
9612 #[derive(Clone, Debug, Deserialize, Serialize)]
9613 pub struct ListhtlcsHtlcs {
9614 #[serde(skip_serializing_if = "Option::is_none")]
9615 pub created_index: Option<u64>,
9616 #[serde(skip_serializing_if = "Option::is_none")]
9617 pub updated_index: Option<u64>,
9618 pub direction: ListhtlcsHtlcsDirection,
9620 pub state: HtlcState,
9622 pub amount_msat: Amount,
9623 pub expiry: u32,
9624 pub id: u64,
9625 pub payment_hash: Sha256,
9626 pub short_channel_id: ShortChannelId,
9627 }
9628
9629 #[derive(Clone, Debug, Deserialize, Serialize)]
9630 pub struct ListhtlcsResponse {
9631 pub htlcs: Vec<ListhtlcsHtlcs>,
9632 }
9633
9634 impl TryFrom<Response> for ListhtlcsResponse {
9635 type Error = super::TryFromResponseError;
9636
9637 fn try_from(response: Response) -> Result<Self, Self::Error> {
9638 match response {
9639 Response::ListHtlcs(response) => Ok(response),
9640 _ => Err(TryFromResponseError)
9641 }
9642 }
9643 }
9644
9645 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9647 #[allow(non_camel_case_types)]
9648 pub enum MultifundchannelFailedMethod {
9649 #[serde(rename = "connect")]
9650 CONNECT = 0,
9651 #[serde(rename = "openchannel_init")]
9652 OPENCHANNEL_INIT = 1,
9653 #[serde(rename = "fundchannel_start")]
9654 FUNDCHANNEL_START = 2,
9655 #[serde(rename = "fundchannel_complete")]
9656 FUNDCHANNEL_COMPLETE = 3,
9657 }
9658
9659 impl TryFrom<i32> for MultifundchannelFailedMethod {
9660 type Error = anyhow::Error;
9661 fn try_from(c: i32) -> Result<MultifundchannelFailedMethod, anyhow::Error> {
9662 match c {
9663 0 => Ok(MultifundchannelFailedMethod::CONNECT),
9664 1 => Ok(MultifundchannelFailedMethod::OPENCHANNEL_INIT),
9665 2 => Ok(MultifundchannelFailedMethod::FUNDCHANNEL_START),
9666 3 => Ok(MultifundchannelFailedMethod::FUNDCHANNEL_COMPLETE),
9667 o => Err(anyhow::anyhow!("Unknown variant {} for enum MultifundchannelFailedMethod", o)),
9668 }
9669 }
9670 }
9671
9672 impl ToString for MultifundchannelFailedMethod {
9673 fn to_string(&self) -> String {
9674 match self {
9675 MultifundchannelFailedMethod::CONNECT => "CONNECT",
9676 MultifundchannelFailedMethod::OPENCHANNEL_INIT => "OPENCHANNEL_INIT",
9677 MultifundchannelFailedMethod::FUNDCHANNEL_START => "FUNDCHANNEL_START",
9678 MultifundchannelFailedMethod::FUNDCHANNEL_COMPLETE => "FUNDCHANNEL_COMPLETE",
9679 }.to_string()
9680 }
9681 }
9682
9683 #[derive(Clone, Debug, Deserialize, Serialize)]
9684 pub struct MultifundchannelFailedError {
9685 pub code: i64,
9686 pub message: String,
9687 }
9688
9689 #[derive(Clone, Debug, Deserialize, Serialize)]
9690 pub struct MultifundchannelFailed {
9691 pub method: MultifundchannelFailedMethod,
9693 pub error: MultifundchannelFailedError,
9694 pub id: PublicKey,
9695 }
9696
9697 #[derive(Clone, Debug, Deserialize, Serialize)]
9698 pub struct MultifundchannelChannelIdsChannelType {
9699 pub bits: Vec<u32>,
9700 pub names: Vec<ChannelTypeName>,
9701 }
9702
9703 #[derive(Clone, Debug, Deserialize, Serialize)]
9704 pub struct MultifundchannelChannelIds {
9705 #[serde(skip_serializing_if = "Option::is_none")]
9706 pub close_to: Option<String>,
9707 pub channel_id: Sha256,
9708 pub channel_type: MultifundchannelChannelIdsChannelType,
9709 pub id: PublicKey,
9710 pub outnum: u32,
9711 }
9712
9713 #[derive(Clone, Debug, Deserialize, Serialize)]
9714 pub struct MultifundchannelResponse {
9715 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
9716 pub failed: Option<Vec<MultifundchannelFailed>>,
9717 pub channel_ids: Vec<MultifundchannelChannelIds>,
9718 pub tx: String,
9719 pub txid: String,
9720 }
9721
9722 impl TryFrom<Response> for MultifundchannelResponse {
9723 type Error = super::TryFromResponseError;
9724
9725 fn try_from(response: Response) -> Result<Self, Self::Error> {
9726 match response {
9727 Response::MultiFundChannel(response) => Ok(response),
9728 _ => Err(TryFromResponseError)
9729 }
9730 }
9731 }
9732
9733 #[derive(Clone, Debug, Deserialize, Serialize)]
9734 pub struct MultiwithdrawResponse {
9735 pub tx: String,
9736 pub txid: String,
9737 }
9738
9739 impl TryFrom<Response> for MultiwithdrawResponse {
9740 type Error = super::TryFromResponseError;
9741
9742 fn try_from(response: Response) -> Result<Self, Self::Error> {
9743 match response {
9744 Response::MultiWithdraw(response) => Ok(response),
9745 _ => Err(TryFromResponseError)
9746 }
9747 }
9748 }
9749
9750 #[derive(Clone, Debug, Deserialize, Serialize)]
9751 pub struct OfferResponse {
9752 #[serde(skip_serializing_if = "Option::is_none")]
9753 pub force_paths: Option<bool>,
9754 #[serde(skip_serializing_if = "Option::is_none")]
9755 pub label: Option<String>,
9756 pub active: bool,
9757 pub bolt12: String,
9758 pub created: bool,
9759 pub offer_id: Sha256,
9760 pub single_use: bool,
9761 pub used: bool,
9762 }
9763
9764 impl TryFrom<Response> for OfferResponse {
9765 type Error = super::TryFromResponseError;
9766
9767 fn try_from(response: Response) -> Result<Self, Self::Error> {
9768 match response {
9769 Response::Offer(response) => Ok(response),
9770 _ => Err(TryFromResponseError)
9771 }
9772 }
9773 }
9774
9775 #[derive(Clone, Debug, Deserialize, Serialize)]
9776 pub struct OpenchannelAbortResponse {
9777 pub channel_canceled: bool,
9778 pub channel_id: Sha256,
9779 pub reason: String,
9780 }
9781
9782 impl TryFrom<Response> for OpenchannelAbortResponse {
9783 type Error = super::TryFromResponseError;
9784
9785 fn try_from(response: Response) -> Result<Self, Self::Error> {
9786 match response {
9787 Response::OpenChannelAbort(response) => Ok(response),
9788 _ => Err(TryFromResponseError)
9789 }
9790 }
9791 }
9792
9793 #[derive(Clone, Debug, Deserialize, Serialize)]
9794 pub struct OpenchannelBumpChannelType {
9795 pub bits: Vec<u32>,
9796 pub names: Vec<ChannelTypeName>,
9797 }
9798
9799 #[derive(Clone, Debug, Deserialize, Serialize)]
9800 pub struct OpenchannelBumpResponse {
9801 #[serde(skip_serializing_if = "Option::is_none")]
9802 pub requires_confirmed_inputs: Option<bool>,
9803 pub channel_id: Sha256,
9804 pub channel_type: OpenchannelBumpChannelType,
9805 pub commitments_secured: bool,
9806 pub funding_serial: u64,
9807 pub psbt: String,
9808 }
9809
9810 impl TryFrom<Response> for OpenchannelBumpResponse {
9811 type Error = super::TryFromResponseError;
9812
9813 fn try_from(response: Response) -> Result<Self, Self::Error> {
9814 match response {
9815 Response::OpenChannelBump(response) => Ok(response),
9816 _ => Err(TryFromResponseError)
9817 }
9818 }
9819 }
9820
9821 #[derive(Clone, Debug, Deserialize, Serialize)]
9822 pub struct OpenchannelInitChannelType {
9823 pub bits: Vec<u32>,
9824 pub names: Vec<ChannelTypeName>,
9825 }
9826
9827 #[derive(Clone, Debug, Deserialize, Serialize)]
9828 pub struct OpenchannelInitResponse {
9829 #[serde(skip_serializing_if = "Option::is_none")]
9830 pub requires_confirmed_inputs: Option<bool>,
9831 pub channel_id: Sha256,
9832 pub channel_type: OpenchannelInitChannelType,
9833 pub commitments_secured: bool,
9834 pub funding_serial: u64,
9835 pub psbt: String,
9836 }
9837
9838 impl TryFrom<Response> for OpenchannelInitResponse {
9839 type Error = super::TryFromResponseError;
9840
9841 fn try_from(response: Response) -> Result<Self, Self::Error> {
9842 match response {
9843 Response::OpenChannelInit(response) => Ok(response),
9844 _ => Err(TryFromResponseError)
9845 }
9846 }
9847 }
9848
9849 #[derive(Clone, Debug, Deserialize, Serialize)]
9850 pub struct OpenchannelSignedResponse {
9851 pub channel_id: Sha256,
9852 pub tx: String,
9853 pub txid: String,
9854 }
9855
9856 impl TryFrom<Response> for OpenchannelSignedResponse {
9857 type Error = super::TryFromResponseError;
9858
9859 fn try_from(response: Response) -> Result<Self, Self::Error> {
9860 match response {
9861 Response::OpenChannelSigned(response) => Ok(response),
9862 _ => Err(TryFromResponseError)
9863 }
9864 }
9865 }
9866
9867 #[derive(Clone, Debug, Deserialize, Serialize)]
9868 pub struct OpenchannelUpdateChannelType {
9869 pub bits: Vec<u32>,
9870 pub names: Vec<ChannelTypeName>,
9871 }
9872
9873 #[derive(Clone, Debug, Deserialize, Serialize)]
9874 pub struct OpenchannelUpdateResponse {
9875 #[serde(skip_serializing_if = "Option::is_none")]
9876 pub close_to: Option<String>,
9877 #[serde(skip_serializing_if = "Option::is_none")]
9878 pub requires_confirmed_inputs: Option<bool>,
9879 pub channel_id: Sha256,
9880 pub channel_type: OpenchannelUpdateChannelType,
9881 pub commitments_secured: bool,
9882 pub funding_outnum: u32,
9883 pub psbt: String,
9884 }
9885
9886 impl TryFrom<Response> for OpenchannelUpdateResponse {
9887 type Error = super::TryFromResponseError;
9888
9889 fn try_from(response: Response) -> Result<Self, Self::Error> {
9890 match response {
9891 Response::OpenChannelUpdate(response) => Ok(response),
9892 _ => Err(TryFromResponseError)
9893 }
9894 }
9895 }
9896
9897 #[derive(Clone, Debug, Deserialize, Serialize)]
9898 pub struct PingResponse {
9899 pub totlen: u16,
9900 }
9901
9902 impl TryFrom<Response> for PingResponse {
9903 type Error = super::TryFromResponseError;
9904
9905 fn try_from(response: Response) -> Result<Self, Self::Error> {
9906 match response {
9907 Response::Ping(response) => Ok(response),
9908 _ => Err(TryFromResponseError)
9909 }
9910 }
9911 }
9912
9913 #[derive(Clone, Debug, Deserialize, Serialize)]
9914 pub struct PluginPlugins {
9915 pub active: bool,
9916 pub dynamic: bool,
9917 pub name: String,
9918 }
9919
9920 #[derive(Clone, Debug, Deserialize, Serialize)]
9921 pub struct PluginResponse {
9922 #[serde(skip_serializing_if = "Option::is_none")]
9923 pub result: Option<String>,
9924 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
9925 pub plugins: Option<Vec<PluginPlugins>>,
9926 pub command: PluginSubcommand,
9928 }
9929
9930 impl TryFrom<Response> for PluginResponse {
9931 type Error = super::TryFromResponseError;
9932
9933 fn try_from(response: Response) -> Result<Self, Self::Error> {
9934 match response {
9935 Response::Plugin(response) => Ok(response),
9936 _ => Err(TryFromResponseError)
9937 }
9938 }
9939 }
9940
9941 #[deprecated]
9943 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
9944 #[allow(non_camel_case_types)]
9945 pub enum RenepaystatusPaystatusStatus {
9946 #[serde(rename = "complete")]
9947 COMPLETE = 0,
9948 #[serde(rename = "pending")]
9949 PENDING = 1,
9950 #[serde(rename = "failed")]
9951 FAILED = 2,
9952 }
9953
9954 impl TryFrom<i32> for RenepaystatusPaystatusStatus {
9955 type Error = anyhow::Error;
9956 fn try_from(c: i32) -> Result<RenepaystatusPaystatusStatus, anyhow::Error> {
9957 match c {
9958 0 => Ok(RenepaystatusPaystatusStatus::COMPLETE),
9959 1 => Ok(RenepaystatusPaystatusStatus::PENDING),
9960 2 => Ok(RenepaystatusPaystatusStatus::FAILED),
9961 o => Err(anyhow::anyhow!("Unknown variant {} for enum RenepaystatusPaystatusStatus", o)),
9962 }
9963 }
9964 }
9965
9966 impl ToString for RenepaystatusPaystatusStatus {
9967 fn to_string(&self) -> String {
9968 match self {
9969 RenepaystatusPaystatusStatus::COMPLETE => "COMPLETE",
9970 RenepaystatusPaystatusStatus::PENDING => "PENDING",
9971 RenepaystatusPaystatusStatus::FAILED => "FAILED",
9972 }.to_string()
9973 }
9974 }
9975
9976 #[deprecated = "deprecated since CLN v26.06"]
9977 #[derive(Clone, Debug, Deserialize, Serialize)]
9978 pub struct RenepaystatusPaystatus {
9979 #[deprecated]
9980 #[serde(skip_serializing_if = "Option::is_none")]
9981 pub amount_sent_msat: Option<Amount>,
9982 #[deprecated]
9983 #[serde(skip_serializing_if = "Option::is_none")]
9984 pub destination: Option<PublicKey>,
9985 #[deprecated]
9986 #[serde(skip_serializing_if = "Option::is_none")]
9987 pub parts: Option<u32>,
9988 #[deprecated]
9989 #[serde(skip_serializing_if = "Option::is_none")]
9990 pub payment_preimage: Option<Secret>,
9991 #[deprecated]
9992 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
9993 pub notes: Option<Vec<String>>,
9994 #[deprecated]
9995 pub amount_msat: Amount,
9996 #[deprecated]
9997 pub bolt11: String,
9998 #[deprecated]
9999 pub created_at: f64,
10000 #[deprecated]
10001 pub groupid: u32,
10002 #[deprecated]
10003 pub payment_hash: Sha256,
10004 pub status: RenepaystatusPaystatusStatus,
10006 }
10007
10008 #[deprecated = "deprecated since CLN v26.06"]
10009 #[derive(Clone, Debug, Deserialize, Serialize)]
10010 pub struct RenepaystatusResponse {
10011 #[deprecated]
10012 pub paystatus: Vec<RenepaystatusPaystatus>,
10013 }
10014
10015 impl TryFrom<Response> for RenepaystatusResponse {
10016 type Error = super::TryFromResponseError;
10017
10018 fn try_from(response: Response) -> Result<Self, Self::Error> {
10019 match response {
10020 Response::RenePayStatus(response) => Ok(response),
10021 _ => Err(TryFromResponseError)
10022 }
10023 }
10024 }
10025
10026 #[deprecated]
10028 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10029 #[allow(non_camel_case_types)]
10030 pub enum RenepayStatus {
10031 #[serde(rename = "complete")]
10032 COMPLETE = 0,
10033 #[serde(rename = "pending")]
10034 PENDING = 1,
10035 #[serde(rename = "failed")]
10036 FAILED = 2,
10037 }
10038
10039 impl TryFrom<i32> for RenepayStatus {
10040 type Error = anyhow::Error;
10041 fn try_from(c: i32) -> Result<RenepayStatus, anyhow::Error> {
10042 match c {
10043 0 => Ok(RenepayStatus::COMPLETE),
10044 1 => Ok(RenepayStatus::PENDING),
10045 2 => Ok(RenepayStatus::FAILED),
10046 o => Err(anyhow::anyhow!("Unknown variant {} for enum RenepayStatus", o)),
10047 }
10048 }
10049 }
10050
10051 impl ToString for RenepayStatus {
10052 fn to_string(&self) -> String {
10053 match self {
10054 RenepayStatus::COMPLETE => "COMPLETE",
10055 RenepayStatus::PENDING => "PENDING",
10056 RenepayStatus::FAILED => "FAILED",
10057 }.to_string()
10058 }
10059 }
10060
10061 #[deprecated = "deprecated since CLN v26.06"]
10062 #[derive(Clone, Debug, Deserialize, Serialize)]
10063 pub struct RenepayResponse {
10064 #[deprecated]
10065 #[serde(skip_serializing_if = "Option::is_none")]
10066 pub bolt11: Option<String>,
10067 #[deprecated]
10068 #[serde(skip_serializing_if = "Option::is_none")]
10069 pub bolt12: Option<String>,
10070 #[deprecated]
10071 #[serde(skip_serializing_if = "Option::is_none")]
10072 pub destination: Option<PublicKey>,
10073 #[deprecated]
10074 #[serde(skip_serializing_if = "Option::is_none")]
10075 pub groupid: Option<u64>,
10076 #[deprecated]
10077 pub amount_msat: Amount,
10078 #[deprecated]
10079 pub amount_sent_msat: Amount,
10080 #[deprecated]
10081 pub created_at: f64,
10082 #[deprecated]
10083 pub parts: u32,
10084 #[deprecated]
10085 pub payment_hash: Sha256,
10086 #[deprecated]
10087 pub payment_preimage: Secret,
10088 pub status: RenepayStatus,
10090 }
10091
10092 impl TryFrom<Response> for RenepayResponse {
10093 type Error = super::TryFromResponseError;
10094
10095 fn try_from(response: Response) -> Result<Self, Self::Error> {
10096 match response {
10097 Response::RenePay(response) => Ok(response),
10098 _ => Err(TryFromResponseError)
10099 }
10100 }
10101 }
10102
10103 #[derive(Clone, Debug, Deserialize, Serialize)]
10104 pub struct ReserveinputsReservations {
10105 pub reserved: bool,
10106 pub reserved_to_block: u32,
10107 pub txid: String,
10108 pub vout: u32,
10109 pub was_reserved: bool,
10110 }
10111
10112 #[derive(Clone, Debug, Deserialize, Serialize)]
10113 pub struct ReserveinputsResponse {
10114 pub reservations: Vec<ReserveinputsReservations>,
10115 }
10116
10117 impl TryFrom<Response> for ReserveinputsResponse {
10118 type Error = super::TryFromResponseError;
10119
10120 fn try_from(response: Response) -> Result<Self, Self::Error> {
10121 match response {
10122 Response::ReserveInputs(response) => Ok(response),
10123 _ => Err(TryFromResponseError)
10124 }
10125 }
10126 }
10127
10128 #[derive(Clone, Debug, Deserialize, Serialize)]
10129 pub struct SendcustommsgResponse {
10130 pub status: String,
10131 }
10132
10133 impl TryFrom<Response> for SendcustommsgResponse {
10134 type Error = super::TryFromResponseError;
10135
10136 fn try_from(response: Response) -> Result<Self, Self::Error> {
10137 match response {
10138 Response::SendCustomMsg(response) => Ok(response),
10139 _ => Err(TryFromResponseError)
10140 }
10141 }
10142 }
10143
10144 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10146 #[allow(non_camel_case_types)]
10147 pub enum SendinvoiceStatus {
10148 #[serde(rename = "unpaid")]
10149 UNPAID = 0,
10150 #[serde(rename = "paid")]
10151 PAID = 1,
10152 #[serde(rename = "expired")]
10153 EXPIRED = 2,
10154 }
10155
10156 impl TryFrom<i32> for SendinvoiceStatus {
10157 type Error = anyhow::Error;
10158 fn try_from(c: i32) -> Result<SendinvoiceStatus, anyhow::Error> {
10159 match c {
10160 0 => Ok(SendinvoiceStatus::UNPAID),
10161 1 => Ok(SendinvoiceStatus::PAID),
10162 2 => Ok(SendinvoiceStatus::EXPIRED),
10163 o => Err(anyhow::anyhow!("Unknown variant {} for enum SendinvoiceStatus", o)),
10164 }
10165 }
10166 }
10167
10168 impl ToString for SendinvoiceStatus {
10169 fn to_string(&self) -> String {
10170 match self {
10171 SendinvoiceStatus::UNPAID => "UNPAID",
10172 SendinvoiceStatus::PAID => "PAID",
10173 SendinvoiceStatus::EXPIRED => "EXPIRED",
10174 }.to_string()
10175 }
10176 }
10177
10178 #[derive(Clone, Debug, Deserialize, Serialize)]
10179 pub struct SendinvoiceResponse {
10180 #[serde(skip_serializing_if = "Option::is_none")]
10181 pub amount_msat: Option<Amount>,
10182 #[serde(skip_serializing_if = "Option::is_none")]
10183 pub amount_received_msat: Option<Amount>,
10184 #[serde(skip_serializing_if = "Option::is_none")]
10185 pub bolt12: Option<String>,
10186 #[serde(skip_serializing_if = "Option::is_none")]
10187 pub paid_at: Option<u64>,
10188 #[serde(skip_serializing_if = "Option::is_none")]
10189 pub pay_index: Option<u64>,
10190 #[serde(skip_serializing_if = "Option::is_none")]
10191 pub payment_preimage: Option<Secret>,
10192 #[serde(skip_serializing_if = "Option::is_none")]
10193 pub updated_index: Option<u64>,
10194 pub status: SendinvoiceStatus,
10196 pub created_index: u64,
10197 pub description: String,
10198 pub expires_at: u64,
10199 pub label: String,
10200 pub payment_hash: Sha256,
10201 }
10202
10203 impl TryFrom<Response> for SendinvoiceResponse {
10204 type Error = super::TryFromResponseError;
10205
10206 fn try_from(response: Response) -> Result<Self, Self::Error> {
10207 match response {
10208 Response::SendInvoice(response) => Ok(response),
10209 _ => Err(TryFromResponseError)
10210 }
10211 }
10212 }
10213
10214 #[derive(Clone, Debug, Deserialize, Serialize)]
10215 pub struct SetchannelChannels {
10216 #[serde(skip_serializing_if = "Option::is_none")]
10217 pub short_channel_id: Option<ShortChannelId>,
10218 #[serde(skip_serializing_if = "Option::is_none")]
10219 pub warning_htlcmax_too_high: Option<String>,
10220 #[serde(skip_serializing_if = "Option::is_none")]
10221 pub warning_htlcmin_too_low: Option<String>,
10222 pub channel_id: Sha256,
10223 pub fee_base_msat: Amount,
10224 pub fee_proportional_millionths: u32,
10225 pub ignore_fee_limits: bool,
10226 pub maximum_htlc_out_msat: Amount,
10227 pub minimum_htlc_out_msat: Amount,
10228 pub peer_id: PublicKey,
10229 }
10230
10231 #[derive(Clone, Debug, Deserialize, Serialize)]
10232 pub struct SetchannelResponse {
10233 pub channels: Vec<SetchannelChannels>,
10234 }
10235
10236 impl TryFrom<Response> for SetchannelResponse {
10237 type Error = super::TryFromResponseError;
10238
10239 fn try_from(response: Response) -> Result<Self, Self::Error> {
10240 match response {
10241 Response::SetChannel(response) => Ok(response),
10242 _ => Err(TryFromResponseError)
10243 }
10244 }
10245 }
10246
10247 #[derive(Clone, Debug, Deserialize, Serialize)]
10248 pub struct SetconfigConfig {
10249 #[serde(skip_serializing_if = "Option::is_none")]
10250 pub plugin: Option<String>,
10251 #[serde(skip_serializing_if = "Option::is_none")]
10252 pub set: Option<bool>,
10253 #[serde(skip_serializing_if = "Option::is_none")]
10254 pub source: Option<String>,
10255 #[serde(skip_serializing_if = "Option::is_none")]
10256 pub value_bool: Option<bool>,
10257 #[serde(skip_serializing_if = "Option::is_none")]
10258 pub value_int: Option<i64>,
10259 #[serde(skip_serializing_if = "Option::is_none")]
10260 pub value_msat: Option<Amount>,
10261 #[serde(skip_serializing_if = "Option::is_none")]
10262 pub value_str: Option<String>,
10263 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
10264 pub sources: Option<Vec<String>>,
10265 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
10266 pub values_str: Option<Vec<String>>,
10267 pub config: String,
10268 pub dynamic: bool,
10269 }
10270
10271 #[derive(Clone, Debug, Deserialize, Serialize)]
10272 pub struct SetconfigResponse {
10273 pub config: SetconfigConfig,
10274 }
10275
10276 impl TryFrom<Response> for SetconfigResponse {
10277 type Error = super::TryFromResponseError;
10278
10279 fn try_from(response: Response) -> Result<Self, Self::Error> {
10280 match response {
10281 Response::SetConfig(response) => Ok(response),
10282 _ => Err(TryFromResponseError)
10283 }
10284 }
10285 }
10286
10287 #[derive(Clone, Debug, Deserialize, Serialize)]
10288 pub struct SetpsbtversionResponse {
10289 pub psbt: String,
10290 }
10291
10292 impl TryFrom<Response> for SetpsbtversionResponse {
10293 type Error = super::TryFromResponseError;
10294
10295 fn try_from(response: Response) -> Result<Self, Self::Error> {
10296 match response {
10297 Response::SetPsbtVersion(response) => Ok(response),
10298 _ => Err(TryFromResponseError)
10299 }
10300 }
10301 }
10302
10303 #[derive(Clone, Debug, Deserialize, Serialize)]
10304 pub struct SigninvoiceResponse {
10305 pub bolt11: String,
10306 }
10307
10308 impl TryFrom<Response> for SigninvoiceResponse {
10309 type Error = super::TryFromResponseError;
10310
10311 fn try_from(response: Response) -> Result<Self, Self::Error> {
10312 match response {
10313 Response::SignInvoice(response) => Ok(response),
10314 _ => Err(TryFromResponseError)
10315 }
10316 }
10317 }
10318
10319 #[derive(Clone, Debug, Deserialize, Serialize)]
10320 pub struct SignmessageResponse {
10321 pub recid: String,
10322 pub signature: String,
10323 pub zbase: String,
10324 }
10325
10326 impl TryFrom<Response> for SignmessageResponse {
10327 type Error = super::TryFromResponseError;
10328
10329 fn try_from(response: Response) -> Result<Self, Self::Error> {
10330 match response {
10331 Response::SignMessage(response) => Ok(response),
10332 _ => Err(TryFromResponseError)
10333 }
10334 }
10335 }
10336
10337 #[derive(Clone, Debug, Deserialize, Serialize)]
10338 pub struct SpliceInitResponse {
10339 pub psbt: String,
10340 }
10341
10342 impl TryFrom<Response> for SpliceInitResponse {
10343 type Error = super::TryFromResponseError;
10344
10345 fn try_from(response: Response) -> Result<Self, Self::Error> {
10346 match response {
10347 Response::SpliceInit(response) => Ok(response),
10348 _ => Err(TryFromResponseError)
10349 }
10350 }
10351 }
10352
10353 #[derive(Clone, Debug, Deserialize, Serialize)]
10354 pub struct SpliceSignedResponse {
10355 #[serde(skip_serializing_if = "Option::is_none")]
10356 pub outnum: Option<u32>,
10357 pub psbt: String,
10358 pub tx: String,
10359 pub txid: String,
10360 }
10361
10362 impl TryFrom<Response> for SpliceSignedResponse {
10363 type Error = super::TryFromResponseError;
10364
10365 fn try_from(response: Response) -> Result<Self, Self::Error> {
10366 match response {
10367 Response::SpliceSigned(response) => Ok(response),
10368 _ => Err(TryFromResponseError)
10369 }
10370 }
10371 }
10372
10373 #[derive(Clone, Debug, Deserialize, Serialize)]
10374 pub struct SpliceUpdateResponse {
10375 #[serde(skip_serializing_if = "Option::is_none")]
10376 pub signatures_secured: Option<bool>,
10377 pub commitments_secured: bool,
10378 pub psbt: String,
10379 }
10380
10381 impl TryFrom<Response> for SpliceUpdateResponse {
10382 type Error = super::TryFromResponseError;
10383
10384 fn try_from(response: Response) -> Result<Self, Self::Error> {
10385 match response {
10386 Response::SpliceUpdate(response) => Ok(response),
10387 _ => Err(TryFromResponseError)
10388 }
10389 }
10390 }
10391
10392 #[derive(Clone, Debug, Deserialize, Serialize)]
10393 pub struct SpliceinResponse {
10394 #[serde(skip_serializing_if = "Option::is_none")]
10395 pub psbt: Option<String>,
10396 #[serde(skip_serializing_if = "Option::is_none")]
10397 pub tx: Option<String>,
10398 #[serde(skip_serializing_if = "Option::is_none")]
10399 pub txid: Option<String>,
10400 }
10401
10402 impl TryFrom<Response> for SpliceinResponse {
10403 type Error = super::TryFromResponseError;
10404
10405 fn try_from(response: Response) -> Result<Self, Self::Error> {
10406 match response {
10407 Response::SpliceIn(response) => Ok(response),
10408 _ => Err(TryFromResponseError)
10409 }
10410 }
10411 }
10412
10413 #[derive(Clone, Debug, Deserialize, Serialize)]
10414 pub struct SpliceoutResponse {
10415 #[serde(skip_serializing_if = "Option::is_none")]
10416 pub psbt: Option<String>,
10417 #[serde(skip_serializing_if = "Option::is_none")]
10418 pub tx: Option<String>,
10419 #[serde(skip_serializing_if = "Option::is_none")]
10420 pub txid: Option<String>,
10421 }
10422
10423 impl TryFrom<Response> for SpliceoutResponse {
10424 type Error = super::TryFromResponseError;
10425
10426 fn try_from(response: Response) -> Result<Self, Self::Error> {
10427 match response {
10428 Response::SpliceOut(response) => Ok(response),
10429 _ => Err(TryFromResponseError)
10430 }
10431 }
10432 }
10433
10434 #[derive(Clone, Debug, Deserialize, Serialize)]
10435 pub struct DevspliceResponse {
10436 #[serde(skip_serializing_if = "Option::is_none")]
10437 pub psbt: Option<String>,
10438 #[serde(skip_serializing_if = "Option::is_none")]
10439 pub tx: Option<String>,
10440 #[serde(skip_serializing_if = "Option::is_none")]
10441 pub txid: Option<String>,
10442 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
10443 pub dryrun: Option<Vec<String>>,
10444 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
10445 pub log: Option<Vec<String>>,
10446 }
10447
10448 impl TryFrom<Response> for DevspliceResponse {
10449 type Error = super::TryFromResponseError;
10450
10451 fn try_from(response: Response) -> Result<Self, Self::Error> {
10452 match response {
10453 Response::DevSplice(response) => Ok(response),
10454 _ => Err(TryFromResponseError)
10455 }
10456 }
10457 }
10458
10459 #[derive(Clone, Debug, Deserialize, Serialize)]
10460 pub struct UnreserveinputsReservations {
10461 #[serde(skip_serializing_if = "Option::is_none")]
10462 pub reserved_to_block: Option<u32>,
10463 pub reserved: bool,
10464 pub txid: String,
10465 pub vout: u32,
10466 pub was_reserved: bool,
10467 }
10468
10469 #[derive(Clone, Debug, Deserialize, Serialize)]
10470 pub struct UnreserveinputsResponse {
10471 pub reservations: Vec<UnreserveinputsReservations>,
10472 }
10473
10474 impl TryFrom<Response> for UnreserveinputsResponse {
10475 type Error = super::TryFromResponseError;
10476
10477 fn try_from(response: Response) -> Result<Self, Self::Error> {
10478 match response {
10479 Response::UnreserveInputs(response) => Ok(response),
10480 _ => Err(TryFromResponseError)
10481 }
10482 }
10483 }
10484
10485 #[derive(Clone, Debug, Deserialize, Serialize)]
10486 pub struct UpgradewalletResponse {
10487 #[serde(skip_serializing_if = "Option::is_none")]
10488 pub psbt: Option<String>,
10489 #[serde(skip_serializing_if = "Option::is_none")]
10490 pub tx: Option<String>,
10491 #[serde(skip_serializing_if = "Option::is_none")]
10492 pub txid: Option<String>,
10493 pub upgraded_outs: u64,
10494 }
10495
10496 impl TryFrom<Response> for UpgradewalletResponse {
10497 type Error = super::TryFromResponseError;
10498
10499 fn try_from(response: Response) -> Result<Self, Self::Error> {
10500 match response {
10501 Response::UpgradeWallet(response) => Ok(response),
10502 _ => Err(TryFromResponseError)
10503 }
10504 }
10505 }
10506
10507 #[derive(Clone, Debug, Deserialize, Serialize)]
10508 pub struct WaitblockheightResponse {
10509 pub blockheight: u32,
10510 }
10511
10512 impl TryFrom<Response> for WaitblockheightResponse {
10513 type Error = super::TryFromResponseError;
10514
10515 fn try_from(response: Response) -> Result<Self, Self::Error> {
10516 match response {
10517 Response::WaitBlockHeight(response) => Ok(response),
10518 _ => Err(TryFromResponseError)
10519 }
10520 }
10521 }
10522
10523 #[deprecated]
10525 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10526 #[allow(non_camel_case_types)]
10527 pub enum WaitDetailsStatus {
10528 #[serde(rename = "unpaid")]
10529 UNPAID = 0,
10530 #[serde(rename = "paid")]
10531 PAID = 1,
10532 #[serde(rename = "expired")]
10533 EXPIRED = 2,
10534 #[serde(rename = "pending")]
10535 PENDING = 3,
10536 #[serde(rename = "failed")]
10537 FAILED = 4,
10538 #[serde(rename = "complete")]
10539 COMPLETE = 5,
10540 #[serde(rename = "offered")]
10541 OFFERED = 6,
10542 #[serde(rename = "settled")]
10543 SETTLED = 7,
10544 #[serde(rename = "local_failed")]
10545 LOCAL_FAILED = 8,
10546 }
10547
10548 impl TryFrom<i32> for WaitDetailsStatus {
10549 type Error = anyhow::Error;
10550 fn try_from(c: i32) -> Result<WaitDetailsStatus, anyhow::Error> {
10551 match c {
10552 0 => Ok(WaitDetailsStatus::UNPAID),
10553 1 => Ok(WaitDetailsStatus::PAID),
10554 2 => Ok(WaitDetailsStatus::EXPIRED),
10555 3 => Ok(WaitDetailsStatus::PENDING),
10556 4 => Ok(WaitDetailsStatus::FAILED),
10557 5 => Ok(WaitDetailsStatus::COMPLETE),
10558 6 => Ok(WaitDetailsStatus::OFFERED),
10559 7 => Ok(WaitDetailsStatus::SETTLED),
10560 8 => Ok(WaitDetailsStatus::LOCAL_FAILED),
10561 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitDetailsStatus", o)),
10562 }
10563 }
10564 }
10565
10566 impl ToString for WaitDetailsStatus {
10567 fn to_string(&self) -> String {
10568 match self {
10569 WaitDetailsStatus::COMPLETE => "COMPLETE",
10570 WaitDetailsStatus::EXPIRED => "EXPIRED",
10571 WaitDetailsStatus::FAILED => "FAILED",
10572 WaitDetailsStatus::LOCAL_FAILED => "LOCAL_FAILED",
10573 WaitDetailsStatus::OFFERED => "OFFERED",
10574 WaitDetailsStatus::PAID => "PAID",
10575 WaitDetailsStatus::PENDING => "PENDING",
10576 WaitDetailsStatus::SETTLED => "SETTLED",
10577 WaitDetailsStatus::UNPAID => "UNPAID",
10578 }.to_string()
10579 }
10580 }
10581
10582 #[deprecated = "deprecated since CLN v25.05"]
10583 #[derive(Clone, Debug, Deserialize, Serialize)]
10584 pub struct WaitDetails {
10585 #[deprecated]
10586 #[serde(skip_serializing_if = "Option::is_none")]
10587 pub bolt11: Option<String>,
10588 #[deprecated]
10589 #[serde(skip_serializing_if = "Option::is_none")]
10590 pub bolt12: Option<String>,
10591 #[deprecated]
10592 #[serde(skip_serializing_if = "Option::is_none")]
10593 pub description: Option<String>,
10594 #[deprecated]
10595 #[serde(skip_serializing_if = "Option::is_none")]
10596 pub groupid: Option<u64>,
10597 #[deprecated]
10598 #[serde(skip_serializing_if = "Option::is_none")]
10599 pub in_channel: Option<ShortChannelId>,
10600 #[deprecated]
10601 #[serde(skip_serializing_if = "Option::is_none")]
10602 pub in_htlc_id: Option<u64>,
10603 #[deprecated]
10604 #[serde(skip_serializing_if = "Option::is_none")]
10605 pub in_msat: Option<Amount>,
10606 #[deprecated]
10607 #[serde(skip_serializing_if = "Option::is_none")]
10608 pub label: Option<String>,
10609 #[deprecated]
10610 #[serde(skip_serializing_if = "Option::is_none")]
10611 pub out_channel: Option<ShortChannelId>,
10612 #[deprecated]
10613 #[serde(skip_serializing_if = "Option::is_none")]
10614 pub partid: Option<u64>,
10615 #[deprecated]
10616 #[serde(skip_serializing_if = "Option::is_none")]
10617 pub payment_hash: Option<Sha256>,
10618 #[serde(skip_serializing_if = "Option::is_none")]
10619 pub status: Option<WaitDetailsStatus>,
10620 }
10621
10622 #[derive(Clone, Debug, Deserialize, Serialize)]
10623 pub struct WaitChainmoves {
10624 pub account: String,
10625 pub credit_msat: Amount,
10626 pub debit_msat: Amount,
10627 }
10628
10629 #[derive(Clone, Debug, Deserialize, Serialize)]
10630 pub struct WaitChannelmoves {
10631 pub account: String,
10632 pub credit_msat: Amount,
10633 pub debit_msat: Amount,
10634 }
10635
10636 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10638 #[allow(non_camel_case_types)]
10639 pub enum WaitForwardsStatus {
10640 #[serde(rename = "offered")]
10641 OFFERED = 0,
10642 #[serde(rename = "settled")]
10643 SETTLED = 1,
10644 #[serde(rename = "failed")]
10645 FAILED = 2,
10646 #[serde(rename = "local_failed")]
10647 LOCAL_FAILED = 3,
10648 }
10649
10650 impl TryFrom<i32> for WaitForwardsStatus {
10651 type Error = anyhow::Error;
10652 fn try_from(c: i32) -> Result<WaitForwardsStatus, anyhow::Error> {
10653 match c {
10654 0 => Ok(WaitForwardsStatus::OFFERED),
10655 1 => Ok(WaitForwardsStatus::SETTLED),
10656 2 => Ok(WaitForwardsStatus::FAILED),
10657 3 => Ok(WaitForwardsStatus::LOCAL_FAILED),
10658 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitForwardsStatus", o)),
10659 }
10660 }
10661 }
10662
10663 impl ToString for WaitForwardsStatus {
10664 fn to_string(&self) -> String {
10665 match self {
10666 WaitForwardsStatus::OFFERED => "OFFERED",
10667 WaitForwardsStatus::SETTLED => "SETTLED",
10668 WaitForwardsStatus::FAILED => "FAILED",
10669 WaitForwardsStatus::LOCAL_FAILED => "LOCAL_FAILED",
10670 }.to_string()
10671 }
10672 }
10673
10674 #[derive(Clone, Debug, Deserialize, Serialize)]
10675 pub struct WaitForwards {
10676 #[serde(skip_serializing_if = "Option::is_none")]
10677 pub in_channel: Option<ShortChannelId>,
10678 #[serde(skip_serializing_if = "Option::is_none")]
10679 pub in_htlc_id: Option<u64>,
10680 #[serde(skip_serializing_if = "Option::is_none")]
10681 pub in_msat: Option<Amount>,
10682 #[serde(skip_serializing_if = "Option::is_none")]
10683 pub out_channel: Option<ShortChannelId>,
10684 #[serde(skip_serializing_if = "Option::is_none")]
10685 pub status: Option<WaitForwardsStatus>,
10686 }
10687
10688 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10690 #[allow(non_camel_case_types)]
10691 pub enum WaitHtlcsDirection {
10692 #[serde(rename = "out")]
10693 OUT = 0,
10694 #[serde(rename = "in")]
10695 IN = 1,
10696 }
10697
10698 impl TryFrom<i32> for WaitHtlcsDirection {
10699 type Error = anyhow::Error;
10700 fn try_from(c: i32) -> Result<WaitHtlcsDirection, anyhow::Error> {
10701 match c {
10702 0 => Ok(WaitHtlcsDirection::OUT),
10703 1 => Ok(WaitHtlcsDirection::IN),
10704 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitHtlcsDirection", o)),
10705 }
10706 }
10707 }
10708
10709 impl ToString for WaitHtlcsDirection {
10710 fn to_string(&self) -> String {
10711 match self {
10712 WaitHtlcsDirection::OUT => "OUT",
10713 WaitHtlcsDirection::IN => "IN",
10714 }.to_string()
10715 }
10716 }
10717
10718 #[derive(Clone, Debug, Deserialize, Serialize)]
10719 pub struct WaitHtlcs {
10720 #[serde(skip_serializing_if = "Option::is_none")]
10721 pub amount_msat: Option<Amount>,
10722 #[serde(skip_serializing_if = "Option::is_none")]
10723 pub cltv_expiry: Option<u32>,
10724 #[serde(skip_serializing_if = "Option::is_none")]
10725 pub direction: Option<WaitHtlcsDirection>,
10726 #[serde(skip_serializing_if = "Option::is_none")]
10727 pub htlc_id: Option<u64>,
10728 #[serde(skip_serializing_if = "Option::is_none")]
10729 pub payment_hash: Option<Sha256>,
10730 #[serde(skip_serializing_if = "Option::is_none")]
10731 pub short_channel_id: Option<ShortChannelId>,
10732 #[serde(skip_serializing_if = "Option::is_none")]
10733 pub state: Option<HtlcState>,
10734 }
10735
10736 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10738 #[allow(non_camel_case_types)]
10739 pub enum WaitInvoicesStatus {
10740 #[serde(rename = "unpaid")]
10741 UNPAID = 0,
10742 #[serde(rename = "paid")]
10743 PAID = 1,
10744 #[serde(rename = "expired")]
10745 EXPIRED = 2,
10746 }
10747
10748 impl TryFrom<i32> for WaitInvoicesStatus {
10749 type Error = anyhow::Error;
10750 fn try_from(c: i32) -> Result<WaitInvoicesStatus, anyhow::Error> {
10751 match c {
10752 0 => Ok(WaitInvoicesStatus::UNPAID),
10753 1 => Ok(WaitInvoicesStatus::PAID),
10754 2 => Ok(WaitInvoicesStatus::EXPIRED),
10755 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitInvoicesStatus", o)),
10756 }
10757 }
10758 }
10759
10760 impl ToString for WaitInvoicesStatus {
10761 fn to_string(&self) -> String {
10762 match self {
10763 WaitInvoicesStatus::UNPAID => "UNPAID",
10764 WaitInvoicesStatus::PAID => "PAID",
10765 WaitInvoicesStatus::EXPIRED => "EXPIRED",
10766 }.to_string()
10767 }
10768 }
10769
10770 #[derive(Clone, Debug, Deserialize, Serialize)]
10771 pub struct WaitInvoices {
10772 #[serde(skip_serializing_if = "Option::is_none")]
10773 pub bolt11: Option<String>,
10774 #[serde(skip_serializing_if = "Option::is_none")]
10775 pub bolt12: Option<String>,
10776 #[serde(skip_serializing_if = "Option::is_none")]
10777 pub description: Option<String>,
10778 #[serde(skip_serializing_if = "Option::is_none")]
10779 pub label: Option<String>,
10780 #[serde(skip_serializing_if = "Option::is_none")]
10781 pub status: Option<WaitInvoicesStatus>,
10782 }
10783
10784 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10786 #[allow(non_camel_case_types)]
10787 pub enum WaitNetworkeventsType {
10788 #[serde(rename = "connect")]
10789 CONNECT = 0,
10790 #[serde(rename = "connect_fail")]
10791 CONNECT_FAIL = 1,
10792 #[serde(rename = "ping")]
10793 PING = 2,
10794 #[serde(rename = "disconnect")]
10795 DISCONNECT = 3,
10796 }
10797
10798 impl TryFrom<i32> for WaitNetworkeventsType {
10799 type Error = anyhow::Error;
10800 fn try_from(c: i32) -> Result<WaitNetworkeventsType, anyhow::Error> {
10801 match c {
10802 0 => Ok(WaitNetworkeventsType::CONNECT),
10803 1 => Ok(WaitNetworkeventsType::CONNECT_FAIL),
10804 2 => Ok(WaitNetworkeventsType::PING),
10805 3 => Ok(WaitNetworkeventsType::DISCONNECT),
10806 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitNetworkeventsType", o)),
10807 }
10808 }
10809 }
10810
10811 impl ToString for WaitNetworkeventsType {
10812 fn to_string(&self) -> String {
10813 match self {
10814 WaitNetworkeventsType::CONNECT => "CONNECT",
10815 WaitNetworkeventsType::CONNECT_FAIL => "CONNECT_FAIL",
10816 WaitNetworkeventsType::PING => "PING",
10817 WaitNetworkeventsType::DISCONNECT => "DISCONNECT",
10818 }.to_string()
10819 }
10820 }
10821
10822 #[derive(Clone, Debug, Deserialize, Serialize)]
10823 pub struct WaitNetworkevents {
10824 #[serde(skip_serializing_if = "Option::is_none")]
10825 pub created_index: Option<u64>,
10826 #[serde(skip_serializing_if = "Option::is_none")]
10827 pub item_type: Option<WaitNetworkeventsType>,
10828 #[serde(skip_serializing_if = "Option::is_none")]
10829 pub peer_id: Option<PublicKey>,
10830 }
10831
10832 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10834 #[allow(non_camel_case_types)]
10835 pub enum WaitSendpaysStatus {
10836 #[serde(rename = "pending")]
10837 PENDING = 0,
10838 #[serde(rename = "failed")]
10839 FAILED = 1,
10840 #[serde(rename = "complete")]
10841 COMPLETE = 2,
10842 }
10843
10844 impl TryFrom<i32> for WaitSendpaysStatus {
10845 type Error = anyhow::Error;
10846 fn try_from(c: i32) -> Result<WaitSendpaysStatus, anyhow::Error> {
10847 match c {
10848 0 => Ok(WaitSendpaysStatus::PENDING),
10849 1 => Ok(WaitSendpaysStatus::FAILED),
10850 2 => Ok(WaitSendpaysStatus::COMPLETE),
10851 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitSendpaysStatus", o)),
10852 }
10853 }
10854 }
10855
10856 impl ToString for WaitSendpaysStatus {
10857 fn to_string(&self) -> String {
10858 match self {
10859 WaitSendpaysStatus::PENDING => "PENDING",
10860 WaitSendpaysStatus::FAILED => "FAILED",
10861 WaitSendpaysStatus::COMPLETE => "COMPLETE",
10862 }.to_string()
10863 }
10864 }
10865
10866 #[derive(Clone, Debug, Deserialize, Serialize)]
10867 pub struct WaitSendpays {
10868 #[serde(skip_serializing_if = "Option::is_none")]
10869 pub groupid: Option<u64>,
10870 #[serde(skip_serializing_if = "Option::is_none")]
10871 pub partid: Option<u64>,
10872 #[serde(skip_serializing_if = "Option::is_none")]
10873 pub payment_hash: Option<Sha256>,
10874 #[serde(skip_serializing_if = "Option::is_none")]
10875 pub status: Option<WaitSendpaysStatus>,
10876 }
10877
10878 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10879 #[allow(non_camel_case_types)]
10880 pub enum WaitSubsystem {
10881 #[serde(rename = "invoices")]
10882 INVOICES = 0,
10883 #[serde(rename = "forwards")]
10884 FORWARDS = 1,
10885 #[serde(rename = "sendpays")]
10886 SENDPAYS = 2,
10887 #[serde(rename = "htlcs")]
10888 HTLCS = 3,
10889 #[serde(rename = "chainmoves")]
10890 CHAINMOVES = 4,
10891 #[serde(rename = "channelmoves")]
10892 CHANNELMOVES = 5,
10893 #[serde(rename = "networkevents")]
10894 NETWORKEVENTS = 6,
10895 }
10896
10897 impl TryFrom<i32> for WaitSubsystem {
10898 type Error = anyhow::Error;
10899 fn try_from(c: i32) -> Result<WaitSubsystem, anyhow::Error> {
10900 match c {
10901 0 => Ok(WaitSubsystem::INVOICES),
10902 1 => Ok(WaitSubsystem::FORWARDS),
10903 2 => Ok(WaitSubsystem::SENDPAYS),
10904 3 => Ok(WaitSubsystem::HTLCS),
10905 4 => Ok(WaitSubsystem::CHAINMOVES),
10906 5 => Ok(WaitSubsystem::CHANNELMOVES),
10907 6 => Ok(WaitSubsystem::NETWORKEVENTS),
10908 o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitSubsystem", o)),
10909 }
10910 }
10911 }
10912
10913 impl ToString for WaitSubsystem {
10914 fn to_string(&self) -> String {
10915 match self {
10916 WaitSubsystem::INVOICES => "INVOICES",
10917 WaitSubsystem::FORWARDS => "FORWARDS",
10918 WaitSubsystem::SENDPAYS => "SENDPAYS",
10919 WaitSubsystem::HTLCS => "HTLCS",
10920 WaitSubsystem::CHAINMOVES => "CHAINMOVES",
10921 WaitSubsystem::CHANNELMOVES => "CHANNELMOVES",
10922 WaitSubsystem::NETWORKEVENTS => "NETWORKEVENTS",
10923 }.to_string()
10924 }
10925 }
10926
10927 #[derive(Clone, Debug, Deserialize, Serialize)]
10928 pub struct WaitResponse {
10929 #[deprecated]
10930 #[serde(skip_serializing_if = "Option::is_none")]
10931 pub details: Option<WaitDetails>,
10932 #[serde(skip_serializing_if = "Option::is_none")]
10933 pub chainmoves: Option<WaitChainmoves>,
10934 #[serde(skip_serializing_if = "Option::is_none")]
10935 pub channelmoves: Option<WaitChannelmoves>,
10936 #[serde(skip_serializing_if = "Option::is_none")]
10937 pub created: Option<u64>,
10938 #[serde(skip_serializing_if = "Option::is_none")]
10939 pub deleted: Option<u64>,
10940 #[serde(skip_serializing_if = "Option::is_none")]
10941 pub forwards: Option<WaitForwards>,
10942 #[serde(skip_serializing_if = "Option::is_none")]
10943 pub htlcs: Option<WaitHtlcs>,
10944 #[serde(skip_serializing_if = "Option::is_none")]
10945 pub invoices: Option<WaitInvoices>,
10946 #[serde(skip_serializing_if = "Option::is_none")]
10947 pub networkevents: Option<WaitNetworkevents>,
10948 #[serde(skip_serializing_if = "Option::is_none")]
10949 pub sendpays: Option<WaitSendpays>,
10950 #[serde(skip_serializing_if = "Option::is_none")]
10951 pub updated: Option<u64>,
10952 pub subsystem: WaitSubsystem,
10954 }
10955
10956 impl TryFrom<Response> for WaitResponse {
10957 type Error = super::TryFromResponseError;
10958
10959 fn try_from(response: Response) -> Result<Self, Self::Error> {
10960 match response {
10961 Response::Wait(response) => Ok(response),
10962 _ => Err(TryFromResponseError)
10963 }
10964 }
10965 }
10966
10967 #[deprecated = "deprecated since CLN v26.04"]
10968 #[derive(Clone, Debug, Deserialize, Serialize)]
10969 pub struct ListconfigsConfigsExperimentalsplicing {
10970 #[deprecated]
10971 pub set: bool,
10972 #[deprecated]
10973 pub source: String,
10974 }
10975
10976 #[derive(Clone, Debug, Deserialize, Serialize)]
10977 pub struct ListconfigsConfigsAllowdeprecatedapis {
10978 pub source: String,
10979 pub value_bool: bool,
10980 }
10981
10982 #[derive(Clone, Debug, Deserialize, Serialize)]
10983 pub struct ListconfigsConfigsAlwaysuseproxy {
10984 pub source: String,
10985 pub value_bool: bool,
10986 }
10987
10988 #[derive(Clone, Debug, Deserialize, Serialize)]
10989 pub struct ListconfigsConfigsAnnounceaddr {
10990 pub sources: Vec<String>,
10991 pub values_str: Vec<String>,
10992 }
10993
10994 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
10996 #[allow(non_camel_case_types)]
10997 pub enum ListconfigsConfigsAnnounceaddrdiscoveredValueStr {
10998 #[serde(rename = "true")]
10999 TRUE = 0,
11000 #[serde(rename = "false")]
11001 FALSE = 1,
11002 #[serde(rename = "auto")]
11003 AUTO = 2,
11004 }
11005
11006 impl TryFrom<i32> for ListconfigsConfigsAnnounceaddrdiscoveredValueStr {
11007 type Error = anyhow::Error;
11008 fn try_from(c: i32) -> Result<ListconfigsConfigsAnnounceaddrdiscoveredValueStr, anyhow::Error> {
11009 match c {
11010 0 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValueStr::TRUE),
11011 1 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValueStr::FALSE),
11012 2 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValueStr::AUTO),
11013 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListconfigsConfigsAnnounceaddrdiscoveredValueStr", o)),
11014 }
11015 }
11016 }
11017
11018 impl ToString for ListconfigsConfigsAnnounceaddrdiscoveredValueStr {
11019 fn to_string(&self) -> String {
11020 match self {
11021 ListconfigsConfigsAnnounceaddrdiscoveredValueStr::TRUE => "TRUE",
11022 ListconfigsConfigsAnnounceaddrdiscoveredValueStr::FALSE => "FALSE",
11023 ListconfigsConfigsAnnounceaddrdiscoveredValueStr::AUTO => "AUTO",
11024 }.to_string()
11025 }
11026 }
11027
11028 #[derive(Clone, Debug, Deserialize, Serialize)]
11029 pub struct ListconfigsConfigsAnnounceaddrdiscovered {
11030 pub value_str: ListconfigsConfigsAnnounceaddrdiscoveredValueStr,
11032 pub source: String,
11033 }
11034
11035 #[derive(Clone, Debug, Deserialize, Serialize)]
11036 pub struct ListconfigsConfigsAnnounceaddrdiscoveredport {
11037 pub source: String,
11038 pub value_int: u32,
11039 }
11040
11041 #[derive(Clone, Debug, Deserialize, Serialize)]
11042 pub struct ListconfigsConfigsAnnounceaddrdns {
11043 pub source: String,
11044 pub value_bool: bool,
11045 }
11046
11047 #[derive(Clone, Debug, Deserialize, Serialize)]
11048 pub struct ListconfigsConfigsAutoconnectseekerpeers {
11049 pub source: String,
11050 pub value_int: u32,
11051 }
11052
11053 #[derive(Clone, Debug, Deserialize, Serialize)]
11054 pub struct ListconfigsConfigsBindaddr {
11055 pub sources: Vec<String>,
11056 pub values_str: Vec<String>,
11057 }
11058
11059 #[derive(Clone, Debug, Deserialize, Serialize)]
11060 pub struct ListconfigsConfigsClearplugins {
11061 pub set: bool,
11062 pub source: String,
11063 }
11064
11065 #[derive(Clone, Debug, Deserialize, Serialize)]
11066 pub struct ListconfigsConfigsCltvdelta {
11067 pub source: String,
11068 pub value_int: u32,
11069 }
11070
11071 #[derive(Clone, Debug, Deserialize, Serialize)]
11072 pub struct ListconfigsConfigsCltvfinal {
11073 pub source: String,
11074 pub value_int: u32,
11075 }
11076
11077 #[derive(Clone, Debug, Deserialize, Serialize)]
11078 pub struct ListconfigsConfigsCommitfee {
11079 pub source: String,
11080 pub value_int: u64,
11081 }
11082
11083 #[derive(Clone, Debug, Deserialize, Serialize)]
11084 pub struct ListconfigsConfigsCommitfeerateoffset {
11085 pub source: String,
11086 pub value_int: u32,
11087 }
11088
11089 #[derive(Clone, Debug, Deserialize, Serialize)]
11090 pub struct ListconfigsConfigsCommittime {
11091 pub source: String,
11092 pub value_int: u32,
11093 }
11094
11095 #[derive(Clone, Debug, Deserialize, Serialize)]
11096 pub struct ListconfigsConfigsCurrencyrateaddsource {
11097 #[serde(skip_serializing_if = "Option::is_none")]
11098 pub plugin: Option<String>,
11099 pub sources: Vec<String>,
11100 pub values_str: Vec<String>,
11101 }
11102
11103 #[derive(Clone, Debug, Deserialize, Serialize)]
11104 pub struct ListconfigsConfigsCurrencyratedisablesource {
11105 #[serde(skip_serializing_if = "Option::is_none")]
11106 pub plugin: Option<String>,
11107 pub sources: Vec<String>,
11108 pub values_str: Vec<String>,
11109 }
11110
11111 #[derive(Clone, Debug, Deserialize, Serialize)]
11112 pub struct ListconfigsConfigsDatabaseupgrade {
11113 pub source: String,
11114 pub value_bool: bool,
11115 }
11116
11117 #[derive(Clone, Debug, Deserialize, Serialize)]
11118 pub struct ListconfigsConfigsDisabledns {
11119 pub set: bool,
11120 pub source: String,
11121 }
11122
11123 #[derive(Clone, Debug, Deserialize, Serialize)]
11124 pub struct ListconfigsConfigsDisablempp {
11125 #[serde(skip_serializing_if = "Option::is_none")]
11126 pub plugin: Option<String>,
11127 pub set: bool,
11128 pub source: String,
11129 }
11130
11131 #[derive(Clone, Debug, Deserialize, Serialize)]
11132 pub struct ListconfigsConfigsDisableplugin {
11133 pub sources: Vec<String>,
11134 pub values_str: Vec<String>,
11135 }
11136
11137 #[derive(Clone, Debug, Deserialize, Serialize)]
11138 pub struct ListconfigsConfigsEncryptedhsm {
11139 pub set: bool,
11140 pub source: String,
11141 }
11142
11143 #[derive(Clone, Debug, Deserialize, Serialize)]
11144 pub struct ListconfigsConfigsExperimentalanchors {
11145 pub set: bool,
11146 pub source: String,
11147 }
11148
11149 #[derive(Clone, Debug, Deserialize, Serialize)]
11150 pub struct ListconfigsConfigsExperimentaldualfund {
11151 pub set: bool,
11152 pub source: String,
11153 }
11154
11155 #[derive(Clone, Debug, Deserialize, Serialize)]
11156 pub struct ListconfigsConfigsExperimentalpeerstorage {
11157 pub set: bool,
11158 pub source: String,
11159 }
11160
11161 #[derive(Clone, Debug, Deserialize, Serialize)]
11162 pub struct ListconfigsConfigsExperimentalshutdownwrongfunding {
11163 pub set: bool,
11164 pub source: String,
11165 }
11166
11167 #[derive(Clone, Debug, Deserialize, Serialize)]
11168 pub struct ListconfigsConfigsFeebase {
11169 pub source: String,
11170 pub value_int: u32,
11171 }
11172
11173 #[derive(Clone, Debug, Deserialize, Serialize)]
11174 pub struct ListconfigsConfigsFeepersatoshi {
11175 pub source: String,
11176 pub value_int: u32,
11177 }
11178
11179 #[derive(Clone, Debug, Deserialize, Serialize)]
11180 pub struct ListconfigsConfigsFetchinvoicenoconnect {
11181 #[serde(skip_serializing_if = "Option::is_none")]
11182 pub plugin: Option<String>,
11183 pub set: bool,
11184 pub source: String,
11185 }
11186
11187 #[derive(Clone, Debug, Deserialize, Serialize)]
11188 pub struct ListconfigsConfigsForcefeerates {
11189 pub source: String,
11190 pub value_str: String,
11191 }
11192
11193 #[derive(Clone, Debug, Deserialize, Serialize)]
11194 pub struct ListconfigsConfigsFundingconfirms {
11195 pub source: String,
11196 pub value_int: u32,
11197 }
11198
11199 #[derive(Clone, Debug, Deserialize, Serialize)]
11200 pub struct ListconfigsConfigsHtlcmaximummsat {
11201 pub source: String,
11202 pub value_msat: Amount,
11203 }
11204
11205 #[derive(Clone, Debug, Deserialize, Serialize)]
11206 pub struct ListconfigsConfigsHtlcminimummsat {
11207 pub source: String,
11208 pub value_msat: Amount,
11209 }
11210
11211 #[derive(Clone, Debug, Deserialize, Serialize)]
11212 pub struct ListconfigsConfigsIgnorefeelimits {
11213 pub source: String,
11214 pub value_bool: bool,
11215 }
11216
11217 #[derive(Clone, Debug, Deserialize, Serialize)]
11218 pub struct ListconfigsConfigsImportantplugin {
11219 pub sources: Vec<String>,
11220 pub values_str: Vec<String>,
11221 }
11222
11223 #[derive(Clone, Debug, Deserialize, Serialize)]
11224 pub struct ListconfigsConfigsLargechannels {
11225 pub set: bool,
11226 pub source: String,
11227 }
11228
11229 #[derive(Clone, Debug, Deserialize, Serialize)]
11230 pub struct ListconfigsConfigsLightningdir {
11231 pub source: String,
11232 pub value_str: String,
11233 }
11234
11235 #[derive(Clone, Debug, Deserialize, Serialize)]
11236 pub struct ListconfigsConfigsLogfile {
11237 pub sources: Vec<String>,
11238 pub values_str: Vec<String>,
11239 }
11240
11241 #[derive(Clone, Debug, Deserialize, Serialize)]
11242 pub struct ListconfigsConfigsLoglevel {
11243 pub source: String,
11244 pub value_str: String,
11245 }
11246
11247 #[derive(Clone, Debug, Deserialize, Serialize)]
11248 pub struct ListconfigsConfigsLogprefix {
11249 pub source: String,
11250 pub value_str: String,
11251 }
11252
11253 #[derive(Clone, Debug, Deserialize, Serialize)]
11254 pub struct ListconfigsConfigsLogtimestamps {
11255 pub source: String,
11256 pub value_bool: bool,
11257 }
11258
11259 #[derive(Clone, Debug, Deserialize, Serialize)]
11260 pub struct ListconfigsConfigsMaxconcurrenthtlcs {
11261 pub source: String,
11262 pub value_int: u32,
11263 }
11264
11265 #[derive(Clone, Debug, Deserialize, Serialize)]
11266 pub struct ListconfigsConfigsMaxdusthtlcexposuremsat {
11267 pub source: String,
11268 pub value_msat: Amount,
11269 }
11270
11271 #[derive(Clone, Debug, Deserialize, Serialize)]
11272 pub struct ListconfigsConfigsMincapacitysat {
11273 #[serde(skip_serializing_if = "Option::is_none")]
11274 pub dynamic: Option<bool>,
11275 pub source: String,
11276 pub value_int: u64,
11277 }
11278
11279 #[derive(Clone, Debug, Deserialize, Serialize)]
11280 pub struct ListconfigsConfigsPidfile {
11281 pub source: String,
11282 pub value_str: String,
11283 }
11284
11285 #[derive(Clone, Debug, Deserialize, Serialize)]
11286 pub struct ListconfigsConfigsPlugindir {
11287 pub sources: Vec<String>,
11288 pub values_str: Vec<String>,
11289 }
11290
11291 #[derive(Clone, Debug, Deserialize, Serialize)]
11292 pub struct ListconfigsConfigsRequireconfirmedinputs {
11293 pub source: String,
11294 pub value_bool: bool,
11295 }
11296
11297 #[derive(Clone, Debug, Deserialize, Serialize)]
11298 pub struct ListconfigsConfigsRpcfile {
11299 pub source: String,
11300 pub value_str: String,
11301 }
11302
11303 #[derive(Clone, Debug, Deserialize, Serialize)]
11304 pub struct ListconfigsConfigsRpcfilemode {
11305 pub source: String,
11306 pub value_str: String,
11307 }
11308
11309 #[derive(Clone, Debug, Deserialize, Serialize)]
11310 pub struct ListconfigsConfigsTorservicepassword {
11311 pub source: String,
11312 pub value_str: String,
11313 }
11314
11315 #[derive(Clone, Debug, Deserialize, Serialize)]
11316 pub struct ListconfigsConfigsWatchtimeblocks {
11317 pub source: String,
11318 pub value_int: u32,
11319 }
11320
11321 #[derive(Clone, Debug, Deserialize, Serialize)]
11322 pub struct ListconfigsConfigsAddr {
11323 pub sources: Vec<String>,
11324 pub values_str: Vec<String>,
11325 }
11326
11327 #[derive(Clone, Debug, Deserialize, Serialize)]
11328 pub struct ListconfigsConfigsAlias {
11329 pub source: String,
11330 pub value_str: String,
11331 }
11332
11333 #[derive(Clone, Debug, Deserialize, Serialize)]
11334 pub struct ListconfigsConfigsAutolisten {
11335 pub source: String,
11336 pub value_bool: bool,
11337 }
11338
11339 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
11341 #[allow(non_camel_case_types)]
11342 pub enum ListconfigsConfigsConfSource {
11343 #[serde(rename = "cmdline")]
11344 CMDLINE = 0,
11345 }
11346
11347 impl TryFrom<i32> for ListconfigsConfigsConfSource {
11348 type Error = anyhow::Error;
11349 fn try_from(c: i32) -> Result<ListconfigsConfigsConfSource, anyhow::Error> {
11350 match c {
11351 0 => Ok(ListconfigsConfigsConfSource::CMDLINE),
11352 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListconfigsConfigsConfSource", o)),
11353 }
11354 }
11355 }
11356
11357 impl ToString for ListconfigsConfigsConfSource {
11358 fn to_string(&self) -> String {
11359 match self {
11360 ListconfigsConfigsConfSource::CMDLINE => "CMDLINE",
11361 }.to_string()
11362 }
11363 }
11364
11365 #[derive(Clone, Debug, Deserialize, Serialize)]
11366 pub struct ListconfigsConfigsConf {
11367 pub source: ListconfigsConfigsConfSource,
11369 pub value_str: String,
11370 }
11371
11372 #[derive(Clone, Debug, Deserialize, Serialize)]
11373 pub struct ListconfigsConfigsDaemon {
11374 pub set: bool,
11375 pub source: String,
11376 }
11377
11378 #[derive(Clone, Debug, Deserialize, Serialize)]
11379 pub struct ListconfigsConfigsDeveloper {
11380 pub set: bool,
11381 pub source: String,
11382 }
11383
11384 #[derive(Clone, Debug, Deserialize, Serialize)]
11385 pub struct ListconfigsConfigsMainnet {
11386 pub set: bool,
11387 pub source: String,
11388 }
11389
11390 #[derive(Clone, Debug, Deserialize, Serialize)]
11391 pub struct ListconfigsConfigsNetwork {
11392 pub source: String,
11393 pub value_str: String,
11394 }
11395
11396 #[derive(Clone, Debug, Deserialize, Serialize)]
11397 pub struct ListconfigsConfigsOffline {
11398 pub set: bool,
11399 pub source: String,
11400 }
11401
11402 #[derive(Clone, Debug, Deserialize, Serialize)]
11403 pub struct ListconfigsConfigsPlugin {
11404 pub sources: Vec<String>,
11405 pub values_str: Vec<String>,
11406 }
11407
11408 #[derive(Clone, Debug, Deserialize, Serialize)]
11409 pub struct ListconfigsConfigsProxy {
11410 pub source: String,
11411 pub value_str: String,
11412 }
11413
11414 #[derive(Clone, Debug, Deserialize, Serialize)]
11415 pub struct ListconfigsConfigsRegtest {
11416 pub set: bool,
11417 pub source: String,
11418 }
11419
11420 #[derive(Clone, Debug, Deserialize, Serialize)]
11421 pub struct ListconfigsConfigsRescan {
11422 pub source: String,
11423 pub value_int: i64,
11424 }
11425
11426 #[derive(Clone, Debug, Deserialize, Serialize)]
11427 pub struct ListconfigsConfigsRgb {
11428 pub source: String,
11429 pub value_str: String,
11430 }
11431
11432 #[derive(Clone, Debug, Deserialize, Serialize)]
11433 pub struct ListconfigsConfigsSignet {
11434 pub set: bool,
11435 pub source: String,
11436 }
11437
11438 #[derive(Clone, Debug, Deserialize, Serialize)]
11439 pub struct ListconfigsConfigsSubdaemon {
11440 pub sources: Vec<String>,
11441 pub values_str: Vec<String>,
11442 }
11443
11444 #[derive(Clone, Debug, Deserialize, Serialize)]
11445 pub struct ListconfigsConfigsTestnet {
11446 pub set: bool,
11447 pub source: String,
11448 }
11449
11450 #[derive(Clone, Debug, Deserialize, Serialize)]
11451 pub struct ListconfigsConfigsWallet {
11452 pub source: String,
11453 pub value_str: String,
11454 }
11455
11456 #[derive(Clone, Debug, Deserialize, Serialize)]
11457 pub struct ListconfigsConfigs {
11458 #[deprecated]
11459 #[serde(rename = "experimental-splicing")]
11460 #[serde(skip_serializing_if = "Option::is_none")]
11461 pub experimental_splicing: Option<ListconfigsConfigsExperimentalsplicing>,
11462 #[serde(rename = "allow-deprecated-apis")]
11463 #[serde(skip_serializing_if = "Option::is_none")]
11464 pub allow_deprecated_apis: Option<ListconfigsConfigsAllowdeprecatedapis>,
11465 #[serde(rename = "always-use-proxy")]
11466 #[serde(skip_serializing_if = "Option::is_none")]
11467 pub always_use_proxy: Option<ListconfigsConfigsAlwaysuseproxy>,
11468 #[serde(rename = "announce-addr")]
11469 #[serde(skip_serializing_if = "Option::is_none")]
11470 pub announce_addr: Option<ListconfigsConfigsAnnounceaddr>,
11471 #[serde(rename = "announce-addr-discovered")]
11472 #[serde(skip_serializing_if = "Option::is_none")]
11473 pub announce_addr_discovered: Option<ListconfigsConfigsAnnounceaddrdiscovered>,
11474 #[serde(rename = "announce-addr-discovered-port")]
11475 #[serde(skip_serializing_if = "Option::is_none")]
11476 pub announce_addr_discovered_port: Option<ListconfigsConfigsAnnounceaddrdiscoveredport>,
11477 #[serde(rename = "announce-addr-dns")]
11478 #[serde(skip_serializing_if = "Option::is_none")]
11479 pub announce_addr_dns: Option<ListconfigsConfigsAnnounceaddrdns>,
11480 #[serde(rename = "autoconnect-seeker-peers")]
11481 #[serde(skip_serializing_if = "Option::is_none")]
11482 pub autoconnect_seeker_peers: Option<ListconfigsConfigsAutoconnectseekerpeers>,
11483 #[serde(rename = "bind-addr")]
11484 #[serde(skip_serializing_if = "Option::is_none")]
11485 pub bind_addr: Option<ListconfigsConfigsBindaddr>,
11486 #[serde(rename = "clear-plugins")]
11487 #[serde(skip_serializing_if = "Option::is_none")]
11488 pub clear_plugins: Option<ListconfigsConfigsClearplugins>,
11489 #[serde(rename = "cltv-delta")]
11490 #[serde(skip_serializing_if = "Option::is_none")]
11491 pub cltv_delta: Option<ListconfigsConfigsCltvdelta>,
11492 #[serde(rename = "cltv-final")]
11493 #[serde(skip_serializing_if = "Option::is_none")]
11494 pub cltv_final: Option<ListconfigsConfigsCltvfinal>,
11495 #[serde(rename = "commit-fee")]
11496 #[serde(skip_serializing_if = "Option::is_none")]
11497 pub commit_fee: Option<ListconfigsConfigsCommitfee>,
11498 #[serde(rename = "commit-feerate-offset")]
11499 #[serde(skip_serializing_if = "Option::is_none")]
11500 pub commit_feerate_offset: Option<ListconfigsConfigsCommitfeerateoffset>,
11501 #[serde(rename = "commit-time")]
11502 #[serde(skip_serializing_if = "Option::is_none")]
11503 pub commit_time: Option<ListconfigsConfigsCommittime>,
11504 #[serde(rename = "currencyrate-add-source")]
11505 #[serde(skip_serializing_if = "Option::is_none")]
11506 pub currencyrate_add_source: Option<ListconfigsConfigsCurrencyrateaddsource>,
11507 #[serde(rename = "currencyrate-disable-source")]
11508 #[serde(skip_serializing_if = "Option::is_none")]
11509 pub currencyrate_disable_source: Option<ListconfigsConfigsCurrencyratedisablesource>,
11510 #[serde(rename = "database-upgrade")]
11511 #[serde(skip_serializing_if = "Option::is_none")]
11512 pub database_upgrade: Option<ListconfigsConfigsDatabaseupgrade>,
11513 #[serde(rename = "disable-dns")]
11514 #[serde(skip_serializing_if = "Option::is_none")]
11515 pub disable_dns: Option<ListconfigsConfigsDisabledns>,
11516 #[serde(rename = "disable-mpp")]
11517 #[serde(skip_serializing_if = "Option::is_none")]
11518 pub disable_mpp: Option<ListconfigsConfigsDisablempp>,
11519 #[serde(rename = "disable-plugin")]
11520 #[serde(skip_serializing_if = "Option::is_none")]
11521 pub disable_plugin: Option<ListconfigsConfigsDisableplugin>,
11522 #[serde(rename = "encrypted-hsm")]
11523 #[serde(skip_serializing_if = "Option::is_none")]
11524 pub encrypted_hsm: Option<ListconfigsConfigsEncryptedhsm>,
11525 #[serde(rename = "experimental-anchors")]
11526 #[serde(skip_serializing_if = "Option::is_none")]
11527 pub experimental_anchors: Option<ListconfigsConfigsExperimentalanchors>,
11528 #[serde(rename = "experimental-dual-fund")]
11529 #[serde(skip_serializing_if = "Option::is_none")]
11530 pub experimental_dual_fund: Option<ListconfigsConfigsExperimentaldualfund>,
11531 #[serde(rename = "experimental-peer-storage")]
11532 #[serde(skip_serializing_if = "Option::is_none")]
11533 pub experimental_peer_storage: Option<ListconfigsConfigsExperimentalpeerstorage>,
11534 #[serde(rename = "experimental-shutdown-wrong-funding")]
11535 #[serde(skip_serializing_if = "Option::is_none")]
11536 pub experimental_shutdown_wrong_funding: Option<ListconfigsConfigsExperimentalshutdownwrongfunding>,
11537 #[serde(rename = "fee-base")]
11538 #[serde(skip_serializing_if = "Option::is_none")]
11539 pub fee_base: Option<ListconfigsConfigsFeebase>,
11540 #[serde(rename = "fee-per-satoshi")]
11541 #[serde(skip_serializing_if = "Option::is_none")]
11542 pub fee_per_satoshi: Option<ListconfigsConfigsFeepersatoshi>,
11543 #[serde(rename = "fetchinvoice-noconnect")]
11544 #[serde(skip_serializing_if = "Option::is_none")]
11545 pub fetchinvoice_noconnect: Option<ListconfigsConfigsFetchinvoicenoconnect>,
11546 #[serde(rename = "force-feerates")]
11547 #[serde(skip_serializing_if = "Option::is_none")]
11548 pub force_feerates: Option<ListconfigsConfigsForcefeerates>,
11549 #[serde(rename = "funding-confirms")]
11550 #[serde(skip_serializing_if = "Option::is_none")]
11551 pub funding_confirms: Option<ListconfigsConfigsFundingconfirms>,
11552 #[serde(rename = "htlc-maximum-msat")]
11553 #[serde(skip_serializing_if = "Option::is_none")]
11554 pub htlc_maximum_msat: Option<ListconfigsConfigsHtlcmaximummsat>,
11555 #[serde(rename = "htlc-minimum-msat")]
11556 #[serde(skip_serializing_if = "Option::is_none")]
11557 pub htlc_minimum_msat: Option<ListconfigsConfigsHtlcminimummsat>,
11558 #[serde(rename = "ignore-fee-limits")]
11559 #[serde(skip_serializing_if = "Option::is_none")]
11560 pub ignore_fee_limits: Option<ListconfigsConfigsIgnorefeelimits>,
11561 #[serde(rename = "important-plugin")]
11562 #[serde(skip_serializing_if = "Option::is_none")]
11563 pub important_plugin: Option<ListconfigsConfigsImportantplugin>,
11564 #[serde(rename = "large-channels")]
11565 #[serde(skip_serializing_if = "Option::is_none")]
11566 pub large_channels: Option<ListconfigsConfigsLargechannels>,
11567 #[serde(rename = "lightning-dir")]
11568 #[serde(skip_serializing_if = "Option::is_none")]
11569 pub lightning_dir: Option<ListconfigsConfigsLightningdir>,
11570 #[serde(rename = "log-file")]
11571 #[serde(skip_serializing_if = "Option::is_none")]
11572 pub log_file: Option<ListconfigsConfigsLogfile>,
11573 #[serde(rename = "log-level")]
11574 #[serde(skip_serializing_if = "Option::is_none")]
11575 pub log_level: Option<ListconfigsConfigsLoglevel>,
11576 #[serde(rename = "log-prefix")]
11577 #[serde(skip_serializing_if = "Option::is_none")]
11578 pub log_prefix: Option<ListconfigsConfigsLogprefix>,
11579 #[serde(rename = "log-timestamps")]
11580 #[serde(skip_serializing_if = "Option::is_none")]
11581 pub log_timestamps: Option<ListconfigsConfigsLogtimestamps>,
11582 #[serde(rename = "max-concurrent-htlcs")]
11583 #[serde(skip_serializing_if = "Option::is_none")]
11584 pub max_concurrent_htlcs: Option<ListconfigsConfigsMaxconcurrenthtlcs>,
11585 #[serde(rename = "max-dust-htlc-exposure-msat")]
11586 #[serde(skip_serializing_if = "Option::is_none")]
11587 pub max_dust_htlc_exposure_msat: Option<ListconfigsConfigsMaxdusthtlcexposuremsat>,
11588 #[serde(rename = "min-capacity-sat")]
11589 #[serde(skip_serializing_if = "Option::is_none")]
11590 pub min_capacity_sat: Option<ListconfigsConfigsMincapacitysat>,
11591 #[serde(rename = "pid-file")]
11592 #[serde(skip_serializing_if = "Option::is_none")]
11593 pub pid_file: Option<ListconfigsConfigsPidfile>,
11594 #[serde(rename = "plugin-dir")]
11595 #[serde(skip_serializing_if = "Option::is_none")]
11596 pub plugin_dir: Option<ListconfigsConfigsPlugindir>,
11597 #[serde(rename = "require-confirmed-inputs")]
11598 #[serde(skip_serializing_if = "Option::is_none")]
11599 pub require_confirmed_inputs: Option<ListconfigsConfigsRequireconfirmedinputs>,
11600 #[serde(rename = "rpc-file")]
11601 #[serde(skip_serializing_if = "Option::is_none")]
11602 pub rpc_file: Option<ListconfigsConfigsRpcfile>,
11603 #[serde(rename = "rpc-file-mode")]
11604 #[serde(skip_serializing_if = "Option::is_none")]
11605 pub rpc_file_mode: Option<ListconfigsConfigsRpcfilemode>,
11606 #[serde(rename = "tor-service-password")]
11607 #[serde(skip_serializing_if = "Option::is_none")]
11608 pub tor_service_password: Option<ListconfigsConfigsTorservicepassword>,
11609 #[serde(rename = "watchtime-blocks")]
11610 #[serde(skip_serializing_if = "Option::is_none")]
11611 pub watchtime_blocks: Option<ListconfigsConfigsWatchtimeblocks>,
11612 #[serde(skip_serializing_if = "Option::is_none")]
11613 pub addr: Option<ListconfigsConfigsAddr>,
11614 #[serde(skip_serializing_if = "Option::is_none")]
11615 pub alias: Option<ListconfigsConfigsAlias>,
11616 #[serde(skip_serializing_if = "Option::is_none")]
11617 pub autolisten: Option<ListconfigsConfigsAutolisten>,
11618 #[serde(skip_serializing_if = "Option::is_none")]
11619 pub conf: Option<ListconfigsConfigsConf>,
11620 #[serde(skip_serializing_if = "Option::is_none")]
11621 pub daemon: Option<ListconfigsConfigsDaemon>,
11622 #[serde(skip_serializing_if = "Option::is_none")]
11623 pub developer: Option<ListconfigsConfigsDeveloper>,
11624 #[serde(skip_serializing_if = "Option::is_none")]
11625 pub mainnet: Option<ListconfigsConfigsMainnet>,
11626 #[serde(skip_serializing_if = "Option::is_none")]
11627 pub network: Option<ListconfigsConfigsNetwork>,
11628 #[serde(skip_serializing_if = "Option::is_none")]
11629 pub offline: Option<ListconfigsConfigsOffline>,
11630 #[serde(skip_serializing_if = "Option::is_none")]
11631 pub plugin: Option<ListconfigsConfigsPlugin>,
11632 #[serde(skip_serializing_if = "Option::is_none")]
11633 pub proxy: Option<ListconfigsConfigsProxy>,
11634 #[serde(skip_serializing_if = "Option::is_none")]
11635 pub regtest: Option<ListconfigsConfigsRegtest>,
11636 #[serde(skip_serializing_if = "Option::is_none")]
11637 pub rescan: Option<ListconfigsConfigsRescan>,
11638 #[serde(skip_serializing_if = "Option::is_none")]
11639 pub rgb: Option<ListconfigsConfigsRgb>,
11640 #[serde(skip_serializing_if = "Option::is_none")]
11641 pub signet: Option<ListconfigsConfigsSignet>,
11642 #[serde(skip_serializing_if = "Option::is_none")]
11643 pub subdaemon: Option<ListconfigsConfigsSubdaemon>,
11644 #[serde(skip_serializing_if = "Option::is_none")]
11645 pub testnet: Option<ListconfigsConfigsTestnet>,
11646 #[serde(skip_serializing_if = "Option::is_none")]
11647 pub wallet: Option<ListconfigsConfigsWallet>,
11648 }
11649
11650 #[derive(Clone, Debug, Deserialize, Serialize)]
11651 pub struct ListconfigsResponse {
11652 #[serde(skip_serializing_if = "Option::is_none")]
11653 pub configs: Option<ListconfigsConfigs>,
11654 }
11655
11656 impl TryFrom<Response> for ListconfigsResponse {
11657 type Error = super::TryFromResponseError;
11658
11659 fn try_from(response: Response) -> Result<Self, Self::Error> {
11660 match response {
11661 Response::ListConfigs(response) => Ok(response),
11662 _ => Err(TryFromResponseError)
11663 }
11664 }
11665 }
11666
11667 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
11668 #[allow(non_camel_case_types)]
11669 pub enum StopResult {
11670 #[serde(rename = "Shutdown complete")]
11671 SHUTDOWN_COMPLETE = 0,
11672 }
11673
11674 impl TryFrom<i32> for StopResult {
11675 type Error = anyhow::Error;
11676 fn try_from(c: i32) -> Result<StopResult, anyhow::Error> {
11677 match c {
11678 0 => Ok(StopResult::SHUTDOWN_COMPLETE),
11679 o => Err(anyhow::anyhow!("Unknown variant {} for enum StopResult", o)),
11680 }
11681 }
11682 }
11683
11684 impl ToString for StopResult {
11685 fn to_string(&self) -> String {
11686 match self {
11687 StopResult::SHUTDOWN_COMPLETE => "SHUTDOWN_COMPLETE",
11688 }.to_string()
11689 }
11690 }
11691
11692 #[derive(Clone, Debug, Deserialize, Serialize)]
11693 pub struct StopResponse {
11694 pub result: StopResult,
11696 }
11697
11698 impl TryFrom<Response> for StopResponse {
11699 type Error = super::TryFromResponseError;
11700
11701 fn try_from(response: Response) -> Result<Self, Self::Error> {
11702 match response {
11703 Response::Stop(response) => Ok(response),
11704 _ => Err(TryFromResponseError)
11705 }
11706 }
11707 }
11708
11709 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
11711 #[allow(non_camel_case_types)]
11712 pub enum HelpFormathint {
11713 #[serde(rename = "simple")]
11714 SIMPLE = 0,
11715 }
11716
11717 impl TryFrom<i32> for HelpFormathint {
11718 type Error = anyhow::Error;
11719 fn try_from(c: i32) -> Result<HelpFormathint, anyhow::Error> {
11720 match c {
11721 0 => Ok(HelpFormathint::SIMPLE),
11722 o => Err(anyhow::anyhow!("Unknown variant {} for enum HelpFormathint", o)),
11723 }
11724 }
11725 }
11726
11727 impl ToString for HelpFormathint {
11728 fn to_string(&self) -> String {
11729 match self {
11730 HelpFormathint::SIMPLE => "SIMPLE",
11731 }.to_string()
11732 }
11733 }
11734
11735 #[derive(Clone, Debug, Deserialize, Serialize)]
11736 pub struct HelpHelp {
11737 pub command: String,
11738 }
11739
11740 #[derive(Clone, Debug, Deserialize, Serialize)]
11741 pub struct HelpResponse {
11742 #[serde(skip_serializing_if = "Option::is_none")]
11743 pub format_hint: Option<HelpFormathint>,
11744 pub help: Vec<HelpHelp>,
11745 }
11746
11747 impl TryFrom<Response> for HelpResponse {
11748 type Error = super::TryFromResponseError;
11749
11750 fn try_from(response: Response) -> Result<Self, Self::Error> {
11751 match response {
11752 Response::Help(response) => Ok(response),
11753 _ => Err(TryFromResponseError)
11754 }
11755 }
11756 }
11757
11758 #[derive(Clone, Debug, Deserialize, Serialize)]
11759 pub struct PreapprovekeysendResponse {
11760 }
11761
11762 impl TryFrom<Response> for PreapprovekeysendResponse {
11763 type Error = super::TryFromResponseError;
11764
11765 fn try_from(response: Response) -> Result<Self, Self::Error> {
11766 match response {
11767 Response::PreApproveKeysend(response) => Ok(response),
11768 _ => Err(TryFromResponseError)
11769 }
11770 }
11771 }
11772
11773 #[derive(Clone, Debug, Deserialize, Serialize)]
11774 pub struct PreapproveinvoiceResponse {
11775 }
11776
11777 impl TryFrom<Response> for PreapproveinvoiceResponse {
11778 type Error = super::TryFromResponseError;
11779
11780 fn try_from(response: Response) -> Result<Self, Self::Error> {
11781 match response {
11782 Response::PreApproveInvoice(response) => Ok(response),
11783 _ => Err(TryFromResponseError)
11784 }
11785 }
11786 }
11787
11788 #[derive(Clone, Debug, Deserialize, Serialize)]
11789 pub struct StaticbackupResponse {
11790 pub scb: Vec<String>,
11791 }
11792
11793 impl TryFrom<Response> for StaticbackupResponse {
11794 type Error = super::TryFromResponseError;
11795
11796 fn try_from(response: Response) -> Result<Self, Self::Error> {
11797 match response {
11798 Response::StaticBackup(response) => Ok(response),
11799 _ => Err(TryFromResponseError)
11800 }
11801 }
11802 }
11803
11804 #[derive(Clone, Debug, Deserialize, Serialize)]
11805 pub struct BkprchannelsapyChannelsApy {
11806 #[serde(skip_serializing_if = "Option::is_none")]
11807 pub apy_in_initial: Option<String>,
11808 #[serde(skip_serializing_if = "Option::is_none")]
11809 pub apy_lease: Option<String>,
11810 #[serde(skip_serializing_if = "Option::is_none")]
11811 pub apy_out_initial: Option<String>,
11812 #[serde(skip_serializing_if = "Option::is_none")]
11813 pub apy_total_initial: Option<String>,
11814 #[serde(skip_serializing_if = "Option::is_none")]
11815 pub fees_in_msat: Option<Amount>,
11816 #[serde(skip_serializing_if = "Option::is_none")]
11817 pub utilization_in_initial: Option<String>,
11818 #[serde(skip_serializing_if = "Option::is_none")]
11819 pub utilization_out_initial: Option<String>,
11820 pub account: String,
11821 pub apy_in: String,
11822 pub apy_out: String,
11823 pub apy_total: String,
11824 pub channel_start_balance_msat: Amount,
11825 pub fees_out_msat: Amount,
11826 pub lease_fee_earned_msat: Amount,
11827 pub lease_fee_paid_msat: Amount,
11828 pub our_start_balance_msat: Amount,
11829 pub pushed_in_msat: Amount,
11830 pub pushed_out_msat: Amount,
11831 pub routed_in_msat: Amount,
11832 pub routed_out_msat: Amount,
11833 pub utilization_in: String,
11834 pub utilization_out: String,
11835 }
11836
11837 #[derive(Clone, Debug, Deserialize, Serialize)]
11838 pub struct BkprchannelsapyResponse {
11839 pub channels_apy: Vec<BkprchannelsapyChannelsApy>,
11840 }
11841
11842 impl TryFrom<Response> for BkprchannelsapyResponse {
11843 type Error = super::TryFromResponseError;
11844
11845 fn try_from(response: Response) -> Result<Self, Self::Error> {
11846 match response {
11847 Response::BkprChannelsApy(response) => Ok(response),
11848 _ => Err(TryFromResponseError)
11849 }
11850 }
11851 }
11852
11853 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
11855 #[allow(non_camel_case_types)]
11856 pub enum BkprdumpincomecsvCsvFormat {
11857 #[serde(rename = "cointracker")]
11858 COINTRACKER = 0,
11859 #[serde(rename = "koinly")]
11860 KOINLY = 1,
11861 #[serde(rename = "harmony")]
11862 HARMONY = 2,
11863 #[serde(rename = "quickbooks")]
11864 QUICKBOOKS = 3,
11865 }
11866
11867 impl TryFrom<i32> for BkprdumpincomecsvCsvFormat {
11868 type Error = anyhow::Error;
11869 fn try_from(c: i32) -> Result<BkprdumpincomecsvCsvFormat, anyhow::Error> {
11870 match c {
11871 0 => Ok(BkprdumpincomecsvCsvFormat::COINTRACKER),
11872 1 => Ok(BkprdumpincomecsvCsvFormat::KOINLY),
11873 2 => Ok(BkprdumpincomecsvCsvFormat::HARMONY),
11874 3 => Ok(BkprdumpincomecsvCsvFormat::QUICKBOOKS),
11875 o => Err(anyhow::anyhow!("Unknown variant {} for enum BkprdumpincomecsvCsvFormat", o)),
11876 }
11877 }
11878 }
11879
11880 impl ToString for BkprdumpincomecsvCsvFormat {
11881 fn to_string(&self) -> String {
11882 match self {
11883 BkprdumpincomecsvCsvFormat::COINTRACKER => "COINTRACKER",
11884 BkprdumpincomecsvCsvFormat::KOINLY => "KOINLY",
11885 BkprdumpincomecsvCsvFormat::HARMONY => "HARMONY",
11886 BkprdumpincomecsvCsvFormat::QUICKBOOKS => "QUICKBOOKS",
11887 }.to_string()
11888 }
11889 }
11890
11891 #[derive(Clone, Debug, Deserialize, Serialize)]
11892 pub struct BkprdumpincomecsvResponse {
11893 pub csv_format: BkprdumpincomecsvCsvFormat,
11895 pub csv_file: String,
11896 }
11897
11898 impl TryFrom<Response> for BkprdumpincomecsvResponse {
11899 type Error = super::TryFromResponseError;
11900
11901 fn try_from(response: Response) -> Result<Self, Self::Error> {
11902 match response {
11903 Response::BkprDumpIncomeCsv(response) => Ok(response),
11904 _ => Err(TryFromResponseError)
11905 }
11906 }
11907 }
11908
11909 #[derive(Clone, Debug, Deserialize, Serialize)]
11910 pub struct BkprinspectTxsOutputs {
11911 #[serde(skip_serializing_if = "Option::is_none")]
11912 pub credit_msat: Option<Amount>,
11913 #[serde(skip_serializing_if = "Option::is_none")]
11914 pub debit_msat: Option<Amount>,
11915 #[serde(skip_serializing_if = "Option::is_none")]
11916 pub originating_account: Option<String>,
11917 #[serde(skip_serializing_if = "Option::is_none")]
11918 pub output_tag: Option<String>,
11919 #[serde(skip_serializing_if = "Option::is_none")]
11920 pub payment_id: Option<String>,
11921 #[serde(skip_serializing_if = "Option::is_none")]
11922 pub spend_tag: Option<String>,
11923 #[serde(skip_serializing_if = "Option::is_none")]
11924 pub spending_txid: Option<String>,
11925 pub account: String,
11926 pub currency: String,
11927 pub outnum: u32,
11928 pub output_value_msat: Amount,
11929 }
11930
11931 #[derive(Clone, Debug, Deserialize, Serialize)]
11932 pub struct BkprinspectTxs {
11933 #[serde(skip_serializing_if = "Option::is_none")]
11934 pub blockheight: Option<u32>,
11935 pub fees_paid_msat: Amount,
11936 pub outputs: Vec<BkprinspectTxsOutputs>,
11937 pub txid: String,
11938 }
11939
11940 #[derive(Clone, Debug, Deserialize, Serialize)]
11941 pub struct BkprinspectResponse {
11942 pub txs: Vec<BkprinspectTxs>,
11943 }
11944
11945 impl TryFrom<Response> for BkprinspectResponse {
11946 type Error = super::TryFromResponseError;
11947
11948 fn try_from(response: Response) -> Result<Self, Self::Error> {
11949 match response {
11950 Response::BkprInspect(response) => Ok(response),
11951 _ => Err(TryFromResponseError)
11952 }
11953 }
11954 }
11955
11956 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
11958 #[allow(non_camel_case_types)]
11959 pub enum BkprlistaccounteventsEventsType {
11960 #[serde(rename = "onchain_fee")]
11961 ONCHAIN_FEE = 0,
11962 #[serde(rename = "chain")]
11963 CHAIN = 1,
11964 #[serde(rename = "channel")]
11965 CHANNEL = 2,
11966 }
11967
11968 impl TryFrom<i32> for BkprlistaccounteventsEventsType {
11969 type Error = anyhow::Error;
11970 fn try_from(c: i32) -> Result<BkprlistaccounteventsEventsType, anyhow::Error> {
11971 match c {
11972 0 => Ok(BkprlistaccounteventsEventsType::ONCHAIN_FEE),
11973 1 => Ok(BkprlistaccounteventsEventsType::CHAIN),
11974 2 => Ok(BkprlistaccounteventsEventsType::CHANNEL),
11975 o => Err(anyhow::anyhow!("Unknown variant {} for enum BkprlistaccounteventsEventsType", o)),
11976 }
11977 }
11978 }
11979
11980 impl ToString for BkprlistaccounteventsEventsType {
11981 fn to_string(&self) -> String {
11982 match self {
11983 BkprlistaccounteventsEventsType::ONCHAIN_FEE => "ONCHAIN_FEE",
11984 BkprlistaccounteventsEventsType::CHAIN => "CHAIN",
11985 BkprlistaccounteventsEventsType::CHANNEL => "CHANNEL",
11986 }.to_string()
11987 }
11988 }
11989
11990 #[derive(Clone, Debug, Deserialize, Serialize)]
11991 pub struct BkprlistaccounteventsEvents {
11992 #[serde(skip_serializing_if = "Option::is_none")]
11993 pub blockheight: Option<u32>,
11994 #[serde(skip_serializing_if = "Option::is_none")]
11995 pub currencyrate: Option<f64>,
11996 #[serde(skip_serializing_if = "Option::is_none")]
11997 pub description: Option<String>,
11998 #[serde(skip_serializing_if = "Option::is_none")]
11999 pub fees_msat: Option<Amount>,
12000 #[serde(skip_serializing_if = "Option::is_none")]
12001 pub is_rebalance: Option<bool>,
12002 #[serde(skip_serializing_if = "Option::is_none")]
12003 pub origin: Option<String>,
12004 #[serde(skip_serializing_if = "Option::is_none")]
12005 pub outpoint: Option<String>,
12006 #[serde(skip_serializing_if = "Option::is_none")]
12007 pub part_id: Option<u32>,
12008 #[serde(skip_serializing_if = "Option::is_none")]
12009 pub payment_id: Option<String>,
12010 #[serde(skip_serializing_if = "Option::is_none")]
12011 pub txid: Option<String>,
12012 #[serde(rename = "type")]
12014 pub item_type: BkprlistaccounteventsEventsType,
12015 pub account: String,
12016 pub credit_msat: Amount,
12017 pub currency: String,
12018 pub debit_msat: Amount,
12019 pub tag: String,
12020 pub timestamp: u32,
12021 }
12022
12023 #[derive(Clone, Debug, Deserialize, Serialize)]
12024 pub struct BkprlistaccounteventsResponse {
12025 pub events: Vec<BkprlistaccounteventsEvents>,
12026 }
12027
12028 impl TryFrom<Response> for BkprlistaccounteventsResponse {
12029 type Error = super::TryFromResponseError;
12030
12031 fn try_from(response: Response) -> Result<Self, Self::Error> {
12032 match response {
12033 Response::BkprListAccountEvents(response) => Ok(response),
12034 _ => Err(TryFromResponseError)
12035 }
12036 }
12037 }
12038
12039 #[derive(Clone, Debug, Deserialize, Serialize)]
12040 pub struct BkprlistbalancesAccountsBalances {
12041 pub balance_msat: Amount,
12042 pub coin_type: String,
12043 }
12044
12045 #[derive(Clone, Debug, Deserialize, Serialize)]
12046 pub struct BkprlistbalancesAccounts {
12047 #[serde(skip_serializing_if = "Option::is_none")]
12048 pub account_closed: Option<bool>,
12049 #[serde(skip_serializing_if = "Option::is_none")]
12050 pub account_resolved: Option<bool>,
12051 #[serde(skip_serializing_if = "Option::is_none")]
12052 pub peer_id: Option<PublicKey>,
12053 #[serde(skip_serializing_if = "Option::is_none")]
12054 pub resolved_at_block: Option<u32>,
12055 #[serde(skip_serializing_if = "Option::is_none")]
12056 pub we_opened: Option<bool>,
12057 pub account: String,
12058 pub balances: Vec<BkprlistbalancesAccountsBalances>,
12059 }
12060
12061 #[derive(Clone, Debug, Deserialize, Serialize)]
12062 pub struct BkprlistbalancesResponse {
12063 pub accounts: Vec<BkprlistbalancesAccounts>,
12064 }
12065
12066 impl TryFrom<Response> for BkprlistbalancesResponse {
12067 type Error = super::TryFromResponseError;
12068
12069 fn try_from(response: Response) -> Result<Self, Self::Error> {
12070 match response {
12071 Response::BkprListBalances(response) => Ok(response),
12072 _ => Err(TryFromResponseError)
12073 }
12074 }
12075 }
12076
12077 #[derive(Clone, Debug, Deserialize, Serialize)]
12078 pub struct BkprlistincomeIncomeEvents {
12079 #[serde(skip_serializing_if = "Option::is_none")]
12080 pub description: Option<String>,
12081 #[serde(skip_serializing_if = "Option::is_none")]
12082 pub outpoint: Option<String>,
12083 #[serde(skip_serializing_if = "Option::is_none")]
12084 pub payment_id: Option<String>,
12085 #[serde(skip_serializing_if = "Option::is_none")]
12086 pub txid: Option<String>,
12087 pub account: String,
12088 pub credit_msat: Amount,
12089 pub currency: String,
12090 pub debit_msat: Amount,
12091 pub tag: String,
12092 pub timestamp: u32,
12093 }
12094
12095 #[derive(Clone, Debug, Deserialize, Serialize)]
12096 pub struct BkprlistincomeResponse {
12097 pub income_events: Vec<BkprlistincomeIncomeEvents>,
12098 }
12099
12100 impl TryFrom<Response> for BkprlistincomeResponse {
12101 type Error = super::TryFromResponseError;
12102
12103 fn try_from(response: Response) -> Result<Self, Self::Error> {
12104 match response {
12105 Response::BkprListIncome(response) => Ok(response),
12106 _ => Err(TryFromResponseError)
12107 }
12108 }
12109 }
12110
12111 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
12113 #[allow(non_camel_case_types)]
12114 pub enum BkpreditdescriptionbypaymentidUpdatedType {
12115 #[serde(rename = "chain")]
12116 CHAIN = 0,
12117 #[serde(rename = "channel")]
12118 CHANNEL = 1,
12119 }
12120
12121 impl TryFrom<i32> for BkpreditdescriptionbypaymentidUpdatedType {
12122 type Error = anyhow::Error;
12123 fn try_from(c: i32) -> Result<BkpreditdescriptionbypaymentidUpdatedType, anyhow::Error> {
12124 match c {
12125 0 => Ok(BkpreditdescriptionbypaymentidUpdatedType::CHAIN),
12126 1 => Ok(BkpreditdescriptionbypaymentidUpdatedType::CHANNEL),
12127 o => Err(anyhow::anyhow!("Unknown variant {} for enum BkpreditdescriptionbypaymentidUpdatedType", o)),
12128 }
12129 }
12130 }
12131
12132 impl ToString for BkpreditdescriptionbypaymentidUpdatedType {
12133 fn to_string(&self) -> String {
12134 match self {
12135 BkpreditdescriptionbypaymentidUpdatedType::CHAIN => "CHAIN",
12136 BkpreditdescriptionbypaymentidUpdatedType::CHANNEL => "CHANNEL",
12137 }.to_string()
12138 }
12139 }
12140
12141 #[derive(Clone, Debug, Deserialize, Serialize)]
12142 pub struct BkpreditdescriptionbypaymentidUpdated {
12143 #[serde(skip_serializing_if = "Option::is_none")]
12144 pub blockheight: Option<u32>,
12145 #[serde(skip_serializing_if = "Option::is_none")]
12146 pub fees_msat: Option<Amount>,
12147 #[serde(skip_serializing_if = "Option::is_none")]
12148 pub is_rebalance: Option<bool>,
12149 #[serde(skip_serializing_if = "Option::is_none")]
12150 pub origin: Option<String>,
12151 #[serde(skip_serializing_if = "Option::is_none")]
12152 pub outpoint: Option<String>,
12153 #[serde(skip_serializing_if = "Option::is_none")]
12154 pub part_id: Option<u32>,
12155 #[serde(skip_serializing_if = "Option::is_none")]
12156 pub payment_id: Option<String>,
12157 #[serde(skip_serializing_if = "Option::is_none")]
12158 pub txid: Option<String>,
12159 #[serde(rename = "type")]
12161 pub item_type: BkpreditdescriptionbypaymentidUpdatedType,
12162 pub account: String,
12163 pub credit_msat: Amount,
12164 pub currency: String,
12165 pub debit_msat: Amount,
12166 pub description: String,
12167 pub tag: String,
12168 pub timestamp: u32,
12169 }
12170
12171 #[derive(Clone, Debug, Deserialize, Serialize)]
12172 pub struct BkpreditdescriptionbypaymentidResponse {
12173 pub updated: Vec<BkpreditdescriptionbypaymentidUpdated>,
12174 }
12175
12176 impl TryFrom<Response> for BkpreditdescriptionbypaymentidResponse {
12177 type Error = super::TryFromResponseError;
12178
12179 fn try_from(response: Response) -> Result<Self, Self::Error> {
12180 match response {
12181 Response::BkprEditDescriptionByPaymentId(response) => Ok(response),
12182 _ => Err(TryFromResponseError)
12183 }
12184 }
12185 }
12186
12187 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
12189 #[allow(non_camel_case_types)]
12190 pub enum BkpreditdescriptionbyoutpointUpdatedType {
12191 #[serde(rename = "chain")]
12192 CHAIN = 0,
12193 #[serde(rename = "channel")]
12194 CHANNEL = 1,
12195 }
12196
12197 impl TryFrom<i32> for BkpreditdescriptionbyoutpointUpdatedType {
12198 type Error = anyhow::Error;
12199 fn try_from(c: i32) -> Result<BkpreditdescriptionbyoutpointUpdatedType, anyhow::Error> {
12200 match c {
12201 0 => Ok(BkpreditdescriptionbyoutpointUpdatedType::CHAIN),
12202 1 => Ok(BkpreditdescriptionbyoutpointUpdatedType::CHANNEL),
12203 o => Err(anyhow::anyhow!("Unknown variant {} for enum BkpreditdescriptionbyoutpointUpdatedType", o)),
12204 }
12205 }
12206 }
12207
12208 impl ToString for BkpreditdescriptionbyoutpointUpdatedType {
12209 fn to_string(&self) -> String {
12210 match self {
12211 BkpreditdescriptionbyoutpointUpdatedType::CHAIN => "CHAIN",
12212 BkpreditdescriptionbyoutpointUpdatedType::CHANNEL => "CHANNEL",
12213 }.to_string()
12214 }
12215 }
12216
12217 #[derive(Clone, Debug, Deserialize, Serialize)]
12218 pub struct BkpreditdescriptionbyoutpointUpdated {
12219 #[serde(skip_serializing_if = "Option::is_none")]
12220 pub blockheight: Option<u32>,
12221 #[serde(skip_serializing_if = "Option::is_none")]
12222 pub fees_msat: Option<Amount>,
12223 #[serde(skip_serializing_if = "Option::is_none")]
12224 pub is_rebalance: Option<bool>,
12225 #[serde(skip_serializing_if = "Option::is_none")]
12226 pub origin: Option<String>,
12227 #[serde(skip_serializing_if = "Option::is_none")]
12228 pub outpoint: Option<String>,
12229 #[serde(skip_serializing_if = "Option::is_none")]
12230 pub part_id: Option<u32>,
12231 #[serde(skip_serializing_if = "Option::is_none")]
12232 pub payment_id: Option<String>,
12233 #[serde(skip_serializing_if = "Option::is_none")]
12234 pub txid: Option<String>,
12235 #[serde(rename = "type")]
12237 pub item_type: BkpreditdescriptionbyoutpointUpdatedType,
12238 pub account: String,
12239 pub credit_msat: Amount,
12240 pub currency: String,
12241 pub debit_msat: Amount,
12242 pub description: String,
12243 pub tag: String,
12244 pub timestamp: u32,
12245 }
12246
12247 #[derive(Clone, Debug, Deserialize, Serialize)]
12248 pub struct BkpreditdescriptionbyoutpointResponse {
12249 pub updated: Vec<BkpreditdescriptionbyoutpointUpdated>,
12250 }
12251
12252 impl TryFrom<Response> for BkpreditdescriptionbyoutpointResponse {
12253 type Error = super::TryFromResponseError;
12254
12255 fn try_from(response: Response) -> Result<Self, Self::Error> {
12256 match response {
12257 Response::BkprEditDescriptionByOutpoint(response) => Ok(response),
12258 _ => Err(TryFromResponseError)
12259 }
12260 }
12261 }
12262
12263 #[derive(Clone, Debug, Deserialize, Serialize)]
12264 pub struct BkprreportResponse {
12265 pub report: Vec<String>,
12266 }
12267
12268 impl TryFrom<Response> for BkprreportResponse {
12269 type Error = super::TryFromResponseError;
12270
12271 fn try_from(response: Response) -> Result<Self, Self::Error> {
12272 match response {
12273 Response::BkprReport(response) => Ok(response),
12274 _ => Err(TryFromResponseError)
12275 }
12276 }
12277 }
12278
12279 #[derive(Clone, Debug, Deserialize, Serialize)]
12280 pub struct BlacklistruneBlacklist {
12281 pub end: u64,
12282 pub start: u64,
12283 }
12284
12285 #[derive(Clone, Debug, Deserialize, Serialize)]
12286 pub struct BlacklistruneResponse {
12287 pub blacklist: Vec<BlacklistruneBlacklist>,
12288 }
12289
12290 impl TryFrom<Response> for BlacklistruneResponse {
12291 type Error = super::TryFromResponseError;
12292
12293 fn try_from(response: Response) -> Result<Self, Self::Error> {
12294 match response {
12295 Response::BlacklistRune(response) => Ok(response),
12296 _ => Err(TryFromResponseError)
12297 }
12298 }
12299 }
12300
12301 #[derive(Clone, Debug, Deserialize, Serialize)]
12302 pub struct CheckruneResponse {
12303 pub valid: bool,
12304 }
12305
12306 impl TryFrom<Response> for CheckruneResponse {
12307 type Error = super::TryFromResponseError;
12308
12309 fn try_from(response: Response) -> Result<Self, Self::Error> {
12310 match response {
12311 Response::CheckRune(response) => Ok(response),
12312 _ => Err(TryFromResponseError)
12313 }
12314 }
12315 }
12316
12317 #[derive(Clone, Debug, Deserialize, Serialize)]
12318 pub struct CreateruneResponse {
12319 #[serde(skip_serializing_if = "Option::is_none")]
12320 pub warning_unrestricted_rune: Option<String>,
12321 pub rune: String,
12322 pub unique_id: String,
12323 }
12324
12325 impl TryFrom<Response> for CreateruneResponse {
12326 type Error = super::TryFromResponseError;
12327
12328 fn try_from(response: Response) -> Result<Self, Self::Error> {
12329 match response {
12330 Response::CreateRune(response) => Ok(response),
12331 _ => Err(TryFromResponseError)
12332 }
12333 }
12334 }
12335
12336 #[derive(Clone, Debug, Deserialize, Serialize)]
12337 pub struct ShowrunesRunesRestrictionsAlternatives {
12338 pub condition: String,
12339 pub english: String,
12340 pub fieldname: String,
12341 pub value: String,
12342 }
12343
12344 #[derive(Clone, Debug, Deserialize, Serialize)]
12345 pub struct ShowrunesRunesRestrictions {
12346 pub alternatives: Vec<ShowrunesRunesRestrictionsAlternatives>,
12347 pub english: String,
12348 }
12349
12350 #[derive(Clone, Debug, Deserialize, Serialize)]
12351 pub struct ShowrunesRunes {
12352 #[serde(skip_serializing_if = "Option::is_none")]
12353 pub blacklisted: Option<bool>,
12354 #[serde(skip_serializing_if = "Option::is_none")]
12355 pub last_used: Option<f64>,
12356 #[serde(skip_serializing_if = "Option::is_none")]
12357 pub our_rune: Option<bool>,
12358 #[serde(skip_serializing_if = "Option::is_none")]
12359 pub stored: Option<bool>,
12360 pub restrictions: Vec<ShowrunesRunesRestrictions>,
12361 pub restrictions_as_english: String,
12362 pub rune: String,
12363 pub unique_id: String,
12364 }
12365
12366 #[derive(Clone, Debug, Deserialize, Serialize)]
12367 pub struct ShowrunesResponse {
12368 pub runes: Vec<ShowrunesRunes>,
12369 }
12370
12371 impl TryFrom<Response> for ShowrunesResponse {
12372 type Error = super::TryFromResponseError;
12373
12374 fn try_from(response: Response) -> Result<Self, Self::Error> {
12375 match response {
12376 Response::ShowRunes(response) => Ok(response),
12377 _ => Err(TryFromResponseError)
12378 }
12379 }
12380 }
12381
12382 #[derive(Clone, Debug, Deserialize, Serialize)]
12383 pub struct AskreneunreserveResponse {
12384 }
12385
12386 impl TryFrom<Response> for AskreneunreserveResponse {
12387 type Error = super::TryFromResponseError;
12388
12389 fn try_from(response: Response) -> Result<Self, Self::Error> {
12390 match response {
12391 Response::AskReneUnreserve(response) => Ok(response),
12392 _ => Err(TryFromResponseError)
12393 }
12394 }
12395 }
12396
12397 #[derive(Clone, Debug, Deserialize, Serialize)]
12398 pub struct AskrenelistlayersLayersBiases {
12399 #[serde(skip_serializing_if = "Option::is_none")]
12400 pub description: Option<String>,
12401 #[serde(skip_serializing_if = "Option::is_none")]
12402 pub timestamp: Option<u64>,
12403 pub bias: i64,
12404 pub short_channel_id_dir: ShortChannelIdDir,
12405 }
12406
12407 #[derive(Clone, Debug, Deserialize, Serialize)]
12408 pub struct AskrenelistlayersLayersNodeBiases {
12409 #[serde(skip_serializing_if = "Option::is_none")]
12410 pub description: Option<String>,
12411 pub in_bias: i64,
12412 pub node: PublicKey,
12413 pub out_bias: i64,
12414 pub timestamp: u64,
12415 }
12416
12417 #[derive(Clone, Debug, Deserialize, Serialize)]
12418 pub struct AskrenelistlayersLayersChannelUpdates {
12419 #[serde(skip_serializing_if = "Option::is_none")]
12420 pub cltv_expiry_delta: Option<u16>,
12421 #[serde(skip_serializing_if = "Option::is_none")]
12422 pub enabled: Option<bool>,
12423 #[serde(skip_serializing_if = "Option::is_none")]
12424 pub fee_base_msat: Option<Amount>,
12425 #[serde(skip_serializing_if = "Option::is_none")]
12426 pub fee_proportional_millionths: Option<u32>,
12427 #[serde(skip_serializing_if = "Option::is_none")]
12428 pub htlc_maximum_msat: Option<Amount>,
12429 #[serde(skip_serializing_if = "Option::is_none")]
12430 pub htlc_minimum_msat: Option<Amount>,
12431 pub short_channel_id_dir: ShortChannelIdDir,
12432 }
12433
12434 #[derive(Clone, Debug, Deserialize, Serialize)]
12435 pub struct AskrenelistlayersLayersConstraints {
12436 #[serde(skip_serializing_if = "Option::is_none")]
12437 pub maximum_msat: Option<Amount>,
12438 #[serde(skip_serializing_if = "Option::is_none")]
12439 pub minimum_msat: Option<Amount>,
12440 #[serde(skip_serializing_if = "Option::is_none")]
12441 pub timestamp: Option<u64>,
12442 pub short_channel_id_dir: ShortChannelIdDir,
12443 }
12444
12445 #[derive(Clone, Debug, Deserialize, Serialize)]
12446 pub struct AskrenelistlayersLayersCreatedChannels {
12447 pub capacity_msat: Amount,
12448 pub destination: PublicKey,
12449 pub short_channel_id: ShortChannelId,
12450 pub source: PublicKey,
12451 }
12452
12453 #[derive(Clone, Debug, Deserialize, Serialize)]
12454 pub struct AskrenelistlayersLayers {
12455 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
12456 pub biases: Option<Vec<AskrenelistlayersLayersBiases>>,
12457 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
12458 pub disabled_channels: Option<Vec<ShortChannelIdDir>>,
12459 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
12460 pub node_biases: Option<Vec<AskrenelistlayersLayersNodeBiases>>,
12461 pub channel_updates: Vec<AskrenelistlayersLayersChannelUpdates>,
12462 pub constraints: Vec<AskrenelistlayersLayersConstraints>,
12463 pub created_channels: Vec<AskrenelistlayersLayersCreatedChannels>,
12464 pub disabled_nodes: Vec<PublicKey>,
12465 pub layer: String,
12466 pub persistent: bool,
12467 }
12468
12469 #[derive(Clone, Debug, Deserialize, Serialize)]
12470 pub struct AskrenelistlayersResponse {
12471 pub layers: Vec<AskrenelistlayersLayers>,
12472 }
12473
12474 impl TryFrom<Response> for AskrenelistlayersResponse {
12475 type Error = super::TryFromResponseError;
12476
12477 fn try_from(response: Response) -> Result<Self, Self::Error> {
12478 match response {
12479 Response::AskReneListLayers(response) => Ok(response),
12480 _ => Err(TryFromResponseError)
12481 }
12482 }
12483 }
12484
12485 #[derive(Clone, Debug, Deserialize, Serialize)]
12486 pub struct AskrenecreatelayerLayersBiases {
12487 #[serde(skip_serializing_if = "Option::is_none")]
12488 pub description: Option<String>,
12489 #[serde(skip_serializing_if = "Option::is_none")]
12490 pub timestamp: Option<u64>,
12491 pub bias: i64,
12492 pub short_channel_id_dir: ShortChannelIdDir,
12493 }
12494
12495 #[derive(Clone, Debug, Deserialize, Serialize)]
12496 pub struct AskrenecreatelayerLayersNodeBiases {
12497 #[serde(skip_serializing_if = "Option::is_none")]
12498 pub description: Option<String>,
12499 pub in_bias: i64,
12500 pub node: PublicKey,
12501 pub out_bias: i64,
12502 pub timestamp: u64,
12503 }
12504
12505 #[derive(Clone, Debug, Deserialize, Serialize)]
12506 pub struct AskrenecreatelayerLayersChannelUpdates {
12507 #[serde(skip_serializing_if = "Option::is_none")]
12508 pub delay: Option<u16>,
12509 #[serde(skip_serializing_if = "Option::is_none")]
12510 pub fee_base_msat: Option<Amount>,
12511 #[serde(skip_serializing_if = "Option::is_none")]
12512 pub fee_proportional_millionths: Option<u32>,
12513 #[serde(skip_serializing_if = "Option::is_none")]
12514 pub htlc_maximum_msat: Option<Amount>,
12515 #[serde(skip_serializing_if = "Option::is_none")]
12516 pub htlc_minimum_msat: Option<Amount>,
12517 }
12518
12519 #[derive(Clone, Debug, Deserialize, Serialize)]
12520 pub struct AskrenecreatelayerLayersConstraints {
12521 #[serde(skip_serializing_if = "Option::is_none")]
12522 pub maximum_msat: Option<Amount>,
12523 #[serde(skip_serializing_if = "Option::is_none")]
12524 pub minimum_msat: Option<Amount>,
12525 pub direction: u32,
12526 pub short_channel_id: ShortChannelId,
12527 }
12528
12529 #[derive(Clone, Debug, Deserialize, Serialize)]
12530 pub struct AskrenecreatelayerLayersCreatedChannels {
12531 pub capacity_msat: Amount,
12532 pub destination: PublicKey,
12533 pub short_channel_id: ShortChannelId,
12534 pub source: PublicKey,
12535 }
12536
12537 #[derive(Clone, Debug, Deserialize, Serialize)]
12538 pub struct AskrenecreatelayerLayers {
12539 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
12540 pub biases: Option<Vec<AskrenecreatelayerLayersBiases>>,
12541 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
12542 pub disabled_channels: Option<Vec<ShortChannelIdDir>>,
12543 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
12544 pub node_biases: Option<Vec<AskrenecreatelayerLayersNodeBiases>>,
12545 pub channel_updates: Vec<AskrenecreatelayerLayersChannelUpdates>,
12546 pub constraints: Vec<AskrenecreatelayerLayersConstraints>,
12547 pub created_channels: Vec<AskrenecreatelayerLayersCreatedChannels>,
12548 pub disabled_nodes: Vec<PublicKey>,
12549 pub layer: String,
12550 pub persistent: bool,
12551 }
12552
12553 #[derive(Clone, Debug, Deserialize, Serialize)]
12554 pub struct AskrenecreatelayerResponse {
12555 pub layers: Vec<AskrenecreatelayerLayers>,
12556 }
12557
12558 impl TryFrom<Response> for AskrenecreatelayerResponse {
12559 type Error = super::TryFromResponseError;
12560
12561 fn try_from(response: Response) -> Result<Self, Self::Error> {
12562 match response {
12563 Response::AskReneCreateLayer(response) => Ok(response),
12564 _ => Err(TryFromResponseError)
12565 }
12566 }
12567 }
12568
12569 #[derive(Clone, Debug, Deserialize, Serialize)]
12570 pub struct AskreneremovelayerResponse {
12571 }
12572
12573 impl TryFrom<Response> for AskreneremovelayerResponse {
12574 type Error = super::TryFromResponseError;
12575
12576 fn try_from(response: Response) -> Result<Self, Self::Error> {
12577 match response {
12578 Response::AskReneRemoveLayer(response) => Ok(response),
12579 _ => Err(TryFromResponseError)
12580 }
12581 }
12582 }
12583
12584 #[derive(Clone, Debug, Deserialize, Serialize)]
12585 pub struct AskreneremovechannelupdateResponse {
12586 }
12587
12588 impl TryFrom<Response> for AskreneremovechannelupdateResponse {
12589 type Error = super::TryFromResponseError;
12590
12591 fn try_from(response: Response) -> Result<Self, Self::Error> {
12592 match response {
12593 Response::AskReneRemoveChannelUpdate(response) => Ok(response),
12594 _ => Err(TryFromResponseError)
12595 }
12596 }
12597 }
12598
12599 #[derive(Clone, Debug, Deserialize, Serialize)]
12600 pub struct AskrenereserveResponse {
12601 }
12602
12603 impl TryFrom<Response> for AskrenereserveResponse {
12604 type Error = super::TryFromResponseError;
12605
12606 fn try_from(response: Response) -> Result<Self, Self::Error> {
12607 match response {
12608 Response::AskReneReserve(response) => Ok(response),
12609 _ => Err(TryFromResponseError)
12610 }
12611 }
12612 }
12613
12614 #[derive(Clone, Debug, Deserialize, Serialize)]
12615 pub struct AskreneageResponse {
12616 pub layer: String,
12617 pub num_removed: u64,
12618 }
12619
12620 impl TryFrom<Response> for AskreneageResponse {
12621 type Error = super::TryFromResponseError;
12622
12623 fn try_from(response: Response) -> Result<Self, Self::Error> {
12624 match response {
12625 Response::AskReneAge(response) => Ok(response),
12626 _ => Err(TryFromResponseError)
12627 }
12628 }
12629 }
12630
12631 #[derive(Clone, Debug, Deserialize, Serialize)]
12632 pub struct GetroutesRoutesPath {
12633 #[deprecated]
12634 #[serde(skip_serializing_if = "Option::is_none")]
12635 pub amount_msat: Option<Amount>,
12636 #[deprecated]
12637 #[serde(skip_serializing_if = "Option::is_none")]
12638 pub delay: Option<u32>,
12639 #[deprecated]
12640 #[serde(skip_serializing_if = "Option::is_none")]
12641 pub next_node_id: Option<PublicKey>,
12642 #[serde(skip_serializing_if = "Option::is_none")]
12643 pub amount_in_msat: Option<Amount>,
12644 #[serde(skip_serializing_if = "Option::is_none")]
12645 pub amount_out_msat: Option<Amount>,
12646 #[serde(skip_serializing_if = "Option::is_none")]
12647 pub cltv_in: Option<u32>,
12648 #[serde(skip_serializing_if = "Option::is_none")]
12649 pub cltv_out: Option<u32>,
12650 #[serde(skip_serializing_if = "Option::is_none")]
12651 pub node_id_in: Option<PublicKey>,
12652 #[serde(skip_serializing_if = "Option::is_none")]
12653 pub node_id_out: Option<PublicKey>,
12654 pub short_channel_id_dir: ShortChannelIdDir,
12655 }
12656
12657 #[derive(Clone, Debug, Deserialize, Serialize)]
12658 pub struct GetroutesRoutes {
12659 pub amount_msat: Amount,
12660 pub final_cltv: u32,
12661 pub path: Vec<GetroutesRoutesPath>,
12662 pub probability_ppm: u64,
12663 }
12664
12665 #[derive(Clone, Debug, Deserialize, Serialize)]
12666 pub struct GetroutesResponse {
12667 pub probability_ppm: u64,
12668 pub routes: Vec<GetroutesRoutes>,
12669 }
12670
12671 impl TryFrom<Response> for GetroutesResponse {
12672 type Error = super::TryFromResponseError;
12673
12674 fn try_from(response: Response) -> Result<Self, Self::Error> {
12675 match response {
12676 Response::GetRoutes(response) => Ok(response),
12677 _ => Err(TryFromResponseError)
12678 }
12679 }
12680 }
12681
12682 #[derive(Clone, Debug, Deserialize, Serialize)]
12683 pub struct AskrenedisablenodeResponse {
12684 }
12685
12686 impl TryFrom<Response> for AskrenedisablenodeResponse {
12687 type Error = super::TryFromResponseError;
12688
12689 fn try_from(response: Response) -> Result<Self, Self::Error> {
12690 match response {
12691 Response::AskReneDisableNode(response) => Ok(response),
12692 _ => Err(TryFromResponseError)
12693 }
12694 }
12695 }
12696
12697 #[derive(Clone, Debug, Deserialize, Serialize)]
12698 pub struct AskreneinformchannelConstraints {
12699 #[serde(skip_serializing_if = "Option::is_none")]
12700 pub maximum_msat: Option<Amount>,
12701 #[serde(skip_serializing_if = "Option::is_none")]
12702 pub minimum_msat: Option<Amount>,
12703 pub layer: String,
12704 pub short_channel_id_dir: ShortChannelIdDir,
12705 pub timestamp: u64,
12706 }
12707
12708 #[derive(Clone, Debug, Deserialize, Serialize)]
12709 pub struct AskreneinformchannelResponse {
12710 pub constraints: Vec<AskreneinformchannelConstraints>,
12711 }
12712
12713 impl TryFrom<Response> for AskreneinformchannelResponse {
12714 type Error = super::TryFromResponseError;
12715
12716 fn try_from(response: Response) -> Result<Self, Self::Error> {
12717 match response {
12718 Response::AskReneInformChannel(response) => Ok(response),
12719 _ => Err(TryFromResponseError)
12720 }
12721 }
12722 }
12723
12724 #[derive(Clone, Debug, Deserialize, Serialize)]
12725 pub struct AskrenecreatechannelResponse {
12726 }
12727
12728 impl TryFrom<Response> for AskrenecreatechannelResponse {
12729 type Error = super::TryFromResponseError;
12730
12731 fn try_from(response: Response) -> Result<Self, Self::Error> {
12732 match response {
12733 Response::AskReneCreateChannel(response) => Ok(response),
12734 _ => Err(TryFromResponseError)
12735 }
12736 }
12737 }
12738
12739 #[derive(Clone, Debug, Deserialize, Serialize)]
12740 pub struct AskreneupdatechannelResponse {
12741 }
12742
12743 impl TryFrom<Response> for AskreneupdatechannelResponse {
12744 type Error = super::TryFromResponseError;
12745
12746 fn try_from(response: Response) -> Result<Self, Self::Error> {
12747 match response {
12748 Response::AskReneUpdateChannel(response) => Ok(response),
12749 _ => Err(TryFromResponseError)
12750 }
12751 }
12752 }
12753
12754 #[derive(Clone, Debug, Deserialize, Serialize)]
12755 pub struct AskrenebiaschannelBiases {
12756 #[serde(skip_serializing_if = "Option::is_none")]
12757 pub description: Option<String>,
12758 #[serde(skip_serializing_if = "Option::is_none")]
12759 pub timestamp: Option<u64>,
12760 pub bias: i64,
12761 pub layer: String,
12762 pub short_channel_id_dir: ShortChannelIdDir,
12763 }
12764
12765 #[derive(Clone, Debug, Deserialize, Serialize)]
12766 pub struct AskrenebiaschannelResponse {
12767 pub biases: Vec<AskrenebiaschannelBiases>,
12768 }
12769
12770 impl TryFrom<Response> for AskrenebiaschannelResponse {
12771 type Error = super::TryFromResponseError;
12772
12773 fn try_from(response: Response) -> Result<Self, Self::Error> {
12774 match response {
12775 Response::AskReneBiasChannel(response) => Ok(response),
12776 _ => Err(TryFromResponseError)
12777 }
12778 }
12779 }
12780
12781 #[derive(Clone, Debug, Deserialize, Serialize)]
12782 pub struct AskrenebiasnodeNodeBiases {
12783 #[serde(skip_serializing_if = "Option::is_none")]
12784 pub description: Option<String>,
12785 pub in_bias: i64,
12786 pub layer: String,
12787 pub node: PublicKey,
12788 pub out_bias: i64,
12789 pub timestamp: u64,
12790 }
12791
12792 #[derive(Clone, Debug, Deserialize, Serialize)]
12793 pub struct AskrenebiasnodeResponse {
12794 pub node_biases: Vec<AskrenebiasnodeNodeBiases>,
12795 }
12796
12797 impl TryFrom<Response> for AskrenebiasnodeResponse {
12798 type Error = super::TryFromResponseError;
12799
12800 fn try_from(response: Response) -> Result<Self, Self::Error> {
12801 match response {
12802 Response::AskreneBiasNode(response) => Ok(response),
12803 _ => Err(TryFromResponseError)
12804 }
12805 }
12806 }
12807
12808 #[derive(Clone, Debug, Deserialize, Serialize)]
12809 pub struct AskrenelistreservationsReservations {
12810 pub age_in_seconds: u64,
12811 pub amount_msat: Amount,
12812 pub command_id: String,
12813 pub short_channel_id_dir: ShortChannelIdDir,
12814 }
12815
12816 #[derive(Clone, Debug, Deserialize, Serialize)]
12817 pub struct AskrenelistreservationsResponse {
12818 pub reservations: Vec<AskrenelistreservationsReservations>,
12819 }
12820
12821 impl TryFrom<Response> for AskrenelistreservationsResponse {
12822 type Error = super::TryFromResponseError;
12823
12824 fn try_from(response: Response) -> Result<Self, Self::Error> {
12825 match response {
12826 Response::AskReneListReservations(response) => Ok(response),
12827 _ => Err(TryFromResponseError)
12828 }
12829 }
12830 }
12831
12832 #[derive(Clone, Debug, Deserialize, Serialize)]
12833 pub struct InjectpaymentonionResponse {
12834 pub completed_at: u64,
12835 pub created_at: u64,
12836 pub created_index: u64,
12837 pub payment_preimage: Secret,
12838 }
12839
12840 impl TryFrom<Response> for InjectpaymentonionResponse {
12841 type Error = super::TryFromResponseError;
12842
12843 fn try_from(response: Response) -> Result<Self, Self::Error> {
12844 match response {
12845 Response::InjectPaymentOnion(response) => Ok(response),
12846 _ => Err(TryFromResponseError)
12847 }
12848 }
12849 }
12850
12851 #[derive(Clone, Debug, Deserialize, Serialize)]
12852 pub struct InjectonionmessageResponse {
12853 }
12854
12855 impl TryFrom<Response> for InjectonionmessageResponse {
12856 type Error = super::TryFromResponseError;
12857
12858 fn try_from(response: Response) -> Result<Self, Self::Error> {
12859 match response {
12860 Response::InjectOnionMessage(response) => Ok(response),
12861 _ => Err(TryFromResponseError)
12862 }
12863 }
12864 }
12865
12866 #[derive(Clone, Debug, Deserialize, Serialize)]
12867 pub struct XpayResponse {
12868 pub amount_msat: Amount,
12869 pub amount_sent_msat: Amount,
12870 pub failed_parts: u64,
12871 pub payment_preimage: Secret,
12872 pub successful_parts: u64,
12873 }
12874
12875 impl TryFrom<Response> for XpayResponse {
12876 type Error = super::TryFromResponseError;
12877
12878 fn try_from(response: Response) -> Result<Self, Self::Error> {
12879 match response {
12880 Response::Xpay(response) => Ok(response),
12881 _ => Err(TryFromResponseError)
12882 }
12883 }
12884 }
12885
12886 #[derive(Clone, Debug, Deserialize, Serialize)]
12887 pub struct SignmessagewithkeyResponse {
12888 pub address: String,
12889 pub base64: String,
12890 pub pubkey: PublicKey,
12891 pub signature: String,
12892 }
12893
12894 impl TryFrom<Response> for SignmessagewithkeyResponse {
12895 type Error = super::TryFromResponseError;
12896
12897 fn try_from(response: Response) -> Result<Self, Self::Error> {
12898 match response {
12899 Response::SignMessageWithKey(response) => Ok(response),
12900 _ => Err(TryFromResponseError)
12901 }
12902 }
12903 }
12904
12905 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
12907 #[allow(non_camel_case_types)]
12908 pub enum ListchannelmovesChannelmovesPrimaryTag {
12909 #[serde(rename = "invoice")]
12910 INVOICE = 0,
12911 #[serde(rename = "routed")]
12912 ROUTED = 1,
12913 #[serde(rename = "pushed")]
12914 PUSHED = 2,
12915 #[serde(rename = "lease_fee")]
12916 LEASE_FEE = 3,
12917 #[serde(rename = "channel_proposed")]
12918 CHANNEL_PROPOSED = 4,
12919 #[serde(rename = "penalty_adj")]
12920 PENALTY_ADJ = 5,
12921 #[serde(rename = "journal_entry")]
12922 JOURNAL_ENTRY = 6,
12923 }
12924
12925 impl TryFrom<i32> for ListchannelmovesChannelmovesPrimaryTag {
12926 type Error = anyhow::Error;
12927 fn try_from(c: i32) -> Result<ListchannelmovesChannelmovesPrimaryTag, anyhow::Error> {
12928 match c {
12929 0 => Ok(ListchannelmovesChannelmovesPrimaryTag::INVOICE),
12930 1 => Ok(ListchannelmovesChannelmovesPrimaryTag::ROUTED),
12931 2 => Ok(ListchannelmovesChannelmovesPrimaryTag::PUSHED),
12932 3 => Ok(ListchannelmovesChannelmovesPrimaryTag::LEASE_FEE),
12933 4 => Ok(ListchannelmovesChannelmovesPrimaryTag::CHANNEL_PROPOSED),
12934 5 => Ok(ListchannelmovesChannelmovesPrimaryTag::PENALTY_ADJ),
12935 6 => Ok(ListchannelmovesChannelmovesPrimaryTag::JOURNAL_ENTRY),
12936 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListchannelmovesChannelmovesPrimaryTag", o)),
12937 }
12938 }
12939 }
12940
12941 impl ToString for ListchannelmovesChannelmovesPrimaryTag {
12942 fn to_string(&self) -> String {
12943 match self {
12944 ListchannelmovesChannelmovesPrimaryTag::INVOICE => "INVOICE",
12945 ListchannelmovesChannelmovesPrimaryTag::ROUTED => "ROUTED",
12946 ListchannelmovesChannelmovesPrimaryTag::PUSHED => "PUSHED",
12947 ListchannelmovesChannelmovesPrimaryTag::LEASE_FEE => "LEASE_FEE",
12948 ListchannelmovesChannelmovesPrimaryTag::CHANNEL_PROPOSED => "CHANNEL_PROPOSED",
12949 ListchannelmovesChannelmovesPrimaryTag::PENALTY_ADJ => "PENALTY_ADJ",
12950 ListchannelmovesChannelmovesPrimaryTag::JOURNAL_ENTRY => "JOURNAL_ENTRY",
12951 }.to_string()
12952 }
12953 }
12954
12955 #[derive(Clone, Debug, Deserialize, Serialize)]
12956 pub struct ListchannelmovesChannelmoves {
12957 #[serde(skip_serializing_if = "Option::is_none")]
12958 pub group_id: Option<u64>,
12959 #[serde(skip_serializing_if = "Option::is_none")]
12960 pub part_id: Option<u64>,
12961 #[serde(skip_serializing_if = "Option::is_none")]
12962 pub payment_hash: Option<Sha256>,
12963 pub primary_tag: ListchannelmovesChannelmovesPrimaryTag,
12965 pub account_id: String,
12966 pub created_index: u64,
12967 pub credit_msat: Amount,
12968 pub debit_msat: Amount,
12969 pub fees_msat: Amount,
12970 pub timestamp: u64,
12971 }
12972
12973 #[derive(Clone, Debug, Deserialize, Serialize)]
12974 pub struct ListchannelmovesResponse {
12975 pub channelmoves: Vec<ListchannelmovesChannelmoves>,
12976 }
12977
12978 impl TryFrom<Response> for ListchannelmovesResponse {
12979 type Error = super::TryFromResponseError;
12980
12981 fn try_from(response: Response) -> Result<Self, Self::Error> {
12982 match response {
12983 Response::ListChannelMoves(response) => Ok(response),
12984 _ => Err(TryFromResponseError)
12985 }
12986 }
12987 }
12988
12989 #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
12991 #[allow(non_camel_case_types)]
12992 pub enum ListchainmovesChainmovesPrimaryTag {
12993 #[serde(rename = "deposit")]
12994 DEPOSIT = 0,
12995 #[serde(rename = "withdrawal")]
12996 WITHDRAWAL = 1,
12997 #[serde(rename = "penalty")]
12998 PENALTY = 2,
12999 #[serde(rename = "channel_open")]
13000 CHANNEL_OPEN = 3,
13001 #[serde(rename = "channel_close")]
13002 CHANNEL_CLOSE = 4,
13003 #[serde(rename = "delayed_to_us")]
13004 DELAYED_TO_US = 5,
13005 #[serde(rename = "htlc_tx")]
13006 HTLC_TX = 6,
13007 #[serde(rename = "htlc_timeout")]
13008 HTLC_TIMEOUT = 7,
13009 #[serde(rename = "htlc_fulfill")]
13010 HTLC_FULFILL = 8,
13011 #[serde(rename = "to_wallet")]
13012 TO_WALLET = 9,
13013 #[serde(rename = "anchor")]
13014 ANCHOR = 10,
13015 #[serde(rename = "to_them")]
13016 TO_THEM = 11,
13017 #[serde(rename = "penalized")]
13018 PENALIZED = 12,
13019 #[serde(rename = "stolen")]
13020 STOLEN = 13,
13021 #[serde(rename = "ignored")]
13022 IGNORED = 14,
13023 #[serde(rename = "to_miner")]
13024 TO_MINER = 15,
13025 }
13026
13027 impl TryFrom<i32> for ListchainmovesChainmovesPrimaryTag {
13028 type Error = anyhow::Error;
13029 fn try_from(c: i32) -> Result<ListchainmovesChainmovesPrimaryTag, anyhow::Error> {
13030 match c {
13031 0 => Ok(ListchainmovesChainmovesPrimaryTag::DEPOSIT),
13032 1 => Ok(ListchainmovesChainmovesPrimaryTag::WITHDRAWAL),
13033 2 => Ok(ListchainmovesChainmovesPrimaryTag::PENALTY),
13034 3 => Ok(ListchainmovesChainmovesPrimaryTag::CHANNEL_OPEN),
13035 4 => Ok(ListchainmovesChainmovesPrimaryTag::CHANNEL_CLOSE),
13036 5 => Ok(ListchainmovesChainmovesPrimaryTag::DELAYED_TO_US),
13037 6 => Ok(ListchainmovesChainmovesPrimaryTag::HTLC_TX),
13038 7 => Ok(ListchainmovesChainmovesPrimaryTag::HTLC_TIMEOUT),
13039 8 => Ok(ListchainmovesChainmovesPrimaryTag::HTLC_FULFILL),
13040 9 => Ok(ListchainmovesChainmovesPrimaryTag::TO_WALLET),
13041 10 => Ok(ListchainmovesChainmovesPrimaryTag::ANCHOR),
13042 11 => Ok(ListchainmovesChainmovesPrimaryTag::TO_THEM),
13043 12 => Ok(ListchainmovesChainmovesPrimaryTag::PENALIZED),
13044 13 => Ok(ListchainmovesChainmovesPrimaryTag::STOLEN),
13045 14 => Ok(ListchainmovesChainmovesPrimaryTag::IGNORED),
13046 15 => Ok(ListchainmovesChainmovesPrimaryTag::TO_MINER),
13047 o => Err(anyhow::anyhow!("Unknown variant {} for enum ListchainmovesChainmovesPrimaryTag", o)),
13048 }
13049 }
13050 }
13051
13052 impl ToString for ListchainmovesChainmovesPrimaryTag {
13053 fn to_string(&self) -> String {
13054 match self {
13055 ListchainmovesChainmovesPrimaryTag::DEPOSIT => "DEPOSIT",
13056 ListchainmovesChainmovesPrimaryTag::WITHDRAWAL => "WITHDRAWAL",
13057 ListchainmovesChainmovesPrimaryTag::PENALTY => "PENALTY",
13058 ListchainmovesChainmovesPrimaryTag::CHANNEL_OPEN => "CHANNEL_OPEN",
13059 ListchainmovesChainmovesPrimaryTag::CHANNEL_CLOSE => "CHANNEL_CLOSE",
13060 ListchainmovesChainmovesPrimaryTag::DELAYED_TO_US => "DELAYED_TO_US",
13061 ListchainmovesChainmovesPrimaryTag::HTLC_TX => "HTLC_TX",
13062 ListchainmovesChainmovesPrimaryTag::HTLC_TIMEOUT => "HTLC_TIMEOUT",
13063 ListchainmovesChainmovesPrimaryTag::HTLC_FULFILL => "HTLC_FULFILL",
13064 ListchainmovesChainmovesPrimaryTag::TO_WALLET => "TO_WALLET",
13065 ListchainmovesChainmovesPrimaryTag::ANCHOR => "ANCHOR",
13066 ListchainmovesChainmovesPrimaryTag::TO_THEM => "TO_THEM",
13067 ListchainmovesChainmovesPrimaryTag::PENALIZED => "PENALIZED",
13068 ListchainmovesChainmovesPrimaryTag::STOLEN => "STOLEN",
13069 ListchainmovesChainmovesPrimaryTag::IGNORED => "IGNORED",
13070 ListchainmovesChainmovesPrimaryTag::TO_MINER => "TO_MINER",
13071 }.to_string()
13072 }
13073 }
13074
13075 #[derive(Clone, Debug, Deserialize, Serialize)]
13076 pub struct ListchainmovesChainmoves {
13077 #[serde(skip_serializing_if = "Option::is_none")]
13078 pub originating_account: Option<String>,
13079 #[serde(skip_serializing_if = "Option::is_none")]
13080 pub output_count: Option<u32>,
13081 #[serde(skip_serializing_if = "Option::is_none")]
13082 pub payment_hash: Option<Sha256>,
13083 #[serde(skip_serializing_if = "Option::is_none")]
13084 pub peer_id: Option<PublicKey>,
13085 #[serde(skip_serializing_if = "Option::is_none")]
13086 pub spending_txid: Option<String>,
13087 pub primary_tag: ListchainmovesChainmovesPrimaryTag,
13089 pub account_id: String,
13090 pub blockheight: u32,
13091 pub created_index: u64,
13092 pub credit_msat: Amount,
13093 pub debit_msat: Amount,
13094 pub extra_tags: Vec<String>,
13095 pub output_msat: Amount,
13096 pub timestamp: u64,
13097 pub utxo: Outpoint,
13098 }
13099
13100 #[derive(Clone, Debug, Deserialize, Serialize)]
13101 pub struct ListchainmovesResponse {
13102 pub chainmoves: Vec<ListchainmovesChainmoves>,
13103 }
13104
13105 impl TryFrom<Response> for ListchainmovesResponse {
13106 type Error = super::TryFromResponseError;
13107
13108 fn try_from(response: Response) -> Result<Self, Self::Error> {
13109 match response {
13110 Response::ListChainMoves(response) => Ok(response),
13111 _ => Err(TryFromResponseError)
13112 }
13113 }
13114 }
13115
13116 #[derive(Clone, Debug, Deserialize, Serialize)]
13117 pub struct ListnetworkeventsNetworkevents {
13118 #[serde(rename = "type")]
13119 pub item_type: String,
13120 #[serde(skip_serializing_if = "Option::is_none")]
13121 pub connect_attempted: Option<bool>,
13122 #[serde(skip_serializing_if = "Option::is_none")]
13123 pub duration_nsec: Option<u64>,
13124 #[serde(skip_serializing_if = "Option::is_none")]
13125 pub reason: Option<String>,
13126 pub created_index: u64,
13127 pub peer_id: PublicKey,
13128 pub timestamp: u64,
13129 }
13130
13131 #[derive(Clone, Debug, Deserialize, Serialize)]
13132 pub struct ListnetworkeventsResponse {
13133 pub networkevents: Vec<ListnetworkeventsNetworkevents>,
13134 }
13135
13136 impl TryFrom<Response> for ListnetworkeventsResponse {
13137 type Error = super::TryFromResponseError;
13138
13139 fn try_from(response: Response) -> Result<Self, Self::Error> {
13140 match response {
13141 Response::ListNetworkEvents(response) => Ok(response),
13142 _ => Err(TryFromResponseError)
13143 }
13144 }
13145 }
13146
13147 #[derive(Clone, Debug, Deserialize, Serialize)]
13148 pub struct DelnetworkeventResponse {
13149 }
13150
13151 impl TryFrom<Response> for DelnetworkeventResponse {
13152 type Error = super::TryFromResponseError;
13153
13154 fn try_from(response: Response) -> Result<Self, Self::Error> {
13155 match response {
13156 Response::DelNetworkEvent(response) => Ok(response),
13157 _ => Err(TryFromResponseError)
13158 }
13159 }
13160 }
13161
13162 #[derive(Clone, Debug, Deserialize, Serialize)]
13163 pub struct ClnrestregisterpathResponse {
13164 }
13165
13166 impl TryFrom<Response> for ClnrestregisterpathResponse {
13167 type Error = super::TryFromResponseError;
13168
13169 fn try_from(response: Response) -> Result<Self, Self::Error> {
13170 match response {
13171 Response::ClnrestRegisterPath(response) => Ok(response),
13172 _ => Err(TryFromResponseError)
13173 }
13174 }
13175 }
13176
13177 #[derive(Clone, Debug, Deserialize, Serialize)]
13178 pub struct ListcurrencyratesCurrencyrates {
13179 pub amount: f64,
13180 pub source: String,
13181 }
13182
13183 #[derive(Clone, Debug, Deserialize, Serialize)]
13184 pub struct ListcurrencyratesResponse {
13185 pub currencyrates: Vec<ListcurrencyratesCurrencyrates>,
13186 }
13187
13188 impl TryFrom<Response> for ListcurrencyratesResponse {
13189 type Error = super::TryFromResponseError;
13190
13191 fn try_from(response: Response) -> Result<Self, Self::Error> {
13192 match response {
13193 Response::ListCurrencyRates(response) => Ok(response),
13194 _ => Err(TryFromResponseError)
13195 }
13196 }
13197 }
13198
13199 #[derive(Clone, Debug, Deserialize, Serialize)]
13200 pub struct CurrencyconvertResponse {
13201 pub msat: Amount,
13202 }
13203
13204 impl TryFrom<Response> for CurrencyconvertResponse {
13205 type Error = super::TryFromResponseError;
13206
13207 fn try_from(response: Response) -> Result<Self, Self::Error> {
13208 match response {
13209 Response::CurrencyConvert(response) => Ok(response),
13210 _ => Err(TryFromResponseError)
13211 }
13212 }
13213 }
13214
13215 #[derive(Clone, Debug, Deserialize, Serialize)]
13216 pub struct CurrencyrateResponse {
13217 pub rate: f64,
13218 }
13219
13220 impl TryFrom<Response> for CurrencyrateResponse {
13221 type Error = super::TryFromResponseError;
13222
13223 fn try_from(response: Response) -> Result<Self, Self::Error> {
13224 match response {
13225 Response::CurrencyRate(response) => Ok(response),
13226 _ => Err(TryFromResponseError)
13227 }
13228 }
13229 }
13230
13231 #[derive(Clone, Debug, Deserialize, Serialize)]
13232 pub struct SendamountResponse {
13233 pub amount_msat: Amount,
13234 pub amount_sent_msat: Amount,
13235 pub failed_parts: u64,
13236 pub payment_preimage: Secret,
13237 pub successful_parts: u64,
13238 }
13239
13240 impl TryFrom<Response> for SendamountResponse {
13241 type Error = super::TryFromResponseError;
13242
13243 fn try_from(response: Response) -> Result<Self, Self::Error> {
13244 match response {
13245 Response::SendAmount(response) => Ok(response),
13246 _ => Err(TryFromResponseError)
13247 }
13248 }
13249 }
13250
13251 #[derive(Clone, Debug, Deserialize, Serialize)]
13252 pub struct CreateproofProofs {
13253 pub bolt12: String,
13254 pub invoice_fields_included: Vec<ProofField>,
13255 pub invreq_fields_included: Vec<ProofField>,
13256 pub offer_fields_included: Vec<ProofField>,
13257 }
13258
13259 #[derive(Clone, Debug, Deserialize, Serialize)]
13260 pub struct CreateproofResponse {
13261 pub proofs: Vec<CreateproofProofs>,
13262 }
13263
13264 impl TryFrom<Response> for CreateproofResponse {
13265 type Error = super::TryFromResponseError;
13266
13267 fn try_from(response: Response) -> Result<Self, Self::Error> {
13268 match response {
13269 Response::CreateProof(response) => Ok(response),
13270 _ => Err(TryFromResponseError)
13271 }
13272 }
13273 }
13274
13275 #[derive(Clone, Debug, Deserialize, Serialize)]
13276 pub struct XkeysendResponse {
13277 pub amount_msat: Amount,
13278 pub amount_sent_msat: Amount,
13279 pub failed_parts: u64,
13280 pub payment_preimage: Secret,
13281 pub successful_parts: u64,
13282 }
13283
13284 impl TryFrom<Response> for XkeysendResponse {
13285 type Error = super::TryFromResponseError;
13286
13287 fn try_from(response: Response) -> Result<Self, Self::Error> {
13288 match response {
13289 Response::Xkeysend(response) => Ok(response),
13290 _ => Err(TryFromResponseError)
13291 }
13292 }
13293 }
13294
13295 #[derive(Clone, Debug, Deserialize, Serialize)]
13296 pub struct GracefulResponse {
13297 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
13298 pub pending_htlc_expiries: Option<Vec<u32>>,
13299 #[serde(skip_serializing_if = "crate::is_none_or_empty")]
13300 pub pending_peers: Option<Vec<PublicKey>>,
13301 }
13302
13303 impl TryFrom<Response> for GracefulResponse {
13304 type Error = super::TryFromResponseError;
13305
13306 fn try_from(response: Response) -> Result<Self, Self::Error> {
13307 match response {
13308 Response::Graceful(response) => Ok(response),
13309 _ => Err(TryFromResponseError)
13310 }
13311 }
13312 }
13313
13314}
13315