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 )
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
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_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
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
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_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
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
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_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
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 )