From fc5becc6b5fea6eb1584acc5453c89a0494addea Mon Sep 17 00:00:00 2001 From: openoms <43343391+openoms@users.noreply.github.com> Date: Tue, 4 Jan 2022 19:08:38 +0000 Subject: [PATCH] add LND repair menu (#2833) * add 99lndRepairMenu.sh * add more lnd checks and improve output * add sudo to syncAndCheckLND * add ${netprefix} to lnd service * restore seed and scb separately * update lnd proto files * lnd.initwallet: add unlock method * lndrepair: use recovery window with unlock * change all rpc_pb2 to lightning_pb2 * mainnet -> ${chain}net * _provison.setup: restore SCB separately * clear up the placement of channel.backup * unloc kLND before SCB restore * provison.setup: add more logging * lnd.install: make sure bitcoin is in debian-tor * lndRepairMenu: add RETRYSCB option * wait to create macaroons for 2 minutes * lndRepairMenu: add RESCAN option --- .gitignore | 4 +- build_sdcard.sh | 2 +- home.admin/98repairMenu.sh | 63 +- home.admin/99lndRepairMenu.sh | 494 +++ home.admin/99systemMenu.sh | 20 +- home.admin/BlitzTUI/blitztui/client.py | 8 +- home.admin/_provision.setup.sh | 85 +- .../blitz.subscriptions.ip2tor.py | 4 +- .../config.scripts/blitz.touchscreen.sh | 8 +- home.admin/config.scripts/lnd.backup.sh | 2 +- home.admin/config.scripts/lnd.initwallet.py | 153 +- home.admin/config.scripts/lnd.install.sh | 3 + home.admin/config.scripts/lndlibs/README.md | 10 +- .../lndlibs/{rpc.proto => lightning.proto} | 646 +++- .../lndlibs/{rpc_pb2.py => lightning_pb2.py} | 3106 +++++++++++++---- ...{rpc_pb2_grpc.py => lightning_pb2_grpc.py} | 952 +++-- .../lndlibs/walletunlocker.proto | 95 +- .../lndlibs/walletunlocker_pb2.py | 184 +- .../dialogLightningWallet-lnd.sh | 2 +- 19 files changed, 4527 insertions(+), 1314 deletions(-) create mode 100644 home.admin/99lndRepairMenu.sh rename home.admin/config.scripts/lndlibs/{rpc.proto => lightning.proto} (84%) rename home.admin/config.scripts/lndlibs/{rpc_pb2.py => lightning_pb2.py} (77%) rename home.admin/config.scripts/lndlibs/{rpc_pb2_grpc.py => lightning_pb2_grpc.py} (68%) diff --git a/.gitignore b/.gitignore index 5e928bec..c9e4a7a5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,6 @@ home.admin/.DS_Store *.log *.pyc __pycache__ -rpc_pb2.pyc -rpc_pb2_grpc.pyc +lightning_pb2.pyc +lightning_pb2_grpc.pyc /.vagrant/ diff --git a/build_sdcard.sh b/build_sdcard.sh index 8606aba8..294f6779 100755 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -464,7 +464,7 @@ echo -e "\n*** INSTALLING BlitzPy Version: ${blitzpy_version} ***" sudo -H /usr/bin/python -m pip install "/home/admin/raspiblitz/home.admin/BlitzPy/dist/${blitzpy_wheel}" >/dev/null 2>&1 # make sure lndlibs are patched for compatibility for both Python2 and Python3 -file="/home/admin/config.scripts/lndlibs/rpc_pb2_grpc.py" +file="/home/admin/config.scripts/lndlibs/lightning_pb2_grpc.py" ! grep -Fxq "from __future__ import absolute_import" "${file}" && sed -i -E '1 a from __future__ import absolute_import' "${file}" ! grep -Eq "^from . import.*" "${file}" && sed -i -E 's/^(import.*_pb2)/from . \1/' "${file}" diff --git a/home.admin/98repairMenu.sh b/home.admin/98repairMenu.sh index 3456c7aa..55a48a28 100755 --- a/home.admin/98repairMenu.sh +++ b/home.admin/98repairMenu.sh @@ -39,9 +39,9 @@ Download Lightning Data Backup now? fi else clear - echo "*****************************************" - echo "* JUST MAKING A BACKUP TO THE OLD SD CARD" - echo "*****************************************" + echo "*************************************" + echo "* JUST MAKING A BACKUP TO THE SD CARD" + echo "*************************************" echo "please wait .." sleep 2 if [ "${lightning}" == "lnd" ] || [ "${lnd}" = "on" ]; then @@ -69,9 +69,7 @@ OPTIONS=() #OPTIONS+=(HARDWARE "Run Hardwaretest") OPTIONS+=(SOFTWARE "Run Softwaretest (DebugReport)") if [ "${lightning}" == "lnd" ] || [ "${lnd}" == "on" ]; then - OPTIONS+=(BACKUP-LND "Backup your LND data (Rescue-File)") - OPTIONS+=(RESET-LND "Delete LND & start new node/wallet") - OPTIONS+=(COMPACT "Compact the LND channel.db") + OPTIONS+=(REPAIR-LND "Repair/Backup LND") fi if [ "${lightning}" == "cl" ] || [ "${cl}" == "on" ]; then OPTIONS+=(REPAIR-CL "Repair/Backup C-Lightning") @@ -95,18 +93,8 @@ case $CHOICE in echo "Press ENTER to return to main menu." read key ;; - BACKUP-LND) - /home/admin/config.scripts/lnd.compact.sh interactive - sudo /home/admin/config.scripts/lnd.backup.sh lnd-export-gui - echo - echo "Press ENTER when your backup download is done to shutdown." - read key - /home/admin/config.scripts/blitz.shutdown.sh - ;; - COMPACT) - /home/admin/config.scripts/lnd.compact.sh interactive - echo "# Starting lnd.service ..." - sudo systemctl start lnd + REPAIR-LND) + sudo /home/admin/99lndRepairMenu.sh echo echo "Press ENTER to return to main menu." read key @@ -128,45 +116,6 @@ case $CHOICE in echo "For reboot type: sudo shutdown -r now" exit 1; ;; - RESET-LND) - askBackupCopy - # ask for a new name so that network analysis has harder time to connect new node id with old - result="" - while [ ${#result} -eq 0 ] - do - trap 'rm -f "$_temp"' EXIT - _temp=$(mktemp -p /dev/shm/) - l1="Please enter the new name of your LND node:\n" - l2="different name is better for a fresh identity\n" - l3="one word, keep characters basic & not too long" - dialog --backtitle "RaspiBlitz - Setup (${network}/${chain})" --inputbox "$l1$l2$l3" 13 52 2>$_temp - result=$( cat $_temp | tr -dc '[:alnum:]-.' | tr -d ' ' ) - echo "processing ..." - sleep 3 - done - - # make sure host is named like in the raspiblitz config - echo "Setting the Name/Alias/Hostname .." - sudo /home/admin/config.scripts/lnd.setname.sh mainnet ${result} - /home/admin/config.scripts/blitz.conf.sh set hostname "${result}" - - echo "stopping lnd ..." - sudo systemctl stop lnd - sudo rm -r /mnt/hdd/lnd - # create wallet - /home/admin/config.scripts/lnd.install.sh on mainnet initwallet - # display and delete the seed for mainnet - sudo /home/admin/config.scripts/lnd.install.sh display-seed mainnet delete - if [ "${tlnd}" == "on" ];then - /home/admin/config.scripts/lnd.install.sh on testnet initwallet - fi - if [ "${slnd}" == "on" ];then - /home/admin/config.scripts/lnd.install.sh on signet initwallet - fi - # go back to main menu (and show) - /home/admin/00raspiblitz.sh - exit 0; - ;; RESET-HDD) askBackupCopy /home/admin/XXcleanHDD.sh diff --git a/home.admin/99lndRepairMenu.sh b/home.admin/99lndRepairMenu.sh new file mode 100644 index 00000000..3d13eaca --- /dev/null +++ b/home.admin/99lndRepairMenu.sh @@ -0,0 +1,494 @@ +#!/bin/bash + +# get raspiblitz config +echo "# get raspiblitz config" +source /home/admin/raspiblitz.info +source /mnt/hdd/raspiblitz.conf + +source <(/home/admin/config.scripts/network.aliases.sh getvars lnd $1) + +if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi + +askLNDbackupCopy() +{ + whiptail --title "LND Data Backup" --yes-button "Backup" --no-button "Skip" --yesno " +Before deleting your data, do you want +to make a backup of all your LND Data +and download the file(s) to your laptop? + +Download LND Data Backup now? + " 12 44 + if [ $? -eq 0 ]; then + clear + echo "***********************************" + echo "* PREPARING THE LND BACKUP DOWNLOAD" + echo "***********************************" + echo "please wait .." + /home/admin/config.scripts/lnd.compact.sh interactive + /home/admin/config.scripts/lnd.backup.sh lnd-export-gui + echo + echo "PRESS ENTER to continue once you're done downloading." + read key + else + clear + echo "*************************************" + echo "* JUST MAKING A BACKUP TO THE SD CARD" + echo "*************************************" + echo "please wait .." + sleep 2 + /home/admin/config.scripts/lnd.backup.sh lnd-export + sleep 3 + fi +} + +getpasswordC() # from dialogPasswords.sh +{ + # temp file for password results + _temp="/var/cache/raspiblitz/temp/.temp.tmp" + sudo /home/admin/config.scripts/blitz.setpassword.sh x "PASSWORD C - Lightning Wallet Password" $_temp + passwordC=$(sudo cat $_temp) + sudo rm $_temp + dialog --backtitle "RaspiBlitz - Setup" --msgbox "\nThanks - Password C accepted.\n\nAlways use this password to \nunlock your Lightning Wallet." 10 34 +} + +lndHealthCheck() +{ + # check that lnd started + lndRunning=0 + loopcount=0 + while [ ${lndRunning} -eq 0 ] + do + lndRunning=$(systemctl status ${netprefix}lnd.service | grep -c running) + if [ ${lndRunning} -eq 0 ]; then + date +%s + echo "LND not ready yet ... waiting another 60 seconds." + sleep 10 + fi + loopcount=$(($loopcount +1)) + if [ ${loopcount} -gt 100 ]; then + echo "lnd-start-fail" "lnd service not getting to running status" "sudo systemctl status ${netprefix}lnd.service | grep -c running --> ${lndRunning}" + exit 8 + fi + done + echo "OK - LND is running" + sleep 10 + + # Check LND health/fails (to be extended) + tlsExists=$(ls /mnt/hdd/lnd/tls.cert 2>/dev/null | grep -c "tls.cert") + if [ ${tlsExists} -eq 0 ]; then + echo "lnd-no-tls" "lnd not created TLS cert" "no /mnt/hdd/lnd/tls.cert" + exit 9 + fi +} + +syncAndCheckLND() # from _provision.setup.sh +{ + # make sure all directories are linked + sudo /home/admin/config.scripts/blitz.datadrive.sh link + + # check if now a config exists + configLinkedCorrectly=$(ls /home/bitcoin/.lnd/lnd.conf | grep -c "lnd.conf") + if [ "${configLinkedCorrectly}" != "1" ]; then + echo "lnd-link-broken" "link /home/bitcoin/.lnd/lnd.conf broken" "" + exit 7 + fi + + # Init LND service & start + echo "*** Init LND Service & Start ***" + /home/admin/_cache.sh set message "LND Testrun" + + # just in case + sudo systemctl stop ${netprefix}lnd 2>/dev/null + sudo systemctl disable ${netprefix}lnd 2>/dev/null + + # copy lnd service + sudo cp /home/admin/assets/lnd.service /etc/systemd/system/lnd.service + + # start lnd up + echo "Starting LND Service ..." + sudo systemctl enable ${netprefix}lnd + sudo systemctl start ${netprefix}lnd + echo "Starting LND Service ... executed" + + if [ $(sudo -u bitcoin ls /mnt/hdd/lnd/data/chain/bitcoin/${chain}net/wallet.db 2>/dev/null | grep -c wallet.db) -gt 0 ]; then + echo "# OK, there is an LND wallet present" + else + echo "lnd-no-wallet" "there is no LND wallet present" "/mnt/hdd/lnd/data/chain/bitcoin/${chain}net/wallet.db --> missing" + exit 13 + fi + # sync macaroons & TLS to other users + echo "*** Copy LND Macaroons to user admin ***" + /home/admin/_cache.sh set message "LND Credentials" + + # check if macaroon exists now - if not fail + attempt=0 + while [ $(sudo -u bitcoin ls -la /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon 2>/dev/null | grep -c admin.macaroon) -eq 0 ]; do + echo "Waiting 2 mins for LND to create macaroons ... (${attempt}0s)" + sleep 10 + attempt=$((attempt+1)) + if [ $attempt -eq 12 ];then + /home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-no-macaroons" "lnd did not create macaroons" "/home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon --> missing" + exit 14 + fi + done + + # now sync macaroons & TLS to other users + sudo /home/admin/config.scripts/lnd.credentials.sh sync + + # make a final lnd check + source <(/home/admin/config.scripts/lnd.check.sh basic-setup) + if [ "${err}" != "" ]; then + echo "lnd-check-error" "lnd.check.sh basic-setup with error" "/home/admin/config.scripts/lnd.check.sh basic-setup --> ${err}" + exit 15 + fi +} + +function restoreFromSeed() +{ + askLNDbackupCopy + + ## from dialogLightningWallet.sh + # let people know about the difference between SEED & SEED+SCB + whiptail --title "IMPORTANT INFO" --yes-button "ENTER SEED" --no-button "Go Back" --yesno " +Using JUST SEED WORDS will only recover your on-chain funds. +To also try to recover the open channel funds you need the +channel.backup file (since RaspiBlitz v1.2 / LND 0.6-beta) +or having a complete LND rescue-backup from your old node. + " 11 65 + + # start seed input and get results + _temp="/var/cache/raspiblitz/.temp.tmp" + /home/admin/config.scripts/lnd.backup.sh seed-import-gui $_temp + source $_temp 2>/dev/null + sudo rm $_temp 2>/dev/null + + # if user canceled the seed input + if [ "${seedWords}" == "" ]; then + # signal cancel to the calling script by exit code (4 = exit on seedwords) + exit 4 + fi + + getpasswordC + + clear + echo + echo "The next step will overwrite the old LND wallets on all chains" + echo "Press ENTER to continue or CTRL+C to abort" + read key + echo "Stopping ${netprefix}lnd ..." + sudo systemctl stop ${netprefix}lnd + if [ "${tlnd}" == "on" ];then + sudo systemctl stop tlnd + fi + if [ "${slnd}" == "on" ];then + sudo systemctl stop slnd + fi + echo "Reset wallet" + sudo rm -r /mnt/hdd/lnd + + # creates fresh lnd.conf without an alias + /home/admin/config.scripts/lnd.install.sh on $CHAIN + sudo systemctl start ${netprefix}lnd + lndHealthCheck + + # from _provison.setup.sh + # create wallet + # WALLET --> SEED + if [ "${seedWords}" != "" ]; then + echo "WALLET --> SEED" + /home/admin/_cache.sh set message "LND Wallet (SEED)" + source <(/home/admin/config.scripts/lnd.initwallet.py seed "${chain}net" "${passwordC}" "${seedWords}" "${seedPassword}") + if [ "${err}" != "" ]; then + echo "lnd-wallet-seed" "lnd.initwallet.py seed returned error" "/home/admin/config.scripts/lnd.initwallet.py seed ${chain}net ... --> ${err} + ${errMore}" + exit 12 + fi + fi + + syncAndCheckLND +} + +function restoreSCB() +{ + # import SCB and get results + _temp="/var/cache/raspiblitz/.temp.tmp" + /home/admin/config.scripts/lnd.backup.sh scb-import-gui setup $_temp + source $_temp 2>/dev/null + sudo rm $_temp 2>/dev/null + + # if user canceled the upload + if [ "${staticchannelbackup}" == "" ]; then + # signal cancel to the calling script by exit code (5 = exit on scb) + exit 5 + fi + + echo + echo "The next step will attempt to trigger all online peers to force close the channels with this node." + echo "Restoring the channel.backup can be repeated again until all the channels are force closed." + echo "Contacting the peers and asking them to force close achieves the same." + echo "Press ENTER to continue or CTRL+C to abort" + read key + + # WALLET --> SEED + SCB + if [ "${staticchannelbackup}" != "" ]; then + + # LND was restarted so need to unlock + echo "WALLET --> UNLOCK WALLET - SCAN 0" + /home/admin/_cache.sh set message "LND Wallet Unlock - scan 0" + source <(/home/admin/config.scripts/lnd.initwallet.py unlock "${chain}net" "${passwordC}" 0) + if [ "${err}" != "" ]; then + echo "lnd-wallet-unlock" "lnd.initwallet.py unlock returned error" "/home/admin/config.scripts/lnd.initwallet.py unlock ${chain}net ... --> ${err} + ${errMore}" + if [ "${errMore}" = "wallet already unlocked, WalletUnlocker service is no longer available" ]; then + echo "The wallet is already unlocked, continue." + else + exit 11 + fi + fi + + echo "WALLET --> SCB " + /home/admin/_cache.sh set message "LND Wallet (SEED & SCB)" + macaroonPath="/home/admin/.lnd/data/chain/${network}/${chain}net/admin.macaroon" + source <(/home/admin/config.scripts/lnd.initwallet.py scb ${chain}net "/home/admin/channel.backup" "${macaroonPath}") + if [ "${err}" != "" ]; then + echo "lnd-wallet-seed+scb" "lnd.initwallet.py scb returned error" "/home/admin/config.scripts/lnd.initwallet.py scb ${chain}net ... --> ${err} + ${errMore}" + if [ "${errMore}" = "server is still in the process of starting" ]; then + echo "The SCB recovery is not possible now - use the RETRYSCB option the REPAIR-LND menu after LND is synced." + echo "Can repeat the SCB recovery until all peers have force closed the channels to this node." + else + exit 12 + fi + fi + fi + + syncAndCheckLND + + # LND was restarted so need to unlock + echo "WALLET --> UNLOCK WALLET - SCAN 5000" + /home/admin/_cache.sh set message "LND Wallet Unlock - scan 5000" + source <(/home/admin/config.scripts/lnd.initwallet.py unlock ${chain}net "${passwordC}" 5000) + if [ "${err}" != "" ]; then + echo "lnd-wallet-unlock" "lnd.initwallet.py unlock returned error" "/home/admin/config.scripts/lnd.initwallet.py unlock ${chain}net ... --> ${err} + ${errMore}" + exit 50 + fi +} + +# BASIC MENU INFO +WIDTH=64 +BACKTITLE="RaspiBlitz" +TITLE="LND repair options for $CHAIN" +MENU="" +OPTIONS=() + +OPTIONS+=(COMPACT "Compact the LND channel.db") +OPTIONS+=(BACKUP-LND "Backup your LND data (Rescue-File)") +OPTIONS+=(RESET-LND "Delete LND & start new node/wallet") +OPTIONS+=(LNDRESCUE "Restore from a rescue file") +OPTIONS+=(SEED+SCB "Restore from a seed and channel.backup") +OPTIONS+=(RETRYSCB "Retry closing channels with the channel.backup") +OPTIONS+=(ONLYSEED "Restore from a seed (onchain funds only)") +OPTIONS+=(RESCAN "Rescan the blockchain to recover onchain funds") + +CHOICE_HEIGHT=$(("${#OPTIONS[@]}/2+1")) +HEIGHT=$((CHOICE_HEIGHT+6)) +CHOICE=$(dialog --clear \ + --backtitle "$BACKTITLE" \ + --title "$TITLE" \ + --ok-label "Select" \ + --cancel-label "Main menu" \ + --menu "$MENU" \ + $HEIGHT $WIDTH $CHOICE_HEIGHT \ + "${OPTIONS[@]}" \ + 2>&1 >/dev/tty) + +case $CHOICE in + + COMPACT) + /home/admin/config.scripts/lnd.compact.sh interactive + echo "# Starting ${netprefix}lnd.service ..." + sudo systemctl start lnd + echo + echo "Press ENTER to return to main menu." + read key + ;; + BACKUP-LND) + /home/admin/config.scripts/lnd.compact.sh interactive + sudo /home/admin/config.scripts/lnd.backup.sh ${netprefix}lnd-export-gui + echo + echo "Press ENTER when your backup download is done to shutdown." + read key + /home/admin/config.scripts/blitz.shutdown.sh + ;; + RESET-LND) + askLNDbackupCopy + # ask for a new name so that network analysis has harder time to connect new node id with old + result="" + while [ ${#result} -eq 0 ] + do + trap 'rm -f "$_temp"' EXIT + _temp=$(mktemp -p /dev/shm/) + l1="Please enter the name of your new LND node:\n" + l2="different name is better for a fresh identity\n" + l3="one word, use up to 32 basic characters" + dialog --backtitle "RaspiBlitz - Setup (${network}/${chain})" --inputbox "$l1$l2$l3" 13 52 2>$_temp + result=$( cat $_temp | tr -dc '[:alnum:]-.' | tr -d ' ' ) + echo "processing ..." + sleep 3 + done + + #TODO the new hostname is not taken into account on init (user can change set the lnd name in menu later) + # make sure host is named like in the raspiblitz config + # echo "Setting the Name/Alias/Hostname .." + # sudo /home/admin/config.scripts/lnd.setname.sh ${chain}net "${result}" + # /home/admin/config.scripts/blitz.conf.sh set hostname "${result}" + + echo "stopping ${netprefix}lnd ..." + sudo systemctl stop ${netprefix}lnd + if [ "${tlnd}" == "on" ];then + sudo systemctl stop tlnd + fi + if [ "${slnd}" == "on" ];then + sudo systemctl stop slnd + fi + echo "Delete wallet" + sudo rm -r /mnt/hdd/lnd + # create wallet + /home/admin/config.scripts/lnd.install.sh on ${chain}net initwallet + # display and delete the seed for ${chain}net + sudo /home/admin/config.scripts/lnd.install.sh display-seed ${chain}net delete + if [ "${tlnd}" == "on" ];then + /home/admin/config.scripts/lnd.install.sh on testnet initwallet + fi + if [ "${slnd}" == "on" ];then + /home/admin/config.scripts/lnd.install.sh on signet initwallet + fi + + syncAndCheckLND + + echo "Press ENTER to return to main menu." + read key + # go back to main menu (and show) + /home/admin/00raspiblitz.sh + exit 0 + ;; + + LNDRESCUE) + askLNDbackupCopy + echo "The next step will overwrite the old LND wallets on all chains" + echo "Press ENTER to continue or CTRL+C to abort" + read key + echo "Stopping ${netprefix}lnd ..." + sudo systemctl stop ${netprefix}lnd + if [ "${tlnd}" == "on" ];then + sudo systemctl stop tlnd + fi + if [ "${slnd}" == "on" ];then + sudo systemctl stop slnd + fi + echo "Delete wallet" + sudo rm -r /mnt/hdd/lnd + + ## from dialogLightningWallet.sh + # import file + # run upload dialog and get result + _temp="/var/cache/raspiblitz/temp/.temp.tmp" + /home/admin/config.scripts/lnd.backup.sh lnd-import-gui production $_temp + source $_temp 2>/dev/null + sudo rm $_temp 2>/dev/null + + /home/admin/config.scripts/lnd.install.sh on ${CHAIN} + sudo systemctl start ${netprefix}lnd + + syncAndCheckLND + + echo "Press ENTER to return to main menu." + read key + # go back to main menu (and show) + /home/admin/00raspiblitz.sh + exit 0 + ;; + + SEED+SCB) + restoreFromSeed + + restoreSCB + + echo + echo "Press ENTER to return to main menu." + read key + # go back to main menu (and show) + /home/admin/00raspiblitz.sh + exit 0 + ;; + + RETRYSCB) + restoreSCB + + echo + echo "Press ENTER to return to main menu." + read key + # go back to main menu (and show) + /home/admin/00raspiblitz.sh + exit 0 + ;; + + ONLYSEED) + restoreFromSeed + + echo "WALLET --> UNLOCK WALLET - SCAN 5000" + /home/admin/_cache.sh set message "LND Wallet Unlock - scan 5000" + source <(/home/admin/config.scripts/lnd.initwallet.py unlock "${chain}net" "${passwordC}" 5000) + if [ "${err}" != "" ]; then + echo "lnd-wallet-unlock" "lnd.initwallet.py unlock returned error" "/home/admin/config.scripts/lnd.initwallet.py unlock ${chain}net ... --> ${err} + ${errMore}" + exit 50 + fi + + echo "Press ENTER to return to main menu." + read key + # go back to main menu (and show) + /home/admin/00raspiblitz.sh + exit 0 + ;; + + RESCAN) + clear + echo "Restart lnd to lock the wallet ..." + echo "If this takes very long LND might be already rescanning." + echo "Can use 'sudo pkill lnd' to shut down ungracefully." + sudo systemctl restart lnd + + # from blitz.conf.sh + configFile="/home/admin/raspiblitz.info" + keystr="fundRecovery" + valuestr="1" + # check if key needs to be added (prepare new entry) + entryExists=$(grep -c "^${keystr}=" ${configFile}) + if [ ${entryExists} -eq 0 ]; then + echo "${keystr}=" | tee -a ${configFile} + fi + # add valuestr quotes if not standard values + if [ "${valuestr}" != "on" ] && [ "${valuestr}" != "off" ] && [ "${valuestr}" != "1" ] && [ "${valuestr}" != "0" ]; then + valuestr="'${valuestr}'" + fi + # set value (sed needs sudo to operate when user is not root) + sudo sed -i "s/^${keystr}=.*/${keystr}=${valuestr}/g" ${configFile} + + /home/admin/config.scripts/lnd.unlock.sh unlock + + # switch rescan off for the next unlock + valuestr="0" + sudo sed -i "s/^${keystr}=.*/${keystr}=${valuestr}/g" ${configFile} + + echo + echo "To show the scanning progress in the background will follow the lnd.log with:" + echo "'sudo tail -n 30 -f /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log'" + echo + echo "Press ENTER to continue" + echo "use CTRL+C any time to exit .. then use the command 'raspiblitz' to return to the menu" + echo "(the rescan will continue in the background)" + echo "#######################################################################################" + read key + sudo tail -n 30 -f /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log + ;; + +esac + +exit 0 \ No newline at end of file diff --git a/home.admin/99systemMenu.sh b/home.admin/99systemMenu.sh index 62a272f1..780a801f 100644 --- a/home.admin/99systemMenu.sh +++ b/home.admin/99systemMenu.sh @@ -63,8 +63,8 @@ case $CHOICE in echo "running: 'sudo tail -n 30 -f ${bitcoinlogpath}'" echo echo "Press ENTER to continue" - echo "use CTRL+C any time to abort .. then use command 'raspiblitz' to return to menu" - echo "###############################################################################" + echo "use CTRL+C any time to abort .. then use the command 'raspiblitz' to return to the menu" + echo "#######################################################################################" read key sudo tail -n 30 -f ${bitcoinlogpath};; ${network}CONF) @@ -90,8 +90,8 @@ case $CHOICE in echo "running 'sudo tail -n 30 -f /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log'" echo echo "Press ENTER to continue" - echo "use CTRL+C any time to abort .. then use command 'raspiblitz' to return to menu" - echo "###############################################################################" + echo "use CTRL+C any time to abort .. then use the command 'raspiblitz' to return to the menu" + echo "#######################################################################################" read key sudo tail -n 30 -f /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log;; LNDCONF) @@ -117,8 +117,8 @@ case $CHOICE in echo "running 'sudo tail -n 30 -f /home/bitcoin/.lightning/${CLNETWORK}/cl.log'" echo echo "Press ENTER to continue" - echo "use CTRL+C any time to abort .. then use command 'raspiblitz' to return to menu" - echo "###############################################################################" + echo "use CTRL+C any time to abort .. then use the command 'raspiblitz' to return to the menu" + echo "#######################################################################################" read key sudo tail -n 30 -f /home/bitcoin/.lightning/${CLNETWORK}/cl.log;; CLCONF) @@ -170,8 +170,8 @@ thunderhub, tor@default, tor echo "Will show the logs with:" echo "'sudo journalctl -n 10 -fu $SERVICE'" echo - echo "use CTRL+C any time to abort .. then use command 'raspiblitz' to return to menu" - echo "###############################################################################" + echo "use CTRL+C any time to abort .. then use the command 'raspiblitz' to return to the menu" + echo "#######################################################################################" sudo journalctl -n 10 -fu $SERVICE;; CUSTOMRESTART) clear @@ -195,7 +195,7 @@ thunderhub, tor@default, tor echo "Will show the logs with:" echo "'sudo journalctl -n 10 -fu $SERVICE'" echo - echo "use CTRL+C any time to abort .. then use command 'raspiblitz' to return to menu" - echo "###############################################################################" + echo "use CTRL+C any time to abort .. then use the command 'raspiblitz' to return to the menu" + echo "#######################################################################################" sudo journalctl -n 10 -fu $SERVICE;; esac diff --git a/home.admin/BlitzTUI/blitztui/client.py b/home.admin/BlitzTUI/blitztui/client.py index 83c9d6c1..7b6094d5 100644 --- a/home.admin/BlitzTUI/blitztui/client.py +++ b/home.admin/BlitzTUI/blitztui/client.py @@ -22,16 +22,16 @@ if IS_WIN32_ENV: else: sys.path.insert(1, '/home/admin/config.scripts') -from lndlibs import rpc_pb2 as ln +from lndlibs import lightning_pb2 as ln try: - from lndlibs import rpc_pb2_grpc as lnrpc + from lndlibs import lightning_pb2_grpc as lnrpc except ModuleNotFoundError as err: log.error("ModuleNotFoundError - most likely an issue with incompatible Python3 import.\n" "Please run the following two lines to fix this: \n" "\n" "sed -i -E '1 a from __future__ import absolute_import' " - "/home/admin/config.scripts/lndlibs/rpc_pb2_grpc.py\n" - "sed -i -E 's/^(import.*_pb2)/from . \\1/' /home/admin/config.scripts/lndlibs/rpc_pb2_grpc.py") + "/home/admin/config.scripts/lndlibs/lightning_pb2_grpc.py\n" + "sed -i -E 's/^(import.*_pb2)/from . \\1/' /home/admin/config.scripts/lndlibs/lightning_pb2_grpc.py") sys.exit(1) if not IS_WIN32_ENV: diff --git a/home.admin/_provision.setup.sh b/home.admin/_provision.setup.sh index e983f443..ad9ca28f 100755 --- a/home.admin/_provision.setup.sh +++ b/home.admin/_provision.setup.sh @@ -163,7 +163,7 @@ if [ "${lightning}" == "lnd" ]; then # if user uploaded an LND rescue file (raspiblitz.setup) if [ "${lndrescue}" != "" ]; then echo "Restore LND data from uploaded rescue file ${lndrescue} ..." >> ${logFile} - source <(/home/admin/config.scripts/lnd.backup.sh lnd-import ${lndrescue}) + source <(/home/admin/config.scripts/lnd.backup.sh lnd-import "${lndrescue}") if [ "${error}" != "" ]; then /home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lndrescue-import" "setup: lnd import backup failed" "${error}" ${logFile} exit 6 @@ -234,15 +234,6 @@ if [ "${lightning}" == "lnd" ]; then exit 9 fi - # import static channel backup if was uploaded - if [ "${staticchannelbackup}" != "" ]; then - echo "Preparing static channel backup file ${staticchannelbackup} ..." >> ${logFile} - source <(/home/admin/config.scripts/lnd.backup.sh scb-import ${staticchannelbackup}) - if [ "${error}" != "" ]; then - /home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-scb-import" "lnd.backup.sh scb-import returned error" "/home/admin/config.scripts/lnd.backup.sh scb-import ${staticchannelbackup} --> ${error}" ${logFile} - exit 10 - fi - fi # WALLET --> LNDRESCUE if [ "${lndrescue}" != "" ];then @@ -250,37 +241,28 @@ if [ "${lightning}" == "lnd" ]; then echo "WALLET --> LNDRESCUE " >> ${logFile} /home/admin/_cache.sh set message "LND Wallet (LNDRESCUE)" - # WALLET --> SEED + SCB - elif [ "${seedWords}" != "" ] && [ "${staticchannelbackup}" != "" ]; then - - echo "WALLET --> SEED + SCB " >> ${logFile} - /home/admin/_cache.sh set message "LND Wallet (SEED & SCB)" - if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi - source <(/home/admin/config.scripts/lnd.initwallet.py scb mainnet ${passwordC} "${seedWords}" "${staticchannelbackup}" ${seedPassword}) - if [ "${err}" != "" ]; then - /home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-wallet-seed+scb" "lnd.initwallet.py scb returned error" "/home/admin/config.scripts/lnd.initwallet.py scb mainnet ... --> ${err} + ${errMore}" ${logFile} - exit 11 - fi - - # WALLET --> SEED + # WALLET --> SEED (+ SCB to be restored later) elif [ "${seedWords}" != "" ]; then echo "WALLET --> SEED" >> ${logFile} /home/admin/_cache.sh set message "LND Wallet (SEED)" if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi - source <(/home/admin/config.scripts/lnd.initwallet.py seed mainnet ${passwordC} "${seedWords}" ${seedPassword}) + source <(/home/admin/config.scripts/lnd.initwallet.py seed mainnet "${passwordC}" "${seedWords}" "${seedPassword}") if [ "${err}" != "" ]; then /home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-wallet-seed" "lnd.initwallet.py seed returned error" "/home/admin/config.scripts/lnd.initwallet.py seed mainnet ... --> ${err} + ${errMore}" ${logFile} exit 12 fi - + + echo "Rescanning addresses takes a long time" >> ${logFile} + echo "use the RESCAN option in the REPAIR-LND menu after LND is synced or 'lncli unlock ---recovery_window 5000'" >> ${logFile} + # WALLET --> NEW else echo "WALLET --> NEW" >> ${logFile} /home/admin/_cache.sh set message "LND Wallet (NEW)" if ! pip list | grep grpc; then sudo -H python3 -m pip install grpcio==1.38.1; fi - source <(/home/admin/config.scripts/lnd.initwallet.py new mainnet ${passwordC}) + source <(/home/admin/config.scripts/lnd.initwallet.py new mainnet "${passwordC}") if [ "${err}" != "" ]; then /home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-wallet-new" "lnd.initwallet.py new returned error" "/home/admin/config.scripts/lnd.initwallet.py new mainnet ... --> ${err} + ${errMore}" ${logFile} /home/admin/_cache.sh set state "error" @@ -303,11 +285,16 @@ if [ "${lightning}" == "lnd" ]; then /home/admin/_cache.sh set message "LND Credentials" # check if macaroon exists now - if not fail - macaroonExists=$(sudo -u bitcoin ls -la /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon 2>/dev/null | grep -c admin.macaroon) - if [ ${macaroonExists} -eq 0 ]; then + attempt=0 + while [ $(sudo -u bitcoin ls -la /home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon 2>/dev/null | grep -c admin.macaroon) -eq 0 ]; do + echo "Waiting 2 mins for LND to create macaroons ... (${attempt}0s)" >> ${logFile} + sleep 10 + attempt=$((attempt+1)) + if [ $attempt -eq 12 ];then /home/admin/config.scripts/blitz.error.sh _provision.setup.sh "lnd-no-macaroons" "lnd did not create macaroons" "/home/bitcoin/.lnd/data/chain/${network}/${chain}net/admin.macaroon --> missing" ${logFile} exit 14 - fi + fi + done # now sync macaroons & TLS to other users /home/admin/config.scripts/lnd.credentials.sh sync >> ${logFile} @@ -319,6 +306,40 @@ if [ "${lightning}" == "lnd" ]; then exit 15 fi + # restore SCB + if [ "${staticchannelbackup}" != "" ]; then + + # LND was restarted so need to unlock + echo "WALLET --> UNLOCK WALLET - SCAN 0" >> ${logFile} + /home/admin/_cache.sh set message "LND Wallet Unlock - scan 0" + source <(/home/admin/config.scripts/lnd.initwallet.py unlock "${chain}net" "${passwordC}" 0) + if [ "${err}" != "" ]; then + echo "lnd-wallet-unlock" "lnd.initwallet.py unlock returned error" "/home/admin/config.scripts/lnd.initwallet.py unlock ${chain}net ... --> ${err} + ${errMore}" + if [ "${errMore}" = "wallet already unlocked, WalletUnlocker service is no longer available" ]; then + echo "The wallet is already unlocked, continue." + else + exit 11 + fi + fi + + echo "WALLET --> SCB" >> ${logFile} + /home/admin/_cache.sh set message "LND Wallet (SEED & SCB)" + macaroonPath="/home/admin/.lnd/data/chain/${network}/${chain}net/admin.macaroon" + source <(/home/admin/config.scripts/lnd.initwallet.py scb "${chain}net" "/home/admin/channel.backup" "${macaroonPath}") + if [ "${err}" != "" ]; then + echo "lnd-wallet-seed+scb" "lnd.initwallet.py scb returned error" "/home/admin/config.scripts/lnd.initwallet.py scb mainnet ... --> ${err} + ${errMore}" ${logFile} + if [ "${errMore}" = "server is still in the process of starting" ]; then + echo "The SCB recovery is not possible now - use the RETRYSCB option the REPAIR-LND menu after LND is synced." >> ${logFile} + echo "Can repeat the SCB recovery until all peers have force closed the channels to this node." >> ${logFile} + else + exit 12 + fi + fi + fi + + echo "Rescanning addresses takes a long time" >> ${logFile} + echo "use the RESCAN option in the REPAIR-LND menu after LND is synced or 'lncli unlock ---recovery_window 5000'" >> ${logFile} + # stop lnd for the rest of the provision process echo "stopping lnd for the rest provision again (will start on next boot)" >> ${logFile} systemctl stop lnd >> ${logFile} @@ -339,7 +360,7 @@ if [ "${lightning}" == "cl" ]; then if [ "${clrescue}" != "" ]; then echo "Restore CL data from uploaded rescue file ${clrescue} ..." >> ${logFile} - source <(/home/admin/config.scripts/cl.backup.sh cl-import ${clrescue}) + source <(/home/admin/config.scripts/cl.backup.sh cl-import "${clrescue}") if [ "${error}" != "" ]; then /home/admin/config.scripts/blitz.error.sh _provision.setup.sh "cl-import-backup" "cl.backup.sh cl-import with error" "/home/admin/config.scripts/cl.backup.sh cl-import ${clrescue} --> ${error}" ${logFile} exit 16 @@ -357,12 +378,12 @@ if [ "${lightning}" == "cl" ]; then if [ "$(grep -c "hsm_secret is not encrypted" < "$output")" -gt 0 ];then echo "# The hsm_secret is not encrypted" echo "# Record in raspiblitz.conf" - /home/admin/config.scripts/blitz.conf.sh set ${netprefix}clEncryptedHSM "off" + /home/admin/config.scripts/blitz.conf.sh set "${netprefix}clEncryptedHSM" "off" else cat $output echo "# The hsm_secret is encrypted" echo "# Record in raspiblitz.conf" - /home/admin/config.scripts/blitz.conf.sh set ${netprefix}clEncryptedHSM "off" + /home/admin/config.scripts/blitz.conf.sh set "${netprefix}clEncryptedHSM" "off" fi # set the lightningd service file on each active network diff --git a/home.admin/config.scripts/blitz.subscriptions.ip2tor.py b/home.admin/config.scripts/blitz.subscriptions.ip2tor.py index 31264246..4bee943d 100755 --- a/home.admin/config.scripts/blitz.subscriptions.ip2tor.py +++ b/home.admin/config.scripts/blitz.subscriptions.ip2tor.py @@ -17,8 +17,8 @@ sys.path.append('/home/admin/raspiblitz/home.admin/BlitzPy/blitzpy') from config import RaspiBlitzConfig from exceptions import BlitzError -from lndlibs import rpc_pb2 as lnrpc -from lndlibs import rpc_pb2_grpc as rpcstub +from lndlibs import lightning_pb2 as lnrpc +from lndlibs import lightning_pb2_grpc as rpcstub ##################### # SCRIPT INFO diff --git a/home.admin/config.scripts/blitz.touchscreen.sh b/home.admin/config.scripts/blitz.touchscreen.sh index c4aad159..322f3f1d 100755 --- a/home.admin/config.scripts/blitz.touchscreen.sh +++ b/home.admin/config.scripts/blitz.touchscreen.sh @@ -50,12 +50,12 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then /home/admin/python3-env-lnd/bin/pip install /home/admin/raspiblitz/home.admin/BlitzTUI/ # make sure lndlibs are patched for compatibility for both Python2 and Python3 - if ! grep -Fxq "from __future__ import absolute_import" /home/admin/config.scripts/lndlibs/rpc_pb2_grpc.py; then - sed -i -E '1 a from __future__ import absolute_import' /home/admin/config.scripts/lndlibs/rpc_pb2_grpc.py + if ! grep -Fxq "from __future__ import absolute_import" /home/admin/config.scripts/lndlibs/lightning_pb2_grpc.py; then + sed -i -E '1 a from __future__ import absolute_import' /home/admin/config.scripts/lndlibs/lightning_pb2_grpc.py fi - if ! grep -Eq "^from . import.*" /home/admin/config.scripts/lndlibs/rpc_pb2_grpc.py; then - sed -i -E 's/^(import.*_pb2)/from . \1/' /home/admin/config.scripts/lndlibs/rpc_pb2_grpc.py + if ! grep -Eq "^from . import.*" /home/admin/config.scripts/lndlibs/lightning_pb2_grpc.py; then + sed -i -E 's/^(import.*_pb2)/from . \1/' /home/admin/config.scripts/lndlibs/lightning_pb2_grpc.py fi # switch to desktop login diff --git a/home.admin/config.scripts/lnd.backup.sh b/home.admin/config.scripts/lnd.backup.sh index ffd6c8e1..79d6e91b 100755 --- a/home.admin/config.scripts/lnd.backup.sh +++ b/home.admin/config.scripts/lnd.backup.sh @@ -443,7 +443,7 @@ if [ ${mode} = "scb-import-gui" ]; then # run import process echo "OK importing channel.backup file ..." - source <(sudo /home/admin/config.scripts/lnd.backup.sh scb-import ${filename}) + source <(sudo /home/admin/config.scripts/lnd.backup.sh scb-import "${filename}") # give final info echo "DONE - placed SCB file at /home/admin/channel.backup" diff --git a/home.admin/config.scripts/lnd.initwallet.py b/home.admin/config.scripts/lnd.initwallet.py index b34cce4f..bcc2bc0a 100755 --- a/home.admin/config.scripts/lnd.initwallet.py +++ b/home.admin/config.scripts/lnd.initwallet.py @@ -1,12 +1,9 @@ #!/usr/bin/env python3 -import binascii import os import sys from pathlib import Path import grpc -from lndlibs import walletunlocker_pb2 as lnrpc -from lndlibs import walletunlocker_pb2_grpc as rpcstub if sys.version_info < (3, 0): print("Can't run on Python2") @@ -17,13 +14,24 @@ if len(sys.argv) <= 1 or sys.argv[1] in ["-h", "--help", "help"]: print("# creating or recovering the LND wallet") print("# lnd.initwallet.py new [mainnet|testnet|signet] [walletpassword] [?seedpassword]") print("# lnd.initwallet.py seed [mainnet|testnet|signet] [walletpassword] [\"seeds-words-seperated-spaces\"] [?seedpassword]") - print("# lnd.initwallet.py scb [mainnet|testnet|signet] [walletpassword] [\"seeds-words-seperated-spaces\"] [filepathSCB] [?seedpassword]") + print("# lnd.initwallet.py unlock [mainnet|testnet|signet] [walletpassword] [recovery_window]") + print("# lnd.initwallet.py scb [mainnet|testnet|signet] [filepathSCB] [macaroonPath]") print("# lnd.initwallet.py change-password [mainnet|testnet|signet] [walletpassword-old] [walletpassword-new]") print("err='missing parameters'") sys.exit(1) mode = sys.argv[1] +if mode == "scb": + import codecs + from lndlibs import lightning_pb2 as lnrpc + from lndlibs import lightning_pb2_grpc as lightningstub + +else: + from lndlibs import walletunlocker_pb2 as lnrpc + from lndlibs import walletunlocker_pb2_grpc as rpcstub + + def new(stub, wallet_password="", seed_entropy=None): if seed_entropy: # provide 16-bytes of static data to get reproducible seeds for TESTING!) @@ -86,7 +94,7 @@ def seed(stub, wallet_password="", seed_words="", seed_password=""): request = lnrpc.InitWalletRequest( wallet_password=wallet_password.encode(), cipher_seed_mnemonic=[x.encode() for x in seed_words], - recovery_window=5000, + recovery_window=0, aezeed_passphrase=seed_password.encode() ) @@ -105,42 +113,58 @@ def seed(stub, wallet_password="", seed_words="", seed_password=""): print("err='InitWallet'") sys.exit(1) - -def scb(stub, wallet_password="", seed_words="", seed_password="", file_path_scb=""): - with open(file_path_scb, 'rb') as f: - content = f.read() - scb_hex_str = binascii.hexlify(content) - print(scb_hex_str) - - request = lnrpc.InitWalletRequest( +def unlock(stub, wallet_password="", scan_depth=int): + request = lnrpc.UnlockWalletRequest( wallet_password=wallet_password.encode(), - cipher_seed_mnemonic=[x.encode() for x in seed_words], - recovery_window=5000, - aezeed_passphrase=seed_password.encode(), - channel_backups=scb_hex_str.encode() + recovery_window=scan_depth, ) try: - response = stub.InitWallet(request) + response = stub.UnlockWallet(request) + print("# ok - wallet unlocked - using recovery window:", scan_depth) + except grpc.RpcError as rpc_error_call: code = rpc_error_call.code() print(code, file=sys.stderr) details = rpc_error_call.details() - print("err='RPCError InitWallet'") + print("err='RPCError UnlockWallet'") print("errMore=\"" + details + "\"") sys.exit(1) except: e = sys.exc_info()[0] print(e, file=sys.stderr) - print("err='InitWallet'") + print("err='UnlockWallet'") + sys.exit(1) + + +def scb(stub, file_path_scb="", macaroon_path=""): + macaroon_file = Path(macaroon_path) + print(macaroon_file) + macaroon = codecs.encode(open(macaroon_file, 'rb').read(), 'hex') + with open(file_path_scb, 'rb') as f: + content = f.read() + request = lnrpc.RestoreChanBackupRequest( + multi_chan_backup=content + ) + + try: + response = stub.RestoreChannelBackups(request, metadata=[('macaroon', macaroon)]) + print(response) + except grpc.RpcError as rpc_error_call: + code = rpc_error_call.code() + print(code, file=sys.stderr) + details = rpc_error_call.details() + print("err='RPCError RestoreChanBackupRequest'") + print("errMore=\"" + details + "\"") + sys.exit(1) + except: + e = sys.exc_info()[0] + print(e, file=sys.stderr) + print("err='RestoreChanBackupRequest'") sys.exit(1) - # TODO(rootzoll) implement creating from seed/scb - print("err='TODO: implement creating from seed/scb'") - sys.exit(1) def change_password(stub, wallet_password="", wallet_password_new=""): - request = lnrpc.ChangePasswordRequest( current_password=wallet_password.encode(), new_password=wallet_password_new.encode() @@ -165,6 +189,7 @@ def change_password(stub, wallet_password="", wallet_password_new=""): print("err='ChangePassword'") sys.exit(1) + def parse_args(): network = "" wallet_password = "" @@ -172,6 +197,8 @@ def parse_args(): seed_words = "" seed_password = "" filepath_scb = "" + macaroon_path = "" + scan_depth = int if len(sys.argv) > 2: network = sys.argv[2] @@ -207,7 +234,7 @@ def parse_args(): print("err='missing parameters'") sys.exit(1) - elif mode == "seed" or mode == "scb": + elif mode == "seed": if len(sys.argv) > 3: wallet_password = sys.argv[3] @@ -228,39 +255,66 @@ def parse_args(): print("err='not correct amount of parameter - missing seed string'") sys.exit(1) - if mode == "seed": - - if len(sys.argv) > 5: + if len(sys.argv) > 5: seed_password = sys.argv[5] - elif mode == "scb": - if len(sys.argv) > 5: - filepath_scb = sys.argv[5] - scb_file = Path(filepath_scb) - if scb_file.is_file(): - print("# OK SCB file exists") - else: - print("err='the given filepathSCB - file does not exists or no permission'") - sys.exit(1) - else: - print("err='not correct amount of parameter - missing seed filepathSCB'") + elif mode == "unlock": + + if len(sys.argv) > 3: + wallet_password = sys.argv[3] + if len(wallet_password) < 8: + print("err='wallet password is too short'") sys.exit(1) + else: + print("err='not correct amount of parameter - missing wallet password'") + sys.exit(1) + if len(sys.argv) > 4: + scan_depth = int(sys.argv[4]) + if type(scan_depth) is not int: + print("err='expecting a number for recovery_window'") + sys.exit(1) + else: + print("err='not correct amount of parameter - missing recovery_window'") + sys.exit(1) - if len(sys.argv) > 6: - seed_password = sys.argv[5] + elif mode == "scb": + + if len(sys.argv) > 3: + filepath_scb = sys.argv[3] + scb_file = Path(filepath_scb) + if scb_file.is_file(): + print("# OK the SCB file exists") + else: + print("err='the given filepathSCB - file does not exist or no permission'") + sys.exit(1) + else: + print("err='not correct amount of parameter - missing filepathSCB'") + sys.exit(1) + + if len(sys.argv) > 4: + macaroon_path = sys.argv[4] + macaroon_file = Path(macaroon_path) + if macaroon_file.is_file(): + print("# OK the admin.macaroon exists") + else: + print("err='the given macaroonPath - file does not exist or no permission'") + sys.exit(1) + else: + print("err='not correct amount of parameter - missing macaroonPath'") + sys.exit(1) else: print("err='unknown mode parameter - run without any parameters to see options'") sys.exit(1) - return network, wallet_password, seed_words, seed_password, filepath_scb, wallet_password_new + return network, wallet_password, seed_words, seed_password, filepath_scb, macaroon_path, wallet_password_new, scan_depth def main(): - network, wallet_password, seed_words, seed_password, file_path_scb, wallet_password_new = parse_args() + network, wallet_password, seed_words, seed_password, file_path_scb, macaroon_path, wallet_password_new, scan_depth = parse_args() grpcEndpoint="localhost:0" if network == "mainnet": @@ -277,7 +331,10 @@ def main(): cert = open('/mnt/hdd/lnd/tls.cert', 'rb').read() ssl_creds = grpc.ssl_channel_credentials(cert) channel = grpc.secure_channel(grpcEndpoint, ssl_creds) - stub = rpcstub.WalletUnlockerStub(channel) + if mode == "scb": + stub = lightningstub.LightningStub(channel) + else: + stub = rpcstub.WalletUnlockerStub(channel) if mode == "new": print("# *** CREATING NEW LND WALLET ***") @@ -287,9 +344,13 @@ def main(): print("# *** RECOVERING LND WALLET FROM SEED ***") seed(stub, wallet_password, seed_words, seed_password) + elif mode == "unlock": + print("# *** UNLOCK WALLET WITH PASSWORD_C ***") + unlock(stub, wallet_password, scan_depth) + elif mode == "scb": - print("# *** RECOVERING LND WALLET FROM SEED + SCB ***") - scb(stub, wallet_password, seed_words, seed_password, file_path_scb) + print("# *** RECOVERING LND CHANNEL FUNDS FROM SCB ***") + scb(stub, file_path_scb, macaroon_path) elif mode == "change-password": print("# *** SETTING NEW PASSWORD FOR WALLET ***") diff --git a/home.admin/config.scripts/lnd.install.sh b/home.admin/config.scripts/lnd.install.sh index 64f1ee50..90804f4d 100644 --- a/home.admin/config.scripts/lnd.install.sh +++ b/home.admin/config.scripts/lnd.install.sh @@ -225,6 +225,9 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then # make sure binary is installed (will skip if already done) /home/admin/config.scripts/lnd.install.sh install + echo "# Make sure the user bitcoin is in the debian-tor group" + sudo usermod -a -G debian-tor bitcoin + sudo ufw allow ${portprefix}9735 comment "${netprefix}lnd" sudo ufw allow ${portprefix}8080 comment "${netprefix}lnd REST" sudo ufw allow 1${rpcportmod}009 comment "${netprefix}lnd RPC" diff --git a/home.admin/config.scripts/lndlibs/README.md b/home.admin/config.scripts/lndlibs/README.md index a8005cef..81fa4155 100644 --- a/home.admin/config.scripts/lndlibs/README.md +++ b/home.admin/config.scripts/lndlibs/README.md @@ -11,9 +11,9 @@ rm -rf googleapis git clone https://github.com/googleapis/googleapis.git rm -rf protobuffs mkdir protobuffs -curl -o ./rpc.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/rpc.proto curl -o ./walletunlocker.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/walletunlocker.proto -python3 -m grpc_tools.protoc --proto_path=googleapis:. --python_out=./protobuffs --grpc_python_out=./protobuffs ./rpc.proto ./walletunlocker.proto +curl -o ./lightning.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/lightning.proto +python3 -m grpc_tools.protoc --proto_path=googleapis:. --python_out=./protobuffs --grpc_python_out=./protobuffs ./walletunlocker.proto ./lightning.proto cp ./*.proto ./protobuffs ```` @@ -23,12 +23,12 @@ Now copy the generated RPC libs per SCP over to your Laptop and add them to the scp -r admin@192.168.X.X:/home/admin/protobuffs ./protobuffs -Make sure the first lines (ignore comments) of the `rpc_pb2_grpc.py` look like the following for python3 compatibility: +Make sure the first lines (ignore comments) of the `lightning_pb2_grpc.py` look like the following for python3 compatibility: ``` from __future__ import absolute_import import grpc -from . import rpc_pb2 as rpc__pb2 +from . import lightning_pb2 as lightning__pb2 ``` Make sure the first lines (ignore comments) of the `walletunlocker_pb2_grpc.py` look like the following for python3 compatibility: @@ -50,7 +50,7 @@ from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() -from . import rpc_pb2 as rpc__pb2 +from . import lightning_pb2 as lightning__pb2 ``` diff --git a/home.admin/config.scripts/lndlibs/rpc.proto b/home.admin/config.scripts/lndlibs/lightning.proto similarity index 84% rename from home.admin/config.scripts/lndlibs/rpc.proto rename to home.admin/config.scripts/lndlibs/lightning.proto index 7fec6fec..8aab7bb6 100644 --- a/home.admin/config.scripts/lndlibs/rpc.proto +++ b/home.admin/config.scripts/lndlibs/lightning.proto @@ -58,7 +58,7 @@ service Lightning { /* lncli: `sendcoins` SendCoins executes a request to send coins to a particular address. Unlike SendMany, this RPC call only allows creating a single output at a time. If - neither target_conf, or sat_per_byte are set, then the internal wallet will + neither target_conf, or sat_per_vbyte are set, then the internal wallet will consult its fee model to determine a fee for the default confirmation target. */ @@ -82,7 +82,7 @@ service Lightning { /* lncli: `sendmany` SendMany handles a request for a transaction that creates multiple specified - outputs in parallel. If neither target_conf, or sat_per_byte are set, then + outputs in parallel. If neither target_conf, or sat_per_vbyte are set, then the internal wallet will consult its fee model to determine a fee for the default confirmation target. */ @@ -200,6 +200,16 @@ service Lightning { */ rpc OpenChannel (OpenChannelRequest) returns (stream OpenStatusUpdate); + /* lncli: `batchopenchannel` + BatchOpenChannel attempts to open multiple single-funded channels in a + single transaction in an atomic way. This means either all channel open + requests succeed at once or all attempts are aborted if any of them fail. + This is the safer variant of using PSBTs to manually fund a batch of + channels through the OpenChannel RPC. + */ + rpc BatchOpenChannel (BatchOpenChannelRequest) + returns (BatchOpenChannelResponse); + /* FundingStateStep is an advanced funding related call that allows the caller to either execute some preparatory steps for a funding workflow, or @@ -330,7 +340,14 @@ service Lightning { rpc ListPayments (ListPaymentsRequest) returns (ListPaymentsResponse); /* - DeleteAllPayments deletes all outgoing payments from DB. + DeletePayment deletes an outgoing payment from DB. Note that it will not + attempt to delete an In-Flight payment, since that would be unsafe. + */ + rpc DeletePayment (DeletePaymentRequest) returns (DeletePaymentResponse); + + /* + DeleteAllPayments deletes all outgoing payments from DB. Note that it will + not attempt to delete In-Flight payments, since that would be unsafe. */ rpc DeleteAllPayments (DeleteAllPaymentsRequest) returns (DeleteAllPaymentsResponse); @@ -426,8 +443,9 @@ service Lightning { /* lncli: `fwdinghistory` ForwardingHistory allows the caller to query the htlcswitch for a record of all HTLCs forwarded within the target time range, and integer offset - within that time range. If no time-range is specified, then the first chunk - of the past 24 hrs of forwarding history are returned. + within that time range, for a maximum number of events. If no maximum number + of events is specified, up to 100 events will be returned. If no time-range + is specified, then events will be returned in the order that they occured. A list of forwarding events are returned. The size of each forwarding event is 40 bytes, and the max message size able to be returned in gRPC is 4 MiB. @@ -514,6 +532,72 @@ service Lightning { */ rpc ListPermissions (ListPermissionsRequest) returns (ListPermissionsResponse); + + /* + CheckMacaroonPermissions checks whether a request follows the constraints + imposed on the macaroon and that the macaroon is authorized to follow the + provided permissions. + */ + rpc CheckMacaroonPermissions (CheckMacPermRequest) + returns (CheckMacPermResponse); + + /* + RegisterRPCMiddleware adds a new gRPC middleware to the interceptor chain. A + gRPC middleware is software component external to lnd that aims to add + additional business logic to lnd by observing/intercepting/validating + incoming gRPC client requests and (if needed) replacing/overwriting outgoing + messages before they're sent to the client. When registering the middleware + must identify itself and indicate what custom macaroon caveats it wants to + be responsible for. Only requests that contain a macaroon with that specific + custom caveat are then sent to the middleware for inspection. The other + option is to register for the read-only mode in which all requests/responses + are forwarded for interception to the middleware but the middleware is not + allowed to modify any responses. As a security measure, _no_ middleware can + modify responses for requests made with _unencumbered_ macaroons! + */ + rpc RegisterRPCMiddleware (stream RPCMiddlewareResponse) + returns (stream RPCMiddlewareRequest); + + /* lncli: `sendcustom` + SendCustomMessage sends a custom peer message. + */ + rpc SendCustomMessage (SendCustomMessageRequest) + returns (SendCustomMessageResponse); + + /* lncli: `subscribecustom` + SubscribeCustomMessages subscribes to a stream of incoming custom peer + messages. + */ + rpc SubscribeCustomMessages (SubscribeCustomMessagesRequest) + returns (stream CustomMessage); +} + +message SubscribeCustomMessagesRequest { +} + +message CustomMessage { + // Peer from which the message originates + bytes peer = 1; + + // Message type. This value will be in the custom range (>= 32768). + uint32 type = 2; + + // Raw message data + bytes data = 3; +} + +message SendCustomMessageRequest { + // Peer to send the message to + bytes peer = 1; + + // Message type. This value needs to be in the custom range (>= 32768). + uint32 type = 2; + + // Raw message data. + bytes data = 3; +} + +message SendCustomMessageResponse { } message Utxo { @@ -582,6 +666,9 @@ message GetTransactionsRequest { default to this option. */ int32 end_height = 2; + + // An optional filter to only include transactions relevant to an account. + string account = 3; } message TransactionDetails { @@ -708,6 +795,11 @@ message SendRequest { fallback. */ repeated FeatureBit dest_features = 15; + + /* + The payment address of the generated invoice. + */ + bytes payment_addr = 16; } message SendResponse { @@ -783,6 +875,9 @@ message ChannelAcceptRequest { // A bit-field which the initiator uses to specify proposed channel // behavior. uint32 channel_flags = 13; + + // The commitment type the initiator wishes to use for the proposed channel. + CommitmentType commitment_type = 14; } message ChannelAcceptResponse { @@ -891,14 +986,25 @@ message EstimateFeeRequest { // The target number of blocks that this transaction should be confirmed // by. int32 target_conf = 2; + + // The minimum number of confirmations each one of your outputs used for + // the transaction must satisfy. + int32 min_confs = 3; + + // Whether unconfirmed outputs should be used as inputs for the transaction. + bool spend_unconfirmed = 4; } message EstimateFeeResponse { // The total fee in satoshis. int64 fee_sat = 1; - // The fee rate in satoshi/byte. - int64 feerate_sat_per_byte = 2; + // Deprecated, use sat_per_vbyte. + // The fee rate in satoshi/vbyte. + int64 feerate_sat_per_byte = 2 [deprecated = true]; + + // The fee rate in satoshi/vbyte. + uint64 sat_per_vbyte = 3; } message SendManyRequest { @@ -909,9 +1015,14 @@ message SendManyRequest { // by. int32 target_conf = 3; - // A manual fee rate set in sat/byte that should be used when crafting the + // A manual fee rate set in sat/vbyte that should be used when crafting the // transaction. - int64 sat_per_byte = 5; + uint64 sat_per_vbyte = 4; + + // Deprecated, use sat_per_vbyte. + // A manual fee rate set in sat/vbyte that should be used when crafting the + // transaction. + int64 sat_per_byte = 5 [deprecated = true]; // An optional label for the transaction, limited to 500 characters. string label = 6; @@ -939,9 +1050,14 @@ message SendCoinsRequest { // by. int32 target_conf = 3; - // A manual fee rate set in sat/byte that should be used when crafting the + // A manual fee rate set in sat/vbyte that should be used when crafting the // transaction. - int64 sat_per_byte = 5; + uint64 sat_per_vbyte = 4; + + // Deprecated, use sat_per_vbyte. + // A manual fee rate set in sat/vbyte that should be used when crafting the + // transaction. + int64 sat_per_byte = 5 [deprecated = true]; /* If set, then the amount field will be ignored, and lnd will attempt to @@ -971,6 +1087,9 @@ message ListUnspentRequest { // The maximum number of confirmations to be included. int32 max_confs = 2; + + // An optional filter to only include outputs belonging to an account. + string account = 3; } message ListUnspentResponse { // A list of utxos @@ -991,8 +1110,14 @@ enum AddressType { } message NewAddressRequest { - // The address type + // The type of address to generate. AddressType type = 1; + + /* + The name of the account to generate a new address for. If empty, the + default wallet account is used. + */ + string account = 2; } message NewAddressResponse { // The newly generated wallet address @@ -1005,6 +1130,12 @@ message SignMessageRequest { base64. */ bytes msg = 1; + + /* + Instead of the default double-SHA256 hashing of the message before signing, + only use one round of hashing instead. + */ + bool single_hash = 2; } message SignMessageResponse { // The signature for the given message @@ -1076,11 +1207,16 @@ message HTLC { } enum CommitmentType { + /* + Returned when the commitment type isn't known or unavailable. + */ + UNKNOWN_COMMITMENT_TYPE = 0; + /* A channel using the legacy commitment format having tweaked to_remote keys. */ - LEGACY = 0; + LEGACY = 1; /* A channel that uses the modern commitment format where the key in the @@ -1088,19 +1224,23 @@ enum CommitmentType { up and recovery easier as when the channel is closed, the funds go directly to that key. */ - STATIC_REMOTE_KEY = 1; + STATIC_REMOTE_KEY = 2; /* A channel that uses a commitment format that has anchor outputs on the commitments, allowing fee bumping after a force close transaction has been broadcast. */ - ANCHORS = 2; + ANCHORS = 3; /* - Returned when the commitment type isn't known or unavailable. + A channel that uses a commitment type that builds upon the anchors + commitment format, but in addition requires a CLTV clause to spend outputs + paying to the channel initiator. This is intended for use on leased channels + to guarantee that the channel initiator has no incentives to close a leased + channel before its maturity date. */ - UNKNOWN_COMMITMENT_TYPE = 999; + SCRIPT_ENFORCED_LEASE = 4; } message ChannelConstraints { @@ -1522,6 +1662,11 @@ message Peer { zero, we have not observed any flaps for this peer. */ int64 last_flap_ns = 14; + + /* + The last ping payload the peer has sent to us. + */ + bytes last_ping_payload = 15; } message TimestampedError { @@ -1680,9 +1825,10 @@ message CloseChannelRequest { // confirmed by. int32 target_conf = 3; - // A manual fee rate set in sat/byte that should be used when crafting the + // Deprecated, use sat_per_vbyte. + // A manual fee rate set in sat/vbyte that should be used when crafting the // closure transaction. - int64 sat_per_byte = 4; + int64 sat_per_byte = 4 [deprecated = true]; /* An optional address to send funds to in the case of a cooperative close. @@ -1691,6 +1837,10 @@ message CloseChannelRequest { to the upfront shutdown addresss. */ string delivery_address = 5; + + // A manual fee rate set in sat/vbyte that should be used when crafting the + // closure transaction. + uint64 sat_per_vbyte = 6; } message CloseStatusUpdate { @@ -1727,7 +1877,89 @@ message ReadyForPsbtFunding { bytes psbt = 3; } +message BatchOpenChannelRequest { + // The list of channels to open. + repeated BatchOpenChannel channels = 1; + + // The target number of blocks that the funding transaction should be + // confirmed by. + int32 target_conf = 2; + + // A manual fee rate set in sat/vByte that should be used when crafting the + // funding transaction. + int64 sat_per_vbyte = 3; + + // The minimum number of confirmations each one of your outputs used for + // the funding transaction must satisfy. + int32 min_confs = 4; + + // Whether unconfirmed outputs should be used as inputs for the funding + // transaction. + bool spend_unconfirmed = 5; + + // An optional label for the batch transaction, limited to 500 characters. + string label = 6; +} + +message BatchOpenChannel { + // The pubkey of the node to open a channel with. When using REST, this + // field must be encoded as base64. + bytes node_pubkey = 1; + + // The number of satoshis the wallet should commit to the channel. + int64 local_funding_amount = 2; + + // The number of satoshis to push to the remote side as part of the initial + // commitment state. + int64 push_sat = 3; + + // Whether this channel should be private, not announced to the greater + // network. + bool private = 4; + + // The minimum value in millisatoshi we will require for incoming HTLCs on + // the channel. + int64 min_htlc_msat = 5; + + // The delay we require on the remote's commitment transaction. If this is + // not set, it will be scaled automatically with the channel size. + uint32 remote_csv_delay = 6; + + /* + Close address is an optional address which specifies the address to which + funds should be paid out to upon cooperative close. This field may only be + set if the peer supports the option upfront feature bit (call listpeers + to check). The remote peer will only accept cooperative closes to this + address if it is set. + + Note: If this value is set on channel creation, you will *not* be able to + cooperatively close out to a different address. + */ + string close_address = 7; + + /* + An optional, unique identifier of 32 random bytes that will be used as the + pending channel ID to identify the channel while it is in the pre-pending + state. + */ + bytes pending_chan_id = 8; + + /* + The explicit commitment type to use. Note this field will only be used if + the remote peer supports explicit channel negotiation. + */ + CommitmentType commitment_type = 9; +} + +message BatchOpenChannelResponse { + repeated PendingUpdate pending_channels = 1; +} + message OpenChannelRequest { + // A manual fee rate set in sat/vbyte that should be used when crafting the + // funding transaction. + uint64 sat_per_vbyte = 1; + /* The pubkey of the node to open a channel with. When using REST, this field must be encoded as base64. @@ -1751,9 +1983,10 @@ message OpenChannelRequest { // confirmed by. int32 target_conf = 6; - // A manual fee rate set in sat/byte that should be used when crafting the + // Deprecated, use sat_per_vbyte. + // A manual fee rate set in sat/vbyte that should be used when crafting the // funding transaction. - int64 sat_per_byte = 7; + int64 sat_per_byte = 7 [deprecated = true]; // Whether this channel should be private, not announced to the greater // network. @@ -1813,6 +2046,12 @@ message OpenChannelRequest { transaction. */ uint32 max_local_csv = 17; + + /* + The explicit commitment type to use. Note this field will only be used if + the remote peer supports explicit channel negotiation. + */ + CommitmentType commitment_type = 18; } message OpenStatusUpdate { oneof update { @@ -1952,6 +2191,20 @@ message FundingPsbtVerify { // The pending channel ID of the channel to get the PSBT for. bytes pending_chan_id = 2; + + /* + Can only be used if the no_publish flag was set to true in the OpenChannel + call meaning that the caller is solely responsible for publishing the final + funding transaction. If skip_finalize is set to true then lnd will not wait + for a FundingPsbtFinalize state step and instead assumes that a transaction + with the same TXID as the passed in PSBT will eventually confirm. + IT IS ABSOLUTELY IMPERATIVE that the TXID of the transaction that is + eventually published does have the _same TXID_ as the verified PSBT. That + means no inputs or outputs can change, only signatures can be added. If the + TXID changes between this call and the publish step then the channel will + never be created and the funds will be in limbo. + */ + bool skip_finalize = 3; } message FundingPsbtFinalize { @@ -2056,6 +2309,12 @@ message PendingChannelsResponse { // The commitment type used by this channel. CommitmentType commitment_type = 9; + + // Total number of forwarding packages created in this channel. + int64 num_forwarding_packages = 10; + + // A set of flags showing the current state of the channel. + string chan_status_flags = 11; } message PendingOpenChannel { @@ -2200,6 +2459,7 @@ message ChannelEventUpdate { ChannelPoint active_channel = 3; ChannelPoint inactive_channel = 4; PendingUpdate pending_open_channel = 6; + ChannelPoint fully_resolved_channel = 7; } enum UpdateType { @@ -2208,13 +2468,23 @@ message ChannelEventUpdate { ACTIVE_CHANNEL = 2; INACTIVE_CHANNEL = 3; PENDING_OPEN_CHANNEL = 4; + FULLY_RESOLVED_CHANNEL = 5; } UpdateType type = 5; } +message WalletAccountBalance { + // The confirmed balance of the account (with >= 1 confirmations). + int64 confirmed_balance = 1; + + // The unconfirmed balance of the account (with 0 confirmations). + int64 unconfirmed_balance = 2; +} + message WalletBalanceRequest { } + message WalletBalanceResponse { // The balance of the wallet int64 total_balance = 1; @@ -2224,6 +2494,9 @@ message WalletBalanceResponse { // The unconfirmed balance of a wallet(with 0 confirmations) int64 unconfirmed_balance = 3; + + // A mapping of each wallet account's name to its balance. + map account_balance = 4; } message Amount { @@ -2338,7 +2611,7 @@ message QueryRoutesRequest { An optional field that can be used to pass an arbitrary set of TLV records to a peer which understands the new records. This can be used to pass application specific data during the payment attempt. If the destination - does not support the specified recrods, and error will be returned. + does not support the specified records, an error will be returned. Record types are required to be in the custom range >= 65536. When using REST, the values must be encoded as base64. */ @@ -2418,7 +2691,7 @@ message Hop { output index for the channel. */ uint64 chan_id = 1 [jstype = JS_STRING]; - int64 chan_capacity = 2; + int64 chan_capacity = 2 [deprecated = true]; int64 amt_to_forward = 3 [deprecated = true]; int64 fee = 4 [deprecated = true]; uint32 expiry = 5; @@ -2440,12 +2713,22 @@ message Hop { /* An optional TLV record that signals the use of an MPP payment. If present, - the receiver will enforce that that the same mpp_record is included in the - final hop payload of all non-zero payments in the HTLC set. If empty, a - regular single-shot payment is or was attempted. + the receiver will enforce that the same mpp_record is included in the final + hop payload of all non-zero payments in the HTLC set. If empty, a regular + single-shot payment is or was attempted. */ MPPRecord mpp_record = 10; + /* + An optional TLV record that signals the use of an AMP payment. If present, + the receiver will treat all received payments including the same + (payment_addr, set_id) pair as being part of one logical payment. The + payment will be settled by XORing the root_share's together and deriving the + child hashes and preimages according to BOLT XX. Must be used in conjunction + with mpp_record. + */ + AMPRecord amp_record = 12; + /* An optional set of key-value TLV records. This is useful within the context of the SendToRoute call as it allows callers to specify arbitrary K-V pairs @@ -2472,6 +2755,14 @@ message MPPRecord { int64 total_amt_msat = 10; } +message AMPRecord { + bytes root_share = 1; + + bytes set_id = 2; + + uint32 child_index = 3; +} + /* A path through the channel graph which runs over one or more channels in succession. This struct carries all the information required to craft the @@ -2697,11 +2988,21 @@ message GraphTopologyUpdate { repeated ClosedChannelUpdate closed_chans = 3; } message NodeUpdate { - repeated string addresses = 1; + /* + Deprecated, use node_addresses. + */ + repeated string addresses = 1 [deprecated = true]; + string identity_key = 2; + + /* + Deprecated, use features. + */ bytes global_features = 3 [deprecated = true]; + string alias = 4; string color = 5; + repeated NodeAddress node_addresses = 7; /* Features that the node has advertised in the init message, node @@ -2758,6 +3059,10 @@ message HopHint { uint32 cltv_expiry_delta = 5; } +message SetID { + bytes set_id = 1; +} + message RouteHint { /* A list of hop hints that when chained together can assist in reaching a @@ -2766,6 +3071,20 @@ message RouteHint { repeated HopHint hop_hints = 1; } +message AMPInvoiceState { + // The state the HTLCs associated with this setID are in. + InvoiceHTLCState state = 1; + + // The settle index of this HTLC set, if the invoice state is settled. + uint64 settle_index = 2; + + // The time this HTLC set was settled expressed in unix epoch. + int64 settle_time = 3; + + // The total amount paid for the sub-invoice expressed in milli satoshis. + int64 amt_paid_msat = 5; +} + message Invoice { /* An optional memo to attach along with the invoice. Used for record keeping @@ -2911,10 +3230,25 @@ message Invoice { /* The payment address of this invoice. This value will be used in MPP - payments, and also for newer invoies that always require the MPP paylaod + payments, and also for newer invoices that always require the MPP payload for added end-to-end security. */ bytes payment_addr = 26; + + /* + Signals whether or not this is an AMP invoice. + */ + bool is_amp = 27; + + /* + [EXPERIMENTAL]: + + Maps a 32-byte hex-encoded set ID to the sub-invoice AMP state for the + given set ID. This field is always populated for AMP invoices, and can be + used along side LookupInvoice to obtain the HTLC information related to a + given sub-invoice. + */ + map amp_invoice_state = 28; } enum InvoiceHTLCState { @@ -3253,6 +3587,16 @@ message ListPaymentsResponse { uint64 last_index_offset = 3; } +message DeletePaymentRequest { + // Payment hash to delete. + bytes payment_hash = 1; + + /* + Only delete failed HTLCs from the payment, not the payment itself. + */ + bool failed_htlcs_only = 2; +} + message DeleteAllPaymentsRequest { // Only delete failed payments. bool failed_payments_only = 1; @@ -3263,6 +3607,9 @@ message DeleteAllPaymentsRequest { bool failed_htlcs_only = 2; } +message DeletePaymentResponse { +} + message DeleteAllPaymentsResponse { } @@ -3270,6 +3617,13 @@ message AbandonChannelRequest { ChannelPoint channel_point = 1; bool pending_funding_shim_only = 2; + + /* + Override the requirement for being in dev mode by setting this to true and + confirming the user knows what they are doing and this is a potential foot + gun to lose funds if used on active channels. + */ + bool i_know_what_i_am_doing = 3; } message AbandonChannelResponse { @@ -3327,6 +3681,8 @@ enum FeatureBit { ANCHORS_OPT = 21; ANCHORS_ZERO_FEE_HTLC_REQ = 22; ANCHORS_ZERO_FEE_HTLC_OPT = 23; + AMP_REQ = 30; + AMP_OPT = 31; } message Feature { @@ -3403,7 +3759,28 @@ message PolicyUpdateRequest { // If true, min_htlc_msat is applied. bool min_htlc_msat_specified = 8; } +enum UpdateFailure { + UPDATE_FAILURE_UNKNOWN = 0; + UPDATE_FAILURE_PENDING = 1; + UPDATE_FAILURE_NOT_FOUND = 2; + UPDATE_FAILURE_INTERNAL_ERR = 3; + UPDATE_FAILURE_INVALID_PARAMETER = 4; +} + +message FailedUpdate { + // The outpoint in format txid:n + OutPoint outpoint = 1; + + // Reason for the policy update failure. + UpdateFailure reason = 2; + + // A string representation of the policy update error. + string update_error = 3; +} + message PolicyUpdateResponse { + // List of failed policy updates. + repeated FailedUpdate failed_updates = 1; } message ForwardingHistoryRequest { @@ -3571,6 +3948,12 @@ message BakeMacaroonRequest { // The root key ID used to create the macaroon, must be a positive integer. uint64 root_key_id = 2; + + /* + Informs the RPC on whether to allow external permissions that LND is not + aware of. + */ + bool allow_external_permissions = 3; } message BakeMacaroonResponse { // The hex encoded macaroon, serialized in binary format. @@ -3782,3 +4165,210 @@ message Op { string entity = 1; repeated string actions = 2; } + +message CheckMacPermRequest { + bytes macaroon = 1; + repeated MacaroonPermission permissions = 2; + string fullMethod = 3; +} + +message CheckMacPermResponse { + bool valid = 1; +} + +message RPCMiddlewareRequest { + /* + The unique ID of the intercepted original gRPC request. Useful for mapping + request to response when implementing full duplex message interception. For + streaming requests, this will be the same ID for all incoming and outgoing + middleware intercept messages of the _same_ stream. + */ + uint64 request_id = 1; + + /* + The raw bytes of the complete macaroon as sent by the gRPC client in the + original request. This might be empty for a request that doesn't require + macaroons such as the wallet unlocker RPCs. + */ + bytes raw_macaroon = 2; + + /* + The parsed condition of the macaroon's custom caveat for convenient access. + This field only contains the value of the custom caveat that the handling + middleware has registered itself for. The condition _must_ be validated for + messages of intercept_type stream_auth and request! + */ + string custom_caveat_condition = 3; + + /* + There are three types of messages that will be sent to the middleware for + inspection and approval: Stream authentication, request and response + interception. The first two can only be accepted (=forward to main RPC + server) or denied (=return error to client). Intercepted responses can also + be replaced/overwritten. + */ + oneof intercept_type { + /* + Intercept stream authentication: each new streaming RPC call that is + initiated against lnd and contains the middleware's custom macaroon + caveat can be approved or denied based upon the macaroon in the stream + header. This message will only be sent for streaming RPCs, unary RPCs + must handle the macaroon authentication in the request interception to + avoid an additional message round trip between lnd and the middleware. + */ + StreamAuth stream_auth = 4; + + /* + Intercept incoming gRPC client request message: all incoming messages, + both on streaming and unary RPCs, are forwarded to the middleware for + inspection. For unary RPC messages the middleware is also expected to + validate the custom macaroon caveat of the request. + */ + RPCMessage request = 5; + + /* + Intercept outgoing gRPC response message: all outgoing messages, both on + streaming and unary RPCs, are forwarded to the middleware for inspection + and amendment. The response in this message is the original response as + it was generated by the main RPC server. It can either be accepted + (=forwarded to the client), replaced/overwritten with a new message of + the same type, or replaced by an error message. + */ + RPCMessage response = 6; + } + + /* + The unique message ID of this middleware intercept message. There can be + multiple middleware intercept messages per single gRPC request (one for the + incoming request and one for the outgoing response) or gRPC stream (one for + each incoming message and one for each outgoing response). This message ID + must be referenced when responding (accepting/rejecting/modifying) to an + intercept message. + */ + uint64 msg_id = 7; +} + +message StreamAuth { + /* + The full URI (in the format /./MethodName, for + example /lnrpc.Lightning/GetInfo) of the streaming RPC method that was just + established. + */ + string method_full_uri = 1; +} + +message RPCMessage { + /* + The full URI (in the format /./MethodName, for + example /lnrpc.Lightning/GetInfo) of the RPC method the message was sent + to/from. + */ + string method_full_uri = 1; + + /* + Indicates whether the message was sent over a streaming RPC method or not. + */ + bool stream_rpc = 2; + + /* + The full canonical gRPC name of the message type (in the format + .TypeName, for example lnrpc.GetInfoRequest). + */ + string type_name = 3; + + /* + The full content of the gRPC message, serialized in the binary protobuf + format. + */ + bytes serialized = 4; +} + +message RPCMiddlewareResponse { + /* + The request message ID this response refers to. Must always be set when + giving feedback to an intercept but is ignored for the initial registration + message. + */ + uint64 ref_msg_id = 1; + + /* + The middleware can only send two types of messages to lnd: The initial + registration message that identifies the middleware and after that only + feedback messages to requests sent to the middleware. + */ + oneof middleware_message { + /* + The registration message identifies the middleware that's being + registered in lnd. The registration message must be sent immediately + after initiating the RegisterRpcMiddleware stream, otherwise lnd will + time out the attempt and terminate the request. NOTE: The middleware + will only receive interception messages for requests that contain a + macaroon with the custom caveat that the middleware declares it is + responsible for handling in the registration message! As a security + measure, _no_ middleware can intercept requests made with _unencumbered_ + macaroons! + */ + MiddlewareRegistration register = 2; + + /* + The middleware received an interception request and gives feedback to + it. The request_id indicates what message the feedback refers to. + */ + InterceptFeedback feedback = 3; + } +} + +message MiddlewareRegistration { + /* + The name of the middleware to register. The name should be as informative + as possible and is logged on registration. + */ + string middleware_name = 1; + + /* + The name of the custom macaroon caveat that this middleware is responsible + for. Only requests/responses that contain a macaroon with the registered + custom caveat are forwarded for interception to the middleware. The + exception being the read-only mode: All requests/responses are forwarded to + a middleware that requests read-only access but such a middleware won't be + allowed to _alter_ responses. As a security measure, _no_ middleware can + change responses to requests made with _unencumbered_ macaroons! + NOTE: Cannot be used at the same time as read_only_mode. + */ + string custom_macaroon_caveat_name = 2; + + /* + Instead of defining a custom macaroon caveat name a middleware can register + itself for read-only access only. In that mode all requests/responses are + forwarded to the middleware but the middleware isn't allowed to alter any of + the responses. + NOTE: Cannot be used at the same time as custom_macaroon_caveat_name. + */ + bool read_only_mode = 3; +} + +message InterceptFeedback { + /* + The error to return to the user. If this is non-empty, the incoming gRPC + stream/request is aborted and the error is returned to the gRPC client. If + this value is empty, it means the middleware accepts the stream/request/ + response and the processing of it can continue. + */ + string error = 1; + + /* + A boolean indicating that the gRPC response should be replaced/overwritten. + As its name suggests, this can only be used as a feedback to an intercepted + response RPC message and is ignored for feedback on any other message. This + boolean is needed because in protobuf an empty message is serialized as a + 0-length or nil byte slice and we wouldn't be able to distinguish between + an empty replacement message and the "don't replace anything" case. + */ + bool replace_response = 2; + + /* + If the replace_response field is set to true, this field must contain the + binary serialized gRPC response message in the protobuf format. + */ + bytes replacement_serialized = 3; +} diff --git a/home.admin/config.scripts/lndlibs/rpc_pb2.py b/home.admin/config.scripts/lndlibs/lightning_pb2.py similarity index 77% rename from home.admin/config.scripts/lndlibs/rpc_pb2.py rename to home.admin/config.scripts/lndlibs/lightning_pb2.py index be20e506..1304611c 100644 --- a/home.admin/config.scripts/lndlibs/rpc_pb2.py +++ b/home.admin/config.scripts/lndlibs/lightning_pb2.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: rpc.proto +# source: lightning.proto """Generated protocol buffer code.""" from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor @@ -15,12 +15,12 @@ _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor.FileDescriptor( - name='rpc.proto', + name='lightning.proto', package='lnrpc', syntax='proto3', serialized_options=b'Z%github.com/lightningnetwork/lnd/lnrpc', create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\trpc.proto\x12\x05lnrpc\"\xa2\x01\n\x04Utxo\x12(\n\x0c\x61\x64\x64ress_type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x12\n\namount_sat\x18\x03 \x01(\x03\x12\x11\n\tpk_script\x18\x04 \x01(\t\x12!\n\x08outpoint\x18\x05 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x15\n\rconfirmations\x18\x06 \x01(\x03\"\xd6\x01\n\x0bTransaction\x12\x0f\n\x07tx_hash\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x19\n\x11num_confirmations\x18\x03 \x01(\x05\x12\x12\n\nblock_hash\x18\x04 \x01(\t\x12\x14\n\x0c\x62lock_height\x18\x05 \x01(\x05\x12\x12\n\ntime_stamp\x18\x06 \x01(\x03\x12\x12\n\ntotal_fees\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x65st_addresses\x18\x08 \x03(\t\x12\x12\n\nraw_tx_hex\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\"B\n\x16GetTransactionsRequest\x12\x14\n\x0cstart_height\x18\x01 \x01(\x05\x12\x12\n\nend_height\x18\x02 \x01(\x05\">\n\x12TransactionDetails\x12(\n\x0ctransactions\x18\x01 \x03(\x0b\x32\x12.lnrpc.Transaction\"M\n\x08\x46\x65\x65Limit\x12\x0f\n\x05\x66ixed\x18\x01 \x01(\x03H\x00\x12\x14\n\nfixed_msat\x18\x03 \x01(\x03H\x00\x12\x11\n\x07percent\x18\x02 \x01(\x03H\x00\x42\x07\n\x05limit\"\xf4\x03\n\x0bSendRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x17\n\x0b\x64\x65st_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x0b\n\x03\x61mt\x18\x03 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x05 \x01(\tB\x02\x18\x01\x12\x17\n\x0fpayment_request\x18\x06 \x01(\t\x12\x18\n\x10\x66inal_cltv_delta\x18\x07 \x01(\x05\x12\"\n\tfee_limit\x18\x08 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x1c\n\x10outgoing_chan_id\x18\t \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\r \x01(\x0c\x12\x12\n\ncltv_limit\x18\n \x01(\r\x12\x46\n\x13\x64\x65st_custom_records\x18\x0b \x03(\x0b\x32).lnrpc.SendRequest.DestCustomRecordsEntry\x12\x1a\n\x12\x61llow_self_payment\x18\x0e \x01(\x08\x12(\n\rdest_features\x18\x0f \x03(\x0e\x32\x11.lnrpc.FeatureBit\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"z\n\x0cSendResponse\x12\x15\n\rpayment_error\x18\x01 \x01(\t\x12\x18\n\x10payment_preimage\x18\x02 \x01(\x0c\x12#\n\rpayment_route\x18\x03 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\"n\n\x12SendToRouteRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x1b\n\x05route\x18\x04 \x01(\x0b\x32\x0c.lnrpc.RouteJ\x04\x08\x03\x10\x04\"\xb5\x02\n\x14\x43hannelAcceptRequest\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x03 \x01(\x0c\x12\x13\n\x0b\x66unding_amt\x18\x04 \x01(\x04\x12\x10\n\x08push_amt\x18\x05 \x01(\x04\x12\x12\n\ndust_limit\x18\x06 \x01(\x04\x12\x1b\n\x13max_value_in_flight\x18\x07 \x01(\x04\x12\x17\n\x0f\x63hannel_reserve\x18\x08 \x01(\x04\x12\x10\n\x08min_htlc\x18\t \x01(\x04\x12\x12\n\nfee_per_kw\x18\n \x01(\x04\x12\x11\n\tcsv_delay\x18\x0b \x01(\r\x12\x1a\n\x12max_accepted_htlcs\x18\x0c \x01(\r\x12\x15\n\rchannel_flags\x18\r \x01(\r\"\xf4\x01\n\x15\x43hannelAcceptResponse\x12\x0e\n\x06\x61\x63\x63\x65pt\x18\x01 \x01(\x08\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x18\n\x10upfront_shutdown\x18\x04 \x01(\t\x12\x11\n\tcsv_delay\x18\x05 \x01(\r\x12\x13\n\x0breserve_sat\x18\x06 \x01(\x04\x12\x1a\n\x12in_flight_max_msat\x18\x07 \x01(\x04\x12\x16\n\x0emax_htlc_count\x18\x08 \x01(\r\x12\x13\n\x0bmin_htlc_in\x18\t \x01(\x04\x12\x18\n\x10min_accept_depth\x18\n \x01(\r\"n\n\x0c\x43hannelPoint\x12\x1c\n\x12\x66unding_txid_bytes\x18\x01 \x01(\x0cH\x00\x12\x1a\n\x10\x66unding_txid_str\x18\x02 \x01(\tH\x00\x12\x14\n\x0coutput_index\x18\x03 \x01(\rB\x0e\n\x0c\x66unding_txid\"F\n\x08OutPoint\x12\x12\n\ntxid_bytes\x18\x01 \x01(\x0c\x12\x10\n\x08txid_str\x18\x02 \x01(\t\x12\x14\n\x0coutput_index\x18\x03 \x01(\r\"0\n\x10LightningAddress\x12\x0e\n\x06pubkey\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\"\xa1\x01\n\x12\x45stimateFeeRequest\x12\x41\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32+.lnrpc.EstimateFeeRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\"D\n\x13\x45stimateFeeResponse\x12\x0f\n\x07\x66\x65\x65_sat\x18\x01 \x01(\x03\x12\x1c\n\x14\x66\x65\x65rate_sat_per_byte\x18\x02 \x01(\x03\"\xee\x01\n\x0fSendManyRequest\x12>\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32(.lnrpc.SendManyRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x14\n\x0csat_per_byte\x18\x05 \x01(\x03\x12\r\n\x05label\x18\x06 \x01(\t\x12\x11\n\tmin_confs\x18\x07 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x08 \x01(\x08\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\" \n\x10SendManyResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t\"\xaa\x01\n\x10SendCoinsRequest\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x14\n\x0csat_per_byte\x18\x05 \x01(\x03\x12\x10\n\x08send_all\x18\x06 \x01(\x08\x12\r\n\x05label\x18\x07 \x01(\t\x12\x11\n\tmin_confs\x18\x08 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\t \x01(\x08\"!\n\x11SendCoinsResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t\":\n\x12ListUnspentRequest\x12\x11\n\tmin_confs\x18\x01 \x01(\x05\x12\x11\n\tmax_confs\x18\x02 \x01(\x05\"1\n\x13ListUnspentResponse\x12\x1a\n\x05utxos\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Utxo\"5\n\x11NewAddressRequest\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\"%\n\x12NewAddressResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"!\n\x12SignMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\"(\n\x13SignMessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\t\"6\n\x14VerifyMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\t\"6\n\x15VerifyMessageResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\t\"Z\n\x12\x43onnectPeerRequest\x12%\n\x04\x61\x64\x64r\x18\x01 \x01(\x0b\x32\x17.lnrpc.LightningAddress\x12\x0c\n\x04perm\x18\x02 \x01(\x08\x12\x0f\n\x07timeout\x18\x03 \x01(\x04\"\x15\n\x13\x43onnectPeerResponse\"(\n\x15\x44isconnectPeerRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\"\x18\n\x16\x44isconnectPeerResponse\"\xa5\x01\n\x04HTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x11\n\thash_lock\x18\x03 \x01(\x0c\x12\x19\n\x11\x65xpiration_height\x18\x04 \x01(\r\x12\x12\n\nhtlc_index\x18\x05 \x01(\x04\x12\x1a\n\x12\x66orwarding_channel\x18\x06 \x01(\x04\x12\x1d\n\x15\x66orwarding_htlc_index\x18\x07 \x01(\x04\"\xaa\x01\n\x12\x43hannelConstraints\x12\x11\n\tcsv_delay\x18\x01 \x01(\r\x12\x18\n\x10\x63han_reserve_sat\x18\x02 \x01(\x04\x12\x16\n\x0e\x64ust_limit_sat\x18\x03 \x01(\x04\x12\x1c\n\x14max_pending_amt_msat\x18\x04 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x04\x12\x1a\n\x12max_accepted_htlcs\x18\x06 \x01(\r\"\xb0\x06\n\x07\x43hannel\x12\x0e\n\x06\x61\x63tive\x18\x01 \x01(\x08\x12\x15\n\rremote_pubkey\x18\x02 \x01(\t\x12\x15\n\rchannel_point\x18\x03 \x01(\t\x12\x13\n\x07\x63han_id\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x05 \x01(\x03\x12\x15\n\rlocal_balance\x18\x06 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x07 \x01(\x03\x12\x12\n\ncommit_fee\x18\x08 \x01(\x03\x12\x15\n\rcommit_weight\x18\t \x01(\x03\x12\x12\n\nfee_per_kw\x18\n \x01(\x03\x12\x19\n\x11unsettled_balance\x18\x0b \x01(\x03\x12\x1b\n\x13total_satoshis_sent\x18\x0c \x01(\x03\x12\x1f\n\x17total_satoshis_received\x18\r \x01(\x03\x12\x13\n\x0bnum_updates\x18\x0e \x01(\x04\x12\"\n\rpending_htlcs\x18\x0f \x03(\x0b\x32\x0b.lnrpc.HTLC\x12\x15\n\tcsv_delay\x18\x10 \x01(\rB\x02\x18\x01\x12\x0f\n\x07private\x18\x11 \x01(\x08\x12\x11\n\tinitiator\x18\x12 \x01(\x08\x12\x19\n\x11\x63han_status_flags\x18\x13 \x01(\t\x12\"\n\x16local_chan_reserve_sat\x18\x14 \x01(\x03\x42\x02\x18\x01\x12#\n\x17remote_chan_reserve_sat\x18\x15 \x01(\x03\x42\x02\x18\x01\x12\x1d\n\x11static_remote_key\x18\x16 \x01(\x08\x42\x02\x18\x01\x12.\n\x0f\x63ommitment_type\x18\x1a \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x10\n\x08lifetime\x18\x17 \x01(\x03\x12\x0e\n\x06uptime\x18\x18 \x01(\x03\x12\x15\n\rclose_address\x18\x19 \x01(\t\x12\x17\n\x0fpush_amount_sat\x18\x1b \x01(\x04\x12\x13\n\x0bthaw_height\x18\x1c \x01(\r\x12\x34\n\x11local_constraints\x18\x1d \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\x12\x35\n\x12remote_constraints\x18\x1e \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\"z\n\x13ListChannelsRequest\x12\x13\n\x0b\x61\x63tive_only\x18\x01 \x01(\x08\x12\x15\n\rinactive_only\x18\x02 \x01(\x08\x12\x13\n\x0bpublic_only\x18\x03 \x01(\x08\x12\x14\n\x0cprivate_only\x18\x04 \x01(\x08\x12\x0c\n\x04peer\x18\x05 \x01(\x0c\"8\n\x14ListChannelsResponse\x12 \n\x08\x63hannels\x18\x0b \x03(\x0b\x32\x0e.lnrpc.Channel\"\xa9\x04\n\x13\x43hannelCloseSummary\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchain_hash\x18\x03 \x01(\t\x12\x17\n\x0f\x63losing_tx_hash\x18\x04 \x01(\t\x12\x15\n\rremote_pubkey\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12\x14\n\x0c\x63lose_height\x18\x07 \x01(\r\x12\x17\n\x0fsettled_balance\x18\x08 \x01(\x03\x12\x1b\n\x13time_locked_balance\x18\t \x01(\x03\x12:\n\nclose_type\x18\n \x01(\x0e\x32&.lnrpc.ChannelCloseSummary.ClosureType\x12(\n\x0eopen_initiator\x18\x0b \x01(\x0e\x32\x10.lnrpc.Initiator\x12)\n\x0f\x63lose_initiator\x18\x0c \x01(\x0e\x32\x10.lnrpc.Initiator\x12&\n\x0bresolutions\x18\r \x03(\x0b\x32\x11.lnrpc.Resolution\"\x8a\x01\n\x0b\x43losureType\x12\x15\n\x11\x43OOPERATIVE_CLOSE\x10\x00\x12\x15\n\x11LOCAL_FORCE_CLOSE\x10\x01\x12\x16\n\x12REMOTE_FORCE_CLOSE\x10\x02\x12\x10\n\x0c\x42REACH_CLOSE\x10\x03\x12\x14\n\x10\x46UNDING_CANCELED\x10\x04\x12\r\n\tABANDONED\x10\x05\"\xb2\x01\n\nResolution\x12.\n\x0fresolution_type\x18\x01 \x01(\x0e\x32\x15.lnrpc.ResolutionType\x12)\n\x07outcome\x18\x02 \x01(\x0e\x32\x18.lnrpc.ResolutionOutcome\x12!\n\x08outpoint\x18\x03 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x12\n\namount_sat\x18\x04 \x01(\x04\x12\x12\n\nsweep_txid\x18\x05 \x01(\t\"\x94\x01\n\x15\x43losedChannelsRequest\x12\x13\n\x0b\x63ooperative\x18\x01 \x01(\x08\x12\x13\n\x0blocal_force\x18\x02 \x01(\x08\x12\x14\n\x0cremote_force\x18\x03 \x01(\x08\x12\x0e\n\x06\x62reach\x18\x04 \x01(\x08\x12\x18\n\x10\x66unding_canceled\x18\x05 \x01(\x08\x12\x11\n\tabandoned\x18\x06 \x01(\x08\"F\n\x16\x43losedChannelsResponse\x12,\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1a.lnrpc.ChannelCloseSummary\"\xd4\x03\n\x04Peer\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x12\n\nbytes_sent\x18\x04 \x01(\x04\x12\x12\n\nbytes_recv\x18\x05 \x01(\x04\x12\x10\n\x08sat_sent\x18\x06 \x01(\x03\x12\x10\n\x08sat_recv\x18\x07 \x01(\x03\x12\x0f\n\x07inbound\x18\x08 \x01(\x08\x12\x11\n\tping_time\x18\t \x01(\x03\x12\'\n\tsync_type\x18\n \x01(\x0e\x32\x14.lnrpc.Peer.SyncType\x12+\n\x08\x66\x65\x61tures\x18\x0b \x03(\x0b\x32\x19.lnrpc.Peer.FeaturesEntry\x12\'\n\x06\x65rrors\x18\x0c \x03(\x0b\x32\x17.lnrpc.TimestampedError\x12\x12\n\nflap_count\x18\r \x01(\x05\x12\x14\n\x0clast_flap_ns\x18\x0e \x01(\x03\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"P\n\x08SyncType\x12\x10\n\x0cUNKNOWN_SYNC\x10\x00\x12\x0f\n\x0b\x41\x43TIVE_SYNC\x10\x01\x12\x10\n\x0cPASSIVE_SYNC\x10\x02\x12\x0f\n\x0bPINNED_SYNC\x10\x03\"4\n\x10TimestampedError\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"(\n\x10ListPeersRequest\x12\x14\n\x0clatest_error\x18\x01 \x01(\x08\"/\n\x11ListPeersResponse\x12\x1a\n\x05peers\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Peer\"\x17\n\x15PeerEventSubscription\"v\n\tPeerEvent\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12(\n\x04type\x18\x02 \x01(\x0e\x32\x1a.lnrpc.PeerEvent.EventType\".\n\tEventType\x12\x0f\n\x0bPEER_ONLINE\x10\x00\x12\x10\n\x0cPEER_OFFLINE\x10\x01\"\x10\n\x0eGetInfoRequest\"\x96\x04\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\x0e \x01(\t\x12\x13\n\x0b\x63ommit_hash\x18\x14 \x01(\t\x12\x17\n\x0fidentity_pubkey\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\r\n\x05\x63olor\x18\x11 \x01(\t\x12\x1c\n\x14num_pending_channels\x18\x03 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x04 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x0f \x01(\r\x12\x11\n\tnum_peers\x18\x05 \x01(\r\x12\x14\n\x0c\x62lock_height\x18\x06 \x01(\r\x12\x12\n\nblock_hash\x18\x08 \x01(\t\x12\x1d\n\x15\x62\x65st_header_timestamp\x18\r \x01(\x03\x12\x17\n\x0fsynced_to_chain\x18\t \x01(\x08\x12\x17\n\x0fsynced_to_graph\x18\x12 \x01(\x08\x12\x13\n\x07testnet\x18\n \x01(\x08\x42\x02\x18\x01\x12\x1c\n\x06\x63hains\x18\x10 \x03(\x0b\x32\x0c.lnrpc.Chain\x12\x0c\n\x04uris\x18\x0c \x03(\t\x12\x36\n\x08\x66\x65\x61tures\x18\x13 \x03(\x0b\x32$.lnrpc.GetInfoResponse.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01J\x04\x08\x0b\x10\x0c\"\x18\n\x16GetRecoveryInfoRequest\"]\n\x17GetRecoveryInfoResponse\x12\x15\n\rrecovery_mode\x18\x01 \x01(\x08\x12\x19\n\x11recovery_finished\x18\x02 \x01(\x08\x12\x10\n\x08progress\x18\x03 \x01(\x01\"\'\n\x05\x43hain\x12\r\n\x05\x63hain\x18\x01 \x01(\t\x12\x0f\n\x07network\x18\x02 \x01(\t\"U\n\x12\x43onfirmationUpdate\x12\x11\n\tblock_sha\x18\x01 \x01(\x0c\x12\x14\n\x0c\x62lock_height\x18\x02 \x01(\x05\x12\x16\n\x0enum_confs_left\x18\x03 \x01(\r\"?\n\x11\x43hannelOpenUpdate\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\";\n\x12\x43hannelCloseUpdate\x12\x14\n\x0c\x63losing_txid\x18\x01 \x01(\x0c\x12\x0f\n\x07success\x18\x02 \x01(\x08\"\x95\x01\n\x13\x43loseChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x14\n\x0csat_per_byte\x18\x04 \x01(\x03\x12\x18\n\x10\x64\x65livery_address\x18\x05 \x01(\t\"}\n\x11\x43loseStatusUpdate\x12-\n\rclose_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12/\n\nchan_close\x18\x03 \x01(\x0b\x32\x19.lnrpc.ChannelCloseUpdateH\x00\x42\x08\n\x06update\"3\n\rPendingUpdate\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x14\n\x0coutput_index\x18\x02 \x01(\r\"T\n\x13ReadyForPsbtFunding\x12\x17\n\x0f\x66unding_address\x18\x01 \x01(\t\x12\x16\n\x0e\x66unding_amount\x18\x02 \x01(\x03\x12\x0c\n\x04psbt\x18\x03 \x01(\x0c\"\xaf\x03\n\x12OpenChannelRequest\x12\x13\n\x0bnode_pubkey\x18\x02 \x01(\x0c\x12\x1e\n\x12node_pubkey_string\x18\x03 \x01(\tB\x02\x18\x01\x12\x1c\n\x14local_funding_amount\x18\x04 \x01(\x03\x12\x10\n\x08push_sat\x18\x05 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x06 \x01(\x05\x12\x14\n\x0csat_per_byte\x18\x07 \x01(\x03\x12\x0f\n\x07private\x18\x08 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\t \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\n \x01(\r\x12\x11\n\tmin_confs\x18\x0b \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x0c \x01(\x08\x12\x15\n\rclose_address\x18\r \x01(\t\x12(\n\x0c\x66unding_shim\x18\x0e \x01(\x0b\x32\x12.lnrpc.FundingShim\x12\'\n\x1fremote_max_value_in_flight_msat\x18\x0f \x01(\x04\x12\x18\n\x10remote_max_htlcs\x18\x10 \x01(\r\x12\x15\n\rmax_local_csv\x18\x11 \x01(\r\"\xc3\x01\n\x10OpenStatusUpdate\x12,\n\x0c\x63han_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12-\n\tchan_open\x18\x03 \x01(\x0b\x32\x18.lnrpc.ChannelOpenUpdateH\x00\x12/\n\tpsbt_fund\x18\x05 \x01(\x0b\x32\x1a.lnrpc.ReadyForPsbtFundingH\x00\x12\x17\n\x0fpending_chan_id\x18\x04 \x01(\x0c\x42\x08\n\x06update\"3\n\nKeyLocator\x12\x12\n\nkey_family\x18\x01 \x01(\x05\x12\x11\n\tkey_index\x18\x02 \x01(\x05\"J\n\rKeyDescriptor\x12\x15\n\rraw_key_bytes\x18\x01 \x01(\x0c\x12\"\n\x07key_loc\x18\x02 \x01(\x0b\x32\x11.lnrpc.KeyLocator\"\xb0\x01\n\rChanPointShim\x12\x0b\n\x03\x61mt\x18\x01 \x01(\x03\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\'\n\tlocal_key\x18\x03 \x01(\x0b\x32\x14.lnrpc.KeyDescriptor\x12\x12\n\nremote_key\x18\x04 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x05 \x01(\x0c\x12\x13\n\x0bthaw_height\x18\x06 \x01(\r\"J\n\x08PsbtShim\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\x12\x11\n\tbase_psbt\x18\x02 \x01(\x0c\x12\x12\n\nno_publish\x18\x03 \x01(\x08\"l\n\x0b\x46undingShim\x12/\n\x0f\x63han_point_shim\x18\x01 \x01(\x0b\x32\x14.lnrpc.ChanPointShimH\x00\x12$\n\tpsbt_shim\x18\x02 \x01(\x0b\x32\x0f.lnrpc.PsbtShimH\x00\x42\x06\n\x04shim\",\n\x11\x46undingShimCancel\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\"A\n\x11\x46undingPsbtVerify\x12\x13\n\x0b\x66unded_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\"Y\n\x13\x46undingPsbtFinalize\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x14\n\x0c\x66inal_raw_tx\x18\x03 \x01(\x0c\"\xe5\x01\n\x14\x46undingTransitionMsg\x12+\n\rshim_register\x18\x01 \x01(\x0b\x32\x12.lnrpc.FundingShimH\x00\x12/\n\x0bshim_cancel\x18\x02 \x01(\x0b\x32\x18.lnrpc.FundingShimCancelH\x00\x12/\n\x0bpsbt_verify\x18\x03 \x01(\x0b\x32\x18.lnrpc.FundingPsbtVerifyH\x00\x12\x33\n\rpsbt_finalize\x18\x04 \x01(\x0b\x32\x1a.lnrpc.FundingPsbtFinalizeH\x00\x42\t\n\x07trigger\"\x16\n\x14\x46undingStateStepResp\"\x86\x01\n\x0bPendingHTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x10\n\x08outpoint\x18\x03 \x01(\t\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\r\n\x05stage\x18\x06 \x01(\r\"\x18\n\x16PendingChannelsRequest\"\xab\r\n\x17PendingChannelsResponse\x12\x1b\n\x13total_limbo_balance\x18\x01 \x01(\x03\x12P\n\x15pending_open_channels\x18\x02 \x03(\x0b\x32\x31.lnrpc.PendingChannelsResponse.PendingOpenChannel\x12R\n\x18pending_closing_channels\x18\x03 \x03(\x0b\x32,.lnrpc.PendingChannelsResponse.ClosedChannelB\x02\x18\x01\x12Y\n\x1epending_force_closing_channels\x18\x04 \x03(\x0b\x32\x31.lnrpc.PendingChannelsResponse.ForceClosedChannel\x12R\n\x16waiting_close_channels\x18\x05 \x03(\x0b\x32\x32.lnrpc.PendingChannelsResponse.WaitingCloseChannel\x1a\x97\x02\n\x0ePendingChannel\x12\x17\n\x0fremote_node_pub\x18\x01 \x01(\t\x12\x15\n\rchannel_point\x18\x02 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12\x15\n\rlocal_balance\x18\x04 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x05 \x01(\x03\x12\x1e\n\x16local_chan_reserve_sat\x18\x06 \x01(\x03\x12\x1f\n\x17remote_chan_reserve_sat\x18\x07 \x01(\x03\x12#\n\tinitiator\x18\x08 \x01(\x0e\x32\x10.lnrpc.Initiator\x12.\n\x0f\x63ommitment_type\x18\t \x01(\x0e\x32\x15.lnrpc.CommitmentType\x1a\xb0\x01\n\x12PendingOpenChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x1b\n\x13\x63onfirmation_height\x18\x02 \x01(\r\x12\x12\n\ncommit_fee\x18\x04 \x01(\x03\x12\x15\n\rcommit_weight\x18\x05 \x01(\x03\x12\x12\n\nfee_per_kw\x18\x06 \x01(\x03\x1a\xad\x01\n\x13WaitingCloseChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x15\n\rlimbo_balance\x18\x02 \x01(\x03\x12?\n\x0b\x63ommitments\x18\x03 \x01(\x0b\x32*.lnrpc.PendingChannelsResponse.Commitments\x1a\xb7\x01\n\x0b\x43ommitments\x12\x12\n\nlocal_txid\x18\x01 \x01(\t\x12\x13\n\x0bremote_txid\x18\x02 \x01(\t\x12\x1b\n\x13remote_pending_txid\x18\x03 \x01(\t\x12\x1c\n\x14local_commit_fee_sat\x18\x04 \x01(\x04\x12\x1d\n\x15remote_commit_fee_sat\x18\x05 \x01(\x04\x12%\n\x1dremote_pending_commit_fee_sat\x18\x06 \x01(\x04\x1a\x65\n\rClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x1a\xff\x02\n\x12\x46orceClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x12\x15\n\rlimbo_balance\x18\x03 \x01(\x03\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\x19\n\x11recovered_balance\x18\x06 \x01(\x03\x12)\n\rpending_htlcs\x18\x08 \x03(\x0b\x32\x12.lnrpc.PendingHTLC\x12M\n\x06\x61nchor\x18\t \x01(\x0e\x32=.lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState\"1\n\x0b\x41nchorState\x12\t\n\x05LIMBO\x10\x00\x12\r\n\tRECOVERED\x10\x01\x12\x08\n\x04LOST\x10\x02\"\x1a\n\x18\x43hannelEventSubscription\"\xbf\x03\n\x12\x43hannelEventUpdate\x12&\n\x0copen_channel\x18\x01 \x01(\x0b\x32\x0e.lnrpc.ChannelH\x00\x12\x34\n\x0e\x63losed_channel\x18\x02 \x01(\x0b\x32\x1a.lnrpc.ChannelCloseSummaryH\x00\x12-\n\x0e\x61\x63tive_channel\x18\x03 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12/\n\x10inactive_channel\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x34\n\x14pending_open_channel\x18\x06 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12\x32\n\x04type\x18\x05 \x01(\x0e\x32$.lnrpc.ChannelEventUpdate.UpdateType\"v\n\nUpdateType\x12\x10\n\x0cOPEN_CHANNEL\x10\x00\x12\x12\n\x0e\x43LOSED_CHANNEL\x10\x01\x12\x12\n\x0e\x41\x43TIVE_CHANNEL\x10\x02\x12\x14\n\x10INACTIVE_CHANNEL\x10\x03\x12\x18\n\x14PENDING_OPEN_CHANNEL\x10\x04\x42\t\n\x07\x63hannel\"\x16\n\x14WalletBalanceRequest\"f\n\x15WalletBalanceResponse\x12\x15\n\rtotal_balance\x18\x01 \x01(\x03\x12\x19\n\x11\x63onfirmed_balance\x18\x02 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x03 \x01(\x03\"#\n\x06\x41mount\x12\x0b\n\x03sat\x18\x01 \x01(\x04\x12\x0c\n\x04msat\x18\x02 \x01(\x04\"\x17\n\x15\x43hannelBalanceRequest\"\xe4\x02\n\x16\x43hannelBalanceResponse\x12\x13\n\x07\x62\x61lance\x18\x01 \x01(\x03\x42\x02\x18\x01\x12 \n\x14pending_open_balance\x18\x02 \x01(\x03\x42\x02\x18\x01\x12$\n\rlocal_balance\x18\x03 \x01(\x0b\x32\r.lnrpc.Amount\x12%\n\x0eremote_balance\x18\x04 \x01(\x0b\x32\r.lnrpc.Amount\x12.\n\x17unsettled_local_balance\x18\x05 \x01(\x0b\x32\r.lnrpc.Amount\x12/\n\x18unsettled_remote_balance\x18\x06 \x01(\x0b\x32\r.lnrpc.Amount\x12\x31\n\x1apending_open_local_balance\x18\x07 \x01(\x0b\x32\r.lnrpc.Amount\x12\x32\n\x1bpending_open_remote_balance\x18\x08 \x01(\x0b\x32\r.lnrpc.Amount\"\xd0\x04\n\x12QueryRoutesRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0b\n\x03\x61mt\x18\x02 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x66inal_cltv_delta\x18\x04 \x01(\x05\x12\"\n\tfee_limit\x18\x05 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x15\n\rignored_nodes\x18\x06 \x03(\x0c\x12-\n\rignored_edges\x18\x07 \x03(\x0b\x32\x12.lnrpc.EdgeLocatorB\x02\x18\x01\x12\x16\n\x0esource_pub_key\x18\x08 \x01(\t\x12\x1b\n\x13use_mission_control\x18\t \x01(\x08\x12&\n\rignored_pairs\x18\n \x03(\x0b\x32\x0f.lnrpc.NodePair\x12\x12\n\ncltv_limit\x18\x0b \x01(\r\x12M\n\x13\x64\x65st_custom_records\x18\r \x03(\x0b\x32\x30.lnrpc.QueryRoutesRequest.DestCustomRecordsEntry\x12\x1c\n\x10outgoing_chan_id\x18\x0e \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\x0f \x01(\x0c\x12%\n\x0broute_hints\x18\x10 \x03(\x0b\x32\x10.lnrpc.RouteHint\x12(\n\rdest_features\x18\x11 \x03(\x0e\x32\x11.lnrpc.FeatureBit\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01J\x04\x08\x03\x10\x04\"$\n\x08NodePair\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x0c\x12\n\n\x02to\x18\x02 \x01(\x0c\"@\n\x0b\x45\x64geLocator\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x64irection_reverse\x18\x02 \x01(\x08\"I\n\x13QueryRoutesResponse\x12\x1c\n\x06routes\x18\x01 \x03(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0csuccess_prob\x18\x02 \x01(\x01\"\xd6\x02\n\x03Hop\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rchan_capacity\x18\x02 \x01(\x03\x12\x1a\n\x0e\x61mt_to_forward\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\r\x12\x1b\n\x13\x61mt_to_forward_msat\x18\x06 \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x03\x12\x0f\n\x07pub_key\x18\x08 \x01(\t\x12\x13\n\x0btlv_payload\x18\t \x01(\x08\x12$\n\nmpp_record\x18\n \x01(\x0b\x32\x10.lnrpc.MPPRecord\x12\x35\n\x0e\x63ustom_records\x18\x0b \x03(\x0b\x32\x1d.lnrpc.Hop.CustomRecordsEntry\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"9\n\tMPPRecord\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x16\n\x0etotal_amt_msat\x18\n \x01(\x03\"\x9a\x01\n\x05Route\x12\x17\n\x0ftotal_time_lock\x18\x01 \x01(\r\x12\x16\n\ntotal_fees\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\ttotal_amt\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x04hops\x18\x04 \x03(\x0b\x32\n.lnrpc.Hop\x12\x17\n\x0ftotal_fees_msat\x18\x05 \x01(\x03\x12\x16\n\x0etotal_amt_msat\x18\x06 \x01(\x03\"<\n\x0fNodeInfoRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x18\n\x10include_channels\x18\x02 \x01(\x08\"\x82\x01\n\x08NodeInfo\x12\"\n\x04node\x18\x01 \x01(\x0b\x32\x14.lnrpc.LightningNode\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x16\n\x0etotal_capacity\x18\x03 \x01(\x03\x12$\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x12.lnrpc.ChannelEdge\"\xf1\x01\n\rLightningNode\x12\x13\n\x0blast_update\x18\x01 \x01(\r\x12\x0f\n\x07pub_key\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12%\n\taddresses\x18\x04 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12\x34\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\".lnrpc.LightningNode.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\",\n\x0bNodeAddress\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\t\"\xac\x01\n\rRoutingPolicy\x12\x17\n\x0ftime_lock_delta\x18\x01 \x01(\r\x12\x10\n\x08min_htlc\x18\x02 \x01(\x03\x12\x15\n\rfee_base_msat\x18\x03 \x01(\x03\x12\x1b\n\x13\x66\x65\x65_rate_milli_msat\x18\x04 \x01(\x03\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x13\n\x0blast_update\x18\x07 \x01(\r\"\xe2\x01\n\x0b\x43hannelEdge\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchan_point\x18\x02 \x01(\t\x12\x17\n\x0blast_update\x18\x03 \x01(\rB\x02\x18\x01\x12\x11\n\tnode1_pub\x18\x04 \x01(\t\x12\x11\n\tnode2_pub\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12*\n\x0cnode1_policy\x18\x07 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12*\n\x0cnode2_policy\x18\x08 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\"2\n\x13\x43hannelGraphRequest\x12\x1b\n\x13include_unannounced\x18\x01 \x01(\x08\"V\n\x0c\x43hannelGraph\x12#\n\x05nodes\x18\x01 \x03(\x0b\x32\x14.lnrpc.LightningNode\x12!\n\x05\x65\x64ges\x18\x02 \x03(\x0b\x32\x12.lnrpc.ChannelEdge\":\n\x12NodeMetricsRequest\x12$\n\x05types\x18\x01 \x03(\x0e\x32\x15.lnrpc.NodeMetricType\"\xbe\x01\n\x13NodeMetricsResponse\x12U\n\x16\x62\x65tweenness_centrality\x18\x01 \x03(\x0b\x32\x35.lnrpc.NodeMetricsResponse.BetweennessCentralityEntry\x1aP\n\x1a\x42\x65tweennessCentralityEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.lnrpc.FloatMetric:\x02\x38\x01\"6\n\x0b\x46loatMetric\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x18\n\x10normalized_value\x18\x02 \x01(\x01\"&\n\x0f\x43hanInfoRequest\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\"\x14\n\x12NetworkInfoRequest\"\xa7\x02\n\x0bNetworkInfo\x12\x16\n\x0egraph_diameter\x18\x01 \x01(\r\x12\x16\n\x0e\x61vg_out_degree\x18\x02 \x01(\x01\x12\x16\n\x0emax_out_degree\x18\x03 \x01(\r\x12\x11\n\tnum_nodes\x18\x04 \x01(\r\x12\x14\n\x0cnum_channels\x18\x05 \x01(\r\x12\x1e\n\x16total_network_capacity\x18\x06 \x01(\x03\x12\x18\n\x10\x61vg_channel_size\x18\x07 \x01(\x01\x12\x18\n\x10min_channel_size\x18\x08 \x01(\x03\x12\x18\n\x10max_channel_size\x18\t \x01(\x03\x12\x1f\n\x17median_channel_size_sat\x18\n \x01(\x03\x12\x18\n\x10num_zombie_chans\x18\x0b \x01(\x04\"\r\n\x0bStopRequest\"\x0e\n\x0cStopResponse\"\x1b\n\x19GraphTopologySubscription\"\xa3\x01\n\x13GraphTopologyUpdate\x12\'\n\x0cnode_updates\x18\x01 \x03(\x0b\x32\x11.lnrpc.NodeUpdate\x12\x31\n\x0f\x63hannel_updates\x18\x02 \x03(\x0b\x32\x18.lnrpc.ChannelEdgeUpdate\x12\x30\n\x0c\x63losed_chans\x18\x03 \x03(\x0b\x32\x1a.lnrpc.ClosedChannelUpdate\"\xe4\x01\n\nNodeUpdate\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x14\n\x0cidentity_key\x18\x02 \x01(\t\x12\x1b\n\x0fglobal_features\x18\x03 \x01(\x0c\x42\x02\x18\x01\x12\r\n\x05\x61lias\x18\x04 \x01(\t\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12\x31\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\x1f.lnrpc.NodeUpdate.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"\xc4\x01\n\x11\x43hannelEdgeUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12,\n\x0erouting_policy\x18\x04 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12\x18\n\x10\x61\x64vertising_node\x18\x05 \x01(\t\x12\x17\n\x0f\x63onnecting_node\x18\x06 \x01(\t\"|\n\x13\x43losedChannelUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x03\x12\x15\n\rclosed_height\x18\x03 \x01(\r\x12\'\n\nchan_point\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"\x86\x01\n\x07HopHint\x12\x0f\n\x07node_id\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rfee_base_msat\x18\x03 \x01(\r\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x04 \x01(\r\x12\x19\n\x11\x63ltv_expiry_delta\x18\x05 \x01(\r\".\n\tRouteHint\x12!\n\thop_hints\x18\x01 \x03(\x0b\x32\x0e.lnrpc.HopHint\"\xe5\x05\n\x07Invoice\x12\x0c\n\x04memo\x18\x01 \x01(\t\x12\x12\n\nr_preimage\x18\x03 \x01(\x0c\x12\x0e\n\x06r_hash\x18\x04 \x01(\x0c\x12\r\n\x05value\x18\x05 \x01(\x03\x12\x12\n\nvalue_msat\x18\x17 \x01(\x03\x12\x13\n\x07settled\x18\x06 \x01(\x08\x42\x02\x18\x01\x12\x15\n\rcreation_date\x18\x07 \x01(\x03\x12\x13\n\x0bsettle_date\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\n \x01(\x0c\x12\x0e\n\x06\x65xpiry\x18\x0b \x01(\x03\x12\x15\n\rfallback_addr\x18\x0c \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\r \x01(\x04\x12%\n\x0broute_hints\x18\x0e \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x0f\n\x07private\x18\x0f \x01(\x08\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0csettle_index\x18\x11 \x01(\x04\x12\x14\n\x08\x61mt_paid\x18\x12 \x01(\x03\x42\x02\x18\x01\x12\x14\n\x0c\x61mt_paid_sat\x18\x13 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x14 \x01(\x03\x12*\n\x05state\x18\x15 \x01(\x0e\x32\x1b.lnrpc.Invoice.InvoiceState\x12!\n\x05htlcs\x18\x16 \x03(\x0b\x32\x12.lnrpc.InvoiceHTLC\x12.\n\x08\x66\x65\x61tures\x18\x18 \x03(\x0b\x32\x1c.lnrpc.Invoice.FeaturesEntry\x12\x12\n\nis_keysend\x18\x19 \x01(\x08\x12\x14\n\x0cpayment_addr\x18\x1a \x01(\x0c\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"A\n\x0cInvoiceState\x12\x08\n\x04OPEN\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x03J\x04\x08\x02\x10\x03\"\xf3\x02\n\x0bInvoiceHTLC\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nhtlc_index\x18\x02 \x01(\x04\x12\x10\n\x08\x61mt_msat\x18\x03 \x01(\x04\x12\x15\n\raccept_height\x18\x04 \x01(\x05\x12\x13\n\x0b\x61\x63\x63\x65pt_time\x18\x05 \x01(\x03\x12\x14\n\x0cresolve_time\x18\x06 \x01(\x03\x12\x15\n\rexpiry_height\x18\x07 \x01(\x05\x12&\n\x05state\x18\x08 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12=\n\x0e\x63ustom_records\x18\t \x03(\x0b\x32%.lnrpc.InvoiceHTLC.CustomRecordsEntry\x12\x1a\n\x12mpp_total_amt_msat\x18\n \x01(\x04\x12\x17\n\x03\x61mp\x18\x0b \x01(\x0b\x32\n.lnrpc.AMP\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"^\n\x03\x41MP\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r\x12\x0c\n\x04hash\x18\x04 \x01(\x0c\x12\x10\n\x08preimage\x18\x05 \x01(\x0c\"f\n\x12\x41\x64\x64InvoiceResponse\x12\x0e\n\x06r_hash\x18\x01 \x01(\x0c\x12\x17\n\x0fpayment_request\x18\x02 \x01(\t\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0cpayment_addr\x18\x11 \x01(\x0c\"5\n\x0bPaymentHash\x12\x16\n\nr_hash_str\x18\x01 \x01(\tB\x02\x18\x01\x12\x0e\n\x06r_hash\x18\x02 \x01(\x0c\"l\n\x12ListInvoiceRequest\x12\x14\n\x0cpending_only\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x04 \x01(\x04\x12\x18\n\x10num_max_invoices\x18\x05 \x01(\x04\x12\x10\n\x08reversed\x18\x06 \x01(\x08\"n\n\x13ListInvoiceResponse\x12 \n\x08invoices\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Invoice\x12\x19\n\x11last_index_offset\x18\x02 \x01(\x04\x12\x1a\n\x12\x66irst_index_offset\x18\x03 \x01(\x04\">\n\x13InvoiceSubscription\x12\x11\n\tadd_index\x18\x01 \x01(\x04\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04\"\xe0\x03\n\x07Payment\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\t\x12\x11\n\x05value\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x19\n\rcreation_date\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10payment_preimage\x18\x06 \x01(\t\x12\x11\n\tvalue_sat\x18\x07 \x01(\x03\x12\x12\n\nvalue_msat\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12,\n\x06status\x18\n \x01(\x0e\x32\x1c.lnrpc.Payment.PaymentStatus\x12\x0f\n\x07\x66\x65\x65_sat\x18\x0b \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x63reation_time_ns\x18\r \x01(\x03\x12!\n\x05htlcs\x18\x0e \x03(\x0b\x32\x12.lnrpc.HTLCAttempt\x12\x15\n\rpayment_index\x18\x0f \x01(\x04\x12\x33\n\x0e\x66\x61ilure_reason\x18\x10 \x01(\x0e\x32\x1b.lnrpc.PaymentFailureReason\"F\n\rPaymentStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tIN_FLIGHT\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03J\x04\x08\x04\x10\x05\"\x8a\x02\n\x0bHTLCAttempt\x12\x12\n\nattempt_id\x18\x07 \x01(\x04\x12-\n\x06status\x18\x01 \x01(\x0e\x32\x1d.lnrpc.HTLCAttempt.HTLCStatus\x12\x1b\n\x05route\x18\x02 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x17\n\x0f\x61ttempt_time_ns\x18\x03 \x01(\x03\x12\x17\n\x0fresolve_time_ns\x18\x04 \x01(\x03\x12\x1f\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32\x0e.lnrpc.Failure\x12\x10\n\x08preimage\x18\x06 \x01(\x0c\"6\n\nHTLCStatus\x12\r\n\tIN_FLIGHT\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"o\n\x13ListPaymentsRequest\x12\x1a\n\x12include_incomplete\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x02 \x01(\x04\x12\x14\n\x0cmax_payments\x18\x03 \x01(\x04\x12\x10\n\x08reversed\x18\x04 \x01(\x08\"o\n\x14ListPaymentsResponse\x12 \n\x08payments\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Payment\x12\x1a\n\x12\x66irst_index_offset\x18\x02 \x01(\x04\x12\x19\n\x11last_index_offset\x18\x03 \x01(\x04\"S\n\x18\x44\x65leteAllPaymentsRequest\x12\x1c\n\x14\x66\x61iled_payments_only\x18\x01 \x01(\x08\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08\"\x1b\n\x19\x44\x65leteAllPaymentsResponse\"f\n\x15\x41\x62\x61ndonChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12!\n\x19pending_funding_shim_only\x18\x02 \x01(\x08\"\x18\n\x16\x41\x62\x61ndonChannelResponse\"5\n\x11\x44\x65\x62ugLevelRequest\x12\x0c\n\x04show\x18\x01 \x01(\x08\x12\x12\n\nlevel_spec\x18\x02 \x01(\t\")\n\x12\x44\x65\x62ugLevelResponse\x12\x13\n\x0bsub_systems\x18\x01 \x01(\t\"\x1f\n\x0cPayReqString\x12\x0f\n\x07pay_req\x18\x01 \x01(\t\"\x86\x03\n\x06PayReq\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\t\x12\x14\n\x0cnum_satoshis\x18\x03 \x01(\x03\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\x07 \x01(\t\x12\x15\n\rfallback_addr\x18\x08 \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\t \x01(\x03\x12%\n\x0broute_hints\x18\n \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x10\n\x08num_msat\x18\x0c \x01(\x03\x12-\n\x08\x66\x65\x61tures\x18\r \x03(\x0b\x32\x1b.lnrpc.PayReq.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\">\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0bis_required\x18\x03 \x01(\x08\x12\x10\n\x08is_known\x18\x04 \x01(\x08\"\x12\n\x10\x46\x65\x65ReportRequest\"|\n\x10\x43hannelFeeReport\x12\x13\n\x07\x63han_id\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x15\n\rbase_fee_msat\x18\x02 \x01(\x03\x12\x13\n\x0b\x66\x65\x65_per_mil\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\"\x84\x01\n\x11\x46\x65\x65ReportResponse\x12-\n\x0c\x63hannel_fees\x18\x01 \x03(\x0b\x32\x17.lnrpc.ChannelFeeReport\x12\x13\n\x0b\x64\x61y_fee_sum\x18\x02 \x01(\x04\x12\x14\n\x0cweek_fee_sum\x18\x03 \x01(\x04\x12\x15\n\rmonth_fee_sum\x18\x04 \x01(\x04\"\xec\x01\n\x13PolicyUpdateRequest\x12\x10\n\x06global\x18\x01 \x01(\x08H\x00\x12)\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x15\n\rbase_fee_msat\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\x12\x17\n\x0ftime_lock_delta\x18\x05 \x01(\r\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x07 \x01(\x04\x12\x1f\n\x17min_htlc_msat_specified\x18\x08 \x01(\x08\x42\x07\n\x05scope\"\x16\n\x14PolicyUpdateResponse\"n\n\x18\x46orwardingHistoryRequest\x12\x12\n\nstart_time\x18\x01 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x04\x12\x14\n\x0cindex_offset\x18\x03 \x01(\r\x12\x16\n\x0enum_max_events\x18\x04 \x01(\r\"\xda\x01\n\x0f\x46orwardingEvent\x12\x15\n\ttimestamp\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x16\n\nchan_id_in\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0b\x63han_id_out\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x0e\n\x06\x61mt_in\x18\x05 \x01(\x04\x12\x0f\n\x07\x61mt_out\x18\x06 \x01(\x04\x12\x0b\n\x03\x66\x65\x65\x18\x07 \x01(\x04\x12\x10\n\x08\x66\x65\x65_msat\x18\x08 \x01(\x04\x12\x13\n\x0b\x61mt_in_msat\x18\t \x01(\x04\x12\x14\n\x0c\x61mt_out_msat\x18\n \x01(\x04\x12\x14\n\x0ctimestamp_ns\x18\x0b \x01(\x04\"i\n\x19\x46orwardingHistoryResponse\x12\x31\n\x11\x66orwarding_events\x18\x01 \x03(\x0b\x32\x16.lnrpc.ForwardingEvent\x12\x19\n\x11last_offset_index\x18\x02 \x01(\r\"E\n\x1a\x45xportChannelBackupRequest\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"M\n\rChannelBackup\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x13\n\x0b\x63han_backup\x18\x02 \x01(\x0c\"V\n\x0fMultiChanBackup\x12(\n\x0b\x63han_points\x18\x01 \x03(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x19\n\x11multi_chan_backup\x18\x02 \x01(\x0c\"\x19\n\x17\x43hanBackupExportRequest\"{\n\x12\x43hanBackupSnapshot\x12\x32\n\x13single_chan_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackups\x12\x31\n\x11multi_chan_backup\x18\x02 \x01(\x0b\x32\x16.lnrpc.MultiChanBackup\"<\n\x0e\x43hannelBackups\x12*\n\x0c\x63han_backups\x18\x01 \x03(\x0b\x32\x14.lnrpc.ChannelBackup\"p\n\x18RestoreChanBackupRequest\x12-\n\x0c\x63han_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackupsH\x00\x12\x1b\n\x11multi_chan_backup\x18\x02 \x01(\x0cH\x00\x42\x08\n\x06\x62\x61\x63kup\"\x17\n\x15RestoreBackupResponse\"\x1b\n\x19\x43hannelBackupSubscription\"\x1a\n\x18VerifyChanBackupResponse\"4\n\x12MacaroonPermission\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\t\"Z\n\x13\x42\x61keMacaroonRequest\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x13\n\x0broot_key_id\x18\x02 \x01(\x04\"(\n\x14\x42\x61keMacaroonResponse\x12\x10\n\x08macaroon\x18\x01 \x01(\t\"\x18\n\x16ListMacaroonIDsRequest\"/\n\x17ListMacaroonIDsResponse\x12\x14\n\x0croot_key_ids\x18\x01 \x03(\x04\".\n\x17\x44\x65leteMacaroonIDRequest\x12\x13\n\x0broot_key_id\x18\x01 \x01(\x04\"+\n\x18\x44\x65leteMacaroonIDResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\"H\n\x16MacaroonPermissionList\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\"\x18\n\x16ListPermissionsRequest\"\xc5\x01\n\x17ListPermissionsResponse\x12Q\n\x12method_permissions\x18\x01 \x03(\x0b\x32\x35.lnrpc.ListPermissionsResponse.MethodPermissionsEntry\x1aW\n\x16MethodPermissionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MacaroonPermissionList:\x02\x38\x01\"\xd5\x07\n\x07\x46\x61ilure\x12(\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12,\n\x0e\x63hannel_update\x18\x03 \x01(\x0b\x32\x14.lnrpc.ChannelUpdate\x12\x11\n\thtlc_msat\x18\x04 \x01(\x04\x12\x15\n\ronion_sha_256\x18\x05 \x01(\x0c\x12\x13\n\x0b\x63ltv_expiry\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x1c\n\x14\x66\x61ilure_source_index\x18\x08 \x01(\r\x12\x0e\n\x06height\x18\t \x01(\r\"\xef\x05\n\x0b\x46\x61ilureCode\x12\x0c\n\x08RESERVED\x10\x00\x12(\n$INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS\x10\x01\x12\x1c\n\x18INCORRECT_PAYMENT_AMOUNT\x10\x02\x12\x1f\n\x1b\x46INAL_INCORRECT_CLTV_EXPIRY\x10\x03\x12\x1f\n\x1b\x46INAL_INCORRECT_HTLC_AMOUNT\x10\x04\x12\x19\n\x15\x46INAL_EXPIRY_TOO_SOON\x10\x05\x12\x11\n\rINVALID_REALM\x10\x06\x12\x13\n\x0f\x45XPIRY_TOO_SOON\x10\x07\x12\x19\n\x15INVALID_ONION_VERSION\x10\x08\x12\x16\n\x12INVALID_ONION_HMAC\x10\t\x12\x15\n\x11INVALID_ONION_KEY\x10\n\x12\x18\n\x14\x41MOUNT_BELOW_MINIMUM\x10\x0b\x12\x14\n\x10\x46\x45\x45_INSUFFICIENT\x10\x0c\x12\x19\n\x15INCORRECT_CLTV_EXPIRY\x10\r\x12\x14\n\x10\x43HANNEL_DISABLED\x10\x0e\x12\x1d\n\x19TEMPORARY_CHANNEL_FAILURE\x10\x0f\x12!\n\x1dREQUIRED_NODE_FEATURE_MISSING\x10\x10\x12$\n REQUIRED_CHANNEL_FEATURE_MISSING\x10\x11\x12\x15\n\x11UNKNOWN_NEXT_PEER\x10\x12\x12\x1a\n\x16TEMPORARY_NODE_FAILURE\x10\x13\x12\x1a\n\x16PERMANENT_NODE_FAILURE\x10\x14\x12\x1d\n\x19PERMANENT_CHANNEL_FAILURE\x10\x15\x12\x12\n\x0e\x45XPIRY_TOO_FAR\x10\x16\x12\x0f\n\x0bMPP_TIMEOUT\x10\x17\x12\x19\n\x15INVALID_ONION_PAYLOAD\x10\x18\x12\x15\n\x10INTERNAL_FAILURE\x10\xe5\x07\x12\x14\n\x0fUNKNOWN_FAILURE\x10\xe6\x07\x12\x17\n\x12UNREADABLE_FAILURE\x10\xe7\x07J\x04\x08\x02\x10\x03\"\x9a\x02\n\rChannelUpdate\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x13\n\x07\x63han_id\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x11\n\ttimestamp\x18\x04 \x01(\r\x12\x15\n\rmessage_flags\x18\n \x01(\r\x12\x15\n\rchannel_flags\x18\x05 \x01(\r\x12\x17\n\x0ftime_lock_delta\x18\x06 \x01(\r\x12\x19\n\x11htlc_minimum_msat\x18\x07 \x01(\x04\x12\x10\n\x08\x62\x61se_fee\x18\x08 \x01(\r\x12\x10\n\x08\x66\x65\x65_rate\x18\t \x01(\r\x12\x19\n\x11htlc_maximum_msat\x18\x0b \x01(\x04\x12\x19\n\x11\x65xtra_opaque_data\x18\x0c \x01(\x0c\"F\n\nMacaroonId\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x11\n\tstorageId\x18\x02 \x01(\x0c\x12\x16\n\x03ops\x18\x03 \x03(\x0b\x32\t.lnrpc.Op\"%\n\x02Op\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t*}\n\x0b\x41\x64\x64ressType\x12\x17\n\x13WITNESS_PUBKEY_HASH\x10\x00\x12\x16\n\x12NESTED_PUBKEY_HASH\x10\x01\x12\x1e\n\x1aUNUSED_WITNESS_PUBKEY_HASH\x10\x02\x12\x1d\n\x19UNUSED_NESTED_PUBKEY_HASH\x10\x03*^\n\x0e\x43ommitmentType\x12\n\n\x06LEGACY\x10\x00\x12\x15\n\x11STATIC_REMOTE_KEY\x10\x01\x12\x0b\n\x07\x41NCHORS\x10\x02\x12\x1c\n\x17UNKNOWN_COMMITMENT_TYPE\x10\xe7\x07*a\n\tInitiator\x12\x15\n\x11INITIATOR_UNKNOWN\x10\x00\x12\x13\n\x0fINITIATOR_LOCAL\x10\x01\x12\x14\n\x10INITIATOR_REMOTE\x10\x02\x12\x12\n\x0eINITIATOR_BOTH\x10\x03*`\n\x0eResolutionType\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\n\n\x06\x41NCHOR\x10\x01\x12\x11\n\rINCOMING_HTLC\x10\x02\x12\x11\n\rOUTGOING_HTLC\x10\x03\x12\n\n\x06\x43OMMIT\x10\x04*q\n\x11ResolutionOutcome\x12\x13\n\x0fOUTCOME_UNKNOWN\x10\x00\x12\x0b\n\x07\x43LAIMED\x10\x01\x12\r\n\tUNCLAIMED\x10\x02\x12\r\n\tABANDONED\x10\x03\x12\x0f\n\x0b\x46IRST_STAGE\x10\x04\x12\x0b\n\x07TIMEOUT\x10\x05*9\n\x0eNodeMetricType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1a\n\x16\x42\x45TWEENNESS_CENTRALITY\x10\x01*;\n\x10InvoiceHTLCState\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02*\xd9\x01\n\x14PaymentFailureReason\x12\x17\n\x13\x46\x41ILURE_REASON_NONE\x10\x00\x12\x1a\n\x16\x46\x41ILURE_REASON_TIMEOUT\x10\x01\x12\x1b\n\x17\x46\x41ILURE_REASON_NO_ROUTE\x10\x02\x12\x18\n\x14\x46\x41ILURE_REASON_ERROR\x10\x03\x12,\n(FAILURE_REASON_INCORRECT_PAYMENT_DETAILS\x10\x04\x12\'\n#FAILURE_REASON_INSUFFICIENT_BALANCE\x10\x05*\xb5\x04\n\nFeatureBit\x12\x18\n\x14\x44\x41TALOSS_PROTECT_REQ\x10\x00\x12\x18\n\x14\x44\x41TALOSS_PROTECT_OPT\x10\x01\x12\x17\n\x13INITIAL_ROUING_SYNC\x10\x03\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_REQ\x10\x04\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_OPT\x10\x05\x12\x16\n\x12GOSSIP_QUERIES_REQ\x10\x06\x12\x16\n\x12GOSSIP_QUERIES_OPT\x10\x07\x12\x11\n\rTLV_ONION_REQ\x10\x08\x12\x11\n\rTLV_ONION_OPT\x10\t\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_REQ\x10\n\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_OPT\x10\x0b\x12\x19\n\x15STATIC_REMOTE_KEY_REQ\x10\x0c\x12\x19\n\x15STATIC_REMOTE_KEY_OPT\x10\r\x12\x14\n\x10PAYMENT_ADDR_REQ\x10\x0e\x12\x14\n\x10PAYMENT_ADDR_OPT\x10\x0f\x12\x0b\n\x07MPP_REQ\x10\x10\x12\x0b\n\x07MPP_OPT\x10\x11\x12\x16\n\x12WUMBO_CHANNELS_REQ\x10\x12\x12\x16\n\x12WUMBO_CHANNELS_OPT\x10\x13\x12\x0f\n\x0b\x41NCHORS_REQ\x10\x14\x12\x0f\n\x0b\x41NCHORS_OPT\x10\x15\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_REQ\x10\x16\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_OPT\x10\x17\x32\xc9!\n\tLightning\x12J\n\rWalletBalance\x12\x1b.lnrpc.WalletBalanceRequest\x1a\x1c.lnrpc.WalletBalanceResponse\x12M\n\x0e\x43hannelBalance\x12\x1c.lnrpc.ChannelBalanceRequest\x1a\x1d.lnrpc.ChannelBalanceResponse\x12K\n\x0fGetTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x19.lnrpc.TransactionDetails\x12\x44\n\x0b\x45stimateFee\x12\x19.lnrpc.EstimateFeeRequest\x1a\x1a.lnrpc.EstimateFeeResponse\x12>\n\tSendCoins\x12\x17.lnrpc.SendCoinsRequest\x1a\x18.lnrpc.SendCoinsResponse\x12\x44\n\x0bListUnspent\x12\x19.lnrpc.ListUnspentRequest\x1a\x1a.lnrpc.ListUnspentResponse\x12L\n\x15SubscribeTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x12.lnrpc.Transaction0\x01\x12;\n\x08SendMany\x12\x16.lnrpc.SendManyRequest\x1a\x17.lnrpc.SendManyResponse\x12\x41\n\nNewAddress\x12\x18.lnrpc.NewAddressRequest\x1a\x19.lnrpc.NewAddressResponse\x12\x44\n\x0bSignMessage\x12\x19.lnrpc.SignMessageRequest\x1a\x1a.lnrpc.SignMessageResponse\x12J\n\rVerifyMessage\x12\x1b.lnrpc.VerifyMessageRequest\x1a\x1c.lnrpc.VerifyMessageResponse\x12\x44\n\x0b\x43onnectPeer\x12\x19.lnrpc.ConnectPeerRequest\x1a\x1a.lnrpc.ConnectPeerResponse\x12M\n\x0e\x44isconnectPeer\x12\x1c.lnrpc.DisconnectPeerRequest\x1a\x1d.lnrpc.DisconnectPeerResponse\x12>\n\tListPeers\x12\x17.lnrpc.ListPeersRequest\x1a\x18.lnrpc.ListPeersResponse\x12G\n\x13SubscribePeerEvents\x12\x1c.lnrpc.PeerEventSubscription\x1a\x10.lnrpc.PeerEvent0\x01\x12\x38\n\x07GetInfo\x12\x15.lnrpc.GetInfoRequest\x1a\x16.lnrpc.GetInfoResponse\x12P\n\x0fGetRecoveryInfo\x12\x1d.lnrpc.GetRecoveryInfoRequest\x1a\x1e.lnrpc.GetRecoveryInfoResponse\x12P\n\x0fPendingChannels\x12\x1d.lnrpc.PendingChannelsRequest\x1a\x1e.lnrpc.PendingChannelsResponse\x12G\n\x0cListChannels\x12\x1a.lnrpc.ListChannelsRequest\x1a\x1b.lnrpc.ListChannelsResponse\x12V\n\x16SubscribeChannelEvents\x12\x1f.lnrpc.ChannelEventSubscription\x1a\x19.lnrpc.ChannelEventUpdate0\x01\x12M\n\x0e\x43losedChannels\x12\x1c.lnrpc.ClosedChannelsRequest\x1a\x1d.lnrpc.ClosedChannelsResponse\x12\x41\n\x0fOpenChannelSync\x12\x19.lnrpc.OpenChannelRequest\x1a\x13.lnrpc.ChannelPoint\x12\x43\n\x0bOpenChannel\x12\x19.lnrpc.OpenChannelRequest\x1a\x17.lnrpc.OpenStatusUpdate0\x01\x12L\n\x10\x46undingStateStep\x12\x1b.lnrpc.FundingTransitionMsg\x1a\x1b.lnrpc.FundingStateStepResp\x12P\n\x0f\x43hannelAcceptor\x12\x1c.lnrpc.ChannelAcceptResponse\x1a\x1b.lnrpc.ChannelAcceptRequest(\x01\x30\x01\x12\x46\n\x0c\x43loseChannel\x12\x1a.lnrpc.CloseChannelRequest\x1a\x18.lnrpc.CloseStatusUpdate0\x01\x12M\n\x0e\x41\x62\x61ndonChannel\x12\x1c.lnrpc.AbandonChannelRequest\x1a\x1d.lnrpc.AbandonChannelResponse\x12?\n\x0bSendPayment\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01(\x01\x30\x01\x12:\n\x0fSendPaymentSync\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\x12\x46\n\x0bSendToRoute\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01(\x01\x30\x01\x12\x41\n\x0fSendToRouteSync\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\x12\x37\n\nAddInvoice\x12\x0e.lnrpc.Invoice\x1a\x19.lnrpc.AddInvoiceResponse\x12\x45\n\x0cListInvoices\x12\x19.lnrpc.ListInvoiceRequest\x1a\x1a.lnrpc.ListInvoiceResponse\x12\x33\n\rLookupInvoice\x12\x12.lnrpc.PaymentHash\x1a\x0e.lnrpc.Invoice\x12\x41\n\x11SubscribeInvoices\x12\x1a.lnrpc.InvoiceSubscription\x1a\x0e.lnrpc.Invoice0\x01\x12\x32\n\x0c\x44\x65\x63odePayReq\x12\x13.lnrpc.PayReqString\x1a\r.lnrpc.PayReq\x12G\n\x0cListPayments\x12\x1a.lnrpc.ListPaymentsRequest\x1a\x1b.lnrpc.ListPaymentsResponse\x12V\n\x11\x44\x65leteAllPayments\x12\x1f.lnrpc.DeleteAllPaymentsRequest\x1a .lnrpc.DeleteAllPaymentsResponse\x12@\n\rDescribeGraph\x12\x1a.lnrpc.ChannelGraphRequest\x1a\x13.lnrpc.ChannelGraph\x12G\n\x0eGetNodeMetrics\x12\x19.lnrpc.NodeMetricsRequest\x1a\x1a.lnrpc.NodeMetricsResponse\x12\x39\n\x0bGetChanInfo\x12\x16.lnrpc.ChanInfoRequest\x1a\x12.lnrpc.ChannelEdge\x12\x36\n\x0bGetNodeInfo\x12\x16.lnrpc.NodeInfoRequest\x1a\x0f.lnrpc.NodeInfo\x12\x44\n\x0bQueryRoutes\x12\x19.lnrpc.QueryRoutesRequest\x1a\x1a.lnrpc.QueryRoutesResponse\x12?\n\x0eGetNetworkInfo\x12\x19.lnrpc.NetworkInfoRequest\x1a\x12.lnrpc.NetworkInfo\x12\x35\n\nStopDaemon\x12\x12.lnrpc.StopRequest\x1a\x13.lnrpc.StopResponse\x12W\n\x15SubscribeChannelGraph\x12 .lnrpc.GraphTopologySubscription\x1a\x1a.lnrpc.GraphTopologyUpdate0\x01\x12\x41\n\nDebugLevel\x12\x18.lnrpc.DebugLevelRequest\x1a\x19.lnrpc.DebugLevelResponse\x12>\n\tFeeReport\x12\x17.lnrpc.FeeReportRequest\x1a\x18.lnrpc.FeeReportResponse\x12N\n\x13UpdateChannelPolicy\x12\x1a.lnrpc.PolicyUpdateRequest\x1a\x1b.lnrpc.PolicyUpdateResponse\x12V\n\x11\x46orwardingHistory\x12\x1f.lnrpc.ForwardingHistoryRequest\x1a .lnrpc.ForwardingHistoryResponse\x12N\n\x13\x45xportChannelBackup\x12!.lnrpc.ExportChannelBackupRequest\x1a\x14.lnrpc.ChannelBackup\x12T\n\x17\x45xportAllChannelBackups\x12\x1e.lnrpc.ChanBackupExportRequest\x1a\x19.lnrpc.ChanBackupSnapshot\x12N\n\x10VerifyChanBackup\x12\x19.lnrpc.ChanBackupSnapshot\x1a\x1f.lnrpc.VerifyChanBackupResponse\x12V\n\x15RestoreChannelBackups\x12\x1f.lnrpc.RestoreChanBackupRequest\x1a\x1c.lnrpc.RestoreBackupResponse\x12X\n\x17SubscribeChannelBackups\x12 .lnrpc.ChannelBackupSubscription\x1a\x19.lnrpc.ChanBackupSnapshot0\x01\x12G\n\x0c\x42\x61keMacaroon\x12\x1a.lnrpc.BakeMacaroonRequest\x1a\x1b.lnrpc.BakeMacaroonResponse\x12P\n\x0fListMacaroonIDs\x12\x1d.lnrpc.ListMacaroonIDsRequest\x1a\x1e.lnrpc.ListMacaroonIDsResponse\x12S\n\x10\x44\x65leteMacaroonID\x12\x1e.lnrpc.DeleteMacaroonIDRequest\x1a\x1f.lnrpc.DeleteMacaroonIDResponse\x12P\n\x0fListPermissions\x12\x1d.lnrpc.ListPermissionsRequest\x1a\x1e.lnrpc.ListPermissionsResponseB\'Z%github.com/lightningnetwork/lnd/lnrpcb\x06proto3' + serialized_pb=b'\n\x0flightning.proto\x12\x05lnrpc\" \n\x1eSubscribeCustomMessagesRequest\"9\n\rCustomMessage\x12\x0c\n\x04peer\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"D\n\x18SendCustomMessageRequest\x12\x0c\n\x04peer\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"\x1b\n\x19SendCustomMessageResponse\"\xa2\x01\n\x04Utxo\x12(\n\x0c\x61\x64\x64ress_type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x12\n\namount_sat\x18\x03 \x01(\x03\x12\x11\n\tpk_script\x18\x04 \x01(\t\x12!\n\x08outpoint\x18\x05 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x15\n\rconfirmations\x18\x06 \x01(\x03\"\xd6\x01\n\x0bTransaction\x12\x0f\n\x07tx_hash\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x19\n\x11num_confirmations\x18\x03 \x01(\x05\x12\x12\n\nblock_hash\x18\x04 \x01(\t\x12\x14\n\x0c\x62lock_height\x18\x05 \x01(\x05\x12\x12\n\ntime_stamp\x18\x06 \x01(\x03\x12\x12\n\ntotal_fees\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x65st_addresses\x18\x08 \x03(\t\x12\x12\n\nraw_tx_hex\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\"S\n\x16GetTransactionsRequest\x12\x14\n\x0cstart_height\x18\x01 \x01(\x05\x12\x12\n\nend_height\x18\x02 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\t\">\n\x12TransactionDetails\x12(\n\x0ctransactions\x18\x01 \x03(\x0b\x32\x12.lnrpc.Transaction\"M\n\x08\x46\x65\x65Limit\x12\x0f\n\x05\x66ixed\x18\x01 \x01(\x03H\x00\x12\x14\n\nfixed_msat\x18\x03 \x01(\x03H\x00\x12\x11\n\x07percent\x18\x02 \x01(\x03H\x00\x42\x07\n\x05limit\"\x8a\x04\n\x0bSendRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x17\n\x0b\x64\x65st_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x0b\n\x03\x61mt\x18\x03 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x05 \x01(\tB\x02\x18\x01\x12\x17\n\x0fpayment_request\x18\x06 \x01(\t\x12\x18\n\x10\x66inal_cltv_delta\x18\x07 \x01(\x05\x12\"\n\tfee_limit\x18\x08 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x1c\n\x10outgoing_chan_id\x18\t \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\r \x01(\x0c\x12\x12\n\ncltv_limit\x18\n \x01(\r\x12\x46\n\x13\x64\x65st_custom_records\x18\x0b \x03(\x0b\x32).lnrpc.SendRequest.DestCustomRecordsEntry\x12\x1a\n\x12\x61llow_self_payment\x18\x0e \x01(\x08\x12(\n\rdest_features\x18\x0f \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x14\n\x0cpayment_addr\x18\x10 \x01(\x0c\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"z\n\x0cSendResponse\x12\x15\n\rpayment_error\x18\x01 \x01(\t\x12\x18\n\x10payment_preimage\x18\x02 \x01(\x0c\x12#\n\rpayment_route\x18\x03 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\"n\n\x12SendToRouteRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x1b\n\x05route\x18\x04 \x01(\x0b\x32\x0c.lnrpc.RouteJ\x04\x08\x03\x10\x04\"\xe5\x02\n\x14\x43hannelAcceptRequest\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x03 \x01(\x0c\x12\x13\n\x0b\x66unding_amt\x18\x04 \x01(\x04\x12\x10\n\x08push_amt\x18\x05 \x01(\x04\x12\x12\n\ndust_limit\x18\x06 \x01(\x04\x12\x1b\n\x13max_value_in_flight\x18\x07 \x01(\x04\x12\x17\n\x0f\x63hannel_reserve\x18\x08 \x01(\x04\x12\x10\n\x08min_htlc\x18\t \x01(\x04\x12\x12\n\nfee_per_kw\x18\n \x01(\x04\x12\x11\n\tcsv_delay\x18\x0b \x01(\r\x12\x1a\n\x12max_accepted_htlcs\x18\x0c \x01(\r\x12\x15\n\rchannel_flags\x18\r \x01(\r\x12.\n\x0f\x63ommitment_type\x18\x0e \x01(\x0e\x32\x15.lnrpc.CommitmentType\"\xf4\x01\n\x15\x43hannelAcceptResponse\x12\x0e\n\x06\x61\x63\x63\x65pt\x18\x01 \x01(\x08\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x18\n\x10upfront_shutdown\x18\x04 \x01(\t\x12\x11\n\tcsv_delay\x18\x05 \x01(\r\x12\x13\n\x0breserve_sat\x18\x06 \x01(\x04\x12\x1a\n\x12in_flight_max_msat\x18\x07 \x01(\x04\x12\x16\n\x0emax_htlc_count\x18\x08 \x01(\r\x12\x13\n\x0bmin_htlc_in\x18\t \x01(\x04\x12\x18\n\x10min_accept_depth\x18\n \x01(\r\"n\n\x0c\x43hannelPoint\x12\x1c\n\x12\x66unding_txid_bytes\x18\x01 \x01(\x0cH\x00\x12\x1a\n\x10\x66unding_txid_str\x18\x02 \x01(\tH\x00\x12\x14\n\x0coutput_index\x18\x03 \x01(\rB\x0e\n\x0c\x66unding_txid\"F\n\x08OutPoint\x12\x12\n\ntxid_bytes\x18\x01 \x01(\x0c\x12\x10\n\x08txid_str\x18\x02 \x01(\t\x12\x14\n\x0coutput_index\x18\x03 \x01(\r\"0\n\x10LightningAddress\x12\x0e\n\x06pubkey\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\"\xcf\x01\n\x12\x45stimateFeeRequest\x12\x41\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32+.lnrpc.EstimateFeeRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x12\x11\n\tmin_confs\x18\x03 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x04 \x01(\x08\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\"_\n\x13\x45stimateFeeResponse\x12\x0f\n\x07\x66\x65\x65_sat\x18\x01 \x01(\x03\x12 \n\x14\x66\x65\x65rate_sat_per_byte\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\rsat_per_vbyte\x18\x03 \x01(\x04\"\x89\x02\n\x0fSendManyRequest\x12>\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32(.lnrpc.SendManyRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x04 \x01(\x04\x12\x18\n\x0csat_per_byte\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\r\n\x05label\x18\x06 \x01(\t\x12\x11\n\tmin_confs\x18\x07 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x08 \x01(\x08\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\" \n\x10SendManyResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t\"\xc5\x01\n\x10SendCoinsRequest\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x04 \x01(\x04\x12\x18\n\x0csat_per_byte\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x10\n\x08send_all\x18\x06 \x01(\x08\x12\r\n\x05label\x18\x07 \x01(\t\x12\x11\n\tmin_confs\x18\x08 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\t \x01(\x08\"!\n\x11SendCoinsResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t\"K\n\x12ListUnspentRequest\x12\x11\n\tmin_confs\x18\x01 \x01(\x05\x12\x11\n\tmax_confs\x18\x02 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\t\"1\n\x13ListUnspentResponse\x12\x1a\n\x05utxos\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Utxo\"F\n\x11NewAddressRequest\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x63\x63ount\x18\x02 \x01(\t\"%\n\x12NewAddressResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"6\n\x12SignMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x13\n\x0bsingle_hash\x18\x02 \x01(\x08\"(\n\x13SignMessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\t\"6\n\x14VerifyMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\t\"6\n\x15VerifyMessageResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\t\"Z\n\x12\x43onnectPeerRequest\x12%\n\x04\x61\x64\x64r\x18\x01 \x01(\x0b\x32\x17.lnrpc.LightningAddress\x12\x0c\n\x04perm\x18\x02 \x01(\x08\x12\x0f\n\x07timeout\x18\x03 \x01(\x04\"\x15\n\x13\x43onnectPeerResponse\"(\n\x15\x44isconnectPeerRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\"\x18\n\x16\x44isconnectPeerResponse\"\xa5\x01\n\x04HTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x11\n\thash_lock\x18\x03 \x01(\x0c\x12\x19\n\x11\x65xpiration_height\x18\x04 \x01(\r\x12\x12\n\nhtlc_index\x18\x05 \x01(\x04\x12\x1a\n\x12\x66orwarding_channel\x18\x06 \x01(\x04\x12\x1d\n\x15\x66orwarding_htlc_index\x18\x07 \x01(\x04\"\xaa\x01\n\x12\x43hannelConstraints\x12\x11\n\tcsv_delay\x18\x01 \x01(\r\x12\x18\n\x10\x63han_reserve_sat\x18\x02 \x01(\x04\x12\x16\n\x0e\x64ust_limit_sat\x18\x03 \x01(\x04\x12\x1c\n\x14max_pending_amt_msat\x18\x04 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x04\x12\x1a\n\x12max_accepted_htlcs\x18\x06 \x01(\r\"\xb0\x06\n\x07\x43hannel\x12\x0e\n\x06\x61\x63tive\x18\x01 \x01(\x08\x12\x15\n\rremote_pubkey\x18\x02 \x01(\t\x12\x15\n\rchannel_point\x18\x03 \x01(\t\x12\x13\n\x07\x63han_id\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x05 \x01(\x03\x12\x15\n\rlocal_balance\x18\x06 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x07 \x01(\x03\x12\x12\n\ncommit_fee\x18\x08 \x01(\x03\x12\x15\n\rcommit_weight\x18\t \x01(\x03\x12\x12\n\nfee_per_kw\x18\n \x01(\x03\x12\x19\n\x11unsettled_balance\x18\x0b \x01(\x03\x12\x1b\n\x13total_satoshis_sent\x18\x0c \x01(\x03\x12\x1f\n\x17total_satoshis_received\x18\r \x01(\x03\x12\x13\n\x0bnum_updates\x18\x0e \x01(\x04\x12\"\n\rpending_htlcs\x18\x0f \x03(\x0b\x32\x0b.lnrpc.HTLC\x12\x15\n\tcsv_delay\x18\x10 \x01(\rB\x02\x18\x01\x12\x0f\n\x07private\x18\x11 \x01(\x08\x12\x11\n\tinitiator\x18\x12 \x01(\x08\x12\x19\n\x11\x63han_status_flags\x18\x13 \x01(\t\x12\"\n\x16local_chan_reserve_sat\x18\x14 \x01(\x03\x42\x02\x18\x01\x12#\n\x17remote_chan_reserve_sat\x18\x15 \x01(\x03\x42\x02\x18\x01\x12\x1d\n\x11static_remote_key\x18\x16 \x01(\x08\x42\x02\x18\x01\x12.\n\x0f\x63ommitment_type\x18\x1a \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x10\n\x08lifetime\x18\x17 \x01(\x03\x12\x0e\n\x06uptime\x18\x18 \x01(\x03\x12\x15\n\rclose_address\x18\x19 \x01(\t\x12\x17\n\x0fpush_amount_sat\x18\x1b \x01(\x04\x12\x13\n\x0bthaw_height\x18\x1c \x01(\r\x12\x34\n\x11local_constraints\x18\x1d \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\x12\x35\n\x12remote_constraints\x18\x1e \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\"z\n\x13ListChannelsRequest\x12\x13\n\x0b\x61\x63tive_only\x18\x01 \x01(\x08\x12\x15\n\rinactive_only\x18\x02 \x01(\x08\x12\x13\n\x0bpublic_only\x18\x03 \x01(\x08\x12\x14\n\x0cprivate_only\x18\x04 \x01(\x08\x12\x0c\n\x04peer\x18\x05 \x01(\x0c\"8\n\x14ListChannelsResponse\x12 \n\x08\x63hannels\x18\x0b \x03(\x0b\x32\x0e.lnrpc.Channel\"\xa9\x04\n\x13\x43hannelCloseSummary\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchain_hash\x18\x03 \x01(\t\x12\x17\n\x0f\x63losing_tx_hash\x18\x04 \x01(\t\x12\x15\n\rremote_pubkey\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12\x14\n\x0c\x63lose_height\x18\x07 \x01(\r\x12\x17\n\x0fsettled_balance\x18\x08 \x01(\x03\x12\x1b\n\x13time_locked_balance\x18\t \x01(\x03\x12:\n\nclose_type\x18\n \x01(\x0e\x32&.lnrpc.ChannelCloseSummary.ClosureType\x12(\n\x0eopen_initiator\x18\x0b \x01(\x0e\x32\x10.lnrpc.Initiator\x12)\n\x0f\x63lose_initiator\x18\x0c \x01(\x0e\x32\x10.lnrpc.Initiator\x12&\n\x0bresolutions\x18\r \x03(\x0b\x32\x11.lnrpc.Resolution\"\x8a\x01\n\x0b\x43losureType\x12\x15\n\x11\x43OOPERATIVE_CLOSE\x10\x00\x12\x15\n\x11LOCAL_FORCE_CLOSE\x10\x01\x12\x16\n\x12REMOTE_FORCE_CLOSE\x10\x02\x12\x10\n\x0c\x42REACH_CLOSE\x10\x03\x12\x14\n\x10\x46UNDING_CANCELED\x10\x04\x12\r\n\tABANDONED\x10\x05\"\xb2\x01\n\nResolution\x12.\n\x0fresolution_type\x18\x01 \x01(\x0e\x32\x15.lnrpc.ResolutionType\x12)\n\x07outcome\x18\x02 \x01(\x0e\x32\x18.lnrpc.ResolutionOutcome\x12!\n\x08outpoint\x18\x03 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x12\n\namount_sat\x18\x04 \x01(\x04\x12\x12\n\nsweep_txid\x18\x05 \x01(\t\"\x94\x01\n\x15\x43losedChannelsRequest\x12\x13\n\x0b\x63ooperative\x18\x01 \x01(\x08\x12\x13\n\x0blocal_force\x18\x02 \x01(\x08\x12\x14\n\x0cremote_force\x18\x03 \x01(\x08\x12\x0e\n\x06\x62reach\x18\x04 \x01(\x08\x12\x18\n\x10\x66unding_canceled\x18\x05 \x01(\x08\x12\x11\n\tabandoned\x18\x06 \x01(\x08\"F\n\x16\x43losedChannelsResponse\x12,\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1a.lnrpc.ChannelCloseSummary\"\xef\x03\n\x04Peer\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x12\n\nbytes_sent\x18\x04 \x01(\x04\x12\x12\n\nbytes_recv\x18\x05 \x01(\x04\x12\x10\n\x08sat_sent\x18\x06 \x01(\x03\x12\x10\n\x08sat_recv\x18\x07 \x01(\x03\x12\x0f\n\x07inbound\x18\x08 \x01(\x08\x12\x11\n\tping_time\x18\t \x01(\x03\x12\'\n\tsync_type\x18\n \x01(\x0e\x32\x14.lnrpc.Peer.SyncType\x12+\n\x08\x66\x65\x61tures\x18\x0b \x03(\x0b\x32\x19.lnrpc.Peer.FeaturesEntry\x12\'\n\x06\x65rrors\x18\x0c \x03(\x0b\x32\x17.lnrpc.TimestampedError\x12\x12\n\nflap_count\x18\r \x01(\x05\x12\x14\n\x0clast_flap_ns\x18\x0e \x01(\x03\x12\x19\n\x11last_ping_payload\x18\x0f \x01(\x0c\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"P\n\x08SyncType\x12\x10\n\x0cUNKNOWN_SYNC\x10\x00\x12\x0f\n\x0b\x41\x43TIVE_SYNC\x10\x01\x12\x10\n\x0cPASSIVE_SYNC\x10\x02\x12\x0f\n\x0bPINNED_SYNC\x10\x03\"4\n\x10TimestampedError\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"(\n\x10ListPeersRequest\x12\x14\n\x0clatest_error\x18\x01 \x01(\x08\"/\n\x11ListPeersResponse\x12\x1a\n\x05peers\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Peer\"\x17\n\x15PeerEventSubscription\"v\n\tPeerEvent\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12(\n\x04type\x18\x02 \x01(\x0e\x32\x1a.lnrpc.PeerEvent.EventType\".\n\tEventType\x12\x0f\n\x0bPEER_ONLINE\x10\x00\x12\x10\n\x0cPEER_OFFLINE\x10\x01\"\x10\n\x0eGetInfoRequest\"\x96\x04\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\x0e \x01(\t\x12\x13\n\x0b\x63ommit_hash\x18\x14 \x01(\t\x12\x17\n\x0fidentity_pubkey\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\r\n\x05\x63olor\x18\x11 \x01(\t\x12\x1c\n\x14num_pending_channels\x18\x03 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x04 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x0f \x01(\r\x12\x11\n\tnum_peers\x18\x05 \x01(\r\x12\x14\n\x0c\x62lock_height\x18\x06 \x01(\r\x12\x12\n\nblock_hash\x18\x08 \x01(\t\x12\x1d\n\x15\x62\x65st_header_timestamp\x18\r \x01(\x03\x12\x17\n\x0fsynced_to_chain\x18\t \x01(\x08\x12\x17\n\x0fsynced_to_graph\x18\x12 \x01(\x08\x12\x13\n\x07testnet\x18\n \x01(\x08\x42\x02\x18\x01\x12\x1c\n\x06\x63hains\x18\x10 \x03(\x0b\x32\x0c.lnrpc.Chain\x12\x0c\n\x04uris\x18\x0c \x03(\t\x12\x36\n\x08\x66\x65\x61tures\x18\x13 \x03(\x0b\x32$.lnrpc.GetInfoResponse.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01J\x04\x08\x0b\x10\x0c\"\x18\n\x16GetRecoveryInfoRequest\"]\n\x17GetRecoveryInfoResponse\x12\x15\n\rrecovery_mode\x18\x01 \x01(\x08\x12\x19\n\x11recovery_finished\x18\x02 \x01(\x08\x12\x10\n\x08progress\x18\x03 \x01(\x01\"\'\n\x05\x43hain\x12\r\n\x05\x63hain\x18\x01 \x01(\t\x12\x0f\n\x07network\x18\x02 \x01(\t\"U\n\x12\x43onfirmationUpdate\x12\x11\n\tblock_sha\x18\x01 \x01(\x0c\x12\x14\n\x0c\x62lock_height\x18\x02 \x01(\x05\x12\x16\n\x0enum_confs_left\x18\x03 \x01(\r\"?\n\x11\x43hannelOpenUpdate\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\";\n\x12\x43hannelCloseUpdate\x12\x14\n\x0c\x63losing_txid\x18\x01 \x01(\x0c\x12\x0f\n\x07success\x18\x02 \x01(\x08\"\xb0\x01\n\x13\x43loseChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x18\n\x0csat_per_byte\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10\x64\x65livery_address\x18\x05 \x01(\t\x12\x15\n\rsat_per_vbyte\x18\x06 \x01(\x04\"}\n\x11\x43loseStatusUpdate\x12-\n\rclose_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12/\n\nchan_close\x18\x03 \x01(\x0b\x32\x19.lnrpc.ChannelCloseUpdateH\x00\x42\x08\n\x06update\"3\n\rPendingUpdate\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x14\n\x0coutput_index\x18\x02 \x01(\r\"T\n\x13ReadyForPsbtFunding\x12\x17\n\x0f\x66unding_address\x18\x01 \x01(\t\x12\x16\n\x0e\x66unding_amount\x18\x02 \x01(\x03\x12\x0c\n\x04psbt\x18\x03 \x01(\x0c\"\xad\x01\n\x17\x42\x61tchOpenChannelRequest\x12)\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x17.lnrpc.BatchOpenChannel\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x03 \x01(\x03\x12\x11\n\tmin_confs\x18\x04 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x05 \x01(\x08\x12\r\n\x05label\x18\x06 \x01(\t\"\xf9\x01\n\x10\x42\x61tchOpenChannel\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x1c\n\x14local_funding_amount\x18\x02 \x01(\x03\x12\x10\n\x08push_sat\x18\x03 \x01(\x03\x12\x0f\n\x07private\x18\x04 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\x06 \x01(\r\x12\x15\n\rclose_address\x18\x07 \x01(\t\x12\x17\n\x0fpending_chan_id\x18\x08 \x01(\x0c\x12.\n\x0f\x63ommitment_type\x18\t \x01(\x0e\x32\x15.lnrpc.CommitmentType\"J\n\x18\x42\x61tchOpenChannelResponse\x12.\n\x10pending_channels\x18\x01 \x03(\x0b\x32\x14.lnrpc.PendingUpdate\"\xfa\x03\n\x12OpenChannelRequest\x12\x15\n\rsat_per_vbyte\x18\x01 \x01(\x04\x12\x13\n\x0bnode_pubkey\x18\x02 \x01(\x0c\x12\x1e\n\x12node_pubkey_string\x18\x03 \x01(\tB\x02\x18\x01\x12\x1c\n\x14local_funding_amount\x18\x04 \x01(\x03\x12\x10\n\x08push_sat\x18\x05 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x06 \x01(\x05\x12\x18\n\x0csat_per_byte\x18\x07 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x07private\x18\x08 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\t \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\n \x01(\r\x12\x11\n\tmin_confs\x18\x0b \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x0c \x01(\x08\x12\x15\n\rclose_address\x18\r \x01(\t\x12(\n\x0c\x66unding_shim\x18\x0e \x01(\x0b\x32\x12.lnrpc.FundingShim\x12\'\n\x1fremote_max_value_in_flight_msat\x18\x0f \x01(\x04\x12\x18\n\x10remote_max_htlcs\x18\x10 \x01(\r\x12\x15\n\rmax_local_csv\x18\x11 \x01(\r\x12.\n\x0f\x63ommitment_type\x18\x12 \x01(\x0e\x32\x15.lnrpc.CommitmentType\"\xc3\x01\n\x10OpenStatusUpdate\x12,\n\x0c\x63han_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12-\n\tchan_open\x18\x03 \x01(\x0b\x32\x18.lnrpc.ChannelOpenUpdateH\x00\x12/\n\tpsbt_fund\x18\x05 \x01(\x0b\x32\x1a.lnrpc.ReadyForPsbtFundingH\x00\x12\x17\n\x0fpending_chan_id\x18\x04 \x01(\x0c\x42\x08\n\x06update\"3\n\nKeyLocator\x12\x12\n\nkey_family\x18\x01 \x01(\x05\x12\x11\n\tkey_index\x18\x02 \x01(\x05\"J\n\rKeyDescriptor\x12\x15\n\rraw_key_bytes\x18\x01 \x01(\x0c\x12\"\n\x07key_loc\x18\x02 \x01(\x0b\x32\x11.lnrpc.KeyLocator\"\xb0\x01\n\rChanPointShim\x12\x0b\n\x03\x61mt\x18\x01 \x01(\x03\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\'\n\tlocal_key\x18\x03 \x01(\x0b\x32\x14.lnrpc.KeyDescriptor\x12\x12\n\nremote_key\x18\x04 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x05 \x01(\x0c\x12\x13\n\x0bthaw_height\x18\x06 \x01(\r\"J\n\x08PsbtShim\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\x12\x11\n\tbase_psbt\x18\x02 \x01(\x0c\x12\x12\n\nno_publish\x18\x03 \x01(\x08\"l\n\x0b\x46undingShim\x12/\n\x0f\x63han_point_shim\x18\x01 \x01(\x0b\x32\x14.lnrpc.ChanPointShimH\x00\x12$\n\tpsbt_shim\x18\x02 \x01(\x0b\x32\x0f.lnrpc.PsbtShimH\x00\x42\x06\n\x04shim\",\n\x11\x46undingShimCancel\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\"X\n\x11\x46undingPsbtVerify\x12\x13\n\x0b\x66unded_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x15\n\rskip_finalize\x18\x03 \x01(\x08\"Y\n\x13\x46undingPsbtFinalize\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x14\n\x0c\x66inal_raw_tx\x18\x03 \x01(\x0c\"\xe5\x01\n\x14\x46undingTransitionMsg\x12+\n\rshim_register\x18\x01 \x01(\x0b\x32\x12.lnrpc.FundingShimH\x00\x12/\n\x0bshim_cancel\x18\x02 \x01(\x0b\x32\x18.lnrpc.FundingShimCancelH\x00\x12/\n\x0bpsbt_verify\x18\x03 \x01(\x0b\x32\x18.lnrpc.FundingPsbtVerifyH\x00\x12\x33\n\rpsbt_finalize\x18\x04 \x01(\x0b\x32\x1a.lnrpc.FundingPsbtFinalizeH\x00\x42\t\n\x07trigger\"\x16\n\x14\x46undingStateStepResp\"\x86\x01\n\x0bPendingHTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x10\n\x08outpoint\x18\x03 \x01(\t\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\r\n\x05stage\x18\x06 \x01(\r\"\x18\n\x16PendingChannelsRequest\"\xe7\r\n\x17PendingChannelsResponse\x12\x1b\n\x13total_limbo_balance\x18\x01 \x01(\x03\x12P\n\x15pending_open_channels\x18\x02 \x03(\x0b\x32\x31.lnrpc.PendingChannelsResponse.PendingOpenChannel\x12R\n\x18pending_closing_channels\x18\x03 \x03(\x0b\x32,.lnrpc.PendingChannelsResponse.ClosedChannelB\x02\x18\x01\x12Y\n\x1epending_force_closing_channels\x18\x04 \x03(\x0b\x32\x31.lnrpc.PendingChannelsResponse.ForceClosedChannel\x12R\n\x16waiting_close_channels\x18\x05 \x03(\x0b\x32\x32.lnrpc.PendingChannelsResponse.WaitingCloseChannel\x1a\xd3\x02\n\x0ePendingChannel\x12\x17\n\x0fremote_node_pub\x18\x01 \x01(\t\x12\x15\n\rchannel_point\x18\x02 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12\x15\n\rlocal_balance\x18\x04 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x05 \x01(\x03\x12\x1e\n\x16local_chan_reserve_sat\x18\x06 \x01(\x03\x12\x1f\n\x17remote_chan_reserve_sat\x18\x07 \x01(\x03\x12#\n\tinitiator\x18\x08 \x01(\x0e\x32\x10.lnrpc.Initiator\x12.\n\x0f\x63ommitment_type\x18\t \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x1f\n\x17num_forwarding_packages\x18\n \x01(\x03\x12\x19\n\x11\x63han_status_flags\x18\x0b \x01(\t\x1a\xb0\x01\n\x12PendingOpenChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x1b\n\x13\x63onfirmation_height\x18\x02 \x01(\r\x12\x12\n\ncommit_fee\x18\x04 \x01(\x03\x12\x15\n\rcommit_weight\x18\x05 \x01(\x03\x12\x12\n\nfee_per_kw\x18\x06 \x01(\x03\x1a\xad\x01\n\x13WaitingCloseChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x15\n\rlimbo_balance\x18\x02 \x01(\x03\x12?\n\x0b\x63ommitments\x18\x03 \x01(\x0b\x32*.lnrpc.PendingChannelsResponse.Commitments\x1a\xb7\x01\n\x0b\x43ommitments\x12\x12\n\nlocal_txid\x18\x01 \x01(\t\x12\x13\n\x0bremote_txid\x18\x02 \x01(\t\x12\x1b\n\x13remote_pending_txid\x18\x03 \x01(\t\x12\x1c\n\x14local_commit_fee_sat\x18\x04 \x01(\x04\x12\x1d\n\x15remote_commit_fee_sat\x18\x05 \x01(\x04\x12%\n\x1dremote_pending_commit_fee_sat\x18\x06 \x01(\x04\x1a\x65\n\rClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x1a\xff\x02\n\x12\x46orceClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x12\x15\n\rlimbo_balance\x18\x03 \x01(\x03\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\x19\n\x11recovered_balance\x18\x06 \x01(\x03\x12)\n\rpending_htlcs\x18\x08 \x03(\x0b\x32\x12.lnrpc.PendingHTLC\x12M\n\x06\x61nchor\x18\t \x01(\x0e\x32=.lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState\"1\n\x0b\x41nchorState\x12\t\n\x05LIMBO\x10\x00\x12\r\n\tRECOVERED\x10\x01\x12\x08\n\x04LOST\x10\x02\"\x1a\n\x18\x43hannelEventSubscription\"\x93\x04\n\x12\x43hannelEventUpdate\x12&\n\x0copen_channel\x18\x01 \x01(\x0b\x32\x0e.lnrpc.ChannelH\x00\x12\x34\n\x0e\x63losed_channel\x18\x02 \x01(\x0b\x32\x1a.lnrpc.ChannelCloseSummaryH\x00\x12-\n\x0e\x61\x63tive_channel\x18\x03 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12/\n\x10inactive_channel\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x34\n\x14pending_open_channel\x18\x06 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12\x35\n\x16\x66ully_resolved_channel\x18\x07 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x32\n\x04type\x18\x05 \x01(\x0e\x32$.lnrpc.ChannelEventUpdate.UpdateType\"\x92\x01\n\nUpdateType\x12\x10\n\x0cOPEN_CHANNEL\x10\x00\x12\x12\n\x0e\x43LOSED_CHANNEL\x10\x01\x12\x12\n\x0e\x41\x43TIVE_CHANNEL\x10\x02\x12\x14\n\x10INACTIVE_CHANNEL\x10\x03\x12\x18\n\x14PENDING_OPEN_CHANNEL\x10\x04\x12\x1a\n\x16\x46ULLY_RESOLVED_CHANNEL\x10\x05\x42\t\n\x07\x63hannel\"N\n\x14WalletAccountBalance\x12\x19\n\x11\x63onfirmed_balance\x18\x01 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x02 \x01(\x03\"\x16\n\x14WalletBalanceRequest\"\x85\x02\n\x15WalletBalanceResponse\x12\x15\n\rtotal_balance\x18\x01 \x01(\x03\x12\x19\n\x11\x63onfirmed_balance\x18\x02 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x03 \x01(\x03\x12I\n\x0f\x61\x63\x63ount_balance\x18\x04 \x03(\x0b\x32\x30.lnrpc.WalletBalanceResponse.AccountBalanceEntry\x1aR\n\x13\x41\x63\x63ountBalanceEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.lnrpc.WalletAccountBalance:\x02\x38\x01\"#\n\x06\x41mount\x12\x0b\n\x03sat\x18\x01 \x01(\x04\x12\x0c\n\x04msat\x18\x02 \x01(\x04\"\x17\n\x15\x43hannelBalanceRequest\"\xe4\x02\n\x16\x43hannelBalanceResponse\x12\x13\n\x07\x62\x61lance\x18\x01 \x01(\x03\x42\x02\x18\x01\x12 \n\x14pending_open_balance\x18\x02 \x01(\x03\x42\x02\x18\x01\x12$\n\rlocal_balance\x18\x03 \x01(\x0b\x32\r.lnrpc.Amount\x12%\n\x0eremote_balance\x18\x04 \x01(\x0b\x32\r.lnrpc.Amount\x12.\n\x17unsettled_local_balance\x18\x05 \x01(\x0b\x32\r.lnrpc.Amount\x12/\n\x18unsettled_remote_balance\x18\x06 \x01(\x0b\x32\r.lnrpc.Amount\x12\x31\n\x1apending_open_local_balance\x18\x07 \x01(\x0b\x32\r.lnrpc.Amount\x12\x32\n\x1bpending_open_remote_balance\x18\x08 \x01(\x0b\x32\r.lnrpc.Amount\"\xd0\x04\n\x12QueryRoutesRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0b\n\x03\x61mt\x18\x02 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x66inal_cltv_delta\x18\x04 \x01(\x05\x12\"\n\tfee_limit\x18\x05 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x15\n\rignored_nodes\x18\x06 \x03(\x0c\x12-\n\rignored_edges\x18\x07 \x03(\x0b\x32\x12.lnrpc.EdgeLocatorB\x02\x18\x01\x12\x16\n\x0esource_pub_key\x18\x08 \x01(\t\x12\x1b\n\x13use_mission_control\x18\t \x01(\x08\x12&\n\rignored_pairs\x18\n \x03(\x0b\x32\x0f.lnrpc.NodePair\x12\x12\n\ncltv_limit\x18\x0b \x01(\r\x12M\n\x13\x64\x65st_custom_records\x18\r \x03(\x0b\x32\x30.lnrpc.QueryRoutesRequest.DestCustomRecordsEntry\x12\x1c\n\x10outgoing_chan_id\x18\x0e \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\x0f \x01(\x0c\x12%\n\x0broute_hints\x18\x10 \x03(\x0b\x32\x10.lnrpc.RouteHint\x12(\n\rdest_features\x18\x11 \x03(\x0e\x32\x11.lnrpc.FeatureBit\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01J\x04\x08\x03\x10\x04\"$\n\x08NodePair\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x0c\x12\n\n\x02to\x18\x02 \x01(\x0c\"@\n\x0b\x45\x64geLocator\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x64irection_reverse\x18\x02 \x01(\x08\"I\n\x13QueryRoutesResponse\x12\x1c\n\x06routes\x18\x01 \x03(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0csuccess_prob\x18\x02 \x01(\x01\"\x80\x03\n\x03Hop\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\rchan_capacity\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x1a\n\x0e\x61mt_to_forward\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\r\x12\x1b\n\x13\x61mt_to_forward_msat\x18\x06 \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x03\x12\x0f\n\x07pub_key\x18\x08 \x01(\t\x12\x13\n\x0btlv_payload\x18\t \x01(\x08\x12$\n\nmpp_record\x18\n \x01(\x0b\x32\x10.lnrpc.MPPRecord\x12$\n\namp_record\x18\x0c \x01(\x0b\x32\x10.lnrpc.AMPRecord\x12\x35\n\x0e\x63ustom_records\x18\x0b \x03(\x0b\x32\x1d.lnrpc.Hop.CustomRecordsEntry\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"9\n\tMPPRecord\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x16\n\x0etotal_amt_msat\x18\n \x01(\x03\"D\n\tAMPRecord\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r\"\x9a\x01\n\x05Route\x12\x17\n\x0ftotal_time_lock\x18\x01 \x01(\r\x12\x16\n\ntotal_fees\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\ttotal_amt\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x04hops\x18\x04 \x03(\x0b\x32\n.lnrpc.Hop\x12\x17\n\x0ftotal_fees_msat\x18\x05 \x01(\x03\x12\x16\n\x0etotal_amt_msat\x18\x06 \x01(\x03\"<\n\x0fNodeInfoRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x18\n\x10include_channels\x18\x02 \x01(\x08\"\x82\x01\n\x08NodeInfo\x12\"\n\x04node\x18\x01 \x01(\x0b\x32\x14.lnrpc.LightningNode\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x16\n\x0etotal_capacity\x18\x03 \x01(\x03\x12$\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x12.lnrpc.ChannelEdge\"\xf1\x01\n\rLightningNode\x12\x13\n\x0blast_update\x18\x01 \x01(\r\x12\x0f\n\x07pub_key\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12%\n\taddresses\x18\x04 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12\x34\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\".lnrpc.LightningNode.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\",\n\x0bNodeAddress\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\t\"\xac\x01\n\rRoutingPolicy\x12\x17\n\x0ftime_lock_delta\x18\x01 \x01(\r\x12\x10\n\x08min_htlc\x18\x02 \x01(\x03\x12\x15\n\rfee_base_msat\x18\x03 \x01(\x03\x12\x1b\n\x13\x66\x65\x65_rate_milli_msat\x18\x04 \x01(\x03\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x13\n\x0blast_update\x18\x07 \x01(\r\"\xe2\x01\n\x0b\x43hannelEdge\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchan_point\x18\x02 \x01(\t\x12\x17\n\x0blast_update\x18\x03 \x01(\rB\x02\x18\x01\x12\x11\n\tnode1_pub\x18\x04 \x01(\t\x12\x11\n\tnode2_pub\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12*\n\x0cnode1_policy\x18\x07 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12*\n\x0cnode2_policy\x18\x08 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\"2\n\x13\x43hannelGraphRequest\x12\x1b\n\x13include_unannounced\x18\x01 \x01(\x08\"V\n\x0c\x43hannelGraph\x12#\n\x05nodes\x18\x01 \x03(\x0b\x32\x14.lnrpc.LightningNode\x12!\n\x05\x65\x64ges\x18\x02 \x03(\x0b\x32\x12.lnrpc.ChannelEdge\":\n\x12NodeMetricsRequest\x12$\n\x05types\x18\x01 \x03(\x0e\x32\x15.lnrpc.NodeMetricType\"\xbe\x01\n\x13NodeMetricsResponse\x12U\n\x16\x62\x65tweenness_centrality\x18\x01 \x03(\x0b\x32\x35.lnrpc.NodeMetricsResponse.BetweennessCentralityEntry\x1aP\n\x1a\x42\x65tweennessCentralityEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.lnrpc.FloatMetric:\x02\x38\x01\"6\n\x0b\x46loatMetric\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x18\n\x10normalized_value\x18\x02 \x01(\x01\"&\n\x0f\x43hanInfoRequest\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\"\x14\n\x12NetworkInfoRequest\"\xa7\x02\n\x0bNetworkInfo\x12\x16\n\x0egraph_diameter\x18\x01 \x01(\r\x12\x16\n\x0e\x61vg_out_degree\x18\x02 \x01(\x01\x12\x16\n\x0emax_out_degree\x18\x03 \x01(\r\x12\x11\n\tnum_nodes\x18\x04 \x01(\r\x12\x14\n\x0cnum_channels\x18\x05 \x01(\r\x12\x1e\n\x16total_network_capacity\x18\x06 \x01(\x03\x12\x18\n\x10\x61vg_channel_size\x18\x07 \x01(\x01\x12\x18\n\x10min_channel_size\x18\x08 \x01(\x03\x12\x18\n\x10max_channel_size\x18\t \x01(\x03\x12\x1f\n\x17median_channel_size_sat\x18\n \x01(\x03\x12\x18\n\x10num_zombie_chans\x18\x0b \x01(\x04\"\r\n\x0bStopRequest\"\x0e\n\x0cStopResponse\"\x1b\n\x19GraphTopologySubscription\"\xa3\x01\n\x13GraphTopologyUpdate\x12\'\n\x0cnode_updates\x18\x01 \x03(\x0b\x32\x11.lnrpc.NodeUpdate\x12\x31\n\x0f\x63hannel_updates\x18\x02 \x03(\x0b\x32\x18.lnrpc.ChannelEdgeUpdate\x12\x30\n\x0c\x63losed_chans\x18\x03 \x03(\x0b\x32\x1a.lnrpc.ClosedChannelUpdate\"\x94\x02\n\nNodeUpdate\x12\x15\n\taddresses\x18\x01 \x03(\tB\x02\x18\x01\x12\x14\n\x0cidentity_key\x18\x02 \x01(\t\x12\x1b\n\x0fglobal_features\x18\x03 \x01(\x0c\x42\x02\x18\x01\x12\r\n\x05\x61lias\x18\x04 \x01(\t\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12*\n\x0enode_addresses\x18\x07 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\x31\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\x1f.lnrpc.NodeUpdate.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"\xc4\x01\n\x11\x43hannelEdgeUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12,\n\x0erouting_policy\x18\x04 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12\x18\n\x10\x61\x64vertising_node\x18\x05 \x01(\t\x12\x17\n\x0f\x63onnecting_node\x18\x06 \x01(\t\"|\n\x13\x43losedChannelUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x03\x12\x15\n\rclosed_height\x18\x03 \x01(\r\x12\'\n\nchan_point\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"\x86\x01\n\x07HopHint\x12\x0f\n\x07node_id\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rfee_base_msat\x18\x03 \x01(\r\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x04 \x01(\r\x12\x19\n\x11\x63ltv_expiry_delta\x18\x05 \x01(\r\"\x17\n\x05SetID\x12\x0e\n\x06set_id\x18\x01 \x01(\x0c\".\n\tRouteHint\x12!\n\thop_hints\x18\x01 \x03(\x0b\x32\x0e.lnrpc.HopHint\"{\n\x0f\x41MPInvoiceState\x12&\n\x05state\x18\x01 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04\x12\x13\n\x0bsettle_time\x18\x03 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x05 \x01(\x03\"\x85\x07\n\x07Invoice\x12\x0c\n\x04memo\x18\x01 \x01(\t\x12\x12\n\nr_preimage\x18\x03 \x01(\x0c\x12\x0e\n\x06r_hash\x18\x04 \x01(\x0c\x12\r\n\x05value\x18\x05 \x01(\x03\x12\x12\n\nvalue_msat\x18\x17 \x01(\x03\x12\x13\n\x07settled\x18\x06 \x01(\x08\x42\x02\x18\x01\x12\x15\n\rcreation_date\x18\x07 \x01(\x03\x12\x13\n\x0bsettle_date\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\n \x01(\x0c\x12\x0e\n\x06\x65xpiry\x18\x0b \x01(\x03\x12\x15\n\rfallback_addr\x18\x0c \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\r \x01(\x04\x12%\n\x0broute_hints\x18\x0e \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x0f\n\x07private\x18\x0f \x01(\x08\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0csettle_index\x18\x11 \x01(\x04\x12\x14\n\x08\x61mt_paid\x18\x12 \x01(\x03\x42\x02\x18\x01\x12\x14\n\x0c\x61mt_paid_sat\x18\x13 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x14 \x01(\x03\x12*\n\x05state\x18\x15 \x01(\x0e\x32\x1b.lnrpc.Invoice.InvoiceState\x12!\n\x05htlcs\x18\x16 \x03(\x0b\x32\x12.lnrpc.InvoiceHTLC\x12.\n\x08\x66\x65\x61tures\x18\x18 \x03(\x0b\x32\x1c.lnrpc.Invoice.FeaturesEntry\x12\x12\n\nis_keysend\x18\x19 \x01(\x08\x12\x14\n\x0cpayment_addr\x18\x1a \x01(\x0c\x12\x0e\n\x06is_amp\x18\x1b \x01(\x08\x12>\n\x11\x61mp_invoice_state\x18\x1c \x03(\x0b\x32#.lnrpc.Invoice.AmpInvoiceStateEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\x1aN\n\x14\x41mpInvoiceStateEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.lnrpc.AMPInvoiceState:\x02\x38\x01\"A\n\x0cInvoiceState\x12\x08\n\x04OPEN\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x03J\x04\x08\x02\x10\x03\"\xf3\x02\n\x0bInvoiceHTLC\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nhtlc_index\x18\x02 \x01(\x04\x12\x10\n\x08\x61mt_msat\x18\x03 \x01(\x04\x12\x15\n\raccept_height\x18\x04 \x01(\x05\x12\x13\n\x0b\x61\x63\x63\x65pt_time\x18\x05 \x01(\x03\x12\x14\n\x0cresolve_time\x18\x06 \x01(\x03\x12\x15\n\rexpiry_height\x18\x07 \x01(\x05\x12&\n\x05state\x18\x08 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12=\n\x0e\x63ustom_records\x18\t \x03(\x0b\x32%.lnrpc.InvoiceHTLC.CustomRecordsEntry\x12\x1a\n\x12mpp_total_amt_msat\x18\n \x01(\x04\x12\x17\n\x03\x61mp\x18\x0b \x01(\x0b\x32\n.lnrpc.AMP\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"^\n\x03\x41MP\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r\x12\x0c\n\x04hash\x18\x04 \x01(\x0c\x12\x10\n\x08preimage\x18\x05 \x01(\x0c\"f\n\x12\x41\x64\x64InvoiceResponse\x12\x0e\n\x06r_hash\x18\x01 \x01(\x0c\x12\x17\n\x0fpayment_request\x18\x02 \x01(\t\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0cpayment_addr\x18\x11 \x01(\x0c\"5\n\x0bPaymentHash\x12\x16\n\nr_hash_str\x18\x01 \x01(\tB\x02\x18\x01\x12\x0e\n\x06r_hash\x18\x02 \x01(\x0c\"l\n\x12ListInvoiceRequest\x12\x14\n\x0cpending_only\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x04 \x01(\x04\x12\x18\n\x10num_max_invoices\x18\x05 \x01(\x04\x12\x10\n\x08reversed\x18\x06 \x01(\x08\"n\n\x13ListInvoiceResponse\x12 \n\x08invoices\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Invoice\x12\x19\n\x11last_index_offset\x18\x02 \x01(\x04\x12\x1a\n\x12\x66irst_index_offset\x18\x03 \x01(\x04\">\n\x13InvoiceSubscription\x12\x11\n\tadd_index\x18\x01 \x01(\x04\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04\"\xe0\x03\n\x07Payment\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\t\x12\x11\n\x05value\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x19\n\rcreation_date\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10payment_preimage\x18\x06 \x01(\t\x12\x11\n\tvalue_sat\x18\x07 \x01(\x03\x12\x12\n\nvalue_msat\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12,\n\x06status\x18\n \x01(\x0e\x32\x1c.lnrpc.Payment.PaymentStatus\x12\x0f\n\x07\x66\x65\x65_sat\x18\x0b \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x63reation_time_ns\x18\r \x01(\x03\x12!\n\x05htlcs\x18\x0e \x03(\x0b\x32\x12.lnrpc.HTLCAttempt\x12\x15\n\rpayment_index\x18\x0f \x01(\x04\x12\x33\n\x0e\x66\x61ilure_reason\x18\x10 \x01(\x0e\x32\x1b.lnrpc.PaymentFailureReason\"F\n\rPaymentStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tIN_FLIGHT\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03J\x04\x08\x04\x10\x05\"\x8a\x02\n\x0bHTLCAttempt\x12\x12\n\nattempt_id\x18\x07 \x01(\x04\x12-\n\x06status\x18\x01 \x01(\x0e\x32\x1d.lnrpc.HTLCAttempt.HTLCStatus\x12\x1b\n\x05route\x18\x02 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x17\n\x0f\x61ttempt_time_ns\x18\x03 \x01(\x03\x12\x17\n\x0fresolve_time_ns\x18\x04 \x01(\x03\x12\x1f\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32\x0e.lnrpc.Failure\x12\x10\n\x08preimage\x18\x06 \x01(\x0c\"6\n\nHTLCStatus\x12\r\n\tIN_FLIGHT\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"o\n\x13ListPaymentsRequest\x12\x1a\n\x12include_incomplete\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x02 \x01(\x04\x12\x14\n\x0cmax_payments\x18\x03 \x01(\x04\x12\x10\n\x08reversed\x18\x04 \x01(\x08\"o\n\x14ListPaymentsResponse\x12 \n\x08payments\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Payment\x12\x1a\n\x12\x66irst_index_offset\x18\x02 \x01(\x04\x12\x19\n\x11last_index_offset\x18\x03 \x01(\x04\"G\n\x14\x44\x65letePaymentRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08\"S\n\x18\x44\x65leteAllPaymentsRequest\x12\x1c\n\x14\x66\x61iled_payments_only\x18\x01 \x01(\x08\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08\"\x17\n\x15\x44\x65letePaymentResponse\"\x1b\n\x19\x44\x65leteAllPaymentsResponse\"\x86\x01\n\x15\x41\x62\x61ndonChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12!\n\x19pending_funding_shim_only\x18\x02 \x01(\x08\x12\x1e\n\x16i_know_what_i_am_doing\x18\x03 \x01(\x08\"\x18\n\x16\x41\x62\x61ndonChannelResponse\"5\n\x11\x44\x65\x62ugLevelRequest\x12\x0c\n\x04show\x18\x01 \x01(\x08\x12\x12\n\nlevel_spec\x18\x02 \x01(\t\")\n\x12\x44\x65\x62ugLevelResponse\x12\x13\n\x0bsub_systems\x18\x01 \x01(\t\"\x1f\n\x0cPayReqString\x12\x0f\n\x07pay_req\x18\x01 \x01(\t\"\x86\x03\n\x06PayReq\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\t\x12\x14\n\x0cnum_satoshis\x18\x03 \x01(\x03\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\x07 \x01(\t\x12\x15\n\rfallback_addr\x18\x08 \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\t \x01(\x03\x12%\n\x0broute_hints\x18\n \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x10\n\x08num_msat\x18\x0c \x01(\x03\x12-\n\x08\x66\x65\x61tures\x18\r \x03(\x0b\x32\x1b.lnrpc.PayReq.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\">\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0bis_required\x18\x03 \x01(\x08\x12\x10\n\x08is_known\x18\x04 \x01(\x08\"\x12\n\x10\x46\x65\x65ReportRequest\"|\n\x10\x43hannelFeeReport\x12\x13\n\x07\x63han_id\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x15\n\rbase_fee_msat\x18\x02 \x01(\x03\x12\x13\n\x0b\x66\x65\x65_per_mil\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\"\x84\x01\n\x11\x46\x65\x65ReportResponse\x12-\n\x0c\x63hannel_fees\x18\x01 \x03(\x0b\x32\x17.lnrpc.ChannelFeeReport\x12\x13\n\x0b\x64\x61y_fee_sum\x18\x02 \x01(\x04\x12\x14\n\x0cweek_fee_sum\x18\x03 \x01(\x04\x12\x15\n\rmonth_fee_sum\x18\x04 \x01(\x04\"\xec\x01\n\x13PolicyUpdateRequest\x12\x10\n\x06global\x18\x01 \x01(\x08H\x00\x12)\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x15\n\rbase_fee_msat\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\x12\x17\n\x0ftime_lock_delta\x18\x05 \x01(\r\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x07 \x01(\x04\x12\x1f\n\x17min_htlc_msat_specified\x18\x08 \x01(\x08\x42\x07\n\x05scope\"m\n\x0c\x46\x61iledUpdate\x12!\n\x08outpoint\x18\x01 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12$\n\x06reason\x18\x02 \x01(\x0e\x32\x14.lnrpc.UpdateFailure\x12\x14\n\x0cupdate_error\x18\x03 \x01(\t\"C\n\x14PolicyUpdateResponse\x12+\n\x0e\x66\x61iled_updates\x18\x01 \x03(\x0b\x32\x13.lnrpc.FailedUpdate\"n\n\x18\x46orwardingHistoryRequest\x12\x12\n\nstart_time\x18\x01 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x04\x12\x14\n\x0cindex_offset\x18\x03 \x01(\r\x12\x16\n\x0enum_max_events\x18\x04 \x01(\r\"\xda\x01\n\x0f\x46orwardingEvent\x12\x15\n\ttimestamp\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x16\n\nchan_id_in\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0b\x63han_id_out\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x0e\n\x06\x61mt_in\x18\x05 \x01(\x04\x12\x0f\n\x07\x61mt_out\x18\x06 \x01(\x04\x12\x0b\n\x03\x66\x65\x65\x18\x07 \x01(\x04\x12\x10\n\x08\x66\x65\x65_msat\x18\x08 \x01(\x04\x12\x13\n\x0b\x61mt_in_msat\x18\t \x01(\x04\x12\x14\n\x0c\x61mt_out_msat\x18\n \x01(\x04\x12\x14\n\x0ctimestamp_ns\x18\x0b \x01(\x04\"i\n\x19\x46orwardingHistoryResponse\x12\x31\n\x11\x66orwarding_events\x18\x01 \x03(\x0b\x32\x16.lnrpc.ForwardingEvent\x12\x19\n\x11last_offset_index\x18\x02 \x01(\r\"E\n\x1a\x45xportChannelBackupRequest\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"M\n\rChannelBackup\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x13\n\x0b\x63han_backup\x18\x02 \x01(\x0c\"V\n\x0fMultiChanBackup\x12(\n\x0b\x63han_points\x18\x01 \x03(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x19\n\x11multi_chan_backup\x18\x02 \x01(\x0c\"\x19\n\x17\x43hanBackupExportRequest\"{\n\x12\x43hanBackupSnapshot\x12\x32\n\x13single_chan_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackups\x12\x31\n\x11multi_chan_backup\x18\x02 \x01(\x0b\x32\x16.lnrpc.MultiChanBackup\"<\n\x0e\x43hannelBackups\x12*\n\x0c\x63han_backups\x18\x01 \x03(\x0b\x32\x14.lnrpc.ChannelBackup\"p\n\x18RestoreChanBackupRequest\x12-\n\x0c\x63han_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackupsH\x00\x12\x1b\n\x11multi_chan_backup\x18\x02 \x01(\x0cH\x00\x42\x08\n\x06\x62\x61\x63kup\"\x17\n\x15RestoreBackupResponse\"\x1b\n\x19\x43hannelBackupSubscription\"\x1a\n\x18VerifyChanBackupResponse\"4\n\x12MacaroonPermission\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\t\"~\n\x13\x42\x61keMacaroonRequest\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x13\n\x0broot_key_id\x18\x02 \x01(\x04\x12\"\n\x1a\x61llow_external_permissions\x18\x03 \x01(\x08\"(\n\x14\x42\x61keMacaroonResponse\x12\x10\n\x08macaroon\x18\x01 \x01(\t\"\x18\n\x16ListMacaroonIDsRequest\"/\n\x17ListMacaroonIDsResponse\x12\x14\n\x0croot_key_ids\x18\x01 \x03(\x04\".\n\x17\x44\x65leteMacaroonIDRequest\x12\x13\n\x0broot_key_id\x18\x01 \x01(\x04\"+\n\x18\x44\x65leteMacaroonIDResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\"H\n\x16MacaroonPermissionList\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\"\x18\n\x16ListPermissionsRequest\"\xc5\x01\n\x17ListPermissionsResponse\x12Q\n\x12method_permissions\x18\x01 \x03(\x0b\x32\x35.lnrpc.ListPermissionsResponse.MethodPermissionsEntry\x1aW\n\x16MethodPermissionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MacaroonPermissionList:\x02\x38\x01\"\xd5\x07\n\x07\x46\x61ilure\x12(\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12,\n\x0e\x63hannel_update\x18\x03 \x01(\x0b\x32\x14.lnrpc.ChannelUpdate\x12\x11\n\thtlc_msat\x18\x04 \x01(\x04\x12\x15\n\ronion_sha_256\x18\x05 \x01(\x0c\x12\x13\n\x0b\x63ltv_expiry\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x1c\n\x14\x66\x61ilure_source_index\x18\x08 \x01(\r\x12\x0e\n\x06height\x18\t \x01(\r\"\xef\x05\n\x0b\x46\x61ilureCode\x12\x0c\n\x08RESERVED\x10\x00\x12(\n$INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS\x10\x01\x12\x1c\n\x18INCORRECT_PAYMENT_AMOUNT\x10\x02\x12\x1f\n\x1b\x46INAL_INCORRECT_CLTV_EXPIRY\x10\x03\x12\x1f\n\x1b\x46INAL_INCORRECT_HTLC_AMOUNT\x10\x04\x12\x19\n\x15\x46INAL_EXPIRY_TOO_SOON\x10\x05\x12\x11\n\rINVALID_REALM\x10\x06\x12\x13\n\x0f\x45XPIRY_TOO_SOON\x10\x07\x12\x19\n\x15INVALID_ONION_VERSION\x10\x08\x12\x16\n\x12INVALID_ONION_HMAC\x10\t\x12\x15\n\x11INVALID_ONION_KEY\x10\n\x12\x18\n\x14\x41MOUNT_BELOW_MINIMUM\x10\x0b\x12\x14\n\x10\x46\x45\x45_INSUFFICIENT\x10\x0c\x12\x19\n\x15INCORRECT_CLTV_EXPIRY\x10\r\x12\x14\n\x10\x43HANNEL_DISABLED\x10\x0e\x12\x1d\n\x19TEMPORARY_CHANNEL_FAILURE\x10\x0f\x12!\n\x1dREQUIRED_NODE_FEATURE_MISSING\x10\x10\x12$\n REQUIRED_CHANNEL_FEATURE_MISSING\x10\x11\x12\x15\n\x11UNKNOWN_NEXT_PEER\x10\x12\x12\x1a\n\x16TEMPORARY_NODE_FAILURE\x10\x13\x12\x1a\n\x16PERMANENT_NODE_FAILURE\x10\x14\x12\x1d\n\x19PERMANENT_CHANNEL_FAILURE\x10\x15\x12\x12\n\x0e\x45XPIRY_TOO_FAR\x10\x16\x12\x0f\n\x0bMPP_TIMEOUT\x10\x17\x12\x19\n\x15INVALID_ONION_PAYLOAD\x10\x18\x12\x15\n\x10INTERNAL_FAILURE\x10\xe5\x07\x12\x14\n\x0fUNKNOWN_FAILURE\x10\xe6\x07\x12\x17\n\x12UNREADABLE_FAILURE\x10\xe7\x07J\x04\x08\x02\x10\x03\"\x9a\x02\n\rChannelUpdate\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x13\n\x07\x63han_id\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x11\n\ttimestamp\x18\x04 \x01(\r\x12\x15\n\rmessage_flags\x18\n \x01(\r\x12\x15\n\rchannel_flags\x18\x05 \x01(\r\x12\x17\n\x0ftime_lock_delta\x18\x06 \x01(\r\x12\x19\n\x11htlc_minimum_msat\x18\x07 \x01(\x04\x12\x10\n\x08\x62\x61se_fee\x18\x08 \x01(\r\x12\x10\n\x08\x66\x65\x65_rate\x18\t \x01(\r\x12\x19\n\x11htlc_maximum_msat\x18\x0b \x01(\x04\x12\x19\n\x11\x65xtra_opaque_data\x18\x0c \x01(\x0c\"F\n\nMacaroonId\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x11\n\tstorageId\x18\x02 \x01(\x0c\x12\x16\n\x03ops\x18\x03 \x03(\x0b\x32\t.lnrpc.Op\"%\n\x02Op\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t\"k\n\x13\x43heckMacPermRequest\x12\x10\n\x08macaroon\x18\x01 \x01(\x0c\x12.\n\x0bpermissions\x18\x02 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x12\n\nfullMethod\x18\x03 \x01(\t\"%\n\x14\x43heckMacPermResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\"\xfa\x01\n\x14RPCMiddlewareRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\x04\x12\x14\n\x0craw_macaroon\x18\x02 \x01(\x0c\x12\x1f\n\x17\x63ustom_caveat_condition\x18\x03 \x01(\t\x12(\n\x0bstream_auth\x18\x04 \x01(\x0b\x32\x11.lnrpc.StreamAuthH\x00\x12$\n\x07request\x18\x05 \x01(\x0b\x32\x11.lnrpc.RPCMessageH\x00\x12%\n\x08response\x18\x06 \x01(\x0b\x32\x11.lnrpc.RPCMessageH\x00\x12\x0e\n\x06msg_id\x18\x07 \x01(\x04\x42\x10\n\x0eintercept_type\"%\n\nStreamAuth\x12\x17\n\x0fmethod_full_uri\x18\x01 \x01(\t\"`\n\nRPCMessage\x12\x17\n\x0fmethod_full_uri\x18\x01 \x01(\t\x12\x12\n\nstream_rpc\x18\x02 \x01(\x08\x12\x11\n\ttype_name\x18\x03 \x01(\t\x12\x12\n\nserialized\x18\x04 \x01(\x0c\"\xa2\x01\n\x15RPCMiddlewareResponse\x12\x12\n\nref_msg_id\x18\x01 \x01(\x04\x12\x31\n\x08register\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MiddlewareRegistrationH\x00\x12,\n\x08\x66\x65\x65\x64\x62\x61\x63k\x18\x03 \x01(\x0b\x32\x18.lnrpc.InterceptFeedbackH\x00\x42\x14\n\x12middleware_message\"n\n\x16MiddlewareRegistration\x12\x17\n\x0fmiddleware_name\x18\x01 \x01(\t\x12#\n\x1b\x63ustom_macaroon_caveat_name\x18\x02 \x01(\t\x12\x16\n\x0eread_only_mode\x18\x03 \x01(\x08\"\\\n\x11InterceptFeedback\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\x18\n\x10replace_response\x18\x02 \x01(\x08\x12\x1e\n\x16replacement_serialized\x18\x03 \x01(\x0c*}\n\x0b\x41\x64\x64ressType\x12\x17\n\x13WITNESS_PUBKEY_HASH\x10\x00\x12\x16\n\x12NESTED_PUBKEY_HASH\x10\x01\x12\x1e\n\x1aUNUSED_WITNESS_PUBKEY_HASH\x10\x02\x12\x1d\n\x19UNUSED_NESTED_PUBKEY_HASH\x10\x03*x\n\x0e\x43ommitmentType\x12\x1b\n\x17UNKNOWN_COMMITMENT_TYPE\x10\x00\x12\n\n\x06LEGACY\x10\x01\x12\x15\n\x11STATIC_REMOTE_KEY\x10\x02\x12\x0b\n\x07\x41NCHORS\x10\x03\x12\x19\n\x15SCRIPT_ENFORCED_LEASE\x10\x04*a\n\tInitiator\x12\x15\n\x11INITIATOR_UNKNOWN\x10\x00\x12\x13\n\x0fINITIATOR_LOCAL\x10\x01\x12\x14\n\x10INITIATOR_REMOTE\x10\x02\x12\x12\n\x0eINITIATOR_BOTH\x10\x03*`\n\x0eResolutionType\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\n\n\x06\x41NCHOR\x10\x01\x12\x11\n\rINCOMING_HTLC\x10\x02\x12\x11\n\rOUTGOING_HTLC\x10\x03\x12\n\n\x06\x43OMMIT\x10\x04*q\n\x11ResolutionOutcome\x12\x13\n\x0fOUTCOME_UNKNOWN\x10\x00\x12\x0b\n\x07\x43LAIMED\x10\x01\x12\r\n\tUNCLAIMED\x10\x02\x12\r\n\tABANDONED\x10\x03\x12\x0f\n\x0b\x46IRST_STAGE\x10\x04\x12\x0b\n\x07TIMEOUT\x10\x05*9\n\x0eNodeMetricType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1a\n\x16\x42\x45TWEENNESS_CENTRALITY\x10\x01*;\n\x10InvoiceHTLCState\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02*\xd9\x01\n\x14PaymentFailureReason\x12\x17\n\x13\x46\x41ILURE_REASON_NONE\x10\x00\x12\x1a\n\x16\x46\x41ILURE_REASON_TIMEOUT\x10\x01\x12\x1b\n\x17\x46\x41ILURE_REASON_NO_ROUTE\x10\x02\x12\x18\n\x14\x46\x41ILURE_REASON_ERROR\x10\x03\x12,\n(FAILURE_REASON_INCORRECT_PAYMENT_DETAILS\x10\x04\x12\'\n#FAILURE_REASON_INSUFFICIENT_BALANCE\x10\x05*\xcf\x04\n\nFeatureBit\x12\x18\n\x14\x44\x41TALOSS_PROTECT_REQ\x10\x00\x12\x18\n\x14\x44\x41TALOSS_PROTECT_OPT\x10\x01\x12\x17\n\x13INITIAL_ROUING_SYNC\x10\x03\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_REQ\x10\x04\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_OPT\x10\x05\x12\x16\n\x12GOSSIP_QUERIES_REQ\x10\x06\x12\x16\n\x12GOSSIP_QUERIES_OPT\x10\x07\x12\x11\n\rTLV_ONION_REQ\x10\x08\x12\x11\n\rTLV_ONION_OPT\x10\t\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_REQ\x10\n\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_OPT\x10\x0b\x12\x19\n\x15STATIC_REMOTE_KEY_REQ\x10\x0c\x12\x19\n\x15STATIC_REMOTE_KEY_OPT\x10\r\x12\x14\n\x10PAYMENT_ADDR_REQ\x10\x0e\x12\x14\n\x10PAYMENT_ADDR_OPT\x10\x0f\x12\x0b\n\x07MPP_REQ\x10\x10\x12\x0b\n\x07MPP_OPT\x10\x11\x12\x16\n\x12WUMBO_CHANNELS_REQ\x10\x12\x12\x16\n\x12WUMBO_CHANNELS_OPT\x10\x13\x12\x0f\n\x0b\x41NCHORS_REQ\x10\x14\x12\x0f\n\x0b\x41NCHORS_OPT\x10\x15\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_REQ\x10\x16\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_OPT\x10\x17\x12\x0b\n\x07\x41MP_REQ\x10\x1e\x12\x0b\n\x07\x41MP_OPT\x10\x1f*\xac\x01\n\rUpdateFailure\x12\x1a\n\x16UPDATE_FAILURE_UNKNOWN\x10\x00\x12\x1a\n\x16UPDATE_FAILURE_PENDING\x10\x01\x12\x1c\n\x18UPDATE_FAILURE_NOT_FOUND\x10\x02\x12\x1f\n\x1bUPDATE_FAILURE_INTERNAL_ERR\x10\x03\x12$\n UPDATE_FAILURE_INVALID_PARAMETER\x10\x04\x32\xc9%\n\tLightning\x12J\n\rWalletBalance\x12\x1b.lnrpc.WalletBalanceRequest\x1a\x1c.lnrpc.WalletBalanceResponse\x12M\n\x0e\x43hannelBalance\x12\x1c.lnrpc.ChannelBalanceRequest\x1a\x1d.lnrpc.ChannelBalanceResponse\x12K\n\x0fGetTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x19.lnrpc.TransactionDetails\x12\x44\n\x0b\x45stimateFee\x12\x19.lnrpc.EstimateFeeRequest\x1a\x1a.lnrpc.EstimateFeeResponse\x12>\n\tSendCoins\x12\x17.lnrpc.SendCoinsRequest\x1a\x18.lnrpc.SendCoinsResponse\x12\x44\n\x0bListUnspent\x12\x19.lnrpc.ListUnspentRequest\x1a\x1a.lnrpc.ListUnspentResponse\x12L\n\x15SubscribeTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x12.lnrpc.Transaction0\x01\x12;\n\x08SendMany\x12\x16.lnrpc.SendManyRequest\x1a\x17.lnrpc.SendManyResponse\x12\x41\n\nNewAddress\x12\x18.lnrpc.NewAddressRequest\x1a\x19.lnrpc.NewAddressResponse\x12\x44\n\x0bSignMessage\x12\x19.lnrpc.SignMessageRequest\x1a\x1a.lnrpc.SignMessageResponse\x12J\n\rVerifyMessage\x12\x1b.lnrpc.VerifyMessageRequest\x1a\x1c.lnrpc.VerifyMessageResponse\x12\x44\n\x0b\x43onnectPeer\x12\x19.lnrpc.ConnectPeerRequest\x1a\x1a.lnrpc.ConnectPeerResponse\x12M\n\x0e\x44isconnectPeer\x12\x1c.lnrpc.DisconnectPeerRequest\x1a\x1d.lnrpc.DisconnectPeerResponse\x12>\n\tListPeers\x12\x17.lnrpc.ListPeersRequest\x1a\x18.lnrpc.ListPeersResponse\x12G\n\x13SubscribePeerEvents\x12\x1c.lnrpc.PeerEventSubscription\x1a\x10.lnrpc.PeerEvent0\x01\x12\x38\n\x07GetInfo\x12\x15.lnrpc.GetInfoRequest\x1a\x16.lnrpc.GetInfoResponse\x12P\n\x0fGetRecoveryInfo\x12\x1d.lnrpc.GetRecoveryInfoRequest\x1a\x1e.lnrpc.GetRecoveryInfoResponse\x12P\n\x0fPendingChannels\x12\x1d.lnrpc.PendingChannelsRequest\x1a\x1e.lnrpc.PendingChannelsResponse\x12G\n\x0cListChannels\x12\x1a.lnrpc.ListChannelsRequest\x1a\x1b.lnrpc.ListChannelsResponse\x12V\n\x16SubscribeChannelEvents\x12\x1f.lnrpc.ChannelEventSubscription\x1a\x19.lnrpc.ChannelEventUpdate0\x01\x12M\n\x0e\x43losedChannels\x12\x1c.lnrpc.ClosedChannelsRequest\x1a\x1d.lnrpc.ClosedChannelsResponse\x12\x41\n\x0fOpenChannelSync\x12\x19.lnrpc.OpenChannelRequest\x1a\x13.lnrpc.ChannelPoint\x12\x43\n\x0bOpenChannel\x12\x19.lnrpc.OpenChannelRequest\x1a\x17.lnrpc.OpenStatusUpdate0\x01\x12S\n\x10\x42\x61tchOpenChannel\x12\x1e.lnrpc.BatchOpenChannelRequest\x1a\x1f.lnrpc.BatchOpenChannelResponse\x12L\n\x10\x46undingStateStep\x12\x1b.lnrpc.FundingTransitionMsg\x1a\x1b.lnrpc.FundingStateStepResp\x12P\n\x0f\x43hannelAcceptor\x12\x1c.lnrpc.ChannelAcceptResponse\x1a\x1b.lnrpc.ChannelAcceptRequest(\x01\x30\x01\x12\x46\n\x0c\x43loseChannel\x12\x1a.lnrpc.CloseChannelRequest\x1a\x18.lnrpc.CloseStatusUpdate0\x01\x12M\n\x0e\x41\x62\x61ndonChannel\x12\x1c.lnrpc.AbandonChannelRequest\x1a\x1d.lnrpc.AbandonChannelResponse\x12?\n\x0bSendPayment\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01(\x01\x30\x01\x12:\n\x0fSendPaymentSync\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\x12\x46\n\x0bSendToRoute\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01(\x01\x30\x01\x12\x41\n\x0fSendToRouteSync\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\x12\x37\n\nAddInvoice\x12\x0e.lnrpc.Invoice\x1a\x19.lnrpc.AddInvoiceResponse\x12\x45\n\x0cListInvoices\x12\x19.lnrpc.ListInvoiceRequest\x1a\x1a.lnrpc.ListInvoiceResponse\x12\x33\n\rLookupInvoice\x12\x12.lnrpc.PaymentHash\x1a\x0e.lnrpc.Invoice\x12\x41\n\x11SubscribeInvoices\x12\x1a.lnrpc.InvoiceSubscription\x1a\x0e.lnrpc.Invoice0\x01\x12\x32\n\x0c\x44\x65\x63odePayReq\x12\x13.lnrpc.PayReqString\x1a\r.lnrpc.PayReq\x12G\n\x0cListPayments\x12\x1a.lnrpc.ListPaymentsRequest\x1a\x1b.lnrpc.ListPaymentsResponse\x12J\n\rDeletePayment\x12\x1b.lnrpc.DeletePaymentRequest\x1a\x1c.lnrpc.DeletePaymentResponse\x12V\n\x11\x44\x65leteAllPayments\x12\x1f.lnrpc.DeleteAllPaymentsRequest\x1a .lnrpc.DeleteAllPaymentsResponse\x12@\n\rDescribeGraph\x12\x1a.lnrpc.ChannelGraphRequest\x1a\x13.lnrpc.ChannelGraph\x12G\n\x0eGetNodeMetrics\x12\x19.lnrpc.NodeMetricsRequest\x1a\x1a.lnrpc.NodeMetricsResponse\x12\x39\n\x0bGetChanInfo\x12\x16.lnrpc.ChanInfoRequest\x1a\x12.lnrpc.ChannelEdge\x12\x36\n\x0bGetNodeInfo\x12\x16.lnrpc.NodeInfoRequest\x1a\x0f.lnrpc.NodeInfo\x12\x44\n\x0bQueryRoutes\x12\x19.lnrpc.QueryRoutesRequest\x1a\x1a.lnrpc.QueryRoutesResponse\x12?\n\x0eGetNetworkInfo\x12\x19.lnrpc.NetworkInfoRequest\x1a\x12.lnrpc.NetworkInfo\x12\x35\n\nStopDaemon\x12\x12.lnrpc.StopRequest\x1a\x13.lnrpc.StopResponse\x12W\n\x15SubscribeChannelGraph\x12 .lnrpc.GraphTopologySubscription\x1a\x1a.lnrpc.GraphTopologyUpdate0\x01\x12\x41\n\nDebugLevel\x12\x18.lnrpc.DebugLevelRequest\x1a\x19.lnrpc.DebugLevelResponse\x12>\n\tFeeReport\x12\x17.lnrpc.FeeReportRequest\x1a\x18.lnrpc.FeeReportResponse\x12N\n\x13UpdateChannelPolicy\x12\x1a.lnrpc.PolicyUpdateRequest\x1a\x1b.lnrpc.PolicyUpdateResponse\x12V\n\x11\x46orwardingHistory\x12\x1f.lnrpc.ForwardingHistoryRequest\x1a .lnrpc.ForwardingHistoryResponse\x12N\n\x13\x45xportChannelBackup\x12!.lnrpc.ExportChannelBackupRequest\x1a\x14.lnrpc.ChannelBackup\x12T\n\x17\x45xportAllChannelBackups\x12\x1e.lnrpc.ChanBackupExportRequest\x1a\x19.lnrpc.ChanBackupSnapshot\x12N\n\x10VerifyChanBackup\x12\x19.lnrpc.ChanBackupSnapshot\x1a\x1f.lnrpc.VerifyChanBackupResponse\x12V\n\x15RestoreChannelBackups\x12\x1f.lnrpc.RestoreChanBackupRequest\x1a\x1c.lnrpc.RestoreBackupResponse\x12X\n\x17SubscribeChannelBackups\x12 .lnrpc.ChannelBackupSubscription\x1a\x19.lnrpc.ChanBackupSnapshot0\x01\x12G\n\x0c\x42\x61keMacaroon\x12\x1a.lnrpc.BakeMacaroonRequest\x1a\x1b.lnrpc.BakeMacaroonResponse\x12P\n\x0fListMacaroonIDs\x12\x1d.lnrpc.ListMacaroonIDsRequest\x1a\x1e.lnrpc.ListMacaroonIDsResponse\x12S\n\x10\x44\x65leteMacaroonID\x12\x1e.lnrpc.DeleteMacaroonIDRequest\x1a\x1f.lnrpc.DeleteMacaroonIDResponse\x12P\n\x0fListPermissions\x12\x1d.lnrpc.ListPermissionsRequest\x1a\x1e.lnrpc.ListPermissionsResponse\x12S\n\x18\x43heckMacaroonPermissions\x12\x1a.lnrpc.CheckMacPermRequest\x1a\x1b.lnrpc.CheckMacPermResponse\x12V\n\x15RegisterRPCMiddleware\x12\x1c.lnrpc.RPCMiddlewareResponse\x1a\x1b.lnrpc.RPCMiddlewareRequest(\x01\x30\x01\x12V\n\x11SendCustomMessage\x12\x1f.lnrpc.SendCustomMessageRequest\x1a .lnrpc.SendCustomMessageResponse\x12X\n\x17SubscribeCustomMessages\x12%.lnrpc.SubscribeCustomMessagesRequest\x1a\x14.lnrpc.CustomMessage0\x01\x42\'Z%github.com/lightningnetwork/lnd/lnrpcb\x06proto3' ) _ADDRESSTYPE = _descriptor.EnumDescriptor( @@ -53,8 +53,8 @@ _ADDRESSTYPE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=23473, - serialized_end=23598, + serialized_start=26682, + serialized_end=26807, ) _sym_db.RegisterEnumDescriptor(_ADDRESSTYPE) @@ -67,30 +67,35 @@ _COMMITMENTTYPE = _descriptor.EnumDescriptor( create_key=_descriptor._internal_create_key, values=[ _descriptor.EnumValueDescriptor( - name='LEGACY', index=0, number=0, + name='UNKNOWN_COMMITMENT_TYPE', index=0, number=0, serialized_options=None, type=None, create_key=_descriptor._internal_create_key), _descriptor.EnumValueDescriptor( - name='STATIC_REMOTE_KEY', index=1, number=1, + name='LEGACY', index=1, number=1, serialized_options=None, type=None, create_key=_descriptor._internal_create_key), _descriptor.EnumValueDescriptor( - name='ANCHORS', index=2, number=2, + name='STATIC_REMOTE_KEY', index=2, number=2, serialized_options=None, type=None, create_key=_descriptor._internal_create_key), _descriptor.EnumValueDescriptor( - name='UNKNOWN_COMMITMENT_TYPE', index=3, number=999, + name='ANCHORS', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCRIPT_ENFORCED_LEASE', index=4, number=4, serialized_options=None, type=None, create_key=_descriptor._internal_create_key), ], containing_type=None, serialized_options=None, - serialized_start=23600, - serialized_end=23694, + serialized_start=26809, + serialized_end=26929, ) _sym_db.RegisterEnumDescriptor(_COMMITMENTTYPE) @@ -125,8 +130,8 @@ _INITIATOR = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=23696, - serialized_end=23793, + serialized_start=26931, + serialized_end=27028, ) _sym_db.RegisterEnumDescriptor(_INITIATOR) @@ -166,8 +171,8 @@ _RESOLUTIONTYPE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=23795, - serialized_end=23891, + serialized_start=27030, + serialized_end=27126, ) _sym_db.RegisterEnumDescriptor(_RESOLUTIONTYPE) @@ -212,8 +217,8 @@ _RESOLUTIONOUTCOME = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=23893, - serialized_end=24006, + serialized_start=27128, + serialized_end=27241, ) _sym_db.RegisterEnumDescriptor(_RESOLUTIONOUTCOME) @@ -238,8 +243,8 @@ _NODEMETRICTYPE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=24008, - serialized_end=24065, + serialized_start=27243, + serialized_end=27300, ) _sym_db.RegisterEnumDescriptor(_NODEMETRICTYPE) @@ -269,8 +274,8 @@ _INVOICEHTLCSTATE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=24067, - serialized_end=24126, + serialized_start=27302, + serialized_end=27361, ) _sym_db.RegisterEnumDescriptor(_INVOICEHTLCSTATE) @@ -315,8 +320,8 @@ _PAYMENTFAILUREREASON = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=24129, - serialized_end=24346, + serialized_start=27364, + serialized_end=27581, ) _sym_db.RegisterEnumDescriptor(_PAYMENTFAILUREREASON) @@ -443,23 +448,75 @@ _FEATUREBIT = _descriptor.EnumDescriptor( serialized_options=None, type=None, create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AMP_REQ', index=23, number=30, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='AMP_OPT', index=24, number=31, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), ], containing_type=None, serialized_options=None, - serialized_start=24349, - serialized_end=24914, + serialized_start=27584, + serialized_end=28175, ) _sym_db.RegisterEnumDescriptor(_FEATUREBIT) FeatureBit = enum_type_wrapper.EnumTypeWrapper(_FEATUREBIT) +_UPDATEFAILURE = _descriptor.EnumDescriptor( + name='UpdateFailure', + full_name='lnrpc.UpdateFailure', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UPDATE_FAILURE_UNKNOWN', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPDATE_FAILURE_PENDING', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPDATE_FAILURE_NOT_FOUND', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPDATE_FAILURE_INTERNAL_ERR', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UPDATE_FAILURE_INVALID_PARAMETER', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=28178, + serialized_end=28350, +) +_sym_db.RegisterEnumDescriptor(_UPDATEFAILURE) + +UpdateFailure = enum_type_wrapper.EnumTypeWrapper(_UPDATEFAILURE) WITNESS_PUBKEY_HASH = 0 NESTED_PUBKEY_HASH = 1 UNUSED_WITNESS_PUBKEY_HASH = 2 UNUSED_NESTED_PUBKEY_HASH = 3 -LEGACY = 0 -STATIC_REMOTE_KEY = 1 -ANCHORS = 2 -UNKNOWN_COMMITMENT_TYPE = 999 +UNKNOWN_COMMITMENT_TYPE = 0 +LEGACY = 1 +STATIC_REMOTE_KEY = 2 +ANCHORS = 3 +SCRIPT_ENFORCED_LEASE = 4 INITIATOR_UNKNOWN = 0 INITIATOR_LOCAL = 1 INITIATOR_REMOTE = 2 @@ -509,6 +566,13 @@ ANCHORS_REQ = 20 ANCHORS_OPT = 21 ANCHORS_ZERO_FEE_HTLC_REQ = 22 ANCHORS_ZERO_FEE_HTLC_OPT = 23 +AMP_REQ = 30 +AMP_OPT = 31 +UPDATE_FAILURE_UNKNOWN = 0 +UPDATE_FAILURE_PENDING = 1 +UPDATE_FAILURE_NOT_FOUND = 2 +UPDATE_FAILURE_INTERNAL_ERR = 3 +UPDATE_FAILURE_INVALID_PARAMETER = 4 _CHANNELCLOSESUMMARY_CLOSURETYPE = _descriptor.EnumDescriptor( @@ -551,8 +615,8 @@ _CHANNELCLOSESUMMARY_CLOSURETYPE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=5197, - serialized_end=5335, + serialized_start=5664, + serialized_end=5802, ) _sym_db.RegisterEnumDescriptor(_CHANNELCLOSESUMMARY_CLOSURETYPE) @@ -586,8 +650,8 @@ _PEER_SYNCTYPE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=6130, - serialized_end=6210, + serialized_start=6624, + serialized_end=6704, ) _sym_db.RegisterEnumDescriptor(_PEER_SYNCTYPE) @@ -611,8 +675,8 @@ _PEEREVENT_EVENTTYPE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=6454, - serialized_end=6500, + serialized_start=6948, + serialized_end=6994, ) _sym_db.RegisterEnumDescriptor(_PEEREVENT_EVENTTYPE) @@ -641,8 +705,8 @@ _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE = _descriptor.EnumDescri ], containing_type=None, serialized_options=None, - serialized_start=11258, - serialized_end=11307, + serialized_start=12441, + serialized_end=12490, ) _sym_db.RegisterEnumDescriptor(_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE) @@ -678,11 +742,16 @@ _CHANNELEVENTUPDATE_UPDATETYPE = _descriptor.EnumDescriptor( serialized_options=None, type=None, create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FULLY_RESOLVED_CHANNEL', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), ], containing_type=None, serialized_options=None, - serialized_start=11656, - serialized_end=11774, + serialized_start=12895, + serialized_end=13041, ) _sym_db.RegisterEnumDescriptor(_CHANNELEVENTUPDATE_UPDATETYPE) @@ -716,8 +785,8 @@ _INVOICE_INVOICESTATE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=17007, - serialized_end=17072, + serialized_start=18984, + serialized_end=19049, ) _sym_db.RegisterEnumDescriptor(_INVOICE_INVOICESTATE) @@ -751,8 +820,8 @@ _PAYMENT_PAYMENTSTATUS = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=18400, - serialized_end=18470, + serialized_start=20377, + serialized_end=20447, ) _sym_db.RegisterEnumDescriptor(_PAYMENT_PAYMENTSTATUS) @@ -781,8 +850,8 @@ _HTLCATTEMPT_HTLCSTATUS = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=18691, - serialized_end=18745, + serialized_start=20668, + serialized_end=20722, ) _sym_db.RegisterEnumDescriptor(_HTLCATTEMPT_HTLCSTATUS) @@ -936,12 +1005,154 @@ _FAILURE_FAILURECODE = _descriptor.EnumDescriptor( ], containing_type=None, serialized_options=None, - serialized_start=22318, - serialized_end=23069, + serialized_start=24618, + serialized_end=25369, ) _sym_db.RegisterEnumDescriptor(_FAILURE_FAILURECODE) +_SUBSCRIBECUSTOMMESSAGESREQUEST = _descriptor.Descriptor( + name='SubscribeCustomMessagesRequest', + full_name='lnrpc.SubscribeCustomMessagesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=26, + serialized_end=58, +) + + +_CUSTOMMESSAGE = _descriptor.Descriptor( + name='CustomMessage', + full_name='lnrpc.CustomMessage', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='peer', full_name='lnrpc.CustomMessage.peer', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='lnrpc.CustomMessage.type', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='data', full_name='lnrpc.CustomMessage.data', index=2, + number=3, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=60, + serialized_end=117, +) + + +_SENDCUSTOMMESSAGEREQUEST = _descriptor.Descriptor( + name='SendCustomMessageRequest', + full_name='lnrpc.SendCustomMessageRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='peer', full_name='lnrpc.SendCustomMessageRequest.peer', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='lnrpc.SendCustomMessageRequest.type', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='data', full_name='lnrpc.SendCustomMessageRequest.data', index=2, + number=3, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=119, + serialized_end=187, +) + + +_SENDCUSTOMMESSAGERESPONSE = _descriptor.Descriptor( + name='SendCustomMessageResponse', + full_name='lnrpc.SendCustomMessageResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=189, + serialized_end=216, +) + + _UTXO = _descriptor.Descriptor( name='Utxo', full_name='lnrpc.Utxo', @@ -1004,8 +1215,8 @@ _UTXO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21, - serialized_end=183, + serialized_start=219, + serialized_end=381, ) @@ -1099,8 +1310,8 @@ _TRANSACTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=186, - serialized_end=400, + serialized_start=384, + serialized_end=598, ) @@ -1126,6 +1337,13 @@ _GETTRANSACTIONSREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account', full_name='lnrpc.GetTransactionsRequest.account', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -1138,8 +1356,8 @@ _GETTRANSACTIONSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=402, - serialized_end=468, + serialized_start=600, + serialized_end=683, ) @@ -1170,8 +1388,8 @@ _TRANSACTIONDETAILS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=470, - serialized_end=532, + serialized_start=685, + serialized_end=747, ) @@ -1221,8 +1439,8 @@ _FEELIMIT = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=534, - serialized_end=611, + serialized_start=749, + serialized_end=826, ) @@ -1260,8 +1478,8 @@ _SENDREQUEST_DESTCUSTOMRECORDSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1058, - serialized_end=1114, + serialized_start=1295, + serialized_end=1351, ) _SENDREQUEST = _descriptor.Descriptor( @@ -1377,6 +1595,13 @@ _SENDREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='payment_addr', full_name='lnrpc.SendRequest.payment_addr', index=15, + number=16, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -1389,8 +1614,8 @@ _SENDREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=614, - serialized_end=1114, + serialized_start=829, + serialized_end=1351, ) @@ -1442,8 +1667,8 @@ _SENDRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1116, - serialized_end=1238, + serialized_start=1353, + serialized_end=1475, ) @@ -1488,8 +1713,8 @@ _SENDTOROUTEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1240, - serialized_end=1350, + serialized_start=1477, + serialized_end=1587, ) @@ -1592,6 +1817,13 @@ _CHANNELACCEPTREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='commitment_type', full_name='lnrpc.ChannelAcceptRequest.commitment_type', index=13, + number=14, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -1604,8 +1836,8 @@ _CHANNELACCEPTREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1353, - serialized_end=1662, + serialized_start=1590, + serialized_end=1947, ) @@ -1699,8 +1931,8 @@ _CHANNELACCEPTRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1665, - serialized_end=1909, + serialized_start=1950, + serialized_end=2194, ) @@ -1750,8 +1982,8 @@ _CHANNELPOINT = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=1911, - serialized_end=2021, + serialized_start=2196, + serialized_end=2306, ) @@ -1796,8 +2028,8 @@ _OUTPOINT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2023, - serialized_end=2093, + serialized_start=2308, + serialized_end=2378, ) @@ -1835,8 +2067,8 @@ _LIGHTNINGADDRESS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2095, - serialized_end=2143, + serialized_start=2380, + serialized_end=2428, ) @@ -1874,8 +2106,8 @@ _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2256, - serialized_end=2307, + serialized_start=2587, + serialized_end=2638, ) _ESTIMATEFEEREQUEST = _descriptor.Descriptor( @@ -1900,6 +2132,20 @@ _ESTIMATEFEEREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='min_confs', full_name='lnrpc.EstimateFeeRequest.min_confs', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='spend_unconfirmed', full_name='lnrpc.EstimateFeeRequest.spend_unconfirmed', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -1912,8 +2158,8 @@ _ESTIMATEFEEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2146, - serialized_end=2307, + serialized_start=2431, + serialized_end=2638, ) @@ -1938,6 +2184,13 @@ _ESTIMATEFEERESPONSE = _descriptor.Descriptor( has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sat_per_vbyte', full_name='lnrpc.EstimateFeeResponse.sat_per_vbyte', index=2, + number=3, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ @@ -1951,8 +2204,8 @@ _ESTIMATEFEERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2309, - serialized_end=2377, + serialized_start=2640, + serialized_end=2735, ) @@ -1990,8 +2243,8 @@ _SENDMANYREQUEST_ADDRTOAMOUNTENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2256, - serialized_end=2307, + serialized_start=2587, + serialized_end=2638, ) _SENDMANYREQUEST = _descriptor.Descriptor( @@ -2017,28 +2270,35 @@ _SENDMANYREQUEST = _descriptor.Descriptor( is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='sat_per_byte', full_name='lnrpc.SendManyRequest.sat_per_byte', index=2, - number=5, type=3, cpp_type=2, label=1, + name='sat_per_vbyte', full_name='lnrpc.SendManyRequest.sat_per_vbyte', index=2, + number=4, type=4, cpp_type=4, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='label', full_name='lnrpc.SendManyRequest.label', index=3, + name='sat_per_byte', full_name='lnrpc.SendManyRequest.sat_per_byte', index=3, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label', full_name='lnrpc.SendManyRequest.label', index=4, number=6, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='min_confs', full_name='lnrpc.SendManyRequest.min_confs', index=4, + name='min_confs', full_name='lnrpc.SendManyRequest.min_confs', index=5, number=7, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='spend_unconfirmed', full_name='lnrpc.SendManyRequest.spend_unconfirmed', index=5, + name='spend_unconfirmed', full_name='lnrpc.SendManyRequest.spend_unconfirmed', index=6, number=8, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -2056,8 +2316,8 @@ _SENDMANYREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2380, - serialized_end=2618, + serialized_start=2738, + serialized_end=3003, ) @@ -2088,8 +2348,8 @@ _SENDMANYRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2620, - serialized_end=2652, + serialized_start=3005, + serialized_end=3037, ) @@ -2123,35 +2383,42 @@ _SENDCOINSREQUEST = _descriptor.Descriptor( is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='sat_per_byte', full_name='lnrpc.SendCoinsRequest.sat_per_byte', index=3, - number=5, type=3, cpp_type=2, label=1, + name='sat_per_vbyte', full_name='lnrpc.SendCoinsRequest.sat_per_vbyte', index=3, + number=4, type=4, cpp_type=4, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='send_all', full_name='lnrpc.SendCoinsRequest.send_all', index=4, + name='sat_per_byte', full_name='lnrpc.SendCoinsRequest.sat_per_byte', index=4, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='send_all', full_name='lnrpc.SendCoinsRequest.send_all', index=5, number=6, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='label', full_name='lnrpc.SendCoinsRequest.label', index=5, + name='label', full_name='lnrpc.SendCoinsRequest.label', index=6, number=7, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='min_confs', full_name='lnrpc.SendCoinsRequest.min_confs', index=6, + name='min_confs', full_name='lnrpc.SendCoinsRequest.min_confs', index=7, number=8, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='spend_unconfirmed', full_name='lnrpc.SendCoinsRequest.spend_unconfirmed', index=7, + name='spend_unconfirmed', full_name='lnrpc.SendCoinsRequest.spend_unconfirmed', index=8, number=9, type=8, cpp_type=7, label=1, has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, @@ -2169,8 +2436,8 @@ _SENDCOINSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2655, - serialized_end=2825, + serialized_start=3040, + serialized_end=3237, ) @@ -2201,8 +2468,8 @@ _SENDCOINSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2827, - serialized_end=2860, + serialized_start=3239, + serialized_end=3272, ) @@ -2228,6 +2495,13 @@ _LISTUNSPENTREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account', full_name='lnrpc.ListUnspentRequest.account', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -2240,8 +2514,8 @@ _LISTUNSPENTREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2862, - serialized_end=2920, + serialized_start=3274, + serialized_end=3349, ) @@ -2272,8 +2546,8 @@ _LISTUNSPENTRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2922, - serialized_end=2971, + serialized_start=3351, + serialized_end=3400, ) @@ -2292,6 +2566,13 @@ _NEWADDRESSREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account', full_name='lnrpc.NewAddressRequest.account', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -2304,8 +2585,8 @@ _NEWADDRESSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=2973, - serialized_end=3026, + serialized_start=3402, + serialized_end=3472, ) @@ -2336,8 +2617,8 @@ _NEWADDRESSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3028, - serialized_end=3065, + serialized_start=3474, + serialized_end=3511, ) @@ -2356,6 +2637,13 @@ _SIGNMESSAGEREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='single_hash', full_name='lnrpc.SignMessageRequest.single_hash', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -2368,8 +2656,8 @@ _SIGNMESSAGEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3067, - serialized_end=3100, + serialized_start=3513, + serialized_end=3567, ) @@ -2400,8 +2688,8 @@ _SIGNMESSAGERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3102, - serialized_end=3142, + serialized_start=3569, + serialized_end=3609, ) @@ -2439,8 +2727,8 @@ _VERIFYMESSAGEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3144, - serialized_end=3198, + serialized_start=3611, + serialized_end=3665, ) @@ -2478,8 +2766,8 @@ _VERIFYMESSAGERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3200, - serialized_end=3254, + serialized_start=3667, + serialized_end=3721, ) @@ -2524,8 +2812,8 @@ _CONNECTPEERREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3256, - serialized_end=3346, + serialized_start=3723, + serialized_end=3813, ) @@ -2549,8 +2837,8 @@ _CONNECTPEERRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3348, - serialized_end=3369, + serialized_start=3815, + serialized_end=3836, ) @@ -2581,8 +2869,8 @@ _DISCONNECTPEERREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3371, - serialized_end=3411, + serialized_start=3838, + serialized_end=3878, ) @@ -2606,8 +2894,8 @@ _DISCONNECTPEERRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3413, - serialized_end=3437, + serialized_start=3880, + serialized_end=3904, ) @@ -2680,8 +2968,8 @@ _HTLC = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3440, - serialized_end=3605, + serialized_start=3907, + serialized_end=4072, ) @@ -2747,8 +3035,8 @@ _CHANNELCONSTRAINTS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3608, - serialized_end=3778, + serialized_start=4075, + serialized_end=4245, ) @@ -2982,8 +3270,8 @@ _CHANNEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=3781, - serialized_end=4597, + serialized_start=4248, + serialized_end=5064, ) @@ -3042,8 +3330,8 @@ _LISTCHANNELSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4599, - serialized_end=4721, + serialized_start=5066, + serialized_end=5188, ) @@ -3074,8 +3362,8 @@ _LISTCHANNELSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4723, - serialized_end=4779, + serialized_start=5190, + serialized_end=5246, ) @@ -3191,8 +3479,8 @@ _CHANNELCLOSESUMMARY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=4782, - serialized_end=5335, + serialized_start=5249, + serialized_end=5802, ) @@ -3251,8 +3539,8 @@ _RESOLUTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5338, - serialized_end=5516, + serialized_start=5805, + serialized_end=5983, ) @@ -3318,8 +3606,8 @@ _CLOSEDCHANNELSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5519, - serialized_end=5667, + serialized_start=5986, + serialized_end=6134, ) @@ -3350,8 +3638,8 @@ _CLOSEDCHANNELSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5669, - serialized_end=5739, + serialized_start=6136, + serialized_end=6206, ) @@ -3389,8 +3677,8 @@ _PEER_FEATURESENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6065, - serialized_end=6128, + serialized_start=6559, + serialized_end=6622, ) _PEER = _descriptor.Descriptor( @@ -3492,6 +3780,13 @@ _PEER = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='last_ping_payload', full_name='lnrpc.Peer.last_ping_payload', index=13, + number=15, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -3505,8 +3800,8 @@ _PEER = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=5742, - serialized_end=6210, + serialized_start=6209, + serialized_end=6704, ) @@ -3544,8 +3839,8 @@ _TIMESTAMPEDERROR = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6212, - serialized_end=6264, + serialized_start=6706, + serialized_end=6758, ) @@ -3576,8 +3871,8 @@ _LISTPEERSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6266, - serialized_end=6306, + serialized_start=6760, + serialized_end=6800, ) @@ -3608,8 +3903,8 @@ _LISTPEERSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6308, - serialized_end=6355, + serialized_start=6802, + serialized_end=6849, ) @@ -3633,8 +3928,8 @@ _PEEREVENTSUBSCRIPTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6357, - serialized_end=6380, + serialized_start=6851, + serialized_end=6874, ) @@ -3673,8 +3968,8 @@ _PEEREVENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6382, - serialized_end=6500, + serialized_start=6876, + serialized_end=6994, ) @@ -3698,8 +3993,8 @@ _GETINFOREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6502, - serialized_end=6518, + serialized_start=6996, + serialized_end=7012, ) @@ -3737,8 +4032,8 @@ _GETINFORESPONSE_FEATURESENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6065, - serialized_end=6128, + serialized_start=6559, + serialized_end=6622, ) _GETINFORESPONSE = _descriptor.Descriptor( @@ -3887,8 +4182,8 @@ _GETINFORESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6521, - serialized_end=7055, + serialized_start=7015, + serialized_end=7549, ) @@ -3912,8 +4207,8 @@ _GETRECOVERYINFOREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7057, - serialized_end=7081, + serialized_start=7551, + serialized_end=7575, ) @@ -3958,8 +4253,8 @@ _GETRECOVERYINFORESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7083, - serialized_end=7176, + serialized_start=7577, + serialized_end=7670, ) @@ -3997,8 +4292,8 @@ _CHAIN = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7178, - serialized_end=7217, + serialized_start=7672, + serialized_end=7711, ) @@ -4043,8 +4338,8 @@ _CONFIRMATIONUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7219, - serialized_end=7304, + serialized_start=7713, + serialized_end=7798, ) @@ -4075,8 +4370,8 @@ _CHANNELOPENUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7306, - serialized_end=7369, + serialized_start=7800, + serialized_end=7863, ) @@ -4114,8 +4409,8 @@ _CHANNELCLOSEUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7371, - serialized_end=7430, + serialized_start=7865, + serialized_end=7924, ) @@ -4154,7 +4449,7 @@ _CLOSECHANNELREQUEST = _descriptor.Descriptor( has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='delivery_address', full_name='lnrpc.CloseChannelRequest.delivery_address', index=4, number=5, type=9, cpp_type=9, label=1, @@ -4162,6 +4457,13 @@ _CLOSECHANNELREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sat_per_vbyte', full_name='lnrpc.CloseChannelRequest.sat_per_vbyte', index=5, + number=6, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -4174,8 +4476,8 @@ _CLOSECHANNELREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7433, - serialized_end=7582, + serialized_start=7927, + serialized_end=8103, ) @@ -4218,8 +4520,8 @@ _CLOSESTATUSUPDATE = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=7584, - serialized_end=7709, + serialized_start=8105, + serialized_end=8230, ) @@ -4257,8 +4559,8 @@ _PENDINGUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7711, - serialized_end=7762, + serialized_start=8232, + serialized_end=8283, ) @@ -4303,127 +4605,145 @@ _READYFORPSBTFUNDING = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7764, - serialized_end=7848, + serialized_start=8285, + serialized_end=8369, ) -_OPENCHANNELREQUEST = _descriptor.Descriptor( - name='OpenChannelRequest', - full_name='lnrpc.OpenChannelRequest', +_BATCHOPENCHANNELREQUEST = _descriptor.Descriptor( + name='BatchOpenChannelRequest', + full_name='lnrpc.BatchOpenChannelRequest', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ _descriptor.FieldDescriptor( - name='node_pubkey', full_name='lnrpc.OpenChannelRequest.node_pubkey', index=0, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", + name='channels', full_name='lnrpc.BatchOpenChannelRequest.channels', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='node_pubkey_string', full_name='lnrpc.OpenChannelRequest.node_pubkey_string', index=1, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='local_funding_amount', full_name='lnrpc.OpenChannelRequest.local_funding_amount', index=2, - number=4, type=3, cpp_type=2, label=1, + name='target_conf', full_name='lnrpc.BatchOpenChannelRequest.target_conf', index=1, + number=2, type=5, cpp_type=1, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='push_sat', full_name='lnrpc.OpenChannelRequest.push_sat', index=3, + name='sat_per_vbyte', full_name='lnrpc.BatchOpenChannelRequest.sat_per_vbyte', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='min_confs', full_name='lnrpc.BatchOpenChannelRequest.min_confs', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='spend_unconfirmed', full_name='lnrpc.BatchOpenChannelRequest.spend_unconfirmed', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='label', full_name='lnrpc.BatchOpenChannelRequest.label', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8372, + serialized_end=8545, +) + + +_BATCHOPENCHANNEL = _descriptor.Descriptor( + name='BatchOpenChannel', + full_name='lnrpc.BatchOpenChannel', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='node_pubkey', full_name='lnrpc.BatchOpenChannel.node_pubkey', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='local_funding_amount', full_name='lnrpc.BatchOpenChannel.local_funding_amount', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='push_sat', full_name='lnrpc.BatchOpenChannel.push_sat', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='private', full_name='lnrpc.BatchOpenChannel.private', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='min_htlc_msat', full_name='lnrpc.BatchOpenChannel.min_htlc_msat', index=4, number=5, type=3, cpp_type=2, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='target_conf', full_name='lnrpc.OpenChannelRequest.target_conf', index=4, - number=6, type=5, cpp_type=1, label=1, + name='remote_csv_delay', full_name='lnrpc.BatchOpenChannel.remote_csv_delay', index=5, + number=6, type=13, cpp_type=3, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='sat_per_byte', full_name='lnrpc.OpenChannelRequest.sat_per_byte', index=5, - number=7, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='private', full_name='lnrpc.OpenChannelRequest.private', index=6, - number=8, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='min_htlc_msat', full_name='lnrpc.OpenChannelRequest.min_htlc_msat', index=7, - number=9, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='remote_csv_delay', full_name='lnrpc.OpenChannelRequest.remote_csv_delay', index=8, - number=10, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='min_confs', full_name='lnrpc.OpenChannelRequest.min_confs', index=9, - number=11, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='spend_unconfirmed', full_name='lnrpc.OpenChannelRequest.spend_unconfirmed', index=10, - number=12, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='close_address', full_name='lnrpc.OpenChannelRequest.close_address', index=11, - number=13, type=9, cpp_type=9, label=1, + name='close_address', full_name='lnrpc.BatchOpenChannel.close_address', index=6, + number=7, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='funding_shim', full_name='lnrpc.OpenChannelRequest.funding_shim', index=12, - number=14, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, + name='pending_chan_id', full_name='lnrpc.BatchOpenChannel.pending_chan_id', index=7, + number=8, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='remote_max_value_in_flight_msat', full_name='lnrpc.OpenChannelRequest.remote_max_value_in_flight_msat', index=13, - number=15, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='remote_max_htlcs', full_name='lnrpc.OpenChannelRequest.remote_max_htlcs', index=14, - number=16, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='max_local_csv', full_name='lnrpc.OpenChannelRequest.max_local_csv', index=15, - number=17, type=13, cpp_type=3, label=1, + name='commitment_type', full_name='lnrpc.BatchOpenChannel.commitment_type', index=8, + number=9, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, @@ -4440,8 +4760,191 @@ _OPENCHANNELREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=7851, - serialized_end=8282, + serialized_start=8548, + serialized_end=8797, +) + + +_BATCHOPENCHANNELRESPONSE = _descriptor.Descriptor( + name='BatchOpenChannelResponse', + full_name='lnrpc.BatchOpenChannelResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='pending_channels', full_name='lnrpc.BatchOpenChannelResponse.pending_channels', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8799, + serialized_end=8873, +) + + +_OPENCHANNELREQUEST = _descriptor.Descriptor( + name='OpenChannelRequest', + full_name='lnrpc.OpenChannelRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='sat_per_vbyte', full_name='lnrpc.OpenChannelRequest.sat_per_vbyte', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='node_pubkey', full_name='lnrpc.OpenChannelRequest.node_pubkey', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='node_pubkey_string', full_name='lnrpc.OpenChannelRequest.node_pubkey_string', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='local_funding_amount', full_name='lnrpc.OpenChannelRequest.local_funding_amount', index=3, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='push_sat', full_name='lnrpc.OpenChannelRequest.push_sat', index=4, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='target_conf', full_name='lnrpc.OpenChannelRequest.target_conf', index=5, + number=6, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sat_per_byte', full_name='lnrpc.OpenChannelRequest.sat_per_byte', index=6, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='private', full_name='lnrpc.OpenChannelRequest.private', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='min_htlc_msat', full_name='lnrpc.OpenChannelRequest.min_htlc_msat', index=8, + number=9, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remote_csv_delay', full_name='lnrpc.OpenChannelRequest.remote_csv_delay', index=9, + number=10, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='min_confs', full_name='lnrpc.OpenChannelRequest.min_confs', index=10, + number=11, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='spend_unconfirmed', full_name='lnrpc.OpenChannelRequest.spend_unconfirmed', index=11, + number=12, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='close_address', full_name='lnrpc.OpenChannelRequest.close_address', index=12, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='funding_shim', full_name='lnrpc.OpenChannelRequest.funding_shim', index=13, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remote_max_value_in_flight_msat', full_name='lnrpc.OpenChannelRequest.remote_max_value_in_flight_msat', index=14, + number=15, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='remote_max_htlcs', full_name='lnrpc.OpenChannelRequest.remote_max_htlcs', index=15, + number=16, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='max_local_csv', full_name='lnrpc.OpenChannelRequest.max_local_csv', index=16, + number=17, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='commitment_type', full_name='lnrpc.OpenChannelRequest.commitment_type', index=17, + number=18, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8876, + serialized_end=9382, ) @@ -4498,8 +5001,8 @@ _OPENSTATUSUPDATE = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8285, - serialized_end=8480, + serialized_start=9385, + serialized_end=9580, ) @@ -4537,8 +5040,8 @@ _KEYLOCATOR = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=8482, - serialized_end=8533, + serialized_start=9582, + serialized_end=9633, ) @@ -4576,8 +5079,8 @@ _KEYDESCRIPTOR = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=8535, - serialized_end=8609, + serialized_start=9635, + serialized_end=9709, ) @@ -4643,8 +5146,8 @@ _CHANPOINTSHIM = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=8612, - serialized_end=8788, + serialized_start=9712, + serialized_end=9888, ) @@ -4689,8 +5192,8 @@ _PSBTSHIM = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=8790, - serialized_end=8864, + serialized_start=9890, + serialized_end=9964, ) @@ -4733,8 +5236,8 @@ _FUNDINGSHIM = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=8866, - serialized_end=8974, + serialized_start=9966, + serialized_end=10074, ) @@ -4765,8 +5268,8 @@ _FUNDINGSHIMCANCEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=8976, - serialized_end=9020, + serialized_start=10076, + serialized_end=10120, ) @@ -4792,6 +5295,13 @@ _FUNDINGPSBTVERIFY = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='skip_finalize', full_name='lnrpc.FundingPsbtVerify.skip_finalize', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -4804,8 +5314,8 @@ _FUNDINGPSBTVERIFY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9022, - serialized_end=9087, + serialized_start=10122, + serialized_end=10210, ) @@ -4850,8 +5360,8 @@ _FUNDINGPSBTFINALIZE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9089, - serialized_end=9178, + serialized_start=10212, + serialized_end=10301, ) @@ -4908,8 +5418,8 @@ _FUNDINGTRANSITIONMSG = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=9181, - serialized_end=9410, + serialized_start=10304, + serialized_end=10533, ) @@ -4933,8 +5443,8 @@ _FUNDINGSTATESTEPRESP = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9412, - serialized_end=9434, + serialized_start=10535, + serialized_end=10557, ) @@ -5000,8 +5510,8 @@ _PENDINGHTLC = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9437, - serialized_end=9571, + serialized_start=10560, + serialized_end=10694, ) @@ -5025,8 +5535,8 @@ _PENDINGCHANNELSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9573, - serialized_end=9597, + serialized_start=10696, + serialized_end=10720, ) @@ -5101,6 +5611,20 @@ _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='num_forwarding_packages', full_name='lnrpc.PendingChannelsResponse.PendingChannel.num_forwarding_packages', index=9, + number=10, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='chan_status_flags', full_name='lnrpc.PendingChannelsResponse.PendingChannel.chan_status_flags', index=10, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -5113,8 +5637,8 @@ _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9998, - serialized_end=10277, + serialized_start=11121, + serialized_end=11460, ) _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL = _descriptor.Descriptor( @@ -5172,8 +5696,8 @@ _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10280, - serialized_end=10456, + serialized_start=11463, + serialized_end=11639, ) _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL = _descriptor.Descriptor( @@ -5217,8 +5741,8 @@ _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10459, - serialized_end=10632, + serialized_start=11642, + serialized_end=11815, ) _PENDINGCHANNELSRESPONSE_COMMITMENTS = _descriptor.Descriptor( @@ -5283,8 +5807,8 @@ _PENDINGCHANNELSRESPONSE_COMMITMENTS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10635, - serialized_end=10818, + serialized_start=11818, + serialized_end=12001, ) _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL = _descriptor.Descriptor( @@ -5321,8 +5845,8 @@ _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10820, - serialized_end=10921, + serialized_start=12003, + serialized_end=12104, ) _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL = _descriptor.Descriptor( @@ -5402,8 +5926,8 @@ _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=10924, - serialized_end=11307, + serialized_start=12107, + serialized_end=12490, ) _PENDINGCHANNELSRESPONSE = _descriptor.Descriptor( @@ -5461,8 +5985,8 @@ _PENDINGCHANNELSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=9600, - serialized_end=11307, + serialized_start=10723, + serialized_end=12490, ) @@ -5486,8 +6010,8 @@ _CHANNELEVENTSUBSCRIPTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11309, - serialized_end=11335, + serialized_start=12492, + serialized_end=12518, ) @@ -5535,7 +6059,14 @@ _CHANNELEVENTUPDATE = _descriptor.Descriptor( is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='type', full_name='lnrpc.ChannelEventUpdate.type', index=5, + name='fully_resolved_channel', full_name='lnrpc.ChannelEventUpdate.fully_resolved_channel', index=5, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='lnrpc.ChannelEventUpdate.type', index=6, number=5, type=14, cpp_type=8, label=1, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, @@ -5559,8 +6090,47 @@ _CHANNELEVENTUPDATE = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=11338, - serialized_end=11785, + serialized_start=12521, + serialized_end=13052, +) + + +_WALLETACCOUNTBALANCE = _descriptor.Descriptor( + name='WalletAccountBalance', + full_name='lnrpc.WalletAccountBalance', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='confirmed_balance', full_name='lnrpc.WalletAccountBalance.confirmed_balance', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='unconfirmed_balance', full_name='lnrpc.WalletAccountBalance.unconfirmed_balance', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=13054, + serialized_end=13132, ) @@ -5584,11 +6154,49 @@ _WALLETBALANCEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11787, - serialized_end=11809, + serialized_start=13134, + serialized_end=13156, ) +_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY = _descriptor.Descriptor( + name='AccountBalanceEntry', + full_name='lnrpc.WalletBalanceResponse.AccountBalanceEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='lnrpc.WalletBalanceResponse.AccountBalanceEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='lnrpc.WalletBalanceResponse.AccountBalanceEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'8\001', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=13338, + serialized_end=13420, +) + _WALLETBALANCERESPONSE = _descriptor.Descriptor( name='WalletBalanceResponse', full_name='lnrpc.WalletBalanceResponse', @@ -5618,10 +6226,17 @@ _WALLETBALANCERESPONSE = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account_balance', full_name='lnrpc.WalletBalanceResponse.account_balance', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], - nested_types=[], + nested_types=[_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY, ], enum_types=[ ], serialized_options=None, @@ -5630,8 +6245,8 @@ _WALLETBALANCERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11811, - serialized_end=11913, + serialized_start=13159, + serialized_end=13420, ) @@ -5669,8 +6284,8 @@ _AMOUNT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11915, - serialized_end=11950, + serialized_start=13422, + serialized_end=13457, ) @@ -5694,8 +6309,8 @@ _CHANNELBALANCEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11952, - serialized_end=11975, + serialized_start=13459, + serialized_end=13482, ) @@ -5775,8 +6390,8 @@ _CHANNELBALANCERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=11978, - serialized_end=12334, + serialized_start=13485, + serialized_end=13841, ) @@ -5814,8 +6429,8 @@ _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=1058, - serialized_end=1114, + serialized_start=1295, + serialized_end=1351, ) _QUERYROUTESREQUEST = _descriptor.Descriptor( @@ -5950,8 +6565,8 @@ _QUERYROUTESREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12337, - serialized_end=12929, + serialized_start=13844, + serialized_end=14436, ) @@ -5989,8 +6604,8 @@ _NODEPAIR = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12931, - serialized_end=12967, + serialized_start=14438, + serialized_end=14474, ) @@ -6028,8 +6643,8 @@ _EDGELOCATOR = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=12969, - serialized_end=13033, + serialized_start=14476, + serialized_end=14540, ) @@ -6067,8 +6682,8 @@ _QUERYROUTESRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13035, - serialized_end=13108, + serialized_start=14542, + serialized_end=14615, ) @@ -6106,8 +6721,8 @@ _HOP_CUSTOMRECORDSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13401, - serialized_end=13453, + serialized_start=14950, + serialized_end=15002, ) _HOP = _descriptor.Descriptor( @@ -6131,7 +6746,7 @@ _HOP = _descriptor.Descriptor( has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='amt_to_forward', full_name='lnrpc.Hop.amt_to_forward', index=2, number=3, type=3, cpp_type=2, label=1, @@ -6189,7 +6804,14 @@ _HOP = _descriptor.Descriptor( is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='custom_records', full_name='lnrpc.Hop.custom_records', index=10, + name='amp_record', full_name='lnrpc.Hop.amp_record', index=10, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_records', full_name='lnrpc.Hop.custom_records', index=11, number=11, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -6207,8 +6829,8 @@ _HOP = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13111, - serialized_end=13453, + serialized_start=14618, + serialized_end=15002, ) @@ -6246,8 +6868,54 @@ _MPPRECORD = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13455, - serialized_end=13512, + serialized_start=15004, + serialized_end=15061, +) + + +_AMPRECORD = _descriptor.Descriptor( + name='AMPRecord', + full_name='lnrpc.AMPRecord', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='root_share', full_name='lnrpc.AMPRecord.root_share', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='set_id', full_name='lnrpc.AMPRecord.set_id', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='child_index', full_name='lnrpc.AMPRecord.child_index', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=15063, + serialized_end=15131, ) @@ -6313,8 +6981,8 @@ _ROUTE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13515, - serialized_end=13669, + serialized_start=15134, + serialized_end=15288, ) @@ -6352,8 +7020,8 @@ _NODEINFOREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13671, - serialized_end=13731, + serialized_start=15290, + serialized_end=15350, ) @@ -6405,8 +7073,8 @@ _NODEINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13734, - serialized_end=13864, + serialized_start=15353, + serialized_end=15483, ) @@ -6444,8 +7112,8 @@ _LIGHTNINGNODE_FEATURESENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6065, - serialized_end=6128, + serialized_start=6559, + serialized_end=6622, ) _LIGHTNINGNODE = _descriptor.Descriptor( @@ -6510,8 +7178,8 @@ _LIGHTNINGNODE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13867, - serialized_end=14108, + serialized_start=15486, + serialized_end=15727, ) @@ -6549,8 +7217,8 @@ _NODEADDRESS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14110, - serialized_end=14154, + serialized_start=15729, + serialized_end=15773, ) @@ -6623,8 +7291,8 @@ _ROUTINGPOLICY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14157, - serialized_end=14329, + serialized_start=15776, + serialized_end=15948, ) @@ -6704,8 +7372,8 @@ _CHANNELEDGE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14332, - serialized_end=14558, + serialized_start=15951, + serialized_end=16177, ) @@ -6736,8 +7404,8 @@ _CHANNELGRAPHREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14560, - serialized_end=14610, + serialized_start=16179, + serialized_end=16229, ) @@ -6775,8 +7443,8 @@ _CHANNELGRAPH = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14612, - serialized_end=14698, + serialized_start=16231, + serialized_end=16317, ) @@ -6807,8 +7475,8 @@ _NODEMETRICSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14700, - serialized_end=14758, + serialized_start=16319, + serialized_end=16377, ) @@ -6846,8 +7514,8 @@ _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14871, - serialized_end=14951, + serialized_start=16490, + serialized_end=16570, ) _NODEMETRICSRESPONSE = _descriptor.Descriptor( @@ -6877,8 +7545,8 @@ _NODEMETRICSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14761, - serialized_end=14951, + serialized_start=16380, + serialized_end=16570, ) @@ -6916,8 +7584,8 @@ _FLOATMETRIC = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=14953, - serialized_end=15007, + serialized_start=16572, + serialized_end=16626, ) @@ -6948,8 +7616,8 @@ _CHANINFOREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15009, - serialized_end=15047, + serialized_start=16628, + serialized_end=16666, ) @@ -6973,8 +7641,8 @@ _NETWORKINFOREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15049, - serialized_end=15069, + serialized_start=16668, + serialized_end=16688, ) @@ -7075,8 +7743,8 @@ _NETWORKINFO = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15072, - serialized_end=15367, + serialized_start=16691, + serialized_end=16986, ) @@ -7100,8 +7768,8 @@ _STOPREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15369, - serialized_end=15382, + serialized_start=16988, + serialized_end=17001, ) @@ -7125,8 +7793,8 @@ _STOPRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15384, - serialized_end=15398, + serialized_start=17003, + serialized_end=17017, ) @@ -7150,8 +7818,8 @@ _GRAPHTOPOLOGYSUBSCRIPTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15400, - serialized_end=15427, + serialized_start=17019, + serialized_end=17046, ) @@ -7196,8 +7864,8 @@ _GRAPHTOPOLOGYUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15430, - serialized_end=15593, + serialized_start=17049, + serialized_end=17212, ) @@ -7235,8 +7903,8 @@ _NODEUPDATE_FEATURESENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6065, - serialized_end=6128, + serialized_start=6559, + serialized_end=6622, ) _NODEUPDATE = _descriptor.Descriptor( @@ -7253,7 +7921,7 @@ _NODEUPDATE = _descriptor.Descriptor( has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( name='identity_key', full_name='lnrpc.NodeUpdate.identity_key', index=1, number=2, type=9, cpp_type=9, label=1, @@ -7283,7 +7951,14 @@ _NODEUPDATE = _descriptor.Descriptor( is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='features', full_name='lnrpc.NodeUpdate.features', index=5, + name='node_addresses', full_name='lnrpc.NodeUpdate.node_addresses', index=5, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='features', full_name='lnrpc.NodeUpdate.features', index=6, number=6, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -7301,8 +7976,8 @@ _NODEUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15596, - serialized_end=15824, + serialized_start=17215, + serialized_end=17491, ) @@ -7368,8 +8043,8 @@ _CHANNELEDGEUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=15827, - serialized_end=16023, + serialized_start=17494, + serialized_end=17690, ) @@ -7421,8 +8096,8 @@ _CLOSEDCHANNELUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16025, - serialized_end=16149, + serialized_start=17692, + serialized_end=17816, ) @@ -7481,8 +8156,40 @@ _HOPHINT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16152, - serialized_end=16286, + serialized_start=17819, + serialized_end=17953, +) + + +_SETID = _descriptor.Descriptor( + name='SetID', + full_name='lnrpc.SetID', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='set_id', full_name='lnrpc.SetID.set_id', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17955, + serialized_end=17978, ) @@ -7513,8 +8220,61 @@ _ROUTEHINT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16288, - serialized_end=16334, + serialized_start=17980, + serialized_end=18026, +) + + +_AMPINVOICESTATE = _descriptor.Descriptor( + name='AMPInvoiceState', + full_name='lnrpc.AMPInvoiceState', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='state', full_name='lnrpc.AMPInvoiceState.state', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='settle_index', full_name='lnrpc.AMPInvoiceState.settle_index', index=1, + number=2, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='settle_time', full_name='lnrpc.AMPInvoiceState.settle_time', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='amt_paid_msat', full_name='lnrpc.AMPInvoiceState.amt_paid_msat', index=3, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=18028, + serialized_end=18151, ) @@ -7552,8 +8312,46 @@ _INVOICE_FEATURESENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6065, - serialized_end=6128, + serialized_start=6559, + serialized_end=6622, +) + +_INVOICE_AMPINVOICESTATEENTRY = _descriptor.Descriptor( + name='AmpInvoiceStateEntry', + full_name='lnrpc.Invoice.AmpInvoiceStateEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='lnrpc.Invoice.AmpInvoiceStateEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='lnrpc.Invoice.AmpInvoiceStateEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=b'8\001', + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=18904, + serialized_end=18982, ) _INVOICE = _descriptor.Descriptor( @@ -7739,10 +8537,24 @@ _INVOICE = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='is_amp', full_name='lnrpc.Invoice.is_amp', index=25, + number=27, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='amp_invoice_state', full_name='lnrpc.Invoice.amp_invoice_state', index=26, + number=28, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], - nested_types=[_INVOICE_FEATURESENTRY, ], + nested_types=[_INVOICE_FEATURESENTRY, _INVOICE_AMPINVOICESTATEENTRY, ], enum_types=[ _INVOICE_INVOICESTATE, ], @@ -7752,8 +8564,8 @@ _INVOICE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=16337, - serialized_end=17078, + serialized_start=18154, + serialized_end=19055, ) @@ -7791,8 +8603,8 @@ _INVOICEHTLC_CUSTOMRECORDSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=13401, - serialized_end=13453, + serialized_start=14950, + serialized_end=15002, ) _INVOICEHTLC = _descriptor.Descriptor( @@ -7892,8 +8704,8 @@ _INVOICEHTLC = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17081, - serialized_end=17452, + serialized_start=19058, + serialized_end=19429, ) @@ -7952,8 +8764,8 @@ _AMP = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17454, - serialized_end=17548, + serialized_start=19431, + serialized_end=19525, ) @@ -8005,8 +8817,8 @@ _ADDINVOICERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17550, - serialized_end=17652, + serialized_start=19527, + serialized_end=19629, ) @@ -8044,8 +8856,8 @@ _PAYMENTHASH = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17654, - serialized_end=17707, + serialized_start=19631, + serialized_end=19684, ) @@ -8097,8 +8909,8 @@ _LISTINVOICEREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17709, - serialized_end=17817, + serialized_start=19686, + serialized_end=19794, ) @@ -8143,8 +8955,8 @@ _LISTINVOICERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17819, - serialized_end=17929, + serialized_start=19796, + serialized_end=19906, ) @@ -8182,8 +8994,8 @@ _INVOICESUBSCRIPTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17931, - serialized_end=17993, + serialized_start=19908, + serialized_end=19970, ) @@ -8313,8 +9125,8 @@ _PAYMENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=17996, - serialized_end=18476, + serialized_start=19973, + serialized_end=20453, ) @@ -8388,8 +9200,8 @@ _HTLCATTEMPT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18479, - serialized_end=18745, + serialized_start=20456, + serialized_end=20722, ) @@ -8441,8 +9253,8 @@ _LISTPAYMENTSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18747, - serialized_end=18858, + serialized_start=20724, + serialized_end=20835, ) @@ -8487,8 +9299,47 @@ _LISTPAYMENTSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18860, - serialized_end=18971, + serialized_start=20837, + serialized_end=20948, +) + + +_DELETEPAYMENTREQUEST = _descriptor.Descriptor( + name='DeletePaymentRequest', + full_name='lnrpc.DeletePaymentRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='payment_hash', full_name='lnrpc.DeletePaymentRequest.payment_hash', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='failed_htlcs_only', full_name='lnrpc.DeletePaymentRequest.failed_htlcs_only', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=20950, + serialized_end=21021, ) @@ -8526,8 +9377,33 @@ _DELETEALLPAYMENTSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=18973, - serialized_end=19056, + serialized_start=21023, + serialized_end=21106, +) + + +_DELETEPAYMENTRESPONSE = _descriptor.Descriptor( + name='DeletePaymentResponse', + full_name='lnrpc.DeletePaymentResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=21108, + serialized_end=21131, ) @@ -8551,8 +9427,8 @@ _DELETEALLPAYMENTSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19058, - serialized_end=19085, + serialized_start=21133, + serialized_end=21160, ) @@ -8578,6 +9454,13 @@ _ABANDONCHANNELREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='i_know_what_i_am_doing', full_name='lnrpc.AbandonChannelRequest.i_know_what_i_am_doing', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -8590,8 +9473,8 @@ _ABANDONCHANNELREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19087, - serialized_end=19189, + serialized_start=21163, + serialized_end=21297, ) @@ -8615,8 +9498,8 @@ _ABANDONCHANNELRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19191, - serialized_end=19215, + serialized_start=21299, + serialized_end=21323, ) @@ -8654,8 +9537,8 @@ _DEBUGLEVELREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19217, - serialized_end=19270, + serialized_start=21325, + serialized_end=21378, ) @@ -8686,8 +9569,8 @@ _DEBUGLEVELRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19272, - serialized_end=19313, + serialized_start=21380, + serialized_end=21421, ) @@ -8718,8 +9601,8 @@ _PAYREQSTRING = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19315, - serialized_end=19346, + serialized_start=21423, + serialized_end=21454, ) @@ -8757,8 +9640,8 @@ _PAYREQ_FEATURESENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=6065, - serialized_end=6128, + serialized_start=6559, + serialized_end=6622, ) _PAYREQ = _descriptor.Descriptor( @@ -8872,8 +9755,8 @@ _PAYREQ = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19349, - serialized_end=19739, + serialized_start=21457, + serialized_end=21847, ) @@ -8918,8 +9801,8 @@ _FEATURE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19741, - serialized_end=19803, + serialized_start=21849, + serialized_end=21911, ) @@ -8943,8 +9826,8 @@ _FEEREPORTREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19805, - serialized_end=19823, + serialized_start=21913, + serialized_end=21931, ) @@ -9003,8 +9886,8 @@ _CHANNELFEEREPORT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19825, - serialized_end=19949, + serialized_start=21933, + serialized_end=22057, ) @@ -9056,8 +9939,8 @@ _FEEREPORTRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=19952, - serialized_end=20084, + serialized_start=22060, + serialized_end=22192, ) @@ -9142,19 +10025,40 @@ _POLICYUPDATEREQUEST = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=20087, - serialized_end=20323, + serialized_start=22195, + serialized_end=22431, ) -_POLICYUPDATERESPONSE = _descriptor.Descriptor( - name='PolicyUpdateResponse', - full_name='lnrpc.PolicyUpdateResponse', +_FAILEDUPDATE = _descriptor.Descriptor( + name='FailedUpdate', + full_name='lnrpc.FailedUpdate', filename=None, file=DESCRIPTOR, containing_type=None, create_key=_descriptor._internal_create_key, fields=[ + _descriptor.FieldDescriptor( + name='outpoint', full_name='lnrpc.FailedUpdate.outpoint', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='reason', full_name='lnrpc.FailedUpdate.reason', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='update_error', full_name='lnrpc.FailedUpdate.update_error', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -9167,8 +10071,40 @@ _POLICYUPDATERESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20325, - serialized_end=20347, + serialized_start=22433, + serialized_end=22542, +) + + +_POLICYUPDATERESPONSE = _descriptor.Descriptor( + name='PolicyUpdateResponse', + full_name='lnrpc.PolicyUpdateResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='failed_updates', full_name='lnrpc.PolicyUpdateResponse.failed_updates', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=22544, + serialized_end=22611, ) @@ -9220,8 +10156,8 @@ _FORWARDINGHISTORYREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20349, - serialized_end=20459, + serialized_start=22613, + serialized_end=22723, ) @@ -9315,8 +10251,8 @@ _FORWARDINGEVENT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20462, - serialized_end=20680, + serialized_start=22726, + serialized_end=22944, ) @@ -9354,8 +10290,8 @@ _FORWARDINGHISTORYRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20682, - serialized_end=20787, + serialized_start=22946, + serialized_end=23051, ) @@ -9386,8 +10322,8 @@ _EXPORTCHANNELBACKUPREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20789, - serialized_end=20858, + serialized_start=23053, + serialized_end=23122, ) @@ -9425,8 +10361,8 @@ _CHANNELBACKUP = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20860, - serialized_end=20937, + serialized_start=23124, + serialized_end=23201, ) @@ -9464,8 +10400,8 @@ _MULTICHANBACKUP = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=20939, - serialized_end=21025, + serialized_start=23203, + serialized_end=23289, ) @@ -9489,8 +10425,8 @@ _CHANBACKUPEXPORTREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21027, - serialized_end=21052, + serialized_start=23291, + serialized_end=23316, ) @@ -9528,8 +10464,8 @@ _CHANBACKUPSNAPSHOT = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21054, - serialized_end=21177, + serialized_start=23318, + serialized_end=23441, ) @@ -9560,8 +10496,8 @@ _CHANNELBACKUPS = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21179, - serialized_end=21239, + serialized_start=23443, + serialized_end=23503, ) @@ -9604,8 +10540,8 @@ _RESTORECHANBACKUPREQUEST = _descriptor.Descriptor( create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=21241, - serialized_end=21353, + serialized_start=23505, + serialized_end=23617, ) @@ -9629,8 +10565,8 @@ _RESTOREBACKUPRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21355, - serialized_end=21378, + serialized_start=23619, + serialized_end=23642, ) @@ -9654,8 +10590,8 @@ _CHANNELBACKUPSUBSCRIPTION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21380, - serialized_end=21407, + serialized_start=23644, + serialized_end=23671, ) @@ -9679,8 +10615,8 @@ _VERIFYCHANBACKUPRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21409, - serialized_end=21435, + serialized_start=23673, + serialized_end=23699, ) @@ -9718,8 +10654,8 @@ _MACAROONPERMISSION = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21437, - serialized_end=21489, + serialized_start=23701, + serialized_end=23753, ) @@ -9745,6 +10681,13 @@ _BAKEMACAROONREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='allow_external_permissions', full_name='lnrpc.BakeMacaroonRequest.allow_external_permissions', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -9757,8 +10700,8 @@ _BAKEMACAROONREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21491, - serialized_end=21581, + serialized_start=23755, + serialized_end=23881, ) @@ -9789,8 +10732,8 @@ _BAKEMACAROONRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21583, - serialized_end=21623, + serialized_start=23883, + serialized_end=23923, ) @@ -9814,8 +10757,8 @@ _LISTMACAROONIDSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21625, - serialized_end=21649, + serialized_start=23925, + serialized_end=23949, ) @@ -9846,8 +10789,8 @@ _LISTMACAROONIDSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21651, - serialized_end=21698, + serialized_start=23951, + serialized_end=23998, ) @@ -9878,8 +10821,8 @@ _DELETEMACAROONIDREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21700, - serialized_end=21746, + serialized_start=24000, + serialized_end=24046, ) @@ -9910,8 +10853,8 @@ _DELETEMACAROONIDRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21748, - serialized_end=21791, + serialized_start=24048, + serialized_end=24091, ) @@ -9942,8 +10885,8 @@ _MACAROONPERMISSIONLIST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21793, - serialized_end=21865, + serialized_start=24093, + serialized_end=24165, ) @@ -9967,8 +10910,8 @@ _LISTPERMISSIONSREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21867, - serialized_end=21891, + serialized_start=24167, + serialized_end=24191, ) @@ -10006,8 +10949,8 @@ _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22004, - serialized_end=22091, + serialized_start=24304, + serialized_end=24391, ) _LISTPERMISSIONSRESPONSE = _descriptor.Descriptor( @@ -10037,8 +10980,8 @@ _LISTPERMISSIONSRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=21894, - serialized_end=22091, + serialized_start=24194, + serialized_end=24391, ) @@ -10119,8 +11062,8 @@ _FAILURE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=22094, - serialized_end=23075, + serialized_start=24394, + serialized_end=25375, ) @@ -10228,8 +11171,8 @@ _CHANNELUPDATE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23078, - serialized_end=23360, + serialized_start=25378, + serialized_end=25660, ) @@ -10274,8 +11217,8 @@ _MACAROONID = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23362, - serialized_end=23432, + serialized_start=25662, + serialized_end=25732, ) @@ -10313,8 +11256,393 @@ _OP = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=23434, - serialized_end=23471, + serialized_start=25734, + serialized_end=25771, +) + + +_CHECKMACPERMREQUEST = _descriptor.Descriptor( + name='CheckMacPermRequest', + full_name='lnrpc.CheckMacPermRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='macaroon', full_name='lnrpc.CheckMacPermRequest.macaroon', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='permissions', full_name='lnrpc.CheckMacPermRequest.permissions', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='fullMethod', full_name='lnrpc.CheckMacPermRequest.fullMethod', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=25773, + serialized_end=25880, +) + + +_CHECKMACPERMRESPONSE = _descriptor.Descriptor( + name='CheckMacPermResponse', + full_name='lnrpc.CheckMacPermResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='valid', full_name='lnrpc.CheckMacPermResponse.valid', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=25882, + serialized_end=25919, +) + + +_RPCMIDDLEWAREREQUEST = _descriptor.Descriptor( + name='RPCMiddlewareRequest', + full_name='lnrpc.RPCMiddlewareRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='request_id', full_name='lnrpc.RPCMiddlewareRequest.request_id', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='raw_macaroon', full_name='lnrpc.RPCMiddlewareRequest.raw_macaroon', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_caveat_condition', full_name='lnrpc.RPCMiddlewareRequest.custom_caveat_condition', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='stream_auth', full_name='lnrpc.RPCMiddlewareRequest.stream_auth', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='request', full_name='lnrpc.RPCMiddlewareRequest.request', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='response', full_name='lnrpc.RPCMiddlewareRequest.response', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='msg_id', full_name='lnrpc.RPCMiddlewareRequest.msg_id', index=6, + number=7, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='intercept_type', full_name='lnrpc.RPCMiddlewareRequest.intercept_type', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=25922, + serialized_end=26172, +) + + +_STREAMAUTH = _descriptor.Descriptor( + name='StreamAuth', + full_name='lnrpc.StreamAuth', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='method_full_uri', full_name='lnrpc.StreamAuth.method_full_uri', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=26174, + serialized_end=26211, +) + + +_RPCMESSAGE = _descriptor.Descriptor( + name='RPCMessage', + full_name='lnrpc.RPCMessage', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='method_full_uri', full_name='lnrpc.RPCMessage.method_full_uri', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='stream_rpc', full_name='lnrpc.RPCMessage.stream_rpc', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type_name', full_name='lnrpc.RPCMessage.type_name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='serialized', full_name='lnrpc.RPCMessage.serialized', index=3, + number=4, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=26213, + serialized_end=26309, +) + + +_RPCMIDDLEWARERESPONSE = _descriptor.Descriptor( + name='RPCMiddlewareResponse', + full_name='lnrpc.RPCMiddlewareResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ref_msg_id', full_name='lnrpc.RPCMiddlewareResponse.ref_msg_id', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='register', full_name='lnrpc.RPCMiddlewareResponse.register', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feedback', full_name='lnrpc.RPCMiddlewareResponse.feedback', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='middleware_message', full_name='lnrpc.RPCMiddlewareResponse.middleware_message', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=26312, + serialized_end=26474, +) + + +_MIDDLEWAREREGISTRATION = _descriptor.Descriptor( + name='MiddlewareRegistration', + full_name='lnrpc.MiddlewareRegistration', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='middleware_name', full_name='lnrpc.MiddlewareRegistration.middleware_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='custom_macaroon_caveat_name', full_name='lnrpc.MiddlewareRegistration.custom_macaroon_caveat_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='read_only_mode', full_name='lnrpc.MiddlewareRegistration.read_only_mode', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=26476, + serialized_end=26586, +) + + +_INTERCEPTFEEDBACK = _descriptor.Descriptor( + name='InterceptFeedback', + full_name='lnrpc.InterceptFeedback', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='error', full_name='lnrpc.InterceptFeedback.error', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='replace_response', full_name='lnrpc.InterceptFeedback.replace_response', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='replacement_serialized', full_name='lnrpc.InterceptFeedback.replacement_serialized', index=2, + number=3, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=26588, + serialized_end=26680, ) _UTXO.fields_by_name['address_type'].enum_type = _ADDRESSTYPE @@ -10335,6 +11663,7 @@ _SENDREQUEST.fields_by_name['dest_custom_records'].message_type = _SENDREQUEST_D _SENDREQUEST.fields_by_name['dest_features'].enum_type = _FEATUREBIT _SENDRESPONSE.fields_by_name['payment_route'].message_type = _ROUTE _SENDTOROUTEREQUEST.fields_by_name['route'].message_type = _ROUTE +_CHANNELACCEPTREQUEST.fields_by_name['commitment_type'].enum_type = _COMMITMENTTYPE _CHANNELPOINT.oneofs_by_name['funding_txid'].fields.append( _CHANNELPOINT.fields_by_name['funding_txid_bytes']) _CHANNELPOINT.fields_by_name['funding_txid_bytes'].containing_oneof = _CHANNELPOINT.oneofs_by_name['funding_txid'] @@ -10385,7 +11714,11 @@ _CLOSESTATUSUPDATE.fields_by_name['close_pending'].containing_oneof = _CLOSESTAT _CLOSESTATUSUPDATE.oneofs_by_name['update'].fields.append( _CLOSESTATUSUPDATE.fields_by_name['chan_close']) _CLOSESTATUSUPDATE.fields_by_name['chan_close'].containing_oneof = _CLOSESTATUSUPDATE.oneofs_by_name['update'] +_BATCHOPENCHANNELREQUEST.fields_by_name['channels'].message_type = _BATCHOPENCHANNEL +_BATCHOPENCHANNEL.fields_by_name['commitment_type'].enum_type = _COMMITMENTTYPE +_BATCHOPENCHANNELRESPONSE.fields_by_name['pending_channels'].message_type = _PENDINGUPDATE _OPENCHANNELREQUEST.fields_by_name['funding_shim'].message_type = _FUNDINGSHIM +_OPENCHANNELREQUEST.fields_by_name['commitment_type'].enum_type = _COMMITMENTTYPE _OPENSTATUSUPDATE.fields_by_name['chan_pending'].message_type = _PENDINGUPDATE _OPENSTATUSUPDATE.fields_by_name['chan_open'].message_type = _CHANNELOPENUPDATE _OPENSTATUSUPDATE.fields_by_name['psbt_fund'].message_type = _READYFORPSBTFUNDING @@ -10450,6 +11783,7 @@ _CHANNELEVENTUPDATE.fields_by_name['closed_channel'].message_type = _CHANNELCLOS _CHANNELEVENTUPDATE.fields_by_name['active_channel'].message_type = _CHANNELPOINT _CHANNELEVENTUPDATE.fields_by_name['inactive_channel'].message_type = _CHANNELPOINT _CHANNELEVENTUPDATE.fields_by_name['pending_open_channel'].message_type = _PENDINGUPDATE +_CHANNELEVENTUPDATE.fields_by_name['fully_resolved_channel'].message_type = _CHANNELPOINT _CHANNELEVENTUPDATE.fields_by_name['type'].enum_type = _CHANNELEVENTUPDATE_UPDATETYPE _CHANNELEVENTUPDATE_UPDATETYPE.containing_type = _CHANNELEVENTUPDATE _CHANNELEVENTUPDATE.oneofs_by_name['channel'].fields.append( @@ -10467,6 +11801,12 @@ _CHANNELEVENTUPDATE.fields_by_name['inactive_channel'].containing_oneof = _CHANN _CHANNELEVENTUPDATE.oneofs_by_name['channel'].fields.append( _CHANNELEVENTUPDATE.fields_by_name['pending_open_channel']) _CHANNELEVENTUPDATE.fields_by_name['pending_open_channel'].containing_oneof = _CHANNELEVENTUPDATE.oneofs_by_name['channel'] +_CHANNELEVENTUPDATE.oneofs_by_name['channel'].fields.append( + _CHANNELEVENTUPDATE.fields_by_name['fully_resolved_channel']) +_CHANNELEVENTUPDATE.fields_by_name['fully_resolved_channel'].containing_oneof = _CHANNELEVENTUPDATE.oneofs_by_name['channel'] +_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY.fields_by_name['value'].message_type = _WALLETACCOUNTBALANCE +_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY.containing_type = _WALLETBALANCERESPONSE +_WALLETBALANCERESPONSE.fields_by_name['account_balance'].message_type = _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY _CHANNELBALANCERESPONSE.fields_by_name['local_balance'].message_type = _AMOUNT _CHANNELBALANCERESPONSE.fields_by_name['remote_balance'].message_type = _AMOUNT _CHANNELBALANCERESPONSE.fields_by_name['unsettled_local_balance'].message_type = _AMOUNT @@ -10483,6 +11823,7 @@ _QUERYROUTESREQUEST.fields_by_name['dest_features'].enum_type = _FEATUREBIT _QUERYROUTESRESPONSE.fields_by_name['routes'].message_type = _ROUTE _HOP_CUSTOMRECORDSENTRY.containing_type = _HOP _HOP.fields_by_name['mpp_record'].message_type = _MPPRECORD +_HOP.fields_by_name['amp_record'].message_type = _AMPRECORD _HOP.fields_by_name['custom_records'].message_type = _HOP_CUSTOMRECORDSENTRY _ROUTE.fields_by_name['hops'].message_type = _HOP _NODEINFO.fields_by_name['node'].message_type = _LIGHTNINGNODE @@ -10504,17 +11845,22 @@ _GRAPHTOPOLOGYUPDATE.fields_by_name['channel_updates'].message_type = _CHANNELED _GRAPHTOPOLOGYUPDATE.fields_by_name['closed_chans'].message_type = _CLOSEDCHANNELUPDATE _NODEUPDATE_FEATURESENTRY.fields_by_name['value'].message_type = _FEATURE _NODEUPDATE_FEATURESENTRY.containing_type = _NODEUPDATE +_NODEUPDATE.fields_by_name['node_addresses'].message_type = _NODEADDRESS _NODEUPDATE.fields_by_name['features'].message_type = _NODEUPDATE_FEATURESENTRY _CHANNELEDGEUPDATE.fields_by_name['chan_point'].message_type = _CHANNELPOINT _CHANNELEDGEUPDATE.fields_by_name['routing_policy'].message_type = _ROUTINGPOLICY _CLOSEDCHANNELUPDATE.fields_by_name['chan_point'].message_type = _CHANNELPOINT _ROUTEHINT.fields_by_name['hop_hints'].message_type = _HOPHINT +_AMPINVOICESTATE.fields_by_name['state'].enum_type = _INVOICEHTLCSTATE _INVOICE_FEATURESENTRY.fields_by_name['value'].message_type = _FEATURE _INVOICE_FEATURESENTRY.containing_type = _INVOICE +_INVOICE_AMPINVOICESTATEENTRY.fields_by_name['value'].message_type = _AMPINVOICESTATE +_INVOICE_AMPINVOICESTATEENTRY.containing_type = _INVOICE _INVOICE.fields_by_name['route_hints'].message_type = _ROUTEHINT _INVOICE.fields_by_name['state'].enum_type = _INVOICE_INVOICESTATE _INVOICE.fields_by_name['htlcs'].message_type = _INVOICEHTLC _INVOICE.fields_by_name['features'].message_type = _INVOICE_FEATURESENTRY +_INVOICE.fields_by_name['amp_invoice_state'].message_type = _INVOICE_AMPINVOICESTATEENTRY _INVOICE_INVOICESTATE.containing_type = _INVOICE _INVOICEHTLC_CUSTOMRECORDSENTRY.containing_type = _INVOICEHTLC _INVOICEHTLC.fields_by_name['state'].enum_type = _INVOICEHTLCSTATE @@ -10543,6 +11889,9 @@ _POLICYUPDATEREQUEST.fields_by_name['global'].containing_oneof = _POLICYUPDATERE _POLICYUPDATEREQUEST.oneofs_by_name['scope'].fields.append( _POLICYUPDATEREQUEST.fields_by_name['chan_point']) _POLICYUPDATEREQUEST.fields_by_name['chan_point'].containing_oneof = _POLICYUPDATEREQUEST.oneofs_by_name['scope'] +_FAILEDUPDATE.fields_by_name['outpoint'].message_type = _OUTPOINT +_FAILEDUPDATE.fields_by_name['reason'].enum_type = _UPDATEFAILURE +_POLICYUPDATERESPONSE.fields_by_name['failed_updates'].message_type = _FAILEDUPDATE _FORWARDINGHISTORYRESPONSE.fields_by_name['forwarding_events'].message_type = _FORWARDINGEVENT _EXPORTCHANNELBACKUPREQUEST.fields_by_name['chan_point'].message_type = _CHANNELPOINT _CHANNELBACKUP.fields_by_name['chan_point'].message_type = _CHANNELPOINT @@ -10566,6 +11915,31 @@ _FAILURE.fields_by_name['code'].enum_type = _FAILURE_FAILURECODE _FAILURE.fields_by_name['channel_update'].message_type = _CHANNELUPDATE _FAILURE_FAILURECODE.containing_type = _FAILURE _MACAROONID.fields_by_name['ops'].message_type = _OP +_CHECKMACPERMREQUEST.fields_by_name['permissions'].message_type = _MACAROONPERMISSION +_RPCMIDDLEWAREREQUEST.fields_by_name['stream_auth'].message_type = _STREAMAUTH +_RPCMIDDLEWAREREQUEST.fields_by_name['request'].message_type = _RPCMESSAGE +_RPCMIDDLEWAREREQUEST.fields_by_name['response'].message_type = _RPCMESSAGE +_RPCMIDDLEWAREREQUEST.oneofs_by_name['intercept_type'].fields.append( + _RPCMIDDLEWAREREQUEST.fields_by_name['stream_auth']) +_RPCMIDDLEWAREREQUEST.fields_by_name['stream_auth'].containing_oneof = _RPCMIDDLEWAREREQUEST.oneofs_by_name['intercept_type'] +_RPCMIDDLEWAREREQUEST.oneofs_by_name['intercept_type'].fields.append( + _RPCMIDDLEWAREREQUEST.fields_by_name['request']) +_RPCMIDDLEWAREREQUEST.fields_by_name['request'].containing_oneof = _RPCMIDDLEWAREREQUEST.oneofs_by_name['intercept_type'] +_RPCMIDDLEWAREREQUEST.oneofs_by_name['intercept_type'].fields.append( + _RPCMIDDLEWAREREQUEST.fields_by_name['response']) +_RPCMIDDLEWAREREQUEST.fields_by_name['response'].containing_oneof = _RPCMIDDLEWAREREQUEST.oneofs_by_name['intercept_type'] +_RPCMIDDLEWARERESPONSE.fields_by_name['register'].message_type = _MIDDLEWAREREGISTRATION +_RPCMIDDLEWARERESPONSE.fields_by_name['feedback'].message_type = _INTERCEPTFEEDBACK +_RPCMIDDLEWARERESPONSE.oneofs_by_name['middleware_message'].fields.append( + _RPCMIDDLEWARERESPONSE.fields_by_name['register']) +_RPCMIDDLEWARERESPONSE.fields_by_name['register'].containing_oneof = _RPCMIDDLEWARERESPONSE.oneofs_by_name['middleware_message'] +_RPCMIDDLEWARERESPONSE.oneofs_by_name['middleware_message'].fields.append( + _RPCMIDDLEWARERESPONSE.fields_by_name['feedback']) +_RPCMIDDLEWARERESPONSE.fields_by_name['feedback'].containing_oneof = _RPCMIDDLEWARERESPONSE.oneofs_by_name['middleware_message'] +DESCRIPTOR.message_types_by_name['SubscribeCustomMessagesRequest'] = _SUBSCRIBECUSTOMMESSAGESREQUEST +DESCRIPTOR.message_types_by_name['CustomMessage'] = _CUSTOMMESSAGE +DESCRIPTOR.message_types_by_name['SendCustomMessageRequest'] = _SENDCUSTOMMESSAGEREQUEST +DESCRIPTOR.message_types_by_name['SendCustomMessageResponse'] = _SENDCUSTOMMESSAGERESPONSE DESCRIPTOR.message_types_by_name['Utxo'] = _UTXO DESCRIPTOR.message_types_by_name['Transaction'] = _TRANSACTION DESCRIPTOR.message_types_by_name['GetTransactionsRequest'] = _GETTRANSACTIONSREQUEST @@ -10624,6 +11998,9 @@ DESCRIPTOR.message_types_by_name['CloseChannelRequest'] = _CLOSECHANNELREQUEST DESCRIPTOR.message_types_by_name['CloseStatusUpdate'] = _CLOSESTATUSUPDATE DESCRIPTOR.message_types_by_name['PendingUpdate'] = _PENDINGUPDATE DESCRIPTOR.message_types_by_name['ReadyForPsbtFunding'] = _READYFORPSBTFUNDING +DESCRIPTOR.message_types_by_name['BatchOpenChannelRequest'] = _BATCHOPENCHANNELREQUEST +DESCRIPTOR.message_types_by_name['BatchOpenChannel'] = _BATCHOPENCHANNEL +DESCRIPTOR.message_types_by_name['BatchOpenChannelResponse'] = _BATCHOPENCHANNELRESPONSE DESCRIPTOR.message_types_by_name['OpenChannelRequest'] = _OPENCHANNELREQUEST DESCRIPTOR.message_types_by_name['OpenStatusUpdate'] = _OPENSTATUSUPDATE DESCRIPTOR.message_types_by_name['KeyLocator'] = _KEYLOCATOR @@ -10641,6 +12018,7 @@ DESCRIPTOR.message_types_by_name['PendingChannelsRequest'] = _PENDINGCHANNELSREQ DESCRIPTOR.message_types_by_name['PendingChannelsResponse'] = _PENDINGCHANNELSRESPONSE DESCRIPTOR.message_types_by_name['ChannelEventSubscription'] = _CHANNELEVENTSUBSCRIPTION DESCRIPTOR.message_types_by_name['ChannelEventUpdate'] = _CHANNELEVENTUPDATE +DESCRIPTOR.message_types_by_name['WalletAccountBalance'] = _WALLETACCOUNTBALANCE DESCRIPTOR.message_types_by_name['WalletBalanceRequest'] = _WALLETBALANCEREQUEST DESCRIPTOR.message_types_by_name['WalletBalanceResponse'] = _WALLETBALANCERESPONSE DESCRIPTOR.message_types_by_name['Amount'] = _AMOUNT @@ -10652,6 +12030,7 @@ DESCRIPTOR.message_types_by_name['EdgeLocator'] = _EDGELOCATOR DESCRIPTOR.message_types_by_name['QueryRoutesResponse'] = _QUERYROUTESRESPONSE DESCRIPTOR.message_types_by_name['Hop'] = _HOP DESCRIPTOR.message_types_by_name['MPPRecord'] = _MPPRECORD +DESCRIPTOR.message_types_by_name['AMPRecord'] = _AMPRECORD DESCRIPTOR.message_types_by_name['Route'] = _ROUTE DESCRIPTOR.message_types_by_name['NodeInfoRequest'] = _NODEINFOREQUEST DESCRIPTOR.message_types_by_name['NodeInfo'] = _NODEINFO @@ -10675,7 +12054,9 @@ DESCRIPTOR.message_types_by_name['NodeUpdate'] = _NODEUPDATE DESCRIPTOR.message_types_by_name['ChannelEdgeUpdate'] = _CHANNELEDGEUPDATE DESCRIPTOR.message_types_by_name['ClosedChannelUpdate'] = _CLOSEDCHANNELUPDATE DESCRIPTOR.message_types_by_name['HopHint'] = _HOPHINT +DESCRIPTOR.message_types_by_name['SetID'] = _SETID DESCRIPTOR.message_types_by_name['RouteHint'] = _ROUTEHINT +DESCRIPTOR.message_types_by_name['AMPInvoiceState'] = _AMPINVOICESTATE DESCRIPTOR.message_types_by_name['Invoice'] = _INVOICE DESCRIPTOR.message_types_by_name['InvoiceHTLC'] = _INVOICEHTLC DESCRIPTOR.message_types_by_name['AMP'] = _AMP @@ -10688,7 +12069,9 @@ DESCRIPTOR.message_types_by_name['Payment'] = _PAYMENT DESCRIPTOR.message_types_by_name['HTLCAttempt'] = _HTLCATTEMPT DESCRIPTOR.message_types_by_name['ListPaymentsRequest'] = _LISTPAYMENTSREQUEST DESCRIPTOR.message_types_by_name['ListPaymentsResponse'] = _LISTPAYMENTSRESPONSE +DESCRIPTOR.message_types_by_name['DeletePaymentRequest'] = _DELETEPAYMENTREQUEST DESCRIPTOR.message_types_by_name['DeleteAllPaymentsRequest'] = _DELETEALLPAYMENTSREQUEST +DESCRIPTOR.message_types_by_name['DeletePaymentResponse'] = _DELETEPAYMENTRESPONSE DESCRIPTOR.message_types_by_name['DeleteAllPaymentsResponse'] = _DELETEALLPAYMENTSRESPONSE DESCRIPTOR.message_types_by_name['AbandonChannelRequest'] = _ABANDONCHANNELREQUEST DESCRIPTOR.message_types_by_name['AbandonChannelResponse'] = _ABANDONCHANNELRESPONSE @@ -10701,6 +12084,7 @@ DESCRIPTOR.message_types_by_name['FeeReportRequest'] = _FEEREPORTREQUEST DESCRIPTOR.message_types_by_name['ChannelFeeReport'] = _CHANNELFEEREPORT DESCRIPTOR.message_types_by_name['FeeReportResponse'] = _FEEREPORTRESPONSE DESCRIPTOR.message_types_by_name['PolicyUpdateRequest'] = _POLICYUPDATEREQUEST +DESCRIPTOR.message_types_by_name['FailedUpdate'] = _FAILEDUPDATE DESCRIPTOR.message_types_by_name['PolicyUpdateResponse'] = _POLICYUPDATERESPONSE DESCRIPTOR.message_types_by_name['ForwardingHistoryRequest'] = _FORWARDINGHISTORYREQUEST DESCRIPTOR.message_types_by_name['ForwardingEvent'] = _FORWARDINGEVENT @@ -10729,6 +12113,14 @@ DESCRIPTOR.message_types_by_name['Failure'] = _FAILURE DESCRIPTOR.message_types_by_name['ChannelUpdate'] = _CHANNELUPDATE DESCRIPTOR.message_types_by_name['MacaroonId'] = _MACAROONID DESCRIPTOR.message_types_by_name['Op'] = _OP +DESCRIPTOR.message_types_by_name['CheckMacPermRequest'] = _CHECKMACPERMREQUEST +DESCRIPTOR.message_types_by_name['CheckMacPermResponse'] = _CHECKMACPERMRESPONSE +DESCRIPTOR.message_types_by_name['RPCMiddlewareRequest'] = _RPCMIDDLEWAREREQUEST +DESCRIPTOR.message_types_by_name['StreamAuth'] = _STREAMAUTH +DESCRIPTOR.message_types_by_name['RPCMessage'] = _RPCMESSAGE +DESCRIPTOR.message_types_by_name['RPCMiddlewareResponse'] = _RPCMIDDLEWARERESPONSE +DESCRIPTOR.message_types_by_name['MiddlewareRegistration'] = _MIDDLEWAREREGISTRATION +DESCRIPTOR.message_types_by_name['InterceptFeedback'] = _INTERCEPTFEEDBACK DESCRIPTOR.enum_types_by_name['AddressType'] = _ADDRESSTYPE DESCRIPTOR.enum_types_by_name['CommitmentType'] = _COMMITMENTTYPE DESCRIPTOR.enum_types_by_name['Initiator'] = _INITIATOR @@ -10738,39 +12130,68 @@ DESCRIPTOR.enum_types_by_name['NodeMetricType'] = _NODEMETRICTYPE DESCRIPTOR.enum_types_by_name['InvoiceHTLCState'] = _INVOICEHTLCSTATE DESCRIPTOR.enum_types_by_name['PaymentFailureReason'] = _PAYMENTFAILUREREASON DESCRIPTOR.enum_types_by_name['FeatureBit'] = _FEATUREBIT +DESCRIPTOR.enum_types_by_name['UpdateFailure'] = _UPDATEFAILURE _sym_db.RegisterFileDescriptor(DESCRIPTOR) +SubscribeCustomMessagesRequest = _reflection.GeneratedProtocolMessageType('SubscribeCustomMessagesRequest', (_message.Message,), { + 'DESCRIPTOR' : _SUBSCRIBECUSTOMMESSAGESREQUEST, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.SubscribeCustomMessagesRequest) + }) +_sym_db.RegisterMessage(SubscribeCustomMessagesRequest) + +CustomMessage = _reflection.GeneratedProtocolMessageType('CustomMessage', (_message.Message,), { + 'DESCRIPTOR' : _CUSTOMMESSAGE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.CustomMessage) + }) +_sym_db.RegisterMessage(CustomMessage) + +SendCustomMessageRequest = _reflection.GeneratedProtocolMessageType('SendCustomMessageRequest', (_message.Message,), { + 'DESCRIPTOR' : _SENDCUSTOMMESSAGEREQUEST, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.SendCustomMessageRequest) + }) +_sym_db.RegisterMessage(SendCustomMessageRequest) + +SendCustomMessageResponse = _reflection.GeneratedProtocolMessageType('SendCustomMessageResponse', (_message.Message,), { + 'DESCRIPTOR' : _SENDCUSTOMMESSAGERESPONSE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.SendCustomMessageResponse) + }) +_sym_db.RegisterMessage(SendCustomMessageResponse) + Utxo = _reflection.GeneratedProtocolMessageType('Utxo', (_message.Message,), { 'DESCRIPTOR' : _UTXO, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Utxo) }) _sym_db.RegisterMessage(Utxo) Transaction = _reflection.GeneratedProtocolMessageType('Transaction', (_message.Message,), { 'DESCRIPTOR' : _TRANSACTION, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Transaction) }) _sym_db.RegisterMessage(Transaction) GetTransactionsRequest = _reflection.GeneratedProtocolMessageType('GetTransactionsRequest', (_message.Message,), { 'DESCRIPTOR' : _GETTRANSACTIONSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.GetTransactionsRequest) }) _sym_db.RegisterMessage(GetTransactionsRequest) TransactionDetails = _reflection.GeneratedProtocolMessageType('TransactionDetails', (_message.Message,), { 'DESCRIPTOR' : _TRANSACTIONDETAILS, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.TransactionDetails) }) _sym_db.RegisterMessage(TransactionDetails) FeeLimit = _reflection.GeneratedProtocolMessageType('FeeLimit', (_message.Message,), { 'DESCRIPTOR' : _FEELIMIT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FeeLimit) }) _sym_db.RegisterMessage(FeeLimit) @@ -10779,12 +12200,12 @@ SendRequest = _reflection.GeneratedProtocolMessageType('SendRequest', (_message. 'DestCustomRecordsEntry' : _reflection.GeneratedProtocolMessageType('DestCustomRecordsEntry', (_message.Message,), { 'DESCRIPTOR' : _SENDREQUEST_DESTCUSTOMRECORDSENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendRequest.DestCustomRecordsEntry) }) , 'DESCRIPTOR' : _SENDREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendRequest) }) _sym_db.RegisterMessage(SendRequest) @@ -10792,49 +12213,49 @@ _sym_db.RegisterMessage(SendRequest.DestCustomRecordsEntry) SendResponse = _reflection.GeneratedProtocolMessageType('SendResponse', (_message.Message,), { 'DESCRIPTOR' : _SENDRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendResponse) }) _sym_db.RegisterMessage(SendResponse) SendToRouteRequest = _reflection.GeneratedProtocolMessageType('SendToRouteRequest', (_message.Message,), { 'DESCRIPTOR' : _SENDTOROUTEREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendToRouteRequest) }) _sym_db.RegisterMessage(SendToRouteRequest) ChannelAcceptRequest = _reflection.GeneratedProtocolMessageType('ChannelAcceptRequest', (_message.Message,), { 'DESCRIPTOR' : _CHANNELACCEPTREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelAcceptRequest) }) _sym_db.RegisterMessage(ChannelAcceptRequest) ChannelAcceptResponse = _reflection.GeneratedProtocolMessageType('ChannelAcceptResponse', (_message.Message,), { 'DESCRIPTOR' : _CHANNELACCEPTRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelAcceptResponse) }) _sym_db.RegisterMessage(ChannelAcceptResponse) ChannelPoint = _reflection.GeneratedProtocolMessageType('ChannelPoint', (_message.Message,), { 'DESCRIPTOR' : _CHANNELPOINT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelPoint) }) _sym_db.RegisterMessage(ChannelPoint) OutPoint = _reflection.GeneratedProtocolMessageType('OutPoint', (_message.Message,), { 'DESCRIPTOR' : _OUTPOINT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.OutPoint) }) _sym_db.RegisterMessage(OutPoint) LightningAddress = _reflection.GeneratedProtocolMessageType('LightningAddress', (_message.Message,), { 'DESCRIPTOR' : _LIGHTNINGADDRESS, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.LightningAddress) }) _sym_db.RegisterMessage(LightningAddress) @@ -10843,12 +12264,12 @@ EstimateFeeRequest = _reflection.GeneratedProtocolMessageType('EstimateFeeReques 'AddrToAmountEntry' : _reflection.GeneratedProtocolMessageType('AddrToAmountEntry', (_message.Message,), { 'DESCRIPTOR' : _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.EstimateFeeRequest.AddrToAmountEntry) }) , 'DESCRIPTOR' : _ESTIMATEFEEREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.EstimateFeeRequest) }) _sym_db.RegisterMessage(EstimateFeeRequest) @@ -10856,7 +12277,7 @@ _sym_db.RegisterMessage(EstimateFeeRequest.AddrToAmountEntry) EstimateFeeResponse = _reflection.GeneratedProtocolMessageType('EstimateFeeResponse', (_message.Message,), { 'DESCRIPTOR' : _ESTIMATEFEERESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.EstimateFeeResponse) }) _sym_db.RegisterMessage(EstimateFeeResponse) @@ -10865,12 +12286,12 @@ SendManyRequest = _reflection.GeneratedProtocolMessageType('SendManyRequest', (_ 'AddrToAmountEntry' : _reflection.GeneratedProtocolMessageType('AddrToAmountEntry', (_message.Message,), { 'DESCRIPTOR' : _SENDMANYREQUEST_ADDRTOAMOUNTENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendManyRequest.AddrToAmountEntry) }) , 'DESCRIPTOR' : _SENDMANYREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendManyRequest) }) _sym_db.RegisterMessage(SendManyRequest) @@ -10878,168 +12299,168 @@ _sym_db.RegisterMessage(SendManyRequest.AddrToAmountEntry) SendManyResponse = _reflection.GeneratedProtocolMessageType('SendManyResponse', (_message.Message,), { 'DESCRIPTOR' : _SENDMANYRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendManyResponse) }) _sym_db.RegisterMessage(SendManyResponse) SendCoinsRequest = _reflection.GeneratedProtocolMessageType('SendCoinsRequest', (_message.Message,), { 'DESCRIPTOR' : _SENDCOINSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendCoinsRequest) }) _sym_db.RegisterMessage(SendCoinsRequest) SendCoinsResponse = _reflection.GeneratedProtocolMessageType('SendCoinsResponse', (_message.Message,), { 'DESCRIPTOR' : _SENDCOINSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SendCoinsResponse) }) _sym_db.RegisterMessage(SendCoinsResponse) ListUnspentRequest = _reflection.GeneratedProtocolMessageType('ListUnspentRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTUNSPENTREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListUnspentRequest) }) _sym_db.RegisterMessage(ListUnspentRequest) ListUnspentResponse = _reflection.GeneratedProtocolMessageType('ListUnspentResponse', (_message.Message,), { 'DESCRIPTOR' : _LISTUNSPENTRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListUnspentResponse) }) _sym_db.RegisterMessage(ListUnspentResponse) NewAddressRequest = _reflection.GeneratedProtocolMessageType('NewAddressRequest', (_message.Message,), { 'DESCRIPTOR' : _NEWADDRESSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NewAddressRequest) }) _sym_db.RegisterMessage(NewAddressRequest) NewAddressResponse = _reflection.GeneratedProtocolMessageType('NewAddressResponse', (_message.Message,), { 'DESCRIPTOR' : _NEWADDRESSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NewAddressResponse) }) _sym_db.RegisterMessage(NewAddressResponse) SignMessageRequest = _reflection.GeneratedProtocolMessageType('SignMessageRequest', (_message.Message,), { 'DESCRIPTOR' : _SIGNMESSAGEREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SignMessageRequest) }) _sym_db.RegisterMessage(SignMessageRequest) SignMessageResponse = _reflection.GeneratedProtocolMessageType('SignMessageResponse', (_message.Message,), { 'DESCRIPTOR' : _SIGNMESSAGERESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.SignMessageResponse) }) _sym_db.RegisterMessage(SignMessageResponse) VerifyMessageRequest = _reflection.GeneratedProtocolMessageType('VerifyMessageRequest', (_message.Message,), { 'DESCRIPTOR' : _VERIFYMESSAGEREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.VerifyMessageRequest) }) _sym_db.RegisterMessage(VerifyMessageRequest) VerifyMessageResponse = _reflection.GeneratedProtocolMessageType('VerifyMessageResponse', (_message.Message,), { 'DESCRIPTOR' : _VERIFYMESSAGERESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.VerifyMessageResponse) }) _sym_db.RegisterMessage(VerifyMessageResponse) ConnectPeerRequest = _reflection.GeneratedProtocolMessageType('ConnectPeerRequest', (_message.Message,), { 'DESCRIPTOR' : _CONNECTPEERREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ConnectPeerRequest) }) _sym_db.RegisterMessage(ConnectPeerRequest) ConnectPeerResponse = _reflection.GeneratedProtocolMessageType('ConnectPeerResponse', (_message.Message,), { 'DESCRIPTOR' : _CONNECTPEERRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ConnectPeerResponse) }) _sym_db.RegisterMessage(ConnectPeerResponse) DisconnectPeerRequest = _reflection.GeneratedProtocolMessageType('DisconnectPeerRequest', (_message.Message,), { 'DESCRIPTOR' : _DISCONNECTPEERREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.DisconnectPeerRequest) }) _sym_db.RegisterMessage(DisconnectPeerRequest) DisconnectPeerResponse = _reflection.GeneratedProtocolMessageType('DisconnectPeerResponse', (_message.Message,), { 'DESCRIPTOR' : _DISCONNECTPEERRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.DisconnectPeerResponse) }) _sym_db.RegisterMessage(DisconnectPeerResponse) HTLC = _reflection.GeneratedProtocolMessageType('HTLC', (_message.Message,), { 'DESCRIPTOR' : _HTLC, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.HTLC) }) _sym_db.RegisterMessage(HTLC) ChannelConstraints = _reflection.GeneratedProtocolMessageType('ChannelConstraints', (_message.Message,), { 'DESCRIPTOR' : _CHANNELCONSTRAINTS, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelConstraints) }) _sym_db.RegisterMessage(ChannelConstraints) Channel = _reflection.GeneratedProtocolMessageType('Channel', (_message.Message,), { 'DESCRIPTOR' : _CHANNEL, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Channel) }) _sym_db.RegisterMessage(Channel) ListChannelsRequest = _reflection.GeneratedProtocolMessageType('ListChannelsRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTCHANNELSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListChannelsRequest) }) _sym_db.RegisterMessage(ListChannelsRequest) ListChannelsResponse = _reflection.GeneratedProtocolMessageType('ListChannelsResponse', (_message.Message,), { 'DESCRIPTOR' : _LISTCHANNELSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListChannelsResponse) }) _sym_db.RegisterMessage(ListChannelsResponse) ChannelCloseSummary = _reflection.GeneratedProtocolMessageType('ChannelCloseSummary', (_message.Message,), { 'DESCRIPTOR' : _CHANNELCLOSESUMMARY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelCloseSummary) }) _sym_db.RegisterMessage(ChannelCloseSummary) Resolution = _reflection.GeneratedProtocolMessageType('Resolution', (_message.Message,), { 'DESCRIPTOR' : _RESOLUTION, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Resolution) }) _sym_db.RegisterMessage(Resolution) ClosedChannelsRequest = _reflection.GeneratedProtocolMessageType('ClosedChannelsRequest', (_message.Message,), { 'DESCRIPTOR' : _CLOSEDCHANNELSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ClosedChannelsRequest) }) _sym_db.RegisterMessage(ClosedChannelsRequest) ClosedChannelsResponse = _reflection.GeneratedProtocolMessageType('ClosedChannelsResponse', (_message.Message,), { 'DESCRIPTOR' : _CLOSEDCHANNELSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ClosedChannelsResponse) }) _sym_db.RegisterMessage(ClosedChannelsResponse) @@ -11048,12 +12469,12 @@ Peer = _reflection.GeneratedProtocolMessageType('Peer', (_message.Message,), { 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { 'DESCRIPTOR' : _PEER_FEATURESENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Peer.FeaturesEntry) }) , 'DESCRIPTOR' : _PEER, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Peer) }) _sym_db.RegisterMessage(Peer) @@ -11061,42 +12482,42 @@ _sym_db.RegisterMessage(Peer.FeaturesEntry) TimestampedError = _reflection.GeneratedProtocolMessageType('TimestampedError', (_message.Message,), { 'DESCRIPTOR' : _TIMESTAMPEDERROR, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.TimestampedError) }) _sym_db.RegisterMessage(TimestampedError) ListPeersRequest = _reflection.GeneratedProtocolMessageType('ListPeersRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTPEERSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListPeersRequest) }) _sym_db.RegisterMessage(ListPeersRequest) ListPeersResponse = _reflection.GeneratedProtocolMessageType('ListPeersResponse', (_message.Message,), { 'DESCRIPTOR' : _LISTPEERSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListPeersResponse) }) _sym_db.RegisterMessage(ListPeersResponse) PeerEventSubscription = _reflection.GeneratedProtocolMessageType('PeerEventSubscription', (_message.Message,), { 'DESCRIPTOR' : _PEEREVENTSUBSCRIPTION, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PeerEventSubscription) }) _sym_db.RegisterMessage(PeerEventSubscription) PeerEvent = _reflection.GeneratedProtocolMessageType('PeerEvent', (_message.Message,), { 'DESCRIPTOR' : _PEEREVENT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PeerEvent) }) _sym_db.RegisterMessage(PeerEvent) GetInfoRequest = _reflection.GeneratedProtocolMessageType('GetInfoRequest', (_message.Message,), { 'DESCRIPTOR' : _GETINFOREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.GetInfoRequest) }) _sym_db.RegisterMessage(GetInfoRequest) @@ -11105,12 +12526,12 @@ GetInfoResponse = _reflection.GeneratedProtocolMessageType('GetInfoResponse', (_ 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { 'DESCRIPTOR' : _GETINFORESPONSE_FEATURESENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.GetInfoResponse.FeaturesEntry) }) , 'DESCRIPTOR' : _GETINFORESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.GetInfoResponse) }) _sym_db.RegisterMessage(GetInfoResponse) @@ -11118,168 +12539,189 @@ _sym_db.RegisterMessage(GetInfoResponse.FeaturesEntry) GetRecoveryInfoRequest = _reflection.GeneratedProtocolMessageType('GetRecoveryInfoRequest', (_message.Message,), { 'DESCRIPTOR' : _GETRECOVERYINFOREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.GetRecoveryInfoRequest) }) _sym_db.RegisterMessage(GetRecoveryInfoRequest) GetRecoveryInfoResponse = _reflection.GeneratedProtocolMessageType('GetRecoveryInfoResponse', (_message.Message,), { 'DESCRIPTOR' : _GETRECOVERYINFORESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.GetRecoveryInfoResponse) }) _sym_db.RegisterMessage(GetRecoveryInfoResponse) Chain = _reflection.GeneratedProtocolMessageType('Chain', (_message.Message,), { 'DESCRIPTOR' : _CHAIN, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Chain) }) _sym_db.RegisterMessage(Chain) ConfirmationUpdate = _reflection.GeneratedProtocolMessageType('ConfirmationUpdate', (_message.Message,), { 'DESCRIPTOR' : _CONFIRMATIONUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ConfirmationUpdate) }) _sym_db.RegisterMessage(ConfirmationUpdate) ChannelOpenUpdate = _reflection.GeneratedProtocolMessageType('ChannelOpenUpdate', (_message.Message,), { 'DESCRIPTOR' : _CHANNELOPENUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelOpenUpdate) }) _sym_db.RegisterMessage(ChannelOpenUpdate) ChannelCloseUpdate = _reflection.GeneratedProtocolMessageType('ChannelCloseUpdate', (_message.Message,), { 'DESCRIPTOR' : _CHANNELCLOSEUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelCloseUpdate) }) _sym_db.RegisterMessage(ChannelCloseUpdate) CloseChannelRequest = _reflection.GeneratedProtocolMessageType('CloseChannelRequest', (_message.Message,), { 'DESCRIPTOR' : _CLOSECHANNELREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.CloseChannelRequest) }) _sym_db.RegisterMessage(CloseChannelRequest) CloseStatusUpdate = _reflection.GeneratedProtocolMessageType('CloseStatusUpdate', (_message.Message,), { 'DESCRIPTOR' : _CLOSESTATUSUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.CloseStatusUpdate) }) _sym_db.RegisterMessage(CloseStatusUpdate) PendingUpdate = _reflection.GeneratedProtocolMessageType('PendingUpdate', (_message.Message,), { 'DESCRIPTOR' : _PENDINGUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingUpdate) }) _sym_db.RegisterMessage(PendingUpdate) ReadyForPsbtFunding = _reflection.GeneratedProtocolMessageType('ReadyForPsbtFunding', (_message.Message,), { 'DESCRIPTOR' : _READYFORPSBTFUNDING, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ReadyForPsbtFunding) }) _sym_db.RegisterMessage(ReadyForPsbtFunding) +BatchOpenChannelRequest = _reflection.GeneratedProtocolMessageType('BatchOpenChannelRequest', (_message.Message,), { + 'DESCRIPTOR' : _BATCHOPENCHANNELREQUEST, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.BatchOpenChannelRequest) + }) +_sym_db.RegisterMessage(BatchOpenChannelRequest) + +BatchOpenChannel = _reflection.GeneratedProtocolMessageType('BatchOpenChannel', (_message.Message,), { + 'DESCRIPTOR' : _BATCHOPENCHANNEL, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.BatchOpenChannel) + }) +_sym_db.RegisterMessage(BatchOpenChannel) + +BatchOpenChannelResponse = _reflection.GeneratedProtocolMessageType('BatchOpenChannelResponse', (_message.Message,), { + 'DESCRIPTOR' : _BATCHOPENCHANNELRESPONSE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.BatchOpenChannelResponse) + }) +_sym_db.RegisterMessage(BatchOpenChannelResponse) + OpenChannelRequest = _reflection.GeneratedProtocolMessageType('OpenChannelRequest', (_message.Message,), { 'DESCRIPTOR' : _OPENCHANNELREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.OpenChannelRequest) }) _sym_db.RegisterMessage(OpenChannelRequest) OpenStatusUpdate = _reflection.GeneratedProtocolMessageType('OpenStatusUpdate', (_message.Message,), { 'DESCRIPTOR' : _OPENSTATUSUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.OpenStatusUpdate) }) _sym_db.RegisterMessage(OpenStatusUpdate) KeyLocator = _reflection.GeneratedProtocolMessageType('KeyLocator', (_message.Message,), { 'DESCRIPTOR' : _KEYLOCATOR, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.KeyLocator) }) _sym_db.RegisterMessage(KeyLocator) KeyDescriptor = _reflection.GeneratedProtocolMessageType('KeyDescriptor', (_message.Message,), { 'DESCRIPTOR' : _KEYDESCRIPTOR, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.KeyDescriptor) }) _sym_db.RegisterMessage(KeyDescriptor) ChanPointShim = _reflection.GeneratedProtocolMessageType('ChanPointShim', (_message.Message,), { 'DESCRIPTOR' : _CHANPOINTSHIM, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChanPointShim) }) _sym_db.RegisterMessage(ChanPointShim) PsbtShim = _reflection.GeneratedProtocolMessageType('PsbtShim', (_message.Message,), { 'DESCRIPTOR' : _PSBTSHIM, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PsbtShim) }) _sym_db.RegisterMessage(PsbtShim) FundingShim = _reflection.GeneratedProtocolMessageType('FundingShim', (_message.Message,), { 'DESCRIPTOR' : _FUNDINGSHIM, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FundingShim) }) _sym_db.RegisterMessage(FundingShim) FundingShimCancel = _reflection.GeneratedProtocolMessageType('FundingShimCancel', (_message.Message,), { 'DESCRIPTOR' : _FUNDINGSHIMCANCEL, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FundingShimCancel) }) _sym_db.RegisterMessage(FundingShimCancel) FundingPsbtVerify = _reflection.GeneratedProtocolMessageType('FundingPsbtVerify', (_message.Message,), { 'DESCRIPTOR' : _FUNDINGPSBTVERIFY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FundingPsbtVerify) }) _sym_db.RegisterMessage(FundingPsbtVerify) FundingPsbtFinalize = _reflection.GeneratedProtocolMessageType('FundingPsbtFinalize', (_message.Message,), { 'DESCRIPTOR' : _FUNDINGPSBTFINALIZE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FundingPsbtFinalize) }) _sym_db.RegisterMessage(FundingPsbtFinalize) FundingTransitionMsg = _reflection.GeneratedProtocolMessageType('FundingTransitionMsg', (_message.Message,), { 'DESCRIPTOR' : _FUNDINGTRANSITIONMSG, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FundingTransitionMsg) }) _sym_db.RegisterMessage(FundingTransitionMsg) FundingStateStepResp = _reflection.GeneratedProtocolMessageType('FundingStateStepResp', (_message.Message,), { 'DESCRIPTOR' : _FUNDINGSTATESTEPRESP, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FundingStateStepResp) }) _sym_db.RegisterMessage(FundingStateStepResp) PendingHTLC = _reflection.GeneratedProtocolMessageType('PendingHTLC', (_message.Message,), { 'DESCRIPTOR' : _PENDINGHTLC, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingHTLC) }) _sym_db.RegisterMessage(PendingHTLC) PendingChannelsRequest = _reflection.GeneratedProtocolMessageType('PendingChannelsRequest', (_message.Message,), { 'DESCRIPTOR' : _PENDINGCHANNELSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsRequest) }) _sym_db.RegisterMessage(PendingChannelsRequest) @@ -11288,47 +12730,47 @@ PendingChannelsResponse = _reflection.GeneratedProtocolMessageType('PendingChann 'PendingChannel' : _reflection.GeneratedProtocolMessageType('PendingChannel', (_message.Message,), { 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.PendingChannel) }) , 'PendingOpenChannel' : _reflection.GeneratedProtocolMessageType('PendingOpenChannel', (_message.Message,), { 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.PendingOpenChannel) }) , 'WaitingCloseChannel' : _reflection.GeneratedProtocolMessageType('WaitingCloseChannel', (_message.Message,), { 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.WaitingCloseChannel) }) , 'Commitments' : _reflection.GeneratedProtocolMessageType('Commitments', (_message.Message,), { 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_COMMITMENTS, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.Commitments) }) , 'ClosedChannel' : _reflection.GeneratedProtocolMessageType('ClosedChannel', (_message.Message,), { 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.ClosedChannel) }) , 'ForceClosedChannel' : _reflection.GeneratedProtocolMessageType('ForceClosedChannel', (_message.Message,), { 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.ForceClosedChannel) }) , 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse) }) _sym_db.RegisterMessage(PendingChannelsResponse) @@ -11341,49 +12783,64 @@ _sym_db.RegisterMessage(PendingChannelsResponse.ForceClosedChannel) ChannelEventSubscription = _reflection.GeneratedProtocolMessageType('ChannelEventSubscription', (_message.Message,), { 'DESCRIPTOR' : _CHANNELEVENTSUBSCRIPTION, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelEventSubscription) }) _sym_db.RegisterMessage(ChannelEventSubscription) ChannelEventUpdate = _reflection.GeneratedProtocolMessageType('ChannelEventUpdate', (_message.Message,), { 'DESCRIPTOR' : _CHANNELEVENTUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelEventUpdate) }) _sym_db.RegisterMessage(ChannelEventUpdate) +WalletAccountBalance = _reflection.GeneratedProtocolMessageType('WalletAccountBalance', (_message.Message,), { + 'DESCRIPTOR' : _WALLETACCOUNTBALANCE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.WalletAccountBalance) + }) +_sym_db.RegisterMessage(WalletAccountBalance) + WalletBalanceRequest = _reflection.GeneratedProtocolMessageType('WalletBalanceRequest', (_message.Message,), { 'DESCRIPTOR' : _WALLETBALANCEREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.WalletBalanceRequest) }) _sym_db.RegisterMessage(WalletBalanceRequest) WalletBalanceResponse = _reflection.GeneratedProtocolMessageType('WalletBalanceResponse', (_message.Message,), { + + 'AccountBalanceEntry' : _reflection.GeneratedProtocolMessageType('AccountBalanceEntry', (_message.Message,), { + 'DESCRIPTOR' : _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.WalletBalanceResponse.AccountBalanceEntry) + }) + , 'DESCRIPTOR' : _WALLETBALANCERESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.WalletBalanceResponse) }) _sym_db.RegisterMessage(WalletBalanceResponse) +_sym_db.RegisterMessage(WalletBalanceResponse.AccountBalanceEntry) Amount = _reflection.GeneratedProtocolMessageType('Amount', (_message.Message,), { 'DESCRIPTOR' : _AMOUNT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Amount) }) _sym_db.RegisterMessage(Amount) ChannelBalanceRequest = _reflection.GeneratedProtocolMessageType('ChannelBalanceRequest', (_message.Message,), { 'DESCRIPTOR' : _CHANNELBALANCEREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelBalanceRequest) }) _sym_db.RegisterMessage(ChannelBalanceRequest) ChannelBalanceResponse = _reflection.GeneratedProtocolMessageType('ChannelBalanceResponse', (_message.Message,), { 'DESCRIPTOR' : _CHANNELBALANCERESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelBalanceResponse) }) _sym_db.RegisterMessage(ChannelBalanceResponse) @@ -11392,12 +12849,12 @@ QueryRoutesRequest = _reflection.GeneratedProtocolMessageType('QueryRoutesReques 'DestCustomRecordsEntry' : _reflection.GeneratedProtocolMessageType('DestCustomRecordsEntry', (_message.Message,), { 'DESCRIPTOR' : _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.QueryRoutesRequest.DestCustomRecordsEntry) }) , 'DESCRIPTOR' : _QUERYROUTESREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.QueryRoutesRequest) }) _sym_db.RegisterMessage(QueryRoutesRequest) @@ -11405,21 +12862,21 @@ _sym_db.RegisterMessage(QueryRoutesRequest.DestCustomRecordsEntry) NodePair = _reflection.GeneratedProtocolMessageType('NodePair', (_message.Message,), { 'DESCRIPTOR' : _NODEPAIR, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodePair) }) _sym_db.RegisterMessage(NodePair) EdgeLocator = _reflection.GeneratedProtocolMessageType('EdgeLocator', (_message.Message,), { 'DESCRIPTOR' : _EDGELOCATOR, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.EdgeLocator) }) _sym_db.RegisterMessage(EdgeLocator) QueryRoutesResponse = _reflection.GeneratedProtocolMessageType('QueryRoutesResponse', (_message.Message,), { 'DESCRIPTOR' : _QUERYROUTESRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.QueryRoutesResponse) }) _sym_db.RegisterMessage(QueryRoutesResponse) @@ -11428,12 +12885,12 @@ Hop = _reflection.GeneratedProtocolMessageType('Hop', (_message.Message,), { 'CustomRecordsEntry' : _reflection.GeneratedProtocolMessageType('CustomRecordsEntry', (_message.Message,), { 'DESCRIPTOR' : _HOP_CUSTOMRECORDSENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Hop.CustomRecordsEntry) }) , 'DESCRIPTOR' : _HOP, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Hop) }) _sym_db.RegisterMessage(Hop) @@ -11441,28 +12898,35 @@ _sym_db.RegisterMessage(Hop.CustomRecordsEntry) MPPRecord = _reflection.GeneratedProtocolMessageType('MPPRecord', (_message.Message,), { 'DESCRIPTOR' : _MPPRECORD, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.MPPRecord) }) _sym_db.RegisterMessage(MPPRecord) +AMPRecord = _reflection.GeneratedProtocolMessageType('AMPRecord', (_message.Message,), { + 'DESCRIPTOR' : _AMPRECORD, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.AMPRecord) + }) +_sym_db.RegisterMessage(AMPRecord) + Route = _reflection.GeneratedProtocolMessageType('Route', (_message.Message,), { 'DESCRIPTOR' : _ROUTE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Route) }) _sym_db.RegisterMessage(Route) NodeInfoRequest = _reflection.GeneratedProtocolMessageType('NodeInfoRequest', (_message.Message,), { 'DESCRIPTOR' : _NODEINFOREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodeInfoRequest) }) _sym_db.RegisterMessage(NodeInfoRequest) NodeInfo = _reflection.GeneratedProtocolMessageType('NodeInfo', (_message.Message,), { 'DESCRIPTOR' : _NODEINFO, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodeInfo) }) _sym_db.RegisterMessage(NodeInfo) @@ -11471,12 +12935,12 @@ LightningNode = _reflection.GeneratedProtocolMessageType('LightningNode', (_mess 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { 'DESCRIPTOR' : _LIGHTNINGNODE_FEATURESENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.LightningNode.FeaturesEntry) }) , 'DESCRIPTOR' : _LIGHTNINGNODE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.LightningNode) }) _sym_db.RegisterMessage(LightningNode) @@ -11484,42 +12948,42 @@ _sym_db.RegisterMessage(LightningNode.FeaturesEntry) NodeAddress = _reflection.GeneratedProtocolMessageType('NodeAddress', (_message.Message,), { 'DESCRIPTOR' : _NODEADDRESS, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodeAddress) }) _sym_db.RegisterMessage(NodeAddress) RoutingPolicy = _reflection.GeneratedProtocolMessageType('RoutingPolicy', (_message.Message,), { 'DESCRIPTOR' : _ROUTINGPOLICY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.RoutingPolicy) }) _sym_db.RegisterMessage(RoutingPolicy) ChannelEdge = _reflection.GeneratedProtocolMessageType('ChannelEdge', (_message.Message,), { 'DESCRIPTOR' : _CHANNELEDGE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelEdge) }) _sym_db.RegisterMessage(ChannelEdge) ChannelGraphRequest = _reflection.GeneratedProtocolMessageType('ChannelGraphRequest', (_message.Message,), { 'DESCRIPTOR' : _CHANNELGRAPHREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelGraphRequest) }) _sym_db.RegisterMessage(ChannelGraphRequest) ChannelGraph = _reflection.GeneratedProtocolMessageType('ChannelGraph', (_message.Message,), { 'DESCRIPTOR' : _CHANNELGRAPH, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelGraph) }) _sym_db.RegisterMessage(ChannelGraph) NodeMetricsRequest = _reflection.GeneratedProtocolMessageType('NodeMetricsRequest', (_message.Message,), { 'DESCRIPTOR' : _NODEMETRICSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodeMetricsRequest) }) _sym_db.RegisterMessage(NodeMetricsRequest) @@ -11528,12 +12992,12 @@ NodeMetricsResponse = _reflection.GeneratedProtocolMessageType('NodeMetricsRespo 'BetweennessCentralityEntry' : _reflection.GeneratedProtocolMessageType('BetweennessCentralityEntry', (_message.Message,), { 'DESCRIPTOR' : _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodeMetricsResponse.BetweennessCentralityEntry) }) , 'DESCRIPTOR' : _NODEMETRICSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodeMetricsResponse) }) _sym_db.RegisterMessage(NodeMetricsResponse) @@ -11541,56 +13005,56 @@ _sym_db.RegisterMessage(NodeMetricsResponse.BetweennessCentralityEntry) FloatMetric = _reflection.GeneratedProtocolMessageType('FloatMetric', (_message.Message,), { 'DESCRIPTOR' : _FLOATMETRIC, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FloatMetric) }) _sym_db.RegisterMessage(FloatMetric) ChanInfoRequest = _reflection.GeneratedProtocolMessageType('ChanInfoRequest', (_message.Message,), { 'DESCRIPTOR' : _CHANINFOREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChanInfoRequest) }) _sym_db.RegisterMessage(ChanInfoRequest) NetworkInfoRequest = _reflection.GeneratedProtocolMessageType('NetworkInfoRequest', (_message.Message,), { 'DESCRIPTOR' : _NETWORKINFOREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NetworkInfoRequest) }) _sym_db.RegisterMessage(NetworkInfoRequest) NetworkInfo = _reflection.GeneratedProtocolMessageType('NetworkInfo', (_message.Message,), { 'DESCRIPTOR' : _NETWORKINFO, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NetworkInfo) }) _sym_db.RegisterMessage(NetworkInfo) StopRequest = _reflection.GeneratedProtocolMessageType('StopRequest', (_message.Message,), { 'DESCRIPTOR' : _STOPREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.StopRequest) }) _sym_db.RegisterMessage(StopRequest) StopResponse = _reflection.GeneratedProtocolMessageType('StopResponse', (_message.Message,), { 'DESCRIPTOR' : _STOPRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.StopResponse) }) _sym_db.RegisterMessage(StopResponse) GraphTopologySubscription = _reflection.GeneratedProtocolMessageType('GraphTopologySubscription', (_message.Message,), { 'DESCRIPTOR' : _GRAPHTOPOLOGYSUBSCRIPTION, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.GraphTopologySubscription) }) _sym_db.RegisterMessage(GraphTopologySubscription) GraphTopologyUpdate = _reflection.GeneratedProtocolMessageType('GraphTopologyUpdate', (_message.Message,), { 'DESCRIPTOR' : _GRAPHTOPOLOGYUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.GraphTopologyUpdate) }) _sym_db.RegisterMessage(GraphTopologyUpdate) @@ -11599,12 +13063,12 @@ NodeUpdate = _reflection.GeneratedProtocolMessageType('NodeUpdate', (_message.Me 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { 'DESCRIPTOR' : _NODEUPDATE_FEATURESENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodeUpdate.FeaturesEntry) }) , 'DESCRIPTOR' : _NODEUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.NodeUpdate) }) _sym_db.RegisterMessage(NodeUpdate) @@ -11612,57 +13076,79 @@ _sym_db.RegisterMessage(NodeUpdate.FeaturesEntry) ChannelEdgeUpdate = _reflection.GeneratedProtocolMessageType('ChannelEdgeUpdate', (_message.Message,), { 'DESCRIPTOR' : _CHANNELEDGEUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelEdgeUpdate) }) _sym_db.RegisterMessage(ChannelEdgeUpdate) ClosedChannelUpdate = _reflection.GeneratedProtocolMessageType('ClosedChannelUpdate', (_message.Message,), { 'DESCRIPTOR' : _CLOSEDCHANNELUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ClosedChannelUpdate) }) _sym_db.RegisterMessage(ClosedChannelUpdate) HopHint = _reflection.GeneratedProtocolMessageType('HopHint', (_message.Message,), { 'DESCRIPTOR' : _HOPHINT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.HopHint) }) _sym_db.RegisterMessage(HopHint) +SetID = _reflection.GeneratedProtocolMessageType('SetID', (_message.Message,), { + 'DESCRIPTOR' : _SETID, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.SetID) + }) +_sym_db.RegisterMessage(SetID) + RouteHint = _reflection.GeneratedProtocolMessageType('RouteHint', (_message.Message,), { 'DESCRIPTOR' : _ROUTEHINT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.RouteHint) }) _sym_db.RegisterMessage(RouteHint) +AMPInvoiceState = _reflection.GeneratedProtocolMessageType('AMPInvoiceState', (_message.Message,), { + 'DESCRIPTOR' : _AMPINVOICESTATE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.AMPInvoiceState) + }) +_sym_db.RegisterMessage(AMPInvoiceState) + Invoice = _reflection.GeneratedProtocolMessageType('Invoice', (_message.Message,), { 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { 'DESCRIPTOR' : _INVOICE_FEATURESENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Invoice.FeaturesEntry) }) , + + 'AmpInvoiceStateEntry' : _reflection.GeneratedProtocolMessageType('AmpInvoiceStateEntry', (_message.Message,), { + 'DESCRIPTOR' : _INVOICE_AMPINVOICESTATEENTRY, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.Invoice.AmpInvoiceStateEntry) + }) + , 'DESCRIPTOR' : _INVOICE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Invoice) }) _sym_db.RegisterMessage(Invoice) _sym_db.RegisterMessage(Invoice.FeaturesEntry) +_sym_db.RegisterMessage(Invoice.AmpInvoiceStateEntry) InvoiceHTLC = _reflection.GeneratedProtocolMessageType('InvoiceHTLC', (_message.Message,), { 'CustomRecordsEntry' : _reflection.GeneratedProtocolMessageType('CustomRecordsEntry', (_message.Message,), { 'DESCRIPTOR' : _INVOICEHTLC_CUSTOMRECORDSENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.InvoiceHTLC.CustomRecordsEntry) }) , 'DESCRIPTOR' : _INVOICEHTLC, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.InvoiceHTLC) }) _sym_db.RegisterMessage(InvoiceHTLC) @@ -11670,119 +13156,133 @@ _sym_db.RegisterMessage(InvoiceHTLC.CustomRecordsEntry) AMP = _reflection.GeneratedProtocolMessageType('AMP', (_message.Message,), { 'DESCRIPTOR' : _AMP, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.AMP) }) _sym_db.RegisterMessage(AMP) AddInvoiceResponse = _reflection.GeneratedProtocolMessageType('AddInvoiceResponse', (_message.Message,), { 'DESCRIPTOR' : _ADDINVOICERESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.AddInvoiceResponse) }) _sym_db.RegisterMessage(AddInvoiceResponse) PaymentHash = _reflection.GeneratedProtocolMessageType('PaymentHash', (_message.Message,), { 'DESCRIPTOR' : _PAYMENTHASH, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PaymentHash) }) _sym_db.RegisterMessage(PaymentHash) ListInvoiceRequest = _reflection.GeneratedProtocolMessageType('ListInvoiceRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTINVOICEREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListInvoiceRequest) }) _sym_db.RegisterMessage(ListInvoiceRequest) ListInvoiceResponse = _reflection.GeneratedProtocolMessageType('ListInvoiceResponse', (_message.Message,), { 'DESCRIPTOR' : _LISTINVOICERESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListInvoiceResponse) }) _sym_db.RegisterMessage(ListInvoiceResponse) InvoiceSubscription = _reflection.GeneratedProtocolMessageType('InvoiceSubscription', (_message.Message,), { 'DESCRIPTOR' : _INVOICESUBSCRIPTION, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.InvoiceSubscription) }) _sym_db.RegisterMessage(InvoiceSubscription) Payment = _reflection.GeneratedProtocolMessageType('Payment', (_message.Message,), { 'DESCRIPTOR' : _PAYMENT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Payment) }) _sym_db.RegisterMessage(Payment) HTLCAttempt = _reflection.GeneratedProtocolMessageType('HTLCAttempt', (_message.Message,), { 'DESCRIPTOR' : _HTLCATTEMPT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.HTLCAttempt) }) _sym_db.RegisterMessage(HTLCAttempt) ListPaymentsRequest = _reflection.GeneratedProtocolMessageType('ListPaymentsRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTPAYMENTSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListPaymentsRequest) }) _sym_db.RegisterMessage(ListPaymentsRequest) ListPaymentsResponse = _reflection.GeneratedProtocolMessageType('ListPaymentsResponse', (_message.Message,), { 'DESCRIPTOR' : _LISTPAYMENTSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListPaymentsResponse) }) _sym_db.RegisterMessage(ListPaymentsResponse) +DeletePaymentRequest = _reflection.GeneratedProtocolMessageType('DeletePaymentRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETEPAYMENTREQUEST, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.DeletePaymentRequest) + }) +_sym_db.RegisterMessage(DeletePaymentRequest) + DeleteAllPaymentsRequest = _reflection.GeneratedProtocolMessageType('DeleteAllPaymentsRequest', (_message.Message,), { 'DESCRIPTOR' : _DELETEALLPAYMENTSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.DeleteAllPaymentsRequest) }) _sym_db.RegisterMessage(DeleteAllPaymentsRequest) +DeletePaymentResponse = _reflection.GeneratedProtocolMessageType('DeletePaymentResponse', (_message.Message,), { + 'DESCRIPTOR' : _DELETEPAYMENTRESPONSE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.DeletePaymentResponse) + }) +_sym_db.RegisterMessage(DeletePaymentResponse) + DeleteAllPaymentsResponse = _reflection.GeneratedProtocolMessageType('DeleteAllPaymentsResponse', (_message.Message,), { 'DESCRIPTOR' : _DELETEALLPAYMENTSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.DeleteAllPaymentsResponse) }) _sym_db.RegisterMessage(DeleteAllPaymentsResponse) AbandonChannelRequest = _reflection.GeneratedProtocolMessageType('AbandonChannelRequest', (_message.Message,), { 'DESCRIPTOR' : _ABANDONCHANNELREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.AbandonChannelRequest) }) _sym_db.RegisterMessage(AbandonChannelRequest) AbandonChannelResponse = _reflection.GeneratedProtocolMessageType('AbandonChannelResponse', (_message.Message,), { 'DESCRIPTOR' : _ABANDONCHANNELRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.AbandonChannelResponse) }) _sym_db.RegisterMessage(AbandonChannelResponse) DebugLevelRequest = _reflection.GeneratedProtocolMessageType('DebugLevelRequest', (_message.Message,), { 'DESCRIPTOR' : _DEBUGLEVELREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.DebugLevelRequest) }) _sym_db.RegisterMessage(DebugLevelRequest) DebugLevelResponse = _reflection.GeneratedProtocolMessageType('DebugLevelResponse', (_message.Message,), { 'DESCRIPTOR' : _DEBUGLEVELRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.DebugLevelResponse) }) _sym_db.RegisterMessage(DebugLevelResponse) PayReqString = _reflection.GeneratedProtocolMessageType('PayReqString', (_message.Message,), { 'DESCRIPTOR' : _PAYREQSTRING, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PayReqString) }) _sym_db.RegisterMessage(PayReqString) @@ -11791,12 +13291,12 @@ PayReq = _reflection.GeneratedProtocolMessageType('PayReq', (_message.Message,), 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { 'DESCRIPTOR' : _PAYREQ_FEATURESENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PayReq.FeaturesEntry) }) , 'DESCRIPTOR' : _PAYREQ, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PayReq) }) _sym_db.RegisterMessage(PayReq) @@ -11804,196 +13304,203 @@ _sym_db.RegisterMessage(PayReq.FeaturesEntry) Feature = _reflection.GeneratedProtocolMessageType('Feature', (_message.Message,), { 'DESCRIPTOR' : _FEATURE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Feature) }) _sym_db.RegisterMessage(Feature) FeeReportRequest = _reflection.GeneratedProtocolMessageType('FeeReportRequest', (_message.Message,), { 'DESCRIPTOR' : _FEEREPORTREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FeeReportRequest) }) _sym_db.RegisterMessage(FeeReportRequest) ChannelFeeReport = _reflection.GeneratedProtocolMessageType('ChannelFeeReport', (_message.Message,), { 'DESCRIPTOR' : _CHANNELFEEREPORT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelFeeReport) }) _sym_db.RegisterMessage(ChannelFeeReport) FeeReportResponse = _reflection.GeneratedProtocolMessageType('FeeReportResponse', (_message.Message,), { 'DESCRIPTOR' : _FEEREPORTRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.FeeReportResponse) }) _sym_db.RegisterMessage(FeeReportResponse) PolicyUpdateRequest = _reflection.GeneratedProtocolMessageType('PolicyUpdateRequest', (_message.Message,), { 'DESCRIPTOR' : _POLICYUPDATEREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PolicyUpdateRequest) }) _sym_db.RegisterMessage(PolicyUpdateRequest) +FailedUpdate = _reflection.GeneratedProtocolMessageType('FailedUpdate', (_message.Message,), { + 'DESCRIPTOR' : _FAILEDUPDATE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.FailedUpdate) + }) +_sym_db.RegisterMessage(FailedUpdate) + PolicyUpdateResponse = _reflection.GeneratedProtocolMessageType('PolicyUpdateResponse', (_message.Message,), { 'DESCRIPTOR' : _POLICYUPDATERESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.PolicyUpdateResponse) }) _sym_db.RegisterMessage(PolicyUpdateResponse) ForwardingHistoryRequest = _reflection.GeneratedProtocolMessageType('ForwardingHistoryRequest', (_message.Message,), { 'DESCRIPTOR' : _FORWARDINGHISTORYREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ForwardingHistoryRequest) }) _sym_db.RegisterMessage(ForwardingHistoryRequest) ForwardingEvent = _reflection.GeneratedProtocolMessageType('ForwardingEvent', (_message.Message,), { 'DESCRIPTOR' : _FORWARDINGEVENT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ForwardingEvent) }) _sym_db.RegisterMessage(ForwardingEvent) ForwardingHistoryResponse = _reflection.GeneratedProtocolMessageType('ForwardingHistoryResponse', (_message.Message,), { 'DESCRIPTOR' : _FORWARDINGHISTORYRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ForwardingHistoryResponse) }) _sym_db.RegisterMessage(ForwardingHistoryResponse) ExportChannelBackupRequest = _reflection.GeneratedProtocolMessageType('ExportChannelBackupRequest', (_message.Message,), { 'DESCRIPTOR' : _EXPORTCHANNELBACKUPREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ExportChannelBackupRequest) }) _sym_db.RegisterMessage(ExportChannelBackupRequest) ChannelBackup = _reflection.GeneratedProtocolMessageType('ChannelBackup', (_message.Message,), { 'DESCRIPTOR' : _CHANNELBACKUP, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelBackup) }) _sym_db.RegisterMessage(ChannelBackup) MultiChanBackup = _reflection.GeneratedProtocolMessageType('MultiChanBackup', (_message.Message,), { 'DESCRIPTOR' : _MULTICHANBACKUP, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.MultiChanBackup) }) _sym_db.RegisterMessage(MultiChanBackup) ChanBackupExportRequest = _reflection.GeneratedProtocolMessageType('ChanBackupExportRequest', (_message.Message,), { 'DESCRIPTOR' : _CHANBACKUPEXPORTREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChanBackupExportRequest) }) _sym_db.RegisterMessage(ChanBackupExportRequest) ChanBackupSnapshot = _reflection.GeneratedProtocolMessageType('ChanBackupSnapshot', (_message.Message,), { 'DESCRIPTOR' : _CHANBACKUPSNAPSHOT, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChanBackupSnapshot) }) _sym_db.RegisterMessage(ChanBackupSnapshot) ChannelBackups = _reflection.GeneratedProtocolMessageType('ChannelBackups', (_message.Message,), { 'DESCRIPTOR' : _CHANNELBACKUPS, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelBackups) }) _sym_db.RegisterMessage(ChannelBackups) RestoreChanBackupRequest = _reflection.GeneratedProtocolMessageType('RestoreChanBackupRequest', (_message.Message,), { 'DESCRIPTOR' : _RESTORECHANBACKUPREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.RestoreChanBackupRequest) }) _sym_db.RegisterMessage(RestoreChanBackupRequest) RestoreBackupResponse = _reflection.GeneratedProtocolMessageType('RestoreBackupResponse', (_message.Message,), { 'DESCRIPTOR' : _RESTOREBACKUPRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.RestoreBackupResponse) }) _sym_db.RegisterMessage(RestoreBackupResponse) ChannelBackupSubscription = _reflection.GeneratedProtocolMessageType('ChannelBackupSubscription', (_message.Message,), { 'DESCRIPTOR' : _CHANNELBACKUPSUBSCRIPTION, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelBackupSubscription) }) _sym_db.RegisterMessage(ChannelBackupSubscription) VerifyChanBackupResponse = _reflection.GeneratedProtocolMessageType('VerifyChanBackupResponse', (_message.Message,), { 'DESCRIPTOR' : _VERIFYCHANBACKUPRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.VerifyChanBackupResponse) }) _sym_db.RegisterMessage(VerifyChanBackupResponse) MacaroonPermission = _reflection.GeneratedProtocolMessageType('MacaroonPermission', (_message.Message,), { 'DESCRIPTOR' : _MACAROONPERMISSION, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.MacaroonPermission) }) _sym_db.RegisterMessage(MacaroonPermission) BakeMacaroonRequest = _reflection.GeneratedProtocolMessageType('BakeMacaroonRequest', (_message.Message,), { 'DESCRIPTOR' : _BAKEMACAROONREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.BakeMacaroonRequest) }) _sym_db.RegisterMessage(BakeMacaroonRequest) BakeMacaroonResponse = _reflection.GeneratedProtocolMessageType('BakeMacaroonResponse', (_message.Message,), { 'DESCRIPTOR' : _BAKEMACAROONRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.BakeMacaroonResponse) }) _sym_db.RegisterMessage(BakeMacaroonResponse) ListMacaroonIDsRequest = _reflection.GeneratedProtocolMessageType('ListMacaroonIDsRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTMACAROONIDSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListMacaroonIDsRequest) }) _sym_db.RegisterMessage(ListMacaroonIDsRequest) ListMacaroonIDsResponse = _reflection.GeneratedProtocolMessageType('ListMacaroonIDsResponse', (_message.Message,), { 'DESCRIPTOR' : _LISTMACAROONIDSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListMacaroonIDsResponse) }) _sym_db.RegisterMessage(ListMacaroonIDsResponse) DeleteMacaroonIDRequest = _reflection.GeneratedProtocolMessageType('DeleteMacaroonIDRequest', (_message.Message,), { 'DESCRIPTOR' : _DELETEMACAROONIDREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.DeleteMacaroonIDRequest) }) _sym_db.RegisterMessage(DeleteMacaroonIDRequest) DeleteMacaroonIDResponse = _reflection.GeneratedProtocolMessageType('DeleteMacaroonIDResponse', (_message.Message,), { 'DESCRIPTOR' : _DELETEMACAROONIDRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.DeleteMacaroonIDResponse) }) _sym_db.RegisterMessage(DeleteMacaroonIDResponse) MacaroonPermissionList = _reflection.GeneratedProtocolMessageType('MacaroonPermissionList', (_message.Message,), { 'DESCRIPTOR' : _MACAROONPERMISSIONLIST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.MacaroonPermissionList) }) _sym_db.RegisterMessage(MacaroonPermissionList) ListPermissionsRequest = _reflection.GeneratedProtocolMessageType('ListPermissionsRequest', (_message.Message,), { 'DESCRIPTOR' : _LISTPERMISSIONSREQUEST, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListPermissionsRequest) }) _sym_db.RegisterMessage(ListPermissionsRequest) @@ -12002,12 +13509,12 @@ ListPermissionsResponse = _reflection.GeneratedProtocolMessageType('ListPermissi 'MethodPermissionsEntry' : _reflection.GeneratedProtocolMessageType('MethodPermissionsEntry', (_message.Message,), { 'DESCRIPTOR' : _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListPermissionsResponse.MethodPermissionsEntry) }) , 'DESCRIPTOR' : _LISTPERMISSIONSRESPONSE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ListPermissionsResponse) }) _sym_db.RegisterMessage(ListPermissionsResponse) @@ -12015,32 +13522,88 @@ _sym_db.RegisterMessage(ListPermissionsResponse.MethodPermissionsEntry) Failure = _reflection.GeneratedProtocolMessageType('Failure', (_message.Message,), { 'DESCRIPTOR' : _FAILURE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Failure) }) _sym_db.RegisterMessage(Failure) ChannelUpdate = _reflection.GeneratedProtocolMessageType('ChannelUpdate', (_message.Message,), { 'DESCRIPTOR' : _CHANNELUPDATE, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.ChannelUpdate) }) _sym_db.RegisterMessage(ChannelUpdate) MacaroonId = _reflection.GeneratedProtocolMessageType('MacaroonId', (_message.Message,), { 'DESCRIPTOR' : _MACAROONID, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.MacaroonId) }) _sym_db.RegisterMessage(MacaroonId) Op = _reflection.GeneratedProtocolMessageType('Op', (_message.Message,), { 'DESCRIPTOR' : _OP, - '__module__' : 'rpc_pb2' + '__module__' : 'lightning_pb2' # @@protoc_insertion_point(class_scope:lnrpc.Op) }) _sym_db.RegisterMessage(Op) +CheckMacPermRequest = _reflection.GeneratedProtocolMessageType('CheckMacPermRequest', (_message.Message,), { + 'DESCRIPTOR' : _CHECKMACPERMREQUEST, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.CheckMacPermRequest) + }) +_sym_db.RegisterMessage(CheckMacPermRequest) + +CheckMacPermResponse = _reflection.GeneratedProtocolMessageType('CheckMacPermResponse', (_message.Message,), { + 'DESCRIPTOR' : _CHECKMACPERMRESPONSE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.CheckMacPermResponse) + }) +_sym_db.RegisterMessage(CheckMacPermResponse) + +RPCMiddlewareRequest = _reflection.GeneratedProtocolMessageType('RPCMiddlewareRequest', (_message.Message,), { + 'DESCRIPTOR' : _RPCMIDDLEWAREREQUEST, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.RPCMiddlewareRequest) + }) +_sym_db.RegisterMessage(RPCMiddlewareRequest) + +StreamAuth = _reflection.GeneratedProtocolMessageType('StreamAuth', (_message.Message,), { + 'DESCRIPTOR' : _STREAMAUTH, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.StreamAuth) + }) +_sym_db.RegisterMessage(StreamAuth) + +RPCMessage = _reflection.GeneratedProtocolMessageType('RPCMessage', (_message.Message,), { + 'DESCRIPTOR' : _RPCMESSAGE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.RPCMessage) + }) +_sym_db.RegisterMessage(RPCMessage) + +RPCMiddlewareResponse = _reflection.GeneratedProtocolMessageType('RPCMiddlewareResponse', (_message.Message,), { + 'DESCRIPTOR' : _RPCMIDDLEWARERESPONSE, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.RPCMiddlewareResponse) + }) +_sym_db.RegisterMessage(RPCMiddlewareResponse) + +MiddlewareRegistration = _reflection.GeneratedProtocolMessageType('MiddlewareRegistration', (_message.Message,), { + 'DESCRIPTOR' : _MIDDLEWAREREGISTRATION, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.MiddlewareRegistration) + }) +_sym_db.RegisterMessage(MiddlewareRegistration) + +InterceptFeedback = _reflection.GeneratedProtocolMessageType('InterceptFeedback', (_message.Message,), { + 'DESCRIPTOR' : _INTERCEPTFEEDBACK, + '__module__' : 'lightning_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.InterceptFeedback) + }) +_sym_db.RegisterMessage(InterceptFeedback) + DESCRIPTOR._options = None _SENDREQUEST_DESTCUSTOMRECORDSENTRY._options = None @@ -12049,7 +13612,10 @@ _SENDREQUEST.fields_by_name['payment_hash_string']._options = None _SENDREQUEST.fields_by_name['outgoing_chan_id']._options = None _SENDTOROUTEREQUEST.fields_by_name['payment_hash_string']._options = None _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._options = None +_ESTIMATEFEERESPONSE.fields_by_name['feerate_sat_per_byte']._options = None _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._options = None +_SENDMANYREQUEST.fields_by_name['sat_per_byte']._options = None +_SENDCOINSREQUEST.fields_by_name['sat_per_byte']._options = None _CHANNEL.fields_by_name['chan_id']._options = None _CHANNEL.fields_by_name['csv_delay']._options = None _CHANNEL.fields_by_name['local_chan_reserve_sat']._options = None @@ -12059,8 +13625,11 @@ _CHANNELCLOSESUMMARY.fields_by_name['chan_id']._options = None _PEER_FEATURESENTRY._options = None _GETINFORESPONSE_FEATURESENTRY._options = None _GETINFORESPONSE.fields_by_name['testnet']._options = None +_CLOSECHANNELREQUEST.fields_by_name['sat_per_byte']._options = None _OPENCHANNELREQUEST.fields_by_name['node_pubkey_string']._options = None +_OPENCHANNELREQUEST.fields_by_name['sat_per_byte']._options = None _PENDINGCHANNELSRESPONSE.fields_by_name['pending_closing_channels']._options = None +_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._options = None _CHANNELBALANCERESPONSE.fields_by_name['balance']._options = None _CHANNELBALANCERESPONSE.fields_by_name['pending_open_balance']._options = None _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._options = None @@ -12069,6 +13638,7 @@ _QUERYROUTESREQUEST.fields_by_name['outgoing_chan_id']._options = None _EDGELOCATOR.fields_by_name['channel_id']._options = None _HOP_CUSTOMRECORDSENTRY._options = None _HOP.fields_by_name['chan_id']._options = None +_HOP.fields_by_name['chan_capacity']._options = None _HOP.fields_by_name['amt_to_forward']._options = None _HOP.fields_by_name['fee']._options = None _ROUTE.fields_by_name['total_fees']._options = None @@ -12079,11 +13649,13 @@ _CHANNELEDGE.fields_by_name['last_update']._options = None _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._options = None _CHANINFOREQUEST.fields_by_name['chan_id']._options = None _NODEUPDATE_FEATURESENTRY._options = None +_NODEUPDATE.fields_by_name['addresses']._options = None _NODEUPDATE.fields_by_name['global_features']._options = None _CHANNELEDGEUPDATE.fields_by_name['chan_id']._options = None _CLOSEDCHANNELUPDATE.fields_by_name['chan_id']._options = None _HOPHINT.fields_by_name['chan_id']._options = None _INVOICE_FEATURESENTRY._options = None +_INVOICE_AMPINVOICESTATEENTRY._options = None _INVOICE.fields_by_name['settled']._options = None _INVOICE.fields_by_name['amt_paid']._options = None _INVOICEHTLC_CUSTOMRECORDSENTRY._options = None @@ -12107,8 +13679,8 @@ _LIGHTNING = _descriptor.ServiceDescriptor( index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=24917, - serialized_end=29214, + serialized_start=28353, + serialized_end=33162, methods=[ _descriptor.MethodDescriptor( name='WalletBalance', @@ -12340,10 +13912,20 @@ _LIGHTNING = _descriptor.ServiceDescriptor( serialized_options=None, create_key=_descriptor._internal_create_key, ), + _descriptor.MethodDescriptor( + name='BatchOpenChannel', + full_name='lnrpc.Lightning.BatchOpenChannel', + index=23, + containing_service=None, + input_type=_BATCHOPENCHANNELREQUEST, + output_type=_BATCHOPENCHANNELRESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), _descriptor.MethodDescriptor( name='FundingStateStep', full_name='lnrpc.Lightning.FundingStateStep', - index=23, + index=24, containing_service=None, input_type=_FUNDINGTRANSITIONMSG, output_type=_FUNDINGSTATESTEPRESP, @@ -12353,7 +13935,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='ChannelAcceptor', full_name='lnrpc.Lightning.ChannelAcceptor', - index=24, + index=25, containing_service=None, input_type=_CHANNELACCEPTRESPONSE, output_type=_CHANNELACCEPTREQUEST, @@ -12363,7 +13945,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='CloseChannel', full_name='lnrpc.Lightning.CloseChannel', - index=25, + index=26, containing_service=None, input_type=_CLOSECHANNELREQUEST, output_type=_CLOSESTATUSUPDATE, @@ -12373,7 +13955,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='AbandonChannel', full_name='lnrpc.Lightning.AbandonChannel', - index=26, + index=27, containing_service=None, input_type=_ABANDONCHANNELREQUEST, output_type=_ABANDONCHANNELRESPONSE, @@ -12383,7 +13965,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='SendPayment', full_name='lnrpc.Lightning.SendPayment', - index=27, + index=28, containing_service=None, input_type=_SENDREQUEST, output_type=_SENDRESPONSE, @@ -12393,7 +13975,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='SendPaymentSync', full_name='lnrpc.Lightning.SendPaymentSync', - index=28, + index=29, containing_service=None, input_type=_SENDREQUEST, output_type=_SENDRESPONSE, @@ -12403,7 +13985,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='SendToRoute', full_name='lnrpc.Lightning.SendToRoute', - index=29, + index=30, containing_service=None, input_type=_SENDTOROUTEREQUEST, output_type=_SENDRESPONSE, @@ -12413,7 +13995,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='SendToRouteSync', full_name='lnrpc.Lightning.SendToRouteSync', - index=30, + index=31, containing_service=None, input_type=_SENDTOROUTEREQUEST, output_type=_SENDRESPONSE, @@ -12423,7 +14005,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='AddInvoice', full_name='lnrpc.Lightning.AddInvoice', - index=31, + index=32, containing_service=None, input_type=_INVOICE, output_type=_ADDINVOICERESPONSE, @@ -12433,7 +14015,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='ListInvoices', full_name='lnrpc.Lightning.ListInvoices', - index=32, + index=33, containing_service=None, input_type=_LISTINVOICEREQUEST, output_type=_LISTINVOICERESPONSE, @@ -12443,7 +14025,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='LookupInvoice', full_name='lnrpc.Lightning.LookupInvoice', - index=33, + index=34, containing_service=None, input_type=_PAYMENTHASH, output_type=_INVOICE, @@ -12453,7 +14035,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='SubscribeInvoices', full_name='lnrpc.Lightning.SubscribeInvoices', - index=34, + index=35, containing_service=None, input_type=_INVOICESUBSCRIPTION, output_type=_INVOICE, @@ -12463,7 +14045,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='DecodePayReq', full_name='lnrpc.Lightning.DecodePayReq', - index=35, + index=36, containing_service=None, input_type=_PAYREQSTRING, output_type=_PAYREQ, @@ -12473,17 +14055,27 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='ListPayments', full_name='lnrpc.Lightning.ListPayments', - index=36, + index=37, containing_service=None, input_type=_LISTPAYMENTSREQUEST, output_type=_LISTPAYMENTSRESPONSE, serialized_options=None, create_key=_descriptor._internal_create_key, ), + _descriptor.MethodDescriptor( + name='DeletePayment', + full_name='lnrpc.Lightning.DeletePayment', + index=38, + containing_service=None, + input_type=_DELETEPAYMENTREQUEST, + output_type=_DELETEPAYMENTRESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), _descriptor.MethodDescriptor( name='DeleteAllPayments', full_name='lnrpc.Lightning.DeleteAllPayments', - index=37, + index=39, containing_service=None, input_type=_DELETEALLPAYMENTSREQUEST, output_type=_DELETEALLPAYMENTSRESPONSE, @@ -12493,7 +14085,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='DescribeGraph', full_name='lnrpc.Lightning.DescribeGraph', - index=38, + index=40, containing_service=None, input_type=_CHANNELGRAPHREQUEST, output_type=_CHANNELGRAPH, @@ -12503,7 +14095,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='GetNodeMetrics', full_name='lnrpc.Lightning.GetNodeMetrics', - index=39, + index=41, containing_service=None, input_type=_NODEMETRICSREQUEST, output_type=_NODEMETRICSRESPONSE, @@ -12513,7 +14105,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='GetChanInfo', full_name='lnrpc.Lightning.GetChanInfo', - index=40, + index=42, containing_service=None, input_type=_CHANINFOREQUEST, output_type=_CHANNELEDGE, @@ -12523,7 +14115,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='GetNodeInfo', full_name='lnrpc.Lightning.GetNodeInfo', - index=41, + index=43, containing_service=None, input_type=_NODEINFOREQUEST, output_type=_NODEINFO, @@ -12533,7 +14125,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='QueryRoutes', full_name='lnrpc.Lightning.QueryRoutes', - index=42, + index=44, containing_service=None, input_type=_QUERYROUTESREQUEST, output_type=_QUERYROUTESRESPONSE, @@ -12543,7 +14135,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='GetNetworkInfo', full_name='lnrpc.Lightning.GetNetworkInfo', - index=43, + index=45, containing_service=None, input_type=_NETWORKINFOREQUEST, output_type=_NETWORKINFO, @@ -12553,7 +14145,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='StopDaemon', full_name='lnrpc.Lightning.StopDaemon', - index=44, + index=46, containing_service=None, input_type=_STOPREQUEST, output_type=_STOPRESPONSE, @@ -12563,7 +14155,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='SubscribeChannelGraph', full_name='lnrpc.Lightning.SubscribeChannelGraph', - index=45, + index=47, containing_service=None, input_type=_GRAPHTOPOLOGYSUBSCRIPTION, output_type=_GRAPHTOPOLOGYUPDATE, @@ -12573,7 +14165,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='DebugLevel', full_name='lnrpc.Lightning.DebugLevel', - index=46, + index=48, containing_service=None, input_type=_DEBUGLEVELREQUEST, output_type=_DEBUGLEVELRESPONSE, @@ -12583,7 +14175,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='FeeReport', full_name='lnrpc.Lightning.FeeReport', - index=47, + index=49, containing_service=None, input_type=_FEEREPORTREQUEST, output_type=_FEEREPORTRESPONSE, @@ -12593,7 +14185,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='UpdateChannelPolicy', full_name='lnrpc.Lightning.UpdateChannelPolicy', - index=48, + index=50, containing_service=None, input_type=_POLICYUPDATEREQUEST, output_type=_POLICYUPDATERESPONSE, @@ -12603,7 +14195,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='ForwardingHistory', full_name='lnrpc.Lightning.ForwardingHistory', - index=49, + index=51, containing_service=None, input_type=_FORWARDINGHISTORYREQUEST, output_type=_FORWARDINGHISTORYRESPONSE, @@ -12613,7 +14205,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='ExportChannelBackup', full_name='lnrpc.Lightning.ExportChannelBackup', - index=50, + index=52, containing_service=None, input_type=_EXPORTCHANNELBACKUPREQUEST, output_type=_CHANNELBACKUP, @@ -12623,7 +14215,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='ExportAllChannelBackups', full_name='lnrpc.Lightning.ExportAllChannelBackups', - index=51, + index=53, containing_service=None, input_type=_CHANBACKUPEXPORTREQUEST, output_type=_CHANBACKUPSNAPSHOT, @@ -12633,7 +14225,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='VerifyChanBackup', full_name='lnrpc.Lightning.VerifyChanBackup', - index=52, + index=54, containing_service=None, input_type=_CHANBACKUPSNAPSHOT, output_type=_VERIFYCHANBACKUPRESPONSE, @@ -12643,7 +14235,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='RestoreChannelBackups', full_name='lnrpc.Lightning.RestoreChannelBackups', - index=53, + index=55, containing_service=None, input_type=_RESTORECHANBACKUPREQUEST, output_type=_RESTOREBACKUPRESPONSE, @@ -12653,7 +14245,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='SubscribeChannelBackups', full_name='lnrpc.Lightning.SubscribeChannelBackups', - index=54, + index=56, containing_service=None, input_type=_CHANNELBACKUPSUBSCRIPTION, output_type=_CHANBACKUPSNAPSHOT, @@ -12663,7 +14255,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='BakeMacaroon', full_name='lnrpc.Lightning.BakeMacaroon', - index=55, + index=57, containing_service=None, input_type=_BAKEMACAROONREQUEST, output_type=_BAKEMACAROONRESPONSE, @@ -12673,7 +14265,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='ListMacaroonIDs', full_name='lnrpc.Lightning.ListMacaroonIDs', - index=56, + index=58, containing_service=None, input_type=_LISTMACAROONIDSREQUEST, output_type=_LISTMACAROONIDSRESPONSE, @@ -12683,7 +14275,7 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='DeleteMacaroonID', full_name='lnrpc.Lightning.DeleteMacaroonID', - index=57, + index=59, containing_service=None, input_type=_DELETEMACAROONIDREQUEST, output_type=_DELETEMACAROONIDRESPONSE, @@ -12693,13 +14285,53 @@ _LIGHTNING = _descriptor.ServiceDescriptor( _descriptor.MethodDescriptor( name='ListPermissions', full_name='lnrpc.Lightning.ListPermissions', - index=58, + index=60, containing_service=None, input_type=_LISTPERMISSIONSREQUEST, output_type=_LISTPERMISSIONSRESPONSE, serialized_options=None, create_key=_descriptor._internal_create_key, ), + _descriptor.MethodDescriptor( + name='CheckMacaroonPermissions', + full_name='lnrpc.Lightning.CheckMacaroonPermissions', + index=61, + containing_service=None, + input_type=_CHECKMACPERMREQUEST, + output_type=_CHECKMACPERMRESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='RegisterRPCMiddleware', + full_name='lnrpc.Lightning.RegisterRPCMiddleware', + index=62, + containing_service=None, + input_type=_RPCMIDDLEWARERESPONSE, + output_type=_RPCMIDDLEWAREREQUEST, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='SendCustomMessage', + full_name='lnrpc.Lightning.SendCustomMessage', + index=63, + containing_service=None, + input_type=_SENDCUSTOMMESSAGEREQUEST, + output_type=_SENDCUSTOMMESSAGERESPONSE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.MethodDescriptor( + name='SubscribeCustomMessages', + full_name='lnrpc.Lightning.SubscribeCustomMessages', + index=64, + containing_service=None, + input_type=_SUBSCRIBECUSTOMMESSAGESREQUEST, + output_type=_CUSTOMMESSAGE, + serialized_options=None, + create_key=_descriptor._internal_create_key, + ), ]) _sym_db.RegisterServiceDescriptor(_LIGHTNING) diff --git a/home.admin/config.scripts/lndlibs/rpc_pb2_grpc.py b/home.admin/config.scripts/lndlibs/lightning_pb2_grpc.py similarity index 68% rename from home.admin/config.scripts/lndlibs/rpc_pb2_grpc.py rename to home.admin/config.scripts/lndlibs/lightning_pb2_grpc.py index 9b480524..a89d2577 100644 --- a/home.admin/config.scripts/lndlibs/rpc_pb2_grpc.py +++ b/home.admin/config.scripts/lndlibs/lightning_pb2_grpc.py @@ -3,7 +3,8 @@ from __future__ import absolute_import import grpc -from . import rpc_pb2 as rpc__pb2 +from . import lightning_pb2 as lightning__pb2 + class LightningStub(object): """ @@ -34,298 +35,328 @@ class LightningStub(object): """ self.WalletBalance = channel.unary_unary( '/lnrpc.Lightning/WalletBalance', - request_serializer=rpc__pb2.WalletBalanceRequest.SerializeToString, - response_deserializer=rpc__pb2.WalletBalanceResponse.FromString, + request_serializer=lightning__pb2.WalletBalanceRequest.SerializeToString, + response_deserializer=lightning__pb2.WalletBalanceResponse.FromString, ) self.ChannelBalance = channel.unary_unary( '/lnrpc.Lightning/ChannelBalance', - request_serializer=rpc__pb2.ChannelBalanceRequest.SerializeToString, - response_deserializer=rpc__pb2.ChannelBalanceResponse.FromString, + request_serializer=lightning__pb2.ChannelBalanceRequest.SerializeToString, + response_deserializer=lightning__pb2.ChannelBalanceResponse.FromString, ) self.GetTransactions = channel.unary_unary( '/lnrpc.Lightning/GetTransactions', - request_serializer=rpc__pb2.GetTransactionsRequest.SerializeToString, - response_deserializer=rpc__pb2.TransactionDetails.FromString, + request_serializer=lightning__pb2.GetTransactionsRequest.SerializeToString, + response_deserializer=lightning__pb2.TransactionDetails.FromString, ) self.EstimateFee = channel.unary_unary( '/lnrpc.Lightning/EstimateFee', - request_serializer=rpc__pb2.EstimateFeeRequest.SerializeToString, - response_deserializer=rpc__pb2.EstimateFeeResponse.FromString, + request_serializer=lightning__pb2.EstimateFeeRequest.SerializeToString, + response_deserializer=lightning__pb2.EstimateFeeResponse.FromString, ) self.SendCoins = channel.unary_unary( '/lnrpc.Lightning/SendCoins', - request_serializer=rpc__pb2.SendCoinsRequest.SerializeToString, - response_deserializer=rpc__pb2.SendCoinsResponse.FromString, + request_serializer=lightning__pb2.SendCoinsRequest.SerializeToString, + response_deserializer=lightning__pb2.SendCoinsResponse.FromString, ) self.ListUnspent = channel.unary_unary( '/lnrpc.Lightning/ListUnspent', - request_serializer=rpc__pb2.ListUnspentRequest.SerializeToString, - response_deserializer=rpc__pb2.ListUnspentResponse.FromString, + request_serializer=lightning__pb2.ListUnspentRequest.SerializeToString, + response_deserializer=lightning__pb2.ListUnspentResponse.FromString, ) self.SubscribeTransactions = channel.unary_stream( '/lnrpc.Lightning/SubscribeTransactions', - request_serializer=rpc__pb2.GetTransactionsRequest.SerializeToString, - response_deserializer=rpc__pb2.Transaction.FromString, + request_serializer=lightning__pb2.GetTransactionsRequest.SerializeToString, + response_deserializer=lightning__pb2.Transaction.FromString, ) self.SendMany = channel.unary_unary( '/lnrpc.Lightning/SendMany', - request_serializer=rpc__pb2.SendManyRequest.SerializeToString, - response_deserializer=rpc__pb2.SendManyResponse.FromString, + request_serializer=lightning__pb2.SendManyRequest.SerializeToString, + response_deserializer=lightning__pb2.SendManyResponse.FromString, ) self.NewAddress = channel.unary_unary( '/lnrpc.Lightning/NewAddress', - request_serializer=rpc__pb2.NewAddressRequest.SerializeToString, - response_deserializer=rpc__pb2.NewAddressResponse.FromString, + request_serializer=lightning__pb2.NewAddressRequest.SerializeToString, + response_deserializer=lightning__pb2.NewAddressResponse.FromString, ) self.SignMessage = channel.unary_unary( '/lnrpc.Lightning/SignMessage', - request_serializer=rpc__pb2.SignMessageRequest.SerializeToString, - response_deserializer=rpc__pb2.SignMessageResponse.FromString, + request_serializer=lightning__pb2.SignMessageRequest.SerializeToString, + response_deserializer=lightning__pb2.SignMessageResponse.FromString, ) self.VerifyMessage = channel.unary_unary( '/lnrpc.Lightning/VerifyMessage', - request_serializer=rpc__pb2.VerifyMessageRequest.SerializeToString, - response_deserializer=rpc__pb2.VerifyMessageResponse.FromString, + request_serializer=lightning__pb2.VerifyMessageRequest.SerializeToString, + response_deserializer=lightning__pb2.VerifyMessageResponse.FromString, ) self.ConnectPeer = channel.unary_unary( '/lnrpc.Lightning/ConnectPeer', - request_serializer=rpc__pb2.ConnectPeerRequest.SerializeToString, - response_deserializer=rpc__pb2.ConnectPeerResponse.FromString, + request_serializer=lightning__pb2.ConnectPeerRequest.SerializeToString, + response_deserializer=lightning__pb2.ConnectPeerResponse.FromString, ) self.DisconnectPeer = channel.unary_unary( '/lnrpc.Lightning/DisconnectPeer', - request_serializer=rpc__pb2.DisconnectPeerRequest.SerializeToString, - response_deserializer=rpc__pb2.DisconnectPeerResponse.FromString, + request_serializer=lightning__pb2.DisconnectPeerRequest.SerializeToString, + response_deserializer=lightning__pb2.DisconnectPeerResponse.FromString, ) self.ListPeers = channel.unary_unary( '/lnrpc.Lightning/ListPeers', - request_serializer=rpc__pb2.ListPeersRequest.SerializeToString, - response_deserializer=rpc__pb2.ListPeersResponse.FromString, + request_serializer=lightning__pb2.ListPeersRequest.SerializeToString, + response_deserializer=lightning__pb2.ListPeersResponse.FromString, ) self.SubscribePeerEvents = channel.unary_stream( '/lnrpc.Lightning/SubscribePeerEvents', - request_serializer=rpc__pb2.PeerEventSubscription.SerializeToString, - response_deserializer=rpc__pb2.PeerEvent.FromString, + request_serializer=lightning__pb2.PeerEventSubscription.SerializeToString, + response_deserializer=lightning__pb2.PeerEvent.FromString, ) self.GetInfo = channel.unary_unary( '/lnrpc.Lightning/GetInfo', - request_serializer=rpc__pb2.GetInfoRequest.SerializeToString, - response_deserializer=rpc__pb2.GetInfoResponse.FromString, + request_serializer=lightning__pb2.GetInfoRequest.SerializeToString, + response_deserializer=lightning__pb2.GetInfoResponse.FromString, ) self.GetRecoveryInfo = channel.unary_unary( '/lnrpc.Lightning/GetRecoveryInfo', - request_serializer=rpc__pb2.GetRecoveryInfoRequest.SerializeToString, - response_deserializer=rpc__pb2.GetRecoveryInfoResponse.FromString, + request_serializer=lightning__pb2.GetRecoveryInfoRequest.SerializeToString, + response_deserializer=lightning__pb2.GetRecoveryInfoResponse.FromString, ) self.PendingChannels = channel.unary_unary( '/lnrpc.Lightning/PendingChannels', - request_serializer=rpc__pb2.PendingChannelsRequest.SerializeToString, - response_deserializer=rpc__pb2.PendingChannelsResponse.FromString, + request_serializer=lightning__pb2.PendingChannelsRequest.SerializeToString, + response_deserializer=lightning__pb2.PendingChannelsResponse.FromString, ) self.ListChannels = channel.unary_unary( '/lnrpc.Lightning/ListChannels', - request_serializer=rpc__pb2.ListChannelsRequest.SerializeToString, - response_deserializer=rpc__pb2.ListChannelsResponse.FromString, + request_serializer=lightning__pb2.ListChannelsRequest.SerializeToString, + response_deserializer=lightning__pb2.ListChannelsResponse.FromString, ) self.SubscribeChannelEvents = channel.unary_stream( '/lnrpc.Lightning/SubscribeChannelEvents', - request_serializer=rpc__pb2.ChannelEventSubscription.SerializeToString, - response_deserializer=rpc__pb2.ChannelEventUpdate.FromString, + request_serializer=lightning__pb2.ChannelEventSubscription.SerializeToString, + response_deserializer=lightning__pb2.ChannelEventUpdate.FromString, ) self.ClosedChannels = channel.unary_unary( '/lnrpc.Lightning/ClosedChannels', - request_serializer=rpc__pb2.ClosedChannelsRequest.SerializeToString, - response_deserializer=rpc__pb2.ClosedChannelsResponse.FromString, + request_serializer=lightning__pb2.ClosedChannelsRequest.SerializeToString, + response_deserializer=lightning__pb2.ClosedChannelsResponse.FromString, ) self.OpenChannelSync = channel.unary_unary( '/lnrpc.Lightning/OpenChannelSync', - request_serializer=rpc__pb2.OpenChannelRequest.SerializeToString, - response_deserializer=rpc__pb2.ChannelPoint.FromString, + request_serializer=lightning__pb2.OpenChannelRequest.SerializeToString, + response_deserializer=lightning__pb2.ChannelPoint.FromString, ) self.OpenChannel = channel.unary_stream( '/lnrpc.Lightning/OpenChannel', - request_serializer=rpc__pb2.OpenChannelRequest.SerializeToString, - response_deserializer=rpc__pb2.OpenStatusUpdate.FromString, + request_serializer=lightning__pb2.OpenChannelRequest.SerializeToString, + response_deserializer=lightning__pb2.OpenStatusUpdate.FromString, + ) + self.BatchOpenChannel = channel.unary_unary( + '/lnrpc.Lightning/BatchOpenChannel', + request_serializer=lightning__pb2.BatchOpenChannelRequest.SerializeToString, + response_deserializer=lightning__pb2.BatchOpenChannelResponse.FromString, ) self.FundingStateStep = channel.unary_unary( '/lnrpc.Lightning/FundingStateStep', - request_serializer=rpc__pb2.FundingTransitionMsg.SerializeToString, - response_deserializer=rpc__pb2.FundingStateStepResp.FromString, + request_serializer=lightning__pb2.FundingTransitionMsg.SerializeToString, + response_deserializer=lightning__pb2.FundingStateStepResp.FromString, ) self.ChannelAcceptor = channel.stream_stream( '/lnrpc.Lightning/ChannelAcceptor', - request_serializer=rpc__pb2.ChannelAcceptResponse.SerializeToString, - response_deserializer=rpc__pb2.ChannelAcceptRequest.FromString, + request_serializer=lightning__pb2.ChannelAcceptResponse.SerializeToString, + response_deserializer=lightning__pb2.ChannelAcceptRequest.FromString, ) self.CloseChannel = channel.unary_stream( '/lnrpc.Lightning/CloseChannel', - request_serializer=rpc__pb2.CloseChannelRequest.SerializeToString, - response_deserializer=rpc__pb2.CloseStatusUpdate.FromString, + request_serializer=lightning__pb2.CloseChannelRequest.SerializeToString, + response_deserializer=lightning__pb2.CloseStatusUpdate.FromString, ) self.AbandonChannel = channel.unary_unary( '/lnrpc.Lightning/AbandonChannel', - request_serializer=rpc__pb2.AbandonChannelRequest.SerializeToString, - response_deserializer=rpc__pb2.AbandonChannelResponse.FromString, + request_serializer=lightning__pb2.AbandonChannelRequest.SerializeToString, + response_deserializer=lightning__pb2.AbandonChannelResponse.FromString, ) self.SendPayment = channel.stream_stream( '/lnrpc.Lightning/SendPayment', - request_serializer=rpc__pb2.SendRequest.SerializeToString, - response_deserializer=rpc__pb2.SendResponse.FromString, + request_serializer=lightning__pb2.SendRequest.SerializeToString, + response_deserializer=lightning__pb2.SendResponse.FromString, ) self.SendPaymentSync = channel.unary_unary( '/lnrpc.Lightning/SendPaymentSync', - request_serializer=rpc__pb2.SendRequest.SerializeToString, - response_deserializer=rpc__pb2.SendResponse.FromString, + request_serializer=lightning__pb2.SendRequest.SerializeToString, + response_deserializer=lightning__pb2.SendResponse.FromString, ) self.SendToRoute = channel.stream_stream( '/lnrpc.Lightning/SendToRoute', - request_serializer=rpc__pb2.SendToRouteRequest.SerializeToString, - response_deserializer=rpc__pb2.SendResponse.FromString, + request_serializer=lightning__pb2.SendToRouteRequest.SerializeToString, + response_deserializer=lightning__pb2.SendResponse.FromString, ) self.SendToRouteSync = channel.unary_unary( '/lnrpc.Lightning/SendToRouteSync', - request_serializer=rpc__pb2.SendToRouteRequest.SerializeToString, - response_deserializer=rpc__pb2.SendResponse.FromString, + request_serializer=lightning__pb2.SendToRouteRequest.SerializeToString, + response_deserializer=lightning__pb2.SendResponse.FromString, ) self.AddInvoice = channel.unary_unary( '/lnrpc.Lightning/AddInvoice', - request_serializer=rpc__pb2.Invoice.SerializeToString, - response_deserializer=rpc__pb2.AddInvoiceResponse.FromString, + request_serializer=lightning__pb2.Invoice.SerializeToString, + response_deserializer=lightning__pb2.AddInvoiceResponse.FromString, ) self.ListInvoices = channel.unary_unary( '/lnrpc.Lightning/ListInvoices', - request_serializer=rpc__pb2.ListInvoiceRequest.SerializeToString, - response_deserializer=rpc__pb2.ListInvoiceResponse.FromString, + request_serializer=lightning__pb2.ListInvoiceRequest.SerializeToString, + response_deserializer=lightning__pb2.ListInvoiceResponse.FromString, ) self.LookupInvoice = channel.unary_unary( '/lnrpc.Lightning/LookupInvoice', - request_serializer=rpc__pb2.PaymentHash.SerializeToString, - response_deserializer=rpc__pb2.Invoice.FromString, + request_serializer=lightning__pb2.PaymentHash.SerializeToString, + response_deserializer=lightning__pb2.Invoice.FromString, ) self.SubscribeInvoices = channel.unary_stream( '/lnrpc.Lightning/SubscribeInvoices', - request_serializer=rpc__pb2.InvoiceSubscription.SerializeToString, - response_deserializer=rpc__pb2.Invoice.FromString, + request_serializer=lightning__pb2.InvoiceSubscription.SerializeToString, + response_deserializer=lightning__pb2.Invoice.FromString, ) self.DecodePayReq = channel.unary_unary( '/lnrpc.Lightning/DecodePayReq', - request_serializer=rpc__pb2.PayReqString.SerializeToString, - response_deserializer=rpc__pb2.PayReq.FromString, + request_serializer=lightning__pb2.PayReqString.SerializeToString, + response_deserializer=lightning__pb2.PayReq.FromString, ) self.ListPayments = channel.unary_unary( '/lnrpc.Lightning/ListPayments', - request_serializer=rpc__pb2.ListPaymentsRequest.SerializeToString, - response_deserializer=rpc__pb2.ListPaymentsResponse.FromString, + request_serializer=lightning__pb2.ListPaymentsRequest.SerializeToString, + response_deserializer=lightning__pb2.ListPaymentsResponse.FromString, + ) + self.DeletePayment = channel.unary_unary( + '/lnrpc.Lightning/DeletePayment', + request_serializer=lightning__pb2.DeletePaymentRequest.SerializeToString, + response_deserializer=lightning__pb2.DeletePaymentResponse.FromString, ) self.DeleteAllPayments = channel.unary_unary( '/lnrpc.Lightning/DeleteAllPayments', - request_serializer=rpc__pb2.DeleteAllPaymentsRequest.SerializeToString, - response_deserializer=rpc__pb2.DeleteAllPaymentsResponse.FromString, + request_serializer=lightning__pb2.DeleteAllPaymentsRequest.SerializeToString, + response_deserializer=lightning__pb2.DeleteAllPaymentsResponse.FromString, ) self.DescribeGraph = channel.unary_unary( '/lnrpc.Lightning/DescribeGraph', - request_serializer=rpc__pb2.ChannelGraphRequest.SerializeToString, - response_deserializer=rpc__pb2.ChannelGraph.FromString, + request_serializer=lightning__pb2.ChannelGraphRequest.SerializeToString, + response_deserializer=lightning__pb2.ChannelGraph.FromString, ) self.GetNodeMetrics = channel.unary_unary( '/lnrpc.Lightning/GetNodeMetrics', - request_serializer=rpc__pb2.NodeMetricsRequest.SerializeToString, - response_deserializer=rpc__pb2.NodeMetricsResponse.FromString, + request_serializer=lightning__pb2.NodeMetricsRequest.SerializeToString, + response_deserializer=lightning__pb2.NodeMetricsResponse.FromString, ) self.GetChanInfo = channel.unary_unary( '/lnrpc.Lightning/GetChanInfo', - request_serializer=rpc__pb2.ChanInfoRequest.SerializeToString, - response_deserializer=rpc__pb2.ChannelEdge.FromString, + request_serializer=lightning__pb2.ChanInfoRequest.SerializeToString, + response_deserializer=lightning__pb2.ChannelEdge.FromString, ) self.GetNodeInfo = channel.unary_unary( '/lnrpc.Lightning/GetNodeInfo', - request_serializer=rpc__pb2.NodeInfoRequest.SerializeToString, - response_deserializer=rpc__pb2.NodeInfo.FromString, + request_serializer=lightning__pb2.NodeInfoRequest.SerializeToString, + response_deserializer=lightning__pb2.NodeInfo.FromString, ) self.QueryRoutes = channel.unary_unary( '/lnrpc.Lightning/QueryRoutes', - request_serializer=rpc__pb2.QueryRoutesRequest.SerializeToString, - response_deserializer=rpc__pb2.QueryRoutesResponse.FromString, + request_serializer=lightning__pb2.QueryRoutesRequest.SerializeToString, + response_deserializer=lightning__pb2.QueryRoutesResponse.FromString, ) self.GetNetworkInfo = channel.unary_unary( '/lnrpc.Lightning/GetNetworkInfo', - request_serializer=rpc__pb2.NetworkInfoRequest.SerializeToString, - response_deserializer=rpc__pb2.NetworkInfo.FromString, + request_serializer=lightning__pb2.NetworkInfoRequest.SerializeToString, + response_deserializer=lightning__pb2.NetworkInfo.FromString, ) self.StopDaemon = channel.unary_unary( '/lnrpc.Lightning/StopDaemon', - request_serializer=rpc__pb2.StopRequest.SerializeToString, - response_deserializer=rpc__pb2.StopResponse.FromString, + request_serializer=lightning__pb2.StopRequest.SerializeToString, + response_deserializer=lightning__pb2.StopResponse.FromString, ) self.SubscribeChannelGraph = channel.unary_stream( '/lnrpc.Lightning/SubscribeChannelGraph', - request_serializer=rpc__pb2.GraphTopologySubscription.SerializeToString, - response_deserializer=rpc__pb2.GraphTopologyUpdate.FromString, + request_serializer=lightning__pb2.GraphTopologySubscription.SerializeToString, + response_deserializer=lightning__pb2.GraphTopologyUpdate.FromString, ) self.DebugLevel = channel.unary_unary( '/lnrpc.Lightning/DebugLevel', - request_serializer=rpc__pb2.DebugLevelRequest.SerializeToString, - response_deserializer=rpc__pb2.DebugLevelResponse.FromString, + request_serializer=lightning__pb2.DebugLevelRequest.SerializeToString, + response_deserializer=lightning__pb2.DebugLevelResponse.FromString, ) self.FeeReport = channel.unary_unary( '/lnrpc.Lightning/FeeReport', - request_serializer=rpc__pb2.FeeReportRequest.SerializeToString, - response_deserializer=rpc__pb2.FeeReportResponse.FromString, + request_serializer=lightning__pb2.FeeReportRequest.SerializeToString, + response_deserializer=lightning__pb2.FeeReportResponse.FromString, ) self.UpdateChannelPolicy = channel.unary_unary( '/lnrpc.Lightning/UpdateChannelPolicy', - request_serializer=rpc__pb2.PolicyUpdateRequest.SerializeToString, - response_deserializer=rpc__pb2.PolicyUpdateResponse.FromString, + request_serializer=lightning__pb2.PolicyUpdateRequest.SerializeToString, + response_deserializer=lightning__pb2.PolicyUpdateResponse.FromString, ) self.ForwardingHistory = channel.unary_unary( '/lnrpc.Lightning/ForwardingHistory', - request_serializer=rpc__pb2.ForwardingHistoryRequest.SerializeToString, - response_deserializer=rpc__pb2.ForwardingHistoryResponse.FromString, + request_serializer=lightning__pb2.ForwardingHistoryRequest.SerializeToString, + response_deserializer=lightning__pb2.ForwardingHistoryResponse.FromString, ) self.ExportChannelBackup = channel.unary_unary( '/lnrpc.Lightning/ExportChannelBackup', - request_serializer=rpc__pb2.ExportChannelBackupRequest.SerializeToString, - response_deserializer=rpc__pb2.ChannelBackup.FromString, + request_serializer=lightning__pb2.ExportChannelBackupRequest.SerializeToString, + response_deserializer=lightning__pb2.ChannelBackup.FromString, ) self.ExportAllChannelBackups = channel.unary_unary( '/lnrpc.Lightning/ExportAllChannelBackups', - request_serializer=rpc__pb2.ChanBackupExportRequest.SerializeToString, - response_deserializer=rpc__pb2.ChanBackupSnapshot.FromString, + request_serializer=lightning__pb2.ChanBackupExportRequest.SerializeToString, + response_deserializer=lightning__pb2.ChanBackupSnapshot.FromString, ) self.VerifyChanBackup = channel.unary_unary( '/lnrpc.Lightning/VerifyChanBackup', - request_serializer=rpc__pb2.ChanBackupSnapshot.SerializeToString, - response_deserializer=rpc__pb2.VerifyChanBackupResponse.FromString, + request_serializer=lightning__pb2.ChanBackupSnapshot.SerializeToString, + response_deserializer=lightning__pb2.VerifyChanBackupResponse.FromString, ) self.RestoreChannelBackups = channel.unary_unary( '/lnrpc.Lightning/RestoreChannelBackups', - request_serializer=rpc__pb2.RestoreChanBackupRequest.SerializeToString, - response_deserializer=rpc__pb2.RestoreBackupResponse.FromString, + request_serializer=lightning__pb2.RestoreChanBackupRequest.SerializeToString, + response_deserializer=lightning__pb2.RestoreBackupResponse.FromString, ) self.SubscribeChannelBackups = channel.unary_stream( '/lnrpc.Lightning/SubscribeChannelBackups', - request_serializer=rpc__pb2.ChannelBackupSubscription.SerializeToString, - response_deserializer=rpc__pb2.ChanBackupSnapshot.FromString, + request_serializer=lightning__pb2.ChannelBackupSubscription.SerializeToString, + response_deserializer=lightning__pb2.ChanBackupSnapshot.FromString, ) self.BakeMacaroon = channel.unary_unary( '/lnrpc.Lightning/BakeMacaroon', - request_serializer=rpc__pb2.BakeMacaroonRequest.SerializeToString, - response_deserializer=rpc__pb2.BakeMacaroonResponse.FromString, + request_serializer=lightning__pb2.BakeMacaroonRequest.SerializeToString, + response_deserializer=lightning__pb2.BakeMacaroonResponse.FromString, ) self.ListMacaroonIDs = channel.unary_unary( '/lnrpc.Lightning/ListMacaroonIDs', - request_serializer=rpc__pb2.ListMacaroonIDsRequest.SerializeToString, - response_deserializer=rpc__pb2.ListMacaroonIDsResponse.FromString, + request_serializer=lightning__pb2.ListMacaroonIDsRequest.SerializeToString, + response_deserializer=lightning__pb2.ListMacaroonIDsResponse.FromString, ) self.DeleteMacaroonID = channel.unary_unary( '/lnrpc.Lightning/DeleteMacaroonID', - request_serializer=rpc__pb2.DeleteMacaroonIDRequest.SerializeToString, - response_deserializer=rpc__pb2.DeleteMacaroonIDResponse.FromString, + request_serializer=lightning__pb2.DeleteMacaroonIDRequest.SerializeToString, + response_deserializer=lightning__pb2.DeleteMacaroonIDResponse.FromString, ) self.ListPermissions = channel.unary_unary( '/lnrpc.Lightning/ListPermissions', - request_serializer=rpc__pb2.ListPermissionsRequest.SerializeToString, - response_deserializer=rpc__pb2.ListPermissionsResponse.FromString, + request_serializer=lightning__pb2.ListPermissionsRequest.SerializeToString, + response_deserializer=lightning__pb2.ListPermissionsResponse.FromString, + ) + self.CheckMacaroonPermissions = channel.unary_unary( + '/lnrpc.Lightning/CheckMacaroonPermissions', + request_serializer=lightning__pb2.CheckMacPermRequest.SerializeToString, + response_deserializer=lightning__pb2.CheckMacPermResponse.FromString, + ) + self.RegisterRPCMiddleware = channel.stream_stream( + '/lnrpc.Lightning/RegisterRPCMiddleware', + request_serializer=lightning__pb2.RPCMiddlewareResponse.SerializeToString, + response_deserializer=lightning__pb2.RPCMiddlewareRequest.FromString, + ) + self.SendCustomMessage = channel.unary_unary( + '/lnrpc.Lightning/SendCustomMessage', + request_serializer=lightning__pb2.SendCustomMessageRequest.SerializeToString, + response_deserializer=lightning__pb2.SendCustomMessageResponse.FromString, + ) + self.SubscribeCustomMessages = channel.unary_stream( + '/lnrpc.Lightning/SubscribeCustomMessages', + request_serializer=lightning__pb2.SubscribeCustomMessagesRequest.SerializeToString, + response_deserializer=lightning__pb2.CustomMessage.FromString, ) @@ -397,7 +428,7 @@ class LightningServicer(object): """lncli: `sendcoins` SendCoins executes a request to send coins to a particular address. Unlike SendMany, this RPC call only allows creating a single output at a time. If - neither target_conf, or sat_per_byte are set, then the internal wallet will + neither target_conf, or sat_per_vbyte are set, then the internal wallet will consult its fee model to determine a fee for the default confirmation target. """ @@ -429,7 +460,7 @@ class LightningServicer(object): def SendMany(self, request, context): """lncli: `sendmany` SendMany handles a request for a transaction that creates multiple specified - outputs in parallel. If neither target_conf, or sat_per_byte are set, then + outputs in parallel. If neither target_conf, or sat_per_vbyte are set, then the internal wallet will consult its fee model to determine a fee for the default confirmation target. """ @@ -592,6 +623,18 @@ class LightningServicer(object): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def BatchOpenChannel(self, request, context): + """lncli: `batchopenchannel` + BatchOpenChannel attempts to open multiple single-funded channels in a + single transaction in an atomic way. This means either all channel open + requests succeed at once or all attempts are aborted if any of them fail. + This is the safer variant of using PSBTs to manually fund a batch of + channels through the OpenChannel RPC. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def FundingStateStep(self, request, context): """ FundingStateStep is an advanced funding related call that allows the caller @@ -758,9 +801,19 @@ class LightningServicer(object): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def DeletePayment(self, request, context): + """ + DeletePayment deletes an outgoing payment from DB. Note that it will not + attempt to delete an In-Flight payment, since that would be unsafe. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def DeleteAllPayments(self, request, context): """ - DeleteAllPayments deletes all outgoing payments from DB. + DeleteAllPayments deletes all outgoing payments from DB. Note that it will + not attempt to delete In-Flight payments, since that would be unsafe. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -889,8 +942,9 @@ class LightningServicer(object): """lncli: `fwdinghistory` ForwardingHistory allows the caller to query the htlcswitch for a record of all HTLCs forwarded within the target time range, and integer offset - within that time range. If no time-range is specified, then the first chunk - of the past 24 hrs of forwarding history are returned. + within that time range, for a maximum number of events. If no maximum number + of events is specified, up to 100 events will be returned. If no time-range + is specified, then events will be returned in the order that they occured. A list of forwarding events are returned. The size of each forwarding event is 40 bytes, and the max message size able to be returned in gRPC is 4 MiB. @@ -998,303 +1052,379 @@ class LightningServicer(object): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def CheckMacaroonPermissions(self, request, context): + """ + CheckMacaroonPermissions checks whether a request follows the constraints + imposed on the macaroon and that the macaroon is authorized to follow the + provided permissions. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RegisterRPCMiddleware(self, request_iterator, context): + """ + RegisterRPCMiddleware adds a new gRPC middleware to the interceptor chain. A + gRPC middleware is software component external to lnd that aims to add + additional business logic to lnd by observing/intercepting/validating + incoming gRPC client requests and (if needed) replacing/overwriting outgoing + messages before they're sent to the client. When registering the middleware + must identify itself and indicate what custom macaroon caveats it wants to + be responsible for. Only requests that contain a macaroon with that specific + custom caveat are then sent to the middleware for inspection. The other + option is to register for the read-only mode in which all requests/responses + are forwarded for interception to the middleware but the middleware is not + allowed to modify any responses. As a security measure, _no_ middleware can + modify responses for requests made with _unencumbered_ macaroons! + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SendCustomMessage(self, request, context): + """lncli: `sendcustom` + SendCustomMessage sends a custom peer message. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SubscribeCustomMessages(self, request, context): + """lncli: `subscribecustom` + SubscribeCustomMessages subscribes to a stream of incoming custom peer + messages. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_LightningServicer_to_server(servicer, server): rpc_method_handlers = { 'WalletBalance': grpc.unary_unary_rpc_method_handler( servicer.WalletBalance, - request_deserializer=rpc__pb2.WalletBalanceRequest.FromString, - response_serializer=rpc__pb2.WalletBalanceResponse.SerializeToString, + request_deserializer=lightning__pb2.WalletBalanceRequest.FromString, + response_serializer=lightning__pb2.WalletBalanceResponse.SerializeToString, ), 'ChannelBalance': grpc.unary_unary_rpc_method_handler( servicer.ChannelBalance, - request_deserializer=rpc__pb2.ChannelBalanceRequest.FromString, - response_serializer=rpc__pb2.ChannelBalanceResponse.SerializeToString, + request_deserializer=lightning__pb2.ChannelBalanceRequest.FromString, + response_serializer=lightning__pb2.ChannelBalanceResponse.SerializeToString, ), 'GetTransactions': grpc.unary_unary_rpc_method_handler( servicer.GetTransactions, - request_deserializer=rpc__pb2.GetTransactionsRequest.FromString, - response_serializer=rpc__pb2.TransactionDetails.SerializeToString, + request_deserializer=lightning__pb2.GetTransactionsRequest.FromString, + response_serializer=lightning__pb2.TransactionDetails.SerializeToString, ), 'EstimateFee': grpc.unary_unary_rpc_method_handler( servicer.EstimateFee, - request_deserializer=rpc__pb2.EstimateFeeRequest.FromString, - response_serializer=rpc__pb2.EstimateFeeResponse.SerializeToString, + request_deserializer=lightning__pb2.EstimateFeeRequest.FromString, + response_serializer=lightning__pb2.EstimateFeeResponse.SerializeToString, ), 'SendCoins': grpc.unary_unary_rpc_method_handler( servicer.SendCoins, - request_deserializer=rpc__pb2.SendCoinsRequest.FromString, - response_serializer=rpc__pb2.SendCoinsResponse.SerializeToString, + request_deserializer=lightning__pb2.SendCoinsRequest.FromString, + response_serializer=lightning__pb2.SendCoinsResponse.SerializeToString, ), 'ListUnspent': grpc.unary_unary_rpc_method_handler( servicer.ListUnspent, - request_deserializer=rpc__pb2.ListUnspentRequest.FromString, - response_serializer=rpc__pb2.ListUnspentResponse.SerializeToString, + request_deserializer=lightning__pb2.ListUnspentRequest.FromString, + response_serializer=lightning__pb2.ListUnspentResponse.SerializeToString, ), 'SubscribeTransactions': grpc.unary_stream_rpc_method_handler( servicer.SubscribeTransactions, - request_deserializer=rpc__pb2.GetTransactionsRequest.FromString, - response_serializer=rpc__pb2.Transaction.SerializeToString, + request_deserializer=lightning__pb2.GetTransactionsRequest.FromString, + response_serializer=lightning__pb2.Transaction.SerializeToString, ), 'SendMany': grpc.unary_unary_rpc_method_handler( servicer.SendMany, - request_deserializer=rpc__pb2.SendManyRequest.FromString, - response_serializer=rpc__pb2.SendManyResponse.SerializeToString, + request_deserializer=lightning__pb2.SendManyRequest.FromString, + response_serializer=lightning__pb2.SendManyResponse.SerializeToString, ), 'NewAddress': grpc.unary_unary_rpc_method_handler( servicer.NewAddress, - request_deserializer=rpc__pb2.NewAddressRequest.FromString, - response_serializer=rpc__pb2.NewAddressResponse.SerializeToString, + request_deserializer=lightning__pb2.NewAddressRequest.FromString, + response_serializer=lightning__pb2.NewAddressResponse.SerializeToString, ), 'SignMessage': grpc.unary_unary_rpc_method_handler( servicer.SignMessage, - request_deserializer=rpc__pb2.SignMessageRequest.FromString, - response_serializer=rpc__pb2.SignMessageResponse.SerializeToString, + request_deserializer=lightning__pb2.SignMessageRequest.FromString, + response_serializer=lightning__pb2.SignMessageResponse.SerializeToString, ), 'VerifyMessage': grpc.unary_unary_rpc_method_handler( servicer.VerifyMessage, - request_deserializer=rpc__pb2.VerifyMessageRequest.FromString, - response_serializer=rpc__pb2.VerifyMessageResponse.SerializeToString, + request_deserializer=lightning__pb2.VerifyMessageRequest.FromString, + response_serializer=lightning__pb2.VerifyMessageResponse.SerializeToString, ), 'ConnectPeer': grpc.unary_unary_rpc_method_handler( servicer.ConnectPeer, - request_deserializer=rpc__pb2.ConnectPeerRequest.FromString, - response_serializer=rpc__pb2.ConnectPeerResponse.SerializeToString, + request_deserializer=lightning__pb2.ConnectPeerRequest.FromString, + response_serializer=lightning__pb2.ConnectPeerResponse.SerializeToString, ), 'DisconnectPeer': grpc.unary_unary_rpc_method_handler( servicer.DisconnectPeer, - request_deserializer=rpc__pb2.DisconnectPeerRequest.FromString, - response_serializer=rpc__pb2.DisconnectPeerResponse.SerializeToString, + request_deserializer=lightning__pb2.DisconnectPeerRequest.FromString, + response_serializer=lightning__pb2.DisconnectPeerResponse.SerializeToString, ), 'ListPeers': grpc.unary_unary_rpc_method_handler( servicer.ListPeers, - request_deserializer=rpc__pb2.ListPeersRequest.FromString, - response_serializer=rpc__pb2.ListPeersResponse.SerializeToString, + request_deserializer=lightning__pb2.ListPeersRequest.FromString, + response_serializer=lightning__pb2.ListPeersResponse.SerializeToString, ), 'SubscribePeerEvents': grpc.unary_stream_rpc_method_handler( servicer.SubscribePeerEvents, - request_deserializer=rpc__pb2.PeerEventSubscription.FromString, - response_serializer=rpc__pb2.PeerEvent.SerializeToString, + request_deserializer=lightning__pb2.PeerEventSubscription.FromString, + response_serializer=lightning__pb2.PeerEvent.SerializeToString, ), 'GetInfo': grpc.unary_unary_rpc_method_handler( servicer.GetInfo, - request_deserializer=rpc__pb2.GetInfoRequest.FromString, - response_serializer=rpc__pb2.GetInfoResponse.SerializeToString, + request_deserializer=lightning__pb2.GetInfoRequest.FromString, + response_serializer=lightning__pb2.GetInfoResponse.SerializeToString, ), 'GetRecoveryInfo': grpc.unary_unary_rpc_method_handler( servicer.GetRecoveryInfo, - request_deserializer=rpc__pb2.GetRecoveryInfoRequest.FromString, - response_serializer=rpc__pb2.GetRecoveryInfoResponse.SerializeToString, + request_deserializer=lightning__pb2.GetRecoveryInfoRequest.FromString, + response_serializer=lightning__pb2.GetRecoveryInfoResponse.SerializeToString, ), 'PendingChannels': grpc.unary_unary_rpc_method_handler( servicer.PendingChannels, - request_deserializer=rpc__pb2.PendingChannelsRequest.FromString, - response_serializer=rpc__pb2.PendingChannelsResponse.SerializeToString, + request_deserializer=lightning__pb2.PendingChannelsRequest.FromString, + response_serializer=lightning__pb2.PendingChannelsResponse.SerializeToString, ), 'ListChannels': grpc.unary_unary_rpc_method_handler( servicer.ListChannels, - request_deserializer=rpc__pb2.ListChannelsRequest.FromString, - response_serializer=rpc__pb2.ListChannelsResponse.SerializeToString, + request_deserializer=lightning__pb2.ListChannelsRequest.FromString, + response_serializer=lightning__pb2.ListChannelsResponse.SerializeToString, ), 'SubscribeChannelEvents': grpc.unary_stream_rpc_method_handler( servicer.SubscribeChannelEvents, - request_deserializer=rpc__pb2.ChannelEventSubscription.FromString, - response_serializer=rpc__pb2.ChannelEventUpdate.SerializeToString, + request_deserializer=lightning__pb2.ChannelEventSubscription.FromString, + response_serializer=lightning__pb2.ChannelEventUpdate.SerializeToString, ), 'ClosedChannels': grpc.unary_unary_rpc_method_handler( servicer.ClosedChannels, - request_deserializer=rpc__pb2.ClosedChannelsRequest.FromString, - response_serializer=rpc__pb2.ClosedChannelsResponse.SerializeToString, + request_deserializer=lightning__pb2.ClosedChannelsRequest.FromString, + response_serializer=lightning__pb2.ClosedChannelsResponse.SerializeToString, ), 'OpenChannelSync': grpc.unary_unary_rpc_method_handler( servicer.OpenChannelSync, - request_deserializer=rpc__pb2.OpenChannelRequest.FromString, - response_serializer=rpc__pb2.ChannelPoint.SerializeToString, + request_deserializer=lightning__pb2.OpenChannelRequest.FromString, + response_serializer=lightning__pb2.ChannelPoint.SerializeToString, ), 'OpenChannel': grpc.unary_stream_rpc_method_handler( servicer.OpenChannel, - request_deserializer=rpc__pb2.OpenChannelRequest.FromString, - response_serializer=rpc__pb2.OpenStatusUpdate.SerializeToString, + request_deserializer=lightning__pb2.OpenChannelRequest.FromString, + response_serializer=lightning__pb2.OpenStatusUpdate.SerializeToString, + ), + 'BatchOpenChannel': grpc.unary_unary_rpc_method_handler( + servicer.BatchOpenChannel, + request_deserializer=lightning__pb2.BatchOpenChannelRequest.FromString, + response_serializer=lightning__pb2.BatchOpenChannelResponse.SerializeToString, ), 'FundingStateStep': grpc.unary_unary_rpc_method_handler( servicer.FundingStateStep, - request_deserializer=rpc__pb2.FundingTransitionMsg.FromString, - response_serializer=rpc__pb2.FundingStateStepResp.SerializeToString, + request_deserializer=lightning__pb2.FundingTransitionMsg.FromString, + response_serializer=lightning__pb2.FundingStateStepResp.SerializeToString, ), 'ChannelAcceptor': grpc.stream_stream_rpc_method_handler( servicer.ChannelAcceptor, - request_deserializer=rpc__pb2.ChannelAcceptResponse.FromString, - response_serializer=rpc__pb2.ChannelAcceptRequest.SerializeToString, + request_deserializer=lightning__pb2.ChannelAcceptResponse.FromString, + response_serializer=lightning__pb2.ChannelAcceptRequest.SerializeToString, ), 'CloseChannel': grpc.unary_stream_rpc_method_handler( servicer.CloseChannel, - request_deserializer=rpc__pb2.CloseChannelRequest.FromString, - response_serializer=rpc__pb2.CloseStatusUpdate.SerializeToString, + request_deserializer=lightning__pb2.CloseChannelRequest.FromString, + response_serializer=lightning__pb2.CloseStatusUpdate.SerializeToString, ), 'AbandonChannel': grpc.unary_unary_rpc_method_handler( servicer.AbandonChannel, - request_deserializer=rpc__pb2.AbandonChannelRequest.FromString, - response_serializer=rpc__pb2.AbandonChannelResponse.SerializeToString, + request_deserializer=lightning__pb2.AbandonChannelRequest.FromString, + response_serializer=lightning__pb2.AbandonChannelResponse.SerializeToString, ), 'SendPayment': grpc.stream_stream_rpc_method_handler( servicer.SendPayment, - request_deserializer=rpc__pb2.SendRequest.FromString, - response_serializer=rpc__pb2.SendResponse.SerializeToString, + request_deserializer=lightning__pb2.SendRequest.FromString, + response_serializer=lightning__pb2.SendResponse.SerializeToString, ), 'SendPaymentSync': grpc.unary_unary_rpc_method_handler( servicer.SendPaymentSync, - request_deserializer=rpc__pb2.SendRequest.FromString, - response_serializer=rpc__pb2.SendResponse.SerializeToString, + request_deserializer=lightning__pb2.SendRequest.FromString, + response_serializer=lightning__pb2.SendResponse.SerializeToString, ), 'SendToRoute': grpc.stream_stream_rpc_method_handler( servicer.SendToRoute, - request_deserializer=rpc__pb2.SendToRouteRequest.FromString, - response_serializer=rpc__pb2.SendResponse.SerializeToString, + request_deserializer=lightning__pb2.SendToRouteRequest.FromString, + response_serializer=lightning__pb2.SendResponse.SerializeToString, ), 'SendToRouteSync': grpc.unary_unary_rpc_method_handler( servicer.SendToRouteSync, - request_deserializer=rpc__pb2.SendToRouteRequest.FromString, - response_serializer=rpc__pb2.SendResponse.SerializeToString, + request_deserializer=lightning__pb2.SendToRouteRequest.FromString, + response_serializer=lightning__pb2.SendResponse.SerializeToString, ), 'AddInvoice': grpc.unary_unary_rpc_method_handler( servicer.AddInvoice, - request_deserializer=rpc__pb2.Invoice.FromString, - response_serializer=rpc__pb2.AddInvoiceResponse.SerializeToString, + request_deserializer=lightning__pb2.Invoice.FromString, + response_serializer=lightning__pb2.AddInvoiceResponse.SerializeToString, ), 'ListInvoices': grpc.unary_unary_rpc_method_handler( servicer.ListInvoices, - request_deserializer=rpc__pb2.ListInvoiceRequest.FromString, - response_serializer=rpc__pb2.ListInvoiceResponse.SerializeToString, + request_deserializer=lightning__pb2.ListInvoiceRequest.FromString, + response_serializer=lightning__pb2.ListInvoiceResponse.SerializeToString, ), 'LookupInvoice': grpc.unary_unary_rpc_method_handler( servicer.LookupInvoice, - request_deserializer=rpc__pb2.PaymentHash.FromString, - response_serializer=rpc__pb2.Invoice.SerializeToString, + request_deserializer=lightning__pb2.PaymentHash.FromString, + response_serializer=lightning__pb2.Invoice.SerializeToString, ), 'SubscribeInvoices': grpc.unary_stream_rpc_method_handler( servicer.SubscribeInvoices, - request_deserializer=rpc__pb2.InvoiceSubscription.FromString, - response_serializer=rpc__pb2.Invoice.SerializeToString, + request_deserializer=lightning__pb2.InvoiceSubscription.FromString, + response_serializer=lightning__pb2.Invoice.SerializeToString, ), 'DecodePayReq': grpc.unary_unary_rpc_method_handler( servicer.DecodePayReq, - request_deserializer=rpc__pb2.PayReqString.FromString, - response_serializer=rpc__pb2.PayReq.SerializeToString, + request_deserializer=lightning__pb2.PayReqString.FromString, + response_serializer=lightning__pb2.PayReq.SerializeToString, ), 'ListPayments': grpc.unary_unary_rpc_method_handler( servicer.ListPayments, - request_deserializer=rpc__pb2.ListPaymentsRequest.FromString, - response_serializer=rpc__pb2.ListPaymentsResponse.SerializeToString, + request_deserializer=lightning__pb2.ListPaymentsRequest.FromString, + response_serializer=lightning__pb2.ListPaymentsResponse.SerializeToString, + ), + 'DeletePayment': grpc.unary_unary_rpc_method_handler( + servicer.DeletePayment, + request_deserializer=lightning__pb2.DeletePaymentRequest.FromString, + response_serializer=lightning__pb2.DeletePaymentResponse.SerializeToString, ), 'DeleteAllPayments': grpc.unary_unary_rpc_method_handler( servicer.DeleteAllPayments, - request_deserializer=rpc__pb2.DeleteAllPaymentsRequest.FromString, - response_serializer=rpc__pb2.DeleteAllPaymentsResponse.SerializeToString, + request_deserializer=lightning__pb2.DeleteAllPaymentsRequest.FromString, + response_serializer=lightning__pb2.DeleteAllPaymentsResponse.SerializeToString, ), 'DescribeGraph': grpc.unary_unary_rpc_method_handler( servicer.DescribeGraph, - request_deserializer=rpc__pb2.ChannelGraphRequest.FromString, - response_serializer=rpc__pb2.ChannelGraph.SerializeToString, + request_deserializer=lightning__pb2.ChannelGraphRequest.FromString, + response_serializer=lightning__pb2.ChannelGraph.SerializeToString, ), 'GetNodeMetrics': grpc.unary_unary_rpc_method_handler( servicer.GetNodeMetrics, - request_deserializer=rpc__pb2.NodeMetricsRequest.FromString, - response_serializer=rpc__pb2.NodeMetricsResponse.SerializeToString, + request_deserializer=lightning__pb2.NodeMetricsRequest.FromString, + response_serializer=lightning__pb2.NodeMetricsResponse.SerializeToString, ), 'GetChanInfo': grpc.unary_unary_rpc_method_handler( servicer.GetChanInfo, - request_deserializer=rpc__pb2.ChanInfoRequest.FromString, - response_serializer=rpc__pb2.ChannelEdge.SerializeToString, + request_deserializer=lightning__pb2.ChanInfoRequest.FromString, + response_serializer=lightning__pb2.ChannelEdge.SerializeToString, ), 'GetNodeInfo': grpc.unary_unary_rpc_method_handler( servicer.GetNodeInfo, - request_deserializer=rpc__pb2.NodeInfoRequest.FromString, - response_serializer=rpc__pb2.NodeInfo.SerializeToString, + request_deserializer=lightning__pb2.NodeInfoRequest.FromString, + response_serializer=lightning__pb2.NodeInfo.SerializeToString, ), 'QueryRoutes': grpc.unary_unary_rpc_method_handler( servicer.QueryRoutes, - request_deserializer=rpc__pb2.QueryRoutesRequest.FromString, - response_serializer=rpc__pb2.QueryRoutesResponse.SerializeToString, + request_deserializer=lightning__pb2.QueryRoutesRequest.FromString, + response_serializer=lightning__pb2.QueryRoutesResponse.SerializeToString, ), 'GetNetworkInfo': grpc.unary_unary_rpc_method_handler( servicer.GetNetworkInfo, - request_deserializer=rpc__pb2.NetworkInfoRequest.FromString, - response_serializer=rpc__pb2.NetworkInfo.SerializeToString, + request_deserializer=lightning__pb2.NetworkInfoRequest.FromString, + response_serializer=lightning__pb2.NetworkInfo.SerializeToString, ), 'StopDaemon': grpc.unary_unary_rpc_method_handler( servicer.StopDaemon, - request_deserializer=rpc__pb2.StopRequest.FromString, - response_serializer=rpc__pb2.StopResponse.SerializeToString, + request_deserializer=lightning__pb2.StopRequest.FromString, + response_serializer=lightning__pb2.StopResponse.SerializeToString, ), 'SubscribeChannelGraph': grpc.unary_stream_rpc_method_handler( servicer.SubscribeChannelGraph, - request_deserializer=rpc__pb2.GraphTopologySubscription.FromString, - response_serializer=rpc__pb2.GraphTopologyUpdate.SerializeToString, + request_deserializer=lightning__pb2.GraphTopologySubscription.FromString, + response_serializer=lightning__pb2.GraphTopologyUpdate.SerializeToString, ), 'DebugLevel': grpc.unary_unary_rpc_method_handler( servicer.DebugLevel, - request_deserializer=rpc__pb2.DebugLevelRequest.FromString, - response_serializer=rpc__pb2.DebugLevelResponse.SerializeToString, + request_deserializer=lightning__pb2.DebugLevelRequest.FromString, + response_serializer=lightning__pb2.DebugLevelResponse.SerializeToString, ), 'FeeReport': grpc.unary_unary_rpc_method_handler( servicer.FeeReport, - request_deserializer=rpc__pb2.FeeReportRequest.FromString, - response_serializer=rpc__pb2.FeeReportResponse.SerializeToString, + request_deserializer=lightning__pb2.FeeReportRequest.FromString, + response_serializer=lightning__pb2.FeeReportResponse.SerializeToString, ), 'UpdateChannelPolicy': grpc.unary_unary_rpc_method_handler( servicer.UpdateChannelPolicy, - request_deserializer=rpc__pb2.PolicyUpdateRequest.FromString, - response_serializer=rpc__pb2.PolicyUpdateResponse.SerializeToString, + request_deserializer=lightning__pb2.PolicyUpdateRequest.FromString, + response_serializer=lightning__pb2.PolicyUpdateResponse.SerializeToString, ), 'ForwardingHistory': grpc.unary_unary_rpc_method_handler( servicer.ForwardingHistory, - request_deserializer=rpc__pb2.ForwardingHistoryRequest.FromString, - response_serializer=rpc__pb2.ForwardingHistoryResponse.SerializeToString, + request_deserializer=lightning__pb2.ForwardingHistoryRequest.FromString, + response_serializer=lightning__pb2.ForwardingHistoryResponse.SerializeToString, ), 'ExportChannelBackup': grpc.unary_unary_rpc_method_handler( servicer.ExportChannelBackup, - request_deserializer=rpc__pb2.ExportChannelBackupRequest.FromString, - response_serializer=rpc__pb2.ChannelBackup.SerializeToString, + request_deserializer=lightning__pb2.ExportChannelBackupRequest.FromString, + response_serializer=lightning__pb2.ChannelBackup.SerializeToString, ), 'ExportAllChannelBackups': grpc.unary_unary_rpc_method_handler( servicer.ExportAllChannelBackups, - request_deserializer=rpc__pb2.ChanBackupExportRequest.FromString, - response_serializer=rpc__pb2.ChanBackupSnapshot.SerializeToString, + request_deserializer=lightning__pb2.ChanBackupExportRequest.FromString, + response_serializer=lightning__pb2.ChanBackupSnapshot.SerializeToString, ), 'VerifyChanBackup': grpc.unary_unary_rpc_method_handler( servicer.VerifyChanBackup, - request_deserializer=rpc__pb2.ChanBackupSnapshot.FromString, - response_serializer=rpc__pb2.VerifyChanBackupResponse.SerializeToString, + request_deserializer=lightning__pb2.ChanBackupSnapshot.FromString, + response_serializer=lightning__pb2.VerifyChanBackupResponse.SerializeToString, ), 'RestoreChannelBackups': grpc.unary_unary_rpc_method_handler( servicer.RestoreChannelBackups, - request_deserializer=rpc__pb2.RestoreChanBackupRequest.FromString, - response_serializer=rpc__pb2.RestoreBackupResponse.SerializeToString, + request_deserializer=lightning__pb2.RestoreChanBackupRequest.FromString, + response_serializer=lightning__pb2.RestoreBackupResponse.SerializeToString, ), 'SubscribeChannelBackups': grpc.unary_stream_rpc_method_handler( servicer.SubscribeChannelBackups, - request_deserializer=rpc__pb2.ChannelBackupSubscription.FromString, - response_serializer=rpc__pb2.ChanBackupSnapshot.SerializeToString, + request_deserializer=lightning__pb2.ChannelBackupSubscription.FromString, + response_serializer=lightning__pb2.ChanBackupSnapshot.SerializeToString, ), 'BakeMacaroon': grpc.unary_unary_rpc_method_handler( servicer.BakeMacaroon, - request_deserializer=rpc__pb2.BakeMacaroonRequest.FromString, - response_serializer=rpc__pb2.BakeMacaroonResponse.SerializeToString, + request_deserializer=lightning__pb2.BakeMacaroonRequest.FromString, + response_serializer=lightning__pb2.BakeMacaroonResponse.SerializeToString, ), 'ListMacaroonIDs': grpc.unary_unary_rpc_method_handler( servicer.ListMacaroonIDs, - request_deserializer=rpc__pb2.ListMacaroonIDsRequest.FromString, - response_serializer=rpc__pb2.ListMacaroonIDsResponse.SerializeToString, + request_deserializer=lightning__pb2.ListMacaroonIDsRequest.FromString, + response_serializer=lightning__pb2.ListMacaroonIDsResponse.SerializeToString, ), 'DeleteMacaroonID': grpc.unary_unary_rpc_method_handler( servicer.DeleteMacaroonID, - request_deserializer=rpc__pb2.DeleteMacaroonIDRequest.FromString, - response_serializer=rpc__pb2.DeleteMacaroonIDResponse.SerializeToString, + request_deserializer=lightning__pb2.DeleteMacaroonIDRequest.FromString, + response_serializer=lightning__pb2.DeleteMacaroonIDResponse.SerializeToString, ), 'ListPermissions': grpc.unary_unary_rpc_method_handler( servicer.ListPermissions, - request_deserializer=rpc__pb2.ListPermissionsRequest.FromString, - response_serializer=rpc__pb2.ListPermissionsResponse.SerializeToString, + request_deserializer=lightning__pb2.ListPermissionsRequest.FromString, + response_serializer=lightning__pb2.ListPermissionsResponse.SerializeToString, + ), + 'CheckMacaroonPermissions': grpc.unary_unary_rpc_method_handler( + servicer.CheckMacaroonPermissions, + request_deserializer=lightning__pb2.CheckMacPermRequest.FromString, + response_serializer=lightning__pb2.CheckMacPermResponse.SerializeToString, + ), + 'RegisterRPCMiddleware': grpc.stream_stream_rpc_method_handler( + servicer.RegisterRPCMiddleware, + request_deserializer=lightning__pb2.RPCMiddlewareResponse.FromString, + response_serializer=lightning__pb2.RPCMiddlewareRequest.SerializeToString, + ), + 'SendCustomMessage': grpc.unary_unary_rpc_method_handler( + servicer.SendCustomMessage, + request_deserializer=lightning__pb2.SendCustomMessageRequest.FromString, + response_serializer=lightning__pb2.SendCustomMessageResponse.SerializeToString, + ), + 'SubscribeCustomMessages': grpc.unary_stream_rpc_method_handler( + servicer.SubscribeCustomMessages, + request_deserializer=lightning__pb2.SubscribeCustomMessagesRequest.FromString, + response_serializer=lightning__pb2.CustomMessage.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( @@ -1336,8 +1466,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/WalletBalance', - rpc__pb2.WalletBalanceRequest.SerializeToString, - rpc__pb2.WalletBalanceResponse.FromString, + lightning__pb2.WalletBalanceRequest.SerializeToString, + lightning__pb2.WalletBalanceResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1353,8 +1483,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ChannelBalance', - rpc__pb2.ChannelBalanceRequest.SerializeToString, - rpc__pb2.ChannelBalanceResponse.FromString, + lightning__pb2.ChannelBalanceRequest.SerializeToString, + lightning__pb2.ChannelBalanceResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1370,8 +1500,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/GetTransactions', - rpc__pb2.GetTransactionsRequest.SerializeToString, - rpc__pb2.TransactionDetails.FromString, + lightning__pb2.GetTransactionsRequest.SerializeToString, + lightning__pb2.TransactionDetails.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1387,8 +1517,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/EstimateFee', - rpc__pb2.EstimateFeeRequest.SerializeToString, - rpc__pb2.EstimateFeeResponse.FromString, + lightning__pb2.EstimateFeeRequest.SerializeToString, + lightning__pb2.EstimateFeeResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1404,8 +1534,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/SendCoins', - rpc__pb2.SendCoinsRequest.SerializeToString, - rpc__pb2.SendCoinsResponse.FromString, + lightning__pb2.SendCoinsRequest.SerializeToString, + lightning__pb2.SendCoinsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1421,8 +1551,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ListUnspent', - rpc__pb2.ListUnspentRequest.SerializeToString, - rpc__pb2.ListUnspentResponse.FromString, + lightning__pb2.ListUnspentRequest.SerializeToString, + lightning__pb2.ListUnspentResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1438,8 +1568,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/SubscribeTransactions', - rpc__pb2.GetTransactionsRequest.SerializeToString, - rpc__pb2.Transaction.FromString, + lightning__pb2.GetTransactionsRequest.SerializeToString, + lightning__pb2.Transaction.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1455,8 +1585,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/SendMany', - rpc__pb2.SendManyRequest.SerializeToString, - rpc__pb2.SendManyResponse.FromString, + lightning__pb2.SendManyRequest.SerializeToString, + lightning__pb2.SendManyResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1472,8 +1602,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/NewAddress', - rpc__pb2.NewAddressRequest.SerializeToString, - rpc__pb2.NewAddressResponse.FromString, + lightning__pb2.NewAddressRequest.SerializeToString, + lightning__pb2.NewAddressResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1489,8 +1619,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/SignMessage', - rpc__pb2.SignMessageRequest.SerializeToString, - rpc__pb2.SignMessageResponse.FromString, + lightning__pb2.SignMessageRequest.SerializeToString, + lightning__pb2.SignMessageResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1506,8 +1636,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/VerifyMessage', - rpc__pb2.VerifyMessageRequest.SerializeToString, - rpc__pb2.VerifyMessageResponse.FromString, + lightning__pb2.VerifyMessageRequest.SerializeToString, + lightning__pb2.VerifyMessageResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1523,8 +1653,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ConnectPeer', - rpc__pb2.ConnectPeerRequest.SerializeToString, - rpc__pb2.ConnectPeerResponse.FromString, + lightning__pb2.ConnectPeerRequest.SerializeToString, + lightning__pb2.ConnectPeerResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1540,8 +1670,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/DisconnectPeer', - rpc__pb2.DisconnectPeerRequest.SerializeToString, - rpc__pb2.DisconnectPeerResponse.FromString, + lightning__pb2.DisconnectPeerRequest.SerializeToString, + lightning__pb2.DisconnectPeerResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1557,8 +1687,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ListPeers', - rpc__pb2.ListPeersRequest.SerializeToString, - rpc__pb2.ListPeersResponse.FromString, + lightning__pb2.ListPeersRequest.SerializeToString, + lightning__pb2.ListPeersResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1574,8 +1704,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/SubscribePeerEvents', - rpc__pb2.PeerEventSubscription.SerializeToString, - rpc__pb2.PeerEvent.FromString, + lightning__pb2.PeerEventSubscription.SerializeToString, + lightning__pb2.PeerEvent.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1591,8 +1721,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/GetInfo', - rpc__pb2.GetInfoRequest.SerializeToString, - rpc__pb2.GetInfoResponse.FromString, + lightning__pb2.GetInfoRequest.SerializeToString, + lightning__pb2.GetInfoResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1608,8 +1738,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/GetRecoveryInfo', - rpc__pb2.GetRecoveryInfoRequest.SerializeToString, - rpc__pb2.GetRecoveryInfoResponse.FromString, + lightning__pb2.GetRecoveryInfoRequest.SerializeToString, + lightning__pb2.GetRecoveryInfoResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1625,8 +1755,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/PendingChannels', - rpc__pb2.PendingChannelsRequest.SerializeToString, - rpc__pb2.PendingChannelsResponse.FromString, + lightning__pb2.PendingChannelsRequest.SerializeToString, + lightning__pb2.PendingChannelsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1642,8 +1772,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ListChannels', - rpc__pb2.ListChannelsRequest.SerializeToString, - rpc__pb2.ListChannelsResponse.FromString, + lightning__pb2.ListChannelsRequest.SerializeToString, + lightning__pb2.ListChannelsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1659,8 +1789,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/SubscribeChannelEvents', - rpc__pb2.ChannelEventSubscription.SerializeToString, - rpc__pb2.ChannelEventUpdate.FromString, + lightning__pb2.ChannelEventSubscription.SerializeToString, + lightning__pb2.ChannelEventUpdate.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1676,8 +1806,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ClosedChannels', - rpc__pb2.ClosedChannelsRequest.SerializeToString, - rpc__pb2.ClosedChannelsResponse.FromString, + lightning__pb2.ClosedChannelsRequest.SerializeToString, + lightning__pb2.ClosedChannelsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1693,8 +1823,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/OpenChannelSync', - rpc__pb2.OpenChannelRequest.SerializeToString, - rpc__pb2.ChannelPoint.FromString, + lightning__pb2.OpenChannelRequest.SerializeToString, + lightning__pb2.ChannelPoint.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1710,8 +1840,25 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/OpenChannel', - rpc__pb2.OpenChannelRequest.SerializeToString, - rpc__pb2.OpenStatusUpdate.FromString, + lightning__pb2.OpenChannelRequest.SerializeToString, + lightning__pb2.OpenStatusUpdate.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def BatchOpenChannel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/BatchOpenChannel', + lightning__pb2.BatchOpenChannelRequest.SerializeToString, + lightning__pb2.BatchOpenChannelResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1727,8 +1874,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/FundingStateStep', - rpc__pb2.FundingTransitionMsg.SerializeToString, - rpc__pb2.FundingStateStepResp.FromString, + lightning__pb2.FundingTransitionMsg.SerializeToString, + lightning__pb2.FundingStateStepResp.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1744,8 +1891,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.stream_stream(request_iterator, target, '/lnrpc.Lightning/ChannelAcceptor', - rpc__pb2.ChannelAcceptResponse.SerializeToString, - rpc__pb2.ChannelAcceptRequest.FromString, + lightning__pb2.ChannelAcceptResponse.SerializeToString, + lightning__pb2.ChannelAcceptRequest.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1761,8 +1908,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/CloseChannel', - rpc__pb2.CloseChannelRequest.SerializeToString, - rpc__pb2.CloseStatusUpdate.FromString, + lightning__pb2.CloseChannelRequest.SerializeToString, + lightning__pb2.CloseStatusUpdate.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1778,8 +1925,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/AbandonChannel', - rpc__pb2.AbandonChannelRequest.SerializeToString, - rpc__pb2.AbandonChannelResponse.FromString, + lightning__pb2.AbandonChannelRequest.SerializeToString, + lightning__pb2.AbandonChannelResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1795,8 +1942,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.stream_stream(request_iterator, target, '/lnrpc.Lightning/SendPayment', - rpc__pb2.SendRequest.SerializeToString, - rpc__pb2.SendResponse.FromString, + lightning__pb2.SendRequest.SerializeToString, + lightning__pb2.SendResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1812,8 +1959,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/SendPaymentSync', - rpc__pb2.SendRequest.SerializeToString, - rpc__pb2.SendResponse.FromString, + lightning__pb2.SendRequest.SerializeToString, + lightning__pb2.SendResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1829,8 +1976,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.stream_stream(request_iterator, target, '/lnrpc.Lightning/SendToRoute', - rpc__pb2.SendToRouteRequest.SerializeToString, - rpc__pb2.SendResponse.FromString, + lightning__pb2.SendToRouteRequest.SerializeToString, + lightning__pb2.SendResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1846,8 +1993,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/SendToRouteSync', - rpc__pb2.SendToRouteRequest.SerializeToString, - rpc__pb2.SendResponse.FromString, + lightning__pb2.SendToRouteRequest.SerializeToString, + lightning__pb2.SendResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1863,8 +2010,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/AddInvoice', - rpc__pb2.Invoice.SerializeToString, - rpc__pb2.AddInvoiceResponse.FromString, + lightning__pb2.Invoice.SerializeToString, + lightning__pb2.AddInvoiceResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1880,8 +2027,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ListInvoices', - rpc__pb2.ListInvoiceRequest.SerializeToString, - rpc__pb2.ListInvoiceResponse.FromString, + lightning__pb2.ListInvoiceRequest.SerializeToString, + lightning__pb2.ListInvoiceResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1897,8 +2044,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/LookupInvoice', - rpc__pb2.PaymentHash.SerializeToString, - rpc__pb2.Invoice.FromString, + lightning__pb2.PaymentHash.SerializeToString, + lightning__pb2.Invoice.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1914,8 +2061,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/SubscribeInvoices', - rpc__pb2.InvoiceSubscription.SerializeToString, - rpc__pb2.Invoice.FromString, + lightning__pb2.InvoiceSubscription.SerializeToString, + lightning__pb2.Invoice.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1931,8 +2078,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/DecodePayReq', - rpc__pb2.PayReqString.SerializeToString, - rpc__pb2.PayReq.FromString, + lightning__pb2.PayReqString.SerializeToString, + lightning__pb2.PayReq.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1948,8 +2095,25 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ListPayments', - rpc__pb2.ListPaymentsRequest.SerializeToString, - rpc__pb2.ListPaymentsResponse.FromString, + lightning__pb2.ListPaymentsRequest.SerializeToString, + lightning__pb2.ListPaymentsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def DeletePayment(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/DeletePayment', + lightning__pb2.DeletePaymentRequest.SerializeToString, + lightning__pb2.DeletePaymentResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1965,8 +2129,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/DeleteAllPayments', - rpc__pb2.DeleteAllPaymentsRequest.SerializeToString, - rpc__pb2.DeleteAllPaymentsResponse.FromString, + lightning__pb2.DeleteAllPaymentsRequest.SerializeToString, + lightning__pb2.DeleteAllPaymentsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1982,8 +2146,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/DescribeGraph', - rpc__pb2.ChannelGraphRequest.SerializeToString, - rpc__pb2.ChannelGraph.FromString, + lightning__pb2.ChannelGraphRequest.SerializeToString, + lightning__pb2.ChannelGraph.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -1999,8 +2163,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/GetNodeMetrics', - rpc__pb2.NodeMetricsRequest.SerializeToString, - rpc__pb2.NodeMetricsResponse.FromString, + lightning__pb2.NodeMetricsRequest.SerializeToString, + lightning__pb2.NodeMetricsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2016,8 +2180,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/GetChanInfo', - rpc__pb2.ChanInfoRequest.SerializeToString, - rpc__pb2.ChannelEdge.FromString, + lightning__pb2.ChanInfoRequest.SerializeToString, + lightning__pb2.ChannelEdge.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2033,8 +2197,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/GetNodeInfo', - rpc__pb2.NodeInfoRequest.SerializeToString, - rpc__pb2.NodeInfo.FromString, + lightning__pb2.NodeInfoRequest.SerializeToString, + lightning__pb2.NodeInfo.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2050,8 +2214,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/QueryRoutes', - rpc__pb2.QueryRoutesRequest.SerializeToString, - rpc__pb2.QueryRoutesResponse.FromString, + lightning__pb2.QueryRoutesRequest.SerializeToString, + lightning__pb2.QueryRoutesResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2067,8 +2231,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/GetNetworkInfo', - rpc__pb2.NetworkInfoRequest.SerializeToString, - rpc__pb2.NetworkInfo.FromString, + lightning__pb2.NetworkInfoRequest.SerializeToString, + lightning__pb2.NetworkInfo.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2084,8 +2248,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/StopDaemon', - rpc__pb2.StopRequest.SerializeToString, - rpc__pb2.StopResponse.FromString, + lightning__pb2.StopRequest.SerializeToString, + lightning__pb2.StopResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2101,8 +2265,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/SubscribeChannelGraph', - rpc__pb2.GraphTopologySubscription.SerializeToString, - rpc__pb2.GraphTopologyUpdate.FromString, + lightning__pb2.GraphTopologySubscription.SerializeToString, + lightning__pb2.GraphTopologyUpdate.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2118,8 +2282,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/DebugLevel', - rpc__pb2.DebugLevelRequest.SerializeToString, - rpc__pb2.DebugLevelResponse.FromString, + lightning__pb2.DebugLevelRequest.SerializeToString, + lightning__pb2.DebugLevelResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2135,8 +2299,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/FeeReport', - rpc__pb2.FeeReportRequest.SerializeToString, - rpc__pb2.FeeReportResponse.FromString, + lightning__pb2.FeeReportRequest.SerializeToString, + lightning__pb2.FeeReportResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2152,8 +2316,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/UpdateChannelPolicy', - rpc__pb2.PolicyUpdateRequest.SerializeToString, - rpc__pb2.PolicyUpdateResponse.FromString, + lightning__pb2.PolicyUpdateRequest.SerializeToString, + lightning__pb2.PolicyUpdateResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2169,8 +2333,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ForwardingHistory', - rpc__pb2.ForwardingHistoryRequest.SerializeToString, - rpc__pb2.ForwardingHistoryResponse.FromString, + lightning__pb2.ForwardingHistoryRequest.SerializeToString, + lightning__pb2.ForwardingHistoryResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2186,8 +2350,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ExportChannelBackup', - rpc__pb2.ExportChannelBackupRequest.SerializeToString, - rpc__pb2.ChannelBackup.FromString, + lightning__pb2.ExportChannelBackupRequest.SerializeToString, + lightning__pb2.ChannelBackup.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2203,8 +2367,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ExportAllChannelBackups', - rpc__pb2.ChanBackupExportRequest.SerializeToString, - rpc__pb2.ChanBackupSnapshot.FromString, + lightning__pb2.ChanBackupExportRequest.SerializeToString, + lightning__pb2.ChanBackupSnapshot.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2220,8 +2384,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/VerifyChanBackup', - rpc__pb2.ChanBackupSnapshot.SerializeToString, - rpc__pb2.VerifyChanBackupResponse.FromString, + lightning__pb2.ChanBackupSnapshot.SerializeToString, + lightning__pb2.VerifyChanBackupResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2237,8 +2401,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/RestoreChannelBackups', - rpc__pb2.RestoreChanBackupRequest.SerializeToString, - rpc__pb2.RestoreBackupResponse.FromString, + lightning__pb2.RestoreChanBackupRequest.SerializeToString, + lightning__pb2.RestoreBackupResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2254,8 +2418,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/SubscribeChannelBackups', - rpc__pb2.ChannelBackupSubscription.SerializeToString, - rpc__pb2.ChanBackupSnapshot.FromString, + lightning__pb2.ChannelBackupSubscription.SerializeToString, + lightning__pb2.ChanBackupSnapshot.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2271,8 +2435,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/BakeMacaroon', - rpc__pb2.BakeMacaroonRequest.SerializeToString, - rpc__pb2.BakeMacaroonResponse.FromString, + lightning__pb2.BakeMacaroonRequest.SerializeToString, + lightning__pb2.BakeMacaroonResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2288,8 +2452,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ListMacaroonIDs', - rpc__pb2.ListMacaroonIDsRequest.SerializeToString, - rpc__pb2.ListMacaroonIDsResponse.FromString, + lightning__pb2.ListMacaroonIDsRequest.SerializeToString, + lightning__pb2.ListMacaroonIDsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2305,8 +2469,8 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/DeleteMacaroonID', - rpc__pb2.DeleteMacaroonIDRequest.SerializeToString, - rpc__pb2.DeleteMacaroonIDResponse.FromString, + lightning__pb2.DeleteMacaroonIDRequest.SerializeToString, + lightning__pb2.DeleteMacaroonIDResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) @@ -2322,7 +2486,75 @@ class Lightning(object): timeout=None, metadata=None): return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/ListPermissions', - rpc__pb2.ListPermissionsRequest.SerializeToString, - rpc__pb2.ListPermissionsResponse.FromString, + lightning__pb2.ListPermissionsRequest.SerializeToString, + lightning__pb2.ListPermissionsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def CheckMacaroonPermissions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/CheckMacaroonPermissions', + lightning__pb2.CheckMacPermRequest.SerializeToString, + lightning__pb2.CheckMacPermResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def RegisterRPCMiddleware(request_iterator, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.stream_stream(request_iterator, target, '/lnrpc.Lightning/RegisterRPCMiddleware', + lightning__pb2.RPCMiddlewareResponse.SerializeToString, + lightning__pb2.RPCMiddlewareRequest.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SendCustomMessage(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/SendCustomMessage', + lightning__pb2.SendCustomMessageRequest.SerializeToString, + lightning__pb2.SendCustomMessageResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def SubscribeCustomMessages(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream(request, target, '/lnrpc.Lightning/SubscribeCustomMessages', + lightning__pb2.SubscribeCustomMessagesRequest.SerializeToString, + lightning__pb2.CustomMessage.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/home.admin/config.scripts/lndlibs/walletunlocker.proto b/home.admin/config.scripts/lndlibs/walletunlocker.proto index 6e5e4ed9..55bc31ca 100644 --- a/home.admin/config.scripts/lndlibs/walletunlocker.proto +++ b/home.admin/config.scripts/lndlibs/walletunlocker.proto @@ -1,6 +1,6 @@ syntax = "proto3"; -import "rpc.proto"; +import "lightning.proto"; package lnrpc; @@ -149,6 +149,42 @@ message InitWalletRequest { RPC as otherwise all access to the daemon will be lost! */ bool stateless_init = 6; + + /* + extended_master_key is an alternative to specifying cipher_seed_mnemonic and + aezeed_passphrase. Instead of deriving the master root key from the entropy + of an aezeed cipher seed, the given extended master root key is used + directly as the wallet's master key. This allows users to import/use a + master key from another wallet. When doing so, lnd still uses its default + SegWit only (BIP49/84) derivation paths and funds from custom/non-default + derivation paths will not automatically appear in the on-chain wallet. Using + an 'xprv' instead of an aezeed also has the disadvantage that the wallet's + birthday is not known as that is an information that's only encoded in the + aezeed, not the xprv. Therefore a birthday needs to be specified in + extended_master_key_birthday_timestamp or a "safe" default value will be + used. + */ + string extended_master_key = 7; + + /* + extended_master_key_birthday_timestamp is the optional unix timestamp in + seconds to use as the wallet's birthday when using an extended master key + to restore the wallet. lnd will only start scanning for funds in blocks that + are after the birthday which can speed up the process significantly. If the + birthday is not known, this should be left at its default value of 0 in + which case lnd will start scanning from the first SegWit block (481824 on + mainnet). + */ + uint64 extended_master_key_birthday_timestamp = 8; + + /* + watch_only is the third option of initializing a wallet: by importing + account xpubs only and therefore creating a watch-only wallet that does not + contain any private keys. That means the wallet won't be able to sign for + any of the keys and _needs_ to be run with a remote signer that has the + corresponding private keys and can serve signing RPC requests. + */ + WatchOnly watch_only = 9; } message InitWalletResponse { /* @@ -161,6 +197,63 @@ message InitWalletResponse { bytes admin_macaroon = 1; } +message WatchOnly { + /* + The unix timestamp in seconds of when the master key was created. lnd will + only start scanning for funds in blocks that are after the birthday which + can speed up the process significantly. If the birthday is not known, this + should be left at its default value of 0 in which case lnd will start + scanning from the first SegWit block (481824 on mainnet). + */ + uint64 master_key_birthday_timestamp = 1; + + /* + The fingerprint of the root key (also known as the key with derivation path + m/) from which the account public keys were derived from. This may be + required by some hardware wallets for proper identification and signing. The + bytes must be in big-endian order. + */ + bytes master_key_fingerprint = 2; + + /* + The list of accounts to import. There _must_ be an account for all of lnd's + main key scopes: BIP49/BIP84 (m/49'/0'/0', m/84'/0'/0', note that the + coin type is always 0, even for testnet/regtest) and lnd's internal key + scope (m/1017'/'/'), where account is the key family as + defined in `keychain/derivation.go` (currently indices 0 to 9). + */ + repeated WatchOnlyAccount accounts = 3; +} + +message WatchOnlyAccount { + /* + Purpose is the first number in the derivation path, must be either 49, 84 + or 1017. + */ + uint32 purpose = 1; + + /* + Coin type is the second number in the derivation path, this is _always_ 0 + for purposes 49 and 84. It only needs to be set to 1 for purpose 1017 on + testnet or regtest. + */ + uint32 coin_type = 2; + + /* + Account is the third number in the derivation path. For purposes 49 and 84 + at least the default account (index 0) needs to be created but optional + additional accounts are allowed. For purpose 1017 there needs to be exactly + one account for each of the key families defined in `keychain/derivation.go` + (currently indices 0 to 9) + */ + uint32 account = 3; + + /* + The extended public key at depth 3 for the given account. + */ + string xpub = 4; +} + message UnlockWalletRequest { /* wallet_password should be the current valid passphrase for the daemon. This diff --git a/home.admin/config.scripts/lndlibs/walletunlocker_pb2.py b/home.admin/config.scripts/lndlibs/walletunlocker_pb2.py index 1a3615f9..321d2b17 100644 --- a/home.admin/config.scripts/lndlibs/walletunlocker_pb2.py +++ b/home.admin/config.scripts/lndlibs/walletunlocker_pb2.py @@ -11,7 +11,7 @@ from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() -from . import rpc_pb2 as rpc__pb2 +from . import lightning_pb2 as lightning__pb2 DESCRIPTOR = _descriptor.FileDescriptor( @@ -20,9 +20,9 @@ DESCRIPTOR = _descriptor.FileDescriptor( syntax='proto3', serialized_options=b'Z%github.com/lightningnetwork/lnd/lnrpc', create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x14walletunlocker.proto\x12\x05lnrpc\x1a\trpc.proto\"A\n\x0eGenSeedRequest\x12\x19\n\x11\x61\x65zeed_passphrase\x18\x01 \x01(\x0c\x12\x14\n\x0cseed_entropy\x18\x02 \x01(\x0c\"H\n\x0fGenSeedResponse\x12\x1c\n\x14\x63ipher_seed_mnemonic\x18\x01 \x03(\t\x12\x17\n\x0f\x65nciphered_seed\x18\x02 \x01(\x0c\"\xca\x01\n\x11InitWalletRequest\x12\x17\n\x0fwallet_password\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63ipher_seed_mnemonic\x18\x02 \x03(\t\x12\x19\n\x11\x61\x65zeed_passphrase\x18\x03 \x01(\x0c\x12\x17\n\x0frecovery_window\x18\x04 \x01(\x05\x12\x32\n\x0f\x63hannel_backups\x18\x05 \x01(\x0b\x32\x19.lnrpc.ChanBackupSnapshot\x12\x16\n\x0estateless_init\x18\x06 \x01(\x08\",\n\x12InitWalletResponse\x12\x16\n\x0e\x61\x64min_macaroon\x18\x01 \x01(\x0c\"\x93\x01\n\x13UnlockWalletRequest\x12\x17\n\x0fwallet_password\x18\x01 \x01(\x0c\x12\x17\n\x0frecovery_window\x18\x02 \x01(\x05\x12\x32\n\x0f\x63hannel_backups\x18\x03 \x01(\x0b\x32\x19.lnrpc.ChanBackupSnapshot\x12\x16\n\x0estateless_init\x18\x04 \x01(\x08\"\x16\n\x14UnlockWalletResponse\"~\n\x15\x43hangePasswordRequest\x12\x18\n\x10\x63urrent_password\x18\x01 \x01(\x0c\x12\x14\n\x0cnew_password\x18\x02 \x01(\x0c\x12\x16\n\x0estateless_init\x18\x03 \x01(\x08\x12\x1d\n\x15new_macaroon_root_key\x18\x04 \x01(\x08\"0\n\x16\x43hangePasswordResponse\x12\x16\n\x0e\x61\x64min_macaroon\x18\x01 \x01(\x0c\x32\xa5\x02\n\x0eWalletUnlocker\x12\x38\n\x07GenSeed\x12\x15.lnrpc.GenSeedRequest\x1a\x16.lnrpc.GenSeedResponse\x12\x41\n\nInitWallet\x12\x18.lnrpc.InitWalletRequest\x1a\x19.lnrpc.InitWalletResponse\x12G\n\x0cUnlockWallet\x12\x1a.lnrpc.UnlockWalletRequest\x1a\x1b.lnrpc.UnlockWalletResponse\x12M\n\x0e\x43hangePassword\x12\x1c.lnrpc.ChangePasswordRequest\x1a\x1d.lnrpc.ChangePasswordResponseB\'Z%github.com/lightningnetwork/lnd/lnrpcb\x06proto3' + serialized_pb=b'\n\x14walletunlocker.proto\x12\x05lnrpc\x1a\x0flightning.proto\"A\n\x0eGenSeedRequest\x12\x19\n\x11\x61\x65zeed_passphrase\x18\x01 \x01(\x0c\x12\x14\n\x0cseed_entropy\x18\x02 \x01(\x0c\"H\n\x0fGenSeedResponse\x12\x1c\n\x14\x63ipher_seed_mnemonic\x18\x01 \x03(\t\x12\x17\n\x0f\x65nciphered_seed\x18\x02 \x01(\x0c\"\xbd\x02\n\x11InitWalletRequest\x12\x17\n\x0fwallet_password\x18\x01 \x01(\x0c\x12\x1c\n\x14\x63ipher_seed_mnemonic\x18\x02 \x03(\t\x12\x19\n\x11\x61\x65zeed_passphrase\x18\x03 \x01(\x0c\x12\x17\n\x0frecovery_window\x18\x04 \x01(\x05\x12\x32\n\x0f\x63hannel_backups\x18\x05 \x01(\x0b\x32\x19.lnrpc.ChanBackupSnapshot\x12\x16\n\x0estateless_init\x18\x06 \x01(\x08\x12\x1b\n\x13\x65xtended_master_key\x18\x07 \x01(\t\x12.\n&extended_master_key_birthday_timestamp\x18\x08 \x01(\x04\x12$\n\nwatch_only\x18\t \x01(\x0b\x32\x10.lnrpc.WatchOnly\",\n\x12InitWalletResponse\x12\x16\n\x0e\x61\x64min_macaroon\x18\x01 \x01(\x0c\"}\n\tWatchOnly\x12%\n\x1dmaster_key_birthday_timestamp\x18\x01 \x01(\x04\x12\x1e\n\x16master_key_fingerprint\x18\x02 \x01(\x0c\x12)\n\x08\x61\x63\x63ounts\x18\x03 \x03(\x0b\x32\x17.lnrpc.WatchOnlyAccount\"U\n\x10WatchOnlyAccount\x12\x0f\n\x07purpose\x18\x01 \x01(\r\x12\x11\n\tcoin_type\x18\x02 \x01(\r\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\r\x12\x0c\n\x04xpub\x18\x04 \x01(\t\"\x93\x01\n\x13UnlockWalletRequest\x12\x17\n\x0fwallet_password\x18\x01 \x01(\x0c\x12\x17\n\x0frecovery_window\x18\x02 \x01(\x05\x12\x32\n\x0f\x63hannel_backups\x18\x03 \x01(\x0b\x32\x19.lnrpc.ChanBackupSnapshot\x12\x16\n\x0estateless_init\x18\x04 \x01(\x08\"\x16\n\x14UnlockWalletResponse\"~\n\x15\x43hangePasswordRequest\x12\x18\n\x10\x63urrent_password\x18\x01 \x01(\x0c\x12\x14\n\x0cnew_password\x18\x02 \x01(\x0c\x12\x16\n\x0estateless_init\x18\x03 \x01(\x08\x12\x1d\n\x15new_macaroon_root_key\x18\x04 \x01(\x08\"0\n\x16\x43hangePasswordResponse\x12\x16\n\x0e\x61\x64min_macaroon\x18\x01 \x01(\x0c\x32\xa5\x02\n\x0eWalletUnlocker\x12\x38\n\x07GenSeed\x12\x15.lnrpc.GenSeedRequest\x1a\x16.lnrpc.GenSeedResponse\x12\x41\n\nInitWallet\x12\x18.lnrpc.InitWalletRequest\x1a\x19.lnrpc.InitWalletResponse\x12G\n\x0cUnlockWallet\x12\x1a.lnrpc.UnlockWalletRequest\x1a\x1b.lnrpc.UnlockWalletResponse\x12M\n\x0e\x43hangePassword\x12\x1c.lnrpc.ChangePasswordRequest\x1a\x1d.lnrpc.ChangePasswordResponseB\'Z%github.com/lightningnetwork/lnd/lnrpcb\x06proto3' , - dependencies=[rpc__pb2.DESCRIPTOR,]) + dependencies=[lightning__pb2.DESCRIPTOR,]) @@ -61,8 +61,8 @@ _GENSEEDREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=42, - serialized_end=107, + serialized_start=48, + serialized_end=113, ) @@ -100,8 +100,8 @@ _GENSEEDRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=109, - serialized_end=181, + serialized_start=115, + serialized_end=187, ) @@ -155,6 +155,27 @@ _INITWALLETREQUEST = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extended_master_key', full_name='lnrpc.InitWalletRequest.extended_master_key', index=6, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='extended_master_key_birthday_timestamp', full_name='lnrpc.InitWalletRequest.extended_master_key_birthday_timestamp', index=7, + number=8, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='watch_only', full_name='lnrpc.InitWalletRequest.watch_only', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -167,8 +188,8 @@ _INITWALLETREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=184, - serialized_end=386, + serialized_start=190, + serialized_end=507, ) @@ -199,8 +220,107 @@ _INITWALLETRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=388, - serialized_end=432, + serialized_start=509, + serialized_end=553, +) + + +_WATCHONLY = _descriptor.Descriptor( + name='WatchOnly', + full_name='lnrpc.WatchOnly', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='master_key_birthday_timestamp', full_name='lnrpc.WatchOnly.master_key_birthday_timestamp', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='master_key_fingerprint', full_name='lnrpc.WatchOnly.master_key_fingerprint', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='accounts', full_name='lnrpc.WatchOnly.accounts', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=555, + serialized_end=680, +) + + +_WATCHONLYACCOUNT = _descriptor.Descriptor( + name='WatchOnlyAccount', + full_name='lnrpc.WatchOnlyAccount', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='purpose', full_name='lnrpc.WatchOnlyAccount.purpose', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='coin_type', full_name='lnrpc.WatchOnlyAccount.coin_type', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='account', full_name='lnrpc.WatchOnlyAccount.account', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='xpub', full_name='lnrpc.WatchOnlyAccount.xpub', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=682, + serialized_end=767, ) @@ -252,8 +372,8 @@ _UNLOCKWALLETREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=435, - serialized_end=582, + serialized_start=770, + serialized_end=917, ) @@ -277,8 +397,8 @@ _UNLOCKWALLETRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=584, - serialized_end=606, + serialized_start=919, + serialized_end=941, ) @@ -330,8 +450,8 @@ _CHANGEPASSWORDREQUEST = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=608, - serialized_end=734, + serialized_start=943, + serialized_end=1069, ) @@ -362,16 +482,20 @@ _CHANGEPASSWORDRESPONSE = _descriptor.Descriptor( extension_ranges=[], oneofs=[ ], - serialized_start=736, - serialized_end=784, + serialized_start=1071, + serialized_end=1119, ) -_INITWALLETREQUEST.fields_by_name['channel_backups'].message_type = rpc__pb2._CHANBACKUPSNAPSHOT -_UNLOCKWALLETREQUEST.fields_by_name['channel_backups'].message_type = rpc__pb2._CHANBACKUPSNAPSHOT +_INITWALLETREQUEST.fields_by_name['channel_backups'].message_type = lightning__pb2._CHANBACKUPSNAPSHOT +_INITWALLETREQUEST.fields_by_name['watch_only'].message_type = _WATCHONLY +_WATCHONLY.fields_by_name['accounts'].message_type = _WATCHONLYACCOUNT +_UNLOCKWALLETREQUEST.fields_by_name['channel_backups'].message_type = lightning__pb2._CHANBACKUPSNAPSHOT DESCRIPTOR.message_types_by_name['GenSeedRequest'] = _GENSEEDREQUEST DESCRIPTOR.message_types_by_name['GenSeedResponse'] = _GENSEEDRESPONSE DESCRIPTOR.message_types_by_name['InitWalletRequest'] = _INITWALLETREQUEST DESCRIPTOR.message_types_by_name['InitWalletResponse'] = _INITWALLETRESPONSE +DESCRIPTOR.message_types_by_name['WatchOnly'] = _WATCHONLY +DESCRIPTOR.message_types_by_name['WatchOnlyAccount'] = _WATCHONLYACCOUNT DESCRIPTOR.message_types_by_name['UnlockWalletRequest'] = _UNLOCKWALLETREQUEST DESCRIPTOR.message_types_by_name['UnlockWalletResponse'] = _UNLOCKWALLETRESPONSE DESCRIPTOR.message_types_by_name['ChangePasswordRequest'] = _CHANGEPASSWORDREQUEST @@ -406,6 +530,20 @@ InitWalletResponse = _reflection.GeneratedProtocolMessageType('InitWalletRespons }) _sym_db.RegisterMessage(InitWalletResponse) +WatchOnly = _reflection.GeneratedProtocolMessageType('WatchOnly', (_message.Message,), { + 'DESCRIPTOR' : _WATCHONLY, + '__module__' : 'walletunlocker_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.WatchOnly) + }) +_sym_db.RegisterMessage(WatchOnly) + +WatchOnlyAccount = _reflection.GeneratedProtocolMessageType('WatchOnlyAccount', (_message.Message,), { + 'DESCRIPTOR' : _WATCHONLYACCOUNT, + '__module__' : 'walletunlocker_pb2' + # @@protoc_insertion_point(class_scope:lnrpc.WatchOnlyAccount) + }) +_sym_db.RegisterMessage(WatchOnlyAccount) + UnlockWalletRequest = _reflection.GeneratedProtocolMessageType('UnlockWalletRequest', (_message.Message,), { 'DESCRIPTOR' : _UNLOCKWALLETREQUEST, '__module__' : 'walletunlocker_pb2' @@ -444,8 +582,8 @@ _WALLETUNLOCKER = _descriptor.ServiceDescriptor( index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=787, - serialized_end=1080, + serialized_start=1122, + serialized_end=1415, methods=[ _descriptor.MethodDescriptor( name='GenSeed', diff --git a/home.admin/setup.scripts/dialogLightningWallet-lnd.sh b/home.admin/setup.scripts/dialogLightningWallet-lnd.sh index 3e759ad4..ba892d14 100644 --- a/home.admin/setup.scripts/dialogLightningWallet-lnd.sh +++ b/home.admin/setup.scripts/dialogLightningWallet-lnd.sh @@ -178,6 +178,6 @@ if [ ${uploadSCB} -eq 1 ]; then sudo sed -i '/^staticchannelbackup=/d' $SETUPFILE # write the filename into the setup state - echo "staticchannelbackup='${staticchannelbackup}'" >> $SETUPFILE + echo "staticchannelbackup='/home/admin/channel.backup'" >> $SETUPFILE fi \ No newline at end of file