glclient.rpc

  1# This file was generated by `genrpcstubs` from the CLN JSON-Schema.
  2# Do not edit this file.
  3from .tls import TlsConfig
  4from . import Credentials
  5from . import glclient as native
  6import logging
  7from pyln import grpc as clnpb
  8
  9
 10class Node(object):
 11    def __init__(
 12            self,
 13            node_id: bytes,
 14            network: str,
 15            grpc_uri: str,
 16            creds: Credentials,
 17    ):
 18        self.grpc_uri = grpc_uri
 19        self.inner = native.Node(
 20            node_id=node_id,
 21            grpc_uri=grpc_uri,
 22            creds=creds,
 23        )
 24        self.logger = logging.getLogger("glclient.rpc.Node")
 25
 26    def getinfo(
 27            self,
 28
 29    ):
 30        uri = "/cln.Node/Getinfo"
 31        req = clnpb.GetinfoRequest(
 32
 33        ).SerializeToString()
 34        res = clnpb.GetinfoResponse
 35        return res.FromString(
 36            bytes(self.inner.call(uri, bytes(req)))
 37        )
 38
 39    def list_peers(
 40            self,
 41            id=None,
 42            level=None
 43    ):
 44        uri = "/cln.Node/ListPeers"
 45        req = clnpb.ListpeersRequest(
 46            id=id,
 47            level=level
 48        ).SerializeToString()
 49        res = clnpb.ListpeersResponse
 50        return res.FromString(
 51            bytes(self.inner.call(uri, bytes(req)))
 52        )
 53
 54    def list_funds(
 55            self,
 56            spent=None
 57    ):
 58        uri = "/cln.Node/ListFunds"
 59        req = clnpb.ListfundsRequest(
 60            spent=spent
 61        ).SerializeToString()
 62        res = clnpb.ListfundsResponse
 63        return res.FromString(
 64            bytes(self.inner.call(uri, bytes(req)))
 65        )
 66
 67    def send_pay(
 68            self,
 69            route,
 70            payment_hash,
 71            label=None,
 72            amount_msat=None,
 73            bolt11=None,
 74            payment_secret=None,
 75            partid=None,
 76            localinvreqid=None,
 77            groupid=None
 78    ):
 79        uri = "/cln.Node/SendPay"
 80        req = clnpb.SendpayRequest(
 81            route=route,
 82            payment_hash=payment_hash,
 83            label=label,
 84            amount_msat=amount_msat,
 85            bolt11=bolt11,
 86            payment_secret=payment_secret,
 87            partid=partid,
 88            localinvreqid=localinvreqid,
 89            groupid=groupid
 90        ).SerializeToString()
 91        res = clnpb.SendpayResponse
 92        return res.FromString(
 93            bytes(self.inner.call(uri, bytes(req)))
 94        )
 95
 96    def list_channels(
 97            self,
 98            short_channel_id=None,
 99            source=None,
100            destination=None
101    ):
102        uri = "/cln.Node/ListChannels"
103        req = clnpb.ListchannelsRequest(
104            short_channel_id=short_channel_id,
105            source=source,
106            destination=destination
107        ).SerializeToString()
108        res = clnpb.ListchannelsResponse
109        return res.FromString(
110            bytes(self.inner.call(uri, bytes(req)))
111        )
112
113    def list_closed_channels(
114            self,
115            id=None,
116    ):
117        uri = "/cln.Node/ListClosedChannels"
118        req = clnpb.ListchannelsRequest(
119            id=id,
120        ).SerializeToString()
121        res = clnpb.ListclosedchannelsResponse
122        return res.FromString(
123            bytes(self.inner.call(uri, bytes(req)))
124        )
125
126    def add_gossip(
127            self,
128            message
129    ):
130        uri = "/cln.Node/AddGossip"
131        req = clnpb.AddgossipRequest(
132            message=message
133        ).SerializeToString()
134        res = clnpb.AddgossipResponse
135        return res.FromString(
136            bytes(self.inner.call(uri, bytes(req)))
137        )
138
139    def auto_clean_invoice(
140            self,
141            expired_by=None,
142            cycle_seconds=None
143    ):
144        uri = "/cln.Node/AutoCleanInvoice"
145        req = clnpb.AutocleaninvoiceRequest(
146            expired_by=expired_by,
147            cycle_seconds=cycle_seconds
148        ).SerializeToString()
149        res = clnpb.AutocleaninvoiceResponse
150        return res.FromString(
151            bytes(self.inner.call(uri, bytes(req)))
152        )
153
154    def check_message(
155            self,
156            message,
157            zbase,
158            pubkey=None
159    ):
160        uri = "/cln.Node/CheckMessage"
161        req = clnpb.CheckmessageRequest(
162            message=message,
163            zbase=zbase,
164            pubkey=pubkey
165        ).SerializeToString()
166        res = clnpb.CheckmessageResponse
167        return res.FromString(
168            bytes(self.inner.call(uri, bytes(req)))
169        )
170
171    def close(
172            self,
173            id,
174            unilateraltimeout=None,
175            destination=None,
176            fee_negotiation_step=None,
177            wrong_funding=None,
178            force_lease_closed=None,
179            feerange=None
180    ):
181        uri = "/cln.Node/Close"
182        req = clnpb.CloseRequest(
183            id=id,
184            unilateraltimeout=unilateraltimeout,
185            destination=destination,
186            fee_negotiation_step=fee_negotiation_step,
187            wrong_funding=wrong_funding,
188            force_lease_closed=force_lease_closed,
189            feerange=feerange
190        ).SerializeToString()
191        res = clnpb.CloseResponse
192        return res.FromString(
193            bytes(self.inner.call(uri, bytes(req)))
194        )
195
196    def connect_peer(
197            self,
198            id,
199            host=None,
200            port=None
201    ):
202        uri = "/cln.Node/ConnectPeer"
203        req = clnpb.ConnectRequest(
204            id=id,
205            host=host,
206            port=port
207        ).SerializeToString()
208        res = clnpb.ConnectResponse
209        return res.FromString(
210            bytes(self.inner.call(uri, bytes(req)))
211        )
212
213    def create_invoice(
214            self,
215            invstring,
216            label,
217            preimage
218    ):
219        uri = "/cln.Node/CreateInvoice"
220        req = clnpb.CreateinvoiceRequest(
221            invstring=invstring,
222            label=label,
223            preimage=preimage
224        ).SerializeToString()
225        res = clnpb.CreateinvoiceResponse
226        return res.FromString(
227            bytes(self.inner.call(uri, bytes(req)))
228        )
229
230    def datastore(
231            self,
232            key,
233            string=None,
234            hex=None,
235            mode=None,
236            generation=None
237    ):
238        uri = "/cln.Node/Datastore"
239        req = clnpb.DatastoreRequest(
240            key=key,
241            string=string,
242            hex=hex,
243            mode=mode,
244            generation=generation
245        ).SerializeToString()
246        res = clnpb.DatastoreResponse
247        return res.FromString(
248            bytes(self.inner.call(uri, bytes(req)))
249        )
250
251    def create_onion(
252            self,
253            hops,
254            assocdata,
255            session_key=None,
256            onion_size=None
257    ):
258        uri = "/cln.Node/CreateOnion"
259        req = clnpb.CreateonionRequest(
260            hops=hops,
261            assocdata=assocdata,
262            session_key=session_key,
263            onion_size=onion_size
264        ).SerializeToString()
265        res = clnpb.CreateonionResponse
266        return res.FromString(
267            bytes(self.inner.call(uri, bytes(req)))
268        )
269
270    def del_datastore(
271            self,
272            key,
273            generation=None
274    ):
275        uri = "/cln.Node/DelDatastore"
276        req = clnpb.DeldatastoreRequest(
277            key=key,
278            generation=generation
279        ).SerializeToString()
280        res = clnpb.DeldatastoreResponse
281        return res.FromString(
282            bytes(self.inner.call(uri, bytes(req)))
283        )
284
285    def del_expired_invoice(
286            self,
287            maxexpirytime=None
288    ):
289        uri = "/cln.Node/DelExpiredInvoice"
290        req = clnpb.DelexpiredinvoiceRequest(
291            maxexpirytime=maxexpirytime
292        ).SerializeToString()
293        res = clnpb.DelexpiredinvoiceResponse
294        return res.FromString(
295            bytes(self.inner.call(uri, bytes(req)))
296        )
297
298    def del_invoice(
299            self,
300            label,
301            status,
302            desconly=None
303    ):
304        uri = "/cln.Node/DelInvoice"
305        req = clnpb.DelinvoiceRequest(
306            label=label,
307            status=status,
308            desconly=desconly
309        ).SerializeToString()
310        res = clnpb.DelinvoiceResponse
311        return res.FromString(
312            bytes(self.inner.call(uri, bytes(req)))
313        )
314
315    def invoice(
316            self,
317            amount_msat,
318            description,
319            label,
320            expiry=None,
321            fallbacks=None,
322            preimage=None,
323            exposeprivatechannels=None,
324            cltv=None,
325            deschashonly=None
326    ):
327        uri = "/cln.Node/Invoice"
328        req = clnpb.InvoiceRequest(
329            amount_msat=amount_msat,
330            description=description,
331            label=label,
332            expiry=expiry,
333            fallbacks=fallbacks,
334            preimage=preimage,
335            exposeprivatechannels=exposeprivatechannels,
336            cltv=cltv,
337            deschashonly=deschashonly
338        ).SerializeToString()
339        res = clnpb.InvoiceResponse
340        return res.FromString(
341            bytes(self.inner.call(uri, bytes(req)))
342        )
343
344    def list_datastore(
345            self,
346            key=None
347    ):
348        uri = "/cln.Node/ListDatastore"
349        req = clnpb.ListdatastoreRequest(
350            key=key
351        ).SerializeToString()
352        res = clnpb.ListdatastoreResponse
353        return res.FromString(
354            bytes(self.inner.call(uri, bytes(req)))
355        )
356
357    def list_invoices(
358            self,
359            label=None,
360            invstring=None,
361            payment_hash=None,
362            offer_id=None
363    ):
364        uri = "/cln.Node/ListInvoices"
365        req = clnpb.ListinvoicesRequest(
366            label=label,
367            invstring=invstring,
368            payment_hash=payment_hash,
369            offer_id=offer_id
370        ).SerializeToString()
371        res = clnpb.ListinvoicesResponse
372        return res.FromString(
373            bytes(self.inner.call(uri, bytes(req)))
374        )
375
376    def send_onion(
377            self,
378            onion,
379            first_hop,
380            payment_hash,
381            label=None,
382            shared_secrets=None,
383            partid=None,
384            bolt11=None,
385            amount_msat=None,
386            destination=None,
387            localinvreqid=None,
388            groupid=None
389    ):
390        uri = "/cln.Node/SendOnion"
391        req = clnpb.SendonionRequest(
392            onion=onion,
393            first_hop=first_hop,
394            payment_hash=payment_hash,
395            label=label,
396            shared_secrets=shared_secrets,
397            partid=partid,
398            bolt11=bolt11,
399            amount_msat=amount_msat,
400            destination=destination,
401            localinvreqid=localinvreqid,
402            groupid=groupid
403        ).SerializeToString()
404        res = clnpb.SendonionResponse
405        return res.FromString(
406            bytes(self.inner.call(uri, bytes(req)))
407        )
408
409    def list_send_pays(
410            self,
411            bolt11=None,
412            payment_hash=None,
413            status=None
414    ):
415        uri = "/cln.Node/ListSendPays"
416        req = clnpb.ListsendpaysRequest(
417            bolt11=bolt11,
418            payment_hash=payment_hash,
419            status=status
420        ).SerializeToString()
421        res = clnpb.ListsendpaysResponse
422        return res.FromString(
423            bytes(self.inner.call(uri, bytes(req)))
424        )
425
426    def list_transactions(
427            self,
428
429    ):
430        uri = "/cln.Node/ListTransactions"
431        req = clnpb.ListtransactionsRequest(
432
433        ).SerializeToString()
434        res = clnpb.ListtransactionsResponse
435        return res.FromString(
436            bytes(self.inner.call(uri, bytes(req)))
437        )
438
439    def pay(
440            self,
441            bolt11,
442            amount_msat=None,
443            label=None,
444            riskfactor=None,
445            maxfeepercent=None,
446            retry_for=None,
447            maxdelay=None,
448            exemptfee=None,
449            localinvreqid=None,
450            exclude=None,
451            maxfee=None,
452            description=None
453    ):
454        uri = "/cln.Node/Pay"
455        req = clnpb.PayRequest(
456            bolt11=bolt11,
457            amount_msat=amount_msat,
458            label=label,
459            riskfactor=riskfactor,
460            maxfeepercent=maxfeepercent,
461            retry_for=retry_for,
462            maxdelay=maxdelay,
463            exemptfee=exemptfee,
464            localinvreqid=localinvreqid,
465            exclude=exclude,
466            maxfee=maxfee,
467            description=description
468        ).SerializeToString()
469        res = clnpb.PayResponse
470        return res.FromString(
471            bytes(self.inner.call(uri, bytes(req)))
472        )
473
474    def list_nodes(
475            self,
476            id=None
477    ):
478        uri = "/cln.Node/ListNodes"
479        req = clnpb.ListnodesRequest(
480            id=id
481        ).SerializeToString()
482        res = clnpb.ListnodesResponse
483        return res.FromString(
484            bytes(self.inner.call(uri, bytes(req)))
485        )
486
487    def wait_any_invoice(
488            self,
489            lastpay_index=None,
490            timeout=None
491    ):
492        uri = "/cln.Node/WaitAnyInvoice"
493        req = clnpb.WaitanyinvoiceRequest(
494            lastpay_index=lastpay_index,
495            timeout=timeout
496        ).SerializeToString()
497        res = clnpb.WaitanyinvoiceResponse
498        return res.FromString(
499            bytes(self.inner.call(uri, bytes(req)))
500        )
501
502    def wait_invoice(
503            self,
504            label
505    ):
506        uri = "/cln.Node/WaitInvoice"
507        req = clnpb.WaitinvoiceRequest(
508            label=label
509        ).SerializeToString()
510        res = clnpb.WaitinvoiceResponse
511        return res.FromString(
512            bytes(self.inner.call(uri, bytes(req)))
513        )
514
515    def wait_send_pay(
516            self,
517            payment_hash,
518            timeout=None,
519            partid=None,
520            groupid=None
521    ):
522        uri = "/cln.Node/WaitSendPay"
523        req = clnpb.WaitsendpayRequest(
524            payment_hash=payment_hash,
525            timeout=timeout,
526            partid=partid,
527            groupid=groupid
528        ).SerializeToString()
529        res = clnpb.WaitsendpayResponse
530        return res.FromString(
531            bytes(self.inner.call(uri, bytes(req)))
532        )
533
534    def new_addr(
535            self,
536            addresstype=None
537    ):
538        uri = "/cln.Node/NewAddr"
539        req = clnpb.NewaddrRequest(
540            addresstype=addresstype
541        ).SerializeToString()
542        res = clnpb.NewaddrResponse
543        return res.FromString(
544            bytes(self.inner.call(uri, bytes(req)))
545        )
546
547    def withdraw(
548            self,
549            destination,
550            satoshi=None,
551            feerate=None,
552            minconf=None,
553            utxos=None
554    ):
555        uri = "/cln.Node/Withdraw"
556        req = clnpb.WithdrawRequest(
557            destination=destination,
558            satoshi=satoshi,
559            feerate=feerate,
560            minconf=minconf,
561            utxos=utxos
562        ).SerializeToString()
563        res = clnpb.WithdrawResponse
564        return res.FromString(
565            bytes(self.inner.call(uri, bytes(req)))
566        )
567
568    def key_send(
569            self,
570            destination,
571            amount_msat,
572            label=None,
573            maxfeepercent=None,
574            retry_for=None,
575            maxdelay=None,
576            exemptfee=None,
577            routehints=None,
578            extratlvs=None
579    ):
580        uri = "/cln.Node/KeySend"
581        req = clnpb.KeysendRequest(
582            destination=destination,
583            amount_msat=amount_msat,
584            label=label,
585            maxfeepercent=maxfeepercent,
586            retry_for=retry_for,
587            maxdelay=maxdelay,
588            exemptfee=exemptfee,
589            routehints=routehints,
590            extratlvs=extratlvs
591        ).SerializeToString()
592        res = clnpb.KeysendResponse
593        return res.FromString(
594            bytes(self.inner.call(uri, bytes(req)))
595        )
596
597    def fund_psbt(
598            self,
599            satoshi,
600            feerate,
601            startweight,
602            minconf=None,
603            reserve=None,
604            locktime=None,
605            min_witness_weight=None,
606            excess_as_change=None
607    ):
608        uri = "/cln.Node/FundPsbt"
609        req = clnpb.FundpsbtRequest(
610            satoshi=satoshi,
611            feerate=feerate,
612            startweight=startweight,
613            minconf=minconf,
614            reserve=reserve,
615            locktime=locktime,
616            min_witness_weight=min_witness_weight,
617            excess_as_change=excess_as_change
618        ).SerializeToString()
619        res = clnpb.FundpsbtResponse
620        return res.FromString(
621            bytes(self.inner.call(uri, bytes(req)))
622        )
623
624    def send_psbt(
625            self,
626            psbt,
627            reserve=None
628    ):
629        uri = "/cln.Node/SendPsbt"
630        req = clnpb.SendpsbtRequest(
631            psbt=psbt,
632            reserve=reserve
633        ).SerializeToString()
634        res = clnpb.SendpsbtResponse
635        return res.FromString(
636            bytes(self.inner.call(uri, bytes(req)))
637        )
638
639    def sign_psbt(
640            self,
641            psbt,
642            signonly=None
643    ):
644        uri = "/cln.Node/SignPsbt"
645        req = clnpb.SignpsbtRequest(
646            psbt=psbt,
647            signonly=signonly
648        ).SerializeToString()
649        res = clnpb.SignpsbtResponse
650        return res.FromString(
651            bytes(self.inner.call(uri, bytes(req)))
652        )
653
654    def utxo_psbt(
655            self,
656            satoshi,
657            feerate,
658            startweight,
659            utxos,
660            reserve=None,
661            reservedok=None,
662            locktime=None,
663            min_witness_weight=None,
664            excess_as_change=None
665    ):
666        uri = "/cln.Node/UtxoPsbt"
667        req = clnpb.UtxopsbtRequest(
668            satoshi=satoshi,
669            feerate=feerate,
670            startweight=startweight,
671            utxos=utxos,
672            reserve=reserve,
673            reservedok=reservedok,
674            locktime=locktime,
675            min_witness_weight=min_witness_weight,
676            excess_as_change=excess_as_change
677        ).SerializeToString()
678        res = clnpb.UtxopsbtResponse
679        return res.FromString(
680            bytes(self.inner.call(uri, bytes(req)))
681        )
682
683    def tx_discard(
684            self,
685            txid
686    ):
687        uri = "/cln.Node/TxDiscard"
688        req = clnpb.TxdiscardRequest(
689            txid=txid
690        ).SerializeToString()
691        res = clnpb.TxdiscardResponse
692        return res.FromString(
693            bytes(self.inner.call(uri, bytes(req)))
694        )
695
696    def tx_prepare(
697            self,
698            outputs,
699            feerate=None,
700            minconf=None,
701            utxos=None
702    ):
703        uri = "/cln.Node/TxPrepare"
704        req = clnpb.TxprepareRequest(
705            outputs=outputs,
706            feerate=feerate,
707            minconf=minconf,
708            utxos=utxos
709        ).SerializeToString()
710        res = clnpb.TxprepareResponse
711        return res.FromString(
712            bytes(self.inner.call(uri, bytes(req)))
713        )
714
715    def tx_send(
716            self,
717            txid
718    ):
719        uri = "/cln.Node/TxSend"
720        req = clnpb.TxsendRequest(
721            txid=txid
722        ).SerializeToString()
723        res = clnpb.TxsendResponse
724        return res.FromString(
725            bytes(self.inner.call(uri, bytes(req)))
726        )
727
728    def disconnect(
729            self,
730            id,
731            force=None
732    ):
733        uri = "/cln.Node/Disconnect"
734        req = clnpb.DisconnectRequest(
735            id=id,
736            force=force
737        ).SerializeToString()
738        res = clnpb.DisconnectResponse
739        return res.FromString(
740            bytes(self.inner.call(uri, bytes(req)))
741        )
742
743    def feerates(
744            self,
745            style
746    ):
747        uri = "/cln.Node/Feerates"
748        req = clnpb.FeeratesRequest(
749            style=style
750        ).SerializeToString()
751        res = clnpb.FeeratesResponse
752        return res.FromString(
753            bytes(self.inner.call(uri, bytes(req)))
754        )
755
756    def fund_channel_cancel(
757            self,
758            id
759    ):
760        uri = "/cln.Node/FundChannelCancel"
761        req = clnpb.FundchannelcancelRequest(
762            id=id
763        ).SerializeToString()
764        res = clnpb.FundchannelcancelResponse
765        return res.FromString(
766            bytes(self.inner.call(uri, bytes(req)))
767        )
768
769    def fund_channel_complete(
770            self,
771            id,
772            psbt
773    ):
774        uri = "/cln.Node/FundChannelComplete"
775        req = clnpb.FundchannelcompleteRequest(
776            id=id,
777            psbt=psbt
778        ).SerializeToString()
779        res = clnpb.FundchannelcompleteResponse
780        return res.FromString(
781            bytes(self.inner.call(uri, bytes(req)))
782        )
783
784    def fund_channel(
785            self,
786            id,
787            amount,
788            feerate=None,
789            announce=None,
790            minconf=None,
791            push_msat=None,
792            close_to=None,
793            request_amt=None,
794            compact_lease=None,
795            utxos=None,
796            mindepth=None,
797            reserve=None
798    ):
799        uri = "/cln.Node/FundChannel"
800        req = clnpb.FundchannelRequest(
801            id=id,
802            amount=amount,
803            feerate=feerate,
804            announce=announce,
805            minconf=minconf,
806            push_msat=push_msat,
807            close_to=close_to,
808            request_amt=request_amt,
809            compact_lease=compact_lease,
810            utxos=utxos,
811            mindepth=mindepth,
812            reserve=reserve
813        ).SerializeToString()
814        res = clnpb.FundchannelResponse
815        return res.FromString(
816            bytes(self.inner.call(uri, bytes(req)))
817        )
818
819    def fund_channel_start(
820            self,
821            id,
822            amount,
823            feerate=None,
824            announce=None,
825            close_to=None,
826            push_msat=None
827    ):
828        uri = "/cln.Node/FundChannelStart"
829        req = clnpb.FundchannelstartRequest(
830            id=id,
831            amount=amount,
832            feerate=feerate,
833            announce=announce,
834            close_to=close_to,
835            push_msat=push_msat
836        ).SerializeToString()
837        res = clnpb.FundchannelstartResponse
838        return res.FromString(
839            bytes(self.inner.call(uri, bytes(req)))
840        )
841
842    def get_route(
843            self,
844            id,
845            amount_msat,
846            riskfactor,
847            cltv=None,
848            fromid=None,
849            fuzzpercent=None,
850            exclude=None,
851            maxhops=None
852    ):
853        uri = "/cln.Node/GetRoute"
854        req = clnpb.GetrouteRequest(
855            id=id,
856            amount_msat=amount_msat,
857            riskfactor=riskfactor,
858            cltv=cltv,
859            fromid=fromid,
860            fuzzpercent=fuzzpercent,
861            exclude=exclude,
862            maxhops=maxhops
863        ).SerializeToString()
864        res = clnpb.GetrouteResponse
865        return res.FromString(
866            bytes(self.inner.call(uri, bytes(req)))
867        )
868
869    def list_forwards(
870            self,
871            status=None,
872            in_channel=None,
873            out_channel=None
874    ):
875        uri = "/cln.Node/ListForwards"
876        req = clnpb.ListforwardsRequest(
877            status=status,
878            in_channel=in_channel,
879            out_channel=out_channel
880        ).SerializeToString()
881        res = clnpb.ListforwardsResponse
882        return res.FromString(
883            bytes(self.inner.call(uri, bytes(req)))
884        )
885
886    def list_pays(
887            self,
888            bolt11=None,
889            payment_hash=None,
890            status=None
891    ):
892        uri = "/cln.Node/ListPays"
893        req = clnpb.ListpaysRequest(
894            bolt11=bolt11,
895            payment_hash=payment_hash,
896            status=status
897        ).SerializeToString()
898        res = clnpb.ListpaysResponse
899        return res.FromString(
900            bytes(self.inner.call(uri, bytes(req)))
901        )
902
903    def ping(
904            self,
905            id,
906            len=None,
907            pongbytes=None
908    ):
909        uri = "/cln.Node/Ping"
910        req = clnpb.PingRequest(
911            id=id,
912            len=len,
913            pongbytes=pongbytes
914        ).SerializeToString()
915        res = clnpb.PingResponse
916        return res.FromString(
917            bytes(self.inner.call(uri, bytes(req)))
918        )
919
920    def set_channel(
921            self,
922            id,
923            feebase=None,
924            feeppm=None,
925            htlcmin=None,
926            htlcmax=None,
927            enforcedelay=None
928    ):
929        uri = "/cln.Node/SetChannel"
930        req = clnpb.SetchannelRequest(
931            id=id,
932            feebase=feebase,
933            feeppm=feeppm,
934            htlcmin=htlcmin,
935            htlcmax=htlcmax,
936            enforcedelay=enforcedelay
937        ).SerializeToString()
938        res = clnpb.SetchannelResponse
939        return res.FromString(
940            bytes(self.inner.call(uri, bytes(req)))
941        )
942
943    def sign_message(
944            self,
945            message
946    ):
947        uri = "/cln.Node/SignMessage"
948        req = clnpb.SignmessageRequest(
949            message=message
950        ).SerializeToString()
951        res = clnpb.SignmessageResponse
952        return res.FromString(
953            bytes(self.inner.call(uri, bytes(req)))
954        )
955
956    def stop(
957            self,
958
959    ):
960        uri = "/cln.Node/Stop"
961        req = clnpb.StopRequest(
962
963        ).SerializeToString()
964        res = clnpb.StopResponse
965        return res.FromString(
966            bytes(self.inner.call(uri, bytes(req)))
967        )
class Node:
 11class Node(object):
 12    def __init__(
 13            self,
 14            node_id: bytes,
 15            network: str,
 16            grpc_uri: str,
 17            creds: Credentials,
 18    ):
 19        self.grpc_uri = grpc_uri
 20        self.inner = native.Node(
 21            node_id=node_id,
 22            grpc_uri=grpc_uri,
 23            creds=creds,
 24        )
 25        self.logger = logging.getLogger("glclient.rpc.Node")
 26
 27    def getinfo(
 28            self,
 29
 30    ):
 31        uri = "/cln.Node/Getinfo"
 32        req = clnpb.GetinfoRequest(
 33
 34        ).SerializeToString()
 35        res = clnpb.GetinfoResponse
 36        return res.FromString(
 37            bytes(self.inner.call(uri, bytes(req)))
 38        )
 39
 40    def list_peers(
 41            self,
 42            id=None,
 43            level=None
 44    ):
 45        uri = "/cln.Node/ListPeers"
 46        req = clnpb.ListpeersRequest(
 47            id=id,
 48            level=level
 49        ).SerializeToString()
 50        res = clnpb.ListpeersResponse
 51        return res.FromString(
 52            bytes(self.inner.call(uri, bytes(req)))
 53        )
 54
 55    def list_funds(
 56            self,
 57            spent=None
 58    ):
 59        uri = "/cln.Node/ListFunds"
 60        req = clnpb.ListfundsRequest(
 61            spent=spent
 62        ).SerializeToString()
 63        res = clnpb.ListfundsResponse
 64        return res.FromString(
 65            bytes(self.inner.call(uri, bytes(req)))
 66        )
 67
 68    def send_pay(
 69            self,
 70            route,
 71            payment_hash,
 72            label=None,
 73            amount_msat=None,
 74            bolt11=None,
 75            payment_secret=None,
 76            partid=None,
 77            localinvreqid=None,
 78            groupid=None
 79    ):
 80        uri = "/cln.Node/SendPay"
 81        req = clnpb.SendpayRequest(
 82            route=route,
 83            payment_hash=payment_hash,
 84            label=label,
 85            amount_msat=amount_msat,
 86            bolt11=bolt11,
 87            payment_secret=payment_secret,
 88            partid=partid,
 89            localinvreqid=localinvreqid,
 90            groupid=groupid
 91        ).SerializeToString()
 92        res = clnpb.SendpayResponse
 93        return res.FromString(
 94            bytes(self.inner.call(uri, bytes(req)))
 95        )
 96
 97    def list_channels(
 98            self,
 99            short_channel_id=None,
100            source=None,
101            destination=None
102    ):
103        uri = "/cln.Node/ListChannels"
104        req = clnpb.ListchannelsRequest(
105            short_channel_id=short_channel_id,
106            source=source,
107            destination=destination
108        ).SerializeToString()
109        res = clnpb.ListchannelsResponse
110        return res.FromString(
111            bytes(self.inner.call(uri, bytes(req)))
112        )
113
114    def list_closed_channels(
115            self,
116            id=None,
117    ):
118        uri = "/cln.Node/ListClosedChannels"
119        req = clnpb.ListchannelsRequest(
120            id=id,
121        ).SerializeToString()
122        res = clnpb.ListclosedchannelsResponse
123        return res.FromString(
124            bytes(self.inner.call(uri, bytes(req)))
125        )
126
127    def add_gossip(
128            self,
129            message
130    ):
131        uri = "/cln.Node/AddGossip"
132        req = clnpb.AddgossipRequest(
133            message=message
134        ).SerializeToString()
135        res = clnpb.AddgossipResponse
136        return res.FromString(
137            bytes(self.inner.call(uri, bytes(req)))
138        )
139
140    def auto_clean_invoice(
141            self,
142            expired_by=None,
143            cycle_seconds=None
144    ):
145        uri = "/cln.Node/AutoCleanInvoice"
146        req = clnpb.AutocleaninvoiceRequest(
147            expired_by=expired_by,
148            cycle_seconds=cycle_seconds
149        ).SerializeToString()
150        res = clnpb.AutocleaninvoiceResponse
151        return res.FromString(
152            bytes(self.inner.call(uri, bytes(req)))
153        )
154
155    def check_message(
156            self,
157            message,
158            zbase,
159            pubkey=None
160    ):
161        uri = "/cln.Node/CheckMessage"
162        req = clnpb.CheckmessageRequest(
163            message=message,
164            zbase=zbase,
165            pubkey=pubkey
166        ).SerializeToString()
167        res = clnpb.CheckmessageResponse
168        return res.FromString(
169            bytes(self.inner.call(uri, bytes(req)))
170        )
171
172    def close(
173            self,
174            id,
175            unilateraltimeout=None,
176            destination=None,
177            fee_negotiation_step=None,
178            wrong_funding=None,
179            force_lease_closed=None,
180            feerange=None
181    ):
182        uri = "/cln.Node/Close"
183        req = clnpb.CloseRequest(
184            id=id,
185            unilateraltimeout=unilateraltimeout,
186            destination=destination,
187            fee_negotiation_step=fee_negotiation_step,
188            wrong_funding=wrong_funding,
189            force_lease_closed=force_lease_closed,
190            feerange=feerange
191        ).SerializeToString()
192        res = clnpb.CloseResponse
193        return res.FromString(
194            bytes(self.inner.call(uri, bytes(req)))
195        )
196
197    def connect_peer(
198            self,
199            id,
200            host=None,
201            port=None
202    ):
203        uri = "/cln.Node/ConnectPeer"
204        req = clnpb.ConnectRequest(
205            id=id,
206            host=host,
207            port=port
208        ).SerializeToString()
209        res = clnpb.ConnectResponse
210        return res.FromString(
211            bytes(self.inner.call(uri, bytes(req)))
212        )
213
214    def create_invoice(
215            self,
216            invstring,
217            label,
218            preimage
219    ):
220        uri = "/cln.Node/CreateInvoice"
221        req = clnpb.CreateinvoiceRequest(
222            invstring=invstring,
223            label=label,
224            preimage=preimage
225        ).SerializeToString()
226        res = clnpb.CreateinvoiceResponse
227        return res.FromString(
228            bytes(self.inner.call(uri, bytes(req)))
229        )
230
231    def datastore(
232            self,
233            key,
234            string=None,
235            hex=None,
236            mode=None,
237            generation=None
238    ):
239        uri = "/cln.Node/Datastore"
240        req = clnpb.DatastoreRequest(
241            key=key,
242            string=string,
243            hex=hex,
244            mode=mode,
245            generation=generation
246        ).SerializeToString()
247        res = clnpb.DatastoreResponse
248        return res.FromString(
249            bytes(self.inner.call(uri, bytes(req)))
250        )
251
252    def create_onion(
253            self,
254            hops,
255            assocdata,
256            session_key=None,
257            onion_size=None
258    ):
259        uri = "/cln.Node/CreateOnion"
260        req = clnpb.CreateonionRequest(
261            hops=hops,
262            assocdata=assocdata,
263            session_key=session_key,
264            onion_size=onion_size
265        ).SerializeToString()
266        res = clnpb.CreateonionResponse
267        return res.FromString(
268            bytes(self.inner.call(uri, bytes(req)))
269        )
270
271    def del_datastore(
272            self,
273            key,
274            generation=None
275    ):
276        uri = "/cln.Node/DelDatastore"
277        req = clnpb.DeldatastoreRequest(
278            key=key,
279            generation=generation
280        ).SerializeToString()
281        res = clnpb.DeldatastoreResponse
282        return res.FromString(
283            bytes(self.inner.call(uri, bytes(req)))
284        )
285
286    def del_expired_invoice(
287            self,
288            maxexpirytime=None
289    ):
290        uri = "/cln.Node/DelExpiredInvoice"
291        req = clnpb.DelexpiredinvoiceRequest(
292            maxexpirytime=maxexpirytime
293        ).SerializeToString()
294        res = clnpb.DelexpiredinvoiceResponse
295        return res.FromString(
296            bytes(self.inner.call(uri, bytes(req)))
297        )
298
299    def del_invoice(
300            self,
301            label,
302            status,
303            desconly=None
304    ):
305        uri = "/cln.Node/DelInvoice"
306        req = clnpb.DelinvoiceRequest(
307            label=label,
308            status=status,
309            desconly=desconly
310        ).SerializeToString()
311        res = clnpb.DelinvoiceResponse
312        return res.FromString(
313            bytes(self.inner.call(uri, bytes(req)))
314        )
315
316    def invoice(
317            self,
318            amount_msat,
319            description,
320            label,
321            expiry=None,
322            fallbacks=None,
323            preimage=None,
324            exposeprivatechannels=None,
325            cltv=None,
326            deschashonly=None
327    ):
328        uri = "/cln.Node/Invoice"
329        req = clnpb.InvoiceRequest(
330            amount_msat=amount_msat,
331            description=description,
332            label=label,
333            expiry=expiry,
334            fallbacks=fallbacks,
335            preimage=preimage,
336            exposeprivatechannels=exposeprivatechannels,
337            cltv=cltv,
338            deschashonly=deschashonly
339        ).SerializeToString()
340        res = clnpb.InvoiceResponse
341        return res.FromString(
342            bytes(self.inner.call(uri, bytes(req)))
343        )
344
345    def list_datastore(
346            self,
347            key=None
348    ):
349        uri = "/cln.Node/ListDatastore"
350        req = clnpb.ListdatastoreRequest(
351            key=key
352        ).SerializeToString()
353        res = clnpb.ListdatastoreResponse
354        return res.FromString(
355            bytes(self.inner.call(uri, bytes(req)))
356        )
357
358    def list_invoices(
359            self,
360            label=None,
361            invstring=None,
362            payment_hash=None,
363            offer_id=None
364    ):
365        uri = "/cln.Node/ListInvoices"
366        req = clnpb.ListinvoicesRequest(
367            label=label,
368            invstring=invstring,
369            payment_hash=payment_hash,
370            offer_id=offer_id
371        ).SerializeToString()
372        res = clnpb.ListinvoicesResponse
373        return res.FromString(
374            bytes(self.inner.call(uri, bytes(req)))
375        )
376
377    def send_onion(
378            self,
379            onion,
380            first_hop,
381            payment_hash,
382            label=None,
383            shared_secrets=None,
384            partid=None,
385            bolt11=None,
386            amount_msat=None,
387            destination=None,
388            localinvreqid=None,
389            groupid=None
390    ):
391        uri = "/cln.Node/SendOnion"
392        req = clnpb.SendonionRequest(
393            onion=onion,
394            first_hop=first_hop,
395            payment_hash=payment_hash,
396            label=label,
397            shared_secrets=shared_secrets,
398            partid=partid,
399            bolt11=bolt11,
400            amount_msat=amount_msat,
401            destination=destination,
402            localinvreqid=localinvreqid,
403            groupid=groupid
404        ).SerializeToString()
405        res = clnpb.SendonionResponse
406        return res.FromString(
407            bytes(self.inner.call(uri, bytes(req)))
408        )
409
410    def list_send_pays(
411            self,
412            bolt11=None,
413            payment_hash=None,
414            status=None
415    ):
416        uri = "/cln.Node/ListSendPays"
417        req = clnpb.ListsendpaysRequest(
418            bolt11=bolt11,
419            payment_hash=payment_hash,
420            status=status
421        ).SerializeToString()
422        res = clnpb.ListsendpaysResponse
423        return res.FromString(
424            bytes(self.inner.call(uri, bytes(req)))
425        )
426
427    def list_transactions(
428            self,
429
430    ):
431        uri = "/cln.Node/ListTransactions"
432        req = clnpb.ListtransactionsRequest(
433
434        ).SerializeToString()
435        res = clnpb.ListtransactionsResponse
436        return res.FromString(
437            bytes(self.inner.call(uri, bytes(req)))
438        )
439
440    def pay(
441            self,
442            bolt11,
443            amount_msat=None,
444            label=None,
445            riskfactor=None,
446            maxfeepercent=None,
447            retry_for=None,
448            maxdelay=None,
449            exemptfee=None,
450            localinvreqid=None,
451            exclude=None,
452            maxfee=None,
453            description=None
454    ):
455        uri = "/cln.Node/Pay"
456        req = clnpb.PayRequest(
457            bolt11=bolt11,
458            amount_msat=amount_msat,
459            label=label,
460            riskfactor=riskfactor,
461            maxfeepercent=maxfeepercent,
462            retry_for=retry_for,
463            maxdelay=maxdelay,
464            exemptfee=exemptfee,
465            localinvreqid=localinvreqid,
466            exclude=exclude,
467            maxfee=maxfee,
468            description=description
469        ).SerializeToString()
470        res = clnpb.PayResponse
471        return res.FromString(
472            bytes(self.inner.call(uri, bytes(req)))
473        )
474
475    def list_nodes(
476            self,
477            id=None
478    ):
479        uri = "/cln.Node/ListNodes"
480        req = clnpb.ListnodesRequest(
481            id=id
482        ).SerializeToString()
483        res = clnpb.ListnodesResponse
484        return res.FromString(
485            bytes(self.inner.call(uri, bytes(req)))
486        )
487
488    def wait_any_invoice(
489            self,
490            lastpay_index=None,
491            timeout=None
492    ):
493        uri = "/cln.Node/WaitAnyInvoice"
494        req = clnpb.WaitanyinvoiceRequest(
495            lastpay_index=lastpay_index,
496            timeout=timeout
497        ).SerializeToString()
498        res = clnpb.WaitanyinvoiceResponse
499        return res.FromString(
500            bytes(self.inner.call(uri, bytes(req)))
501        )
502
503    def wait_invoice(
504            self,
505            label
506    ):
507        uri = "/cln.Node/WaitInvoice"
508        req = clnpb.WaitinvoiceRequest(
509            label=label
510        ).SerializeToString()
511        res = clnpb.WaitinvoiceResponse
512        return res.FromString(
513            bytes(self.inner.call(uri, bytes(req)))
514        )
515
516    def wait_send_pay(
517            self,
518            payment_hash,
519            timeout=None,
520            partid=None,
521            groupid=None
522    ):
523        uri = "/cln.Node/WaitSendPay"
524        req = clnpb.WaitsendpayRequest(
525            payment_hash=payment_hash,
526            timeout=timeout,
527            partid=partid,
528            groupid=groupid
529        ).SerializeToString()
530        res = clnpb.WaitsendpayResponse
531        return res.FromString(
532            bytes(self.inner.call(uri, bytes(req)))
533        )
534
535    def new_addr(
536            self,
537            addresstype=None
538    ):
539        uri = "/cln.Node/NewAddr"
540        req = clnpb.NewaddrRequest(
541            addresstype=addresstype
542        ).SerializeToString()
543        res = clnpb.NewaddrResponse
544        return res.FromString(
545            bytes(self.inner.call(uri, bytes(req)))
546        )
547
548    def withdraw(
549            self,
550            destination,
551            satoshi=None,
552            feerate=None,
553            minconf=None,
554            utxos=None
555    ):
556        uri = "/cln.Node/Withdraw"
557        req = clnpb.WithdrawRequest(
558            destination=destination,
559            satoshi=satoshi,
560            feerate=feerate,
561            minconf=minconf,
562            utxos=utxos
563        ).SerializeToString()
564        res = clnpb.WithdrawResponse
565        return res.FromString(
566            bytes(self.inner.call(uri, bytes(req)))
567        )
568
569    def key_send(
570            self,
571            destination,
572            amount_msat,
573            label=None,
574            maxfeepercent=None,
575            retry_for=None,
576            maxdelay=None,
577            exemptfee=None,
578            routehints=None,
579            extratlvs=None
580    ):
581        uri = "/cln.Node/KeySend"
582        req = clnpb.KeysendRequest(
583            destination=destination,
584            amount_msat=amount_msat,
585            label=label,
586            maxfeepercent=maxfeepercent,
587            retry_for=retry_for,
588            maxdelay=maxdelay,
589            exemptfee=exemptfee,
590            routehints=routehints,
591            extratlvs=extratlvs
592        ).SerializeToString()
593        res = clnpb.KeysendResponse
594        return res.FromString(
595            bytes(self.inner.call(uri, bytes(req)))
596        )
597
598    def fund_psbt(
599            self,
600            satoshi,
601            feerate,
602            startweight,
603            minconf=None,
604            reserve=None,
605            locktime=None,
606            min_witness_weight=None,
607            excess_as_change=None
608    ):
609        uri = "/cln.Node/FundPsbt"
610        req = clnpb.FundpsbtRequest(
611            satoshi=satoshi,
612            feerate=feerate,
613            startweight=startweight,
614            minconf=minconf,
615            reserve=reserve,
616            locktime=locktime,
617            min_witness_weight=min_witness_weight,
618            excess_as_change=excess_as_change
619        ).SerializeToString()
620        res = clnpb.FundpsbtResponse
621        return res.FromString(
622            bytes(self.inner.call(uri, bytes(req)))
623        )
624
625    def send_psbt(
626            self,
627            psbt,
628            reserve=None
629    ):
630        uri = "/cln.Node/SendPsbt"
631        req = clnpb.SendpsbtRequest(
632            psbt=psbt,
633            reserve=reserve
634        ).SerializeToString()
635        res = clnpb.SendpsbtResponse
636        return res.FromString(
637            bytes(self.inner.call(uri, bytes(req)))
638        )
639
640    def sign_psbt(
641            self,
642            psbt,
643            signonly=None
644    ):
645        uri = "/cln.Node/SignPsbt"
646        req = clnpb.SignpsbtRequest(
647            psbt=psbt,
648            signonly=signonly
649        ).SerializeToString()
650        res = clnpb.SignpsbtResponse
651        return res.FromString(
652            bytes(self.inner.call(uri, bytes(req)))
653        )
654
655    def utxo_psbt(
656            self,
657            satoshi,
658            feerate,
659            startweight,
660            utxos,
661            reserve=None,
662            reservedok=None,
663            locktime=None,
664            min_witness_weight=None,
665            excess_as_change=None
666    ):
667        uri = "/cln.Node/UtxoPsbt"
668        req = clnpb.UtxopsbtRequest(
669            satoshi=satoshi,
670            feerate=feerate,
671            startweight=startweight,
672            utxos=utxos,
673            reserve=reserve,
674            reservedok=reservedok,
675            locktime=locktime,
676            min_witness_weight=min_witness_weight,
677            excess_as_change=excess_as_change
678        ).SerializeToString()
679        res = clnpb.UtxopsbtResponse
680        return res.FromString(
681            bytes(self.inner.call(uri, bytes(req)))
682        )
683
684    def tx_discard(
685            self,
686            txid
687    ):
688        uri = "/cln.Node/TxDiscard"
689        req = clnpb.TxdiscardRequest(
690            txid=txid
691        ).SerializeToString()
692        res = clnpb.TxdiscardResponse
693        return res.FromString(
694            bytes(self.inner.call(uri, bytes(req)))
695        )
696
697    def tx_prepare(
698            self,
699            outputs,
700            feerate=None,
701            minconf=None,
702            utxos=None
703    ):
704        uri = "/cln.Node/TxPrepare"
705        req = clnpb.TxprepareRequest(
706            outputs=outputs,
707            feerate=feerate,
708            minconf=minconf,
709            utxos=utxos
710        ).SerializeToString()
711        res = clnpb.TxprepareResponse
712        return res.FromString(
713            bytes(self.inner.call(uri, bytes(req)))
714        )
715
716    def tx_send(
717            self,
718            txid
719    ):
720        uri = "/cln.Node/TxSend"
721        req = clnpb.TxsendRequest(
722            txid=txid
723        ).SerializeToString()
724        res = clnpb.TxsendResponse
725        return res.FromString(
726            bytes(self.inner.call(uri, bytes(req)))
727        )
728
729    def disconnect(
730            self,
731            id,
732            force=None
733    ):
734        uri = "/cln.Node/Disconnect"
735        req = clnpb.DisconnectRequest(
736            id=id,
737            force=force
738        ).SerializeToString()
739        res = clnpb.DisconnectResponse
740        return res.FromString(
741            bytes(self.inner.call(uri, bytes(req)))
742        )
743
744    def feerates(
745            self,
746            style
747    ):
748        uri = "/cln.Node/Feerates"
749        req = clnpb.FeeratesRequest(
750            style=style
751        ).SerializeToString()
752        res = clnpb.FeeratesResponse
753        return res.FromString(
754            bytes(self.inner.call(uri, bytes(req)))
755        )
756
757    def fund_channel_cancel(
758            self,
759            id
760    ):
761        uri = "/cln.Node/FundChannelCancel"
762        req = clnpb.FundchannelcancelRequest(
763            id=id
764        ).SerializeToString()
765        res = clnpb.FundchannelcancelResponse
766        return res.FromString(
767            bytes(self.inner.call(uri, bytes(req)))
768        )
769
770    def fund_channel_complete(
771            self,
772            id,
773            psbt
774    ):
775        uri = "/cln.Node/FundChannelComplete"
776        req = clnpb.FundchannelcompleteRequest(
777            id=id,
778            psbt=psbt
779        ).SerializeToString()
780        res = clnpb.FundchannelcompleteResponse
781        return res.FromString(
782            bytes(self.inner.call(uri, bytes(req)))
783        )
784
785    def fund_channel(
786            self,
787            id,
788            amount,
789            feerate=None,
790            announce=None,
791            minconf=None,
792            push_msat=None,
793            close_to=None,
794            request_amt=None,
795            compact_lease=None,
796            utxos=None,
797            mindepth=None,
798            reserve=None
799    ):
800        uri = "/cln.Node/FundChannel"
801        req = clnpb.FundchannelRequest(
802            id=id,
803            amount=amount,
804            feerate=feerate,
805            announce=announce,
806            minconf=minconf,
807            push_msat=push_msat,
808            close_to=close_to,
809            request_amt=request_amt,
810            compact_lease=compact_lease,
811            utxos=utxos,
812            mindepth=mindepth,
813            reserve=reserve
814        ).SerializeToString()
815        res = clnpb.FundchannelResponse
816        return res.FromString(
817            bytes(self.inner.call(uri, bytes(req)))
818        )
819
820    def fund_channel_start(
821            self,
822            id,
823            amount,
824            feerate=None,
825            announce=None,
826            close_to=None,
827            push_msat=None
828    ):
829        uri = "/cln.Node/FundChannelStart"
830        req = clnpb.FundchannelstartRequest(
831            id=id,
832            amount=amount,
833            feerate=feerate,
834            announce=announce,
835            close_to=close_to,
836            push_msat=push_msat
837        ).SerializeToString()
838        res = clnpb.FundchannelstartResponse
839        return res.FromString(
840            bytes(self.inner.call(uri, bytes(req)))
841        )
842
843    def get_route(
844            self,
845            id,
846            amount_msat,
847            riskfactor,
848            cltv=None,
849            fromid=None,
850            fuzzpercent=None,
851            exclude=None,
852            maxhops=None
853    ):
854        uri = "/cln.Node/GetRoute"
855        req = clnpb.GetrouteRequest(
856            id=id,
857            amount_msat=amount_msat,
858            riskfactor=riskfactor,
859            cltv=cltv,
860            fromid=fromid,
861            fuzzpercent=fuzzpercent,
862            exclude=exclude,
863            maxhops=maxhops
864        ).SerializeToString()
865        res = clnpb.GetrouteResponse
866        return res.FromString(
867            bytes(self.inner.call(uri, bytes(req)))
868        )
869
870    def list_forwards(
871            self,
872            status=None,
873            in_channel=None,
874            out_channel=None
875    ):
876        uri = "/cln.Node/ListForwards"
877        req = clnpb.ListforwardsRequest(
878            status=status,
879            in_channel=in_channel,
880            out_channel=out_channel
881        ).SerializeToString()
882        res = clnpb.ListforwardsResponse
883        return res.FromString(
884            bytes(self.inner.call(uri, bytes(req)))
885        )
886
887    def list_pays(
888            self,
889            bolt11=None,
890            payment_hash=None,
891            status=None
892    ):
893        uri = "/cln.Node/ListPays"
894        req = clnpb.ListpaysRequest(
895            bolt11=bolt11,
896            payment_hash=payment_hash,
897            status=status
898        ).SerializeToString()
899        res = clnpb.ListpaysResponse
900        return res.FromString(
901            bytes(self.inner.call(uri, bytes(req)))
902        )
903
904    def ping(
905            self,
906            id,
907            len=None,
908            pongbytes=None
909    ):
910        uri = "/cln.Node/Ping"
911        req = clnpb.PingRequest(
912            id=id,
913            len=len,
914            pongbytes=pongbytes
915        ).SerializeToString()
916        res = clnpb.PingResponse
917        return res.FromString(
918            bytes(self.inner.call(uri, bytes(req)))
919        )
920
921    def set_channel(
922            self,
923            id,
924            feebase=None,
925            feeppm=None,
926            htlcmin=None,
927            htlcmax=None,
928            enforcedelay=None
929    ):
930        uri = "/cln.Node/SetChannel"
931        req = clnpb.SetchannelRequest(
932            id=id,
933            feebase=feebase,
934            feeppm=feeppm,
935            htlcmin=htlcmin,
936            htlcmax=htlcmax,
937            enforcedelay=enforcedelay
938        ).SerializeToString()
939        res = clnpb.SetchannelResponse
940        return res.FromString(
941            bytes(self.inner.call(uri, bytes(req)))
942        )
943
944    def sign_message(
945            self,
946            message
947    ):
948        uri = "/cln.Node/SignMessage"
949        req = clnpb.SignmessageRequest(
950            message=message
951        ).SerializeToString()
952        res = clnpb.SignmessageResponse
953        return res.FromString(
954            bytes(self.inner.call(uri, bytes(req)))
955        )
956
957    def stop(
958            self,
959
960    ):
961        uri = "/cln.Node/Stop"
962        req = clnpb.StopRequest(
963
964        ).SerializeToString()
965        res = clnpb.StopResponse
966        return res.FromString(
967            bytes(self.inner.call(uri, bytes(req)))
968        )
Node(node_id: bytes, network: str, grpc_uri: str, creds: Credentials)
12    def __init__(
13            self,
14            node_id: bytes,
15            network: str,
16            grpc_uri: str,
17            creds: Credentials,
18    ):
19        self.grpc_uri = grpc_uri
20        self.inner = native.Node(
21            node_id=node_id,
22            grpc_uri=grpc_uri,
23            creds=creds,
24        )
25        self.logger = logging.getLogger("glclient.rpc.Node")
def getinfo(self):
27    def getinfo(
28            self,
29
30    ):
31        uri = "/cln.Node/Getinfo"
32        req = clnpb.GetinfoRequest(
33
34        ).SerializeToString()
35        res = clnpb.GetinfoResponse
36        return res.FromString(
37            bytes(self.inner.call(uri, bytes(req)))
38        )
def list_peers(self, id=None, level=None):
40    def list_peers(
41            self,
42            id=None,
43            level=None
44    ):
45        uri = "/cln.Node/ListPeers"
46        req = clnpb.ListpeersRequest(
47            id=id,
48            level=level
49        ).SerializeToString()
50        res = clnpb.ListpeersResponse
51        return res.FromString(
52            bytes(self.inner.call(uri, bytes(req)))
53        )
def list_funds(self, spent=None):
55    def list_funds(
56            self,
57            spent=None
58    ):
59        uri = "/cln.Node/ListFunds"
60        req = clnpb.ListfundsRequest(
61            spent=spent
62        ).SerializeToString()
63        res = clnpb.ListfundsResponse
64        return res.FromString(
65            bytes(self.inner.call(uri, bytes(req)))
66        )
def send_pay( self, route, payment_hash, label=None, amount_msat=None, bolt11=None, payment_secret=None, partid=None, localinvreqid=None, groupid=None):
68    def send_pay(
69            self,
70            route,
71            payment_hash,
72            label=None,
73            amount_msat=None,
74            bolt11=None,
75            payment_secret=None,
76            partid=None,
77            localinvreqid=None,
78            groupid=None
79    ):
80        uri = "/cln.Node/SendPay"
81        req = clnpb.SendpayRequest(
82            route=route,
83            payment_hash=payment_hash,
84            label=label,
85            amount_msat=amount_msat,
86            bolt11=bolt11,
87            payment_secret=payment_secret,
88            partid=partid,
89            localinvreqid=localinvreqid,
90            groupid=groupid
91        ).SerializeToString()
92        res = clnpb.SendpayResponse
93        return res.FromString(
94            bytes(self.inner.call(uri, bytes(req)))
95        )
def list_channels(self, short_channel_id=None, source=None, destination=None):
 97    def list_channels(
 98            self,
 99            short_channel_id=None,
100            source=None,
101            destination=None
102    ):
103        uri = "/cln.Node/ListChannels"
104        req = clnpb.ListchannelsRequest(
105            short_channel_id=short_channel_id,
106            source=source,
107            destination=destination
108        ).SerializeToString()
109        res = clnpb.ListchannelsResponse
110        return res.FromString(
111            bytes(self.inner.call(uri, bytes(req)))
112        )
def list_closed_channels(self, id=None):
114    def list_closed_channels(
115            self,
116            id=None,
117    ):
118        uri = "/cln.Node/ListClosedChannels"
119        req = clnpb.ListchannelsRequest(
120            id=id,
121        ).SerializeToString()
122        res = clnpb.ListclosedchannelsResponse
123        return res.FromString(
124            bytes(self.inner.call(uri, bytes(req)))
125        )
def add_gossip(self, message):
127    def add_gossip(
128            self,
129            message
130    ):
131        uri = "/cln.Node/AddGossip"
132        req = clnpb.AddgossipRequest(
133            message=message
134        ).SerializeToString()
135        res = clnpb.AddgossipResponse
136        return res.FromString(
137            bytes(self.inner.call(uri, bytes(req)))
138        )
def auto_clean_invoice(self, expired_by=None, cycle_seconds=None):
140    def auto_clean_invoice(
141            self,
142            expired_by=None,
143            cycle_seconds=None
144    ):
145        uri = "/cln.Node/AutoCleanInvoice"
146        req = clnpb.AutocleaninvoiceRequest(
147            expired_by=expired_by,
148            cycle_seconds=cycle_seconds
149        ).SerializeToString()
150        res = clnpb.AutocleaninvoiceResponse
151        return res.FromString(
152            bytes(self.inner.call(uri, bytes(req)))
153        )
def check_message(self, message, zbase, pubkey=None):
155    def check_message(
156            self,
157            message,
158            zbase,
159            pubkey=None
160    ):
161        uri = "/cln.Node/CheckMessage"
162        req = clnpb.CheckmessageRequest(
163            message=message,
164            zbase=zbase,
165            pubkey=pubkey
166        ).SerializeToString()
167        res = clnpb.CheckmessageResponse
168        return res.FromString(
169            bytes(self.inner.call(uri, bytes(req)))
170        )
def close( self, id, unilateraltimeout=None, destination=None, fee_negotiation_step=None, wrong_funding=None, force_lease_closed=None, feerange=None):
172    def close(
173            self,
174            id,
175            unilateraltimeout=None,
176            destination=None,
177            fee_negotiation_step=None,
178            wrong_funding=None,
179            force_lease_closed=None,
180            feerange=None
181    ):
182        uri = "/cln.Node/Close"
183        req = clnpb.CloseRequest(
184            id=id,
185            unilateraltimeout=unilateraltimeout,
186            destination=destination,
187            fee_negotiation_step=fee_negotiation_step,
188            wrong_funding=wrong_funding,
189            force_lease_closed=force_lease_closed,
190            feerange=feerange
191        ).SerializeToString()
192        res = clnpb.CloseResponse
193        return res.FromString(
194            bytes(self.inner.call(uri, bytes(req)))
195        )
def connect_peer(self, id, host=None, port=None):
197    def connect_peer(
198            self,
199            id,
200            host=None,
201            port=None
202    ):
203        uri = "/cln.Node/ConnectPeer"
204        req = clnpb.ConnectRequest(
205            id=id,
206            host=host,
207            port=port
208        ).SerializeToString()
209        res = clnpb.ConnectResponse
210        return res.FromString(
211            bytes(self.inner.call(uri, bytes(req)))
212        )
def create_invoice(self, invstring, label, preimage):
214    def create_invoice(
215            self,
216            invstring,
217            label,
218            preimage
219    ):
220        uri = "/cln.Node/CreateInvoice"
221        req = clnpb.CreateinvoiceRequest(
222            invstring=invstring,
223            label=label,
224            preimage=preimage
225        ).SerializeToString()
226        res = clnpb.CreateinvoiceResponse
227        return res.FromString(
228            bytes(self.inner.call(uri, bytes(req)))
229        )
def datastore(self, key, string=None, hex=None, mode=None, generation=None):
231    def datastore(
232            self,
233            key,
234            string=None,
235            hex=None,
236            mode=None,
237            generation=None
238    ):
239        uri = "/cln.Node/Datastore"
240        req = clnpb.DatastoreRequest(
241            key=key,
242            string=string,
243            hex=hex,
244            mode=mode,
245            generation=generation
246        ).SerializeToString()
247        res = clnpb.DatastoreResponse
248        return res.FromString(
249            bytes(self.inner.call(uri, bytes(req)))
250        )
def create_onion(self, hops, assocdata, session_key=None, onion_size=None):
252    def create_onion(
253            self,
254            hops,
255            assocdata,
256            session_key=None,
257            onion_size=None
258    ):
259        uri = "/cln.Node/CreateOnion"
260        req = clnpb.CreateonionRequest(
261            hops=hops,
262            assocdata=assocdata,
263            session_key=session_key,
264            onion_size=onion_size
265        ).SerializeToString()
266        res = clnpb.CreateonionResponse
267        return res.FromString(
268            bytes(self.inner.call(uri, bytes(req)))
269        )
def del_datastore(self, key, generation=None):
271    def del_datastore(
272            self,
273            key,
274            generation=None
275    ):
276        uri = "/cln.Node/DelDatastore"
277        req = clnpb.DeldatastoreRequest(
278            key=key,
279            generation=generation
280        ).SerializeToString()
281        res = clnpb.DeldatastoreResponse
282        return res.FromString(
283            bytes(self.inner.call(uri, bytes(req)))
284        )
def del_expired_invoice(self, maxexpirytime=None):
286    def del_expired_invoice(
287            self,
288            maxexpirytime=None
289    ):
290        uri = "/cln.Node/DelExpiredInvoice"
291        req = clnpb.DelexpiredinvoiceRequest(
292            maxexpirytime=maxexpirytime
293        ).SerializeToString()
294        res = clnpb.DelexpiredinvoiceResponse
295        return res.FromString(
296            bytes(self.inner.call(uri, bytes(req)))
297        )
def del_invoice(self, label, status, desconly=None):
299    def del_invoice(
300            self,
301            label,
302            status,
303            desconly=None
304    ):
305        uri = "/cln.Node/DelInvoice"
306        req = clnpb.DelinvoiceRequest(
307            label=label,
308            status=status,
309            desconly=desconly
310        ).SerializeToString()
311        res = clnpb.DelinvoiceResponse
312        return res.FromString(
313            bytes(self.inner.call(uri, bytes(req)))
314        )
def invoice( self, amount_msat, description, label, expiry=None, fallbacks=None, preimage=None, exposeprivatechannels=None, cltv=None, deschashonly=None):
316    def invoice(
317            self,
318            amount_msat,
319            description,
320            label,
321            expiry=None,
322            fallbacks=None,
323            preimage=None,
324            exposeprivatechannels=None,
325            cltv=None,
326            deschashonly=None
327    ):
328        uri = "/cln.Node/Invoice"
329        req = clnpb.InvoiceRequest(
330            amount_msat=amount_msat,
331            description=description,
332            label=label,
333            expiry=expiry,
334            fallbacks=fallbacks,
335            preimage=preimage,
336            exposeprivatechannels=exposeprivatechannels,
337            cltv=cltv,
338            deschashonly=deschashonly
339        ).SerializeToString()
340        res = clnpb.InvoiceResponse
341        return res.FromString(
342            bytes(self.inner.call(uri, bytes(req)))
343        )
def list_datastore(self, key=None):
345    def list_datastore(
346            self,
347            key=None
348    ):
349        uri = "/cln.Node/ListDatastore"
350        req = clnpb.ListdatastoreRequest(
351            key=key
352        ).SerializeToString()
353        res = clnpb.ListdatastoreResponse
354        return res.FromString(
355            bytes(self.inner.call(uri, bytes(req)))
356        )
def list_invoices(self, label=None, invstring=None, payment_hash=None, offer_id=None):
358    def list_invoices(
359            self,
360            label=None,
361            invstring=None,
362            payment_hash=None,
363            offer_id=None
364    ):
365        uri = "/cln.Node/ListInvoices"
366        req = clnpb.ListinvoicesRequest(
367            label=label,
368            invstring=invstring,
369            payment_hash=payment_hash,
370            offer_id=offer_id
371        ).SerializeToString()
372        res = clnpb.ListinvoicesResponse
373        return res.FromString(
374            bytes(self.inner.call(uri, bytes(req)))
375        )
def send_onion( self, onion, first_hop, payment_hash, label=None, shared_secrets=None, partid=None, bolt11=None, amount_msat=None, destination=None, localinvreqid=None, groupid=None):
377    def send_onion(
378            self,
379            onion,
380            first_hop,
381            payment_hash,
382            label=None,
383            shared_secrets=None,
384            partid=None,
385            bolt11=None,
386            amount_msat=None,
387            destination=None,
388            localinvreqid=None,
389            groupid=None
390    ):
391        uri = "/cln.Node/SendOnion"
392        req = clnpb.SendonionRequest(
393            onion=onion,
394            first_hop=first_hop,
395            payment_hash=payment_hash,
396            label=label,
397            shared_secrets=shared_secrets,
398            partid=partid,
399            bolt11=bolt11,
400            amount_msat=amount_msat,
401            destination=destination,
402            localinvreqid=localinvreqid,
403            groupid=groupid
404        ).SerializeToString()
405        res = clnpb.SendonionResponse
406        return res.FromString(
407            bytes(self.inner.call(uri, bytes(req)))
408        )
def list_send_pays(self, bolt11=None, payment_hash=None, status=None):
410    def list_send_pays(
411            self,
412            bolt11=None,
413            payment_hash=None,
414            status=None
415    ):
416        uri = "/cln.Node/ListSendPays"
417        req = clnpb.ListsendpaysRequest(
418            bolt11=bolt11,
419            payment_hash=payment_hash,
420            status=status
421        ).SerializeToString()
422        res = clnpb.ListsendpaysResponse
423        return res.FromString(
424            bytes(self.inner.call(uri, bytes(req)))
425        )
def list_transactions(self):
427    def list_transactions(
428            self,
429
430    ):
431        uri = "/cln.Node/ListTransactions"
432        req = clnpb.ListtransactionsRequest(
433
434        ).SerializeToString()
435        res = clnpb.ListtransactionsResponse
436        return res.FromString(
437            bytes(self.inner.call(uri, bytes(req)))
438        )
def pay( self, bolt11, amount_msat=None, label=None, riskfactor=None, maxfeepercent=None, retry_for=None, maxdelay=None, exemptfee=None, localinvreqid=None, exclude=None, maxfee=None, description=None):
440    def pay(
441            self,
442            bolt11,
443            amount_msat=None,
444            label=None,
445            riskfactor=None,
446            maxfeepercent=None,
447            retry_for=None,
448            maxdelay=None,
449            exemptfee=None,
450            localinvreqid=None,
451            exclude=None,
452            maxfee=None,
453            description=None
454    ):
455        uri = "/cln.Node/Pay"
456        req = clnpb.PayRequest(
457            bolt11=bolt11,
458            amount_msat=amount_msat,
459            label=label,
460            riskfactor=riskfactor,
461            maxfeepercent=maxfeepercent,
462            retry_for=retry_for,
463            maxdelay=maxdelay,
464            exemptfee=exemptfee,
465            localinvreqid=localinvreqid,
466            exclude=exclude,
467            maxfee=maxfee,
468            description=description
469        ).SerializeToString()
470        res = clnpb.PayResponse
471        return res.FromString(
472            bytes(self.inner.call(uri, bytes(req)))
473        )
def list_nodes(self, id=None):
475    def list_nodes(
476            self,
477            id=None
478    ):
479        uri = "/cln.Node/ListNodes"
480        req = clnpb.ListnodesRequest(
481            id=id
482        ).SerializeToString()
483        res = clnpb.ListnodesResponse
484        return res.FromString(
485            bytes(self.inner.call(uri, bytes(req)))
486        )
def wait_any_invoice(self, lastpay_index=None, timeout=None):
488    def wait_any_invoice(
489            self,
490            lastpay_index=None,
491            timeout=None
492    ):
493        uri = "/cln.Node/WaitAnyInvoice"
494        req = clnpb.WaitanyinvoiceRequest(
495            lastpay_index=lastpay_index,
496            timeout=timeout
497        ).SerializeToString()
498        res = clnpb.WaitanyinvoiceResponse
499        return res.FromString(
500            bytes(self.inner.call(uri, bytes(req)))
501        )
def wait_invoice(self, label):
503    def wait_invoice(
504            self,
505            label
506    ):
507        uri = "/cln.Node/WaitInvoice"
508        req = clnpb.WaitinvoiceRequest(
509            label=label
510        ).SerializeToString()
511        res = clnpb.WaitinvoiceResponse
512        return res.FromString(
513            bytes(self.inner.call(uri, bytes(req)))
514        )
def wait_send_pay(self, payment_hash, timeout=None, partid=None, groupid=None):
516    def wait_send_pay(
517            self,
518            payment_hash,
519            timeout=None,
520            partid=None,
521            groupid=None
522    ):
523        uri = "/cln.Node/WaitSendPay"
524        req = clnpb.WaitsendpayRequest(
525            payment_hash=payment_hash,
526            timeout=timeout,
527            partid=partid,
528            groupid=groupid
529        ).SerializeToString()
530        res = clnpb.WaitsendpayResponse
531        return res.FromString(
532            bytes(self.inner.call(uri, bytes(req)))
533        )
def new_addr(self, addresstype=None):
535    def new_addr(
536            self,
537            addresstype=None
538    ):
539        uri = "/cln.Node/NewAddr"
540        req = clnpb.NewaddrRequest(
541            addresstype=addresstype
542        ).SerializeToString()
543        res = clnpb.NewaddrResponse
544        return res.FromString(
545            bytes(self.inner.call(uri, bytes(req)))
546        )
def withdraw( self, destination, satoshi=None, feerate=None, minconf=None, utxos=None):
548    def withdraw(
549            self,
550            destination,
551            satoshi=None,
552            feerate=None,
553            minconf=None,
554            utxos=None
555    ):
556        uri = "/cln.Node/Withdraw"
557        req = clnpb.WithdrawRequest(
558            destination=destination,
559            satoshi=satoshi,
560            feerate=feerate,
561            minconf=minconf,
562            utxos=utxos
563        ).SerializeToString()
564        res = clnpb.WithdrawResponse
565        return res.FromString(
566            bytes(self.inner.call(uri, bytes(req)))
567        )
def key_send( self, destination, amount_msat, label=None, maxfeepercent=None, retry_for=None, maxdelay=None, exemptfee=None, routehints=None, extratlvs=None):
569    def key_send(
570            self,
571            destination,
572            amount_msat,
573            label=None,
574            maxfeepercent=None,
575            retry_for=None,
576            maxdelay=None,
577            exemptfee=None,
578            routehints=None,
579            extratlvs=None
580    ):
581        uri = "/cln.Node/KeySend"
582        req = clnpb.KeysendRequest(
583            destination=destination,
584            amount_msat=amount_msat,
585            label=label,
586            maxfeepercent=maxfeepercent,
587            retry_for=retry_for,
588            maxdelay=maxdelay,
589            exemptfee=exemptfee,
590            routehints=routehints,
591            extratlvs=extratlvs
592        ).SerializeToString()
593        res = clnpb.KeysendResponse
594        return res.FromString(
595            bytes(self.inner.call(uri, bytes(req)))
596        )
def fund_psbt( self, satoshi, feerate, startweight, minconf=None, reserve=None, locktime=None, min_witness_weight=None, excess_as_change=None):
598    def fund_psbt(
599            self,
600            satoshi,
601            feerate,
602            startweight,
603            minconf=None,
604            reserve=None,
605            locktime=None,
606            min_witness_weight=None,
607            excess_as_change=None
608    ):
609        uri = "/cln.Node/FundPsbt"
610        req = clnpb.FundpsbtRequest(
611            satoshi=satoshi,
612            feerate=feerate,
613            startweight=startweight,
614            minconf=minconf,
615            reserve=reserve,
616            locktime=locktime,
617            min_witness_weight=min_witness_weight,
618            excess_as_change=excess_as_change
619        ).SerializeToString()
620        res = clnpb.FundpsbtResponse
621        return res.FromString(
622            bytes(self.inner.call(uri, bytes(req)))
623        )
def send_psbt(self, psbt, reserve=None):
625    def send_psbt(
626            self,
627            psbt,
628            reserve=None
629    ):
630        uri = "/cln.Node/SendPsbt"
631        req = clnpb.SendpsbtRequest(
632            psbt=psbt,
633            reserve=reserve
634        ).SerializeToString()
635        res = clnpb.SendpsbtResponse
636        return res.FromString(
637            bytes(self.inner.call(uri, bytes(req)))
638        )
def sign_psbt(self, psbt, signonly=None):
640    def sign_psbt(
641            self,
642            psbt,
643            signonly=None
644    ):
645        uri = "/cln.Node/SignPsbt"
646        req = clnpb.SignpsbtRequest(
647            psbt=psbt,
648            signonly=signonly
649        ).SerializeToString()
650        res = clnpb.SignpsbtResponse
651        return res.FromString(
652            bytes(self.inner.call(uri, bytes(req)))
653        )
def utxo_psbt( self, satoshi, feerate, startweight, utxos, reserve=None, reservedok=None, locktime=None, min_witness_weight=None, excess_as_change=None):
655    def utxo_psbt(
656            self,
657            satoshi,
658            feerate,
659            startweight,
660            utxos,
661            reserve=None,
662            reservedok=None,
663            locktime=None,
664            min_witness_weight=None,
665            excess_as_change=None
666    ):
667        uri = "/cln.Node/UtxoPsbt"
668        req = clnpb.UtxopsbtRequest(
669            satoshi=satoshi,
670            feerate=feerate,
671            startweight=startweight,
672            utxos=utxos,
673            reserve=reserve,
674            reservedok=reservedok,
675            locktime=locktime,
676            min_witness_weight=min_witness_weight,
677            excess_as_change=excess_as_change
678        ).SerializeToString()
679        res = clnpb.UtxopsbtResponse
680        return res.FromString(
681            bytes(self.inner.call(uri, bytes(req)))
682        )
def tx_discard(self, txid):
684    def tx_discard(
685            self,
686            txid
687    ):
688        uri = "/cln.Node/TxDiscard"
689        req = clnpb.TxdiscardRequest(
690            txid=txid
691        ).SerializeToString()
692        res = clnpb.TxdiscardResponse
693        return res.FromString(
694            bytes(self.inner.call(uri, bytes(req)))
695        )
def tx_prepare(self, outputs, feerate=None, minconf=None, utxos=None):
697    def tx_prepare(
698            self,
699            outputs,
700            feerate=None,
701            minconf=None,
702            utxos=None
703    ):
704        uri = "/cln.Node/TxPrepare"
705        req = clnpb.TxprepareRequest(
706            outputs=outputs,
707            feerate=feerate,
708            minconf=minconf,
709            utxos=utxos
710        ).SerializeToString()
711        res = clnpb.TxprepareResponse
712        return res.FromString(
713            bytes(self.inner.call(uri, bytes(req)))
714        )
def tx_send(self, txid):
716    def tx_send(
717            self,
718            txid
719    ):
720        uri = "/cln.Node/TxSend"
721        req = clnpb.TxsendRequest(
722            txid=txid
723        ).SerializeToString()
724        res = clnpb.TxsendResponse
725        return res.FromString(
726            bytes(self.inner.call(uri, bytes(req)))
727        )
def disconnect(self, id, force=None):
729    def disconnect(
730            self,
731            id,
732            force=None
733    ):
734        uri = "/cln.Node/Disconnect"
735        req = clnpb.DisconnectRequest(
736            id=id,
737            force=force
738        ).SerializeToString()
739        res = clnpb.DisconnectResponse
740        return res.FromString(
741            bytes(self.inner.call(uri, bytes(req)))
742        )
def feerates(self, style):
744    def feerates(
745            self,
746            style
747    ):
748        uri = "/cln.Node/Feerates"
749        req = clnpb.FeeratesRequest(
750            style=style
751        ).SerializeToString()
752        res = clnpb.FeeratesResponse
753        return res.FromString(
754            bytes(self.inner.call(uri, bytes(req)))
755        )
def fund_channel_cancel(self, id):
757    def fund_channel_cancel(
758            self,
759            id
760    ):
761        uri = "/cln.Node/FundChannelCancel"
762        req = clnpb.FundchannelcancelRequest(
763            id=id
764        ).SerializeToString()
765        res = clnpb.FundchannelcancelResponse
766        return res.FromString(
767            bytes(self.inner.call(uri, bytes(req)))
768        )
def fund_channel_complete(self, id, psbt):
770    def fund_channel_complete(
771            self,
772            id,
773            psbt
774    ):
775        uri = "/cln.Node/FundChannelComplete"
776        req = clnpb.FundchannelcompleteRequest(
777            id=id,
778            psbt=psbt
779        ).SerializeToString()
780        res = clnpb.FundchannelcompleteResponse
781        return res.FromString(
782            bytes(self.inner.call(uri, bytes(req)))
783        )
def fund_channel( self, id, amount, feerate=None, announce=None, minconf=None, push_msat=None, close_to=None, request_amt=None, compact_lease=None, utxos=None, mindepth=None, reserve=None):
785    def fund_channel(
786            self,
787            id,
788            amount,
789            feerate=None,
790            announce=None,
791            minconf=None,
792            push_msat=None,
793            close_to=None,
794            request_amt=None,
795            compact_lease=None,
796            utxos=None,
797            mindepth=None,
798            reserve=None
799    ):
800        uri = "/cln.Node/FundChannel"
801        req = clnpb.FundchannelRequest(
802            id=id,
803            amount=amount,
804            feerate=feerate,
805            announce=announce,
806            minconf=minconf,
807            push_msat=push_msat,
808            close_to=close_to,
809            request_amt=request_amt,
810            compact_lease=compact_lease,
811            utxos=utxos,
812            mindepth=mindepth,
813            reserve=reserve
814        ).SerializeToString()
815        res = clnpb.FundchannelResponse
816        return res.FromString(
817            bytes(self.inner.call(uri, bytes(req)))
818        )
def fund_channel_start( self, id, amount, feerate=None, announce=None, close_to=None, push_msat=None):
820    def fund_channel_start(
821            self,
822            id,
823            amount,
824            feerate=None,
825            announce=None,
826            close_to=None,
827            push_msat=None
828    ):
829        uri = "/cln.Node/FundChannelStart"
830        req = clnpb.FundchannelstartRequest(
831            id=id,
832            amount=amount,
833            feerate=feerate,
834            announce=announce,
835            close_to=close_to,
836            push_msat=push_msat
837        ).SerializeToString()
838        res = clnpb.FundchannelstartResponse
839        return res.FromString(
840            bytes(self.inner.call(uri, bytes(req)))
841        )
def get_route( self, id, amount_msat, riskfactor, cltv=None, fromid=None, fuzzpercent=None, exclude=None, maxhops=None):
843    def get_route(
844            self,
845            id,
846            amount_msat,
847            riskfactor,
848            cltv=None,
849            fromid=None,
850            fuzzpercent=None,
851            exclude=None,
852            maxhops=None
853    ):
854        uri = "/cln.Node/GetRoute"
855        req = clnpb.GetrouteRequest(
856            id=id,
857            amount_msat=amount_msat,
858            riskfactor=riskfactor,
859            cltv=cltv,
860            fromid=fromid,
861            fuzzpercent=fuzzpercent,
862            exclude=exclude,
863            maxhops=maxhops
864        ).SerializeToString()
865        res = clnpb.GetrouteResponse
866        return res.FromString(
867            bytes(self.inner.call(uri, bytes(req)))
868        )
def list_forwards(self, status=None, in_channel=None, out_channel=None):
870    def list_forwards(
871            self,
872            status=None,
873            in_channel=None,
874            out_channel=None
875    ):
876        uri = "/cln.Node/ListForwards"
877        req = clnpb.ListforwardsRequest(
878            status=status,
879            in_channel=in_channel,
880            out_channel=out_channel
881        ).SerializeToString()
882        res = clnpb.ListforwardsResponse
883        return res.FromString(
884            bytes(self.inner.call(uri, bytes(req)))
885        )
def list_pays(self, bolt11=None, payment_hash=None, status=None):
887    def list_pays(
888            self,
889            bolt11=None,
890            payment_hash=None,
891            status=None
892    ):
893        uri = "/cln.Node/ListPays"
894        req = clnpb.ListpaysRequest(
895            bolt11=bolt11,
896            payment_hash=payment_hash,
897            status=status
898        ).SerializeToString()
899        res = clnpb.ListpaysResponse
900        return res.FromString(
901            bytes(self.inner.call(uri, bytes(req)))
902        )
def ping(self, id, len=None, pongbytes=None):
904    def ping(
905            self,
906            id,
907            len=None,
908            pongbytes=None
909    ):
910        uri = "/cln.Node/Ping"
911        req = clnpb.PingRequest(
912            id=id,
913            len=len,
914            pongbytes=pongbytes
915        ).SerializeToString()
916        res = clnpb.PingResponse
917        return res.FromString(
918            bytes(self.inner.call(uri, bytes(req)))
919        )
def set_channel( self, id, feebase=None, feeppm=None, htlcmin=None, htlcmax=None, enforcedelay=None):
921    def set_channel(
922            self,
923            id,
924            feebase=None,
925            feeppm=None,
926            htlcmin=None,
927            htlcmax=None,
928            enforcedelay=None
929    ):
930        uri = "/cln.Node/SetChannel"
931        req = clnpb.SetchannelRequest(
932            id=id,
933            feebase=feebase,
934            feeppm=feeppm,
935            htlcmin=htlcmin,
936            htlcmax=htlcmax,
937            enforcedelay=enforcedelay
938        ).SerializeToString()
939        res = clnpb.SetchannelResponse
940        return res.FromString(
941            bytes(self.inner.call(uri, bytes(req)))
942        )
def sign_message(self, message):
944    def sign_message(
945            self,
946            message
947    ):
948        uri = "/cln.Node/SignMessage"
949        req = clnpb.SignmessageRequest(
950            message=message
951        ).SerializeToString()
952        res = clnpb.SignmessageResponse
953        return res.FromString(
954            bytes(self.inner.call(uri, bytes(req)))
955        )
def stop(self):
957    def stop(
958            self,
959
960    ):
961        uri = "/cln.Node/Stop"
962        req = clnpb.StopRequest(
963
964        ).SerializeToString()
965        res = clnpb.StopResponse
966        return res.FromString(
967            bytes(self.inner.call(uri, bytes(req)))
968        )